From 7a31cf2fb870ee9bf46c4721f59d48be852577bf Mon Sep 17 00:00:00 2001 From: Github Actions Date: Fri, 22 Sep 2023 17:02:30 +0000 Subject: [PATCH] ci: automatic build fixes --- .../{index-e4bc02de.js => index-eb2b156f.js} | 238 +++++++++--------- build/index.html | 2 +- 2 files changed, 120 insertions(+), 120 deletions(-) rename build/assets/{index-e4bc02de.js => index-eb2b156f.js} (97%) diff --git a/build/assets/index-e4bc02de.js b/build/assets/index-eb2b156f.js similarity index 97% rename from build/assets/index-e4bc02de.js rename to build/assets/index-eb2b156f.js index f438bb9fb..8527e6e4b 100644 --- a/build/assets/index-e4bc02de.js +++ b/build/assets/index-eb2b156f.js @@ -3,7 +3,7 @@ var ox=(tt,et)=>()=>(et||tt((et={exports:{}}).exports,et),et.exports);var ax=ox( * * @author Feross Aboukhadijeh * @license MIT - */(function(tt){const et=base64Js,nt=ieee754,rt=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;tt.Buffer=st,tt.SlowBuffer=wt,tt.INSPECT_MAX_BYTES=50;const it=2147483647;tt.kMaxLength=it,st.TYPED_ARRAY_SUPPORT=ot(),!st.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function ot(){try{const hn=new Uint8Array(1),Qt={foo:function(){return 42}};return Object.setPrototypeOf(Qt,Uint8Array.prototype),Object.setPrototypeOf(hn,Qt),hn.foo()===42}catch{return!1}}Object.defineProperty(st.prototype,"parent",{enumerable:!0,get:function(){if(st.isBuffer(this))return this.buffer}}),Object.defineProperty(st.prototype,"offset",{enumerable:!0,get:function(){if(st.isBuffer(this))return this.byteOffset}});function at(hn){if(hn>it)throw new RangeError('The value "'+hn+'" is invalid for option "size"');const Qt=new Uint8Array(hn);return Object.setPrototypeOf(Qt,st.prototype),Qt}function st(hn,Qt,Zt){if(typeof hn=="number"){if(typeof Qt=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return ht(hn)}return lt(hn,Qt,Zt)}st.poolSize=8192;function lt(hn,Qt,Zt){if(typeof hn=="string")return dt(hn,Qt);if(ArrayBuffer.isView(hn))return mt(hn);if(hn==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof hn);if(un(hn,ArrayBuffer)||hn&&un(hn.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(un(hn,SharedArrayBuffer)||hn&&un(hn.buffer,SharedArrayBuffer)))return gt(hn,Qt,Zt);if(typeof hn=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const wn=hn.valueOf&&hn.valueOf();if(wn!=null&&wn!==hn)return st.from(wn,Qt,Zt);const On=yt(hn);if(On)return On;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof hn[Symbol.toPrimitive]=="function")return st.from(hn[Symbol.toPrimitive]("string"),Qt,Zt);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof hn)}st.from=function(hn,Qt,Zt){return lt(hn,Qt,Zt)},Object.setPrototypeOf(st.prototype,Uint8Array.prototype),Object.setPrototypeOf(st,Uint8Array);function ct(hn){if(typeof hn!="number")throw new TypeError('"size" argument must be of type number');if(hn<0)throw new RangeError('The value "'+hn+'" is invalid for option "size"')}function ut(hn,Qt,Zt){return ct(hn),hn<=0?at(hn):Qt!==void 0?typeof Zt=="string"?at(hn).fill(Qt,Zt):at(hn).fill(Qt):at(hn)}st.alloc=function(hn,Qt,Zt){return ut(hn,Qt,Zt)};function ht(hn){return ct(hn),at(hn<0?0:bt(hn)|0)}st.allocUnsafe=function(hn){return ht(hn)},st.allocUnsafeSlow=function(hn){return ht(hn)};function dt(hn,Qt){if((typeof Qt!="string"||Qt==="")&&(Qt="utf8"),!st.isEncoding(Qt))throw new TypeError("Unknown encoding: "+Qt);const Zt=vt(hn,Qt)|0;let wn=at(Zt);const On=wn.write(hn,Qt);return On!==Zt&&(wn=wn.slice(0,On)),wn}function pt(hn){const Qt=hn.length<0?0:bt(hn.length)|0,Zt=at(Qt);for(let wn=0;wn=it)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+it.toString(16)+" bytes");return hn|0}function wt(hn){return+hn!=hn&&(hn=0),st.alloc(+hn)}st.isBuffer=function(Qt){return Qt!=null&&Qt._isBuffer===!0&&Qt!==st.prototype},st.compare=function(Qt,Zt){if(un(Qt,Uint8Array)&&(Qt=st.from(Qt,Qt.offset,Qt.byteLength)),un(Zt,Uint8Array)&&(Zt=st.from(Zt,Zt.offset,Zt.byteLength)),!st.isBuffer(Qt)||!st.isBuffer(Zt))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(Qt===Zt)return 0;let wn=Qt.length,On=Zt.length;for(let jn=0,Un=Math.min(wn,On);jnOn.length?(st.isBuffer(Un)||(Un=st.from(Un)),Un.copy(On,jn)):Uint8Array.prototype.set.call(On,Un,jn);else if(st.isBuffer(Un))Un.copy(On,jn);else throw new TypeError('"list" argument must be an Array of Buffers');jn+=Un.length}return On};function vt(hn,Qt){if(st.isBuffer(hn))return hn.length;if(ArrayBuffer.isView(hn)||un(hn,ArrayBuffer))return hn.byteLength;if(typeof hn!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof hn);const Zt=hn.length,wn=arguments.length>2&&arguments[2]===!0;if(!wn&&Zt===0)return 0;let On=!1;for(;;)switch(Qt){case"ascii":case"latin1":case"binary":return Zt;case"utf8":case"utf-8":return kn(hn).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Zt*2;case"hex":return Zt>>>1;case"base64":return Cn(hn).length;default:if(On)return wn?-1:kn(hn).length;Qt=(""+Qt).toLowerCase(),On=!0}}st.byteLength=vt;function kt(hn,Qt,Zt){let wn=!1;if((Qt===void 0||Qt<0)&&(Qt=0),Qt>this.length||((Zt===void 0||Zt>this.length)&&(Zt=this.length),Zt<=0)||(Zt>>>=0,Qt>>>=0,Zt<=Qt))return"";for(hn||(hn="utf8");;)switch(hn){case"hex":return Wt(this,Qt,Zt);case"utf8":case"utf-8":return xt(this,Qt,Zt);case"ascii":return zt(this,Qt,Zt);case"latin1":case"binary":return Ut(this,Qt,Zt);case"base64":return $t(this,Qt,Zt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ft(this,Qt,Zt);default:if(wn)throw new TypeError("Unknown encoding: "+hn);hn=(hn+"").toLowerCase(),wn=!0}}st.prototype._isBuffer=!0;function St(hn,Qt,Zt){const wn=hn[Qt];hn[Qt]=hn[Zt],hn[Zt]=wn}st.prototype.swap16=function(){const Qt=this.length;if(Qt%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let Zt=0;ZtZt&&(Qt+=" ... "),""},rt&&(st.prototype[rt]=st.prototype.inspect),st.prototype.compare=function(Qt,Zt,wn,On,jn){if(un(Qt,Uint8Array)&&(Qt=st.from(Qt,Qt.offset,Qt.byteLength)),!st.isBuffer(Qt))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Qt);if(Zt===void 0&&(Zt=0),wn===void 0&&(wn=Qt?Qt.length:0),On===void 0&&(On=0),jn===void 0&&(jn=this.length),Zt<0||wn>Qt.length||On<0||jn>this.length)throw new RangeError("out of range index");if(On>=jn&&Zt>=wn)return 0;if(On>=jn)return-1;if(Zt>=wn)return 1;if(Zt>>>=0,wn>>>=0,On>>>=0,jn>>>=0,this===Qt)return 0;let Un=jn-On,tr=wn-Zt;const qn=Math.min(Un,tr),Xn=this.slice(On,jn),Wn=Qt.slice(Zt,wn);for(let Zn=0;Zn2147483647?Zt=2147483647:Zt<-2147483648&&(Zt=-2147483648),Zt=+Zt,rn(Zt)&&(Zt=On?0:hn.length-1),Zt<0&&(Zt=hn.length+Zt),Zt>=hn.length){if(On)return-1;Zt=hn.length-1}else if(Zt<0)if(On)Zt=0;else return-1;if(typeof Qt=="string"&&(Qt=st.from(Qt,wn)),st.isBuffer(Qt))return Qt.length===0?-1:At(hn,Qt,Zt,wn,On);if(typeof Qt=="number")return Qt=Qt&255,typeof Uint8Array.prototype.indexOf=="function"?On?Uint8Array.prototype.indexOf.call(hn,Qt,Zt):Uint8Array.prototype.lastIndexOf.call(hn,Qt,Zt):At(hn,[Qt],Zt,wn,On);throw new TypeError("val must be string, number or Buffer")}function At(hn,Qt,Zt,wn,On){let jn=1,Un=hn.length,tr=Qt.length;if(wn!==void 0&&(wn=String(wn).toLowerCase(),wn==="ucs2"||wn==="ucs-2"||wn==="utf16le"||wn==="utf-16le")){if(hn.length<2||Qt.length<2)return-1;jn=2,Un/=2,tr/=2,Zt/=2}function qn(Wn,Zn){return jn===1?Wn[Zn]:Wn.readUInt16BE(Zn*jn)}let Xn;if(On){let Wn=-1;for(Xn=Zt;XnUn&&(Zt=Un-tr),Xn=Zt;Xn>=0;Xn--){let Wn=!0;for(let Zn=0;ZnOn&&(wn=On)):wn=On;const jn=Qt.length;wn>jn/2&&(wn=jn/2);let Un;for(Un=0;Un>>0,isFinite(wn)?(wn=wn>>>0,On===void 0&&(On="utf8")):(On=wn,wn=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const jn=this.length-Zt;if((wn===void 0||wn>jn)&&(wn=jn),Qt.length>0&&(wn<0||Zt<0)||Zt>this.length)throw new RangeError("Attempt to write outside buffer bounds");On||(On="utf8");let Un=!1;for(;;)switch(On){case"hex":return Et(this,Qt,Zt,wn);case"utf8":case"utf-8":return Mt(this,Qt,Zt,wn);case"ascii":case"latin1":case"binary":return Lt(this,Qt,Zt,wn);case"base64":return jt(this,Qt,Zt,wn);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Rt(this,Qt,Zt,wn);default:if(Un)throw new TypeError("Unknown encoding: "+On);On=(""+On).toLowerCase(),Un=!0}},st.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function $t(hn,Qt,Zt){return Qt===0&&Zt===hn.length?et.fromByteArray(hn):et.fromByteArray(hn.slice(Qt,Zt))}function xt(hn,Qt,Zt){Zt=Math.min(hn.length,Zt);const wn=[];let On=Qt;for(;On239?4:jn>223?3:jn>191?2:1;if(On+tr<=Zt){let qn,Xn,Wn,Zn;switch(tr){case 1:jn<128&&(Un=jn);break;case 2:qn=hn[On+1],(qn&192)===128&&(Zn=(jn&31)<<6|qn&63,Zn>127&&(Un=Zn));break;case 3:qn=hn[On+1],Xn=hn[On+2],(qn&192)===128&&(Xn&192)===128&&(Zn=(jn&15)<<12|(qn&63)<<6|Xn&63,Zn>2047&&(Zn<55296||Zn>57343)&&(Un=Zn));break;case 4:qn=hn[On+1],Xn=hn[On+2],Wn=hn[On+3],(qn&192)===128&&(Xn&192)===128&&(Wn&192)===128&&(Zn=(jn&15)<<18|(qn&63)<<12|(Xn&63)<<6|Wn&63,Zn>65535&&Zn<1114112&&(Un=Zn))}}Un===null?(Un=65533,tr=1):Un>65535&&(Un-=65536,wn.push(Un>>>10&1023|55296),Un=56320|Un&1023),wn.push(Un),On+=tr}return Ot(wn)}const It=4096;function Ot(hn){const Qt=hn.length;if(Qt<=It)return String.fromCharCode.apply(String,hn);let Zt="",wn=0;for(;wnwn)&&(Zt=wn);let On="";for(let jn=Qt;jnwn&&(Qt=wn),Zt<0?(Zt+=wn,Zt<0&&(Zt=0)):Zt>wn&&(Zt=wn),ZtZt)throw new RangeError("Trying to access beyond buffer length")}st.prototype.readUintLE=st.prototype.readUIntLE=function(Qt,Zt,wn){Qt=Qt>>>0,Zt=Zt>>>0,wn||Nt(Qt,Zt,this.length);let On=this[Qt],jn=1,Un=0;for(;++Un>>0,Zt=Zt>>>0,wn||Nt(Qt,Zt,this.length);let On=this[Qt+--Zt],jn=1;for(;Zt>0&&(jn*=256);)On+=this[Qt+--Zt]*jn;return On},st.prototype.readUint8=st.prototype.readUInt8=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,1,this.length),this[Qt]},st.prototype.readUint16LE=st.prototype.readUInt16LE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,2,this.length),this[Qt]|this[Qt+1]<<8},st.prototype.readUint16BE=st.prototype.readUInt16BE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,2,this.length),this[Qt]<<8|this[Qt+1]},st.prototype.readUint32LE=st.prototype.readUInt32LE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,4,this.length),(this[Qt]|this[Qt+1]<<8|this[Qt+2]<<16)+this[Qt+3]*16777216},st.prototype.readUint32BE=st.prototype.readUInt32BE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,4,this.length),this[Qt]*16777216+(this[Qt+1]<<16|this[Qt+2]<<8|this[Qt+3])},st.prototype.readBigUInt64LE=Mn(function(Qt){Qt=Qt>>>0,Tn(Qt,"offset");const Zt=this[Qt],wn=this[Qt+7];(Zt===void 0||wn===void 0)&&Rn(Qt,this.length-8);const On=Zt+this[++Qt]*2**8+this[++Qt]*2**16+this[++Qt]*2**24,jn=this[++Qt]+this[++Qt]*2**8+this[++Qt]*2**16+wn*2**24;return BigInt(On)+(BigInt(jn)<>>0,Tn(Qt,"offset");const Zt=this[Qt],wn=this[Qt+7];(Zt===void 0||wn===void 0)&&Rn(Qt,this.length-8);const On=Zt*2**24+this[++Qt]*2**16+this[++Qt]*2**8+this[++Qt],jn=this[++Qt]*2**24+this[++Qt]*2**16+this[++Qt]*2**8+wn;return(BigInt(On)<>>0,Zt=Zt>>>0,wn||Nt(Qt,Zt,this.length);let On=this[Qt],jn=1,Un=0;for(;++Un=jn&&(On-=Math.pow(2,8*Zt)),On},st.prototype.readIntBE=function(Qt,Zt,wn){Qt=Qt>>>0,Zt=Zt>>>0,wn||Nt(Qt,Zt,this.length);let On=Zt,jn=1,Un=this[Qt+--On];for(;On>0&&(jn*=256);)Un+=this[Qt+--On]*jn;return jn*=128,Un>=jn&&(Un-=Math.pow(2,8*Zt)),Un},st.prototype.readInt8=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,1,this.length),this[Qt]&128?(255-this[Qt]+1)*-1:this[Qt]},st.prototype.readInt16LE=function(Qt,Zt){Qt=Qt>>>0,Zt||Nt(Qt,2,this.length);const wn=this[Qt]|this[Qt+1]<<8;return wn&32768?wn|4294901760:wn},st.prototype.readInt16BE=function(Qt,Zt){Qt=Qt>>>0,Zt||Nt(Qt,2,this.length);const wn=this[Qt+1]|this[Qt]<<8;return wn&32768?wn|4294901760:wn},st.prototype.readInt32LE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,4,this.length),this[Qt]|this[Qt+1]<<8|this[Qt+2]<<16|this[Qt+3]<<24},st.prototype.readInt32BE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,4,this.length),this[Qt]<<24|this[Qt+1]<<16|this[Qt+2]<<8|this[Qt+3]},st.prototype.readBigInt64LE=Mn(function(Qt){Qt=Qt>>>0,Tn(Qt,"offset");const Zt=this[Qt],wn=this[Qt+7];(Zt===void 0||wn===void 0)&&Rn(Qt,this.length-8);const On=this[Qt+4]+this[Qt+5]*2**8+this[Qt+6]*2**16+(wn<<24);return(BigInt(On)<>>0,Tn(Qt,"offset");const Zt=this[Qt],wn=this[Qt+7];(Zt===void 0||wn===void 0)&&Rn(Qt,this.length-8);const On=(Zt<<24)+this[++Qt]*2**16+this[++Qt]*2**8+this[++Qt];return(BigInt(On)<>>0,Zt||Nt(Qt,4,this.length),nt.read(this,Qt,!0,23,4)},st.prototype.readFloatBE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,4,this.length),nt.read(this,Qt,!1,23,4)},st.prototype.readDoubleLE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,8,this.length),nt.read(this,Qt,!0,52,8)},st.prototype.readDoubleBE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,8,this.length),nt.read(this,Qt,!1,52,8)};function Ct(hn,Qt,Zt,wn,On,jn){if(!st.isBuffer(hn))throw new TypeError('"buffer" argument must be a Buffer instance');if(Qt>On||Qthn.length)throw new RangeError("Index out of range")}st.prototype.writeUintLE=st.prototype.writeUIntLE=function(Qt,Zt,wn,On){if(Qt=+Qt,Zt=Zt>>>0,wn=wn>>>0,!On){const tr=Math.pow(2,8*wn)-1;Ct(this,Qt,Zt,wn,tr,0)}let jn=1,Un=0;for(this[Zt]=Qt&255;++Un>>0,wn=wn>>>0,!On){const tr=Math.pow(2,8*wn)-1;Ct(this,Qt,Zt,wn,tr,0)}let jn=wn-1,Un=1;for(this[Zt+jn]=Qt&255;--jn>=0&&(Un*=256);)this[Zt+jn]=Qt/Un&255;return Zt+wn},st.prototype.writeUint8=st.prototype.writeUInt8=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,1,255,0),this[Zt]=Qt&255,Zt+1},st.prototype.writeUint16LE=st.prototype.writeUInt16LE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,2,65535,0),this[Zt]=Qt&255,this[Zt+1]=Qt>>>8,Zt+2},st.prototype.writeUint16BE=st.prototype.writeUInt16BE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,2,65535,0),this[Zt]=Qt>>>8,this[Zt+1]=Qt&255,Zt+2},st.prototype.writeUint32LE=st.prototype.writeUInt32LE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,4,4294967295,0),this[Zt+3]=Qt>>>24,this[Zt+2]=Qt>>>16,this[Zt+1]=Qt>>>8,this[Zt]=Qt&255,Zt+4},st.prototype.writeUint32BE=st.prototype.writeUInt32BE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,4,4294967295,0),this[Zt]=Qt>>>24,this[Zt+1]=Qt>>>16,this[Zt+2]=Qt>>>8,this[Zt+3]=Qt&255,Zt+4};function Ht(hn,Qt,Zt,wn,On){en(Qt,wn,On,hn,Zt,7);let jn=Number(Qt&BigInt(4294967295));hn[Zt++]=jn,jn=jn>>8,hn[Zt++]=jn,jn=jn>>8,hn[Zt++]=jn,jn=jn>>8,hn[Zt++]=jn;let Un=Number(Qt>>BigInt(32)&BigInt(4294967295));return hn[Zt++]=Un,Un=Un>>8,hn[Zt++]=Un,Un=Un>>8,hn[Zt++]=Un,Un=Un>>8,hn[Zt++]=Un,Zt}function Jt(hn,Qt,Zt,wn,On){en(Qt,wn,On,hn,Zt,7);let jn=Number(Qt&BigInt(4294967295));hn[Zt+7]=jn,jn=jn>>8,hn[Zt+6]=jn,jn=jn>>8,hn[Zt+5]=jn,jn=jn>>8,hn[Zt+4]=jn;let Un=Number(Qt>>BigInt(32)&BigInt(4294967295));return hn[Zt+3]=Un,Un=Un>>8,hn[Zt+2]=Un,Un=Un>>8,hn[Zt+1]=Un,Un=Un>>8,hn[Zt]=Un,Zt+8}st.prototype.writeBigUInt64LE=Mn(function(Qt,Zt=0){return Ht(this,Qt,Zt,BigInt(0),BigInt("0xffffffffffffffff"))}),st.prototype.writeBigUInt64BE=Mn(function(Qt,Zt=0){return Jt(this,Qt,Zt,BigInt(0),BigInt("0xffffffffffffffff"))}),st.prototype.writeIntLE=function(Qt,Zt,wn,On){if(Qt=+Qt,Zt=Zt>>>0,!On){const qn=Math.pow(2,8*wn-1);Ct(this,Qt,Zt,wn,qn-1,-qn)}let jn=0,Un=1,tr=0;for(this[Zt]=Qt&255;++jn>0)-tr&255;return Zt+wn},st.prototype.writeIntBE=function(Qt,Zt,wn,On){if(Qt=+Qt,Zt=Zt>>>0,!On){const qn=Math.pow(2,8*wn-1);Ct(this,Qt,Zt,wn,qn-1,-qn)}let jn=wn-1,Un=1,tr=0;for(this[Zt+jn]=Qt&255;--jn>=0&&(Un*=256);)Qt<0&&tr===0&&this[Zt+jn+1]!==0&&(tr=1),this[Zt+jn]=(Qt/Un>>0)-tr&255;return Zt+wn},st.prototype.writeInt8=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,1,127,-128),Qt<0&&(Qt=255+Qt+1),this[Zt]=Qt&255,Zt+1},st.prototype.writeInt16LE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,2,32767,-32768),this[Zt]=Qt&255,this[Zt+1]=Qt>>>8,Zt+2},st.prototype.writeInt16BE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,2,32767,-32768),this[Zt]=Qt>>>8,this[Zt+1]=Qt&255,Zt+2},st.prototype.writeInt32LE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,4,2147483647,-2147483648),this[Zt]=Qt&255,this[Zt+1]=Qt>>>8,this[Zt+2]=Qt>>>16,this[Zt+3]=Qt>>>24,Zt+4},st.prototype.writeInt32BE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,4,2147483647,-2147483648),Qt<0&&(Qt=4294967295+Qt+1),this[Zt]=Qt>>>24,this[Zt+1]=Qt>>>16,this[Zt+2]=Qt>>>8,this[Zt+3]=Qt&255,Zt+4},st.prototype.writeBigInt64LE=Mn(function(Qt,Zt=0){return Ht(this,Qt,Zt,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),st.prototype.writeBigInt64BE=Mn(function(Qt,Zt=0){return Jt(this,Qt,Zt,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function nn(hn,Qt,Zt,wn,On,jn){if(Zt+wn>hn.length)throw new RangeError("Index out of range");if(Zt<0)throw new RangeError("Index out of range")}function Yt(hn,Qt,Zt,wn,On){return Qt=+Qt,Zt=Zt>>>0,On||nn(hn,Qt,Zt,4),nt.write(hn,Qt,Zt,wn,23,4),Zt+4}st.prototype.writeFloatLE=function(Qt,Zt,wn){return Yt(this,Qt,Zt,!0,wn)},st.prototype.writeFloatBE=function(Qt,Zt,wn){return Yt(this,Qt,Zt,!1,wn)};function fn(hn,Qt,Zt,wn,On){return Qt=+Qt,Zt=Zt>>>0,On||nn(hn,Qt,Zt,8),nt.write(hn,Qt,Zt,wn,52,8),Zt+8}st.prototype.writeDoubleLE=function(Qt,Zt,wn){return fn(this,Qt,Zt,!0,wn)},st.prototype.writeDoubleBE=function(Qt,Zt,wn){return fn(this,Qt,Zt,!1,wn)},st.prototype.copy=function(Qt,Zt,wn,On){if(!st.isBuffer(Qt))throw new TypeError("argument should be a Buffer");if(wn||(wn=0),!On&&On!==0&&(On=this.length),Zt>=Qt.length&&(Zt=Qt.length),Zt||(Zt=0),On>0&&On=this.length)throw new RangeError("Index out of range");if(On<0)throw new RangeError("sourceEnd out of bounds");On>this.length&&(On=this.length),Qt.length-Zt>>0,wn=wn===void 0?this.length:wn>>>0,Qt||(Qt=0);let jn;if(typeof Qt=="number")for(jn=Zt;jn2**32?On=En(String(Zt)):typeof Zt=="bigint"&&(On=String(Zt),(Zt>BigInt(2)**BigInt(32)||Zt<-(BigInt(2)**BigInt(32)))&&(On=En(On)),On+="n"),wn+=` It must be ${Qt}. Received ${On}`,wn},RangeError);function En(hn){let Qt="",Zt=hn.length;const wn=hn[0]==="-"?1:0;for(;Zt>=wn+4;Zt-=3)Qt=`_${hn.slice(Zt-3,Zt)}${Qt}`;return`${hn.slice(0,Zt)}${Qt}`}function an(hn,Qt,Zt){Tn(Qt,"offset"),(hn[Qt]===void 0||hn[Qt+Zt]===void 0)&&Rn(Qt,hn.length-(Zt+1))}function en(hn,Qt,Zt,wn,On,jn){if(hn>Zt||hn3?Qt===0||Qt===BigInt(0)?tr=`>= 0${Un} and < 2${Un} ** ${(jn+1)*8}${Un}`:tr=`>= -(2${Un} ** ${(jn+1)*8-1}${Un}) and < 2 ** ${(jn+1)*8-1}${Un}`:tr=`>= ${Qt}${Un} and <= ${Zt}${Un}`,new cn.ERR_OUT_OF_RANGE("value",tr,hn)}an(wn,On,jn)}function Tn(hn,Qt){if(typeof hn!="number")throw new cn.ERR_INVALID_ARG_TYPE(Qt,"number",hn)}function Rn(hn,Qt,Zt){throw Math.floor(hn)!==hn?(Tn(hn,Zt),new cn.ERR_OUT_OF_RANGE(Zt||"offset","an integer",hn)):Qt<0?new cn.ERR_BUFFER_OUT_OF_BOUNDS:new cn.ERR_OUT_OF_RANGE(Zt||"offset",`>= ${Zt?1:0} and <= ${Qt}`,hn)}const An=/[^+/0-9A-Za-z-_]/g;function yn(hn){if(hn=hn.split("=")[0],hn=hn.trim().replace(An,""),hn.length<2)return"";for(;hn.length%4!==0;)hn=hn+"=";return hn}function kn(hn,Qt){Qt=Qt||1/0;let Zt;const wn=hn.length;let On=null;const jn=[];for(let Un=0;Un55295&&Zt<57344){if(!On){if(Zt>56319){(Qt-=3)>-1&&jn.push(239,191,189);continue}else if(Un+1===wn){(Qt-=3)>-1&&jn.push(239,191,189);continue}On=Zt;continue}if(Zt<56320){(Qt-=3)>-1&&jn.push(239,191,189),On=Zt;continue}Zt=(On-55296<<10|Zt-56320)+65536}else On&&(Qt-=3)>-1&&jn.push(239,191,189);if(On=null,Zt<128){if((Qt-=1)<0)break;jn.push(Zt)}else if(Zt<2048){if((Qt-=2)<0)break;jn.push(Zt>>6|192,Zt&63|128)}else if(Zt<65536){if((Qt-=3)<0)break;jn.push(Zt>>12|224,Zt>>6&63|128,Zt&63|128)}else if(Zt<1114112){if((Qt-=4)<0)break;jn.push(Zt>>18|240,Zt>>12&63|128,Zt>>6&63|128,Zt&63|128)}else throw new Error("Invalid code point")}return jn}function dn(hn){const Qt=[];for(let Zt=0;Zt>8,On=Zt%256,jn.push(On),jn.push(wn);return jn}function Cn(hn){return et.toByteArray(yn(hn))}function $n(hn,Qt,Zt,wn){let On;for(On=0;On=Qt.length||On>=hn.length);++On)Qt[On+Zt]=hn[On];return On}function un(hn,Qt){return hn instanceof Qt||hn!=null&&hn.constructor!=null&&hn.constructor.name!=null&&hn.constructor.name===Qt.name}function rn(hn){return hn!==hn}const Sn=function(){const hn="0123456789abcdef",Qt=new Array(256);for(let Zt=0;Zt<16;++Zt){const wn=Zt*16;for(let On=0;On<16;++On)Qt[wn+On]=hn[Zt]+hn[On]}return Qt}();function Mn(hn){return typeof BigInt>"u"?Nn:hn}function Nn(){throw new Error("BigInt not supported")}})(buffer$2);var browser$d={exports:{}},process$1=browser$d.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch{cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch{cachedClearTimeout=defaultClearTimeout}})();function runTimeout(tt){if(cachedSetTimeout===setTimeout)return setTimeout(tt,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(tt,0);try{return cachedSetTimeout(tt,0)}catch{try{return cachedSetTimeout.call(null,tt,0)}catch{return cachedSetTimeout.call(this,tt,0)}}}function runClearTimeout(tt){if(cachedClearTimeout===clearTimeout)return clearTimeout(tt);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(tt);try{return cachedClearTimeout(tt)}catch{try{return cachedClearTimeout.call(null,tt)}catch{return cachedClearTimeout.call(this,tt)}}}var queue$2=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue$2=currentQueue.concat(queue$2):queueIndex=-1,queue$2.length&&drainQueue())}function drainQueue(){if(!draining){var tt=runTimeout(cleanUpNextTick);draining=!0;for(var et=queue$2.length;et;){for(currentQueue=queue$2,queue$2=[];++queueIndex1)for(var nt=1;ntit)throw new RangeError('The value "'+hn+'" is invalid for option "size"');const Qt=new Uint8Array(hn);return Object.setPrototypeOf(Qt,st.prototype),Qt}function st(hn,Qt,Zt){if(typeof hn=="number"){if(typeof Qt=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return ht(hn)}return lt(hn,Qt,Zt)}st.poolSize=8192;function lt(hn,Qt,Zt){if(typeof hn=="string")return dt(hn,Qt);if(ArrayBuffer.isView(hn))return mt(hn);if(hn==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof hn);if(un(hn,ArrayBuffer)||hn&&un(hn.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(un(hn,SharedArrayBuffer)||hn&&un(hn.buffer,SharedArrayBuffer)))return gt(hn,Qt,Zt);if(typeof hn=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const wn=hn.valueOf&&hn.valueOf();if(wn!=null&&wn!==hn)return st.from(wn,Qt,Zt);const On=yt(hn);if(On)return On;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof hn[Symbol.toPrimitive]=="function")return st.from(hn[Symbol.toPrimitive]("string"),Qt,Zt);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof hn)}st.from=function(hn,Qt,Zt){return lt(hn,Qt,Zt)},Object.setPrototypeOf(st.prototype,Uint8Array.prototype),Object.setPrototypeOf(st,Uint8Array);function ct(hn){if(typeof hn!="number")throw new TypeError('"size" argument must be of type number');if(hn<0)throw new RangeError('The value "'+hn+'" is invalid for option "size"')}function ut(hn,Qt,Zt){return ct(hn),hn<=0?at(hn):Qt!==void 0?typeof Zt=="string"?at(hn).fill(Qt,Zt):at(hn).fill(Qt):at(hn)}st.alloc=function(hn,Qt,Zt){return ut(hn,Qt,Zt)};function ht(hn){return ct(hn),at(hn<0?0:bt(hn)|0)}st.allocUnsafe=function(hn){return ht(hn)},st.allocUnsafeSlow=function(hn){return ht(hn)};function dt(hn,Qt){if((typeof Qt!="string"||Qt==="")&&(Qt="utf8"),!st.isEncoding(Qt))throw new TypeError("Unknown encoding: "+Qt);const Zt=vt(hn,Qt)|0;let wn=at(Zt);const On=wn.write(hn,Qt);return On!==Zt&&(wn=wn.slice(0,On)),wn}function pt(hn){const Qt=hn.length<0?0:bt(hn.length)|0,Zt=at(Qt);for(let wn=0;wn=it)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+it.toString(16)+" bytes");return hn|0}function wt(hn){return+hn!=hn&&(hn=0),st.alloc(+hn)}st.isBuffer=function(Qt){return Qt!=null&&Qt._isBuffer===!0&&Qt!==st.prototype},st.compare=function(Qt,Zt){if(un(Qt,Uint8Array)&&(Qt=st.from(Qt,Qt.offset,Qt.byteLength)),un(Zt,Uint8Array)&&(Zt=st.from(Zt,Zt.offset,Zt.byteLength)),!st.isBuffer(Qt)||!st.isBuffer(Zt))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(Qt===Zt)return 0;let wn=Qt.length,On=Zt.length;for(let jn=0,Un=Math.min(wn,On);jnOn.length?(st.isBuffer(Un)||(Un=st.from(Un)),Un.copy(On,jn)):Uint8Array.prototype.set.call(On,Un,jn);else if(st.isBuffer(Un))Un.copy(On,jn);else throw new TypeError('"list" argument must be an Array of Buffers');jn+=Un.length}return On};function vt(hn,Qt){if(st.isBuffer(hn))return hn.length;if(ArrayBuffer.isView(hn)||un(hn,ArrayBuffer))return hn.byteLength;if(typeof hn!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof hn);const Zt=hn.length,wn=arguments.length>2&&arguments[2]===!0;if(!wn&&Zt===0)return 0;let On=!1;for(;;)switch(Qt){case"ascii":case"latin1":case"binary":return Zt;case"utf8":case"utf-8":return kn(hn).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Zt*2;case"hex":return Zt>>>1;case"base64":return Cn(hn).length;default:if(On)return wn?-1:kn(hn).length;Qt=(""+Qt).toLowerCase(),On=!0}}st.byteLength=vt;function kt(hn,Qt,Zt){let wn=!1;if((Qt===void 0||Qt<0)&&(Qt=0),Qt>this.length||((Zt===void 0||Zt>this.length)&&(Zt=this.length),Zt<=0)||(Zt>>>=0,Qt>>>=0,Zt<=Qt))return"";for(hn||(hn="utf8");;)switch(hn){case"hex":return Wt(this,Qt,Zt);case"utf8":case"utf-8":return xt(this,Qt,Zt);case"ascii":return zt(this,Qt,Zt);case"latin1":case"binary":return Ut(this,Qt,Zt);case"base64":return $t(this,Qt,Zt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ft(this,Qt,Zt);default:if(wn)throw new TypeError("Unknown encoding: "+hn);hn=(hn+"").toLowerCase(),wn=!0}}st.prototype._isBuffer=!0;function St(hn,Qt,Zt){const wn=hn[Qt];hn[Qt]=hn[Zt],hn[Zt]=wn}st.prototype.swap16=function(){const Qt=this.length;if(Qt%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let Zt=0;ZtZt&&(Qt+=" ... "),""},rt&&(st.prototype[rt]=st.prototype.inspect),st.prototype.compare=function(Qt,Zt,wn,On,jn){if(un(Qt,Uint8Array)&&(Qt=st.from(Qt,Qt.offset,Qt.byteLength)),!st.isBuffer(Qt))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Qt);if(Zt===void 0&&(Zt=0),wn===void 0&&(wn=Qt?Qt.length:0),On===void 0&&(On=0),jn===void 0&&(jn=this.length),Zt<0||wn>Qt.length||On<0||jn>this.length)throw new RangeError("out of range index");if(On>=jn&&Zt>=wn)return 0;if(On>=jn)return-1;if(Zt>=wn)return 1;if(Zt>>>=0,wn>>>=0,On>>>=0,jn>>>=0,this===Qt)return 0;let Un=jn-On,tr=wn-Zt;const qn=Math.min(Un,tr),Xn=this.slice(On,jn),Wn=Qt.slice(Zt,wn);for(let Zn=0;Zn2147483647?Zt=2147483647:Zt<-2147483648&&(Zt=-2147483648),Zt=+Zt,rn(Zt)&&(Zt=On?0:hn.length-1),Zt<0&&(Zt=hn.length+Zt),Zt>=hn.length){if(On)return-1;Zt=hn.length-1}else if(Zt<0)if(On)Zt=0;else return-1;if(typeof Qt=="string"&&(Qt=st.from(Qt,wn)),st.isBuffer(Qt))return Qt.length===0?-1:At(hn,Qt,Zt,wn,On);if(typeof Qt=="number")return Qt=Qt&255,typeof Uint8Array.prototype.indexOf=="function"?On?Uint8Array.prototype.indexOf.call(hn,Qt,Zt):Uint8Array.prototype.lastIndexOf.call(hn,Qt,Zt):At(hn,[Qt],Zt,wn,On);throw new TypeError("val must be string, number or Buffer")}function At(hn,Qt,Zt,wn,On){let jn=1,Un=hn.length,tr=Qt.length;if(wn!==void 0&&(wn=String(wn).toLowerCase(),wn==="ucs2"||wn==="ucs-2"||wn==="utf16le"||wn==="utf-16le")){if(hn.length<2||Qt.length<2)return-1;jn=2,Un/=2,tr/=2,Zt/=2}function qn(Wn,Zn){return jn===1?Wn[Zn]:Wn.readUInt16BE(Zn*jn)}let Xn;if(On){let Wn=-1;for(Xn=Zt;XnUn&&(Zt=Un-tr),Xn=Zt;Xn>=0;Xn--){let Wn=!0;for(let Zn=0;ZnOn&&(wn=On)):wn=On;const jn=Qt.length;wn>jn/2&&(wn=jn/2);let Un;for(Un=0;Un>>0,isFinite(wn)?(wn=wn>>>0,On===void 0&&(On="utf8")):(On=wn,wn=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const jn=this.length-Zt;if((wn===void 0||wn>jn)&&(wn=jn),Qt.length>0&&(wn<0||Zt<0)||Zt>this.length)throw new RangeError("Attempt to write outside buffer bounds");On||(On="utf8");let Un=!1;for(;;)switch(On){case"hex":return Tt(this,Qt,Zt,wn);case"utf8":case"utf-8":return Mt(this,Qt,Zt,wn);case"ascii":case"latin1":case"binary":return Lt(this,Qt,Zt,wn);case"base64":return jt(this,Qt,Zt,wn);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Rt(this,Qt,Zt,wn);default:if(Un)throw new TypeError("Unknown encoding: "+On);On=(""+On).toLowerCase(),Un=!0}},st.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function $t(hn,Qt,Zt){return Qt===0&&Zt===hn.length?et.fromByteArray(hn):et.fromByteArray(hn.slice(Qt,Zt))}function xt(hn,Qt,Zt){Zt=Math.min(hn.length,Zt);const wn=[];let On=Qt;for(;On239?4:jn>223?3:jn>191?2:1;if(On+tr<=Zt){let qn,Xn,Wn,Zn;switch(tr){case 1:jn<128&&(Un=jn);break;case 2:qn=hn[On+1],(qn&192)===128&&(Zn=(jn&31)<<6|qn&63,Zn>127&&(Un=Zn));break;case 3:qn=hn[On+1],Xn=hn[On+2],(qn&192)===128&&(Xn&192)===128&&(Zn=(jn&15)<<12|(qn&63)<<6|Xn&63,Zn>2047&&(Zn<55296||Zn>57343)&&(Un=Zn));break;case 4:qn=hn[On+1],Xn=hn[On+2],Wn=hn[On+3],(qn&192)===128&&(Xn&192)===128&&(Wn&192)===128&&(Zn=(jn&15)<<18|(qn&63)<<12|(Xn&63)<<6|Wn&63,Zn>65535&&Zn<1114112&&(Un=Zn))}}Un===null?(Un=65533,tr=1):Un>65535&&(Un-=65536,wn.push(Un>>>10&1023|55296),Un=56320|Un&1023),wn.push(Un),On+=tr}return Ot(wn)}const It=4096;function Ot(hn){const Qt=hn.length;if(Qt<=It)return String.fromCharCode.apply(String,hn);let Zt="",wn=0;for(;wnwn)&&(Zt=wn);let On="";for(let jn=Qt;jnwn&&(Qt=wn),Zt<0?(Zt+=wn,Zt<0&&(Zt=0)):Zt>wn&&(Zt=wn),ZtZt)throw new RangeError("Trying to access beyond buffer length")}st.prototype.readUintLE=st.prototype.readUIntLE=function(Qt,Zt,wn){Qt=Qt>>>0,Zt=Zt>>>0,wn||Nt(Qt,Zt,this.length);let On=this[Qt],jn=1,Un=0;for(;++Un>>0,Zt=Zt>>>0,wn||Nt(Qt,Zt,this.length);let On=this[Qt+--Zt],jn=1;for(;Zt>0&&(jn*=256);)On+=this[Qt+--Zt]*jn;return On},st.prototype.readUint8=st.prototype.readUInt8=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,1,this.length),this[Qt]},st.prototype.readUint16LE=st.prototype.readUInt16LE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,2,this.length),this[Qt]|this[Qt+1]<<8},st.prototype.readUint16BE=st.prototype.readUInt16BE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,2,this.length),this[Qt]<<8|this[Qt+1]},st.prototype.readUint32LE=st.prototype.readUInt32LE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,4,this.length),(this[Qt]|this[Qt+1]<<8|this[Qt+2]<<16)+this[Qt+3]*16777216},st.prototype.readUint32BE=st.prototype.readUInt32BE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,4,this.length),this[Qt]*16777216+(this[Qt+1]<<16|this[Qt+2]<<8|this[Qt+3])},st.prototype.readBigUInt64LE=Mn(function(Qt){Qt=Qt>>>0,Tn(Qt,"offset");const Zt=this[Qt],wn=this[Qt+7];(Zt===void 0||wn===void 0)&&Rn(Qt,this.length-8);const On=Zt+this[++Qt]*2**8+this[++Qt]*2**16+this[++Qt]*2**24,jn=this[++Qt]+this[++Qt]*2**8+this[++Qt]*2**16+wn*2**24;return BigInt(On)+(BigInt(jn)<>>0,Tn(Qt,"offset");const Zt=this[Qt],wn=this[Qt+7];(Zt===void 0||wn===void 0)&&Rn(Qt,this.length-8);const On=Zt*2**24+this[++Qt]*2**16+this[++Qt]*2**8+this[++Qt],jn=this[++Qt]*2**24+this[++Qt]*2**16+this[++Qt]*2**8+wn;return(BigInt(On)<>>0,Zt=Zt>>>0,wn||Nt(Qt,Zt,this.length);let On=this[Qt],jn=1,Un=0;for(;++Un=jn&&(On-=Math.pow(2,8*Zt)),On},st.prototype.readIntBE=function(Qt,Zt,wn){Qt=Qt>>>0,Zt=Zt>>>0,wn||Nt(Qt,Zt,this.length);let On=Zt,jn=1,Un=this[Qt+--On];for(;On>0&&(jn*=256);)Un+=this[Qt+--On]*jn;return jn*=128,Un>=jn&&(Un-=Math.pow(2,8*Zt)),Un},st.prototype.readInt8=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,1,this.length),this[Qt]&128?(255-this[Qt]+1)*-1:this[Qt]},st.prototype.readInt16LE=function(Qt,Zt){Qt=Qt>>>0,Zt||Nt(Qt,2,this.length);const wn=this[Qt]|this[Qt+1]<<8;return wn&32768?wn|4294901760:wn},st.prototype.readInt16BE=function(Qt,Zt){Qt=Qt>>>0,Zt||Nt(Qt,2,this.length);const wn=this[Qt+1]|this[Qt]<<8;return wn&32768?wn|4294901760:wn},st.prototype.readInt32LE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,4,this.length),this[Qt]|this[Qt+1]<<8|this[Qt+2]<<16|this[Qt+3]<<24},st.prototype.readInt32BE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,4,this.length),this[Qt]<<24|this[Qt+1]<<16|this[Qt+2]<<8|this[Qt+3]},st.prototype.readBigInt64LE=Mn(function(Qt){Qt=Qt>>>0,Tn(Qt,"offset");const Zt=this[Qt],wn=this[Qt+7];(Zt===void 0||wn===void 0)&&Rn(Qt,this.length-8);const On=this[Qt+4]+this[Qt+5]*2**8+this[Qt+6]*2**16+(wn<<24);return(BigInt(On)<>>0,Tn(Qt,"offset");const Zt=this[Qt],wn=this[Qt+7];(Zt===void 0||wn===void 0)&&Rn(Qt,this.length-8);const On=(Zt<<24)+this[++Qt]*2**16+this[++Qt]*2**8+this[++Qt];return(BigInt(On)<>>0,Zt||Nt(Qt,4,this.length),nt.read(this,Qt,!0,23,4)},st.prototype.readFloatBE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,4,this.length),nt.read(this,Qt,!1,23,4)},st.prototype.readDoubleLE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,8,this.length),nt.read(this,Qt,!0,52,8)},st.prototype.readDoubleBE=function(Qt,Zt){return Qt=Qt>>>0,Zt||Nt(Qt,8,this.length),nt.read(this,Qt,!1,52,8)};function Ct(hn,Qt,Zt,wn,On,jn){if(!st.isBuffer(hn))throw new TypeError('"buffer" argument must be a Buffer instance');if(Qt>On||Qthn.length)throw new RangeError("Index out of range")}st.prototype.writeUintLE=st.prototype.writeUIntLE=function(Qt,Zt,wn,On){if(Qt=+Qt,Zt=Zt>>>0,wn=wn>>>0,!On){const tr=Math.pow(2,8*wn)-1;Ct(this,Qt,Zt,wn,tr,0)}let jn=1,Un=0;for(this[Zt]=Qt&255;++Un>>0,wn=wn>>>0,!On){const tr=Math.pow(2,8*wn)-1;Ct(this,Qt,Zt,wn,tr,0)}let jn=wn-1,Un=1;for(this[Zt+jn]=Qt&255;--jn>=0&&(Un*=256);)this[Zt+jn]=Qt/Un&255;return Zt+wn},st.prototype.writeUint8=st.prototype.writeUInt8=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,1,255,0),this[Zt]=Qt&255,Zt+1},st.prototype.writeUint16LE=st.prototype.writeUInt16LE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,2,65535,0),this[Zt]=Qt&255,this[Zt+1]=Qt>>>8,Zt+2},st.prototype.writeUint16BE=st.prototype.writeUInt16BE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,2,65535,0),this[Zt]=Qt>>>8,this[Zt+1]=Qt&255,Zt+2},st.prototype.writeUint32LE=st.prototype.writeUInt32LE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,4,4294967295,0),this[Zt+3]=Qt>>>24,this[Zt+2]=Qt>>>16,this[Zt+1]=Qt>>>8,this[Zt]=Qt&255,Zt+4},st.prototype.writeUint32BE=st.prototype.writeUInt32BE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,4,4294967295,0),this[Zt]=Qt>>>24,this[Zt+1]=Qt>>>16,this[Zt+2]=Qt>>>8,this[Zt+3]=Qt&255,Zt+4};function Ht(hn,Qt,Zt,wn,On){en(Qt,wn,On,hn,Zt,7);let jn=Number(Qt&BigInt(4294967295));hn[Zt++]=jn,jn=jn>>8,hn[Zt++]=jn,jn=jn>>8,hn[Zt++]=jn,jn=jn>>8,hn[Zt++]=jn;let Un=Number(Qt>>BigInt(32)&BigInt(4294967295));return hn[Zt++]=Un,Un=Un>>8,hn[Zt++]=Un,Un=Un>>8,hn[Zt++]=Un,Un=Un>>8,hn[Zt++]=Un,Zt}function Jt(hn,Qt,Zt,wn,On){en(Qt,wn,On,hn,Zt,7);let jn=Number(Qt&BigInt(4294967295));hn[Zt+7]=jn,jn=jn>>8,hn[Zt+6]=jn,jn=jn>>8,hn[Zt+5]=jn,jn=jn>>8,hn[Zt+4]=jn;let Un=Number(Qt>>BigInt(32)&BigInt(4294967295));return hn[Zt+3]=Un,Un=Un>>8,hn[Zt+2]=Un,Un=Un>>8,hn[Zt+1]=Un,Un=Un>>8,hn[Zt]=Un,Zt+8}st.prototype.writeBigUInt64LE=Mn(function(Qt,Zt=0){return Ht(this,Qt,Zt,BigInt(0),BigInt("0xffffffffffffffff"))}),st.prototype.writeBigUInt64BE=Mn(function(Qt,Zt=0){return Jt(this,Qt,Zt,BigInt(0),BigInt("0xffffffffffffffff"))}),st.prototype.writeIntLE=function(Qt,Zt,wn,On){if(Qt=+Qt,Zt=Zt>>>0,!On){const qn=Math.pow(2,8*wn-1);Ct(this,Qt,Zt,wn,qn-1,-qn)}let jn=0,Un=1,tr=0;for(this[Zt]=Qt&255;++jn>0)-tr&255;return Zt+wn},st.prototype.writeIntBE=function(Qt,Zt,wn,On){if(Qt=+Qt,Zt=Zt>>>0,!On){const qn=Math.pow(2,8*wn-1);Ct(this,Qt,Zt,wn,qn-1,-qn)}let jn=wn-1,Un=1,tr=0;for(this[Zt+jn]=Qt&255;--jn>=0&&(Un*=256);)Qt<0&&tr===0&&this[Zt+jn+1]!==0&&(tr=1),this[Zt+jn]=(Qt/Un>>0)-tr&255;return Zt+wn},st.prototype.writeInt8=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,1,127,-128),Qt<0&&(Qt=255+Qt+1),this[Zt]=Qt&255,Zt+1},st.prototype.writeInt16LE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,2,32767,-32768),this[Zt]=Qt&255,this[Zt+1]=Qt>>>8,Zt+2},st.prototype.writeInt16BE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,2,32767,-32768),this[Zt]=Qt>>>8,this[Zt+1]=Qt&255,Zt+2},st.prototype.writeInt32LE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,4,2147483647,-2147483648),this[Zt]=Qt&255,this[Zt+1]=Qt>>>8,this[Zt+2]=Qt>>>16,this[Zt+3]=Qt>>>24,Zt+4},st.prototype.writeInt32BE=function(Qt,Zt,wn){return Qt=+Qt,Zt=Zt>>>0,wn||Ct(this,Qt,Zt,4,2147483647,-2147483648),Qt<0&&(Qt=4294967295+Qt+1),this[Zt]=Qt>>>24,this[Zt+1]=Qt>>>16,this[Zt+2]=Qt>>>8,this[Zt+3]=Qt&255,Zt+4},st.prototype.writeBigInt64LE=Mn(function(Qt,Zt=0){return Ht(this,Qt,Zt,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),st.prototype.writeBigInt64BE=Mn(function(Qt,Zt=0){return Jt(this,Qt,Zt,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function nn(hn,Qt,Zt,wn,On,jn){if(Zt+wn>hn.length)throw new RangeError("Index out of range");if(Zt<0)throw new RangeError("Index out of range")}function Yt(hn,Qt,Zt,wn,On){return Qt=+Qt,Zt=Zt>>>0,On||nn(hn,Qt,Zt,4),nt.write(hn,Qt,Zt,wn,23,4),Zt+4}st.prototype.writeFloatLE=function(Qt,Zt,wn){return Yt(this,Qt,Zt,!0,wn)},st.prototype.writeFloatBE=function(Qt,Zt,wn){return Yt(this,Qt,Zt,!1,wn)};function fn(hn,Qt,Zt,wn,On){return Qt=+Qt,Zt=Zt>>>0,On||nn(hn,Qt,Zt,8),nt.write(hn,Qt,Zt,wn,52,8),Zt+8}st.prototype.writeDoubleLE=function(Qt,Zt,wn){return fn(this,Qt,Zt,!0,wn)},st.prototype.writeDoubleBE=function(Qt,Zt,wn){return fn(this,Qt,Zt,!1,wn)},st.prototype.copy=function(Qt,Zt,wn,On){if(!st.isBuffer(Qt))throw new TypeError("argument should be a Buffer");if(wn||(wn=0),!On&&On!==0&&(On=this.length),Zt>=Qt.length&&(Zt=Qt.length),Zt||(Zt=0),On>0&&On=this.length)throw new RangeError("Index out of range");if(On<0)throw new RangeError("sourceEnd out of bounds");On>this.length&&(On=this.length),Qt.length-Zt>>0,wn=wn===void 0?this.length:wn>>>0,Qt||(Qt=0);let jn;if(typeof Qt=="number")for(jn=Zt;jn2**32?On=En(String(Zt)):typeof Zt=="bigint"&&(On=String(Zt),(Zt>BigInt(2)**BigInt(32)||Zt<-(BigInt(2)**BigInt(32)))&&(On=En(On)),On+="n"),wn+=` It must be ${Qt}. Received ${On}`,wn},RangeError);function En(hn){let Qt="",Zt=hn.length;const wn=hn[0]==="-"?1:0;for(;Zt>=wn+4;Zt-=3)Qt=`_${hn.slice(Zt-3,Zt)}${Qt}`;return`${hn.slice(0,Zt)}${Qt}`}function an(hn,Qt,Zt){Tn(Qt,"offset"),(hn[Qt]===void 0||hn[Qt+Zt]===void 0)&&Rn(Qt,hn.length-(Zt+1))}function en(hn,Qt,Zt,wn,On,jn){if(hn>Zt||hn3?Qt===0||Qt===BigInt(0)?tr=`>= 0${Un} and < 2${Un} ** ${(jn+1)*8}${Un}`:tr=`>= -(2${Un} ** ${(jn+1)*8-1}${Un}) and < 2 ** ${(jn+1)*8-1}${Un}`:tr=`>= ${Qt}${Un} and <= ${Zt}${Un}`,new cn.ERR_OUT_OF_RANGE("value",tr,hn)}an(wn,On,jn)}function Tn(hn,Qt){if(typeof hn!="number")throw new cn.ERR_INVALID_ARG_TYPE(Qt,"number",hn)}function Rn(hn,Qt,Zt){throw Math.floor(hn)!==hn?(Tn(hn,Zt),new cn.ERR_OUT_OF_RANGE(Zt||"offset","an integer",hn)):Qt<0?new cn.ERR_BUFFER_OUT_OF_BOUNDS:new cn.ERR_OUT_OF_RANGE(Zt||"offset",`>= ${Zt?1:0} and <= ${Qt}`,hn)}const An=/[^+/0-9A-Za-z-_]/g;function yn(hn){if(hn=hn.split("=")[0],hn=hn.trim().replace(An,""),hn.length<2)return"";for(;hn.length%4!==0;)hn=hn+"=";return hn}function kn(hn,Qt){Qt=Qt||1/0;let Zt;const wn=hn.length;let On=null;const jn=[];for(let Un=0;Un55295&&Zt<57344){if(!On){if(Zt>56319){(Qt-=3)>-1&&jn.push(239,191,189);continue}else if(Un+1===wn){(Qt-=3)>-1&&jn.push(239,191,189);continue}On=Zt;continue}if(Zt<56320){(Qt-=3)>-1&&jn.push(239,191,189),On=Zt;continue}Zt=(On-55296<<10|Zt-56320)+65536}else On&&(Qt-=3)>-1&&jn.push(239,191,189);if(On=null,Zt<128){if((Qt-=1)<0)break;jn.push(Zt)}else if(Zt<2048){if((Qt-=2)<0)break;jn.push(Zt>>6|192,Zt&63|128)}else if(Zt<65536){if((Qt-=3)<0)break;jn.push(Zt>>12|224,Zt>>6&63|128,Zt&63|128)}else if(Zt<1114112){if((Qt-=4)<0)break;jn.push(Zt>>18|240,Zt>>12&63|128,Zt>>6&63|128,Zt&63|128)}else throw new Error("Invalid code point")}return jn}function dn(hn){const Qt=[];for(let Zt=0;Zt>8,On=Zt%256,jn.push(On),jn.push(wn);return jn}function Cn(hn){return et.toByteArray(yn(hn))}function $n(hn,Qt,Zt,wn){let On;for(On=0;On=Qt.length||On>=hn.length);++On)Qt[On+Zt]=hn[On];return On}function un(hn,Qt){return hn instanceof Qt||hn!=null&&hn.constructor!=null&&hn.constructor.name!=null&&hn.constructor.name===Qt.name}function rn(hn){return hn!==hn}const Sn=function(){const hn="0123456789abcdef",Qt=new Array(256);for(let Zt=0;Zt<16;++Zt){const wn=Zt*16;for(let On=0;On<16;++On)Qt[wn+On]=hn[Zt]+hn[On]}return Qt}();function Mn(hn){return typeof BigInt>"u"?Nn:hn}function Nn(){throw new Error("BigInt not supported")}})(buffer$2);var browser$d={exports:{}},process$1=browser$d.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch{cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch{cachedClearTimeout=defaultClearTimeout}})();function runTimeout(tt){if(cachedSetTimeout===setTimeout)return setTimeout(tt,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(tt,0);try{return cachedSetTimeout(tt,0)}catch{try{return cachedSetTimeout.call(null,tt,0)}catch{return cachedSetTimeout.call(this,tt,0)}}}function runClearTimeout(tt){if(cachedClearTimeout===clearTimeout)return clearTimeout(tt);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(tt);try{return cachedClearTimeout(tt)}catch{try{return cachedClearTimeout.call(null,tt)}catch{return cachedClearTimeout.call(this,tt)}}}var queue$2=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue$2=currentQueue.concat(queue$2):queueIndex=-1,queue$2.length&&drainQueue())}function drainQueue(){if(!draining){var tt=runTimeout(cleanUpNextTick);draining=!0;for(var et=queue$2.length;et;){for(currentQueue=queue$2,queue$2=[];++queueIndex1)for(var nt=1;nt()=>(et||tt((et={exports:{}}).exports,et),et.exports);var ax=ox( * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(tt){function et(Ut,Wt){var Ft=Ut.length;Ut.push(Wt);e:for(;0>>1,Ct=Ut[Nt];if(0>>1;Ntit(nn,Ft))Ytit(fn,nn)?(Ut[Nt]=fn,Ut[Yt]=Ft,Nt=Yt):(Ut[Nt]=nn,Ut[Jt]=Ft,Nt=Jt);else if(Ytit(fn,Ft))Ut[Nt]=fn,Ut[Yt]=Ft,Nt=Yt;else break e}}return Wt}function it(Ut,Wt){var Ft=Ut.sortIndex-Wt.sortIndex;return Ft!==0?Ft:Ut.id-Wt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var ot=performance;tt.unstable_now=function(){return ot.now()}}else{var at=Date,st=at.now();tt.unstable_now=function(){return at.now()-st}}var lt=[],ct=[],ut=1,ht=null,dt=3,pt=!1,mt=!1,gt=!1,yt=typeof setTimeout=="function"?setTimeout:null,bt=typeof clearTimeout=="function"?clearTimeout:null,wt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function vt(Ut){for(var Wt=nt(ct);Wt!==null;){if(Wt.callback===null)rt(ct);else if(Wt.startTime<=Ut)rt(ct),Wt.sortIndex=Wt.expirationTime,et(lt,Wt);else break;Wt=nt(ct)}}function kt(Ut){if(gt=!1,vt(Ut),!mt)if(nt(lt)!==null)mt=!0,Ot(St);else{var Wt=nt(ct);Wt!==null&&zt(kt,Wt.startTime-Ut)}}function St(Ut,Wt){mt=!1,gt&&(gt=!1,bt(Et),Et=-1),pt=!0;var Ft=dt;try{for(vt(Wt),ht=nt(lt);ht!==null&&(!(ht.expirationTime>Wt)||Ut&&!jt());){var Nt=ht.callback;if(typeof Nt=="function"){ht.callback=null,dt=ht.priorityLevel;var Ct=Nt(ht.expirationTime<=Wt);Wt=tt.unstable_now(),typeof Ct=="function"?ht.callback=Ct:ht===nt(lt)&&rt(lt),vt(Wt)}else rt(lt);ht=nt(lt)}if(ht!==null)var Ht=!0;else{var Jt=nt(ct);Jt!==null&&zt(kt,Jt.startTime-Wt),Ht=!1}return Ht}finally{ht=null,dt=Ft,pt=!1}}var Tt=!1,At=null,Et=-1,Mt=5,Lt=-1;function jt(){return!(tt.unstable_now()-LtUt||125Nt?(Ut.sortIndex=Ft,et(ct,Ut),nt(lt)===null&&Ut===nt(ct)&&(gt?(bt(Et),Et=-1):gt=!0,zt(kt,Ft-Nt))):(Ut.sortIndex=Ct,et(lt,Ut),mt||pt||(mt=!0,Ot(St))),Ut},tt.unstable_shouldYield=jt,tt.unstable_wrapCallback=function(Ut){var Wt=dt;return function(){var Ft=dt;dt=Wt;try{return Ut.apply(this,arguments)}finally{dt=Ft}}}})(scheduler_production_min$1);scheduler$1.exports=scheduler_production_min$1;var schedulerExports$1=scheduler$1.exports;/** + */(function(tt){function et(Ut,Wt){var Ft=Ut.length;Ut.push(Wt);e:for(;0>>1,Ct=Ut[Nt];if(0>>1;Ntit(nn,Ft))Ytit(fn,nn)?(Ut[Nt]=fn,Ut[Yt]=Ft,Nt=Yt):(Ut[Nt]=nn,Ut[Jt]=Ft,Nt=Jt);else if(Ytit(fn,Ft))Ut[Nt]=fn,Ut[Yt]=Ft,Nt=Yt;else break e}}return Wt}function it(Ut,Wt){var Ft=Ut.sortIndex-Wt.sortIndex;return Ft!==0?Ft:Ut.id-Wt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var ot=performance;tt.unstable_now=function(){return ot.now()}}else{var at=Date,st=at.now();tt.unstable_now=function(){return at.now()-st}}var lt=[],ct=[],ut=1,ht=null,dt=3,pt=!1,mt=!1,gt=!1,yt=typeof setTimeout=="function"?setTimeout:null,bt=typeof clearTimeout=="function"?clearTimeout:null,wt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function vt(Ut){for(var Wt=nt(ct);Wt!==null;){if(Wt.callback===null)rt(ct);else if(Wt.startTime<=Ut)rt(ct),Wt.sortIndex=Wt.expirationTime,et(lt,Wt);else break;Wt=nt(ct)}}function kt(Ut){if(gt=!1,vt(Ut),!mt)if(nt(lt)!==null)mt=!0,Ot(St);else{var Wt=nt(ct);Wt!==null&&zt(kt,Wt.startTime-Ut)}}function St(Ut,Wt){mt=!1,gt&&(gt=!1,bt(Tt),Tt=-1),pt=!0;var Ft=dt;try{for(vt(Wt),ht=nt(lt);ht!==null&&(!(ht.expirationTime>Wt)||Ut&&!jt());){var Nt=ht.callback;if(typeof Nt=="function"){ht.callback=null,dt=ht.priorityLevel;var Ct=Nt(ht.expirationTime<=Wt);Wt=tt.unstable_now(),typeof Ct=="function"?ht.callback=Ct:ht===nt(lt)&&rt(lt),vt(Wt)}else rt(lt);ht=nt(lt)}if(ht!==null)var Ht=!0;else{var Jt=nt(ct);Jt!==null&&zt(kt,Jt.startTime-Wt),Ht=!1}return Ht}finally{ht=null,dt=Ft,pt=!1}}var Et=!1,At=null,Tt=-1,Mt=5,Lt=-1;function jt(){return!(tt.unstable_now()-LtUt||125Nt?(Ut.sortIndex=Ft,et(ct,Ut),nt(lt)===null&&Ut===nt(ct)&&(gt?(bt(Tt),Tt=-1):gt=!0,zt(kt,Ft-Nt))):(Ut.sortIndex=Ct,et(lt,Ut),mt||pt||(mt=!0,Ot(St))),Ut},tt.unstable_shouldYield=jt,tt.unstable_wrapCallback=function(Ut){var Wt=dt;return function(){var Ft=dt;dt=Wt;try{return Ut.apply(this,arguments)}finally{dt=Ft}}}})(scheduler_production_min$1);scheduler$1.exports=scheduler_production_min$1;var schedulerExports$1=scheduler$1.exports;/** * @license React * react-dom.production.min.js * @@ -39,13 +39,13 @@ var ox=(tt,et)=>()=>(et||tt((et={exports:{}}).exports,et),et.exports);var ax=ox( `+La+tt}var Na=!1;function Oa(tt,et){if(!tt||Na)return"";Na=!0;var nt=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(et)if(et=function(){throw Error()},Object.defineProperty(et.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(et,[])}catch(ct){var rt=ct}Reflect.construct(tt,[],et)}else{try{et.call()}catch(ct){rt=ct}tt.call(et.prototype)}else{try{throw Error()}catch(ct){rt=ct}tt()}}catch(ct){if(ct&&rt&&typeof ct.stack=="string"){for(var it=ct.stack.split(` `),ot=rt.stack.split(` `),at=it.length-1,st=ot.length-1;1<=at&&0<=st&&it[at]!==ot[st];)st--;for(;1<=at&&0<=st;at--,st--)if(it[at]!==ot[st]){if(at!==1||st!==1)do if(at--,st--,0>st||it[at]!==ot[st]){var lt=` -`+it[at].replace(" at new "," at ");return tt.displayName&<.includes("")&&(lt=lt.replace("",tt.displayName)),lt}while(1<=at&&0<=st);break}}}finally{Na=!1,Error.prepareStackTrace=nt}return(tt=tt?tt.displayName||tt.name:"")?Ma(tt):""}function Pa(tt){switch(tt.tag){case 5:return Ma(tt.type);case 16:return Ma("Lazy");case 13:return Ma("Suspense");case 19:return Ma("SuspenseList");case 0:case 2:case 15:return tt=Oa(tt.type,!1),tt;case 11:return tt=Oa(tt.type.render,!1),tt;case 1:return tt=Oa(tt.type,!0),tt;default:return""}}function Qa(tt){if(tt==null)return null;if(typeof tt=="function")return tt.displayName||tt.name||null;if(typeof tt=="string")return tt;switch(tt){case ya:return"Fragment";case wa:return"Portal";case Aa:return"Profiler";case za:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if(typeof tt=="object")switch(tt.$$typeof){case Ca:return(tt.displayName||"Context")+".Consumer";case Ba:return(tt._context.displayName||"Context")+".Provider";case Da:var et=tt.render;return tt=tt.displayName,tt||(tt=et.displayName||et.name||"",tt=tt!==""?"ForwardRef("+tt+")":"ForwardRef"),tt;case Ga:return et=tt.displayName||null,et!==null?et:Qa(tt.type)||"Memo";case Ha:et=tt._payload,tt=tt._init;try{return Qa(tt(et))}catch{}}return null}function Ra(tt){var et=tt.type;switch(tt.tag){case 24:return"Cache";case 9:return(et.displayName||"Context")+".Consumer";case 10:return(et._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return tt=et.render,tt=tt.displayName||tt.name||"",et.displayName||(tt!==""?"ForwardRef("+tt+")":"ForwardRef");case 7:return"Fragment";case 5:return et;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa(et);case 8:return et===za?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof et=="function")return et.displayName||et.name||null;if(typeof et=="string")return et}return null}function Sa(tt){switch(typeof tt){case"boolean":case"number":case"string":case"undefined":return tt;case"object":return tt;default:return""}}function Ta(tt){var et=tt.type;return(tt=tt.nodeName)&&tt.toLowerCase()==="input"&&(et==="checkbox"||et==="radio")}function Ua(tt){var et=Ta(tt)?"checked":"value",nt=Object.getOwnPropertyDescriptor(tt.constructor.prototype,et),rt=""+tt[et];if(!tt.hasOwnProperty(et)&&typeof nt<"u"&&typeof nt.get=="function"&&typeof nt.set=="function"){var it=nt.get,ot=nt.set;return Object.defineProperty(tt,et,{configurable:!0,get:function(){return it.call(this)},set:function(at){rt=""+at,ot.call(this,at)}}),Object.defineProperty(tt,et,{enumerable:nt.enumerable}),{getValue:function(){return rt},setValue:function(at){rt=""+at},stopTracking:function(){tt._valueTracker=null,delete tt[et]}}}}function Va(tt){tt._valueTracker||(tt._valueTracker=Ua(tt))}function Wa(tt){if(!tt)return!1;var et=tt._valueTracker;if(!et)return!0;var nt=et.getValue(),rt="";return tt&&(rt=Ta(tt)?tt.checked?"true":"false":tt.value),tt=rt,tt!==nt?(et.setValue(tt),!0):!1}function Xa(tt){if(tt=tt||(typeof document<"u"?document:void 0),typeof tt>"u")return null;try{return tt.activeElement||tt.body}catch{return tt.body}}function Ya(tt,et){var nt=et.checked;return A$5({},et,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:nt??tt._wrapperState.initialChecked})}function Za(tt,et){var nt=et.defaultValue==null?"":et.defaultValue,rt=et.checked!=null?et.checked:et.defaultChecked;nt=Sa(et.value!=null?et.value:nt),tt._wrapperState={initialChecked:rt,initialValue:nt,controlled:et.type==="checkbox"||et.type==="radio"?et.checked!=null:et.value!=null}}function ab(tt,et){et=et.checked,et!=null&&ta(tt,"checked",et,!1)}function bb(tt,et){ab(tt,et);var nt=Sa(et.value),rt=et.type;if(nt!=null)rt==="number"?(nt===0&&tt.value===""||tt.value!=nt)&&(tt.value=""+nt):tt.value!==""+nt&&(tt.value=""+nt);else if(rt==="submit"||rt==="reset"){tt.removeAttribute("value");return}et.hasOwnProperty("value")?cb(tt,et.type,nt):et.hasOwnProperty("defaultValue")&&cb(tt,et.type,Sa(et.defaultValue)),et.checked==null&&et.defaultChecked!=null&&(tt.defaultChecked=!!et.defaultChecked)}function db(tt,et,nt){if(et.hasOwnProperty("value")||et.hasOwnProperty("defaultValue")){var rt=et.type;if(!(rt!=="submit"&&rt!=="reset"||et.value!==void 0&&et.value!==null))return;et=""+tt._wrapperState.initialValue,nt||et===tt.value||(tt.value=et),tt.defaultValue=et}nt=tt.name,nt!==""&&(tt.name=""),tt.defaultChecked=!!tt._wrapperState.initialChecked,nt!==""&&(tt.name=nt)}function cb(tt,et,nt){(et!=="number"||Xa(tt.ownerDocument)!==tt)&&(nt==null?tt.defaultValue=""+tt._wrapperState.initialValue:tt.defaultValue!==""+nt&&(tt.defaultValue=""+nt))}var eb=Array.isArray;function fb(tt,et,nt,rt){if(tt=tt.options,et){et={};for(var it=0;it"+et.valueOf().toString()+"",et=mb.firstChild;tt.firstChild;)tt.removeChild(tt.firstChild);for(;et.firstChild;)tt.appendChild(et.firstChild)}});function ob(tt,et){if(et){var nt=tt.firstChild;if(nt&&nt===tt.lastChild&&nt.nodeType===3){nt.nodeValue=et;return}}tt.textContent=et}var pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=["Webkit","ms","Moz","O"];Object.keys(pb).forEach(function(tt){qb.forEach(function(et){et=et+tt.charAt(0).toUpperCase()+tt.substring(1),pb[et]=pb[tt]})});function rb(tt,et,nt){return et==null||typeof et=="boolean"||et===""?"":nt||typeof et!="number"||et===0||pb.hasOwnProperty(tt)&&pb[tt]?(""+et).trim():et+"px"}function sb(tt,et){tt=tt.style;for(var nt in et)if(et.hasOwnProperty(nt)){var rt=nt.indexOf("--")===0,it=rb(nt,et[nt],rt);nt==="float"&&(nt="cssFloat"),rt?tt.setProperty(nt,it):tt[nt]=it}}var tb=A$5({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ub(tt,et){if(et){if(tb[tt]&&(et.children!=null||et.dangerouslySetInnerHTML!=null))throw Error(p$b(137,tt));if(et.dangerouslySetInnerHTML!=null){if(et.children!=null)throw Error(p$b(60));if(typeof et.dangerouslySetInnerHTML!="object"||!("__html"in et.dangerouslySetInnerHTML))throw Error(p$b(61))}if(et.style!=null&&typeof et.style!="object")throw Error(p$b(62))}}function vb(tt,et){if(tt.indexOf("-")===-1)return typeof et.is=="string";switch(tt){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wb=null;function xb(tt){return tt=tt.target||tt.srcElement||window,tt.correspondingUseElement&&(tt=tt.correspondingUseElement),tt.nodeType===3?tt.parentNode:tt}var yb=null,zb=null,Ab=null;function Bb(tt){if(tt=Cb(tt)){if(typeof yb!="function")throw Error(p$b(280));var et=tt.stateNode;et&&(et=Db(et),yb(tt.stateNode,tt.type,et))}}function Eb(tt){zb?Ab?Ab.push(tt):Ab=[tt]:zb=tt}function Fb(){if(zb){var tt=zb,et=Ab;if(Ab=zb=null,Bb(tt),et)for(tt=0;tt>>=0,tt===0?32:31-(pc(tt)/qc|0)|0}var rc=64,sc=4194304;function tc(tt){switch(tt&-tt){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return tt&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return tt&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return tt}}function uc(tt,et){var nt=tt.pendingLanes;if(nt===0)return 0;var rt=0,it=tt.suspendedLanes,ot=tt.pingedLanes,at=nt&268435455;if(at!==0){var st=at&~it;st!==0?rt=tc(st):(ot&=at,ot!==0&&(rt=tc(ot)))}else at=nt&~it,at!==0?rt=tc(at):ot!==0&&(rt=tc(ot));if(rt===0)return 0;if(et!==0&&et!==rt&&!(et&it)&&(it=rt&-rt,ot=et&-et,it>=ot||it===16&&(ot&4194240)!==0))return et;if(rt&4&&(rt|=nt&16),et=tt.entangledLanes,et!==0)for(tt=tt.entanglements,et&=rt;0nt;nt++)et.push(tt);return et}function Ac(tt,et,nt){tt.pendingLanes|=et,et!==536870912&&(tt.suspendedLanes=0,tt.pingedLanes=0),tt=tt.eventTimes,et=31-oc(et),tt[et]=nt}function Bc(tt,et){var nt=tt.pendingLanes&~et;tt.pendingLanes=et,tt.suspendedLanes=0,tt.pingedLanes=0,tt.expiredLanes&=et,tt.mutableReadLanes&=et,tt.entangledLanes&=et,et=tt.entanglements;var rt=tt.eventTimes;for(tt=tt.expirationTimes;0=be$1),ee$2=String.fromCharCode(32),fe$1=!1;function ge$1(tt,et){switch(tt){case"keyup":return $d.indexOf(et.keyCode)!==-1;case"keydown":return et.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he$1(tt){return tt=tt.detail,typeof tt=="object"&&"data"in tt?tt.data:null}var ie$1=!1;function je$1(tt,et){switch(tt){case"compositionend":return he$1(et);case"keypress":return et.which!==32?null:(fe$1=!0,ee$2);case"textInput":return tt=et.data,tt===ee$2&&fe$1?null:tt;default:return null}}function ke$1(tt,et){if(ie$1)return tt==="compositionend"||!ae$1&&ge$1(tt,et)?(tt=nd(),md=ld=kd=null,ie$1=!1,tt):null;switch(tt){case"paste":return null;case"keypress":if(!(et.ctrlKey||et.altKey||et.metaKey)||et.ctrlKey&&et.altKey){if(et.char&&1=et)return{node:nt,offset:et-tt};tt=rt}e:{for(;nt;){if(nt.nextSibling){nt=nt.nextSibling;break e}nt=nt.parentNode}nt=void 0}nt=Je(nt)}}function Le$1(tt,et){return tt&&et?tt===et?!0:tt&&tt.nodeType===3?!1:et&&et.nodeType===3?Le$1(tt,et.parentNode):"contains"in tt?tt.contains(et):tt.compareDocumentPosition?!!(tt.compareDocumentPosition(et)&16):!1:!1}function Me$2(){for(var tt=window,et=Xa();et instanceof tt.HTMLIFrameElement;){try{var nt=typeof et.contentWindow.location.href=="string"}catch{nt=!1}if(nt)tt=et.contentWindow;else break;et=Xa(tt.document)}return et}function Ne$2(tt){var et=tt&&tt.nodeName&&tt.nodeName.toLowerCase();return et&&(et==="input"&&(tt.type==="text"||tt.type==="search"||tt.type==="tel"||tt.type==="url"||tt.type==="password")||et==="textarea"||tt.contentEditable==="true")}function Oe$1(tt){var et=Me$2(),nt=tt.focusedElem,rt=tt.selectionRange;if(et!==nt&&nt&&nt.ownerDocument&&Le$1(nt.ownerDocument.documentElement,nt)){if(rt!==null&&Ne$2(nt)){if(et=rt.start,tt=rt.end,tt===void 0&&(tt=et),"selectionStart"in nt)nt.selectionStart=et,nt.selectionEnd=Math.min(tt,nt.value.length);else if(tt=(et=nt.ownerDocument||document)&&et.defaultView||window,tt.getSelection){tt=tt.getSelection();var it=nt.textContent.length,ot=Math.min(rt.start,it);rt=rt.end===void 0?ot:Math.min(rt.end,it),!tt.extend&&ot>rt&&(it=rt,rt=ot,ot=it),it=Ke(nt,ot);var at=Ke(nt,rt);it&&at&&(tt.rangeCount!==1||tt.anchorNode!==it.node||tt.anchorOffset!==it.offset||tt.focusNode!==at.node||tt.focusOffset!==at.offset)&&(et=et.createRange(),et.setStart(it.node,it.offset),tt.removeAllRanges(),ot>rt?(tt.addRange(et),tt.extend(at.node,at.offset)):(et.setEnd(at.node,at.offset),tt.addRange(et)))}}for(et=[],tt=nt;tt=tt.parentNode;)tt.nodeType===1&&et.push({element:tt,left:tt.scrollLeft,top:tt.scrollTop});for(typeof nt.focus=="function"&&nt.focus(),nt=0;nt=document.documentMode,Qe=null,Re$1=null,Se$1=null,Te$1=!1;function Ue(tt,et,nt){var rt=nt.window===nt?nt.document:nt.nodeType===9?nt:nt.ownerDocument;Te$1||Qe==null||Qe!==Xa(rt)||(rt=Qe,"selectionStart"in rt&&Ne$2(rt)?rt={start:rt.selectionStart,end:rt.selectionEnd}:(rt=(rt.ownerDocument&&rt.ownerDocument.defaultView||window).getSelection(),rt={anchorNode:rt.anchorNode,anchorOffset:rt.anchorOffset,focusNode:rt.focusNode,focusOffset:rt.focusOffset}),Se$1&&Ie(Se$1,rt)||(Se$1=rt,rt=oe$1(Re$1,"onSelect"),0Tf||(tt.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G$3(tt,et){Tf++,Sf[Tf]=tt.current,tt.current=et}var Vf={},H$4=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(tt,et){var nt=tt.type.contextTypes;if(!nt)return Vf;var rt=tt.stateNode;if(rt&&rt.__reactInternalMemoizedUnmaskedChildContext===et)return rt.__reactInternalMemoizedMaskedChildContext;var it={},ot;for(ot in nt)it[ot]=et[ot];return rt&&(tt=tt.stateNode,tt.__reactInternalMemoizedUnmaskedChildContext=et,tt.__reactInternalMemoizedMaskedChildContext=it),it}function Zf(tt){return tt=tt.childContextTypes,tt!=null}function $f(){E$4(Wf),E$4(H$4)}function ag(tt,et,nt){if(H$4.current!==Vf)throw Error(p$b(168));G$3(H$4,et),G$3(Wf,nt)}function bg(tt,et,nt){var rt=tt.stateNode;if(et=et.childContextTypes,typeof rt.getChildContext!="function")return nt;rt=rt.getChildContext();for(var it in rt)if(!(it in et))throw Error(p$b(108,Ra(tt)||"Unknown",it));return A$5({},nt,rt)}function cg(tt){return tt=(tt=tt.stateNode)&&tt.__reactInternalMemoizedMergedChildContext||Vf,Xf=H$4.current,G$3(H$4,tt),G$3(Wf,Wf.current),!0}function dg(tt,et,nt){var rt=tt.stateNode;if(!rt)throw Error(p$b(169));nt?(tt=bg(tt,et,Xf),rt.__reactInternalMemoizedMergedChildContext=tt,E$4(Wf),E$4(H$4),G$3(H$4,tt)):E$4(Wf),G$3(Wf,nt)}var eg=null,fg=!1,gg=!1;function hg(tt){eg===null?eg=[tt]:eg.push(tt)}function ig(tt){fg=!0,hg(tt)}function jg(){if(!gg&&eg!==null){gg=!0;var tt=0,et=C$4;try{var nt=eg;for(C$4=1;tt>=at,it-=at,rg=1<<32-oc(et)+it|nt<Et?(Mt=At,At=null):Mt=At.sibling;var Lt=dt(bt,At,vt[Et],kt);if(Lt===null){At===null&&(At=Mt);break}tt&&At&&Lt.alternate===null&&et(bt,At),wt=ot(Lt,wt,Et),Tt===null?St=Lt:Tt.sibling=Lt,Tt=Lt,At=Mt}if(Et===vt.length)return nt(bt,At),I$4&&tg(bt,Et),St;if(At===null){for(;EtEt?(Mt=At,At=null):Mt=At.sibling;var jt=dt(bt,At,Lt.value,kt);if(jt===null){At===null&&(At=Mt);break}tt&&At&&jt.alternate===null&&et(bt,At),wt=ot(jt,wt,Et),Tt===null?St=jt:Tt.sibling=jt,Tt=jt,At=Mt}if(Lt.done)return nt(bt,At),I$4&&tg(bt,Et),St;if(At===null){for(;!Lt.done;Et++,Lt=vt.next())Lt=ht(bt,Lt.value,kt),Lt!==null&&(wt=ot(Lt,wt,Et),Tt===null?St=Lt:Tt.sibling=Lt,Tt=Lt);return I$4&&tg(bt,Et),St}for(At=rt(bt,At);!Lt.done;Et++,Lt=vt.next())Lt=pt(At,bt,Et,Lt.value,kt),Lt!==null&&(tt&&Lt.alternate!==null&&At.delete(Lt.key===null?Et:Lt.key),wt=ot(Lt,wt,Et),Tt===null?St=Lt:Tt.sibling=Lt,Tt=Lt);return tt&&At.forEach(function(Rt){return et(bt,Rt)}),I$4&&tg(bt,Et),St}function yt(bt,wt,vt,kt){if(typeof vt=="object"&&vt!==null&&vt.type===ya&&vt.key===null&&(vt=vt.props.children),typeof vt=="object"&&vt!==null){switch(vt.$$typeof){case va:e:{for(var St=vt.key,Tt=wt;Tt!==null;){if(Tt.key===St){if(St=vt.type,St===ya){if(Tt.tag===7){nt(bt,Tt.sibling),wt=it(Tt,vt.props.children),wt.return=bt,bt=wt;break e}}else if(Tt.elementType===St||typeof St=="object"&&St!==null&&St.$$typeof===Ha&&uh(St)===Tt.type){nt(bt,Tt.sibling),wt=it(Tt,vt.props),wt.ref=sh$1(bt,Tt,vt),wt.return=bt,bt=wt;break e}nt(bt,Tt);break}else et(bt,Tt);Tt=Tt.sibling}vt.type===ya?(wt=Ah(vt.props.children,bt.mode,kt,vt.key),wt.return=bt,bt=wt):(kt=yh(vt.type,vt.key,vt.props,null,bt.mode,kt),kt.ref=sh$1(bt,wt,vt),kt.return=bt,bt=kt)}return at(bt);case wa:e:{for(Tt=vt.key;wt!==null;){if(wt.key===Tt)if(wt.tag===4&&wt.stateNode.containerInfo===vt.containerInfo&&wt.stateNode.implementation===vt.implementation){nt(bt,wt.sibling),wt=it(wt,vt.children||[]),wt.return=bt,bt=wt;break e}else{nt(bt,wt);break}else et(bt,wt);wt=wt.sibling}wt=zh(vt,bt.mode,kt),wt.return=bt,bt=wt}return at(bt);case Ha:return Tt=vt._init,yt(bt,wt,Tt(vt._payload),kt)}if(eb(vt))return mt(bt,wt,vt,kt);if(Ka(vt))return gt(bt,wt,vt,kt);th(bt,vt)}return typeof vt=="string"&&vt!==""||typeof vt=="number"?(vt=""+vt,wt!==null&&wt.tag===6?(nt(bt,wt.sibling),wt=it(wt,vt),wt.return=bt,bt=wt):(nt(bt,wt),wt=xh(vt,bt.mode,kt),wt.return=bt,bt=wt),at(bt)):nt(bt,wt)}return yt}var Bh=vh(!0),Ch$1=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(tt){if(tt===Dh)throw Error(p$b(174));return tt}function Ih(tt,et){switch(G$3(Gh,et),G$3(Fh,tt),G$3(Eh,Dh),tt=et.nodeType,tt){case 9:case 11:et=(et=et.documentElement)?et.namespaceURI:lb(null,"");break;default:tt=tt===8?et.parentNode:et,et=tt.namespaceURI||null,tt=tt.tagName,et=lb(et,tt)}E$4(Eh),G$3(Eh,et)}function Jh(){E$4(Eh),E$4(Fh),E$4(Gh)}function Kh$1(tt){Hh(Gh.current);var et=Hh(Eh.current),nt=lb(et,tt.type);et!==nt&&(G$3(Fh,tt),G$3(Eh,nt))}function Lh(tt){Fh.current===tt&&(E$4(Eh),E$4(Fh))}var M$4=Uf(0);function Mh(tt){for(var et=tt;et!==null;){if(et.tag===13){var nt=et.memoizedState;if(nt!==null&&(nt=nt.dehydrated,nt===null||nt.data==="$?"||nt.data==="$!"))return et}else if(et.tag===19&&et.memoizedProps.revealOrder!==void 0){if(et.flags&128)return et}else if(et.child!==null){et.child.return=et,et=et.child;continue}if(et===tt)break;for(;et.sibling===null;){if(et.return===null||et.return===tt)return null;et=et.return}et.sibling.return=et.return,et=et.sibling}return null}var Nh=[];function Oh(){for(var tt=0;ttnt?nt:4,tt(!0);var rt=Qh.transition;Qh.transition={};try{tt(!1),et()}finally{C$4=nt,Qh.transition=rt}}function Fi(){return di().memoizedState}function Gi(tt,et,nt){var rt=lh(tt);if(nt={lane:rt,action:nt,hasEagerState:!1,eagerState:null,next:null},Hi(tt))Ii(et,nt);else if(nt=Yg(tt,et,nt,rt),nt!==null){var it=L$5();mh(nt,tt,rt,it),Ji(nt,et,rt)}}function ri(tt,et,nt){var rt=lh(tt),it={lane:rt,action:nt,hasEagerState:!1,eagerState:null,next:null};if(Hi(tt))Ii(et,it);else{var ot=tt.alternate;if(tt.lanes===0&&(ot===null||ot.lanes===0)&&(ot=et.lastRenderedReducer,ot!==null))try{var at=et.lastRenderedState,st=ot(at,nt);if(it.hasEagerState=!0,it.eagerState=st,He$1(st,at)){var lt=et.interleaved;lt===null?(it.next=it,Xg(et)):(it.next=lt.next,lt.next=it),et.interleaved=it;return}}catch{}finally{}nt=Yg(tt,et,it,rt),nt!==null&&(it=L$5(),mh(nt,tt,rt,it),Ji(nt,et,rt))}}function Hi(tt){var et=tt.alternate;return tt===N$3||et!==null&&et===N$3}function Ii(tt,et){Th=Sh=!0;var nt=tt.pending;nt===null?et.next=et:(et.next=nt.next,nt.next=et),tt.pending=et}function Ji(tt,et,nt){if(nt&4194240){var rt=et.lanes;rt&=tt.pendingLanes,nt|=rt,et.lanes=nt,Cc(tt,nt)}}var ai={readContext:Vg,useCallback:Q$2,useContext:Q$2,useEffect:Q$2,useImperativeHandle:Q$2,useInsertionEffect:Q$2,useLayoutEffect:Q$2,useMemo:Q$2,useReducer:Q$2,useRef:Q$2,useState:Q$2,useDebugValue:Q$2,useDeferredValue:Q$2,useTransition:Q$2,useMutableSource:Q$2,useSyncExternalStore:Q$2,useId:Q$2,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(tt,et){return ci().memoizedState=[tt,et===void 0?null:et],tt},useContext:Vg,useEffect:vi,useImperativeHandle:function(tt,et,nt){return nt=nt!=null?nt.concat([tt]):null,ti(4194308,4,yi.bind(null,et,tt),nt)},useLayoutEffect:function(tt,et){return ti(4194308,4,tt,et)},useInsertionEffect:function(tt,et){return ti(4,2,tt,et)},useMemo:function(tt,et){var nt=ci();return et=et===void 0?null:et,tt=tt(),nt.memoizedState=[tt,et],tt},useReducer:function(tt,et,nt){var rt=ci();return et=nt!==void 0?nt(et):et,rt.memoizedState=rt.baseState=et,tt={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:tt,lastRenderedState:et},rt.queue=tt,tt=tt.dispatch=Gi.bind(null,N$3,tt),[rt.memoizedState,tt]},useRef:function(tt){var et=ci();return tt={current:tt},et.memoizedState=tt},useState:qi,useDebugValue:Ai,useDeferredValue:function(tt){return ci().memoizedState=tt},useTransition:function(){var tt=qi(!1),et=tt[0];return tt=Ei.bind(null,tt[1]),ci().memoizedState=tt,[et,tt]},useMutableSource:function(){},useSyncExternalStore:function(tt,et,nt){var rt=N$3,it=ci();if(I$4){if(nt===void 0)throw Error(p$b(407));nt=nt()}else{if(nt=et(),R$4===null)throw Error(p$b(349));Rh&30||ni(rt,et,nt)}it.memoizedState=nt;var ot={value:nt,getSnapshot:et};return it.queue=ot,vi(ki.bind(null,rt,ot,tt),[tt]),rt.flags|=2048,li(9,mi.bind(null,rt,ot,nt,et),void 0,null),nt},useId:function(){var tt=ci(),et=R$4.identifierPrefix;if(I$4){var nt=sg,rt=rg;nt=(rt&~(1<<32-oc(rt)-1)).toString(32)+nt,et=":"+et+"R"+nt,nt=Uh++,0")&&(lt=lt.replace("",tt.displayName)),lt}while(1<=at&&0<=st);break}}}finally{Na=!1,Error.prepareStackTrace=nt}return(tt=tt?tt.displayName||tt.name:"")?Ma(tt):""}function Pa(tt){switch(tt.tag){case 5:return Ma(tt.type);case 16:return Ma("Lazy");case 13:return Ma("Suspense");case 19:return Ma("SuspenseList");case 0:case 2:case 15:return tt=Oa(tt.type,!1),tt;case 11:return tt=Oa(tt.type.render,!1),tt;case 1:return tt=Oa(tt.type,!0),tt;default:return""}}function Qa(tt){if(tt==null)return null;if(typeof tt=="function")return tt.displayName||tt.name||null;if(typeof tt=="string")return tt;switch(tt){case ya:return"Fragment";case wa:return"Portal";case Aa:return"Profiler";case za:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if(typeof tt=="object")switch(tt.$$typeof){case Ca:return(tt.displayName||"Context")+".Consumer";case Ba:return(tt._context.displayName||"Context")+".Provider";case Da:var et=tt.render;return tt=tt.displayName,tt||(tt=et.displayName||et.name||"",tt=tt!==""?"ForwardRef("+tt+")":"ForwardRef"),tt;case Ga:return et=tt.displayName||null,et!==null?et:Qa(tt.type)||"Memo";case Ha:et=tt._payload,tt=tt._init;try{return Qa(tt(et))}catch{}}return null}function Ra(tt){var et=tt.type;switch(tt.tag){case 24:return"Cache";case 9:return(et.displayName||"Context")+".Consumer";case 10:return(et._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return tt=et.render,tt=tt.displayName||tt.name||"",et.displayName||(tt!==""?"ForwardRef("+tt+")":"ForwardRef");case 7:return"Fragment";case 5:return et;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa(et);case 8:return et===za?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof et=="function")return et.displayName||et.name||null;if(typeof et=="string")return et}return null}function Sa(tt){switch(typeof tt){case"boolean":case"number":case"string":case"undefined":return tt;case"object":return tt;default:return""}}function Ta(tt){var et=tt.type;return(tt=tt.nodeName)&&tt.toLowerCase()==="input"&&(et==="checkbox"||et==="radio")}function Ua(tt){var et=Ta(tt)?"checked":"value",nt=Object.getOwnPropertyDescriptor(tt.constructor.prototype,et),rt=""+tt[et];if(!tt.hasOwnProperty(et)&&typeof nt<"u"&&typeof nt.get=="function"&&typeof nt.set=="function"){var it=nt.get,ot=nt.set;return Object.defineProperty(tt,et,{configurable:!0,get:function(){return it.call(this)},set:function(at){rt=""+at,ot.call(this,at)}}),Object.defineProperty(tt,et,{enumerable:nt.enumerable}),{getValue:function(){return rt},setValue:function(at){rt=""+at},stopTracking:function(){tt._valueTracker=null,delete tt[et]}}}}function Va(tt){tt._valueTracker||(tt._valueTracker=Ua(tt))}function Wa(tt){if(!tt)return!1;var et=tt._valueTracker;if(!et)return!0;var nt=et.getValue(),rt="";return tt&&(rt=Ta(tt)?tt.checked?"true":"false":tt.value),tt=rt,tt!==nt?(et.setValue(tt),!0):!1}function Xa(tt){if(tt=tt||(typeof document<"u"?document:void 0),typeof tt>"u")return null;try{return tt.activeElement||tt.body}catch{return tt.body}}function Ya(tt,et){var nt=et.checked;return A$5({},et,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:nt??tt._wrapperState.initialChecked})}function Za(tt,et){var nt=et.defaultValue==null?"":et.defaultValue,rt=et.checked!=null?et.checked:et.defaultChecked;nt=Sa(et.value!=null?et.value:nt),tt._wrapperState={initialChecked:rt,initialValue:nt,controlled:et.type==="checkbox"||et.type==="radio"?et.checked!=null:et.value!=null}}function ab(tt,et){et=et.checked,et!=null&&ta(tt,"checked",et,!1)}function bb(tt,et){ab(tt,et);var nt=Sa(et.value),rt=et.type;if(nt!=null)rt==="number"?(nt===0&&tt.value===""||tt.value!=nt)&&(tt.value=""+nt):tt.value!==""+nt&&(tt.value=""+nt);else if(rt==="submit"||rt==="reset"){tt.removeAttribute("value");return}et.hasOwnProperty("value")?cb(tt,et.type,nt):et.hasOwnProperty("defaultValue")&&cb(tt,et.type,Sa(et.defaultValue)),et.checked==null&&et.defaultChecked!=null&&(tt.defaultChecked=!!et.defaultChecked)}function db(tt,et,nt){if(et.hasOwnProperty("value")||et.hasOwnProperty("defaultValue")){var rt=et.type;if(!(rt!=="submit"&&rt!=="reset"||et.value!==void 0&&et.value!==null))return;et=""+tt._wrapperState.initialValue,nt||et===tt.value||(tt.value=et),tt.defaultValue=et}nt=tt.name,nt!==""&&(tt.name=""),tt.defaultChecked=!!tt._wrapperState.initialChecked,nt!==""&&(tt.name=nt)}function cb(tt,et,nt){(et!=="number"||Xa(tt.ownerDocument)!==tt)&&(nt==null?tt.defaultValue=""+tt._wrapperState.initialValue:tt.defaultValue!==""+nt&&(tt.defaultValue=""+nt))}var eb=Array.isArray;function fb(tt,et,nt,rt){if(tt=tt.options,et){et={};for(var it=0;it"+et.valueOf().toString()+"",et=mb.firstChild;tt.firstChild;)tt.removeChild(tt.firstChild);for(;et.firstChild;)tt.appendChild(et.firstChild)}});function ob(tt,et){if(et){var nt=tt.firstChild;if(nt&&nt===tt.lastChild&&nt.nodeType===3){nt.nodeValue=et;return}}tt.textContent=et}var pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=["Webkit","ms","Moz","O"];Object.keys(pb).forEach(function(tt){qb.forEach(function(et){et=et+tt.charAt(0).toUpperCase()+tt.substring(1),pb[et]=pb[tt]})});function rb(tt,et,nt){return et==null||typeof et=="boolean"||et===""?"":nt||typeof et!="number"||et===0||pb.hasOwnProperty(tt)&&pb[tt]?(""+et).trim():et+"px"}function sb(tt,et){tt=tt.style;for(var nt in et)if(et.hasOwnProperty(nt)){var rt=nt.indexOf("--")===0,it=rb(nt,et[nt],rt);nt==="float"&&(nt="cssFloat"),rt?tt.setProperty(nt,it):tt[nt]=it}}var tb=A$5({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ub(tt,et){if(et){if(tb[tt]&&(et.children!=null||et.dangerouslySetInnerHTML!=null))throw Error(p$b(137,tt));if(et.dangerouslySetInnerHTML!=null){if(et.children!=null)throw Error(p$b(60));if(typeof et.dangerouslySetInnerHTML!="object"||!("__html"in et.dangerouslySetInnerHTML))throw Error(p$b(61))}if(et.style!=null&&typeof et.style!="object")throw Error(p$b(62))}}function vb(tt,et){if(tt.indexOf("-")===-1)return typeof et.is=="string";switch(tt){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wb=null;function xb(tt){return tt=tt.target||tt.srcElement||window,tt.correspondingUseElement&&(tt=tt.correspondingUseElement),tt.nodeType===3?tt.parentNode:tt}var yb=null,zb=null,Ab=null;function Bb(tt){if(tt=Cb(tt)){if(typeof yb!="function")throw Error(p$b(280));var et=tt.stateNode;et&&(et=Db(et),yb(tt.stateNode,tt.type,et))}}function Eb(tt){zb?Ab?Ab.push(tt):Ab=[tt]:zb=tt}function Fb(){if(zb){var tt=zb,et=Ab;if(Ab=zb=null,Bb(tt),et)for(tt=0;tt>>=0,tt===0?32:31-(pc(tt)/qc|0)|0}var rc=64,sc=4194304;function tc(tt){switch(tt&-tt){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return tt&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return tt&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return tt}}function uc(tt,et){var nt=tt.pendingLanes;if(nt===0)return 0;var rt=0,it=tt.suspendedLanes,ot=tt.pingedLanes,at=nt&268435455;if(at!==0){var st=at&~it;st!==0?rt=tc(st):(ot&=at,ot!==0&&(rt=tc(ot)))}else at=nt&~it,at!==0?rt=tc(at):ot!==0&&(rt=tc(ot));if(rt===0)return 0;if(et!==0&&et!==rt&&!(et&it)&&(it=rt&-rt,ot=et&-et,it>=ot||it===16&&(ot&4194240)!==0))return et;if(rt&4&&(rt|=nt&16),et=tt.entangledLanes,et!==0)for(tt=tt.entanglements,et&=rt;0nt;nt++)et.push(tt);return et}function Ac(tt,et,nt){tt.pendingLanes|=et,et!==536870912&&(tt.suspendedLanes=0,tt.pingedLanes=0),tt=tt.eventTimes,et=31-oc(et),tt[et]=nt}function Bc(tt,et){var nt=tt.pendingLanes&~et;tt.pendingLanes=et,tt.suspendedLanes=0,tt.pingedLanes=0,tt.expiredLanes&=et,tt.mutableReadLanes&=et,tt.entangledLanes&=et,et=tt.entanglements;var rt=tt.eventTimes;for(tt=tt.expirationTimes;0=be$1),ee$2=String.fromCharCode(32),fe$1=!1;function ge$1(tt,et){switch(tt){case"keyup":return $d.indexOf(et.keyCode)!==-1;case"keydown":return et.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he$1(tt){return tt=tt.detail,typeof tt=="object"&&"data"in tt?tt.data:null}var ie$1=!1;function je$1(tt,et){switch(tt){case"compositionend":return he$1(et);case"keypress":return et.which!==32?null:(fe$1=!0,ee$2);case"textInput":return tt=et.data,tt===ee$2&&fe$1?null:tt;default:return null}}function ke$1(tt,et){if(ie$1)return tt==="compositionend"||!ae$1&&ge$1(tt,et)?(tt=nd(),md=ld=kd=null,ie$1=!1,tt):null;switch(tt){case"paste":return null;case"keypress":if(!(et.ctrlKey||et.altKey||et.metaKey)||et.ctrlKey&&et.altKey){if(et.char&&1=et)return{node:nt,offset:et-tt};tt=rt}e:{for(;nt;){if(nt.nextSibling){nt=nt.nextSibling;break e}nt=nt.parentNode}nt=void 0}nt=Je(nt)}}function Le$1(tt,et){return tt&&et?tt===et?!0:tt&&tt.nodeType===3?!1:et&&et.nodeType===3?Le$1(tt,et.parentNode):"contains"in tt?tt.contains(et):tt.compareDocumentPosition?!!(tt.compareDocumentPosition(et)&16):!1:!1}function Me$2(){for(var tt=window,et=Xa();et instanceof tt.HTMLIFrameElement;){try{var nt=typeof et.contentWindow.location.href=="string"}catch{nt=!1}if(nt)tt=et.contentWindow;else break;et=Xa(tt.document)}return et}function Ne$2(tt){var et=tt&&tt.nodeName&&tt.nodeName.toLowerCase();return et&&(et==="input"&&(tt.type==="text"||tt.type==="search"||tt.type==="tel"||tt.type==="url"||tt.type==="password")||et==="textarea"||tt.contentEditable==="true")}function Oe$1(tt){var et=Me$2(),nt=tt.focusedElem,rt=tt.selectionRange;if(et!==nt&&nt&&nt.ownerDocument&&Le$1(nt.ownerDocument.documentElement,nt)){if(rt!==null&&Ne$2(nt)){if(et=rt.start,tt=rt.end,tt===void 0&&(tt=et),"selectionStart"in nt)nt.selectionStart=et,nt.selectionEnd=Math.min(tt,nt.value.length);else if(tt=(et=nt.ownerDocument||document)&&et.defaultView||window,tt.getSelection){tt=tt.getSelection();var it=nt.textContent.length,ot=Math.min(rt.start,it);rt=rt.end===void 0?ot:Math.min(rt.end,it),!tt.extend&&ot>rt&&(it=rt,rt=ot,ot=it),it=Ke(nt,ot);var at=Ke(nt,rt);it&&at&&(tt.rangeCount!==1||tt.anchorNode!==it.node||tt.anchorOffset!==it.offset||tt.focusNode!==at.node||tt.focusOffset!==at.offset)&&(et=et.createRange(),et.setStart(it.node,it.offset),tt.removeAllRanges(),ot>rt?(tt.addRange(et),tt.extend(at.node,at.offset)):(et.setEnd(at.node,at.offset),tt.addRange(et)))}}for(et=[],tt=nt;tt=tt.parentNode;)tt.nodeType===1&&et.push({element:tt,left:tt.scrollLeft,top:tt.scrollTop});for(typeof nt.focus=="function"&&nt.focus(),nt=0;nt=document.documentMode,Qe=null,Re$1=null,Se$1=null,Te$1=!1;function Ue(tt,et,nt){var rt=nt.window===nt?nt.document:nt.nodeType===9?nt:nt.ownerDocument;Te$1||Qe==null||Qe!==Xa(rt)||(rt=Qe,"selectionStart"in rt&&Ne$2(rt)?rt={start:rt.selectionStart,end:rt.selectionEnd}:(rt=(rt.ownerDocument&&rt.ownerDocument.defaultView||window).getSelection(),rt={anchorNode:rt.anchorNode,anchorOffset:rt.anchorOffset,focusNode:rt.focusNode,focusOffset:rt.focusOffset}),Se$1&&Ie(Se$1,rt)||(Se$1=rt,rt=oe$1(Re$1,"onSelect"),0Tf||(tt.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G$3(tt,et){Tf++,Sf[Tf]=tt.current,tt.current=et}var Vf={},H$4=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(tt,et){var nt=tt.type.contextTypes;if(!nt)return Vf;var rt=tt.stateNode;if(rt&&rt.__reactInternalMemoizedUnmaskedChildContext===et)return rt.__reactInternalMemoizedMaskedChildContext;var it={},ot;for(ot in nt)it[ot]=et[ot];return rt&&(tt=tt.stateNode,tt.__reactInternalMemoizedUnmaskedChildContext=et,tt.__reactInternalMemoizedMaskedChildContext=it),it}function Zf(tt){return tt=tt.childContextTypes,tt!=null}function $f(){E$4(Wf),E$4(H$4)}function ag(tt,et,nt){if(H$4.current!==Vf)throw Error(p$b(168));G$3(H$4,et),G$3(Wf,nt)}function bg(tt,et,nt){var rt=tt.stateNode;if(et=et.childContextTypes,typeof rt.getChildContext!="function")return nt;rt=rt.getChildContext();for(var it in rt)if(!(it in et))throw Error(p$b(108,Ra(tt)||"Unknown",it));return A$5({},nt,rt)}function cg(tt){return tt=(tt=tt.stateNode)&&tt.__reactInternalMemoizedMergedChildContext||Vf,Xf=H$4.current,G$3(H$4,tt),G$3(Wf,Wf.current),!0}function dg(tt,et,nt){var rt=tt.stateNode;if(!rt)throw Error(p$b(169));nt?(tt=bg(tt,et,Xf),rt.__reactInternalMemoizedMergedChildContext=tt,E$4(Wf),E$4(H$4),G$3(H$4,tt)):E$4(Wf),G$3(Wf,nt)}var eg=null,fg=!1,gg=!1;function hg(tt){eg===null?eg=[tt]:eg.push(tt)}function ig(tt){fg=!0,hg(tt)}function jg(){if(!gg&&eg!==null){gg=!0;var tt=0,et=C$4;try{var nt=eg;for(C$4=1;tt>=at,it-=at,rg=1<<32-oc(et)+it|nt<Tt?(Mt=At,At=null):Mt=At.sibling;var Lt=dt(bt,At,vt[Tt],kt);if(Lt===null){At===null&&(At=Mt);break}tt&&At&&Lt.alternate===null&&et(bt,At),wt=ot(Lt,wt,Tt),Et===null?St=Lt:Et.sibling=Lt,Et=Lt,At=Mt}if(Tt===vt.length)return nt(bt,At),I$4&&tg(bt,Tt),St;if(At===null){for(;TtTt?(Mt=At,At=null):Mt=At.sibling;var jt=dt(bt,At,Lt.value,kt);if(jt===null){At===null&&(At=Mt);break}tt&&At&&jt.alternate===null&&et(bt,At),wt=ot(jt,wt,Tt),Et===null?St=jt:Et.sibling=jt,Et=jt,At=Mt}if(Lt.done)return nt(bt,At),I$4&&tg(bt,Tt),St;if(At===null){for(;!Lt.done;Tt++,Lt=vt.next())Lt=ht(bt,Lt.value,kt),Lt!==null&&(wt=ot(Lt,wt,Tt),Et===null?St=Lt:Et.sibling=Lt,Et=Lt);return I$4&&tg(bt,Tt),St}for(At=rt(bt,At);!Lt.done;Tt++,Lt=vt.next())Lt=pt(At,bt,Tt,Lt.value,kt),Lt!==null&&(tt&&Lt.alternate!==null&&At.delete(Lt.key===null?Tt:Lt.key),wt=ot(Lt,wt,Tt),Et===null?St=Lt:Et.sibling=Lt,Et=Lt);return tt&&At.forEach(function(Rt){return et(bt,Rt)}),I$4&&tg(bt,Tt),St}function yt(bt,wt,vt,kt){if(typeof vt=="object"&&vt!==null&&vt.type===ya&&vt.key===null&&(vt=vt.props.children),typeof vt=="object"&&vt!==null){switch(vt.$$typeof){case va:e:{for(var St=vt.key,Et=wt;Et!==null;){if(Et.key===St){if(St=vt.type,St===ya){if(Et.tag===7){nt(bt,Et.sibling),wt=it(Et,vt.props.children),wt.return=bt,bt=wt;break e}}else if(Et.elementType===St||typeof St=="object"&&St!==null&&St.$$typeof===Ha&&uh(St)===Et.type){nt(bt,Et.sibling),wt=it(Et,vt.props),wt.ref=sh$1(bt,Et,vt),wt.return=bt,bt=wt;break e}nt(bt,Et);break}else et(bt,Et);Et=Et.sibling}vt.type===ya?(wt=Ah(vt.props.children,bt.mode,kt,vt.key),wt.return=bt,bt=wt):(kt=yh(vt.type,vt.key,vt.props,null,bt.mode,kt),kt.ref=sh$1(bt,wt,vt),kt.return=bt,bt=kt)}return at(bt);case wa:e:{for(Et=vt.key;wt!==null;){if(wt.key===Et)if(wt.tag===4&&wt.stateNode.containerInfo===vt.containerInfo&&wt.stateNode.implementation===vt.implementation){nt(bt,wt.sibling),wt=it(wt,vt.children||[]),wt.return=bt,bt=wt;break e}else{nt(bt,wt);break}else et(bt,wt);wt=wt.sibling}wt=zh(vt,bt.mode,kt),wt.return=bt,bt=wt}return at(bt);case Ha:return Et=vt._init,yt(bt,wt,Et(vt._payload),kt)}if(eb(vt))return mt(bt,wt,vt,kt);if(Ka(vt))return gt(bt,wt,vt,kt);th(bt,vt)}return typeof vt=="string"&&vt!==""||typeof vt=="number"?(vt=""+vt,wt!==null&&wt.tag===6?(nt(bt,wt.sibling),wt=it(wt,vt),wt.return=bt,bt=wt):(nt(bt,wt),wt=xh(vt,bt.mode,kt),wt.return=bt,bt=wt),at(bt)):nt(bt,wt)}return yt}var Bh=vh(!0),Ch$1=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(tt){if(tt===Dh)throw Error(p$b(174));return tt}function Ih(tt,et){switch(G$3(Gh,et),G$3(Fh,tt),G$3(Eh,Dh),tt=et.nodeType,tt){case 9:case 11:et=(et=et.documentElement)?et.namespaceURI:lb(null,"");break;default:tt=tt===8?et.parentNode:et,et=tt.namespaceURI||null,tt=tt.tagName,et=lb(et,tt)}E$4(Eh),G$3(Eh,et)}function Jh(){E$4(Eh),E$4(Fh),E$4(Gh)}function Kh$1(tt){Hh(Gh.current);var et=Hh(Eh.current),nt=lb(et,tt.type);et!==nt&&(G$3(Fh,tt),G$3(Eh,nt))}function Lh(tt){Fh.current===tt&&(E$4(Eh),E$4(Fh))}var M$4=Uf(0);function Mh(tt){for(var et=tt;et!==null;){if(et.tag===13){var nt=et.memoizedState;if(nt!==null&&(nt=nt.dehydrated,nt===null||nt.data==="$?"||nt.data==="$!"))return et}else if(et.tag===19&&et.memoizedProps.revealOrder!==void 0){if(et.flags&128)return et}else if(et.child!==null){et.child.return=et,et=et.child;continue}if(et===tt)break;for(;et.sibling===null;){if(et.return===null||et.return===tt)return null;et=et.return}et.sibling.return=et.return,et=et.sibling}return null}var Nh=[];function Oh(){for(var tt=0;ttnt?nt:4,tt(!0);var rt=Qh.transition;Qh.transition={};try{tt(!1),et()}finally{C$4=nt,Qh.transition=rt}}function Fi(){return di().memoizedState}function Gi(tt,et,nt){var rt=lh(tt);if(nt={lane:rt,action:nt,hasEagerState:!1,eagerState:null,next:null},Hi(tt))Ii(et,nt);else if(nt=Yg(tt,et,nt,rt),nt!==null){var it=L$5();mh(nt,tt,rt,it),Ji(nt,et,rt)}}function ri(tt,et,nt){var rt=lh(tt),it={lane:rt,action:nt,hasEagerState:!1,eagerState:null,next:null};if(Hi(tt))Ii(et,it);else{var ot=tt.alternate;if(tt.lanes===0&&(ot===null||ot.lanes===0)&&(ot=et.lastRenderedReducer,ot!==null))try{var at=et.lastRenderedState,st=ot(at,nt);if(it.hasEagerState=!0,it.eagerState=st,He$1(st,at)){var lt=et.interleaved;lt===null?(it.next=it,Xg(et)):(it.next=lt.next,lt.next=it),et.interleaved=it;return}}catch{}finally{}nt=Yg(tt,et,it,rt),nt!==null&&(it=L$5(),mh(nt,tt,rt,it),Ji(nt,et,rt))}}function Hi(tt){var et=tt.alternate;return tt===N$3||et!==null&&et===N$3}function Ii(tt,et){Th=Sh=!0;var nt=tt.pending;nt===null?et.next=et:(et.next=nt.next,nt.next=et),tt.pending=et}function Ji(tt,et,nt){if(nt&4194240){var rt=et.lanes;rt&=tt.pendingLanes,nt|=rt,et.lanes=nt,Cc(tt,nt)}}var ai={readContext:Vg,useCallback:Q$2,useContext:Q$2,useEffect:Q$2,useImperativeHandle:Q$2,useInsertionEffect:Q$2,useLayoutEffect:Q$2,useMemo:Q$2,useReducer:Q$2,useRef:Q$2,useState:Q$2,useDebugValue:Q$2,useDeferredValue:Q$2,useTransition:Q$2,useMutableSource:Q$2,useSyncExternalStore:Q$2,useId:Q$2,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(tt,et){return ci().memoizedState=[tt,et===void 0?null:et],tt},useContext:Vg,useEffect:vi,useImperativeHandle:function(tt,et,nt){return nt=nt!=null?nt.concat([tt]):null,ti(4194308,4,yi.bind(null,et,tt),nt)},useLayoutEffect:function(tt,et){return ti(4194308,4,tt,et)},useInsertionEffect:function(tt,et){return ti(4,2,tt,et)},useMemo:function(tt,et){var nt=ci();return et=et===void 0?null:et,tt=tt(),nt.memoizedState=[tt,et],tt},useReducer:function(tt,et,nt){var rt=ci();return et=nt!==void 0?nt(et):et,rt.memoizedState=rt.baseState=et,tt={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:tt,lastRenderedState:et},rt.queue=tt,tt=tt.dispatch=Gi.bind(null,N$3,tt),[rt.memoizedState,tt]},useRef:function(tt){var et=ci();return tt={current:tt},et.memoizedState=tt},useState:qi,useDebugValue:Ai,useDeferredValue:function(tt){return ci().memoizedState=tt},useTransition:function(){var tt=qi(!1),et=tt[0];return tt=Ei.bind(null,tt[1]),ci().memoizedState=tt,[et,tt]},useMutableSource:function(){},useSyncExternalStore:function(tt,et,nt){var rt=N$3,it=ci();if(I$4){if(nt===void 0)throw Error(p$b(407));nt=nt()}else{if(nt=et(),R$4===null)throw Error(p$b(349));Rh&30||ni(rt,et,nt)}it.memoizedState=nt;var ot={value:nt,getSnapshot:et};return it.queue=ot,vi(ki.bind(null,rt,ot,tt),[tt]),rt.flags|=2048,li(9,mi.bind(null,rt,ot,nt,et),void 0,null),nt},useId:function(){var tt=ci(),et=R$4.identifierPrefix;if(I$4){var nt=sg,rt=rg;nt=(rt&~(1<<32-oc(rt)-1)).toString(32)+nt,et=":"+et+"R"+nt,nt=Uh++,0<\/script>",tt=tt.removeChild(tt.firstChild)):typeof rt.is=="string"?tt=at.createElement(nt,{is:rt.is}):(tt=at.createElement(nt),nt==="select"&&(at=tt,rt.multiple?at.multiple=!0:rt.size&&(at.size=rt.size))):tt=at.createElementNS(tt,nt),tt[Of]=et,tt[Pf]=rt,Aj(tt,et,!1,!1),et.stateNode=tt;e:{switch(at=vb(nt,rt),nt){case"dialog":D$3("cancel",tt),D$3("close",tt),it=rt;break;case"iframe":case"object":case"embed":D$3("load",tt),it=rt;break;case"video":case"audio":for(it=0;itHj&&(et.flags|=128,rt=!0,Ej(ot,!1),et.lanes=4194304)}else{if(!rt)if(tt=Mh(at),tt!==null){if(et.flags|=128,rt=!0,nt=tt.updateQueue,nt!==null&&(et.updateQueue=nt,et.flags|=4),Ej(ot,!0),ot.tail===null&&ot.tailMode==="hidden"&&!at.alternate&&!I$4)return S$5(et),null}else 2*B$4()-ot.renderingStartTime>Hj&&nt!==1073741824&&(et.flags|=128,rt=!0,Ej(ot,!1),et.lanes=4194304);ot.isBackwards?(at.sibling=et.child,et.child=at):(nt=ot.last,nt!==null?nt.sibling=at:et.child=at,ot.last=at)}return ot.tail!==null?(et=ot.tail,ot.rendering=et,ot.tail=et.sibling,ot.renderingStartTime=B$4(),et.sibling=null,nt=M$4.current,G$3(M$4,rt?nt&1|2:nt&1),et):(S$5(et),null);case 22:case 23:return Ij(),rt=et.memoizedState!==null,tt!==null&&tt.memoizedState!==null!==rt&&(et.flags|=8192),rt&&et.mode&1?gj&1073741824&&(S$5(et),et.subtreeFlags&6&&(et.flags|=8192)):S$5(et),null;case 24:return null;case 25:return null}throw Error(p$b(156,et.tag))}function Jj(tt,et){switch(wg(et),et.tag){case 1:return Zf(et.type)&&$f(),tt=et.flags,tt&65536?(et.flags=tt&-65537|128,et):null;case 3:return Jh(),E$4(Wf),E$4(H$4),Oh(),tt=et.flags,tt&65536&&!(tt&128)?(et.flags=tt&-65537|128,et):null;case 5:return Lh(et),null;case 13:if(E$4(M$4),tt=et.memoizedState,tt!==null&&tt.dehydrated!==null){if(et.alternate===null)throw Error(p$b(340));Ig()}return tt=et.flags,tt&65536?(et.flags=tt&-65537|128,et):null;case 19:return E$4(M$4),null;case 4:return Jh(),null;case 10:return Rg(et.type._context),null;case 22:case 23:return Ij(),null;case 24:return null;default:return null}}var Kj=!1,U$3=!1,Lj=typeof WeakSet=="function"?WeakSet:Set,V$5=null;function Mj(tt,et){var nt=tt.ref;if(nt!==null)if(typeof nt=="function")try{nt(null)}catch(rt){W$9(tt,et,rt)}else nt.current=null}function Nj(tt,et,nt){try{nt()}catch(rt){W$9(tt,et,rt)}}var Oj=!1;function Pj(tt,et){if(Cf=dd,tt=Me$2(),Ne$2(tt)){if("selectionStart"in tt)var nt={start:tt.selectionStart,end:tt.selectionEnd};else e:{nt=(nt=tt.ownerDocument)&&nt.defaultView||window;var rt=nt.getSelection&&nt.getSelection();if(rt&&rt.rangeCount!==0){nt=rt.anchorNode;var it=rt.anchorOffset,ot=rt.focusNode;rt=rt.focusOffset;try{nt.nodeType,ot.nodeType}catch{nt=null;break e}var at=0,st=-1,lt=-1,ct=0,ut=0,ht=tt,dt=null;t:for(;;){for(var pt;ht!==nt||it!==0&&ht.nodeType!==3||(st=at+it),ht!==ot||rt!==0&&ht.nodeType!==3||(lt=at+rt),ht.nodeType===3&&(at+=ht.nodeValue.length),(pt=ht.firstChild)!==null;)dt=ht,ht=pt;for(;;){if(ht===tt)break t;if(dt===nt&&++ct===it&&(st=at),dt===ot&&++ut===rt&&(lt=at),(pt=ht.nextSibling)!==null)break;ht=dt,dt=ht.parentNode}ht=pt}nt=st===-1||lt===-1?null:{start:st,end:lt}}else nt=null}nt=nt||{start:0,end:0}}else nt=null;for(Df={focusedElem:tt,selectionRange:nt},dd=!1,V$5=et;V$5!==null;)if(et=V$5,tt=et.child,(et.subtreeFlags&1028)!==0&&tt!==null)tt.return=et,V$5=tt;else for(;V$5!==null;){et=V$5;try{var mt=et.alternate;if(et.flags&1024)switch(et.tag){case 0:case 11:case 15:break;case 1:if(mt!==null){var gt=mt.memoizedProps,yt=mt.memoizedState,bt=et.stateNode,wt=bt.getSnapshotBeforeUpdate(et.elementType===et.type?gt:Lg(et.type,gt),yt);bt.__reactInternalSnapshotBeforeUpdate=wt}break;case 3:var vt=et.stateNode.containerInfo;vt.nodeType===1?vt.textContent="":vt.nodeType===9&&vt.documentElement&&vt.removeChild(vt.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p$b(163))}}catch(kt){W$9(et,et.return,kt)}if(tt=et.sibling,tt!==null){tt.return=et.return,V$5=tt;break}V$5=et.return}return mt=Oj,Oj=!1,mt}function Qj(tt,et,nt){var rt=et.updateQueue;if(rt=rt!==null?rt.lastEffect:null,rt!==null){var it=rt=rt.next;do{if((it.tag&tt)===tt){var ot=it.destroy;it.destroy=void 0,ot!==void 0&&Nj(et,nt,ot)}it=it.next}while(it!==rt)}}function Rj(tt,et){if(et=et.updateQueue,et=et!==null?et.lastEffect:null,et!==null){var nt=et=et.next;do{if((nt.tag&tt)===tt){var rt=nt.create;nt.destroy=rt()}nt=nt.next}while(nt!==et)}}function Sj(tt){var et=tt.ref;if(et!==null){var nt=tt.stateNode;switch(tt.tag){case 5:tt=nt;break;default:tt=nt}typeof et=="function"?et(tt):et.current=tt}}function Tj(tt){var et=tt.alternate;et!==null&&(tt.alternate=null,Tj(et)),tt.child=null,tt.deletions=null,tt.sibling=null,tt.tag===5&&(et=tt.stateNode,et!==null&&(delete et[Of],delete et[Pf],delete et[of],delete et[Qf],delete et[Rf])),tt.stateNode=null,tt.return=null,tt.dependencies=null,tt.memoizedProps=null,tt.memoizedState=null,tt.pendingProps=null,tt.stateNode=null,tt.updateQueue=null}function Uj(tt){return tt.tag===5||tt.tag===3||tt.tag===4}function Vj(tt){e:for(;;){for(;tt.sibling===null;){if(tt.return===null||Uj(tt.return))return null;tt=tt.return}for(tt.sibling.return=tt.return,tt=tt.sibling;tt.tag!==5&&tt.tag!==6&&tt.tag!==18;){if(tt.flags&2||tt.child===null||tt.tag===4)continue e;tt.child.return=tt,tt=tt.child}if(!(tt.flags&2))return tt.stateNode}}function Wj(tt,et,nt){var rt=tt.tag;if(rt===5||rt===6)tt=tt.stateNode,et?nt.nodeType===8?nt.parentNode.insertBefore(tt,et):nt.insertBefore(tt,et):(nt.nodeType===8?(et=nt.parentNode,et.insertBefore(tt,nt)):(et=nt,et.appendChild(tt)),nt=nt._reactRootContainer,nt!=null||et.onclick!==null||(et.onclick=Bf));else if(rt!==4&&(tt=tt.child,tt!==null))for(Wj(tt,et,nt),tt=tt.sibling;tt!==null;)Wj(tt,et,nt),tt=tt.sibling}function Xj(tt,et,nt){var rt=tt.tag;if(rt===5||rt===6)tt=tt.stateNode,et?nt.insertBefore(tt,et):nt.appendChild(tt);else if(rt!==4&&(tt=tt.child,tt!==null))for(Xj(tt,et,nt),tt=tt.sibling;tt!==null;)Xj(tt,et,nt),tt=tt.sibling}var X$2=null,Yj=!1;function Zj(tt,et,nt){for(nt=nt.child;nt!==null;)ak(tt,et,nt),nt=nt.sibling}function ak(tt,et,nt){if(lc&&typeof lc.onCommitFiberUnmount=="function")try{lc.onCommitFiberUnmount(kc,nt)}catch{}switch(nt.tag){case 5:U$3||Mj(nt,et);case 6:var rt=X$2,it=Yj;X$2=null,Zj(tt,et,nt),X$2=rt,Yj=it,X$2!==null&&(Yj?(tt=X$2,nt=nt.stateNode,tt.nodeType===8?tt.parentNode.removeChild(nt):tt.removeChild(nt)):X$2.removeChild(nt.stateNode));break;case 18:X$2!==null&&(Yj?(tt=X$2,nt=nt.stateNode,tt.nodeType===8?Kf(tt.parentNode,nt):tt.nodeType===1&&Kf(tt,nt),bd(tt)):Kf(X$2,nt.stateNode));break;case 4:rt=X$2,it=Yj,X$2=nt.stateNode.containerInfo,Yj=!0,Zj(tt,et,nt),X$2=rt,Yj=it;break;case 0:case 11:case 14:case 15:if(!U$3&&(rt=nt.updateQueue,rt!==null&&(rt=rt.lastEffect,rt!==null))){it=rt=rt.next;do{var ot=it,at=ot.destroy;ot=ot.tag,at!==void 0&&(ot&2||ot&4)&&Nj(nt,et,at),it=it.next}while(it!==rt)}Zj(tt,et,nt);break;case 1:if(!U$3&&(Mj(nt,et),rt=nt.stateNode,typeof rt.componentWillUnmount=="function"))try{rt.props=nt.memoizedProps,rt.state=nt.memoizedState,rt.componentWillUnmount()}catch(st){W$9(nt,et,st)}Zj(tt,et,nt);break;case 21:Zj(tt,et,nt);break;case 22:nt.mode&1?(U$3=(rt=U$3)||nt.memoizedState!==null,Zj(tt,et,nt),U$3=rt):Zj(tt,et,nt);break;default:Zj(tt,et,nt)}}function bk(tt){var et=tt.updateQueue;if(et!==null){tt.updateQueue=null;var nt=tt.stateNode;nt===null&&(nt=tt.stateNode=new Lj),et.forEach(function(rt){var it=ck.bind(null,tt,rt);nt.has(rt)||(nt.add(rt),rt.then(it,it))})}}function dk(tt,et){var nt=et.deletions;if(nt!==null)for(var rt=0;rtit&&(it=at),rt&=~ot}if(rt=it,rt=B$4()-rt,rt=(120>rt?120:480>rt?480:1080>rt?1080:1920>rt?1920:3e3>rt?3e3:4320>rt?4320:1960*mk(rt/1960))-rt,10tt?16:tt,xk===null)var rt=!1;else{if(tt=xk,xk=null,yk=0,K$7&6)throw Error(p$b(331));var it=K$7;for(K$7|=4,V$5=tt.current;V$5!==null;){var ot=V$5,at=ot.child;if(V$5.flags&16){var st=ot.deletions;if(st!==null){for(var lt=0;ltB$4()-gk?Lk(tt,0):sk|=nt),Ek(tt,et)}function Zk(tt,et){et===0&&(tt.mode&1?(et=sc,sc<<=1,!(sc&130023424)&&(sc=4194304)):et=1);var nt=L$5();tt=Zg(tt,et),tt!==null&&(Ac(tt,et,nt),Ek(tt,nt))}function vj(tt){var et=tt.memoizedState,nt=0;et!==null&&(nt=et.retryLane),Zk(tt,nt)}function ck(tt,et){var nt=0;switch(tt.tag){case 13:var rt=tt.stateNode,it=tt.memoizedState;it!==null&&(nt=it.retryLane);break;case 19:rt=tt.stateNode;break;default:throw Error(p$b(314))}rt!==null&&rt.delete(et),Zk(tt,nt)}var Wk;Wk=function(tt,et,nt){if(tt!==null)if(tt.memoizedProps!==et.pendingProps||Wf.current)Ug=!0;else{if(!(tt.lanes&nt)&&!(et.flags&128))return Ug=!1,zj(tt,et,nt);Ug=!!(tt.flags&131072)}else Ug=!1,I$4&&et.flags&1048576&&ug(et,ng,et.index);switch(et.lanes=0,et.tag){case 2:var rt=et.type;jj(tt,et),tt=et.pendingProps;var it=Yf(et,H$4.current);Tg(et,nt),it=Xh(null,et,rt,tt,it,nt);var ot=bi();return et.flags|=1,typeof it=="object"&&it!==null&&typeof it.render=="function"&&it.$$typeof===void 0?(et.tag=1,et.memoizedState=null,et.updateQueue=null,Zf(rt)?(ot=!0,cg(et)):ot=!1,et.memoizedState=it.state!==null&&it.state!==void 0?it.state:null,ah(et),it.updater=nh,et.stateNode=it,it._reactInternals=et,rh$1(et,rt,tt,nt),et=kj(null,et,rt,!0,ot,nt)):(et.tag=0,I$4&&ot&&vg(et),Yi(null,et,it,nt),et=et.child),et;case 16:rt=et.elementType;e:{switch(jj(tt,et),tt=et.pendingProps,it=rt._init,rt=it(rt._payload),et.type=rt,it=et.tag=$k(rt),tt=Lg(rt,tt),it){case 0:et=dj(null,et,rt,tt,nt);break e;case 1:et=ij(null,et,rt,tt,nt);break e;case 11:et=Zi(null,et,rt,tt,nt);break e;case 14:et=aj(null,et,rt,Lg(rt.type,tt),nt);break e}throw Error(p$b(306,rt,""))}return et;case 0:return rt=et.type,it=et.pendingProps,it=et.elementType===rt?it:Lg(rt,it),dj(tt,et,rt,it,nt);case 1:return rt=et.type,it=et.pendingProps,it=et.elementType===rt?it:Lg(rt,it),ij(tt,et,rt,it,nt);case 3:e:{if(lj(et),tt===null)throw Error(p$b(387));rt=et.pendingProps,ot=et.memoizedState,it=ot.element,bh(tt,et),gh(et,rt,null,nt);var at=et.memoizedState;if(rt=at.element,ot.isDehydrated)if(ot={element:rt,isDehydrated:!1,cache:at.cache,pendingSuspenseBoundaries:at.pendingSuspenseBoundaries,transitions:at.transitions},et.updateQueue.baseState=ot,et.memoizedState=ot,et.flags&256){it=Ki(Error(p$b(423)),et),et=mj(tt,et,rt,nt,it);break e}else if(rt!==it){it=Ki(Error(p$b(424)),et),et=mj(tt,et,rt,nt,it);break e}else for(yg=Lf(et.stateNode.containerInfo.firstChild),xg=et,I$4=!0,zg=null,nt=Ch$1(et,null,rt,nt),et.child=nt;nt;)nt.flags=nt.flags&-3|4096,nt=nt.sibling;else{if(Ig(),rt===it){et=$i(tt,et,nt);break e}Yi(tt,et,rt,nt)}et=et.child}return et;case 5:return Kh$1(et),tt===null&&Eg(et),rt=et.type,it=et.pendingProps,ot=tt!==null?tt.memoizedProps:null,at=it.children,Ef(rt,it)?at=null:ot!==null&&Ef(rt,ot)&&(et.flags|=32),hj(tt,et),Yi(tt,et,at,nt),et.child;case 6:return tt===null&&Eg(et),null;case 13:return pj(tt,et,nt);case 4:return Ih(et,et.stateNode.containerInfo),rt=et.pendingProps,tt===null?et.child=Bh(et,null,rt,nt):Yi(tt,et,rt,nt),et.child;case 11:return rt=et.type,it=et.pendingProps,it=et.elementType===rt?it:Lg(rt,it),Zi(tt,et,rt,it,nt);case 7:return Yi(tt,et,et.pendingProps,nt),et.child;case 8:return Yi(tt,et,et.pendingProps.children,nt),et.child;case 12:return Yi(tt,et,et.pendingProps.children,nt),et.child;case 10:e:{if(rt=et.type._context,it=et.pendingProps,ot=et.memoizedProps,at=it.value,G$3(Mg,rt._currentValue),rt._currentValue=at,ot!==null)if(He$1(ot.value,at)){if(ot.children===it.children&&!Wf.current){et=$i(tt,et,nt);break e}}else for(ot=et.child,ot!==null&&(ot.return=et);ot!==null;){var st=ot.dependencies;if(st!==null){at=ot.child;for(var lt=st.firstContext;lt!==null;){if(lt.context===rt){if(ot.tag===1){lt=ch$1(-1,nt&-nt),lt.tag=2;var ct=ot.updateQueue;if(ct!==null){ct=ct.shared;var ut=ct.pending;ut===null?lt.next=lt:(lt.next=ut.next,ut.next=lt),ct.pending=lt}}ot.lanes|=nt,lt=ot.alternate,lt!==null&&(lt.lanes|=nt),Sg(ot.return,nt,et),st.lanes|=nt;break}lt=lt.next}}else if(ot.tag===10)at=ot.type===et.type?null:ot.child;else if(ot.tag===18){if(at=ot.return,at===null)throw Error(p$b(341));at.lanes|=nt,st=at.alternate,st!==null&&(st.lanes|=nt),Sg(at,nt,et),at=ot.sibling}else at=ot.child;if(at!==null)at.return=ot;else for(at=ot;at!==null;){if(at===et){at=null;break}if(ot=at.sibling,ot!==null){ot.return=at.return,at=ot;break}at=at.return}ot=at}Yi(tt,et,it.children,nt),et=et.child}return et;case 9:return it=et.type,rt=et.pendingProps.children,Tg(et,nt),it=Vg(it),rt=rt(it),et.flags|=1,Yi(tt,et,rt,nt),et.child;case 14:return rt=et.type,it=Lg(rt,et.pendingProps),it=Lg(rt.type,it),aj(tt,et,rt,it,nt);case 15:return cj(tt,et,et.type,et.pendingProps,nt);case 17:return rt=et.type,it=et.pendingProps,it=et.elementType===rt?it:Lg(rt,it),jj(tt,et),et.tag=1,Zf(rt)?(tt=!0,cg(et)):tt=!1,Tg(et,nt),ph(et,rt,it),rh$1(et,rt,it,nt),kj(null,et,rt,!0,tt,nt);case 19:return yj(tt,et,nt);case 22:return ej(tt,et,nt)}throw Error(p$b(156,et.tag))};function Gk(tt,et){return ac(tt,et)}function al(tt,et,nt,rt){this.tag=tt,this.key=nt,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=et,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=rt,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bg$1(tt,et,nt,rt){return new al(tt,et,nt,rt)}function bj(tt){return tt=tt.prototype,!(!tt||!tt.isReactComponent)}function $k(tt){if(typeof tt=="function")return bj(tt)?1:0;if(tt!=null){if(tt=tt.$$typeof,tt===Da)return 11;if(tt===Ga)return 14}return 2}function wh(tt,et){var nt=tt.alternate;return nt===null?(nt=Bg$1(tt.tag,et,tt.key,tt.mode),nt.elementType=tt.elementType,nt.type=tt.type,nt.stateNode=tt.stateNode,nt.alternate=tt,tt.alternate=nt):(nt.pendingProps=et,nt.type=tt.type,nt.flags=0,nt.subtreeFlags=0,nt.deletions=null),nt.flags=tt.flags&14680064,nt.childLanes=tt.childLanes,nt.lanes=tt.lanes,nt.child=tt.child,nt.memoizedProps=tt.memoizedProps,nt.memoizedState=tt.memoizedState,nt.updateQueue=tt.updateQueue,et=tt.dependencies,nt.dependencies=et===null?null:{lanes:et.lanes,firstContext:et.firstContext},nt.sibling=tt.sibling,nt.index=tt.index,nt.ref=tt.ref,nt}function yh(tt,et,nt,rt,it,ot){var at=2;if(rt=tt,typeof tt=="function")bj(tt)&&(at=1);else if(typeof tt=="string")at=5;else e:switch(tt){case ya:return Ah(nt.children,it,ot,et);case za:at=8,it|=8;break;case Aa:return tt=Bg$1(12,nt,et,it|2),tt.elementType=Aa,tt.lanes=ot,tt;case Ea:return tt=Bg$1(13,nt,et,it),tt.elementType=Ea,tt.lanes=ot,tt;case Fa:return tt=Bg$1(19,nt,et,it),tt.elementType=Fa,tt.lanes=ot,tt;case Ia:return qj(nt,it,ot,et);default:if(typeof tt=="object"&&tt!==null)switch(tt.$$typeof){case Ba:at=10;break e;case Ca:at=9;break e;case Da:at=11;break e;case Ga:at=14;break e;case Ha:at=16,rt=null;break e}throw Error(p$b(130,tt==null?tt:typeof tt,""))}return et=Bg$1(at,nt,et,it),et.elementType=tt,et.type=rt,et.lanes=ot,et}function Ah(tt,et,nt,rt){return tt=Bg$1(7,tt,rt,et),tt.lanes=nt,tt}function qj(tt,et,nt,rt){return tt=Bg$1(22,tt,rt,et),tt.elementType=Ia,tt.lanes=nt,tt.stateNode={isHidden:!1},tt}function xh(tt,et,nt){return tt=Bg$1(6,tt,null,et),tt.lanes=nt,tt}function zh(tt,et,nt){return et=Bg$1(4,tt.children!==null?tt.children:[],tt.key,et),et.lanes=nt,et.stateNode={containerInfo:tt.containerInfo,pendingChildren:null,implementation:tt.implementation},et}function bl(tt,et,nt,rt,it){this.tag=et,this.containerInfo=tt,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zc(0),this.expirationTimes=zc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zc(0),this.identifierPrefix=rt,this.onRecoverableError=it,this.mutableSourceEagerHydrationData=null}function cl(tt,et,nt,rt,it,ot,at,st,lt){return tt=new bl(tt,et,nt,st,lt),et===1?(et=1,ot===!0&&(et|=8)):et=0,ot=Bg$1(3,null,null,et),tt.current=ot,ot.stateNode=tt,ot.memoizedState={element:rt,isDehydrated:nt,cache:null,transitions:null,pendingSuspenseBoundaries:null},ah(ot),tt}function dl(tt,et,nt){var rt=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(tt){console.error(tt)}}checkDCE(),reactDom.exports=reactDom_production_min;var reactDomExports=reactDom.exports;const ReactDOM=getDefaultExportFromCjs(reactDomExports);var createRoot$1,m$c=reactDomExports;createRoot$1=client.createRoot=m$c.createRoot,client.hydrateRoot=m$c.hydrateRoot;function _extends$r(){return _extends$r=Object.assign?Object.assign.bind():function(tt){for(var et=1;ettt.forEach(nt=>$6ed0406888f73fc4$var$setRef(nt,et))}function $6ed0406888f73fc4$export$c7b2cbe3552a0d05(...tt){return reactExports.useCallback($6ed0406888f73fc4$export$43e446d32b3d21af(...tt),tt)}const $5e63c961fc1ce211$export$8c6ed5c666ac1360=reactExports.forwardRef((tt,et)=>{const{children:nt,...rt}=tt,it=reactExports.Children.toArray(nt),ot=it.find($5e63c961fc1ce211$var$isSlottable);if(ot){const at=ot.props.children,st=it.map(lt=>lt===ot?reactExports.Children.count(at)>1?reactExports.Children.only(null):reactExports.isValidElement(at)?at.props.children:null:lt);return reactExports.createElement($5e63c961fc1ce211$var$SlotClone,_extends$r({},rt,{ref:et}),reactExports.isValidElement(at)?reactExports.cloneElement(at,void 0,st):null)}return reactExports.createElement($5e63c961fc1ce211$var$SlotClone,_extends$r({},rt,{ref:et}),nt)});$5e63c961fc1ce211$export$8c6ed5c666ac1360.displayName="Slot";const $5e63c961fc1ce211$var$SlotClone=reactExports.forwardRef((tt,et)=>{const{children:nt,...rt}=tt;return reactExports.isValidElement(nt)?reactExports.cloneElement(nt,{...$5e63c961fc1ce211$var$mergeProps(rt,nt.props),ref:et?$6ed0406888f73fc4$export$43e446d32b3d21af(et,nt.ref):nt.ref}):reactExports.Children.count(nt)>1?reactExports.Children.only(null):null});$5e63c961fc1ce211$var$SlotClone.displayName="SlotClone";const $5e63c961fc1ce211$export$d9f1ccf0bdb05d45=({children:tt})=>reactExports.createElement(reactExports.Fragment,null,tt);function $5e63c961fc1ce211$var$isSlottable(tt){return reactExports.isValidElement(tt)&&tt.type===$5e63c961fc1ce211$export$d9f1ccf0bdb05d45}function $5e63c961fc1ce211$var$mergeProps(tt,et){const nt={...et};for(const rt in et){const it=tt[rt],ot=et[rt];/^on[A-Z]/.test(rt)?it&&ot?nt[rt]=(...st)=>{ot(...st),it(...st)}:it&&(nt[rt]=it):rt==="style"?nt[rt]={...it,...ot}:rt==="className"&&(nt[rt]=[it,ot].filter(Boolean).join(" "))}return{...tt,...nt}}const $8927f6f2acc4f386$var$NODES=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],$8927f6f2acc4f386$export$250ffa63cdc0d034=$8927f6f2acc4f386$var$NODES.reduce((tt,et)=>{const nt=reactExports.forwardRef((rt,it)=>{const{asChild:ot,...at}=rt,st=ot?$5e63c961fc1ce211$export$8c6ed5c666ac1360:et;return reactExports.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),reactExports.createElement(st,_extends$r({},at,{ref:it}))});return nt.displayName=`Primitive.${et}`,{...tt,[et]:nt}},{});function $8927f6f2acc4f386$export$6d1a0317bde7de7f(tt,et){tt&&reactDomExports.flushSync(()=>tt.dispatchEvent(et))}const $f1701beae083dbae$export$602eac185826482c=reactExports.forwardRef((tt,et)=>{var nt;const{container:rt=globalThis==null||(nt=globalThis.document)===null||nt===void 0?void 0:nt.body,...it}=tt;return rt?ReactDOM.createPortal(reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div,_extends$r({},it,{ref:et})),rt):null}),$f1701beae083dbae$export$be92b6f5f03c0fe9=$f1701beae083dbae$export$602eac185826482c;var has=Object.prototype.hasOwnProperty;function dequal(tt,et){var nt,rt;if(tt===et)return!0;if(tt&&et&&(nt=tt.constructor)===et.constructor){if(nt===Date)return tt.getTime()===et.getTime();if(nt===RegExp)return tt.toString()===et.toString();if(nt===Array){if((rt=tt.length)===et.length)for(;rt--&&dequal(tt[rt],et[rt]););return rt===-1}if(!nt||typeof tt=="object"){rt=0;for(nt in tt)if(has.call(tt,nt)&&++rt&&!has.call(et,nt)||!(nt in et)||!dequal(tt[nt],et[nt]))return!1;return Object.keys(et).length===rt}}return tt!==tt&&et!==et}function shallow$1(tt,et){if(Object.is(tt,et))return!0;if(typeof tt!="object"||tt===null||typeof et!="object"||et===null)return!1;const nt=Object.keys(tt);if(nt.length!==Object.keys(et).length)return!1;for(let rt=0;rt0;)at[st]=arguments[st+4];tt.call(this,at),tt.captureStackTrace&&tt.captureStackTrace(this,et),this.rule=nt,this.value=rt,this.cause=it,this.target=ot}return tt&&(et.__proto__=tt),et.prototype=Object.create(tt&&tt.prototype),et.prototype.constructor=et,et}(Error),Context$2=function(et,nt){et===void 0&&(et=[]),nt===void 0&&(nt=[]),this.chain=et,this.nextRuleModifiers=nt};Context$2.prototype._applyRule=function(et,nt){var rt=this;return function(){for(var it=[],ot=arguments.length;ot--;)it[ot]=arguments[ot];return rt.chain.push(new Rule(nt,et.apply(rt,it),it,rt.nextRuleModifiers)),rt.nextRuleModifiers=[],rt}};Context$2.prototype._applyModifier=function(et,nt){return this.nextRuleModifiers.push(new Modifier(nt,et.simple,et.async)),this};Context$2.prototype._clone=function(){return new Context$2(this.chain.slice(),this.nextRuleModifiers.slice())};Context$2.prototype.test=function(et){return this.chain.every(function(nt){return nt._test(et)})};Context$2.prototype.testAll=function(et){var nt=[];return this.chain.forEach(function(rt){try{rt._check(et)}catch(it){nt.push(new ValidationError(rt,et,it))}}),nt};Context$2.prototype.check=function(et){this.chain.forEach(function(nt){try{nt._check(et)}catch(rt){throw new ValidationError(nt,et,rt)}})};Context$2.prototype.testAsync=function(et){var nt=this;return new Promise(function(rt,it){executeAsyncRules(et,nt.chain.slice(),rt,it)})};function executeAsyncRules(tt,et,nt,rt){if(et.length){var it=et.shift();it._testAsync(tt).then(function(){executeAsyncRules(tt,et,nt,rt)},function(ot){rt(new ValidationError(it,tt,ot))})}else nt(tt)}var consideredEmpty=function(tt,et){return et&&typeof tt=="string"&&tt.trim().length===0?!0:tt==null};function optional(tt,et){return et===void 0&&(et=!1),{simple:function(nt){return consideredEmpty(nt,et)||tt.check(nt)===void 0},async:function(nt){return consideredEmpty(nt,et)||tt.testAsync(nt)}}}function v8n(){return typeof Proxy<"u"?proxyContext(new Context$2):proxylessContext(new Context$2)}var customRules={};v8n.extend=function(tt){Object.assign(customRules,tt)};v8n.clearCustomRules=function(){customRules={}};function proxyContext(tt){return new Proxy(tt,{get:function(nt,rt){if(rt in nt)return nt[rt];var it=proxyContext(tt._clone());if(rt in availableModifiers)return it._applyModifier(availableModifiers[rt],rt);if(rt in customRules)return it._applyRule(customRules[rt],rt);if(rt in availableRules)return it._applyRule(availableRules[rt],rt)}})}function proxylessContext(tt){var et=function(it,ot){return Object.keys(it).forEach(function(at){ot[at]=function(){for(var st=[],lt=arguments.length;lt--;)st[lt]=arguments[lt];var ct=proxylessContext(ot._clone()),ut=ct._applyRule(it[at],at).apply(void 0,st);return ut}}),ot},nt=et(availableRules,tt),rt=et(customRules,nt);return Object.keys(availableModifiers).forEach(function(it){Object.defineProperty(rt,it,{get:function(){var ot=proxylessContext(rt._clone());return ot._applyModifier(availableModifiers[it],it)}})}),rt}var availableModifiers={not:{simple:function(tt){return function(et){return!tt(et)}},async:function(tt){return function(et){return Promise.resolve(tt(et)).then(function(nt){return!nt}).catch(function(){return!0})}}},some:{simple:function(tt){return function(et){return split$1(et).some(function(nt){try{return tt(nt)}catch{return!1}})}},async:function(tt){return function(et){return Promise.all(split$1(et).map(function(nt){try{return tt(nt).catch(function(){return!1})}catch{return!1}})).then(function(nt){return nt.some(Boolean)})}}},every:{simple:function(tt){return function(et){return et!==!1&&split$1(et).every(tt)}},async:function(tt){return function(et){return Promise.all(split$1(et).map(tt)).then(function(nt){return nt.every(Boolean)})}}},strict:{simple:function(tt,et){return function(nt){return isSchemaRule(et)&&nt&&typeof nt=="object"?Object.keys(et.args[0]).length===Object.keys(nt).length&&tt(nt):tt(nt)}},async:function(tt,et){return function(nt){return Promise.resolve(tt(nt)).then(function(rt){return isSchemaRule(et)&&nt&&typeof nt=="object"?Object.keys(et.args[0]).length===Object.keys(nt).length&&rt:rt}).catch(function(){return!1})}}}};function isSchemaRule(tt){return tt&&tt.name==="schema"&&tt.args.length>0&&typeof tt.args[0]=="object"}function split$1(tt){return typeof tt=="string"?tt.split(""):tt}var availableRules={equal:function(tt){return function(et){return et==tt}},exact:function(tt){return function(et){return et===tt}},number:function(tt){return tt===void 0&&(tt=!0),function(et){return typeof et=="number"&&(tt||isFinite(et))}},integer:function(){return function(tt){var et=Number.isInteger||isIntegerPolyfill;return et(tt)}},numeric:function(){return function(tt){return!isNaN(parseFloat(tt))&&isFinite(tt)}},string:function(){return testType("string")},boolean:function(){return testType("boolean")},undefined:function(){return testType("undefined")},null:function(){return testType("null")},array:function(){return testType("array")},object:function(){return testType("object")},instanceOf:function(tt){return function(et){return et instanceof tt}},pattern:function(tt){return function(et){return tt.test(et)}},lowercase:function(){return function(tt){return typeof tt=="boolean"||tt===tt.toLowerCase()&&tt.trim()!==""}},uppercase:function(){return function(tt){return tt===tt.toUpperCase()&&tt.trim()!==""}},vowel:function(){return function(tt){return/^[aeiou]+$/i.test(tt)}},consonant:function(){return function(tt){return/^(?=[^aeiou])([a-z]+)$/i.test(tt)}},first:function(tt){return function(et){return et[0]==tt}},last:function(tt){return function(et){return et[et.length-1]==tt}},empty:function(){return function(tt){return tt.length===0}},length:function(tt,et){return function(nt){return nt.length>=tt&&nt.length<=(et||tt)}},minLength:function(tt){return function(et){return et.length>=tt}},maxLength:function(tt){return function(et){return et.length<=tt}},negative:function(){return function(tt){return tt<0}},positive:function(){return function(tt){return tt>=0}},between:function(tt,et){return function(nt){return nt>=tt&&nt<=et}},range:function(tt,et){return function(nt){return nt>=tt&&nt<=et}},lessThan:function(tt){return function(et){return ettt}},greaterThanOrEqual:function(tt){return function(et){return et>=tt}},even:function(){return function(tt){return tt%2===0}},odd:function(){return function(tt){return tt%2!==0}},includes:function(tt){return function(et){return~et.indexOf(tt)}},schema:function(tt){return testSchema(tt)},passesAnyOf:function(){for(var tt=[],et=arguments.length;et--;)tt[et]=arguments[et];return function(nt){return tt.some(function(rt){return rt.test(nt)})}},optional};function testType(tt){return function(et){return Array.isArray(et)&&tt==="array"||et===null&&tt==="null"||typeof et===tt}}function isIntegerPolyfill(tt){return typeof tt=="number"&&isFinite(tt)&&Math.floor(tt)===tt}function testSchema(tt){return{simple:function(et){var nt=[];if(Object.keys(tt).forEach(function(rt){var it=tt[rt];try{it.check((et||{})[rt])}catch(ot){ot.target=rt,nt.push(ot)}}),nt.length>0)throw nt;return!0},async:function(et){var nt=[],rt=Object.keys(tt).map(function(it){var ot=tt[it];return ot.testAsync((et||{})[it]).catch(function(at){at.target=it,nt.push(at)})});return Promise.all(rt).then(function(){if(nt.length>0)throw nt;return!0})}}}var e$7="colors",t$8="sizes",r$a="space",n$9={gap:r$a,gridGap:r$a,columnGap:r$a,gridColumnGap:r$a,rowGap:r$a,gridRowGap:r$a,inset:r$a,insetBlock:r$a,insetBlockEnd:r$a,insetBlockStart:r$a,insetInline:r$a,insetInlineEnd:r$a,insetInlineStart:r$a,margin:r$a,marginTop:r$a,marginRight:r$a,marginBottom:r$a,marginLeft:r$a,marginBlock:r$a,marginBlockEnd:r$a,marginBlockStart:r$a,marginInline:r$a,marginInlineEnd:r$a,marginInlineStart:r$a,padding:r$a,paddingTop:r$a,paddingRight:r$a,paddingBottom:r$a,paddingLeft:r$a,paddingBlock:r$a,paddingBlockEnd:r$a,paddingBlockStart:r$a,paddingInline:r$a,paddingInlineEnd:r$a,paddingInlineStart:r$a,top:r$a,right:r$a,bottom:r$a,left:r$a,scrollMargin:r$a,scrollMarginTop:r$a,scrollMarginRight:r$a,scrollMarginBottom:r$a,scrollMarginLeft:r$a,scrollMarginX:r$a,scrollMarginY:r$a,scrollMarginBlock:r$a,scrollMarginBlockEnd:r$a,scrollMarginBlockStart:r$a,scrollMarginInline:r$a,scrollMarginInlineEnd:r$a,scrollMarginInlineStart:r$a,scrollPadding:r$a,scrollPaddingTop:r$a,scrollPaddingRight:r$a,scrollPaddingBottom:r$a,scrollPaddingLeft:r$a,scrollPaddingX:r$a,scrollPaddingY:r$a,scrollPaddingBlock:r$a,scrollPaddingBlockEnd:r$a,scrollPaddingBlockStart:r$a,scrollPaddingInline:r$a,scrollPaddingInlineEnd:r$a,scrollPaddingInlineStart:r$a,fontSize:"fontSizes",background:e$7,backgroundColor:e$7,backgroundImage:e$7,borderImage:e$7,border:e$7,borderBlock:e$7,borderBlockEnd:e$7,borderBlockStart:e$7,borderBottom:e$7,borderBottomColor:e$7,borderColor:e$7,borderInline:e$7,borderInlineEnd:e$7,borderInlineStart:e$7,borderLeft:e$7,borderLeftColor:e$7,borderRight:e$7,borderRightColor:e$7,borderTop:e$7,borderTopColor:e$7,caretColor:e$7,color:e$7,columnRuleColor:e$7,fill:e$7,outline:e$7,outlineColor:e$7,stroke:e$7,textDecorationColor:e$7,fontFamily:"fonts",fontWeight:"fontWeights",lineHeight:"lineHeights",letterSpacing:"letterSpacings",blockSize:t$8,minBlockSize:t$8,maxBlockSize:t$8,inlineSize:t$8,minInlineSize:t$8,maxInlineSize:t$8,width:t$8,minWidth:t$8,maxWidth:t$8,height:t$8,minHeight:t$8,maxHeight:t$8,flexBasis:t$8,gridTemplateColumns:t$8,gridTemplateRows:t$8,borderWidth:"borderWidths",borderTopWidth:"borderWidths",borderRightWidth:"borderWidths",borderBottomWidth:"borderWidths",borderLeftWidth:"borderWidths",borderStyle:"borderStyles",borderTopStyle:"borderStyles",borderRightStyle:"borderStyles",borderBottomStyle:"borderStyles",borderLeftStyle:"borderStyles",borderRadius:"radii",borderTopLeftRadius:"radii",borderTopRightRadius:"radii",borderBottomRightRadius:"radii",borderBottomLeftRadius:"radii",boxShadow:"shadows",textShadow:"shadows",transition:"transitions",zIndex:"zIndices"},i$9=(tt,et)=>typeof et=="function"?{"()":Function.prototype.toString.call(et)}:et,o$4=()=>{const tt=Object.create(null);return(et,nt,...rt)=>{const it=(ot=>JSON.stringify(ot,i$9))(et);return it in tt?tt[it]:tt[it]=nt(et,...rt)}},l$8=Symbol.for("sxs.internal"),s$7=(tt,et)=>Object.defineProperties(tt,Object.getOwnPropertyDescriptors(et)),a$6=tt=>{for(const et in tt)return!0;return!1},{hasOwnProperty:c$b}=Object.prototype,d$8=tt=>tt.includes("-")?tt:tt.replace(/[A-Z]/g,et=>"-"+et.toLowerCase()),g$b=/\s+(?![^()]*\))/,p$a=tt=>et=>tt(...typeof et=="string"?String(et).split(g$b):[et]),u$8={appearance:tt=>({WebkitAppearance:tt,appearance:tt}),backfaceVisibility:tt=>({WebkitBackfaceVisibility:tt,backfaceVisibility:tt}),backdropFilter:tt=>({WebkitBackdropFilter:tt,backdropFilter:tt}),backgroundClip:tt=>({WebkitBackgroundClip:tt,backgroundClip:tt}),boxDecorationBreak:tt=>({WebkitBoxDecorationBreak:tt,boxDecorationBreak:tt}),clipPath:tt=>({WebkitClipPath:tt,clipPath:tt}),content:tt=>({content:tt.includes('"')||tt.includes("'")||/^([A-Za-z]+\([^]*|[^]*-quote|inherit|initial|none|normal|revert|unset)$/.test(tt)?tt:`"${tt}"`}),hyphens:tt=>({WebkitHyphens:tt,hyphens:tt}),maskImage:tt=>({WebkitMaskImage:tt,maskImage:tt}),maskSize:tt=>({WebkitMaskSize:tt,maskSize:tt}),tabSize:tt=>({MozTabSize:tt,tabSize:tt}),textSizeAdjust:tt=>({WebkitTextSizeAdjust:tt,textSizeAdjust:tt}),userSelect:tt=>({WebkitUserSelect:tt,userSelect:tt}),marginBlock:p$a((tt,et)=>({marginBlockStart:tt,marginBlockEnd:et||tt})),marginInline:p$a((tt,et)=>({marginInlineStart:tt,marginInlineEnd:et||tt})),maxSize:p$a((tt,et)=>({maxBlockSize:tt,maxInlineSize:et||tt})),minSize:p$a((tt,et)=>({minBlockSize:tt,minInlineSize:et||tt})),paddingBlock:p$a((tt,et)=>({paddingBlockStart:tt,paddingBlockEnd:et||tt})),paddingInline:p$a((tt,et)=>({paddingInlineStart:tt,paddingInlineEnd:et||tt}))},h$c=/([\d.]+)([^]*)/,f$a=(tt,et)=>tt.length?tt.reduce((nt,rt)=>(nt.push(...et.map(it=>it.includes("&")?it.replace(/&/g,/[ +>|~]/.test(rt)&&/&.*&/.test(it)?`:is(${rt})`:rt):rt+" "+it)),nt),[]):et,m$b=(tt,et)=>tt in b$8&&typeof et=="string"?et.replace(/^((?:[^]*[^\w-])?)(fit-content|stretch)((?:[^\w-][^]*)?)$/,(nt,rt,it,ot)=>rt+(it==="stretch"?`-moz-available${ot};${d$8(tt)}:${rt}-webkit-fill-available`:`-moz-fit-content${ot};${d$8(tt)}:${rt}fit-content`)+ot):String(et),b$8={blockSize:1,height:1,inlineSize:1,maxBlockSize:1,maxHeight:1,maxInlineSize:1,maxWidth:1,minBlockSize:1,minHeight:1,minInlineSize:1,minWidth:1,width:1},S$4=tt=>tt?tt+"-":"",k$a=(tt,et,nt)=>tt.replace(/([+-])?((?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?)?(\$|--)([$\w-]+)/g,(rt,it,ot,at,st)=>at=="$"==!!ot?rt:(it||at=="--"?"calc(":"")+"var(--"+(at==="$"?S$4(et)+(st.includes("$")?"":S$4(nt))+st.replace(/\$/g,"-"):st)+")"+(it||at=="--"?"*"+(it||"")+(ot||"1")+")":"")),y$a=/\s*,\s*(?![^()]*\))/,B$3=Object.prototype.toString,$$3=(tt,et,nt,rt,it)=>{let ot,at,st;const lt=(ct,ut,ht)=>{let dt,pt;const mt=gt=>{for(dt in gt){const wt=dt.charCodeAt(0)===64,vt=wt&&Array.isArray(gt[dt])?gt[dt]:[gt[dt]];for(pt of vt){const kt=/[A-Z]/.test(bt=dt)?bt:bt.replace(/-[^]/g,Tt=>Tt[1].toUpperCase()),St=typeof pt=="object"&&pt&&pt.toString===B$3&&(!rt.utils[kt]||!ut.length);if(kt in rt.utils&&!St){const Tt=rt.utils[kt];if(Tt!==at){at=Tt,mt(Tt(pt)),at=null;continue}}else if(kt in u$8){const Tt=u$8[kt];if(Tt!==st){st=Tt,mt(Tt(pt)),st=null;continue}}if(wt&&(yt=dt.slice(1)in rt.media?"@media "+rt.media[dt.slice(1)]:dt,dt=yt.replace(/\(\s*([\w-]+)\s*(=|<|<=|>|>=)\s*([\w-]+)\s*(?:(<|<=|>|>=)\s*([\w-]+)\s*)?\)/g,(Tt,At,Et,Mt,Lt,jt)=>{const Rt=h$c.test(At),$t=.0625*(Rt?-1:1),[xt,It]=Rt?[Mt,At]:[At,Mt];return"("+(Et[0]==="="?"":Et[0]===">"===Rt?"max-":"min-")+xt+":"+(Et[0]!=="="&&Et.length===1?It.replace(h$c,(Ot,zt,Ut)=>Number(zt)+$t*(Et===">"?1:-1)+Ut):It)+(Lt?") and ("+(Lt[0]===">"?"min-":"max-")+xt+":"+(Lt.length===1?jt.replace(h$c,(Ot,zt,Ut)=>Number(zt)+$t*(Lt===">"?-1:1)+Ut):jt):"")+")"})),St){const Tt=wt?ht.concat(dt):[...ht],At=wt?[...ut]:f$a(ut,dt.split(y$a));ot!==void 0&&it(x$a(...ot)),ot=void 0,lt(pt,At,Tt)}else ot===void 0&&(ot=[[],ut,ht]),dt=wt||dt.charCodeAt(0)!==36?dt:`--${S$4(rt.prefix)}${dt.slice(1).replace(/\$/g,"-")}`,pt=St?pt:typeof pt=="number"?pt&&kt in I$3?String(pt)+"px":String(pt):k$a(m$b(kt,pt??""),rt.prefix,rt.themeMap[kt]),ot[0].push(`${wt?`${dt} `:`${d$8(dt)}:`}${pt}`)}}var yt,bt};mt(ct),ot!==void 0&&it(x$a(...ot)),ot=void 0};lt(tt,et,nt)},x$a=(tt,et,nt)=>`${nt.map(rt=>`${rt}{`).join("")}${et.length?`${et.join(",")}{`:""}${tt.join(";")}${et.length?"}":""}${Array(nt.length?nt.length+1:0).join("}")}`,I$3={animationDelay:1,animationDuration:1,backgroundSize:1,blockSize:1,border:1,borderBlock:1,borderBlockEnd:1,borderBlockEndWidth:1,borderBlockStart:1,borderBlockStartWidth:1,borderBlockWidth:1,borderBottom:1,borderBottomLeftRadius:1,borderBottomRightRadius:1,borderBottomWidth:1,borderEndEndRadius:1,borderEndStartRadius:1,borderInlineEnd:1,borderInlineEndWidth:1,borderInlineStart:1,borderInlineStartWidth:1,borderInlineWidth:1,borderLeft:1,borderLeftWidth:1,borderRadius:1,borderRight:1,borderRightWidth:1,borderSpacing:1,borderStartEndRadius:1,borderStartStartRadius:1,borderTop:1,borderTopLeftRadius:1,borderTopRightRadius:1,borderTopWidth:1,borderWidth:1,bottom:1,columnGap:1,columnRule:1,columnRuleWidth:1,columnWidth:1,containIntrinsicSize:1,flexBasis:1,fontSize:1,gap:1,gridAutoColumns:1,gridAutoRows:1,gridTemplateColumns:1,gridTemplateRows:1,height:1,inlineSize:1,inset:1,insetBlock:1,insetBlockEnd:1,insetBlockStart:1,insetInline:1,insetInlineEnd:1,insetInlineStart:1,left:1,letterSpacing:1,margin:1,marginBlock:1,marginBlockEnd:1,marginBlockStart:1,marginBottom:1,marginInline:1,marginInlineEnd:1,marginInlineStart:1,marginLeft:1,marginRight:1,marginTop:1,maxBlockSize:1,maxHeight:1,maxInlineSize:1,maxWidth:1,minBlockSize:1,minHeight:1,minInlineSize:1,minWidth:1,offsetDistance:1,offsetRotate:1,outline:1,outlineOffset:1,outlineWidth:1,overflowClipMargin:1,padding:1,paddingBlock:1,paddingBlockEnd:1,paddingBlockStart:1,paddingBottom:1,paddingInline:1,paddingInlineEnd:1,paddingInlineStart:1,paddingLeft:1,paddingRight:1,paddingTop:1,perspective:1,right:1,rowGap:1,scrollMargin:1,scrollMarginBlock:1,scrollMarginBlockEnd:1,scrollMarginBlockStart:1,scrollMarginBottom:1,scrollMarginInline:1,scrollMarginInlineEnd:1,scrollMarginInlineStart:1,scrollMarginLeft:1,scrollMarginRight:1,scrollMarginTop:1,scrollPadding:1,scrollPaddingBlock:1,scrollPaddingBlockEnd:1,scrollPaddingBlockStart:1,scrollPaddingBottom:1,scrollPaddingInline:1,scrollPaddingInlineEnd:1,scrollPaddingInlineStart:1,scrollPaddingLeft:1,scrollPaddingRight:1,scrollPaddingTop:1,shapeMargin:1,textDecoration:1,textDecorationThickness:1,textIndent:1,textUnderlineOffset:1,top:1,transitionDelay:1,transitionDuration:1,verticalAlign:1,width:1,wordSpacing:1},R$3=tt=>String.fromCharCode(tt+(tt>25?39:97)),z$7=tt=>(et=>{let nt,rt="";for(nt=Math.abs(et);nt>52;nt=nt/52|0)rt=R$3(nt%52)+rt;return R$3(nt%52)+rt})(((et,nt)=>{let rt=nt.length;for(;rt;)et=33*et^nt.charCodeAt(--rt);return et})(5381,JSON.stringify(tt))>>>0),W$8=["themed","global","styled","onevar","resonevar","allvar","inline"],j$2=tt=>{if(tt.href&&!tt.href.startsWith(location.origin))return!1;try{return!!tt.cssRules}catch{return!1}},E$3=tt=>{let et;const nt=()=>{const{cssRules:it}=et.sheet;return[].map.call(it,(ot,at)=>{const{cssText:st}=ot;let lt="";if(st.startsWith("--sxs"))return"";if(it[at-1]&&(lt=it[at-1].cssText).startsWith("--sxs")){if(!ot.cssRules.length)return"";for(const ct in et.rules)if(et.rules[ct].group===ot)return`--sxs{--sxs:${[...et.rules[ct].cache].join(" ")}}${st}`;return ot.cssRules.length?`${lt}${st}`:""}return st}).join("")},rt=()=>{if(et){const{rules:st,sheet:lt}=et;if(!lt.deleteRule){for(;Object(Object(lt.cssRules)[0]).type===3;)lt.cssRules.splice(0,1);lt.cssRules=[]}for(const ct in st)delete st[ct]}const it=Object(tt).styleSheets||[];for(const st of it)if(j$2(st)){for(let lt=0,ct=st.cssRules;ct[lt];++lt){const ut=Object(ct[lt]);if(ut.type!==1)continue;const ht=Object(ct[lt+1]);if(ht.type!==4)continue;++lt;const{cssText:dt}=ut;if(!dt.startsWith("--sxs"))continue;const pt=dt.slice(14,-3).trim().split(/\s+/),mt=W$8[pt[0]];mt&&(et||(et={sheet:st,reset:rt,rules:{},toString:nt}),et.rules[mt]={group:ht,index:lt,cache:new Set(pt)})}if(et)break}if(!et){const st=(lt,ct)=>({type:ct,cssRules:[],insertRule(ut,ht){this.cssRules.splice(ht,0,st(ut,{import:3,undefined:1}[(ut.toLowerCase().match(/^@([a-z]+)/)||[])[1]]||4))},get cssText(){return lt==="@media{}"?`@media{${[].map.call(this.cssRules,ut=>ut.cssText).join("")}}`:lt}});et={sheet:tt?(tt.head||tt).appendChild(document.createElement("style")).sheet:st("","text/css"),rules:{},reset:rt,toString:nt}}const{sheet:ot,rules:at}=et;for(let st=W$8.length-1;st>=0;--st){const lt=W$8[st];if(!at[lt]){const ct=W$8[st+1],ut=at[ct]?at[ct].index:ot.cssRules.length;ot.insertRule("@media{}",ut),ot.insertRule(`--sxs{--sxs:${st}}`,ut),at[lt]={group:ot.cssRules[ut+1],index:ut,cache:new Set([st])}}v$b(at[lt])}};return rt(),et},v$b=tt=>{const et=tt.group;let nt=et.cssRules.length;tt.apply=rt=>{try{et.insertRule(rt,nt),++nt}catch{}}},T$3=Symbol(),w$8=o$4(),M$3=(tt,et)=>w$8(tt,()=>(...nt)=>{let rt={type:null,composers:new Set};for(const it of nt)if(it!=null)if(it[l$8]){rt.type==null&&(rt.type=it[l$8].type);for(const ot of it[l$8].composers)rt.composers.add(ot)}else it.constructor!==Object||it.$$typeof?rt.type==null&&(rt.type=it):rt.composers.add(C$3(it,tt));return rt.type==null&&(rt.type="span"),rt.composers.size||rt.composers.add(["PJLV",{},[],[],{},[]]),P$5(tt,rt,et)}),C$3=({variants:tt,compoundVariants:et,defaultVariants:nt,...rt},it)=>{const ot=`${S$4(it.prefix)}c-${z$7(rt)}`,at=[],st=[],lt=Object.create(null),ct=[];for(const dt in nt)lt[dt]=String(nt[dt]);if(typeof tt=="object"&&tt)for(const dt in tt){ut=lt,ht=dt,c$b.call(ut,ht)||(lt[dt]="undefined");const pt=tt[dt];for(const mt in pt){const gt={[dt]:String(mt)};String(mt)==="undefined"&&ct.push(dt);const yt=pt[mt],bt=[gt,yt,!a$6(yt)];at.push(bt)}}var ut,ht;if(typeof et=="object"&&et)for(const dt of et){let{css:pt,...mt}=dt;pt=typeof pt=="object"&&pt||{};for(const yt in mt)mt[yt]=String(mt[yt]);const gt=[mt,pt,!a$6(pt)];st.push(gt)}return[ot,rt,at,st,lt,ct]},P$5=(tt,et,nt)=>{const[rt,it,ot,at]=L$4(et.composers),st=typeof et.type=="function"||et.type.$$typeof?(ht=>{function dt(){for(let pt=0;ptdt.rules[pt]={apply:mt=>dt[T$3].push([pt,mt])}),dt})(nt):null,lt=(st||nt).rules,ct=`.${rt}${it.length>1?`:where(.${it.slice(1).join(".")})`:""}`,ut=ht=>{ht=typeof ht=="object"&&ht||A$4;const{css:dt,...pt}=ht,mt={};for(const bt in ot)if(delete pt[bt],bt in ht){let wt=ht[bt];typeof wt=="object"&&wt?mt[bt]={"@initial":ot[bt],...wt}:(wt=String(wt),mt[bt]=wt!=="undefined"||at.has(bt)?wt:ot[bt])}else mt[bt]=ot[bt];const gt=new Set([...it]);for(const[bt,wt,vt,kt]of et.composers){nt.rules.styled.cache.has(bt)||(nt.rules.styled.cache.add(bt),$$3(wt,[`.${bt}`],[],tt,At=>{lt.styled.apply(At)}));const St=O$2(vt,mt,tt.media),Tt=O$2(kt,mt,tt.media,!0);for(const At of St)if(At!==void 0)for(const[Et,Mt,Lt]of At){const jt=`${bt}-${z$7(Mt)}-${Et}`;gt.add(jt);const Rt=(Lt?nt.rules.resonevar:nt.rules.onevar).cache,$t=Lt?lt.resonevar:lt.onevar;Rt.has(jt)||(Rt.add(jt),$$3(Mt,[`.${jt}`],[],tt,xt=>{$t.apply(xt)}))}for(const At of Tt)if(At!==void 0)for(const[Et,Mt]of At){const Lt=`${bt}-${z$7(Mt)}-${Et}`;gt.add(Lt),nt.rules.allvar.cache.has(Lt)||(nt.rules.allvar.cache.add(Lt),$$3(Mt,[`.${Lt}`],[],tt,jt=>{lt.allvar.apply(jt)}))}}if(typeof dt=="object"&&dt){const bt=`${rt}-i${z$7(dt)}-css`;gt.add(bt),nt.rules.inline.cache.has(bt)||(nt.rules.inline.cache.add(bt),$$3(dt,[`.${bt}`],[],tt,wt=>{lt.inline.apply(wt)}))}for(const bt of String(ht.className||"").trim().split(/\s+/))bt&>.add(bt);const yt=pt.className=[...gt].join(" ");return{type:et.type,className:yt,selector:ct,props:pt,toString:()=>yt,deferredInjector:st}};return s$7(ut,{className:rt,selector:ct,[l$8]:et,toString:()=>(nt.rules.styled.cache.has(rt)||ut(),rt)})},L$4=tt=>{let et="";const nt=[],rt={},it=[];for(const[ot,,,,at,st]of tt){et===""&&(et=ot),nt.push(ot),it.push(...st);for(const lt in at){const ct=at[lt];(rt[lt]===void 0||ct!=="undefined"||st.includes(ct))&&(rt[lt]=ct)}}return[et,nt,rt,new Set(it)]},O$2=(tt,et,nt,rt)=>{const it=[];e:for(let[ot,at,st]of tt){if(st)continue;let lt,ct=0,ut=!1;for(lt in ot){const ht=ot[lt];let dt=et[lt];if(dt!==ht){if(typeof dt!="object"||!dt)continue e;{let pt,mt,gt=0;for(const yt in dt){if(ht===String(dt[yt])){if(yt!=="@initial"){const bt=yt.slice(1);(mt=mt||[]).push(bt in nt?nt[bt]:yt.replace(/^@media ?/,"")),ut=!0}ct+=gt,pt=!0}++gt}if(mt&&mt.length&&(at={["@media "+mt.join(", ")]:at}),!pt)continue e}}}(it[ct]=it[ct]||[]).push([rt?"cv":`${lt}-${ot[lt]}`,at,ut])}return it},A$4={},N$2=o$4(),D$2=(tt,et)=>N$2(tt,()=>(...nt)=>{const rt=()=>{for(let it of nt){it=typeof it=="object"&&it||{};let ot=z$7(it);if(!et.rules.global.cache.has(ot)){if(et.rules.global.cache.add(ot),"@import"in it){let at=[].indexOf.call(et.sheet.cssRules,et.rules.themed.group)-1;for(let st of[].concat(it["@import"]))st=st.includes('"')||st.includes("'")?st:`"${st}"`,et.sheet.insertRule(`@import ${st};`,at++);delete it["@import"]}$$3(it,[],[],tt,at=>{et.rules.global.apply(at)})}}return""};return s$7(rt,{toString:rt})}),H$3=o$4(),V$4=(tt,et)=>H$3(tt,()=>nt=>{const rt=`${S$4(tt.prefix)}k-${z$7(nt)}`,it=()=>{if(!et.rules.global.cache.has(rt)){et.rules.global.cache.add(rt);const ot=[];$$3(nt,[],[],tt,st=>ot.push(st));const at=`@keyframes ${rt}{${ot.join("")}}`;et.rules.global.apply(at)}return rt};return s$7(it,{get name(){return it()},toString:it})}),G$2=class{constructor(et,nt,rt,it){this.token=et==null?"":String(et),this.value=nt==null?"":String(nt),this.scale=rt==null?"":String(rt),this.prefix=it==null?"":String(it)}get computedValue(){return"var("+this.variable+")"}get variable(){return"--"+S$4(this.prefix)+S$4(this.scale)+this.token}toString(){return this.computedValue}},F$3=o$4(),J$2=(tt,et)=>F$3(tt,()=>(nt,rt)=>{rt=typeof nt=="object"&&nt||Object(rt);const it=`.${nt=(nt=typeof nt=="string"?nt:"")||`${S$4(tt.prefix)}t-${z$7(rt)}`}`,ot={},at=[];for(const lt in rt){ot[lt]={};for(const ct in rt[lt]){const ut=`--${S$4(tt.prefix)}${lt}-${ct}`,ht=k$a(String(rt[lt][ct]),tt.prefix,lt);ot[lt][ct]=new G$2(ct,ht,lt,tt.prefix),at.push(`${ut}:${ht}`)}}const st=()=>{if(at.length&&!et.rules.themed.cache.has(nt)){et.rules.themed.cache.add(nt);const lt=`${rt===tt.theme?":root,":""}.${nt}{${at.join(";")}}`;et.rules.themed.apply(lt)}return nt};return{...ot,get className(){return st()},selector:it,toString:st}}),U$2=o$4(),X$1,Y$2=o$4(),q$7=tt=>{const et=(nt=>{let rt=!1;const it=U$2(nt,ot=>{rt=!0;const at="prefix"in(ot=typeof ot=="object"&&ot||{})?String(ot.prefix):"",st=typeof ot.media=="object"&&ot.media||{},lt=typeof ot.root=="object"?ot.root||null:globalThis.document||null,ct=typeof ot.theme=="object"&&ot.theme||{},ut={prefix:at,media:st,theme:ct,themeMap:typeof ot.themeMap=="object"&&ot.themeMap||{...n$9},utils:typeof ot.utils=="object"&&ot.utils||{}},ht=E$3(lt),dt={css:M$3(ut,ht),globalCss:D$2(ut,ht),keyframes:V$4(ut,ht),createTheme:J$2(ut,ht),reset(){ht.reset(),dt.theme.toString()},theme:{},sheet:ht,config:ut,prefix:at,getCssText:ht.toString,toString:ht.toString};return String(dt.theme=dt.createTheme(ct)),dt});return rt||it.reset(),it})(tt);return et.styled=(({config:nt,sheet:rt})=>Y$2(nt,()=>{const it=M$3(nt,rt);return(...ot)=>{const at=it(...ot),st=at[l$8].type,lt=React$1.forwardRef((ct,ut)=>{const ht=ct&&ct.as||st,{props:dt,deferredInjector:pt}=at(ct);return delete dt.as,dt.ref=ut,pt?React$1.createElement(React$1.Fragment,null,React$1.createElement(ht,dt),React$1.createElement(pt,null)):React$1.createElement(ht,dt)});return lt.className=at.className,lt.displayName=`Styled.${st.displayName||st.name||st}`,lt.selector=at.selector,lt.toString=()=>at.selector,lt[l$8]=at[l$8],lt}}))(et),et},K$6=()=>X$1||(X$1=q$7()),re$4=(...tt)=>K$6().styled(...tt);function clamp$8(tt,et,nt){return Math.max(et,Math.min(tt,nt))}const V$3={toVector(tt,et){return tt===void 0&&(tt=et),Array.isArray(tt)?tt:[tt,tt]},add(tt,et){return[tt[0]+et[0],tt[1]+et[1]]},sub(tt,et){return[tt[0]-et[0],tt[1]-et[1]]},addTo(tt,et){tt[0]+=et[0],tt[1]+=et[1]},subTo(tt,et){tt[0]-=et[0],tt[1]-=et[1]}};function rubberband(tt,et,nt){return et===0||Math.abs(et)===1/0?Math.pow(tt,nt*5):tt*et*nt/(et+nt*tt)}function rubberbandIfOutOfBounds(tt,et,nt,rt=.15){return rt===0?clamp$8(tt,et,nt):ttnt?+rubberband(tt-nt,nt-et,rt)+nt:tt}function computeRubberband(tt,[et,nt],[rt,it]){const[[ot,at],[st,lt]]=tt;return[rubberbandIfOutOfBounds(et,ot,at,rt),rubberbandIfOutOfBounds(nt,st,lt,it)]}function _toPrimitive$s(tt,et){if(typeof tt!="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(typeof rt!="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}function _toPropertyKey$s(tt){var et=_toPrimitive$s(tt,"string");return typeof et=="symbol"?et:String(et)}function _defineProperty$y(tt,et,nt){return et=_toPropertyKey$s(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function ownKeys$w(tt,et){var nt=Object.keys(tt);if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(tt);et&&(rt=rt.filter(function(it){return Object.getOwnPropertyDescriptor(tt,it).enumerable})),nt.push.apply(nt,rt)}return nt}function _objectSpread2$2(tt){for(var et=1;et{var nt,rt;return et.target===tt.currentTarget||((nt=tt.currentTarget)===null||nt===void 0||(rt=nt.contains)===null||rt===void 0?void 0:rt.call(nt,et.target))})}function getTouchList(tt){return tt.type==="touchend"||tt.type==="touchcancel"?tt.changedTouches:tt.targetTouches}function getValueEvent(tt){return isTouch$1(tt)?getTouchList(tt)[0]:tt}function touchIds(tt){return getCurrentTargetTouchList(tt).map(et=>et.identifier)}function pointerId(tt){const et=getValueEvent(tt);return isTouch$1(tt)?et.identifier:et.pointerId}function pointerValues(tt){const et=getValueEvent(tt);return[et.clientX,et.clientY]}function getEventDetails(tt){const et={};if("buttons"in tt&&(et.buttons=tt.buttons),"shiftKey"in tt){const{shiftKey:nt,altKey:rt,metaKey:it,ctrlKey:ot}=tt;Object.assign(et,{shiftKey:nt,altKey:rt,metaKey:it,ctrlKey:ot})}return et}function call$1(tt,...et){return typeof tt=="function"?tt(...et):tt}function noop$a(){}function chain(...tt){return tt.length===0?noop$a:tt.length===1?tt[0]:function(){let et;for(const nt of tt)et=nt.apply(this,arguments)||et;return et}}function assignDefault(tt,et){return Object.assign({},et,tt||{})}const BEFORE_LAST_KINEMATICS_DELAY=32;class Engine{constructor(et,nt,rt){this.ctrl=et,this.args=nt,this.key=rt,this.state||(this.state={},this.computeValues([0,0]),this.computeInitial(),this.init&&this.init(),this.reset())}get state(){return this.ctrl.state[this.key]}set state(et){this.ctrl.state[this.key]=et}get shared(){return this.ctrl.state.shared}get eventStore(){return this.ctrl.gestureEventStores[this.key]}get timeoutStore(){return this.ctrl.gestureTimeoutStores[this.key]}get config(){return this.ctrl.config[this.key]}get sharedConfig(){return this.ctrl.config.shared}get handler(){return this.ctrl.handlers[this.key]}reset(){const{state:et,shared:nt,ingKey:rt,args:it}=this;nt[rt]=et._active=et.active=et._blocked=et._force=!1,et._step=[!1,!1],et.intentional=!1,et._movement=[0,0],et._distance=[0,0],et._direction=[0,0],et._delta=[0,0],et._bounds=[[-1/0,1/0],[-1/0,1/0]],et.args=it,et.axis=void 0,et.memo=void 0,et.elapsedTime=et.timeDelta=0,et.direction=[0,0],et.distance=[0,0],et.overflow=[0,0],et._movementBound=[!1,!1],et.velocity=[0,0],et.movement=[0,0],et.delta=[0,0],et.timeStamp=0}start(et){const nt=this.state,rt=this.config;nt._active||(this.reset(),this.computeInitial(),nt._active=!0,nt.target=et.target,nt.currentTarget=et.currentTarget,nt.lastOffset=rt.from?call$1(rt.from,nt):nt.offset,nt.offset=nt.lastOffset,nt.startTime=nt.timeStamp=et.timeStamp)}computeValues(et){const nt=this.state;nt._values=et,nt.values=this.config.transform(et)}computeInitial(){const et=this.state;et._initial=et._values,et.initial=et.values}compute(et){const{state:nt,config:rt,shared:it}=this;nt.args=this.args;let ot=0;if(et&&(nt.event=et,rt.preventDefault&&et.cancelable&&nt.event.preventDefault(),nt.type=et.type,it.touches=this.ctrl.pointerIds.size||this.ctrl.touchIds.size,it.locked=!!document.pointerLockElement,Object.assign(it,getEventDetails(et)),it.down=it.pressed=it.buttons%2===1||it.touches>0,ot=et.timeStamp-nt.timeStamp,nt.timeStamp=et.timeStamp,nt.elapsedTime=nt.timeStamp-nt.startTime),nt._active){const Tt=nt._delta.map(Math.abs);V$3.addTo(nt._distance,Tt)}this.axisIntent&&this.axisIntent(et);const[at,st]=nt._movement,[lt,ct]=rt.threshold,{_step:ut,values:ht}=nt;if(rt.hasCustomTransform?(ut[0]===!1&&(ut[0]=Math.abs(at)>=lt&&ht[0]),ut[1]===!1&&(ut[1]=Math.abs(st)>=ct&&ht[1])):(ut[0]===!1&&(ut[0]=Math.abs(at)>=lt&&Math.sign(at)*lt),ut[1]===!1&&(ut[1]=Math.abs(st)>=ct&&Math.sign(st)*ct)),nt.intentional=ut[0]!==!1||ut[1]!==!1,!nt.intentional)return;const dt=[0,0];if(rt.hasCustomTransform){const[Tt,At]=ht;dt[0]=ut[0]!==!1?Tt-ut[0]:0,dt[1]=ut[1]!==!1?At-ut[1]:0}else dt[0]=ut[0]!==!1?at-ut[0]:0,dt[1]=ut[1]!==!1?st-ut[1]:0;this.restrictToAxis&&!nt._blocked&&this.restrictToAxis(dt);const pt=nt.offset,mt=nt._active&&!nt._blocked||nt.active;mt&&(nt.first=nt._active&&!nt.active,nt.last=!nt._active&&nt.active,nt.active=it[this.ingKey]=nt._active,et&&(nt.first&&("bounds"in rt&&(nt._bounds=call$1(rt.bounds,nt)),this.setup&&this.setup()),nt.movement=dt,this.computeOffset()));const[gt,yt]=nt.offset,[[bt,wt],[vt,kt]]=nt._bounds;nt.overflow=[gtwt?1:0,ytkt?1:0],nt._movementBound[0]=nt.overflow[0]?nt._movementBound[0]===!1?nt._movement[0]:nt._movementBound[0]:!1,nt._movementBound[1]=nt.overflow[1]?nt._movementBound[1]===!1?nt._movement[1]:nt._movementBound[1]:!1;const St=nt._active?rt.rubberband||[0,0]:[0,0];if(nt.offset=computeRubberband(nt._bounds,nt.offset,St),nt.delta=V$3.sub(nt.offset,pt),this.computeMovement(),mt&&(!nt.last||ot>BEFORE_LAST_KINEMATICS_DELAY)){nt.delta=V$3.sub(nt.offset,pt);const Tt=nt.delta.map(Math.abs);V$3.addTo(nt.distance,Tt),nt.direction=nt.delta.map(Math.sign),nt._direction=nt._delta.map(Math.sign),!nt.first&&ot>0&&(nt.velocity=[Tt[0]/ot,Tt[1]/ot],nt.timeDelta=ot)}}emit(){const et=this.state,nt=this.shared,rt=this.config;if(et._active||this.clean(),(et._blocked||!et.intentional)&&!et._force&&!rt.triggerAllEvents)return;const it=this.handler(_objectSpread2$2(_objectSpread2$2(_objectSpread2$2({},nt),et),{},{[this.aliasKey]:et.values}));it!==void 0&&(et.memo=it)}clean(){this.eventStore.clean(),this.timeoutStore.clean()}}function selectAxis([tt,et],nt){const rt=Math.abs(tt),it=Math.abs(et);if(rt>it&&rt>nt)return"x";if(it>rt&&it>nt)return"y"}class CoordinatesEngine extends Engine{constructor(...et){super(...et),_defineProperty$y(this,"aliasKey","xy")}reset(){super.reset(),this.state.axis=void 0}init(){this.state.offset=[0,0],this.state.lastOffset=[0,0]}computeOffset(){this.state.offset=V$3.add(this.state.lastOffset,this.state.movement)}computeMovement(){this.state.movement=V$3.sub(this.state.offset,this.state.lastOffset)}axisIntent(et){const nt=this.state,rt=this.config;if(!nt.axis&&et){const it=typeof rt.axisThreshold=="object"?rt.axisThreshold[getPointerType(et)]:rt.axisThreshold;nt.axis=selectAxis(nt._movement,it)}nt._blocked=(rt.lockDirection||!!rt.axis)&&!nt.axis||!!rt.axis&&rt.axis!==nt.axis}restrictToAxis(et){if(this.config.axis||this.config.lockDirection)switch(this.state.axis){case"x":et[1]=0;break;case"y":et[0]=0;break}}}const identity$c=tt=>tt,DEFAULT_RUBBERBAND=.15,commonConfigResolver={enabled(tt=!0){return tt},eventOptions(tt,et,nt){return _objectSpread2$2(_objectSpread2$2({},nt.shared.eventOptions),tt)},preventDefault(tt=!1){return tt},triggerAllEvents(tt=!1){return tt},rubberband(tt=0){switch(tt){case!0:return[DEFAULT_RUBBERBAND,DEFAULT_RUBBERBAND];case!1:return[0,0];default:return V$3.toVector(tt)}},from(tt){if(typeof tt=="function")return tt;if(tt!=null)return V$3.toVector(tt)},transform(tt,et,nt){const rt=tt||nt.shared.transform;return this.hasCustomTransform=!!rt,rt||identity$c},threshold(tt){return V$3.toVector(tt,0)}},DEFAULT_AXIS_THRESHOLD=0,coordinatesConfigResolver=_objectSpread2$2(_objectSpread2$2({},commonConfigResolver),{},{axis(tt,et,{axis:nt}){if(this.lockDirection=nt==="lock",!this.lockDirection)return nt},axisThreshold(tt=DEFAULT_AXIS_THRESHOLD){return tt},bounds(tt={}){if(typeof tt=="function")return ot=>coordinatesConfigResolver.bounds(tt(ot));if("current"in tt)return()=>tt.current;if(typeof HTMLElement=="function"&&tt instanceof HTMLElement)return tt;const{left:et=-1/0,right:nt=1/0,top:rt=-1/0,bottom:it=1/0}=tt;return[[et,nt],[rt,it]]}}),KEYS_DELTA_MAP={ArrowRight:(tt,et=1)=>[tt*et,0],ArrowLeft:(tt,et=1)=>[-1*tt*et,0],ArrowUp:(tt,et=1)=>[0,-1*tt*et],ArrowDown:(tt,et=1)=>[0,tt*et]};class DragEngine extends CoordinatesEngine{constructor(...et){super(...et),_defineProperty$y(this,"ingKey","dragging")}reset(){super.reset();const et=this.state;et._pointerId=void 0,et._pointerActive=!1,et._keyboardActive=!1,et._preventScroll=!1,et._delayed=!1,et.swipe=[0,0],et.tap=!1,et.canceled=!1,et.cancel=this.cancel.bind(this)}setup(){const et=this.state;if(et._bounds instanceof HTMLElement){const nt=et._bounds.getBoundingClientRect(),rt=et.currentTarget.getBoundingClientRect(),it={left:nt.left-rt.left+et.offset[0],right:nt.right-rt.right+et.offset[0],top:nt.top-rt.top+et.offset[1],bottom:nt.bottom-rt.bottom+et.offset[1]};et._bounds=coordinatesConfigResolver.bounds(it)}}cancel(){const et=this.state;et.canceled||(et.canceled=!0,et._active=!1,setTimeout(()=>{this.compute(),this.emit()},0))}setActive(){this.state._active=this.state._pointerActive||this.state._keyboardActive}clean(){this.pointerClean(),this.state._pointerActive=!1,this.state._keyboardActive=!1,super.clean()}pointerDown(et){const nt=this.config,rt=this.state;if(et.buttons!=null&&(Array.isArray(nt.pointerButtons)?!nt.pointerButtons.includes(et.buttons):nt.pointerButtons!==-1&&nt.pointerButtons!==et.buttons))return;const it=this.ctrl.setEventIds(et);nt.pointerCapture&&et.target.setPointerCapture(et.pointerId),!(it&&it.size>1&&rt._pointerActive)&&(this.start(et),this.setupPointer(et),rt._pointerId=pointerId(et),rt._pointerActive=!0,this.computeValues(pointerValues(et)),this.computeInitial(),nt.preventScrollAxis&&getPointerType(et)!=="mouse"?(rt._active=!1,this.setupScrollPrevention(et)):nt.delay>0?(this.setupDelayTrigger(et),nt.triggerAllEvents&&(this.compute(et),this.emit())):this.startPointerDrag(et))}startPointerDrag(et){const nt=this.state;nt._active=!0,nt._preventScroll=!0,nt._delayed=!1,this.compute(et),this.emit()}pointerMove(et){const nt=this.state,rt=this.config;if(!nt._pointerActive)return;const it=pointerId(et);if(nt._pointerId!==void 0&&it!==nt._pointerId)return;const ot=pointerValues(et);if(document.pointerLockElement===et.target?nt._delta=[et.movementX,et.movementY]:(nt._delta=V$3.sub(ot,nt._values),this.computeValues(ot)),V$3.addTo(nt._movement,nt._delta),this.compute(et),nt._delayed&&nt.intentional){this.timeoutStore.remove("dragDelay"),nt.active=!1,this.startPointerDrag(et);return}if(rt.preventScrollAxis&&!nt._preventScroll)if(nt.axis)if(nt.axis===rt.preventScrollAxis||rt.preventScrollAxis==="xy"){nt._active=!1,this.clean();return}else{this.timeoutStore.remove("startPointerDrag"),this.startPointerDrag(et);return}else return;this.emit()}pointerUp(et){this.ctrl.setEventIds(et);try{this.config.pointerCapture&&et.target.hasPointerCapture(et.pointerId)&&et.target.releasePointerCapture(et.pointerId)}catch{}const nt=this.state,rt=this.config;if(!nt._active||!nt._pointerActive)return;const it=pointerId(et);if(nt._pointerId!==void 0&&it!==nt._pointerId)return;this.state._pointerActive=!1,this.setActive(),this.compute(et);const[ot,at]=nt._distance;if(nt.tap=ot<=rt.tapsThreshold&&at<=rt.tapsThreshold,nt.tap&&rt.filterTaps)nt._force=!0;else{const[st,lt]=nt._delta,[ct,ut]=nt._movement,[ht,dt]=rt.swipe.velocity,[pt,mt]=rt.swipe.distance,gt=rt.swipe.duration;if(nt.elapsedTimeht&&Math.abs(ct)>pt&&(nt.swipe[0]=Math.sign(st)),bt>dt&&Math.abs(ut)>mt&&(nt.swipe[1]=Math.sign(lt))}}this.emit()}pointerClick(et){!this.state.tap&&et.detail>0&&(et.preventDefault(),et.stopPropagation())}setupPointer(et){const nt=this.config,rt=nt.device;nt.pointerLock&&et.currentTarget.requestPointerLock(),nt.pointerCapture||(this.eventStore.add(this.sharedConfig.window,rt,"change",this.pointerMove.bind(this)),this.eventStore.add(this.sharedConfig.window,rt,"end",this.pointerUp.bind(this)),this.eventStore.add(this.sharedConfig.window,rt,"cancel",this.pointerUp.bind(this)))}pointerClean(){this.config.pointerLock&&document.pointerLockElement===this.state.currentTarget&&document.exitPointerLock()}preventScroll(et){this.state._preventScroll&&et.cancelable&&et.preventDefault()}setupScrollPrevention(et){this.state._preventScroll=!1,persistEvent(et);const nt=this.eventStore.add(this.sharedConfig.window,"touch","change",this.preventScroll.bind(this),{passive:!1});this.eventStore.add(this.sharedConfig.window,"touch","end",nt),this.eventStore.add(this.sharedConfig.window,"touch","cancel",nt),this.timeoutStore.add("startPointerDrag",this.startPointerDrag.bind(this),this.config.preventScrollDelay,et)}setupDelayTrigger(et){this.state._delayed=!0,this.timeoutStore.add("dragDelay",()=>{this.state._step=[0,0],this.startPointerDrag(et)},this.config.delay)}keyDown(et){const nt=KEYS_DELTA_MAP[et.key];if(nt){const rt=this.state,it=et.shiftKey?10:et.altKey?.1:1;this.start(et),rt._delta=nt(this.config.keyboardDisplacement,it),rt._keyboardActive=!0,V$3.addTo(rt._movement,rt._delta),this.compute(et),this.emit()}}keyUp(et){et.key in KEYS_DELTA_MAP&&(this.state._keyboardActive=!1,this.setActive(),this.compute(et),this.emit())}bind(et){const nt=this.config.device;et(nt,"start",this.pointerDown.bind(this)),this.config.pointerCapture&&(et(nt,"change",this.pointerMove.bind(this)),et(nt,"end",this.pointerUp.bind(this)),et(nt,"cancel",this.pointerUp.bind(this)),et("lostPointerCapture","",this.pointerUp.bind(this))),this.config.keys&&(et("key","down",this.keyDown.bind(this)),et("key","up",this.keyUp.bind(this))),this.config.filterTaps&&et("click","",this.pointerClick.bind(this),{capture:!0,passive:!1})}}function persistEvent(tt){"persist"in tt&&typeof tt.persist=="function"&&tt.persist()}const isBrowser$2=typeof window<"u"&&window.document&&window.document.createElement;function supportsTouchEvents(){return isBrowser$2&&"ontouchstart"in window}function isTouchScreen(){return supportsTouchEvents()||isBrowser$2&&window.navigator.maxTouchPoints>1}function supportsPointerEvents(){return isBrowser$2&&"onpointerdown"in window}function supportsPointerLock(){return isBrowser$2&&"exitPointerLock"in window.document}function supportsGestureEvents(){try{return"constructor"in GestureEvent}catch{return!1}}const SUPPORT={isBrowser:isBrowser$2,gesture:supportsGestureEvents(),touch:isTouchScreen(),touchscreen:isTouchScreen(),pointer:supportsPointerEvents(),pointerLock:supportsPointerLock()},DEFAULT_PREVENT_SCROLL_DELAY=250,DEFAULT_DRAG_DELAY=180,DEFAULT_SWIPE_VELOCITY=.5,DEFAULT_SWIPE_DISTANCE=50,DEFAULT_SWIPE_DURATION=250,DEFAULT_KEYBOARD_DISPLACEMENT=10,DEFAULT_DRAG_AXIS_THRESHOLD={mouse:0,touch:0,pen:8},dragConfigResolver=_objectSpread2$2(_objectSpread2$2({},coordinatesConfigResolver),{},{device(tt,et,{pointer:{touch:nt=!1,lock:rt=!1,mouse:it=!1}={}}){return this.pointerLock=rt&&SUPPORT.pointerLock,SUPPORT.touch&&nt?"touch":this.pointerLock?"mouse":SUPPORT.pointer&&!it?"pointer":SUPPORT.touch?"touch":"mouse"},preventScrollAxis(tt,et,{preventScroll:nt}){if(this.preventScrollDelay=typeof nt=="number"?nt:nt||nt===void 0&&tt?DEFAULT_PREVENT_SCROLL_DELAY:void 0,!(!SUPPORT.touchscreen||nt===!1))return tt||(nt!==void 0?"y":void 0)},pointerCapture(tt,et,{pointer:{capture:nt=!0,buttons:rt=1,keys:it=!0}={}}){return this.pointerButtons=rt,this.keys=it,!this.pointerLock&&this.device==="pointer"&&nt},threshold(tt,et,{filterTaps:nt=!1,tapsThreshold:rt=3,axis:it=void 0}){const ot=V$3.toVector(tt,nt?rt:it?1:0);return this.filterTaps=nt,this.tapsThreshold=rt,ot},swipe({velocity:tt=DEFAULT_SWIPE_VELOCITY,distance:et=DEFAULT_SWIPE_DISTANCE,duration:nt=DEFAULT_SWIPE_DURATION}={}){return{velocity:this.transform(V$3.toVector(tt)),distance:this.transform(V$3.toVector(et)),duration:nt}},delay(tt=0){switch(tt){case!0:return DEFAULT_DRAG_DELAY;case!1:return 0;default:return tt}},axisThreshold(tt){return tt?_objectSpread2$2(_objectSpread2$2({},DEFAULT_DRAG_AXIS_THRESHOLD),tt):DEFAULT_DRAG_AXIS_THRESHOLD},keyboardDisplacement(tt=DEFAULT_KEYBOARD_DISPLACEMENT){return tt}});_objectSpread2$2(_objectSpread2$2({},commonConfigResolver),{},{device(tt,et,{shared:nt,pointer:{touch:rt=!1}={}}){if(nt.target&&!SUPPORT.touch&&SUPPORT.gesture)return"gesture";if(SUPPORT.touch&&rt)return"touch";if(SUPPORT.touchscreen){if(SUPPORT.pointer)return"pointer";if(SUPPORT.touch)return"touch"}},bounds(tt,et,{scaleBounds:nt={},angleBounds:rt={}}){const it=at=>{const st=assignDefault(call$1(nt,at),{min:-1/0,max:1/0});return[st.min,st.max]},ot=at=>{const st=assignDefault(call$1(rt,at),{min:-1/0,max:1/0});return[st.min,st.max]};return typeof nt!="function"&&typeof rt!="function"?[it(),ot()]:at=>[it(at),ot(at)]},threshold(tt,et,nt){return this.lockDirection=nt.axis==="lock",V$3.toVector(tt,this.lockDirection?[.1,3]:0)},modifierKey(tt){return tt===void 0?"ctrlKey":tt},pinchOnWheel(tt=!0){return tt}});_objectSpread2$2(_objectSpread2$2({},coordinatesConfigResolver),{},{mouseOnly:(tt=!0)=>tt});_objectSpread2$2(_objectSpread2$2({},coordinatesConfigResolver),{},{mouseOnly:(tt=!0)=>tt});const EngineMap=new Map,ConfigResolverMap=new Map;function registerAction(tt){EngineMap.set(tt.key,tt.engine),ConfigResolverMap.set(tt.key,tt.resolver)}const dragAction={key:"drag",engine:DragEngine,resolver:dragConfigResolver};function _objectWithoutPropertiesLoose$j(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _objectWithoutProperties$g(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$j(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}const sharedConfigResolver={target(tt){if(tt)return()=>"current"in tt?tt.current:tt},enabled(tt=!0){return tt},window(tt=SUPPORT.isBrowser?window:void 0){return tt},eventOptions({passive:tt=!0,capture:et=!1}={}){return{passive:tt,capture:et}},transform(tt){return tt}},_excluded$1F=["target","eventOptions","window","enabled","transform"];function resolveWith(tt={},et){const nt={};for(const[rt,it]of Object.entries(et))switch(typeof it){case"function":nt[rt]=it.call(nt,tt[rt],rt,tt);break;case"object":nt[rt]=resolveWith(tt[rt],it);break;case"boolean":it&&(nt[rt]=tt[rt]);break}return nt}function parse$5(tt,et,nt={}){const rt=tt,{target:it,eventOptions:ot,window:at,enabled:st,transform:lt}=rt,ct=_objectWithoutProperties$g(rt,_excluded$1F);if(nt.shared=resolveWith({target:it,eventOptions:ot,window:at,enabled:st,transform:lt},sharedConfigResolver),et){const ut=ConfigResolverMap.get(et);nt[et]=resolveWith(_objectSpread2$2({shared:nt.shared},ct),ut)}else for(const ut in ct){const ht=ConfigResolverMap.get(ut);ht&&(nt[ut]=resolveWith(_objectSpread2$2({shared:nt.shared},ct[ut]),ht))}return nt}class EventStore{constructor(et,nt){_defineProperty$y(this,"_listeners",new Set),this._ctrl=et,this._gestureKey=nt}add(et,nt,rt,it,ot){const at=this._listeners,st=toDomEventType(nt,rt),lt=this._gestureKey?this._ctrl.config[this._gestureKey].eventOptions:{},ct=_objectSpread2$2(_objectSpread2$2({},lt),ot);et.addEventListener(st,it,ct);const ut=()=>{et.removeEventListener(st,it,ct),at.delete(ut)};return at.add(ut),ut}clean(){this._listeners.forEach(et=>et()),this._listeners.clear()}}class TimeoutStore{constructor(){_defineProperty$y(this,"_timeouts",new Map)}add(et,nt,rt=140,...it){this.remove(et),this._timeouts.set(et,window.setTimeout(nt,rt,...it))}remove(et){const nt=this._timeouts.get(et);nt&&window.clearTimeout(nt)}clean(){this._timeouts.forEach(et=>void window.clearTimeout(et)),this._timeouts.clear()}}let Controller$1=class{constructor(et){_defineProperty$y(this,"gestures",new Set),_defineProperty$y(this,"_targetEventStore",new EventStore(this)),_defineProperty$y(this,"gestureEventStores",{}),_defineProperty$y(this,"gestureTimeoutStores",{}),_defineProperty$y(this,"handlers",{}),_defineProperty$y(this,"config",{}),_defineProperty$y(this,"pointerIds",new Set),_defineProperty$y(this,"touchIds",new Set),_defineProperty$y(this,"state",{shared:{shiftKey:!1,metaKey:!1,ctrlKey:!1,altKey:!1}}),resolveGestures(this,et)}setEventIds(et){if(isTouch$1(et))return this.touchIds=new Set(touchIds(et)),this.touchIds;if("pointerId"in et)return et.type==="pointerup"||et.type==="pointercancel"?this.pointerIds.delete(et.pointerId):et.type==="pointerdown"&&this.pointerIds.add(et.pointerId),this.pointerIds}applyHandlers(et,nt){this.handlers=et,this.nativeHandlers=nt}applyConfig(et,nt){this.config=parse$5(et,nt,this.config)}clean(){this._targetEventStore.clean();for(const et of this.gestures)this.gestureEventStores[et].clean(),this.gestureTimeoutStores[et].clean()}effect(){return this.config.shared.target&&this.bind(),()=>this._targetEventStore.clean()}bind(...et){const nt=this.config.shared,rt={};let it;if(!(nt.target&&(it=nt.target(),!it))){if(nt.enabled){for(const at of this.gestures){const st=this.config[at],lt=bindToProps(rt,st.eventOptions,!!it);if(st.enabled){const ct=EngineMap.get(at);new ct(this,et,at).bind(lt)}}const ot=bindToProps(rt,nt.eventOptions,!!it);for(const at in this.nativeHandlers)ot(at,"",st=>this.nativeHandlers[at](_objectSpread2$2(_objectSpread2$2({},this.state.shared),{},{event:st,args:et})),void 0,!0)}for(const ot in rt)rt[ot]=chain(...rt[ot]);if(!it)return rt;for(const ot in rt){const{device:at,capture:st,passive:lt}=parseProp(ot);this._targetEventStore.add(it,at,"",rt[ot],{capture:st,passive:lt})}}}};function setupGesture(tt,et){tt.gestures.add(et),tt.gestureEventStores[et]=new EventStore(tt,et),tt.gestureTimeoutStores[et]=new TimeoutStore}function resolveGestures(tt,et){et.drag&&setupGesture(tt,"drag"),et.wheel&&setupGesture(tt,"wheel"),et.scroll&&setupGesture(tt,"scroll"),et.move&&setupGesture(tt,"move"),et.pinch&&setupGesture(tt,"pinch"),et.hover&&setupGesture(tt,"hover")}const bindToProps=(tt,et,nt)=>(rt,it,ot,at={},st=!1)=>{var lt,ct;const ut=(lt=at.capture)!==null&<!==void 0?lt:et.capture,ht=(ct=at.passive)!==null&&ct!==void 0?ct:et.passive;let dt=st?rt:toHandlerProp(rt,it,ut);nt&&ht&&(dt+="Passive"),tt[dt]=tt[dt]||[],tt[dt].push(ot)};function useRecognizers(tt,et={},nt,rt){const it=React$1.useMemo(()=>new Controller$1(tt),[]);if(it.applyHandlers(tt,rt),it.applyConfig(et,nt),React$1.useEffect(it.effect.bind(it)),React$1.useEffect(()=>it.clean.bind(it),[]),et.target===void 0)return it.bind.bind(it)}function useDrag$1(tt,et){return registerAction(dragAction),useRecognizers({drag:tt},et||{},"drag")}function $e42e1063c40fb3ef$export$b9ecd428b558ff10(tt,et,{checkForDefaultPrevented:nt=!0}={}){return function(it){if(tt==null||tt(it),nt===!1||!it.defaultPrevented)return et==null?void 0:et(it)}}function $c512c27ab02ef895$export$50c7b4e9d9f19c1(tt,et=[]){let nt=[];function rt(ot,at){const st=reactExports.createContext(at),lt=nt.length;nt=[...nt,at];function ct(ht){const{scope:dt,children:pt,...mt}=ht,gt=(dt==null?void 0:dt[tt][lt])||st,yt=reactExports.useMemo(()=>mt,Object.values(mt));return reactExports.createElement(gt.Provider,{value:yt},pt)}function ut(ht,dt){const pt=(dt==null?void 0:dt[tt][lt])||st,mt=reactExports.useContext(pt);if(mt)return mt;if(at!==void 0)return at;throw new Error(`\`${ht}\` must be used within \`${ot}\``)}return ct.displayName=ot+"Provider",[ct,ut]}const it=()=>{const ot=nt.map(at=>reactExports.createContext(at));return function(st){const lt=(st==null?void 0:st[tt])||ot;return reactExports.useMemo(()=>({[`__scope${tt}`]:{...st,[tt]:lt}}),[st,lt])}};return it.scopeName=tt,[rt,$c512c27ab02ef895$var$composeContextScopes(it,...et)]}function $c512c27ab02ef895$var$composeContextScopes(...tt){const et=tt[0];if(tt.length===1)return et;const nt=()=>{const rt=tt.map(it=>({useScope:it(),scopeName:it.scopeName}));return function(ot){const at=rt.reduce((st,{useScope:lt,scopeName:ct})=>{const ht=lt(ot)[`__scope${ct}`];return{...st,...ht}},{});return reactExports.useMemo(()=>({[`__scope${et.scopeName}`]:at}),[at])}};return nt.scopeName=et.scopeName,nt}function $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(tt){const et=reactExports.useRef(tt);return reactExports.useEffect(()=>{et.current=tt}),reactExports.useMemo(()=>(...nt)=>{var rt;return(rt=et.current)===null||rt===void 0?void 0:rt.call(et,...nt)},[])}function $addc16e1bbe58fd0$export$3a72a57244d6e765(tt,et=globalThis==null?void 0:globalThis.document){const nt=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(tt);reactExports.useEffect(()=>{const rt=it=>{it.key==="Escape"&&nt(it)};return et.addEventListener("keydown",rt),()=>et.removeEventListener("keydown",rt)},[nt,et])}const $5cb92bef7577960e$var$CONTEXT_UPDATE="dismissableLayer.update",$5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",$5cb92bef7577960e$var$FOCUS_OUTSIDE="dismissableLayer.focusOutside";let $5cb92bef7577960e$var$originalBodyPointerEvents;const $5cb92bef7577960e$var$DismissableLayerContext=reactExports.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),$5cb92bef7577960e$export$177fb62ff3ec1f22=reactExports.forwardRef((tt,et)=>{var nt;const{disableOutsidePointerEvents:rt=!1,onEscapeKeyDown:it,onPointerDownOutside:ot,onFocusOutside:at,onInteractOutside:st,onDismiss:lt,...ct}=tt,ut=reactExports.useContext($5cb92bef7577960e$var$DismissableLayerContext),[ht,dt]=reactExports.useState(null),pt=(nt=ht==null?void 0:ht.ownerDocument)!==null&&nt!==void 0?nt:globalThis==null?void 0:globalThis.document,[,mt]=reactExports.useState({}),gt=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(et,Et=>dt(Et)),yt=Array.from(ut.layers),[bt]=[...ut.layersWithOutsidePointerEventsDisabled].slice(-1),wt=yt.indexOf(bt),vt=ht?yt.indexOf(ht):-1,kt=ut.layersWithOutsidePointerEventsDisabled.size>0,St=vt>=wt,Tt=$5cb92bef7577960e$var$usePointerDownOutside(Et=>{const Mt=Et.target,Lt=[...ut.branches].some(jt=>jt.contains(Mt));!St||Lt||(ot==null||ot(Et),st==null||st(Et),Et.defaultPrevented||lt==null||lt())},pt),At=$5cb92bef7577960e$var$useFocusOutside(Et=>{const Mt=Et.target;[...ut.branches].some(jt=>jt.contains(Mt))||(at==null||at(Et),st==null||st(Et),Et.defaultPrevented||lt==null||lt())},pt);return $addc16e1bbe58fd0$export$3a72a57244d6e765(Et=>{vt===ut.layers.size-1&&(it==null||it(Et),!Et.defaultPrevented&<&&(Et.preventDefault(),lt()))},pt),reactExports.useEffect(()=>{if(ht)return rt&&(ut.layersWithOutsidePointerEventsDisabled.size===0&&($5cb92bef7577960e$var$originalBodyPointerEvents=pt.body.style.pointerEvents,pt.body.style.pointerEvents="none"),ut.layersWithOutsidePointerEventsDisabled.add(ht)),ut.layers.add(ht),$5cb92bef7577960e$var$dispatchUpdate(),()=>{rt&&ut.layersWithOutsidePointerEventsDisabled.size===1&&(pt.body.style.pointerEvents=$5cb92bef7577960e$var$originalBodyPointerEvents)}},[ht,pt,rt,ut]),reactExports.useEffect(()=>()=>{ht&&(ut.layers.delete(ht),ut.layersWithOutsidePointerEventsDisabled.delete(ht),$5cb92bef7577960e$var$dispatchUpdate())},[ht,ut]),reactExports.useEffect(()=>{const Et=()=>mt({});return document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE,Et),()=>document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE,Et)},[]),reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div,_extends$r({},ct,{ref:gt,style:{pointerEvents:kt?St?"auto":"none":void 0,...tt.style},onFocusCapture:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onFocusCapture,At.onFocusCapture),onBlurCapture:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onBlurCapture,At.onBlurCapture),onPointerDownCapture:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onPointerDownCapture,Tt.onPointerDownCapture)}))});function $5cb92bef7577960e$var$usePointerDownOutside(tt,et=globalThis==null?void 0:globalThis.document){const nt=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(tt),rt=reactExports.useRef(!1),it=reactExports.useRef(()=>{});return reactExports.useEffect(()=>{const ot=st=>{if(st.target&&!rt.current){let ut=function(){$5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE,nt,ct,{discrete:!0})};var lt=ut;const ct={originalEvent:st};st.pointerType==="touch"?(et.removeEventListener("click",it.current),it.current=ut,et.addEventListener("click",it.current,{once:!0})):ut()}rt.current=!1},at=window.setTimeout(()=>{et.addEventListener("pointerdown",ot)},0);return()=>{window.clearTimeout(at),et.removeEventListener("pointerdown",ot),et.removeEventListener("click",it.current)}},[et,nt]),{onPointerDownCapture:()=>rt.current=!0}}function $5cb92bef7577960e$var$useFocusOutside(tt,et=globalThis==null?void 0:globalThis.document){const nt=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(tt),rt=reactExports.useRef(!1);return reactExports.useEffect(()=>{const it=ot=>{ot.target&&!rt.current&&$5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$FOCUS_OUTSIDE,nt,{originalEvent:ot},{discrete:!1})};return et.addEventListener("focusin",it),()=>et.removeEventListener("focusin",it)},[et,nt]),{onFocusCapture:()=>rt.current=!0,onBlurCapture:()=>rt.current=!1}}function $5cb92bef7577960e$var$dispatchUpdate(){const tt=new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);document.dispatchEvent(tt)}function $5cb92bef7577960e$var$handleAndDispatchCustomEvent(tt,et,nt,{discrete:rt}){const it=nt.originalEvent.target,ot=new CustomEvent(tt,{bubbles:!1,cancelable:!0,detail:nt});et&&it.addEventListener(tt,et,{once:!0}),rt?$8927f6f2acc4f386$export$6d1a0317bde7de7f(it,ot):it.dispatchEvent(ot)}const $9f79659886946c16$export$e5c5a5f917a5871c=globalThis!=null&&globalThis.document?reactExports.useLayoutEffect:()=>{},$1746a345f3d73bb7$var$useReactId=React$2["useId".toString()]||(()=>{});let $1746a345f3d73bb7$var$count=0;function $1746a345f3d73bb7$export$f680877a34711e37(tt){const[et,nt]=reactExports.useState($1746a345f3d73bb7$var$useReactId());return $9f79659886946c16$export$e5c5a5f917a5871c(()=>{tt||nt(rt=>rt??String($1746a345f3d73bb7$var$count++))},[tt]),tt||(et?`radix-${et}`:"")}function t$7(tt){return tt.split("-")[1]}function e$6(tt){return tt==="y"?"height":"width"}function n$8(tt){return tt.split("-")[0]}function o$3(tt){return["top","bottom"].includes(n$8(tt))?"x":"y"}function i$8(tt,et,nt){let{reference:rt,floating:it}=tt;const ot=rt.x+rt.width/2-it.width/2,at=rt.y+rt.height/2-it.height/2,st=o$3(et),lt=e$6(st),ct=rt[lt]/2-it[lt]/2,ut=st==="x";let ht;switch(n$8(et)){case"top":ht={x:ot,y:rt.y-it.height};break;case"bottom":ht={x:ot,y:rt.y+rt.height};break;case"right":ht={x:rt.x+rt.width,y:at};break;case"left":ht={x:rt.x-it.width,y:at};break;default:ht={x:rt.x,y:rt.y}}switch(t$7(et)){case"start":ht[st]-=ct*(nt&&ut?-1:1);break;case"end":ht[st]+=ct*(nt&&ut?-1:1)}return ht}const r$9=async(tt,et,nt)=>{const{placement:rt="bottom",strategy:it="absolute",middleware:ot=[],platform:at}=nt,st=ot.filter(Boolean),lt=await(at.isRTL==null?void 0:at.isRTL(et));let ct=await at.getElementRects({reference:tt,floating:et,strategy:it}),{x:ut,y:ht}=i$8(ct,rt,lt),dt=rt,pt={},mt=0;for(let gt=0;gt({name:"arrow",options:tt,async fn(et){const{x:nt,y:rt,placement:it,rects:ot,platform:at,elements:st}=et,{element:lt,padding:ct=0}=a$5(tt,et)||{};if(lt==null)return{};const ut=l$7(ct),ht={x:nt,y:rt},dt=o$3(it),pt=e$6(dt),mt=await at.getDimensions(lt),gt=dt==="y",yt=gt?"top":"left",bt=gt?"bottom":"right",wt=gt?"clientHeight":"clientWidth",vt=ot.reference[pt]+ot.reference[dt]-ht[dt]-ot.floating[pt],kt=ht[dt]-ot.reference[dt],St=await(at.getOffsetParent==null?void 0:at.getOffsetParent(lt));let Tt=St?St[wt]:0;Tt&&await(at.isElement==null?void 0:at.isElement(St))||(Tt=st.floating[wt]||ot.floating[pt]);const At=vt/2-kt/2,Et=Tt/2-mt[pt]/2-1,Mt=f$9(ut[yt],Et),Lt=f$9(ut[bt],Et),jt=Mt,Rt=Tt-mt[pt]-Lt,$t=Tt/2-mt[pt]/2+At,xt=u$7(jt,$t,Rt),It=t$7(it)!=null&&$t!=xt&&ot.reference[pt]/2-($ttt.concat(et,et+"-start",et+"-end"),[]);const h$b={left:"right",right:"left",bottom:"top",top:"bottom"};function y$9(tt){return tt.replace(/left|right|bottom|top/g,et=>h$b[et])}function x$9(tt,et,nt){nt===void 0&&(nt=!1);const rt=t$7(tt),it=o$3(tt),ot=e$6(it);let at=it==="x"?rt===(nt?"end":"start")?"right":"left":rt==="start"?"bottom":"top";return et.reference[ot]>et.floating[ot]&&(at=y$9(at)),{main:at,cross:y$9(at)}}const w$7={start:"end",end:"start"};function v$a(tt){return tt.replace(/start|end/g,et=>w$7[et])}const A$3=function(tt){return tt===void 0&&(tt={}),{name:"flip",options:tt,async fn(et){var nt;const{placement:rt,middlewareData:it,rects:ot,initialPlacement:at,platform:st,elements:lt}=et,{mainAxis:ct=!0,crossAxis:ut=!0,fallbackPlacements:ht,fallbackStrategy:dt="bestFit",fallbackAxisSideDirection:pt="none",flipAlignment:mt=!0,...gt}=a$5(tt,et),yt=n$8(rt),bt=n$8(at)===at,wt=await(st.isRTL==null?void 0:st.isRTL(lt.floating)),vt=ht||(bt||!mt?[y$9(at)]:function(jt){const Rt=y$9(jt);return[v$a(jt),Rt,v$a(Rt)]}(at));ht||pt==="none"||vt.push(...function(jt,Rt,$t,xt){const It=t$7(jt);let Ot=function(zt,Ut,Wt){const Ft=["left","right"],Nt=["right","left"],Ct=["top","bottom"],Ht=["bottom","top"];switch(zt){case"top":case"bottom":return Wt?Ut?Nt:Ft:Ut?Ft:Nt;case"left":case"right":return Ut?Ct:Ht;default:return[]}}(n$8(jt),$t==="start",xt);return It&&(Ot=Ot.map(zt=>zt+"-"+It),Rt&&(Ot=Ot.concat(Ot.map(v$a)))),Ot}(at,mt,pt,wt));const kt=[at,...vt],St=await c$a(et,gt),Tt=[];let At=((nt=it.flip)==null?void 0:nt.overflows)||[];if(ct&&Tt.push(St[yt]),ut){const{main:jt,cross:Rt}=x$9(rt,ot,wt);Tt.push(St[jt],St[Rt])}if(At=[...At,{placement:rt,overflows:Tt}],!Tt.every(jt=>jt<=0)){var Et,Mt;const jt=(((Et=it.flip)==null?void 0:Et.index)||0)+1,Rt=kt[jt];if(Rt)return{data:{index:jt,overflows:At},reset:{placement:Rt}};let $t=(Mt=At.filter(xt=>xt.overflows[0]<=0).sort((xt,It)=>xt.overflows[1]-It.overflows[1])[0])==null?void 0:Mt.placement;if(!$t)switch(dt){case"bestFit":{var Lt;const xt=(Lt=At.map(It=>[It.placement,It.overflows.filter(Ot=>Ot>0).reduce((Ot,zt)=>Ot+zt,0)]).sort((It,Ot)=>It[1]-Ot[1])[0])==null?void 0:Lt[0];xt&&($t=xt);break}case"initialPlacement":$t=at}if(rt!==$t)return{reset:{placement:$t}}}return{}}}};function R$2(tt,et){return{top:tt.top-et.height,right:tt.right-et.width,bottom:tt.bottom-et.height,left:tt.left-et.width}}function P$4(tt){return d$7.some(et=>tt[et]>=0)}const E$2=function(tt){return tt===void 0&&(tt={}),{name:"hide",options:tt,async fn(et){const{rects:nt}=et,{strategy:rt="referenceHidden",...it}=a$5(tt,et);switch(rt){case"referenceHidden":{const ot=R$2(await c$a(et,{...it,elementContext:"reference"}),nt.reference);return{data:{referenceHiddenOffsets:ot,referenceHidden:P$4(ot)}}}case"escaped":{const ot=R$2(await c$a(et,{...it,altBoundary:!0}),nt.floating);return{data:{escapedOffsets:ot,escaped:P$4(ot)}}}default:return{}}}}},L$3=function(tt){return tt===void 0&&(tt=0),{name:"offset",options:tt,async fn(et){const{x:nt,y:rt}=et,it=await async function(ot,at){const{placement:st,platform:lt,elements:ct}=ot,ut=await(lt.isRTL==null?void 0:lt.isRTL(ct.floating)),ht=n$8(st),dt=t$7(st),pt=o$3(st)==="x",mt=["left","top"].includes(ht)?-1:1,gt=ut&&pt?-1:1,yt=a$5(at,ot);let{mainAxis:bt,crossAxis:wt,alignmentAxis:vt}=typeof yt=="number"?{mainAxis:yt,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...yt};return dt&&typeof vt=="number"&&(wt=dt==="end"?-1*vt:vt),pt?{x:wt*gt,y:bt*mt}:{x:bt*mt,y:wt*gt}}(et,tt);return{x:nt+it.x,y:rt+it.y,data:it}}}};function k$9(tt){return tt==="x"?"y":"x"}const O$1=function(tt){return tt===void 0&&(tt={}),{name:"shift",options:tt,async fn(et){const{x:nt,y:rt,placement:it}=et,{mainAxis:ot=!0,crossAxis:at=!1,limiter:st={fn:yt=>{let{x:bt,y:wt}=yt;return{x:bt,y:wt}}},...lt}=a$5(tt,et),ct={x:nt,y:rt},ut=await c$a(et,lt),ht=o$3(n$8(it)),dt=k$9(ht);let pt=ct[ht],mt=ct[dt];if(ot){const yt=ht==="y"?"bottom":"right";pt=u$7(pt+ut[ht==="y"?"top":"left"],pt,pt-ut[yt])}if(at){const yt=dt==="y"?"bottom":"right";mt=u$7(mt+ut[dt==="y"?"top":"left"],mt,mt-ut[yt])}const gt=st.fn({...et,[ht]:pt,[dt]:mt});return{...gt,data:{x:gt.x-nt,y:gt.y-rt}}}}},B$2=function(tt){return tt===void 0&&(tt={}),{options:tt,fn(et){const{x:nt,y:rt,placement:it,rects:ot,middlewareData:at}=et,{offset:st=0,mainAxis:lt=!0,crossAxis:ct=!0}=a$5(tt,et),ut={x:nt,y:rt},ht=o$3(it),dt=k$9(ht);let pt=ut[ht],mt=ut[dt];const gt=a$5(st,et),yt=typeof gt=="number"?{mainAxis:gt,crossAxis:0}:{mainAxis:0,crossAxis:0,...gt};if(lt){const vt=ht==="y"?"height":"width",kt=ot.reference[ht]-ot.floating[vt]+yt.mainAxis,St=ot.reference[ht]+ot.reference[vt]-yt.mainAxis;ptSt&&(pt=St)}if(ct){var bt,wt;const vt=ht==="y"?"width":"height",kt=["top","left"].includes(n$8(it)),St=ot.reference[dt]-ot.floating[vt]+(kt&&((bt=at.offset)==null?void 0:bt[dt])||0)+(kt?0:yt.crossAxis),Tt=ot.reference[dt]+ot.reference[vt]+(kt?0:((wt=at.offset)==null?void 0:wt[dt])||0)-(kt?yt.crossAxis:0);mtTt&&(mt=Tt)}return{[ht]:pt,[dt]:mt}}}},C$2=function(tt){return tt===void 0&&(tt={}),{name:"size",options:tt,async fn(et){const{placement:nt,rects:rt,platform:it,elements:ot}=et,{apply:at=()=>{},...st}=a$5(tt,et),lt=await c$a(et,st),ct=n$8(nt),ut=t$7(nt),ht=o$3(nt)==="x",{width:dt,height:pt}=rt.floating;let mt,gt;ct==="top"||ct==="bottom"?(mt=ct,gt=ut===(await(it.isRTL==null?void 0:it.isRTL(ot.floating))?"start":"end")?"left":"right"):(gt=ct,mt=ut==="end"?"top":"bottom");const yt=pt-lt[mt],bt=dt-lt[gt],wt=!et.middlewareData.shift;let vt=yt,kt=bt;if(ht){const Tt=dt-lt.left-lt.right;kt=ut||wt?f$9(bt,Tt):Tt}else{const Tt=pt-lt.top-lt.bottom;vt=ut||wt?f$9(yt,Tt):Tt}if(wt&&!ut){const Tt=m$a(lt.left,0),At=m$a(lt.right,0),Et=m$a(lt.top,0),Mt=m$a(lt.bottom,0);ht?kt=dt-2*(Tt!==0||At!==0?Tt+At:m$a(lt.left,lt.right)):vt=pt-2*(Et!==0||Mt!==0?Et+Mt:m$a(lt.top,lt.bottom))}await at({...et,availableWidth:kt,availableHeight:vt});const St=await it.getDimensions(ot.floating);return dt!==St.width||pt!==St.height?{reset:{rects:!0}}:{}}}};function n$7(tt){var et;return(tt==null||(et=tt.ownerDocument)==null?void 0:et.defaultView)||window}function o$2(tt){return n$7(tt).getComputedStyle(tt)}function i$7(tt){return tt instanceof n$7(tt).Node}function r$8(tt){return i$7(tt)?(tt.nodeName||"").toLowerCase():"#document"}function c$9(tt){return tt instanceof HTMLElement||tt instanceof n$7(tt).HTMLElement}function l$6(tt){return typeof ShadowRoot<"u"&&(tt instanceof n$7(tt).ShadowRoot||tt instanceof ShadowRoot)}function s$5(tt){const{overflow:et,overflowX:nt,overflowY:rt,display:it}=o$2(tt);return/auto|scroll|overlay|hidden|clip/.test(et+rt+nt)&&!["inline","contents"].includes(it)}function f$8(tt){return["table","td","th"].includes(r$8(tt))}function u$6(tt){const et=a$4(),nt=o$2(tt);return nt.transform!=="none"||nt.perspective!=="none"||!!nt.containerType&&nt.containerType!=="normal"||!et&&!!nt.backdropFilter&&nt.backdropFilter!=="none"||!et&&!!nt.filter&&nt.filter!=="none"||["transform","perspective","filter"].some(rt=>(nt.willChange||"").includes(rt))||["paint","layout","strict","content"].some(rt=>(nt.contain||"").includes(rt))}function a$4(){return!(typeof CSS>"u"||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function d$6(tt){return["html","body","#document"].includes(r$8(tt))}const h$a=Math.min,p$9=Math.max,m$9=Math.round,g$9=Math.floor,y$8=tt=>({x:tt,y:tt});function w$6(tt){const et=o$2(tt);let nt=parseFloat(et.width)||0,rt=parseFloat(et.height)||0;const it=c$9(tt),ot=it?tt.offsetWidth:nt,at=it?tt.offsetHeight:rt,st=m$9(nt)!==ot||m$9(rt)!==at;return st&&(nt=ot,rt=at),{width:nt,height:rt,$:st}}function x$8(tt){return tt instanceof Element||tt instanceof n$7(tt).Element}function v$9(tt){return x$8(tt)?tt:tt.contextElement}function b$7(tt){const et=v$9(tt);if(!c$9(et))return y$8(1);const nt=et.getBoundingClientRect(),{width:rt,height:it,$:ot}=w$6(et);let at=(ot?m$9(nt.width):nt.width)/rt,st=(ot?m$9(nt.height):nt.height)/it;return at&&Number.isFinite(at)||(at=1),st&&Number.isFinite(st)||(st=1),{x:at,y:st}}const L$2=y$8(0);function T$2(tt){const et=n$7(tt);return a$4()&&et.visualViewport?{x:et.visualViewport.offsetLeft,y:et.visualViewport.offsetTop}:L$2}function R$1(tt,et,nt,rt){et===void 0&&(et=!1),nt===void 0&&(nt=!1);const it=tt.getBoundingClientRect(),ot=v$9(tt);let at=y$8(1);et&&(rt?x$8(rt)&&(at=b$7(rt)):at=b$7(tt));const st=function(dt,pt,mt){return pt===void 0&&(pt=!1),!(!mt||pt&&mt!==n$7(dt))&&pt}(ot,nt,rt)?T$2(ot):y$8(0);let lt=(it.left+st.x)/at.x,ct=(it.top+st.y)/at.y,ut=it.width/at.x,ht=it.height/at.y;if(ot){const dt=n$7(ot),pt=rt&&x$8(rt)?n$7(rt):rt;let mt=dt.frameElement;for(;mt&&rt&&pt!==dt;){const gt=b$7(mt),yt=mt.getBoundingClientRect(),bt=getComputedStyle(mt),wt=yt.left+(mt.clientLeft+parseFloat(bt.paddingLeft))*gt.x,vt=yt.top+(mt.clientTop+parseFloat(bt.paddingTop))*gt.y;lt*=gt.x,ct*=gt.y,ut*=gt.x,ht*=gt.y,lt+=wt,ct+=vt,mt=n$7(mt).frameElement}}return s$6({width:ut,height:ht,x:lt,y:ct})}function E$1(tt){return x$8(tt)?{scrollLeft:tt.scrollLeft,scrollTop:tt.scrollTop}:{scrollLeft:tt.pageXOffset,scrollTop:tt.pageYOffset}}function S$3(tt){var et;return(et=(i$7(tt)?tt.ownerDocument:tt.document)||window.document)==null?void 0:et.documentElement}function C$1(tt){return R$1(S$3(tt)).left+E$1(tt).scrollLeft}function F$2(tt){if(r$8(tt)==="html")return tt;const et=tt.assignedSlot||tt.parentNode||l$6(tt)&&tt.host||S$3(tt);return l$6(et)?et.host:et}function O(tt){const et=F$2(tt);return d$6(et)?tt.ownerDocument?tt.ownerDocument.body:tt.body:c$9(et)&&s$5(et)?et:O(et)}function D$1(tt,et){var nt;et===void 0&&(et=[]);const rt=O(tt),it=rt===((nt=tt.ownerDocument)==null?void 0:nt.body),ot=n$7(rt);return it?et.concat(ot,ot.visualViewport||[],s$5(rt)?rt:[]):et.concat(rt,D$1(rt))}function H$2(tt,et,nt){let rt;if(et==="viewport")rt=function(it,ot){const at=n$7(it),st=S$3(it),lt=at.visualViewport;let ct=st.clientWidth,ut=st.clientHeight,ht=0,dt=0;if(lt){ct=lt.width,ut=lt.height;const pt=a$4();(!pt||pt&&ot==="fixed")&&(ht=lt.offsetLeft,dt=lt.offsetTop)}return{width:ct,height:ut,x:ht,y:dt}}(tt,nt);else if(et==="document")rt=function(it){const ot=S$3(it),at=E$1(it),st=it.ownerDocument.body,lt=p$9(ot.scrollWidth,ot.clientWidth,st.scrollWidth,st.clientWidth),ct=p$9(ot.scrollHeight,ot.clientHeight,st.scrollHeight,st.clientHeight);let ut=-at.scrollLeft+C$1(it);const ht=-at.scrollTop;return o$2(st).direction==="rtl"&&(ut+=p$9(ot.clientWidth,st.clientWidth)-lt),{width:lt,height:ct,x:ut,y:ht}}(S$3(tt));else if(x$8(et))rt=function(it,ot){const at=R$1(it,!0,ot==="fixed"),st=at.top+it.clientTop,lt=at.left+it.clientLeft,ct=c$9(it)?b$7(it):y$8(1);return{width:it.clientWidth*ct.x,height:it.clientHeight*ct.y,x:lt*ct.x,y:st*ct.y}}(et,nt);else{const it=T$2(tt);rt={...et,x:et.x-it.x,y:et.y-it.y}}return s$6(rt)}function W$7(tt,et){const nt=F$2(tt);return!(nt===et||!x$8(nt)||d$6(nt))&&(o$2(nt).position==="fixed"||W$7(nt,et))}function M$2(tt,et,nt){const rt=c$9(et),it=S$3(et),ot=nt==="fixed",at=R$1(tt,!0,ot,et);let st={scrollLeft:0,scrollTop:0};const lt=y$8(0);if(rt||!rt&&!ot)if((r$8(et)!=="body"||s$5(it))&&(st=E$1(et)),c$9(et)){const ct=R$1(et,!0,ot,et);lt.x=ct.x+et.clientLeft,lt.y=ct.y+et.clientTop}else it&&(lt.x=C$1(it));return{x:at.left+st.scrollLeft-lt.x,y:at.top+st.scrollTop-lt.y,width:at.width,height:at.height}}function z$6(tt,et){return c$9(tt)&&o$2(tt).position!=="fixed"?et?et(tt):tt.offsetParent:null}function P$3(tt,et){const nt=n$7(tt);if(!c$9(tt))return nt;let rt=z$6(tt,et);for(;rt&&f$8(rt)&&o$2(rt).position==="static";)rt=z$6(rt,et);return rt&&(r$8(rt)==="html"||r$8(rt)==="body"&&o$2(rt).position==="static"&&!u$6(rt))?nt:rt||function(it){let ot=F$2(it);for(;c$9(ot)&&!d$6(ot);){if(u$6(ot))return ot;ot=F$2(ot)}return null}(tt)||nt}const V$2={convertOffsetParentRelativeRectToViewportRelativeRect:function(tt){let{rect:et,offsetParent:nt,strategy:rt}=tt;const it=c$9(nt),ot=S$3(nt);if(nt===ot)return et;let at={scrollLeft:0,scrollTop:0},st=y$8(1);const lt=y$8(0);if((it||!it&&rt!=="fixed")&&((r$8(nt)!=="body"||s$5(ot))&&(at=E$1(nt)),c$9(nt))){const ct=R$1(nt);st=b$7(nt),lt.x=ct.x+nt.clientLeft,lt.y=ct.y+nt.clientTop}return{width:et.width*st.x,height:et.height*st.y,x:et.x*st.x-at.scrollLeft*st.x+lt.x,y:et.y*st.y-at.scrollTop*st.y+lt.y}},getDocumentElement:S$3,getClippingRect:function(tt){let{element:et,boundary:nt,rootBoundary:rt,strategy:it}=tt;const ot=[...nt==="clippingAncestors"?function(lt,ct){const ut=ct.get(lt);if(ut)return ut;let ht=D$1(lt).filter(gt=>x$8(gt)&&r$8(gt)!=="body"),dt=null;const pt=o$2(lt).position==="fixed";let mt=pt?F$2(lt):lt;for(;x$8(mt)&&!d$6(mt);){const gt=o$2(mt),yt=u$6(mt);yt||gt.position!=="fixed"||(dt=null),(pt?!yt&&!dt:!yt&>.position==="static"&&dt&&["absolute","fixed"].includes(dt.position)||s$5(mt)&&!yt&&W$7(lt,mt))?ht=ht.filter(bt=>bt!==mt):dt=gt,mt=F$2(mt)}return ct.set(lt,ht),ht}(et,this._c):[].concat(nt),rt],at=ot[0],st=ot.reduce((lt,ct)=>{const ut=H$2(et,ct,it);return lt.top=p$9(ut.top,lt.top),lt.right=h$a(ut.right,lt.right),lt.bottom=h$a(ut.bottom,lt.bottom),lt.left=p$9(ut.left,lt.left),lt},H$2(et,at,it));return{width:st.right-st.left,height:st.bottom-st.top,x:st.left,y:st.top}},getOffsetParent:P$3,getElementRects:async function(tt){let{reference:et,floating:nt,strategy:rt}=tt;const it=this.getOffsetParent||P$3,ot=this.getDimensions;return{reference:M$2(et,await it(nt),rt),floating:{x:0,y:0,...await ot(nt)}}},getClientRects:function(tt){return Array.from(tt.getClientRects())},getDimensions:function(tt){return w$6(tt)},getScale:b$7,isElement:x$8,isRTL:function(tt){return getComputedStyle(tt).direction==="rtl"}};function A$2(tt,et,nt,rt){rt===void 0&&(rt={});const{ancestorScroll:it=!0,ancestorResize:ot=!0,elementResize:at=typeof ResizeObserver=="function",layoutShift:st=typeof IntersectionObserver=="function",animationFrame:lt=!1}=rt,ct=v$9(tt),ut=it||ot?[...ct?D$1(ct):[],...D$1(et)]:[];ut.forEach(yt=>{it&&yt.addEventListener("scroll",nt,{passive:!0}),ot&&yt.addEventListener("resize",nt)});const ht=ct&&st?function(yt,bt){let wt,vt=null;const kt=S$3(yt);function St(){clearTimeout(wt),vt&&vt.disconnect(),vt=null}return function Tt(At,Et){At===void 0&&(At=!1),Et===void 0&&(Et=1),St();const{left:Mt,top:Lt,width:jt,height:Rt}=yt.getBoundingClientRect();if(At||bt(),!jt||!Rt)return;const $t={rootMargin:-g$9(Lt)+"px "+-g$9(kt.clientWidth-(Mt+jt))+"px "+-g$9(kt.clientHeight-(Lt+Rt))+"px "+-g$9(Mt)+"px",threshold:p$9(0,h$a(1,Et))||1};let xt=!0;function It(Ot){const zt=Ot[0].intersectionRatio;if(zt!==Et){if(!xt)return Tt();zt?Tt(!1,zt):wt=setTimeout(()=>{Tt(!1,1e-7)},100)}xt=!1}try{vt=new IntersectionObserver(It,{...$t,root:kt.ownerDocument})}catch{vt=new IntersectionObserver(It,$t)}vt.observe(yt)}(!0),St}(ct,nt):null;let dt,pt=-1,mt=null;at&&(mt=new ResizeObserver(yt=>{let[bt]=yt;bt&&bt.target===ct&&mt&&(mt.unobserve(et),cancelAnimationFrame(pt),pt=requestAnimationFrame(()=>{mt&&mt.observe(et)})),nt()}),ct&&!lt&&mt.observe(ct),mt.observe(et));let gt=lt?R$1(tt):null;return lt&&function yt(){const bt=R$1(tt);!gt||bt.x===gt.x&&bt.y===gt.y&&bt.width===gt.width&&bt.height===gt.height||nt(),gt=bt,dt=requestAnimationFrame(yt)}(),nt(),()=>{ut.forEach(yt=>{it&&yt.removeEventListener("scroll",nt),ot&&yt.removeEventListener("resize",nt)}),ht&&ht(),mt&&mt.disconnect(),mt=null,lt&&cancelAnimationFrame(dt)}}const B$1=(tt,et,nt)=>{const rt=new Map,it={platform:V$2,...nt},ot={...it.platform,_c:rt};return r$9(tt,et,{...it,platform:ot})},arrow$2=tt=>{function et(nt){return{}.hasOwnProperty.call(nt,"current")}return{name:"arrow",options:tt,fn(nt){const{element:rt,padding:it}=typeof tt=="function"?tt(nt):tt;return rt&&et(rt)?rt.current!=null?g$a({element:rt.current,padding:it}).fn(nt):{}:rt?g$a({element:rt,padding:it}).fn(nt):{}}}};var index$2=typeof document<"u"?reactExports.useLayoutEffect:reactExports.useEffect;function deepEqual$3(tt,et){if(tt===et)return!0;if(typeof tt!=typeof et)return!1;if(typeof tt=="function"&&tt.toString()===et.toString())return!0;let nt,rt,it;if(tt&&et&&typeof tt=="object"){if(Array.isArray(tt)){if(nt=tt.length,nt!=et.length)return!1;for(rt=nt;rt--!==0;)if(!deepEqual$3(tt[rt],et[rt]))return!1;return!0}if(it=Object.keys(tt),nt=it.length,nt!==Object.keys(et).length)return!1;for(rt=nt;rt--!==0;)if(!{}.hasOwnProperty.call(et,it[rt]))return!1;for(rt=nt;rt--!==0;){const ot=it[rt];if(!(ot==="_owner"&&tt.$$typeof)&&!deepEqual$3(tt[ot],et[ot]))return!1}return!0}return tt!==tt&&et!==et}function getDPR(tt){return typeof window>"u"?1:(tt.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(tt,et){const nt=getDPR(tt);return Math.round(et*nt)/nt}function useLatestRef(tt){const et=reactExports.useRef(tt);return index$2(()=>{et.current=tt}),et}function useFloating(tt){tt===void 0&&(tt={});const{placement:et="bottom",strategy:nt="absolute",middleware:rt=[],platform:it,elements:{reference:ot,floating:at}={},transform:st=!0,whileElementsMounted:lt,open:ct}=tt,[ut,ht]=reactExports.useState({x:0,y:0,strategy:nt,placement:et,middlewareData:{},isPositioned:!1}),[dt,pt]=reactExports.useState(rt);deepEqual$3(dt,rt)||pt(rt);const[mt,gt]=reactExports.useState(null),[yt,bt]=reactExports.useState(null),wt=reactExports.useCallback(Ot=>{Ot!=Tt.current&&(Tt.current=Ot,gt(Ot))},[gt]),vt=reactExports.useCallback(Ot=>{Ot!==At.current&&(At.current=Ot,bt(Ot))},[bt]),kt=ot||mt,St=at||yt,Tt=reactExports.useRef(null),At=reactExports.useRef(null),Et=reactExports.useRef(ut),Mt=useLatestRef(lt),Lt=useLatestRef(it),jt=reactExports.useCallback(()=>{if(!Tt.current||!At.current)return;const Ot={placement:et,strategy:nt,middleware:dt};Lt.current&&(Ot.platform=Lt.current),B$1(Tt.current,At.current,Ot).then(zt=>{const Ut={...zt,isPositioned:!0};Rt.current&&!deepEqual$3(Et.current,Ut)&&(Et.current=Ut,reactDomExports.flushSync(()=>{ht(Ut)}))})},[dt,et,nt,Lt]);index$2(()=>{ct===!1&&Et.current.isPositioned&&(Et.current.isPositioned=!1,ht(Ot=>({...Ot,isPositioned:!1})))},[ct]);const Rt=reactExports.useRef(!1);index$2(()=>(Rt.current=!0,()=>{Rt.current=!1}),[]),index$2(()=>{if(kt&&(Tt.current=kt),St&&(At.current=St),kt&&St){if(Mt.current)return Mt.current(kt,St,jt);jt()}},[kt,St,jt,Mt]);const $t=reactExports.useMemo(()=>({reference:Tt,floating:At,setReference:wt,setFloating:vt}),[wt,vt]),xt=reactExports.useMemo(()=>({reference:kt,floating:St}),[kt,St]),It=reactExports.useMemo(()=>{const Ot={position:nt,left:0,top:0};if(!xt.floating)return Ot;const zt=roundByDPR(xt.floating,ut.x),Ut=roundByDPR(xt.floating,ut.y);return st?{...Ot,transform:"translate("+zt+"px, "+Ut+"px)",...getDPR(xt.floating)>=1.5&&{willChange:"transform"}}:{position:nt,left:zt,top:Ut}},[nt,st,xt.floating,ut.x,ut.y]);return reactExports.useMemo(()=>({...ut,update:jt,refs:$t,elements:xt,floatingStyles:It}),[ut,jt,$t,xt,It])}const $7e8f5cd07187803e$export$21b07c8f274aebd5=reactExports.forwardRef((tt,et)=>{const{children:nt,width:rt=10,height:it=5,...ot}=tt;return reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.svg,_extends$r({},ot,{ref:et,width:rt,height:it,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),tt.asChild?nt:reactExports.createElement("polygon",{points:"0,0 30,0 15,10"}))}),$7e8f5cd07187803e$export$be92b6f5f03c0fe9=$7e8f5cd07187803e$export$21b07c8f274aebd5;function $db6c3485150b8e66$export$1ab7ae714698c4b8(tt){const[et,nt]=reactExports.useState(void 0);return $9f79659886946c16$export$e5c5a5f917a5871c(()=>{if(tt){nt({width:tt.offsetWidth,height:tt.offsetHeight});const rt=new ResizeObserver(it=>{if(!Array.isArray(it)||!it.length)return;const ot=it[0];let at,st;if("borderBoxSize"in ot){const lt=ot.borderBoxSize,ct=Array.isArray(lt)?lt[0]:lt;at=ct.inlineSize,st=ct.blockSize}else at=tt.offsetWidth,st=tt.offsetHeight;nt({width:at,height:st})});return rt.observe(tt,{box:"border-box"}),()=>rt.unobserve(tt)}else nt(void 0)},[tt]),et}const $cf1ac5d9fe0e8206$var$POPPER_NAME="Popper",[$cf1ac5d9fe0e8206$var$createPopperContext,$cf1ac5d9fe0e8206$export$722aac194ae923]=$c512c27ab02ef895$export$50c7b4e9d9f19c1($cf1ac5d9fe0e8206$var$POPPER_NAME),[$cf1ac5d9fe0e8206$var$PopperProvider,$cf1ac5d9fe0e8206$var$usePopperContext]=$cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$POPPER_NAME),$cf1ac5d9fe0e8206$export$badac9ada3a0bdf9=tt=>{const{__scopePopper:et,children:nt}=tt,[rt,it]=reactExports.useState(null);return reactExports.createElement($cf1ac5d9fe0e8206$var$PopperProvider,{scope:et,anchor:rt,onAnchorChange:it},nt)},$cf1ac5d9fe0e8206$var$ANCHOR_NAME="PopperAnchor",$cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d=reactExports.forwardRef((tt,et)=>{const{__scopePopper:nt,virtualRef:rt,...it}=tt,ot=$cf1ac5d9fe0e8206$var$usePopperContext($cf1ac5d9fe0e8206$var$ANCHOR_NAME,nt),at=reactExports.useRef(null),st=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(et,at);return reactExports.useEffect(()=>{ot.onAnchorChange((rt==null?void 0:rt.current)||at.current)}),rt?null:reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div,_extends$r({},it,{ref:st}))}),$cf1ac5d9fe0e8206$var$CONTENT_NAME="PopperContent",[$cf1ac5d9fe0e8206$var$PopperContentProvider,$cf1ac5d9fe0e8206$var$useContentContext]=$cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME),$cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc=reactExports.forwardRef((tt,et)=>{var nt,rt,it,ot,at,st,lt,ct;const{__scopePopper:ut,side:ht="bottom",sideOffset:dt=0,align:pt="center",alignOffset:mt=0,arrowPadding:gt=0,collisionBoundary:yt=[],collisionPadding:bt=0,sticky:wt="partial",hideWhenDetached:vt=!1,avoidCollisions:kt=!0,onPlaced:St,...Tt}=tt,At=$cf1ac5d9fe0e8206$var$usePopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME,ut),[Et,Mt]=reactExports.useState(null),Lt=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(et,Rn=>Mt(Rn)),[jt,Rt]=reactExports.useState(null),$t=$db6c3485150b8e66$export$1ab7ae714698c4b8(jt),xt=(nt=$t==null?void 0:$t.width)!==null&&nt!==void 0?nt:0,It=(rt=$t==null?void 0:$t.height)!==null&&rt!==void 0?rt:0,Ot=ht+(pt!=="center"?"-"+pt:""),zt=typeof bt=="number"?bt:{top:0,right:0,bottom:0,left:0,...bt},Ut=Array.isArray(yt)?yt:[yt],Wt=Ut.length>0,Ft={padding:zt,boundary:Ut.filter($cf1ac5d9fe0e8206$var$isNotNull),altBoundary:Wt},{refs:Nt,floatingStyles:Ct,placement:Ht,isPositioned:Jt,middlewareData:nn}=useFloating({strategy:"fixed",placement:Ot,whileElementsMounted:A$2,elements:{reference:At.anchor},middleware:[L$3({mainAxis:dt+It,alignmentAxis:mt}),kt&&O$1({mainAxis:!0,crossAxis:!1,limiter:wt==="partial"?B$2():void 0,...Ft}),kt&&A$3({...Ft}),C$2({...Ft,apply:({elements:Rn,rects:An,availableWidth:yn,availableHeight:kn})=>{const{width:dn,height:gn}=An.reference,Cn=Rn.floating.style;Cn.setProperty("--radix-popper-available-width",`${yn}px`),Cn.setProperty("--radix-popper-available-height",`${kn}px`),Cn.setProperty("--radix-popper-anchor-width",`${dn}px`),Cn.setProperty("--radix-popper-anchor-height",`${gn}px`)}}),jt&&arrow$2({element:jt,padding:gt}),$cf1ac5d9fe0e8206$var$transformOrigin({arrowWidth:xt,arrowHeight:It}),vt&&E$2({strategy:"referenceHidden"})]}),[Yt,fn]=$cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(Ht),cn=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(St);$9f79659886946c16$export$e5c5a5f917a5871c(()=>{Jt&&(cn==null||cn())},[Jt,cn]);const _n=(it=nn.arrow)===null||it===void 0?void 0:it.x,En=(ot=nn.arrow)===null||ot===void 0?void 0:ot.y,an=((at=nn.arrow)===null||at===void 0?void 0:at.centerOffset)!==0,[en,Tn]=reactExports.useState();return $9f79659886946c16$export$e5c5a5f917a5871c(()=>{Et&&Tn(window.getComputedStyle(Et).zIndex)},[Et]),reactExports.createElement("div",{ref:Nt.setFloating,"data-radix-popper-content-wrapper":"",style:{...Ct,transform:Jt?Ct.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:en,"--radix-popper-transform-origin":[(st=nn.transformOrigin)===null||st===void 0?void 0:st.x,(lt=nn.transformOrigin)===null||lt===void 0?void 0:lt.y].join(" ")},dir:tt.dir},reactExports.createElement($cf1ac5d9fe0e8206$var$PopperContentProvider,{scope:ut,placedSide:Yt,onArrowChange:Rt,arrowX:_n,arrowY:En,shouldHideArrow:an},reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div,_extends$r({"data-side":Yt,"data-align":fn},Tt,{ref:Lt,style:{...Tt.style,animation:Jt?void 0:"none",opacity:(ct=nn.hide)!==null&&ct!==void 0&&ct.referenceHidden?0:void 0}}))))}),$cf1ac5d9fe0e8206$var$ARROW_NAME="PopperArrow",$cf1ac5d9fe0e8206$var$OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"right"},$cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0=reactExports.forwardRef(function(et,nt){const{__scopePopper:rt,...it}=et,ot=$cf1ac5d9fe0e8206$var$useContentContext($cf1ac5d9fe0e8206$var$ARROW_NAME,rt),at=$cf1ac5d9fe0e8206$var$OPPOSITE_SIDE[ot.placedSide];return reactExports.createElement("span",{ref:ot.onArrowChange,style:{position:"absolute",left:ot.arrowX,top:ot.arrowY,[at]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[ot.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[ot.placedSide],visibility:ot.shouldHideArrow?"hidden":void 0}},reactExports.createElement($7e8f5cd07187803e$export$be92b6f5f03c0fe9,_extends$r({},it,{ref:nt,style:{...it.style,display:"block"}})))});function $cf1ac5d9fe0e8206$var$isNotNull(tt){return tt!==null}const $cf1ac5d9fe0e8206$var$transformOrigin=tt=>({name:"transformOrigin",options:tt,fn(et){var nt,rt,it,ot,at;const{placement:st,rects:lt,middlewareData:ct}=et,ht=((nt=ct.arrow)===null||nt===void 0?void 0:nt.centerOffset)!==0,dt=ht?0:tt.arrowWidth,pt=ht?0:tt.arrowHeight,[mt,gt]=$cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(st),yt={start:"0%",center:"50%",end:"100%"}[gt],bt=((rt=(it=ct.arrow)===null||it===void 0?void 0:it.x)!==null&&rt!==void 0?rt:0)+dt/2,wt=((ot=(at=ct.arrow)===null||at===void 0?void 0:at.y)!==null&&ot!==void 0?ot:0)+pt/2;let vt="",kt="";return mt==="bottom"?(vt=ht?yt:`${bt}px`,kt=`${-pt}px`):mt==="top"?(vt=ht?yt:`${bt}px`,kt=`${lt.floating.height+pt}px`):mt==="right"?(vt=`${-pt}px`,kt=ht?yt:`${wt}px`):mt==="left"&&(vt=`${lt.floating.width+pt}px`,kt=ht?yt:`${wt}px`),{data:{x:vt,y:kt}}}});function $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(tt){const[et,nt="center"]=tt.split("-");return[et,nt]}const $cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9=$cf1ac5d9fe0e8206$export$badac9ada3a0bdf9,$cf1ac5d9fe0e8206$export$b688253958b8dfe7=$cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d,$cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2=$cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc,$cf1ac5d9fe0e8206$export$21b07c8f274aebd5=$cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0;function $fe963b355347cc68$export$3e6543de14f8614f(tt,et){return reactExports.useReducer((nt,rt)=>{const it=et[nt][rt];return it??nt},tt)}const $921a889cee6df7e8$export$99c2b779aa4e8b8b=tt=>{const{present:et,children:nt}=tt,rt=$921a889cee6df7e8$var$usePresence(et),it=typeof nt=="function"?nt({present:rt.isPresent}):reactExports.Children.only(nt),ot=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(rt.ref,it.ref);return typeof nt=="function"||rt.isPresent?reactExports.cloneElement(it,{ref:ot}):null};$921a889cee6df7e8$export$99c2b779aa4e8b8b.displayName="Presence";function $921a889cee6df7e8$var$usePresence(tt){const[et,nt]=reactExports.useState(),rt=reactExports.useRef({}),it=reactExports.useRef(tt),ot=reactExports.useRef("none"),at=tt?"mounted":"unmounted",[st,lt]=$fe963b355347cc68$export$3e6543de14f8614f(at,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return reactExports.useEffect(()=>{const ct=$921a889cee6df7e8$var$getAnimationName(rt.current);ot.current=st==="mounted"?ct:"none"},[st]),$9f79659886946c16$export$e5c5a5f917a5871c(()=>{const ct=rt.current,ut=it.current;if(ut!==tt){const dt=ot.current,pt=$921a889cee6df7e8$var$getAnimationName(ct);tt?lt("MOUNT"):pt==="none"||(ct==null?void 0:ct.display)==="none"?lt("UNMOUNT"):lt(ut&&dt!==pt?"ANIMATION_OUT":"UNMOUNT"),it.current=tt}},[tt,lt]),$9f79659886946c16$export$e5c5a5f917a5871c(()=>{if(et){const ct=ht=>{const pt=$921a889cee6df7e8$var$getAnimationName(rt.current).includes(ht.animationName);ht.target===et&&pt&&reactDomExports.flushSync(()=>lt("ANIMATION_END"))},ut=ht=>{ht.target===et&&(ot.current=$921a889cee6df7e8$var$getAnimationName(rt.current))};return et.addEventListener("animationstart",ut),et.addEventListener("animationcancel",ct),et.addEventListener("animationend",ct),()=>{et.removeEventListener("animationstart",ut),et.removeEventListener("animationcancel",ct),et.removeEventListener("animationend",ct)}}else lt("ANIMATION_END")},[et,lt]),{isPresent:["mounted","unmountSuspended"].includes(st),ref:reactExports.useCallback(ct=>{ct&&(rt.current=getComputedStyle(ct)),nt(ct)},[])}}function $921a889cee6df7e8$var$getAnimationName(tt){return(tt==null?void 0:tt.animationName)||"none"}function $71cd76cc60e0454e$export$6f32135080cb4c3({prop:tt,defaultProp:et,onChange:nt=()=>{}}){const[rt,it]=$71cd76cc60e0454e$var$useUncontrolledState({defaultProp:et,onChange:nt}),ot=tt!==void 0,at=ot?tt:rt,st=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(nt),lt=reactExports.useCallback(ct=>{if(ot){const ht=typeof ct=="function"?ct(tt):ct;ht!==tt&&st(ht)}else it(ct)},[ot,tt,it,st]);return[at,lt]}function $71cd76cc60e0454e$var$useUncontrolledState({defaultProp:tt,onChange:et}){const nt=reactExports.useState(tt),[rt]=nt,it=reactExports.useRef(rt),ot=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(et);return reactExports.useEffect(()=>{it.current!==rt&&(ot(rt),it.current=rt)},[rt,it,ot]),nt}const $ea1ef594cf570d83$export$439d29a4e110a164=reactExports.forwardRef((tt,et)=>reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.span,_extends$r({},tt,{ref:et,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...tt.style}}))),$ea1ef594cf570d83$export$be92b6f5f03c0fe9=$ea1ef594cf570d83$export$439d29a4e110a164,[$a093c7e1ec25a057$var$createTooltipContext,$a093c7e1ec25a057$export$1c540a2224f0d865]=$c512c27ab02ef895$export$50c7b4e9d9f19c1("Tooltip",[$cf1ac5d9fe0e8206$export$722aac194ae923]),$a093c7e1ec25a057$var$usePopperScope=$cf1ac5d9fe0e8206$export$722aac194ae923(),$a093c7e1ec25a057$var$PROVIDER_NAME="TooltipProvider",$a093c7e1ec25a057$var$TOOLTIP_OPEN="tooltip.open",[$a093c7e1ec25a057$var$TooltipProviderContextProvider,$a093c7e1ec25a057$var$useTooltipProviderContext]=$a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$PROVIDER_NAME),$a093c7e1ec25a057$var$TOOLTIP_NAME="Tooltip",[$a093c7e1ec25a057$var$TooltipContextProvider,$a093c7e1ec25a057$var$useTooltipContext]=$a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$TOOLTIP_NAME),$a093c7e1ec25a057$export$28c660c63b792dea=tt=>{const{__scopeTooltip:et,children:nt,open:rt,defaultOpen:it=!1,onOpenChange:ot,disableHoverableContent:at,delayDuration:st}=tt,lt=$a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$TOOLTIP_NAME,tt.__scopeTooltip),ct=$a093c7e1ec25a057$var$usePopperScope(et),[ut,ht]=reactExports.useState(null),dt=$1746a345f3d73bb7$export$f680877a34711e37(),pt=reactExports.useRef(0),mt=at??lt.disableHoverableContent,gt=st??lt.delayDuration,yt=reactExports.useRef(!1),[bt=!1,wt]=$71cd76cc60e0454e$export$6f32135080cb4c3({prop:rt,defaultProp:it,onChange:At=>{At?(lt.onOpen(),document.dispatchEvent(new CustomEvent($a093c7e1ec25a057$var$TOOLTIP_OPEN))):lt.onClose(),ot==null||ot(At)}}),vt=reactExports.useMemo(()=>bt?yt.current?"delayed-open":"instant-open":"closed",[bt]),kt=reactExports.useCallback(()=>{window.clearTimeout(pt.current),yt.current=!1,wt(!0)},[wt]),St=reactExports.useCallback(()=>{window.clearTimeout(pt.current),wt(!1)},[wt]),Tt=reactExports.useCallback(()=>{window.clearTimeout(pt.current),pt.current=window.setTimeout(()=>{yt.current=!0,wt(!0)},gt)},[gt,wt]);return reactExports.useEffect(()=>()=>window.clearTimeout(pt.current),[]),reactExports.createElement($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9,ct,reactExports.createElement($a093c7e1ec25a057$var$TooltipContextProvider,{scope:et,contentId:dt,open:bt,stateAttribute:vt,trigger:ut,onTriggerChange:ht,onTriggerEnter:reactExports.useCallback(()=>{lt.isOpenDelayed?Tt():kt()},[lt.isOpenDelayed,Tt,kt]),onTriggerLeave:reactExports.useCallback(()=>{mt?St():window.clearTimeout(pt.current)},[St,mt]),onOpen:kt,onClose:St,disableHoverableContent:mt},nt))},$a093c7e1ec25a057$var$TRIGGER_NAME="TooltipTrigger",$a093c7e1ec25a057$export$8c610744efcf8a1d=reactExports.forwardRef((tt,et)=>{const{__scopeTooltip:nt,...rt}=tt,it=$a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$TRIGGER_NAME,nt),ot=$a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$TRIGGER_NAME,nt),at=$a093c7e1ec25a057$var$usePopperScope(nt),st=reactExports.useRef(null),lt=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(et,st,it.onTriggerChange),ct=reactExports.useRef(!1),ut=reactExports.useRef(!1),ht=reactExports.useCallback(()=>ct.current=!1,[]);return reactExports.useEffect(()=>()=>document.removeEventListener("pointerup",ht),[ht]),reactExports.createElement($cf1ac5d9fe0e8206$export$b688253958b8dfe7,_extends$r({asChild:!0},at),reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.button,_extends$r({"aria-describedby":it.open?it.contentId:void 0,"data-state":it.stateAttribute},rt,{ref:lt,onPointerMove:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onPointerMove,dt=>{dt.pointerType!=="touch"&&!ut.current&&!ot.isPointerInTransitRef.current&&(it.onTriggerEnter(),ut.current=!0)}),onPointerLeave:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onPointerLeave,()=>{it.onTriggerLeave(),ut.current=!1}),onPointerDown:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onPointerDown,()=>{ct.current=!0,document.addEventListener("pointerup",ht,{once:!0})}),onFocus:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onFocus,()=>{ct.current||it.onOpen()}),onBlur:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onBlur,it.onClose),onClick:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onClick,it.onClose)})))}),$a093c7e1ec25a057$var$PORTAL_NAME="TooltipPortal",[$a093c7e1ec25a057$var$PortalProvider,$a093c7e1ec25a057$var$usePortalContext]=$a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$PORTAL_NAME,{forceMount:void 0}),$a093c7e1ec25a057$var$CONTENT_NAME="TooltipContent",$a093c7e1ec25a057$export$e9003e2be37ec060=reactExports.forwardRef((tt,et)=>{const nt=$a093c7e1ec25a057$var$usePortalContext($a093c7e1ec25a057$var$CONTENT_NAME,tt.__scopeTooltip),{forceMount:rt=nt.forceMount,side:it="top",...ot}=tt,at=$a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME,tt.__scopeTooltip);return reactExports.createElement($921a889cee6df7e8$export$99c2b779aa4e8b8b,{present:rt||at.open},at.disableHoverableContent?reactExports.createElement($a093c7e1ec25a057$var$TooltipContentImpl,_extends$r({side:it},ot,{ref:et})):reactExports.createElement($a093c7e1ec25a057$var$TooltipContentHoverable,_extends$r({side:it},ot,{ref:et})))}),$a093c7e1ec25a057$var$TooltipContentHoverable=reactExports.forwardRef((tt,et)=>{const nt=$a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME,tt.__scopeTooltip),rt=$a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$CONTENT_NAME,tt.__scopeTooltip),it=reactExports.useRef(null),ot=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(et,it),[at,st]=reactExports.useState(null),{trigger:lt,onClose:ct}=nt,ut=it.current,{onPointerInTransitChange:ht}=rt,dt=reactExports.useCallback(()=>{st(null),ht(!1)},[ht]),pt=reactExports.useCallback((mt,gt)=>{const yt=mt.currentTarget,bt={x:mt.clientX,y:mt.clientY},wt=$a093c7e1ec25a057$var$getExitSideFromRect(bt,yt.getBoundingClientRect()),vt=$a093c7e1ec25a057$var$getPaddedExitPoints(bt,wt),kt=$a093c7e1ec25a057$var$getPointsFromRect(gt.getBoundingClientRect()),St=$a093c7e1ec25a057$var$getHull([...vt,...kt]);st(St),ht(!0)},[ht]);return reactExports.useEffect(()=>()=>dt(),[dt]),reactExports.useEffect(()=>{if(lt&&ut){const mt=yt=>pt(yt,ut),gt=yt=>pt(yt,lt);return lt.addEventListener("pointerleave",mt),ut.addEventListener("pointerleave",gt),()=>{lt.removeEventListener("pointerleave",mt),ut.removeEventListener("pointerleave",gt)}}},[lt,ut,pt,dt]),reactExports.useEffect(()=>{if(at){const mt=gt=>{const yt=gt.target,bt={x:gt.clientX,y:gt.clientY},wt=(lt==null?void 0:lt.contains(yt))||(ut==null?void 0:ut.contains(yt)),vt=!$a093c7e1ec25a057$var$isPointInPolygon(bt,at);wt?dt():vt&&(dt(),ct())};return document.addEventListener("pointermove",mt),()=>document.removeEventListener("pointermove",mt)}},[lt,ut,at,ct,dt]),reactExports.createElement($a093c7e1ec25a057$var$TooltipContentImpl,_extends$r({},tt,{ref:ot}))}),[$a093c7e1ec25a057$var$VisuallyHiddenContentContextProvider,$a093c7e1ec25a057$var$useVisuallyHiddenContentContext]=$a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$TOOLTIP_NAME,{isInside:!1}),$a093c7e1ec25a057$var$TooltipContentImpl=reactExports.forwardRef((tt,et)=>{const{__scopeTooltip:nt,children:rt,"aria-label":it,onEscapeKeyDown:ot,onPointerDownOutside:at,...st}=tt,lt=$a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME,nt),ct=$a093c7e1ec25a057$var$usePopperScope(nt),{onClose:ut}=lt;return reactExports.useEffect(()=>(document.addEventListener($a093c7e1ec25a057$var$TOOLTIP_OPEN,ut),()=>document.removeEventListener($a093c7e1ec25a057$var$TOOLTIP_OPEN,ut)),[ut]),reactExports.useEffect(()=>{if(lt.trigger){const ht=dt=>{const pt=dt.target;pt!=null&&pt.contains(lt.trigger)&&ut()};return window.addEventListener("scroll",ht,{capture:!0}),()=>window.removeEventListener("scroll",ht,{capture:!0})}},[lt.trigger,ut]),reactExports.createElement($5cb92bef7577960e$export$177fb62ff3ec1f22,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:ot,onPointerDownOutside:at,onFocusOutside:ht=>ht.preventDefault(),onDismiss:ut},reactExports.createElement($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2,_extends$r({"data-state":lt.stateAttribute},ct,st,{ref:et,style:{...st.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"}}),reactExports.createElement($5e63c961fc1ce211$export$d9f1ccf0bdb05d45,null,rt),reactExports.createElement($a093c7e1ec25a057$var$VisuallyHiddenContentContextProvider,{scope:nt,isInside:!0},reactExports.createElement($ea1ef594cf570d83$export$be92b6f5f03c0fe9,{id:lt.contentId,role:"tooltip"},it||rt))))}),$a093c7e1ec25a057$var$ARROW_NAME="TooltipArrow",$a093c7e1ec25a057$export$c27ee0ad710f7559=reactExports.forwardRef((tt,et)=>{const{__scopeTooltip:nt,...rt}=tt,it=$a093c7e1ec25a057$var$usePopperScope(nt);return $a093c7e1ec25a057$var$useVisuallyHiddenContentContext($a093c7e1ec25a057$var$ARROW_NAME,nt).isInside?null:reactExports.createElement($cf1ac5d9fe0e8206$export$21b07c8f274aebd5,_extends$r({},it,rt,{ref:et}))});function $a093c7e1ec25a057$var$getExitSideFromRect(tt,et){const nt=Math.abs(et.top-tt.y),rt=Math.abs(et.bottom-tt.y),it=Math.abs(et.right-tt.x),ot=Math.abs(et.left-tt.x);switch(Math.min(nt,rt,it,ot)){case ot:return"left";case it:return"right";case nt:return"top";case rt:return"bottom";default:throw new Error("unreachable")}}function $a093c7e1ec25a057$var$getPaddedExitPoints(tt,et,nt=5){const rt=[];switch(et){case"top":rt.push({x:tt.x-nt,y:tt.y+nt},{x:tt.x+nt,y:tt.y+nt});break;case"bottom":rt.push({x:tt.x-nt,y:tt.y-nt},{x:tt.x+nt,y:tt.y-nt});break;case"left":rt.push({x:tt.x+nt,y:tt.y-nt},{x:tt.x+nt,y:tt.y+nt});break;case"right":rt.push({x:tt.x-nt,y:tt.y-nt},{x:tt.x-nt,y:tt.y+nt});break}return rt}function $a093c7e1ec25a057$var$getPointsFromRect(tt){const{top:et,right:nt,bottom:rt,left:it}=tt;return[{x:it,y:et},{x:nt,y:et},{x:nt,y:rt},{x:it,y:rt}]}function $a093c7e1ec25a057$var$isPointInPolygon(tt,et){const{x:nt,y:rt}=tt;let it=!1;for(let ot=0,at=et.length-1;otrt!=ut>rt&&nt<(ct-st)*(rt-lt)/(ut-lt)+st&&(it=!it)}return it}function $a093c7e1ec25a057$var$getHull(tt){const et=tt.slice();return et.sort((nt,rt)=>nt.xrt.x?1:nt.yrt.y?1:0),$a093c7e1ec25a057$var$getHullPresorted(et)}function $a093c7e1ec25a057$var$getHullPresorted(tt){if(tt.length<=1)return tt.slice();const et=[];for(let rt=0;rt=2;){const ot=et[et.length-1],at=et[et.length-2];if((ot.x-at.x)*(it.y-at.y)>=(ot.y-at.y)*(it.x-at.x))et.pop();else break}et.push(it)}et.pop();const nt=[];for(let rt=tt.length-1;rt>=0;rt--){const it=tt[rt];for(;nt.length>=2;){const ot=nt[nt.length-1],at=nt[nt.length-2];if((ot.x-at.x)*(it.y-at.y)>=(ot.y-at.y)*(it.x-at.x))nt.pop();else break}nt.push(it)}return nt.pop(),et.length===1&&nt.length===1&&et[0].x===nt[0].x&&et[0].y===nt[0].y?et:et.concat(nt)}const $a093c7e1ec25a057$export$be92b6f5f03c0fe9=$a093c7e1ec25a057$export$28c660c63b792dea,$a093c7e1ec25a057$export$41fb9f06171c75f4=$a093c7e1ec25a057$export$8c610744efcf8a1d,$a093c7e1ec25a057$export$7c6e2c02157bb7d2=$a093c7e1ec25a057$export$e9003e2be37ec060,$a093c7e1ec25a057$export$21b07c8f274aebd5=$a093c7e1ec25a057$export$c27ee0ad710f7559;function _objectWithoutPropertiesLoose$i(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _objectWithoutProperties$f(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$i(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}let LevaErrors;(function(tt){tt[tt.UNSUPPORTED_INPUT=0]="UNSUPPORTED_INPUT",tt[tt.NO_COMPONENT_FOR_TYPE=1]="NO_COMPONENT_FOR_TYPE",tt[tt.UNKNOWN_INPUT=2]="UNKNOWN_INPUT",tt[tt.DUPLICATE_KEYS=3]="DUPLICATE_KEYS",tt[tt.ALREADY_REGISTERED_TYPE=4]="ALREADY_REGISTERED_TYPE",tt[tt.CLIPBOARD_ERROR=5]="CLIPBOARD_ERROR",tt[tt.THEME_ERROR=6]="THEME_ERROR",tt[tt.PATH_DOESNT_EXIST=7]="PATH_DOESNT_EXIST",tt[tt.INPUT_TYPE_OVERRIDE=8]="INPUT_TYPE_OVERRIDE",tt[tt.EMPTY_KEY=9]="EMPTY_KEY"})(LevaErrors||(LevaErrors={}));const ErrorList={[LevaErrors.UNSUPPORTED_INPUT]:(tt,et)=>[`An input with type \`${tt}\` input was found at path \`${et}\` but it's not supported yet.`],[LevaErrors.NO_COMPONENT_FOR_TYPE]:(tt,et)=>[`Type \`${tt}\` found at path \`${et}\` can't be displayed in panel because no component supports it yet.`],[LevaErrors.UNKNOWN_INPUT]:(tt,et)=>[`input at path \`${tt}\` is not recognized.`,et],[LevaErrors.DUPLICATE_KEYS]:(tt,et,nt)=>[`Key \`${tt}\` of path \`${et}\` already exists at path \`${nt}\`. Even nested keys need to be unique. Rename one of the keys.`],[LevaErrors.ALREADY_REGISTERED_TYPE]:tt=>[`Type ${tt} has already been registered. You can't register a component with the same type.`],[LevaErrors.CLIPBOARD_ERROR]:tt=>["Error copying the value",tt],[LevaErrors.THEME_ERROR]:(tt,et)=>[`Error accessing the theme \`${tt}.${et}\` value.`],[LevaErrors.PATH_DOESNT_EXIST]:tt=>[`Error getting the value at path \`${tt}\`. There is probably an error in your \`render\` function.`],[LevaErrors.PATH_DOESNT_EXIST]:tt=>[`Error accessing the value at path \`${tt}\``],[LevaErrors.INPUT_TYPE_OVERRIDE]:(tt,et,nt)=>[`Input at path \`${tt}\` already exists with type: \`${et}\`. Its type cannot be overridden with type \`${nt}\`.`],[LevaErrors.EMPTY_KEY]:()=>["Keys can not be empty, if you want to hide a label use whitespace."]};function _log(tt,et,...nt){const[rt,...it]=ErrorList[et](...nt);console[tt]("LEVA: "+rt,...it)}const warn$3=_log.bind(null,"warn"),log$2=_log.bind(null,"log"),_excluded$a$1=["value"],_excluded2$4$1=["schema"],_excluded3$1$1=["value"],Schemas=[],Plugins={};function getValueType(tt){let{value:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$a$1);for(let rt of Schemas){const it=rt(et,nt);if(it)return it}}function register(tt,et){let{schema:nt}=et,rt=_objectWithoutProperties$f(et,_excluded2$4$1);if(tt in Plugins){warn$3(LevaErrors.ALREADY_REGISTERED_TYPE,tt);return}Schemas.push((it,ot)=>nt(it,ot)&&tt),Plugins[tt]=rt}function createInternalPlugin(tt){return tt}function normalize$3$1(tt,et,nt,rt){const{normalize:it}=Plugins[tt];if(it)return it(et,nt,rt);if(typeof et!="object"||!("value"in et))return{value:et};const{value:ot}=et,at=_objectWithoutProperties$f(et,_excluded3$1$1);return{value:ot,settings:at}}function sanitize$4(tt,et,nt,rt,it,ot){const{sanitize:at}=Plugins[tt];return at?at(et,nt,rt,it,ot):et}function format$2$1(tt,et,nt){const{format:rt}=Plugins[tt];return rt?rt(et,nt):et}function _defineProperty$x(tt,et,nt){return et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function ownKeys$v(tt,et){var nt=Object.keys(tt);if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(tt);et&&(rt=rt.filter(function(it){return Object.getOwnPropertyDescriptor(tt,it).enumerable})),nt.push.apply(nt,rt)}return nt}function _objectSpread2$1(tt){for(var et=1;ettt>nt?nt:tt{if(tt===""||typeof tt=="number")return tt;try{const et=evaluate(tt);if(!isNaN(et))return et}catch{}return parseFloat(tt)},log10=Math.log(10);function getStep(tt){let et=Math.abs(+String(tt).replace(".",""));if(et===0)return .01;for(;et!==0&&et%10===0;)et/=10;const nt=Math.floor(Math.log(et)/log10)+1,rt=Math.floor(Math.log10(Math.abs(tt))),it=Math.pow(10,rt-nt);return Math.max(it,.001)}const range$8=(tt,et,nt)=>nt===et?0:(clamp$7(tt,et,nt)-et)/(nt-et),invertedRange=(tt,et,nt)=>tt*(nt-et)+et,getUid=()=>"_"+Math.random().toString(36).substr(2,9),parens=/\(([0-9+\-*/^ .]+)\)/,exp$2=/(\d+(?:\.\d+)?) ?\^ ?(\d+(?:\.\d+)?)/,mul=/(\d+(?:\.\d+)?) ?\* ?(\d+(?:\.\d+)?)/,div=/(\d+(?:\.\d+)?) ?\/ ?(\d+(?:\.\d+)?)/,add$5=/(\d+(?:\.\d+)?) ?\+ ?(\d+(?:\.\d+)?)/,sub=/(\d+(?:\.\d+)?) ?- ?(\d+(?:\.\d+)?)/;function evaluate(tt){if(isNaN(Number(tt)))if(parens.test(tt)){const et=tt.replace(parens,(nt,rt)=>String(evaluate(rt)));return evaluate(et)}else if(exp$2.test(tt)){const et=tt.replace(exp$2,(nt,rt,it)=>String(Math.pow(Number(rt),Number(it))));return evaluate(et)}else if(mul.test(tt)){const et=tt.replace(mul,(nt,rt,it)=>String(Number(rt)*Number(it)));return evaluate(et)}else if(div.test(tt)){const et=tt.replace(div,(nt,rt,it)=>{if(it!=0)return String(Number(rt)/Number(it));throw new Error("Division by zero")});return evaluate(et)}else if(add$5.test(tt)){const et=tt.replace(add$5,(nt,rt,it)=>String(Number(rt)+Number(it)));return evaluate(et)}else if(sub.test(tt)){const et=tt.replace(sub,(nt,rt,it)=>String(Number(rt)-Number(it)));return evaluate(et)}else return Number(tt);return Number(tt)}function pick$1(tt,et){return et.reduce((nt,rt)=>(tt&&tt.hasOwnProperty(rt)&&(nt[rt]=tt[rt]),nt),{})}function omit$1(tt,et){const nt=_objectSpread2$1({},tt);return et.forEach(rt=>rt in tt&&delete nt[rt]),nt}function mapArrayToKeys(tt,et){return tt.reduce((nt,rt,it)=>Object.assign(nt,{[et[it]]:rt}),{})}function isObject$o(tt){return Object.prototype.toString.call(tt)==="[object Object]"}const isEmptyObject$1=tt=>isObject$o(tt)&&Object.keys(tt).length===0;let SpecialInputs;(function(tt){tt.BUTTON="BUTTON",tt.BUTTON_GROUP="BUTTON_GROUP",tt.MONITOR="MONITOR",tt.FOLDER="FOLDER"})(SpecialInputs||(SpecialInputs={}));let LevaInputs;(function(tt){tt.SELECT="SELECT",tt.IMAGE="IMAGE",tt.NUMBER="NUMBER",tt.COLOR="COLOR",tt.STRING="STRING",tt.BOOLEAN="BOOLEAN",tt.INTERVAL="INTERVAL",tt.VECTOR3D="VECTOR3D",tt.VECTOR2D="VECTOR2D"})(LevaInputs||(LevaInputs={}));const _excluded$9$1=["type","__customInput"],_excluded2$3$1=["render","label","optional","order","disabled","hint","onChange","onEditStart","onEditEnd","transient"],_excluded3$6=["type"];function parseOptions(tt,et,nt={},rt){var it,ot;if(typeof tt!="object"||Array.isArray(tt))return{type:rt,input:tt,options:_objectSpread2$1({key:et,label:et,optional:!1,disabled:!1,order:0},nt)};if("__customInput"in tt){const{type:St,__customInput:Tt}=tt,At=_objectWithoutProperties$f(tt,_excluded$9$1);return parseOptions(Tt,et,At,St)}const{render:at,label:st,optional:lt,order:ct=0,disabled:ut,hint:ht,onChange:dt,onEditStart:pt,onEditEnd:mt,transient:gt}=tt,yt=_objectWithoutProperties$f(tt,_excluded2$3$1),bt=_objectSpread2$1({render:at,key:et,label:st??et,hint:ht,transient:gt??!!dt,onEditStart:pt,onEditEnd:mt,disabled:ut,optional:lt,order:ct},nt);let{type:wt}=yt,vt=_objectWithoutProperties$f(yt,_excluded3$6);if(wt=rt??wt,wt in SpecialInputs)return{type:wt,input:vt,options:bt};let kt;return rt&&isObject$o(vt)&&"value"in vt?kt=vt.value:kt=isEmptyObject$1(vt)?void 0:vt,{type:wt,input:kt,options:_objectSpread2$1(_objectSpread2$1({},bt),{},{onChange:dt,optional:(it=bt.optional)!==null&&it!==void 0?it:!1,disabled:(ot=bt.disabled)!==null&&ot!==void 0?ot:!1})}}function normalizeInput(tt,et,nt,rt){const it=parseOptions(tt,et),{type:ot,input:at,options:st}=it;if(ot)return ot in SpecialInputs?it:{type:ot,input:normalize$3$1(ot,at,nt,rt),options:st};let lt=getValueType(at);return lt?{type:lt,input:normalize$3$1(lt,at,nt,rt),options:st}:(lt=getValueType({value:at}),lt?{type:lt,input:normalize$3$1(lt,{value:at},nt,rt),options:st}:!1)}function updateInput(tt,et,nt,rt,it){const{value:ot,type:at,settings:st}=tt;tt.value=sanitizeValue({type:at,value:ot,settings:st},et,nt,rt),tt.fromPanel=it}const ValueError=function(et,nt,rt){this.type="LEVA_ERROR",this.message="LEVA: "+et,this.previousValue=nt,this.error=rt};function sanitizeValue({type:tt,value:et,settings:nt},rt,it,ot){const at=tt!=="SELECT"&&typeof rt=="function"?rt(et):rt;let st;try{st=sanitize$4(tt,at,nt,et,it,ot)}catch(lt){throw new ValueError(`The value \`${rt}\` did not result in a correct value.`,et,lt)}return dequal(st,et)?et:st}const debounce$6=(tt,et,nt=!1)=>{let rt=0;return function(){const it=arguments,ot=nt&&!rt,at=()=>tt.apply(this,it);window.clearTimeout(rt),rt=window.setTimeout(at,et),ot&&at()}},multiplyStep=tt=>tt.shiftKey?5:tt.altKey?1/5:1;function render(tt,et){const nt=console.error;console.error=()=>{},ReactDOM.render(tt,et),console.error=nt}const _excluded$8$1=["value"],_excluded2$2$1=["min","max"],schema$3=tt=>{if(typeof tt=="number")return!0;if(typeof tt=="string"){const et=parseFloat(tt);return isNaN(et)?!1:tt.substring((""+et).length).trim().length<4}return!1},sanitize$3=(tt,{min:et=-1/0,max:nt=1/0,suffix:rt})=>{const it=parseFloat(tt);if(tt===""||isNaN(it))throw Error("Invalid number");const ot=clamp$7(it,et,nt);return rt?ot+rt:ot},format$1$2=(tt,{pad:et=0,suffix:nt})=>{const rt=parseFloat(tt).toFixed(et);return nt?rt+nt:rt},normalize$2$2=tt=>{let{value:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$8$1);const{min:rt=-1/0,max:it=1/0}=nt,ot=_objectWithoutProperties$f(nt,_excluded2$2$1);let at=parseFloat(et);const st=typeof et=="string"?et.substring((""+at).length):void 0;at=clamp$7(at,rt,it);let lt=nt.step;lt||(Number.isFinite(rt)?Number.isFinite(it)?lt=+(Math.abs(it-rt)/100).toPrecision(1):lt=+(Math.abs(at-rt)/100).toPrecision(1):Number.isFinite(it)&&(lt=+(Math.abs(it-at)/100).toPrecision(1)));const ct=lt?getStep(lt)*10:getStep(at);lt=lt||ct/10;const ut=Math.round(clamp$7(Math.log10(1/ct),0,2));return{value:st?at+st:at,settings:_objectSpread2$1({initialValue:at,step:lt,pad:ut,min:rt,max:it,suffix:st},ot)}},sanitizeStep$1=(tt,{step:et,initialValue:nt})=>{const rt=Math.round((tt-nt)/et);return nt+rt*et};var props$3$1=Object.freeze({__proto__:null,schema:schema$3,sanitize:sanitize$3,format:format$1$2,normalize:normalize$2$2,sanitizeStep:sanitizeStep$1});function _extends$q(){return _extends$q=Object.assign?Object.assign.bind():function(tt){for(var et=1;et({colors:{elevation1:"#292d39",elevation2:"#181c20",elevation3:"#373c4b",accent1:"#0066dc",accent2:"#007bff",accent3:"#3c93ff",highlight1:"#535760",highlight2:"#8c92a4",highlight3:"#fefefe",vivid1:"#ffcc00",folderWidgetColor:"$highlight2",folderTextColor:"$highlight3",toolTipBackground:"$highlight3",toolTipText:"$elevation2"},radii:{xs:"2px",sm:"3px",lg:"10px"},space:{xs:"3px",sm:"6px",md:"10px",rowGap:"7px",colGap:"7px"},fonts:{mono:"ui-monospace, SFMono-Regular, Menlo, 'Roboto Mono', monospace",sans:"system-ui, sans-serif"},fontSizes:{root:"11px",toolTip:"$root"},sizes:{rootWidth:"280px",controlWidth:"160px",numberInputMinWidth:"38px",scrubberWidth:"8px",scrubberHeight:"16px",rowHeight:"24px",folderTitleHeight:"20px",checkboxSize:"16px",joystickWidth:"100px",joystickHeight:"100px",colorPickerWidth:"$controlWidth",colorPickerHeight:"100px",imagePreviewWidth:"$controlWidth",imagePreviewHeight:"100px",monitorHeight:"60px",titleBarHeight:"39px"},shadows:{level1:"0 0 9px 0 #00000088",level2:"0 4px 14px #00000033"},borderWidths:{root:"0px",input:"1px",focus:"1px",hover:"1px",active:"1px",folder:"1px"},fontWeights:{label:"normal",folder:"normal",button:"normal"}});function createStateClass(tt,et){const[nt,rt]=tt.split(" "),it={};return nt!=="none"&&(it.boxShadow=`${et.inset?"inset ":""}0 0 0 $borderWidths${[et.key]} $colors${nt!=="default"&&nt||et.borderColor}`),rt&&(it.backgroundColor=rt),it}const utils$r={$inputStyle:()=>tt=>createStateClass(tt,{key:"$input",borderColor:"$highlight1",inset:!0}),$focusStyle:()=>tt=>createStateClass(tt,{key:"$focus",borderColor:"$accent2"}),$hoverStyle:()=>tt=>createStateClass(tt,{key:"$hover",borderColor:"$accent1",inset:!0}),$activeStyle:()=>tt=>createStateClass(tt,{key:"$active",borderColor:"$accent1",inset:!0})},{styled:styled$5,css:css$1,createTheme:createTheme$2,globalCss,keyframes:keyframes$1}=q$7({prefix:"leva",theme:getDefaultTheme(),utils:_objectSpread2$1(_objectSpread2$1({},utils$r),{},{$flex:()=>({display:"flex",alignItems:"center"}),$flexCenter:()=>({display:"flex",alignItems:"center",justifyContent:"center"}),$reset:()=>({outline:"none",fontSize:"inherit",fontWeight:"inherit",color:"inherit",fontFamily:"inherit",border:"none",backgroundColor:"transparent",appearance:"none"}),$draggable:()=>({touchAction:"none",WebkitUserDrag:"none",userSelect:"none"}),$focus:tt=>({"&:focus":utils$r.$focusStyle()(tt)}),$focusWithin:tt=>({"&:focus-within":utils$r.$focusStyle()(tt)}),$hover:tt=>({"&:hover":utils$r.$hoverStyle()(tt)}),$active:tt=>({"&:active":utils$r.$activeStyle()(tt)})})}),globalStyles=globalCss({".leva__panel__dragged":{WebkitUserDrag:"none",userSelect:"none",input:{userSelect:"none"},"*":{cursor:"ew-resize !important"}}});function mergeTheme(tt){const et=getDefaultTheme();if(!tt)return{theme:et,className:""};Object.keys(tt).forEach(rt=>{Object.assign(et[rt],tt[rt])});const nt=createTheme$2(et);return{theme:et,className:nt.className}}function useTh(tt,et){const{theme:nt}=reactExports.useContext(ThemeContext$3);if(!(tt in nt)||!(et in nt[tt]))return warn$3(LevaErrors.THEME_ERROR,tt,et),"";let rt=et;for(;;){let it=nt[tt][rt];if(typeof it=="string"&&it.charAt(0)==="$")rt=it.substr(1);else return it}}const StyledInput$2=styled$5("input",{$reset:"",padding:"0 $sm",width:0,minWidth:0,flex:1,height:"100%",variants:{levaType:{number:{textAlign:"right"}},as:{textarea:{padding:"$sm"}}}}),InnerLabel=styled$5("div",{$draggable:"",height:"100%",$flexCenter:"",position:"relative",padding:"0 $xs",fontSize:"0.8em",opacity:.8,cursor:"default",touchAction:"none",[`& + ${StyledInput$2}`]:{paddingLeft:0}}),InnerNumberLabel=styled$5(InnerLabel,{cursor:"ew-resize",marginRight:"-$xs",textTransform:"uppercase",opacity:.3,"&:hover":{opacity:1},variants:{dragging:{true:{backgroundColor:"$accent2",opacity:1}}}}),InputContainer=styled$5("div",{$flex:"",position:"relative",borderRadius:"$sm",overflow:"hidden",color:"inherit",height:"$rowHeight",backgroundColor:"$elevation3",$inputStyle:"$elevation1",$hover:"",$focusWithin:"",variants:{textArea:{true:{height:"auto"}}}}),_excluded$7$2=["innerLabel","value","onUpdate","onChange","onKeyDown","type","id","inputType","rows"],_excluded2$1$2=["onUpdate"];function ValueInput(tt){let{innerLabel:et,value:nt,onUpdate:rt,onChange:it,onKeyDown:ot,type:at,id:st,inputType:lt="text",rows:ct=0}=tt,ut=_objectWithoutProperties$f(tt,_excluded$7$2);const{id:ht,emitOnEditStart:dt,emitOnEditEnd:pt,disabled:mt}=useInputContext(),gt=st||ht,yt=reactExports.useRef(null),bt=ct>0,wt=bt?"textarea":"input",vt=reactExports.useCallback(Tt=>At=>{const Et=At.currentTarget.value;Tt(Et)},[]);React$1.useEffect(()=>{const Tt=yt.current,At=vt(Et=>{rt(Et),pt()});return Tt==null||Tt.addEventListener("blur",At),()=>Tt==null?void 0:Tt.removeEventListener("blur",At)},[vt,rt,pt]);const kt=reactExports.useCallback(Tt=>{Tt.key==="Enter"&&vt(rt)(Tt)},[vt,rt]),St=Object.assign({as:wt},bt?{rows:ct}:{},ut);return React$1.createElement(InputContainer,{textArea:bt},et&&typeof et=="string"?React$1.createElement(InnerLabel,null,et):et,React$1.createElement(StyledInput$2,_extends$q({levaType:at,ref:yt,id:gt,type:lt,autoComplete:"off",spellCheck:"false",value:nt,onChange:vt(it),onFocus:()=>dt(),onKeyPress:kt,onKeyDown:ot,disabled:mt},St)))}function NumberInput(tt){let{onUpdate:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded2$1$2);const rt=reactExports.useCallback(ot=>et(parseNumber(ot)),[et]),it=reactExports.useCallback(ot=>{const at=ot.key==="ArrowUp"?1:ot.key==="ArrowDown"?-1:0;if(at){ot.preventDefault();const st=ot.altKey?.1:ot.shiftKey?10:1;et(lt=>parseFloat(lt)+at*st)}},[et]);return React$1.createElement(ValueInput,_extends$q({},nt,{onUpdate:rt,onKeyDown:it,type:"number"}))}const StyledFolder=styled$5("div",{}),StyledWrapper=styled$5("div",{position:"relative",background:"$elevation2",transition:"height 300ms ease",variants:{fill:{true:{},false:{}},flat:{false:{},true:{}},isRoot:{true:{},false:{paddingLeft:"$md","&::after":{content:'""',position:"absolute",left:0,top:0,width:"$borderWidths$folder",height:"100%",backgroundColor:"$folderWidgetColor",opacity:.4,transform:"translateX(-50%)"}}}},compoundVariants:[{isRoot:!0,fill:!1,css:{overflowY:"auto",maxHeight:"calc(100vh - 20px - $$titleBarHeight)"}},{isRoot:!0,flat:!1,css:{borderRadius:"$lg"}}]}),StyledTitle=styled$5("div",{$flex:"",color:"$folderTextColor",userSelect:"none",cursor:"pointer",height:"$folderTitleHeight",fontWeight:"$folder","> svg":{marginLeft:-4,marginRight:4,cursor:"pointer",fill:"$folderWidgetColor",opacity:.6},"&:hover > svg":{fill:"$folderWidgetColor"},[`&:hover + ${StyledWrapper}::after`]:{opacity:.6},[`${StyledFolder}:hover > & + ${StyledWrapper}::after`]:{opacity:.6},[`${StyledFolder}:hover > & > svg`]:{opacity:1}}),StyledContent=styled$5("div",{position:"relative",display:"grid",gridTemplateColumns:"100%",rowGap:"$rowGap",transition:"opacity 250ms ease",variants:{toggled:{true:{opacity:1,transitionDelay:"250ms"},false:{opacity:0,transitionDelay:"0ms",pointerEvents:"none"}},isRoot:{true:{"& > div":{paddingLeft:"$md",paddingRight:"$md"},"& > div:first-of-type":{paddingTop:"$sm"},"& > div:last-of-type":{paddingBottom:"$sm"},[`> ${StyledFolder}:not(:first-of-type)`]:{paddingTop:"$sm",marginTop:"$md",borderTop:"$borderWidths$folder solid $colors$elevation1"}}}}}),StyledRow=styled$5("div",{position:"relative",zIndex:100,display:"grid",rowGap:"$rowGap",gridTemplateRows:"minmax($sizes$rowHeight, max-content)",alignItems:"center",color:"$highlight2",[`${StyledContent} > &`]:{"&:first-of-type":{marginTop:"$rowGap"},"&:last-of-type":{marginBottom:"$rowGap"}},variants:{disabled:{true:{pointerEvents:"none"},false:{"&:hover,&:focus-within":{color:"$highlight3"}}}}}),StyledInputRow=styled$5(StyledRow,{gridTemplateColumns:"auto $sizes$controlWidth",columnGap:"$colGap"}),CopyLabelContainer=styled$5("div",{$flex:"",height:"100%",position:"relative",overflow:"hidden","& > div":{marginLeft:"$colGap",padding:"0 $xs",opacity:.4},"& > div:hover":{opacity:.8},"& > div > svg":{display:"none",cursor:"pointer",width:13,minWidth:13,height:13,backgroundColor:"$elevation2"},"&:hover > div > svg":{display:"block"},variants:{align:{top:{height:"100%",alignItems:"flex-start",paddingTop:"$sm"}}}}),StyledOptionalToggle=styled$5("input",{$reset:"",height:0,width:0,opacity:0,margin:0,"& + label":{position:"relative",$flexCenter:"",height:"100%",userSelect:"none",cursor:"pointer",paddingLeft:2,paddingRight:"$sm",pointerEvents:"auto"},"& + label:after":{content:'""',width:6,height:6,backgroundColor:"$elevation3",borderRadius:"50%",$activeStyle:""},"&:focus + label:after":{$focusStyle:""},"& + label:active:after":{backgroundColor:"$accent1",$focusStyle:""},"&:checked + label:after":{backgroundColor:"$accent1"}}),StyledLabel=styled$5("label",{fontWeight:"$label",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap","& > svg":{display:"block"}}),StyledInputWrapper$1=styled$5("div",{opacity:1,variants:{disabled:{true:{opacity:.6,pointerEvents:"none",[`& ${StyledLabel}`]:{pointerEvents:"auto"}}}}}),Overlay$1=styled$5("div",{position:"fixed",top:0,bottom:0,right:0,left:0,zIndex:1e3,userSelect:"none"}),StyledToolTipContent=styled$5("div",{background:"$toolTipBackground",fontFamily:"$sans",fontSize:"$toolTip",padding:"$xs $sm",color:"$toolTipText",borderRadius:"$xs",boxShadow:"$level2",maxWidth:260}),ToolTipArrow=styled$5($a093c7e1ec25a057$export$21b07c8f274aebd5,{fill:"$toolTipBackground"});function Portal$3({children:tt}){const{className:et}=reactExports.useContext(ThemeContext$3);return React$1.createElement($f1701beae083dbae$export$be92b6f5f03c0fe9,{className:et},tt)}const _excluded$6$2=["align"];function OptionalToggle(){const{id:tt,disable:et,disabled:nt}=useInputContext();return React$1.createElement(React$1.Fragment,null,React$1.createElement(StyledOptionalToggle,{id:tt+"__disable",type:"checkbox",checked:!nt,onChange:()=>et(!nt)}),React$1.createElement("label",{htmlFor:tt+"__disable"}))}function RawLabel(tt){const{id:et,optional:nt,hint:rt}=useInputContext(),it=tt.htmlFor||(et?{htmlFor:et}:null),ot=!rt&&typeof tt.children=="string"?{title:tt.children}:null;return React$1.createElement(React$1.Fragment,null,nt&&React$1.createElement(OptionalToggle,null),rt!==void 0?React$1.createElement($a093c7e1ec25a057$export$be92b6f5f03c0fe9,null,React$1.createElement($a093c7e1ec25a057$export$41fb9f06171c75f4,{asChild:!0},React$1.createElement(StyledLabel,_extends$q({},it,tt))),React$1.createElement($a093c7e1ec25a057$export$7c6e2c02157bb7d2,{side:"top",sideOffset:2},React$1.createElement(StyledToolTipContent,null,rt,React$1.createElement(ToolTipArrow,null)))):React$1.createElement(StyledLabel,_extends$q({},it,ot,tt)))}function Label$4(tt){let{align:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$6$2);const{value:rt,label:it,key:ot,disabled:at}=useInputContext(),{hideCopyButton:st}=usePanelSettingsContext(),lt=!st&&ot!==void 0,[ct,ut]=reactExports.useState(!1),ht=async()=>{try{await navigator.clipboard.writeText(JSON.stringify({[ot]:rt??""})),ut(!0)}catch{warn$3(LevaErrors.CLIPBOARD_ERROR,{[ot]:rt})}};return React$1.createElement(CopyLabelContainer,{align:et,onPointerLeave:()=>ut(!1)},React$1.createElement(RawLabel,nt),lt&&!at&&React$1.createElement("div",{title:`Click to copy ${typeof it=="string"?it:ot} value`},ct?React$1.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"},React$1.createElement("path",{d:"M9 2a1 1 0 000 2h2a1 1 0 100-2H9z"}),React$1.createElement("path",{fillRule:"evenodd",d:"M4 5a2 2 0 012-2 3 3 0 003 3h2a3 3 0 003-3 2 2 0 012 2v11a2 2 0 01-2 2H6a2 2 0 01-2-2V5zm9.707 5.707a1 1 0 00-1.414-1.414L9 12.586l-1.293-1.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})):React$1.createElement("svg",{onClick:ht,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"},React$1.createElement("path",{d:"M8 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z"}),React$1.createElement("path",{d:"M6 3a2 2 0 00-2 2v11a2 2 0 002 2h8a2 2 0 002-2V5a2 2 0 00-2-2 3 3 0 01-3 3H9a3 3 0 01-3-3z"}))))}const _excluded$5$2=["toggled"],Svg$1=styled$5("svg",{fill:"currentColor",transition:"transform 350ms ease, fill 250ms ease"});function Chevron(tt){let{toggled:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$5$2);return React$1.createElement(Svg$1,_extends$q({width:"9",height:"5",viewBox:"0 0 9 5",xmlns:"http://www.w3.org/2000/svg",style:{transform:`rotate(${et?0:-90}deg)`}},nt),React$1.createElement("path",{d:"M3.8 4.4c.4.3 1 .3 1.4 0L8 1.7A1 1 0 007.4 0H1.6a1 1 0 00-.7 1.7l3 2.7z"}))}const _excluded$4$2=["input"];function Row(tt){let{input:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$4$2);return et?React$1.createElement(StyledInputRow,nt):React$1.createElement(StyledRow,nt)}function useInputSetters({value:tt,type:et,settings:nt,setValue:rt}){const[it,ot]=reactExports.useState(format$2$1(et,tt,nt)),at=reactExports.useRef(tt),st=reactExports.useRef(nt);st.current=nt;const lt=reactExports.useCallback(ut=>ot(format$2$1(et,ut,st.current)),[et]),ct=reactExports.useCallback(ut=>{try{rt(ut)}catch(ht){const{type:dt,previousValue:pt}=ht;if(dt!=="LEVA_ERROR")throw ht;lt(pt)}},[lt,rt]);return reactExports.useEffect(()=>{dequal(tt,at.current)||lt(tt),at.current=tt},[tt,lt]),{displayValue:it,onChange:ot,onUpdate:ct}}function useDrag(tt,et){const{emitOnEditStart:nt,emitOnEditEnd:rt}=useInputContext();return useDrag$1(it=>{it.first&&(document.body.classList.add("leva__panel__dragged"),nt==null||nt());const ot=tt(it);return it.last&&(document.body.classList.remove("leva__panel__dragged"),rt==null||rt()),ot},et)}function useCanvas2d(tt){const et=reactExports.useRef(null),nt=reactExports.useRef(null),rt=reactExports.useRef(!1);return reactExports.useEffect(()=>{const it=debounce$6(()=>{et.current.width=et.current.offsetWidth*window.devicePixelRatio,et.current.height=et.current.offsetHeight*window.devicePixelRatio,tt(et.current,nt.current)},250);return window.addEventListener("resize",it),rt.current||(it(),rt.current=!0),()=>window.removeEventListener("resize",it)},[tt]),reactExports.useEffect(()=>{nt.current=et.current.getContext("2d")},[]),[et,nt]}function useTransform(){const tt=reactExports.useRef(null),et=reactExports.useRef({x:0,y:0}),nt=reactExports.useCallback(rt=>{Object.assign(et.current,rt),tt.current&&(tt.current.style.transform=`translate3d(${et.current.x}px, ${et.current.y}px, 0)`)},[]);return[tt,nt]}const _excluded$3$2=["__refCount"],getInputAtPath=(tt,et)=>{if(!tt[et])return null;const nt=tt[et];return _objectWithoutProperties$f(nt,_excluded$3$2)};function useInput(tt){const et=useStoreContext(),[nt,rt]=reactExports.useState(getInputAtPath(et.getData(),tt)),it=reactExports.useCallback(ct=>et.setValueAtPath(tt,ct,!0),[tt,et]),ot=reactExports.useCallback(ct=>et.setSettingsAtPath(tt,ct),[tt,et]),at=reactExports.useCallback(ct=>et.disableInputAtPath(tt,ct),[tt,et]),st=reactExports.useCallback(()=>et.emitOnEditStart(tt),[tt,et]),lt=reactExports.useCallback(()=>et.emitOnEditEnd(tt),[tt,et]);return reactExports.useEffect(()=>{rt(getInputAtPath(et.getData(),tt));const ct=et.useStore.subscribe(ut=>getInputAtPath(ut.data,tt),rt,{equalityFn:shallow$1});return()=>ct()},[et,tt]),[nt,{set:it,setSettings:ot,disable:at,storeId:et.storeId,emitOnEditStart:st,emitOnEditEnd:lt}]}const RangeGrid=styled$5("div",{variants:{hasRange:{true:{position:"relative",display:"grid",gridTemplateColumns:"auto $sizes$numberInputMinWidth",columnGap:"$colGap",alignItems:"center"}}}}),Range=styled$5("div",{position:"relative",width:"100%",height:2,borderRadius:"$xs",backgroundColor:"$elevation1"}),Scrubber=styled$5("div",{position:"absolute",width:"$scrubberWidth",height:"$scrubberHeight",borderRadius:"$xs",boxShadow:"0 0 0 2px $colors$elevation2",backgroundColor:"$accent2",cursor:"pointer",$active:"none $accent1",$hover:"none $accent3",variants:{position:{left:{borderTopRightRadius:0,borderBottomRightRadius:0,transform:"translateX(calc(-0.5 * ($sizes$scrubberWidth + 4px)))"},right:{borderTopLeftRadius:0,borderBottomLeftRadius:0,transform:"translateX(calc(0.5 * ($sizes$scrubberWidth + 4px)))"}}}}),RangeWrapper=styled$5("div",{position:"relative",$flex:"",height:"100%",cursor:"pointer",touchAction:"none"}),Indicator=styled$5("div",{position:"absolute",height:"100%",backgroundColor:"$accent2"});function RangeSlider({value:tt,min:et,max:nt,onDrag:rt,step:it,initialValue:ot}){const at=reactExports.useRef(null),st=reactExports.useRef(null),lt=reactExports.useRef(0),ct=useTh("sizes","scrubberWidth"),ut=useDrag(({event:dt,first:pt,xy:[mt],movement:[gt],memo:yt})=>{if(pt){const{width:wt,left:vt}=at.current.getBoundingClientRect();lt.current=wt-parseFloat(ct),yt=(dt==null?void 0:dt.target)===st.current?tt:invertedRange((mt-vt)/wt,et,nt)}const bt=yt+invertedRange(gt/lt.current,0,nt-et);return rt(sanitizeStep$1(bt,{step:it,initialValue:ot})),yt}),ht=range$8(tt,et,nt);return React$1.createElement(RangeWrapper,_extends$q({ref:at},ut()),React$1.createElement(Range,null,React$1.createElement(Indicator,{style:{left:0,right:`${(1-ht)*100}%`}})),React$1.createElement(Scrubber,{ref:st,style:{left:`calc(${ht} * (100% - ${ct}))`}}))}const DraggableLabel=React$1.memo(({label:tt,onUpdate:et,step:nt,innerLabelTrim:rt})=>{const[it,ot]=reactExports.useState(!1),at=useDrag(({active:st,delta:[lt],event:ct,memo:ut=0})=>(ot(st),ut+=lt/2,Math.abs(ut)>=1&&(et(ht=>parseFloat(ht)+Math.floor(ut)*nt*multiplyStep(ct)),ut=0),ut));return React$1.createElement(InnerNumberLabel,_extends$q({dragging:it,title:tt.length>1?tt:""},at()),tt.slice(0,rt))});function Number$1({label:tt,id:et,displayValue:nt,onUpdate:rt,onChange:it,settings:ot,innerLabelTrim:at=1}){const st=at>0&&React$1.createElement(DraggableLabel,{label:tt,step:ot.step,onUpdate:rt,innerLabelTrim:at});return React$1.createElement(NumberInput,{id:et,value:String(nt),onUpdate:rt,onChange:it,innerLabel:st})}function NumberComponent(){const tt=useInputContext(),{label:et,value:nt,onUpdate:rt,settings:it,id:ot}=tt,{min:at,max:st}=it,lt=st!==1/0&&at!==-1/0;return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,et),React$1.createElement(RangeGrid,{hasRange:lt},lt&&React$1.createElement(RangeSlider,_extends$q({value:parseFloat(nt),onDrag:rt},it)),React$1.createElement(Number$1,_extends$q({},tt,{id:ot,label:"value",innerLabelTrim:lt?0:1}))))}const{sanitizeStep}=props$3$1,rest=_objectWithoutProperties$f(props$3$1,["sanitizeStep"]);var number$6=_objectSpread2$1({component:NumberComponent},rest);const schema$2$1=(tt,et)=>v8n().schema({options:v8n().passesAnyOf(v8n().object(),v8n().array())}).test(et),sanitize$2$1=(tt,{values:et})=>{if(et.indexOf(tt)<0)throw Error("Selected value doesn't match Select options");return tt},format$3=(tt,{values:et})=>et.indexOf(tt),normalize$1$2=tt=>{let{value:et,options:nt}=tt,rt,it;return Array.isArray(nt)?(it=nt,rt=nt.map(ot=>String(ot))):(it=Object.values(nt),rt=Object.keys(nt)),"value"in tt?it.includes(et)||(rt.unshift(String(et)),it.unshift(et)):et=it[0],Object.values(nt).includes(et)||(nt[String(et)]=et),{value:et,settings:{keys:rt,values:it}}};var props$2$1=Object.freeze({__proto__:null,schema:schema$2$1,sanitize:sanitize$2$1,format:format$3,normalize:normalize$1$2});const SelectContainer=styled$5("div",{$flexCenter:"",position:"relative","> svg":{pointerEvents:"none",position:"absolute",right:"$md"}}),NativeSelect=styled$5("select",{position:"absolute",top:0,left:0,width:"100%",height:"100%",opacity:0}),PresentationalSelect=styled$5("div",{display:"flex",alignItems:"center",width:"100%",height:"$rowHeight",backgroundColor:"$elevation3",borderRadius:"$sm",padding:"0 $sm",cursor:"pointer",[`${NativeSelect}:focus + &`]:{$focusStyle:""},[`${NativeSelect}:hover + &`]:{$hoverStyle:""}});function Select$5({displayValue:tt,value:et,onUpdate:nt,id:rt,settings:it,disabled:ot}){const{keys:at,values:st}=it,lt=reactExports.useRef();return et===st[tt]&&(lt.current=at[tt]),React$1.createElement(SelectContainer,null,React$1.createElement(NativeSelect,{id:rt,value:tt,onChange:ct=>nt(st[Number(ct.currentTarget.value)]),disabled:ot},at.map((ct,ut)=>React$1.createElement("option",{key:ct,value:ut},ct))),React$1.createElement(PresentationalSelect,null,lt.current),React$1.createElement(Chevron,{toggled:!0}))}function SelectComponent(){const{label:tt,value:et,displayValue:nt,onUpdate:rt,id:it,disabled:ot,settings:at}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(Select$5,{id:it,value:et,displayValue:nt,onUpdate:rt,settings:at,disabled:ot}))}var select=_objectSpread2$1({component:SelectComponent},props$2$1);const schema$1$1=tt=>v8n().string().test(tt),sanitize$1$1=tt=>{if(typeof tt!="string")throw Error("Invalid string");return tt},normalize$5=({value:tt,editable:et=!0,rows:nt=!1})=>({value:tt,settings:{editable:et,rows:typeof nt=="number"?nt:nt?5:0}});var props$1$1=Object.freeze({__proto__:null,schema:schema$1$1,sanitize:sanitize$1$1,normalize:normalize$5});const _excluded$2$2=["displayValue","onUpdate","onChange","editable"],NonEditableString=styled$5("div",{whiteSpace:"pre-wrap"});function String$1(tt){let{displayValue:et,onUpdate:nt,onChange:rt,editable:it=!0}=tt,ot=_objectWithoutProperties$f(tt,_excluded$2$2);return it?React$1.createElement(ValueInput,_extends$q({value:et,onUpdate:nt,onChange:rt},ot)):React$1.createElement(NonEditableString,null,et)}function StringComponent(){const{label:tt,settings:et,displayValue:nt,onUpdate:rt,onChange:it}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(String$1,_extends$q({displayValue:nt,onUpdate:rt,onChange:it},et)))}var string$2=_objectSpread2$1({component:StringComponent},props$1$1);const schema$4=tt=>v8n().boolean().test(tt),sanitize$5=tt=>{if(typeof tt!="boolean")throw Error("Invalid boolean");return tt};var props$4=Object.freeze({__proto__:null,schema:schema$4,sanitize:sanitize$5});const StyledInputWrapper=styled$5("div",{position:"relative",$flex:"",height:"$rowHeight",input:{$reset:"",height:0,width:0,opacity:0,margin:0},label:{position:"relative",$flexCenter:"",userSelect:"none",cursor:"pointer",height:"$checkboxSize",width:"$checkboxSize",backgroundColor:"$elevation3",borderRadius:"$sm",$hover:""},"input:focus + label":{$focusStyle:""},"input:focus:checked + label, input:checked + label:hover":{$hoverStyle:"$accent3"},"input + label:active":{backgroundColor:"$accent1"},"input:checked + label:active":{backgroundColor:"$accent1"},"label > svg":{display:"none",width:"90%",height:"90%",stroke:"$highlight3"},"input:checked + label":{backgroundColor:"$accent2"},"input:checked + label > svg":{display:"block"}});function Boolean$1({value:tt,onUpdate:et,id:nt,disabled:rt}){return React$1.createElement(StyledInputWrapper,null,React$1.createElement("input",{id:nt,type:"checkbox",checked:tt,onChange:it=>et(it.currentTarget.checked),disabled:rt}),React$1.createElement("label",{htmlFor:nt},React$1.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},React$1.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"}))))}function BooleanComponent(){const{label:tt,value:et,onUpdate:nt,disabled:rt,id:it}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(Boolean$1,{value:et,onUpdate:nt,id:it,disabled:rt}))}var boolean=_objectSpread2$1({component:BooleanComponent},props$4);const _excluded$1$4=["locked"];function Coordinate({value:tt,id:et,valueKey:nt,settings:rt,onUpdate:it,innerLabelTrim:ot}){const at=reactExports.useRef(tt[nt]);at.current=tt[nt];const st=reactExports.useCallback(ct=>it({[nt]:sanitizeValue({type:"NUMBER",value:at.current,settings:rt},ct)}),[it,rt,nt]),lt=useInputSetters({type:"NUMBER",value:tt[nt],settings:rt,setValue:st});return React$1.createElement(Number$1,{id:et,label:nt,value:tt[nt],displayValue:lt.displayValue,onUpdate:lt.onUpdate,onChange:lt.onChange,settings:rt,innerLabelTrim:ot})}const Container$3=styled$5("div",{display:"grid",columnGap:"$colGap",gridAutoFlow:"column dense",alignItems:"center",variants:{withLock:{true:{gridTemplateColumns:"10px auto","> svg":{cursor:"pointer"}}}}});function Lock(tt){let{locked:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$1$4);return React$1.createElement("svg",_extends$q({width:"10",height:"10",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},nt),et?React$1.createElement("path",{d:"M5 4.63601C5 3.76031 5.24219 3.1054 5.64323 2.67357C6.03934 2.24705 6.64582 1.9783 7.5014 1.9783C8.35745 1.9783 8.96306 2.24652 9.35823 2.67208C9.75838 3.10299 10 3.75708 10 4.63325V5.99999H5V4.63601ZM4 5.99999V4.63601C4 3.58148 4.29339 2.65754 4.91049 1.99307C5.53252 1.32329 6.42675 0.978302 7.5014 0.978302C8.57583 0.978302 9.46952 1.32233 10.091 1.99162C10.7076 2.65557 11 3.57896 11 4.63325V5.99999H12C12.5523 5.99999 13 6.44771 13 6.99999V13C13 13.5523 12.5523 14 12 14H3C2.44772 14 2 13.5523 2 13V6.99999C2 6.44771 2.44772 5.99999 3 5.99999H4ZM3 6.99999H12V13H3V6.99999Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"}):React$1.createElement("path",{d:"M9 3.63601C9 2.76044 9.24207 2.11211 9.64154 1.68623C10.0366 1.26502 10.6432 1 11.5014 1C12.4485 1 13.0839 1.30552 13.4722 1.80636C13.8031 2.23312 14 2.84313 14 3.63325H15C15 2.68242 14.7626 1.83856 14.2625 1.19361C13.6389 0.38943 12.6743 0 11.5014 0C10.4294 0 9.53523 0.337871 8.91218 1.0021C8.29351 1.66167 8 2.58135 8 3.63601V6H1C0.447715 6 0 6.44772 0 7V13C0 13.5523 0.447715 14 1 14H10C10.5523 14 11 13.5523 11 13V7C11 6.44772 10.5523 6 10 6H9V3.63601ZM1 7H10V13H1V7Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"}))}function Vector({value:tt,onUpdate:et,settings:nt,innerLabelTrim:rt}){const{id:it,setSettings:ot}=useInputContext(),{lock:at,locked:st}=nt;return React$1.createElement(Container$3,{withLock:at},at&&React$1.createElement(Lock,{locked:st,onClick:()=>ot({locked:!st})}),Object.keys(tt).map((lt,ct)=>React$1.createElement(Coordinate,{id:ct===0?it:`${it}.${lt}`,key:lt,valueKey:lt,value:tt,settings:nt[lt],onUpdate:et,innerLabelTrim:rt})))}const normalizeKeyedNumberSettings=(tt,et)=>{const nt={};let rt=0,it=1/0;Object.entries(tt).forEach(([ot,at])=>{nt[ot]=normalize$2$2(_objectSpread2$1({value:at},et[ot])).settings,rt=Math.max(rt,nt[ot].step),it=Math.min(it,nt[ot].pad)});for(let ot in nt){const{step:at,min:st,max:lt}=et[ot]||{};!isFinite(at)&&(!isFinite(st)||!isFinite(lt))&&(nt[ot].step=rt,nt[ot].pad=it)}return nt},_excluded$1E=["lock"],_excluded2$d=["value"];function getVectorSchema(tt){const et=v8n().array().length(tt).every.number(),nt=rt=>{if(!rt||typeof rt!="object")return!1;const it=Object.values(rt);return it.length===tt&&it.every(ot=>isFinite(ot))};return rt=>et.test(rt)||nt(rt)}function getVectorType(tt){return Array.isArray(tt)?"array":"object"}function convert$7(tt,et,nt){return getVectorType(tt)===et?tt:et==="array"?Object.values(tt):mapArrayToKeys(tt,nt)}const sanitizeVector=(tt,et,nt)=>{const rt=convert$7(tt,"object",et.keys);for(let at in rt)rt[at]=sanitize$3(rt[at],et[at]);const it=Object.keys(rt);let ot={};if(it.length===et.keys.length)ot=rt;else{const at=convert$7(nt,"object",et.keys);if(it.length===1&&et.locked){const st=it[0],lt=rt[st],ct=at[st],ut=ct!==0?lt/ct:1;for(let ht in at)ht===st?ot[st]=lt:ot[ht]=at[ht]*ut}else ot=_objectSpread2$1(_objectSpread2$1({},at),rt)}return convert$7(ot,et.format,et.keys)},formatVector=(tt,et)=>convert$7(tt,"object",et.keys),isNumberSettings=tt=>!!tt&&("step"in tt||"min"in tt||"max"in tt);function normalizeVector(tt,et,nt=[]){const{lock:rt=!1}=et,it=_objectWithoutProperties$f(et,_excluded$1E),ot=Array.isArray(tt)?"array":"object",at=ot==="object"?Object.keys(tt):nt,st=convert$7(tt,"object",at),lt=isNumberSettings(it)?at.reduce((ut,ht)=>Object.assign(ut,{[ht]:it}),{}):it,ct=normalizeKeyedNumberSettings(st,lt);return{value:ot==="array"?tt:st,settings:_objectSpread2$1(_objectSpread2$1({},ct),{},{format:ot,keys:at,lock:rt,locked:!1})}}function getVectorPlugin(tt){return{schema:getVectorSchema(tt.length),normalize:et=>{let{value:nt}=et,rt=_objectWithoutProperties$f(et,_excluded2$d);return normalizeVector(nt,rt,tt)},format:(et,nt)=>formatVector(et,nt),sanitize:(et,nt,rt)=>sanitizeVector(et,nt,rt)}}var r$7={grad:.9,turn:360,rad:360/(2*Math.PI)},t$6=function(tt){return typeof tt=="string"?tt.length>0:typeof tt=="number"},n$6=function(tt,et,nt){return et===void 0&&(et=0),nt===void 0&&(nt=Math.pow(10,et)),Math.round(nt*tt)/nt+0},e$5=function(tt,et,nt){return et===void 0&&(et=0),nt===void 0&&(nt=1),tt>nt?nt:tt>et?tt:et},u$5=function(tt){return(tt=isFinite(tt)?tt%360:0)>0?tt:tt+360},a$3=function(tt){return{r:e$5(tt.r,0,255),g:e$5(tt.g,0,255),b:e$5(tt.b,0,255),a:e$5(tt.a)}},o$1=function(tt){return{r:n$6(tt.r),g:n$6(tt.g),b:n$6(tt.b),a:n$6(tt.a,3)}},i$6=/^#([0-9a-f]{3,8})$/i,s$4=function(tt){var et=tt.toString(16);return et.length<2?"0"+et:et},h$9=function(tt){var et=tt.r,nt=tt.g,rt=tt.b,it=tt.a,ot=Math.max(et,nt,rt),at=ot-Math.min(et,nt,rt),st=at?ot===et?(nt-rt)/at:ot===nt?2+(rt-et)/at:4+(et-nt)/at:0;return{h:60*(st<0?st+6:st),s:ot?at/ot*100:0,v:ot/255*100,a:it}},b$6=function(tt){var et=tt.h,nt=tt.s,rt=tt.v,it=tt.a;et=et/360*6,nt/=100,rt/=100;var ot=Math.floor(et),at=rt*(1-nt),st=rt*(1-(et-ot)*nt),lt=rt*(1-(1-et+ot)*nt),ct=ot%6;return{r:255*[rt,st,at,at,lt,rt][ct],g:255*[lt,rt,rt,st,at,at][ct],b:255*[at,at,lt,rt,rt,st][ct],a:it}},g$8=function(tt){return{h:u$5(tt.h),s:e$5(tt.s,0,100),l:e$5(tt.l,0,100),a:e$5(tt.a)}},d$5=function(tt){return{h:n$6(tt.h),s:n$6(tt.s),l:n$6(tt.l),a:n$6(tt.a,3)}},f$7=function(tt){return b$6((nt=(et=tt).s,{h:et.h,s:(nt*=((rt=et.l)<50?rt:100-rt)/100)>0?2*nt/(rt+nt)*100:0,v:rt+nt,a:et.a}));var et,nt,rt},c$8=function(tt){return{h:(et=h$9(tt)).h,s:(it=(200-(nt=et.s))*(rt=et.v)/100)>0&&it<200?nt*rt/100/(it<=100?it:200-it)*100:0,l:it/2,a:et.a};var et,nt,rt,it},l$5=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,p$8=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v$8=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,m$8=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y$7={string:[[function(tt){var et=i$6.exec(tt);return et?(tt=et[1]).length<=4?{r:parseInt(tt[0]+tt[0],16),g:parseInt(tt[1]+tt[1],16),b:parseInt(tt[2]+tt[2],16),a:tt.length===4?n$6(parseInt(tt[3]+tt[3],16)/255,2):1}:tt.length===6||tt.length===8?{r:parseInt(tt.substr(0,2),16),g:parseInt(tt.substr(2,2),16),b:parseInt(tt.substr(4,2),16),a:tt.length===8?n$6(parseInt(tt.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(tt){var et=v$8.exec(tt)||m$8.exec(tt);return et?et[2]!==et[4]||et[4]!==et[6]?null:a$3({r:Number(et[1])/(et[2]?100/255:1),g:Number(et[3])/(et[4]?100/255:1),b:Number(et[5])/(et[6]?100/255:1),a:et[7]===void 0?1:Number(et[7])/(et[8]?100:1)}):null},"rgb"],[function(tt){var et=l$5.exec(tt)||p$8.exec(tt);if(!et)return null;var nt,rt,it=g$8({h:(nt=et[1],rt=et[2],rt===void 0&&(rt="deg"),Number(nt)*(r$7[rt]||1)),s:Number(et[3]),l:Number(et[4]),a:et[5]===void 0?1:Number(et[5])/(et[6]?100:1)});return f$7(it)},"hsl"]],object:[[function(tt){var et=tt.r,nt=tt.g,rt=tt.b,it=tt.a,ot=it===void 0?1:it;return t$6(et)&&t$6(nt)&&t$6(rt)?a$3({r:Number(et),g:Number(nt),b:Number(rt),a:Number(ot)}):null},"rgb"],[function(tt){var et=tt.h,nt=tt.s,rt=tt.l,it=tt.a,ot=it===void 0?1:it;if(!t$6(et)||!t$6(nt)||!t$6(rt))return null;var at=g$8({h:Number(et),s:Number(nt),l:Number(rt),a:Number(ot)});return f$7(at)},"hsl"],[function(tt){var et=tt.h,nt=tt.s,rt=tt.v,it=tt.a,ot=it===void 0?1:it;if(!t$6(et)||!t$6(nt)||!t$6(rt))return null;var at=function(st){return{h:u$5(st.h),s:e$5(st.s,0,100),v:e$5(st.v,0,100),a:e$5(st.a)}}({h:Number(et),s:Number(nt),v:Number(rt),a:Number(ot)});return b$6(at)},"hsv"]]},N$1=function(tt,et){for(var nt=0;nt=.5},tt.prototype.toHex=function(){return et=o$1(this.rgba),nt=et.r,rt=et.g,it=et.b,at=(ot=et.a)<1?s$4(n$6(255*ot)):"","#"+s$4(nt)+s$4(rt)+s$4(it)+at;var et,nt,rt,it,ot,at},tt.prototype.toRgb=function(){return o$1(this.rgba)},tt.prototype.toRgbString=function(){return et=o$1(this.rgba),nt=et.r,rt=et.g,it=et.b,(ot=et.a)<1?"rgba("+nt+", "+rt+", "+it+", "+ot+")":"rgb("+nt+", "+rt+", "+it+")";var et,nt,rt,it,ot},tt.prototype.toHsl=function(){return d$5(c$8(this.rgba))},tt.prototype.toHslString=function(){return et=d$5(c$8(this.rgba)),nt=et.h,rt=et.s,it=et.l,(ot=et.a)<1?"hsla("+nt+", "+rt+"%, "+it+"%, "+ot+")":"hsl("+nt+", "+rt+"%, "+it+"%)";var et,nt,rt,it,ot},tt.prototype.toHsv=function(){return et=h$9(this.rgba),{h:n$6(et.h),s:n$6(et.s),v:n$6(et.v),a:n$6(et.a,3)};var et},tt.prototype.invert=function(){return w$5({r:255-(et=this.rgba).r,g:255-et.g,b:255-et.b,a:et.a});var et},tt.prototype.saturate=function(et){return et===void 0&&(et=.1),w$5(M$1(this.rgba,et))},tt.prototype.desaturate=function(et){return et===void 0&&(et=.1),w$5(M$1(this.rgba,-et))},tt.prototype.grayscale=function(){return w$5(M$1(this.rgba,-1))},tt.prototype.lighten=function(et){return et===void 0&&(et=.1),w$5($$2(this.rgba,et))},tt.prototype.darken=function(et){return et===void 0&&(et=.1),w$5($$2(this.rgba,-et))},tt.prototype.rotate=function(et){return et===void 0&&(et=15),this.hue(this.hue()+et)},tt.prototype.alpha=function(et){return typeof et=="number"?w$5({r:(nt=this.rgba).r,g:nt.g,b:nt.b,a:et}):n$6(this.rgba.a,3);var nt},tt.prototype.hue=function(et){var nt=c$8(this.rgba);return typeof et=="number"?w$5({h:et,s:nt.s,l:nt.l,a:nt.a}):n$6(nt.h)},tt.prototype.isEqual=function(et){return this.toHex()===w$5(et).toHex()},tt}(),w$5=function(tt){return tt instanceof j$1?tt:new j$1(tt)},S$2=[],k$8=function(tt){tt.forEach(function(et){S$2.indexOf(et)<0&&(et(j$1,y$7),S$2.push(et))})};function namesPlugin(tt,et){var nt={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},rt={};for(var it in nt)rt[nt[it]]=it;var ot={};tt.prototype.toName=function(at){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var st,lt,ct=rt[this.toHex()];if(ct)return ct;if(at!=null&&at.closest){var ut=this.toRgb(),ht=1/0,dt="black";if(!ot.length)for(var pt in nt)ot[pt]=new tt(nt[pt]).toRgb();for(var mt in nt){var gt=(st=ut,lt=ot[mt],Math.pow(st.r-lt.r,2)+Math.pow(st.g-lt.g,2)+Math.pow(st.b-lt.b,2));gt=0||(it[nt]=tt[nt]);return it}function i$5(tt){var et=reactExports.useRef(tt),nt=reactExports.useRef(function(rt){et.current&&et.current(rt)});return et.current=tt,nt.current}var s$3=function(tt,et,nt){return et===void 0&&(et=0),nt===void 0&&(nt=1),tt>nt?nt:tt0:yt.buttons>0)&&it.current?ot(d$4(it.current,yt,st.current)):gt(!1)},mt=function(){return gt(!1)};function gt(yt){var bt=lt.current,wt=v$7(it.current),vt=yt?wt.addEventListener:wt.removeEventListener;vt(bt?"touchmove":"mousemove",pt),vt(bt?"touchend":"mouseup",mt)}return[function(yt){var bt=yt.nativeEvent,wt=it.current;if(wt&&(h$8(bt),!function(kt,St){return St&&!f$6(kt)}(bt,lt.current)&&wt)){if(f$6(bt)){lt.current=!0;var vt=bt.changedTouches||[];vt.length&&(st.current=vt[0].identifier)}wt.focus(),ot(d$4(wt,bt,st.current)),gt(!0)}},function(yt){var bt=yt.which||yt.keyCode;bt<37||bt>40||(yt.preventDefault(),at({left:bt===39?.05:bt===37?-.05:0,top:bt===40?.05:bt===38?-.05:0}))},gt]},[at,ot]),ut=ct[0],ht=ct[1],dt=ct[2];return reactExports.useEffect(function(){return dt},[dt]),React$1.createElement("div",u$4({},rt,{onTouchStart:ut,onMouseDown:ut,className:"react-colorful__interactive",ref:it,onKeyDown:ht,tabIndex:0,role:"slider"}))}),g$7=function(tt){return tt.filter(Boolean).join(" ")},p$7=function(tt){var et=tt.color,nt=tt.left,rt=tt.top,it=rt===void 0?.5:rt,ot=g$7(["react-colorful__pointer",tt.className]);return React$1.createElement("div",{className:ot,style:{top:100*it+"%",left:100*nt+"%"}},React$1.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:et}}))},b$5=function(tt,et,nt){return et===void 0&&(et=0),nt===void 0&&(nt=Math.pow(10,et)),Math.round(nt*tt)/nt},y$6=function(tt){var et=tt.s,nt=tt.v,rt=tt.a,it=(200-et)*nt/100;return{h:b$5(tt.h),s:b$5(it>0&&it<200?et*nt/100/(it<=100?it:200-it)*100:0),l:b$5(it/2),a:b$5(rt,2)}},q$6=function(tt){var et=y$6(tt);return"hsl("+et.h+", "+et.s+"%, "+et.l+"%)"},k$7=function(tt){var et=y$6(tt);return"hsla("+et.h+", "+et.s+"%, "+et.l+"%, "+et.a+")"},I$1=function(tt){var et=tt.h,nt=tt.s,rt=tt.v,it=tt.a;et=et/360*6,nt/=100,rt/=100;var ot=Math.floor(et),at=rt*(1-nt),st=rt*(1-(et-ot)*nt),lt=rt*(1-(1-et+ot)*nt),ct=ot%6;return{r:b$5(255*[rt,st,at,at,lt,rt][ct]),g:b$5(255*[lt,rt,rt,st,at,at][ct]),b:b$5(255*[at,at,lt,rt,rt,st][ct]),a:b$5(it,2)}},L$1=function(tt){var et=tt.r,nt=tt.g,rt=tt.b,it=tt.a,ot=Math.max(et,nt,rt),at=ot-Math.min(et,nt,rt),st=at?ot===et?(nt-rt)/at:ot===nt?2+(rt-et)/at:4+(et-nt)/at:0;return{h:b$5(60*(st<0?st+6:st)),s:b$5(ot?at/ot*100:0),v:b$5(ot/255*100),a:it}},S$1=React$1.memo(function(tt){var et=tt.hue,nt=tt.onChange,rt=g$7(["react-colorful__hue",tt.className]);return React$1.createElement("div",{className:rt},React$1.createElement(m$7,{onMove:function(it){nt({h:360*it.left})},onKey:function(it){nt({h:s$3(et+360*it.left,0,360)})},"aria-label":"Hue","aria-valuenow":b$5(et),"aria-valuemax":"360","aria-valuemin":"0"},React$1.createElement(p$7,{className:"react-colorful__hue-pointer",left:et/360,color:q$6({h:et,s:100,v:100,a:1})})))}),T$1=React$1.memo(function(tt){var et=tt.hsva,nt=tt.onChange,rt={backgroundColor:q$6({h:et.h,s:100,v:100,a:1})};return React$1.createElement("div",{className:"react-colorful__saturation",style:rt},React$1.createElement(m$7,{onMove:function(it){nt({s:100*it.left,v:100-100*it.top})},onKey:function(it){nt({s:s$3(et.s+100*it.left,0,100),v:s$3(et.v-100*it.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+b$5(et.s)+"%, Brightness "+b$5(et.v)+"%"},React$1.createElement(p$7,{className:"react-colorful__saturation-pointer",top:1-et.v/100,left:et.s/100,color:q$6(et)})))}),F$1=function(tt,et){if(tt===et)return!0;for(var nt in tt)if(tt[nt]!==et[nt])return!1;return!0};function Y$1(tt,et,nt){var rt=i$5(nt),it=reactExports.useState(function(){return tt.toHsva(et)}),ot=it[0],at=it[1],st=reactExports.useRef({color:et,hsva:ot});reactExports.useEffect(function(){if(!tt.equal(et,st.current.color)){var ct=tt.toHsva(et);st.current={hsva:ct,color:et},at(ct)}},[et,tt]),reactExports.useEffect(function(){var ct;F$1(ot,st.current.hsva)||tt.equal(ct=tt.fromHsva(ot),st.current.color)||(st.current={hsva:ot,color:ct},rt(ct))},[ot,tt,rt]);var lt=reactExports.useCallback(function(ct){at(function(ut){return Object.assign({},ut,ct)})},[]);return[ot,lt]}var V$1=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,$$1=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},J$1=new Map,Q$1=function(tt){V$1(function(){var et=tt.current?tt.current.ownerDocument:document;if(et!==void 0&&!J$1.has(et)){var nt=et.createElement("style");nt.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,J$1.set(et,nt);var rt=$$1();rt&&nt.setAttribute("nonce",rt),et.head.appendChild(nt)}},[])},U$1=function(tt){var et=tt.className,nt=tt.colorModel,rt=tt.color,it=rt===void 0?nt.defaultColor:rt,ot=tt.onChange,at=c$7(tt,["className","colorModel","color","onChange"]),st=reactExports.useRef(null);Q$1(st);var lt=Y$1(nt,it,ot),ct=lt[0],ut=lt[1],ht=g$7(["react-colorful",et]);return React$1.createElement("div",u$4({},at,{ref:st,className:ht}),React$1.createElement(T$1,{hsva:ct,onChange:ut}),React$1.createElement(S$1,{hue:ct.h,onChange:ut,className:"react-colorful__last-control"}))},ee$1=function(tt){var et=tt.className,nt=tt.hsva,rt=tt.onChange,it={backgroundImage:"linear-gradient(90deg, "+k$7(Object.assign({},nt,{a:0}))+", "+k$7(Object.assign({},nt,{a:1}))+")"},ot=g$7(["react-colorful__alpha",et]),at=b$5(100*nt.a);return React$1.createElement("div",{className:ot},React$1.createElement("div",{className:"react-colorful__alpha-gradient",style:it}),React$1.createElement(m$7,{onMove:function(st){rt({a:st.left})},onKey:function(st){rt({a:s$3(nt.a+st.left)})},"aria-label":"Alpha","aria-valuetext":at+"%","aria-valuenow":at,"aria-valuemin":"0","aria-valuemax":"100"},React$1.createElement(p$7,{className:"react-colorful__alpha-pointer",left:nt.a,color:k$7(nt)})))},re$3=function(tt){var et=tt.className,nt=tt.colorModel,rt=tt.color,it=rt===void 0?nt.defaultColor:rt,ot=tt.onChange,at=c$7(tt,["className","colorModel","color","onChange"]),st=reactExports.useRef(null);Q$1(st);var lt=Y$1(nt,it,ot),ct=lt[0],ut=lt[1],ht=g$7(["react-colorful",et]);return React$1.createElement("div",u$4({},at,{ref:st,className:ht}),React$1.createElement(T$1,{hsva:ct,onChange:ut}),React$1.createElement(S$1,{hue:ct.h,onChange:ut}),React$1.createElement(ee$1,{hsva:ct,onChange:ut,className:"react-colorful__last-control"}))},xe$1={defaultColor:{r:0,g:0,b:0,a:1},toHsva:L$1,fromHsva:I$1,equal:F$1},Ce=function(tt){return React$1.createElement(re$3,u$4({},tt,{colorModel:xe$1}))},Me$1={defaultColor:{r:0,g:0,b:0},toHsva:function(tt){return L$1({r:tt.r,g:tt.g,b:tt.b,a:1})},fromHsva:function(tt){return{r:(et=I$1(tt)).r,g:et.g,b:et.b};var et},equal:F$1},Ne$1=function(tt){return React$1.createElement(U$1,u$4({},tt,{colorModel:Me$1}))},propTypes$1={exports:{}},ReactPropTypesSecret$1="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",ReactPropTypesSecret_1=ReactPropTypesSecret$1,ReactPropTypesSecret=ReactPropTypesSecret_1;function emptyFunction(){}function emptyFunctionWithReset(){}emptyFunctionWithReset.resetWarningCache=emptyFunction;var factoryWithThrowingShims=function(){function tt(rt,it,ot,at,st,lt){if(lt!==ReactPropTypesSecret){var ct=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw ct.name="Invariant Violation",ct}}tt.isRequired=tt;function et(){return tt}var nt={array:tt,bigint:tt,bool:tt,func:tt,number:tt,object:tt,string:tt,symbol:tt,any:tt,arrayOf:et,element:tt,elementType:tt,instanceOf:et,node:tt,objectOf:et,oneOf:et,oneOfType:et,shape:et,exact:et,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return nt.PropTypes=nt,nt};propTypes$1.exports=factoryWithThrowingShims();var propTypesExports=propTypes$1.exports;const PropTypes=getDefaultExportFromCjs(propTypesExports);function __decorate(tt,et,nt,rt){var it=arguments.length,ot=it<3?et:rt===null?rt=Object.getOwnPropertyDescriptor(et,nt):rt,at;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")ot=Reflect.decorate(tt,et,nt,rt);else for(var st=tt.length-1;st>=0;st--)(at=tt[st])&&(ot=(it<3?at(ot):it>3?at(et,nt,ot):at(et,nt))||ot);return it>3&&ot&&Object.defineProperty(et,nt,ot),ot}function __awaiter(tt,et,nt,rt){function it(ot){return ot instanceof nt?ot:new nt(function(at){at(ot)})}return new(nt||(nt=Promise))(function(ot,at){function st(ut){try{ct(rt.next(ut))}catch(ht){at(ht)}}function lt(ut){try{ct(rt.throw(ut))}catch(ht){at(ht)}}function ct(ut){ut.done?ot(ut.value):it(ut.value).then(st,lt)}ct((rt=rt.apply(tt,et||[])).next())})}function __generator(tt,et){var nt={label:0,sent:function(){if(ot[0]&1)throw ot[1];return ot[1]},trys:[],ops:[]},rt,it,ot,at;return at={next:st(0),throw:st(1),return:st(2)},typeof Symbol=="function"&&(at[Symbol.iterator]=function(){return this}),at;function st(ct){return function(ut){return lt([ct,ut])}}function lt(ct){if(rt)throw new TypeError("Generator is already executing.");for(;at&&(at=0,ct[0]&&(nt=0)),nt;)try{if(rt=1,it&&(ot=ct[0]&2?it.return:ct[0]?it.throw||((ot=it.return)&&ot.call(it),0):it.next)&&!(ot=ot.call(it,ct[1])).done)return ot;switch(it=0,ot&&(ct=[ct[0]&2,ot.value]),ct[0]){case 0:case 1:ot=ct;break;case 4:return nt.label++,{value:ct[1],done:!1};case 5:nt.label++,it=ct[1],ct=[0];continue;case 7:ct=nt.ops.pop(),nt.trys.pop();continue;default:if(ot=nt.trys,!(ot=ot.length>0&&ot[ot.length-1])&&(ct[0]===6||ct[0]===2)){nt=0;continue}if(ct[0]===3&&(!ot||ct[1]>ot[0]&&ct[1]0)&&!(it=rt.next()).done;)ot.push(it.value)}catch(st){at={error:st}}finally{try{it&&!it.done&&(nt=rt.return)&&nt.call(rt)}finally{if(at)throw at.error}}return ot}function __spread(){for(var tt=[],et=0;et0?rt:tt.name,writable:!1,configurable:!1,enumerable:!0})}return nt}function withMimeType(tt){var et=tt.name,nt=et&&et.lastIndexOf(".")!==-1;if(nt&&!tt.type){var rt=et.split(".").pop().toLowerCase(),it=COMMON_MIME_TYPES.get(rt);it&&Object.defineProperty(tt,"type",{value:it,writable:!1,configurable:!1,enumerable:!0})}return tt}var FILES_TO_IGNORE=[".DS_Store","Thumbs.db"];function fromEvent(tt){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(et){return isObject$n(tt)&&isDataTransfer(tt)?[2,getDataTransferFiles(tt.dataTransfer,tt.type)]:isChangeEvt(tt)?[2,getInputFiles(tt)]:Array.isArray(tt)&&tt.every(function(nt){return"getFile"in nt&&typeof nt.getFile=="function"})?[2,getFsHandleFiles(tt)]:[2,[]]})})}function isDataTransfer(tt){return isObject$n(tt.dataTransfer)}function isChangeEvt(tt){return isObject$n(tt)&&isObject$n(tt.target)}function isObject$n(tt){return typeof tt=="object"&&tt!==null}function getInputFiles(tt){return fromList(tt.target.files).map(function(et){return toFileWithPath(et)})}function getFsHandleFiles(tt){return __awaiter(this,void 0,void 0,function(){var et;return __generator(this,function(nt){switch(nt.label){case 0:return[4,Promise.all(tt.map(function(rt){return rt.getFile()}))];case 1:return et=nt.sent(),[2,et.map(function(rt){return toFileWithPath(rt)})]}})})}function getDataTransferFiles(tt,et){return __awaiter(this,void 0,void 0,function(){var nt,rt;return __generator(this,function(it){switch(it.label){case 0:return tt===null?[2,[]]:tt.items?(nt=fromList(tt.items).filter(function(ot){return ot.kind==="file"}),et!=="drop"?[2,nt]:[4,Promise.all(nt.map(toFilePromises))]):[3,2];case 1:return rt=it.sent(),[2,noIgnoredFiles(flatten$1(rt))];case 2:return[2,noIgnoredFiles(fromList(tt.files).map(function(ot){return toFileWithPath(ot)}))]}})})}function noIgnoredFiles(tt){return tt.filter(function(et){return FILES_TO_IGNORE.indexOf(et.name)===-1})}function fromList(tt){if(tt===null)return[];for(var et=[],nt=0;nt<\/script>",tt=tt.removeChild(tt.firstChild)):typeof rt.is=="string"?tt=at.createElement(nt,{is:rt.is}):(tt=at.createElement(nt),nt==="select"&&(at=tt,rt.multiple?at.multiple=!0:rt.size&&(at.size=rt.size))):tt=at.createElementNS(tt,nt),tt[Of]=et,tt[Pf]=rt,Aj(tt,et,!1,!1),et.stateNode=tt;e:{switch(at=vb(nt,rt),nt){case"dialog":D$3("cancel",tt),D$3("close",tt),it=rt;break;case"iframe":case"object":case"embed":D$3("load",tt),it=rt;break;case"video":case"audio":for(it=0;itHj&&(et.flags|=128,rt=!0,Ej(ot,!1),et.lanes=4194304)}else{if(!rt)if(tt=Mh(at),tt!==null){if(et.flags|=128,rt=!0,nt=tt.updateQueue,nt!==null&&(et.updateQueue=nt,et.flags|=4),Ej(ot,!0),ot.tail===null&&ot.tailMode==="hidden"&&!at.alternate&&!I$4)return S$5(et),null}else 2*B$4()-ot.renderingStartTime>Hj&&nt!==1073741824&&(et.flags|=128,rt=!0,Ej(ot,!1),et.lanes=4194304);ot.isBackwards?(at.sibling=et.child,et.child=at):(nt=ot.last,nt!==null?nt.sibling=at:et.child=at,ot.last=at)}return ot.tail!==null?(et=ot.tail,ot.rendering=et,ot.tail=et.sibling,ot.renderingStartTime=B$4(),et.sibling=null,nt=M$4.current,G$3(M$4,rt?nt&1|2:nt&1),et):(S$5(et),null);case 22:case 23:return Ij(),rt=et.memoizedState!==null,tt!==null&&tt.memoizedState!==null!==rt&&(et.flags|=8192),rt&&et.mode&1?gj&1073741824&&(S$5(et),et.subtreeFlags&6&&(et.flags|=8192)):S$5(et),null;case 24:return null;case 25:return null}throw Error(p$b(156,et.tag))}function Jj(tt,et){switch(wg(et),et.tag){case 1:return Zf(et.type)&&$f(),tt=et.flags,tt&65536?(et.flags=tt&-65537|128,et):null;case 3:return Jh(),E$4(Wf),E$4(H$4),Oh(),tt=et.flags,tt&65536&&!(tt&128)?(et.flags=tt&-65537|128,et):null;case 5:return Lh(et),null;case 13:if(E$4(M$4),tt=et.memoizedState,tt!==null&&tt.dehydrated!==null){if(et.alternate===null)throw Error(p$b(340));Ig()}return tt=et.flags,tt&65536?(et.flags=tt&-65537|128,et):null;case 19:return E$4(M$4),null;case 4:return Jh(),null;case 10:return Rg(et.type._context),null;case 22:case 23:return Ij(),null;case 24:return null;default:return null}}var Kj=!1,U$3=!1,Lj=typeof WeakSet=="function"?WeakSet:Set,V$5=null;function Mj(tt,et){var nt=tt.ref;if(nt!==null)if(typeof nt=="function")try{nt(null)}catch(rt){W$9(tt,et,rt)}else nt.current=null}function Nj(tt,et,nt){try{nt()}catch(rt){W$9(tt,et,rt)}}var Oj=!1;function Pj(tt,et){if(Cf=dd,tt=Me$2(),Ne$2(tt)){if("selectionStart"in tt)var nt={start:tt.selectionStart,end:tt.selectionEnd};else e:{nt=(nt=tt.ownerDocument)&&nt.defaultView||window;var rt=nt.getSelection&&nt.getSelection();if(rt&&rt.rangeCount!==0){nt=rt.anchorNode;var it=rt.anchorOffset,ot=rt.focusNode;rt=rt.focusOffset;try{nt.nodeType,ot.nodeType}catch{nt=null;break e}var at=0,st=-1,lt=-1,ct=0,ut=0,ht=tt,dt=null;t:for(;;){for(var pt;ht!==nt||it!==0&&ht.nodeType!==3||(st=at+it),ht!==ot||rt!==0&&ht.nodeType!==3||(lt=at+rt),ht.nodeType===3&&(at+=ht.nodeValue.length),(pt=ht.firstChild)!==null;)dt=ht,ht=pt;for(;;){if(ht===tt)break t;if(dt===nt&&++ct===it&&(st=at),dt===ot&&++ut===rt&&(lt=at),(pt=ht.nextSibling)!==null)break;ht=dt,dt=ht.parentNode}ht=pt}nt=st===-1||lt===-1?null:{start:st,end:lt}}else nt=null}nt=nt||{start:0,end:0}}else nt=null;for(Df={focusedElem:tt,selectionRange:nt},dd=!1,V$5=et;V$5!==null;)if(et=V$5,tt=et.child,(et.subtreeFlags&1028)!==0&&tt!==null)tt.return=et,V$5=tt;else for(;V$5!==null;){et=V$5;try{var mt=et.alternate;if(et.flags&1024)switch(et.tag){case 0:case 11:case 15:break;case 1:if(mt!==null){var gt=mt.memoizedProps,yt=mt.memoizedState,bt=et.stateNode,wt=bt.getSnapshotBeforeUpdate(et.elementType===et.type?gt:Lg(et.type,gt),yt);bt.__reactInternalSnapshotBeforeUpdate=wt}break;case 3:var vt=et.stateNode.containerInfo;vt.nodeType===1?vt.textContent="":vt.nodeType===9&&vt.documentElement&&vt.removeChild(vt.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p$b(163))}}catch(kt){W$9(et,et.return,kt)}if(tt=et.sibling,tt!==null){tt.return=et.return,V$5=tt;break}V$5=et.return}return mt=Oj,Oj=!1,mt}function Qj(tt,et,nt){var rt=et.updateQueue;if(rt=rt!==null?rt.lastEffect:null,rt!==null){var it=rt=rt.next;do{if((it.tag&tt)===tt){var ot=it.destroy;it.destroy=void 0,ot!==void 0&&Nj(et,nt,ot)}it=it.next}while(it!==rt)}}function Rj(tt,et){if(et=et.updateQueue,et=et!==null?et.lastEffect:null,et!==null){var nt=et=et.next;do{if((nt.tag&tt)===tt){var rt=nt.create;nt.destroy=rt()}nt=nt.next}while(nt!==et)}}function Sj(tt){var et=tt.ref;if(et!==null){var nt=tt.stateNode;switch(tt.tag){case 5:tt=nt;break;default:tt=nt}typeof et=="function"?et(tt):et.current=tt}}function Tj(tt){var et=tt.alternate;et!==null&&(tt.alternate=null,Tj(et)),tt.child=null,tt.deletions=null,tt.sibling=null,tt.tag===5&&(et=tt.stateNode,et!==null&&(delete et[Of],delete et[Pf],delete et[of],delete et[Qf],delete et[Rf])),tt.stateNode=null,tt.return=null,tt.dependencies=null,tt.memoizedProps=null,tt.memoizedState=null,tt.pendingProps=null,tt.stateNode=null,tt.updateQueue=null}function Uj(tt){return tt.tag===5||tt.tag===3||tt.tag===4}function Vj(tt){e:for(;;){for(;tt.sibling===null;){if(tt.return===null||Uj(tt.return))return null;tt=tt.return}for(tt.sibling.return=tt.return,tt=tt.sibling;tt.tag!==5&&tt.tag!==6&&tt.tag!==18;){if(tt.flags&2||tt.child===null||tt.tag===4)continue e;tt.child.return=tt,tt=tt.child}if(!(tt.flags&2))return tt.stateNode}}function Wj(tt,et,nt){var rt=tt.tag;if(rt===5||rt===6)tt=tt.stateNode,et?nt.nodeType===8?nt.parentNode.insertBefore(tt,et):nt.insertBefore(tt,et):(nt.nodeType===8?(et=nt.parentNode,et.insertBefore(tt,nt)):(et=nt,et.appendChild(tt)),nt=nt._reactRootContainer,nt!=null||et.onclick!==null||(et.onclick=Bf));else if(rt!==4&&(tt=tt.child,tt!==null))for(Wj(tt,et,nt),tt=tt.sibling;tt!==null;)Wj(tt,et,nt),tt=tt.sibling}function Xj(tt,et,nt){var rt=tt.tag;if(rt===5||rt===6)tt=tt.stateNode,et?nt.insertBefore(tt,et):nt.appendChild(tt);else if(rt!==4&&(tt=tt.child,tt!==null))for(Xj(tt,et,nt),tt=tt.sibling;tt!==null;)Xj(tt,et,nt),tt=tt.sibling}var X$2=null,Yj=!1;function Zj(tt,et,nt){for(nt=nt.child;nt!==null;)ak(tt,et,nt),nt=nt.sibling}function ak(tt,et,nt){if(lc&&typeof lc.onCommitFiberUnmount=="function")try{lc.onCommitFiberUnmount(kc,nt)}catch{}switch(nt.tag){case 5:U$3||Mj(nt,et);case 6:var rt=X$2,it=Yj;X$2=null,Zj(tt,et,nt),X$2=rt,Yj=it,X$2!==null&&(Yj?(tt=X$2,nt=nt.stateNode,tt.nodeType===8?tt.parentNode.removeChild(nt):tt.removeChild(nt)):X$2.removeChild(nt.stateNode));break;case 18:X$2!==null&&(Yj?(tt=X$2,nt=nt.stateNode,tt.nodeType===8?Kf(tt.parentNode,nt):tt.nodeType===1&&Kf(tt,nt),bd(tt)):Kf(X$2,nt.stateNode));break;case 4:rt=X$2,it=Yj,X$2=nt.stateNode.containerInfo,Yj=!0,Zj(tt,et,nt),X$2=rt,Yj=it;break;case 0:case 11:case 14:case 15:if(!U$3&&(rt=nt.updateQueue,rt!==null&&(rt=rt.lastEffect,rt!==null))){it=rt=rt.next;do{var ot=it,at=ot.destroy;ot=ot.tag,at!==void 0&&(ot&2||ot&4)&&Nj(nt,et,at),it=it.next}while(it!==rt)}Zj(tt,et,nt);break;case 1:if(!U$3&&(Mj(nt,et),rt=nt.stateNode,typeof rt.componentWillUnmount=="function"))try{rt.props=nt.memoizedProps,rt.state=nt.memoizedState,rt.componentWillUnmount()}catch(st){W$9(nt,et,st)}Zj(tt,et,nt);break;case 21:Zj(tt,et,nt);break;case 22:nt.mode&1?(U$3=(rt=U$3)||nt.memoizedState!==null,Zj(tt,et,nt),U$3=rt):Zj(tt,et,nt);break;default:Zj(tt,et,nt)}}function bk(tt){var et=tt.updateQueue;if(et!==null){tt.updateQueue=null;var nt=tt.stateNode;nt===null&&(nt=tt.stateNode=new Lj),et.forEach(function(rt){var it=ck.bind(null,tt,rt);nt.has(rt)||(nt.add(rt),rt.then(it,it))})}}function dk(tt,et){var nt=et.deletions;if(nt!==null)for(var rt=0;rtit&&(it=at),rt&=~ot}if(rt=it,rt=B$4()-rt,rt=(120>rt?120:480>rt?480:1080>rt?1080:1920>rt?1920:3e3>rt?3e3:4320>rt?4320:1960*mk(rt/1960))-rt,10tt?16:tt,xk===null)var rt=!1;else{if(tt=xk,xk=null,yk=0,K$7&6)throw Error(p$b(331));var it=K$7;for(K$7|=4,V$5=tt.current;V$5!==null;){var ot=V$5,at=ot.child;if(V$5.flags&16){var st=ot.deletions;if(st!==null){for(var lt=0;ltB$4()-gk?Lk(tt,0):sk|=nt),Ek(tt,et)}function Zk(tt,et){et===0&&(tt.mode&1?(et=sc,sc<<=1,!(sc&130023424)&&(sc=4194304)):et=1);var nt=L$5();tt=Zg(tt,et),tt!==null&&(Ac(tt,et,nt),Ek(tt,nt))}function vj(tt){var et=tt.memoizedState,nt=0;et!==null&&(nt=et.retryLane),Zk(tt,nt)}function ck(tt,et){var nt=0;switch(tt.tag){case 13:var rt=tt.stateNode,it=tt.memoizedState;it!==null&&(nt=it.retryLane);break;case 19:rt=tt.stateNode;break;default:throw Error(p$b(314))}rt!==null&&rt.delete(et),Zk(tt,nt)}var Wk;Wk=function(tt,et,nt){if(tt!==null)if(tt.memoizedProps!==et.pendingProps||Wf.current)Ug=!0;else{if(!(tt.lanes&nt)&&!(et.flags&128))return Ug=!1,zj(tt,et,nt);Ug=!!(tt.flags&131072)}else Ug=!1,I$4&&et.flags&1048576&&ug(et,ng,et.index);switch(et.lanes=0,et.tag){case 2:var rt=et.type;jj(tt,et),tt=et.pendingProps;var it=Yf(et,H$4.current);Tg(et,nt),it=Xh(null,et,rt,tt,it,nt);var ot=bi();return et.flags|=1,typeof it=="object"&&it!==null&&typeof it.render=="function"&&it.$$typeof===void 0?(et.tag=1,et.memoizedState=null,et.updateQueue=null,Zf(rt)?(ot=!0,cg(et)):ot=!1,et.memoizedState=it.state!==null&&it.state!==void 0?it.state:null,ah(et),it.updater=nh,et.stateNode=it,it._reactInternals=et,rh$1(et,rt,tt,nt),et=kj(null,et,rt,!0,ot,nt)):(et.tag=0,I$4&&ot&&vg(et),Yi(null,et,it,nt),et=et.child),et;case 16:rt=et.elementType;e:{switch(jj(tt,et),tt=et.pendingProps,it=rt._init,rt=it(rt._payload),et.type=rt,it=et.tag=$k(rt),tt=Lg(rt,tt),it){case 0:et=dj(null,et,rt,tt,nt);break e;case 1:et=ij(null,et,rt,tt,nt);break e;case 11:et=Zi(null,et,rt,tt,nt);break e;case 14:et=aj(null,et,rt,Lg(rt.type,tt),nt);break e}throw Error(p$b(306,rt,""))}return et;case 0:return rt=et.type,it=et.pendingProps,it=et.elementType===rt?it:Lg(rt,it),dj(tt,et,rt,it,nt);case 1:return rt=et.type,it=et.pendingProps,it=et.elementType===rt?it:Lg(rt,it),ij(tt,et,rt,it,nt);case 3:e:{if(lj(et),tt===null)throw Error(p$b(387));rt=et.pendingProps,ot=et.memoizedState,it=ot.element,bh(tt,et),gh(et,rt,null,nt);var at=et.memoizedState;if(rt=at.element,ot.isDehydrated)if(ot={element:rt,isDehydrated:!1,cache:at.cache,pendingSuspenseBoundaries:at.pendingSuspenseBoundaries,transitions:at.transitions},et.updateQueue.baseState=ot,et.memoizedState=ot,et.flags&256){it=Ki(Error(p$b(423)),et),et=mj(tt,et,rt,nt,it);break e}else if(rt!==it){it=Ki(Error(p$b(424)),et),et=mj(tt,et,rt,nt,it);break e}else for(yg=Lf(et.stateNode.containerInfo.firstChild),xg=et,I$4=!0,zg=null,nt=Ch$1(et,null,rt,nt),et.child=nt;nt;)nt.flags=nt.flags&-3|4096,nt=nt.sibling;else{if(Ig(),rt===it){et=$i(tt,et,nt);break e}Yi(tt,et,rt,nt)}et=et.child}return et;case 5:return Kh$1(et),tt===null&&Eg(et),rt=et.type,it=et.pendingProps,ot=tt!==null?tt.memoizedProps:null,at=it.children,Ef(rt,it)?at=null:ot!==null&&Ef(rt,ot)&&(et.flags|=32),hj(tt,et),Yi(tt,et,at,nt),et.child;case 6:return tt===null&&Eg(et),null;case 13:return pj(tt,et,nt);case 4:return Ih(et,et.stateNode.containerInfo),rt=et.pendingProps,tt===null?et.child=Bh(et,null,rt,nt):Yi(tt,et,rt,nt),et.child;case 11:return rt=et.type,it=et.pendingProps,it=et.elementType===rt?it:Lg(rt,it),Zi(tt,et,rt,it,nt);case 7:return Yi(tt,et,et.pendingProps,nt),et.child;case 8:return Yi(tt,et,et.pendingProps.children,nt),et.child;case 12:return Yi(tt,et,et.pendingProps.children,nt),et.child;case 10:e:{if(rt=et.type._context,it=et.pendingProps,ot=et.memoizedProps,at=it.value,G$3(Mg,rt._currentValue),rt._currentValue=at,ot!==null)if(He$1(ot.value,at)){if(ot.children===it.children&&!Wf.current){et=$i(tt,et,nt);break e}}else for(ot=et.child,ot!==null&&(ot.return=et);ot!==null;){var st=ot.dependencies;if(st!==null){at=ot.child;for(var lt=st.firstContext;lt!==null;){if(lt.context===rt){if(ot.tag===1){lt=ch$1(-1,nt&-nt),lt.tag=2;var ct=ot.updateQueue;if(ct!==null){ct=ct.shared;var ut=ct.pending;ut===null?lt.next=lt:(lt.next=ut.next,ut.next=lt),ct.pending=lt}}ot.lanes|=nt,lt=ot.alternate,lt!==null&&(lt.lanes|=nt),Sg(ot.return,nt,et),st.lanes|=nt;break}lt=lt.next}}else if(ot.tag===10)at=ot.type===et.type?null:ot.child;else if(ot.tag===18){if(at=ot.return,at===null)throw Error(p$b(341));at.lanes|=nt,st=at.alternate,st!==null&&(st.lanes|=nt),Sg(at,nt,et),at=ot.sibling}else at=ot.child;if(at!==null)at.return=ot;else for(at=ot;at!==null;){if(at===et){at=null;break}if(ot=at.sibling,ot!==null){ot.return=at.return,at=ot;break}at=at.return}ot=at}Yi(tt,et,it.children,nt),et=et.child}return et;case 9:return it=et.type,rt=et.pendingProps.children,Tg(et,nt),it=Vg(it),rt=rt(it),et.flags|=1,Yi(tt,et,rt,nt),et.child;case 14:return rt=et.type,it=Lg(rt,et.pendingProps),it=Lg(rt.type,it),aj(tt,et,rt,it,nt);case 15:return cj(tt,et,et.type,et.pendingProps,nt);case 17:return rt=et.type,it=et.pendingProps,it=et.elementType===rt?it:Lg(rt,it),jj(tt,et),et.tag=1,Zf(rt)?(tt=!0,cg(et)):tt=!1,Tg(et,nt),ph(et,rt,it),rh$1(et,rt,it,nt),kj(null,et,rt,!0,tt,nt);case 19:return yj(tt,et,nt);case 22:return ej(tt,et,nt)}throw Error(p$b(156,et.tag))};function Gk(tt,et){return ac(tt,et)}function al(tt,et,nt,rt){this.tag=tt,this.key=nt,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=et,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=rt,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bg$1(tt,et,nt,rt){return new al(tt,et,nt,rt)}function bj(tt){return tt=tt.prototype,!(!tt||!tt.isReactComponent)}function $k(tt){if(typeof tt=="function")return bj(tt)?1:0;if(tt!=null){if(tt=tt.$$typeof,tt===Da)return 11;if(tt===Ga)return 14}return 2}function wh(tt,et){var nt=tt.alternate;return nt===null?(nt=Bg$1(tt.tag,et,tt.key,tt.mode),nt.elementType=tt.elementType,nt.type=tt.type,nt.stateNode=tt.stateNode,nt.alternate=tt,tt.alternate=nt):(nt.pendingProps=et,nt.type=tt.type,nt.flags=0,nt.subtreeFlags=0,nt.deletions=null),nt.flags=tt.flags&14680064,nt.childLanes=tt.childLanes,nt.lanes=tt.lanes,nt.child=tt.child,nt.memoizedProps=tt.memoizedProps,nt.memoizedState=tt.memoizedState,nt.updateQueue=tt.updateQueue,et=tt.dependencies,nt.dependencies=et===null?null:{lanes:et.lanes,firstContext:et.firstContext},nt.sibling=tt.sibling,nt.index=tt.index,nt.ref=tt.ref,nt}function yh(tt,et,nt,rt,it,ot){var at=2;if(rt=tt,typeof tt=="function")bj(tt)&&(at=1);else if(typeof tt=="string")at=5;else e:switch(tt){case ya:return Ah(nt.children,it,ot,et);case za:at=8,it|=8;break;case Aa:return tt=Bg$1(12,nt,et,it|2),tt.elementType=Aa,tt.lanes=ot,tt;case Ea:return tt=Bg$1(13,nt,et,it),tt.elementType=Ea,tt.lanes=ot,tt;case Fa:return tt=Bg$1(19,nt,et,it),tt.elementType=Fa,tt.lanes=ot,tt;case Ia:return qj(nt,it,ot,et);default:if(typeof tt=="object"&&tt!==null)switch(tt.$$typeof){case Ba:at=10;break e;case Ca:at=9;break e;case Da:at=11;break e;case Ga:at=14;break e;case Ha:at=16,rt=null;break e}throw Error(p$b(130,tt==null?tt:typeof tt,""))}return et=Bg$1(at,nt,et,it),et.elementType=tt,et.type=rt,et.lanes=ot,et}function Ah(tt,et,nt,rt){return tt=Bg$1(7,tt,rt,et),tt.lanes=nt,tt}function qj(tt,et,nt,rt){return tt=Bg$1(22,tt,rt,et),tt.elementType=Ia,tt.lanes=nt,tt.stateNode={isHidden:!1},tt}function xh(tt,et,nt){return tt=Bg$1(6,tt,null,et),tt.lanes=nt,tt}function zh(tt,et,nt){return et=Bg$1(4,tt.children!==null?tt.children:[],tt.key,et),et.lanes=nt,et.stateNode={containerInfo:tt.containerInfo,pendingChildren:null,implementation:tt.implementation},et}function bl(tt,et,nt,rt,it){this.tag=et,this.containerInfo=tt,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zc(0),this.expirationTimes=zc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zc(0),this.identifierPrefix=rt,this.onRecoverableError=it,this.mutableSourceEagerHydrationData=null}function cl(tt,et,nt,rt,it,ot,at,st,lt){return tt=new bl(tt,et,nt,st,lt),et===1?(et=1,ot===!0&&(et|=8)):et=0,ot=Bg$1(3,null,null,et),tt.current=ot,ot.stateNode=tt,ot.memoizedState={element:rt,isDehydrated:nt,cache:null,transitions:null,pendingSuspenseBoundaries:null},ah(ot),tt}function dl(tt,et,nt){var rt=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(tt){console.error(tt)}}checkDCE(),reactDom.exports=reactDom_production_min;var reactDomExports=reactDom.exports;const ReactDOM=getDefaultExportFromCjs(reactDomExports);var createRoot$1,m$c=reactDomExports;createRoot$1=client.createRoot=m$c.createRoot,client.hydrateRoot=m$c.hydrateRoot;function _extends$r(){return _extends$r=Object.assign?Object.assign.bind():function(tt){for(var et=1;ettt.forEach(nt=>$6ed0406888f73fc4$var$setRef(nt,et))}function $6ed0406888f73fc4$export$c7b2cbe3552a0d05(...tt){return reactExports.useCallback($6ed0406888f73fc4$export$43e446d32b3d21af(...tt),tt)}const $5e63c961fc1ce211$export$8c6ed5c666ac1360=reactExports.forwardRef((tt,et)=>{const{children:nt,...rt}=tt,it=reactExports.Children.toArray(nt),ot=it.find($5e63c961fc1ce211$var$isSlottable);if(ot){const at=ot.props.children,st=it.map(lt=>lt===ot?reactExports.Children.count(at)>1?reactExports.Children.only(null):reactExports.isValidElement(at)?at.props.children:null:lt);return reactExports.createElement($5e63c961fc1ce211$var$SlotClone,_extends$r({},rt,{ref:et}),reactExports.isValidElement(at)?reactExports.cloneElement(at,void 0,st):null)}return reactExports.createElement($5e63c961fc1ce211$var$SlotClone,_extends$r({},rt,{ref:et}),nt)});$5e63c961fc1ce211$export$8c6ed5c666ac1360.displayName="Slot";const $5e63c961fc1ce211$var$SlotClone=reactExports.forwardRef((tt,et)=>{const{children:nt,...rt}=tt;return reactExports.isValidElement(nt)?reactExports.cloneElement(nt,{...$5e63c961fc1ce211$var$mergeProps(rt,nt.props),ref:et?$6ed0406888f73fc4$export$43e446d32b3d21af(et,nt.ref):nt.ref}):reactExports.Children.count(nt)>1?reactExports.Children.only(null):null});$5e63c961fc1ce211$var$SlotClone.displayName="SlotClone";const $5e63c961fc1ce211$export$d9f1ccf0bdb05d45=({children:tt})=>reactExports.createElement(reactExports.Fragment,null,tt);function $5e63c961fc1ce211$var$isSlottable(tt){return reactExports.isValidElement(tt)&&tt.type===$5e63c961fc1ce211$export$d9f1ccf0bdb05d45}function $5e63c961fc1ce211$var$mergeProps(tt,et){const nt={...et};for(const rt in et){const it=tt[rt],ot=et[rt];/^on[A-Z]/.test(rt)?it&&ot?nt[rt]=(...st)=>{ot(...st),it(...st)}:it&&(nt[rt]=it):rt==="style"?nt[rt]={...it,...ot}:rt==="className"&&(nt[rt]=[it,ot].filter(Boolean).join(" "))}return{...tt,...nt}}const $8927f6f2acc4f386$var$NODES=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],$8927f6f2acc4f386$export$250ffa63cdc0d034=$8927f6f2acc4f386$var$NODES.reduce((tt,et)=>{const nt=reactExports.forwardRef((rt,it)=>{const{asChild:ot,...at}=rt,st=ot?$5e63c961fc1ce211$export$8c6ed5c666ac1360:et;return reactExports.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),reactExports.createElement(st,_extends$r({},at,{ref:it}))});return nt.displayName=`Primitive.${et}`,{...tt,[et]:nt}},{});function $8927f6f2acc4f386$export$6d1a0317bde7de7f(tt,et){tt&&reactDomExports.flushSync(()=>tt.dispatchEvent(et))}const $f1701beae083dbae$export$602eac185826482c=reactExports.forwardRef((tt,et)=>{var nt;const{container:rt=globalThis==null||(nt=globalThis.document)===null||nt===void 0?void 0:nt.body,...it}=tt;return rt?ReactDOM.createPortal(reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div,_extends$r({},it,{ref:et})),rt):null}),$f1701beae083dbae$export$be92b6f5f03c0fe9=$f1701beae083dbae$export$602eac185826482c;var has=Object.prototype.hasOwnProperty;function dequal(tt,et){var nt,rt;if(tt===et)return!0;if(tt&&et&&(nt=tt.constructor)===et.constructor){if(nt===Date)return tt.getTime()===et.getTime();if(nt===RegExp)return tt.toString()===et.toString();if(nt===Array){if((rt=tt.length)===et.length)for(;rt--&&dequal(tt[rt],et[rt]););return rt===-1}if(!nt||typeof tt=="object"){rt=0;for(nt in tt)if(has.call(tt,nt)&&++rt&&!has.call(et,nt)||!(nt in et)||!dequal(tt[nt],et[nt]))return!1;return Object.keys(et).length===rt}}return tt!==tt&&et!==et}function shallow$1(tt,et){if(Object.is(tt,et))return!0;if(typeof tt!="object"||tt===null||typeof et!="object"||et===null)return!1;const nt=Object.keys(tt);if(nt.length!==Object.keys(et).length)return!1;for(let rt=0;rt0;)at[st]=arguments[st+4];tt.call(this,at),tt.captureStackTrace&&tt.captureStackTrace(this,et),this.rule=nt,this.value=rt,this.cause=it,this.target=ot}return tt&&(et.__proto__=tt),et.prototype=Object.create(tt&&tt.prototype),et.prototype.constructor=et,et}(Error),Context$2=function(et,nt){et===void 0&&(et=[]),nt===void 0&&(nt=[]),this.chain=et,this.nextRuleModifiers=nt};Context$2.prototype._applyRule=function(et,nt){var rt=this;return function(){for(var it=[],ot=arguments.length;ot--;)it[ot]=arguments[ot];return rt.chain.push(new Rule(nt,et.apply(rt,it),it,rt.nextRuleModifiers)),rt.nextRuleModifiers=[],rt}};Context$2.prototype._applyModifier=function(et,nt){return this.nextRuleModifiers.push(new Modifier(nt,et.simple,et.async)),this};Context$2.prototype._clone=function(){return new Context$2(this.chain.slice(),this.nextRuleModifiers.slice())};Context$2.prototype.test=function(et){return this.chain.every(function(nt){return nt._test(et)})};Context$2.prototype.testAll=function(et){var nt=[];return this.chain.forEach(function(rt){try{rt._check(et)}catch(it){nt.push(new ValidationError(rt,et,it))}}),nt};Context$2.prototype.check=function(et){this.chain.forEach(function(nt){try{nt._check(et)}catch(rt){throw new ValidationError(nt,et,rt)}})};Context$2.prototype.testAsync=function(et){var nt=this;return new Promise(function(rt,it){executeAsyncRules(et,nt.chain.slice(),rt,it)})};function executeAsyncRules(tt,et,nt,rt){if(et.length){var it=et.shift();it._testAsync(tt).then(function(){executeAsyncRules(tt,et,nt,rt)},function(ot){rt(new ValidationError(it,tt,ot))})}else nt(tt)}var consideredEmpty=function(tt,et){return et&&typeof tt=="string"&&tt.trim().length===0?!0:tt==null};function optional(tt,et){return et===void 0&&(et=!1),{simple:function(nt){return consideredEmpty(nt,et)||tt.check(nt)===void 0},async:function(nt){return consideredEmpty(nt,et)||tt.testAsync(nt)}}}function v8n(){return typeof Proxy<"u"?proxyContext(new Context$2):proxylessContext(new Context$2)}var customRules={};v8n.extend=function(tt){Object.assign(customRules,tt)};v8n.clearCustomRules=function(){customRules={}};function proxyContext(tt){return new Proxy(tt,{get:function(nt,rt){if(rt in nt)return nt[rt];var it=proxyContext(tt._clone());if(rt in availableModifiers)return it._applyModifier(availableModifiers[rt],rt);if(rt in customRules)return it._applyRule(customRules[rt],rt);if(rt in availableRules)return it._applyRule(availableRules[rt],rt)}})}function proxylessContext(tt){var et=function(it,ot){return Object.keys(it).forEach(function(at){ot[at]=function(){for(var st=[],lt=arguments.length;lt--;)st[lt]=arguments[lt];var ct=proxylessContext(ot._clone()),ut=ct._applyRule(it[at],at).apply(void 0,st);return ut}}),ot},nt=et(availableRules,tt),rt=et(customRules,nt);return Object.keys(availableModifiers).forEach(function(it){Object.defineProperty(rt,it,{get:function(){var ot=proxylessContext(rt._clone());return ot._applyModifier(availableModifiers[it],it)}})}),rt}var availableModifiers={not:{simple:function(tt){return function(et){return!tt(et)}},async:function(tt){return function(et){return Promise.resolve(tt(et)).then(function(nt){return!nt}).catch(function(){return!0})}}},some:{simple:function(tt){return function(et){return split$1(et).some(function(nt){try{return tt(nt)}catch{return!1}})}},async:function(tt){return function(et){return Promise.all(split$1(et).map(function(nt){try{return tt(nt).catch(function(){return!1})}catch{return!1}})).then(function(nt){return nt.some(Boolean)})}}},every:{simple:function(tt){return function(et){return et!==!1&&split$1(et).every(tt)}},async:function(tt){return function(et){return Promise.all(split$1(et).map(tt)).then(function(nt){return nt.every(Boolean)})}}},strict:{simple:function(tt,et){return function(nt){return isSchemaRule(et)&&nt&&typeof nt=="object"?Object.keys(et.args[0]).length===Object.keys(nt).length&&tt(nt):tt(nt)}},async:function(tt,et){return function(nt){return Promise.resolve(tt(nt)).then(function(rt){return isSchemaRule(et)&&nt&&typeof nt=="object"?Object.keys(et.args[0]).length===Object.keys(nt).length&&rt:rt}).catch(function(){return!1})}}}};function isSchemaRule(tt){return tt&&tt.name==="schema"&&tt.args.length>0&&typeof tt.args[0]=="object"}function split$1(tt){return typeof tt=="string"?tt.split(""):tt}var availableRules={equal:function(tt){return function(et){return et==tt}},exact:function(tt){return function(et){return et===tt}},number:function(tt){return tt===void 0&&(tt=!0),function(et){return typeof et=="number"&&(tt||isFinite(et))}},integer:function(){return function(tt){var et=Number.isInteger||isIntegerPolyfill;return et(tt)}},numeric:function(){return function(tt){return!isNaN(parseFloat(tt))&&isFinite(tt)}},string:function(){return testType("string")},boolean:function(){return testType("boolean")},undefined:function(){return testType("undefined")},null:function(){return testType("null")},array:function(){return testType("array")},object:function(){return testType("object")},instanceOf:function(tt){return function(et){return et instanceof tt}},pattern:function(tt){return function(et){return tt.test(et)}},lowercase:function(){return function(tt){return typeof tt=="boolean"||tt===tt.toLowerCase()&&tt.trim()!==""}},uppercase:function(){return function(tt){return tt===tt.toUpperCase()&&tt.trim()!==""}},vowel:function(){return function(tt){return/^[aeiou]+$/i.test(tt)}},consonant:function(){return function(tt){return/^(?=[^aeiou])([a-z]+)$/i.test(tt)}},first:function(tt){return function(et){return et[0]==tt}},last:function(tt){return function(et){return et[et.length-1]==tt}},empty:function(){return function(tt){return tt.length===0}},length:function(tt,et){return function(nt){return nt.length>=tt&&nt.length<=(et||tt)}},minLength:function(tt){return function(et){return et.length>=tt}},maxLength:function(tt){return function(et){return et.length<=tt}},negative:function(){return function(tt){return tt<0}},positive:function(){return function(tt){return tt>=0}},between:function(tt,et){return function(nt){return nt>=tt&&nt<=et}},range:function(tt,et){return function(nt){return nt>=tt&&nt<=et}},lessThan:function(tt){return function(et){return ettt}},greaterThanOrEqual:function(tt){return function(et){return et>=tt}},even:function(){return function(tt){return tt%2===0}},odd:function(){return function(tt){return tt%2!==0}},includes:function(tt){return function(et){return~et.indexOf(tt)}},schema:function(tt){return testSchema(tt)},passesAnyOf:function(){for(var tt=[],et=arguments.length;et--;)tt[et]=arguments[et];return function(nt){return tt.some(function(rt){return rt.test(nt)})}},optional};function testType(tt){return function(et){return Array.isArray(et)&&tt==="array"||et===null&&tt==="null"||typeof et===tt}}function isIntegerPolyfill(tt){return typeof tt=="number"&&isFinite(tt)&&Math.floor(tt)===tt}function testSchema(tt){return{simple:function(et){var nt=[];if(Object.keys(tt).forEach(function(rt){var it=tt[rt];try{it.check((et||{})[rt])}catch(ot){ot.target=rt,nt.push(ot)}}),nt.length>0)throw nt;return!0},async:function(et){var nt=[],rt=Object.keys(tt).map(function(it){var ot=tt[it];return ot.testAsync((et||{})[it]).catch(function(at){at.target=it,nt.push(at)})});return Promise.all(rt).then(function(){if(nt.length>0)throw nt;return!0})}}}var e$7="colors",t$8="sizes",r$a="space",n$9={gap:r$a,gridGap:r$a,columnGap:r$a,gridColumnGap:r$a,rowGap:r$a,gridRowGap:r$a,inset:r$a,insetBlock:r$a,insetBlockEnd:r$a,insetBlockStart:r$a,insetInline:r$a,insetInlineEnd:r$a,insetInlineStart:r$a,margin:r$a,marginTop:r$a,marginRight:r$a,marginBottom:r$a,marginLeft:r$a,marginBlock:r$a,marginBlockEnd:r$a,marginBlockStart:r$a,marginInline:r$a,marginInlineEnd:r$a,marginInlineStart:r$a,padding:r$a,paddingTop:r$a,paddingRight:r$a,paddingBottom:r$a,paddingLeft:r$a,paddingBlock:r$a,paddingBlockEnd:r$a,paddingBlockStart:r$a,paddingInline:r$a,paddingInlineEnd:r$a,paddingInlineStart:r$a,top:r$a,right:r$a,bottom:r$a,left:r$a,scrollMargin:r$a,scrollMarginTop:r$a,scrollMarginRight:r$a,scrollMarginBottom:r$a,scrollMarginLeft:r$a,scrollMarginX:r$a,scrollMarginY:r$a,scrollMarginBlock:r$a,scrollMarginBlockEnd:r$a,scrollMarginBlockStart:r$a,scrollMarginInline:r$a,scrollMarginInlineEnd:r$a,scrollMarginInlineStart:r$a,scrollPadding:r$a,scrollPaddingTop:r$a,scrollPaddingRight:r$a,scrollPaddingBottom:r$a,scrollPaddingLeft:r$a,scrollPaddingX:r$a,scrollPaddingY:r$a,scrollPaddingBlock:r$a,scrollPaddingBlockEnd:r$a,scrollPaddingBlockStart:r$a,scrollPaddingInline:r$a,scrollPaddingInlineEnd:r$a,scrollPaddingInlineStart:r$a,fontSize:"fontSizes",background:e$7,backgroundColor:e$7,backgroundImage:e$7,borderImage:e$7,border:e$7,borderBlock:e$7,borderBlockEnd:e$7,borderBlockStart:e$7,borderBottom:e$7,borderBottomColor:e$7,borderColor:e$7,borderInline:e$7,borderInlineEnd:e$7,borderInlineStart:e$7,borderLeft:e$7,borderLeftColor:e$7,borderRight:e$7,borderRightColor:e$7,borderTop:e$7,borderTopColor:e$7,caretColor:e$7,color:e$7,columnRuleColor:e$7,fill:e$7,outline:e$7,outlineColor:e$7,stroke:e$7,textDecorationColor:e$7,fontFamily:"fonts",fontWeight:"fontWeights",lineHeight:"lineHeights",letterSpacing:"letterSpacings",blockSize:t$8,minBlockSize:t$8,maxBlockSize:t$8,inlineSize:t$8,minInlineSize:t$8,maxInlineSize:t$8,width:t$8,minWidth:t$8,maxWidth:t$8,height:t$8,minHeight:t$8,maxHeight:t$8,flexBasis:t$8,gridTemplateColumns:t$8,gridTemplateRows:t$8,borderWidth:"borderWidths",borderTopWidth:"borderWidths",borderRightWidth:"borderWidths",borderBottomWidth:"borderWidths",borderLeftWidth:"borderWidths",borderStyle:"borderStyles",borderTopStyle:"borderStyles",borderRightStyle:"borderStyles",borderBottomStyle:"borderStyles",borderLeftStyle:"borderStyles",borderRadius:"radii",borderTopLeftRadius:"radii",borderTopRightRadius:"radii",borderBottomRightRadius:"radii",borderBottomLeftRadius:"radii",boxShadow:"shadows",textShadow:"shadows",transition:"transitions",zIndex:"zIndices"},i$9=(tt,et)=>typeof et=="function"?{"()":Function.prototype.toString.call(et)}:et,o$4=()=>{const tt=Object.create(null);return(et,nt,...rt)=>{const it=(ot=>JSON.stringify(ot,i$9))(et);return it in tt?tt[it]:tt[it]=nt(et,...rt)}},l$8=Symbol.for("sxs.internal"),s$7=(tt,et)=>Object.defineProperties(tt,Object.getOwnPropertyDescriptors(et)),a$6=tt=>{for(const et in tt)return!0;return!1},{hasOwnProperty:c$b}=Object.prototype,d$8=tt=>tt.includes("-")?tt:tt.replace(/[A-Z]/g,et=>"-"+et.toLowerCase()),g$b=/\s+(?![^()]*\))/,p$a=tt=>et=>tt(...typeof et=="string"?String(et).split(g$b):[et]),u$8={appearance:tt=>({WebkitAppearance:tt,appearance:tt}),backfaceVisibility:tt=>({WebkitBackfaceVisibility:tt,backfaceVisibility:tt}),backdropFilter:tt=>({WebkitBackdropFilter:tt,backdropFilter:tt}),backgroundClip:tt=>({WebkitBackgroundClip:tt,backgroundClip:tt}),boxDecorationBreak:tt=>({WebkitBoxDecorationBreak:tt,boxDecorationBreak:tt}),clipPath:tt=>({WebkitClipPath:tt,clipPath:tt}),content:tt=>({content:tt.includes('"')||tt.includes("'")||/^([A-Za-z]+\([^]*|[^]*-quote|inherit|initial|none|normal|revert|unset)$/.test(tt)?tt:`"${tt}"`}),hyphens:tt=>({WebkitHyphens:tt,hyphens:tt}),maskImage:tt=>({WebkitMaskImage:tt,maskImage:tt}),maskSize:tt=>({WebkitMaskSize:tt,maskSize:tt}),tabSize:tt=>({MozTabSize:tt,tabSize:tt}),textSizeAdjust:tt=>({WebkitTextSizeAdjust:tt,textSizeAdjust:tt}),userSelect:tt=>({WebkitUserSelect:tt,userSelect:tt}),marginBlock:p$a((tt,et)=>({marginBlockStart:tt,marginBlockEnd:et||tt})),marginInline:p$a((tt,et)=>({marginInlineStart:tt,marginInlineEnd:et||tt})),maxSize:p$a((tt,et)=>({maxBlockSize:tt,maxInlineSize:et||tt})),minSize:p$a((tt,et)=>({minBlockSize:tt,minInlineSize:et||tt})),paddingBlock:p$a((tt,et)=>({paddingBlockStart:tt,paddingBlockEnd:et||tt})),paddingInline:p$a((tt,et)=>({paddingInlineStart:tt,paddingInlineEnd:et||tt}))},h$c=/([\d.]+)([^]*)/,f$a=(tt,et)=>tt.length?tt.reduce((nt,rt)=>(nt.push(...et.map(it=>it.includes("&")?it.replace(/&/g,/[ +>|~]/.test(rt)&&/&.*&/.test(it)?`:is(${rt})`:rt):rt+" "+it)),nt),[]):et,m$b=(tt,et)=>tt in b$8&&typeof et=="string"?et.replace(/^((?:[^]*[^\w-])?)(fit-content|stretch)((?:[^\w-][^]*)?)$/,(nt,rt,it,ot)=>rt+(it==="stretch"?`-moz-available${ot};${d$8(tt)}:${rt}-webkit-fill-available`:`-moz-fit-content${ot};${d$8(tt)}:${rt}fit-content`)+ot):String(et),b$8={blockSize:1,height:1,inlineSize:1,maxBlockSize:1,maxHeight:1,maxInlineSize:1,maxWidth:1,minBlockSize:1,minHeight:1,minInlineSize:1,minWidth:1,width:1},S$4=tt=>tt?tt+"-":"",k$a=(tt,et,nt)=>tt.replace(/([+-])?((?:\d+(?:\.\d*)?|\.\d+)(?:[Ee][+-]?\d+)?)?(\$|--)([$\w-]+)/g,(rt,it,ot,at,st)=>at=="$"==!!ot?rt:(it||at=="--"?"calc(":"")+"var(--"+(at==="$"?S$4(et)+(st.includes("$")?"":S$4(nt))+st.replace(/\$/g,"-"):st)+")"+(it||at=="--"?"*"+(it||"")+(ot||"1")+")":"")),y$a=/\s*,\s*(?![^()]*\))/,B$3=Object.prototype.toString,$$3=(tt,et,nt,rt,it)=>{let ot,at,st;const lt=(ct,ut,ht)=>{let dt,pt;const mt=gt=>{for(dt in gt){const wt=dt.charCodeAt(0)===64,vt=wt&&Array.isArray(gt[dt])?gt[dt]:[gt[dt]];for(pt of vt){const kt=/[A-Z]/.test(bt=dt)?bt:bt.replace(/-[^]/g,Et=>Et[1].toUpperCase()),St=typeof pt=="object"&&pt&&pt.toString===B$3&&(!rt.utils[kt]||!ut.length);if(kt in rt.utils&&!St){const Et=rt.utils[kt];if(Et!==at){at=Et,mt(Et(pt)),at=null;continue}}else if(kt in u$8){const Et=u$8[kt];if(Et!==st){st=Et,mt(Et(pt)),st=null;continue}}if(wt&&(yt=dt.slice(1)in rt.media?"@media "+rt.media[dt.slice(1)]:dt,dt=yt.replace(/\(\s*([\w-]+)\s*(=|<|<=|>|>=)\s*([\w-]+)\s*(?:(<|<=|>|>=)\s*([\w-]+)\s*)?\)/g,(Et,At,Tt,Mt,Lt,jt)=>{const Rt=h$c.test(At),$t=.0625*(Rt?-1:1),[xt,It]=Rt?[Mt,At]:[At,Mt];return"("+(Tt[0]==="="?"":Tt[0]===">"===Rt?"max-":"min-")+xt+":"+(Tt[0]!=="="&&Tt.length===1?It.replace(h$c,(Ot,zt,Ut)=>Number(zt)+$t*(Tt===">"?1:-1)+Ut):It)+(Lt?") and ("+(Lt[0]===">"?"min-":"max-")+xt+":"+(Lt.length===1?jt.replace(h$c,(Ot,zt,Ut)=>Number(zt)+$t*(Lt===">"?-1:1)+Ut):jt):"")+")"})),St){const Et=wt?ht.concat(dt):[...ht],At=wt?[...ut]:f$a(ut,dt.split(y$a));ot!==void 0&&it(x$a(...ot)),ot=void 0,lt(pt,At,Et)}else ot===void 0&&(ot=[[],ut,ht]),dt=wt||dt.charCodeAt(0)!==36?dt:`--${S$4(rt.prefix)}${dt.slice(1).replace(/\$/g,"-")}`,pt=St?pt:typeof pt=="number"?pt&&kt in I$3?String(pt)+"px":String(pt):k$a(m$b(kt,pt??""),rt.prefix,rt.themeMap[kt]),ot[0].push(`${wt?`${dt} `:`${d$8(dt)}:`}${pt}`)}}var yt,bt};mt(ct),ot!==void 0&&it(x$a(...ot)),ot=void 0};lt(tt,et,nt)},x$a=(tt,et,nt)=>`${nt.map(rt=>`${rt}{`).join("")}${et.length?`${et.join(",")}{`:""}${tt.join(";")}${et.length?"}":""}${Array(nt.length?nt.length+1:0).join("}")}`,I$3={animationDelay:1,animationDuration:1,backgroundSize:1,blockSize:1,border:1,borderBlock:1,borderBlockEnd:1,borderBlockEndWidth:1,borderBlockStart:1,borderBlockStartWidth:1,borderBlockWidth:1,borderBottom:1,borderBottomLeftRadius:1,borderBottomRightRadius:1,borderBottomWidth:1,borderEndEndRadius:1,borderEndStartRadius:1,borderInlineEnd:1,borderInlineEndWidth:1,borderInlineStart:1,borderInlineStartWidth:1,borderInlineWidth:1,borderLeft:1,borderLeftWidth:1,borderRadius:1,borderRight:1,borderRightWidth:1,borderSpacing:1,borderStartEndRadius:1,borderStartStartRadius:1,borderTop:1,borderTopLeftRadius:1,borderTopRightRadius:1,borderTopWidth:1,borderWidth:1,bottom:1,columnGap:1,columnRule:1,columnRuleWidth:1,columnWidth:1,containIntrinsicSize:1,flexBasis:1,fontSize:1,gap:1,gridAutoColumns:1,gridAutoRows:1,gridTemplateColumns:1,gridTemplateRows:1,height:1,inlineSize:1,inset:1,insetBlock:1,insetBlockEnd:1,insetBlockStart:1,insetInline:1,insetInlineEnd:1,insetInlineStart:1,left:1,letterSpacing:1,margin:1,marginBlock:1,marginBlockEnd:1,marginBlockStart:1,marginBottom:1,marginInline:1,marginInlineEnd:1,marginInlineStart:1,marginLeft:1,marginRight:1,marginTop:1,maxBlockSize:1,maxHeight:1,maxInlineSize:1,maxWidth:1,minBlockSize:1,minHeight:1,minInlineSize:1,minWidth:1,offsetDistance:1,offsetRotate:1,outline:1,outlineOffset:1,outlineWidth:1,overflowClipMargin:1,padding:1,paddingBlock:1,paddingBlockEnd:1,paddingBlockStart:1,paddingBottom:1,paddingInline:1,paddingInlineEnd:1,paddingInlineStart:1,paddingLeft:1,paddingRight:1,paddingTop:1,perspective:1,right:1,rowGap:1,scrollMargin:1,scrollMarginBlock:1,scrollMarginBlockEnd:1,scrollMarginBlockStart:1,scrollMarginBottom:1,scrollMarginInline:1,scrollMarginInlineEnd:1,scrollMarginInlineStart:1,scrollMarginLeft:1,scrollMarginRight:1,scrollMarginTop:1,scrollPadding:1,scrollPaddingBlock:1,scrollPaddingBlockEnd:1,scrollPaddingBlockStart:1,scrollPaddingBottom:1,scrollPaddingInline:1,scrollPaddingInlineEnd:1,scrollPaddingInlineStart:1,scrollPaddingLeft:1,scrollPaddingRight:1,scrollPaddingTop:1,shapeMargin:1,textDecoration:1,textDecorationThickness:1,textIndent:1,textUnderlineOffset:1,top:1,transitionDelay:1,transitionDuration:1,verticalAlign:1,width:1,wordSpacing:1},R$3=tt=>String.fromCharCode(tt+(tt>25?39:97)),z$7=tt=>(et=>{let nt,rt="";for(nt=Math.abs(et);nt>52;nt=nt/52|0)rt=R$3(nt%52)+rt;return R$3(nt%52)+rt})(((et,nt)=>{let rt=nt.length;for(;rt;)et=33*et^nt.charCodeAt(--rt);return et})(5381,JSON.stringify(tt))>>>0),W$8=["themed","global","styled","onevar","resonevar","allvar","inline"],j$2=tt=>{if(tt.href&&!tt.href.startsWith(location.origin))return!1;try{return!!tt.cssRules}catch{return!1}},E$3=tt=>{let et;const nt=()=>{const{cssRules:it}=et.sheet;return[].map.call(it,(ot,at)=>{const{cssText:st}=ot;let lt="";if(st.startsWith("--sxs"))return"";if(it[at-1]&&(lt=it[at-1].cssText).startsWith("--sxs")){if(!ot.cssRules.length)return"";for(const ct in et.rules)if(et.rules[ct].group===ot)return`--sxs{--sxs:${[...et.rules[ct].cache].join(" ")}}${st}`;return ot.cssRules.length?`${lt}${st}`:""}return st}).join("")},rt=()=>{if(et){const{rules:st,sheet:lt}=et;if(!lt.deleteRule){for(;Object(Object(lt.cssRules)[0]).type===3;)lt.cssRules.splice(0,1);lt.cssRules=[]}for(const ct in st)delete st[ct]}const it=Object(tt).styleSheets||[];for(const st of it)if(j$2(st)){for(let lt=0,ct=st.cssRules;ct[lt];++lt){const ut=Object(ct[lt]);if(ut.type!==1)continue;const ht=Object(ct[lt+1]);if(ht.type!==4)continue;++lt;const{cssText:dt}=ut;if(!dt.startsWith("--sxs"))continue;const pt=dt.slice(14,-3).trim().split(/\s+/),mt=W$8[pt[0]];mt&&(et||(et={sheet:st,reset:rt,rules:{},toString:nt}),et.rules[mt]={group:ht,index:lt,cache:new Set(pt)})}if(et)break}if(!et){const st=(lt,ct)=>({type:ct,cssRules:[],insertRule(ut,ht){this.cssRules.splice(ht,0,st(ut,{import:3,undefined:1}[(ut.toLowerCase().match(/^@([a-z]+)/)||[])[1]]||4))},get cssText(){return lt==="@media{}"?`@media{${[].map.call(this.cssRules,ut=>ut.cssText).join("")}}`:lt}});et={sheet:tt?(tt.head||tt).appendChild(document.createElement("style")).sheet:st("","text/css"),rules:{},reset:rt,toString:nt}}const{sheet:ot,rules:at}=et;for(let st=W$8.length-1;st>=0;--st){const lt=W$8[st];if(!at[lt]){const ct=W$8[st+1],ut=at[ct]?at[ct].index:ot.cssRules.length;ot.insertRule("@media{}",ut),ot.insertRule(`--sxs{--sxs:${st}}`,ut),at[lt]={group:ot.cssRules[ut+1],index:ut,cache:new Set([st])}}v$b(at[lt])}};return rt(),et},v$b=tt=>{const et=tt.group;let nt=et.cssRules.length;tt.apply=rt=>{try{et.insertRule(rt,nt),++nt}catch{}}},T$3=Symbol(),w$8=o$4(),M$3=(tt,et)=>w$8(tt,()=>(...nt)=>{let rt={type:null,composers:new Set};for(const it of nt)if(it!=null)if(it[l$8]){rt.type==null&&(rt.type=it[l$8].type);for(const ot of it[l$8].composers)rt.composers.add(ot)}else it.constructor!==Object||it.$$typeof?rt.type==null&&(rt.type=it):rt.composers.add(C$3(it,tt));return rt.type==null&&(rt.type="span"),rt.composers.size||rt.composers.add(["PJLV",{},[],[],{},[]]),P$5(tt,rt,et)}),C$3=({variants:tt,compoundVariants:et,defaultVariants:nt,...rt},it)=>{const ot=`${S$4(it.prefix)}c-${z$7(rt)}`,at=[],st=[],lt=Object.create(null),ct=[];for(const dt in nt)lt[dt]=String(nt[dt]);if(typeof tt=="object"&&tt)for(const dt in tt){ut=lt,ht=dt,c$b.call(ut,ht)||(lt[dt]="undefined");const pt=tt[dt];for(const mt in pt){const gt={[dt]:String(mt)};String(mt)==="undefined"&&ct.push(dt);const yt=pt[mt],bt=[gt,yt,!a$6(yt)];at.push(bt)}}var ut,ht;if(typeof et=="object"&&et)for(const dt of et){let{css:pt,...mt}=dt;pt=typeof pt=="object"&&pt||{};for(const yt in mt)mt[yt]=String(mt[yt]);const gt=[mt,pt,!a$6(pt)];st.push(gt)}return[ot,rt,at,st,lt,ct]},P$5=(tt,et,nt)=>{const[rt,it,ot,at]=L$4(et.composers),st=typeof et.type=="function"||et.type.$$typeof?(ht=>{function dt(){for(let pt=0;ptdt.rules[pt]={apply:mt=>dt[T$3].push([pt,mt])}),dt})(nt):null,lt=(st||nt).rules,ct=`.${rt}${it.length>1?`:where(.${it.slice(1).join(".")})`:""}`,ut=ht=>{ht=typeof ht=="object"&&ht||A$4;const{css:dt,...pt}=ht,mt={};for(const bt in ot)if(delete pt[bt],bt in ht){let wt=ht[bt];typeof wt=="object"&&wt?mt[bt]={"@initial":ot[bt],...wt}:(wt=String(wt),mt[bt]=wt!=="undefined"||at.has(bt)?wt:ot[bt])}else mt[bt]=ot[bt];const gt=new Set([...it]);for(const[bt,wt,vt,kt]of et.composers){nt.rules.styled.cache.has(bt)||(nt.rules.styled.cache.add(bt),$$3(wt,[`.${bt}`],[],tt,At=>{lt.styled.apply(At)}));const St=O$2(vt,mt,tt.media),Et=O$2(kt,mt,tt.media,!0);for(const At of St)if(At!==void 0)for(const[Tt,Mt,Lt]of At){const jt=`${bt}-${z$7(Mt)}-${Tt}`;gt.add(jt);const Rt=(Lt?nt.rules.resonevar:nt.rules.onevar).cache,$t=Lt?lt.resonevar:lt.onevar;Rt.has(jt)||(Rt.add(jt),$$3(Mt,[`.${jt}`],[],tt,xt=>{$t.apply(xt)}))}for(const At of Et)if(At!==void 0)for(const[Tt,Mt]of At){const Lt=`${bt}-${z$7(Mt)}-${Tt}`;gt.add(Lt),nt.rules.allvar.cache.has(Lt)||(nt.rules.allvar.cache.add(Lt),$$3(Mt,[`.${Lt}`],[],tt,jt=>{lt.allvar.apply(jt)}))}}if(typeof dt=="object"&&dt){const bt=`${rt}-i${z$7(dt)}-css`;gt.add(bt),nt.rules.inline.cache.has(bt)||(nt.rules.inline.cache.add(bt),$$3(dt,[`.${bt}`],[],tt,wt=>{lt.inline.apply(wt)}))}for(const bt of String(ht.className||"").trim().split(/\s+/))bt&>.add(bt);const yt=pt.className=[...gt].join(" ");return{type:et.type,className:yt,selector:ct,props:pt,toString:()=>yt,deferredInjector:st}};return s$7(ut,{className:rt,selector:ct,[l$8]:et,toString:()=>(nt.rules.styled.cache.has(rt)||ut(),rt)})},L$4=tt=>{let et="";const nt=[],rt={},it=[];for(const[ot,,,,at,st]of tt){et===""&&(et=ot),nt.push(ot),it.push(...st);for(const lt in at){const ct=at[lt];(rt[lt]===void 0||ct!=="undefined"||st.includes(ct))&&(rt[lt]=ct)}}return[et,nt,rt,new Set(it)]},O$2=(tt,et,nt,rt)=>{const it=[];e:for(let[ot,at,st]of tt){if(st)continue;let lt,ct=0,ut=!1;for(lt in ot){const ht=ot[lt];let dt=et[lt];if(dt!==ht){if(typeof dt!="object"||!dt)continue e;{let pt,mt,gt=0;for(const yt in dt){if(ht===String(dt[yt])){if(yt!=="@initial"){const bt=yt.slice(1);(mt=mt||[]).push(bt in nt?nt[bt]:yt.replace(/^@media ?/,"")),ut=!0}ct+=gt,pt=!0}++gt}if(mt&&mt.length&&(at={["@media "+mt.join(", ")]:at}),!pt)continue e}}}(it[ct]=it[ct]||[]).push([rt?"cv":`${lt}-${ot[lt]}`,at,ut])}return it},A$4={},N$2=o$4(),D$2=(tt,et)=>N$2(tt,()=>(...nt)=>{const rt=()=>{for(let it of nt){it=typeof it=="object"&&it||{};let ot=z$7(it);if(!et.rules.global.cache.has(ot)){if(et.rules.global.cache.add(ot),"@import"in it){let at=[].indexOf.call(et.sheet.cssRules,et.rules.themed.group)-1;for(let st of[].concat(it["@import"]))st=st.includes('"')||st.includes("'")?st:`"${st}"`,et.sheet.insertRule(`@import ${st};`,at++);delete it["@import"]}$$3(it,[],[],tt,at=>{et.rules.global.apply(at)})}}return""};return s$7(rt,{toString:rt})}),H$3=o$4(),V$4=(tt,et)=>H$3(tt,()=>nt=>{const rt=`${S$4(tt.prefix)}k-${z$7(nt)}`,it=()=>{if(!et.rules.global.cache.has(rt)){et.rules.global.cache.add(rt);const ot=[];$$3(nt,[],[],tt,st=>ot.push(st));const at=`@keyframes ${rt}{${ot.join("")}}`;et.rules.global.apply(at)}return rt};return s$7(it,{get name(){return it()},toString:it})}),G$2=class{constructor(et,nt,rt,it){this.token=et==null?"":String(et),this.value=nt==null?"":String(nt),this.scale=rt==null?"":String(rt),this.prefix=it==null?"":String(it)}get computedValue(){return"var("+this.variable+")"}get variable(){return"--"+S$4(this.prefix)+S$4(this.scale)+this.token}toString(){return this.computedValue}},F$3=o$4(),J$2=(tt,et)=>F$3(tt,()=>(nt,rt)=>{rt=typeof nt=="object"&&nt||Object(rt);const it=`.${nt=(nt=typeof nt=="string"?nt:"")||`${S$4(tt.prefix)}t-${z$7(rt)}`}`,ot={},at=[];for(const lt in rt){ot[lt]={};for(const ct in rt[lt]){const ut=`--${S$4(tt.prefix)}${lt}-${ct}`,ht=k$a(String(rt[lt][ct]),tt.prefix,lt);ot[lt][ct]=new G$2(ct,ht,lt,tt.prefix),at.push(`${ut}:${ht}`)}}const st=()=>{if(at.length&&!et.rules.themed.cache.has(nt)){et.rules.themed.cache.add(nt);const lt=`${rt===tt.theme?":root,":""}.${nt}{${at.join(";")}}`;et.rules.themed.apply(lt)}return nt};return{...ot,get className(){return st()},selector:it,toString:st}}),U$2=o$4(),X$1,Y$2=o$4(),q$7=tt=>{const et=(nt=>{let rt=!1;const it=U$2(nt,ot=>{rt=!0;const at="prefix"in(ot=typeof ot=="object"&&ot||{})?String(ot.prefix):"",st=typeof ot.media=="object"&&ot.media||{},lt=typeof ot.root=="object"?ot.root||null:globalThis.document||null,ct=typeof ot.theme=="object"&&ot.theme||{},ut={prefix:at,media:st,theme:ct,themeMap:typeof ot.themeMap=="object"&&ot.themeMap||{...n$9},utils:typeof ot.utils=="object"&&ot.utils||{}},ht=E$3(lt),dt={css:M$3(ut,ht),globalCss:D$2(ut,ht),keyframes:V$4(ut,ht),createTheme:J$2(ut,ht),reset(){ht.reset(),dt.theme.toString()},theme:{},sheet:ht,config:ut,prefix:at,getCssText:ht.toString,toString:ht.toString};return String(dt.theme=dt.createTheme(ct)),dt});return rt||it.reset(),it})(tt);return et.styled=(({config:nt,sheet:rt})=>Y$2(nt,()=>{const it=M$3(nt,rt);return(...ot)=>{const at=it(...ot),st=at[l$8].type,lt=React$1.forwardRef((ct,ut)=>{const ht=ct&&ct.as||st,{props:dt,deferredInjector:pt}=at(ct);return delete dt.as,dt.ref=ut,pt?React$1.createElement(React$1.Fragment,null,React$1.createElement(ht,dt),React$1.createElement(pt,null)):React$1.createElement(ht,dt)});return lt.className=at.className,lt.displayName=`Styled.${st.displayName||st.name||st}`,lt.selector=at.selector,lt.toString=()=>at.selector,lt[l$8]=at[l$8],lt}}))(et),et},K$6=()=>X$1||(X$1=q$7()),re$4=(...tt)=>K$6().styled(...tt);function clamp$8(tt,et,nt){return Math.max(et,Math.min(tt,nt))}const V$3={toVector(tt,et){return tt===void 0&&(tt=et),Array.isArray(tt)?tt:[tt,tt]},add(tt,et){return[tt[0]+et[0],tt[1]+et[1]]},sub(tt,et){return[tt[0]-et[0],tt[1]-et[1]]},addTo(tt,et){tt[0]+=et[0],tt[1]+=et[1]},subTo(tt,et){tt[0]-=et[0],tt[1]-=et[1]}};function rubberband(tt,et,nt){return et===0||Math.abs(et)===1/0?Math.pow(tt,nt*5):tt*et*nt/(et+nt*tt)}function rubberbandIfOutOfBounds(tt,et,nt,rt=.15){return rt===0?clamp$8(tt,et,nt):ttnt?+rubberband(tt-nt,nt-et,rt)+nt:tt}function computeRubberband(tt,[et,nt],[rt,it]){const[[ot,at],[st,lt]]=tt;return[rubberbandIfOutOfBounds(et,ot,at,rt),rubberbandIfOutOfBounds(nt,st,lt,it)]}function _toPrimitive$s(tt,et){if(typeof tt!="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(typeof rt!="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}function _toPropertyKey$s(tt){var et=_toPrimitive$s(tt,"string");return typeof et=="symbol"?et:String(et)}function _defineProperty$y(tt,et,nt){return et=_toPropertyKey$s(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function ownKeys$w(tt,et){var nt=Object.keys(tt);if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(tt);et&&(rt=rt.filter(function(it){return Object.getOwnPropertyDescriptor(tt,it).enumerable})),nt.push.apply(nt,rt)}return nt}function _objectSpread2$2(tt){for(var et=1;et{var nt,rt;return et.target===tt.currentTarget||((nt=tt.currentTarget)===null||nt===void 0||(rt=nt.contains)===null||rt===void 0?void 0:rt.call(nt,et.target))})}function getTouchList(tt){return tt.type==="touchend"||tt.type==="touchcancel"?tt.changedTouches:tt.targetTouches}function getValueEvent(tt){return isTouch$1(tt)?getTouchList(tt)[0]:tt}function touchIds(tt){return getCurrentTargetTouchList(tt).map(et=>et.identifier)}function pointerId(tt){const et=getValueEvent(tt);return isTouch$1(tt)?et.identifier:et.pointerId}function pointerValues(tt){const et=getValueEvent(tt);return[et.clientX,et.clientY]}function getEventDetails(tt){const et={};if("buttons"in tt&&(et.buttons=tt.buttons),"shiftKey"in tt){const{shiftKey:nt,altKey:rt,metaKey:it,ctrlKey:ot}=tt;Object.assign(et,{shiftKey:nt,altKey:rt,metaKey:it,ctrlKey:ot})}return et}function call$1(tt,...et){return typeof tt=="function"?tt(...et):tt}function noop$a(){}function chain(...tt){return tt.length===0?noop$a:tt.length===1?tt[0]:function(){let et;for(const nt of tt)et=nt.apply(this,arguments)||et;return et}}function assignDefault(tt,et){return Object.assign({},et,tt||{})}const BEFORE_LAST_KINEMATICS_DELAY=32;class Engine{constructor(et,nt,rt){this.ctrl=et,this.args=nt,this.key=rt,this.state||(this.state={},this.computeValues([0,0]),this.computeInitial(),this.init&&this.init(),this.reset())}get state(){return this.ctrl.state[this.key]}set state(et){this.ctrl.state[this.key]=et}get shared(){return this.ctrl.state.shared}get eventStore(){return this.ctrl.gestureEventStores[this.key]}get timeoutStore(){return this.ctrl.gestureTimeoutStores[this.key]}get config(){return this.ctrl.config[this.key]}get sharedConfig(){return this.ctrl.config.shared}get handler(){return this.ctrl.handlers[this.key]}reset(){const{state:et,shared:nt,ingKey:rt,args:it}=this;nt[rt]=et._active=et.active=et._blocked=et._force=!1,et._step=[!1,!1],et.intentional=!1,et._movement=[0,0],et._distance=[0,0],et._direction=[0,0],et._delta=[0,0],et._bounds=[[-1/0,1/0],[-1/0,1/0]],et.args=it,et.axis=void 0,et.memo=void 0,et.elapsedTime=et.timeDelta=0,et.direction=[0,0],et.distance=[0,0],et.overflow=[0,0],et._movementBound=[!1,!1],et.velocity=[0,0],et.movement=[0,0],et.delta=[0,0],et.timeStamp=0}start(et){const nt=this.state,rt=this.config;nt._active||(this.reset(),this.computeInitial(),nt._active=!0,nt.target=et.target,nt.currentTarget=et.currentTarget,nt.lastOffset=rt.from?call$1(rt.from,nt):nt.offset,nt.offset=nt.lastOffset,nt.startTime=nt.timeStamp=et.timeStamp)}computeValues(et){const nt=this.state;nt._values=et,nt.values=this.config.transform(et)}computeInitial(){const et=this.state;et._initial=et._values,et.initial=et.values}compute(et){const{state:nt,config:rt,shared:it}=this;nt.args=this.args;let ot=0;if(et&&(nt.event=et,rt.preventDefault&&et.cancelable&&nt.event.preventDefault(),nt.type=et.type,it.touches=this.ctrl.pointerIds.size||this.ctrl.touchIds.size,it.locked=!!document.pointerLockElement,Object.assign(it,getEventDetails(et)),it.down=it.pressed=it.buttons%2===1||it.touches>0,ot=et.timeStamp-nt.timeStamp,nt.timeStamp=et.timeStamp,nt.elapsedTime=nt.timeStamp-nt.startTime),nt._active){const Et=nt._delta.map(Math.abs);V$3.addTo(nt._distance,Et)}this.axisIntent&&this.axisIntent(et);const[at,st]=nt._movement,[lt,ct]=rt.threshold,{_step:ut,values:ht}=nt;if(rt.hasCustomTransform?(ut[0]===!1&&(ut[0]=Math.abs(at)>=lt&&ht[0]),ut[1]===!1&&(ut[1]=Math.abs(st)>=ct&&ht[1])):(ut[0]===!1&&(ut[0]=Math.abs(at)>=lt&&Math.sign(at)*lt),ut[1]===!1&&(ut[1]=Math.abs(st)>=ct&&Math.sign(st)*ct)),nt.intentional=ut[0]!==!1||ut[1]!==!1,!nt.intentional)return;const dt=[0,0];if(rt.hasCustomTransform){const[Et,At]=ht;dt[0]=ut[0]!==!1?Et-ut[0]:0,dt[1]=ut[1]!==!1?At-ut[1]:0}else dt[0]=ut[0]!==!1?at-ut[0]:0,dt[1]=ut[1]!==!1?st-ut[1]:0;this.restrictToAxis&&!nt._blocked&&this.restrictToAxis(dt);const pt=nt.offset,mt=nt._active&&!nt._blocked||nt.active;mt&&(nt.first=nt._active&&!nt.active,nt.last=!nt._active&&nt.active,nt.active=it[this.ingKey]=nt._active,et&&(nt.first&&("bounds"in rt&&(nt._bounds=call$1(rt.bounds,nt)),this.setup&&this.setup()),nt.movement=dt,this.computeOffset()));const[gt,yt]=nt.offset,[[bt,wt],[vt,kt]]=nt._bounds;nt.overflow=[gtwt?1:0,ytkt?1:0],nt._movementBound[0]=nt.overflow[0]?nt._movementBound[0]===!1?nt._movement[0]:nt._movementBound[0]:!1,nt._movementBound[1]=nt.overflow[1]?nt._movementBound[1]===!1?nt._movement[1]:nt._movementBound[1]:!1;const St=nt._active?rt.rubberband||[0,0]:[0,0];if(nt.offset=computeRubberband(nt._bounds,nt.offset,St),nt.delta=V$3.sub(nt.offset,pt),this.computeMovement(),mt&&(!nt.last||ot>BEFORE_LAST_KINEMATICS_DELAY)){nt.delta=V$3.sub(nt.offset,pt);const Et=nt.delta.map(Math.abs);V$3.addTo(nt.distance,Et),nt.direction=nt.delta.map(Math.sign),nt._direction=nt._delta.map(Math.sign),!nt.first&&ot>0&&(nt.velocity=[Et[0]/ot,Et[1]/ot],nt.timeDelta=ot)}}emit(){const et=this.state,nt=this.shared,rt=this.config;if(et._active||this.clean(),(et._blocked||!et.intentional)&&!et._force&&!rt.triggerAllEvents)return;const it=this.handler(_objectSpread2$2(_objectSpread2$2(_objectSpread2$2({},nt),et),{},{[this.aliasKey]:et.values}));it!==void 0&&(et.memo=it)}clean(){this.eventStore.clean(),this.timeoutStore.clean()}}function selectAxis([tt,et],nt){const rt=Math.abs(tt),it=Math.abs(et);if(rt>it&&rt>nt)return"x";if(it>rt&&it>nt)return"y"}class CoordinatesEngine extends Engine{constructor(...et){super(...et),_defineProperty$y(this,"aliasKey","xy")}reset(){super.reset(),this.state.axis=void 0}init(){this.state.offset=[0,0],this.state.lastOffset=[0,0]}computeOffset(){this.state.offset=V$3.add(this.state.lastOffset,this.state.movement)}computeMovement(){this.state.movement=V$3.sub(this.state.offset,this.state.lastOffset)}axisIntent(et){const nt=this.state,rt=this.config;if(!nt.axis&&et){const it=typeof rt.axisThreshold=="object"?rt.axisThreshold[getPointerType(et)]:rt.axisThreshold;nt.axis=selectAxis(nt._movement,it)}nt._blocked=(rt.lockDirection||!!rt.axis)&&!nt.axis||!!rt.axis&&rt.axis!==nt.axis}restrictToAxis(et){if(this.config.axis||this.config.lockDirection)switch(this.state.axis){case"x":et[1]=0;break;case"y":et[0]=0;break}}}const identity$c=tt=>tt,DEFAULT_RUBBERBAND=.15,commonConfigResolver={enabled(tt=!0){return tt},eventOptions(tt,et,nt){return _objectSpread2$2(_objectSpread2$2({},nt.shared.eventOptions),tt)},preventDefault(tt=!1){return tt},triggerAllEvents(tt=!1){return tt},rubberband(tt=0){switch(tt){case!0:return[DEFAULT_RUBBERBAND,DEFAULT_RUBBERBAND];case!1:return[0,0];default:return V$3.toVector(tt)}},from(tt){if(typeof tt=="function")return tt;if(tt!=null)return V$3.toVector(tt)},transform(tt,et,nt){const rt=tt||nt.shared.transform;return this.hasCustomTransform=!!rt,rt||identity$c},threshold(tt){return V$3.toVector(tt,0)}},DEFAULT_AXIS_THRESHOLD=0,coordinatesConfigResolver=_objectSpread2$2(_objectSpread2$2({},commonConfigResolver),{},{axis(tt,et,{axis:nt}){if(this.lockDirection=nt==="lock",!this.lockDirection)return nt},axisThreshold(tt=DEFAULT_AXIS_THRESHOLD){return tt},bounds(tt={}){if(typeof tt=="function")return ot=>coordinatesConfigResolver.bounds(tt(ot));if("current"in tt)return()=>tt.current;if(typeof HTMLElement=="function"&&tt instanceof HTMLElement)return tt;const{left:et=-1/0,right:nt=1/0,top:rt=-1/0,bottom:it=1/0}=tt;return[[et,nt],[rt,it]]}}),KEYS_DELTA_MAP={ArrowRight:(tt,et=1)=>[tt*et,0],ArrowLeft:(tt,et=1)=>[-1*tt*et,0],ArrowUp:(tt,et=1)=>[0,-1*tt*et],ArrowDown:(tt,et=1)=>[0,tt*et]};class DragEngine extends CoordinatesEngine{constructor(...et){super(...et),_defineProperty$y(this,"ingKey","dragging")}reset(){super.reset();const et=this.state;et._pointerId=void 0,et._pointerActive=!1,et._keyboardActive=!1,et._preventScroll=!1,et._delayed=!1,et.swipe=[0,0],et.tap=!1,et.canceled=!1,et.cancel=this.cancel.bind(this)}setup(){const et=this.state;if(et._bounds instanceof HTMLElement){const nt=et._bounds.getBoundingClientRect(),rt=et.currentTarget.getBoundingClientRect(),it={left:nt.left-rt.left+et.offset[0],right:nt.right-rt.right+et.offset[0],top:nt.top-rt.top+et.offset[1],bottom:nt.bottom-rt.bottom+et.offset[1]};et._bounds=coordinatesConfigResolver.bounds(it)}}cancel(){const et=this.state;et.canceled||(et.canceled=!0,et._active=!1,setTimeout(()=>{this.compute(),this.emit()},0))}setActive(){this.state._active=this.state._pointerActive||this.state._keyboardActive}clean(){this.pointerClean(),this.state._pointerActive=!1,this.state._keyboardActive=!1,super.clean()}pointerDown(et){const nt=this.config,rt=this.state;if(et.buttons!=null&&(Array.isArray(nt.pointerButtons)?!nt.pointerButtons.includes(et.buttons):nt.pointerButtons!==-1&&nt.pointerButtons!==et.buttons))return;const it=this.ctrl.setEventIds(et);nt.pointerCapture&&et.target.setPointerCapture(et.pointerId),!(it&&it.size>1&&rt._pointerActive)&&(this.start(et),this.setupPointer(et),rt._pointerId=pointerId(et),rt._pointerActive=!0,this.computeValues(pointerValues(et)),this.computeInitial(),nt.preventScrollAxis&&getPointerType(et)!=="mouse"?(rt._active=!1,this.setupScrollPrevention(et)):nt.delay>0?(this.setupDelayTrigger(et),nt.triggerAllEvents&&(this.compute(et),this.emit())):this.startPointerDrag(et))}startPointerDrag(et){const nt=this.state;nt._active=!0,nt._preventScroll=!0,nt._delayed=!1,this.compute(et),this.emit()}pointerMove(et){const nt=this.state,rt=this.config;if(!nt._pointerActive)return;const it=pointerId(et);if(nt._pointerId!==void 0&&it!==nt._pointerId)return;const ot=pointerValues(et);if(document.pointerLockElement===et.target?nt._delta=[et.movementX,et.movementY]:(nt._delta=V$3.sub(ot,nt._values),this.computeValues(ot)),V$3.addTo(nt._movement,nt._delta),this.compute(et),nt._delayed&&nt.intentional){this.timeoutStore.remove("dragDelay"),nt.active=!1,this.startPointerDrag(et);return}if(rt.preventScrollAxis&&!nt._preventScroll)if(nt.axis)if(nt.axis===rt.preventScrollAxis||rt.preventScrollAxis==="xy"){nt._active=!1,this.clean();return}else{this.timeoutStore.remove("startPointerDrag"),this.startPointerDrag(et);return}else return;this.emit()}pointerUp(et){this.ctrl.setEventIds(et);try{this.config.pointerCapture&&et.target.hasPointerCapture(et.pointerId)&&et.target.releasePointerCapture(et.pointerId)}catch{}const nt=this.state,rt=this.config;if(!nt._active||!nt._pointerActive)return;const it=pointerId(et);if(nt._pointerId!==void 0&&it!==nt._pointerId)return;this.state._pointerActive=!1,this.setActive(),this.compute(et);const[ot,at]=nt._distance;if(nt.tap=ot<=rt.tapsThreshold&&at<=rt.tapsThreshold,nt.tap&&rt.filterTaps)nt._force=!0;else{const[st,lt]=nt._delta,[ct,ut]=nt._movement,[ht,dt]=rt.swipe.velocity,[pt,mt]=rt.swipe.distance,gt=rt.swipe.duration;if(nt.elapsedTimeht&&Math.abs(ct)>pt&&(nt.swipe[0]=Math.sign(st)),bt>dt&&Math.abs(ut)>mt&&(nt.swipe[1]=Math.sign(lt))}}this.emit()}pointerClick(et){!this.state.tap&&et.detail>0&&(et.preventDefault(),et.stopPropagation())}setupPointer(et){const nt=this.config,rt=nt.device;nt.pointerLock&&et.currentTarget.requestPointerLock(),nt.pointerCapture||(this.eventStore.add(this.sharedConfig.window,rt,"change",this.pointerMove.bind(this)),this.eventStore.add(this.sharedConfig.window,rt,"end",this.pointerUp.bind(this)),this.eventStore.add(this.sharedConfig.window,rt,"cancel",this.pointerUp.bind(this)))}pointerClean(){this.config.pointerLock&&document.pointerLockElement===this.state.currentTarget&&document.exitPointerLock()}preventScroll(et){this.state._preventScroll&&et.cancelable&&et.preventDefault()}setupScrollPrevention(et){this.state._preventScroll=!1,persistEvent(et);const nt=this.eventStore.add(this.sharedConfig.window,"touch","change",this.preventScroll.bind(this),{passive:!1});this.eventStore.add(this.sharedConfig.window,"touch","end",nt),this.eventStore.add(this.sharedConfig.window,"touch","cancel",nt),this.timeoutStore.add("startPointerDrag",this.startPointerDrag.bind(this),this.config.preventScrollDelay,et)}setupDelayTrigger(et){this.state._delayed=!0,this.timeoutStore.add("dragDelay",()=>{this.state._step=[0,0],this.startPointerDrag(et)},this.config.delay)}keyDown(et){const nt=KEYS_DELTA_MAP[et.key];if(nt){const rt=this.state,it=et.shiftKey?10:et.altKey?.1:1;this.start(et),rt._delta=nt(this.config.keyboardDisplacement,it),rt._keyboardActive=!0,V$3.addTo(rt._movement,rt._delta),this.compute(et),this.emit()}}keyUp(et){et.key in KEYS_DELTA_MAP&&(this.state._keyboardActive=!1,this.setActive(),this.compute(et),this.emit())}bind(et){const nt=this.config.device;et(nt,"start",this.pointerDown.bind(this)),this.config.pointerCapture&&(et(nt,"change",this.pointerMove.bind(this)),et(nt,"end",this.pointerUp.bind(this)),et(nt,"cancel",this.pointerUp.bind(this)),et("lostPointerCapture","",this.pointerUp.bind(this))),this.config.keys&&(et("key","down",this.keyDown.bind(this)),et("key","up",this.keyUp.bind(this))),this.config.filterTaps&&et("click","",this.pointerClick.bind(this),{capture:!0,passive:!1})}}function persistEvent(tt){"persist"in tt&&typeof tt.persist=="function"&&tt.persist()}const isBrowser$2=typeof window<"u"&&window.document&&window.document.createElement;function supportsTouchEvents(){return isBrowser$2&&"ontouchstart"in window}function isTouchScreen(){return supportsTouchEvents()||isBrowser$2&&window.navigator.maxTouchPoints>1}function supportsPointerEvents(){return isBrowser$2&&"onpointerdown"in window}function supportsPointerLock(){return isBrowser$2&&"exitPointerLock"in window.document}function supportsGestureEvents(){try{return"constructor"in GestureEvent}catch{return!1}}const SUPPORT={isBrowser:isBrowser$2,gesture:supportsGestureEvents(),touch:isTouchScreen(),touchscreen:isTouchScreen(),pointer:supportsPointerEvents(),pointerLock:supportsPointerLock()},DEFAULT_PREVENT_SCROLL_DELAY=250,DEFAULT_DRAG_DELAY=180,DEFAULT_SWIPE_VELOCITY=.5,DEFAULT_SWIPE_DISTANCE=50,DEFAULT_SWIPE_DURATION=250,DEFAULT_KEYBOARD_DISPLACEMENT=10,DEFAULT_DRAG_AXIS_THRESHOLD={mouse:0,touch:0,pen:8},dragConfigResolver=_objectSpread2$2(_objectSpread2$2({},coordinatesConfigResolver),{},{device(tt,et,{pointer:{touch:nt=!1,lock:rt=!1,mouse:it=!1}={}}){return this.pointerLock=rt&&SUPPORT.pointerLock,SUPPORT.touch&&nt?"touch":this.pointerLock?"mouse":SUPPORT.pointer&&!it?"pointer":SUPPORT.touch?"touch":"mouse"},preventScrollAxis(tt,et,{preventScroll:nt}){if(this.preventScrollDelay=typeof nt=="number"?nt:nt||nt===void 0&&tt?DEFAULT_PREVENT_SCROLL_DELAY:void 0,!(!SUPPORT.touchscreen||nt===!1))return tt||(nt!==void 0?"y":void 0)},pointerCapture(tt,et,{pointer:{capture:nt=!0,buttons:rt=1,keys:it=!0}={}}){return this.pointerButtons=rt,this.keys=it,!this.pointerLock&&this.device==="pointer"&&nt},threshold(tt,et,{filterTaps:nt=!1,tapsThreshold:rt=3,axis:it=void 0}){const ot=V$3.toVector(tt,nt?rt:it?1:0);return this.filterTaps=nt,this.tapsThreshold=rt,ot},swipe({velocity:tt=DEFAULT_SWIPE_VELOCITY,distance:et=DEFAULT_SWIPE_DISTANCE,duration:nt=DEFAULT_SWIPE_DURATION}={}){return{velocity:this.transform(V$3.toVector(tt)),distance:this.transform(V$3.toVector(et)),duration:nt}},delay(tt=0){switch(tt){case!0:return DEFAULT_DRAG_DELAY;case!1:return 0;default:return tt}},axisThreshold(tt){return tt?_objectSpread2$2(_objectSpread2$2({},DEFAULT_DRAG_AXIS_THRESHOLD),tt):DEFAULT_DRAG_AXIS_THRESHOLD},keyboardDisplacement(tt=DEFAULT_KEYBOARD_DISPLACEMENT){return tt}});_objectSpread2$2(_objectSpread2$2({},commonConfigResolver),{},{device(tt,et,{shared:nt,pointer:{touch:rt=!1}={}}){if(nt.target&&!SUPPORT.touch&&SUPPORT.gesture)return"gesture";if(SUPPORT.touch&&rt)return"touch";if(SUPPORT.touchscreen){if(SUPPORT.pointer)return"pointer";if(SUPPORT.touch)return"touch"}},bounds(tt,et,{scaleBounds:nt={},angleBounds:rt={}}){const it=at=>{const st=assignDefault(call$1(nt,at),{min:-1/0,max:1/0});return[st.min,st.max]},ot=at=>{const st=assignDefault(call$1(rt,at),{min:-1/0,max:1/0});return[st.min,st.max]};return typeof nt!="function"&&typeof rt!="function"?[it(),ot()]:at=>[it(at),ot(at)]},threshold(tt,et,nt){return this.lockDirection=nt.axis==="lock",V$3.toVector(tt,this.lockDirection?[.1,3]:0)},modifierKey(tt){return tt===void 0?"ctrlKey":tt},pinchOnWheel(tt=!0){return tt}});_objectSpread2$2(_objectSpread2$2({},coordinatesConfigResolver),{},{mouseOnly:(tt=!0)=>tt});_objectSpread2$2(_objectSpread2$2({},coordinatesConfigResolver),{},{mouseOnly:(tt=!0)=>tt});const EngineMap=new Map,ConfigResolverMap=new Map;function registerAction(tt){EngineMap.set(tt.key,tt.engine),ConfigResolverMap.set(tt.key,tt.resolver)}const dragAction={key:"drag",engine:DragEngine,resolver:dragConfigResolver};function _objectWithoutPropertiesLoose$j(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _objectWithoutProperties$g(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$j(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}const sharedConfigResolver={target(tt){if(tt)return()=>"current"in tt?tt.current:tt},enabled(tt=!0){return tt},window(tt=SUPPORT.isBrowser?window:void 0){return tt},eventOptions({passive:tt=!0,capture:et=!1}={}){return{passive:tt,capture:et}},transform(tt){return tt}},_excluded$1F=["target","eventOptions","window","enabled","transform"];function resolveWith(tt={},et){const nt={};for(const[rt,it]of Object.entries(et))switch(typeof it){case"function":nt[rt]=it.call(nt,tt[rt],rt,tt);break;case"object":nt[rt]=resolveWith(tt[rt],it);break;case"boolean":it&&(nt[rt]=tt[rt]);break}return nt}function parse$5(tt,et,nt={}){const rt=tt,{target:it,eventOptions:ot,window:at,enabled:st,transform:lt}=rt,ct=_objectWithoutProperties$g(rt,_excluded$1F);if(nt.shared=resolveWith({target:it,eventOptions:ot,window:at,enabled:st,transform:lt},sharedConfigResolver),et){const ut=ConfigResolverMap.get(et);nt[et]=resolveWith(_objectSpread2$2({shared:nt.shared},ct),ut)}else for(const ut in ct){const ht=ConfigResolverMap.get(ut);ht&&(nt[ut]=resolveWith(_objectSpread2$2({shared:nt.shared},ct[ut]),ht))}return nt}class EventStore{constructor(et,nt){_defineProperty$y(this,"_listeners",new Set),this._ctrl=et,this._gestureKey=nt}add(et,nt,rt,it,ot){const at=this._listeners,st=toDomEventType(nt,rt),lt=this._gestureKey?this._ctrl.config[this._gestureKey].eventOptions:{},ct=_objectSpread2$2(_objectSpread2$2({},lt),ot);et.addEventListener(st,it,ct);const ut=()=>{et.removeEventListener(st,it,ct),at.delete(ut)};return at.add(ut),ut}clean(){this._listeners.forEach(et=>et()),this._listeners.clear()}}class TimeoutStore{constructor(){_defineProperty$y(this,"_timeouts",new Map)}add(et,nt,rt=140,...it){this.remove(et),this._timeouts.set(et,window.setTimeout(nt,rt,...it))}remove(et){const nt=this._timeouts.get(et);nt&&window.clearTimeout(nt)}clean(){this._timeouts.forEach(et=>void window.clearTimeout(et)),this._timeouts.clear()}}let Controller$1=class{constructor(et){_defineProperty$y(this,"gestures",new Set),_defineProperty$y(this,"_targetEventStore",new EventStore(this)),_defineProperty$y(this,"gestureEventStores",{}),_defineProperty$y(this,"gestureTimeoutStores",{}),_defineProperty$y(this,"handlers",{}),_defineProperty$y(this,"config",{}),_defineProperty$y(this,"pointerIds",new Set),_defineProperty$y(this,"touchIds",new Set),_defineProperty$y(this,"state",{shared:{shiftKey:!1,metaKey:!1,ctrlKey:!1,altKey:!1}}),resolveGestures(this,et)}setEventIds(et){if(isTouch$1(et))return this.touchIds=new Set(touchIds(et)),this.touchIds;if("pointerId"in et)return et.type==="pointerup"||et.type==="pointercancel"?this.pointerIds.delete(et.pointerId):et.type==="pointerdown"&&this.pointerIds.add(et.pointerId),this.pointerIds}applyHandlers(et,nt){this.handlers=et,this.nativeHandlers=nt}applyConfig(et,nt){this.config=parse$5(et,nt,this.config)}clean(){this._targetEventStore.clean();for(const et of this.gestures)this.gestureEventStores[et].clean(),this.gestureTimeoutStores[et].clean()}effect(){return this.config.shared.target&&this.bind(),()=>this._targetEventStore.clean()}bind(...et){const nt=this.config.shared,rt={};let it;if(!(nt.target&&(it=nt.target(),!it))){if(nt.enabled){for(const at of this.gestures){const st=this.config[at],lt=bindToProps(rt,st.eventOptions,!!it);if(st.enabled){const ct=EngineMap.get(at);new ct(this,et,at).bind(lt)}}const ot=bindToProps(rt,nt.eventOptions,!!it);for(const at in this.nativeHandlers)ot(at,"",st=>this.nativeHandlers[at](_objectSpread2$2(_objectSpread2$2({},this.state.shared),{},{event:st,args:et})),void 0,!0)}for(const ot in rt)rt[ot]=chain(...rt[ot]);if(!it)return rt;for(const ot in rt){const{device:at,capture:st,passive:lt}=parseProp(ot);this._targetEventStore.add(it,at,"",rt[ot],{capture:st,passive:lt})}}}};function setupGesture(tt,et){tt.gestures.add(et),tt.gestureEventStores[et]=new EventStore(tt,et),tt.gestureTimeoutStores[et]=new TimeoutStore}function resolveGestures(tt,et){et.drag&&setupGesture(tt,"drag"),et.wheel&&setupGesture(tt,"wheel"),et.scroll&&setupGesture(tt,"scroll"),et.move&&setupGesture(tt,"move"),et.pinch&&setupGesture(tt,"pinch"),et.hover&&setupGesture(tt,"hover")}const bindToProps=(tt,et,nt)=>(rt,it,ot,at={},st=!1)=>{var lt,ct;const ut=(lt=at.capture)!==null&<!==void 0?lt:et.capture,ht=(ct=at.passive)!==null&&ct!==void 0?ct:et.passive;let dt=st?rt:toHandlerProp(rt,it,ut);nt&&ht&&(dt+="Passive"),tt[dt]=tt[dt]||[],tt[dt].push(ot)};function useRecognizers(tt,et={},nt,rt){const it=React$1.useMemo(()=>new Controller$1(tt),[]);if(it.applyHandlers(tt,rt),it.applyConfig(et,nt),React$1.useEffect(it.effect.bind(it)),React$1.useEffect(()=>it.clean.bind(it),[]),et.target===void 0)return it.bind.bind(it)}function useDrag$1(tt,et){return registerAction(dragAction),useRecognizers({drag:tt},et||{},"drag")}function $e42e1063c40fb3ef$export$b9ecd428b558ff10(tt,et,{checkForDefaultPrevented:nt=!0}={}){return function(it){if(tt==null||tt(it),nt===!1||!it.defaultPrevented)return et==null?void 0:et(it)}}function $c512c27ab02ef895$export$50c7b4e9d9f19c1(tt,et=[]){let nt=[];function rt(ot,at){const st=reactExports.createContext(at),lt=nt.length;nt=[...nt,at];function ct(ht){const{scope:dt,children:pt,...mt}=ht,gt=(dt==null?void 0:dt[tt][lt])||st,yt=reactExports.useMemo(()=>mt,Object.values(mt));return reactExports.createElement(gt.Provider,{value:yt},pt)}function ut(ht,dt){const pt=(dt==null?void 0:dt[tt][lt])||st,mt=reactExports.useContext(pt);if(mt)return mt;if(at!==void 0)return at;throw new Error(`\`${ht}\` must be used within \`${ot}\``)}return ct.displayName=ot+"Provider",[ct,ut]}const it=()=>{const ot=nt.map(at=>reactExports.createContext(at));return function(st){const lt=(st==null?void 0:st[tt])||ot;return reactExports.useMemo(()=>({[`__scope${tt}`]:{...st,[tt]:lt}}),[st,lt])}};return it.scopeName=tt,[rt,$c512c27ab02ef895$var$composeContextScopes(it,...et)]}function $c512c27ab02ef895$var$composeContextScopes(...tt){const et=tt[0];if(tt.length===1)return et;const nt=()=>{const rt=tt.map(it=>({useScope:it(),scopeName:it.scopeName}));return function(ot){const at=rt.reduce((st,{useScope:lt,scopeName:ct})=>{const ht=lt(ot)[`__scope${ct}`];return{...st,...ht}},{});return reactExports.useMemo(()=>({[`__scope${et.scopeName}`]:at}),[at])}};return nt.scopeName=et.scopeName,nt}function $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(tt){const et=reactExports.useRef(tt);return reactExports.useEffect(()=>{et.current=tt}),reactExports.useMemo(()=>(...nt)=>{var rt;return(rt=et.current)===null||rt===void 0?void 0:rt.call(et,...nt)},[])}function $addc16e1bbe58fd0$export$3a72a57244d6e765(tt,et=globalThis==null?void 0:globalThis.document){const nt=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(tt);reactExports.useEffect(()=>{const rt=it=>{it.key==="Escape"&&nt(it)};return et.addEventListener("keydown",rt),()=>et.removeEventListener("keydown",rt)},[nt,et])}const $5cb92bef7577960e$var$CONTEXT_UPDATE="dismissableLayer.update",$5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",$5cb92bef7577960e$var$FOCUS_OUTSIDE="dismissableLayer.focusOutside";let $5cb92bef7577960e$var$originalBodyPointerEvents;const $5cb92bef7577960e$var$DismissableLayerContext=reactExports.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),$5cb92bef7577960e$export$177fb62ff3ec1f22=reactExports.forwardRef((tt,et)=>{var nt;const{disableOutsidePointerEvents:rt=!1,onEscapeKeyDown:it,onPointerDownOutside:ot,onFocusOutside:at,onInteractOutside:st,onDismiss:lt,...ct}=tt,ut=reactExports.useContext($5cb92bef7577960e$var$DismissableLayerContext),[ht,dt]=reactExports.useState(null),pt=(nt=ht==null?void 0:ht.ownerDocument)!==null&&nt!==void 0?nt:globalThis==null?void 0:globalThis.document,[,mt]=reactExports.useState({}),gt=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(et,Tt=>dt(Tt)),yt=Array.from(ut.layers),[bt]=[...ut.layersWithOutsidePointerEventsDisabled].slice(-1),wt=yt.indexOf(bt),vt=ht?yt.indexOf(ht):-1,kt=ut.layersWithOutsidePointerEventsDisabled.size>0,St=vt>=wt,Et=$5cb92bef7577960e$var$usePointerDownOutside(Tt=>{const Mt=Tt.target,Lt=[...ut.branches].some(jt=>jt.contains(Mt));!St||Lt||(ot==null||ot(Tt),st==null||st(Tt),Tt.defaultPrevented||lt==null||lt())},pt),At=$5cb92bef7577960e$var$useFocusOutside(Tt=>{const Mt=Tt.target;[...ut.branches].some(jt=>jt.contains(Mt))||(at==null||at(Tt),st==null||st(Tt),Tt.defaultPrevented||lt==null||lt())},pt);return $addc16e1bbe58fd0$export$3a72a57244d6e765(Tt=>{vt===ut.layers.size-1&&(it==null||it(Tt),!Tt.defaultPrevented&<&&(Tt.preventDefault(),lt()))},pt),reactExports.useEffect(()=>{if(ht)return rt&&(ut.layersWithOutsidePointerEventsDisabled.size===0&&($5cb92bef7577960e$var$originalBodyPointerEvents=pt.body.style.pointerEvents,pt.body.style.pointerEvents="none"),ut.layersWithOutsidePointerEventsDisabled.add(ht)),ut.layers.add(ht),$5cb92bef7577960e$var$dispatchUpdate(),()=>{rt&&ut.layersWithOutsidePointerEventsDisabled.size===1&&(pt.body.style.pointerEvents=$5cb92bef7577960e$var$originalBodyPointerEvents)}},[ht,pt,rt,ut]),reactExports.useEffect(()=>()=>{ht&&(ut.layers.delete(ht),ut.layersWithOutsidePointerEventsDisabled.delete(ht),$5cb92bef7577960e$var$dispatchUpdate())},[ht,ut]),reactExports.useEffect(()=>{const Tt=()=>mt({});return document.addEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE,Tt),()=>document.removeEventListener($5cb92bef7577960e$var$CONTEXT_UPDATE,Tt)},[]),reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div,_extends$r({},ct,{ref:gt,style:{pointerEvents:kt?St?"auto":"none":void 0,...tt.style},onFocusCapture:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onFocusCapture,At.onFocusCapture),onBlurCapture:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onBlurCapture,At.onBlurCapture),onPointerDownCapture:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onPointerDownCapture,Et.onPointerDownCapture)}))});function $5cb92bef7577960e$var$usePointerDownOutside(tt,et=globalThis==null?void 0:globalThis.document){const nt=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(tt),rt=reactExports.useRef(!1),it=reactExports.useRef(()=>{});return reactExports.useEffect(()=>{const ot=st=>{if(st.target&&!rt.current){let ut=function(){$5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$POINTER_DOWN_OUTSIDE,nt,ct,{discrete:!0})};var lt=ut;const ct={originalEvent:st};st.pointerType==="touch"?(et.removeEventListener("click",it.current),it.current=ut,et.addEventListener("click",it.current,{once:!0})):ut()}rt.current=!1},at=window.setTimeout(()=>{et.addEventListener("pointerdown",ot)},0);return()=>{window.clearTimeout(at),et.removeEventListener("pointerdown",ot),et.removeEventListener("click",it.current)}},[et,nt]),{onPointerDownCapture:()=>rt.current=!0}}function $5cb92bef7577960e$var$useFocusOutside(tt,et=globalThis==null?void 0:globalThis.document){const nt=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(tt),rt=reactExports.useRef(!1);return reactExports.useEffect(()=>{const it=ot=>{ot.target&&!rt.current&&$5cb92bef7577960e$var$handleAndDispatchCustomEvent($5cb92bef7577960e$var$FOCUS_OUTSIDE,nt,{originalEvent:ot},{discrete:!1})};return et.addEventListener("focusin",it),()=>et.removeEventListener("focusin",it)},[et,nt]),{onFocusCapture:()=>rt.current=!0,onBlurCapture:()=>rt.current=!1}}function $5cb92bef7577960e$var$dispatchUpdate(){const tt=new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);document.dispatchEvent(tt)}function $5cb92bef7577960e$var$handleAndDispatchCustomEvent(tt,et,nt,{discrete:rt}){const it=nt.originalEvent.target,ot=new CustomEvent(tt,{bubbles:!1,cancelable:!0,detail:nt});et&&it.addEventListener(tt,et,{once:!0}),rt?$8927f6f2acc4f386$export$6d1a0317bde7de7f(it,ot):it.dispatchEvent(ot)}const $9f79659886946c16$export$e5c5a5f917a5871c=globalThis!=null&&globalThis.document?reactExports.useLayoutEffect:()=>{},$1746a345f3d73bb7$var$useReactId=React$2["useId".toString()]||(()=>{});let $1746a345f3d73bb7$var$count=0;function $1746a345f3d73bb7$export$f680877a34711e37(tt){const[et,nt]=reactExports.useState($1746a345f3d73bb7$var$useReactId());return $9f79659886946c16$export$e5c5a5f917a5871c(()=>{tt||nt(rt=>rt??String($1746a345f3d73bb7$var$count++))},[tt]),tt||(et?`radix-${et}`:"")}function t$7(tt){return tt.split("-")[1]}function e$6(tt){return tt==="y"?"height":"width"}function n$8(tt){return tt.split("-")[0]}function o$3(tt){return["top","bottom"].includes(n$8(tt))?"x":"y"}function i$8(tt,et,nt){let{reference:rt,floating:it}=tt;const ot=rt.x+rt.width/2-it.width/2,at=rt.y+rt.height/2-it.height/2,st=o$3(et),lt=e$6(st),ct=rt[lt]/2-it[lt]/2,ut=st==="x";let ht;switch(n$8(et)){case"top":ht={x:ot,y:rt.y-it.height};break;case"bottom":ht={x:ot,y:rt.y+rt.height};break;case"right":ht={x:rt.x+rt.width,y:at};break;case"left":ht={x:rt.x-it.width,y:at};break;default:ht={x:rt.x,y:rt.y}}switch(t$7(et)){case"start":ht[st]-=ct*(nt&&ut?-1:1);break;case"end":ht[st]+=ct*(nt&&ut?-1:1)}return ht}const r$9=async(tt,et,nt)=>{const{placement:rt="bottom",strategy:it="absolute",middleware:ot=[],platform:at}=nt,st=ot.filter(Boolean),lt=await(at.isRTL==null?void 0:at.isRTL(et));let ct=await at.getElementRects({reference:tt,floating:et,strategy:it}),{x:ut,y:ht}=i$8(ct,rt,lt),dt=rt,pt={},mt=0;for(let gt=0;gt({name:"arrow",options:tt,async fn(et){const{x:nt,y:rt,placement:it,rects:ot,platform:at,elements:st}=et,{element:lt,padding:ct=0}=a$5(tt,et)||{};if(lt==null)return{};const ut=l$7(ct),ht={x:nt,y:rt},dt=o$3(it),pt=e$6(dt),mt=await at.getDimensions(lt),gt=dt==="y",yt=gt?"top":"left",bt=gt?"bottom":"right",wt=gt?"clientHeight":"clientWidth",vt=ot.reference[pt]+ot.reference[dt]-ht[dt]-ot.floating[pt],kt=ht[dt]-ot.reference[dt],St=await(at.getOffsetParent==null?void 0:at.getOffsetParent(lt));let Et=St?St[wt]:0;Et&&await(at.isElement==null?void 0:at.isElement(St))||(Et=st.floating[wt]||ot.floating[pt]);const At=vt/2-kt/2,Tt=Et/2-mt[pt]/2-1,Mt=f$9(ut[yt],Tt),Lt=f$9(ut[bt],Tt),jt=Mt,Rt=Et-mt[pt]-Lt,$t=Et/2-mt[pt]/2+At,xt=u$7(jt,$t,Rt),It=t$7(it)!=null&&$t!=xt&&ot.reference[pt]/2-($ttt.concat(et,et+"-start",et+"-end"),[]);const h$b={left:"right",right:"left",bottom:"top",top:"bottom"};function y$9(tt){return tt.replace(/left|right|bottom|top/g,et=>h$b[et])}function x$9(tt,et,nt){nt===void 0&&(nt=!1);const rt=t$7(tt),it=o$3(tt),ot=e$6(it);let at=it==="x"?rt===(nt?"end":"start")?"right":"left":rt==="start"?"bottom":"top";return et.reference[ot]>et.floating[ot]&&(at=y$9(at)),{main:at,cross:y$9(at)}}const w$7={start:"end",end:"start"};function v$a(tt){return tt.replace(/start|end/g,et=>w$7[et])}const A$3=function(tt){return tt===void 0&&(tt={}),{name:"flip",options:tt,async fn(et){var nt;const{placement:rt,middlewareData:it,rects:ot,initialPlacement:at,platform:st,elements:lt}=et,{mainAxis:ct=!0,crossAxis:ut=!0,fallbackPlacements:ht,fallbackStrategy:dt="bestFit",fallbackAxisSideDirection:pt="none",flipAlignment:mt=!0,...gt}=a$5(tt,et),yt=n$8(rt),bt=n$8(at)===at,wt=await(st.isRTL==null?void 0:st.isRTL(lt.floating)),vt=ht||(bt||!mt?[y$9(at)]:function(jt){const Rt=y$9(jt);return[v$a(jt),Rt,v$a(Rt)]}(at));ht||pt==="none"||vt.push(...function(jt,Rt,$t,xt){const It=t$7(jt);let Ot=function(zt,Ut,Wt){const Ft=["left","right"],Nt=["right","left"],Ct=["top","bottom"],Ht=["bottom","top"];switch(zt){case"top":case"bottom":return Wt?Ut?Nt:Ft:Ut?Ft:Nt;case"left":case"right":return Ut?Ct:Ht;default:return[]}}(n$8(jt),$t==="start",xt);return It&&(Ot=Ot.map(zt=>zt+"-"+It),Rt&&(Ot=Ot.concat(Ot.map(v$a)))),Ot}(at,mt,pt,wt));const kt=[at,...vt],St=await c$a(et,gt),Et=[];let At=((nt=it.flip)==null?void 0:nt.overflows)||[];if(ct&&Et.push(St[yt]),ut){const{main:jt,cross:Rt}=x$9(rt,ot,wt);Et.push(St[jt],St[Rt])}if(At=[...At,{placement:rt,overflows:Et}],!Et.every(jt=>jt<=0)){var Tt,Mt;const jt=(((Tt=it.flip)==null?void 0:Tt.index)||0)+1,Rt=kt[jt];if(Rt)return{data:{index:jt,overflows:At},reset:{placement:Rt}};let $t=(Mt=At.filter(xt=>xt.overflows[0]<=0).sort((xt,It)=>xt.overflows[1]-It.overflows[1])[0])==null?void 0:Mt.placement;if(!$t)switch(dt){case"bestFit":{var Lt;const xt=(Lt=At.map(It=>[It.placement,It.overflows.filter(Ot=>Ot>0).reduce((Ot,zt)=>Ot+zt,0)]).sort((It,Ot)=>It[1]-Ot[1])[0])==null?void 0:Lt[0];xt&&($t=xt);break}case"initialPlacement":$t=at}if(rt!==$t)return{reset:{placement:$t}}}return{}}}};function R$2(tt,et){return{top:tt.top-et.height,right:tt.right-et.width,bottom:tt.bottom-et.height,left:tt.left-et.width}}function P$4(tt){return d$7.some(et=>tt[et]>=0)}const E$2=function(tt){return tt===void 0&&(tt={}),{name:"hide",options:tt,async fn(et){const{rects:nt}=et,{strategy:rt="referenceHidden",...it}=a$5(tt,et);switch(rt){case"referenceHidden":{const ot=R$2(await c$a(et,{...it,elementContext:"reference"}),nt.reference);return{data:{referenceHiddenOffsets:ot,referenceHidden:P$4(ot)}}}case"escaped":{const ot=R$2(await c$a(et,{...it,altBoundary:!0}),nt.floating);return{data:{escapedOffsets:ot,escaped:P$4(ot)}}}default:return{}}}}},L$3=function(tt){return tt===void 0&&(tt=0),{name:"offset",options:tt,async fn(et){const{x:nt,y:rt}=et,it=await async function(ot,at){const{placement:st,platform:lt,elements:ct}=ot,ut=await(lt.isRTL==null?void 0:lt.isRTL(ct.floating)),ht=n$8(st),dt=t$7(st),pt=o$3(st)==="x",mt=["left","top"].includes(ht)?-1:1,gt=ut&&pt?-1:1,yt=a$5(at,ot);let{mainAxis:bt,crossAxis:wt,alignmentAxis:vt}=typeof yt=="number"?{mainAxis:yt,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...yt};return dt&&typeof vt=="number"&&(wt=dt==="end"?-1*vt:vt),pt?{x:wt*gt,y:bt*mt}:{x:bt*mt,y:wt*gt}}(et,tt);return{x:nt+it.x,y:rt+it.y,data:it}}}};function k$9(tt){return tt==="x"?"y":"x"}const O$1=function(tt){return tt===void 0&&(tt={}),{name:"shift",options:tt,async fn(et){const{x:nt,y:rt,placement:it}=et,{mainAxis:ot=!0,crossAxis:at=!1,limiter:st={fn:yt=>{let{x:bt,y:wt}=yt;return{x:bt,y:wt}}},...lt}=a$5(tt,et),ct={x:nt,y:rt},ut=await c$a(et,lt),ht=o$3(n$8(it)),dt=k$9(ht);let pt=ct[ht],mt=ct[dt];if(ot){const yt=ht==="y"?"bottom":"right";pt=u$7(pt+ut[ht==="y"?"top":"left"],pt,pt-ut[yt])}if(at){const yt=dt==="y"?"bottom":"right";mt=u$7(mt+ut[dt==="y"?"top":"left"],mt,mt-ut[yt])}const gt=st.fn({...et,[ht]:pt,[dt]:mt});return{...gt,data:{x:gt.x-nt,y:gt.y-rt}}}}},B$2=function(tt){return tt===void 0&&(tt={}),{options:tt,fn(et){const{x:nt,y:rt,placement:it,rects:ot,middlewareData:at}=et,{offset:st=0,mainAxis:lt=!0,crossAxis:ct=!0}=a$5(tt,et),ut={x:nt,y:rt},ht=o$3(it),dt=k$9(ht);let pt=ut[ht],mt=ut[dt];const gt=a$5(st,et),yt=typeof gt=="number"?{mainAxis:gt,crossAxis:0}:{mainAxis:0,crossAxis:0,...gt};if(lt){const vt=ht==="y"?"height":"width",kt=ot.reference[ht]-ot.floating[vt]+yt.mainAxis,St=ot.reference[ht]+ot.reference[vt]-yt.mainAxis;ptSt&&(pt=St)}if(ct){var bt,wt;const vt=ht==="y"?"width":"height",kt=["top","left"].includes(n$8(it)),St=ot.reference[dt]-ot.floating[vt]+(kt&&((bt=at.offset)==null?void 0:bt[dt])||0)+(kt?0:yt.crossAxis),Et=ot.reference[dt]+ot.reference[vt]+(kt?0:((wt=at.offset)==null?void 0:wt[dt])||0)-(kt?yt.crossAxis:0);mtEt&&(mt=Et)}return{[ht]:pt,[dt]:mt}}}},C$2=function(tt){return tt===void 0&&(tt={}),{name:"size",options:tt,async fn(et){const{placement:nt,rects:rt,platform:it,elements:ot}=et,{apply:at=()=>{},...st}=a$5(tt,et),lt=await c$a(et,st),ct=n$8(nt),ut=t$7(nt),ht=o$3(nt)==="x",{width:dt,height:pt}=rt.floating;let mt,gt;ct==="top"||ct==="bottom"?(mt=ct,gt=ut===(await(it.isRTL==null?void 0:it.isRTL(ot.floating))?"start":"end")?"left":"right"):(gt=ct,mt=ut==="end"?"top":"bottom");const yt=pt-lt[mt],bt=dt-lt[gt],wt=!et.middlewareData.shift;let vt=yt,kt=bt;if(ht){const Et=dt-lt.left-lt.right;kt=ut||wt?f$9(bt,Et):Et}else{const Et=pt-lt.top-lt.bottom;vt=ut||wt?f$9(yt,Et):Et}if(wt&&!ut){const Et=m$a(lt.left,0),At=m$a(lt.right,0),Tt=m$a(lt.top,0),Mt=m$a(lt.bottom,0);ht?kt=dt-2*(Et!==0||At!==0?Et+At:m$a(lt.left,lt.right)):vt=pt-2*(Tt!==0||Mt!==0?Tt+Mt:m$a(lt.top,lt.bottom))}await at({...et,availableWidth:kt,availableHeight:vt});const St=await it.getDimensions(ot.floating);return dt!==St.width||pt!==St.height?{reset:{rects:!0}}:{}}}};function n$7(tt){var et;return(tt==null||(et=tt.ownerDocument)==null?void 0:et.defaultView)||window}function o$2(tt){return n$7(tt).getComputedStyle(tt)}function i$7(tt){return tt instanceof n$7(tt).Node}function r$8(tt){return i$7(tt)?(tt.nodeName||"").toLowerCase():"#document"}function c$9(tt){return tt instanceof HTMLElement||tt instanceof n$7(tt).HTMLElement}function l$6(tt){return typeof ShadowRoot<"u"&&(tt instanceof n$7(tt).ShadowRoot||tt instanceof ShadowRoot)}function s$5(tt){const{overflow:et,overflowX:nt,overflowY:rt,display:it}=o$2(tt);return/auto|scroll|overlay|hidden|clip/.test(et+rt+nt)&&!["inline","contents"].includes(it)}function f$8(tt){return["table","td","th"].includes(r$8(tt))}function u$6(tt){const et=a$4(),nt=o$2(tt);return nt.transform!=="none"||nt.perspective!=="none"||!!nt.containerType&&nt.containerType!=="normal"||!et&&!!nt.backdropFilter&&nt.backdropFilter!=="none"||!et&&!!nt.filter&&nt.filter!=="none"||["transform","perspective","filter"].some(rt=>(nt.willChange||"").includes(rt))||["paint","layout","strict","content"].some(rt=>(nt.contain||"").includes(rt))}function a$4(){return!(typeof CSS>"u"||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function d$6(tt){return["html","body","#document"].includes(r$8(tt))}const h$a=Math.min,p$9=Math.max,m$9=Math.round,g$9=Math.floor,y$8=tt=>({x:tt,y:tt});function w$6(tt){const et=o$2(tt);let nt=parseFloat(et.width)||0,rt=parseFloat(et.height)||0;const it=c$9(tt),ot=it?tt.offsetWidth:nt,at=it?tt.offsetHeight:rt,st=m$9(nt)!==ot||m$9(rt)!==at;return st&&(nt=ot,rt=at),{width:nt,height:rt,$:st}}function x$8(tt){return tt instanceof Element||tt instanceof n$7(tt).Element}function v$9(tt){return x$8(tt)?tt:tt.contextElement}function b$7(tt){const et=v$9(tt);if(!c$9(et))return y$8(1);const nt=et.getBoundingClientRect(),{width:rt,height:it,$:ot}=w$6(et);let at=(ot?m$9(nt.width):nt.width)/rt,st=(ot?m$9(nt.height):nt.height)/it;return at&&Number.isFinite(at)||(at=1),st&&Number.isFinite(st)||(st=1),{x:at,y:st}}const L$2=y$8(0);function T$2(tt){const et=n$7(tt);return a$4()&&et.visualViewport?{x:et.visualViewport.offsetLeft,y:et.visualViewport.offsetTop}:L$2}function R$1(tt,et,nt,rt){et===void 0&&(et=!1),nt===void 0&&(nt=!1);const it=tt.getBoundingClientRect(),ot=v$9(tt);let at=y$8(1);et&&(rt?x$8(rt)&&(at=b$7(rt)):at=b$7(tt));const st=function(dt,pt,mt){return pt===void 0&&(pt=!1),!(!mt||pt&&mt!==n$7(dt))&&pt}(ot,nt,rt)?T$2(ot):y$8(0);let lt=(it.left+st.x)/at.x,ct=(it.top+st.y)/at.y,ut=it.width/at.x,ht=it.height/at.y;if(ot){const dt=n$7(ot),pt=rt&&x$8(rt)?n$7(rt):rt;let mt=dt.frameElement;for(;mt&&rt&&pt!==dt;){const gt=b$7(mt),yt=mt.getBoundingClientRect(),bt=getComputedStyle(mt),wt=yt.left+(mt.clientLeft+parseFloat(bt.paddingLeft))*gt.x,vt=yt.top+(mt.clientTop+parseFloat(bt.paddingTop))*gt.y;lt*=gt.x,ct*=gt.y,ut*=gt.x,ht*=gt.y,lt+=wt,ct+=vt,mt=n$7(mt).frameElement}}return s$6({width:ut,height:ht,x:lt,y:ct})}function E$1(tt){return x$8(tt)?{scrollLeft:tt.scrollLeft,scrollTop:tt.scrollTop}:{scrollLeft:tt.pageXOffset,scrollTop:tt.pageYOffset}}function S$3(tt){var et;return(et=(i$7(tt)?tt.ownerDocument:tt.document)||window.document)==null?void 0:et.documentElement}function C$1(tt){return R$1(S$3(tt)).left+E$1(tt).scrollLeft}function F$2(tt){if(r$8(tt)==="html")return tt;const et=tt.assignedSlot||tt.parentNode||l$6(tt)&&tt.host||S$3(tt);return l$6(et)?et.host:et}function O(tt){const et=F$2(tt);return d$6(et)?tt.ownerDocument?tt.ownerDocument.body:tt.body:c$9(et)&&s$5(et)?et:O(et)}function D$1(tt,et){var nt;et===void 0&&(et=[]);const rt=O(tt),it=rt===((nt=tt.ownerDocument)==null?void 0:nt.body),ot=n$7(rt);return it?et.concat(ot,ot.visualViewport||[],s$5(rt)?rt:[]):et.concat(rt,D$1(rt))}function H$2(tt,et,nt){let rt;if(et==="viewport")rt=function(it,ot){const at=n$7(it),st=S$3(it),lt=at.visualViewport;let ct=st.clientWidth,ut=st.clientHeight,ht=0,dt=0;if(lt){ct=lt.width,ut=lt.height;const pt=a$4();(!pt||pt&&ot==="fixed")&&(ht=lt.offsetLeft,dt=lt.offsetTop)}return{width:ct,height:ut,x:ht,y:dt}}(tt,nt);else if(et==="document")rt=function(it){const ot=S$3(it),at=E$1(it),st=it.ownerDocument.body,lt=p$9(ot.scrollWidth,ot.clientWidth,st.scrollWidth,st.clientWidth),ct=p$9(ot.scrollHeight,ot.clientHeight,st.scrollHeight,st.clientHeight);let ut=-at.scrollLeft+C$1(it);const ht=-at.scrollTop;return o$2(st).direction==="rtl"&&(ut+=p$9(ot.clientWidth,st.clientWidth)-lt),{width:lt,height:ct,x:ut,y:ht}}(S$3(tt));else if(x$8(et))rt=function(it,ot){const at=R$1(it,!0,ot==="fixed"),st=at.top+it.clientTop,lt=at.left+it.clientLeft,ct=c$9(it)?b$7(it):y$8(1);return{width:it.clientWidth*ct.x,height:it.clientHeight*ct.y,x:lt*ct.x,y:st*ct.y}}(et,nt);else{const it=T$2(tt);rt={...et,x:et.x-it.x,y:et.y-it.y}}return s$6(rt)}function W$7(tt,et){const nt=F$2(tt);return!(nt===et||!x$8(nt)||d$6(nt))&&(o$2(nt).position==="fixed"||W$7(nt,et))}function M$2(tt,et,nt){const rt=c$9(et),it=S$3(et),ot=nt==="fixed",at=R$1(tt,!0,ot,et);let st={scrollLeft:0,scrollTop:0};const lt=y$8(0);if(rt||!rt&&!ot)if((r$8(et)!=="body"||s$5(it))&&(st=E$1(et)),c$9(et)){const ct=R$1(et,!0,ot,et);lt.x=ct.x+et.clientLeft,lt.y=ct.y+et.clientTop}else it&&(lt.x=C$1(it));return{x:at.left+st.scrollLeft-lt.x,y:at.top+st.scrollTop-lt.y,width:at.width,height:at.height}}function z$6(tt,et){return c$9(tt)&&o$2(tt).position!=="fixed"?et?et(tt):tt.offsetParent:null}function P$3(tt,et){const nt=n$7(tt);if(!c$9(tt))return nt;let rt=z$6(tt,et);for(;rt&&f$8(rt)&&o$2(rt).position==="static";)rt=z$6(rt,et);return rt&&(r$8(rt)==="html"||r$8(rt)==="body"&&o$2(rt).position==="static"&&!u$6(rt))?nt:rt||function(it){let ot=F$2(it);for(;c$9(ot)&&!d$6(ot);){if(u$6(ot))return ot;ot=F$2(ot)}return null}(tt)||nt}const V$2={convertOffsetParentRelativeRectToViewportRelativeRect:function(tt){let{rect:et,offsetParent:nt,strategy:rt}=tt;const it=c$9(nt),ot=S$3(nt);if(nt===ot)return et;let at={scrollLeft:0,scrollTop:0},st=y$8(1);const lt=y$8(0);if((it||!it&&rt!=="fixed")&&((r$8(nt)!=="body"||s$5(ot))&&(at=E$1(nt)),c$9(nt))){const ct=R$1(nt);st=b$7(nt),lt.x=ct.x+nt.clientLeft,lt.y=ct.y+nt.clientTop}return{width:et.width*st.x,height:et.height*st.y,x:et.x*st.x-at.scrollLeft*st.x+lt.x,y:et.y*st.y-at.scrollTop*st.y+lt.y}},getDocumentElement:S$3,getClippingRect:function(tt){let{element:et,boundary:nt,rootBoundary:rt,strategy:it}=tt;const ot=[...nt==="clippingAncestors"?function(lt,ct){const ut=ct.get(lt);if(ut)return ut;let ht=D$1(lt).filter(gt=>x$8(gt)&&r$8(gt)!=="body"),dt=null;const pt=o$2(lt).position==="fixed";let mt=pt?F$2(lt):lt;for(;x$8(mt)&&!d$6(mt);){const gt=o$2(mt),yt=u$6(mt);yt||gt.position!=="fixed"||(dt=null),(pt?!yt&&!dt:!yt&>.position==="static"&&dt&&["absolute","fixed"].includes(dt.position)||s$5(mt)&&!yt&&W$7(lt,mt))?ht=ht.filter(bt=>bt!==mt):dt=gt,mt=F$2(mt)}return ct.set(lt,ht),ht}(et,this._c):[].concat(nt),rt],at=ot[0],st=ot.reduce((lt,ct)=>{const ut=H$2(et,ct,it);return lt.top=p$9(ut.top,lt.top),lt.right=h$a(ut.right,lt.right),lt.bottom=h$a(ut.bottom,lt.bottom),lt.left=p$9(ut.left,lt.left),lt},H$2(et,at,it));return{width:st.right-st.left,height:st.bottom-st.top,x:st.left,y:st.top}},getOffsetParent:P$3,getElementRects:async function(tt){let{reference:et,floating:nt,strategy:rt}=tt;const it=this.getOffsetParent||P$3,ot=this.getDimensions;return{reference:M$2(et,await it(nt),rt),floating:{x:0,y:0,...await ot(nt)}}},getClientRects:function(tt){return Array.from(tt.getClientRects())},getDimensions:function(tt){return w$6(tt)},getScale:b$7,isElement:x$8,isRTL:function(tt){return getComputedStyle(tt).direction==="rtl"}};function A$2(tt,et,nt,rt){rt===void 0&&(rt={});const{ancestorScroll:it=!0,ancestorResize:ot=!0,elementResize:at=typeof ResizeObserver=="function",layoutShift:st=typeof IntersectionObserver=="function",animationFrame:lt=!1}=rt,ct=v$9(tt),ut=it||ot?[...ct?D$1(ct):[],...D$1(et)]:[];ut.forEach(yt=>{it&&yt.addEventListener("scroll",nt,{passive:!0}),ot&&yt.addEventListener("resize",nt)});const ht=ct&&st?function(yt,bt){let wt,vt=null;const kt=S$3(yt);function St(){clearTimeout(wt),vt&&vt.disconnect(),vt=null}return function Et(At,Tt){At===void 0&&(At=!1),Tt===void 0&&(Tt=1),St();const{left:Mt,top:Lt,width:jt,height:Rt}=yt.getBoundingClientRect();if(At||bt(),!jt||!Rt)return;const $t={rootMargin:-g$9(Lt)+"px "+-g$9(kt.clientWidth-(Mt+jt))+"px "+-g$9(kt.clientHeight-(Lt+Rt))+"px "+-g$9(Mt)+"px",threshold:p$9(0,h$a(1,Tt))||1};let xt=!0;function It(Ot){const zt=Ot[0].intersectionRatio;if(zt!==Tt){if(!xt)return Et();zt?Et(!1,zt):wt=setTimeout(()=>{Et(!1,1e-7)},100)}xt=!1}try{vt=new IntersectionObserver(It,{...$t,root:kt.ownerDocument})}catch{vt=new IntersectionObserver(It,$t)}vt.observe(yt)}(!0),St}(ct,nt):null;let dt,pt=-1,mt=null;at&&(mt=new ResizeObserver(yt=>{let[bt]=yt;bt&&bt.target===ct&&mt&&(mt.unobserve(et),cancelAnimationFrame(pt),pt=requestAnimationFrame(()=>{mt&&mt.observe(et)})),nt()}),ct&&!lt&&mt.observe(ct),mt.observe(et));let gt=lt?R$1(tt):null;return lt&&function yt(){const bt=R$1(tt);!gt||bt.x===gt.x&&bt.y===gt.y&&bt.width===gt.width&&bt.height===gt.height||nt(),gt=bt,dt=requestAnimationFrame(yt)}(),nt(),()=>{ut.forEach(yt=>{it&&yt.removeEventListener("scroll",nt),ot&&yt.removeEventListener("resize",nt)}),ht&&ht(),mt&&mt.disconnect(),mt=null,lt&&cancelAnimationFrame(dt)}}const B$1=(tt,et,nt)=>{const rt=new Map,it={platform:V$2,...nt},ot={...it.platform,_c:rt};return r$9(tt,et,{...it,platform:ot})},arrow$2=tt=>{function et(nt){return{}.hasOwnProperty.call(nt,"current")}return{name:"arrow",options:tt,fn(nt){const{element:rt,padding:it}=typeof tt=="function"?tt(nt):tt;return rt&&et(rt)?rt.current!=null?g$a({element:rt.current,padding:it}).fn(nt):{}:rt?g$a({element:rt,padding:it}).fn(nt):{}}}};var index$2=typeof document<"u"?reactExports.useLayoutEffect:reactExports.useEffect;function deepEqual$3(tt,et){if(tt===et)return!0;if(typeof tt!=typeof et)return!1;if(typeof tt=="function"&&tt.toString()===et.toString())return!0;let nt,rt,it;if(tt&&et&&typeof tt=="object"){if(Array.isArray(tt)){if(nt=tt.length,nt!=et.length)return!1;for(rt=nt;rt--!==0;)if(!deepEqual$3(tt[rt],et[rt]))return!1;return!0}if(it=Object.keys(tt),nt=it.length,nt!==Object.keys(et).length)return!1;for(rt=nt;rt--!==0;)if(!{}.hasOwnProperty.call(et,it[rt]))return!1;for(rt=nt;rt--!==0;){const ot=it[rt];if(!(ot==="_owner"&&tt.$$typeof)&&!deepEqual$3(tt[ot],et[ot]))return!1}return!0}return tt!==tt&&et!==et}function getDPR(tt){return typeof window>"u"?1:(tt.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(tt,et){const nt=getDPR(tt);return Math.round(et*nt)/nt}function useLatestRef(tt){const et=reactExports.useRef(tt);return index$2(()=>{et.current=tt}),et}function useFloating(tt){tt===void 0&&(tt={});const{placement:et="bottom",strategy:nt="absolute",middleware:rt=[],platform:it,elements:{reference:ot,floating:at}={},transform:st=!0,whileElementsMounted:lt,open:ct}=tt,[ut,ht]=reactExports.useState({x:0,y:0,strategy:nt,placement:et,middlewareData:{},isPositioned:!1}),[dt,pt]=reactExports.useState(rt);deepEqual$3(dt,rt)||pt(rt);const[mt,gt]=reactExports.useState(null),[yt,bt]=reactExports.useState(null),wt=reactExports.useCallback(Ot=>{Ot!=Et.current&&(Et.current=Ot,gt(Ot))},[gt]),vt=reactExports.useCallback(Ot=>{Ot!==At.current&&(At.current=Ot,bt(Ot))},[bt]),kt=ot||mt,St=at||yt,Et=reactExports.useRef(null),At=reactExports.useRef(null),Tt=reactExports.useRef(ut),Mt=useLatestRef(lt),Lt=useLatestRef(it),jt=reactExports.useCallback(()=>{if(!Et.current||!At.current)return;const Ot={placement:et,strategy:nt,middleware:dt};Lt.current&&(Ot.platform=Lt.current),B$1(Et.current,At.current,Ot).then(zt=>{const Ut={...zt,isPositioned:!0};Rt.current&&!deepEqual$3(Tt.current,Ut)&&(Tt.current=Ut,reactDomExports.flushSync(()=>{ht(Ut)}))})},[dt,et,nt,Lt]);index$2(()=>{ct===!1&&Tt.current.isPositioned&&(Tt.current.isPositioned=!1,ht(Ot=>({...Ot,isPositioned:!1})))},[ct]);const Rt=reactExports.useRef(!1);index$2(()=>(Rt.current=!0,()=>{Rt.current=!1}),[]),index$2(()=>{if(kt&&(Et.current=kt),St&&(At.current=St),kt&&St){if(Mt.current)return Mt.current(kt,St,jt);jt()}},[kt,St,jt,Mt]);const $t=reactExports.useMemo(()=>({reference:Et,floating:At,setReference:wt,setFloating:vt}),[wt,vt]),xt=reactExports.useMemo(()=>({reference:kt,floating:St}),[kt,St]),It=reactExports.useMemo(()=>{const Ot={position:nt,left:0,top:0};if(!xt.floating)return Ot;const zt=roundByDPR(xt.floating,ut.x),Ut=roundByDPR(xt.floating,ut.y);return st?{...Ot,transform:"translate("+zt+"px, "+Ut+"px)",...getDPR(xt.floating)>=1.5&&{willChange:"transform"}}:{position:nt,left:zt,top:Ut}},[nt,st,xt.floating,ut.x,ut.y]);return reactExports.useMemo(()=>({...ut,update:jt,refs:$t,elements:xt,floatingStyles:It}),[ut,jt,$t,xt,It])}const $7e8f5cd07187803e$export$21b07c8f274aebd5=reactExports.forwardRef((tt,et)=>{const{children:nt,width:rt=10,height:it=5,...ot}=tt;return reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.svg,_extends$r({},ot,{ref:et,width:rt,height:it,viewBox:"0 0 30 10",preserveAspectRatio:"none"}),tt.asChild?nt:reactExports.createElement("polygon",{points:"0,0 30,0 15,10"}))}),$7e8f5cd07187803e$export$be92b6f5f03c0fe9=$7e8f5cd07187803e$export$21b07c8f274aebd5;function $db6c3485150b8e66$export$1ab7ae714698c4b8(tt){const[et,nt]=reactExports.useState(void 0);return $9f79659886946c16$export$e5c5a5f917a5871c(()=>{if(tt){nt({width:tt.offsetWidth,height:tt.offsetHeight});const rt=new ResizeObserver(it=>{if(!Array.isArray(it)||!it.length)return;const ot=it[0];let at,st;if("borderBoxSize"in ot){const lt=ot.borderBoxSize,ct=Array.isArray(lt)?lt[0]:lt;at=ct.inlineSize,st=ct.blockSize}else at=tt.offsetWidth,st=tt.offsetHeight;nt({width:at,height:st})});return rt.observe(tt,{box:"border-box"}),()=>rt.unobserve(tt)}else nt(void 0)},[tt]),et}const $cf1ac5d9fe0e8206$var$POPPER_NAME="Popper",[$cf1ac5d9fe0e8206$var$createPopperContext,$cf1ac5d9fe0e8206$export$722aac194ae923]=$c512c27ab02ef895$export$50c7b4e9d9f19c1($cf1ac5d9fe0e8206$var$POPPER_NAME),[$cf1ac5d9fe0e8206$var$PopperProvider,$cf1ac5d9fe0e8206$var$usePopperContext]=$cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$POPPER_NAME),$cf1ac5d9fe0e8206$export$badac9ada3a0bdf9=tt=>{const{__scopePopper:et,children:nt}=tt,[rt,it]=reactExports.useState(null);return reactExports.createElement($cf1ac5d9fe0e8206$var$PopperProvider,{scope:et,anchor:rt,onAnchorChange:it},nt)},$cf1ac5d9fe0e8206$var$ANCHOR_NAME="PopperAnchor",$cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d=reactExports.forwardRef((tt,et)=>{const{__scopePopper:nt,virtualRef:rt,...it}=tt,ot=$cf1ac5d9fe0e8206$var$usePopperContext($cf1ac5d9fe0e8206$var$ANCHOR_NAME,nt),at=reactExports.useRef(null),st=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(et,at);return reactExports.useEffect(()=>{ot.onAnchorChange((rt==null?void 0:rt.current)||at.current)}),rt?null:reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div,_extends$r({},it,{ref:st}))}),$cf1ac5d9fe0e8206$var$CONTENT_NAME="PopperContent",[$cf1ac5d9fe0e8206$var$PopperContentProvider,$cf1ac5d9fe0e8206$var$useContentContext]=$cf1ac5d9fe0e8206$var$createPopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME),$cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc=reactExports.forwardRef((tt,et)=>{var nt,rt,it,ot,at,st,lt,ct;const{__scopePopper:ut,side:ht="bottom",sideOffset:dt=0,align:pt="center",alignOffset:mt=0,arrowPadding:gt=0,collisionBoundary:yt=[],collisionPadding:bt=0,sticky:wt="partial",hideWhenDetached:vt=!1,avoidCollisions:kt=!0,onPlaced:St,...Et}=tt,At=$cf1ac5d9fe0e8206$var$usePopperContext($cf1ac5d9fe0e8206$var$CONTENT_NAME,ut),[Tt,Mt]=reactExports.useState(null),Lt=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(et,Rn=>Mt(Rn)),[jt,Rt]=reactExports.useState(null),$t=$db6c3485150b8e66$export$1ab7ae714698c4b8(jt),xt=(nt=$t==null?void 0:$t.width)!==null&&nt!==void 0?nt:0,It=(rt=$t==null?void 0:$t.height)!==null&&rt!==void 0?rt:0,Ot=ht+(pt!=="center"?"-"+pt:""),zt=typeof bt=="number"?bt:{top:0,right:0,bottom:0,left:0,...bt},Ut=Array.isArray(yt)?yt:[yt],Wt=Ut.length>0,Ft={padding:zt,boundary:Ut.filter($cf1ac5d9fe0e8206$var$isNotNull),altBoundary:Wt},{refs:Nt,floatingStyles:Ct,placement:Ht,isPositioned:Jt,middlewareData:nn}=useFloating({strategy:"fixed",placement:Ot,whileElementsMounted:A$2,elements:{reference:At.anchor},middleware:[L$3({mainAxis:dt+It,alignmentAxis:mt}),kt&&O$1({mainAxis:!0,crossAxis:!1,limiter:wt==="partial"?B$2():void 0,...Ft}),kt&&A$3({...Ft}),C$2({...Ft,apply:({elements:Rn,rects:An,availableWidth:yn,availableHeight:kn})=>{const{width:dn,height:gn}=An.reference,Cn=Rn.floating.style;Cn.setProperty("--radix-popper-available-width",`${yn}px`),Cn.setProperty("--radix-popper-available-height",`${kn}px`),Cn.setProperty("--radix-popper-anchor-width",`${dn}px`),Cn.setProperty("--radix-popper-anchor-height",`${gn}px`)}}),jt&&arrow$2({element:jt,padding:gt}),$cf1ac5d9fe0e8206$var$transformOrigin({arrowWidth:xt,arrowHeight:It}),vt&&E$2({strategy:"referenceHidden"})]}),[Yt,fn]=$cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(Ht),cn=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(St);$9f79659886946c16$export$e5c5a5f917a5871c(()=>{Jt&&(cn==null||cn())},[Jt,cn]);const _n=(it=nn.arrow)===null||it===void 0?void 0:it.x,En=(ot=nn.arrow)===null||ot===void 0?void 0:ot.y,an=((at=nn.arrow)===null||at===void 0?void 0:at.centerOffset)!==0,[en,Tn]=reactExports.useState();return $9f79659886946c16$export$e5c5a5f917a5871c(()=>{Tt&&Tn(window.getComputedStyle(Tt).zIndex)},[Tt]),reactExports.createElement("div",{ref:Nt.setFloating,"data-radix-popper-content-wrapper":"",style:{...Ct,transform:Jt?Ct.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:en,"--radix-popper-transform-origin":[(st=nn.transformOrigin)===null||st===void 0?void 0:st.x,(lt=nn.transformOrigin)===null||lt===void 0?void 0:lt.y].join(" ")},dir:tt.dir},reactExports.createElement($cf1ac5d9fe0e8206$var$PopperContentProvider,{scope:ut,placedSide:Yt,onArrowChange:Rt,arrowX:_n,arrowY:En,shouldHideArrow:an},reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.div,_extends$r({"data-side":Yt,"data-align":fn},Et,{ref:Lt,style:{...Et.style,animation:Jt?void 0:"none",opacity:(ct=nn.hide)!==null&&ct!==void 0&&ct.referenceHidden?0:void 0}}))))}),$cf1ac5d9fe0e8206$var$ARROW_NAME="PopperArrow",$cf1ac5d9fe0e8206$var$OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"right"},$cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0=reactExports.forwardRef(function(et,nt){const{__scopePopper:rt,...it}=et,ot=$cf1ac5d9fe0e8206$var$useContentContext($cf1ac5d9fe0e8206$var$ARROW_NAME,rt),at=$cf1ac5d9fe0e8206$var$OPPOSITE_SIDE[ot.placedSide];return reactExports.createElement("span",{ref:ot.onArrowChange,style:{position:"absolute",left:ot.arrowX,top:ot.arrowY,[at]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[ot.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[ot.placedSide],visibility:ot.shouldHideArrow?"hidden":void 0}},reactExports.createElement($7e8f5cd07187803e$export$be92b6f5f03c0fe9,_extends$r({},it,{ref:nt,style:{...it.style,display:"block"}})))});function $cf1ac5d9fe0e8206$var$isNotNull(tt){return tt!==null}const $cf1ac5d9fe0e8206$var$transformOrigin=tt=>({name:"transformOrigin",options:tt,fn(et){var nt,rt,it,ot,at;const{placement:st,rects:lt,middlewareData:ct}=et,ht=((nt=ct.arrow)===null||nt===void 0?void 0:nt.centerOffset)!==0,dt=ht?0:tt.arrowWidth,pt=ht?0:tt.arrowHeight,[mt,gt]=$cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(st),yt={start:"0%",center:"50%",end:"100%"}[gt],bt=((rt=(it=ct.arrow)===null||it===void 0?void 0:it.x)!==null&&rt!==void 0?rt:0)+dt/2,wt=((ot=(at=ct.arrow)===null||at===void 0?void 0:at.y)!==null&&ot!==void 0?ot:0)+pt/2;let vt="",kt="";return mt==="bottom"?(vt=ht?yt:`${bt}px`,kt=`${-pt}px`):mt==="top"?(vt=ht?yt:`${bt}px`,kt=`${lt.floating.height+pt}px`):mt==="right"?(vt=`${-pt}px`,kt=ht?yt:`${wt}px`):mt==="left"&&(vt=`${lt.floating.width+pt}px`,kt=ht?yt:`${wt}px`),{data:{x:vt,y:kt}}}});function $cf1ac5d9fe0e8206$var$getSideAndAlignFromPlacement(tt){const[et,nt="center"]=tt.split("-");return[et,nt]}const $cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9=$cf1ac5d9fe0e8206$export$badac9ada3a0bdf9,$cf1ac5d9fe0e8206$export$b688253958b8dfe7=$cf1ac5d9fe0e8206$export$ecd4e1ccab6ed6d,$cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2=$cf1ac5d9fe0e8206$export$bc4ae5855d3c4fc,$cf1ac5d9fe0e8206$export$21b07c8f274aebd5=$cf1ac5d9fe0e8206$export$79d62cd4e10a3fd0;function $fe963b355347cc68$export$3e6543de14f8614f(tt,et){return reactExports.useReducer((nt,rt)=>{const it=et[nt][rt];return it??nt},tt)}const $921a889cee6df7e8$export$99c2b779aa4e8b8b=tt=>{const{present:et,children:nt}=tt,rt=$921a889cee6df7e8$var$usePresence(et),it=typeof nt=="function"?nt({present:rt.isPresent}):reactExports.Children.only(nt),ot=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(rt.ref,it.ref);return typeof nt=="function"||rt.isPresent?reactExports.cloneElement(it,{ref:ot}):null};$921a889cee6df7e8$export$99c2b779aa4e8b8b.displayName="Presence";function $921a889cee6df7e8$var$usePresence(tt){const[et,nt]=reactExports.useState(),rt=reactExports.useRef({}),it=reactExports.useRef(tt),ot=reactExports.useRef("none"),at=tt?"mounted":"unmounted",[st,lt]=$fe963b355347cc68$export$3e6543de14f8614f(at,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return reactExports.useEffect(()=>{const ct=$921a889cee6df7e8$var$getAnimationName(rt.current);ot.current=st==="mounted"?ct:"none"},[st]),$9f79659886946c16$export$e5c5a5f917a5871c(()=>{const ct=rt.current,ut=it.current;if(ut!==tt){const dt=ot.current,pt=$921a889cee6df7e8$var$getAnimationName(ct);tt?lt("MOUNT"):pt==="none"||(ct==null?void 0:ct.display)==="none"?lt("UNMOUNT"):lt(ut&&dt!==pt?"ANIMATION_OUT":"UNMOUNT"),it.current=tt}},[tt,lt]),$9f79659886946c16$export$e5c5a5f917a5871c(()=>{if(et){const ct=ht=>{const pt=$921a889cee6df7e8$var$getAnimationName(rt.current).includes(ht.animationName);ht.target===et&&pt&&reactDomExports.flushSync(()=>lt("ANIMATION_END"))},ut=ht=>{ht.target===et&&(ot.current=$921a889cee6df7e8$var$getAnimationName(rt.current))};return et.addEventListener("animationstart",ut),et.addEventListener("animationcancel",ct),et.addEventListener("animationend",ct),()=>{et.removeEventListener("animationstart",ut),et.removeEventListener("animationcancel",ct),et.removeEventListener("animationend",ct)}}else lt("ANIMATION_END")},[et,lt]),{isPresent:["mounted","unmountSuspended"].includes(st),ref:reactExports.useCallback(ct=>{ct&&(rt.current=getComputedStyle(ct)),nt(ct)},[])}}function $921a889cee6df7e8$var$getAnimationName(tt){return(tt==null?void 0:tt.animationName)||"none"}function $71cd76cc60e0454e$export$6f32135080cb4c3({prop:tt,defaultProp:et,onChange:nt=()=>{}}){const[rt,it]=$71cd76cc60e0454e$var$useUncontrolledState({defaultProp:et,onChange:nt}),ot=tt!==void 0,at=ot?tt:rt,st=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(nt),lt=reactExports.useCallback(ct=>{if(ot){const ht=typeof ct=="function"?ct(tt):ct;ht!==tt&&st(ht)}else it(ct)},[ot,tt,it,st]);return[at,lt]}function $71cd76cc60e0454e$var$useUncontrolledState({defaultProp:tt,onChange:et}){const nt=reactExports.useState(tt),[rt]=nt,it=reactExports.useRef(rt),ot=$b1b2314f5f9a1d84$export$25bec8c6f54ee79a(et);return reactExports.useEffect(()=>{it.current!==rt&&(ot(rt),it.current=rt)},[rt,it,ot]),nt}const $ea1ef594cf570d83$export$439d29a4e110a164=reactExports.forwardRef((tt,et)=>reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.span,_extends$r({},tt,{ref:et,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...tt.style}}))),$ea1ef594cf570d83$export$be92b6f5f03c0fe9=$ea1ef594cf570d83$export$439d29a4e110a164,[$a093c7e1ec25a057$var$createTooltipContext,$a093c7e1ec25a057$export$1c540a2224f0d865]=$c512c27ab02ef895$export$50c7b4e9d9f19c1("Tooltip",[$cf1ac5d9fe0e8206$export$722aac194ae923]),$a093c7e1ec25a057$var$usePopperScope=$cf1ac5d9fe0e8206$export$722aac194ae923(),$a093c7e1ec25a057$var$PROVIDER_NAME="TooltipProvider",$a093c7e1ec25a057$var$TOOLTIP_OPEN="tooltip.open",[$a093c7e1ec25a057$var$TooltipProviderContextProvider,$a093c7e1ec25a057$var$useTooltipProviderContext]=$a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$PROVIDER_NAME),$a093c7e1ec25a057$var$TOOLTIP_NAME="Tooltip",[$a093c7e1ec25a057$var$TooltipContextProvider,$a093c7e1ec25a057$var$useTooltipContext]=$a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$TOOLTIP_NAME),$a093c7e1ec25a057$export$28c660c63b792dea=tt=>{const{__scopeTooltip:et,children:nt,open:rt,defaultOpen:it=!1,onOpenChange:ot,disableHoverableContent:at,delayDuration:st}=tt,lt=$a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$TOOLTIP_NAME,tt.__scopeTooltip),ct=$a093c7e1ec25a057$var$usePopperScope(et),[ut,ht]=reactExports.useState(null),dt=$1746a345f3d73bb7$export$f680877a34711e37(),pt=reactExports.useRef(0),mt=at??lt.disableHoverableContent,gt=st??lt.delayDuration,yt=reactExports.useRef(!1),[bt=!1,wt]=$71cd76cc60e0454e$export$6f32135080cb4c3({prop:rt,defaultProp:it,onChange:At=>{At?(lt.onOpen(),document.dispatchEvent(new CustomEvent($a093c7e1ec25a057$var$TOOLTIP_OPEN))):lt.onClose(),ot==null||ot(At)}}),vt=reactExports.useMemo(()=>bt?yt.current?"delayed-open":"instant-open":"closed",[bt]),kt=reactExports.useCallback(()=>{window.clearTimeout(pt.current),yt.current=!1,wt(!0)},[wt]),St=reactExports.useCallback(()=>{window.clearTimeout(pt.current),wt(!1)},[wt]),Et=reactExports.useCallback(()=>{window.clearTimeout(pt.current),pt.current=window.setTimeout(()=>{yt.current=!0,wt(!0)},gt)},[gt,wt]);return reactExports.useEffect(()=>()=>window.clearTimeout(pt.current),[]),reactExports.createElement($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9,ct,reactExports.createElement($a093c7e1ec25a057$var$TooltipContextProvider,{scope:et,contentId:dt,open:bt,stateAttribute:vt,trigger:ut,onTriggerChange:ht,onTriggerEnter:reactExports.useCallback(()=>{lt.isOpenDelayed?Et():kt()},[lt.isOpenDelayed,Et,kt]),onTriggerLeave:reactExports.useCallback(()=>{mt?St():window.clearTimeout(pt.current)},[St,mt]),onOpen:kt,onClose:St,disableHoverableContent:mt},nt))},$a093c7e1ec25a057$var$TRIGGER_NAME="TooltipTrigger",$a093c7e1ec25a057$export$8c610744efcf8a1d=reactExports.forwardRef((tt,et)=>{const{__scopeTooltip:nt,...rt}=tt,it=$a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$TRIGGER_NAME,nt),ot=$a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$TRIGGER_NAME,nt),at=$a093c7e1ec25a057$var$usePopperScope(nt),st=reactExports.useRef(null),lt=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(et,st,it.onTriggerChange),ct=reactExports.useRef(!1),ut=reactExports.useRef(!1),ht=reactExports.useCallback(()=>ct.current=!1,[]);return reactExports.useEffect(()=>()=>document.removeEventListener("pointerup",ht),[ht]),reactExports.createElement($cf1ac5d9fe0e8206$export$b688253958b8dfe7,_extends$r({asChild:!0},at),reactExports.createElement($8927f6f2acc4f386$export$250ffa63cdc0d034.button,_extends$r({"aria-describedby":it.open?it.contentId:void 0,"data-state":it.stateAttribute},rt,{ref:lt,onPointerMove:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onPointerMove,dt=>{dt.pointerType!=="touch"&&!ut.current&&!ot.isPointerInTransitRef.current&&(it.onTriggerEnter(),ut.current=!0)}),onPointerLeave:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onPointerLeave,()=>{it.onTriggerLeave(),ut.current=!1}),onPointerDown:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onPointerDown,()=>{ct.current=!0,document.addEventListener("pointerup",ht,{once:!0})}),onFocus:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onFocus,()=>{ct.current||it.onOpen()}),onBlur:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onBlur,it.onClose),onClick:$e42e1063c40fb3ef$export$b9ecd428b558ff10(tt.onClick,it.onClose)})))}),$a093c7e1ec25a057$var$PORTAL_NAME="TooltipPortal",[$a093c7e1ec25a057$var$PortalProvider,$a093c7e1ec25a057$var$usePortalContext]=$a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$PORTAL_NAME,{forceMount:void 0}),$a093c7e1ec25a057$var$CONTENT_NAME="TooltipContent",$a093c7e1ec25a057$export$e9003e2be37ec060=reactExports.forwardRef((tt,et)=>{const nt=$a093c7e1ec25a057$var$usePortalContext($a093c7e1ec25a057$var$CONTENT_NAME,tt.__scopeTooltip),{forceMount:rt=nt.forceMount,side:it="top",...ot}=tt,at=$a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME,tt.__scopeTooltip);return reactExports.createElement($921a889cee6df7e8$export$99c2b779aa4e8b8b,{present:rt||at.open},at.disableHoverableContent?reactExports.createElement($a093c7e1ec25a057$var$TooltipContentImpl,_extends$r({side:it},ot,{ref:et})):reactExports.createElement($a093c7e1ec25a057$var$TooltipContentHoverable,_extends$r({side:it},ot,{ref:et})))}),$a093c7e1ec25a057$var$TooltipContentHoverable=reactExports.forwardRef((tt,et)=>{const nt=$a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME,tt.__scopeTooltip),rt=$a093c7e1ec25a057$var$useTooltipProviderContext($a093c7e1ec25a057$var$CONTENT_NAME,tt.__scopeTooltip),it=reactExports.useRef(null),ot=$6ed0406888f73fc4$export$c7b2cbe3552a0d05(et,it),[at,st]=reactExports.useState(null),{trigger:lt,onClose:ct}=nt,ut=it.current,{onPointerInTransitChange:ht}=rt,dt=reactExports.useCallback(()=>{st(null),ht(!1)},[ht]),pt=reactExports.useCallback((mt,gt)=>{const yt=mt.currentTarget,bt={x:mt.clientX,y:mt.clientY},wt=$a093c7e1ec25a057$var$getExitSideFromRect(bt,yt.getBoundingClientRect()),vt=$a093c7e1ec25a057$var$getPaddedExitPoints(bt,wt),kt=$a093c7e1ec25a057$var$getPointsFromRect(gt.getBoundingClientRect()),St=$a093c7e1ec25a057$var$getHull([...vt,...kt]);st(St),ht(!0)},[ht]);return reactExports.useEffect(()=>()=>dt(),[dt]),reactExports.useEffect(()=>{if(lt&&ut){const mt=yt=>pt(yt,ut),gt=yt=>pt(yt,lt);return lt.addEventListener("pointerleave",mt),ut.addEventListener("pointerleave",gt),()=>{lt.removeEventListener("pointerleave",mt),ut.removeEventListener("pointerleave",gt)}}},[lt,ut,pt,dt]),reactExports.useEffect(()=>{if(at){const mt=gt=>{const yt=gt.target,bt={x:gt.clientX,y:gt.clientY},wt=(lt==null?void 0:lt.contains(yt))||(ut==null?void 0:ut.contains(yt)),vt=!$a093c7e1ec25a057$var$isPointInPolygon(bt,at);wt?dt():vt&&(dt(),ct())};return document.addEventListener("pointermove",mt),()=>document.removeEventListener("pointermove",mt)}},[lt,ut,at,ct,dt]),reactExports.createElement($a093c7e1ec25a057$var$TooltipContentImpl,_extends$r({},tt,{ref:ot}))}),[$a093c7e1ec25a057$var$VisuallyHiddenContentContextProvider,$a093c7e1ec25a057$var$useVisuallyHiddenContentContext]=$a093c7e1ec25a057$var$createTooltipContext($a093c7e1ec25a057$var$TOOLTIP_NAME,{isInside:!1}),$a093c7e1ec25a057$var$TooltipContentImpl=reactExports.forwardRef((tt,et)=>{const{__scopeTooltip:nt,children:rt,"aria-label":it,onEscapeKeyDown:ot,onPointerDownOutside:at,...st}=tt,lt=$a093c7e1ec25a057$var$useTooltipContext($a093c7e1ec25a057$var$CONTENT_NAME,nt),ct=$a093c7e1ec25a057$var$usePopperScope(nt),{onClose:ut}=lt;return reactExports.useEffect(()=>(document.addEventListener($a093c7e1ec25a057$var$TOOLTIP_OPEN,ut),()=>document.removeEventListener($a093c7e1ec25a057$var$TOOLTIP_OPEN,ut)),[ut]),reactExports.useEffect(()=>{if(lt.trigger){const ht=dt=>{const pt=dt.target;pt!=null&&pt.contains(lt.trigger)&&ut()};return window.addEventListener("scroll",ht,{capture:!0}),()=>window.removeEventListener("scroll",ht,{capture:!0})}},[lt.trigger,ut]),reactExports.createElement($5cb92bef7577960e$export$177fb62ff3ec1f22,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:ot,onPointerDownOutside:at,onFocusOutside:ht=>ht.preventDefault(),onDismiss:ut},reactExports.createElement($cf1ac5d9fe0e8206$export$7c6e2c02157bb7d2,_extends$r({"data-state":lt.stateAttribute},ct,st,{ref:et,style:{...st.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"}}),reactExports.createElement($5e63c961fc1ce211$export$d9f1ccf0bdb05d45,null,rt),reactExports.createElement($a093c7e1ec25a057$var$VisuallyHiddenContentContextProvider,{scope:nt,isInside:!0},reactExports.createElement($ea1ef594cf570d83$export$be92b6f5f03c0fe9,{id:lt.contentId,role:"tooltip"},it||rt))))}),$a093c7e1ec25a057$var$ARROW_NAME="TooltipArrow",$a093c7e1ec25a057$export$c27ee0ad710f7559=reactExports.forwardRef((tt,et)=>{const{__scopeTooltip:nt,...rt}=tt,it=$a093c7e1ec25a057$var$usePopperScope(nt);return $a093c7e1ec25a057$var$useVisuallyHiddenContentContext($a093c7e1ec25a057$var$ARROW_NAME,nt).isInside?null:reactExports.createElement($cf1ac5d9fe0e8206$export$21b07c8f274aebd5,_extends$r({},it,rt,{ref:et}))});function $a093c7e1ec25a057$var$getExitSideFromRect(tt,et){const nt=Math.abs(et.top-tt.y),rt=Math.abs(et.bottom-tt.y),it=Math.abs(et.right-tt.x),ot=Math.abs(et.left-tt.x);switch(Math.min(nt,rt,it,ot)){case ot:return"left";case it:return"right";case nt:return"top";case rt:return"bottom";default:throw new Error("unreachable")}}function $a093c7e1ec25a057$var$getPaddedExitPoints(tt,et,nt=5){const rt=[];switch(et){case"top":rt.push({x:tt.x-nt,y:tt.y+nt},{x:tt.x+nt,y:tt.y+nt});break;case"bottom":rt.push({x:tt.x-nt,y:tt.y-nt},{x:tt.x+nt,y:tt.y-nt});break;case"left":rt.push({x:tt.x+nt,y:tt.y-nt},{x:tt.x+nt,y:tt.y+nt});break;case"right":rt.push({x:tt.x-nt,y:tt.y-nt},{x:tt.x-nt,y:tt.y+nt});break}return rt}function $a093c7e1ec25a057$var$getPointsFromRect(tt){const{top:et,right:nt,bottom:rt,left:it}=tt;return[{x:it,y:et},{x:nt,y:et},{x:nt,y:rt},{x:it,y:rt}]}function $a093c7e1ec25a057$var$isPointInPolygon(tt,et){const{x:nt,y:rt}=tt;let it=!1;for(let ot=0,at=et.length-1;otrt!=ut>rt&&nt<(ct-st)*(rt-lt)/(ut-lt)+st&&(it=!it)}return it}function $a093c7e1ec25a057$var$getHull(tt){const et=tt.slice();return et.sort((nt,rt)=>nt.xrt.x?1:nt.yrt.y?1:0),$a093c7e1ec25a057$var$getHullPresorted(et)}function $a093c7e1ec25a057$var$getHullPresorted(tt){if(tt.length<=1)return tt.slice();const et=[];for(let rt=0;rt=2;){const ot=et[et.length-1],at=et[et.length-2];if((ot.x-at.x)*(it.y-at.y)>=(ot.y-at.y)*(it.x-at.x))et.pop();else break}et.push(it)}et.pop();const nt=[];for(let rt=tt.length-1;rt>=0;rt--){const it=tt[rt];for(;nt.length>=2;){const ot=nt[nt.length-1],at=nt[nt.length-2];if((ot.x-at.x)*(it.y-at.y)>=(ot.y-at.y)*(it.x-at.x))nt.pop();else break}nt.push(it)}return nt.pop(),et.length===1&&nt.length===1&&et[0].x===nt[0].x&&et[0].y===nt[0].y?et:et.concat(nt)}const $a093c7e1ec25a057$export$be92b6f5f03c0fe9=$a093c7e1ec25a057$export$28c660c63b792dea,$a093c7e1ec25a057$export$41fb9f06171c75f4=$a093c7e1ec25a057$export$8c610744efcf8a1d,$a093c7e1ec25a057$export$7c6e2c02157bb7d2=$a093c7e1ec25a057$export$e9003e2be37ec060,$a093c7e1ec25a057$export$21b07c8f274aebd5=$a093c7e1ec25a057$export$c27ee0ad710f7559;function _objectWithoutPropertiesLoose$i(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _objectWithoutProperties$f(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$i(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}let LevaErrors;(function(tt){tt[tt.UNSUPPORTED_INPUT=0]="UNSUPPORTED_INPUT",tt[tt.NO_COMPONENT_FOR_TYPE=1]="NO_COMPONENT_FOR_TYPE",tt[tt.UNKNOWN_INPUT=2]="UNKNOWN_INPUT",tt[tt.DUPLICATE_KEYS=3]="DUPLICATE_KEYS",tt[tt.ALREADY_REGISTERED_TYPE=4]="ALREADY_REGISTERED_TYPE",tt[tt.CLIPBOARD_ERROR=5]="CLIPBOARD_ERROR",tt[tt.THEME_ERROR=6]="THEME_ERROR",tt[tt.PATH_DOESNT_EXIST=7]="PATH_DOESNT_EXIST",tt[tt.INPUT_TYPE_OVERRIDE=8]="INPUT_TYPE_OVERRIDE",tt[tt.EMPTY_KEY=9]="EMPTY_KEY"})(LevaErrors||(LevaErrors={}));const ErrorList={[LevaErrors.UNSUPPORTED_INPUT]:(tt,et)=>[`An input with type \`${tt}\` input was found at path \`${et}\` but it's not supported yet.`],[LevaErrors.NO_COMPONENT_FOR_TYPE]:(tt,et)=>[`Type \`${tt}\` found at path \`${et}\` can't be displayed in panel because no component supports it yet.`],[LevaErrors.UNKNOWN_INPUT]:(tt,et)=>[`input at path \`${tt}\` is not recognized.`,et],[LevaErrors.DUPLICATE_KEYS]:(tt,et,nt)=>[`Key \`${tt}\` of path \`${et}\` already exists at path \`${nt}\`. Even nested keys need to be unique. Rename one of the keys.`],[LevaErrors.ALREADY_REGISTERED_TYPE]:tt=>[`Type ${tt} has already been registered. You can't register a component with the same type.`],[LevaErrors.CLIPBOARD_ERROR]:tt=>["Error copying the value",tt],[LevaErrors.THEME_ERROR]:(tt,et)=>[`Error accessing the theme \`${tt}.${et}\` value.`],[LevaErrors.PATH_DOESNT_EXIST]:tt=>[`Error getting the value at path \`${tt}\`. There is probably an error in your \`render\` function.`],[LevaErrors.PATH_DOESNT_EXIST]:tt=>[`Error accessing the value at path \`${tt}\``],[LevaErrors.INPUT_TYPE_OVERRIDE]:(tt,et,nt)=>[`Input at path \`${tt}\` already exists with type: \`${et}\`. Its type cannot be overridden with type \`${nt}\`.`],[LevaErrors.EMPTY_KEY]:()=>["Keys can not be empty, if you want to hide a label use whitespace."]};function _log(tt,et,...nt){const[rt,...it]=ErrorList[et](...nt);console[tt]("LEVA: "+rt,...it)}const warn$3=_log.bind(null,"warn"),log$2=_log.bind(null,"log"),_excluded$a$1=["value"],_excluded2$4$1=["schema"],_excluded3$1$1=["value"],Schemas=[],Plugins={};function getValueType(tt){let{value:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$a$1);for(let rt of Schemas){const it=rt(et,nt);if(it)return it}}function register(tt,et){let{schema:nt}=et,rt=_objectWithoutProperties$f(et,_excluded2$4$1);if(tt in Plugins){warn$3(LevaErrors.ALREADY_REGISTERED_TYPE,tt);return}Schemas.push((it,ot)=>nt(it,ot)&&tt),Plugins[tt]=rt}function createInternalPlugin(tt){return tt}function normalize$3$1(tt,et,nt,rt){const{normalize:it}=Plugins[tt];if(it)return it(et,nt,rt);if(typeof et!="object"||!("value"in et))return{value:et};const{value:ot}=et,at=_objectWithoutProperties$f(et,_excluded3$1$1);return{value:ot,settings:at}}function sanitize$4(tt,et,nt,rt,it,ot){const{sanitize:at}=Plugins[tt];return at?at(et,nt,rt,it,ot):et}function format$2$1(tt,et,nt){const{format:rt}=Plugins[tt];return rt?rt(et,nt):et}function _defineProperty$x(tt,et,nt){return et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function ownKeys$v(tt,et){var nt=Object.keys(tt);if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(tt);et&&(rt=rt.filter(function(it){return Object.getOwnPropertyDescriptor(tt,it).enumerable})),nt.push.apply(nt,rt)}return nt}function _objectSpread2$1(tt){for(var et=1;ettt>nt?nt:tt{if(tt===""||typeof tt=="number")return tt;try{const et=evaluate(tt);if(!isNaN(et))return et}catch{}return parseFloat(tt)},log10=Math.log(10);function getStep(tt){let et=Math.abs(+String(tt).replace(".",""));if(et===0)return .01;for(;et!==0&&et%10===0;)et/=10;const nt=Math.floor(Math.log(et)/log10)+1,rt=Math.floor(Math.log10(Math.abs(tt))),it=Math.pow(10,rt-nt);return Math.max(it,.001)}const range$8=(tt,et,nt)=>nt===et?0:(clamp$7(tt,et,nt)-et)/(nt-et),invertedRange=(tt,et,nt)=>tt*(nt-et)+et,getUid=()=>"_"+Math.random().toString(36).substr(2,9),parens=/\(([0-9+\-*/^ .]+)\)/,exp$2=/(\d+(?:\.\d+)?) ?\^ ?(\d+(?:\.\d+)?)/,mul=/(\d+(?:\.\d+)?) ?\* ?(\d+(?:\.\d+)?)/,div=/(\d+(?:\.\d+)?) ?\/ ?(\d+(?:\.\d+)?)/,add$5=/(\d+(?:\.\d+)?) ?\+ ?(\d+(?:\.\d+)?)/,sub=/(\d+(?:\.\d+)?) ?- ?(\d+(?:\.\d+)?)/;function evaluate(tt){if(isNaN(Number(tt)))if(parens.test(tt)){const et=tt.replace(parens,(nt,rt)=>String(evaluate(rt)));return evaluate(et)}else if(exp$2.test(tt)){const et=tt.replace(exp$2,(nt,rt,it)=>String(Math.pow(Number(rt),Number(it))));return evaluate(et)}else if(mul.test(tt)){const et=tt.replace(mul,(nt,rt,it)=>String(Number(rt)*Number(it)));return evaluate(et)}else if(div.test(tt)){const et=tt.replace(div,(nt,rt,it)=>{if(it!=0)return String(Number(rt)/Number(it));throw new Error("Division by zero")});return evaluate(et)}else if(add$5.test(tt)){const et=tt.replace(add$5,(nt,rt,it)=>String(Number(rt)+Number(it)));return evaluate(et)}else if(sub.test(tt)){const et=tt.replace(sub,(nt,rt,it)=>String(Number(rt)-Number(it)));return evaluate(et)}else return Number(tt);return Number(tt)}function pick$1(tt,et){return et.reduce((nt,rt)=>(tt&&tt.hasOwnProperty(rt)&&(nt[rt]=tt[rt]),nt),{})}function omit$1(tt,et){const nt=_objectSpread2$1({},tt);return et.forEach(rt=>rt in tt&&delete nt[rt]),nt}function mapArrayToKeys(tt,et){return tt.reduce((nt,rt,it)=>Object.assign(nt,{[et[it]]:rt}),{})}function isObject$o(tt){return Object.prototype.toString.call(tt)==="[object Object]"}const isEmptyObject$1=tt=>isObject$o(tt)&&Object.keys(tt).length===0;let SpecialInputs;(function(tt){tt.BUTTON="BUTTON",tt.BUTTON_GROUP="BUTTON_GROUP",tt.MONITOR="MONITOR",tt.FOLDER="FOLDER"})(SpecialInputs||(SpecialInputs={}));let LevaInputs;(function(tt){tt.SELECT="SELECT",tt.IMAGE="IMAGE",tt.NUMBER="NUMBER",tt.COLOR="COLOR",tt.STRING="STRING",tt.BOOLEAN="BOOLEAN",tt.INTERVAL="INTERVAL",tt.VECTOR3D="VECTOR3D",tt.VECTOR2D="VECTOR2D"})(LevaInputs||(LevaInputs={}));const _excluded$9$1=["type","__customInput"],_excluded2$3$1=["render","label","optional","order","disabled","hint","onChange","onEditStart","onEditEnd","transient"],_excluded3$6=["type"];function parseOptions(tt,et,nt={},rt){var it,ot;if(typeof tt!="object"||Array.isArray(tt))return{type:rt,input:tt,options:_objectSpread2$1({key:et,label:et,optional:!1,disabled:!1,order:0},nt)};if("__customInput"in tt){const{type:St,__customInput:Et}=tt,At=_objectWithoutProperties$f(tt,_excluded$9$1);return parseOptions(Et,et,At,St)}const{render:at,label:st,optional:lt,order:ct=0,disabled:ut,hint:ht,onChange:dt,onEditStart:pt,onEditEnd:mt,transient:gt}=tt,yt=_objectWithoutProperties$f(tt,_excluded2$3$1),bt=_objectSpread2$1({render:at,key:et,label:st??et,hint:ht,transient:gt??!!dt,onEditStart:pt,onEditEnd:mt,disabled:ut,optional:lt,order:ct},nt);let{type:wt}=yt,vt=_objectWithoutProperties$f(yt,_excluded3$6);if(wt=rt??wt,wt in SpecialInputs)return{type:wt,input:vt,options:bt};let kt;return rt&&isObject$o(vt)&&"value"in vt?kt=vt.value:kt=isEmptyObject$1(vt)?void 0:vt,{type:wt,input:kt,options:_objectSpread2$1(_objectSpread2$1({},bt),{},{onChange:dt,optional:(it=bt.optional)!==null&&it!==void 0?it:!1,disabled:(ot=bt.disabled)!==null&&ot!==void 0?ot:!1})}}function normalizeInput(tt,et,nt,rt){const it=parseOptions(tt,et),{type:ot,input:at,options:st}=it;if(ot)return ot in SpecialInputs?it:{type:ot,input:normalize$3$1(ot,at,nt,rt),options:st};let lt=getValueType(at);return lt?{type:lt,input:normalize$3$1(lt,at,nt,rt),options:st}:(lt=getValueType({value:at}),lt?{type:lt,input:normalize$3$1(lt,{value:at},nt,rt),options:st}:!1)}function updateInput(tt,et,nt,rt,it){const{value:ot,type:at,settings:st}=tt;tt.value=sanitizeValue({type:at,value:ot,settings:st},et,nt,rt),tt.fromPanel=it}const ValueError=function(et,nt,rt){this.type="LEVA_ERROR",this.message="LEVA: "+et,this.previousValue=nt,this.error=rt};function sanitizeValue({type:tt,value:et,settings:nt},rt,it,ot){const at=tt!=="SELECT"&&typeof rt=="function"?rt(et):rt;let st;try{st=sanitize$4(tt,at,nt,et,it,ot)}catch(lt){throw new ValueError(`The value \`${rt}\` did not result in a correct value.`,et,lt)}return dequal(st,et)?et:st}const debounce$6=(tt,et,nt=!1)=>{let rt=0;return function(){const it=arguments,ot=nt&&!rt,at=()=>tt.apply(this,it);window.clearTimeout(rt),rt=window.setTimeout(at,et),ot&&at()}},multiplyStep=tt=>tt.shiftKey?5:tt.altKey?1/5:1;function render(tt,et){const nt=console.error;console.error=()=>{},ReactDOM.render(tt,et),console.error=nt}const _excluded$8$1=["value"],_excluded2$2$1=["min","max"],schema$3=tt=>{if(typeof tt=="number")return!0;if(typeof tt=="string"){const et=parseFloat(tt);return isNaN(et)?!1:tt.substring((""+et).length).trim().length<4}return!1},sanitize$3=(tt,{min:et=-1/0,max:nt=1/0,suffix:rt})=>{const it=parseFloat(tt);if(tt===""||isNaN(it))throw Error("Invalid number");const ot=clamp$7(it,et,nt);return rt?ot+rt:ot},format$1$2=(tt,{pad:et=0,suffix:nt})=>{const rt=parseFloat(tt).toFixed(et);return nt?rt+nt:rt},normalize$2$2=tt=>{let{value:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$8$1);const{min:rt=-1/0,max:it=1/0}=nt,ot=_objectWithoutProperties$f(nt,_excluded2$2$1);let at=parseFloat(et);const st=typeof et=="string"?et.substring((""+at).length):void 0;at=clamp$7(at,rt,it);let lt=nt.step;lt||(Number.isFinite(rt)?Number.isFinite(it)?lt=+(Math.abs(it-rt)/100).toPrecision(1):lt=+(Math.abs(at-rt)/100).toPrecision(1):Number.isFinite(it)&&(lt=+(Math.abs(it-at)/100).toPrecision(1)));const ct=lt?getStep(lt)*10:getStep(at);lt=lt||ct/10;const ut=Math.round(clamp$7(Math.log10(1/ct),0,2));return{value:st?at+st:at,settings:_objectSpread2$1({initialValue:at,step:lt,pad:ut,min:rt,max:it,suffix:st},ot)}},sanitizeStep$1=(tt,{step:et,initialValue:nt})=>{const rt=Math.round((tt-nt)/et);return nt+rt*et};var props$3$1=Object.freeze({__proto__:null,schema:schema$3,sanitize:sanitize$3,format:format$1$2,normalize:normalize$2$2,sanitizeStep:sanitizeStep$1});function _extends$q(){return _extends$q=Object.assign?Object.assign.bind():function(tt){for(var et=1;et({colors:{elevation1:"#292d39",elevation2:"#181c20",elevation3:"#373c4b",accent1:"#0066dc",accent2:"#007bff",accent3:"#3c93ff",highlight1:"#535760",highlight2:"#8c92a4",highlight3:"#fefefe",vivid1:"#ffcc00",folderWidgetColor:"$highlight2",folderTextColor:"$highlight3",toolTipBackground:"$highlight3",toolTipText:"$elevation2"},radii:{xs:"2px",sm:"3px",lg:"10px"},space:{xs:"3px",sm:"6px",md:"10px",rowGap:"7px",colGap:"7px"},fonts:{mono:"ui-monospace, SFMono-Regular, Menlo, 'Roboto Mono', monospace",sans:"system-ui, sans-serif"},fontSizes:{root:"11px",toolTip:"$root"},sizes:{rootWidth:"280px",controlWidth:"160px",numberInputMinWidth:"38px",scrubberWidth:"8px",scrubberHeight:"16px",rowHeight:"24px",folderTitleHeight:"20px",checkboxSize:"16px",joystickWidth:"100px",joystickHeight:"100px",colorPickerWidth:"$controlWidth",colorPickerHeight:"100px",imagePreviewWidth:"$controlWidth",imagePreviewHeight:"100px",monitorHeight:"60px",titleBarHeight:"39px"},shadows:{level1:"0 0 9px 0 #00000088",level2:"0 4px 14px #00000033"},borderWidths:{root:"0px",input:"1px",focus:"1px",hover:"1px",active:"1px",folder:"1px"},fontWeights:{label:"normal",folder:"normal",button:"normal"}});function createStateClass(tt,et){const[nt,rt]=tt.split(" "),it={};return nt!=="none"&&(it.boxShadow=`${et.inset?"inset ":""}0 0 0 $borderWidths${[et.key]} $colors${nt!=="default"&&nt||et.borderColor}`),rt&&(it.backgroundColor=rt),it}const utils$r={$inputStyle:()=>tt=>createStateClass(tt,{key:"$input",borderColor:"$highlight1",inset:!0}),$focusStyle:()=>tt=>createStateClass(tt,{key:"$focus",borderColor:"$accent2"}),$hoverStyle:()=>tt=>createStateClass(tt,{key:"$hover",borderColor:"$accent1",inset:!0}),$activeStyle:()=>tt=>createStateClass(tt,{key:"$active",borderColor:"$accent1",inset:!0})},{styled:styled$5,css:css$1,createTheme:createTheme$2,globalCss,keyframes:keyframes$1}=q$7({prefix:"leva",theme:getDefaultTheme(),utils:_objectSpread2$1(_objectSpread2$1({},utils$r),{},{$flex:()=>({display:"flex",alignItems:"center"}),$flexCenter:()=>({display:"flex",alignItems:"center",justifyContent:"center"}),$reset:()=>({outline:"none",fontSize:"inherit",fontWeight:"inherit",color:"inherit",fontFamily:"inherit",border:"none",backgroundColor:"transparent",appearance:"none"}),$draggable:()=>({touchAction:"none",WebkitUserDrag:"none",userSelect:"none"}),$focus:tt=>({"&:focus":utils$r.$focusStyle()(tt)}),$focusWithin:tt=>({"&:focus-within":utils$r.$focusStyle()(tt)}),$hover:tt=>({"&:hover":utils$r.$hoverStyle()(tt)}),$active:tt=>({"&:active":utils$r.$activeStyle()(tt)})})}),globalStyles=globalCss({".leva__panel__dragged":{WebkitUserDrag:"none",userSelect:"none",input:{userSelect:"none"},"*":{cursor:"ew-resize !important"}}});function mergeTheme(tt){const et=getDefaultTheme();if(!tt)return{theme:et,className:""};Object.keys(tt).forEach(rt=>{Object.assign(et[rt],tt[rt])});const nt=createTheme$2(et);return{theme:et,className:nt.className}}function useTh(tt,et){const{theme:nt}=reactExports.useContext(ThemeContext$3);if(!(tt in nt)||!(et in nt[tt]))return warn$3(LevaErrors.THEME_ERROR,tt,et),"";let rt=et;for(;;){let it=nt[tt][rt];if(typeof it=="string"&&it.charAt(0)==="$")rt=it.substr(1);else return it}}const StyledInput$2=styled$5("input",{$reset:"",padding:"0 $sm",width:0,minWidth:0,flex:1,height:"100%",variants:{levaType:{number:{textAlign:"right"}},as:{textarea:{padding:"$sm"}}}}),InnerLabel=styled$5("div",{$draggable:"",height:"100%",$flexCenter:"",position:"relative",padding:"0 $xs",fontSize:"0.8em",opacity:.8,cursor:"default",touchAction:"none",[`& + ${StyledInput$2}`]:{paddingLeft:0}}),InnerNumberLabel=styled$5(InnerLabel,{cursor:"ew-resize",marginRight:"-$xs",textTransform:"uppercase",opacity:.3,"&:hover":{opacity:1},variants:{dragging:{true:{backgroundColor:"$accent2",opacity:1}}}}),InputContainer=styled$5("div",{$flex:"",position:"relative",borderRadius:"$sm",overflow:"hidden",color:"inherit",height:"$rowHeight",backgroundColor:"$elevation3",$inputStyle:"$elevation1",$hover:"",$focusWithin:"",variants:{textArea:{true:{height:"auto"}}}}),_excluded$7$2=["innerLabel","value","onUpdate","onChange","onKeyDown","type","id","inputType","rows"],_excluded2$1$2=["onUpdate"];function ValueInput(tt){let{innerLabel:et,value:nt,onUpdate:rt,onChange:it,onKeyDown:ot,type:at,id:st,inputType:lt="text",rows:ct=0}=tt,ut=_objectWithoutProperties$f(tt,_excluded$7$2);const{id:ht,emitOnEditStart:dt,emitOnEditEnd:pt,disabled:mt}=useInputContext(),gt=st||ht,yt=reactExports.useRef(null),bt=ct>0,wt=bt?"textarea":"input",vt=reactExports.useCallback(Et=>At=>{const Tt=At.currentTarget.value;Et(Tt)},[]);React$1.useEffect(()=>{const Et=yt.current,At=vt(Tt=>{rt(Tt),pt()});return Et==null||Et.addEventListener("blur",At),()=>Et==null?void 0:Et.removeEventListener("blur",At)},[vt,rt,pt]);const kt=reactExports.useCallback(Et=>{Et.key==="Enter"&&vt(rt)(Et)},[vt,rt]),St=Object.assign({as:wt},bt?{rows:ct}:{},ut);return React$1.createElement(InputContainer,{textArea:bt},et&&typeof et=="string"?React$1.createElement(InnerLabel,null,et):et,React$1.createElement(StyledInput$2,_extends$q({levaType:at,ref:yt,id:gt,type:lt,autoComplete:"off",spellCheck:"false",value:nt,onChange:vt(it),onFocus:()=>dt(),onKeyPress:kt,onKeyDown:ot,disabled:mt},St)))}function NumberInput(tt){let{onUpdate:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded2$1$2);const rt=reactExports.useCallback(ot=>et(parseNumber(ot)),[et]),it=reactExports.useCallback(ot=>{const at=ot.key==="ArrowUp"?1:ot.key==="ArrowDown"?-1:0;if(at){ot.preventDefault();const st=ot.altKey?.1:ot.shiftKey?10:1;et(lt=>parseFloat(lt)+at*st)}},[et]);return React$1.createElement(ValueInput,_extends$q({},nt,{onUpdate:rt,onKeyDown:it,type:"number"}))}const StyledFolder=styled$5("div",{}),StyledWrapper=styled$5("div",{position:"relative",background:"$elevation2",transition:"height 300ms ease",variants:{fill:{true:{},false:{}},flat:{false:{},true:{}},isRoot:{true:{},false:{paddingLeft:"$md","&::after":{content:'""',position:"absolute",left:0,top:0,width:"$borderWidths$folder",height:"100%",backgroundColor:"$folderWidgetColor",opacity:.4,transform:"translateX(-50%)"}}}},compoundVariants:[{isRoot:!0,fill:!1,css:{overflowY:"auto",maxHeight:"calc(100vh - 20px - $$titleBarHeight)"}},{isRoot:!0,flat:!1,css:{borderRadius:"$lg"}}]}),StyledTitle=styled$5("div",{$flex:"",color:"$folderTextColor",userSelect:"none",cursor:"pointer",height:"$folderTitleHeight",fontWeight:"$folder","> svg":{marginLeft:-4,marginRight:4,cursor:"pointer",fill:"$folderWidgetColor",opacity:.6},"&:hover > svg":{fill:"$folderWidgetColor"},[`&:hover + ${StyledWrapper}::after`]:{opacity:.6},[`${StyledFolder}:hover > & + ${StyledWrapper}::after`]:{opacity:.6},[`${StyledFolder}:hover > & > svg`]:{opacity:1}}),StyledContent=styled$5("div",{position:"relative",display:"grid",gridTemplateColumns:"100%",rowGap:"$rowGap",transition:"opacity 250ms ease",variants:{toggled:{true:{opacity:1,transitionDelay:"250ms"},false:{opacity:0,transitionDelay:"0ms",pointerEvents:"none"}},isRoot:{true:{"& > div":{paddingLeft:"$md",paddingRight:"$md"},"& > div:first-of-type":{paddingTop:"$sm"},"& > div:last-of-type":{paddingBottom:"$sm"},[`> ${StyledFolder}:not(:first-of-type)`]:{paddingTop:"$sm",marginTop:"$md",borderTop:"$borderWidths$folder solid $colors$elevation1"}}}}}),StyledRow=styled$5("div",{position:"relative",zIndex:100,display:"grid",rowGap:"$rowGap",gridTemplateRows:"minmax($sizes$rowHeight, max-content)",alignItems:"center",color:"$highlight2",[`${StyledContent} > &`]:{"&:first-of-type":{marginTop:"$rowGap"},"&:last-of-type":{marginBottom:"$rowGap"}},variants:{disabled:{true:{pointerEvents:"none"},false:{"&:hover,&:focus-within":{color:"$highlight3"}}}}}),StyledInputRow=styled$5(StyledRow,{gridTemplateColumns:"auto $sizes$controlWidth",columnGap:"$colGap"}),CopyLabelContainer=styled$5("div",{$flex:"",height:"100%",position:"relative",overflow:"hidden","& > div":{marginLeft:"$colGap",padding:"0 $xs",opacity:.4},"& > div:hover":{opacity:.8},"& > div > svg":{display:"none",cursor:"pointer",width:13,minWidth:13,height:13,backgroundColor:"$elevation2"},"&:hover > div > svg":{display:"block"},variants:{align:{top:{height:"100%",alignItems:"flex-start",paddingTop:"$sm"}}}}),StyledOptionalToggle=styled$5("input",{$reset:"",height:0,width:0,opacity:0,margin:0,"& + label":{position:"relative",$flexCenter:"",height:"100%",userSelect:"none",cursor:"pointer",paddingLeft:2,paddingRight:"$sm",pointerEvents:"auto"},"& + label:after":{content:'""',width:6,height:6,backgroundColor:"$elevation3",borderRadius:"50%",$activeStyle:""},"&:focus + label:after":{$focusStyle:""},"& + label:active:after":{backgroundColor:"$accent1",$focusStyle:""},"&:checked + label:after":{backgroundColor:"$accent1"}}),StyledLabel=styled$5("label",{fontWeight:"$label",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap","& > svg":{display:"block"}}),StyledInputWrapper$1=styled$5("div",{opacity:1,variants:{disabled:{true:{opacity:.6,pointerEvents:"none",[`& ${StyledLabel}`]:{pointerEvents:"auto"}}}}}),Overlay$1=styled$5("div",{position:"fixed",top:0,bottom:0,right:0,left:0,zIndex:1e3,userSelect:"none"}),StyledToolTipContent=styled$5("div",{background:"$toolTipBackground",fontFamily:"$sans",fontSize:"$toolTip",padding:"$xs $sm",color:"$toolTipText",borderRadius:"$xs",boxShadow:"$level2",maxWidth:260}),ToolTipArrow=styled$5($a093c7e1ec25a057$export$21b07c8f274aebd5,{fill:"$toolTipBackground"});function Portal$3({children:tt}){const{className:et}=reactExports.useContext(ThemeContext$3);return React$1.createElement($f1701beae083dbae$export$be92b6f5f03c0fe9,{className:et},tt)}const _excluded$6$2=["align"];function OptionalToggle(){const{id:tt,disable:et,disabled:nt}=useInputContext();return React$1.createElement(React$1.Fragment,null,React$1.createElement(StyledOptionalToggle,{id:tt+"__disable",type:"checkbox",checked:!nt,onChange:()=>et(!nt)}),React$1.createElement("label",{htmlFor:tt+"__disable"}))}function RawLabel(tt){const{id:et,optional:nt,hint:rt}=useInputContext(),it=tt.htmlFor||(et?{htmlFor:et}:null),ot=!rt&&typeof tt.children=="string"?{title:tt.children}:null;return React$1.createElement(React$1.Fragment,null,nt&&React$1.createElement(OptionalToggle,null),rt!==void 0?React$1.createElement($a093c7e1ec25a057$export$be92b6f5f03c0fe9,null,React$1.createElement($a093c7e1ec25a057$export$41fb9f06171c75f4,{asChild:!0},React$1.createElement(StyledLabel,_extends$q({},it,tt))),React$1.createElement($a093c7e1ec25a057$export$7c6e2c02157bb7d2,{side:"top",sideOffset:2},React$1.createElement(StyledToolTipContent,null,rt,React$1.createElement(ToolTipArrow,null)))):React$1.createElement(StyledLabel,_extends$q({},it,ot,tt)))}function Label$4(tt){let{align:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$6$2);const{value:rt,label:it,key:ot,disabled:at}=useInputContext(),{hideCopyButton:st}=usePanelSettingsContext(),lt=!st&&ot!==void 0,[ct,ut]=reactExports.useState(!1),ht=async()=>{try{await navigator.clipboard.writeText(JSON.stringify({[ot]:rt??""})),ut(!0)}catch{warn$3(LevaErrors.CLIPBOARD_ERROR,{[ot]:rt})}};return React$1.createElement(CopyLabelContainer,{align:et,onPointerLeave:()=>ut(!1)},React$1.createElement(RawLabel,nt),lt&&!at&&React$1.createElement("div",{title:`Click to copy ${typeof it=="string"?it:ot} value`},ct?React$1.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"},React$1.createElement("path",{d:"M9 2a1 1 0 000 2h2a1 1 0 100-2H9z"}),React$1.createElement("path",{fillRule:"evenodd",d:"M4 5a2 2 0 012-2 3 3 0 003 3h2a3 3 0 003-3 2 2 0 012 2v11a2 2 0 01-2 2H6a2 2 0 01-2-2V5zm9.707 5.707a1 1 0 00-1.414-1.414L9 12.586l-1.293-1.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})):React$1.createElement("svg",{onClick:ht,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor"},React$1.createElement("path",{d:"M8 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z"}),React$1.createElement("path",{d:"M6 3a2 2 0 00-2 2v11a2 2 0 002 2h8a2 2 0 002-2V5a2 2 0 00-2-2 3 3 0 01-3 3H9a3 3 0 01-3-3z"}))))}const _excluded$5$2=["toggled"],Svg$1=styled$5("svg",{fill:"currentColor",transition:"transform 350ms ease, fill 250ms ease"});function Chevron(tt){let{toggled:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$5$2);return React$1.createElement(Svg$1,_extends$q({width:"9",height:"5",viewBox:"0 0 9 5",xmlns:"http://www.w3.org/2000/svg",style:{transform:`rotate(${et?0:-90}deg)`}},nt),React$1.createElement("path",{d:"M3.8 4.4c.4.3 1 .3 1.4 0L8 1.7A1 1 0 007.4 0H1.6a1 1 0 00-.7 1.7l3 2.7z"}))}const _excluded$4$2=["input"];function Row(tt){let{input:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$4$2);return et?React$1.createElement(StyledInputRow,nt):React$1.createElement(StyledRow,nt)}function useInputSetters({value:tt,type:et,settings:nt,setValue:rt}){const[it,ot]=reactExports.useState(format$2$1(et,tt,nt)),at=reactExports.useRef(tt),st=reactExports.useRef(nt);st.current=nt;const lt=reactExports.useCallback(ut=>ot(format$2$1(et,ut,st.current)),[et]),ct=reactExports.useCallback(ut=>{try{rt(ut)}catch(ht){const{type:dt,previousValue:pt}=ht;if(dt!=="LEVA_ERROR")throw ht;lt(pt)}},[lt,rt]);return reactExports.useEffect(()=>{dequal(tt,at.current)||lt(tt),at.current=tt},[tt,lt]),{displayValue:it,onChange:ot,onUpdate:ct}}function useDrag(tt,et){const{emitOnEditStart:nt,emitOnEditEnd:rt}=useInputContext();return useDrag$1(it=>{it.first&&(document.body.classList.add("leva__panel__dragged"),nt==null||nt());const ot=tt(it);return it.last&&(document.body.classList.remove("leva__panel__dragged"),rt==null||rt()),ot},et)}function useCanvas2d(tt){const et=reactExports.useRef(null),nt=reactExports.useRef(null),rt=reactExports.useRef(!1);return reactExports.useEffect(()=>{const it=debounce$6(()=>{et.current.width=et.current.offsetWidth*window.devicePixelRatio,et.current.height=et.current.offsetHeight*window.devicePixelRatio,tt(et.current,nt.current)},250);return window.addEventListener("resize",it),rt.current||(it(),rt.current=!0),()=>window.removeEventListener("resize",it)},[tt]),reactExports.useEffect(()=>{nt.current=et.current.getContext("2d")},[]),[et,nt]}function useTransform(){const tt=reactExports.useRef(null),et=reactExports.useRef({x:0,y:0}),nt=reactExports.useCallback(rt=>{Object.assign(et.current,rt),tt.current&&(tt.current.style.transform=`translate3d(${et.current.x}px, ${et.current.y}px, 0)`)},[]);return[tt,nt]}const _excluded$3$2=["__refCount"],getInputAtPath=(tt,et)=>{if(!tt[et])return null;const nt=tt[et];return _objectWithoutProperties$f(nt,_excluded$3$2)};function useInput(tt){const et=useStoreContext(),[nt,rt]=reactExports.useState(getInputAtPath(et.getData(),tt)),it=reactExports.useCallback(ct=>et.setValueAtPath(tt,ct,!0),[tt,et]),ot=reactExports.useCallback(ct=>et.setSettingsAtPath(tt,ct),[tt,et]),at=reactExports.useCallback(ct=>et.disableInputAtPath(tt,ct),[tt,et]),st=reactExports.useCallback(()=>et.emitOnEditStart(tt),[tt,et]),lt=reactExports.useCallback(()=>et.emitOnEditEnd(tt),[tt,et]);return reactExports.useEffect(()=>{rt(getInputAtPath(et.getData(),tt));const ct=et.useStore.subscribe(ut=>getInputAtPath(ut.data,tt),rt,{equalityFn:shallow$1});return()=>ct()},[et,tt]),[nt,{set:it,setSettings:ot,disable:at,storeId:et.storeId,emitOnEditStart:st,emitOnEditEnd:lt}]}const RangeGrid=styled$5("div",{variants:{hasRange:{true:{position:"relative",display:"grid",gridTemplateColumns:"auto $sizes$numberInputMinWidth",columnGap:"$colGap",alignItems:"center"}}}}),Range=styled$5("div",{position:"relative",width:"100%",height:2,borderRadius:"$xs",backgroundColor:"$elevation1"}),Scrubber=styled$5("div",{position:"absolute",width:"$scrubberWidth",height:"$scrubberHeight",borderRadius:"$xs",boxShadow:"0 0 0 2px $colors$elevation2",backgroundColor:"$accent2",cursor:"pointer",$active:"none $accent1",$hover:"none $accent3",variants:{position:{left:{borderTopRightRadius:0,borderBottomRightRadius:0,transform:"translateX(calc(-0.5 * ($sizes$scrubberWidth + 4px)))"},right:{borderTopLeftRadius:0,borderBottomLeftRadius:0,transform:"translateX(calc(0.5 * ($sizes$scrubberWidth + 4px)))"}}}}),RangeWrapper=styled$5("div",{position:"relative",$flex:"",height:"100%",cursor:"pointer",touchAction:"none"}),Indicator=styled$5("div",{position:"absolute",height:"100%",backgroundColor:"$accent2"});function RangeSlider({value:tt,min:et,max:nt,onDrag:rt,step:it,initialValue:ot}){const at=reactExports.useRef(null),st=reactExports.useRef(null),lt=reactExports.useRef(0),ct=useTh("sizes","scrubberWidth"),ut=useDrag(({event:dt,first:pt,xy:[mt],movement:[gt],memo:yt})=>{if(pt){const{width:wt,left:vt}=at.current.getBoundingClientRect();lt.current=wt-parseFloat(ct),yt=(dt==null?void 0:dt.target)===st.current?tt:invertedRange((mt-vt)/wt,et,nt)}const bt=yt+invertedRange(gt/lt.current,0,nt-et);return rt(sanitizeStep$1(bt,{step:it,initialValue:ot})),yt}),ht=range$8(tt,et,nt);return React$1.createElement(RangeWrapper,_extends$q({ref:at},ut()),React$1.createElement(Range,null,React$1.createElement(Indicator,{style:{left:0,right:`${(1-ht)*100}%`}})),React$1.createElement(Scrubber,{ref:st,style:{left:`calc(${ht} * (100% - ${ct}))`}}))}const DraggableLabel=React$1.memo(({label:tt,onUpdate:et,step:nt,innerLabelTrim:rt})=>{const[it,ot]=reactExports.useState(!1),at=useDrag(({active:st,delta:[lt],event:ct,memo:ut=0})=>(ot(st),ut+=lt/2,Math.abs(ut)>=1&&(et(ht=>parseFloat(ht)+Math.floor(ut)*nt*multiplyStep(ct)),ut=0),ut));return React$1.createElement(InnerNumberLabel,_extends$q({dragging:it,title:tt.length>1?tt:""},at()),tt.slice(0,rt))});function Number$1({label:tt,id:et,displayValue:nt,onUpdate:rt,onChange:it,settings:ot,innerLabelTrim:at=1}){const st=at>0&&React$1.createElement(DraggableLabel,{label:tt,step:ot.step,onUpdate:rt,innerLabelTrim:at});return React$1.createElement(NumberInput,{id:et,value:String(nt),onUpdate:rt,onChange:it,innerLabel:st})}function NumberComponent(){const tt=useInputContext(),{label:et,value:nt,onUpdate:rt,settings:it,id:ot}=tt,{min:at,max:st}=it,lt=st!==1/0&&at!==-1/0;return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,et),React$1.createElement(RangeGrid,{hasRange:lt},lt&&React$1.createElement(RangeSlider,_extends$q({value:parseFloat(nt),onDrag:rt},it)),React$1.createElement(Number$1,_extends$q({},tt,{id:ot,label:"value",innerLabelTrim:lt?0:1}))))}const{sanitizeStep}=props$3$1,rest=_objectWithoutProperties$f(props$3$1,["sanitizeStep"]);var number$6=_objectSpread2$1({component:NumberComponent},rest);const schema$2$1=(tt,et)=>v8n().schema({options:v8n().passesAnyOf(v8n().object(),v8n().array())}).test(et),sanitize$2$1=(tt,{values:et})=>{if(et.indexOf(tt)<0)throw Error("Selected value doesn't match Select options");return tt},format$3=(tt,{values:et})=>et.indexOf(tt),normalize$1$2=tt=>{let{value:et,options:nt}=tt,rt,it;return Array.isArray(nt)?(it=nt,rt=nt.map(ot=>String(ot))):(it=Object.values(nt),rt=Object.keys(nt)),"value"in tt?it.includes(et)||(rt.unshift(String(et)),it.unshift(et)):et=it[0],Object.values(nt).includes(et)||(nt[String(et)]=et),{value:et,settings:{keys:rt,values:it}}};var props$2$1=Object.freeze({__proto__:null,schema:schema$2$1,sanitize:sanitize$2$1,format:format$3,normalize:normalize$1$2});const SelectContainer=styled$5("div",{$flexCenter:"",position:"relative","> svg":{pointerEvents:"none",position:"absolute",right:"$md"}}),NativeSelect=styled$5("select",{position:"absolute",top:0,left:0,width:"100%",height:"100%",opacity:0}),PresentationalSelect=styled$5("div",{display:"flex",alignItems:"center",width:"100%",height:"$rowHeight",backgroundColor:"$elevation3",borderRadius:"$sm",padding:"0 $sm",cursor:"pointer",[`${NativeSelect}:focus + &`]:{$focusStyle:""},[`${NativeSelect}:hover + &`]:{$hoverStyle:""}});function Select$5({displayValue:tt,value:et,onUpdate:nt,id:rt,settings:it,disabled:ot}){const{keys:at,values:st}=it,lt=reactExports.useRef();return et===st[tt]&&(lt.current=at[tt]),React$1.createElement(SelectContainer,null,React$1.createElement(NativeSelect,{id:rt,value:tt,onChange:ct=>nt(st[Number(ct.currentTarget.value)]),disabled:ot},at.map((ct,ut)=>React$1.createElement("option",{key:ct,value:ut},ct))),React$1.createElement(PresentationalSelect,null,lt.current),React$1.createElement(Chevron,{toggled:!0}))}function SelectComponent(){const{label:tt,value:et,displayValue:nt,onUpdate:rt,id:it,disabled:ot,settings:at}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(Select$5,{id:it,value:et,displayValue:nt,onUpdate:rt,settings:at,disabled:ot}))}var select=_objectSpread2$1({component:SelectComponent},props$2$1);const schema$1$1=tt=>v8n().string().test(tt),sanitize$1$1=tt=>{if(typeof tt!="string")throw Error("Invalid string");return tt},normalize$5=({value:tt,editable:et=!0,rows:nt=!1})=>({value:tt,settings:{editable:et,rows:typeof nt=="number"?nt:nt?5:0}});var props$1$1=Object.freeze({__proto__:null,schema:schema$1$1,sanitize:sanitize$1$1,normalize:normalize$5});const _excluded$2$2=["displayValue","onUpdate","onChange","editable"],NonEditableString=styled$5("div",{whiteSpace:"pre-wrap"});function String$1(tt){let{displayValue:et,onUpdate:nt,onChange:rt,editable:it=!0}=tt,ot=_objectWithoutProperties$f(tt,_excluded$2$2);return it?React$1.createElement(ValueInput,_extends$q({value:et,onUpdate:nt,onChange:rt},ot)):React$1.createElement(NonEditableString,null,et)}function StringComponent(){const{label:tt,settings:et,displayValue:nt,onUpdate:rt,onChange:it}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(String$1,_extends$q({displayValue:nt,onUpdate:rt,onChange:it},et)))}var string$2=_objectSpread2$1({component:StringComponent},props$1$1);const schema$4=tt=>v8n().boolean().test(tt),sanitize$5=tt=>{if(typeof tt!="boolean")throw Error("Invalid boolean");return tt};var props$4=Object.freeze({__proto__:null,schema:schema$4,sanitize:sanitize$5});const StyledInputWrapper=styled$5("div",{position:"relative",$flex:"",height:"$rowHeight",input:{$reset:"",height:0,width:0,opacity:0,margin:0},label:{position:"relative",$flexCenter:"",userSelect:"none",cursor:"pointer",height:"$checkboxSize",width:"$checkboxSize",backgroundColor:"$elevation3",borderRadius:"$sm",$hover:""},"input:focus + label":{$focusStyle:""},"input:focus:checked + label, input:checked + label:hover":{$hoverStyle:"$accent3"},"input + label:active":{backgroundColor:"$accent1"},"input:checked + label:active":{backgroundColor:"$accent1"},"label > svg":{display:"none",width:"90%",height:"90%",stroke:"$highlight3"},"input:checked + label":{backgroundColor:"$accent2"},"input:checked + label > svg":{display:"block"}});function Boolean$1({value:tt,onUpdate:et,id:nt,disabled:rt}){return React$1.createElement(StyledInputWrapper,null,React$1.createElement("input",{id:nt,type:"checkbox",checked:tt,onChange:it=>et(it.currentTarget.checked),disabled:rt}),React$1.createElement("label",{htmlFor:nt},React$1.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},React$1.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"}))))}function BooleanComponent(){const{label:tt,value:et,onUpdate:nt,disabled:rt,id:it}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(Boolean$1,{value:et,onUpdate:nt,id:it,disabled:rt}))}var boolean=_objectSpread2$1({component:BooleanComponent},props$4);const _excluded$1$4=["locked"];function Coordinate({value:tt,id:et,valueKey:nt,settings:rt,onUpdate:it,innerLabelTrim:ot}){const at=reactExports.useRef(tt[nt]);at.current=tt[nt];const st=reactExports.useCallback(ct=>it({[nt]:sanitizeValue({type:"NUMBER",value:at.current,settings:rt},ct)}),[it,rt,nt]),lt=useInputSetters({type:"NUMBER",value:tt[nt],settings:rt,setValue:st});return React$1.createElement(Number$1,{id:et,label:nt,value:tt[nt],displayValue:lt.displayValue,onUpdate:lt.onUpdate,onChange:lt.onChange,settings:rt,innerLabelTrim:ot})}const Container$3=styled$5("div",{display:"grid",columnGap:"$colGap",gridAutoFlow:"column dense",alignItems:"center",variants:{withLock:{true:{gridTemplateColumns:"10px auto","> svg":{cursor:"pointer"}}}}});function Lock(tt){let{locked:et}=tt,nt=_objectWithoutProperties$f(tt,_excluded$1$4);return React$1.createElement("svg",_extends$q({width:"10",height:"10",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},nt),et?React$1.createElement("path",{d:"M5 4.63601C5 3.76031 5.24219 3.1054 5.64323 2.67357C6.03934 2.24705 6.64582 1.9783 7.5014 1.9783C8.35745 1.9783 8.96306 2.24652 9.35823 2.67208C9.75838 3.10299 10 3.75708 10 4.63325V5.99999H5V4.63601ZM4 5.99999V4.63601C4 3.58148 4.29339 2.65754 4.91049 1.99307C5.53252 1.32329 6.42675 0.978302 7.5014 0.978302C8.57583 0.978302 9.46952 1.32233 10.091 1.99162C10.7076 2.65557 11 3.57896 11 4.63325V5.99999H12C12.5523 5.99999 13 6.44771 13 6.99999V13C13 13.5523 12.5523 14 12 14H3C2.44772 14 2 13.5523 2 13V6.99999C2 6.44771 2.44772 5.99999 3 5.99999H4ZM3 6.99999H12V13H3V6.99999Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"}):React$1.createElement("path",{d:"M9 3.63601C9 2.76044 9.24207 2.11211 9.64154 1.68623C10.0366 1.26502 10.6432 1 11.5014 1C12.4485 1 13.0839 1.30552 13.4722 1.80636C13.8031 2.23312 14 2.84313 14 3.63325H15C15 2.68242 14.7626 1.83856 14.2625 1.19361C13.6389 0.38943 12.6743 0 11.5014 0C10.4294 0 9.53523 0.337871 8.91218 1.0021C8.29351 1.66167 8 2.58135 8 3.63601V6H1C0.447715 6 0 6.44772 0 7V13C0 13.5523 0.447715 14 1 14H10C10.5523 14 11 13.5523 11 13V7C11 6.44772 10.5523 6 10 6H9V3.63601ZM1 7H10V13H1V7Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"}))}function Vector({value:tt,onUpdate:et,settings:nt,innerLabelTrim:rt}){const{id:it,setSettings:ot}=useInputContext(),{lock:at,locked:st}=nt;return React$1.createElement(Container$3,{withLock:at},at&&React$1.createElement(Lock,{locked:st,onClick:()=>ot({locked:!st})}),Object.keys(tt).map((lt,ct)=>React$1.createElement(Coordinate,{id:ct===0?it:`${it}.${lt}`,key:lt,valueKey:lt,value:tt,settings:nt[lt],onUpdate:et,innerLabelTrim:rt})))}const normalizeKeyedNumberSettings=(tt,et)=>{const nt={};let rt=0,it=1/0;Object.entries(tt).forEach(([ot,at])=>{nt[ot]=normalize$2$2(_objectSpread2$1({value:at},et[ot])).settings,rt=Math.max(rt,nt[ot].step),it=Math.min(it,nt[ot].pad)});for(let ot in nt){const{step:at,min:st,max:lt}=et[ot]||{};!isFinite(at)&&(!isFinite(st)||!isFinite(lt))&&(nt[ot].step=rt,nt[ot].pad=it)}return nt},_excluded$1E=["lock"],_excluded2$d=["value"];function getVectorSchema(tt){const et=v8n().array().length(tt).every.number(),nt=rt=>{if(!rt||typeof rt!="object")return!1;const it=Object.values(rt);return it.length===tt&&it.every(ot=>isFinite(ot))};return rt=>et.test(rt)||nt(rt)}function getVectorType(tt){return Array.isArray(tt)?"array":"object"}function convert$7(tt,et,nt){return getVectorType(tt)===et?tt:et==="array"?Object.values(tt):mapArrayToKeys(tt,nt)}const sanitizeVector=(tt,et,nt)=>{const rt=convert$7(tt,"object",et.keys);for(let at in rt)rt[at]=sanitize$3(rt[at],et[at]);const it=Object.keys(rt);let ot={};if(it.length===et.keys.length)ot=rt;else{const at=convert$7(nt,"object",et.keys);if(it.length===1&&et.locked){const st=it[0],lt=rt[st],ct=at[st],ut=ct!==0?lt/ct:1;for(let ht in at)ht===st?ot[st]=lt:ot[ht]=at[ht]*ut}else ot=_objectSpread2$1(_objectSpread2$1({},at),rt)}return convert$7(ot,et.format,et.keys)},formatVector=(tt,et)=>convert$7(tt,"object",et.keys),isNumberSettings=tt=>!!tt&&("step"in tt||"min"in tt||"max"in tt);function normalizeVector(tt,et,nt=[]){const{lock:rt=!1}=et,it=_objectWithoutProperties$f(et,_excluded$1E),ot=Array.isArray(tt)?"array":"object",at=ot==="object"?Object.keys(tt):nt,st=convert$7(tt,"object",at),lt=isNumberSettings(it)?at.reduce((ut,ht)=>Object.assign(ut,{[ht]:it}),{}):it,ct=normalizeKeyedNumberSettings(st,lt);return{value:ot==="array"?tt:st,settings:_objectSpread2$1(_objectSpread2$1({},ct),{},{format:ot,keys:at,lock:rt,locked:!1})}}function getVectorPlugin(tt){return{schema:getVectorSchema(tt.length),normalize:et=>{let{value:nt}=et,rt=_objectWithoutProperties$f(et,_excluded2$d);return normalizeVector(nt,rt,tt)},format:(et,nt)=>formatVector(et,nt),sanitize:(et,nt,rt)=>sanitizeVector(et,nt,rt)}}var r$7={grad:.9,turn:360,rad:360/(2*Math.PI)},t$6=function(tt){return typeof tt=="string"?tt.length>0:typeof tt=="number"},n$6=function(tt,et,nt){return et===void 0&&(et=0),nt===void 0&&(nt=Math.pow(10,et)),Math.round(nt*tt)/nt+0},e$5=function(tt,et,nt){return et===void 0&&(et=0),nt===void 0&&(nt=1),tt>nt?nt:tt>et?tt:et},u$5=function(tt){return(tt=isFinite(tt)?tt%360:0)>0?tt:tt+360},a$3=function(tt){return{r:e$5(tt.r,0,255),g:e$5(tt.g,0,255),b:e$5(tt.b,0,255),a:e$5(tt.a)}},o$1=function(tt){return{r:n$6(tt.r),g:n$6(tt.g),b:n$6(tt.b),a:n$6(tt.a,3)}},i$6=/^#([0-9a-f]{3,8})$/i,s$4=function(tt){var et=tt.toString(16);return et.length<2?"0"+et:et},h$9=function(tt){var et=tt.r,nt=tt.g,rt=tt.b,it=tt.a,ot=Math.max(et,nt,rt),at=ot-Math.min(et,nt,rt),st=at?ot===et?(nt-rt)/at:ot===nt?2+(rt-et)/at:4+(et-nt)/at:0;return{h:60*(st<0?st+6:st),s:ot?at/ot*100:0,v:ot/255*100,a:it}},b$6=function(tt){var et=tt.h,nt=tt.s,rt=tt.v,it=tt.a;et=et/360*6,nt/=100,rt/=100;var ot=Math.floor(et),at=rt*(1-nt),st=rt*(1-(et-ot)*nt),lt=rt*(1-(1-et+ot)*nt),ct=ot%6;return{r:255*[rt,st,at,at,lt,rt][ct],g:255*[lt,rt,rt,st,at,at][ct],b:255*[at,at,lt,rt,rt,st][ct],a:it}},g$8=function(tt){return{h:u$5(tt.h),s:e$5(tt.s,0,100),l:e$5(tt.l,0,100),a:e$5(tt.a)}},d$5=function(tt){return{h:n$6(tt.h),s:n$6(tt.s),l:n$6(tt.l),a:n$6(tt.a,3)}},f$7=function(tt){return b$6((nt=(et=tt).s,{h:et.h,s:(nt*=((rt=et.l)<50?rt:100-rt)/100)>0?2*nt/(rt+nt)*100:0,v:rt+nt,a:et.a}));var et,nt,rt},c$8=function(tt){return{h:(et=h$9(tt)).h,s:(it=(200-(nt=et.s))*(rt=et.v)/100)>0&&it<200?nt*rt/100/(it<=100?it:200-it)*100:0,l:it/2,a:et.a};var et,nt,rt,it},l$5=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,p$8=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v$8=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,m$8=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y$7={string:[[function(tt){var et=i$6.exec(tt);return et?(tt=et[1]).length<=4?{r:parseInt(tt[0]+tt[0],16),g:parseInt(tt[1]+tt[1],16),b:parseInt(tt[2]+tt[2],16),a:tt.length===4?n$6(parseInt(tt[3]+tt[3],16)/255,2):1}:tt.length===6||tt.length===8?{r:parseInt(tt.substr(0,2),16),g:parseInt(tt.substr(2,2),16),b:parseInt(tt.substr(4,2),16),a:tt.length===8?n$6(parseInt(tt.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(tt){var et=v$8.exec(tt)||m$8.exec(tt);return et?et[2]!==et[4]||et[4]!==et[6]?null:a$3({r:Number(et[1])/(et[2]?100/255:1),g:Number(et[3])/(et[4]?100/255:1),b:Number(et[5])/(et[6]?100/255:1),a:et[7]===void 0?1:Number(et[7])/(et[8]?100:1)}):null},"rgb"],[function(tt){var et=l$5.exec(tt)||p$8.exec(tt);if(!et)return null;var nt,rt,it=g$8({h:(nt=et[1],rt=et[2],rt===void 0&&(rt="deg"),Number(nt)*(r$7[rt]||1)),s:Number(et[3]),l:Number(et[4]),a:et[5]===void 0?1:Number(et[5])/(et[6]?100:1)});return f$7(it)},"hsl"]],object:[[function(tt){var et=tt.r,nt=tt.g,rt=tt.b,it=tt.a,ot=it===void 0?1:it;return t$6(et)&&t$6(nt)&&t$6(rt)?a$3({r:Number(et),g:Number(nt),b:Number(rt),a:Number(ot)}):null},"rgb"],[function(tt){var et=tt.h,nt=tt.s,rt=tt.l,it=tt.a,ot=it===void 0?1:it;if(!t$6(et)||!t$6(nt)||!t$6(rt))return null;var at=g$8({h:Number(et),s:Number(nt),l:Number(rt),a:Number(ot)});return f$7(at)},"hsl"],[function(tt){var et=tt.h,nt=tt.s,rt=tt.v,it=tt.a,ot=it===void 0?1:it;if(!t$6(et)||!t$6(nt)||!t$6(rt))return null;var at=function(st){return{h:u$5(st.h),s:e$5(st.s,0,100),v:e$5(st.v,0,100),a:e$5(st.a)}}({h:Number(et),s:Number(nt),v:Number(rt),a:Number(ot)});return b$6(at)},"hsv"]]},N$1=function(tt,et){for(var nt=0;nt=.5},tt.prototype.toHex=function(){return et=o$1(this.rgba),nt=et.r,rt=et.g,it=et.b,at=(ot=et.a)<1?s$4(n$6(255*ot)):"","#"+s$4(nt)+s$4(rt)+s$4(it)+at;var et,nt,rt,it,ot,at},tt.prototype.toRgb=function(){return o$1(this.rgba)},tt.prototype.toRgbString=function(){return et=o$1(this.rgba),nt=et.r,rt=et.g,it=et.b,(ot=et.a)<1?"rgba("+nt+", "+rt+", "+it+", "+ot+")":"rgb("+nt+", "+rt+", "+it+")";var et,nt,rt,it,ot},tt.prototype.toHsl=function(){return d$5(c$8(this.rgba))},tt.prototype.toHslString=function(){return et=d$5(c$8(this.rgba)),nt=et.h,rt=et.s,it=et.l,(ot=et.a)<1?"hsla("+nt+", "+rt+"%, "+it+"%, "+ot+")":"hsl("+nt+", "+rt+"%, "+it+"%)";var et,nt,rt,it,ot},tt.prototype.toHsv=function(){return et=h$9(this.rgba),{h:n$6(et.h),s:n$6(et.s),v:n$6(et.v),a:n$6(et.a,3)};var et},tt.prototype.invert=function(){return w$5({r:255-(et=this.rgba).r,g:255-et.g,b:255-et.b,a:et.a});var et},tt.prototype.saturate=function(et){return et===void 0&&(et=.1),w$5(M$1(this.rgba,et))},tt.prototype.desaturate=function(et){return et===void 0&&(et=.1),w$5(M$1(this.rgba,-et))},tt.prototype.grayscale=function(){return w$5(M$1(this.rgba,-1))},tt.prototype.lighten=function(et){return et===void 0&&(et=.1),w$5($$2(this.rgba,et))},tt.prototype.darken=function(et){return et===void 0&&(et=.1),w$5($$2(this.rgba,-et))},tt.prototype.rotate=function(et){return et===void 0&&(et=15),this.hue(this.hue()+et)},tt.prototype.alpha=function(et){return typeof et=="number"?w$5({r:(nt=this.rgba).r,g:nt.g,b:nt.b,a:et}):n$6(this.rgba.a,3);var nt},tt.prototype.hue=function(et){var nt=c$8(this.rgba);return typeof et=="number"?w$5({h:et,s:nt.s,l:nt.l,a:nt.a}):n$6(nt.h)},tt.prototype.isEqual=function(et){return this.toHex()===w$5(et).toHex()},tt}(),w$5=function(tt){return tt instanceof j$1?tt:new j$1(tt)},S$2=[],k$8=function(tt){tt.forEach(function(et){S$2.indexOf(et)<0&&(et(j$1,y$7),S$2.push(et))})};function namesPlugin(tt,et){var nt={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},rt={};for(var it in nt)rt[nt[it]]=it;var ot={};tt.prototype.toName=function(at){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var st,lt,ct=rt[this.toHex()];if(ct)return ct;if(at!=null&&at.closest){var ut=this.toRgb(),ht=1/0,dt="black";if(!ot.length)for(var pt in nt)ot[pt]=new tt(nt[pt]).toRgb();for(var mt in nt){var gt=(st=ut,lt=ot[mt],Math.pow(st.r-lt.r,2)+Math.pow(st.g-lt.g,2)+Math.pow(st.b-lt.b,2));gt=0||(it[nt]=tt[nt]);return it}function i$5(tt){var et=reactExports.useRef(tt),nt=reactExports.useRef(function(rt){et.current&&et.current(rt)});return et.current=tt,nt.current}var s$3=function(tt,et,nt){return et===void 0&&(et=0),nt===void 0&&(nt=1),tt>nt?nt:tt0:yt.buttons>0)&&it.current?ot(d$4(it.current,yt,st.current)):gt(!1)},mt=function(){return gt(!1)};function gt(yt){var bt=lt.current,wt=v$7(it.current),vt=yt?wt.addEventListener:wt.removeEventListener;vt(bt?"touchmove":"mousemove",pt),vt(bt?"touchend":"mouseup",mt)}return[function(yt){var bt=yt.nativeEvent,wt=it.current;if(wt&&(h$8(bt),!function(kt,St){return St&&!f$6(kt)}(bt,lt.current)&&wt)){if(f$6(bt)){lt.current=!0;var vt=bt.changedTouches||[];vt.length&&(st.current=vt[0].identifier)}wt.focus(),ot(d$4(wt,bt,st.current)),gt(!0)}},function(yt){var bt=yt.which||yt.keyCode;bt<37||bt>40||(yt.preventDefault(),at({left:bt===39?.05:bt===37?-.05:0,top:bt===40?.05:bt===38?-.05:0}))},gt]},[at,ot]),ut=ct[0],ht=ct[1],dt=ct[2];return reactExports.useEffect(function(){return dt},[dt]),React$1.createElement("div",u$4({},rt,{onTouchStart:ut,onMouseDown:ut,className:"react-colorful__interactive",ref:it,onKeyDown:ht,tabIndex:0,role:"slider"}))}),g$7=function(tt){return tt.filter(Boolean).join(" ")},p$7=function(tt){var et=tt.color,nt=tt.left,rt=tt.top,it=rt===void 0?.5:rt,ot=g$7(["react-colorful__pointer",tt.className]);return React$1.createElement("div",{className:ot,style:{top:100*it+"%",left:100*nt+"%"}},React$1.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:et}}))},b$5=function(tt,et,nt){return et===void 0&&(et=0),nt===void 0&&(nt=Math.pow(10,et)),Math.round(nt*tt)/nt},y$6=function(tt){var et=tt.s,nt=tt.v,rt=tt.a,it=(200-et)*nt/100;return{h:b$5(tt.h),s:b$5(it>0&&it<200?et*nt/100/(it<=100?it:200-it)*100:0),l:b$5(it/2),a:b$5(rt,2)}},q$6=function(tt){var et=y$6(tt);return"hsl("+et.h+", "+et.s+"%, "+et.l+"%)"},k$7=function(tt){var et=y$6(tt);return"hsla("+et.h+", "+et.s+"%, "+et.l+"%, "+et.a+")"},I$1=function(tt){var et=tt.h,nt=tt.s,rt=tt.v,it=tt.a;et=et/360*6,nt/=100,rt/=100;var ot=Math.floor(et),at=rt*(1-nt),st=rt*(1-(et-ot)*nt),lt=rt*(1-(1-et+ot)*nt),ct=ot%6;return{r:b$5(255*[rt,st,at,at,lt,rt][ct]),g:b$5(255*[lt,rt,rt,st,at,at][ct]),b:b$5(255*[at,at,lt,rt,rt,st][ct]),a:b$5(it,2)}},L$1=function(tt){var et=tt.r,nt=tt.g,rt=tt.b,it=tt.a,ot=Math.max(et,nt,rt),at=ot-Math.min(et,nt,rt),st=at?ot===et?(nt-rt)/at:ot===nt?2+(rt-et)/at:4+(et-nt)/at:0;return{h:b$5(60*(st<0?st+6:st)),s:b$5(ot?at/ot*100:0),v:b$5(ot/255*100),a:it}},S$1=React$1.memo(function(tt){var et=tt.hue,nt=tt.onChange,rt=g$7(["react-colorful__hue",tt.className]);return React$1.createElement("div",{className:rt},React$1.createElement(m$7,{onMove:function(it){nt({h:360*it.left})},onKey:function(it){nt({h:s$3(et+360*it.left,0,360)})},"aria-label":"Hue","aria-valuenow":b$5(et),"aria-valuemax":"360","aria-valuemin":"0"},React$1.createElement(p$7,{className:"react-colorful__hue-pointer",left:et/360,color:q$6({h:et,s:100,v:100,a:1})})))}),T$1=React$1.memo(function(tt){var et=tt.hsva,nt=tt.onChange,rt={backgroundColor:q$6({h:et.h,s:100,v:100,a:1})};return React$1.createElement("div",{className:"react-colorful__saturation",style:rt},React$1.createElement(m$7,{onMove:function(it){nt({s:100*it.left,v:100-100*it.top})},onKey:function(it){nt({s:s$3(et.s+100*it.left,0,100),v:s$3(et.v-100*it.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+b$5(et.s)+"%, Brightness "+b$5(et.v)+"%"},React$1.createElement(p$7,{className:"react-colorful__saturation-pointer",top:1-et.v/100,left:et.s/100,color:q$6(et)})))}),F$1=function(tt,et){if(tt===et)return!0;for(var nt in tt)if(tt[nt]!==et[nt])return!1;return!0};function Y$1(tt,et,nt){var rt=i$5(nt),it=reactExports.useState(function(){return tt.toHsva(et)}),ot=it[0],at=it[1],st=reactExports.useRef({color:et,hsva:ot});reactExports.useEffect(function(){if(!tt.equal(et,st.current.color)){var ct=tt.toHsva(et);st.current={hsva:ct,color:et},at(ct)}},[et,tt]),reactExports.useEffect(function(){var ct;F$1(ot,st.current.hsva)||tt.equal(ct=tt.fromHsva(ot),st.current.color)||(st.current={hsva:ot,color:ct},rt(ct))},[ot,tt,rt]);var lt=reactExports.useCallback(function(ct){at(function(ut){return Object.assign({},ut,ct)})},[]);return[ot,lt]}var V$1=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,$$1=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},J$1=new Map,Q$1=function(tt){V$1(function(){var et=tt.current?tt.current.ownerDocument:document;if(et!==void 0&&!J$1.has(et)){var nt=et.createElement("style");nt.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,J$1.set(et,nt);var rt=$$1();rt&&nt.setAttribute("nonce",rt),et.head.appendChild(nt)}},[])},U$1=function(tt){var et=tt.className,nt=tt.colorModel,rt=tt.color,it=rt===void 0?nt.defaultColor:rt,ot=tt.onChange,at=c$7(tt,["className","colorModel","color","onChange"]),st=reactExports.useRef(null);Q$1(st);var lt=Y$1(nt,it,ot),ct=lt[0],ut=lt[1],ht=g$7(["react-colorful",et]);return React$1.createElement("div",u$4({},at,{ref:st,className:ht}),React$1.createElement(T$1,{hsva:ct,onChange:ut}),React$1.createElement(S$1,{hue:ct.h,onChange:ut,className:"react-colorful__last-control"}))},ee$1=function(tt){var et=tt.className,nt=tt.hsva,rt=tt.onChange,it={backgroundImage:"linear-gradient(90deg, "+k$7(Object.assign({},nt,{a:0}))+", "+k$7(Object.assign({},nt,{a:1}))+")"},ot=g$7(["react-colorful__alpha",et]),at=b$5(100*nt.a);return React$1.createElement("div",{className:ot},React$1.createElement("div",{className:"react-colorful__alpha-gradient",style:it}),React$1.createElement(m$7,{onMove:function(st){rt({a:st.left})},onKey:function(st){rt({a:s$3(nt.a+st.left)})},"aria-label":"Alpha","aria-valuetext":at+"%","aria-valuenow":at,"aria-valuemin":"0","aria-valuemax":"100"},React$1.createElement(p$7,{className:"react-colorful__alpha-pointer",left:nt.a,color:k$7(nt)})))},re$3=function(tt){var et=tt.className,nt=tt.colorModel,rt=tt.color,it=rt===void 0?nt.defaultColor:rt,ot=tt.onChange,at=c$7(tt,["className","colorModel","color","onChange"]),st=reactExports.useRef(null);Q$1(st);var lt=Y$1(nt,it,ot),ct=lt[0],ut=lt[1],ht=g$7(["react-colorful",et]);return React$1.createElement("div",u$4({},at,{ref:st,className:ht}),React$1.createElement(T$1,{hsva:ct,onChange:ut}),React$1.createElement(S$1,{hue:ct.h,onChange:ut}),React$1.createElement(ee$1,{hsva:ct,onChange:ut,className:"react-colorful__last-control"}))},xe$1={defaultColor:{r:0,g:0,b:0,a:1},toHsva:L$1,fromHsva:I$1,equal:F$1},Ce=function(tt){return React$1.createElement(re$3,u$4({},tt,{colorModel:xe$1}))},Me$1={defaultColor:{r:0,g:0,b:0},toHsva:function(tt){return L$1({r:tt.r,g:tt.g,b:tt.b,a:1})},fromHsva:function(tt){return{r:(et=I$1(tt)).r,g:et.g,b:et.b};var et},equal:F$1},Ne$1=function(tt){return React$1.createElement(U$1,u$4({},tt,{colorModel:Me$1}))},propTypes$1={exports:{}},ReactPropTypesSecret$1="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",ReactPropTypesSecret_1=ReactPropTypesSecret$1,ReactPropTypesSecret=ReactPropTypesSecret_1;function emptyFunction(){}function emptyFunctionWithReset(){}emptyFunctionWithReset.resetWarningCache=emptyFunction;var factoryWithThrowingShims=function(){function tt(rt,it,ot,at,st,lt){if(lt!==ReactPropTypesSecret){var ct=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw ct.name="Invariant Violation",ct}}tt.isRequired=tt;function et(){return tt}var nt={array:tt,bigint:tt,bool:tt,func:tt,number:tt,object:tt,string:tt,symbol:tt,any:tt,arrayOf:et,element:tt,elementType:tt,instanceOf:et,node:tt,objectOf:et,oneOf:et,oneOfType:et,shape:et,exact:et,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return nt.PropTypes=nt,nt};propTypes$1.exports=factoryWithThrowingShims();var propTypesExports=propTypes$1.exports;const PropTypes=getDefaultExportFromCjs(propTypesExports);function __decorate(tt,et,nt,rt){var it=arguments.length,ot=it<3?et:rt===null?rt=Object.getOwnPropertyDescriptor(et,nt):rt,at;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")ot=Reflect.decorate(tt,et,nt,rt);else for(var st=tt.length-1;st>=0;st--)(at=tt[st])&&(ot=(it<3?at(ot):it>3?at(et,nt,ot):at(et,nt))||ot);return it>3&&ot&&Object.defineProperty(et,nt,ot),ot}function __awaiter(tt,et,nt,rt){function it(ot){return ot instanceof nt?ot:new nt(function(at){at(ot)})}return new(nt||(nt=Promise))(function(ot,at){function st(ut){try{ct(rt.next(ut))}catch(ht){at(ht)}}function lt(ut){try{ct(rt.throw(ut))}catch(ht){at(ht)}}function ct(ut){ut.done?ot(ut.value):it(ut.value).then(st,lt)}ct((rt=rt.apply(tt,et||[])).next())})}function __generator(tt,et){var nt={label:0,sent:function(){if(ot[0]&1)throw ot[1];return ot[1]},trys:[],ops:[]},rt,it,ot,at;return at={next:st(0),throw:st(1),return:st(2)},typeof Symbol=="function"&&(at[Symbol.iterator]=function(){return this}),at;function st(ct){return function(ut){return lt([ct,ut])}}function lt(ct){if(rt)throw new TypeError("Generator is already executing.");for(;at&&(at=0,ct[0]&&(nt=0)),nt;)try{if(rt=1,it&&(ot=ct[0]&2?it.return:ct[0]?it.throw||((ot=it.return)&&ot.call(it),0):it.next)&&!(ot=ot.call(it,ct[1])).done)return ot;switch(it=0,ot&&(ct=[ct[0]&2,ot.value]),ct[0]){case 0:case 1:ot=ct;break;case 4:return nt.label++,{value:ct[1],done:!1};case 5:nt.label++,it=ct[1],ct=[0];continue;case 7:ct=nt.ops.pop(),nt.trys.pop();continue;default:if(ot=nt.trys,!(ot=ot.length>0&&ot[ot.length-1])&&(ct[0]===6||ct[0]===2)){nt=0;continue}if(ct[0]===3&&(!ot||ct[1]>ot[0]&&ct[1]0)&&!(it=rt.next()).done;)ot.push(it.value)}catch(st){at={error:st}}finally{try{it&&!it.done&&(nt=rt.return)&&nt.call(rt)}finally{if(at)throw at.error}}return ot}function __spread(){for(var tt=[],et=0;et0?rt:tt.name,writable:!1,configurable:!1,enumerable:!0})}return nt}function withMimeType(tt){var et=tt.name,nt=et&&et.lastIndexOf(".")!==-1;if(nt&&!tt.type){var rt=et.split(".").pop().toLowerCase(),it=COMMON_MIME_TYPES.get(rt);it&&Object.defineProperty(tt,"type",{value:it,writable:!1,configurable:!1,enumerable:!0})}return tt}var FILES_TO_IGNORE=[".DS_Store","Thumbs.db"];function fromEvent(tt){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(et){return isObject$n(tt)&&isDataTransfer(tt)?[2,getDataTransferFiles(tt.dataTransfer,tt.type)]:isChangeEvt(tt)?[2,getInputFiles(tt)]:Array.isArray(tt)&&tt.every(function(nt){return"getFile"in nt&&typeof nt.getFile=="function"})?[2,getFsHandleFiles(tt)]:[2,[]]})})}function isDataTransfer(tt){return isObject$n(tt.dataTransfer)}function isChangeEvt(tt){return isObject$n(tt)&&isObject$n(tt.target)}function isObject$n(tt){return typeof tt=="object"&&tt!==null}function getInputFiles(tt){return fromList(tt.target.files).map(function(et){return toFileWithPath(et)})}function getFsHandleFiles(tt){return __awaiter(this,void 0,void 0,function(){var et;return __generator(this,function(nt){switch(nt.label){case 0:return[4,Promise.all(tt.map(function(rt){return rt.getFile()}))];case 1:return et=nt.sent(),[2,et.map(function(rt){return toFileWithPath(rt)})]}})})}function getDataTransferFiles(tt,et){return __awaiter(this,void 0,void 0,function(){var nt,rt;return __generator(this,function(it){switch(it.label){case 0:return tt===null?[2,[]]:tt.items?(nt=fromList(tt.items).filter(function(ot){return ot.kind==="file"}),et!=="drop"?[2,nt]:[4,Promise.all(nt.map(toFilePromises))]):[3,2];case 1:return rt=it.sent(),[2,noIgnoredFiles(flatten$1(rt))];case 2:return[2,noIgnoredFiles(fromList(tt.files).map(function(ot){return toFileWithPath(ot)}))]}})})}function noIgnoredFiles(tt){return tt.filter(function(et){return FILES_TO_IGNORE.indexOf(et.name)===-1})}function fromList(tt){if(tt===null)return[];for(var et=[],nt=0;nttt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);ntnt)return[!1,getTooLargeRejectionErr(nt)];if(tt.sizent)return[!1,getTooLargeRejectionErr(nt)]}return[!0,null]}function isDefined$1(tt){return tt!=null}function allFilesAccepted(tt){var et=tt.files,nt=tt.accept,rt=tt.minSize,it=tt.maxSize,ot=tt.multiple,at=tt.maxFiles;return!ot&&et.length>1||ot&&at>=1&&et.length>at?!1:et.every(function(st){var lt=fileAccepted(st,nt),ct=_slicedToArray$d(lt,1),ut=ct[0],ht=fileMatchSize(st,rt,it),dt=_slicedToArray$d(ht,1),pt=dt[0];return ut&&pt})}function isPropagationStopped(tt){return typeof tt.isPropagationStopped=="function"?tt.isPropagationStopped():typeof tt.cancelBubble<"u"?tt.cancelBubble:!1}function isEvtWithFiles(tt){return tt.dataTransfer?Array.prototype.some.call(tt.dataTransfer.types,function(et){return et==="Files"||et==="application/x-moz-file"}):!!tt.target&&!!tt.target.files}function onDocumentDragOver(tt){tt.preventDefault()}function isIe(tt){return tt.indexOf("MSIE")!==-1||tt.indexOf("Trident/")!==-1}function isEdge(tt){return tt.indexOf("Edge/")!==-1}function isIeOrEdge(){var tt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return isIe(tt)||isEdge(tt)}function composeEventHandlers(){for(var tt=arguments.length,et=new Array(tt),nt=0;nt1?it-1:0),at=1;attt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$h(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}var Dropzone=reactExports.forwardRef(function(tt,et){var nt=tt.children,rt=_objectWithoutProperties$e(tt,_excluded$1D),it=useDropzone(rt),ot=it.open,at=_objectWithoutProperties$e(it,_excluded2$c);return reactExports.useImperativeHandle(et,function(){return{open:ot}},[ot]),React$1.createElement(reactExports.Fragment,null,nt(_objectSpread$r(_objectSpread$r({},at),{},{open:ot})))});Dropzone.displayName="Dropzone";var defaultProps$6={disabled:!1,getFilesFromEvent:fromEvent,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!0};Dropzone.defaultProps=defaultProps$6;Dropzone.propTypes={children:PropTypes.func,accept:PropTypes.oneOfType([PropTypes.string,PropTypes.arrayOf(PropTypes.string)]),multiple:PropTypes.bool,preventDropOnDocument:PropTypes.bool,noClick:PropTypes.bool,noKeyboard:PropTypes.bool,noDrag:PropTypes.bool,noDragEventsBubbling:PropTypes.bool,minSize:PropTypes.number,maxSize:PropTypes.number,maxFiles:PropTypes.number,disabled:PropTypes.bool,getFilesFromEvent:PropTypes.func,onFileDialogCancel:PropTypes.func,onFileDialogOpen:PropTypes.func,useFsAccessApi:PropTypes.bool,onDragEnter:PropTypes.func,onDragLeave:PropTypes.func,onDragOver:PropTypes.func,onDrop:PropTypes.func,onDropAccepted:PropTypes.func,onDropRejected:PropTypes.func,validator:PropTypes.func};var initialState={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function useDropzone(){var tt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},et=_objectSpread$r(_objectSpread$r({},defaultProps$6),tt),nt=et.accept,rt=et.disabled,it=et.getFilesFromEvent,ot=et.maxSize,at=et.minSize,st=et.multiple,lt=et.maxFiles,ct=et.onDragEnter,ut=et.onDragLeave,ht=et.onDragOver,dt=et.onDrop,pt=et.onDropAccepted,mt=et.onDropRejected,gt=et.onFileDialogCancel,yt=et.onFileDialogOpen,bt=et.useFsAccessApi,wt=et.preventDropOnDocument,vt=et.noClick,kt=et.noKeyboard,St=et.noDrag,Tt=et.noDragEventsBubbling,At=et.validator,Et=reactExports.useMemo(function(){return typeof yt=="function"?yt:noop$9},[yt]),Mt=reactExports.useMemo(function(){return typeof gt=="function"?gt:noop$9},[gt]),Lt=reactExports.useRef(null),jt=reactExports.useRef(null),Rt=reactExports.useReducer(reducer$1,initialState),$t=_slicedToArray$c(Rt,2),xt=$t[0],It=$t[1],Ot=xt.isFocused,zt=xt.isFileDialogActive,Ut=xt.draggedFiles,Wt=reactExports.useRef(typeof window<"u"&&window.isSecureContext&&bt&&canUseFileSystemAccessAPI()),Ft=function(){!Wt.current&&zt&&setTimeout(function(){if(jt.current){var Sn=jt.current.files;Sn.length||(It({type:"closeDialog"}),Mt())}},300)};reactExports.useEffect(function(){return window.addEventListener("focus",Ft,!1),function(){window.removeEventListener("focus",Ft,!1)}},[jt,zt,Mt,Wt]);var Nt=reactExports.useRef([]),Ct=function(Sn){Lt.current&&Lt.current.contains(Sn.target)||(Sn.preventDefault(),Nt.current=[])};reactExports.useEffect(function(){return wt&&(document.addEventListener("dragover",onDocumentDragOver,!1),document.addEventListener("drop",Ct,!1)),function(){wt&&(document.removeEventListener("dragover",onDocumentDragOver),document.removeEventListener("drop",Ct))}},[Lt,wt]);var Ht=reactExports.useCallback(function(rn){rn.preventDefault(),rn.persist(),yn(rn),Nt.current=[].concat(_toConsumableArray$e(Nt.current),[rn.target]),isEvtWithFiles(rn)&&Promise.resolve(it(rn)).then(function(Sn){isPropagationStopped(rn)&&!Tt||(It({draggedFiles:Sn,isDragActive:!0,type:"setDraggedFiles"}),ct&&ct(rn))})},[it,ct,Tt]),Jt=reactExports.useCallback(function(rn){rn.preventDefault(),rn.persist(),yn(rn);var Sn=isEvtWithFiles(rn);if(Sn&&rn.dataTransfer)try{rn.dataTransfer.dropEffect="copy"}catch{}return Sn&&ht&&ht(rn),!1},[ht,Tt]),nn=reactExports.useCallback(function(rn){rn.preventDefault(),rn.persist(),yn(rn);var Sn=Nt.current.filter(function(Nn){return Lt.current&&Lt.current.contains(Nn)}),Mn=Sn.indexOf(rn.target);Mn!==-1&&Sn.splice(Mn,1),Nt.current=Sn,!(Sn.length>0)&&(It({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),isEvtWithFiles(rn)&&ut&&ut(rn))},[Lt,ut,Tt]),Yt=reactExports.useCallback(function(rn,Sn){var Mn=[],Nn=[];rn.forEach(function(hn){var Qt=fileAccepted(hn,nt),Zt=_slicedToArray$c(Qt,2),wn=Zt[0],On=Zt[1],jn=fileMatchSize(hn,at,ot),Un=_slicedToArray$c(jn,2),tr=Un[0],qn=Un[1],Xn=At?At(hn):null;if(wn&&tr&&!Xn)Mn.push(hn);else{var Wn=[On,qn];Xn&&(Wn=Wn.concat(Xn)),Nn.push({file:hn,errors:Wn.filter(function(Zn){return Zn})})}}),(!st&&Mn.length>1||st&<>=1&&Mn.length>lt)&&(Mn.forEach(function(hn){Nn.push({file:hn,errors:[TOO_MANY_FILES_REJECTION]})}),Mn.splice(0)),It({acceptedFiles:Mn,fileRejections:Nn,type:"setFiles"}),dt&&dt(Mn,Nn,Sn),Nn.length>0&&mt&&mt(Nn,Sn),Mn.length>0&&pt&&pt(Mn,Sn)},[It,st,nt,at,ot,lt,dt,pt,mt,At]),fn=reactExports.useCallback(function(rn){rn.preventDefault(),rn.persist(),yn(rn),Nt.current=[],isEvtWithFiles(rn)&&Promise.resolve(it(rn)).then(function(Sn){isPropagationStopped(rn)&&!Tt||Yt(Sn,rn)}),It({type:"reset"})},[it,Yt,Tt]),cn=reactExports.useCallback(function(){if(Wt.current){It({type:"openDialog"}),Et();var rn={multiple:st,types:filePickerOptionsTypes(nt)};window.showOpenFilePicker(rn).then(function(Sn){return it(Sn)}).then(function(Sn){Yt(Sn,null),It({type:"closeDialog"})}).catch(function(Sn){isAbort(Sn)?(Mt(Sn),It({type:"closeDialog"})):isSecurityError(Sn)&&(Wt.current=!1,jt.current&&(jt.current.value=null,jt.current.click()))});return}jt.current&&(It({type:"openDialog"}),Et(),jt.current.value=null,jt.current.click())},[It,Et,Mt,bt,Yt,nt,st]),_n=reactExports.useCallback(function(rn){!Lt.current||!Lt.current.isEqualNode(rn.target)||(rn.key===" "||rn.key==="Enter"||rn.keyCode===32||rn.keyCode===13)&&(rn.preventDefault(),cn())},[Lt,cn]),En=reactExports.useCallback(function(){It({type:"focus"})},[]),an=reactExports.useCallback(function(){It({type:"blur"})},[]),en=reactExports.useCallback(function(){vt||(isIeOrEdge()?setTimeout(cn,0):cn())},[vt,cn]),Tn=function(Sn){return rt?null:Sn},Rn=function(Sn){return kt?null:Tn(Sn)},An=function(Sn){return St?null:Tn(Sn)},yn=function(Sn){Tt&&Sn.stopPropagation()},kn=reactExports.useMemo(function(){return function(){var rn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Sn=rn.refKey,Mn=Sn===void 0?"ref":Sn,Nn=rn.role,hn=rn.onKeyDown,Qt=rn.onFocus,Zt=rn.onBlur,wn=rn.onClick,On=rn.onDragEnter,jn=rn.onDragOver,Un=rn.onDragLeave,tr=rn.onDrop,qn=_objectWithoutProperties$e(rn,_excluded3$5);return _objectSpread$r(_objectSpread$r(_defineProperty$v({onKeyDown:Rn(composeEventHandlers(hn,_n)),onFocus:Rn(composeEventHandlers(Qt,En)),onBlur:Rn(composeEventHandlers(Zt,an)),onClick:Tn(composeEventHandlers(wn,en)),onDragEnter:An(composeEventHandlers(On,Ht)),onDragOver:An(composeEventHandlers(jn,Jt)),onDragLeave:An(composeEventHandlers(Un,nn)),onDrop:An(composeEventHandlers(tr,fn)),role:typeof Nn=="string"&&Nn!==""?Nn:"button"},Mn,Lt),!rt&&!kt?{tabIndex:0}:{}),qn)}},[Lt,_n,En,an,en,Ht,Jt,nn,fn,kt,St,rt]),dn=reactExports.useCallback(function(rn){rn.stopPropagation()},[]),gn=reactExports.useMemo(function(){return function(){var rn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Sn=rn.refKey,Mn=Sn===void 0?"ref":Sn,Nn=rn.onChange,hn=rn.onClick,Qt=_objectWithoutProperties$e(rn,_excluded4),Zt=_defineProperty$v({accept:nt,multiple:st,type:"file",style:{display:"none"},onChange:Tn(composeEventHandlers(Nn,fn)),onClick:Tn(composeEventHandlers(hn,dn)),tabIndex:-1},Mn,jt);return _objectSpread$r(_objectSpread$r({},Zt),Qt)}},[jt,nt,st,fn,rt]),Cn=Ut.length,$n=Cn>0&&allFilesAccepted({files:Ut,accept:nt,minSize:at,maxSize:ot,multiple:st,maxFiles:lt}),un=Cn>0&&!$n;return _objectSpread$r(_objectSpread$r({},xt),{},{isDragAccept:$n,isDragReject:un,isFocused:Ot&&!rt,getRootProps:kn,getInputProps:gn,rootRef:Lt,inputRef:jt,open:Tn(cn)})}function reducer$1(tt,et){switch(et.type){case"focus":return _objectSpread$r(_objectSpread$r({},tt),{},{isFocused:!0});case"blur":return _objectSpread$r(_objectSpread$r({},tt),{},{isFocused:!1});case"openDialog":return _objectSpread$r(_objectSpread$r({},initialState),{},{isFileDialogActive:!0});case"closeDialog":return _objectSpread$r(_objectSpread$r({},tt),{},{isFileDialogActive:!1});case"setDraggedFiles":var nt=et.isDragActive,rt=et.draggedFiles;return _objectSpread$r(_objectSpread$r({},tt),{},{draggedFiles:rt,isDragActive:nt});case"setFiles":return _objectSpread$r(_objectSpread$r({},tt),{},{acceptedFiles:et.acceptedFiles,fileRejections:et.fileRejections});case"reset":return _objectSpread$r({},initialState);default:return tt}}function noop$9(){}function createStore$4(tt){let et;const nt=new Set,rt=(ct,ut)=>{const ht=typeof ct=="function"?ct(et):ct;if(ht!==et){const dt=et;et=ut?ht:Object.assign({},et,ht),nt.forEach(pt=>pt(et,dt))}},it=()=>et,ot=(ct,ut=it,ht=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let dt=ut(et);function pt(){const mt=ut(et);if(!ht(dt,mt)){const gt=dt;ct(dt=mt,gt)}}return nt.add(pt),()=>nt.delete(pt)},lt={setState:rt,getState:it,subscribe:(ct,ut,ht)=>ut||ht?ot(ct,ut,ht):(nt.add(ct),()=>nt.delete(ct)),destroy:()=>nt.clear()};return et=tt(rt,it,lt),lt}const isSSR$3=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),useIsomorphicLayoutEffect$3=isSSR$3?reactExports.useEffect:reactExports.useLayoutEffect;function create$3(tt){const et=typeof tt=="function"?createStore$4(tt):tt,nt=(rt=et.getState,it=Object.is)=>{const[,ot]=reactExports.useReducer(yt=>yt+1,0),at=et.getState(),st=reactExports.useRef(at),lt=reactExports.useRef(rt),ct=reactExports.useRef(it),ut=reactExports.useRef(!1),ht=reactExports.useRef();ht.current===void 0&&(ht.current=rt(at));let dt,pt=!1;(st.current!==at||lt.current!==rt||ct.current!==it||ut.current)&&(dt=rt(at),pt=!it(ht.current,dt)),useIsomorphicLayoutEffect$3(()=>{pt&&(ht.current=dt),st.current=at,lt.current=rt,ct.current=it,ut.current=!1});const mt=reactExports.useRef(at);useIsomorphicLayoutEffect$3(()=>{const yt=()=>{try{const wt=et.getState(),vt=lt.current(wt);ct.current(ht.current,vt)||(st.current=wt,ht.current=vt,ot())}catch{ut.current=!0,ot()}},bt=et.subscribe(yt);return et.getState()!==mt.current&&yt(),bt},[]);const gt=pt?dt:ht.current;return reactExports.useDebugValue(gt),gt};return Object.assign(nt,et),nt[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const rt=[nt,et];return{next(){const it=rt.length<=0;return{value:rt.shift(),done:it}}}},nt}const subscribeWithSelector=tt=>(et,nt,rt)=>{const it=rt.subscribe;return rt.subscribe=(at,st,lt)=>{let ct=at;if(st){const ut=(lt==null?void 0:lt.equalityFn)||Object.is;let ht=at(rt.getState());ct=dt=>{const pt=at(dt);if(!ut(ht,pt)){const mt=ht;st(ht=pt,mt)}},lt!=null&<.fireImmediately&&st(ht,ht)}return it(ct)},tt(et,nt,rt)};/*! +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$o(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$o(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$o(tt,et)}}function _arrayLikeToArray$o(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$h(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}var Dropzone=reactExports.forwardRef(function(tt,et){var nt=tt.children,rt=_objectWithoutProperties$e(tt,_excluded$1D),it=useDropzone(rt),ot=it.open,at=_objectWithoutProperties$e(it,_excluded2$c);return reactExports.useImperativeHandle(et,function(){return{open:ot}},[ot]),React$1.createElement(reactExports.Fragment,null,nt(_objectSpread$r(_objectSpread$r({},at),{},{open:ot})))});Dropzone.displayName="Dropzone";var defaultProps$6={disabled:!1,getFilesFromEvent:fromEvent,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!0};Dropzone.defaultProps=defaultProps$6;Dropzone.propTypes={children:PropTypes.func,accept:PropTypes.oneOfType([PropTypes.string,PropTypes.arrayOf(PropTypes.string)]),multiple:PropTypes.bool,preventDropOnDocument:PropTypes.bool,noClick:PropTypes.bool,noKeyboard:PropTypes.bool,noDrag:PropTypes.bool,noDragEventsBubbling:PropTypes.bool,minSize:PropTypes.number,maxSize:PropTypes.number,maxFiles:PropTypes.number,disabled:PropTypes.bool,getFilesFromEvent:PropTypes.func,onFileDialogCancel:PropTypes.func,onFileDialogOpen:PropTypes.func,useFsAccessApi:PropTypes.bool,onDragEnter:PropTypes.func,onDragLeave:PropTypes.func,onDragOver:PropTypes.func,onDrop:PropTypes.func,onDropAccepted:PropTypes.func,onDropRejected:PropTypes.func,validator:PropTypes.func};var initialState={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function useDropzone(){var tt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},et=_objectSpread$r(_objectSpread$r({},defaultProps$6),tt),nt=et.accept,rt=et.disabled,it=et.getFilesFromEvent,ot=et.maxSize,at=et.minSize,st=et.multiple,lt=et.maxFiles,ct=et.onDragEnter,ut=et.onDragLeave,ht=et.onDragOver,dt=et.onDrop,pt=et.onDropAccepted,mt=et.onDropRejected,gt=et.onFileDialogCancel,yt=et.onFileDialogOpen,bt=et.useFsAccessApi,wt=et.preventDropOnDocument,vt=et.noClick,kt=et.noKeyboard,St=et.noDrag,Et=et.noDragEventsBubbling,At=et.validator,Tt=reactExports.useMemo(function(){return typeof yt=="function"?yt:noop$9},[yt]),Mt=reactExports.useMemo(function(){return typeof gt=="function"?gt:noop$9},[gt]),Lt=reactExports.useRef(null),jt=reactExports.useRef(null),Rt=reactExports.useReducer(reducer$1,initialState),$t=_slicedToArray$c(Rt,2),xt=$t[0],It=$t[1],Ot=xt.isFocused,zt=xt.isFileDialogActive,Ut=xt.draggedFiles,Wt=reactExports.useRef(typeof window<"u"&&window.isSecureContext&&bt&&canUseFileSystemAccessAPI()),Ft=function(){!Wt.current&&zt&&setTimeout(function(){if(jt.current){var Sn=jt.current.files;Sn.length||(It({type:"closeDialog"}),Mt())}},300)};reactExports.useEffect(function(){return window.addEventListener("focus",Ft,!1),function(){window.removeEventListener("focus",Ft,!1)}},[jt,zt,Mt,Wt]);var Nt=reactExports.useRef([]),Ct=function(Sn){Lt.current&&Lt.current.contains(Sn.target)||(Sn.preventDefault(),Nt.current=[])};reactExports.useEffect(function(){return wt&&(document.addEventListener("dragover",onDocumentDragOver,!1),document.addEventListener("drop",Ct,!1)),function(){wt&&(document.removeEventListener("dragover",onDocumentDragOver),document.removeEventListener("drop",Ct))}},[Lt,wt]);var Ht=reactExports.useCallback(function(rn){rn.preventDefault(),rn.persist(),yn(rn),Nt.current=[].concat(_toConsumableArray$e(Nt.current),[rn.target]),isEvtWithFiles(rn)&&Promise.resolve(it(rn)).then(function(Sn){isPropagationStopped(rn)&&!Et||(It({draggedFiles:Sn,isDragActive:!0,type:"setDraggedFiles"}),ct&&ct(rn))})},[it,ct,Et]),Jt=reactExports.useCallback(function(rn){rn.preventDefault(),rn.persist(),yn(rn);var Sn=isEvtWithFiles(rn);if(Sn&&rn.dataTransfer)try{rn.dataTransfer.dropEffect="copy"}catch{}return Sn&&ht&&ht(rn),!1},[ht,Et]),nn=reactExports.useCallback(function(rn){rn.preventDefault(),rn.persist(),yn(rn);var Sn=Nt.current.filter(function(Nn){return Lt.current&&Lt.current.contains(Nn)}),Mn=Sn.indexOf(rn.target);Mn!==-1&&Sn.splice(Mn,1),Nt.current=Sn,!(Sn.length>0)&&(It({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),isEvtWithFiles(rn)&&ut&&ut(rn))},[Lt,ut,Et]),Yt=reactExports.useCallback(function(rn,Sn){var Mn=[],Nn=[];rn.forEach(function(hn){var Qt=fileAccepted(hn,nt),Zt=_slicedToArray$c(Qt,2),wn=Zt[0],On=Zt[1],jn=fileMatchSize(hn,at,ot),Un=_slicedToArray$c(jn,2),tr=Un[0],qn=Un[1],Xn=At?At(hn):null;if(wn&&tr&&!Xn)Mn.push(hn);else{var Wn=[On,qn];Xn&&(Wn=Wn.concat(Xn)),Nn.push({file:hn,errors:Wn.filter(function(Zn){return Zn})})}}),(!st&&Mn.length>1||st&<>=1&&Mn.length>lt)&&(Mn.forEach(function(hn){Nn.push({file:hn,errors:[TOO_MANY_FILES_REJECTION]})}),Mn.splice(0)),It({acceptedFiles:Mn,fileRejections:Nn,type:"setFiles"}),dt&&dt(Mn,Nn,Sn),Nn.length>0&&mt&&mt(Nn,Sn),Mn.length>0&&pt&&pt(Mn,Sn)},[It,st,nt,at,ot,lt,dt,pt,mt,At]),fn=reactExports.useCallback(function(rn){rn.preventDefault(),rn.persist(),yn(rn),Nt.current=[],isEvtWithFiles(rn)&&Promise.resolve(it(rn)).then(function(Sn){isPropagationStopped(rn)&&!Et||Yt(Sn,rn)}),It({type:"reset"})},[it,Yt,Et]),cn=reactExports.useCallback(function(){if(Wt.current){It({type:"openDialog"}),Tt();var rn={multiple:st,types:filePickerOptionsTypes(nt)};window.showOpenFilePicker(rn).then(function(Sn){return it(Sn)}).then(function(Sn){Yt(Sn,null),It({type:"closeDialog"})}).catch(function(Sn){isAbort(Sn)?(Mt(Sn),It({type:"closeDialog"})):isSecurityError(Sn)&&(Wt.current=!1,jt.current&&(jt.current.value=null,jt.current.click()))});return}jt.current&&(It({type:"openDialog"}),Tt(),jt.current.value=null,jt.current.click())},[It,Tt,Mt,bt,Yt,nt,st]),_n=reactExports.useCallback(function(rn){!Lt.current||!Lt.current.isEqualNode(rn.target)||(rn.key===" "||rn.key==="Enter"||rn.keyCode===32||rn.keyCode===13)&&(rn.preventDefault(),cn())},[Lt,cn]),En=reactExports.useCallback(function(){It({type:"focus"})},[]),an=reactExports.useCallback(function(){It({type:"blur"})},[]),en=reactExports.useCallback(function(){vt||(isIeOrEdge()?setTimeout(cn,0):cn())},[vt,cn]),Tn=function(Sn){return rt?null:Sn},Rn=function(Sn){return kt?null:Tn(Sn)},An=function(Sn){return St?null:Tn(Sn)},yn=function(Sn){Et&&Sn.stopPropagation()},kn=reactExports.useMemo(function(){return function(){var rn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Sn=rn.refKey,Mn=Sn===void 0?"ref":Sn,Nn=rn.role,hn=rn.onKeyDown,Qt=rn.onFocus,Zt=rn.onBlur,wn=rn.onClick,On=rn.onDragEnter,jn=rn.onDragOver,Un=rn.onDragLeave,tr=rn.onDrop,qn=_objectWithoutProperties$e(rn,_excluded3$5);return _objectSpread$r(_objectSpread$r(_defineProperty$v({onKeyDown:Rn(composeEventHandlers(hn,_n)),onFocus:Rn(composeEventHandlers(Qt,En)),onBlur:Rn(composeEventHandlers(Zt,an)),onClick:Tn(composeEventHandlers(wn,en)),onDragEnter:An(composeEventHandlers(On,Ht)),onDragOver:An(composeEventHandlers(jn,Jt)),onDragLeave:An(composeEventHandlers(Un,nn)),onDrop:An(composeEventHandlers(tr,fn)),role:typeof Nn=="string"&&Nn!==""?Nn:"button"},Mn,Lt),!rt&&!kt?{tabIndex:0}:{}),qn)}},[Lt,_n,En,an,en,Ht,Jt,nn,fn,kt,St,rt]),dn=reactExports.useCallback(function(rn){rn.stopPropagation()},[]),gn=reactExports.useMemo(function(){return function(){var rn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},Sn=rn.refKey,Mn=Sn===void 0?"ref":Sn,Nn=rn.onChange,hn=rn.onClick,Qt=_objectWithoutProperties$e(rn,_excluded4),Zt=_defineProperty$v({accept:nt,multiple:st,type:"file",style:{display:"none"},onChange:Tn(composeEventHandlers(Nn,fn)),onClick:Tn(composeEventHandlers(hn,dn)),tabIndex:-1},Mn,jt);return _objectSpread$r(_objectSpread$r({},Zt),Qt)}},[jt,nt,st,fn,rt]),Cn=Ut.length,$n=Cn>0&&allFilesAccepted({files:Ut,accept:nt,minSize:at,maxSize:ot,multiple:st,maxFiles:lt}),un=Cn>0&&!$n;return _objectSpread$r(_objectSpread$r({},xt),{},{isDragAccept:$n,isDragReject:un,isFocused:Ot&&!rt,getRootProps:kn,getInputProps:gn,rootRef:Lt,inputRef:jt,open:Tn(cn)})}function reducer$1(tt,et){switch(et.type){case"focus":return _objectSpread$r(_objectSpread$r({},tt),{},{isFocused:!0});case"blur":return _objectSpread$r(_objectSpread$r({},tt),{},{isFocused:!1});case"openDialog":return _objectSpread$r(_objectSpread$r({},initialState),{},{isFileDialogActive:!0});case"closeDialog":return _objectSpread$r(_objectSpread$r({},tt),{},{isFileDialogActive:!1});case"setDraggedFiles":var nt=et.isDragActive,rt=et.draggedFiles;return _objectSpread$r(_objectSpread$r({},tt),{},{draggedFiles:rt,isDragActive:nt});case"setFiles":return _objectSpread$r(_objectSpread$r({},tt),{},{acceptedFiles:et.acceptedFiles,fileRejections:et.fileRejections});case"reset":return _objectSpread$r({},initialState);default:return tt}}function noop$9(){}function createStore$4(tt){let et;const nt=new Set,rt=(ct,ut)=>{const ht=typeof ct=="function"?ct(et):ct;if(ht!==et){const dt=et;et=ut?ht:Object.assign({},et,ht),nt.forEach(pt=>pt(et,dt))}},it=()=>et,ot=(ct,ut=it,ht=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let dt=ut(et);function pt(){const mt=ut(et);if(!ht(dt,mt)){const gt=dt;ct(dt=mt,gt)}}return nt.add(pt),()=>nt.delete(pt)},lt={setState:rt,getState:it,subscribe:(ct,ut,ht)=>ut||ht?ot(ct,ut,ht):(nt.add(ct),()=>nt.delete(ct)),destroy:()=>nt.clear()};return et=tt(rt,it,lt),lt}const isSSR$3=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),useIsomorphicLayoutEffect$3=isSSR$3?reactExports.useEffect:reactExports.useLayoutEffect;function create$3(tt){const et=typeof tt=="function"?createStore$4(tt):tt,nt=(rt=et.getState,it=Object.is)=>{const[,ot]=reactExports.useReducer(yt=>yt+1,0),at=et.getState(),st=reactExports.useRef(at),lt=reactExports.useRef(rt),ct=reactExports.useRef(it),ut=reactExports.useRef(!1),ht=reactExports.useRef();ht.current===void 0&&(ht.current=rt(at));let dt,pt=!1;(st.current!==at||lt.current!==rt||ct.current!==it||ut.current)&&(dt=rt(at),pt=!it(ht.current,dt)),useIsomorphicLayoutEffect$3(()=>{pt&&(ht.current=dt),st.current=at,lt.current=rt,ct.current=it,ut.current=!1});const mt=reactExports.useRef(at);useIsomorphicLayoutEffect$3(()=>{const yt=()=>{try{const wt=et.getState(),vt=lt.current(wt);ct.current(ht.current,vt)||(st.current=wt,ht.current=vt,ot())}catch{ut.current=!0,ot()}},bt=et.subscribe(yt);return et.getState()!==mt.current&&yt(),bt},[]);const gt=pt?dt:ht.current;return reactExports.useDebugValue(gt),gt};return Object.assign(nt,et),nt[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const rt=[nt,et];return{next(){const it=rt.length<=0;return{value:rt.shift(),done:it}}}},nt}const subscribeWithSelector=tt=>(et,nt,rt)=>{const it=rt.subscribe;return rt.subscribe=(at,st,lt)=>{let ct=at;if(st){const ut=(lt==null?void 0:lt.equalityFn)||Object.is;let ht=at(rt.getState());ct=dt=>{const pt=at(dt);if(!ut(ht,pt)){const mt=ht;st(ht=pt,mt)}},lt!=null&<.fireImmediately&&st(ht,ht)}return it(ct)},tt(et,nt,rt)};/*! * isobject * * Copyright (c) 2014-2017, Jon Schlinkert. @@ -95,7 +95,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * * Copyright (c) 2014-2015, 2017, Jon Schlinkert. * Released under the MIT License. - */var split=splitString,extend$3=extendShallow,isPlainObject$2=isPlainObject$4,isObject$h=isExtendable,setValue=function(tt,et,nt){if(!isObject$h(tt)||(Array.isArray(et)&&(et=[].concat.apply([],et).join(".")),typeof et!="string"))return tt;for(var rt=split(et,{sep:".",brackets:!0}).filter(isValidKey),it=rt.length,ot=-1,at=tt;++ottt.filter(Boolean).join(".");function getKeyPath(tt){const et=tt.split(".");return[et.pop(),et.join(".")||void 0]}function getValuesForPaths(tt,et){return Object.entries(pick$1(tt,et)).reduce((nt,[,{value:rt,disabled:it,key:ot}])=>(nt[ot]=it?void 0:rt,nt),{})}function useCompareMemoize(tt,et){const nt=reactExports.useRef();return(et?dequal:shallow$1)(tt,nt.current)||(nt.current=tt),nt.current}function useDeepMemo(tt,et){return reactExports.useMemo(tt,useCompareMemoize(et,!0))}function useToggle(tt){const et=reactExports.useRef(null),nt=reactExports.useRef(null),rt=reactExports.useRef(!0);return reactExports.useLayoutEffect(()=>{tt||(et.current.style.height="0px",et.current.style.overflow="hidden")},[]),reactExports.useEffect(()=>{if(rt.current){rt.current=!1;return}let it;const ot=et.current,at=()=>{tt&&(ot.style.removeProperty("height"),ot.style.removeProperty("overflow"),nt.current.scrollIntoView({behavior:"smooth",block:"nearest"}))};ot.addEventListener("transitionend",at,{once:!0});const{height:st}=nt.current.getBoundingClientRect();return ot.style.height=st+"px",tt||(ot.style.overflow="hidden",it=window.setTimeout(()=>ot.style.height="0px",50)),()=>{ot.removeEventListener("transitionend",at),clearTimeout(it)}},[tt]),{wrapperRef:et,contentRef:nt}}const useVisiblePaths=tt=>{const[et,nt]=reactExports.useState(tt.getVisiblePaths());return reactExports.useEffect(()=>{nt(tt.getVisiblePaths());const rt=tt.useStore.subscribe(tt.getVisiblePaths,nt,{equalityFn:shallow$1});return()=>rt()},[tt]),et};function useValuesForPath(tt,et,nt){return tt.useStore(it=>{const ot=_objectSpread2$1(_objectSpread2$1({},nt),it.data);return getValuesForPaths(ot,et)},shallow$1)}function usePopin(tt=3){const et=reactExports.useRef(null),nt=reactExports.useRef(null),[rt,it]=reactExports.useState(!1),ot=reactExports.useCallback(()=>it(!0),[]),at=reactExports.useCallback(()=>it(!1),[]);return reactExports.useLayoutEffect(()=>{if(rt){const{bottom:st,top:lt,left:ct}=et.current.getBoundingClientRect(),{height:ut}=nt.current.getBoundingClientRect(),ht=st+ut>window.innerHeight-40?"up":"down";nt.current.style.position="fixed",nt.current.style.zIndex="10000",nt.current.style.left=ct+"px",ht==="down"?nt.current.style.top=st+tt+"px":nt.current.style.bottom=window.innerHeight-lt+tt+"px"}},[tt,rt]),{popinRef:et,wrapperRef:nt,shown:rt,show:ot,hide:at}}k$8([namesPlugin]);const convertMap={rgb:"toRgb",hsl:"toHsl",hsv:"toHsv",hex:"toHex"};v8n.extend({color:()=>tt=>w$5(tt).isValid()});const schema$2=tt=>v8n().color().test(tt);function convert$6(tt,{format:et,hasAlpha:nt,isString:rt}){const it=convertMap[et]+(rt&&et!=="hex"?"String":""),ot=tt[it]();return typeof ot=="object"&&!nt?omit$1(ot,["a"]):ot}const sanitize$2=(tt,et)=>{const nt=w$5(tt);if(!nt.isValid())throw Error("Invalid color");return convert$6(nt,et)},format$1$1=(tt,et)=>convert$6(w$5(tt),_objectSpread2$1(_objectSpread2$1({},et),{},{isString:!0,format:"hex"})),normalize$3=({value:tt})=>{const et=I$2(tt),nt=et==="name"?"hex":et,rt=typeof tt=="object"?"a"in tt:et==="hex"&&tt.length===8||/^(rgba)|(hsla)|(hsva)/.test(tt),it={format:nt,hasAlpha:rt,isString:typeof tt=="string"};return{value:sanitize$2(tt,it),settings:it}};var props$2=Object.freeze({__proto__:null,schema:schema$2,sanitize:sanitize$2,format:format$1$1,normalize:normalize$3});const ColorPreview=styled$5("div",{position:"relative",boxSizing:"border-box",borderRadius:"$sm",overflow:"hidden",cursor:"pointer",height:"$rowHeight",width:"$rowHeight",backgroundColor:"#fff",backgroundImage:`url('data:image/svg+xml;charset=utf-8,')`,$inputStyle:"",$hover:"",zIndex:1,variants:{active:{true:{$inputStyle:"$accent1"}}},"&::before":{content:'""',position:"absolute",top:0,bottom:0,right:0,left:0,backgroundColor:"currentColor",zIndex:1}}),PickerContainer=styled$5("div",{position:"relative",display:"grid",gridTemplateColumns:"$sizes$rowHeight auto",columnGap:"$colGap",alignItems:"center"}),PickerWrapper=styled$5("div",{width:"$colorPickerWidth",height:"$colorPickerHeight",".react-colorful":{width:"100%",height:"100%",boxShadow:"$level2",cursor:"crosshair"},".react-colorful__saturation":{borderRadius:"$sm $sm 0 0"},".react-colorful__alpha, .react-colorful__hue":{height:10},".react-colorful__last-control":{borderRadius:"0 0 $sm $sm"},".react-colorful__pointer":{height:12,width:12}});function convertToRgb(tt,et){return et!=="rgb"?w$5(tt).toRgb():tt}function Color$2({value:tt,displayValue:et,settings:nt,onUpdate:rt}){const{emitOnEditStart:it,emitOnEditEnd:ot}=useInputContext(),{format:at,hasAlpha:st}=nt,{popinRef:lt,wrapperRef:ct,shown:ut,show:ht,hide:dt}=usePopin(),pt=reactExports.useRef(0),[mt,gt]=reactExports.useState(()=>convertToRgb(tt,at)),yt=st?Ce:Ne$1,bt=()=>{gt(convertToRgb(tt,at)),ht(),it()},wt=()=>{dt(),ot(),window.clearTimeout(pt.current)},vt=()=>{pt.current=window.setTimeout(wt,500)};return reactExports.useEffect(()=>()=>window.clearTimeout(pt.current),[]),React$1.createElement(React$1.Fragment,null,React$1.createElement(ColorPreview,{ref:lt,active:ut,onClick:()=>bt(),style:{color:et}}),ut&&React$1.createElement(Portal$3,null,React$1.createElement(Overlay$1,{onPointerUp:wt}),React$1.createElement(PickerWrapper,{ref:ct,onMouseEnter:()=>window.clearTimeout(pt.current),onMouseLeave:kt=>kt.buttons===0&&vt()},React$1.createElement(yt,{color:mt,onChange:rt}))))}function ColorComponent(){const{value:tt,displayValue:et,label:nt,onChange:rt,onUpdate:it,settings:ot}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,nt),React$1.createElement(PickerContainer,null,React$1.createElement(Color$2,{value:tt,displayValue:et,onChange:rt,onUpdate:it,settings:ot}),React$1.createElement(ValueInput,{value:et,onChange:rt,onUpdate:it})))}var color$3=_objectSpread2$1({component:ColorComponent},props$2);function Vector3dComponent(){const{label:tt,displayValue:et,onUpdate:nt,settings:rt}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(Vector,{value:et,settings:rt,onUpdate:nt}))}var vector3d=_objectSpread2$1({component:Vector3dComponent},getVectorPlugin(["x","y","z"]));const JoystickTrigger=styled$5("div",{$flexCenter:"",position:"relative",backgroundColor:"$elevation3",borderRadius:"$sm",cursor:"pointer",height:"$rowHeight",width:"$rowHeight",touchAction:"none",$draggable:"",$hover:"","&:active":{cursor:"none"},"&::after":{content:'""',backgroundColor:"$accent2",height:4,width:4,borderRadius:2}}),JoystickPlayground=styled$5("div",{$flexCenter:"",width:"$joystickWidth",height:"$joystickHeight",borderRadius:"$sm",boxShadow:"$level2",position:"fixed",zIndex:1e4,overflow:"hidden",$draggable:"",transform:"translate(-50%, -50%)",variants:{isOutOfBounds:{true:{backgroundColor:"$elevation1"},false:{backgroundColor:"$elevation3"}}},"> div":{position:"absolute",$flexCenter:"",borderStyle:"solid",borderWidth:1,borderColor:"$highlight1",backgroundColor:"$elevation3",width:"80%",height:"80%","&::after,&::before":{content:'""',position:"absolute",zindex:10,backgroundColor:"$highlight1"},"&::before":{width:"100%",height:1},"&::after":{height:"100%",width:1}},"> span":{position:"relative",zindex:100,width:10,height:10,backgroundColor:"$accent2",borderRadius:"50%"}});function Joystick({value:tt,settings:et,onUpdate:nt}){const rt=reactExports.useRef(),it=reactExports.useRef(0),ot=reactExports.useRef(0),at=reactExports.useRef(1),[st,lt]=reactExports.useState(!1),[ct,ut]=reactExports.useState(!1),[ht,dt]=useTransform(),pt=reactExports.useRef(null),mt=reactExports.useRef(null);reactExports.useLayoutEffect(()=>{if(st){const{top:Rt,left:$t,width:xt,height:It}=pt.current.getBoundingClientRect();mt.current.style.left=$t+xt/2+"px",mt.current.style.top=Rt+It/2+"px"}},[st]);const{keys:[gt,yt],joystick:bt}=et,wt=bt==="invertY"?1:-1,{[gt]:{step:vt},[yt]:{step:kt}}=et,St=useTh("sizes","joystickWidth"),Tt=useTh("sizes","joystickHeight"),At=parseFloat(St)*.8/2,Et=parseFloat(Tt)*.8/2,Mt=reactExports.useCallback(()=>{rt.current||(ut(!0),it.current&&dt({x:it.current*At}),ot.current&&dt({y:ot.current*-Et}),rt.current=window.setInterval(()=>{nt(Rt=>{const $t=vt*it.current*at.current,xt=wt*kt*ot.current*at.current;return Array.isArray(Rt)?{[gt]:Rt[0]+$t,[yt]:Rt[1]+xt}:{[gt]:Rt[gt]+$t,[yt]:Rt[yt]+xt}})},16))},[At,Et,nt,dt,vt,kt,gt,yt,wt]),Lt=reactExports.useCallback(()=>{window.clearTimeout(rt.current),rt.current=void 0,ut(!1)},[]);reactExports.useEffect(()=>{function Rt($t){at.current=multiplyStep($t)}return window.addEventListener("keydown",Rt),window.addEventListener("keyup",Rt),()=>{window.clearTimeout(rt.current),window.removeEventListener("keydown",Rt),window.removeEventListener("keyup",Rt)}},[]);const jt=useDrag(({first:Rt,active:$t,delta:[xt,It],movement:[Ot,zt]})=>{Rt&<(!0);const Ut=clamp$7(Ot,-At,At),Wt=clamp$7(zt,-Et,Et);it.current=Math.abs(Ot)>Math.abs(Ut)?Math.sign(Ot-Ut):0,ot.current=Math.abs(zt)>Math.abs(Wt)?Math.sign(Wt-zt):0;let Ft=tt[gt],Nt=tt[yt];$t?(it.current||(Ft+=xt*vt*at.current,dt({x:Ut})),ot.current||(Nt-=wt*It*kt*at.current,dt({y:Wt})),it.current||ot.current?Mt():Lt(),nt({[gt]:Ft,[yt]:Nt})):(lt(!1),it.current=0,ot.current=0,dt({x:0,y:0}),Lt())});return React$1.createElement(JoystickTrigger,_extends$q({ref:pt},jt()),st&&React$1.createElement(Portal$3,null,React$1.createElement(JoystickPlayground,{ref:mt,isOutOfBounds:ct},React$1.createElement("div",null),React$1.createElement("span",{ref:ht}))))}const Container$1=styled$5("div",{display:"grid",columnGap:"$colGap",variants:{withJoystick:{true:{gridTemplateColumns:"$sizes$rowHeight auto"},false:{gridTemplateColumns:"auto"}}}});function Vector2dComponent(){const{label:tt,displayValue:et,onUpdate:nt,settings:rt}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(Container$1,{withJoystick:!!rt.joystick},rt.joystick&&React$1.createElement(Joystick,{value:et,settings:rt,onUpdate:nt}),React$1.createElement(Vector,{value:et,settings:rt,onUpdate:nt})))}const _excluded$7$1=["joystick"],plugin=getVectorPlugin(["x","y"]),normalize$2$1=tt=>{let{joystick:et=!0}=tt,nt=_objectWithoutProperties$f(tt,_excluded$7$1);const{value:rt,settings:it}=plugin.normalize(nt);return{value:rt,settings:_objectSpread2$1(_objectSpread2$1({},it),{},{joystick:et})}};var vector2d=_objectSpread2$1(_objectSpread2$1({component:Vector2dComponent},plugin),{},{normalize:normalize$2$1});const sanitize$1=tt=>{if(tt!==void 0){if(tt instanceof File)try{return URL.createObjectURL(tt)}catch{return}if(typeof tt=="string"&&tt.indexOf("blob:")===0)return tt;throw Error("Invalid image format [undefined | blob | File].")}},schema$1=(tt,et)=>typeof et=="object"&&"image"in et,normalize$1$1=({image:tt})=>({value:tt});var props$1=Object.freeze({__proto__:null,sanitize:sanitize$1,schema:schema$1,normalize:normalize$1$1});const ImageContainer=styled$5("div",{position:"relative",display:"grid",gridTemplateColumns:"$sizes$rowHeight auto 20px",columnGap:"$colGap",alignItems:"center"}),DropZone=styled$5("div",{$flexCenter:"",overflow:"hidden",height:"$rowHeight",background:"$elevation3",textAlign:"center",color:"inherit",borderRadius:"$sm",outline:"none",userSelect:"none",cursor:"pointer",$inputStyle:"",$hover:"",$focusWithin:"",$active:"$accent1 $elevation1",variants:{isDragAccept:{true:{$inputStyle:"$accent1",backgroundColor:"$elevation1"}}}}),ImagePreview=styled$5("div",{boxSizing:"border-box",borderRadius:"$sm",height:"$rowHeight",width:"$rowHeight",$inputStyle:"",backgroundSize:"cover",backgroundPosition:"center",variants:{hasImage:{true:{cursor:"pointer",$hover:"",$active:""}}}}),ImageLargePreview=styled$5("div",{$flexCenter:"",width:"$imagePreviewWidth",height:"$imagePreviewHeight",borderRadius:"$sm",boxShadow:"$level2",pointerEvents:"none",$inputStyle:"",backgroundSize:"cover",backgroundPosition:"center"}),Instructions=styled$5("div",{fontSize:"0.8em",height:"100%",padding:"$rowGap $md"}),Remove=styled$5("div",{$flexCenter:"",top:"0",right:"0",marginRight:"$sm",height:"100%",cursor:"pointer",variants:{disabled:{true:{color:"$elevation3",cursor:"default"}}},"&::after,&::before":{content:'""',position:"absolute",height:2,width:10,borderRadius:1,backgroundColor:"currentColor"},"&::after":{transform:"rotate(45deg)"},"&::before":{transform:"rotate(-45deg)"}});function ImageComponent(){const{label:tt,value:et,onUpdate:nt,disabled:rt}=useInputContext(),{popinRef:it,wrapperRef:ot,shown:at,show:st,hide:lt}=usePopin(),ct=reactExports.useCallback(mt=>{mt.length&&nt(mt[0])},[nt]),ut=reactExports.useCallback(mt=>{mt.stopPropagation(),nt(void 0)},[nt]),{getRootProps:ht,getInputProps:dt,isDragAccept:pt}=useDropzone({maxFiles:1,accept:"image/*",onDrop:ct,disabled:rt});return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(ImageContainer,null,React$1.createElement(ImagePreview,{ref:it,hasImage:!!et,onPointerDown:()=>!!et&&st(),onPointerUp:lt,style:{backgroundImage:et?`url(${et})`:"none"}}),at&&!!et&&React$1.createElement(Portal$3,null,React$1.createElement(Overlay$1,{onPointerUp:lt,style:{cursor:"pointer"}}),React$1.createElement(ImageLargePreview,{ref:ot,style:{backgroundImage:`url(${et})`}})),React$1.createElement(DropZone,ht({isDragAccept:pt}),React$1.createElement("input",dt()),React$1.createElement(Instructions,null,pt?"drop image":"click or drop")),React$1.createElement(Remove,{onClick:ut,disabled:!et})))}var image=_objectSpread2$1({component:ImageComponent},props$1);const number$5=v8n().number(),schema=(tt,et)=>v8n().array().length(2).every.number().test(tt)&&v8n().schema({min:number$5,max:number$5}).test(et),format$2=tt=>({min:tt[0],max:tt[1]}),sanitize=(tt,{bounds:[et,nt]},rt)=>{const it=Array.isArray(tt)?format$2(tt):tt,ot={min:rt[0],max:rt[1]},{min:at,max:st}=_objectSpread2$1(_objectSpread2$1({},ot),it);return[clamp$7(Number(at),et,Math.max(et,st)),clamp$7(Number(st),Math.min(nt,at),nt)]},normalize$4=({value:tt,min:et,max:nt})=>{const rt={min:et,max:nt},it=normalizeKeyedNumberSettings(format$2(tt),{min:rt,max:rt}),ot=[et,nt],at=_objectSpread2$1(_objectSpread2$1({},it),{},{bounds:ot});return{value:sanitize(format$2(tt),at,tt),settings:at}};var props$3=Object.freeze({__proto__:null,schema,format:format$2,sanitize,normalize:normalize$4});const _excluded$6$1=["value","bounds","onDrag"],_excluded2$1$1=["bounds"],Container$2=styled$5("div",{display:"grid",columnGap:"$colGap",gridTemplateColumns:"auto calc($sizes$numberInputMinWidth * 2 + $space$rowGap)"});function IntervalSlider(tt){let{value:et,bounds:[nt,rt],onDrag:it}=tt,ot=_objectWithoutProperties$f(tt,_excluded$6$1);const at=reactExports.useRef(null),st=reactExports.useRef(null),lt=reactExports.useRef(null),ct=reactExports.useRef(0),ut=useTh("sizes","scrubberWidth"),ht=useDrag(({event:mt,first:gt,xy:[yt],movement:[bt],memo:wt={}})=>{if(gt){const{width:kt,left:St}=at.current.getBoundingClientRect();ct.current=kt-parseFloat(ut);const Tt=(mt==null?void 0:mt.target)===st.current||(mt==null?void 0:mt.target)===lt.current;wt.pos=invertedRange((yt-St)/kt,nt,rt);const At=Math.abs(wt.pos-et.min)-Math.abs(wt.pos-et.max);wt.key=At<0||At===0&&wt.pos<=et.min?"min":"max",Tt&&(wt.pos=et[wt.key])}const vt=wt.pos+invertedRange(bt/ct.current,0,rt-nt);return it({[wt.key]:sanitizeStep(vt,ot[wt.key])}),wt}),dt=`calc(${range$8(et.min,nt,rt)} * (100% - ${ut} - 8px) + 4px)`,pt=`calc(${1-range$8(et.max,nt,rt)} * (100% - ${ut} - 8px) + 4px)`;return React$1.createElement(RangeWrapper,_extends$q({ref:at},ht()),React$1.createElement(Range,null,React$1.createElement(Indicator,{style:{left:dt,right:pt}})),React$1.createElement(Scrubber,{position:"left",ref:st,style:{left:dt}}),React$1.createElement(Scrubber,{position:"right",ref:lt,style:{right:pt}}))}function IntervalComponent(){const{label:tt,displayValue:et,onUpdate:nt,settings:rt}=useInputContext(),it=_objectWithoutProperties$f(rt,_excluded2$1$1);return React$1.createElement(React$1.Fragment,null,React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(Container$2,null,React$1.createElement(IntervalSlider,_extends$q({value:et},rt,{onDrag:nt})),React$1.createElement(Vector,{value:et,settings:it,onUpdate:nt,innerLabelTrim:0}))))}var interval$1=_objectSpread2$1({component:IntervalComponent},props$3);const createEventEmitter=()=>{const tt=new Map;return{on:(et,nt)=>{let rt=tt.get(et);rt===void 0&&(rt=new Set,tt.set(et,rt)),rt.add(nt)},off:(et,nt)=>{const rt=tt.get(et);rt!==void 0&&(rt.delete(nt),rt.size===0&&tt.delete(et))},emit:(et,...nt)=>{const rt=tt.get(et);if(rt!==void 0)for(const it of rt)it(...nt)}}},_excluded$5$1=["type","value"],_excluded2$b=["onChange","transient","onEditStart","onEditEnd"],Store=function(){const et=create$3(subscribeWithSelector(()=>({data:{}}))),nt=createEventEmitter();this.storeId=getUid(),this.useStore=et;const rt={},it=new Set;this.getVisiblePaths=()=>{const at=this.getData(),st=Object.keys(at),lt=[];Object.entries(rt).forEach(([ut,ht])=>{ht.render&&st.some(dt=>dt.indexOf(ut)===0)&&!ht.render(this.get)&<.push(ut+".")});const ct=[];return it.forEach(ut=>{ut in at&&at[ut].__refCount>0&<.every(ht=>ut.indexOf(ht)===-1)&&(!at[ut].render||at[ut].render(this.get))&&ct.push(ut)}),ct},this.setOrderedPaths=at=>{at.forEach(st=>it.add(st))},this.orderPaths=at=>(this.setOrderedPaths(at),at),this.disposePaths=at=>{et.setState(st=>{const lt=st.data;return at.forEach(ct=>{if(ct in lt){const ut=lt[ct];ut.__refCount--,ut.__refCount===0&&ut.type in SpecialInputs&&delete lt[ct]}}),{data:lt}})},this.dispose=()=>{et.setState(()=>({data:{}}))},this.getFolderSettings=at=>rt[at]||{},this.getData=()=>et.getState().data,this.addData=(at,st)=>{et.setState(lt=>{const ct=lt.data;return Object.entries(at).forEach(([ut,ht])=>{let dt=ct[ut];if(dt){const{type:pt,value:mt}=ht,gt=_objectWithoutProperties$f(ht,_excluded$5$1);pt!==dt.type?warn$3(LevaErrors.INPUT_TYPE_OVERRIDE,pt):((dt.__refCount===0||st)&&Object.assign(dt,gt),dt.__refCount++)}else ct[ut]=_objectSpread2$1(_objectSpread2$1({},ht),{},{__refCount:1})}),{data:ct}})},this.setValueAtPath=(at,st,lt)=>{et.setState(ct=>{const ut=ct.data;return updateInput(ut[at],st,at,this,lt),{data:ut}})},this.setSettingsAtPath=(at,st)=>{et.setState(lt=>{const ct=lt.data;return ct[at].settings=_objectSpread2$1(_objectSpread2$1({},ct[at].settings),st),{data:ct}})},this.disableInputAtPath=(at,st)=>{et.setState(lt=>{const ct=lt.data;return ct[at].disabled=st,{data:ct}})},this.set=(at,st)=>{et.setState(lt=>{const ct=lt.data;return Object.entries(at).forEach(([ut,ht])=>{try{updateInput(ct[ut],ht,void 0,void 0,st)}catch{}}),{data:ct}})},this.getInput=at=>{try{return this.getData()[at]}catch{warn$3(LevaErrors.PATH_DOESNT_EXIST,at)}},this.get=at=>{var st;return(st=this.getInput(at))===null||st===void 0?void 0:st.value},this.emitOnEditStart=at=>{nt.emit(`onEditStart:${at}`,this.get(at),at,_objectSpread2$1(_objectSpread2$1({},this.getInput(at)),{},{get:this.get}))},this.emitOnEditEnd=at=>{nt.emit(`onEditEnd:${at}`,this.get(at),at,_objectSpread2$1(_objectSpread2$1({},this.getInput(at)),{},{get:this.get}))},this.subscribeToEditStart=(at,st)=>{const lt=`onEditStart:${at}`;return nt.on(lt,st),()=>nt.off(lt,st)},this.subscribeToEditEnd=(at,st)=>{const lt=`onEditEnd:${at}`;return nt.on(lt,st),()=>nt.off(lt,st)};const ot=(at,st,lt)=>{const ct={};return Object.entries(at).forEach(([ut,ht])=>{if(ut==="")return warn$3(LevaErrors.EMPTY_KEY);let dt=join(st,ut);if(ht.type===SpecialInputs.FOLDER){const pt=ot(ht.schema,dt,lt);Object.assign(ct,pt),dt in rt||(rt[dt]=ht.settings)}else if(ut in lt)warn$3(LevaErrors.DUPLICATE_KEYS,ut,dt,lt[ut].path);else{const pt=normalizeInput(ht,ut,dt,ct);if(pt){const{type:mt,options:gt,input:yt}=pt,{onChange:bt,transient:wt,onEditStart:vt,onEditEnd:kt}=gt,St=_objectWithoutProperties$f(gt,_excluded2$b);ct[dt]=_objectSpread2$1(_objectSpread2$1(_objectSpread2$1({type:mt},St),yt),{},{fromPanel:!0}),lt[ut]={path:dt,onChange:bt,transient:wt,onEditStart:vt,onEditEnd:kt}}else warn$3(LevaErrors.UNKNOWN_INPUT,dt,ht)}}),ct};this.getDataFromSchema=at=>{const st={};return[ot(at,"",st),st]}},levaStore=new Store,defaultSettings$2={collapsed:!1};function folder(tt,et){return{type:SpecialInputs.FOLDER,schema:tt,settings:_objectSpread2$1(_objectSpread2$1({},defaultSettings$2),et)}}const isInput=tt=>"__levaInput"in tt,buildTree=(tt,et)=>{const nt={},rt=et?et.toLowerCase():null;return tt.forEach(it=>{const[ot,at]=getKeyPath(it);(!rt||ot.toLowerCase().indexOf(rt)>-1)&&merge$2(nt,at,{[ot]:{__levaInput:!0,path:it}})}),nt},_excluded$4$1=["type","label","path","valueKey","value","settings","setValue","disabled"];function ControlInput(tt){let{type:et,label:nt,path:rt,valueKey:it,value:ot,settings:at,setValue:st,disabled:lt}=tt,ct=_objectWithoutProperties$f(tt,_excluded$4$1);const{displayValue:ut,onChange:ht,onUpdate:dt}=useInputSetters({type:et,value:ot,settings:at,setValue:st}),pt=Plugins[et].component;return pt?React$1.createElement(InputContext.Provider,{value:_objectSpread2$1({key:it,path:rt,id:""+rt,label:nt,displayValue:ut,value:ot,onChange:ht,onUpdate:dt,settings:at,setValue:st,disabled:lt},ct)},React$1.createElement(StyledInputWrapper$1,{disabled:lt},React$1.createElement(pt,null))):(warn$3(LevaErrors.NO_COMPONENT_FOR_TYPE,et,rt),null)}const StyledButton$2=styled$5("button",{display:"block",$reset:"",fontWeight:"$button",height:"$rowHeight",borderStyle:"none",borderRadius:"$sm",backgroundColor:"$elevation1",color:"$highlight1","&:not(:disabled)":{color:"$highlight3",backgroundColor:"$accent2",cursor:"pointer",$hover:"$accent3",$active:"$accent3 $accent1",$focus:""}});function Button$3({onClick:tt,settings:et,label:nt}){const rt=useStoreContext();return React$1.createElement(Row,null,React$1.createElement(StyledButton$2,{disabled:et.disabled,onClick:()=>tt(rt.get)},nt))}const StyledButtonGroup=styled$5("div",{$flex:"",justifyContent:"flex-end",gap:"$colGap"}),StyledButtonGroupButton=styled$5("button",{$reset:"",cursor:"pointer",borderRadius:"$xs","&:hover":{backgroundColor:"$elevation3"}}),getOpts=({label:tt,opts:et})=>{let nt=typeof tt=="string"&&tt.trim()===""?null:tt,rt=et;return typeof et.opts=="object"&&(rt.label!==void 0&&(nt=et.label),rt=et.opts),{label:nt,opts:rt}};function ButtonGroup(tt){const{label:et,opts:nt}=getOpts(tt),rt=useStoreContext();return React$1.createElement(Row,{input:!!et},et&&React$1.createElement(Label$4,null,et),React$1.createElement(StyledButtonGroup,null,Object.entries(nt).map(([it,ot])=>React$1.createElement(StyledButtonGroupButton,{key:it,onClick:()=>ot(rt.get)},it))))}const Canvas$2=styled$5("canvas",{height:"$monitorHeight",width:"100%",display:"block",borderRadius:"$sm"}),POINTS=100;function push(tt,et){tt.push(et),tt.length>POINTS&&tt.shift()}const MonitorCanvas=reactExports.forwardRef(function({initialValue:tt},et){const nt=useTh("colors","highlight3"),rt=useTh("colors","elevation2"),it=useTh("colors","highlight1"),[ot,at]=reactExports.useMemo(()=>[w$5(it).alpha(.4).toRgbString(),w$5(it).alpha(.1).toRgbString()],[it]),st=reactExports.useRef([tt]),lt=reactExports.useRef(tt),ct=reactExports.useRef(tt),ut=reactExports.useRef(),ht=reactExports.useCallback((mt,gt)=>{if(!mt)return;const{width:yt,height:bt}=mt,wt=new Path2D,vt=yt/POINTS,kt=bt*.05;for(let At=0;At({frame:mt=>{(lt.current===void 0||mtct.current)&&(ct.current=mt),push(st.current,mt),ut.current=requestAnimationFrame(()=>ht(dt.current,pt.current))}}),[dt,pt,ht]),reactExports.useEffect(()=>()=>cancelAnimationFrame(ut.current),[]),React$1.createElement(Canvas$2,{ref:dt})}),parse$4=tt=>Number.isFinite(tt)?tt.toPrecision(2):tt.toString(),MonitorLog=reactExports.forwardRef(function({initialValue:tt},et){const[nt,rt]=reactExports.useState(parse$4(tt));return reactExports.useImperativeHandle(et,()=>({frame:it=>rt(parse$4(it))}),[]),React$1.createElement("div",null,nt)});function getValue$4(tt){return typeof tt=="function"?tt():tt.current}function Monitor({label:tt,objectOrFn:et,settings:nt}){const rt=reactExports.useRef(),it=reactExports.useRef(getValue$4(et));return reactExports.useEffect(()=>{const ot=window.setInterval(()=>{var at;document.hidden||(at=rt.current)===null||at===void 0||at.frame(getValue$4(et))},nt.interval);return()=>window.clearInterval(ot)},[et,nt.interval]),React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,{align:"top"},tt),nt.graph?React$1.createElement(MonitorCanvas,{ref:rt,initialValue:it.current}):React$1.createElement(MonitorLog,{ref:rt,initialValue:it.current}))}const _excluded$3$1=["type","label","key"],specialComponents={[SpecialInputs.BUTTON]:Button$3,[SpecialInputs.BUTTON_GROUP]:ButtonGroup,[SpecialInputs.MONITOR]:Monitor},Control=React$1.memo(({path:tt})=>{const[et,{set:nt,setSettings:rt,disable:it,storeId:ot,emitOnEditStart:at,emitOnEditEnd:st}]=useInput(tt);if(!et)return null;const{type:lt,label:ct,key:ut}=et,ht=_objectWithoutProperties$f(et,_excluded$3$1);if(lt in SpecialInputs){const dt=specialComponents[lt];return React$1.createElement(dt,_extends$q({label:ct,path:tt},ht))}return lt in Plugins?React$1.createElement(ControlInput,_extends$q({key:ot+tt,type:lt,label:ct,storeId:ot,path:tt,valueKey:ut,setValue:nt,setSettings:rt,disable:it,emitOnEditStart:at,emitOnEditEnd:st},ht)):(log$2(LevaErrors.UNSUPPORTED_INPUT,lt,tt),null)});function FolderTitle({toggle:tt,toggled:et,name:nt}){return React$1.createElement(StyledTitle,{onClick:()=>tt()},React$1.createElement(Chevron,{toggled:et}),React$1.createElement("div",null,nt))}const Folder=({name:tt,path:et,tree:nt})=>{const rt=useStoreContext(),it=join(et,tt),{collapsed:ot,color:at}=rt.getFolderSettings(it),[st,lt]=reactExports.useState(!ot),ct=reactExports.useRef(null),ut=useTh("colors","folderWidgetColor"),ht=useTh("colors","folderTextColor");return reactExports.useLayoutEffect(()=>{ct.current.style.setProperty("--leva-colors-folderWidgetColor",at||ut),ct.current.style.setProperty("--leva-colors-folderTextColor",at||ht)},[at,ut,ht]),React$1.createElement(StyledFolder,{ref:ct},React$1.createElement(FolderTitle,{name:tt,toggled:st,toggle:()=>lt(dt=>!dt)}),React$1.createElement(TreeWrapper,{parent:it,tree:nt,toggled:st}))},TreeWrapper=React$1.memo(({isRoot:tt=!1,fill:et=!1,flat:nt=!1,parent:rt,tree:it,toggled:ot})=>{const{wrapperRef:at,contentRef:st}=useToggle(ot),lt=useStoreContext(),ct=([ht,dt])=>{var pt;return(isInput(dt)?(pt=lt.getInput(dt.path))===null||pt===void 0?void 0:pt.order:lt.getFolderSettings(join(rt,ht)).order)||0},ut=Object.entries(it).sort((ht,dt)=>ct(ht)-ct(dt));return React$1.createElement(StyledWrapper,{ref:at,isRoot:tt,fill:et,flat:nt},React$1.createElement(StyledContent,{ref:st,isRoot:tt,toggled:ot},ut.map(([ht,dt])=>isInput(dt)?React$1.createElement(Control,{key:dt.path,valueKey:dt.valueKey,path:dt.path}):React$1.createElement(Folder,{key:ht,name:ht,path:rt,tree:dt}))))}),StyledRoot=styled$5("div",{position:"relative",fontFamily:"$mono",fontSize:"$root",color:"$rootText",backgroundColor:"$elevation1",variants:{fill:{false:{position:"fixed",top:"10px",right:"10px",zIndex:1e3,width:"$rootWidth"},true:{position:"relative",width:"100%"}},flat:{false:{borderRadius:"$lg",boxShadow:"$level1"}},oneLineLabels:{true:{[`${StyledInputRow}`]:{gridTemplateColumns:"auto",gridAutoColumns:"minmax(max-content, 1fr)",gridAutoRows:"minmax($sizes$rowHeight), auto)",rowGap:0,columnGap:0,marginTop:"$rowGap"}}},hideTitleBar:{true:{$$titleBarHeight:"0px"},false:{$$titleBarHeight:"$sizes$titleBarHeight"}}},"&,*,*:after,*:before":{boxSizing:"border-box"},"*::selection":{backgroundColor:"$accent2"}}),iconWidth=40,Icon=styled$5("i",{$flexCenter:"",width:iconWidth,userSelect:"none",cursor:"pointer","> svg":{fill:"$highlight1",transition:"transform 350ms ease, fill 250ms ease"},"&:hover > svg":{fill:"$highlight3"},variants:{active:{true:{"> svg":{fill:"$highlight2"}}}}}),StyledTitleWithFilter=styled$5("div",{display:"flex",alignItems:"stretch",justifyContent:"space-between",height:"$titleBarHeight",variants:{mode:{drag:{cursor:"grab"}}}}),FilterWrapper=styled$5("div",{$flex:"",position:"relative",width:"100%",overflow:"hidden",transition:"height 250ms ease",color:"$highlight3",paddingLeft:"$md",[`> ${Icon}`]:{height:30},variants:{toggled:{true:{height:30},false:{height:0}}}}),StyledFilterInput=styled$5("input",{$reset:"",flex:1,position:"relative",height:30,width:"100%",backgroundColor:"transparent",fontSize:"10px",borderRadius:"$root","&:focus":{},"&::placeholder":{color:"$highlight2"}}),TitleContainer=styled$5("div",{touchAction:"none",$flexCenter:"",flex:1,"> svg":{fill:"$highlight1"},color:"$highlight1",variants:{drag:{true:{$draggable:"","> svg":{transition:"fill 250ms ease"},"&:hover":{color:"$highlight3"},"&:hover > svg":{fill:"$highlight3"}}},filterEnabled:{false:{paddingRight:iconWidth}}}}),FilterInput=React$1.forwardRef(({setFilter:tt,toggle:et},nt)=>{const[rt,it]=reactExports.useState(""),ot=reactExports.useMemo(()=>debounce$6(tt,250),[tt]),at=()=>{tt(""),it("")},st=lt=>{const ct=lt.currentTarget.value;et(!0),it(ct)};return reactExports.useEffect(()=>{ot(rt)},[rt,ot]),React$1.createElement(React$1.Fragment,null,React$1.createElement(StyledFilterInput,{ref:nt,value:rt,placeholder:"[Open filter with CMD+SHIFT+L]",onPointerDown:lt=>lt.stopPropagation(),onChange:st}),React$1.createElement(Icon,{onClick:()=>at(),style:{visibility:rt?"visible":"hidden"}},React$1.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",height:"14",width:"14",viewBox:"0 0 20 20",fill:"currentColor"},React$1.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"}))))});function TitleWithFilter({setFilter:tt,onDrag:et,onDragStart:nt,onDragEnd:rt,toggle:it,toggled:ot,title:at,drag:st,filterEnabled:lt,from:ct}){const[ut,ht]=reactExports.useState(!1),dt=reactExports.useRef(null);reactExports.useEffect(()=>{var mt,gt;ut?(mt=dt.current)===null||mt===void 0||mt.focus():(gt=dt.current)===null||gt===void 0||gt.blur()},[ut]);const pt=useDrag(({offset:[mt,gt],first:yt,last:bt})=>{et({x:mt,y:gt}),yt&&nt({x:mt,y:gt}),bt&&rt({x:mt,y:gt})},{filterTaps:!0,from:({offset:[mt,gt]})=>[(ct==null?void 0:ct.x)||mt,(ct==null?void 0:ct.y)||gt]});return reactExports.useEffect(()=>{const mt=gt=>{gt.key==="L"&>.shiftKey&>.metaKey&&ht(yt=>!yt)};return window.addEventListener("keydown",mt),()=>window.removeEventListener("keydown",mt)},[]),React$1.createElement(React$1.Fragment,null,React$1.createElement(StyledTitleWithFilter,{mode:st?"drag":void 0},React$1.createElement(Icon,{active:!ot,onClick:()=>it()},React$1.createElement(Chevron,{toggled:ot,width:12,height:8})),React$1.createElement(TitleContainer,_extends$q({},st?pt():{},{drag:st,filterEnabled:lt}),at===void 0&&st?React$1.createElement("svg",{width:"20",height:"10",viewBox:"0 0 28 14",xmlns:"http://www.w3.org/2000/svg"},React$1.createElement("circle",{cx:"2",cy:"2",r:"2"}),React$1.createElement("circle",{cx:"14",cy:"2",r:"2"}),React$1.createElement("circle",{cx:"26",cy:"2",r:"2"}),React$1.createElement("circle",{cx:"2",cy:"12",r:"2"}),React$1.createElement("circle",{cx:"14",cy:"12",r:"2"}),React$1.createElement("circle",{cx:"26",cy:"12",r:"2"})):at),lt&&React$1.createElement(Icon,{active:ut,onClick:()=>ht(mt=>!mt)},React$1.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",height:"20",viewBox:"0 0 20 20"},React$1.createElement("path",{d:"M9 9a2 2 0 114 0 2 2 0 01-4 0z"}),React$1.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm1-13a4 4 0 00-3.446 6.032l-2.261 2.26a1 1 0 101.414 1.415l2.261-2.261A4 4 0 1011 5z",clipRule:"evenodd"})))),React$1.createElement(FilterWrapper,{toggled:ut},React$1.createElement(FilterInput,{ref:dt,setFilter:tt,toggle:it})))}const _excluded$2$1=["store","hidden","theme","collapsed"];function LevaRoot(tt){let{store:et,hidden:nt=!1,theme:rt,collapsed:it=!1}=tt,ot=_objectWithoutProperties$f(tt,_excluded$2$1);const at=useDeepMemo(()=>mergeTheme(rt),[rt]),[st,lt]=reactExports.useState(!it),ct=typeof it=="object"?!it.collapsed:st,ut=reactExports.useMemo(()=>typeof it=="object"?ht=>{typeof ht=="function"?it.onChange(!ht(!it.collapsed)):it.onChange(!ht)}:lt,[it]);return!et||nt?null:React$1.createElement(ThemeContext$3.Provider,{value:at},React$1.createElement(LevaCore,_extends$q({store:et},ot,{toggled:ct,setToggle:ut,rootClass:at.className})))}const LevaCore=React$1.memo(({store:tt,rootClass:et,fill:nt=!1,flat:rt=!1,neverHide:it=!1,oneLineLabels:ot=!1,titleBar:at={title:void 0,drag:!0,filter:!0,position:void 0,onDrag:void 0,onDragStart:void 0,onDragEnd:void 0},hideCopyButton:st=!1,toggled:lt,setToggle:ct})=>{var ut,ht;const dt=useVisiblePaths(tt),[pt,mt]=reactExports.useState(""),gt=reactExports.useMemo(()=>buildTree(dt,pt),[dt,pt]),[yt,bt]=useTransform(),wt=it||dt.length>0,vt=typeof at=="object"&&at.title||void 0,kt=typeof at=="object"&&(ut=at.drag)!==null&&ut!==void 0?ut:!0,St=typeof at=="object"&&(ht=at.filter)!==null&&ht!==void 0?ht:!0,Tt=typeof at=="object"&&at.position||void 0,At=typeof at=="object"&&at.onDrag||void 0,Et=typeof at=="object"&&at.onDragStart||void 0,Mt=typeof at=="object"&&at.onDragEnd||void 0;return React$1.useEffect(()=>{bt({x:Tt==null?void 0:Tt.x,y:Tt==null?void 0:Tt.y})},[Tt,bt]),globalStyles(),React$1.createElement(PanelSettingsContext.Provider,{value:{hideCopyButton:st}},React$1.createElement(StyledRoot,{ref:yt,className:et,fill:nt,flat:rt,oneLineLabels:ot,hideTitleBar:!at,style:{display:wt?"block":"none"}},at&&React$1.createElement(TitleWithFilter,{onDrag:Lt=>{bt(Lt),At==null||At(Lt)},onDragStart:Lt=>Et==null?void 0:Et(Lt),onDragEnd:Lt=>Mt==null?void 0:Mt(Lt),setFilter:mt,toggle:Lt=>ct(jt=>Lt??!jt),toggled:lt,title:vt,drag:kt,filterEnabled:St,from:Tt}),wt&&React$1.createElement(StoreContext.Provider,{value:tt},React$1.createElement(TreeWrapper,{isRoot:!0,fill:nt,flat:rt,tree:gt,toggled:lt}))))}),_excluded$1$3=["isRoot"];let rootInitialized=!1,rootEl=null;function Leva(tt){let{isRoot:et=!1}=tt,nt=_objectWithoutProperties$f(tt,_excluded$1$3);return reactExports.useEffect(()=>(rootInitialized=!0,!et&&rootEl&&(rootEl.remove(),rootEl=null),()=>{et||(rootInitialized=!1)}),[et]),React$1.createElement(LevaRoot,_extends$q({store:levaStore},nt))}function useRenderRoot(tt){reactExports.useEffect(()=>{tt&&!rootInitialized&&(rootEl||(rootEl=document.getElementById("leva__root")||Object.assign(document.createElement("div"),{id:"leva__root"}),document.body&&(document.body.appendChild(rootEl),render(React$1.createElement(Leva,{isRoot:!0}),rootEl))),rootInitialized=!0)},[tt])}function parseArgs(tt,et,nt,rt,it){let ot,at,st,lt,ct;return typeof tt=="string"?(at=tt,ot=et,Array.isArray(nt)?ct=nt:nt&&("store"in nt?(lt=nt,ct=rt):(st=nt,Array.isArray(rt)?ct=rt:(lt=rt,ct=it)))):(ot=tt,Array.isArray(et)?ct=et:(lt=et,ct=nt)),{schema:ot,folderName:at,folderSettings:st,hookSettings:lt,deps:ct||[]}}function useControls(tt,et,nt,rt,it){const{folderName:ot,schema:at,folderSettings:st,hookSettings:lt,deps:ct}=parseArgs(tt,et,nt,rt,it),ut=typeof at=="function",ht=reactExports.useRef(!1),dt=reactExports.useRef(!0),pt=useDeepMemo(()=>{ht.current=!0;const jt=typeof at=="function"?at():at;return ot?{[ot]:folder(jt,st)}:jt},ct),mt=!(lt!=null&<.store);useRenderRoot(mt);const[gt]=reactExports.useState(()=>(lt==null?void 0:lt.store)||levaStore),[yt,bt]=reactExports.useMemo(()=>gt.getDataFromSchema(pt),[gt,pt]),[wt,vt,kt,St,Tt]=reactExports.useMemo(()=>{const jt=[],Rt=[],$t={},xt={},It={};return Object.values(bt).forEach(({path:Ot,onChange:zt,onEditStart:Ut,onEditEnd:Wt,transient:Ft})=>{jt.push(Ot),zt?($t[Ot]=zt,Ft||Rt.push(Ot)):Rt.push(Ot),Ut&&(xt[Ot]=Ut),Wt&&(It[Ot]=Wt)}),[jt,Rt,$t,xt,It]},[bt]),At=reactExports.useMemo(()=>gt.orderPaths(wt),[wt,gt]),Et=useValuesForPath(gt,vt,yt),Mt=reactExports.useCallback(jt=>{const Rt=Object.entries(jt).reduce(($t,[xt,It])=>Object.assign($t,{[bt[xt].path]:It}),{});gt.set(Rt,!1)},[gt,bt]),Lt=reactExports.useCallback(jt=>gt.get(bt[jt].path),[gt,bt]);return reactExports.useEffect(()=>{const jt=!dt.current&&ht.current;return gt.addData(yt,jt),dt.current=!1,ht.current=!1,()=>gt.disposePaths(At)},[gt,At,yt]),reactExports.useEffect(()=>{const jt=[];return Object.entries(kt).forEach(([Rt,$t])=>{$t(gt.get(Rt),Rt,_objectSpread2$1({initial:!0,get:gt.get},gt.getInput(Rt)));const xt=gt.useStore.subscribe(It=>{const Ot=It.data[Rt];return[Ot.disabled?void 0:Ot.value,Ot]},([It,Ot])=>$t(It,Rt,_objectSpread2$1({initial:!1,get:gt.get},Ot)),{equalityFn:shallow$1});jt.push(xt)}),()=>jt.forEach(Rt=>Rt())},[gt,kt]),reactExports.useEffect(()=>{const jt=[];return Object.entries(St).forEach(([Rt,$t])=>jt.push(gt.subscribeToEditStart(Rt,$t))),Object.entries(Tt).forEach(([Rt,$t])=>jt.push(gt.subscribeToEditEnd(Rt,$t))),()=>jt.forEach(Rt=>Rt())},[St,Tt,gt]),ut?[Et,Mt,Lt]:Et}register(LevaInputs.SELECT,select);register(LevaInputs.IMAGE,image);register(LevaInputs.NUMBER,number$6);register(LevaInputs.COLOR,color$3);register(LevaInputs.STRING,string$2);register(LevaInputs.BOOLEAN,boolean);register(LevaInputs.INTERVAL,interval$1);register(LevaInputs.VECTOR3D,vector3d);register(LevaInputs.VECTOR2D,vector2d);var isCheckBoxInput=tt=>tt.type==="checkbox",isDateObject=tt=>tt instanceof Date,isNullOrUndefined=tt=>tt==null;const isObjectType=tt=>typeof tt=="object";var isObject$f=tt=>!isNullOrUndefined(tt)&&!Array.isArray(tt)&&isObjectType(tt)&&!isDateObject(tt),getEventValue=tt=>isObject$f(tt)&&tt.target?isCheckBoxInput(tt.target)?tt.target.checked:tt.target.value:tt,getNodeParentName=tt=>tt.substring(0,tt.search(/\.\d+(\.|$)/))||tt,isNameInFieldArray=(tt,et)=>tt.has(getNodeParentName(et)),isPlainObject$1=tt=>{const et=tt.constructor&&tt.constructor.prototype;return isObject$f(et)&&et.hasOwnProperty("isPrototypeOf")},isWeb=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function cloneObject(tt){let et;const nt=Array.isArray(tt);if(tt instanceof Date)et=new Date(tt);else if(tt instanceof Set)et=new Set(tt);else if(!(isWeb&&(tt instanceof Blob||tt instanceof FileList))&&(nt||isObject$f(tt)))if(et=nt?[]:{},!nt&&!isPlainObject$1(tt))et=tt;else for(const rt in tt)tt.hasOwnProperty(rt)&&(et[rt]=cloneObject(tt[rt]));else return tt;return et}var compact=tt=>Array.isArray(tt)?tt.filter(Boolean):[],isUndefined$1=tt=>tt===void 0,get$6=(tt,et,nt)=>{if(!et||!isObject$f(tt))return nt;const rt=compact(et.split(/[,[\].]+?/)).reduce((it,ot)=>isNullOrUndefined(it)?it:it[ot],tt);return isUndefined$1(rt)||rt===tt?isUndefined$1(tt[et])?nt:tt[et]:rt};const EVENTS={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},VALIDATION_MODE={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},INPUT_VALIDATION_RULES={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},HookFormContext=React$1.createContext(null),useFormContext=()=>React$1.useContext(HookFormContext),FormProvider=tt=>{const{children:et,...nt}=tt;return React$1.createElement(HookFormContext.Provider,{value:nt},et)};var getProxyFormState=(tt,et,nt,rt=!0)=>{const it={defaultValues:et._defaultValues};for(const ot in tt)Object.defineProperty(it,ot,{get:()=>{const at=ot;return et._proxyFormState[at]!==VALIDATION_MODE.all&&(et._proxyFormState[at]=!rt||VALIDATION_MODE.all),nt&&(nt[at]=!0),tt[at]}});return it},isEmptyObject=tt=>isObject$f(tt)&&!Object.keys(tt).length,shouldRenderFormState=(tt,et,nt,rt)=>{nt(tt);const{name:it,...ot}=tt;return isEmptyObject(ot)||Object.keys(ot).length>=Object.keys(et).length||Object.keys(ot).find(at=>et[at]===(!rt||VALIDATION_MODE.all))},convertToArrayPayload=tt=>Array.isArray(tt)?tt:[tt],shouldSubscribeByName=(tt,et,nt)=>nt&&et?tt===et:!tt||!et||tt===et||convertToArrayPayload(tt).some(rt=>rt&&(rt.startsWith(et)||et.startsWith(rt)));function useSubscribe(tt){const et=React$1.useRef(tt);et.current=tt,React$1.useEffect(()=>{const nt=!tt.disabled&&et.current.subject&&et.current.subject.subscribe({next:et.current.next});return()=>{nt&&nt.unsubscribe()}},[tt.disabled])}function useFormState(tt){const et=useFormContext(),{control:nt=et.control,disabled:rt,name:it,exact:ot}=tt||{},[at,st]=React$1.useState(nt._formState),lt=React$1.useRef(!0),ct=React$1.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1}),ut=React$1.useRef(it);return ut.current=it,useSubscribe({disabled:rt,next:ht=>lt.current&&shouldSubscribeByName(ut.current,ht.name,ot)&&shouldRenderFormState(ht,ct.current,nt._updateFormState)&&st({...nt._formState,...ht}),subject:nt._subjects.state}),React$1.useEffect(()=>(lt.current=!0,ct.current.isValid&&nt._updateValid(!0),()=>{lt.current=!1}),[nt]),getProxyFormState(at,nt,ct.current,!1)}var isString$3=tt=>typeof tt=="string",generateWatchOutput=(tt,et,nt,rt,it)=>isString$3(tt)?(rt&&et.watch.add(tt),get$6(nt,tt,it)):Array.isArray(tt)?tt.map(ot=>(rt&&et.watch.add(ot),get$6(nt,ot))):(rt&&(et.watchAll=!0),nt);function useWatch(tt){const et=useFormContext(),{control:nt=et.control,name:rt,defaultValue:it,disabled:ot,exact:at}=tt||{},st=React$1.useRef(rt);st.current=rt,useSubscribe({disabled:ot,subject:nt._subjects.values,next:ut=>{shouldSubscribeByName(st.current,ut.name,at)&&ct(cloneObject(generateWatchOutput(st.current,nt._names,ut.values||nt._formValues,!1,it)))}});const[lt,ct]=React$1.useState(nt._getWatch(rt,it));return React$1.useEffect(()=>nt._removeUnmounted()),lt}var isKey$4=tt=>/^\w*$/.test(tt),stringToPath$2=tt=>compact(tt.replace(/["|']|\]/g,"").split(/\.|\[/));function set$3(tt,et,nt){let rt=-1;const it=isKey$4(et)?[et]:stringToPath$2(et),ot=it.length,at=ot-1;for(;++rt{const ct=rt._options.shouldUnregister||it,ut=(ht,dt)=>{const pt=get$6(rt._fields,ht);pt&&(pt._f.mount=dt)};if(ut(nt,!0),ct){const ht=cloneObject(get$6(rt._options.defaultValues,nt));set$3(rt._defaultValues,nt,ht),isUndefined$1(get$6(rt._formValues,nt))&&set$3(rt._formValues,nt,ht)}return()=>{(ot?ct&&!rt._state.action:ct)?rt.unregister(nt):ut(nt,!1)}},[nt,rt,ot,it]),{field:{name:nt,value:at,onChange:React$1.useCallback(ct=>lt.current.onChange({target:{value:getEventValue(ct),name:nt},type:EVENTS.CHANGE}),[nt]),onBlur:React$1.useCallback(()=>lt.current.onBlur({target:{value:get$6(rt._formValues,nt),name:nt},type:EVENTS.BLUR}),[nt,rt]),ref:ct=>{const ut=get$6(rt._fields,nt);ut&&ct&&(ut._f.ref={focus:()=>ct.focus(),select:()=>ct.select(),setCustomValidity:ht=>ct.setCustomValidity(ht),reportValidity:()=>ct.reportValidity()})}},formState:st,fieldState:Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!get$6(st.errors,nt)},isDirty:{enumerable:!0,get:()=>!!get$6(st.dirtyFields,nt)},isTouched:{enumerable:!0,get:()=>!!get$6(st.touchedFields,nt)},error:{enumerable:!0,get:()=>get$6(st.errors,nt)}})}}const Controller=tt=>tt.render(useController(tt));var appendErrors=(tt,et,nt,rt,it)=>et?{...nt[tt],types:{...nt[tt]&&nt[tt].types?nt[tt].types:{},[rt]:it||!0}}:{};const focusFieldBy=(tt,et,nt)=>{for(const rt of nt||Object.keys(tt)){const it=get$6(tt,rt);if(it){const{_f:ot,...at}=it;if(ot&&et(ot.name)){if(ot.ref.focus){ot.ref.focus();break}else if(ot.refs&&ot.refs[0].focus){ot.refs[0].focus();break}}else isObject$f(at)&&focusFieldBy(at,et)}}};var getValidationModes=tt=>({isOnSubmit:!tt||tt===VALIDATION_MODE.onSubmit,isOnBlur:tt===VALIDATION_MODE.onBlur,isOnChange:tt===VALIDATION_MODE.onChange,isOnAll:tt===VALIDATION_MODE.all,isOnTouch:tt===VALIDATION_MODE.onTouched}),isWatched=(tt,et,nt)=>!nt&&(et.watchAll||et.watch.has(tt)||[...et.watch].some(rt=>tt.startsWith(rt)&&/^\.\w+/.test(tt.slice(rt.length)))),updateFieldArrayRootError=(tt,et,nt)=>{const rt=compact(get$6(tt,nt));return set$3(rt,"root",et[nt]),set$3(tt,nt,rt),tt},isBoolean$2=tt=>typeof tt=="boolean",isFileInput=tt=>tt.type==="file",isFunction$6=tt=>typeof tt=="function",isHTMLElement$2=tt=>{if(!isWeb)return!1;const et=tt?tt.ownerDocument:0;return tt instanceof(et&&et.defaultView?et.defaultView.HTMLElement:HTMLElement)},isMessage=tt=>isString$3(tt),isRadioInput=tt=>tt.type==="radio",isRegex=tt=>tt instanceof RegExp;const defaultResult={value:!1,isValid:!1},validResult={value:!0,isValid:!0};var getCheckboxValue=tt=>{if(Array.isArray(tt)){if(tt.length>1){const et=tt.filter(nt=>nt&&nt.checked&&!nt.disabled).map(nt=>nt.value);return{value:et,isValid:!!et.length}}return tt[0].checked&&!tt[0].disabled?tt[0].attributes&&!isUndefined$1(tt[0].attributes.value)?isUndefined$1(tt[0].value)||tt[0].value===""?validResult:{value:tt[0].value,isValid:!0}:validResult:defaultResult}return defaultResult};const defaultReturn={isValid:!1,value:null};var getRadioValue=tt=>Array.isArray(tt)?tt.reduce((et,nt)=>nt&&nt.checked&&!nt.disabled?{isValid:!0,value:nt.value}:et,defaultReturn):defaultReturn;function getValidateError(tt,et,nt="validate"){if(isMessage(tt)||Array.isArray(tt)&&tt.every(isMessage)||isBoolean$2(tt)&&!tt)return{type:nt,message:isMessage(tt)?tt:"",ref:et}}var getValueAndMessage=tt=>isObject$f(tt)&&!isRegex(tt)?tt:{value:tt,message:""},validateField=async(tt,et,nt,rt,it)=>{const{ref:ot,refs:at,required:st,maxLength:lt,minLength:ct,min:ut,max:ht,pattern:dt,validate:pt,name:mt,valueAsNumber:gt,mount:yt,disabled:bt}=tt._f,wt=get$6(et,mt);if(!yt||bt)return{};const vt=at?at[0]:ot,kt=Rt=>{rt&&vt.reportValidity&&(vt.setCustomValidity(isBoolean$2(Rt)?"":Rt||""),vt.reportValidity())},St={},Tt=isRadioInput(ot),At=isCheckBoxInput(ot),Et=Tt||At,Mt=(gt||isFileInput(ot))&&isUndefined$1(ot.value)&&isUndefined$1(wt)||isHTMLElement$2(ot)&&ot.value===""||wt===""||Array.isArray(wt)&&!wt.length,Lt=appendErrors.bind(null,mt,nt,St),jt=(Rt,$t,xt,It=INPUT_VALIDATION_RULES.maxLength,Ot=INPUT_VALIDATION_RULES.minLength)=>{const zt=Rt?$t:xt;St[mt]={type:Rt?It:Ot,message:zt,ref:ot,...Lt(Rt?It:Ot,zt)}};if(it?!Array.isArray(wt)||!wt.length:st&&(!Et&&(Mt||isNullOrUndefined(wt))||isBoolean$2(wt)&&!wt||At&&!getCheckboxValue(at).isValid||Tt&&!getRadioValue(at).isValid)){const{value:Rt,message:$t}=isMessage(st)?{value:!!st,message:st}:getValueAndMessage(st);if(Rt&&(St[mt]={type:INPUT_VALIDATION_RULES.required,message:$t,ref:vt,...Lt(INPUT_VALIDATION_RULES.required,$t)},!nt))return kt($t),St}if(!Mt&&(!isNullOrUndefined(ut)||!isNullOrUndefined(ht))){let Rt,$t;const xt=getValueAndMessage(ht),It=getValueAndMessage(ut);if(!isNullOrUndefined(wt)&&!isNaN(wt)){const Ot=ot.valueAsNumber||wt&&+wt;isNullOrUndefined(xt.value)||(Rt=Ot>xt.value),isNullOrUndefined(It.value)||($t=Otnew Date(new Date().toDateString()+" "+Ft),Ut=ot.type=="time",Wt=ot.type=="week";isString$3(xt.value)&&wt&&(Rt=Ut?zt(wt)>zt(xt.value):Wt?wt>xt.value:Ot>new Date(xt.value)),isString$3(It.value)&&wt&&($t=Ut?zt(wt)+Rt.value,It=!isNullOrUndefined($t.value)&&wt.length<+$t.value;if((xt||It)&&(jt(xt,Rt.message,$t.message),!nt))return kt(St[mt].message),St}if(dt&&!Mt&&isString$3(wt)){const{value:Rt,message:$t}=getValueAndMessage(dt);if(isRegex(Rt)&&!wt.match(Rt)&&(St[mt]={type:INPUT_VALIDATION_RULES.pattern,message:$t,ref:ot,...Lt(INPUT_VALIDATION_RULES.pattern,$t)},!nt))return kt($t),St}if(pt){if(isFunction$6(pt)){const Rt=await pt(wt,et),$t=getValidateError(Rt,vt);if($t&&(St[mt]={...$t,...Lt(INPUT_VALIDATION_RULES.validate,$t.message)},!nt))return kt($t.message),St}else if(isObject$f(pt)){let Rt={};for(const $t in pt){if(!isEmptyObject(Rt)&&!nt)break;const xt=getValidateError(await pt[$t](wt,et),vt,$t);xt&&(Rt={...xt,...Lt($t,xt.message)},kt(xt.message),nt&&(St[mt]=Rt))}if(!isEmptyObject(Rt)&&(St[mt]={ref:vt,...Rt},!nt))return St}}return kt(!0),St};function baseGet$4(tt,et){const nt=et.slice(0,-1).length;let rt=0;for(;rt{for(const ot of tt)ot.next&&ot.next(it)},subscribe:it=>(tt.push(it),{unsubscribe:()=>{tt=tt.filter(ot=>ot!==it)}}),unsubscribe:()=>{tt=[]}}}var isPrimitive=tt=>isNullOrUndefined(tt)||!isObjectType(tt);function deepEqual$2(tt,et){if(isPrimitive(tt)||isPrimitive(et))return tt===et;if(isDateObject(tt)&&isDateObject(et))return tt.getTime()===et.getTime();const nt=Object.keys(tt),rt=Object.keys(et);if(nt.length!==rt.length)return!1;for(const it of nt){const ot=tt[it];if(!rt.includes(it))return!1;if(it!=="ref"){const at=et[it];if(isDateObject(ot)&&isDateObject(at)||isObject$f(ot)&&isObject$f(at)||Array.isArray(ot)&&Array.isArray(at)?!deepEqual$2(ot,at):ot!==at)return!1}}return!0}var isMultipleSelect=tt=>tt.type==="select-multiple",isRadioOrCheckbox=tt=>isRadioInput(tt)||isCheckBoxInput(tt),live=tt=>isHTMLElement$2(tt)&&tt.isConnected,objectHasFunction=tt=>{for(const et in tt)if(isFunction$6(tt[et]))return!0;return!1};function markFieldsDirty(tt,et={}){const nt=Array.isArray(tt);if(isObject$f(tt)||nt)for(const rt in tt)Array.isArray(tt[rt])||isObject$f(tt[rt])&&!objectHasFunction(tt[rt])?(et[rt]=Array.isArray(tt[rt])?[]:{},markFieldsDirty(tt[rt],et[rt])):isNullOrUndefined(tt[rt])||(et[rt]=!0);return et}function getDirtyFieldsFromDefaultValues(tt,et,nt){const rt=Array.isArray(tt);if(isObject$f(tt)||rt)for(const it in tt)Array.isArray(tt[it])||isObject$f(tt[it])&&!objectHasFunction(tt[it])?isUndefined$1(et)||isPrimitive(nt[it])?nt[it]=Array.isArray(tt[it])?markFieldsDirty(tt[it],[]):{...markFieldsDirty(tt[it])}:getDirtyFieldsFromDefaultValues(tt[it],isNullOrUndefined(et)?{}:et[it],nt[it]):nt[it]=!deepEqual$2(tt[it],et[it]);return nt}var getDirtyFields=(tt,et)=>getDirtyFieldsFromDefaultValues(tt,et,markFieldsDirty(et)),getFieldValueAs=(tt,{valueAsNumber:et,valueAsDate:nt,setValueAs:rt})=>isUndefined$1(tt)?tt:et?tt===""?NaN:tt&&+tt:nt&&isString$3(tt)?new Date(tt):rt?rt(tt):tt;function getFieldValue(tt){const et=tt.ref;if(!(tt.refs?tt.refs.every(nt=>nt.disabled):et.disabled))return isFileInput(et)?et.files:isRadioInput(et)?getRadioValue(tt.refs).value:isMultipleSelect(et)?[...et.selectedOptions].map(({value:nt})=>nt):isCheckBoxInput(et)?getCheckboxValue(tt.refs).value:getFieldValueAs(isUndefined$1(et.value)?tt.ref.value:et.value,tt)}var getResolverOptions=(tt,et,nt,rt)=>{const it={};for(const ot of tt){const at=get$6(et,ot);at&&set$3(it,ot,at._f)}return{criteriaMode:nt,names:[...tt],fields:it,shouldUseNativeValidation:rt}},getRuleValue=tt=>isUndefined$1(tt)?tt:isRegex(tt)?tt.source:isObject$f(tt)?isRegex(tt.value)?tt.value.source:tt.value:tt,hasValidation=tt=>tt.mount&&(tt.required||tt.min||tt.max||tt.maxLength||tt.minLength||tt.pattern||tt.validate);function schemaErrorLookup(tt,et,nt){const rt=get$6(tt,nt);if(rt||isKey$4(nt))return{error:rt,name:nt};const it=nt.split(".");for(;it.length;){const ot=it.join("."),at=get$6(et,ot),st=get$6(tt,ot);if(at&&!Array.isArray(at)&&nt!==ot)return{name:nt};if(st&&st.type)return{name:ot,error:st};it.pop()}return{name:nt}}var skipValidation=(tt,et,nt,rt,it)=>it.isOnAll?!1:!nt&&it.isOnTouch?!(et||tt):(nt?rt.isOnBlur:it.isOnBlur)?!tt:(nt?rt.isOnChange:it.isOnChange)?tt:!0,unsetEmptyArray=(tt,et)=>!compact(get$6(tt,et)).length&&unset(tt,et);const defaultOptions={mode:VALIDATION_MODE.onSubmit,reValidateMode:VALIDATION_MODE.onChange,shouldFocusError:!0};function createFormControl(tt={},et){let nt={...defaultOptions,...tt},rt={submitCount:0,isDirty:!1,isLoading:isFunction$6(nt.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},errors:{}},it={},ot=isObject$f(nt.defaultValues)||isObject$f(nt.values)?cloneObject(nt.defaultValues||nt.values)||{}:{},at=nt.shouldUnregister?{}:cloneObject(ot),st={action:!1,mount:!1,watch:!1},lt={mount:new Set,unMount:new Set,array:new Set,watch:new Set},ct,ut=0;const ht={isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},dt={values:createSubject(),array:createSubject(),state:createSubject()},pt=tt.resetOptions&&tt.resetOptions.keepDirtyValues,mt=getValidationModes(nt.mode),gt=getValidationModes(nt.reValidateMode),yt=nt.criteriaMode===VALIDATION_MODE.all,bt=yn=>kn=>{clearTimeout(ut),ut=setTimeout(yn,kn)},wt=async yn=>{if(ht.isValid||yn){const kn=nt.resolver?isEmptyObject((await Mt()).errors):await jt(it,!0);kn!==rt.isValid&&dt.state.next({isValid:kn})}},vt=yn=>ht.isValidating&&dt.state.next({isValidating:yn}),kt=(yn,kn=[],dn,gn,Cn=!0,$n=!0)=>{if(gn&&dn){if(st.action=!0,$n&&Array.isArray(get$6(it,yn))){const un=dn(get$6(it,yn),gn.argA,gn.argB);Cn&&set$3(it,yn,un)}if($n&&Array.isArray(get$6(rt.errors,yn))){const un=dn(get$6(rt.errors,yn),gn.argA,gn.argB);Cn&&set$3(rt.errors,yn,un),unsetEmptyArray(rt.errors,yn)}if(ht.touchedFields&&$n&&Array.isArray(get$6(rt.touchedFields,yn))){const un=dn(get$6(rt.touchedFields,yn),gn.argA,gn.argB);Cn&&set$3(rt.touchedFields,yn,un)}ht.dirtyFields&&(rt.dirtyFields=getDirtyFields(ot,at)),dt.state.next({name:yn,isDirty:$t(yn,kn),dirtyFields:rt.dirtyFields,errors:rt.errors,isValid:rt.isValid})}else set$3(at,yn,kn)},St=(yn,kn)=>{set$3(rt.errors,yn,kn),dt.state.next({errors:rt.errors})},Tt=(yn,kn,dn,gn)=>{const Cn=get$6(it,yn);if(Cn){const $n=get$6(at,yn,isUndefined$1(dn)?get$6(ot,yn):dn);isUndefined$1($n)||gn&&gn.defaultChecked||kn?set$3(at,yn,kn?$n:getFieldValue(Cn._f)):Ot(yn,$n),st.mount&&wt()}},At=(yn,kn,dn,gn,Cn)=>{let $n=!1,un=!1;const rn={name:yn};if(!dn||gn){ht.isDirty&&(un=rt.isDirty,rt.isDirty=rn.isDirty=$t(),$n=un!==rn.isDirty);const Sn=deepEqual$2(get$6(ot,yn),kn);un=get$6(rt.dirtyFields,yn),Sn?unset(rt.dirtyFields,yn):set$3(rt.dirtyFields,yn,!0),rn.dirtyFields=rt.dirtyFields,$n=$n||ht.dirtyFields&&un!==!Sn}if(dn){const Sn=get$6(rt.touchedFields,yn);Sn||(set$3(rt.touchedFields,yn,dn),rn.touchedFields=rt.touchedFields,$n=$n||ht.touchedFields&&Sn!==dn)}return $n&&Cn&&dt.state.next(rn),$n?rn:{}},Et=(yn,kn,dn,gn)=>{const Cn=get$6(rt.errors,yn),$n=ht.isValid&&isBoolean$2(kn)&&rt.isValid!==kn;if(tt.delayError&&dn?(ct=bt(()=>St(yn,dn)),ct(tt.delayError)):(clearTimeout(ut),ct=null,dn?set$3(rt.errors,yn,dn):unset(rt.errors,yn)),(dn?!deepEqual$2(Cn,dn):Cn)||!isEmptyObject(gn)||$n){const un={...gn,...$n&&isBoolean$2(kn)?{isValid:kn}:{},errors:rt.errors,name:yn};rt={...rt,...un},dt.state.next(un)}vt(!1)},Mt=async yn=>nt.resolver(at,nt.context,getResolverOptions(yn||lt.mount,it,nt.criteriaMode,nt.shouldUseNativeValidation)),Lt=async yn=>{const{errors:kn}=await Mt();if(yn)for(const dn of yn){const gn=get$6(kn,dn);gn?set$3(rt.errors,dn,gn):unset(rt.errors,dn)}else rt.errors=kn;return kn},jt=async(yn,kn,dn={valid:!0})=>{for(const gn in yn){const Cn=yn[gn];if(Cn){const{_f:$n,...un}=Cn;if($n){const rn=lt.array.has($n.name),Sn=await validateField(Cn,at,yt,nt.shouldUseNativeValidation&&!kn,rn);if(Sn[$n.name]&&(dn.valid=!1,kn))break;!kn&&(get$6(Sn,$n.name)?rn?updateFieldArrayRootError(rt.errors,Sn,$n.name):set$3(rt.errors,$n.name,Sn[$n.name]):unset(rt.errors,$n.name))}un&&await jt(un,kn,dn)}}return dn.valid},Rt=()=>{for(const yn of lt.unMount){const kn=get$6(it,yn);kn&&(kn._f.refs?kn._f.refs.every(dn=>!live(dn)):!live(kn._f.ref))&&Yt(yn)}lt.unMount=new Set},$t=(yn,kn)=>(yn&&kn&&set$3(at,yn,kn),!deepEqual$2(Nt(),ot)),xt=(yn,kn,dn)=>generateWatchOutput(yn,lt,{...st.mount?at:isUndefined$1(kn)?ot:isString$3(yn)?{[yn]:kn}:kn},dn,kn),It=yn=>compact(get$6(st.mount?at:ot,yn,tt.shouldUnregister?get$6(ot,yn,[]):[])),Ot=(yn,kn,dn={})=>{const gn=get$6(it,yn);let Cn=kn;if(gn){const $n=gn._f;$n&&(!$n.disabled&&set$3(at,yn,getFieldValueAs(kn,$n)),Cn=isHTMLElement$2($n.ref)&&isNullOrUndefined(kn)?"":kn,isMultipleSelect($n.ref)?[...$n.ref.options].forEach(un=>un.selected=Cn.includes(un.value)):$n.refs?isCheckBoxInput($n.ref)?$n.refs.length>1?$n.refs.forEach(un=>(!un.defaultChecked||!un.disabled)&&(un.checked=Array.isArray(Cn)?!!Cn.find(rn=>rn===un.value):Cn===un.value)):$n.refs[0]&&($n.refs[0].checked=!!Cn):$n.refs.forEach(un=>un.checked=un.value===Cn):isFileInput($n.ref)?$n.ref.value="":($n.ref.value=Cn,$n.ref.type||dt.values.next({name:yn,values:{...at}})))}(dn.shouldDirty||dn.shouldTouch)&&At(yn,Cn,dn.shouldTouch,dn.shouldDirty,!0),dn.shouldValidate&&Ft(yn)},zt=(yn,kn,dn)=>{for(const gn in kn){const Cn=kn[gn],$n=`${yn}.${gn}`,un=get$6(it,$n);(lt.array.has(yn)||!isPrimitive(Cn)||un&&!un._f)&&!isDateObject(Cn)?zt($n,Cn,dn):Ot($n,Cn,dn)}},Ut=(yn,kn,dn={})=>{const gn=get$6(it,yn),Cn=lt.array.has(yn),$n=cloneObject(kn);set$3(at,yn,$n),Cn?(dt.array.next({name:yn,values:{...at}}),(ht.isDirty||ht.dirtyFields)&&dn.shouldDirty&&dt.state.next({name:yn,dirtyFields:getDirtyFields(ot,at),isDirty:$t(yn,$n)})):gn&&!gn._f&&!isNullOrUndefined($n)?zt(yn,$n,dn):Ot(yn,$n,dn),isWatched(yn,lt)&&dt.state.next({...rt}),dt.values.next({name:yn,values:{...at}}),!st.mount&&et()},Wt=async yn=>{const kn=yn.target;let dn=kn.name,gn=!0;const Cn=get$6(it,dn),$n=()=>kn.type?getFieldValue(Cn._f):getEventValue(yn);if(Cn){let un,rn;const Sn=$n(),Mn=yn.type===EVENTS.BLUR||yn.type===EVENTS.FOCUS_OUT,Nn=!hasValidation(Cn._f)&&!nt.resolver&&!get$6(rt.errors,dn)&&!Cn._f.deps||skipValidation(Mn,get$6(rt.touchedFields,dn),rt.isSubmitted,gt,mt),hn=isWatched(dn,lt,Mn);set$3(at,dn,Sn),Mn?(Cn._f.onBlur&&Cn._f.onBlur(yn),ct&&ct(0)):Cn._f.onChange&&Cn._f.onChange(yn);const Qt=At(dn,Sn,Mn,!1),Zt=!isEmptyObject(Qt)||hn;if(!Mn&&dt.values.next({name:dn,type:yn.type,values:{...at}}),Nn)return ht.isValid&&wt(),Zt&&dt.state.next({name:dn,...hn?{}:Qt});if(!Mn&&hn&&dt.state.next({...rt}),vt(!0),nt.resolver){const{errors:wn}=await Mt([dn]),On=schemaErrorLookup(rt.errors,it,dn),jn=schemaErrorLookup(wn,it,On.name||dn);un=jn.error,dn=jn.name,rn=isEmptyObject(wn)}else un=(await validateField(Cn,at,yt,nt.shouldUseNativeValidation))[dn],gn=isNaN(Sn)||Sn===get$6(at,dn,Sn),gn&&(un?rn=!1:ht.isValid&&(rn=await jt(it,!0)));gn&&(Cn._f.deps&&Ft(Cn._f.deps),Et(dn,rn,un,Qt))}},Ft=async(yn,kn={})=>{let dn,gn;const Cn=convertToArrayPayload(yn);if(vt(!0),nt.resolver){const $n=await Lt(isUndefined$1(yn)?yn:Cn);dn=isEmptyObject($n),gn=yn?!Cn.some(un=>get$6($n,un)):dn}else yn?(gn=(await Promise.all(Cn.map(async $n=>{const un=get$6(it,$n);return await jt(un&&un._f?{[$n]:un}:un)}))).every(Boolean),!(!gn&&!rt.isValid)&&wt()):gn=dn=await jt(it);return dt.state.next({...!isString$3(yn)||ht.isValid&&dn!==rt.isValid?{}:{name:yn},...nt.resolver||!yn?{isValid:dn}:{},errors:rt.errors,isValidating:!1}),kn.shouldFocus&&!gn&&focusFieldBy(it,$n=>$n&&get$6(rt.errors,$n),yn?Cn:lt.mount),gn},Nt=yn=>{const kn={...ot,...st.mount?at:{}};return isUndefined$1(yn)?kn:isString$3(yn)?get$6(kn,yn):yn.map(dn=>get$6(kn,dn))},Ct=(yn,kn)=>({invalid:!!get$6((kn||rt).errors,yn),isDirty:!!get$6((kn||rt).dirtyFields,yn),isTouched:!!get$6((kn||rt).touchedFields,yn),error:get$6((kn||rt).errors,yn)}),Ht=yn=>{yn&&convertToArrayPayload(yn).forEach(kn=>unset(rt.errors,kn)),dt.state.next({errors:yn?rt.errors:{}})},Jt=(yn,kn,dn)=>{const gn=(get$6(it,yn,{_f:{}})._f||{}).ref;set$3(rt.errors,yn,{...kn,ref:gn}),dt.state.next({name:yn,errors:rt.errors,isValid:!1}),dn&&dn.shouldFocus&&gn&&gn.focus&&gn.focus()},nn=(yn,kn)=>isFunction$6(yn)?dt.values.subscribe({next:dn=>yn(xt(void 0,kn),dn)}):xt(yn,kn,!0),Yt=(yn,kn={})=>{for(const dn of yn?convertToArrayPayload(yn):lt.mount)lt.mount.delete(dn),lt.array.delete(dn),kn.keepValue||(unset(it,dn),unset(at,dn)),!kn.keepError&&unset(rt.errors,dn),!kn.keepDirty&&unset(rt.dirtyFields,dn),!kn.keepTouched&&unset(rt.touchedFields,dn),!nt.shouldUnregister&&!kn.keepDefaultValue&&unset(ot,dn);dt.values.next({values:{...at}}),dt.state.next({...rt,...kn.keepDirty?{isDirty:$t()}:{}}),!kn.keepIsValid&&wt()},fn=(yn,kn={})=>{let dn=get$6(it,yn);const gn=isBoolean$2(kn.disabled);return set$3(it,yn,{...dn||{},_f:{...dn&&dn._f?dn._f:{ref:{name:yn}},name:yn,mount:!0,...kn}}),lt.mount.add(yn),isUndefined$1(kn.value)||set$3(at,yn,kn.value),dn?gn&&set$3(at,yn,kn.disabled?void 0:get$6(at,yn,getFieldValue(dn._f))):Tt(yn,!0,kn.value),{...gn?{disabled:kn.disabled}:{},...nt.progressive?{required:!!kn.required,min:getRuleValue(kn.min),max:getRuleValue(kn.max),minLength:getRuleValue(kn.minLength),maxLength:getRuleValue(kn.maxLength),pattern:getRuleValue(kn.pattern)}:{},name:yn,onChange:Wt,onBlur:Wt,ref:Cn=>{if(Cn){fn(yn,kn),dn=get$6(it,yn);const $n=isUndefined$1(Cn.value)&&Cn.querySelectorAll&&Cn.querySelectorAll("input,select,textarea")[0]||Cn,un=isRadioOrCheckbox($n),rn=dn._f.refs||[];if(un?rn.find(Sn=>Sn===$n):$n===dn._f.ref)return;set$3(it,yn,{_f:{...dn._f,...un?{refs:[...rn.filter(live),$n,...Array.isArray(get$6(ot,yn))?[{}]:[]],ref:{type:$n.type,name:yn}}:{ref:$n}}}),Tt(yn,!1,void 0,$n)}else dn=get$6(it,yn,{}),dn._f&&(dn._f.mount=!1),(nt.shouldUnregister||kn.shouldUnregister)&&!(isNameInFieldArray(lt.array,yn)&&st.action)&<.unMount.add(yn)}}},cn=()=>nt.shouldFocusError&&focusFieldBy(it,yn=>yn&&get$6(rt.errors,yn),lt.mount),_n=(yn,kn)=>async dn=>{dn&&(dn.preventDefault&&dn.preventDefault(),dn.persist&&dn.persist());let gn=cloneObject(at);if(dt.state.next({isSubmitting:!0}),nt.resolver){const{errors:Cn,values:$n}=await Mt();rt.errors=Cn,gn=$n}else await jt(it);unset(rt.errors,"root"),isEmptyObject(rt.errors)?(dt.state.next({errors:{}}),await yn(gn,dn)):(kn&&await kn({...rt.errors},dn),cn(),setTimeout(cn)),dt.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:isEmptyObject(rt.errors),submitCount:rt.submitCount+1,errors:rt.errors})},En=(yn,kn={})=>{get$6(it,yn)&&(isUndefined$1(kn.defaultValue)?Ut(yn,get$6(ot,yn)):(Ut(yn,kn.defaultValue),set$3(ot,yn,kn.defaultValue)),kn.keepTouched||unset(rt.touchedFields,yn),kn.keepDirty||(unset(rt.dirtyFields,yn),rt.isDirty=kn.defaultValue?$t(yn,get$6(ot,yn)):$t()),kn.keepError||(unset(rt.errors,yn),ht.isValid&&wt()),dt.state.next({...rt}))},an=(yn,kn={})=>{const dn=yn||ot,gn=cloneObject(dn),Cn=yn&&!isEmptyObject(yn)?gn:ot;if(kn.keepDefaultValues||(ot=dn),!kn.keepValues){if(kn.keepDirtyValues||pt)for(const $n of lt.mount)get$6(rt.dirtyFields,$n)?set$3(Cn,$n,get$6(at,$n)):Ut($n,get$6(Cn,$n));else{if(isWeb&&isUndefined$1(yn))for(const $n of lt.mount){const un=get$6(it,$n);if(un&&un._f){const rn=Array.isArray(un._f.refs)?un._f.refs[0]:un._f.ref;if(isHTMLElement$2(rn)){const Sn=rn.closest("form");if(Sn){Sn.reset();break}}}}it={}}at=tt.shouldUnregister?kn.keepDefaultValues?cloneObject(ot):{}:cloneObject(Cn),dt.array.next({values:{...Cn}}),dt.values.next({values:{...Cn}})}lt={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},!st.mount&&et(),st.mount=!ht.isValid||!!kn.keepIsValid,st.watch=!!tt.shouldUnregister,dt.state.next({submitCount:kn.keepSubmitCount?rt.submitCount:0,isDirty:kn.keepDirty?rt.isDirty:!!(kn.keepDefaultValues&&!deepEqual$2(yn,ot)),isSubmitted:kn.keepIsSubmitted?rt.isSubmitted:!1,dirtyFields:kn.keepDirtyValues?rt.dirtyFields:kn.keepDefaultValues&&yn?getDirtyFields(ot,yn):{},touchedFields:kn.keepTouched?rt.touchedFields:{},errors:kn.keepErrors?rt.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})},en=(yn,kn)=>an(isFunction$6(yn)?yn(at):yn,kn);return{control:{register:fn,unregister:Yt,getFieldState:Ct,handleSubmit:_n,setError:Jt,_executeSchema:Mt,_getWatch:xt,_getDirty:$t,_updateValid:wt,_removeUnmounted:Rt,_updateFieldArray:kt,_getFieldArray:It,_reset:an,_resetDefaultValues:()=>isFunction$6(nt.defaultValues)&&nt.defaultValues().then(yn=>{en(yn,nt.resetOptions),dt.state.next({isLoading:!1})}),_updateFormState:yn=>{rt={...rt,...yn}},_subjects:dt,_proxyFormState:ht,get _fields(){return it},get _formValues(){return at},get _state(){return st},set _state(yn){st=yn},get _defaultValues(){return ot},get _names(){return lt},set _names(yn){lt=yn},get _formState(){return rt},set _formState(yn){rt=yn},get _options(){return nt},set _options(yn){nt={...nt,...yn}}},trigger:Ft,register:fn,handleSubmit:_n,watch:nn,setValue:Ut,getValues:Nt,reset:en,resetField:En,clearErrors:Ht,unregister:Yt,setError:Jt,setFocus:(yn,kn={})=>{const dn=get$6(it,yn),gn=dn&&dn._f;if(gn){const Cn=gn.refs?gn.refs[0]:gn.ref;Cn.focus&&(Cn.focus(),kn.shouldSelect&&Cn.select())}},getFieldState:Ct}}function useForm(tt={}){const et=React$1.useRef(),nt=React$1.useRef(),[rt,it]=React$1.useState({isDirty:!1,isValidating:!1,isLoading:isFunction$6(tt.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},errors:{},defaultValues:isFunction$6(tt.defaultValues)?void 0:tt.defaultValues});et.current||(et.current={...createFormControl(tt,()=>it(at=>({...at}))),formState:rt});const ot=et.current.control;return ot._options=tt,useSubscribe({subject:ot._subjects.state,next:at=>{shouldRenderFormState(at,ot._proxyFormState,ot._updateFormState,!0)&&it({...ot._formState})}}),React$1.useEffect(()=>{tt.values&&!deepEqual$2(tt.values,nt.current)?(ot._reset(tt.values,ot._options.resetOptions),nt.current=tt.values):ot._resetDefaultValues()},[tt.values,ot]),React$1.useEffect(()=>{ot._state.mount||(ot._updateValid(),ot._state.mount=!0),ot._state.watch&&(ot._state.watch=!1,ot._subjects.state.next({...ot._formState})),ot._removeUnmounted()}),et.current.formState=getProxyFormState(rt,ot),et.current}const ReactToastify="";var dist$4={exports:{}},lib$4={},postMessage$2={};Object.defineProperty(postMessage$2,"__esModule",{value:!0});postMessage$2.removeEventer=postMessage$2.addEventer=postMessage$2.postMessage=void 0;function postMessage$1(tt){var et=window;if(et.sendToElectron)return et.sendToElectron("sphinx-bridge",tt);et.ReactNativeWebView&&et.ReactNativeWebView.postMessage?et.ReactNativeWebView.postMessage(JSON.stringify(tt)):et.webkit&&et.webkit.messageHandlers&&et.webkit.messageHandlers.sphinx&&et.webkit.messageHandlers.sphinx?et.webkit.messageHandlers.sphinx.postMessage(tt):et.Android?et.Android.receiveMessage(JSON.stringify(tt)):et.parent.postMessage(tt,"*")}postMessage$2.postMessage=postMessage$1;function addEventer(tt){var et=window;if(et.sendToElectron){et.EE&&et.EE.once("sphinx-bridge",tt);return}else et.ReactNativeWebView&&et.ReactNativeWebView.postMessage?document.addEventListener("message",function(nt){var rt={};try{rt=JSON.parse(nt.data)}catch{}tt({data:rt})}):et.webkit&&et.webkit.messageHandlers&&et.webkit.messageHandlers.sphinx&&et.webkit.messageHandlers.sphinx?et.sphinxMessage=function(nt){var rt={};try{rt=JSON.parse(nt)}catch{}tt({data:rt})}:et.Android?et.sphinxMessage=function(nt){var rt={};try{rt=JSON.parse(nt)}catch{}tt({data:rt})}:et.addEventListener("message",tt)}postMessage$2.addEventer=addEventer;function removeEventer(tt){var et=window;et.sendToElectron||(et.ReactNativeWebView&&et.ReactNativeWebView.postMessage?document.removeEventListener("message",tt):et.webkit&&et.webkit.messageHandlers&&et.webkit.messageHandlers.sphinx&&et.webkit.messageHandlers.sphinx||et.Android?et.sphinxMessage=null:et.removeEventListener("message",tt))}postMessage$2.removeEventer=removeEventer;(function(tt){var et=commonjsGlobal&&commonjsGlobal.__assign||function(){return et=Object.assign||function(lt){for(var ct,ut=1,ht=arguments.length;ut0&&pt[pt.length-1])&&(bt[0]===6||bt[0]===2)){ut=0;continue}if(bt[0]===3&&(!pt||bt[1]>pt[0]&&bt[1] ENABLE!"),this.isEnabled)return[2,{budget:this.budget,pubkey:this.pubkey,application:at}];pt.label=1;case 1:return pt.trys.push([1,3,,4]),[4,this.postMsg(ot.AUTHORIZE)];case 2:return ut=pt.sent(),ht=ut.budget||ut.budget===0,ht&&ut.pubkey?(this.isEnabled=!0,this.budget=ut.budget,this.pubkey=ut.pubkey,[2,ut]):[3,4];case 3:return dt=pt.sent(),this.logging&&console.log(dt),[3,4];case 4:return[2,null]}})})},lt.prototype.authorize=function(ct,ut,ht){return nt(this,void 0,void 0,function(){var dt,pt,mt,gt;return rt(this,function(yt){switch(yt.label){case 0:ht&&(this.logging=!0),this.logging&&console.log("=> AUTHORIZE!"),yt.label=1;case 1:return yt.trys.push([1,3,,4]),dt=ut||!1,[4,this.postMsg(ot.AUTHORIZE,{challenge:ct,noBudget:dt})];case 2:return pt=yt.sent(),mt=pt.budget||pt.budget===0,(dt||mt)&&pt.pubkey?(this.isEnabled=!0,this.budget=pt.budget||0,this.pubkey=pt.pubkey,[2,pt]):[3,4];case 3:return gt=yt.sent(),this.logging&&console.log(gt),[3,4];case 4:return[2,null]}})})},lt.prototype.topup=function(){return nt(this,void 0,void 0,function(){var ct,ut,ht;return rt(this,function(dt){switch(dt.label){case 0:this.logging&&console.log("=> TOP UP"),dt.label=1;case 1:return dt.trys.push([1,3,,4]),[4,this.postMsg(ot.AUTHORIZE)];case 2:return ct=dt.sent(),ut=ct.budget||ct.budget===0,ut&&ct.pubkey?(this.budget=ct.budget,this.pubkey=ct.pubkey,[2,ct]):[3,4];case 3:return ht=dt.sent(),this.logging&&console.log(ht),[3,4];case 4:return[2,null]}})})},lt.prototype.keysend=function(ct,ut){return nt(this,void 0,void 0,function(){var ht,dt,pt;return rt(this,function(mt){switch(mt.label){case 0:if(this.logging&&console.log("=> KEYSEND"),!this.isEnabled)return[2,null];if(!ct||!ut)return[2,null];if(ct.length!==66)return[2,null];if(ut<1)return[2,null];if(ut>this.budget)return[2,null];mt.label=1;case 1:return mt.trys.push([1,3,,4]),ht={dest:ct,amt:ut},[4,this.postMsg(ot.KEYSEND,ht)];case 2:return dt=mt.sent(),dt&&dt.success&&(this.budget=this.budget-ut,dt.budget=this.budget),[2,dt];case 3:return pt=mt.sent(),this.logging&&console.log(pt),[2,null];case 4:return[2]}})})},lt.prototype.updated=function(){return nt(this,void 0,void 0,function(){var ct,ut;return rt(this,function(ht){switch(ht.label){case 0:if(this.logging&&console.log("=> UDPATED"),!this.isEnabled)return[2,null];ht.label=1;case 1:return ht.trys.push([1,3,,4]),[4,this.postMsg(ot.UPDATED)];case 2:return ct=ht.sent(),[2,ct];case 3:return ut=ht.sent(),this.logging&&console.log(ut),[2,null];case 4:return[2]}})})},lt.prototype.sendPayment=function(ct){return nt(this,void 0,void 0,function(){var ut,ht;return rt(this,function(dt){switch(dt.label){case 0:if(this.logging&&console.log("=> SEND PAYMENT"),!this.isEnabled)return[2,null];dt.label=1;case 1:return dt.trys.push([1,3,,4]),[4,this.postMsg(ot.PAYMENT,{paymentRequest:ct})];case 2:return ut=dt.sent(),[2,ut];case 3:return ht=dt.sent(),this.logging&&console.log(ht),[2,null];case 4:return[2]}})})},lt.prototype.saveLsat=function(ct,ut,ht){return nt(this,void 0,void 0,function(){var dt,pt;return rt(this,function(mt){switch(mt.label){case 0:this.logging&&console.log("=> SAVE LSAT"),mt.label=1;case 1:return mt.trys.push([1,3,,4]),[4,this.postMsg(ot.LSAT,{paymentRequest:ct,macaroon:ut,issuer:ht})];case 2:return dt=mt.sent(),[2,dt];case 3:return pt=mt.sent(),this.logging&&console.log(pt),[2,pt];case 4:return[2]}})})},lt.prototype.getLsat=function(){return nt(this,void 0,void 0,function(){var ct,ut;return rt(this,function(ht){switch(ht.label){case 0:if(this.logging&&console.log("=> GET LSAT"),!this.isEnabled)return[2,null];ht.label=1;case 1:return ht.trys.push([1,3,,4]),[4,this.postMsg(ot.GETLSAT)];case 2:return ct=ht.sent(),[2,ct];case 3:return ut=ht.sent(),this.logging&&console.log(ut),[2,ut];case 4:return[2]}})})},lt.prototype.updateLsat=function(ct,ut){return nt(this,void 0,void 0,function(){var ht,dt;return rt(this,function(pt){switch(pt.label){case 0:if(this.logging&&console.log("=> UPDATE LSAT"),!this.isEnabled)return[2,null];pt.label=1;case 1:return pt.trys.push([1,3,,4]),[4,this.postMsg(ot.UPDATELSAT,{identifier:ct,status:ut})];case 2:return ht=pt.sent(),[2,ht];case 3:return dt=pt.sent(),this.logging&&console.log(dt),[2,dt];case 4:return[2]}})})},lt.prototype.makeInvoice=function(ct,ut){return nt(this,void 0,void 0,function(){var ht,dt;return rt(this,function(pt){switch(pt.label){case 0:if(this.logging&&console.log("=> MAKE INVOICE"),!this.isEnabled)return[2,null];pt.label=1;case 1:return pt.trys.push([1,3,,4]),[4,this.postMsg(ot.INVOICE,{amt:ct,memo:ut})];case 2:return ht=pt.sent(),[2,ht];case 3:return dt=pt.sent(),this.logging&&console.log(dt),[2,null];case 4:return[2]}})})},lt.prototype.signMessage=function(ct){return nt(this,void 0,void 0,function(){var ut,ht;return rt(this,function(dt){switch(dt.label){case 0:if(this.logging&&console.log("=> SIGN MESSAGE"),!this.isEnabled)return[2,null];dt.label=1;case 1:return dt.trys.push([1,3,,4]),[4,this.postMsg(ot.SIGN,{message:ct})];case 2:return ut=dt.sent(),[2,ut];case 3:return ht=dt.sent(),this.logging&&console.log(ht),[2,null];case 4:return[2]}})})},lt.prototype.verifyMessage=function(ct,ut){return nt(this,void 0,void 0,function(){var ht,dt;return rt(this,function(pt){switch(pt.label){case 0:if(this.logging&&console.log("=> VERIFY MESSAGE"),!this.isEnabled)return[2,null];pt.label=1;case 1:return pt.trys.push([1,3,,4]),[4,this.postMsg(ot.SIGN,{signature:ct,message:ut})];case 2:return ht=pt.sent(),[2,ht];case 3:return dt=pt.sent(),this.logging&&console.log(dt),[2,null];case 4:return[2]}})})},lt.prototype.reload=function(ct){return nt(this,void 0,void 0,function(){var ut,ht,dt;return rt(this,function(pt){switch(pt.label){case 0:this.logging&&console.log("=> RELOAD"),pt.label=1;case 1:return pt.trys.push([1,3,,4]),[4,this.postMsg(ot.RELOAD,{password:ct})];case 2:return ut=pt.sent(),ht=ut.budget||ut.budget===0,ht&&ut.pubkey?(this.isEnabled=!0,this.budget=ut.budget,this.pubkey=ut.pubkey,[2,ut]):[3,4];case 3:return dt=pt.sent(),this.logging&&console.log(dt),[3,4];case 4:return[2,null]}})})},lt.prototype.saveGraphData=function(ct){return nt(this,void 0,void 0,function(){var ut,ht;return rt(this,function(dt){switch(dt.label){case 0:if(this.logging&&console.log("=> SAVEDATA"),!this.isEnabled)return[2,null];dt.label=1;case 1:return dt.trys.push([1,3,,4]),[4,this.postMsg(ot.SAVEDATA,{data:{type:ct.type,metaData:ct.metaData}})];case 2:return ut=dt.sent(),[2,ut];case 3:return ht=dt.sent(),this.logging&&console.log(ht),[2,null];case 4:return[2]}})})},lt.prototype.getPersonData=function(){return nt(this,void 0,void 0,function(){var ct,ut;return rt(this,function(ht){switch(ht.label){case 0:if(this.logging&&console.log("=> GETPERSONDATA"),!this.isEnabled)return[2,null];ht.label=1;case 1:return ht.trys.push([1,3,,4]),[4,this.postMsg(ot.GETPERSONDATA)];case 2:return ct=ht.sent(),[2,ct];case 3:return ut=ht.sent(),this.logging&&console.log(ut),[2,null];case 4:return[2]}})})},lt.prototype.postMsg=function(ct,ut){var ht=this;return ht.active&&Promise.reject(new Error("User is busy")),ht.active=ct,new Promise(function(dt,pt){it.postMessage(et({application:at,type:ct},ut||{}));function mt(gt){!gt.data||gt.data.application!==at||(gt.data.error?(ht.active=null,pt(gt.data.error)):(ht.active=null,dt(gt.data)),it.removeEventer(mt))}it.addEventer(mt)})},lt}();tt.default=st})(lib$4);var dist$3=dist$4.exports;Object.defineProperty(dist$3,"__esModule",{value:!0});var lib_1=lib$4,sphinx=new lib_1.default;dist$4.exports=sphinx;var distExports$2=dist$4.exports,reactIs$3={exports:{}},reactIs_production_min$2={};/** + */var split=splitString,extend$3=extendShallow,isPlainObject$2=isPlainObject$4,isObject$h=isExtendable,setValue=function(tt,et,nt){if(!isObject$h(tt)||(Array.isArray(et)&&(et=[].concat.apply([],et).join(".")),typeof et!="string"))return tt;for(var rt=split(et,{sep:".",brackets:!0}).filter(isValidKey),it=rt.length,ot=-1,at=tt;++ottt.filter(Boolean).join(".");function getKeyPath(tt){const et=tt.split(".");return[et.pop(),et.join(".")||void 0]}function getValuesForPaths(tt,et){return Object.entries(pick$1(tt,et)).reduce((nt,[,{value:rt,disabled:it,key:ot}])=>(nt[ot]=it?void 0:rt,nt),{})}function useCompareMemoize(tt,et){const nt=reactExports.useRef();return(et?dequal:shallow$1)(tt,nt.current)||(nt.current=tt),nt.current}function useDeepMemo(tt,et){return reactExports.useMemo(tt,useCompareMemoize(et,!0))}function useToggle(tt){const et=reactExports.useRef(null),nt=reactExports.useRef(null),rt=reactExports.useRef(!0);return reactExports.useLayoutEffect(()=>{tt||(et.current.style.height="0px",et.current.style.overflow="hidden")},[]),reactExports.useEffect(()=>{if(rt.current){rt.current=!1;return}let it;const ot=et.current,at=()=>{tt&&(ot.style.removeProperty("height"),ot.style.removeProperty("overflow"),nt.current.scrollIntoView({behavior:"smooth",block:"nearest"}))};ot.addEventListener("transitionend",at,{once:!0});const{height:st}=nt.current.getBoundingClientRect();return ot.style.height=st+"px",tt||(ot.style.overflow="hidden",it=window.setTimeout(()=>ot.style.height="0px",50)),()=>{ot.removeEventListener("transitionend",at),clearTimeout(it)}},[tt]),{wrapperRef:et,contentRef:nt}}const useVisiblePaths=tt=>{const[et,nt]=reactExports.useState(tt.getVisiblePaths());return reactExports.useEffect(()=>{nt(tt.getVisiblePaths());const rt=tt.useStore.subscribe(tt.getVisiblePaths,nt,{equalityFn:shallow$1});return()=>rt()},[tt]),et};function useValuesForPath(tt,et,nt){return tt.useStore(it=>{const ot=_objectSpread2$1(_objectSpread2$1({},nt),it.data);return getValuesForPaths(ot,et)},shallow$1)}function usePopin(tt=3){const et=reactExports.useRef(null),nt=reactExports.useRef(null),[rt,it]=reactExports.useState(!1),ot=reactExports.useCallback(()=>it(!0),[]),at=reactExports.useCallback(()=>it(!1),[]);return reactExports.useLayoutEffect(()=>{if(rt){const{bottom:st,top:lt,left:ct}=et.current.getBoundingClientRect(),{height:ut}=nt.current.getBoundingClientRect(),ht=st+ut>window.innerHeight-40?"up":"down";nt.current.style.position="fixed",nt.current.style.zIndex="10000",nt.current.style.left=ct+"px",ht==="down"?nt.current.style.top=st+tt+"px":nt.current.style.bottom=window.innerHeight-lt+tt+"px"}},[tt,rt]),{popinRef:et,wrapperRef:nt,shown:rt,show:ot,hide:at}}k$8([namesPlugin]);const convertMap={rgb:"toRgb",hsl:"toHsl",hsv:"toHsv",hex:"toHex"};v8n.extend({color:()=>tt=>w$5(tt).isValid()});const schema$2=tt=>v8n().color().test(tt);function convert$6(tt,{format:et,hasAlpha:nt,isString:rt}){const it=convertMap[et]+(rt&&et!=="hex"?"String":""),ot=tt[it]();return typeof ot=="object"&&!nt?omit$1(ot,["a"]):ot}const sanitize$2=(tt,et)=>{const nt=w$5(tt);if(!nt.isValid())throw Error("Invalid color");return convert$6(nt,et)},format$1$1=(tt,et)=>convert$6(w$5(tt),_objectSpread2$1(_objectSpread2$1({},et),{},{isString:!0,format:"hex"})),normalize$3=({value:tt})=>{const et=I$2(tt),nt=et==="name"?"hex":et,rt=typeof tt=="object"?"a"in tt:et==="hex"&&tt.length===8||/^(rgba)|(hsla)|(hsva)/.test(tt),it={format:nt,hasAlpha:rt,isString:typeof tt=="string"};return{value:sanitize$2(tt,it),settings:it}};var props$2=Object.freeze({__proto__:null,schema:schema$2,sanitize:sanitize$2,format:format$1$1,normalize:normalize$3});const ColorPreview=styled$5("div",{position:"relative",boxSizing:"border-box",borderRadius:"$sm",overflow:"hidden",cursor:"pointer",height:"$rowHeight",width:"$rowHeight",backgroundColor:"#fff",backgroundImage:`url('data:image/svg+xml;charset=utf-8,')`,$inputStyle:"",$hover:"",zIndex:1,variants:{active:{true:{$inputStyle:"$accent1"}}},"&::before":{content:'""',position:"absolute",top:0,bottom:0,right:0,left:0,backgroundColor:"currentColor",zIndex:1}}),PickerContainer=styled$5("div",{position:"relative",display:"grid",gridTemplateColumns:"$sizes$rowHeight auto",columnGap:"$colGap",alignItems:"center"}),PickerWrapper=styled$5("div",{width:"$colorPickerWidth",height:"$colorPickerHeight",".react-colorful":{width:"100%",height:"100%",boxShadow:"$level2",cursor:"crosshair"},".react-colorful__saturation":{borderRadius:"$sm $sm 0 0"},".react-colorful__alpha, .react-colorful__hue":{height:10},".react-colorful__last-control":{borderRadius:"0 0 $sm $sm"},".react-colorful__pointer":{height:12,width:12}});function convertToRgb(tt,et){return et!=="rgb"?w$5(tt).toRgb():tt}function Color$2({value:tt,displayValue:et,settings:nt,onUpdate:rt}){const{emitOnEditStart:it,emitOnEditEnd:ot}=useInputContext(),{format:at,hasAlpha:st}=nt,{popinRef:lt,wrapperRef:ct,shown:ut,show:ht,hide:dt}=usePopin(),pt=reactExports.useRef(0),[mt,gt]=reactExports.useState(()=>convertToRgb(tt,at)),yt=st?Ce:Ne$1,bt=()=>{gt(convertToRgb(tt,at)),ht(),it()},wt=()=>{dt(),ot(),window.clearTimeout(pt.current)},vt=()=>{pt.current=window.setTimeout(wt,500)};return reactExports.useEffect(()=>()=>window.clearTimeout(pt.current),[]),React$1.createElement(React$1.Fragment,null,React$1.createElement(ColorPreview,{ref:lt,active:ut,onClick:()=>bt(),style:{color:et}}),ut&&React$1.createElement(Portal$3,null,React$1.createElement(Overlay$1,{onPointerUp:wt}),React$1.createElement(PickerWrapper,{ref:ct,onMouseEnter:()=>window.clearTimeout(pt.current),onMouseLeave:kt=>kt.buttons===0&&vt()},React$1.createElement(yt,{color:mt,onChange:rt}))))}function ColorComponent(){const{value:tt,displayValue:et,label:nt,onChange:rt,onUpdate:it,settings:ot}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,nt),React$1.createElement(PickerContainer,null,React$1.createElement(Color$2,{value:tt,displayValue:et,onChange:rt,onUpdate:it,settings:ot}),React$1.createElement(ValueInput,{value:et,onChange:rt,onUpdate:it})))}var color$3=_objectSpread2$1({component:ColorComponent},props$2);function Vector3dComponent(){const{label:tt,displayValue:et,onUpdate:nt,settings:rt}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(Vector,{value:et,settings:rt,onUpdate:nt}))}var vector3d=_objectSpread2$1({component:Vector3dComponent},getVectorPlugin(["x","y","z"]));const JoystickTrigger=styled$5("div",{$flexCenter:"",position:"relative",backgroundColor:"$elevation3",borderRadius:"$sm",cursor:"pointer",height:"$rowHeight",width:"$rowHeight",touchAction:"none",$draggable:"",$hover:"","&:active":{cursor:"none"},"&::after":{content:'""',backgroundColor:"$accent2",height:4,width:4,borderRadius:2}}),JoystickPlayground=styled$5("div",{$flexCenter:"",width:"$joystickWidth",height:"$joystickHeight",borderRadius:"$sm",boxShadow:"$level2",position:"fixed",zIndex:1e4,overflow:"hidden",$draggable:"",transform:"translate(-50%, -50%)",variants:{isOutOfBounds:{true:{backgroundColor:"$elevation1"},false:{backgroundColor:"$elevation3"}}},"> div":{position:"absolute",$flexCenter:"",borderStyle:"solid",borderWidth:1,borderColor:"$highlight1",backgroundColor:"$elevation3",width:"80%",height:"80%","&::after,&::before":{content:'""',position:"absolute",zindex:10,backgroundColor:"$highlight1"},"&::before":{width:"100%",height:1},"&::after":{height:"100%",width:1}},"> span":{position:"relative",zindex:100,width:10,height:10,backgroundColor:"$accent2",borderRadius:"50%"}});function Joystick({value:tt,settings:et,onUpdate:nt}){const rt=reactExports.useRef(),it=reactExports.useRef(0),ot=reactExports.useRef(0),at=reactExports.useRef(1),[st,lt]=reactExports.useState(!1),[ct,ut]=reactExports.useState(!1),[ht,dt]=useTransform(),pt=reactExports.useRef(null),mt=reactExports.useRef(null);reactExports.useLayoutEffect(()=>{if(st){const{top:Rt,left:$t,width:xt,height:It}=pt.current.getBoundingClientRect();mt.current.style.left=$t+xt/2+"px",mt.current.style.top=Rt+It/2+"px"}},[st]);const{keys:[gt,yt],joystick:bt}=et,wt=bt==="invertY"?1:-1,{[gt]:{step:vt},[yt]:{step:kt}}=et,St=useTh("sizes","joystickWidth"),Et=useTh("sizes","joystickHeight"),At=parseFloat(St)*.8/2,Tt=parseFloat(Et)*.8/2,Mt=reactExports.useCallback(()=>{rt.current||(ut(!0),it.current&&dt({x:it.current*At}),ot.current&&dt({y:ot.current*-Tt}),rt.current=window.setInterval(()=>{nt(Rt=>{const $t=vt*it.current*at.current,xt=wt*kt*ot.current*at.current;return Array.isArray(Rt)?{[gt]:Rt[0]+$t,[yt]:Rt[1]+xt}:{[gt]:Rt[gt]+$t,[yt]:Rt[yt]+xt}})},16))},[At,Tt,nt,dt,vt,kt,gt,yt,wt]),Lt=reactExports.useCallback(()=>{window.clearTimeout(rt.current),rt.current=void 0,ut(!1)},[]);reactExports.useEffect(()=>{function Rt($t){at.current=multiplyStep($t)}return window.addEventListener("keydown",Rt),window.addEventListener("keyup",Rt),()=>{window.clearTimeout(rt.current),window.removeEventListener("keydown",Rt),window.removeEventListener("keyup",Rt)}},[]);const jt=useDrag(({first:Rt,active:$t,delta:[xt,It],movement:[Ot,zt]})=>{Rt&<(!0);const Ut=clamp$7(Ot,-At,At),Wt=clamp$7(zt,-Tt,Tt);it.current=Math.abs(Ot)>Math.abs(Ut)?Math.sign(Ot-Ut):0,ot.current=Math.abs(zt)>Math.abs(Wt)?Math.sign(Wt-zt):0;let Ft=tt[gt],Nt=tt[yt];$t?(it.current||(Ft+=xt*vt*at.current,dt({x:Ut})),ot.current||(Nt-=wt*It*kt*at.current,dt({y:Wt})),it.current||ot.current?Mt():Lt(),nt({[gt]:Ft,[yt]:Nt})):(lt(!1),it.current=0,ot.current=0,dt({x:0,y:0}),Lt())});return React$1.createElement(JoystickTrigger,_extends$q({ref:pt},jt()),st&&React$1.createElement(Portal$3,null,React$1.createElement(JoystickPlayground,{ref:mt,isOutOfBounds:ct},React$1.createElement("div",null),React$1.createElement("span",{ref:ht}))))}const Container$1=styled$5("div",{display:"grid",columnGap:"$colGap",variants:{withJoystick:{true:{gridTemplateColumns:"$sizes$rowHeight auto"},false:{gridTemplateColumns:"auto"}}}});function Vector2dComponent(){const{label:tt,displayValue:et,onUpdate:nt,settings:rt}=useInputContext();return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(Container$1,{withJoystick:!!rt.joystick},rt.joystick&&React$1.createElement(Joystick,{value:et,settings:rt,onUpdate:nt}),React$1.createElement(Vector,{value:et,settings:rt,onUpdate:nt})))}const _excluded$7$1=["joystick"],plugin=getVectorPlugin(["x","y"]),normalize$2$1=tt=>{let{joystick:et=!0}=tt,nt=_objectWithoutProperties$f(tt,_excluded$7$1);const{value:rt,settings:it}=plugin.normalize(nt);return{value:rt,settings:_objectSpread2$1(_objectSpread2$1({},it),{},{joystick:et})}};var vector2d=_objectSpread2$1(_objectSpread2$1({component:Vector2dComponent},plugin),{},{normalize:normalize$2$1});const sanitize$1=tt=>{if(tt!==void 0){if(tt instanceof File)try{return URL.createObjectURL(tt)}catch{return}if(typeof tt=="string"&&tt.indexOf("blob:")===0)return tt;throw Error("Invalid image format [undefined | blob | File].")}},schema$1=(tt,et)=>typeof et=="object"&&"image"in et,normalize$1$1=({image:tt})=>({value:tt});var props$1=Object.freeze({__proto__:null,sanitize:sanitize$1,schema:schema$1,normalize:normalize$1$1});const ImageContainer=styled$5("div",{position:"relative",display:"grid",gridTemplateColumns:"$sizes$rowHeight auto 20px",columnGap:"$colGap",alignItems:"center"}),DropZone=styled$5("div",{$flexCenter:"",overflow:"hidden",height:"$rowHeight",background:"$elevation3",textAlign:"center",color:"inherit",borderRadius:"$sm",outline:"none",userSelect:"none",cursor:"pointer",$inputStyle:"",$hover:"",$focusWithin:"",$active:"$accent1 $elevation1",variants:{isDragAccept:{true:{$inputStyle:"$accent1",backgroundColor:"$elevation1"}}}}),ImagePreview=styled$5("div",{boxSizing:"border-box",borderRadius:"$sm",height:"$rowHeight",width:"$rowHeight",$inputStyle:"",backgroundSize:"cover",backgroundPosition:"center",variants:{hasImage:{true:{cursor:"pointer",$hover:"",$active:""}}}}),ImageLargePreview=styled$5("div",{$flexCenter:"",width:"$imagePreviewWidth",height:"$imagePreviewHeight",borderRadius:"$sm",boxShadow:"$level2",pointerEvents:"none",$inputStyle:"",backgroundSize:"cover",backgroundPosition:"center"}),Instructions=styled$5("div",{fontSize:"0.8em",height:"100%",padding:"$rowGap $md"}),Remove=styled$5("div",{$flexCenter:"",top:"0",right:"0",marginRight:"$sm",height:"100%",cursor:"pointer",variants:{disabled:{true:{color:"$elevation3",cursor:"default"}}},"&::after,&::before":{content:'""',position:"absolute",height:2,width:10,borderRadius:1,backgroundColor:"currentColor"},"&::after":{transform:"rotate(45deg)"},"&::before":{transform:"rotate(-45deg)"}});function ImageComponent(){const{label:tt,value:et,onUpdate:nt,disabled:rt}=useInputContext(),{popinRef:it,wrapperRef:ot,shown:at,show:st,hide:lt}=usePopin(),ct=reactExports.useCallback(mt=>{mt.length&&nt(mt[0])},[nt]),ut=reactExports.useCallback(mt=>{mt.stopPropagation(),nt(void 0)},[nt]),{getRootProps:ht,getInputProps:dt,isDragAccept:pt}=useDropzone({maxFiles:1,accept:"image/*",onDrop:ct,disabled:rt});return React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(ImageContainer,null,React$1.createElement(ImagePreview,{ref:it,hasImage:!!et,onPointerDown:()=>!!et&&st(),onPointerUp:lt,style:{backgroundImage:et?`url(${et})`:"none"}}),at&&!!et&&React$1.createElement(Portal$3,null,React$1.createElement(Overlay$1,{onPointerUp:lt,style:{cursor:"pointer"}}),React$1.createElement(ImageLargePreview,{ref:ot,style:{backgroundImage:`url(${et})`}})),React$1.createElement(DropZone,ht({isDragAccept:pt}),React$1.createElement("input",dt()),React$1.createElement(Instructions,null,pt?"drop image":"click or drop")),React$1.createElement(Remove,{onClick:ut,disabled:!et})))}var image=_objectSpread2$1({component:ImageComponent},props$1);const number$5=v8n().number(),schema=(tt,et)=>v8n().array().length(2).every.number().test(tt)&&v8n().schema({min:number$5,max:number$5}).test(et),format$2=tt=>({min:tt[0],max:tt[1]}),sanitize=(tt,{bounds:[et,nt]},rt)=>{const it=Array.isArray(tt)?format$2(tt):tt,ot={min:rt[0],max:rt[1]},{min:at,max:st}=_objectSpread2$1(_objectSpread2$1({},ot),it);return[clamp$7(Number(at),et,Math.max(et,st)),clamp$7(Number(st),Math.min(nt,at),nt)]},normalize$4=({value:tt,min:et,max:nt})=>{const rt={min:et,max:nt},it=normalizeKeyedNumberSettings(format$2(tt),{min:rt,max:rt}),ot=[et,nt],at=_objectSpread2$1(_objectSpread2$1({},it),{},{bounds:ot});return{value:sanitize(format$2(tt),at,tt),settings:at}};var props$3=Object.freeze({__proto__:null,schema,format:format$2,sanitize,normalize:normalize$4});const _excluded$6$1=["value","bounds","onDrag"],_excluded2$1$1=["bounds"],Container$2=styled$5("div",{display:"grid",columnGap:"$colGap",gridTemplateColumns:"auto calc($sizes$numberInputMinWidth * 2 + $space$rowGap)"});function IntervalSlider(tt){let{value:et,bounds:[nt,rt],onDrag:it}=tt,ot=_objectWithoutProperties$f(tt,_excluded$6$1);const at=reactExports.useRef(null),st=reactExports.useRef(null),lt=reactExports.useRef(null),ct=reactExports.useRef(0),ut=useTh("sizes","scrubberWidth"),ht=useDrag(({event:mt,first:gt,xy:[yt],movement:[bt],memo:wt={}})=>{if(gt){const{width:kt,left:St}=at.current.getBoundingClientRect();ct.current=kt-parseFloat(ut);const Et=(mt==null?void 0:mt.target)===st.current||(mt==null?void 0:mt.target)===lt.current;wt.pos=invertedRange((yt-St)/kt,nt,rt);const At=Math.abs(wt.pos-et.min)-Math.abs(wt.pos-et.max);wt.key=At<0||At===0&&wt.pos<=et.min?"min":"max",Et&&(wt.pos=et[wt.key])}const vt=wt.pos+invertedRange(bt/ct.current,0,rt-nt);return it({[wt.key]:sanitizeStep(vt,ot[wt.key])}),wt}),dt=`calc(${range$8(et.min,nt,rt)} * (100% - ${ut} - 8px) + 4px)`,pt=`calc(${1-range$8(et.max,nt,rt)} * (100% - ${ut} - 8px) + 4px)`;return React$1.createElement(RangeWrapper,_extends$q({ref:at},ht()),React$1.createElement(Range,null,React$1.createElement(Indicator,{style:{left:dt,right:pt}})),React$1.createElement(Scrubber,{position:"left",ref:st,style:{left:dt}}),React$1.createElement(Scrubber,{position:"right",ref:lt,style:{right:pt}}))}function IntervalComponent(){const{label:tt,displayValue:et,onUpdate:nt,settings:rt}=useInputContext(),it=_objectWithoutProperties$f(rt,_excluded2$1$1);return React$1.createElement(React$1.Fragment,null,React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,null,tt),React$1.createElement(Container$2,null,React$1.createElement(IntervalSlider,_extends$q({value:et},rt,{onDrag:nt})),React$1.createElement(Vector,{value:et,settings:it,onUpdate:nt,innerLabelTrim:0}))))}var interval$1=_objectSpread2$1({component:IntervalComponent},props$3);const createEventEmitter=()=>{const tt=new Map;return{on:(et,nt)=>{let rt=tt.get(et);rt===void 0&&(rt=new Set,tt.set(et,rt)),rt.add(nt)},off:(et,nt)=>{const rt=tt.get(et);rt!==void 0&&(rt.delete(nt),rt.size===0&&tt.delete(et))},emit:(et,...nt)=>{const rt=tt.get(et);if(rt!==void 0)for(const it of rt)it(...nt)}}},_excluded$5$1=["type","value"],_excluded2$b=["onChange","transient","onEditStart","onEditEnd"],Store=function(){const et=create$3(subscribeWithSelector(()=>({data:{}}))),nt=createEventEmitter();this.storeId=getUid(),this.useStore=et;const rt={},it=new Set;this.getVisiblePaths=()=>{const at=this.getData(),st=Object.keys(at),lt=[];Object.entries(rt).forEach(([ut,ht])=>{ht.render&&st.some(dt=>dt.indexOf(ut)===0)&&!ht.render(this.get)&<.push(ut+".")});const ct=[];return it.forEach(ut=>{ut in at&&at[ut].__refCount>0&<.every(ht=>ut.indexOf(ht)===-1)&&(!at[ut].render||at[ut].render(this.get))&&ct.push(ut)}),ct},this.setOrderedPaths=at=>{at.forEach(st=>it.add(st))},this.orderPaths=at=>(this.setOrderedPaths(at),at),this.disposePaths=at=>{et.setState(st=>{const lt=st.data;return at.forEach(ct=>{if(ct in lt){const ut=lt[ct];ut.__refCount--,ut.__refCount===0&&ut.type in SpecialInputs&&delete lt[ct]}}),{data:lt}})},this.dispose=()=>{et.setState(()=>({data:{}}))},this.getFolderSettings=at=>rt[at]||{},this.getData=()=>et.getState().data,this.addData=(at,st)=>{et.setState(lt=>{const ct=lt.data;return Object.entries(at).forEach(([ut,ht])=>{let dt=ct[ut];if(dt){const{type:pt,value:mt}=ht,gt=_objectWithoutProperties$f(ht,_excluded$5$1);pt!==dt.type?warn$3(LevaErrors.INPUT_TYPE_OVERRIDE,pt):((dt.__refCount===0||st)&&Object.assign(dt,gt),dt.__refCount++)}else ct[ut]=_objectSpread2$1(_objectSpread2$1({},ht),{},{__refCount:1})}),{data:ct}})},this.setValueAtPath=(at,st,lt)=>{et.setState(ct=>{const ut=ct.data;return updateInput(ut[at],st,at,this,lt),{data:ut}})},this.setSettingsAtPath=(at,st)=>{et.setState(lt=>{const ct=lt.data;return ct[at].settings=_objectSpread2$1(_objectSpread2$1({},ct[at].settings),st),{data:ct}})},this.disableInputAtPath=(at,st)=>{et.setState(lt=>{const ct=lt.data;return ct[at].disabled=st,{data:ct}})},this.set=(at,st)=>{et.setState(lt=>{const ct=lt.data;return Object.entries(at).forEach(([ut,ht])=>{try{updateInput(ct[ut],ht,void 0,void 0,st)}catch{}}),{data:ct}})},this.getInput=at=>{try{return this.getData()[at]}catch{warn$3(LevaErrors.PATH_DOESNT_EXIST,at)}},this.get=at=>{var st;return(st=this.getInput(at))===null||st===void 0?void 0:st.value},this.emitOnEditStart=at=>{nt.emit(`onEditStart:${at}`,this.get(at),at,_objectSpread2$1(_objectSpread2$1({},this.getInput(at)),{},{get:this.get}))},this.emitOnEditEnd=at=>{nt.emit(`onEditEnd:${at}`,this.get(at),at,_objectSpread2$1(_objectSpread2$1({},this.getInput(at)),{},{get:this.get}))},this.subscribeToEditStart=(at,st)=>{const lt=`onEditStart:${at}`;return nt.on(lt,st),()=>nt.off(lt,st)},this.subscribeToEditEnd=(at,st)=>{const lt=`onEditEnd:${at}`;return nt.on(lt,st),()=>nt.off(lt,st)};const ot=(at,st,lt)=>{const ct={};return Object.entries(at).forEach(([ut,ht])=>{if(ut==="")return warn$3(LevaErrors.EMPTY_KEY);let dt=join(st,ut);if(ht.type===SpecialInputs.FOLDER){const pt=ot(ht.schema,dt,lt);Object.assign(ct,pt),dt in rt||(rt[dt]=ht.settings)}else if(ut in lt)warn$3(LevaErrors.DUPLICATE_KEYS,ut,dt,lt[ut].path);else{const pt=normalizeInput(ht,ut,dt,ct);if(pt){const{type:mt,options:gt,input:yt}=pt,{onChange:bt,transient:wt,onEditStart:vt,onEditEnd:kt}=gt,St=_objectWithoutProperties$f(gt,_excluded2$b);ct[dt]=_objectSpread2$1(_objectSpread2$1(_objectSpread2$1({type:mt},St),yt),{},{fromPanel:!0}),lt[ut]={path:dt,onChange:bt,transient:wt,onEditStart:vt,onEditEnd:kt}}else warn$3(LevaErrors.UNKNOWN_INPUT,dt,ht)}}),ct};this.getDataFromSchema=at=>{const st={};return[ot(at,"",st),st]}},levaStore=new Store,defaultSettings$2={collapsed:!1};function folder(tt,et){return{type:SpecialInputs.FOLDER,schema:tt,settings:_objectSpread2$1(_objectSpread2$1({},defaultSettings$2),et)}}const isInput=tt=>"__levaInput"in tt,buildTree=(tt,et)=>{const nt={},rt=et?et.toLowerCase():null;return tt.forEach(it=>{const[ot,at]=getKeyPath(it);(!rt||ot.toLowerCase().indexOf(rt)>-1)&&merge$2(nt,at,{[ot]:{__levaInput:!0,path:it}})}),nt},_excluded$4$1=["type","label","path","valueKey","value","settings","setValue","disabled"];function ControlInput(tt){let{type:et,label:nt,path:rt,valueKey:it,value:ot,settings:at,setValue:st,disabled:lt}=tt,ct=_objectWithoutProperties$f(tt,_excluded$4$1);const{displayValue:ut,onChange:ht,onUpdate:dt}=useInputSetters({type:et,value:ot,settings:at,setValue:st}),pt=Plugins[et].component;return pt?React$1.createElement(InputContext.Provider,{value:_objectSpread2$1({key:it,path:rt,id:""+rt,label:nt,displayValue:ut,value:ot,onChange:ht,onUpdate:dt,settings:at,setValue:st,disabled:lt},ct)},React$1.createElement(StyledInputWrapper$1,{disabled:lt},React$1.createElement(pt,null))):(warn$3(LevaErrors.NO_COMPONENT_FOR_TYPE,et,rt),null)}const StyledButton$2=styled$5("button",{display:"block",$reset:"",fontWeight:"$button",height:"$rowHeight",borderStyle:"none",borderRadius:"$sm",backgroundColor:"$elevation1",color:"$highlight1","&:not(:disabled)":{color:"$highlight3",backgroundColor:"$accent2",cursor:"pointer",$hover:"$accent3",$active:"$accent3 $accent1",$focus:""}});function Button$3({onClick:tt,settings:et,label:nt}){const rt=useStoreContext();return React$1.createElement(Row,null,React$1.createElement(StyledButton$2,{disabled:et.disabled,onClick:()=>tt(rt.get)},nt))}const StyledButtonGroup=styled$5("div",{$flex:"",justifyContent:"flex-end",gap:"$colGap"}),StyledButtonGroupButton=styled$5("button",{$reset:"",cursor:"pointer",borderRadius:"$xs","&:hover":{backgroundColor:"$elevation3"}}),getOpts=({label:tt,opts:et})=>{let nt=typeof tt=="string"&&tt.trim()===""?null:tt,rt=et;return typeof et.opts=="object"&&(rt.label!==void 0&&(nt=et.label),rt=et.opts),{label:nt,opts:rt}};function ButtonGroup(tt){const{label:et,opts:nt}=getOpts(tt),rt=useStoreContext();return React$1.createElement(Row,{input:!!et},et&&React$1.createElement(Label$4,null,et),React$1.createElement(StyledButtonGroup,null,Object.entries(nt).map(([it,ot])=>React$1.createElement(StyledButtonGroupButton,{key:it,onClick:()=>ot(rt.get)},it))))}const Canvas$2=styled$5("canvas",{height:"$monitorHeight",width:"100%",display:"block",borderRadius:"$sm"}),POINTS=100;function push(tt,et){tt.push(et),tt.length>POINTS&&tt.shift()}const MonitorCanvas=reactExports.forwardRef(function({initialValue:tt},et){const nt=useTh("colors","highlight3"),rt=useTh("colors","elevation2"),it=useTh("colors","highlight1"),[ot,at]=reactExports.useMemo(()=>[w$5(it).alpha(.4).toRgbString(),w$5(it).alpha(.1).toRgbString()],[it]),st=reactExports.useRef([tt]),lt=reactExports.useRef(tt),ct=reactExports.useRef(tt),ut=reactExports.useRef(),ht=reactExports.useCallback((mt,gt)=>{if(!mt)return;const{width:yt,height:bt}=mt,wt=new Path2D,vt=yt/POINTS,kt=bt*.05;for(let At=0;At({frame:mt=>{(lt.current===void 0||mtct.current)&&(ct.current=mt),push(st.current,mt),ut.current=requestAnimationFrame(()=>ht(dt.current,pt.current))}}),[dt,pt,ht]),reactExports.useEffect(()=>()=>cancelAnimationFrame(ut.current),[]),React$1.createElement(Canvas$2,{ref:dt})}),parse$4=tt=>Number.isFinite(tt)?tt.toPrecision(2):tt.toString(),MonitorLog=reactExports.forwardRef(function({initialValue:tt},et){const[nt,rt]=reactExports.useState(parse$4(tt));return reactExports.useImperativeHandle(et,()=>({frame:it=>rt(parse$4(it))}),[]),React$1.createElement("div",null,nt)});function getValue$4(tt){return typeof tt=="function"?tt():tt.current}function Monitor({label:tt,objectOrFn:et,settings:nt}){const rt=reactExports.useRef(),it=reactExports.useRef(getValue$4(et));return reactExports.useEffect(()=>{const ot=window.setInterval(()=>{var at;document.hidden||(at=rt.current)===null||at===void 0||at.frame(getValue$4(et))},nt.interval);return()=>window.clearInterval(ot)},[et,nt.interval]),React$1.createElement(Row,{input:!0},React$1.createElement(Label$4,{align:"top"},tt),nt.graph?React$1.createElement(MonitorCanvas,{ref:rt,initialValue:it.current}):React$1.createElement(MonitorLog,{ref:rt,initialValue:it.current}))}const _excluded$3$1=["type","label","key"],specialComponents={[SpecialInputs.BUTTON]:Button$3,[SpecialInputs.BUTTON_GROUP]:ButtonGroup,[SpecialInputs.MONITOR]:Monitor},Control=React$1.memo(({path:tt})=>{const[et,{set:nt,setSettings:rt,disable:it,storeId:ot,emitOnEditStart:at,emitOnEditEnd:st}]=useInput(tt);if(!et)return null;const{type:lt,label:ct,key:ut}=et,ht=_objectWithoutProperties$f(et,_excluded$3$1);if(lt in SpecialInputs){const dt=specialComponents[lt];return React$1.createElement(dt,_extends$q({label:ct,path:tt},ht))}return lt in Plugins?React$1.createElement(ControlInput,_extends$q({key:ot+tt,type:lt,label:ct,storeId:ot,path:tt,valueKey:ut,setValue:nt,setSettings:rt,disable:it,emitOnEditStart:at,emitOnEditEnd:st},ht)):(log$2(LevaErrors.UNSUPPORTED_INPUT,lt,tt),null)});function FolderTitle({toggle:tt,toggled:et,name:nt}){return React$1.createElement(StyledTitle,{onClick:()=>tt()},React$1.createElement(Chevron,{toggled:et}),React$1.createElement("div",null,nt))}const Folder=({name:tt,path:et,tree:nt})=>{const rt=useStoreContext(),it=join(et,tt),{collapsed:ot,color:at}=rt.getFolderSettings(it),[st,lt]=reactExports.useState(!ot),ct=reactExports.useRef(null),ut=useTh("colors","folderWidgetColor"),ht=useTh("colors","folderTextColor");return reactExports.useLayoutEffect(()=>{ct.current.style.setProperty("--leva-colors-folderWidgetColor",at||ut),ct.current.style.setProperty("--leva-colors-folderTextColor",at||ht)},[at,ut,ht]),React$1.createElement(StyledFolder,{ref:ct},React$1.createElement(FolderTitle,{name:tt,toggled:st,toggle:()=>lt(dt=>!dt)}),React$1.createElement(TreeWrapper,{parent:it,tree:nt,toggled:st}))},TreeWrapper=React$1.memo(({isRoot:tt=!1,fill:et=!1,flat:nt=!1,parent:rt,tree:it,toggled:ot})=>{const{wrapperRef:at,contentRef:st}=useToggle(ot),lt=useStoreContext(),ct=([ht,dt])=>{var pt;return(isInput(dt)?(pt=lt.getInput(dt.path))===null||pt===void 0?void 0:pt.order:lt.getFolderSettings(join(rt,ht)).order)||0},ut=Object.entries(it).sort((ht,dt)=>ct(ht)-ct(dt));return React$1.createElement(StyledWrapper,{ref:at,isRoot:tt,fill:et,flat:nt},React$1.createElement(StyledContent,{ref:st,isRoot:tt,toggled:ot},ut.map(([ht,dt])=>isInput(dt)?React$1.createElement(Control,{key:dt.path,valueKey:dt.valueKey,path:dt.path}):React$1.createElement(Folder,{key:ht,name:ht,path:rt,tree:dt}))))}),StyledRoot=styled$5("div",{position:"relative",fontFamily:"$mono",fontSize:"$root",color:"$rootText",backgroundColor:"$elevation1",variants:{fill:{false:{position:"fixed",top:"10px",right:"10px",zIndex:1e3,width:"$rootWidth"},true:{position:"relative",width:"100%"}},flat:{false:{borderRadius:"$lg",boxShadow:"$level1"}},oneLineLabels:{true:{[`${StyledInputRow}`]:{gridTemplateColumns:"auto",gridAutoColumns:"minmax(max-content, 1fr)",gridAutoRows:"minmax($sizes$rowHeight), auto)",rowGap:0,columnGap:0,marginTop:"$rowGap"}}},hideTitleBar:{true:{$$titleBarHeight:"0px"},false:{$$titleBarHeight:"$sizes$titleBarHeight"}}},"&,*,*:after,*:before":{boxSizing:"border-box"},"*::selection":{backgroundColor:"$accent2"}}),iconWidth=40,Icon=styled$5("i",{$flexCenter:"",width:iconWidth,userSelect:"none",cursor:"pointer","> svg":{fill:"$highlight1",transition:"transform 350ms ease, fill 250ms ease"},"&:hover > svg":{fill:"$highlight3"},variants:{active:{true:{"> svg":{fill:"$highlight2"}}}}}),StyledTitleWithFilter=styled$5("div",{display:"flex",alignItems:"stretch",justifyContent:"space-between",height:"$titleBarHeight",variants:{mode:{drag:{cursor:"grab"}}}}),FilterWrapper=styled$5("div",{$flex:"",position:"relative",width:"100%",overflow:"hidden",transition:"height 250ms ease",color:"$highlight3",paddingLeft:"$md",[`> ${Icon}`]:{height:30},variants:{toggled:{true:{height:30},false:{height:0}}}}),StyledFilterInput=styled$5("input",{$reset:"",flex:1,position:"relative",height:30,width:"100%",backgroundColor:"transparent",fontSize:"10px",borderRadius:"$root","&:focus":{},"&::placeholder":{color:"$highlight2"}}),TitleContainer=styled$5("div",{touchAction:"none",$flexCenter:"",flex:1,"> svg":{fill:"$highlight1"},color:"$highlight1",variants:{drag:{true:{$draggable:"","> svg":{transition:"fill 250ms ease"},"&:hover":{color:"$highlight3"},"&:hover > svg":{fill:"$highlight3"}}},filterEnabled:{false:{paddingRight:iconWidth}}}}),FilterInput=React$1.forwardRef(({setFilter:tt,toggle:et},nt)=>{const[rt,it]=reactExports.useState(""),ot=reactExports.useMemo(()=>debounce$6(tt,250),[tt]),at=()=>{tt(""),it("")},st=lt=>{const ct=lt.currentTarget.value;et(!0),it(ct)};return reactExports.useEffect(()=>{ot(rt)},[rt,ot]),React$1.createElement(React$1.Fragment,null,React$1.createElement(StyledFilterInput,{ref:nt,value:rt,placeholder:"[Open filter with CMD+SHIFT+L]",onPointerDown:lt=>lt.stopPropagation(),onChange:st}),React$1.createElement(Icon,{onClick:()=>at(),style:{visibility:rt?"visible":"hidden"}},React$1.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",height:"14",width:"14",viewBox:"0 0 20 20",fill:"currentColor"},React$1.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"}))))});function TitleWithFilter({setFilter:tt,onDrag:et,onDragStart:nt,onDragEnd:rt,toggle:it,toggled:ot,title:at,drag:st,filterEnabled:lt,from:ct}){const[ut,ht]=reactExports.useState(!1),dt=reactExports.useRef(null);reactExports.useEffect(()=>{var mt,gt;ut?(mt=dt.current)===null||mt===void 0||mt.focus():(gt=dt.current)===null||gt===void 0||gt.blur()},[ut]);const pt=useDrag(({offset:[mt,gt],first:yt,last:bt})=>{et({x:mt,y:gt}),yt&&nt({x:mt,y:gt}),bt&&rt({x:mt,y:gt})},{filterTaps:!0,from:({offset:[mt,gt]})=>[(ct==null?void 0:ct.x)||mt,(ct==null?void 0:ct.y)||gt]});return reactExports.useEffect(()=>{const mt=gt=>{gt.key==="L"&>.shiftKey&>.metaKey&&ht(yt=>!yt)};return window.addEventListener("keydown",mt),()=>window.removeEventListener("keydown",mt)},[]),React$1.createElement(React$1.Fragment,null,React$1.createElement(StyledTitleWithFilter,{mode:st?"drag":void 0},React$1.createElement(Icon,{active:!ot,onClick:()=>it()},React$1.createElement(Chevron,{toggled:ot,width:12,height:8})),React$1.createElement(TitleContainer,_extends$q({},st?pt():{},{drag:st,filterEnabled:lt}),at===void 0&&st?React$1.createElement("svg",{width:"20",height:"10",viewBox:"0 0 28 14",xmlns:"http://www.w3.org/2000/svg"},React$1.createElement("circle",{cx:"2",cy:"2",r:"2"}),React$1.createElement("circle",{cx:"14",cy:"2",r:"2"}),React$1.createElement("circle",{cx:"26",cy:"2",r:"2"}),React$1.createElement("circle",{cx:"2",cy:"12",r:"2"}),React$1.createElement("circle",{cx:"14",cy:"12",r:"2"}),React$1.createElement("circle",{cx:"26",cy:"12",r:"2"})):at),lt&&React$1.createElement(Icon,{active:ut,onClick:()=>ht(mt=>!mt)},React$1.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",height:"20",viewBox:"0 0 20 20"},React$1.createElement("path",{d:"M9 9a2 2 0 114 0 2 2 0 01-4 0z"}),React$1.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm1-13a4 4 0 00-3.446 6.032l-2.261 2.26a1 1 0 101.414 1.415l2.261-2.261A4 4 0 1011 5z",clipRule:"evenodd"})))),React$1.createElement(FilterWrapper,{toggled:ut},React$1.createElement(FilterInput,{ref:dt,setFilter:tt,toggle:it})))}const _excluded$2$1=["store","hidden","theme","collapsed"];function LevaRoot(tt){let{store:et,hidden:nt=!1,theme:rt,collapsed:it=!1}=tt,ot=_objectWithoutProperties$f(tt,_excluded$2$1);const at=useDeepMemo(()=>mergeTheme(rt),[rt]),[st,lt]=reactExports.useState(!it),ct=typeof it=="object"?!it.collapsed:st,ut=reactExports.useMemo(()=>typeof it=="object"?ht=>{typeof ht=="function"?it.onChange(!ht(!it.collapsed)):it.onChange(!ht)}:lt,[it]);return!et||nt?null:React$1.createElement(ThemeContext$3.Provider,{value:at},React$1.createElement(LevaCore,_extends$q({store:et},ot,{toggled:ct,setToggle:ut,rootClass:at.className})))}const LevaCore=React$1.memo(({store:tt,rootClass:et,fill:nt=!1,flat:rt=!1,neverHide:it=!1,oneLineLabels:ot=!1,titleBar:at={title:void 0,drag:!0,filter:!0,position:void 0,onDrag:void 0,onDragStart:void 0,onDragEnd:void 0},hideCopyButton:st=!1,toggled:lt,setToggle:ct})=>{var ut,ht;const dt=useVisiblePaths(tt),[pt,mt]=reactExports.useState(""),gt=reactExports.useMemo(()=>buildTree(dt,pt),[dt,pt]),[yt,bt]=useTransform(),wt=it||dt.length>0,vt=typeof at=="object"&&at.title||void 0,kt=typeof at=="object"&&(ut=at.drag)!==null&&ut!==void 0?ut:!0,St=typeof at=="object"&&(ht=at.filter)!==null&&ht!==void 0?ht:!0,Et=typeof at=="object"&&at.position||void 0,At=typeof at=="object"&&at.onDrag||void 0,Tt=typeof at=="object"&&at.onDragStart||void 0,Mt=typeof at=="object"&&at.onDragEnd||void 0;return React$1.useEffect(()=>{bt({x:Et==null?void 0:Et.x,y:Et==null?void 0:Et.y})},[Et,bt]),globalStyles(),React$1.createElement(PanelSettingsContext.Provider,{value:{hideCopyButton:st}},React$1.createElement(StyledRoot,{ref:yt,className:et,fill:nt,flat:rt,oneLineLabels:ot,hideTitleBar:!at,style:{display:wt?"block":"none"}},at&&React$1.createElement(TitleWithFilter,{onDrag:Lt=>{bt(Lt),At==null||At(Lt)},onDragStart:Lt=>Tt==null?void 0:Tt(Lt),onDragEnd:Lt=>Mt==null?void 0:Mt(Lt),setFilter:mt,toggle:Lt=>ct(jt=>Lt??!jt),toggled:lt,title:vt,drag:kt,filterEnabled:St,from:Et}),wt&&React$1.createElement(StoreContext.Provider,{value:tt},React$1.createElement(TreeWrapper,{isRoot:!0,fill:nt,flat:rt,tree:gt,toggled:lt}))))}),_excluded$1$3=["isRoot"];let rootInitialized=!1,rootEl=null;function Leva(tt){let{isRoot:et=!1}=tt,nt=_objectWithoutProperties$f(tt,_excluded$1$3);return reactExports.useEffect(()=>(rootInitialized=!0,!et&&rootEl&&(rootEl.remove(),rootEl=null),()=>{et||(rootInitialized=!1)}),[et]),React$1.createElement(LevaRoot,_extends$q({store:levaStore},nt))}function useRenderRoot(tt){reactExports.useEffect(()=>{tt&&!rootInitialized&&(rootEl||(rootEl=document.getElementById("leva__root")||Object.assign(document.createElement("div"),{id:"leva__root"}),document.body&&(document.body.appendChild(rootEl),render(React$1.createElement(Leva,{isRoot:!0}),rootEl))),rootInitialized=!0)},[tt])}function parseArgs(tt,et,nt,rt,it){let ot,at,st,lt,ct;return typeof tt=="string"?(at=tt,ot=et,Array.isArray(nt)?ct=nt:nt&&("store"in nt?(lt=nt,ct=rt):(st=nt,Array.isArray(rt)?ct=rt:(lt=rt,ct=it)))):(ot=tt,Array.isArray(et)?ct=et:(lt=et,ct=nt)),{schema:ot,folderName:at,folderSettings:st,hookSettings:lt,deps:ct||[]}}function useControls(tt,et,nt,rt,it){const{folderName:ot,schema:at,folderSettings:st,hookSettings:lt,deps:ct}=parseArgs(tt,et,nt,rt,it),ut=typeof at=="function",ht=reactExports.useRef(!1),dt=reactExports.useRef(!0),pt=useDeepMemo(()=>{ht.current=!0;const jt=typeof at=="function"?at():at;return ot?{[ot]:folder(jt,st)}:jt},ct),mt=!(lt!=null&<.store);useRenderRoot(mt);const[gt]=reactExports.useState(()=>(lt==null?void 0:lt.store)||levaStore),[yt,bt]=reactExports.useMemo(()=>gt.getDataFromSchema(pt),[gt,pt]),[wt,vt,kt,St,Et]=reactExports.useMemo(()=>{const jt=[],Rt=[],$t={},xt={},It={};return Object.values(bt).forEach(({path:Ot,onChange:zt,onEditStart:Ut,onEditEnd:Wt,transient:Ft})=>{jt.push(Ot),zt?($t[Ot]=zt,Ft||Rt.push(Ot)):Rt.push(Ot),Ut&&(xt[Ot]=Ut),Wt&&(It[Ot]=Wt)}),[jt,Rt,$t,xt,It]},[bt]),At=reactExports.useMemo(()=>gt.orderPaths(wt),[wt,gt]),Tt=useValuesForPath(gt,vt,yt),Mt=reactExports.useCallback(jt=>{const Rt=Object.entries(jt).reduce(($t,[xt,It])=>Object.assign($t,{[bt[xt].path]:It}),{});gt.set(Rt,!1)},[gt,bt]),Lt=reactExports.useCallback(jt=>gt.get(bt[jt].path),[gt,bt]);return reactExports.useEffect(()=>{const jt=!dt.current&&ht.current;return gt.addData(yt,jt),dt.current=!1,ht.current=!1,()=>gt.disposePaths(At)},[gt,At,yt]),reactExports.useEffect(()=>{const jt=[];return Object.entries(kt).forEach(([Rt,$t])=>{$t(gt.get(Rt),Rt,_objectSpread2$1({initial:!0,get:gt.get},gt.getInput(Rt)));const xt=gt.useStore.subscribe(It=>{const Ot=It.data[Rt];return[Ot.disabled?void 0:Ot.value,Ot]},([It,Ot])=>$t(It,Rt,_objectSpread2$1({initial:!1,get:gt.get},Ot)),{equalityFn:shallow$1});jt.push(xt)}),()=>jt.forEach(Rt=>Rt())},[gt,kt]),reactExports.useEffect(()=>{const jt=[];return Object.entries(St).forEach(([Rt,$t])=>jt.push(gt.subscribeToEditStart(Rt,$t))),Object.entries(Et).forEach(([Rt,$t])=>jt.push(gt.subscribeToEditEnd(Rt,$t))),()=>jt.forEach(Rt=>Rt())},[St,Et,gt]),ut?[Tt,Mt,Lt]:Tt}register(LevaInputs.SELECT,select);register(LevaInputs.IMAGE,image);register(LevaInputs.NUMBER,number$6);register(LevaInputs.COLOR,color$3);register(LevaInputs.STRING,string$2);register(LevaInputs.BOOLEAN,boolean);register(LevaInputs.INTERVAL,interval$1);register(LevaInputs.VECTOR3D,vector3d);register(LevaInputs.VECTOR2D,vector2d);var isCheckBoxInput=tt=>tt.type==="checkbox",isDateObject=tt=>tt instanceof Date,isNullOrUndefined=tt=>tt==null;const isObjectType=tt=>typeof tt=="object";var isObject$f=tt=>!isNullOrUndefined(tt)&&!Array.isArray(tt)&&isObjectType(tt)&&!isDateObject(tt),getEventValue=tt=>isObject$f(tt)&&tt.target?isCheckBoxInput(tt.target)?tt.target.checked:tt.target.value:tt,getNodeParentName=tt=>tt.substring(0,tt.search(/\.\d+(\.|$)/))||tt,isNameInFieldArray=(tt,et)=>tt.has(getNodeParentName(et)),isPlainObject$1=tt=>{const et=tt.constructor&&tt.constructor.prototype;return isObject$f(et)&&et.hasOwnProperty("isPrototypeOf")},isWeb=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function cloneObject(tt){let et;const nt=Array.isArray(tt);if(tt instanceof Date)et=new Date(tt);else if(tt instanceof Set)et=new Set(tt);else if(!(isWeb&&(tt instanceof Blob||tt instanceof FileList))&&(nt||isObject$f(tt)))if(et=nt?[]:{},!nt&&!isPlainObject$1(tt))et=tt;else for(const rt in tt)tt.hasOwnProperty(rt)&&(et[rt]=cloneObject(tt[rt]));else return tt;return et}var compact=tt=>Array.isArray(tt)?tt.filter(Boolean):[],isUndefined$1=tt=>tt===void 0,get$6=(tt,et,nt)=>{if(!et||!isObject$f(tt))return nt;const rt=compact(et.split(/[,[\].]+?/)).reduce((it,ot)=>isNullOrUndefined(it)?it:it[ot],tt);return isUndefined$1(rt)||rt===tt?isUndefined$1(tt[et])?nt:tt[et]:rt};const EVENTS={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},VALIDATION_MODE={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},INPUT_VALIDATION_RULES={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},HookFormContext=React$1.createContext(null),useFormContext=()=>React$1.useContext(HookFormContext),FormProvider=tt=>{const{children:et,...nt}=tt;return React$1.createElement(HookFormContext.Provider,{value:nt},et)};var getProxyFormState=(tt,et,nt,rt=!0)=>{const it={defaultValues:et._defaultValues};for(const ot in tt)Object.defineProperty(it,ot,{get:()=>{const at=ot;return et._proxyFormState[at]!==VALIDATION_MODE.all&&(et._proxyFormState[at]=!rt||VALIDATION_MODE.all),nt&&(nt[at]=!0),tt[at]}});return it},isEmptyObject=tt=>isObject$f(tt)&&!Object.keys(tt).length,shouldRenderFormState=(tt,et,nt,rt)=>{nt(tt);const{name:it,...ot}=tt;return isEmptyObject(ot)||Object.keys(ot).length>=Object.keys(et).length||Object.keys(ot).find(at=>et[at]===(!rt||VALIDATION_MODE.all))},convertToArrayPayload=tt=>Array.isArray(tt)?tt:[tt],shouldSubscribeByName=(tt,et,nt)=>nt&&et?tt===et:!tt||!et||tt===et||convertToArrayPayload(tt).some(rt=>rt&&(rt.startsWith(et)||et.startsWith(rt)));function useSubscribe(tt){const et=React$1.useRef(tt);et.current=tt,React$1.useEffect(()=>{const nt=!tt.disabled&&et.current.subject&&et.current.subject.subscribe({next:et.current.next});return()=>{nt&&nt.unsubscribe()}},[tt.disabled])}function useFormState(tt){const et=useFormContext(),{control:nt=et.control,disabled:rt,name:it,exact:ot}=tt||{},[at,st]=React$1.useState(nt._formState),lt=React$1.useRef(!0),ct=React$1.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1}),ut=React$1.useRef(it);return ut.current=it,useSubscribe({disabled:rt,next:ht=>lt.current&&shouldSubscribeByName(ut.current,ht.name,ot)&&shouldRenderFormState(ht,ct.current,nt._updateFormState)&&st({...nt._formState,...ht}),subject:nt._subjects.state}),React$1.useEffect(()=>(lt.current=!0,ct.current.isValid&&nt._updateValid(!0),()=>{lt.current=!1}),[nt]),getProxyFormState(at,nt,ct.current,!1)}var isString$3=tt=>typeof tt=="string",generateWatchOutput=(tt,et,nt,rt,it)=>isString$3(tt)?(rt&&et.watch.add(tt),get$6(nt,tt,it)):Array.isArray(tt)?tt.map(ot=>(rt&&et.watch.add(ot),get$6(nt,ot))):(rt&&(et.watchAll=!0),nt);function useWatch(tt){const et=useFormContext(),{control:nt=et.control,name:rt,defaultValue:it,disabled:ot,exact:at}=tt||{},st=React$1.useRef(rt);st.current=rt,useSubscribe({disabled:ot,subject:nt._subjects.values,next:ut=>{shouldSubscribeByName(st.current,ut.name,at)&&ct(cloneObject(generateWatchOutput(st.current,nt._names,ut.values||nt._formValues,!1,it)))}});const[lt,ct]=React$1.useState(nt._getWatch(rt,it));return React$1.useEffect(()=>nt._removeUnmounted()),lt}var isKey$4=tt=>/^\w*$/.test(tt),stringToPath$2=tt=>compact(tt.replace(/["|']|\]/g,"").split(/\.|\[/));function set$3(tt,et,nt){let rt=-1;const it=isKey$4(et)?[et]:stringToPath$2(et),ot=it.length,at=ot-1;for(;++rt{const ct=rt._options.shouldUnregister||it,ut=(ht,dt)=>{const pt=get$6(rt._fields,ht);pt&&(pt._f.mount=dt)};if(ut(nt,!0),ct){const ht=cloneObject(get$6(rt._options.defaultValues,nt));set$3(rt._defaultValues,nt,ht),isUndefined$1(get$6(rt._formValues,nt))&&set$3(rt._formValues,nt,ht)}return()=>{(ot?ct&&!rt._state.action:ct)?rt.unregister(nt):ut(nt,!1)}},[nt,rt,ot,it]),{field:{name:nt,value:at,onChange:React$1.useCallback(ct=>lt.current.onChange({target:{value:getEventValue(ct),name:nt},type:EVENTS.CHANGE}),[nt]),onBlur:React$1.useCallback(()=>lt.current.onBlur({target:{value:get$6(rt._formValues,nt),name:nt},type:EVENTS.BLUR}),[nt,rt]),ref:ct=>{const ut=get$6(rt._fields,nt);ut&&ct&&(ut._f.ref={focus:()=>ct.focus(),select:()=>ct.select(),setCustomValidity:ht=>ct.setCustomValidity(ht),reportValidity:()=>ct.reportValidity()})}},formState:st,fieldState:Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!get$6(st.errors,nt)},isDirty:{enumerable:!0,get:()=>!!get$6(st.dirtyFields,nt)},isTouched:{enumerable:!0,get:()=>!!get$6(st.touchedFields,nt)},error:{enumerable:!0,get:()=>get$6(st.errors,nt)}})}}const Controller=tt=>tt.render(useController(tt));var appendErrors=(tt,et,nt,rt,it)=>et?{...nt[tt],types:{...nt[tt]&&nt[tt].types?nt[tt].types:{},[rt]:it||!0}}:{};const focusFieldBy=(tt,et,nt)=>{for(const rt of nt||Object.keys(tt)){const it=get$6(tt,rt);if(it){const{_f:ot,...at}=it;if(ot&&et(ot.name)){if(ot.ref.focus){ot.ref.focus();break}else if(ot.refs&&ot.refs[0].focus){ot.refs[0].focus();break}}else isObject$f(at)&&focusFieldBy(at,et)}}};var getValidationModes=tt=>({isOnSubmit:!tt||tt===VALIDATION_MODE.onSubmit,isOnBlur:tt===VALIDATION_MODE.onBlur,isOnChange:tt===VALIDATION_MODE.onChange,isOnAll:tt===VALIDATION_MODE.all,isOnTouch:tt===VALIDATION_MODE.onTouched}),isWatched=(tt,et,nt)=>!nt&&(et.watchAll||et.watch.has(tt)||[...et.watch].some(rt=>tt.startsWith(rt)&&/^\.\w+/.test(tt.slice(rt.length)))),updateFieldArrayRootError=(tt,et,nt)=>{const rt=compact(get$6(tt,nt));return set$3(rt,"root",et[nt]),set$3(tt,nt,rt),tt},isBoolean$2=tt=>typeof tt=="boolean",isFileInput=tt=>tt.type==="file",isFunction$6=tt=>typeof tt=="function",isHTMLElement$2=tt=>{if(!isWeb)return!1;const et=tt?tt.ownerDocument:0;return tt instanceof(et&&et.defaultView?et.defaultView.HTMLElement:HTMLElement)},isMessage=tt=>isString$3(tt),isRadioInput=tt=>tt.type==="radio",isRegex=tt=>tt instanceof RegExp;const defaultResult={value:!1,isValid:!1},validResult={value:!0,isValid:!0};var getCheckboxValue=tt=>{if(Array.isArray(tt)){if(tt.length>1){const et=tt.filter(nt=>nt&&nt.checked&&!nt.disabled).map(nt=>nt.value);return{value:et,isValid:!!et.length}}return tt[0].checked&&!tt[0].disabled?tt[0].attributes&&!isUndefined$1(tt[0].attributes.value)?isUndefined$1(tt[0].value)||tt[0].value===""?validResult:{value:tt[0].value,isValid:!0}:validResult:defaultResult}return defaultResult};const defaultReturn={isValid:!1,value:null};var getRadioValue=tt=>Array.isArray(tt)?tt.reduce((et,nt)=>nt&&nt.checked&&!nt.disabled?{isValid:!0,value:nt.value}:et,defaultReturn):defaultReturn;function getValidateError(tt,et,nt="validate"){if(isMessage(tt)||Array.isArray(tt)&&tt.every(isMessage)||isBoolean$2(tt)&&!tt)return{type:nt,message:isMessage(tt)?tt:"",ref:et}}var getValueAndMessage=tt=>isObject$f(tt)&&!isRegex(tt)?tt:{value:tt,message:""},validateField=async(tt,et,nt,rt,it)=>{const{ref:ot,refs:at,required:st,maxLength:lt,minLength:ct,min:ut,max:ht,pattern:dt,validate:pt,name:mt,valueAsNumber:gt,mount:yt,disabled:bt}=tt._f,wt=get$6(et,mt);if(!yt||bt)return{};const vt=at?at[0]:ot,kt=Rt=>{rt&&vt.reportValidity&&(vt.setCustomValidity(isBoolean$2(Rt)?"":Rt||""),vt.reportValidity())},St={},Et=isRadioInput(ot),At=isCheckBoxInput(ot),Tt=Et||At,Mt=(gt||isFileInput(ot))&&isUndefined$1(ot.value)&&isUndefined$1(wt)||isHTMLElement$2(ot)&&ot.value===""||wt===""||Array.isArray(wt)&&!wt.length,Lt=appendErrors.bind(null,mt,nt,St),jt=(Rt,$t,xt,It=INPUT_VALIDATION_RULES.maxLength,Ot=INPUT_VALIDATION_RULES.minLength)=>{const zt=Rt?$t:xt;St[mt]={type:Rt?It:Ot,message:zt,ref:ot,...Lt(Rt?It:Ot,zt)}};if(it?!Array.isArray(wt)||!wt.length:st&&(!Tt&&(Mt||isNullOrUndefined(wt))||isBoolean$2(wt)&&!wt||At&&!getCheckboxValue(at).isValid||Et&&!getRadioValue(at).isValid)){const{value:Rt,message:$t}=isMessage(st)?{value:!!st,message:st}:getValueAndMessage(st);if(Rt&&(St[mt]={type:INPUT_VALIDATION_RULES.required,message:$t,ref:vt,...Lt(INPUT_VALIDATION_RULES.required,$t)},!nt))return kt($t),St}if(!Mt&&(!isNullOrUndefined(ut)||!isNullOrUndefined(ht))){let Rt,$t;const xt=getValueAndMessage(ht),It=getValueAndMessage(ut);if(!isNullOrUndefined(wt)&&!isNaN(wt)){const Ot=ot.valueAsNumber||wt&&+wt;isNullOrUndefined(xt.value)||(Rt=Ot>xt.value),isNullOrUndefined(It.value)||($t=Otnew Date(new Date().toDateString()+" "+Ft),Ut=ot.type=="time",Wt=ot.type=="week";isString$3(xt.value)&&wt&&(Rt=Ut?zt(wt)>zt(xt.value):Wt?wt>xt.value:Ot>new Date(xt.value)),isString$3(It.value)&&wt&&($t=Ut?zt(wt)+Rt.value,It=!isNullOrUndefined($t.value)&&wt.length<+$t.value;if((xt||It)&&(jt(xt,Rt.message,$t.message),!nt))return kt(St[mt].message),St}if(dt&&!Mt&&isString$3(wt)){const{value:Rt,message:$t}=getValueAndMessage(dt);if(isRegex(Rt)&&!wt.match(Rt)&&(St[mt]={type:INPUT_VALIDATION_RULES.pattern,message:$t,ref:ot,...Lt(INPUT_VALIDATION_RULES.pattern,$t)},!nt))return kt($t),St}if(pt){if(isFunction$6(pt)){const Rt=await pt(wt,et),$t=getValidateError(Rt,vt);if($t&&(St[mt]={...$t,...Lt(INPUT_VALIDATION_RULES.validate,$t.message)},!nt))return kt($t.message),St}else if(isObject$f(pt)){let Rt={};for(const $t in pt){if(!isEmptyObject(Rt)&&!nt)break;const xt=getValidateError(await pt[$t](wt,et),vt,$t);xt&&(Rt={...xt,...Lt($t,xt.message)},kt(xt.message),nt&&(St[mt]=Rt))}if(!isEmptyObject(Rt)&&(St[mt]={ref:vt,...Rt},!nt))return St}}return kt(!0),St};function baseGet$4(tt,et){const nt=et.slice(0,-1).length;let rt=0;for(;rt{for(const ot of tt)ot.next&&ot.next(it)},subscribe:it=>(tt.push(it),{unsubscribe:()=>{tt=tt.filter(ot=>ot!==it)}}),unsubscribe:()=>{tt=[]}}}var isPrimitive=tt=>isNullOrUndefined(tt)||!isObjectType(tt);function deepEqual$2(tt,et){if(isPrimitive(tt)||isPrimitive(et))return tt===et;if(isDateObject(tt)&&isDateObject(et))return tt.getTime()===et.getTime();const nt=Object.keys(tt),rt=Object.keys(et);if(nt.length!==rt.length)return!1;for(const it of nt){const ot=tt[it];if(!rt.includes(it))return!1;if(it!=="ref"){const at=et[it];if(isDateObject(ot)&&isDateObject(at)||isObject$f(ot)&&isObject$f(at)||Array.isArray(ot)&&Array.isArray(at)?!deepEqual$2(ot,at):ot!==at)return!1}}return!0}var isMultipleSelect=tt=>tt.type==="select-multiple",isRadioOrCheckbox=tt=>isRadioInput(tt)||isCheckBoxInput(tt),live=tt=>isHTMLElement$2(tt)&&tt.isConnected,objectHasFunction=tt=>{for(const et in tt)if(isFunction$6(tt[et]))return!0;return!1};function markFieldsDirty(tt,et={}){const nt=Array.isArray(tt);if(isObject$f(tt)||nt)for(const rt in tt)Array.isArray(tt[rt])||isObject$f(tt[rt])&&!objectHasFunction(tt[rt])?(et[rt]=Array.isArray(tt[rt])?[]:{},markFieldsDirty(tt[rt],et[rt])):isNullOrUndefined(tt[rt])||(et[rt]=!0);return et}function getDirtyFieldsFromDefaultValues(tt,et,nt){const rt=Array.isArray(tt);if(isObject$f(tt)||rt)for(const it in tt)Array.isArray(tt[it])||isObject$f(tt[it])&&!objectHasFunction(tt[it])?isUndefined$1(et)||isPrimitive(nt[it])?nt[it]=Array.isArray(tt[it])?markFieldsDirty(tt[it],[]):{...markFieldsDirty(tt[it])}:getDirtyFieldsFromDefaultValues(tt[it],isNullOrUndefined(et)?{}:et[it],nt[it]):nt[it]=!deepEqual$2(tt[it],et[it]);return nt}var getDirtyFields=(tt,et)=>getDirtyFieldsFromDefaultValues(tt,et,markFieldsDirty(et)),getFieldValueAs=(tt,{valueAsNumber:et,valueAsDate:nt,setValueAs:rt})=>isUndefined$1(tt)?tt:et?tt===""?NaN:tt&&+tt:nt&&isString$3(tt)?new Date(tt):rt?rt(tt):tt;function getFieldValue(tt){const et=tt.ref;if(!(tt.refs?tt.refs.every(nt=>nt.disabled):et.disabled))return isFileInput(et)?et.files:isRadioInput(et)?getRadioValue(tt.refs).value:isMultipleSelect(et)?[...et.selectedOptions].map(({value:nt})=>nt):isCheckBoxInput(et)?getCheckboxValue(tt.refs).value:getFieldValueAs(isUndefined$1(et.value)?tt.ref.value:et.value,tt)}var getResolverOptions=(tt,et,nt,rt)=>{const it={};for(const ot of tt){const at=get$6(et,ot);at&&set$3(it,ot,at._f)}return{criteriaMode:nt,names:[...tt],fields:it,shouldUseNativeValidation:rt}},getRuleValue=tt=>isUndefined$1(tt)?tt:isRegex(tt)?tt.source:isObject$f(tt)?isRegex(tt.value)?tt.value.source:tt.value:tt,hasValidation=tt=>tt.mount&&(tt.required||tt.min||tt.max||tt.maxLength||tt.minLength||tt.pattern||tt.validate);function schemaErrorLookup(tt,et,nt){const rt=get$6(tt,nt);if(rt||isKey$4(nt))return{error:rt,name:nt};const it=nt.split(".");for(;it.length;){const ot=it.join("."),at=get$6(et,ot),st=get$6(tt,ot);if(at&&!Array.isArray(at)&&nt!==ot)return{name:nt};if(st&&st.type)return{name:ot,error:st};it.pop()}return{name:nt}}var skipValidation=(tt,et,nt,rt,it)=>it.isOnAll?!1:!nt&&it.isOnTouch?!(et||tt):(nt?rt.isOnBlur:it.isOnBlur)?!tt:(nt?rt.isOnChange:it.isOnChange)?tt:!0,unsetEmptyArray=(tt,et)=>!compact(get$6(tt,et)).length&&unset(tt,et);const defaultOptions={mode:VALIDATION_MODE.onSubmit,reValidateMode:VALIDATION_MODE.onChange,shouldFocusError:!0};function createFormControl(tt={},et){let nt={...defaultOptions,...tt},rt={submitCount:0,isDirty:!1,isLoading:isFunction$6(nt.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},errors:{}},it={},ot=isObject$f(nt.defaultValues)||isObject$f(nt.values)?cloneObject(nt.defaultValues||nt.values)||{}:{},at=nt.shouldUnregister?{}:cloneObject(ot),st={action:!1,mount:!1,watch:!1},lt={mount:new Set,unMount:new Set,array:new Set,watch:new Set},ct,ut=0;const ht={isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},dt={values:createSubject(),array:createSubject(),state:createSubject()},pt=tt.resetOptions&&tt.resetOptions.keepDirtyValues,mt=getValidationModes(nt.mode),gt=getValidationModes(nt.reValidateMode),yt=nt.criteriaMode===VALIDATION_MODE.all,bt=yn=>kn=>{clearTimeout(ut),ut=setTimeout(yn,kn)},wt=async yn=>{if(ht.isValid||yn){const kn=nt.resolver?isEmptyObject((await Mt()).errors):await jt(it,!0);kn!==rt.isValid&&dt.state.next({isValid:kn})}},vt=yn=>ht.isValidating&&dt.state.next({isValidating:yn}),kt=(yn,kn=[],dn,gn,Cn=!0,$n=!0)=>{if(gn&&dn){if(st.action=!0,$n&&Array.isArray(get$6(it,yn))){const un=dn(get$6(it,yn),gn.argA,gn.argB);Cn&&set$3(it,yn,un)}if($n&&Array.isArray(get$6(rt.errors,yn))){const un=dn(get$6(rt.errors,yn),gn.argA,gn.argB);Cn&&set$3(rt.errors,yn,un),unsetEmptyArray(rt.errors,yn)}if(ht.touchedFields&&$n&&Array.isArray(get$6(rt.touchedFields,yn))){const un=dn(get$6(rt.touchedFields,yn),gn.argA,gn.argB);Cn&&set$3(rt.touchedFields,yn,un)}ht.dirtyFields&&(rt.dirtyFields=getDirtyFields(ot,at)),dt.state.next({name:yn,isDirty:$t(yn,kn),dirtyFields:rt.dirtyFields,errors:rt.errors,isValid:rt.isValid})}else set$3(at,yn,kn)},St=(yn,kn)=>{set$3(rt.errors,yn,kn),dt.state.next({errors:rt.errors})},Et=(yn,kn,dn,gn)=>{const Cn=get$6(it,yn);if(Cn){const $n=get$6(at,yn,isUndefined$1(dn)?get$6(ot,yn):dn);isUndefined$1($n)||gn&&gn.defaultChecked||kn?set$3(at,yn,kn?$n:getFieldValue(Cn._f)):Ot(yn,$n),st.mount&&wt()}},At=(yn,kn,dn,gn,Cn)=>{let $n=!1,un=!1;const rn={name:yn};if(!dn||gn){ht.isDirty&&(un=rt.isDirty,rt.isDirty=rn.isDirty=$t(),$n=un!==rn.isDirty);const Sn=deepEqual$2(get$6(ot,yn),kn);un=get$6(rt.dirtyFields,yn),Sn?unset(rt.dirtyFields,yn):set$3(rt.dirtyFields,yn,!0),rn.dirtyFields=rt.dirtyFields,$n=$n||ht.dirtyFields&&un!==!Sn}if(dn){const Sn=get$6(rt.touchedFields,yn);Sn||(set$3(rt.touchedFields,yn,dn),rn.touchedFields=rt.touchedFields,$n=$n||ht.touchedFields&&Sn!==dn)}return $n&&Cn&&dt.state.next(rn),$n?rn:{}},Tt=(yn,kn,dn,gn)=>{const Cn=get$6(rt.errors,yn),$n=ht.isValid&&isBoolean$2(kn)&&rt.isValid!==kn;if(tt.delayError&&dn?(ct=bt(()=>St(yn,dn)),ct(tt.delayError)):(clearTimeout(ut),ct=null,dn?set$3(rt.errors,yn,dn):unset(rt.errors,yn)),(dn?!deepEqual$2(Cn,dn):Cn)||!isEmptyObject(gn)||$n){const un={...gn,...$n&&isBoolean$2(kn)?{isValid:kn}:{},errors:rt.errors,name:yn};rt={...rt,...un},dt.state.next(un)}vt(!1)},Mt=async yn=>nt.resolver(at,nt.context,getResolverOptions(yn||lt.mount,it,nt.criteriaMode,nt.shouldUseNativeValidation)),Lt=async yn=>{const{errors:kn}=await Mt();if(yn)for(const dn of yn){const gn=get$6(kn,dn);gn?set$3(rt.errors,dn,gn):unset(rt.errors,dn)}else rt.errors=kn;return kn},jt=async(yn,kn,dn={valid:!0})=>{for(const gn in yn){const Cn=yn[gn];if(Cn){const{_f:$n,...un}=Cn;if($n){const rn=lt.array.has($n.name),Sn=await validateField(Cn,at,yt,nt.shouldUseNativeValidation&&!kn,rn);if(Sn[$n.name]&&(dn.valid=!1,kn))break;!kn&&(get$6(Sn,$n.name)?rn?updateFieldArrayRootError(rt.errors,Sn,$n.name):set$3(rt.errors,$n.name,Sn[$n.name]):unset(rt.errors,$n.name))}un&&await jt(un,kn,dn)}}return dn.valid},Rt=()=>{for(const yn of lt.unMount){const kn=get$6(it,yn);kn&&(kn._f.refs?kn._f.refs.every(dn=>!live(dn)):!live(kn._f.ref))&&Yt(yn)}lt.unMount=new Set},$t=(yn,kn)=>(yn&&kn&&set$3(at,yn,kn),!deepEqual$2(Nt(),ot)),xt=(yn,kn,dn)=>generateWatchOutput(yn,lt,{...st.mount?at:isUndefined$1(kn)?ot:isString$3(yn)?{[yn]:kn}:kn},dn,kn),It=yn=>compact(get$6(st.mount?at:ot,yn,tt.shouldUnregister?get$6(ot,yn,[]):[])),Ot=(yn,kn,dn={})=>{const gn=get$6(it,yn);let Cn=kn;if(gn){const $n=gn._f;$n&&(!$n.disabled&&set$3(at,yn,getFieldValueAs(kn,$n)),Cn=isHTMLElement$2($n.ref)&&isNullOrUndefined(kn)?"":kn,isMultipleSelect($n.ref)?[...$n.ref.options].forEach(un=>un.selected=Cn.includes(un.value)):$n.refs?isCheckBoxInput($n.ref)?$n.refs.length>1?$n.refs.forEach(un=>(!un.defaultChecked||!un.disabled)&&(un.checked=Array.isArray(Cn)?!!Cn.find(rn=>rn===un.value):Cn===un.value)):$n.refs[0]&&($n.refs[0].checked=!!Cn):$n.refs.forEach(un=>un.checked=un.value===Cn):isFileInput($n.ref)?$n.ref.value="":($n.ref.value=Cn,$n.ref.type||dt.values.next({name:yn,values:{...at}})))}(dn.shouldDirty||dn.shouldTouch)&&At(yn,Cn,dn.shouldTouch,dn.shouldDirty,!0),dn.shouldValidate&&Ft(yn)},zt=(yn,kn,dn)=>{for(const gn in kn){const Cn=kn[gn],$n=`${yn}.${gn}`,un=get$6(it,$n);(lt.array.has(yn)||!isPrimitive(Cn)||un&&!un._f)&&!isDateObject(Cn)?zt($n,Cn,dn):Ot($n,Cn,dn)}},Ut=(yn,kn,dn={})=>{const gn=get$6(it,yn),Cn=lt.array.has(yn),$n=cloneObject(kn);set$3(at,yn,$n),Cn?(dt.array.next({name:yn,values:{...at}}),(ht.isDirty||ht.dirtyFields)&&dn.shouldDirty&&dt.state.next({name:yn,dirtyFields:getDirtyFields(ot,at),isDirty:$t(yn,$n)})):gn&&!gn._f&&!isNullOrUndefined($n)?zt(yn,$n,dn):Ot(yn,$n,dn),isWatched(yn,lt)&&dt.state.next({...rt}),dt.values.next({name:yn,values:{...at}}),!st.mount&&et()},Wt=async yn=>{const kn=yn.target;let dn=kn.name,gn=!0;const Cn=get$6(it,dn),$n=()=>kn.type?getFieldValue(Cn._f):getEventValue(yn);if(Cn){let un,rn;const Sn=$n(),Mn=yn.type===EVENTS.BLUR||yn.type===EVENTS.FOCUS_OUT,Nn=!hasValidation(Cn._f)&&!nt.resolver&&!get$6(rt.errors,dn)&&!Cn._f.deps||skipValidation(Mn,get$6(rt.touchedFields,dn),rt.isSubmitted,gt,mt),hn=isWatched(dn,lt,Mn);set$3(at,dn,Sn),Mn?(Cn._f.onBlur&&Cn._f.onBlur(yn),ct&&ct(0)):Cn._f.onChange&&Cn._f.onChange(yn);const Qt=At(dn,Sn,Mn,!1),Zt=!isEmptyObject(Qt)||hn;if(!Mn&&dt.values.next({name:dn,type:yn.type,values:{...at}}),Nn)return ht.isValid&&wt(),Zt&&dt.state.next({name:dn,...hn?{}:Qt});if(!Mn&&hn&&dt.state.next({...rt}),vt(!0),nt.resolver){const{errors:wn}=await Mt([dn]),On=schemaErrorLookup(rt.errors,it,dn),jn=schemaErrorLookup(wn,it,On.name||dn);un=jn.error,dn=jn.name,rn=isEmptyObject(wn)}else un=(await validateField(Cn,at,yt,nt.shouldUseNativeValidation))[dn],gn=isNaN(Sn)||Sn===get$6(at,dn,Sn),gn&&(un?rn=!1:ht.isValid&&(rn=await jt(it,!0)));gn&&(Cn._f.deps&&Ft(Cn._f.deps),Tt(dn,rn,un,Qt))}},Ft=async(yn,kn={})=>{let dn,gn;const Cn=convertToArrayPayload(yn);if(vt(!0),nt.resolver){const $n=await Lt(isUndefined$1(yn)?yn:Cn);dn=isEmptyObject($n),gn=yn?!Cn.some(un=>get$6($n,un)):dn}else yn?(gn=(await Promise.all(Cn.map(async $n=>{const un=get$6(it,$n);return await jt(un&&un._f?{[$n]:un}:un)}))).every(Boolean),!(!gn&&!rt.isValid)&&wt()):gn=dn=await jt(it);return dt.state.next({...!isString$3(yn)||ht.isValid&&dn!==rt.isValid?{}:{name:yn},...nt.resolver||!yn?{isValid:dn}:{},errors:rt.errors,isValidating:!1}),kn.shouldFocus&&!gn&&focusFieldBy(it,$n=>$n&&get$6(rt.errors,$n),yn?Cn:lt.mount),gn},Nt=yn=>{const kn={...ot,...st.mount?at:{}};return isUndefined$1(yn)?kn:isString$3(yn)?get$6(kn,yn):yn.map(dn=>get$6(kn,dn))},Ct=(yn,kn)=>({invalid:!!get$6((kn||rt).errors,yn),isDirty:!!get$6((kn||rt).dirtyFields,yn),isTouched:!!get$6((kn||rt).touchedFields,yn),error:get$6((kn||rt).errors,yn)}),Ht=yn=>{yn&&convertToArrayPayload(yn).forEach(kn=>unset(rt.errors,kn)),dt.state.next({errors:yn?rt.errors:{}})},Jt=(yn,kn,dn)=>{const gn=(get$6(it,yn,{_f:{}})._f||{}).ref;set$3(rt.errors,yn,{...kn,ref:gn}),dt.state.next({name:yn,errors:rt.errors,isValid:!1}),dn&&dn.shouldFocus&&gn&&gn.focus&&gn.focus()},nn=(yn,kn)=>isFunction$6(yn)?dt.values.subscribe({next:dn=>yn(xt(void 0,kn),dn)}):xt(yn,kn,!0),Yt=(yn,kn={})=>{for(const dn of yn?convertToArrayPayload(yn):lt.mount)lt.mount.delete(dn),lt.array.delete(dn),kn.keepValue||(unset(it,dn),unset(at,dn)),!kn.keepError&&unset(rt.errors,dn),!kn.keepDirty&&unset(rt.dirtyFields,dn),!kn.keepTouched&&unset(rt.touchedFields,dn),!nt.shouldUnregister&&!kn.keepDefaultValue&&unset(ot,dn);dt.values.next({values:{...at}}),dt.state.next({...rt,...kn.keepDirty?{isDirty:$t()}:{}}),!kn.keepIsValid&&wt()},fn=(yn,kn={})=>{let dn=get$6(it,yn);const gn=isBoolean$2(kn.disabled);return set$3(it,yn,{...dn||{},_f:{...dn&&dn._f?dn._f:{ref:{name:yn}},name:yn,mount:!0,...kn}}),lt.mount.add(yn),isUndefined$1(kn.value)||set$3(at,yn,kn.value),dn?gn&&set$3(at,yn,kn.disabled?void 0:get$6(at,yn,getFieldValue(dn._f))):Et(yn,!0,kn.value),{...gn?{disabled:kn.disabled}:{},...nt.progressive?{required:!!kn.required,min:getRuleValue(kn.min),max:getRuleValue(kn.max),minLength:getRuleValue(kn.minLength),maxLength:getRuleValue(kn.maxLength),pattern:getRuleValue(kn.pattern)}:{},name:yn,onChange:Wt,onBlur:Wt,ref:Cn=>{if(Cn){fn(yn,kn),dn=get$6(it,yn);const $n=isUndefined$1(Cn.value)&&Cn.querySelectorAll&&Cn.querySelectorAll("input,select,textarea")[0]||Cn,un=isRadioOrCheckbox($n),rn=dn._f.refs||[];if(un?rn.find(Sn=>Sn===$n):$n===dn._f.ref)return;set$3(it,yn,{_f:{...dn._f,...un?{refs:[...rn.filter(live),$n,...Array.isArray(get$6(ot,yn))?[{}]:[]],ref:{type:$n.type,name:yn}}:{ref:$n}}}),Et(yn,!1,void 0,$n)}else dn=get$6(it,yn,{}),dn._f&&(dn._f.mount=!1),(nt.shouldUnregister||kn.shouldUnregister)&&!(isNameInFieldArray(lt.array,yn)&&st.action)&<.unMount.add(yn)}}},cn=()=>nt.shouldFocusError&&focusFieldBy(it,yn=>yn&&get$6(rt.errors,yn),lt.mount),_n=(yn,kn)=>async dn=>{dn&&(dn.preventDefault&&dn.preventDefault(),dn.persist&&dn.persist());let gn=cloneObject(at);if(dt.state.next({isSubmitting:!0}),nt.resolver){const{errors:Cn,values:$n}=await Mt();rt.errors=Cn,gn=$n}else await jt(it);unset(rt.errors,"root"),isEmptyObject(rt.errors)?(dt.state.next({errors:{}}),await yn(gn,dn)):(kn&&await kn({...rt.errors},dn),cn(),setTimeout(cn)),dt.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:isEmptyObject(rt.errors),submitCount:rt.submitCount+1,errors:rt.errors})},En=(yn,kn={})=>{get$6(it,yn)&&(isUndefined$1(kn.defaultValue)?Ut(yn,get$6(ot,yn)):(Ut(yn,kn.defaultValue),set$3(ot,yn,kn.defaultValue)),kn.keepTouched||unset(rt.touchedFields,yn),kn.keepDirty||(unset(rt.dirtyFields,yn),rt.isDirty=kn.defaultValue?$t(yn,get$6(ot,yn)):$t()),kn.keepError||(unset(rt.errors,yn),ht.isValid&&wt()),dt.state.next({...rt}))},an=(yn,kn={})=>{const dn=yn||ot,gn=cloneObject(dn),Cn=yn&&!isEmptyObject(yn)?gn:ot;if(kn.keepDefaultValues||(ot=dn),!kn.keepValues){if(kn.keepDirtyValues||pt)for(const $n of lt.mount)get$6(rt.dirtyFields,$n)?set$3(Cn,$n,get$6(at,$n)):Ut($n,get$6(Cn,$n));else{if(isWeb&&isUndefined$1(yn))for(const $n of lt.mount){const un=get$6(it,$n);if(un&&un._f){const rn=Array.isArray(un._f.refs)?un._f.refs[0]:un._f.ref;if(isHTMLElement$2(rn)){const Sn=rn.closest("form");if(Sn){Sn.reset();break}}}}it={}}at=tt.shouldUnregister?kn.keepDefaultValues?cloneObject(ot):{}:cloneObject(Cn),dt.array.next({values:{...Cn}}),dt.values.next({values:{...Cn}})}lt={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},!st.mount&&et(),st.mount=!ht.isValid||!!kn.keepIsValid,st.watch=!!tt.shouldUnregister,dt.state.next({submitCount:kn.keepSubmitCount?rt.submitCount:0,isDirty:kn.keepDirty?rt.isDirty:!!(kn.keepDefaultValues&&!deepEqual$2(yn,ot)),isSubmitted:kn.keepIsSubmitted?rt.isSubmitted:!1,dirtyFields:kn.keepDirtyValues?rt.dirtyFields:kn.keepDefaultValues&&yn?getDirtyFields(ot,yn):{},touchedFields:kn.keepTouched?rt.touchedFields:{},errors:kn.keepErrors?rt.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})},en=(yn,kn)=>an(isFunction$6(yn)?yn(at):yn,kn);return{control:{register:fn,unregister:Yt,getFieldState:Ct,handleSubmit:_n,setError:Jt,_executeSchema:Mt,_getWatch:xt,_getDirty:$t,_updateValid:wt,_removeUnmounted:Rt,_updateFieldArray:kt,_getFieldArray:It,_reset:an,_resetDefaultValues:()=>isFunction$6(nt.defaultValues)&&nt.defaultValues().then(yn=>{en(yn,nt.resetOptions),dt.state.next({isLoading:!1})}),_updateFormState:yn=>{rt={...rt,...yn}},_subjects:dt,_proxyFormState:ht,get _fields(){return it},get _formValues(){return at},get _state(){return st},set _state(yn){st=yn},get _defaultValues(){return ot},get _names(){return lt},set _names(yn){lt=yn},get _formState(){return rt},set _formState(yn){rt=yn},get _options(){return nt},set _options(yn){nt={...nt,...yn}}},trigger:Ft,register:fn,handleSubmit:_n,watch:nn,setValue:Ut,getValues:Nt,reset:en,resetField:En,clearErrors:Ht,unregister:Yt,setError:Jt,setFocus:(yn,kn={})=>{const dn=get$6(it,yn),gn=dn&&dn._f;if(gn){const Cn=gn.refs?gn.refs[0]:gn.ref;Cn.focus&&(Cn.focus(),kn.shouldSelect&&Cn.select())}},getFieldState:Ct}}function useForm(tt={}){const et=React$1.useRef(),nt=React$1.useRef(),[rt,it]=React$1.useState({isDirty:!1,isValidating:!1,isLoading:isFunction$6(tt.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},errors:{},defaultValues:isFunction$6(tt.defaultValues)?void 0:tt.defaultValues});et.current||(et.current={...createFormControl(tt,()=>it(at=>({...at}))),formState:rt});const ot=et.current.control;return ot._options=tt,useSubscribe({subject:ot._subjects.state,next:at=>{shouldRenderFormState(at,ot._proxyFormState,ot._updateFormState,!0)&&it({...ot._formState})}}),React$1.useEffect(()=>{tt.values&&!deepEqual$2(tt.values,nt.current)?(ot._reset(tt.values,ot._options.resetOptions),nt.current=tt.values):ot._resetDefaultValues()},[tt.values,ot]),React$1.useEffect(()=>{ot._state.mount||(ot._updateValid(),ot._state.mount=!0),ot._state.watch&&(ot._state.watch=!1,ot._subjects.state.next({...ot._formState})),ot._removeUnmounted()}),et.current.formState=getProxyFormState(rt,ot),et.current}const ReactToastify="";var dist$4={exports:{}},lib$4={},postMessage$2={};Object.defineProperty(postMessage$2,"__esModule",{value:!0});postMessage$2.removeEventer=postMessage$2.addEventer=postMessage$2.postMessage=void 0;function postMessage$1(tt){var et=window;if(et.sendToElectron)return et.sendToElectron("sphinx-bridge",tt);et.ReactNativeWebView&&et.ReactNativeWebView.postMessage?et.ReactNativeWebView.postMessage(JSON.stringify(tt)):et.webkit&&et.webkit.messageHandlers&&et.webkit.messageHandlers.sphinx&&et.webkit.messageHandlers.sphinx?et.webkit.messageHandlers.sphinx.postMessage(tt):et.Android?et.Android.receiveMessage(JSON.stringify(tt)):et.parent.postMessage(tt,"*")}postMessage$2.postMessage=postMessage$1;function addEventer(tt){var et=window;if(et.sendToElectron){et.EE&&et.EE.once("sphinx-bridge",tt);return}else et.ReactNativeWebView&&et.ReactNativeWebView.postMessage?document.addEventListener("message",function(nt){var rt={};try{rt=JSON.parse(nt.data)}catch{}tt({data:rt})}):et.webkit&&et.webkit.messageHandlers&&et.webkit.messageHandlers.sphinx&&et.webkit.messageHandlers.sphinx?et.sphinxMessage=function(nt){var rt={};try{rt=JSON.parse(nt)}catch{}tt({data:rt})}:et.Android?et.sphinxMessage=function(nt){var rt={};try{rt=JSON.parse(nt)}catch{}tt({data:rt})}:et.addEventListener("message",tt)}postMessage$2.addEventer=addEventer;function removeEventer(tt){var et=window;et.sendToElectron||(et.ReactNativeWebView&&et.ReactNativeWebView.postMessage?document.removeEventListener("message",tt):et.webkit&&et.webkit.messageHandlers&&et.webkit.messageHandlers.sphinx&&et.webkit.messageHandlers.sphinx||et.Android?et.sphinxMessage=null:et.removeEventListener("message",tt))}postMessage$2.removeEventer=removeEventer;(function(tt){var et=commonjsGlobal&&commonjsGlobal.__assign||function(){return et=Object.assign||function(lt){for(var ct,ut=1,ht=arguments.length;ut0&&pt[pt.length-1])&&(bt[0]===6||bt[0]===2)){ut=0;continue}if(bt[0]===3&&(!pt||bt[1]>pt[0]&&bt[1] ENABLE!"),this.isEnabled)return[2,{budget:this.budget,pubkey:this.pubkey,application:at}];pt.label=1;case 1:return pt.trys.push([1,3,,4]),[4,this.postMsg(ot.AUTHORIZE)];case 2:return ut=pt.sent(),ht=ut.budget||ut.budget===0,ht&&ut.pubkey?(this.isEnabled=!0,this.budget=ut.budget,this.pubkey=ut.pubkey,[2,ut]):[3,4];case 3:return dt=pt.sent(),this.logging&&console.log(dt),[3,4];case 4:return[2,null]}})})},lt.prototype.authorize=function(ct,ut,ht){return nt(this,void 0,void 0,function(){var dt,pt,mt,gt;return rt(this,function(yt){switch(yt.label){case 0:ht&&(this.logging=!0),this.logging&&console.log("=> AUTHORIZE!"),yt.label=1;case 1:return yt.trys.push([1,3,,4]),dt=ut||!1,[4,this.postMsg(ot.AUTHORIZE,{challenge:ct,noBudget:dt})];case 2:return pt=yt.sent(),mt=pt.budget||pt.budget===0,(dt||mt)&&pt.pubkey?(this.isEnabled=!0,this.budget=pt.budget||0,this.pubkey=pt.pubkey,[2,pt]):[3,4];case 3:return gt=yt.sent(),this.logging&&console.log(gt),[3,4];case 4:return[2,null]}})})},lt.prototype.topup=function(){return nt(this,void 0,void 0,function(){var ct,ut,ht;return rt(this,function(dt){switch(dt.label){case 0:this.logging&&console.log("=> TOP UP"),dt.label=1;case 1:return dt.trys.push([1,3,,4]),[4,this.postMsg(ot.AUTHORIZE)];case 2:return ct=dt.sent(),ut=ct.budget||ct.budget===0,ut&&ct.pubkey?(this.budget=ct.budget,this.pubkey=ct.pubkey,[2,ct]):[3,4];case 3:return ht=dt.sent(),this.logging&&console.log(ht),[3,4];case 4:return[2,null]}})})},lt.prototype.keysend=function(ct,ut){return nt(this,void 0,void 0,function(){var ht,dt,pt;return rt(this,function(mt){switch(mt.label){case 0:if(this.logging&&console.log("=> KEYSEND"),!this.isEnabled)return[2,null];if(!ct||!ut)return[2,null];if(ct.length!==66)return[2,null];if(ut<1)return[2,null];if(ut>this.budget)return[2,null];mt.label=1;case 1:return mt.trys.push([1,3,,4]),ht={dest:ct,amt:ut},[4,this.postMsg(ot.KEYSEND,ht)];case 2:return dt=mt.sent(),dt&&dt.success&&(this.budget=this.budget-ut,dt.budget=this.budget),[2,dt];case 3:return pt=mt.sent(),this.logging&&console.log(pt),[2,null];case 4:return[2]}})})},lt.prototype.updated=function(){return nt(this,void 0,void 0,function(){var ct,ut;return rt(this,function(ht){switch(ht.label){case 0:if(this.logging&&console.log("=> UDPATED"),!this.isEnabled)return[2,null];ht.label=1;case 1:return ht.trys.push([1,3,,4]),[4,this.postMsg(ot.UPDATED)];case 2:return ct=ht.sent(),[2,ct];case 3:return ut=ht.sent(),this.logging&&console.log(ut),[2,null];case 4:return[2]}})})},lt.prototype.sendPayment=function(ct){return nt(this,void 0,void 0,function(){var ut,ht;return rt(this,function(dt){switch(dt.label){case 0:if(this.logging&&console.log("=> SEND PAYMENT"),!this.isEnabled)return[2,null];dt.label=1;case 1:return dt.trys.push([1,3,,4]),[4,this.postMsg(ot.PAYMENT,{paymentRequest:ct})];case 2:return ut=dt.sent(),[2,ut];case 3:return ht=dt.sent(),this.logging&&console.log(ht),[2,null];case 4:return[2]}})})},lt.prototype.saveLsat=function(ct,ut,ht){return nt(this,void 0,void 0,function(){var dt,pt;return rt(this,function(mt){switch(mt.label){case 0:this.logging&&console.log("=> SAVE LSAT"),mt.label=1;case 1:return mt.trys.push([1,3,,4]),[4,this.postMsg(ot.LSAT,{paymentRequest:ct,macaroon:ut,issuer:ht})];case 2:return dt=mt.sent(),[2,dt];case 3:return pt=mt.sent(),this.logging&&console.log(pt),[2,pt];case 4:return[2]}})})},lt.prototype.getLsat=function(){return nt(this,void 0,void 0,function(){var ct,ut;return rt(this,function(ht){switch(ht.label){case 0:if(this.logging&&console.log("=> GET LSAT"),!this.isEnabled)return[2,null];ht.label=1;case 1:return ht.trys.push([1,3,,4]),[4,this.postMsg(ot.GETLSAT)];case 2:return ct=ht.sent(),[2,ct];case 3:return ut=ht.sent(),this.logging&&console.log(ut),[2,ut];case 4:return[2]}})})},lt.prototype.updateLsat=function(ct,ut){return nt(this,void 0,void 0,function(){var ht,dt;return rt(this,function(pt){switch(pt.label){case 0:if(this.logging&&console.log("=> UPDATE LSAT"),!this.isEnabled)return[2,null];pt.label=1;case 1:return pt.trys.push([1,3,,4]),[4,this.postMsg(ot.UPDATELSAT,{identifier:ct,status:ut})];case 2:return ht=pt.sent(),[2,ht];case 3:return dt=pt.sent(),this.logging&&console.log(dt),[2,dt];case 4:return[2]}})})},lt.prototype.makeInvoice=function(ct,ut){return nt(this,void 0,void 0,function(){var ht,dt;return rt(this,function(pt){switch(pt.label){case 0:if(this.logging&&console.log("=> MAKE INVOICE"),!this.isEnabled)return[2,null];pt.label=1;case 1:return pt.trys.push([1,3,,4]),[4,this.postMsg(ot.INVOICE,{amt:ct,memo:ut})];case 2:return ht=pt.sent(),[2,ht];case 3:return dt=pt.sent(),this.logging&&console.log(dt),[2,null];case 4:return[2]}})})},lt.prototype.signMessage=function(ct){return nt(this,void 0,void 0,function(){var ut,ht;return rt(this,function(dt){switch(dt.label){case 0:if(this.logging&&console.log("=> SIGN MESSAGE"),!this.isEnabled)return[2,null];dt.label=1;case 1:return dt.trys.push([1,3,,4]),[4,this.postMsg(ot.SIGN,{message:ct})];case 2:return ut=dt.sent(),[2,ut];case 3:return ht=dt.sent(),this.logging&&console.log(ht),[2,null];case 4:return[2]}})})},lt.prototype.verifyMessage=function(ct,ut){return nt(this,void 0,void 0,function(){var ht,dt;return rt(this,function(pt){switch(pt.label){case 0:if(this.logging&&console.log("=> VERIFY MESSAGE"),!this.isEnabled)return[2,null];pt.label=1;case 1:return pt.trys.push([1,3,,4]),[4,this.postMsg(ot.SIGN,{signature:ct,message:ut})];case 2:return ht=pt.sent(),[2,ht];case 3:return dt=pt.sent(),this.logging&&console.log(dt),[2,null];case 4:return[2]}})})},lt.prototype.reload=function(ct){return nt(this,void 0,void 0,function(){var ut,ht,dt;return rt(this,function(pt){switch(pt.label){case 0:this.logging&&console.log("=> RELOAD"),pt.label=1;case 1:return pt.trys.push([1,3,,4]),[4,this.postMsg(ot.RELOAD,{password:ct})];case 2:return ut=pt.sent(),ht=ut.budget||ut.budget===0,ht&&ut.pubkey?(this.isEnabled=!0,this.budget=ut.budget,this.pubkey=ut.pubkey,[2,ut]):[3,4];case 3:return dt=pt.sent(),this.logging&&console.log(dt),[3,4];case 4:return[2,null]}})})},lt.prototype.saveGraphData=function(ct){return nt(this,void 0,void 0,function(){var ut,ht;return rt(this,function(dt){switch(dt.label){case 0:if(this.logging&&console.log("=> SAVEDATA"),!this.isEnabled)return[2,null];dt.label=1;case 1:return dt.trys.push([1,3,,4]),[4,this.postMsg(ot.SAVEDATA,{data:{type:ct.type,metaData:ct.metaData}})];case 2:return ut=dt.sent(),[2,ut];case 3:return ht=dt.sent(),this.logging&&console.log(ht),[2,null];case 4:return[2]}})})},lt.prototype.getPersonData=function(){return nt(this,void 0,void 0,function(){var ct,ut;return rt(this,function(ht){switch(ht.label){case 0:if(this.logging&&console.log("=> GETPERSONDATA"),!this.isEnabled)return[2,null];ht.label=1;case 1:return ht.trys.push([1,3,,4]),[4,this.postMsg(ot.GETPERSONDATA)];case 2:return ct=ht.sent(),[2,ct];case 3:return ut=ht.sent(),this.logging&&console.log(ut),[2,null];case 4:return[2]}})})},lt.prototype.postMsg=function(ct,ut){var ht=this;return ht.active&&Promise.reject(new Error("User is busy")),ht.active=ct,new Promise(function(dt,pt){it.postMessage(et({application:at,type:ct},ut||{}));function mt(gt){!gt.data||gt.data.application!==at||(gt.data.error?(ht.active=null,pt(gt.data.error)):(ht.active=null,dt(gt.data)),it.removeEventer(mt))}it.addEventer(mt)})},lt}();tt.default=st})(lib$4);var dist$3=dist$4.exports;Object.defineProperty(dist$3,"__esModule",{value:!0});var lib_1=lib$4,sphinx=new lib_1.default;dist$4.exports=sphinx;var distExports$2=dist$4.exports,reactIs$3={exports:{}},reactIs_production_min$2={};/** * @license React * react-is.production.min.js * @@ -103,7 +103,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var b$4=Symbol.for("react.element"),c$6=Symbol.for("react.portal"),d$3=Symbol.for("react.fragment"),e$4=Symbol.for("react.strict_mode"),f$5=Symbol.for("react.profiler"),g$6=Symbol.for("react.provider"),h$7=Symbol.for("react.context"),k$6=Symbol.for("react.server_context"),l$4=Symbol.for("react.forward_ref"),m$6=Symbol.for("react.suspense"),n$5=Symbol.for("react.suspense_list"),p$6=Symbol.for("react.memo"),q$5=Symbol.for("react.lazy"),t$5=Symbol.for("react.offscreen"),u$3;u$3=Symbol.for("react.module.reference");function v$6(tt){if(typeof tt=="object"&&tt!==null){var et=tt.$$typeof;switch(et){case b$4:switch(tt=tt.type,tt){case d$3:case f$5:case e$4:case m$6:case n$5:return tt;default:switch(tt=tt&&tt.$$typeof,tt){case k$6:case h$7:case l$4:case q$5:case p$6:case g$6:return tt;default:return et}}case c$6:return et}}}reactIs_production_min$2.ContextConsumer=h$7;reactIs_production_min$2.ContextProvider=g$6;reactIs_production_min$2.Element=b$4;reactIs_production_min$2.ForwardRef=l$4;reactIs_production_min$2.Fragment=d$3;reactIs_production_min$2.Lazy=q$5;reactIs_production_min$2.Memo=p$6;reactIs_production_min$2.Portal=c$6;reactIs_production_min$2.Profiler=f$5;reactIs_production_min$2.StrictMode=e$4;reactIs_production_min$2.Suspense=m$6;reactIs_production_min$2.SuspenseList=n$5;reactIs_production_min$2.isAsyncMode=function(){return!1};reactIs_production_min$2.isConcurrentMode=function(){return!1};reactIs_production_min$2.isContextConsumer=function(tt){return v$6(tt)===h$7};reactIs_production_min$2.isContextProvider=function(tt){return v$6(tt)===g$6};reactIs_production_min$2.isElement=function(tt){return typeof tt=="object"&&tt!==null&&tt.$$typeof===b$4};reactIs_production_min$2.isForwardRef=function(tt){return v$6(tt)===l$4};reactIs_production_min$2.isFragment=function(tt){return v$6(tt)===d$3};reactIs_production_min$2.isLazy=function(tt){return v$6(tt)===q$5};reactIs_production_min$2.isMemo=function(tt){return v$6(tt)===p$6};reactIs_production_min$2.isPortal=function(tt){return v$6(tt)===c$6};reactIs_production_min$2.isProfiler=function(tt){return v$6(tt)===f$5};reactIs_production_min$2.isStrictMode=function(tt){return v$6(tt)===e$4};reactIs_production_min$2.isSuspense=function(tt){return v$6(tt)===m$6};reactIs_production_min$2.isSuspenseList=function(tt){return v$6(tt)===n$5};reactIs_production_min$2.isValidElementType=function(tt){return typeof tt=="string"||typeof tt=="function"||tt===d$3||tt===f$5||tt===e$4||tt===m$6||tt===n$5||tt===t$5||typeof tt=="object"&&tt!==null&&(tt.$$typeof===q$5||tt.$$typeof===p$6||tt.$$typeof===g$6||tt.$$typeof===h$7||tt.$$typeof===l$4||tt.$$typeof===u$3||tt.getModuleId!==void 0)};reactIs_production_min$2.typeOf=v$6;reactIs$3.exports=reactIs_production_min$2;var reactIsExports$2=reactIs$3.exports;function stylis_min(tt){function et(Ct,Ht,Jt,nn,Yt){for(var fn=0,cn=0,_n=0,En=0,an,en,Tn=0,Rn=0,An,yn=An=an=0,kn=0,dn=0,gn=0,Cn=0,$n=Jt.length,un=$n-1,rn,Sn="",Mn="",Nn="",hn="",Qt;kn<$n;){if(en=Jt.charCodeAt(kn),kn===un&&cn+En+_n+fn!==0&&(cn!==0&&(en=cn===47?10:47),En=_n=fn=0,$n++,un++),cn+En+_n+fn===0){if(kn===un&&(0an)&&(Cn=(Sn=Sn.replace(" ",":")).length),0nn&&(nn=(Ht=Ht.trim()).charCodeAt(0)),nn){case 38:return Ht.replace(bt,"$1"+Ct.trim());case 58:return Ct.trim()+Ht.replace(bt,"$1"+Ct.trim());default:if(0<1*Jt&&0cn.charCodeAt(8))break;case 115:Yt=Yt.replace(cn,"-webkit-"+cn)+";"+Yt;break;case 207:case 102:Yt=Yt.replace(cn,"-webkit-"+(102Jt.charCodeAt(0)&&(Jt=Jt.trim()),Nt=Jt,Jt=[Nt],0an)&&(Cn=(Sn=Sn.replace(" ",":")).length),0nn&&(nn=(Ht=Ht.trim()).charCodeAt(0)),nn){case 38:return Ht.replace(bt,"$1"+Ct.trim());case 58:return Ct.trim()+Ht.replace(bt,"$1"+Ct.trim());default:if(0<1*Jt&&0cn.charCodeAt(8))break;case 115:Yt=Yt.replace(cn,"-webkit-"+cn)+";"+Yt;break;case 207:case 102:Yt=Yt.replace(cn,"-webkit-"+(102Jt.charCodeAt(0)&&(Jt=Jt.trim()),Nt=Jt,Jt=[Nt],01?et-1:0),rt=1;rt0?" Args: "+nt.join(", "):""))}var j=function(){function tt(nt){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=nt}var et=tt.prototype;return et.indexOfGroup=function(nt){for(var rt=0,it=0;it=this.groupSizes.length){for(var it=this.groupSizes,ot=it.length,at=ot;nt>=at;)(at<<=1)<0&&D(16,""+nt);this.groupSizes=new Uint32Array(at),this.groupSizes.set(it),this.length=at;for(var st=ot;st=this.length||this.groupSizes[nt]===0)return rt;for(var it=this.groupSizes[nt],ot=this.indexOfGroup(nt),at=ot+it,st=ot;st=k$4&&(k$4=et+1),T.set(tt,et),x$5.set(et,tt)},M="style["+N+'][data-styled-version="5.3.11"]',G$1=new RegExp("^"+N+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),L=function(tt,et,nt){for(var rt,it=nt.split(","),ot=0,at=it.length;ot=0;ct--){var ut=lt[ct];if(ut&&ut.nodeType===1&&ut.hasAttribute(N))return ut}}(nt),ot=it!==void 0?it.nextSibling:null;rt.setAttribute(N,"active"),rt.setAttribute("data-styled-version","5.3.11");var at=Y();return at&&rt.setAttribute("nonce",at),nt.insertBefore(rt,ot),rt},H=function(){function tt(nt){var rt=this.element=q$3(nt);rt.appendChild(document.createTextNode("")),this.sheet=function(it){if(it.sheet)return it.sheet;for(var ot=document.styleSheets,at=0,st=ot.length;at=0){var it=document.createTextNode(rt),ot=this.nodes[nt];return this.element.insertBefore(it,ot||null),this.length++,!0}return!1},et.deleteRule=function(nt){this.element.removeChild(this.nodes[nt]),this.length--},et.getRule=function(nt){return nt0&&(ht+=dt+",")}),ot+=""+ct+ut+'{content:"'+ht+`"}/*!sc*/ -`}}}return ot}(this)},tt}(),Z=/(a)(d)/gi,K$5=function(tt){return String.fromCharCode(tt+(tt>25?39:97))};function Q(tt){var et,nt="";for(et=Math.abs(tt);et>52;et=et/52|0)nt=K$5(et%52)+nt;return(K$5(et%52)+nt).replace(Z,"$1-$2")}var ee=function(tt,et){for(var nt=et.length;nt;)tt=33*tt^et.charCodeAt(--nt);return tt},te=function(tt){return ee(5381,tt)};function ne(tt){for(var et=0;et>>0);if(!nt.hasNameForId(it,st)){var lt=rt(at,"."+st,void 0,it);nt.insertRules(it,st,lt)}ot.push(st),this.staticRulesId=st}else{for(var ct=this.rules.length,ut=ee(this.baseHash,rt.hash),ht="",dt=0;dt>>0);if(!nt.hasNameForId(it,yt)){var bt=rt(ht,"."+yt,void 0,it);nt.insertRules(it,yt,bt)}ot.push(yt)}}return ot.join(" ")},tt}(),se=/^\s*\/\/.*$/gm,ie=[":","[",".","#"];function ae(tt){var et,nt,rt,it,ot=tt===void 0?w$3:tt,at=ot.options,st=at===void 0?w$3:at,lt=ot.plugins,ct=lt===void 0?S:lt,ut=new stylis_min(st),ht=[],dt=function(gt){function yt(bt){if(bt)try{gt(bt+"}")}catch{}}return function(bt,wt,vt,kt,St,Tt,At,Et,Mt,Lt){switch(bt){case 1:if(Mt===0&&wt.charCodeAt(0)===64)return gt(wt+";"),"";break;case 2:if(Et===0)return wt+"/*|*/";break;case 3:switch(Et){case 102:case 112:return gt(vt[0]+wt),"";default:return wt+(Lt===0?"/*|*/":"")}case-2:wt.split("/*|*/}").forEach(yt)}}}(function(gt){ht.push(gt)}),pt=function(gt,yt,bt){return yt===0&&ie.indexOf(bt[nt.length])!==-1||bt.match(it)?gt:"."+et};function mt(gt,yt,bt,wt){wt===void 0&&(wt="&");var vt=gt.replace(se,""),kt=yt&&bt?bt+" "+yt+" { "+vt+" }":vt;return et=wt,nt=yt,rt=new RegExp("\\"+nt+"\\b","g"),it=new RegExp("(\\"+nt+"\\b){2,}"),ut(bt||!yt?"":yt,kt)}return ut.use([].concat(ct,[function(gt,yt,bt){gt===2&&bt.length&&bt[0].lastIndexOf(nt)>0&&(bt[0]=bt[0].replace(rt,pt))},dt,function(gt){if(gt===-2){var yt=ht;return ht=[],yt}}])),mt.hash=ct.length?ct.reduce(function(gt,yt){return yt.name||D(15),ee(gt,yt.name)},5381).toString():"",mt}var ce=React$1.createContext();ce.Consumer;var le=React$1.createContext(),de=(le.Consumer,new X),he=ae();function pe(){return reactExports.useContext(ce)||de}function fe(){return reactExports.useContext(le)||he}var ye=function(){function tt(et,nt){var rt=this;this.inject=function(it,ot){ot===void 0&&(ot=he);var at=rt.name+ot.hash;it.hasNameForId(rt.id,at)||it.insertRules(rt.id,at,ot(rt.rules,at,"@keyframes"))},this.toString=function(){return D(12,String(rt.name))},this.name=et,this.id="sc-keyframes-"+et,this.rules=nt}return tt.prototype.getName=function(et){return et===void 0&&(et=he),this.name+et.hash},tt}(),ve=/([A-Z])/,ge=/([A-Z])/g,Se=/^ms-/,we=function(tt){return"-"+tt.toLowerCase()};function Ee(tt){return ve.test(tt)?tt.replace(ge,we).replace(Se,"-ms-"):tt}var be=function(tt){return tt==null||tt===!1||tt===""};function _e(tt,et,nt,rt){if(Array.isArray(tt)){for(var it,ot=[],at=0,st=tt.length;at1?et-1:0),rt=1;rt?@[\\\]^`{|}~-]+/g,De=/(^-|-$)/g;function je(tt){return tt.replace(Re,"-").replace(De,"")}var Te=function(tt){return Q(te(tt)>>>0)};function xe(tt){return typeof tt=="string"&&!0}var ke=function(tt){return typeof tt=="function"||typeof tt=="object"&&tt!==null&&!Array.isArray(tt)},Ve=function(tt){return tt!=="__proto__"&&tt!=="constructor"&&tt!=="prototype"};function Be(tt,et,nt){var rt=tt[nt];ke(et)&&ke(rt)?ze(rt,et):tt[nt]=et}function ze(tt){for(var et=arguments.length,nt=new Array(et>1?et-1:0),rt=1;rt=0||(Lt[Et]=Tt[Et]);return Lt}(et,["componentId"]),St=vt&&vt+"-"+(xe(wt)?wt:je(b$2(wt)));return Ye(wt,y$4({},kt,{attrs:dt,componentId:St}),nt)},Object.defineProperty(mt,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(wt){this._foldedDefaultProps=rt?ze({},tt.defaultProps,wt):wt}}),Object.defineProperty(mt,"toString",{value:function(){return"."+mt.styledComponentId}}),it&&hoistNonReactStatics$1(mt,tt,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),mt}var qe=function(tt){return function et(nt,rt,it){if(it===void 0&&(it=w$3),!reactIsExports$2.isValidElementType(rt))return D(1,String(rt));var ot=function(){return nt(rt,it,Ae.apply(void 0,arguments))};return ot.withConfig=function(at){return et(nt,rt,y$4({},it,{},at))},ot.attrs=function(at){return et(nt,rt,y$4({},it,{attrs:Array.prototype.concat(it.attrs,at).filter(Boolean)}))},ot}(Ye,tt)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(tt){qe[tt]=qe(tt)});var He=function(){function tt(nt,rt){this.rules=nt,this.componentId=rt,this.isStatic=ne(nt),X.registerId(this.componentId+1)}var et=tt.prototype;return et.createStyles=function(nt,rt,it,ot){var at=ot(_e(this.rules,rt,it,ot).join(""),""),st=this.componentId+nt;it.insertRules(st,st,at)},et.removeStyles=function(nt,rt){rt.clearRules(this.componentId+nt)},et.renderStyles=function(nt,rt,it,ot){nt>2&&X.registerId(this.componentId+nt),this.removeStyles(nt,it),this.createStyles(nt,rt,it,ot)},tt}();function $e(tt){for(var et=arguments.length,nt=new Array(et>1?et-1:0),rt=1;rt1?et-1:0),rt=1;rt{et[nt]=deepClone(tt[nt])}),et}function deepmerge$1(tt,et,nt={clone:!0}){const rt=nt.clone?_extends$r({},tt):tt;return isPlainObject(tt)&&isPlainObject(et)&&Object.keys(et).forEach(it=>{it!=="__proto__"&&(isPlainObject(et[it])&&it in tt&&isPlainObject(tt[it])?rt[it]=deepmerge$1(tt[it],et[it],nt):nt.clone?rt[it]=isPlainObject(et[it])?deepClone(et[it]):et[it]:rt[it]=et[it])}),rt}function formatMuiErrorMessage(tt){let et="https://mui.com/production-error/?code="+tt;for(let nt=1;ntnt==null?et:function(...it){et.apply(this,it),nt.apply(this,it)},()=>{})}function debounce$5(tt,et=166){let nt;function rt(...it){const ot=()=>{tt.apply(this,it)};clearTimeout(nt),nt=setTimeout(ot,et)}return rt.clear=()=>{clearTimeout(nt)},rt}function isMuiElement(tt,et){return reactExports.isValidElement(tt)&&et.indexOf(tt.type.muiName)!==-1}function ownerDocument(tt){return tt&&tt.ownerDocument||document}function ownerWindow(tt){return ownerDocument(tt).defaultView||window}function setRef(tt,et){typeof tt=="function"?tt(et):tt&&(tt.current=et)}const useEnhancedEffect=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,useEnhancedEffect$1=useEnhancedEffect;let globalId=0;function useGlobalId(tt){const[et,nt]=reactExports.useState(tt),rt=tt||et;return reactExports.useEffect(()=>{et==null&&(globalId+=1,nt(`mui-${globalId}`))},[et]),rt}const maybeReactUseId=React$2["useId".toString()];function useId(tt){if(maybeReactUseId!==void 0){const et=maybeReactUseId();return tt??et}return useGlobalId(tt)}function useControlled({controlled:tt,default:et,name:nt,state:rt="value"}){const{current:it}=reactExports.useRef(tt!==void 0),[ot,at]=reactExports.useState(et),st=it?tt:ot,lt=reactExports.useCallback(ct=>{it||at(ct)},[]);return[st,lt]}function useEventCallback(tt){const et=reactExports.useRef(tt);return useEnhancedEffect$1(()=>{et.current=tt}),reactExports.useCallback((...nt)=>(0,et.current)(...nt),[])}function useForkRef(...tt){return reactExports.useMemo(()=>tt.every(et=>et==null)?null:et=>{tt.forEach(nt=>{setRef(nt,et)})},tt)}let hadKeyboardEvent=!0,hadFocusVisibleRecently=!1,hadFocusVisibleRecentlyTimeout;const inputTypesWhitelist={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function focusTriggersKeyboardModality(tt){const{type:et,tagName:nt}=tt;return!!(nt==="INPUT"&&inputTypesWhitelist[et]&&!tt.readOnly||nt==="TEXTAREA"&&!tt.readOnly||tt.isContentEditable)}function handleKeyDown(tt){tt.metaKey||tt.altKey||tt.ctrlKey||(hadKeyboardEvent=!0)}function handlePointerDown(){hadKeyboardEvent=!1}function handleVisibilityChange(){this.visibilityState==="hidden"&&hadFocusVisibleRecently&&(hadKeyboardEvent=!0)}function prepare$1(tt){tt.addEventListener("keydown",handleKeyDown,!0),tt.addEventListener("mousedown",handlePointerDown,!0),tt.addEventListener("pointerdown",handlePointerDown,!0),tt.addEventListener("touchstart",handlePointerDown,!0),tt.addEventListener("visibilitychange",handleVisibilityChange,!0)}function isFocusVisible(tt){const{target:et}=tt;try{return et.matches(":focus-visible")}catch{}return hadKeyboardEvent||focusTriggersKeyboardModality(et)}function useIsFocusVisible(){const tt=reactExports.useCallback(it=>{it!=null&&prepare$1(it.ownerDocument)},[]),et=reactExports.useRef(!1);function nt(){return et.current?(hadFocusVisibleRecently=!0,window.clearTimeout(hadFocusVisibleRecentlyTimeout),hadFocusVisibleRecentlyTimeout=window.setTimeout(()=>{hadFocusVisibleRecently=!1},100),et.current=!1,!0):!1}function rt(it){return isFocusVisible(it)?(et.current=!0,!0):!1}return{isFocusVisibleRef:et,onFocus:rt,onBlur:nt,ref:tt}}function getScrollbarSize(tt){const et=tt.documentElement.clientWidth;return Math.abs(window.innerWidth-et)}let cachedType;function detectScrollType(){if(cachedType)return cachedType;const tt=document.createElement("div"),et=document.createElement("div");return et.style.width="10px",et.style.height="1px",tt.appendChild(et),tt.dir="rtl",tt.style.fontSize="14px",tt.style.width="4px",tt.style.height="1px",tt.style.position="absolute",tt.style.top="-1000px",tt.style.overflow="scroll",document.body.appendChild(tt),cachedType="reverse",tt.scrollLeft>0?cachedType="default":(tt.scrollLeft=1,tt.scrollLeft===0&&(cachedType="negative")),document.body.removeChild(tt),cachedType}function getNormalizedScrollLeft(tt,et){const nt=tt.scrollLeft;if(et!=="rtl")return nt;switch(detectScrollType()){case"negative":return tt.scrollWidth-tt.clientWidth+nt;case"reverse":return tt.scrollWidth-tt.clientWidth-nt;default:return nt}}const visuallyHidden={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:-1,overflow:"hidden",padding:0,position:"absolute",whiteSpace:"nowrap",width:"1px"},visuallyHidden$1=visuallyHidden;function resolveProps(tt,et){const nt=_extends$r({},et);return Object.keys(tt).forEach(rt=>{if(rt.toString().match(/^(components|slots)$/))nt[rt]=_extends$r({},tt[rt],nt[rt]);else if(rt.toString().match(/^(componentsProps|slotProps)$/)){const it=tt[rt]||{},ot=et[rt];nt[rt]={},!ot||!Object.keys(ot)?nt[rt]=it:!it||!Object.keys(it)?nt[rt]=ot:(nt[rt]=_extends$r({},ot),Object.keys(it).forEach(at=>{nt[rt][at]=resolveProps(it[at],ot[at])}))}else nt[rt]===void 0&&(nt[rt]=tt[rt])}),nt}function composeClasses(tt,et,nt=void 0){const rt={};return Object.keys(tt).forEach(it=>{rt[it]=tt[it].reduce((ot,at)=>{if(at){const st=et(at);st!==""&&ot.push(st),nt&&nt[at]&&ot.push(nt[at])}return ot},[]).join(" ")}),rt}const defaultGenerator=tt=>tt,createClassNameGenerator=()=>{let tt=defaultGenerator;return{configure(et){tt=et},generate(et){return tt(et)},reset(){tt=defaultGenerator}}},ClassNameGenerator=createClassNameGenerator(),ClassNameGenerator$1=ClassNameGenerator,globalStateClassesMapping={active:"active",checked:"checked",completed:"completed",disabled:"disabled",readOnly:"readOnly",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",required:"required",selected:"selected"};function generateUtilityClass(tt,et,nt="Mui"){const rt=globalStateClassesMapping[et];return rt?`${nt}-${rt}`:`${ClassNameGenerator$1.generate(tt)}-${et}`}function generateUtilityClasses(tt,et,nt="Mui"){const rt={};return et.forEach(it=>{rt[it]=generateUtilityClass(tt,it,nt)}),rt}const THEME_ID="$$material";function _objectWithoutPropertiesLoose$g(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function sheetForTag(tt){if(tt.sheet)return tt.sheet;for(var et=0;et0?charat(characters,--position):0,column--,character===10&&(column=1,line--),character}function next(){return character=position2||token$1(character)>3?"":" "}function escaping(tt,et){for(;--et&&next()&&!(character<48||character>102||character>57&&character<65||character>70&&character<97););return slice(tt,caret()+(et<6&&peek()==32&&next()==32))}function delimiter(tt){for(;next();)switch(character){case tt:return position;case 34:case 39:tt!==34&&tt!==39&&delimiter(character);break;case 40:tt===41&&delimiter(tt);break;case 92:next();break}return position}function commenter(tt,et){for(;next()&&tt+character!==47+10;)if(tt+character===42+42&&peek()===47)break;return"/*"+slice(et,position-1)+"*"+from$1(tt===47?tt:next())}function identifier$1(tt){for(;!token$1(peek());)next();return slice(tt,position)}function compile$1(tt){return dealloc(parse$3("",null,null,null,[""],tt=alloc(tt),0,[0],tt))}function parse$3(tt,et,nt,rt,it,ot,at,st,lt){for(var ct=0,ut=0,ht=at,dt=0,pt=0,mt=0,gt=1,yt=1,bt=1,wt=0,vt="",kt=it,St=ot,Tt=rt,At=vt;yt;)switch(mt=wt,wt=next()){case 40:if(mt!=108&&charat(At,ht-1)==58){indexof(At+=replace(delimit(wt),"&","&\f"),"&\f")!=-1&&(bt=-1);break}case 34:case 39:case 91:At+=delimit(wt);break;case 9:case 10:case 13:case 32:At+=whitespace(mt);break;case 92:At+=escaping(caret()-1,7);continue;case 47:switch(peek()){case 42:case 47:append$1(comment(commenter(next(),caret()),et,nt),lt);break;default:At+="/"}break;case 123*gt:st[ct++]=strlen(At)*bt;case 125*gt:case 59:case 0:switch(wt){case 0:case 125:yt=0;case 59+ut:bt==-1&&(At=replace(At,/\f/g,"")),pt>0&&strlen(At)-ht&&append$1(pt>32?declaration(At+";",rt,nt,ht-1):declaration(replace(At," ","")+";",rt,nt,ht-2),lt);break;case 59:At+=";";default:if(append$1(Tt=ruleset(At,et,nt,ct,ut,it,st,vt,kt=[],St=[],ht),ot),wt===123)if(ut===0)parse$3(At,et,Tt,Tt,kt,ot,ht,st,St);else switch(dt===99&&charat(At,3)===110?100:dt){case 100:case 108:case 109:case 115:parse$3(tt,Tt,Tt,rt&&append$1(ruleset(tt,Tt,Tt,0,0,it,st,vt,it,kt=[],ht),St),it,St,ht,st,rt?kt:St);break;default:parse$3(At,Tt,Tt,Tt,[""],St,0,st,St)}}ct=ut=pt=0,gt=bt=1,vt=At="",ht=at;break;case 58:ht=1+strlen(At),pt=mt;default:if(gt<1){if(wt==123)--gt;else if(wt==125&>++==0&&prev$1()==125)continue}switch(At+=from$1(wt),wt*gt){case 38:bt=ut>0?1:(At+="\f",-1);break;case 44:st[ct++]=(strlen(At)-1)*bt,bt=1;break;case 64:peek()===45&&(At+=delimit(next())),dt=peek(),ut=ht=strlen(vt=At+=identifier$1(caret())),wt++;break;case 45:mt===45&&strlen(At)==2&&(gt=0)}}return ot}function ruleset(tt,et,nt,rt,it,ot,at,st,lt,ct,ut){for(var ht=it-1,dt=it===0?ot:[""],pt=sizeof(dt),mt=0,gt=0,yt=0;mt0?dt[bt]+" "+wt:replace(wt,/&\f/g,dt[bt])))&&(lt[yt++]=vt);return node$2(tt,et,nt,it===0?RULESET:st,lt,ct,ut)}function comment(tt,et,nt){return node$2(tt,et,nt,COMMENT,from$1(char()),substr(tt,2,-2),0)}function declaration(tt,et,nt,rt){return node$2(tt,et,nt,DECLARATION,substr(tt,0,rt),substr(tt,rt+1,-1),rt)}function serialize(tt,et){for(var nt="",rt=sizeof(tt),it=0;it6)switch(charat(tt,et+1)){case 109:if(charat(tt,et+4)!==45)break;case 102:return replace(tt,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT+"$2-$3$1"+MOZ+(charat(tt,et+3)==108?"$3":"$2-$3"))+tt;case 115:return~indexof(tt,"stretch")?prefix(replace(tt,"stretch","fill-available"),et)+tt:tt}break;case 4949:if(charat(tt,et+1)!==115)break;case 6444:switch(charat(tt,strlen(tt)-3-(~indexof(tt,"!important")&&10))){case 107:return replace(tt,":",":"+WEBKIT)+tt;case 101:return replace(tt,/(.+:)([^;!]+)(;|!.+)?/,"$1"+WEBKIT+(charat(tt,14)===45?"inline-":"")+"box$3$1"+WEBKIT+"$2$3$1"+MS+"$2box$3")+tt}break;case 5936:switch(charat(tt,et+11)){case 114:return WEBKIT+tt+MS+replace(tt,/[svh]\w+-[tblr]{2}/,"tb")+tt;case 108:return WEBKIT+tt+MS+replace(tt,/[svh]\w+-[tblr]{2}/,"tb-rl")+tt;case 45:return WEBKIT+tt+MS+replace(tt,/[svh]\w+-[tblr]{2}/,"lr")+tt}return WEBKIT+tt+MS+tt+tt}return tt}var prefixer=function(et,nt,rt,it){if(et.length>-1&&!et.return)switch(et.type){case DECLARATION:et.return=prefix(et.value,et.length);break;case KEYFRAMES:return serialize([copy$3(et,{value:replace(et.value,"@","@"+WEBKIT)})],it);case RULESET:if(et.length)return combine$1(et.props,function(ot){switch(match(ot,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy$3(et,{props:[replace(ot,/:(read-\w+)/,":"+MOZ+"$1")]})],it);case"::placeholder":return serialize([copy$3(et,{props:[replace(ot,/:(plac\w+)/,":"+WEBKIT+"input-$1")]}),copy$3(et,{props:[replace(ot,/:(plac\w+)/,":"+MOZ+"$1")]}),copy$3(et,{props:[replace(ot,/:(plac\w+)/,MS+"input-$1")]})],it)}return""})}},defaultStylisPlugins=[prefixer],createCache=function(et){var nt=et.key;if(nt==="css"){var rt=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(rt,function(gt){var yt=gt.getAttribute("data-emotion");yt.indexOf(" ")!==-1&&(document.head.appendChild(gt),gt.setAttribute("data-s",""))})}var it=et.stylisPlugins||defaultStylisPlugins,ot={},at,st=[];at=et.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+nt+' "]'),function(gt){for(var yt=gt.getAttribute("data-emotion").split(" "),bt=1;bt=4;++rt,it-=4)nt=tt.charCodeAt(rt)&255|(tt.charCodeAt(++rt)&255)<<8|(tt.charCodeAt(++rt)&255)<<16|(tt.charCodeAt(++rt)&255)<<24,nt=(nt&65535)*1540483477+((nt>>>16)*59797<<16),nt^=nt>>>24,et=(nt&65535)*1540483477+((nt>>>16)*59797<<16)^(et&65535)*1540483477+((et>>>16)*59797<<16);switch(it){case 3:et^=(tt.charCodeAt(rt+2)&255)<<16;case 2:et^=(tt.charCodeAt(rt+1)&255)<<8;case 1:et^=tt.charCodeAt(rt)&255,et=(et&65535)*1540483477+((et>>>16)*59797<<16)}return et^=et>>>13,et=(et&65535)*1540483477+((et>>>16)*59797<<16),((et^et>>>15)>>>0).toString(36)}var unitlessKeys={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},hyphenateRegex=/[A-Z]|^ms/g,animationRegex=/_EMO_([^_]+?)_([^]*?)_EMO_/g,isCustomProperty=function(et){return et.charCodeAt(1)===45},isProcessableValue=function(et){return et!=null&&typeof et!="boolean"},processStyleName=memoize$4(function(tt){return isCustomProperty(tt)?tt:tt.replace(hyphenateRegex,"-$&").toLowerCase()}),processStyleValue=function(et,nt){switch(et){case"animation":case"animationName":if(typeof nt=="string")return nt.replace(animationRegex,function(rt,it,ot){return cursor={name:it,styles:ot,next:cursor},it})}return unitlessKeys[et]!==1&&!isCustomProperty(et)&&typeof nt=="number"&&nt!==0?nt+"px":nt},noComponentSelectorMessage="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function handleInterpolation(tt,et,nt){if(nt==null)return"";if(nt.__emotion_styles!==void 0)return nt;switch(typeof nt){case"boolean":return"";case"object":{if(nt.anim===1)return cursor={name:nt.name,styles:nt.styles,next:cursor},nt.name;if(nt.styles!==void 0){var rt=nt.next;if(rt!==void 0)for(;rt!==void 0;)cursor={name:rt.name,styles:rt.styles,next:cursor},rt=rt.next;var it=nt.styles+";";return it}return createStringFromObject(tt,et,nt)}case"function":{if(tt!==void 0){var ot=cursor,at=nt(tt);return cursor=ot,handleInterpolation(tt,et,at)}break}}if(et==null)return nt;var st=et[nt];return st!==void 0?st:nt}function createStringFromObject(tt,et,nt){var rt="";if(Array.isArray(nt))for(var it=0;it96?testOmitPropsOnStringTag:testOmitPropsOnComponent},composeShouldForwardProps=function(et,nt,rt){var it;if(nt){var ot=nt.shouldForwardProp;it=et.__emotion_forwardProp&&ot?function(at){return et.__emotion_forwardProp(at)&&ot(at)}:ot}return typeof it!="function"&&rt&&(it=et.__emotion_forwardProp),it},Insertion=function(et){var nt=et.cache,rt=et.serialized,it=et.isStringTag;return registerStyles(nt,rt,it),useInsertionEffectAlwaysWithSyncFallback(function(){return insertStyles(nt,rt,it)}),null},createStyled$1=function tt(et,nt){var rt=et.__emotion_real===et,it=rt&&et.__emotion_base||et,ot,at;nt!==void 0&&(ot=nt.label,at=nt.target);var st=composeShouldForwardProps(et,nt,rt),lt=st||getDefaultShouldForwardProp(it),ct=!lt("as");return function(){var ut=arguments,ht=rt&&et.__emotion_styles!==void 0?et.__emotion_styles.slice(0):[];if(ot!==void 0&&ht.push("label:"+ot+";"),ut[0]==null||ut[0].raw===void 0)ht.push.apply(ht,ut);else{ht.push(ut[0][0]);for(var dt=ut.length,pt=1;ptet(isEmpty$4(it)?nt:it):et;return jsxRuntimeExports.jsx(Global$1,{styles:rt})}/** +`}}}return ot}(this)},tt}(),Z=/(a)(d)/gi,K$5=function(tt){return String.fromCharCode(tt+(tt>25?39:97))};function Q(tt){var et,nt="";for(et=Math.abs(tt);et>52;et=et/52|0)nt=K$5(et%52)+nt;return(K$5(et%52)+nt).replace(Z,"$1-$2")}var ee=function(tt,et){for(var nt=et.length;nt;)tt=33*tt^et.charCodeAt(--nt);return tt},te=function(tt){return ee(5381,tt)};function ne(tt){for(var et=0;et>>0);if(!nt.hasNameForId(it,st)){var lt=rt(at,"."+st,void 0,it);nt.insertRules(it,st,lt)}ot.push(st),this.staticRulesId=st}else{for(var ct=this.rules.length,ut=ee(this.baseHash,rt.hash),ht="",dt=0;dt>>0);if(!nt.hasNameForId(it,yt)){var bt=rt(ht,"."+yt,void 0,it);nt.insertRules(it,yt,bt)}ot.push(yt)}}return ot.join(" ")},tt}(),se=/^\s*\/\/.*$/gm,ie=[":","[",".","#"];function ae(tt){var et,nt,rt,it,ot=tt===void 0?w$3:tt,at=ot.options,st=at===void 0?w$3:at,lt=ot.plugins,ct=lt===void 0?S:lt,ut=new stylis_min(st),ht=[],dt=function(gt){function yt(bt){if(bt)try{gt(bt+"}")}catch{}}return function(bt,wt,vt,kt,St,Et,At,Tt,Mt,Lt){switch(bt){case 1:if(Mt===0&&wt.charCodeAt(0)===64)return gt(wt+";"),"";break;case 2:if(Tt===0)return wt+"/*|*/";break;case 3:switch(Tt){case 102:case 112:return gt(vt[0]+wt),"";default:return wt+(Lt===0?"/*|*/":"")}case-2:wt.split("/*|*/}").forEach(yt)}}}(function(gt){ht.push(gt)}),pt=function(gt,yt,bt){return yt===0&&ie.indexOf(bt[nt.length])!==-1||bt.match(it)?gt:"."+et};function mt(gt,yt,bt,wt){wt===void 0&&(wt="&");var vt=gt.replace(se,""),kt=yt&&bt?bt+" "+yt+" { "+vt+" }":vt;return et=wt,nt=yt,rt=new RegExp("\\"+nt+"\\b","g"),it=new RegExp("(\\"+nt+"\\b){2,}"),ut(bt||!yt?"":yt,kt)}return ut.use([].concat(ct,[function(gt,yt,bt){gt===2&&bt.length&&bt[0].lastIndexOf(nt)>0&&(bt[0]=bt[0].replace(rt,pt))},dt,function(gt){if(gt===-2){var yt=ht;return ht=[],yt}}])),mt.hash=ct.length?ct.reduce(function(gt,yt){return yt.name||D(15),ee(gt,yt.name)},5381).toString():"",mt}var ce=React$1.createContext();ce.Consumer;var le=React$1.createContext(),de=(le.Consumer,new X),he=ae();function pe(){return reactExports.useContext(ce)||de}function fe(){return reactExports.useContext(le)||he}var ye=function(){function tt(et,nt){var rt=this;this.inject=function(it,ot){ot===void 0&&(ot=he);var at=rt.name+ot.hash;it.hasNameForId(rt.id,at)||it.insertRules(rt.id,at,ot(rt.rules,at,"@keyframes"))},this.toString=function(){return D(12,String(rt.name))},this.name=et,this.id="sc-keyframes-"+et,this.rules=nt}return tt.prototype.getName=function(et){return et===void 0&&(et=he),this.name+et.hash},tt}(),ve=/([A-Z])/,ge=/([A-Z])/g,Se=/^ms-/,we=function(tt){return"-"+tt.toLowerCase()};function Ee(tt){return ve.test(tt)?tt.replace(ge,we).replace(Se,"-ms-"):tt}var be=function(tt){return tt==null||tt===!1||tt===""};function _e(tt,et,nt,rt){if(Array.isArray(tt)){for(var it,ot=[],at=0,st=tt.length;at1?et-1:0),rt=1;rt?@[\\\]^`{|}~-]+/g,De=/(^-|-$)/g;function je(tt){return tt.replace(Re,"-").replace(De,"")}var Te=function(tt){return Q(te(tt)>>>0)};function xe(tt){return typeof tt=="string"&&!0}var ke=function(tt){return typeof tt=="function"||typeof tt=="object"&&tt!==null&&!Array.isArray(tt)},Ve=function(tt){return tt!=="__proto__"&&tt!=="constructor"&&tt!=="prototype"};function Be(tt,et,nt){var rt=tt[nt];ke(et)&&ke(rt)?ze(rt,et):tt[nt]=et}function ze(tt){for(var et=arguments.length,nt=new Array(et>1?et-1:0),rt=1;rt=0||(Lt[Tt]=Et[Tt]);return Lt}(et,["componentId"]),St=vt&&vt+"-"+(xe(wt)?wt:je(b$2(wt)));return Ye(wt,y$4({},kt,{attrs:dt,componentId:St}),nt)},Object.defineProperty(mt,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(wt){this._foldedDefaultProps=rt?ze({},tt.defaultProps,wt):wt}}),Object.defineProperty(mt,"toString",{value:function(){return"."+mt.styledComponentId}}),it&&hoistNonReactStatics$1(mt,tt,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),mt}var qe=function(tt){return function et(nt,rt,it){if(it===void 0&&(it=w$3),!reactIsExports$2.isValidElementType(rt))return D(1,String(rt));var ot=function(){return nt(rt,it,Ae.apply(void 0,arguments))};return ot.withConfig=function(at){return et(nt,rt,y$4({},it,{},at))},ot.attrs=function(at){return et(nt,rt,y$4({},it,{attrs:Array.prototype.concat(it.attrs,at).filter(Boolean)}))},ot}(Ye,tt)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(tt){qe[tt]=qe(tt)});var He=function(){function tt(nt,rt){this.rules=nt,this.componentId=rt,this.isStatic=ne(nt),X.registerId(this.componentId+1)}var et=tt.prototype;return et.createStyles=function(nt,rt,it,ot){var at=ot(_e(this.rules,rt,it,ot).join(""),""),st=this.componentId+nt;it.insertRules(st,st,at)},et.removeStyles=function(nt,rt){rt.clearRules(this.componentId+nt)},et.renderStyles=function(nt,rt,it,ot){nt>2&&X.registerId(this.componentId+nt),this.removeStyles(nt,it),this.createStyles(nt,rt,it,ot)},tt}();function $e(tt){for(var et=arguments.length,nt=new Array(et>1?et-1:0),rt=1;rt1?et-1:0),rt=1;rt{et[nt]=deepClone(tt[nt])}),et}function deepmerge$1(tt,et,nt={clone:!0}){const rt=nt.clone?_extends$r({},tt):tt;return isPlainObject(tt)&&isPlainObject(et)&&Object.keys(et).forEach(it=>{it!=="__proto__"&&(isPlainObject(et[it])&&it in tt&&isPlainObject(tt[it])?rt[it]=deepmerge$1(tt[it],et[it],nt):nt.clone?rt[it]=isPlainObject(et[it])?deepClone(et[it]):et[it]:rt[it]=et[it])}),rt}function formatMuiErrorMessage(tt){let et="https://mui.com/production-error/?code="+tt;for(let nt=1;ntnt==null?et:function(...it){et.apply(this,it),nt.apply(this,it)},()=>{})}function debounce$5(tt,et=166){let nt;function rt(...it){const ot=()=>{tt.apply(this,it)};clearTimeout(nt),nt=setTimeout(ot,et)}return rt.clear=()=>{clearTimeout(nt)},rt}function isMuiElement(tt,et){return reactExports.isValidElement(tt)&&et.indexOf(tt.type.muiName)!==-1}function ownerDocument(tt){return tt&&tt.ownerDocument||document}function ownerWindow(tt){return ownerDocument(tt).defaultView||window}function setRef(tt,et){typeof tt=="function"?tt(et):tt&&(tt.current=et)}const useEnhancedEffect=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,useEnhancedEffect$1=useEnhancedEffect;let globalId=0;function useGlobalId(tt){const[et,nt]=reactExports.useState(tt),rt=tt||et;return reactExports.useEffect(()=>{et==null&&(globalId+=1,nt(`mui-${globalId}`))},[et]),rt}const maybeReactUseId=React$2["useId".toString()];function useId(tt){if(maybeReactUseId!==void 0){const et=maybeReactUseId();return tt??et}return useGlobalId(tt)}function useControlled({controlled:tt,default:et,name:nt,state:rt="value"}){const{current:it}=reactExports.useRef(tt!==void 0),[ot,at]=reactExports.useState(et),st=it?tt:ot,lt=reactExports.useCallback(ct=>{it||at(ct)},[]);return[st,lt]}function useEventCallback(tt){const et=reactExports.useRef(tt);return useEnhancedEffect$1(()=>{et.current=tt}),reactExports.useCallback((...nt)=>(0,et.current)(...nt),[])}function useForkRef(...tt){return reactExports.useMemo(()=>tt.every(et=>et==null)?null:et=>{tt.forEach(nt=>{setRef(nt,et)})},tt)}let hadKeyboardEvent=!0,hadFocusVisibleRecently=!1,hadFocusVisibleRecentlyTimeout;const inputTypesWhitelist={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function focusTriggersKeyboardModality(tt){const{type:et,tagName:nt}=tt;return!!(nt==="INPUT"&&inputTypesWhitelist[et]&&!tt.readOnly||nt==="TEXTAREA"&&!tt.readOnly||tt.isContentEditable)}function handleKeyDown(tt){tt.metaKey||tt.altKey||tt.ctrlKey||(hadKeyboardEvent=!0)}function handlePointerDown(){hadKeyboardEvent=!1}function handleVisibilityChange(){this.visibilityState==="hidden"&&hadFocusVisibleRecently&&(hadKeyboardEvent=!0)}function prepare$1(tt){tt.addEventListener("keydown",handleKeyDown,!0),tt.addEventListener("mousedown",handlePointerDown,!0),tt.addEventListener("pointerdown",handlePointerDown,!0),tt.addEventListener("touchstart",handlePointerDown,!0),tt.addEventListener("visibilitychange",handleVisibilityChange,!0)}function isFocusVisible(tt){const{target:et}=tt;try{return et.matches(":focus-visible")}catch{}return hadKeyboardEvent||focusTriggersKeyboardModality(et)}function useIsFocusVisible(){const tt=reactExports.useCallback(it=>{it!=null&&prepare$1(it.ownerDocument)},[]),et=reactExports.useRef(!1);function nt(){return et.current?(hadFocusVisibleRecently=!0,window.clearTimeout(hadFocusVisibleRecentlyTimeout),hadFocusVisibleRecentlyTimeout=window.setTimeout(()=>{hadFocusVisibleRecently=!1},100),et.current=!1,!0):!1}function rt(it){return isFocusVisible(it)?(et.current=!0,!0):!1}return{isFocusVisibleRef:et,onFocus:rt,onBlur:nt,ref:tt}}function getScrollbarSize(tt){const et=tt.documentElement.clientWidth;return Math.abs(window.innerWidth-et)}let cachedType;function detectScrollType(){if(cachedType)return cachedType;const tt=document.createElement("div"),et=document.createElement("div");return et.style.width="10px",et.style.height="1px",tt.appendChild(et),tt.dir="rtl",tt.style.fontSize="14px",tt.style.width="4px",tt.style.height="1px",tt.style.position="absolute",tt.style.top="-1000px",tt.style.overflow="scroll",document.body.appendChild(tt),cachedType="reverse",tt.scrollLeft>0?cachedType="default":(tt.scrollLeft=1,tt.scrollLeft===0&&(cachedType="negative")),document.body.removeChild(tt),cachedType}function getNormalizedScrollLeft(tt,et){const nt=tt.scrollLeft;if(et!=="rtl")return nt;switch(detectScrollType()){case"negative":return tt.scrollWidth-tt.clientWidth+nt;case"reverse":return tt.scrollWidth-tt.clientWidth-nt;default:return nt}}const visuallyHidden={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:-1,overflow:"hidden",padding:0,position:"absolute",whiteSpace:"nowrap",width:"1px"},visuallyHidden$1=visuallyHidden;function resolveProps(tt,et){const nt=_extends$r({},et);return Object.keys(tt).forEach(rt=>{if(rt.toString().match(/^(components|slots)$/))nt[rt]=_extends$r({},tt[rt],nt[rt]);else if(rt.toString().match(/^(componentsProps|slotProps)$/)){const it=tt[rt]||{},ot=et[rt];nt[rt]={},!ot||!Object.keys(ot)?nt[rt]=it:!it||!Object.keys(it)?nt[rt]=ot:(nt[rt]=_extends$r({},ot),Object.keys(it).forEach(at=>{nt[rt][at]=resolveProps(it[at],ot[at])}))}else nt[rt]===void 0&&(nt[rt]=tt[rt])}),nt}function composeClasses(tt,et,nt=void 0){const rt={};return Object.keys(tt).forEach(it=>{rt[it]=tt[it].reduce((ot,at)=>{if(at){const st=et(at);st!==""&&ot.push(st),nt&&nt[at]&&ot.push(nt[at])}return ot},[]).join(" ")}),rt}const defaultGenerator=tt=>tt,createClassNameGenerator=()=>{let tt=defaultGenerator;return{configure(et){tt=et},generate(et){return tt(et)},reset(){tt=defaultGenerator}}},ClassNameGenerator=createClassNameGenerator(),ClassNameGenerator$1=ClassNameGenerator,globalStateClassesMapping={active:"active",checked:"checked",completed:"completed",disabled:"disabled",readOnly:"readOnly",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",required:"required",selected:"selected"};function generateUtilityClass(tt,et,nt="Mui"){const rt=globalStateClassesMapping[et];return rt?`${nt}-${rt}`:`${ClassNameGenerator$1.generate(tt)}-${et}`}function generateUtilityClasses(tt,et,nt="Mui"){const rt={};return et.forEach(it=>{rt[it]=generateUtilityClass(tt,it,nt)}),rt}const THEME_ID="$$material";function _objectWithoutPropertiesLoose$g(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function sheetForTag(tt){if(tt.sheet)return tt.sheet;for(var et=0;et0?charat(characters,--position):0,column--,character===10&&(column=1,line--),character}function next(){return character=position2||token$1(character)>3?"":" "}function escaping(tt,et){for(;--et&&next()&&!(character<48||character>102||character>57&&character<65||character>70&&character<97););return slice(tt,caret()+(et<6&&peek()==32&&next()==32))}function delimiter(tt){for(;next();)switch(character){case tt:return position;case 34:case 39:tt!==34&&tt!==39&&delimiter(character);break;case 40:tt===41&&delimiter(tt);break;case 92:next();break}return position}function commenter(tt,et){for(;next()&&tt+character!==47+10;)if(tt+character===42+42&&peek()===47)break;return"/*"+slice(et,position-1)+"*"+from$1(tt===47?tt:next())}function identifier$1(tt){for(;!token$1(peek());)next();return slice(tt,position)}function compile$1(tt){return dealloc(parse$3("",null,null,null,[""],tt=alloc(tt),0,[0],tt))}function parse$3(tt,et,nt,rt,it,ot,at,st,lt){for(var ct=0,ut=0,ht=at,dt=0,pt=0,mt=0,gt=1,yt=1,bt=1,wt=0,vt="",kt=it,St=ot,Et=rt,At=vt;yt;)switch(mt=wt,wt=next()){case 40:if(mt!=108&&charat(At,ht-1)==58){indexof(At+=replace(delimit(wt),"&","&\f"),"&\f")!=-1&&(bt=-1);break}case 34:case 39:case 91:At+=delimit(wt);break;case 9:case 10:case 13:case 32:At+=whitespace(mt);break;case 92:At+=escaping(caret()-1,7);continue;case 47:switch(peek()){case 42:case 47:append$1(comment(commenter(next(),caret()),et,nt),lt);break;default:At+="/"}break;case 123*gt:st[ct++]=strlen(At)*bt;case 125*gt:case 59:case 0:switch(wt){case 0:case 125:yt=0;case 59+ut:bt==-1&&(At=replace(At,/\f/g,"")),pt>0&&strlen(At)-ht&&append$1(pt>32?declaration(At+";",rt,nt,ht-1):declaration(replace(At," ","")+";",rt,nt,ht-2),lt);break;case 59:At+=";";default:if(append$1(Et=ruleset(At,et,nt,ct,ut,it,st,vt,kt=[],St=[],ht),ot),wt===123)if(ut===0)parse$3(At,et,Et,Et,kt,ot,ht,st,St);else switch(dt===99&&charat(At,3)===110?100:dt){case 100:case 108:case 109:case 115:parse$3(tt,Et,Et,rt&&append$1(ruleset(tt,Et,Et,0,0,it,st,vt,it,kt=[],ht),St),it,St,ht,st,rt?kt:St);break;default:parse$3(At,Et,Et,Et,[""],St,0,st,St)}}ct=ut=pt=0,gt=bt=1,vt=At="",ht=at;break;case 58:ht=1+strlen(At),pt=mt;default:if(gt<1){if(wt==123)--gt;else if(wt==125&>++==0&&prev$1()==125)continue}switch(At+=from$1(wt),wt*gt){case 38:bt=ut>0?1:(At+="\f",-1);break;case 44:st[ct++]=(strlen(At)-1)*bt,bt=1;break;case 64:peek()===45&&(At+=delimit(next())),dt=peek(),ut=ht=strlen(vt=At+=identifier$1(caret())),wt++;break;case 45:mt===45&&strlen(At)==2&&(gt=0)}}return ot}function ruleset(tt,et,nt,rt,it,ot,at,st,lt,ct,ut){for(var ht=it-1,dt=it===0?ot:[""],pt=sizeof(dt),mt=0,gt=0,yt=0;mt0?dt[bt]+" "+wt:replace(wt,/&\f/g,dt[bt])))&&(lt[yt++]=vt);return node$2(tt,et,nt,it===0?RULESET:st,lt,ct,ut)}function comment(tt,et,nt){return node$2(tt,et,nt,COMMENT,from$1(char()),substr(tt,2,-2),0)}function declaration(tt,et,nt,rt){return node$2(tt,et,nt,DECLARATION,substr(tt,0,rt),substr(tt,rt+1,-1),rt)}function serialize(tt,et){for(var nt="",rt=sizeof(tt),it=0;it6)switch(charat(tt,et+1)){case 109:if(charat(tt,et+4)!==45)break;case 102:return replace(tt,/(.+:)(.+)-([^]+)/,"$1"+WEBKIT+"$2-$3$1"+MOZ+(charat(tt,et+3)==108?"$3":"$2-$3"))+tt;case 115:return~indexof(tt,"stretch")?prefix(replace(tt,"stretch","fill-available"),et)+tt:tt}break;case 4949:if(charat(tt,et+1)!==115)break;case 6444:switch(charat(tt,strlen(tt)-3-(~indexof(tt,"!important")&&10))){case 107:return replace(tt,":",":"+WEBKIT)+tt;case 101:return replace(tt,/(.+:)([^;!]+)(;|!.+)?/,"$1"+WEBKIT+(charat(tt,14)===45?"inline-":"")+"box$3$1"+WEBKIT+"$2$3$1"+MS+"$2box$3")+tt}break;case 5936:switch(charat(tt,et+11)){case 114:return WEBKIT+tt+MS+replace(tt,/[svh]\w+-[tblr]{2}/,"tb")+tt;case 108:return WEBKIT+tt+MS+replace(tt,/[svh]\w+-[tblr]{2}/,"tb-rl")+tt;case 45:return WEBKIT+tt+MS+replace(tt,/[svh]\w+-[tblr]{2}/,"lr")+tt}return WEBKIT+tt+MS+tt+tt}return tt}var prefixer=function(et,nt,rt,it){if(et.length>-1&&!et.return)switch(et.type){case DECLARATION:et.return=prefix(et.value,et.length);break;case KEYFRAMES:return serialize([copy$3(et,{value:replace(et.value,"@","@"+WEBKIT)})],it);case RULESET:if(et.length)return combine$1(et.props,function(ot){switch(match(ot,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy$3(et,{props:[replace(ot,/:(read-\w+)/,":"+MOZ+"$1")]})],it);case"::placeholder":return serialize([copy$3(et,{props:[replace(ot,/:(plac\w+)/,":"+WEBKIT+"input-$1")]}),copy$3(et,{props:[replace(ot,/:(plac\w+)/,":"+MOZ+"$1")]}),copy$3(et,{props:[replace(ot,/:(plac\w+)/,MS+"input-$1")]})],it)}return""})}},defaultStylisPlugins=[prefixer],createCache=function(et){var nt=et.key;if(nt==="css"){var rt=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(rt,function(gt){var yt=gt.getAttribute("data-emotion");yt.indexOf(" ")!==-1&&(document.head.appendChild(gt),gt.setAttribute("data-s",""))})}var it=et.stylisPlugins||defaultStylisPlugins,ot={},at,st=[];at=et.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+nt+' "]'),function(gt){for(var yt=gt.getAttribute("data-emotion").split(" "),bt=1;bt=4;++rt,it-=4)nt=tt.charCodeAt(rt)&255|(tt.charCodeAt(++rt)&255)<<8|(tt.charCodeAt(++rt)&255)<<16|(tt.charCodeAt(++rt)&255)<<24,nt=(nt&65535)*1540483477+((nt>>>16)*59797<<16),nt^=nt>>>24,et=(nt&65535)*1540483477+((nt>>>16)*59797<<16)^(et&65535)*1540483477+((et>>>16)*59797<<16);switch(it){case 3:et^=(tt.charCodeAt(rt+2)&255)<<16;case 2:et^=(tt.charCodeAt(rt+1)&255)<<8;case 1:et^=tt.charCodeAt(rt)&255,et=(et&65535)*1540483477+((et>>>16)*59797<<16)}return et^=et>>>13,et=(et&65535)*1540483477+((et>>>16)*59797<<16),((et^et>>>15)>>>0).toString(36)}var unitlessKeys={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},hyphenateRegex=/[A-Z]|^ms/g,animationRegex=/_EMO_([^_]+?)_([^]*?)_EMO_/g,isCustomProperty=function(et){return et.charCodeAt(1)===45},isProcessableValue=function(et){return et!=null&&typeof et!="boolean"},processStyleName=memoize$4(function(tt){return isCustomProperty(tt)?tt:tt.replace(hyphenateRegex,"-$&").toLowerCase()}),processStyleValue=function(et,nt){switch(et){case"animation":case"animationName":if(typeof nt=="string")return nt.replace(animationRegex,function(rt,it,ot){return cursor={name:it,styles:ot,next:cursor},it})}return unitlessKeys[et]!==1&&!isCustomProperty(et)&&typeof nt=="number"&&nt!==0?nt+"px":nt},noComponentSelectorMessage="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function handleInterpolation(tt,et,nt){if(nt==null)return"";if(nt.__emotion_styles!==void 0)return nt;switch(typeof nt){case"boolean":return"";case"object":{if(nt.anim===1)return cursor={name:nt.name,styles:nt.styles,next:cursor},nt.name;if(nt.styles!==void 0){var rt=nt.next;if(rt!==void 0)for(;rt!==void 0;)cursor={name:rt.name,styles:rt.styles,next:cursor},rt=rt.next;var it=nt.styles+";";return it}return createStringFromObject(tt,et,nt)}case"function":{if(tt!==void 0){var ot=cursor,at=nt(tt);return cursor=ot,handleInterpolation(tt,et,at)}break}}if(et==null)return nt;var st=et[nt];return st!==void 0?st:nt}function createStringFromObject(tt,et,nt){var rt="";if(Array.isArray(nt))for(var it=0;it96?testOmitPropsOnStringTag:testOmitPropsOnComponent},composeShouldForwardProps=function(et,nt,rt){var it;if(nt){var ot=nt.shouldForwardProp;it=et.__emotion_forwardProp&&ot?function(at){return et.__emotion_forwardProp(at)&&ot(at)}:ot}return typeof it!="function"&&rt&&(it=et.__emotion_forwardProp),it},Insertion=function(et){var nt=et.cache,rt=et.serialized,it=et.isStringTag;return registerStyles(nt,rt,it),useInsertionEffectAlwaysWithSyncFallback(function(){return insertStyles(nt,rt,it)}),null},createStyled$1=function tt(et,nt){var rt=et.__emotion_real===et,it=rt&&et.__emotion_base||et,ot,at;nt!==void 0&&(ot=nt.label,at=nt.target);var st=composeShouldForwardProps(et,nt,rt),lt=st||getDefaultShouldForwardProp(it),ct=!lt("as");return function(){var ut=arguments,ht=rt&&et.__emotion_styles!==void 0?et.__emotion_styles.slice(0):[];if(ot!==void 0&&ht.push("label:"+ot+";"),ut[0]==null||ut[0].raw===void 0)ht.push.apply(ht,ut);else{ht.push(ut[0][0]);for(var dt=ut.length,pt=1;ptet(isEmpty$4(it)?nt:it):et;return jsxRuntimeExports.jsx(Global$1,{styles:rt})}/** * @mui/styled-engine v5.13.2 * * @license MIT * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function styled$3(tt,et){return newStyled(tt,et)}const internal_processStyles=(tt,et)=>{Array.isArray(tt.__emotion_styles)&&(tt.__emotion_styles=et(tt.__emotion_styles))},_excluded$1C=["values","unit","step"],sortBreakpointsValues=tt=>{const et=Object.keys(tt).map(nt=>({key:nt,val:tt[nt]}))||[];return et.sort((nt,rt)=>nt.val-rt.val),et.reduce((nt,rt)=>_extends$r({},nt,{[rt.key]:rt.val}),{})};function createBreakpoints(tt){const{values:et={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:nt="px",step:rt=5}=tt,it=_objectWithoutPropertiesLoose$g(tt,_excluded$1C),ot=sortBreakpointsValues(et),at=Object.keys(ot);function st(dt){return`@media (min-width:${typeof et[dt]=="number"?et[dt]:dt}${nt})`}function lt(dt){return`@media (max-width:${(typeof et[dt]=="number"?et[dt]:dt)-rt/100}${nt})`}function ct(dt,pt){const mt=at.indexOf(pt);return`@media (min-width:${typeof et[dt]=="number"?et[dt]:dt}${nt}) and (max-width:${(mt!==-1&&typeof et[at[mt]]=="number"?et[at[mt]]:pt)-rt/100}${nt})`}function ut(dt){return at.indexOf(dt)+1`@media (min-width:${values$1[tt]}px)`};function handleBreakpoints(tt,et,nt){const rt=tt.theme||{};if(Array.isArray(et)){const ot=rt.breakpoints||defaultBreakpoints;return et.reduce((at,st,lt)=>(at[ot.up(ot.keys[lt])]=nt(et[lt]),at),{})}if(typeof et=="object"){const ot=rt.breakpoints||defaultBreakpoints;return Object.keys(et).reduce((at,st)=>{if(Object.keys(ot.values||values$1).indexOf(st)!==-1){const lt=ot.up(st);at[lt]=nt(et[st],st)}else{const lt=st;at[lt]=et[lt]}return at},{})}return nt(et)}function createEmptyBreakpointObject(tt={}){var et;return((et=tt.keys)==null?void 0:et.reduce((rt,it)=>{const ot=tt.up(it);return rt[ot]={},rt},{}))||{}}function removeUnusedBreakpoints(tt,et){return tt.reduce((nt,rt)=>{const it=nt[rt];return(!it||Object.keys(it).length===0)&&delete nt[rt],nt},et)}function mergeBreakpointsInOrder(tt,...et){const nt=createEmptyBreakpointObject(tt),rt=[nt,...et].reduce((it,ot)=>deepmerge$1(it,ot),{});return removeUnusedBreakpoints(Object.keys(nt),rt)}function computeBreakpointsBase(tt,et){if(typeof tt!="object")return{};const nt={},rt=Object.keys(et);return Array.isArray(tt)?rt.forEach((it,ot)=>{ot{tt[it]!=null&&(nt[it]=!0)}),nt}function resolveBreakpointValues({values:tt,breakpoints:et,base:nt}){const rt=nt||computeBreakpointsBase(tt,et),it=Object.keys(rt);if(it.length===0)return tt;let ot;return it.reduce((at,st,lt)=>(Array.isArray(tt)?(at[st]=tt[lt]!=null?tt[lt]:tt[ot],ot=lt):typeof tt=="object"?(at[st]=tt[st]!=null?tt[st]:tt[ot],ot=st):at[st]=tt,at),{})}function getPath$2(tt,et,nt=!0){if(!et||typeof et!="string")return null;if(tt&&tt.vars&&nt){const rt=`vars.${et}`.split(".").reduce((it,ot)=>it&&it[ot]?it[ot]:null,tt);if(rt!=null)return rt}return et.split(".").reduce((rt,it)=>rt&&rt[it]!=null?rt[it]:null,tt)}function getStyleValue$1(tt,et,nt,rt=nt){let it;return typeof tt=="function"?it=tt(nt):Array.isArray(tt)?it=tt[nt]||rt:it=getPath$2(tt,nt)||rt,et&&(it=et(it,rt,tt)),it}function style$3(tt){const{prop:et,cssProperty:nt=tt.prop,themeKey:rt,transform:it}=tt,ot=at=>{if(at[et]==null)return null;const st=at[et],lt=at.theme,ct=getPath$2(lt,rt)||{};return handleBreakpoints(at,st,ht=>{let dt=getStyleValue$1(ct,it,ht);return ht===dt&&typeof ht=="string"&&(dt=getStyleValue$1(ct,it,`${et}${ht==="default"?"":capitalize(ht)}`,ht)),nt===!1?dt:{[nt]:dt}})};return ot.propTypes={},ot.filterProps=[et],ot}function memoize$3(tt){const et={};return nt=>(et[nt]===void 0&&(et[nt]=tt(nt)),et[nt])}const properties={m:"margin",p:"padding"},directions={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},aliases$1={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},getCssProperties=memoize$3(tt=>{if(tt.length>2)if(aliases$1[tt])tt=aliases$1[tt];else return[tt];const[et,nt]=tt.split(""),rt=properties[et],it=directions[nt]||"";return Array.isArray(it)?it.map(ot=>rt+ot):[rt+it]}),marginKeys=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],paddingKeys=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...marginKeys,...paddingKeys];function createUnaryUnit(tt,et,nt,rt){var it;const ot=(it=getPath$2(tt,et,!1))!=null?it:nt;return typeof ot=="number"?at=>typeof at=="string"?at:ot*at:Array.isArray(ot)?at=>typeof at=="string"?at:ot[at]:typeof ot=="function"?ot:()=>{}}function createUnarySpacing(tt){return createUnaryUnit(tt,"spacing",8)}function getValue$3(tt,et){if(typeof et=="string"||et==null)return et;const nt=Math.abs(et),rt=tt(nt);return et>=0?rt:typeof rt=="number"?-rt:`-${rt}`}function getStyleFromPropValue(tt,et){return nt=>tt.reduce((rt,it)=>(rt[it]=getValue$3(et,nt),rt),{})}function resolveCssProperty(tt,et,nt,rt){if(et.indexOf(nt)===-1)return null;const it=getCssProperties(nt),ot=getStyleFromPropValue(it,rt),at=tt[nt];return handleBreakpoints(tt,at,ot)}function style$2(tt,et){const nt=createUnarySpacing(tt.theme);return Object.keys(tt).map(rt=>resolveCssProperty(tt,et,rt,nt)).reduce(merge,{})}function margin(tt){return style$2(tt,marginKeys)}margin.propTypes={};margin.filterProps=marginKeys;function padding$2(tt){return style$2(tt,paddingKeys)}padding$2.propTypes={};padding$2.filterProps=paddingKeys;function createSpacing(tt=8){if(tt.mui)return tt;const et=createUnarySpacing({spacing:tt}),nt=(...rt)=>(rt.length===0?[1]:rt).map(ot=>{const at=et(ot);return typeof at=="number"?`${at}px`:at}).join(" ");return nt.mui=!0,nt}function compose$1(...tt){const et=tt.reduce((rt,it)=>(it.filterProps.forEach(ot=>{rt[ot]=it}),rt),{}),nt=rt=>Object.keys(rt).reduce((it,ot)=>et[ot]?merge(it,et[ot](rt)):it,{});return nt.propTypes={},nt.filterProps=tt.reduce((rt,it)=>rt.concat(it.filterProps),[]),nt}function borderTransform(tt){return typeof tt!="number"?tt:`${tt}px solid`}const border$1=style$3({prop:"border",themeKey:"borders",transform:borderTransform}),borderTop=style$3({prop:"borderTop",themeKey:"borders",transform:borderTransform}),borderRight=style$3({prop:"borderRight",themeKey:"borders",transform:borderTransform}),borderBottom=style$3({prop:"borderBottom",themeKey:"borders",transform:borderTransform}),borderLeft=style$3({prop:"borderLeft",themeKey:"borders",transform:borderTransform}),borderColor=style$3({prop:"borderColor",themeKey:"palette"}),borderTopColor=style$3({prop:"borderTopColor",themeKey:"palette"}),borderRightColor=style$3({prop:"borderRightColor",themeKey:"palette"}),borderBottomColor=style$3({prop:"borderBottomColor",themeKey:"palette"}),borderLeftColor=style$3({prop:"borderLeftColor",themeKey:"palette"}),borderRadius=tt=>{if(tt.borderRadius!==void 0&&tt.borderRadius!==null){const et=createUnaryUnit(tt.theme,"shape.borderRadius",4),nt=rt=>({borderRadius:getValue$3(et,rt)});return handleBreakpoints(tt,tt.borderRadius,nt)}return null};borderRadius.propTypes={};borderRadius.filterProps=["borderRadius"];compose$1(border$1,borderTop,borderRight,borderBottom,borderLeft,borderColor,borderTopColor,borderRightColor,borderBottomColor,borderLeftColor,borderRadius);const gap=tt=>{if(tt.gap!==void 0&&tt.gap!==null){const et=createUnaryUnit(tt.theme,"spacing",8),nt=rt=>({gap:getValue$3(et,rt)});return handleBreakpoints(tt,tt.gap,nt)}return null};gap.propTypes={};gap.filterProps=["gap"];const columnGap=tt=>{if(tt.columnGap!==void 0&&tt.columnGap!==null){const et=createUnaryUnit(tt.theme,"spacing",8),nt=rt=>({columnGap:getValue$3(et,rt)});return handleBreakpoints(tt,tt.columnGap,nt)}return null};columnGap.propTypes={};columnGap.filterProps=["columnGap"];const rowGap=tt=>{if(tt.rowGap!==void 0&&tt.rowGap!==null){const et=createUnaryUnit(tt.theme,"spacing",8),nt=rt=>({rowGap:getValue$3(et,rt)});return handleBreakpoints(tt,tt.rowGap,nt)}return null};rowGap.propTypes={};rowGap.filterProps=["rowGap"];const gridColumn=style$3({prop:"gridColumn"}),gridRow=style$3({prop:"gridRow"}),gridAutoFlow=style$3({prop:"gridAutoFlow"}),gridAutoColumns=style$3({prop:"gridAutoColumns"}),gridAutoRows=style$3({prop:"gridAutoRows"}),gridTemplateColumns=style$3({prop:"gridTemplateColumns"}),gridTemplateRows=style$3({prop:"gridTemplateRows"}),gridTemplateAreas=style$3({prop:"gridTemplateAreas"}),gridArea=style$3({prop:"gridArea"});compose$1(gap,columnGap,rowGap,gridColumn,gridRow,gridAutoFlow,gridAutoColumns,gridAutoRows,gridTemplateColumns,gridTemplateRows,gridTemplateAreas,gridArea);function paletteTransform(tt,et){return et==="grey"?et:tt}const color$2=style$3({prop:"color",themeKey:"palette",transform:paletteTransform}),bgcolor=style$3({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:paletteTransform}),backgroundColor$1=style$3({prop:"backgroundColor",themeKey:"palette",transform:paletteTransform});compose$1(color$2,bgcolor,backgroundColor$1);function sizingTransform(tt){return tt<=1&&tt!==0?`${tt*100}%`:tt}const width=style$3({prop:"width",transform:sizingTransform}),maxWidth=tt=>{if(tt.maxWidth!==void 0&&tt.maxWidth!==null){const et=nt=>{var rt;return{maxWidth:((rt=tt.theme)==null||(rt=rt.breakpoints)==null||(rt=rt.values)==null?void 0:rt[nt])||values$1[nt]||sizingTransform(nt)}};return handleBreakpoints(tt,tt.maxWidth,et)}return null};maxWidth.filterProps=["maxWidth"];const minWidth=style$3({prop:"minWidth",transform:sizingTransform}),height=style$3({prop:"height",transform:sizingTransform}),maxHeight=style$3({prop:"maxHeight",transform:sizingTransform}),minHeight=style$3({prop:"minHeight",transform:sizingTransform});style$3({prop:"size",cssProperty:"width",transform:sizingTransform});style$3({prop:"size",cssProperty:"height",transform:sizingTransform});const boxSizing=style$3({prop:"boxSizing"});compose$1(width,maxWidth,minWidth,height,maxHeight,minHeight,boxSizing);const defaultSxConfig={border:{themeKey:"borders",transform:borderTransform},borderTop:{themeKey:"borders",transform:borderTransform},borderRight:{themeKey:"borders",transform:borderTransform},borderBottom:{themeKey:"borders",transform:borderTransform},borderLeft:{themeKey:"borders",transform:borderTransform},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:borderRadius},color:{themeKey:"palette",transform:paletteTransform},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:paletteTransform},backgroundColor:{themeKey:"palette",transform:paletteTransform},p:{style:padding$2},pt:{style:padding$2},pr:{style:padding$2},pb:{style:padding$2},pl:{style:padding$2},px:{style:padding$2},py:{style:padding$2},padding:{style:padding$2},paddingTop:{style:padding$2},paddingRight:{style:padding$2},paddingBottom:{style:padding$2},paddingLeft:{style:padding$2},paddingX:{style:padding$2},paddingY:{style:padding$2},paddingInline:{style:padding$2},paddingInlineStart:{style:padding$2},paddingInlineEnd:{style:padding$2},paddingBlock:{style:padding$2},paddingBlockStart:{style:padding$2},paddingBlockEnd:{style:padding$2},m:{style:margin},mt:{style:margin},mr:{style:margin},mb:{style:margin},ml:{style:margin},mx:{style:margin},my:{style:margin},margin:{style:margin},marginTop:{style:margin},marginRight:{style:margin},marginBottom:{style:margin},marginLeft:{style:margin},marginX:{style:margin},marginY:{style:margin},marginInline:{style:margin},marginInlineStart:{style:margin},marginInlineEnd:{style:margin},marginBlock:{style:margin},marginBlockStart:{style:margin},marginBlockEnd:{style:margin},displayPrint:{cssProperty:!1,transform:tt=>({"@media print":{display:tt}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:gap},rowGap:{style:rowGap},columnGap:{style:columnGap},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:sizingTransform},maxWidth:{style:maxWidth},minWidth:{transform:sizingTransform},height:{transform:sizingTransform},maxHeight:{transform:sizingTransform},minHeight:{transform:sizingTransform},boxSizing:{},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}},defaultSxConfig$1=defaultSxConfig;function objectsHaveSameKeys(...tt){const et=tt.reduce((rt,it)=>rt.concat(Object.keys(it)),[]),nt=new Set(et);return tt.every(rt=>nt.size===Object.keys(rt).length)}function callIfFn(tt,et){return typeof tt=="function"?tt(et):tt}function unstable_createStyleFunctionSx(){function tt(nt,rt,it,ot){const at={[nt]:rt,theme:it},st=ot[nt];if(!st)return{[nt]:rt};const{cssProperty:lt=nt,themeKey:ct,transform:ut,style:ht}=st;if(rt==null)return null;if(ct==="typography"&&rt==="inherit")return{[nt]:rt};const dt=getPath$2(it,ct)||{};return ht?ht(at):handleBreakpoints(at,rt,mt=>{let gt=getStyleValue$1(dt,ut,mt);return mt===gt&&typeof mt=="string"&&(gt=getStyleValue$1(dt,ut,`${nt}${mt==="default"?"":capitalize(mt)}`,mt)),lt===!1?gt:{[lt]:gt}})}function et(nt){var rt;const{sx:it,theme:ot={}}=nt||{};if(!it)return null;const at=(rt=ot.unstable_sxConfig)!=null?rt:defaultSxConfig$1;function st(lt){let ct=lt;if(typeof lt=="function")ct=lt(ot);else if(typeof lt!="object")return lt;if(!ct)return null;const ut=createEmptyBreakpointObject(ot.breakpoints),ht=Object.keys(ut);let dt=ut;return Object.keys(ct).forEach(pt=>{const mt=callIfFn(ct[pt],ot);if(mt!=null)if(typeof mt=="object")if(at[pt])dt=merge(dt,tt(pt,mt,ot,at));else{const gt=handleBreakpoints({theme:ot},mt,yt=>({[pt]:yt}));objectsHaveSameKeys(gt,mt)?dt[pt]=et({sx:mt,theme:ot}):dt=merge(dt,gt)}else dt=merge(dt,tt(pt,mt,ot,at))}),removeUnusedBreakpoints(ht,dt)}return Array.isArray(it)?it.map(st):st(it)}return et}const styleFunctionSx=unstable_createStyleFunctionSx();styleFunctionSx.filterProps=["sx"];const styleFunctionSx$1=styleFunctionSx,_excluded$1B=["breakpoints","palette","spacing","shape"];function createTheme$1(tt={},...et){const{breakpoints:nt={},palette:rt={},spacing:it,shape:ot={}}=tt,at=_objectWithoutPropertiesLoose$g(tt,_excluded$1B),st=createBreakpoints(nt),lt=createSpacing(it);let ct=deepmerge$1({breakpoints:st,direction:"ltr",components:{},palette:_extends$r({mode:"light"},rt),spacing:lt,shape:_extends$r({},shape$2,ot)},at);return ct=et.reduce((ut,ht)=>deepmerge$1(ut,ht),ct),ct.unstable_sxConfig=_extends$r({},defaultSxConfig$1,at==null?void 0:at.unstable_sxConfig),ct.unstable_sx=function(ht){return styleFunctionSx$1({sx:ht,theme:this})},ct}function isObjectEmpty$1(tt){return Object.keys(tt).length===0}function useTheme$3(tt=null){const et=reactExports.useContext(ThemeContext$2);return!et||isObjectEmpty$1(et)?tt:et}const systemDefaultTheme$1=createTheme$1();function useTheme$2(tt=systemDefaultTheme$1){return useTheme$3(tt)}function GlobalStyles$1({styles:tt,themeId:et,defaultTheme:nt={}}){const rt=useTheme$2(nt),it=typeof tt=="function"?tt(et&&rt[et]||rt):tt;return jsxRuntimeExports.jsx(GlobalStyles$2,{styles:it})}const _excluded$1A=["sx"],splitProps=tt=>{var et,nt;const rt={systemProps:{},otherProps:{}},it=(et=tt==null||(nt=tt.theme)==null?void 0:nt.unstable_sxConfig)!=null?et:defaultSxConfig$1;return Object.keys(tt).forEach(ot=>{it[ot]?rt.systemProps[ot]=tt[ot]:rt.otherProps[ot]=tt[ot]}),rt};function extendSxProp(tt){const{sx:et}=tt,nt=_objectWithoutPropertiesLoose$g(tt,_excluded$1A),{systemProps:rt,otherProps:it}=splitProps(nt);let ot;return Array.isArray(et)?ot=[rt,...et]:typeof et=="function"?ot=(...at)=>{const st=et(...at);return isPlainObject(st)?_extends$r({},rt,st):rt}:ot=_extends$r({},rt,et),_extends$r({},it,{sx:ot})}function r$5(tt){var et,nt,rt="";if(typeof tt=="string"||typeof tt=="number")rt+=tt;else if(typeof tt=="object")if(Array.isArray(tt))for(et=0;et{it==="color"?rt+=isEmpty$3(rt)?tt[it]:capitalize(tt[it]):rt+=`${isEmpty$3(rt)?it:capitalize(it)}${capitalize(tt[it].toString())}`}),rt}const _excluded$1y=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function isEmpty$2(tt){return Object.keys(tt).length===0}function isStringTag(tt){return typeof tt=="string"&&tt.charCodeAt(0)>96}const getStyleOverrides=(tt,et)=>et.components&&et.components[tt]&&et.components[tt].styleOverrides?et.components[tt].styleOverrides:null,getVariantStyles=(tt,et)=>{let nt=[];et&&et.components&&et.components[tt]&&et.components[tt].variants&&(nt=et.components[tt].variants);const rt={};return nt.forEach(it=>{const ot=propsToClassKey(it.props);rt[ot]=it.style}),rt},variantsResolver=(tt,et,nt,rt)=>{var it;const{ownerState:ot={}}=tt,at=[],st=nt==null||(it=nt.components)==null||(it=it[rt])==null?void 0:it.variants;return st&&st.forEach(lt=>{let ct=!0;Object.keys(lt.props).forEach(ut=>{ot[ut]!==lt.props[ut]&&tt[ut]!==lt.props[ut]&&(ct=!1)}),ct&&at.push(et[propsToClassKey(lt.props)])}),at};function shouldForwardProp(tt){return tt!=="ownerState"&&tt!=="theme"&&tt!=="sx"&&tt!=="as"}const systemDefaultTheme=createTheme$1();function resolveTheme({defaultTheme:tt,theme:et,themeId:nt}){return isEmpty$2(et)?tt:et[nt]||et}function createStyled(tt={}){const{themeId:et,defaultTheme:nt=systemDefaultTheme,rootShouldForwardProp:rt=shouldForwardProp,slotShouldForwardProp:it=shouldForwardProp}=tt,ot=at=>styleFunctionSx$1(_extends$r({},at,{theme:resolveTheme(_extends$r({},at,{defaultTheme:nt,themeId:et}))}));return ot.__mui_systemSx=!0,(at,st={})=>{internal_processStyles(at,kt=>kt.filter(St=>!(St!=null&&St.__mui_systemSx)));const{name:lt,slot:ct,skipVariantsResolver:ut,skipSx:ht,overridesResolver:dt}=st,pt=_objectWithoutPropertiesLoose$g(st,_excluded$1y),mt=ut!==void 0?ut:ct&&ct!=="Root"||!1,gt=ht||!1;let yt,bt=shouldForwardProp;ct==="Root"?bt=rt:ct?bt=it:isStringTag(at)&&(bt=void 0);const wt=styled$3(at,_extends$r({shouldForwardProp:bt,label:yt},pt)),vt=(kt,...St)=>{const Tt=St?St.map(Lt=>typeof Lt=="function"&&Lt.__emotion_real!==Lt?jt=>Lt(_extends$r({},jt,{theme:resolveTheme(_extends$r({},jt,{defaultTheme:nt,themeId:et}))})):Lt):[];let At=kt;lt&&dt&&Tt.push(Lt=>{const jt=resolveTheme(_extends$r({},Lt,{defaultTheme:nt,themeId:et})),Rt=getStyleOverrides(lt,jt);if(Rt){const $t={};return Object.entries(Rt).forEach(([xt,It])=>{$t[xt]=typeof It=="function"?It(_extends$r({},Lt,{theme:jt})):It}),dt(Lt,$t)}return null}),lt&&!mt&&Tt.push(Lt=>{const jt=resolveTheme(_extends$r({},Lt,{defaultTheme:nt,themeId:et}));return variantsResolver(Lt,getVariantStyles(lt,jt),jt,lt)}),gt||Tt.push(ot);const Et=Tt.length-St.length;if(Array.isArray(kt)&&Et>0){const Lt=new Array(Et).fill("");At=[...kt,...Lt],At.raw=[...kt.raw,...Lt]}else typeof kt=="function"&&kt.__emotion_real!==kt&&(At=Lt=>kt(_extends$r({},Lt,{theme:resolveTheme(_extends$r({},Lt,{defaultTheme:nt,themeId:et}))})));const Mt=wt(At,...Tt);return at.muiName&&(Mt.muiName=at.muiName),Mt};return wt.withConfig&&(vt.withConfig=wt.withConfig),vt}}const styled$2=createStyled(),systemStyled=styled$2;function getThemeProps(tt){const{theme:et,name:nt,props:rt}=tt;return!et||!et.components||!et.components[nt]||!et.components[nt].defaultProps?rt:resolveProps(et.components[nt].defaultProps,rt)}function useThemeProps$1({props:tt,name:et,defaultTheme:nt,themeId:rt}){let it=useTheme$2(nt);return rt&&(it=it[rt]||it),getThemeProps({theme:it,name:et,props:tt})}function clamp$6(tt,et=0,nt=1){return Math.min(Math.max(et,tt),nt)}function hexToRgb(tt){tt=tt.slice(1);const et=new RegExp(`.{1,${tt.length>=6?2:1}}`,"g");let nt=tt.match(et);return nt&&nt[0].length===1&&(nt=nt.map(rt=>rt+rt)),nt?`rgb${nt.length===4?"a":""}(${nt.map((rt,it)=>it<3?parseInt(rt,16):Math.round(parseInt(rt,16)/255*1e3)/1e3).join(", ")})`:""}function decomposeColor(tt){if(tt.type)return tt;if(tt.charAt(0)==="#")return decomposeColor(hexToRgb(tt));const et=tt.indexOf("("),nt=tt.substring(0,et);if(["rgb","rgba","hsl","hsla","color"].indexOf(nt)===-1)throw new Error(formatMuiErrorMessage(9,tt));let rt=tt.substring(et+1,tt.length-1),it;if(nt==="color"){if(rt=rt.split(" "),it=rt.shift(),rt.length===4&&rt[3].charAt(0)==="/"&&(rt[3]=rt[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(it)===-1)throw new Error(formatMuiErrorMessage(10,it))}else rt=rt.split(",");return rt=rt.map(ot=>parseFloat(ot)),{type:nt,values:rt,colorSpace:it}}function recomposeColor(tt){const{type:et,colorSpace:nt}=tt;let{values:rt}=tt;return et.indexOf("rgb")!==-1?rt=rt.map((it,ot)=>ot<3?parseInt(it,10):it):et.indexOf("hsl")!==-1&&(rt[1]=`${rt[1]}%`,rt[2]=`${rt[2]}%`),et.indexOf("color")!==-1?rt=`${nt} ${rt.join(" ")}`:rt=`${rt.join(", ")}`,`${et}(${rt})`}function hslToRgb(tt){tt=decomposeColor(tt);const{values:et}=tt,nt=et[0],rt=et[1]/100,it=et[2]/100,ot=rt*Math.min(it,1-it),at=(ct,ut=(ct+nt/30)%12)=>it-ot*Math.max(Math.min(ut-3,9-ut,1),-1);let st="rgb";const lt=[Math.round(at(0)*255),Math.round(at(8)*255),Math.round(at(4)*255)];return tt.type==="hsla"&&(st+="a",lt.push(et[3])),recomposeColor({type:st,values:lt})}function getLuminance(tt){tt=decomposeColor(tt);let et=tt.type==="hsl"||tt.type==="hsla"?decomposeColor(hslToRgb(tt)).values:tt.values;return et=et.map(nt=>(tt.type!=="color"&&(nt/=255),nt<=.03928?nt/12.92:((nt+.055)/1.055)**2.4)),Number((.2126*et[0]+.7152*et[1]+.0722*et[2]).toFixed(3))}function getContrastRatio(tt,et){const nt=getLuminance(tt),rt=getLuminance(et);return(Math.max(nt,rt)+.05)/(Math.min(nt,rt)+.05)}function alpha$1(tt,et){return tt=decomposeColor(tt),et=clamp$6(et),(tt.type==="rgb"||tt.type==="hsl")&&(tt.type+="a"),tt.type==="color"?tt.values[3]=`/${et}`:tt.values[3]=et,recomposeColor(tt)}function darken(tt,et){if(tt=decomposeColor(tt),et=clamp$6(et),tt.type.indexOf("hsl")!==-1)tt.values[2]*=1-et;else if(tt.type.indexOf("rgb")!==-1||tt.type.indexOf("color")!==-1)for(let nt=0;nt<3;nt+=1)tt.values[nt]*=1-et;return recomposeColor(tt)}function lighten(tt,et){if(tt=decomposeColor(tt),et=clamp$6(et),tt.type.indexOf("hsl")!==-1)tt.values[2]+=(100-tt.values[2])*et;else if(tt.type.indexOf("rgb")!==-1)for(let nt=0;nt<3;nt+=1)tt.values[nt]+=(255-tt.values[nt])*et;else if(tt.type.indexOf("color")!==-1)for(let nt=0;nt<3;nt+=1)tt.values[nt]+=(1-tt.values[nt])*et;return recomposeColor(tt)}const ThemeContext=reactExports.createContext(null),ThemeContext$1=ThemeContext;function useTheme$1(){return reactExports.useContext(ThemeContext$1)}const hasSymbol=typeof Symbol=="function"&&Symbol.for,nested=hasSymbol?Symbol.for("mui.nested"):"__THEME_NESTED__";function mergeOuterLocalTheme(tt,et){return typeof et=="function"?et(tt):_extends$r({},tt,et)}function ThemeProvider$2(tt){const{children:et,theme:nt}=tt,rt=useTheme$1(),it=reactExports.useMemo(()=>{const ot=rt===null?nt:mergeOuterLocalTheme(rt,nt);return ot!=null&&(ot[nested]=rt!==null),ot},[nt,rt]);return jsxRuntimeExports.jsx(ThemeContext$1.Provider,{value:it,children:et})}const EMPTY_THEME={};function useThemeScoping(tt,et,nt,rt=!1){return reactExports.useMemo(()=>{const it=tt&&et[tt]||et;if(typeof nt=="function"){const ot=nt(it),at=tt?_extends$r({},et,{[tt]:ot}):ot;return rt?()=>at:at}return tt?_extends$r({},et,{[tt]:nt}):_extends$r({},et,nt)},[tt,et,nt,rt])}function ThemeProvider$1(tt){const{children:et,theme:nt,themeId:rt}=tt,it=useTheme$3(EMPTY_THEME),ot=useTheme$1()||EMPTY_THEME,at=useThemeScoping(rt,it,nt),st=useThemeScoping(rt,ot,nt,!0);return jsxRuntimeExports.jsx(ThemeProvider$2,{theme:st,children:jsxRuntimeExports.jsx(ThemeContext$2.Provider,{value:at,children:et})})}const _excluded$1x=["component","direction","spacing","divider","children","className","useFlexGap"],defaultTheme$2=createTheme$1(),defaultCreateStyledComponent=systemStyled("div",{name:"MuiStack",slot:"Root",overridesResolver:(tt,et)=>et.root});function useThemePropsDefault(tt){return useThemeProps$1({props:tt,name:"MuiStack",defaultTheme:defaultTheme$2})}function joinChildren(tt,et){const nt=reactExports.Children.toArray(tt).filter(Boolean);return nt.reduce((rt,it,ot)=>(rt.push(it),ot({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[tt],style$1=({ownerState:tt,theme:et})=>{let nt=_extends$r({display:"flex",flexDirection:"column"},handleBreakpoints({theme:et},resolveBreakpointValues({values:tt.direction,breakpoints:et.breakpoints.values}),rt=>({flexDirection:rt})));if(tt.spacing){const rt=createUnarySpacing(et),it=Object.keys(et.breakpoints.values).reduce((lt,ct)=>((typeof tt.spacing=="object"&&tt.spacing[ct]!=null||typeof tt.direction=="object"&&tt.direction[ct]!=null)&&(lt[ct]=!0),lt),{}),ot=resolveBreakpointValues({values:tt.direction,base:it}),at=resolveBreakpointValues({values:tt.spacing,base:it});typeof ot=="object"&&Object.keys(ot).forEach((lt,ct,ut)=>{if(!ot[lt]){const dt=ct>0?ot[ut[ct-1]]:"column";ot[lt]=dt}}),nt=deepmerge$1(nt,handleBreakpoints({theme:et},at,(lt,ct)=>tt.useFlexGap?{gap:getValue$3(rt,lt)}:{"& > :not(style) ~ :not(style)":{margin:0,[`margin${getSideFromDirection(ct?ot[ct]:tt.direction)}`]:getValue$3(rt,lt)}}))}return nt=mergeBreakpointsInOrder(et.breakpoints,nt),nt};function createStack(tt={}){const{createStyledComponent:et=defaultCreateStyledComponent,useThemeProps:nt=useThemePropsDefault,componentName:rt="MuiStack"}=tt,it=()=>composeClasses({root:["root"]},lt=>generateUtilityClass(rt,lt),{}),ot=et(style$1);return reactExports.forwardRef(function(lt,ct){const ut=nt(lt),ht=extendSxProp(ut),{component:dt="div",direction:pt="column",spacing:mt=0,divider:gt,children:yt,className:bt,useFlexGap:wt=!1}=ht,vt=_objectWithoutPropertiesLoose$g(ht,_excluded$1x),kt={direction:pt,spacing:mt,useFlexGap:wt},St=it();return jsxRuntimeExports.jsx(ot,_extends$r({as:dt,ownerState:kt,ref:ct,className:clsx(St.root,bt)},vt,{children:gt?joinChildren(yt,gt):yt}))})}function createMixins(tt,et){return _extends$r({toolbar:{minHeight:56,[tt.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[tt.up("sm")]:{minHeight:64}}},et)}const _excluded$1v=["mode","contrastThreshold","tonalOffset"],light={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:common$8.white,default:common$8.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},dark={text:{primary:common$8.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:common$8.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function addLightOrDark(tt,et,nt,rt){const it=rt.light||rt,ot=rt.dark||rt*1.5;tt[et]||(tt.hasOwnProperty(nt)?tt[et]=tt[nt]:et==="light"?tt.light=lighten(tt.main,it):et==="dark"&&(tt.dark=darken(tt.main,ot)))}function getDefaultPrimary(tt="light"){return tt==="dark"?{main:blue$1[200],light:blue$1[50],dark:blue$1[400]}:{main:blue$1[700],light:blue$1[400],dark:blue$1[800]}}function getDefaultSecondary(tt="light"){return tt==="dark"?{main:purple$1[200],light:purple$1[50],dark:purple$1[400]}:{main:purple$1[500],light:purple$1[300],dark:purple$1[700]}}function getDefaultError(tt="light"){return tt==="dark"?{main:red$1[500],light:red$1[300],dark:red$1[700]}:{main:red$1[700],light:red$1[400],dark:red$1[800]}}function getDefaultInfo(tt="light"){return tt==="dark"?{main:lightBlue$1[400],light:lightBlue$1[300],dark:lightBlue$1[700]}:{main:lightBlue$1[700],light:lightBlue$1[500],dark:lightBlue$1[900]}}function getDefaultSuccess(tt="light"){return tt==="dark"?{main:green$1[400],light:green$1[300],dark:green$1[700]}:{main:green$1[800],light:green$1[500],dark:green$1[900]}}function getDefaultWarning(tt="light"){return tt==="dark"?{main:orange$1[400],light:orange$1[300],dark:orange$1[700]}:{main:"#ed6c02",light:orange$1[500],dark:orange$1[900]}}function createPalette(tt){const{mode:et="light",contrastThreshold:nt=3,tonalOffset:rt=.2}=tt,it=_objectWithoutPropertiesLoose$g(tt,_excluded$1v),ot=tt.primary||getDefaultPrimary(et),at=tt.secondary||getDefaultSecondary(et),st=tt.error||getDefaultError(et),lt=tt.info||getDefaultInfo(et),ct=tt.success||getDefaultSuccess(et),ut=tt.warning||getDefaultWarning(et);function ht(gt){return getContrastRatio(gt,dark.text.primary)>=nt?dark.text.primary:light.text.primary}const dt=({color:gt,name:yt,mainShade:bt=500,lightShade:wt=300,darkShade:vt=700})=>{if(gt=_extends$r({},gt),!gt.main&>[bt]&&(gt.main=gt[bt]),!gt.hasOwnProperty("main"))throw new Error(formatMuiErrorMessage(11,yt?` (${yt})`:"",bt));if(typeof gt.main!="string")throw new Error(formatMuiErrorMessage(12,yt?` (${yt})`:"",JSON.stringify(gt.main)));return addLightOrDark(gt,"light",wt,rt),addLightOrDark(gt,"dark",vt,rt),gt.contrastText||(gt.contrastText=ht(gt.main)),gt},pt={dark,light};return deepmerge$1(_extends$r({common:_extends$r({},common$8),mode:et,primary:dt({color:ot,name:"primary"}),secondary:dt({color:at,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:dt({color:st,name:"error"}),warning:dt({color:ut,name:"warning"}),info:dt({color:lt,name:"info"}),success:dt({color:ct,name:"success"}),grey:grey$1,contrastThreshold:nt,getContrastText:ht,augmentColor:dt,tonalOffset:rt},pt[et]),it)}const _excluded$1u=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];function round$3(tt){return Math.round(tt*1e5)/1e5}const caseAllCaps={textTransform:"uppercase"},defaultFontFamily='"Roboto", "Helvetica", "Arial", sans-serif';function createTypography(tt,et){const nt=typeof et=="function"?et(tt):et,{fontFamily:rt=defaultFontFamily,fontSize:it=14,fontWeightLight:ot=300,fontWeightRegular:at=400,fontWeightMedium:st=500,fontWeightBold:lt=700,htmlFontSize:ct=16,allVariants:ut,pxToRem:ht}=nt,dt=_objectWithoutPropertiesLoose$g(nt,_excluded$1u),pt=it/14,mt=ht||(bt=>`${bt/ct*pt}rem`),gt=(bt,wt,vt,kt,St)=>_extends$r({fontFamily:rt,fontWeight:bt,fontSize:mt(wt),lineHeight:vt},rt===defaultFontFamily?{letterSpacing:`${round$3(kt/wt)}em`}:{},St,ut),yt={h1:gt(ot,96,1.167,-1.5),h2:gt(ot,60,1.2,-.5),h3:gt(at,48,1.167,0),h4:gt(at,34,1.235,.25),h5:gt(at,24,1.334,0),h6:gt(st,20,1.6,.15),subtitle1:gt(at,16,1.75,.15),subtitle2:gt(st,14,1.57,.1),body1:gt(at,16,1.5,.15),body2:gt(at,14,1.43,.15),button:gt(st,14,1.75,.4,caseAllCaps),caption:gt(at,12,1.66,.4),overline:gt(at,12,2.66,1,caseAllCaps),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return deepmerge$1(_extends$r({htmlFontSize:ct,pxToRem:mt,fontFamily:rt,fontSize:it,fontWeightLight:ot,fontWeightRegular:at,fontWeightMedium:st,fontWeightBold:lt},yt),dt,{clone:!1})}const shadowKeyUmbraOpacity=.2,shadowKeyPenumbraOpacity=.14,shadowAmbientShadowOpacity=.12;function createShadow(...tt){return[`${tt[0]}px ${tt[1]}px ${tt[2]}px ${tt[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`,`${tt[4]}px ${tt[5]}px ${tt[6]}px ${tt[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`,`${tt[8]}px ${tt[9]}px ${tt[10]}px ${tt[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(",")}const shadows=["none",createShadow(0,2,1,-1,0,1,1,0,0,1,3,0),createShadow(0,3,1,-2,0,2,2,0,0,1,5,0),createShadow(0,3,3,-2,0,3,4,0,0,1,8,0),createShadow(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow(0,11,15,-7,0,24,38,3,0,9,46,8)],shadows$1=shadows,_excluded$1t=["duration","easing","delay"],easing$1={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},duration={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function formatMs(tt){return`${Math.round(tt)}ms`}function getAutoHeightDuration(tt){if(!tt)return 0;const et=tt/36;return Math.round((4+15*et**.25+et/5)*10)}function createTransitions(tt){const et=_extends$r({},easing$1,tt.easing),nt=_extends$r({},duration,tt.duration);return _extends$r({getAutoHeightDuration,create:(it=["all"],ot={})=>{const{duration:at=nt.standard,easing:st=et.easeInOut,delay:lt=0}=ot;return _objectWithoutPropertiesLoose$g(ot,_excluded$1t),(Array.isArray(it)?it:[it]).map(ct=>`${ct} ${typeof at=="string"?at:formatMs(at)} ${st} ${typeof lt=="string"?lt:formatMs(lt)}`).join(",")}},tt,{easing:et,duration:nt})}const zIndex={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},zIndex$1=zIndex,_excluded$1s=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function createTheme(tt={},...et){const{mixins:nt={},palette:rt={},transitions:it={},typography:ot={}}=tt,at=_objectWithoutPropertiesLoose$g(tt,_excluded$1s);if(tt.vars)throw new Error(formatMuiErrorMessage(18));const st=createPalette(rt),lt=createTheme$1(tt);let ct=deepmerge$1(lt,{mixins:createMixins(lt.breakpoints,nt),palette:st,shadows:shadows$1.slice(),typography:createTypography(st,ot),transitions:createTransitions(it),zIndex:_extends$r({},zIndex$1)});return ct=deepmerge$1(ct,at),ct=et.reduce((ut,ht)=>deepmerge$1(ut,ht),ct),ct.unstable_sxConfig=_extends$r({},defaultSxConfig$1,at==null?void 0:at.unstable_sxConfig),ct.unstable_sx=function(ht){return styleFunctionSx$1({sx:ht,theme:this})},ct}function getUnit$1(tt){return String(tt).match(/[\d.\-+]*\s*(.*)/)[1]||""}function toUnitless(tt){return parseFloat(tt)}const defaultTheme=createTheme(),defaultTheme$1=defaultTheme;function useTheme(){const tt=useTheme$2(defaultTheme$1);return tt[THEME_ID]||tt}function useThemeProps({props:tt,name:et}){return useThemeProps$1({props:tt,name:et,defaultTheme:defaultTheme$1,themeId:THEME_ID})}const rootShouldForwardProp=tt=>shouldForwardProp(tt)&&tt!=="classes",slotShouldForwardProp=shouldForwardProp,styled=createStyled({themeId:THEME_ID,defaultTheme:defaultTheme$1,rootShouldForwardProp}),styled$1=styled,_excluded$1r=["theme"];function ThemeProvider(tt){let{theme:et}=tt,nt=_objectWithoutPropertiesLoose$g(tt,_excluded$1r);const rt=et[THEME_ID];return jsxRuntimeExports.jsx(ThemeProvider$1,_extends$r({},nt,{themeId:rt?THEME_ID:void 0,theme:rt||et}))}const getOverlayAlpha=tt=>{let et;return tt<1?et=5.11916*tt**2:et=4.5*Math.log(tt+1)+2,(et/100).toFixed(2)},getOverlayAlpha$1=getOverlayAlpha;function isHostComponent(tt){return typeof tt=="string"}function appendOwnerState(tt,et,nt){return tt===void 0||isHostComponent(tt)?et:_extends$r({},et,{ownerState:_extends$r({},et.ownerState,nt)})}function areArraysEqual$1(tt,et,nt=(rt,it)=>rt===it){return tt.length===et.length&&tt.every((rt,it)=>nt(rt,et[it]))}const defaultContextValue={disableDefaultClasses:!1},ClassNameConfiguratorContext=reactExports.createContext(defaultContextValue);function useClassNamesOverride(tt){const{disableDefaultClasses:et}=reactExports.useContext(ClassNameConfiguratorContext);return nt=>et?"":tt(nt)}function extractEventHandlers(tt,et=[]){if(tt===void 0)return{};const nt={};return Object.keys(tt).filter(rt=>rt.match(/^on[A-Z]/)&&typeof tt[rt]=="function"&&!et.includes(rt)).forEach(rt=>{nt[rt]=tt[rt]}),nt}function resolveComponentProps(tt,et,nt){return typeof tt=="function"?tt(et,nt):tt}function omitEventHandlers(tt){if(tt===void 0)return{};const et={};return Object.keys(tt).filter(nt=>!(nt.match(/^on[A-Z]/)&&typeof tt[nt]=="function")).forEach(nt=>{et[nt]=tt[nt]}),et}function mergeSlotProps(tt){const{getSlotProps:et,additionalProps:nt,externalSlotProps:rt,externalForwardedProps:it,className:ot}=tt;if(!et){const pt=clsx(it==null?void 0:it.className,rt==null?void 0:rt.className,ot,nt==null?void 0:nt.className),mt=_extends$r({},nt==null?void 0:nt.style,it==null?void 0:it.style,rt==null?void 0:rt.style),gt=_extends$r({},nt,it,rt);return pt.length>0&&(gt.className=pt),Object.keys(mt).length>0&&(gt.style=mt),{props:gt,internalRef:void 0}}const at=extractEventHandlers(_extends$r({},it,rt)),st=omitEventHandlers(rt),lt=omitEventHandlers(it),ct=et(at),ut=clsx(ct==null?void 0:ct.className,nt==null?void 0:nt.className,ot,it==null?void 0:it.className,rt==null?void 0:rt.className),ht=_extends$r({},ct==null?void 0:ct.style,nt==null?void 0:nt.style,it==null?void 0:it.style,rt==null?void 0:rt.style),dt=_extends$r({},ct,nt,lt,st);return ut.length>0&&(dt.className=ut),Object.keys(ht).length>0&&(dt.style=ht),{props:dt,internalRef:ct.ref}}const _excluded$1q=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function useSlotProps(tt){var et;const{elementType:nt,externalSlotProps:rt,ownerState:it,skipResolvingSlotProps:ot=!1}=tt,at=_objectWithoutPropertiesLoose$g(tt,_excluded$1q),st=ot?{}:resolveComponentProps(rt,it),{props:lt,internalRef:ct}=mergeSlotProps(_extends$r({},at,{externalSlotProps:st})),ut=useForkRef(ct,st==null?void 0:st.ref,(et=tt.additionalProps)==null?void 0:et.ref);return appendOwnerState(nt,_extends$r({},lt,{ref:ut}),it)}const candidatesSelector=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function getTabIndex(tt){const et=parseInt(tt.getAttribute("tabindex")||"",10);return Number.isNaN(et)?tt.contentEditable==="true"||(tt.nodeName==="AUDIO"||tt.nodeName==="VIDEO"||tt.nodeName==="DETAILS")&&tt.getAttribute("tabindex")===null?0:tt.tabIndex:et}function isNonTabbableRadio(tt){if(tt.tagName!=="INPUT"||tt.type!=="radio"||!tt.name)return!1;const et=rt=>tt.ownerDocument.querySelector(`input[type="radio"]${rt}`);let nt=et(`[name="${tt.name}"]:checked`);return nt||(nt=et(`[name="${tt.name}"]`)),nt!==tt}function isNodeMatchingSelectorFocusable(tt){return!(tt.disabled||tt.tagName==="INPUT"&&tt.type==="hidden"||isNonTabbableRadio(tt))}function defaultGetTabbable(tt){const et=[],nt=[];return Array.from(tt.querySelectorAll(candidatesSelector)).forEach((rt,it)=>{const ot=getTabIndex(rt);ot===-1||!isNodeMatchingSelectorFocusable(rt)||(ot===0?et.push(rt):nt.push({documentOrder:it,tabIndex:ot,node:rt}))}),nt.sort((rt,it)=>rt.tabIndex===it.tabIndex?rt.documentOrder-it.documentOrder:rt.tabIndex-it.tabIndex).map(rt=>rt.node).concat(et)}function defaultIsEnabled(){return!0}function FocusTrap(tt){const{children:et,disableAutoFocus:nt=!1,disableEnforceFocus:rt=!1,disableRestoreFocus:it=!1,getTabbable:ot=defaultGetTabbable,isEnabled:at=defaultIsEnabled,open:st}=tt,lt=reactExports.useRef(!1),ct=reactExports.useRef(null),ut=reactExports.useRef(null),ht=reactExports.useRef(null),dt=reactExports.useRef(null),pt=reactExports.useRef(!1),mt=reactExports.useRef(null),gt=useForkRef(et.ref,mt),yt=reactExports.useRef(null);reactExports.useEffect(()=>{!st||!mt.current||(pt.current=!nt)},[nt,st]),reactExports.useEffect(()=>{if(!st||!mt.current)return;const vt=ownerDocument(mt.current);return mt.current.contains(vt.activeElement)||(mt.current.hasAttribute("tabIndex")||mt.current.setAttribute("tabIndex","-1"),pt.current&&mt.current.focus()),()=>{it||(ht.current&&ht.current.focus&&(lt.current=!0,ht.current.focus()),ht.current=null)}},[st]),reactExports.useEffect(()=>{if(!st||!mt.current)return;const vt=ownerDocument(mt.current),kt=At=>{const{current:Et}=mt;if(Et!==null){if(!vt.hasFocus()||rt||!at()||lt.current){lt.current=!1;return}if(!Et.contains(vt.activeElement)){if(At&&dt.current!==At.target||vt.activeElement!==dt.current)dt.current=null;else if(dt.current!==null)return;if(!pt.current)return;let jt=[];if((vt.activeElement===ct.current||vt.activeElement===ut.current)&&(jt=ot(mt.current)),jt.length>0){var Mt,Lt;const Rt=!!((Mt=yt.current)!=null&&Mt.shiftKey&&((Lt=yt.current)==null?void 0:Lt.key)==="Tab"),$t=jt[0],xt=jt[jt.length-1];typeof $t!="string"&&typeof xt!="string"&&(Rt?xt.focus():$t.focus())}else Et.focus()}}},St=At=>{yt.current=At,!(rt||!at()||At.key!=="Tab")&&vt.activeElement===mt.current&&At.shiftKey&&(lt.current=!0,ut.current&&ut.current.focus())};vt.addEventListener("focusin",kt),vt.addEventListener("keydown",St,!0);const Tt=setInterval(()=>{vt.activeElement&&vt.activeElement.tagName==="BODY"&&kt(null)},50);return()=>{clearInterval(Tt),vt.removeEventListener("focusin",kt),vt.removeEventListener("keydown",St,!0)}},[nt,rt,it,at,st,ot]);const bt=vt=>{ht.current===null&&(ht.current=vt.relatedTarget),pt.current=!0,dt.current=vt.target;const kt=et.props.onFocus;kt&&kt(vt)},wt=vt=>{ht.current===null&&(ht.current=vt.relatedTarget),pt.current=!0};return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{tabIndex:st?0:-1,onFocus:wt,ref:ct,"data-testid":"sentinelStart"}),reactExports.cloneElement(et,{ref:gt,onFocus:bt}),jsxRuntimeExports.jsx("div",{tabIndex:st?0:-1,onFocus:wt,ref:ut,"data-testid":"sentinelEnd"})]})}var top="top",bottom="bottom",right="right",left="left",auto="auto",basePlacements=[top,bottom,right,left],start$1="start",end="end",clippingParents="clippingParents",viewport="viewport",popper="popper",reference="reference",variationPlacements=basePlacements.reduce(function(tt,et){return tt.concat([et+"-"+start$1,et+"-"+end])},[]),placements=[].concat(basePlacements,[auto]).reduce(function(tt,et){return tt.concat([et,et+"-"+start$1,et+"-"+end])},[]),beforeRead="beforeRead",read="read",afterRead="afterRead",beforeMain="beforeMain",main$1="main",afterMain="afterMain",beforeWrite="beforeWrite",write="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read,afterRead,beforeMain,main$1,afterMain,beforeWrite,write,afterWrite];function getNodeName(tt){return tt?(tt.nodeName||"").toLowerCase():null}function getWindow(tt){if(tt==null)return window;if(tt.toString()!=="[object Window]"){var et=tt.ownerDocument;return et&&et.defaultView||window}return tt}function isElement(tt){var et=getWindow(tt).Element;return tt instanceof et||tt instanceof Element}function isHTMLElement$1(tt){var et=getWindow(tt).HTMLElement;return tt instanceof et||tt instanceof HTMLElement}function isShadowRoot(tt){if(typeof ShadowRoot>"u")return!1;var et=getWindow(tt).ShadowRoot;return tt instanceof et||tt instanceof ShadowRoot}function applyStyles(tt){var et=tt.state;Object.keys(et.elements).forEach(function(nt){var rt=et.styles[nt]||{},it=et.attributes[nt]||{},ot=et.elements[nt];!isHTMLElement$1(ot)||!getNodeName(ot)||(Object.assign(ot.style,rt),Object.keys(it).forEach(function(at){var st=it[at];st===!1?ot.removeAttribute(at):ot.setAttribute(at,st===!0?"":st)}))})}function effect$2(tt){var et=tt.state,nt={popper:{position:et.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(et.elements.popper.style,nt.popper),et.styles=nt,et.elements.arrow&&Object.assign(et.elements.arrow.style,nt.arrow),function(){Object.keys(et.elements).forEach(function(rt){var it=et.elements[rt],ot=et.attributes[rt]||{},at=Object.keys(et.styles.hasOwnProperty(rt)?et.styles[rt]:nt[rt]),st=at.reduce(function(lt,ct){return lt[ct]="",lt},{});!isHTMLElement$1(it)||!getNodeName(it)||(Object.assign(it.style,st),Object.keys(ot).forEach(function(lt){it.removeAttribute(lt)}))})}}const applyStyles$1={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect$2,requires:["computeStyles"]};function getBasePlacement(tt){return tt.split("-")[0]}var max$3=Math.max,min$3=Math.min,round$2=Math.round;function getUAString(){var tt=navigator.userAgentData;return tt!=null&&tt.brands&&Array.isArray(tt.brands)?tt.brands.map(function(et){return et.brand+"/"+et.version}).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(tt,et,nt){et===void 0&&(et=!1),nt===void 0&&(nt=!1);var rt=tt.getBoundingClientRect(),it=1,ot=1;et&&isHTMLElement$1(tt)&&(it=tt.offsetWidth>0&&round$2(rt.width)/tt.offsetWidth||1,ot=tt.offsetHeight>0&&round$2(rt.height)/tt.offsetHeight||1);var at=isElement(tt)?getWindow(tt):window,st=at.visualViewport,lt=!isLayoutViewport()&&nt,ct=(rt.left+(lt&&st?st.offsetLeft:0))/it,ut=(rt.top+(lt&&st?st.offsetTop:0))/ot,ht=rt.width/it,dt=rt.height/ot;return{width:ht,height:dt,top:ut,right:ct+ht,bottom:ut+dt,left:ct,x:ct,y:ut}}function getLayoutRect(tt){var et=getBoundingClientRect(tt),nt=tt.offsetWidth,rt=tt.offsetHeight;return Math.abs(et.width-nt)<=1&&(nt=et.width),Math.abs(et.height-rt)<=1&&(rt=et.height),{x:tt.offsetLeft,y:tt.offsetTop,width:nt,height:rt}}function contains(tt,et){var nt=et.getRootNode&&et.getRootNode();if(tt.contains(et))return!0;if(nt&&isShadowRoot(nt)){var rt=et;do{if(rt&&tt.isSameNode(rt))return!0;rt=rt.parentNode||rt.host}while(rt)}return!1}function getComputedStyle$1(tt){return getWindow(tt).getComputedStyle(tt)}function isTableElement(tt){return["table","td","th"].indexOf(getNodeName(tt))>=0}function getDocumentElement(tt){return((isElement(tt)?tt.ownerDocument:tt.document)||window.document).documentElement}function getParentNode(tt){return getNodeName(tt)==="html"?tt:tt.assignedSlot||tt.parentNode||(isShadowRoot(tt)?tt.host:null)||getDocumentElement(tt)}function getTrueOffsetParent(tt){return!isHTMLElement$1(tt)||getComputedStyle$1(tt).position==="fixed"?null:tt.offsetParent}function getContainingBlock(tt){var et=/firefox/i.test(getUAString()),nt=/Trident/i.test(getUAString());if(nt&&isHTMLElement$1(tt)){var rt=getComputedStyle$1(tt);if(rt.position==="fixed")return null}var it=getParentNode(tt);for(isShadowRoot(it)&&(it=it.host);isHTMLElement$1(it)&&["html","body"].indexOf(getNodeName(it))<0;){var ot=getComputedStyle$1(it);if(ot.transform!=="none"||ot.perspective!=="none"||ot.contain==="paint"||["transform","perspective"].indexOf(ot.willChange)!==-1||et&&ot.willChange==="filter"||et&&ot.filter&&ot.filter!=="none")return it;it=it.parentNode}return null}function getOffsetParent(tt){for(var et=getWindow(tt),nt=getTrueOffsetParent(tt);nt&&isTableElement(nt)&&getComputedStyle$1(nt).position==="static";)nt=getTrueOffsetParent(nt);return nt&&(getNodeName(nt)==="html"||getNodeName(nt)==="body"&&getComputedStyle$1(nt).position==="static")?et:nt||getContainingBlock(tt)||et}function getMainAxisFromPlacement(tt){return["top","bottom"].indexOf(tt)>=0?"x":"y"}function within(tt,et,nt){return max$3(tt,min$3(et,nt))}function withinMaxClamp(tt,et,nt){var rt=within(tt,et,nt);return rt>nt?nt:rt}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(tt){return Object.assign({},getFreshSideObject(),tt)}function expandToHashMap(tt,et){return et.reduce(function(nt,rt){return nt[rt]=tt,nt},{})}var toPaddingObject=function(et,nt){return et=typeof et=="function"?et(Object.assign({},nt.rects,{placement:nt.placement})):et,mergePaddingObject(typeof et!="number"?et:expandToHashMap(et,basePlacements))};function arrow(tt){var et,nt=tt.state,rt=tt.name,it=tt.options,ot=nt.elements.arrow,at=nt.modifiersData.popperOffsets,st=getBasePlacement(nt.placement),lt=getMainAxisFromPlacement(st),ct=[left,right].indexOf(st)>=0,ut=ct?"height":"width";if(!(!ot||!at)){var ht=toPaddingObject(it.padding,nt),dt=getLayoutRect(ot),pt=lt==="y"?top:left,mt=lt==="y"?bottom:right,gt=nt.rects.reference[ut]+nt.rects.reference[lt]-at[lt]-nt.rects.popper[ut],yt=at[lt]-nt.rects.reference[lt],bt=getOffsetParent(ot),wt=bt?lt==="y"?bt.clientHeight||0:bt.clientWidth||0:0,vt=gt/2-yt/2,kt=ht[pt],St=wt-dt[ut]-ht[mt],Tt=wt/2-dt[ut]/2+vt,At=within(kt,Tt,St),Et=lt;nt.modifiersData[rt]=(et={},et[Et]=At,et.centerOffset=At-Tt,et)}}function effect$1(tt){var et=tt.state,nt=tt.options,rt=nt.element,it=rt===void 0?"[data-popper-arrow]":rt;it!=null&&(typeof it=="string"&&(it=et.elements.popper.querySelector(it),!it)||contains(et.elements.popper,it)&&(et.elements.arrow=it))}const arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(tt){return tt.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(tt,et){var nt=tt.x,rt=tt.y,it=et.devicePixelRatio||1;return{x:round$2(nt*it)/it||0,y:round$2(rt*it)/it||0}}function mapToStyles(tt){var et,nt=tt.popper,rt=tt.popperRect,it=tt.placement,ot=tt.variation,at=tt.offsets,st=tt.position,lt=tt.gpuAcceleration,ct=tt.adaptive,ut=tt.roundOffsets,ht=tt.isFixed,dt=at.x,pt=dt===void 0?0:dt,mt=at.y,gt=mt===void 0?0:mt,yt=typeof ut=="function"?ut({x:pt,y:gt}):{x:pt,y:gt};pt=yt.x,gt=yt.y;var bt=at.hasOwnProperty("x"),wt=at.hasOwnProperty("y"),vt=left,kt=top,St=window;if(ct){var Tt=getOffsetParent(nt),At="clientHeight",Et="clientWidth";if(Tt===getWindow(nt)&&(Tt=getDocumentElement(nt),getComputedStyle$1(Tt).position!=="static"&&st==="absolute"&&(At="scrollHeight",Et="scrollWidth")),Tt=Tt,it===top||(it===left||it===right)&&ot===end){kt=bottom;var Mt=ht&&Tt===St&&St.visualViewport?St.visualViewport.height:Tt[At];gt-=Mt-rt.height,gt*=lt?1:-1}if(it===left||(it===top||it===bottom)&&ot===end){vt=right;var Lt=ht&&Tt===St&&St.visualViewport?St.visualViewport.width:Tt[Et];pt-=Lt-rt.width,pt*=lt?1:-1}}var jt=Object.assign({position:st},ct&&unsetSides),Rt=ut===!0?roundOffsetsByDPR({x:pt,y:gt},getWindow(nt)):{x:pt,y:gt};if(pt=Rt.x,gt=Rt.y,lt){var $t;return Object.assign({},jt,($t={},$t[kt]=wt?"0":"",$t[vt]=bt?"0":"",$t.transform=(St.devicePixelRatio||1)<=1?"translate("+pt+"px, "+gt+"px)":"translate3d("+pt+"px, "+gt+"px, 0)",$t))}return Object.assign({},jt,(et={},et[kt]=wt?gt+"px":"",et[vt]=bt?pt+"px":"",et.transform="",et))}function computeStyles(tt){var et=tt.state,nt=tt.options,rt=nt.gpuAcceleration,it=rt===void 0?!0:rt,ot=nt.adaptive,at=ot===void 0?!0:ot,st=nt.roundOffsets,lt=st===void 0?!0:st,ct={placement:getBasePlacement(et.placement),variation:getVariation(et.placement),popper:et.elements.popper,popperRect:et.rects.popper,gpuAcceleration:it,isFixed:et.options.strategy==="fixed"};et.modifiersData.popperOffsets!=null&&(et.styles.popper=Object.assign({},et.styles.popper,mapToStyles(Object.assign({},ct,{offsets:et.modifiersData.popperOffsets,position:et.options.strategy,adaptive:at,roundOffsets:lt})))),et.modifiersData.arrow!=null&&(et.styles.arrow=Object.assign({},et.styles.arrow,mapToStyles(Object.assign({},ct,{offsets:et.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:lt})))),et.attributes.popper=Object.assign({},et.attributes.popper,{"data-popper-placement":et.placement})}const computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}};var passive={passive:!0};function effect(tt){var et=tt.state,nt=tt.instance,rt=tt.options,it=rt.scroll,ot=it===void 0?!0:it,at=rt.resize,st=at===void 0?!0:at,lt=getWindow(et.elements.popper),ct=[].concat(et.scrollParents.reference,et.scrollParents.popper);return ot&&ct.forEach(function(ut){ut.addEventListener("scroll",nt.update,passive)}),st&<.addEventListener("resize",nt.update,passive),function(){ot&&ct.forEach(function(ut){ut.removeEventListener("scroll",nt.update,passive)}),st&<.removeEventListener("resize",nt.update,passive)}}const eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect,data:{}};var hash$6={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(tt){return tt.replace(/left|right|bottom|top/g,function(et){return hash$6[et]})}var hash$5={start:"end",end:"start"};function getOppositeVariationPlacement(tt){return tt.replace(/start|end/g,function(et){return hash$5[et]})}function getWindowScroll(tt){var et=getWindow(tt),nt=et.pageXOffset,rt=et.pageYOffset;return{scrollLeft:nt,scrollTop:rt}}function getWindowScrollBarX(tt){return getBoundingClientRect(getDocumentElement(tt)).left+getWindowScroll(tt).scrollLeft}function getViewportRect(tt,et){var nt=getWindow(tt),rt=getDocumentElement(tt),it=nt.visualViewport,ot=rt.clientWidth,at=rt.clientHeight,st=0,lt=0;if(it){ot=it.width,at=it.height;var ct=isLayoutViewport();(ct||!ct&&et==="fixed")&&(st=it.offsetLeft,lt=it.offsetTop)}return{width:ot,height:at,x:st+getWindowScrollBarX(tt),y:lt}}function getDocumentRect(tt){var et,nt=getDocumentElement(tt),rt=getWindowScroll(tt),it=(et=tt.ownerDocument)==null?void 0:et.body,ot=max$3(nt.scrollWidth,nt.clientWidth,it?it.scrollWidth:0,it?it.clientWidth:0),at=max$3(nt.scrollHeight,nt.clientHeight,it?it.scrollHeight:0,it?it.clientHeight:0),st=-rt.scrollLeft+getWindowScrollBarX(tt),lt=-rt.scrollTop;return getComputedStyle$1(it||nt).direction==="rtl"&&(st+=max$3(nt.clientWidth,it?it.clientWidth:0)-ot),{width:ot,height:at,x:st,y:lt}}function isScrollParent(tt){var et=getComputedStyle$1(tt),nt=et.overflow,rt=et.overflowX,it=et.overflowY;return/auto|scroll|overlay|hidden/.test(nt+it+rt)}function getScrollParent(tt){return["html","body","#document"].indexOf(getNodeName(tt))>=0?tt.ownerDocument.body:isHTMLElement$1(tt)&&isScrollParent(tt)?tt:getScrollParent(getParentNode(tt))}function listScrollParents(tt,et){var nt;et===void 0&&(et=[]);var rt=getScrollParent(tt),it=rt===((nt=tt.ownerDocument)==null?void 0:nt.body),ot=getWindow(rt),at=it?[ot].concat(ot.visualViewport||[],isScrollParent(rt)?rt:[]):rt,st=et.concat(at);return it?st:st.concat(listScrollParents(getParentNode(at)))}function rectToClientRect(tt){return Object.assign({},tt,{left:tt.x,top:tt.y,right:tt.x+tt.width,bottom:tt.y+tt.height})}function getInnerBoundingClientRect(tt,et){var nt=getBoundingClientRect(tt,!1,et==="fixed");return nt.top=nt.top+tt.clientTop,nt.left=nt.left+tt.clientLeft,nt.bottom=nt.top+tt.clientHeight,nt.right=nt.left+tt.clientWidth,nt.width=tt.clientWidth,nt.height=tt.clientHeight,nt.x=nt.left,nt.y=nt.top,nt}function getClientRectFromMixedType(tt,et,nt){return et===viewport?rectToClientRect(getViewportRect(tt,nt)):isElement(et)?getInnerBoundingClientRect(et,nt):rectToClientRect(getDocumentRect(getDocumentElement(tt)))}function getClippingParents(tt){var et=listScrollParents(getParentNode(tt)),nt=["absolute","fixed"].indexOf(getComputedStyle$1(tt).position)>=0,rt=nt&&isHTMLElement$1(tt)?getOffsetParent(tt):tt;return isElement(rt)?et.filter(function(it){return isElement(it)&&contains(it,rt)&&getNodeName(it)!=="body"}):[]}function getClippingRect(tt,et,nt,rt){var it=et==="clippingParents"?getClippingParents(tt):[].concat(et),ot=[].concat(it,[nt]),at=ot[0],st=ot.reduce(function(lt,ct){var ut=getClientRectFromMixedType(tt,ct,rt);return lt.top=max$3(ut.top,lt.top),lt.right=min$3(ut.right,lt.right),lt.bottom=min$3(ut.bottom,lt.bottom),lt.left=max$3(ut.left,lt.left),lt},getClientRectFromMixedType(tt,at,rt));return st.width=st.right-st.left,st.height=st.bottom-st.top,st.x=st.left,st.y=st.top,st}function computeOffsets(tt){var et=tt.reference,nt=tt.element,rt=tt.placement,it=rt?getBasePlacement(rt):null,ot=rt?getVariation(rt):null,at=et.x+et.width/2-nt.width/2,st=et.y+et.height/2-nt.height/2,lt;switch(it){case top:lt={x:at,y:et.y-nt.height};break;case bottom:lt={x:at,y:et.y+et.height};break;case right:lt={x:et.x+et.width,y:st};break;case left:lt={x:et.x-nt.width,y:st};break;default:lt={x:et.x,y:et.y}}var ct=it?getMainAxisFromPlacement(it):null;if(ct!=null){var ut=ct==="y"?"height":"width";switch(ot){case start$1:lt[ct]=lt[ct]-(et[ut]/2-nt[ut]/2);break;case end:lt[ct]=lt[ct]+(et[ut]/2-nt[ut]/2);break}}return lt}function detectOverflow(tt,et){et===void 0&&(et={});var nt=et,rt=nt.placement,it=rt===void 0?tt.placement:rt,ot=nt.strategy,at=ot===void 0?tt.strategy:ot,st=nt.boundary,lt=st===void 0?clippingParents:st,ct=nt.rootBoundary,ut=ct===void 0?viewport:ct,ht=nt.elementContext,dt=ht===void 0?popper:ht,pt=nt.altBoundary,mt=pt===void 0?!1:pt,gt=nt.padding,yt=gt===void 0?0:gt,bt=mergePaddingObject(typeof yt!="number"?yt:expandToHashMap(yt,basePlacements)),wt=dt===popper?reference:popper,vt=tt.rects.popper,kt=tt.elements[mt?wt:dt],St=getClippingRect(isElement(kt)?kt:kt.contextElement||getDocumentElement(tt.elements.popper),lt,ut,at),Tt=getBoundingClientRect(tt.elements.reference),At=computeOffsets({reference:Tt,element:vt,strategy:"absolute",placement:it}),Et=rectToClientRect(Object.assign({},vt,At)),Mt=dt===popper?Et:Tt,Lt={top:St.top-Mt.top+bt.top,bottom:Mt.bottom-St.bottom+bt.bottom,left:St.left-Mt.left+bt.left,right:Mt.right-St.right+bt.right},jt=tt.modifiersData.offset;if(dt===popper&&jt){var Rt=jt[it];Object.keys(Lt).forEach(function($t){var xt=[right,bottom].indexOf($t)>=0?1:-1,It=[top,bottom].indexOf($t)>=0?"y":"x";Lt[$t]+=Rt[It]*xt})}return Lt}function computeAutoPlacement(tt,et){et===void 0&&(et={});var nt=et,rt=nt.placement,it=nt.boundary,ot=nt.rootBoundary,at=nt.padding,st=nt.flipVariations,lt=nt.allowedAutoPlacements,ct=lt===void 0?placements:lt,ut=getVariation(rt),ht=ut?st?variationPlacements:variationPlacements.filter(function(mt){return getVariation(mt)===ut}):basePlacements,dt=ht.filter(function(mt){return ct.indexOf(mt)>=0});dt.length===0&&(dt=ht);var pt=dt.reduce(function(mt,gt){return mt[gt]=detectOverflow(tt,{placement:gt,boundary:it,rootBoundary:ot,padding:at})[getBasePlacement(gt)],mt},{});return Object.keys(pt).sort(function(mt,gt){return pt[mt]-pt[gt]})}function getExpandedFallbackPlacements(tt){if(getBasePlacement(tt)===auto)return[];var et=getOppositePlacement(tt);return[getOppositeVariationPlacement(tt),et,getOppositeVariationPlacement(et)]}function flip$1(tt){var et=tt.state,nt=tt.options,rt=tt.name;if(!et.modifiersData[rt]._skip){for(var it=nt.mainAxis,ot=it===void 0?!0:it,at=nt.altAxis,st=at===void 0?!0:at,lt=nt.fallbackPlacements,ct=nt.padding,ut=nt.boundary,ht=nt.rootBoundary,dt=nt.altBoundary,pt=nt.flipVariations,mt=pt===void 0?!0:pt,gt=nt.allowedAutoPlacements,yt=et.options.placement,bt=getBasePlacement(yt),wt=bt===yt,vt=lt||(wt||!mt?[getOppositePlacement(yt)]:getExpandedFallbackPlacements(yt)),kt=[yt].concat(vt).reduce(function(Jt,nn){return Jt.concat(getBasePlacement(nn)===auto?computeAutoPlacement(et,{placement:nn,boundary:ut,rootBoundary:ht,padding:ct,flipVariations:mt,allowedAutoPlacements:gt}):nn)},[]),St=et.rects.reference,Tt=et.rects.popper,At=new Map,Et=!0,Mt=kt[0],Lt=0;Lt=0,It=xt?"width":"height",Ot=detectOverflow(et,{placement:jt,boundary:ut,rootBoundary:ht,altBoundary:dt,padding:ct}),zt=xt?$t?right:left:$t?bottom:top;St[It]>Tt[It]&&(zt=getOppositePlacement(zt));var Ut=getOppositePlacement(zt),Wt=[];if(ot&&Wt.push(Ot[Rt]<=0),st&&Wt.push(Ot[zt]<=0,Ot[Ut]<=0),Wt.every(function(Jt){return Jt})){Mt=jt,Et=!1;break}At.set(jt,Wt)}if(Et)for(var Ft=mt?3:1,Nt=function(nn){var Yt=kt.find(function(fn){var cn=At.get(fn);if(cn)return cn.slice(0,nn).every(function(_n){return _n})});if(Yt)return Mt=Yt,"break"},Ct=Ft;Ct>0;Ct--){var Ht=Nt(Ct);if(Ht==="break")break}et.placement!==Mt&&(et.modifiersData[rt]._skip=!0,et.placement=Mt,et.reset=!0)}}const flip$2={name:"flip",enabled:!0,phase:"main",fn:flip$1,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(tt,et,nt){return nt===void 0&&(nt={x:0,y:0}),{top:tt.top-et.height-nt.y,right:tt.right-et.width+nt.x,bottom:tt.bottom-et.height+nt.y,left:tt.left-et.width-nt.x}}function isAnySideFullyClipped(tt){return[top,right,bottom,left].some(function(et){return tt[et]>=0})}function hide(tt){var et=tt.state,nt=tt.name,rt=et.rects.reference,it=et.rects.popper,ot=et.modifiersData.preventOverflow,at=detectOverflow(et,{elementContext:"reference"}),st=detectOverflow(et,{altBoundary:!0}),lt=getSideOffsets(at,rt),ct=getSideOffsets(st,it,ot),ut=isAnySideFullyClipped(lt),ht=isAnySideFullyClipped(ct);et.modifiersData[nt]={referenceClippingOffsets:lt,popperEscapeOffsets:ct,isReferenceHidden:ut,hasPopperEscaped:ht},et.attributes.popper=Object.assign({},et.attributes.popper,{"data-popper-reference-hidden":ut,"data-popper-escaped":ht})}const hide$1={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide};function distanceAndSkiddingToXY(tt,et,nt){var rt=getBasePlacement(tt),it=[left,top].indexOf(rt)>=0?-1:1,ot=typeof nt=="function"?nt(Object.assign({},et,{placement:tt})):nt,at=ot[0],st=ot[1];return at=at||0,st=(st||0)*it,[left,right].indexOf(rt)>=0?{x:st,y:at}:{x:at,y:st}}function offset$1(tt){var et=tt.state,nt=tt.options,rt=tt.name,it=nt.offset,ot=it===void 0?[0,0]:it,at=placements.reduce(function(ut,ht){return ut[ht]=distanceAndSkiddingToXY(ht,et.rects,ot),ut},{}),st=at[et.placement],lt=st.x,ct=st.y;et.modifiersData.popperOffsets!=null&&(et.modifiersData.popperOffsets.x+=lt,et.modifiersData.popperOffsets.y+=ct),et.modifiersData[rt]=at}const offset$2={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset$1};function popperOffsets(tt){var et=tt.state,nt=tt.name;et.modifiersData[nt]=computeOffsets({reference:et.rects.reference,element:et.rects.popper,strategy:"absolute",placement:et.placement})}const popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(tt){return tt==="x"?"y":"x"}function preventOverflow(tt){var et=tt.state,nt=tt.options,rt=tt.name,it=nt.mainAxis,ot=it===void 0?!0:it,at=nt.altAxis,st=at===void 0?!1:at,lt=nt.boundary,ct=nt.rootBoundary,ut=nt.altBoundary,ht=nt.padding,dt=nt.tether,pt=dt===void 0?!0:dt,mt=nt.tetherOffset,gt=mt===void 0?0:mt,yt=detectOverflow(et,{boundary:lt,rootBoundary:ct,padding:ht,altBoundary:ut}),bt=getBasePlacement(et.placement),wt=getVariation(et.placement),vt=!wt,kt=getMainAxisFromPlacement(bt),St=getAltAxis(kt),Tt=et.modifiersData.popperOffsets,At=et.rects.reference,Et=et.rects.popper,Mt=typeof gt=="function"?gt(Object.assign({},et.rects,{placement:et.placement})):gt,Lt=typeof Mt=="number"?{mainAxis:Mt,altAxis:Mt}:Object.assign({mainAxis:0,altAxis:0},Mt),jt=et.modifiersData.offset?et.modifiersData.offset[et.placement]:null,Rt={x:0,y:0};if(Tt){if(ot){var $t,xt=kt==="y"?top:left,It=kt==="y"?bottom:right,Ot=kt==="y"?"height":"width",zt=Tt[kt],Ut=zt+yt[xt],Wt=zt-yt[It],Ft=pt?-Et[Ot]/2:0,Nt=wt===start$1?At[Ot]:Et[Ot],Ct=wt===start$1?-Et[Ot]:-At[Ot],Ht=et.elements.arrow,Jt=pt&&Ht?getLayoutRect(Ht):{width:0,height:0},nn=et.modifiersData["arrow#persistent"]?et.modifiersData["arrow#persistent"].padding:getFreshSideObject(),Yt=nn[xt],fn=nn[It],cn=within(0,At[Ot],Jt[Ot]),_n=vt?At[Ot]/2-Ft-cn-Yt-Lt.mainAxis:Nt-cn-Yt-Lt.mainAxis,En=vt?-At[Ot]/2+Ft+cn+fn+Lt.mainAxis:Ct+cn+fn+Lt.mainAxis,an=et.elements.arrow&&getOffsetParent(et.elements.arrow),en=an?kt==="y"?an.clientTop||0:an.clientLeft||0:0,Tn=($t=jt==null?void 0:jt[kt])!=null?$t:0,Rn=zt+_n-Tn-en,An=zt+En-Tn,yn=within(pt?min$3(Ut,Rn):Ut,zt,pt?max$3(Wt,An):Wt);Tt[kt]=yn,Rt[kt]=yn-zt}if(st){var kn,dn=kt==="x"?top:left,gn=kt==="x"?bottom:right,Cn=Tt[St],$n=St==="y"?"height":"width",un=Cn+yt[dn],rn=Cn-yt[gn],Sn=[top,left].indexOf(bt)!==-1,Mn=(kn=jt==null?void 0:jt[St])!=null?kn:0,Nn=Sn?un:Cn-At[$n]-Et[$n]-Mn+Lt.altAxis,hn=Sn?Cn+At[$n]+Et[$n]-Mn-Lt.altAxis:rn,Qt=pt&&Sn?withinMaxClamp(Nn,Cn,hn):within(pt?Nn:un,Cn,pt?hn:rn);Tt[St]=Qt,Rt[St]=Qt-Cn}et.modifiersData[rt]=Rt}}const preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(tt){return{scrollLeft:tt.scrollLeft,scrollTop:tt.scrollTop}}function getNodeScroll(tt){return tt===getWindow(tt)||!isHTMLElement$1(tt)?getWindowScroll(tt):getHTMLElementScroll(tt)}function isElementScaled(tt){var et=tt.getBoundingClientRect(),nt=round$2(et.width)/tt.offsetWidth||1,rt=round$2(et.height)/tt.offsetHeight||1;return nt!==1||rt!==1}function getCompositeRect(tt,et,nt){nt===void 0&&(nt=!1);var rt=isHTMLElement$1(et),it=isHTMLElement$1(et)&&isElementScaled(et),ot=getDocumentElement(et),at=getBoundingClientRect(tt,it,nt),st={scrollLeft:0,scrollTop:0},lt={x:0,y:0};return(rt||!rt&&!nt)&&((getNodeName(et)!=="body"||isScrollParent(ot))&&(st=getNodeScroll(et)),isHTMLElement$1(et)?(lt=getBoundingClientRect(et,!0),lt.x+=et.clientLeft,lt.y+=et.clientTop):ot&&(lt.x=getWindowScrollBarX(ot))),{x:at.left+st.scrollLeft-lt.x,y:at.top+st.scrollTop-lt.y,width:at.width,height:at.height}}function order(tt){var et=new Map,nt=new Set,rt=[];tt.forEach(function(ot){et.set(ot.name,ot)});function it(ot){nt.add(ot.name);var at=[].concat(ot.requires||[],ot.requiresIfExists||[]);at.forEach(function(st){if(!nt.has(st)){var lt=et.get(st);lt&&it(lt)}}),rt.push(ot)}return tt.forEach(function(ot){nt.has(ot.name)||it(ot)}),rt}function orderModifiers(tt){var et=order(tt);return modifierPhases.reduce(function(nt,rt){return nt.concat(et.filter(function(it){return it.phase===rt}))},[])}function debounce$4(tt){var et;return function(){return et||(et=new Promise(function(nt){Promise.resolve().then(function(){et=void 0,nt(tt())})})),et}}function mergeByName(tt){var et=tt.reduce(function(nt,rt){var it=nt[rt.name];return nt[rt.name]=it?Object.assign({},it,rt,{options:Object.assign({},it.options,rt.options),data:Object.assign({},it.data,rt.data)}):rt,nt},{});return Object.keys(et).map(function(nt){return et[nt]})}var DEFAULT_OPTIONS$k={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var tt=arguments.length,et=new Array(tt),nt=0;nt{ot||st(getContainer$1(it)||document.body)},[it,ot]),useEnhancedEffect$1(()=>{if(at&&!ot)return setRef(nt,at),()=>{setRef(nt,null)}},[nt,at,ot]),ot){if(reactExports.isValidElement(rt)){const ct={ref:lt};return reactExports.cloneElement(rt,ct)}return jsxRuntimeExports.jsx(reactExports.Fragment,{children:rt})}return jsxRuntimeExports.jsx(reactExports.Fragment,{children:at&&reactDomExports.createPortal(rt,at)})}),Portal$2=Portal$1;function getPopperUtilityClass(tt){return generateUtilityClass("MuiPopper",tt)}generateUtilityClasses("MuiPopper",["root"]);const _excluded$1p=["anchorEl","children","direction","disablePortal","modifiers","open","placement","popperOptions","popperRef","slotProps","slots","TransitionProps","ownerState"],_excluded2$a=["anchorEl","children","container","direction","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition","slotProps","slots"];function flipPlacement(tt,et){if(et==="ltr")return tt;switch(tt){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return tt}}function resolveAnchorEl$1(tt){return typeof tt=="function"?tt():tt}function isHTMLElement(tt){return tt.nodeType!==void 0}const useUtilityClasses$W=()=>composeClasses({root:["root"]},useClassNamesOverride(getPopperUtilityClass)),defaultPopperOptions={},PopperTooltip=reactExports.forwardRef(function(et,nt){var rt;const{anchorEl:it,children:ot,direction:at,disablePortal:st,modifiers:lt,open:ct,placement:ut,popperOptions:ht,popperRef:dt,slotProps:pt={},slots:mt={},TransitionProps:gt}=et,yt=_objectWithoutPropertiesLoose$g(et,_excluded$1p),bt=reactExports.useRef(null),wt=useForkRef(bt,nt),vt=reactExports.useRef(null),kt=useForkRef(vt,dt),St=reactExports.useRef(kt);useEnhancedEffect$1(()=>{St.current=kt},[kt]),reactExports.useImperativeHandle(dt,()=>vt.current,[]);const Tt=flipPlacement(ut,at),[At,Et]=reactExports.useState(Tt),[Mt,Lt]=reactExports.useState(resolveAnchorEl$1(it));reactExports.useEffect(()=>{vt.current&&vt.current.forceUpdate()}),reactExports.useEffect(()=>{it&&Lt(resolveAnchorEl$1(it))},[it]),useEnhancedEffect$1(()=>{if(!Mt||!ct)return;const It=Ut=>{Et(Ut.placement)};let Ot=[{name:"preventOverflow",options:{altBoundary:st}},{name:"flip",options:{altBoundary:st}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:Ut})=>{It(Ut)}}];lt!=null&&(Ot=Ot.concat(lt)),ht&&ht.modifiers!=null&&(Ot=Ot.concat(ht.modifiers));const zt=createPopper(Mt,bt.current,_extends$r({placement:Tt},ht,{modifiers:Ot}));return St.current(zt),()=>{zt.destroy(),St.current(null)}},[Mt,st,lt,ct,ht,Tt]);const jt={placement:At};gt!==null&&(jt.TransitionProps=gt);const Rt=useUtilityClasses$W(),$t=(rt=mt.root)!=null?rt:"div",xt=useSlotProps({elementType:$t,externalSlotProps:pt.root,externalForwardedProps:yt,additionalProps:{role:"tooltip",ref:wt},ownerState:et,className:Rt.root});return jsxRuntimeExports.jsx($t,_extends$r({},xt,{children:typeof ot=="function"?ot(jt):ot}))}),Popper$1=reactExports.forwardRef(function(et,nt){const{anchorEl:rt,children:it,container:ot,direction:at="ltr",disablePortal:st=!1,keepMounted:lt=!1,modifiers:ct,open:ut,placement:ht="bottom",popperOptions:dt=defaultPopperOptions,popperRef:pt,style:mt,transition:gt=!1,slotProps:yt={},slots:bt={}}=et,wt=_objectWithoutPropertiesLoose$g(et,_excluded2$a),[vt,kt]=reactExports.useState(!0),St=()=>{kt(!1)},Tt=()=>{kt(!0)};if(!lt&&!ut&&(!gt||vt))return null;let At;if(ot)At=ot;else if(rt){const Lt=resolveAnchorEl$1(rt);At=Lt&&isHTMLElement(Lt)?ownerDocument(Lt).body:ownerDocument(null).body}const Et=!ut&<&&(!gt||vt)?"none":void 0,Mt=gt?{in:ut,onEnter:St,onExited:Tt}:void 0;return jsxRuntimeExports.jsx(Portal$2,{disablePortal:st,container:At,children:jsxRuntimeExports.jsx(PopperTooltip,_extends$r({anchorEl:rt,direction:at,disablePortal:st,modifiers:ct,ref:nt,open:gt?!vt:ut,placement:ht,popperOptions:dt,popperRef:pt,slotProps:yt,slots:bt},wt,{style:_extends$r({position:"fixed",top:0,left:0,display:Et},mt),TransitionProps:Mt,children:it}))})}),BasePopper=Popper$1;function isOverflowing(tt){const et=ownerDocument(tt);return et.body===tt?ownerWindow(tt).innerWidth>et.documentElement.clientWidth:tt.scrollHeight>tt.clientHeight}function ariaHidden(tt,et){et?tt.setAttribute("aria-hidden","true"):tt.removeAttribute("aria-hidden")}function getPaddingRight(tt){return parseInt(ownerWindow(tt).getComputedStyle(tt).paddingRight,10)||0}function isAriaHiddenForbiddenOnElement(tt){const nt=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(tt.tagName)!==-1,rt=tt.tagName==="INPUT"&&tt.getAttribute("type")==="hidden";return nt||rt}function ariaHiddenSiblings(tt,et,nt,rt,it){const ot=[et,nt,...rt];[].forEach.call(tt.children,at=>{const st=ot.indexOf(at)===-1,lt=!isAriaHiddenForbiddenOnElement(at);st&<&&ariaHidden(at,it)})}function findIndexOf(tt,et){let nt=-1;return tt.some((rt,it)=>et(rt)?(nt=it,!0):!1),nt}function handleContainer(tt,et){const nt=[],rt=tt.container;if(!et.disableScrollLock){if(isOverflowing(rt)){const at=getScrollbarSize(ownerDocument(rt));nt.push({value:rt.style.paddingRight,property:"padding-right",el:rt}),rt.style.paddingRight=`${getPaddingRight(rt)+at}px`;const st=ownerDocument(rt).querySelectorAll(".mui-fixed");[].forEach.call(st,lt=>{nt.push({value:lt.style.paddingRight,property:"padding-right",el:lt}),lt.style.paddingRight=`${getPaddingRight(lt)+at}px`})}let ot;if(rt.parentNode instanceof DocumentFragment)ot=ownerDocument(rt).body;else{const at=rt.parentElement,st=ownerWindow(rt);ot=(at==null?void 0:at.nodeName)==="HTML"&&st.getComputedStyle(at).overflowY==="scroll"?at:rt}nt.push({value:ot.style.overflow,property:"overflow",el:ot},{value:ot.style.overflowX,property:"overflow-x",el:ot},{value:ot.style.overflowY,property:"overflow-y",el:ot}),ot.style.overflow="hidden"}return()=>{nt.forEach(({value:ot,el:at,property:st})=>{ot?at.style.setProperty(st,ot):at.style.removeProperty(st)})}}function getHiddenSiblings(tt){const et=[];return[].forEach.call(tt.children,nt=>{nt.getAttribute("aria-hidden")==="true"&&et.push(nt)}),et}class ModalManager{constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}add(et,nt){let rt=this.modals.indexOf(et);if(rt!==-1)return rt;rt=this.modals.length,this.modals.push(et),et.modalRef&&ariaHidden(et.modalRef,!1);const it=getHiddenSiblings(nt);ariaHiddenSiblings(nt,et.mount,et.modalRef,it,!0);const ot=findIndexOf(this.containers,at=>at.container===nt);return ot!==-1?(this.containers[ot].modals.push(et),rt):(this.containers.push({modals:[et],container:nt,restore:null,hiddenSiblings:it}),rt)}mount(et,nt){const rt=findIndexOf(this.containers,ot=>ot.modals.indexOf(et)!==-1),it=this.containers[rt];it.restore||(it.restore=handleContainer(it,nt))}remove(et,nt=!0){const rt=this.modals.indexOf(et);if(rt===-1)return rt;const it=findIndexOf(this.containers,at=>at.modals.indexOf(et)!==-1),ot=this.containers[it];if(ot.modals.splice(ot.modals.indexOf(et),1),this.modals.splice(rt,1),ot.modals.length===0)ot.restore&&ot.restore(),et.modalRef&&ariaHidden(et.modalRef,nt),ariaHiddenSiblings(ot.container,et.mount,et.modalRef,ot.hiddenSiblings,!1),this.containers.splice(it,1);else{const at=ot.modals[ot.modals.length-1];at.modalRef&&ariaHidden(at.modalRef,!1)}return rt}isTopModal(et){return this.modals.length>0&&this.modals[this.modals.length-1]===et}}function getModalUtilityClass(tt){return generateUtilityClass("MuiModal",tt)}generateUtilityClasses("MuiModal",["root","hidden","backdrop"]);const _excluded$1o=["children","closeAfterTransition","container","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","manager","onBackdropClick","onClose","onKeyDown","open","onTransitionEnter","onTransitionExited","slotProps","slots"],useUtilityClasses$V=tt=>{const{open:et,exited:nt}=tt;return composeClasses({root:["root",!et&&nt&&"hidden"],backdrop:["backdrop"]},useClassNamesOverride(getModalUtilityClass))};function getContainer(tt){return typeof tt=="function"?tt():tt}function getHasTransition(tt){return tt?tt.props.hasOwnProperty("in"):!1}const defaultManager=new ModalManager,Modal$2=reactExports.forwardRef(function(et,nt){var rt,it;const{children:ot,closeAfterTransition:at=!1,container:st,disableAutoFocus:lt=!1,disableEnforceFocus:ct=!1,disableEscapeKeyDown:ut=!1,disablePortal:ht=!1,disableRestoreFocus:dt=!1,disableScrollLock:pt=!1,hideBackdrop:mt=!1,keepMounted:gt=!1,manager:yt=defaultManager,onBackdropClick:bt,onClose:wt,onKeyDown:vt,open:kt,onTransitionEnter:St,onTransitionExited:Tt,slotProps:At={},slots:Et={}}=et,Mt=_objectWithoutPropertiesLoose$g(et,_excluded$1o),Lt=yt,[jt,Rt]=reactExports.useState(!kt),$t=reactExports.useRef({}),xt=reactExports.useRef(null),It=reactExports.useRef(null),Ot=useForkRef(It,nt),zt=getHasTransition(ot),Ut=(rt=et["aria-hidden"])!=null?rt:!0,Wt=()=>ownerDocument(xt.current),Ft=()=>($t.current.modalRef=It.current,$t.current.mountNode=xt.current,$t.current),Nt=()=>{Lt.mount(Ft(),{disableScrollLock:pt}),It.current&&(It.current.scrollTop=0)},Ct=useEventCallback(()=>{const kn=getContainer(st)||Wt().body;Lt.add(Ft(),kn),It.current&&Nt()}),Ht=reactExports.useCallback(()=>Lt.isTopModal(Ft()),[Lt]),Jt=useEventCallback(kn=>{xt.current=kn,!(!kn||!It.current)&&(kt&&Ht()?Nt():ariaHidden(It.current,Ut))}),nn=reactExports.useCallback(()=>{Lt.remove(Ft(),Ut)},[Lt,Ut]);reactExports.useEffect(()=>()=>{nn()},[nn]),reactExports.useEffect(()=>{kt?Ct():(!zt||!at)&&nn()},[kt,nn,zt,at,Ct]);const Yt=_extends$r({},et,{closeAfterTransition:at,disableAutoFocus:lt,disableEnforceFocus:ct,disableEscapeKeyDown:ut,disablePortal:ht,disableRestoreFocus:dt,disableScrollLock:pt,exited:jt,hideBackdrop:mt,keepMounted:gt}),fn=useUtilityClasses$V(Yt),cn=()=>{Rt(!1),St&&St()},_n=()=>{Rt(!0),Tt&&Tt(),at&&nn()},En=kn=>{kn.target===kn.currentTarget&&(bt&&bt(kn),wt&&wt(kn,"backdropClick"))},an=kn=>{vt&&vt(kn),!(kn.key!=="Escape"||!Ht())&&(ut||(kn.stopPropagation(),wt&&wt(kn,"escapeKeyDown")))},en={};ot.props.tabIndex===void 0&&(en.tabIndex="-1"),zt&&(en.onEnter=createChainedFunction(cn,ot.props.onEnter),en.onExited=createChainedFunction(_n,ot.props.onExited));const Tn=(it=Et.root)!=null?it:"div",Rn=useSlotProps({elementType:Tn,externalSlotProps:At.root,externalForwardedProps:Mt,additionalProps:{ref:Ot,role:"presentation",onKeyDown:an},className:fn.root,ownerState:Yt}),An=Et.backdrop,yn=useSlotProps({elementType:An,externalSlotProps:At.backdrop,additionalProps:{"aria-hidden":!0,onClick:En,open:kt},className:fn.backdrop,ownerState:Yt});return!gt&&!kt&&(!zt||jt)?null:jsxRuntimeExports.jsx(Portal$2,{ref:Jt,container:st,disablePortal:ht,children:jsxRuntimeExports.jsxs(Tn,_extends$r({},Rn,{children:[!mt&&An?jsxRuntimeExports.jsx(An,_extends$r({},yn)):null,jsxRuntimeExports.jsx(FocusTrap,{disableEnforceFocus:ct,disableAutoFocus:lt,disableRestoreFocus:dt,isEnabled:Ht,open:kt,children:reactExports.cloneElement(ot,en)})]}))})}),ModalUnstyled=Modal$2,INTENTIONAL_DRAG_COUNT_THRESHOLD=2;function asc(tt,et){return tt-et}function clamp$5(tt,et,nt){return tt==null?et:Math.min(Math.max(et,tt),nt)}function findClosest(tt,et){var nt;const{index:rt}=(nt=tt.reduce((it,ot,at)=>{const st=Math.abs(et-ot);return it===null||st({left:`${tt}%`}),leap:tt=>({width:`${tt}%`})},"horizontal-reverse":{offset:tt=>({right:`${tt}%`}),leap:tt=>({width:`${tt}%`})},vertical:{offset:tt=>({bottom:`${tt}%`}),leap:tt=>({height:`${tt}%`})}},Identity$1=tt=>tt;let cachedSupportsTouchActionNone;function doesSupportTouchActionNone(){return cachedSupportsTouchActionNone===void 0&&(typeof CSS<"u"&&typeof CSS.supports=="function"?cachedSupportsTouchActionNone=CSS.supports("touch-action","none"):cachedSupportsTouchActionNone=!0),cachedSupportsTouchActionNone}function useSlider(tt){const{"aria-labelledby":et,defaultValue:nt,disabled:rt=!1,disableSwap:it=!1,isRtl:ot=!1,marks:at=!1,max:st=100,min:lt=0,name:ct,onChange:ut,onChangeCommitted:ht,orientation:dt="horizontal",rootRef:pt,scale:mt=Identity$1,step:gt=1,tabIndex:yt,value:bt}=tt,wt=reactExports.useRef(),[vt,kt]=reactExports.useState(-1),[St,Tt]=reactExports.useState(-1),[At,Et]=reactExports.useState(!1),Mt=reactExports.useRef(0),[Lt,jt]=useControlled({controlled:bt,default:nt??lt,name:"Slider"}),Rt=ut&&((Mn,Nn,hn)=>{const Qt=Mn.nativeEvent||Mn,Zt=new Qt.constructor(Qt.type,Qt);Object.defineProperty(Zt,"target",{writable:!0,value:{value:Nn,name:ct}}),ut(Zt,Nn,hn)}),$t=Array.isArray(Lt);let xt=$t?Lt.slice().sort(asc):[Lt];xt=xt.map(Mn=>clamp$5(Mn,lt,st));const It=at===!0&>!==null?[...Array(Math.floor((st-lt)/gt)+1)].map((Mn,Nn)=>({value:lt+gt*Nn})):at||[],Ot=It.map(Mn=>Mn.value),{isFocusVisibleRef:zt,onBlur:Ut,onFocus:Wt,ref:Ft}=useIsFocusVisible(),[Nt,Ct]=reactExports.useState(-1),Ht=reactExports.useRef(),Jt=useForkRef(Ft,Ht),nn=useForkRef(pt,Jt),Yt=Mn=>Nn=>{var hn;const Qt=Number(Nn.currentTarget.getAttribute("data-index"));Wt(Nn),zt.current===!0&&Ct(Qt),Tt(Qt),Mn==null||(hn=Mn.onFocus)==null||hn.call(Mn,Nn)},fn=Mn=>Nn=>{var hn;Ut(Nn),zt.current===!1&&Ct(-1),Tt(-1),Mn==null||(hn=Mn.onBlur)==null||hn.call(Mn,Nn)};useEnhancedEffect$1(()=>{if(rt&&Ht.current.contains(document.activeElement)){var Mn;(Mn=document.activeElement)==null||Mn.blur()}},[rt]),rt&&vt!==-1&&kt(-1),rt&&Nt!==-1&&Ct(-1);const cn=Mn=>Nn=>{var hn;(hn=Mn.onChange)==null||hn.call(Mn,Nn);const Qt=Number(Nn.currentTarget.getAttribute("data-index")),Zt=xt[Qt],wn=Ot.indexOf(Zt);let On=Nn.target.valueAsNumber;if(It&>==null){const jn=Ot[Ot.length-1];On>jn?On=jn:On{const{current:hn}=Ht,{width:Qt,height:Zt,bottom:wn,left:On}=hn.getBoundingClientRect();let jn;En.indexOf("vertical")===0?jn=(wn-Mn.y)/Zt:jn=(Mn.x-On)/Qt,En.indexOf("-reverse")!==-1&&(jn=1-jn);let Un;if(Un=percentToValue(jn,lt,st),gt)Un=roundValueToStep(Un,gt,lt);else{const qn=findClosest(Ot,Un);Un=Ot[qn]}Un=clamp$5(Un,lt,st);let tr=0;if($t){Nn?tr=_n.current:tr=findClosest(xt,Un),it&&(Un=clamp$5(Un,xt[tr-1]||-1/0,xt[tr+1]||1/0));const qn=Un;Un=setValueIndex({values:xt,newValue:Un,index:tr}),it&&Nn||(tr=Un.indexOf(qn),_n.current=tr)}return{newValue:Un,activeIndex:tr}},en=useEventCallback(Mn=>{const Nn=trackFinger(Mn,wt);if(!Nn)return;if(Mt.current+=1,Mn.type==="mousemove"&&Mn.buttons===0){Tn(Mn);return}const{newValue:hn,activeIndex:Qt}=an({finger:Nn,move:!0});focusThumb({sliderRef:Ht,activeIndex:Qt,setActive:kt}),jt(hn),!At&&Mt.current>INTENTIONAL_DRAG_COUNT_THRESHOLD&&Et(!0),Rt&&!areValuesEqual(hn,Lt)&&Rt(Mn,hn,Qt)}),Tn=useEventCallback(Mn=>{const Nn=trackFinger(Mn,wt);if(Et(!1),!Nn)return;const{newValue:hn}=an({finger:Nn,move:!0});kt(-1),Mn.type==="touchend"&&Tt(-1),ht&&ht(Mn,hn),wt.current=void 0,An()}),Rn=useEventCallback(Mn=>{if(rt)return;doesSupportTouchActionNone()||Mn.preventDefault();const Nn=Mn.changedTouches[0];Nn!=null&&(wt.current=Nn.identifier);const hn=trackFinger(Mn,wt);if(hn!==!1){const{newValue:Zt,activeIndex:wn}=an({finger:hn});focusThumb({sliderRef:Ht,activeIndex:wn,setActive:kt}),jt(Zt),Rt&&!areValuesEqual(Zt,Lt)&&Rt(Mn,Zt,wn)}Mt.current=0;const Qt=ownerDocument(Ht.current);Qt.addEventListener("touchmove",en),Qt.addEventListener("touchend",Tn)}),An=reactExports.useCallback(()=>{const Mn=ownerDocument(Ht.current);Mn.removeEventListener("mousemove",en),Mn.removeEventListener("mouseup",Tn),Mn.removeEventListener("touchmove",en),Mn.removeEventListener("touchend",Tn)},[Tn,en]);reactExports.useEffect(()=>{const{current:Mn}=Ht;return Mn.addEventListener("touchstart",Rn,{passive:doesSupportTouchActionNone()}),()=>{Mn.removeEventListener("touchstart",Rn,{passive:doesSupportTouchActionNone()}),An()}},[An,Rn]),reactExports.useEffect(()=>{rt&&An()},[rt,An]);const yn=Mn=>Nn=>{var hn;if((hn=Mn.onMouseDown)==null||hn.call(Mn,Nn),rt||Nn.defaultPrevented||Nn.button!==0)return;Nn.preventDefault();const Qt=trackFinger(Nn,wt);if(Qt!==!1){const{newValue:wn,activeIndex:On}=an({finger:Qt});focusThumb({sliderRef:Ht,activeIndex:On,setActive:kt}),jt(wn),Rt&&!areValuesEqual(wn,Lt)&&Rt(Nn,wn,On)}Mt.current=0;const Zt=ownerDocument(Ht.current);Zt.addEventListener("mousemove",en),Zt.addEventListener("mouseup",Tn)},kn=valueToPercent($t?xt[0]:lt,lt,st),dn=valueToPercent(xt[xt.length-1],lt,st)-kn,gn=(Mn={})=>{const Nn={onMouseDown:yn(Mn||{})},hn=_extends$r({},Mn,Nn);return _extends$r({ref:nn},hn)},Cn=Mn=>Nn=>{var hn;(hn=Mn.onMouseOver)==null||hn.call(Mn,Nn);const Qt=Number(Nn.currentTarget.getAttribute("data-index"));Tt(Qt)},$n=Mn=>Nn=>{var hn;(hn=Mn.onMouseLeave)==null||hn.call(Mn,Nn),Tt(-1)};return{active:vt,axis:En,axisProps,dragging:At,focusedThumbIndex:Nt,getHiddenInputProps:(Mn={})=>{var Nn;const hn={onChange:cn(Mn||{}),onFocus:Yt(Mn||{}),onBlur:fn(Mn||{})},Qt=_extends$r({},Mn,hn);return _extends$r({tabIndex:yt,"aria-labelledby":et,"aria-orientation":dt,"aria-valuemax":mt(st),"aria-valuemin":mt(lt),name:ct,type:"range",min:tt.min,max:tt.max,step:tt.step===null&&tt.marks?"any":(Nn=tt.step)!=null?Nn:void 0,disabled:rt},Qt,{style:_extends$r({},visuallyHidden$1,{direction:ot?"rtl":"ltr",width:"100%",height:"100%"})})},getRootProps:gn,getThumbProps:(Mn={})=>{const Nn={onMouseOver:Cn(Mn||{}),onMouseLeave:$n(Mn||{})};return _extends$r({},Mn,Nn)},marks:It,open:St,range:$t,rootRef:nn,trackLeap:dn,trackOffset:kn,values:xt,getThumbStyle:Mn=>({pointerEvents:vt!==-1&&vt!==Mn?"none":void 0})}}const _excluded$1n=["onChange","maxRows","minRows","style","value"];function getStyleValue(tt){return parseInt(tt,10)||0}const styles$5={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function isEmpty$1(tt){return tt==null||Object.keys(tt).length===0||tt.outerHeightStyle===0&&!tt.overflow}const TextareaAutosize=reactExports.forwardRef(function(et,nt){const{onChange:rt,maxRows:it,minRows:ot=1,style:at,value:st}=et,lt=_objectWithoutPropertiesLoose$g(et,_excluded$1n),{current:ct}=reactExports.useRef(st!=null),ut=reactExports.useRef(null),ht=useForkRef(nt,ut),dt=reactExports.useRef(null),pt=reactExports.useRef(0),[mt,gt]=reactExports.useState({outerHeightStyle:0}),yt=reactExports.useCallback(()=>{const St=ut.current,At=ownerWindow(St).getComputedStyle(St);if(At.width==="0px")return{outerHeightStyle:0};const Et=dt.current;Et.style.width=At.width,Et.value=St.value||et.placeholder||"x",Et.value.slice(-1)===` -`&&(Et.value+=" ");const Mt=At.boxSizing,Lt=getStyleValue(At.paddingBottom)+getStyleValue(At.paddingTop),jt=getStyleValue(At.borderBottomWidth)+getStyleValue(At.borderTopWidth),Rt=Et.scrollHeight;Et.value="x";const $t=Et.scrollHeight;let xt=Rt;ot&&(xt=Math.max(Number(ot)*$t,xt)),it&&(xt=Math.min(Number(it)*$t,xt)),xt=Math.max(xt,$t);const It=xt+(Mt==="border-box"?Lt+jt:0),Ot=Math.abs(xt-Rt)<=1;return{outerHeightStyle:It,overflow:Ot}},[it,ot,et.placeholder]),bt=(St,Tt)=>{const{outerHeightStyle:At,overflow:Et}=Tt;return pt.current<20&&(At>0&&Math.abs((St.outerHeightStyle||0)-At)>1||St.overflow!==Et)?(pt.current+=1,{overflow:Et,outerHeightStyle:At}):St},wt=reactExports.useCallback(()=>{const St=yt();isEmpty$1(St)||gt(Tt=>bt(Tt,St))},[yt]),vt=()=>{const St=yt();isEmpty$1(St)||reactDomExports.flushSync(()=>{gt(Tt=>bt(Tt,St))})};reactExports.useEffect(()=>{const St=debounce$5(()=>{pt.current=0,ut.current&&vt()});let Tt;const At=ut.current,Et=ownerWindow(At);return Et.addEventListener("resize",St),typeof ResizeObserver<"u"&&(Tt=new ResizeObserver(St),Tt.observe(At)),()=>{St.clear(),Et.removeEventListener("resize",St),Tt&&Tt.disconnect()}}),useEnhancedEffect$1(()=>{wt()}),reactExports.useEffect(()=>{pt.current=0},[st]);const kt=St=>{pt.current=0,ct||wt(),rt&&rt(St)};return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("textarea",_extends$r({value:st,onChange:kt,ref:ht,rows:ot,style:_extends$r({height:mt.outerHeightStyle,overflow:mt.overflow?"hidden":void 0},at)},lt)),jsxRuntimeExports.jsx("textarea",{"aria-hidden":!0,className:et.className,readOnly:!0,ref:dt,tabIndex:-1,style:_extends$r({},styles$5.shadow,at,{paddingTop:0,paddingBottom:0})})]})}),TextareaAutosize$1=TextareaAutosize;function getSvgIconUtilityClass(tt){return generateUtilityClass("MuiSvgIcon",tt)}generateUtilityClasses("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const _excluded$1m=["children","className","color","component","fontSize","htmlColor","inheritViewBox","titleAccess","viewBox"],useUtilityClasses$U=tt=>{const{color:et,fontSize:nt,classes:rt}=tt,it={root:["root",et!=="inherit"&&`color${capitalize(et)}`,`fontSize${capitalize(nt)}`]};return composeClasses(it,getSvgIconUtilityClass,rt)},SvgIconRoot=styled$1("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.color!=="inherit"&&et[`color${capitalize(nt.color)}`],et[`fontSize${capitalize(nt.fontSize)}`]]}})(({theme:tt,ownerState:et})=>{var nt,rt,it,ot,at,st,lt,ct,ut,ht,dt,pt,mt;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:et.hasSvgAsChild?void 0:"currentColor",flexShrink:0,transition:(nt=tt.transitions)==null||(rt=nt.create)==null?void 0:rt.call(nt,"fill",{duration:(it=tt.transitions)==null||(it=it.duration)==null?void 0:it.shorter}),fontSize:{inherit:"inherit",small:((ot=tt.typography)==null||(at=ot.pxToRem)==null?void 0:at.call(ot,20))||"1.25rem",medium:((st=tt.typography)==null||(lt=st.pxToRem)==null?void 0:lt.call(st,24))||"1.5rem",large:((ct=tt.typography)==null||(ut=ct.pxToRem)==null?void 0:ut.call(ct,35))||"2.1875rem"}[et.fontSize],color:(ht=(dt=(tt.vars||tt).palette)==null||(dt=dt[et.color])==null?void 0:dt.main)!=null?ht:{action:(pt=(tt.vars||tt).palette)==null||(pt=pt.action)==null?void 0:pt.active,disabled:(mt=(tt.vars||tt).palette)==null||(mt=mt.action)==null?void 0:mt.disabled,inherit:void 0}[et.color]}}),SvgIcon=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiSvgIcon"}),{children:it,className:ot,color:at="inherit",component:st="svg",fontSize:lt="medium",htmlColor:ct,inheritViewBox:ut=!1,titleAccess:ht,viewBox:dt="0 0 24 24"}=rt,pt=_objectWithoutPropertiesLoose$g(rt,_excluded$1m),mt=reactExports.isValidElement(it)&&it.type==="svg",gt=_extends$r({},rt,{color:at,component:st,fontSize:lt,instanceFontSize:et.fontSize,inheritViewBox:ut,viewBox:dt,hasSvgAsChild:mt}),yt={};ut||(yt.viewBox=dt);const bt=useUtilityClasses$U(gt);return jsxRuntimeExports.jsxs(SvgIconRoot,_extends$r({as:st,className:clsx(bt.root,ot),focusable:"false",color:ct,"aria-hidden":ht?void 0:!0,role:ht?"img":void 0,ref:nt},yt,pt,mt&&it.props,{ownerState:gt,children:[mt?it.props.children:it,ht?jsxRuntimeExports.jsx("title",{children:ht}):null]}))});SvgIcon.muiName="SvgIcon";const SvgIcon$1=SvgIcon;function createSvgIcon(tt,et){function nt(rt,it){return jsxRuntimeExports.jsx(SvgIcon$1,_extends$r({"data-testid":`${et}Icon`,ref:it},rt,{children:tt}))}return nt.muiName=SvgIcon$1.muiName,reactExports.memo(reactExports.forwardRef(nt))}function _setPrototypeOf$b(tt,et){return _setPrototypeOf$b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(rt,it){return rt.__proto__=it,rt},_setPrototypeOf$b(tt,et)}function _inheritsLoose$2(tt,et){tt.prototype=Object.create(et.prototype),tt.prototype.constructor=tt,_setPrototypeOf$b(tt,et)}function hasClass(tt,et){return tt.classList?!!et&&tt.classList.contains(et):(" "+(tt.className.baseVal||tt.className)+" ").indexOf(" "+et+" ")!==-1}function addClass(tt,et){tt.classList?tt.classList.add(et):hasClass(tt,et)||(typeof tt.className=="string"?tt.className=tt.className+" "+et:tt.setAttribute("class",(tt.className&&tt.className.baseVal||"")+" "+et))}function replaceClassName(tt,et){return tt.replace(new RegExp("(^|\\s)"+et+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function removeClass$1(tt,et){tt.classList?tt.classList.remove(et):typeof tt.className=="string"?tt.className=replaceClassName(tt.className,et):tt.setAttribute("class",replaceClassName(tt.className&&tt.className.baseVal||"",et))}const config$2={disabled:!1},TransitionGroupContext=React$1.createContext(null);var forceReflow=function(et){return et.scrollTop},UNMOUNTED="unmounted",EXITED="exited",ENTERING="entering",ENTERED="entered",EXITING="exiting",Transition=function(tt){_inheritsLoose$2(et,tt);function et(rt,it){var ot;ot=tt.call(this,rt,it)||this;var at=it,st=at&&!at.isMounting?rt.enter:rt.appear,lt;return ot.appearStatus=null,rt.in?st?(lt=EXITED,ot.appearStatus=ENTERING):lt=ENTERED:rt.unmountOnExit||rt.mountOnEnter?lt=UNMOUNTED:lt=EXITED,ot.state={status:lt},ot.nextCallback=null,ot}et.getDerivedStateFromProps=function(it,ot){var at=it.in;return at&&ot.status===UNMOUNTED?{status:EXITED}:null};var nt=et.prototype;return nt.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},nt.componentDidUpdate=function(it){var ot=null;if(it!==this.props){var at=this.state.status;this.props.in?at!==ENTERING&&at!==ENTERED&&(ot=ENTERING):(at===ENTERING||at===ENTERED)&&(ot=EXITING)}this.updateStatus(!1,ot)},nt.componentWillUnmount=function(){this.cancelNextCallback()},nt.getTimeouts=function(){var it=this.props.timeout,ot,at,st;return ot=at=st=it,it!=null&&typeof it!="number"&&(ot=it.exit,at=it.enter,st=it.appear!==void 0?it.appear:at),{exit:ot,enter:at,appear:st}},nt.updateStatus=function(it,ot){if(it===void 0&&(it=!1),ot!==null)if(this.cancelNextCallback(),ot===ENTERING){if(this.props.unmountOnExit||this.props.mountOnEnter){var at=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this);at&&forceReflow(at)}this.performEnter(it)}else this.performExit();else this.props.unmountOnExit&&this.state.status===EXITED&&this.setState({status:UNMOUNTED})},nt.performEnter=function(it){var ot=this,at=this.props.enter,st=this.context?this.context.isMounting:it,lt=this.props.nodeRef?[st]:[ReactDOM.findDOMNode(this),st],ct=lt[0],ut=lt[1],ht=this.getTimeouts(),dt=st?ht.appear:ht.enter;if(!it&&!at||config$2.disabled){this.safeSetState({status:ENTERED},function(){ot.props.onEntered(ct)});return}this.props.onEnter(ct,ut),this.safeSetState({status:ENTERING},function(){ot.props.onEntering(ct,ut),ot.onTransitionEnd(dt,function(){ot.safeSetState({status:ENTERED},function(){ot.props.onEntered(ct,ut)})})})},nt.performExit=function(){var it=this,ot=this.props.exit,at=this.getTimeouts(),st=this.props.nodeRef?void 0:ReactDOM.findDOMNode(this);if(!ot||config$2.disabled){this.safeSetState({status:EXITED},function(){it.props.onExited(st)});return}this.props.onExit(st),this.safeSetState({status:EXITING},function(){it.props.onExiting(st),it.onTransitionEnd(at.exit,function(){it.safeSetState({status:EXITED},function(){it.props.onExited(st)})})})},nt.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},nt.safeSetState=function(it,ot){ot=this.setNextCallback(ot),this.setState(it,ot)},nt.setNextCallback=function(it){var ot=this,at=!0;return this.nextCallback=function(st){at&&(at=!1,ot.nextCallback=null,it(st))},this.nextCallback.cancel=function(){at=!1},this.nextCallback},nt.onTransitionEnd=function(it,ot){this.setNextCallback(ot);var at=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this),st=it==null&&!this.props.addEndListener;if(!at||st){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var lt=this.props.nodeRef?[this.nextCallback]:[at,this.nextCallback],ct=lt[0],ut=lt[1];this.props.addEndListener(ct,ut)}it!=null&&setTimeout(this.nextCallback,it)},nt.render=function(){var it=this.state.status;if(it===UNMOUNTED)return null;var ot=this.props,at=ot.children;ot.in,ot.mountOnEnter,ot.unmountOnExit,ot.appear,ot.enter,ot.exit,ot.timeout,ot.addEndListener,ot.onEnter,ot.onEntering,ot.onEntered,ot.onExit,ot.onExiting,ot.onExited,ot.nodeRef;var st=_objectWithoutPropertiesLoose$g(ot,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return React$1.createElement(TransitionGroupContext.Provider,{value:null},typeof at=="function"?at(it,st):React$1.cloneElement(React$1.Children.only(at),st))},et}(React$1.Component);Transition.contextType=TransitionGroupContext;Transition.propTypes={};function noop$8(){}Transition.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:noop$8,onEntering:noop$8,onEntered:noop$8,onExit:noop$8,onExiting:noop$8,onExited:noop$8};Transition.UNMOUNTED=UNMOUNTED;Transition.EXITED=EXITED;Transition.ENTERING=ENTERING;Transition.ENTERED=ENTERED;Transition.EXITING=EXITING;const Transition$1=Transition;var _addClass=function(et,nt){return et&&nt&&nt.split(" ").forEach(function(rt){return addClass(et,rt)})},removeClass=function(et,nt){return et&&nt&&nt.split(" ").forEach(function(rt){return removeClass$1(et,rt)})},CSSTransition=function(tt){_inheritsLoose$2(et,tt);function et(){for(var rt,it=arguments.length,ot=new Array(it),at=0;attt.scrollTop;function getTransitionProps(tt,et){var nt,rt;const{timeout:it,easing:ot,style:at={}}=tt;return{duration:(nt=at.transitionDuration)!=null?nt:typeof it=="number"?it:it[et.mode]||0,easing:(rt=at.transitionTimingFunction)!=null?rt:typeof ot=="object"?ot[et.mode]:ot,delay:at.transitionDelay}}function getPaperUtilityClass(tt){return generateUtilityClass("MuiPaper",tt)}generateUtilityClasses("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const _excluded$1l=["className","component","elevation","square","variant"],useUtilityClasses$T=tt=>{const{square:et,elevation:nt,variant:rt,classes:it}=tt,ot={root:["root",rt,!et&&"rounded",rt==="elevation"&&`elevation${nt}`]};return composeClasses(ot,getPaperUtilityClass,it)},PaperRoot=styled$1("div",{name:"MuiPaper",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,et[nt.variant],!nt.square&&et.rounded,nt.variant==="elevation"&&et[`elevation${nt.elevation}`]]}})(({theme:tt,ownerState:et})=>{var nt;return _extends$r({backgroundColor:(tt.vars||tt).palette.background.paper,color:(tt.vars||tt).palette.text.primary,transition:tt.transitions.create("box-shadow")},!et.square&&{borderRadius:tt.shape.borderRadius},et.variant==="outlined"&&{border:`1px solid ${(tt.vars||tt).palette.divider}`},et.variant==="elevation"&&_extends$r({boxShadow:(tt.vars||tt).shadows[et.elevation]},!tt.vars&&tt.palette.mode==="dark"&&{backgroundImage:`linear-gradient(${alpha$1("#fff",getOverlayAlpha$1(et.elevation))}, ${alpha$1("#fff",getOverlayAlpha$1(et.elevation))})`},tt.vars&&{backgroundImage:(nt=tt.vars.overlays)==null?void 0:nt[et.elevation]}))}),Paper=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiPaper"}),{className:it,component:ot="div",elevation:at=1,square:st=!1,variant:lt="elevation"}=rt,ct=_objectWithoutPropertiesLoose$g(rt,_excluded$1l),ut=_extends$r({},rt,{component:ot,elevation:at,square:st,variant:lt}),ht=useUtilityClasses$T(ut);return jsxRuntimeExports.jsx(PaperRoot,_extends$r({as:ot,ownerState:ut,className:clsx(ht.root,it),ref:nt},ct))}),Paper$1=Paper;function Ripple(tt){const{className:et,classes:nt,pulsate:rt=!1,rippleX:it,rippleY:ot,rippleSize:at,in:st,onExited:lt,timeout:ct}=tt,[ut,ht]=reactExports.useState(!1),dt=clsx(et,nt.ripple,nt.rippleVisible,rt&&nt.ripplePulsate),pt={width:at,height:at,top:-(at/2)+ot,left:-(at/2)+it},mt=clsx(nt.child,ut&&nt.childLeaving,rt&&nt.childPulsate);return!st&&!ut&&ht(!0),reactExports.useEffect(()=>{if(!st&<!=null){const gt=setTimeout(lt,ct);return()=>{clearTimeout(gt)}}},[lt,st,ct]),jsxRuntimeExports.jsx("span",{className:dt,style:pt,children:jsxRuntimeExports.jsx("span",{className:mt})})}const touchRippleClasses=generateUtilityClasses("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),touchRippleClasses$1=touchRippleClasses,_excluded$1k=["center","classes","className"];let _$1=tt=>tt,_t$1,_t2$1,_t3$1,_t4$1;const DURATION=550,DELAY_RIPPLE=80,enterKeyframe=keyframes(_t$1||(_t$1=_$1` + */function styled$3(tt,et){return newStyled(tt,et)}const internal_processStyles=(tt,et)=>{Array.isArray(tt.__emotion_styles)&&(tt.__emotion_styles=et(tt.__emotion_styles))},_excluded$1C=["values","unit","step"],sortBreakpointsValues=tt=>{const et=Object.keys(tt).map(nt=>({key:nt,val:tt[nt]}))||[];return et.sort((nt,rt)=>nt.val-rt.val),et.reduce((nt,rt)=>_extends$r({},nt,{[rt.key]:rt.val}),{})};function createBreakpoints(tt){const{values:et={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:nt="px",step:rt=5}=tt,it=_objectWithoutPropertiesLoose$g(tt,_excluded$1C),ot=sortBreakpointsValues(et),at=Object.keys(ot);function st(dt){return`@media (min-width:${typeof et[dt]=="number"?et[dt]:dt}${nt})`}function lt(dt){return`@media (max-width:${(typeof et[dt]=="number"?et[dt]:dt)-rt/100}${nt})`}function ct(dt,pt){const mt=at.indexOf(pt);return`@media (min-width:${typeof et[dt]=="number"?et[dt]:dt}${nt}) and (max-width:${(mt!==-1&&typeof et[at[mt]]=="number"?et[at[mt]]:pt)-rt/100}${nt})`}function ut(dt){return at.indexOf(dt)+1`@media (min-width:${values$1[tt]}px)`};function handleBreakpoints(tt,et,nt){const rt=tt.theme||{};if(Array.isArray(et)){const ot=rt.breakpoints||defaultBreakpoints;return et.reduce((at,st,lt)=>(at[ot.up(ot.keys[lt])]=nt(et[lt]),at),{})}if(typeof et=="object"){const ot=rt.breakpoints||defaultBreakpoints;return Object.keys(et).reduce((at,st)=>{if(Object.keys(ot.values||values$1).indexOf(st)!==-1){const lt=ot.up(st);at[lt]=nt(et[st],st)}else{const lt=st;at[lt]=et[lt]}return at},{})}return nt(et)}function createEmptyBreakpointObject(tt={}){var et;return((et=tt.keys)==null?void 0:et.reduce((rt,it)=>{const ot=tt.up(it);return rt[ot]={},rt},{}))||{}}function removeUnusedBreakpoints(tt,et){return tt.reduce((nt,rt)=>{const it=nt[rt];return(!it||Object.keys(it).length===0)&&delete nt[rt],nt},et)}function mergeBreakpointsInOrder(tt,...et){const nt=createEmptyBreakpointObject(tt),rt=[nt,...et].reduce((it,ot)=>deepmerge$1(it,ot),{});return removeUnusedBreakpoints(Object.keys(nt),rt)}function computeBreakpointsBase(tt,et){if(typeof tt!="object")return{};const nt={},rt=Object.keys(et);return Array.isArray(tt)?rt.forEach((it,ot)=>{ot{tt[it]!=null&&(nt[it]=!0)}),nt}function resolveBreakpointValues({values:tt,breakpoints:et,base:nt}){const rt=nt||computeBreakpointsBase(tt,et),it=Object.keys(rt);if(it.length===0)return tt;let ot;return it.reduce((at,st,lt)=>(Array.isArray(tt)?(at[st]=tt[lt]!=null?tt[lt]:tt[ot],ot=lt):typeof tt=="object"?(at[st]=tt[st]!=null?tt[st]:tt[ot],ot=st):at[st]=tt,at),{})}function getPath$2(tt,et,nt=!0){if(!et||typeof et!="string")return null;if(tt&&tt.vars&&nt){const rt=`vars.${et}`.split(".").reduce((it,ot)=>it&&it[ot]?it[ot]:null,tt);if(rt!=null)return rt}return et.split(".").reduce((rt,it)=>rt&&rt[it]!=null?rt[it]:null,tt)}function getStyleValue$1(tt,et,nt,rt=nt){let it;return typeof tt=="function"?it=tt(nt):Array.isArray(tt)?it=tt[nt]||rt:it=getPath$2(tt,nt)||rt,et&&(it=et(it,rt,tt)),it}function style$3(tt){const{prop:et,cssProperty:nt=tt.prop,themeKey:rt,transform:it}=tt,ot=at=>{if(at[et]==null)return null;const st=at[et],lt=at.theme,ct=getPath$2(lt,rt)||{};return handleBreakpoints(at,st,ht=>{let dt=getStyleValue$1(ct,it,ht);return ht===dt&&typeof ht=="string"&&(dt=getStyleValue$1(ct,it,`${et}${ht==="default"?"":capitalize(ht)}`,ht)),nt===!1?dt:{[nt]:dt}})};return ot.propTypes={},ot.filterProps=[et],ot}function memoize$3(tt){const et={};return nt=>(et[nt]===void 0&&(et[nt]=tt(nt)),et[nt])}const properties={m:"margin",p:"padding"},directions={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},aliases$1={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},getCssProperties=memoize$3(tt=>{if(tt.length>2)if(aliases$1[tt])tt=aliases$1[tt];else return[tt];const[et,nt]=tt.split(""),rt=properties[et],it=directions[nt]||"";return Array.isArray(it)?it.map(ot=>rt+ot):[rt+it]}),marginKeys=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],paddingKeys=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...marginKeys,...paddingKeys];function createUnaryUnit(tt,et,nt,rt){var it;const ot=(it=getPath$2(tt,et,!1))!=null?it:nt;return typeof ot=="number"?at=>typeof at=="string"?at:ot*at:Array.isArray(ot)?at=>typeof at=="string"?at:ot[at]:typeof ot=="function"?ot:()=>{}}function createUnarySpacing(tt){return createUnaryUnit(tt,"spacing",8)}function getValue$3(tt,et){if(typeof et=="string"||et==null)return et;const nt=Math.abs(et),rt=tt(nt);return et>=0?rt:typeof rt=="number"?-rt:`-${rt}`}function getStyleFromPropValue(tt,et){return nt=>tt.reduce((rt,it)=>(rt[it]=getValue$3(et,nt),rt),{})}function resolveCssProperty(tt,et,nt,rt){if(et.indexOf(nt)===-1)return null;const it=getCssProperties(nt),ot=getStyleFromPropValue(it,rt),at=tt[nt];return handleBreakpoints(tt,at,ot)}function style$2(tt,et){const nt=createUnarySpacing(tt.theme);return Object.keys(tt).map(rt=>resolveCssProperty(tt,et,rt,nt)).reduce(merge,{})}function margin(tt){return style$2(tt,marginKeys)}margin.propTypes={};margin.filterProps=marginKeys;function padding$2(tt){return style$2(tt,paddingKeys)}padding$2.propTypes={};padding$2.filterProps=paddingKeys;function createSpacing(tt=8){if(tt.mui)return tt;const et=createUnarySpacing({spacing:tt}),nt=(...rt)=>(rt.length===0?[1]:rt).map(ot=>{const at=et(ot);return typeof at=="number"?`${at}px`:at}).join(" ");return nt.mui=!0,nt}function compose$1(...tt){const et=tt.reduce((rt,it)=>(it.filterProps.forEach(ot=>{rt[ot]=it}),rt),{}),nt=rt=>Object.keys(rt).reduce((it,ot)=>et[ot]?merge(it,et[ot](rt)):it,{});return nt.propTypes={},nt.filterProps=tt.reduce((rt,it)=>rt.concat(it.filterProps),[]),nt}function borderTransform(tt){return typeof tt!="number"?tt:`${tt}px solid`}const border$1=style$3({prop:"border",themeKey:"borders",transform:borderTransform}),borderTop=style$3({prop:"borderTop",themeKey:"borders",transform:borderTransform}),borderRight=style$3({prop:"borderRight",themeKey:"borders",transform:borderTransform}),borderBottom=style$3({prop:"borderBottom",themeKey:"borders",transform:borderTransform}),borderLeft=style$3({prop:"borderLeft",themeKey:"borders",transform:borderTransform}),borderColor=style$3({prop:"borderColor",themeKey:"palette"}),borderTopColor=style$3({prop:"borderTopColor",themeKey:"palette"}),borderRightColor=style$3({prop:"borderRightColor",themeKey:"palette"}),borderBottomColor=style$3({prop:"borderBottomColor",themeKey:"palette"}),borderLeftColor=style$3({prop:"borderLeftColor",themeKey:"palette"}),borderRadius=tt=>{if(tt.borderRadius!==void 0&&tt.borderRadius!==null){const et=createUnaryUnit(tt.theme,"shape.borderRadius",4),nt=rt=>({borderRadius:getValue$3(et,rt)});return handleBreakpoints(tt,tt.borderRadius,nt)}return null};borderRadius.propTypes={};borderRadius.filterProps=["borderRadius"];compose$1(border$1,borderTop,borderRight,borderBottom,borderLeft,borderColor,borderTopColor,borderRightColor,borderBottomColor,borderLeftColor,borderRadius);const gap=tt=>{if(tt.gap!==void 0&&tt.gap!==null){const et=createUnaryUnit(tt.theme,"spacing",8),nt=rt=>({gap:getValue$3(et,rt)});return handleBreakpoints(tt,tt.gap,nt)}return null};gap.propTypes={};gap.filterProps=["gap"];const columnGap=tt=>{if(tt.columnGap!==void 0&&tt.columnGap!==null){const et=createUnaryUnit(tt.theme,"spacing",8),nt=rt=>({columnGap:getValue$3(et,rt)});return handleBreakpoints(tt,tt.columnGap,nt)}return null};columnGap.propTypes={};columnGap.filterProps=["columnGap"];const rowGap=tt=>{if(tt.rowGap!==void 0&&tt.rowGap!==null){const et=createUnaryUnit(tt.theme,"spacing",8),nt=rt=>({rowGap:getValue$3(et,rt)});return handleBreakpoints(tt,tt.rowGap,nt)}return null};rowGap.propTypes={};rowGap.filterProps=["rowGap"];const gridColumn=style$3({prop:"gridColumn"}),gridRow=style$3({prop:"gridRow"}),gridAutoFlow=style$3({prop:"gridAutoFlow"}),gridAutoColumns=style$3({prop:"gridAutoColumns"}),gridAutoRows=style$3({prop:"gridAutoRows"}),gridTemplateColumns=style$3({prop:"gridTemplateColumns"}),gridTemplateRows=style$3({prop:"gridTemplateRows"}),gridTemplateAreas=style$3({prop:"gridTemplateAreas"}),gridArea=style$3({prop:"gridArea"});compose$1(gap,columnGap,rowGap,gridColumn,gridRow,gridAutoFlow,gridAutoColumns,gridAutoRows,gridTemplateColumns,gridTemplateRows,gridTemplateAreas,gridArea);function paletteTransform(tt,et){return et==="grey"?et:tt}const color$2=style$3({prop:"color",themeKey:"palette",transform:paletteTransform}),bgcolor=style$3({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:paletteTransform}),backgroundColor$1=style$3({prop:"backgroundColor",themeKey:"palette",transform:paletteTransform});compose$1(color$2,bgcolor,backgroundColor$1);function sizingTransform(tt){return tt<=1&&tt!==0?`${tt*100}%`:tt}const width=style$3({prop:"width",transform:sizingTransform}),maxWidth=tt=>{if(tt.maxWidth!==void 0&&tt.maxWidth!==null){const et=nt=>{var rt;return{maxWidth:((rt=tt.theme)==null||(rt=rt.breakpoints)==null||(rt=rt.values)==null?void 0:rt[nt])||values$1[nt]||sizingTransform(nt)}};return handleBreakpoints(tt,tt.maxWidth,et)}return null};maxWidth.filterProps=["maxWidth"];const minWidth=style$3({prop:"minWidth",transform:sizingTransform}),height=style$3({prop:"height",transform:sizingTransform}),maxHeight=style$3({prop:"maxHeight",transform:sizingTransform}),minHeight=style$3({prop:"minHeight",transform:sizingTransform});style$3({prop:"size",cssProperty:"width",transform:sizingTransform});style$3({prop:"size",cssProperty:"height",transform:sizingTransform});const boxSizing=style$3({prop:"boxSizing"});compose$1(width,maxWidth,minWidth,height,maxHeight,minHeight,boxSizing);const defaultSxConfig={border:{themeKey:"borders",transform:borderTransform},borderTop:{themeKey:"borders",transform:borderTransform},borderRight:{themeKey:"borders",transform:borderTransform},borderBottom:{themeKey:"borders",transform:borderTransform},borderLeft:{themeKey:"borders",transform:borderTransform},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:borderRadius},color:{themeKey:"palette",transform:paletteTransform},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:paletteTransform},backgroundColor:{themeKey:"palette",transform:paletteTransform},p:{style:padding$2},pt:{style:padding$2},pr:{style:padding$2},pb:{style:padding$2},pl:{style:padding$2},px:{style:padding$2},py:{style:padding$2},padding:{style:padding$2},paddingTop:{style:padding$2},paddingRight:{style:padding$2},paddingBottom:{style:padding$2},paddingLeft:{style:padding$2},paddingX:{style:padding$2},paddingY:{style:padding$2},paddingInline:{style:padding$2},paddingInlineStart:{style:padding$2},paddingInlineEnd:{style:padding$2},paddingBlock:{style:padding$2},paddingBlockStart:{style:padding$2},paddingBlockEnd:{style:padding$2},m:{style:margin},mt:{style:margin},mr:{style:margin},mb:{style:margin},ml:{style:margin},mx:{style:margin},my:{style:margin},margin:{style:margin},marginTop:{style:margin},marginRight:{style:margin},marginBottom:{style:margin},marginLeft:{style:margin},marginX:{style:margin},marginY:{style:margin},marginInline:{style:margin},marginInlineStart:{style:margin},marginInlineEnd:{style:margin},marginBlock:{style:margin},marginBlockStart:{style:margin},marginBlockEnd:{style:margin},displayPrint:{cssProperty:!1,transform:tt=>({"@media print":{display:tt}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:gap},rowGap:{style:rowGap},columnGap:{style:columnGap},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:sizingTransform},maxWidth:{style:maxWidth},minWidth:{transform:sizingTransform},height:{transform:sizingTransform},maxHeight:{transform:sizingTransform},minHeight:{transform:sizingTransform},boxSizing:{},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}},defaultSxConfig$1=defaultSxConfig;function objectsHaveSameKeys(...tt){const et=tt.reduce((rt,it)=>rt.concat(Object.keys(it)),[]),nt=new Set(et);return tt.every(rt=>nt.size===Object.keys(rt).length)}function callIfFn(tt,et){return typeof tt=="function"?tt(et):tt}function unstable_createStyleFunctionSx(){function tt(nt,rt,it,ot){const at={[nt]:rt,theme:it},st=ot[nt];if(!st)return{[nt]:rt};const{cssProperty:lt=nt,themeKey:ct,transform:ut,style:ht}=st;if(rt==null)return null;if(ct==="typography"&&rt==="inherit")return{[nt]:rt};const dt=getPath$2(it,ct)||{};return ht?ht(at):handleBreakpoints(at,rt,mt=>{let gt=getStyleValue$1(dt,ut,mt);return mt===gt&&typeof mt=="string"&&(gt=getStyleValue$1(dt,ut,`${nt}${mt==="default"?"":capitalize(mt)}`,mt)),lt===!1?gt:{[lt]:gt}})}function et(nt){var rt;const{sx:it,theme:ot={}}=nt||{};if(!it)return null;const at=(rt=ot.unstable_sxConfig)!=null?rt:defaultSxConfig$1;function st(lt){let ct=lt;if(typeof lt=="function")ct=lt(ot);else if(typeof lt!="object")return lt;if(!ct)return null;const ut=createEmptyBreakpointObject(ot.breakpoints),ht=Object.keys(ut);let dt=ut;return Object.keys(ct).forEach(pt=>{const mt=callIfFn(ct[pt],ot);if(mt!=null)if(typeof mt=="object")if(at[pt])dt=merge(dt,tt(pt,mt,ot,at));else{const gt=handleBreakpoints({theme:ot},mt,yt=>({[pt]:yt}));objectsHaveSameKeys(gt,mt)?dt[pt]=et({sx:mt,theme:ot}):dt=merge(dt,gt)}else dt=merge(dt,tt(pt,mt,ot,at))}),removeUnusedBreakpoints(ht,dt)}return Array.isArray(it)?it.map(st):st(it)}return et}const styleFunctionSx=unstable_createStyleFunctionSx();styleFunctionSx.filterProps=["sx"];const styleFunctionSx$1=styleFunctionSx,_excluded$1B=["breakpoints","palette","spacing","shape"];function createTheme$1(tt={},...et){const{breakpoints:nt={},palette:rt={},spacing:it,shape:ot={}}=tt,at=_objectWithoutPropertiesLoose$g(tt,_excluded$1B),st=createBreakpoints(nt),lt=createSpacing(it);let ct=deepmerge$1({breakpoints:st,direction:"ltr",components:{},palette:_extends$r({mode:"light"},rt),spacing:lt,shape:_extends$r({},shape$2,ot)},at);return ct=et.reduce((ut,ht)=>deepmerge$1(ut,ht),ct),ct.unstable_sxConfig=_extends$r({},defaultSxConfig$1,at==null?void 0:at.unstable_sxConfig),ct.unstable_sx=function(ht){return styleFunctionSx$1({sx:ht,theme:this})},ct}function isObjectEmpty$1(tt){return Object.keys(tt).length===0}function useTheme$3(tt=null){const et=reactExports.useContext(ThemeContext$2);return!et||isObjectEmpty$1(et)?tt:et}const systemDefaultTheme$1=createTheme$1();function useTheme$2(tt=systemDefaultTheme$1){return useTheme$3(tt)}function GlobalStyles$1({styles:tt,themeId:et,defaultTheme:nt={}}){const rt=useTheme$2(nt),it=typeof tt=="function"?tt(et&&rt[et]||rt):tt;return jsxRuntimeExports.jsx(GlobalStyles$2,{styles:it})}const _excluded$1A=["sx"],splitProps=tt=>{var et,nt;const rt={systemProps:{},otherProps:{}},it=(et=tt==null||(nt=tt.theme)==null?void 0:nt.unstable_sxConfig)!=null?et:defaultSxConfig$1;return Object.keys(tt).forEach(ot=>{it[ot]?rt.systemProps[ot]=tt[ot]:rt.otherProps[ot]=tt[ot]}),rt};function extendSxProp(tt){const{sx:et}=tt,nt=_objectWithoutPropertiesLoose$g(tt,_excluded$1A),{systemProps:rt,otherProps:it}=splitProps(nt);let ot;return Array.isArray(et)?ot=[rt,...et]:typeof et=="function"?ot=(...at)=>{const st=et(...at);return isPlainObject(st)?_extends$r({},rt,st):rt}:ot=_extends$r({},rt,et),_extends$r({},it,{sx:ot})}function r$5(tt){var et,nt,rt="";if(typeof tt=="string"||typeof tt=="number")rt+=tt;else if(typeof tt=="object")if(Array.isArray(tt))for(et=0;et{it==="color"?rt+=isEmpty$3(rt)?tt[it]:capitalize(tt[it]):rt+=`${isEmpty$3(rt)?it:capitalize(it)}${capitalize(tt[it].toString())}`}),rt}const _excluded$1y=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function isEmpty$2(tt){return Object.keys(tt).length===0}function isStringTag(tt){return typeof tt=="string"&&tt.charCodeAt(0)>96}const getStyleOverrides=(tt,et)=>et.components&&et.components[tt]&&et.components[tt].styleOverrides?et.components[tt].styleOverrides:null,getVariantStyles=(tt,et)=>{let nt=[];et&&et.components&&et.components[tt]&&et.components[tt].variants&&(nt=et.components[tt].variants);const rt={};return nt.forEach(it=>{const ot=propsToClassKey(it.props);rt[ot]=it.style}),rt},variantsResolver=(tt,et,nt,rt)=>{var it;const{ownerState:ot={}}=tt,at=[],st=nt==null||(it=nt.components)==null||(it=it[rt])==null?void 0:it.variants;return st&&st.forEach(lt=>{let ct=!0;Object.keys(lt.props).forEach(ut=>{ot[ut]!==lt.props[ut]&&tt[ut]!==lt.props[ut]&&(ct=!1)}),ct&&at.push(et[propsToClassKey(lt.props)])}),at};function shouldForwardProp(tt){return tt!=="ownerState"&&tt!=="theme"&&tt!=="sx"&&tt!=="as"}const systemDefaultTheme=createTheme$1();function resolveTheme({defaultTheme:tt,theme:et,themeId:nt}){return isEmpty$2(et)?tt:et[nt]||et}function createStyled(tt={}){const{themeId:et,defaultTheme:nt=systemDefaultTheme,rootShouldForwardProp:rt=shouldForwardProp,slotShouldForwardProp:it=shouldForwardProp}=tt,ot=at=>styleFunctionSx$1(_extends$r({},at,{theme:resolveTheme(_extends$r({},at,{defaultTheme:nt,themeId:et}))}));return ot.__mui_systemSx=!0,(at,st={})=>{internal_processStyles(at,kt=>kt.filter(St=>!(St!=null&&St.__mui_systemSx)));const{name:lt,slot:ct,skipVariantsResolver:ut,skipSx:ht,overridesResolver:dt}=st,pt=_objectWithoutPropertiesLoose$g(st,_excluded$1y),mt=ut!==void 0?ut:ct&&ct!=="Root"||!1,gt=ht||!1;let yt,bt=shouldForwardProp;ct==="Root"?bt=rt:ct?bt=it:isStringTag(at)&&(bt=void 0);const wt=styled$3(at,_extends$r({shouldForwardProp:bt,label:yt},pt)),vt=(kt,...St)=>{const Et=St?St.map(Lt=>typeof Lt=="function"&&Lt.__emotion_real!==Lt?jt=>Lt(_extends$r({},jt,{theme:resolveTheme(_extends$r({},jt,{defaultTheme:nt,themeId:et}))})):Lt):[];let At=kt;lt&&dt&&Et.push(Lt=>{const jt=resolveTheme(_extends$r({},Lt,{defaultTheme:nt,themeId:et})),Rt=getStyleOverrides(lt,jt);if(Rt){const $t={};return Object.entries(Rt).forEach(([xt,It])=>{$t[xt]=typeof It=="function"?It(_extends$r({},Lt,{theme:jt})):It}),dt(Lt,$t)}return null}),lt&&!mt&&Et.push(Lt=>{const jt=resolveTheme(_extends$r({},Lt,{defaultTheme:nt,themeId:et}));return variantsResolver(Lt,getVariantStyles(lt,jt),jt,lt)}),gt||Et.push(ot);const Tt=Et.length-St.length;if(Array.isArray(kt)&&Tt>0){const Lt=new Array(Tt).fill("");At=[...kt,...Lt],At.raw=[...kt.raw,...Lt]}else typeof kt=="function"&&kt.__emotion_real!==kt&&(At=Lt=>kt(_extends$r({},Lt,{theme:resolveTheme(_extends$r({},Lt,{defaultTheme:nt,themeId:et}))})));const Mt=wt(At,...Et);return at.muiName&&(Mt.muiName=at.muiName),Mt};return wt.withConfig&&(vt.withConfig=wt.withConfig),vt}}const styled$2=createStyled(),systemStyled=styled$2;function getThemeProps(tt){const{theme:et,name:nt,props:rt}=tt;return!et||!et.components||!et.components[nt]||!et.components[nt].defaultProps?rt:resolveProps(et.components[nt].defaultProps,rt)}function useThemeProps$1({props:tt,name:et,defaultTheme:nt,themeId:rt}){let it=useTheme$2(nt);return rt&&(it=it[rt]||it),getThemeProps({theme:it,name:et,props:tt})}function clamp$6(tt,et=0,nt=1){return Math.min(Math.max(et,tt),nt)}function hexToRgb(tt){tt=tt.slice(1);const et=new RegExp(`.{1,${tt.length>=6?2:1}}`,"g");let nt=tt.match(et);return nt&&nt[0].length===1&&(nt=nt.map(rt=>rt+rt)),nt?`rgb${nt.length===4?"a":""}(${nt.map((rt,it)=>it<3?parseInt(rt,16):Math.round(parseInt(rt,16)/255*1e3)/1e3).join(", ")})`:""}function decomposeColor(tt){if(tt.type)return tt;if(tt.charAt(0)==="#")return decomposeColor(hexToRgb(tt));const et=tt.indexOf("("),nt=tt.substring(0,et);if(["rgb","rgba","hsl","hsla","color"].indexOf(nt)===-1)throw new Error(formatMuiErrorMessage(9,tt));let rt=tt.substring(et+1,tt.length-1),it;if(nt==="color"){if(rt=rt.split(" "),it=rt.shift(),rt.length===4&&rt[3].charAt(0)==="/"&&(rt[3]=rt[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(it)===-1)throw new Error(formatMuiErrorMessage(10,it))}else rt=rt.split(",");return rt=rt.map(ot=>parseFloat(ot)),{type:nt,values:rt,colorSpace:it}}function recomposeColor(tt){const{type:et,colorSpace:nt}=tt;let{values:rt}=tt;return et.indexOf("rgb")!==-1?rt=rt.map((it,ot)=>ot<3?parseInt(it,10):it):et.indexOf("hsl")!==-1&&(rt[1]=`${rt[1]}%`,rt[2]=`${rt[2]}%`),et.indexOf("color")!==-1?rt=`${nt} ${rt.join(" ")}`:rt=`${rt.join(", ")}`,`${et}(${rt})`}function hslToRgb(tt){tt=decomposeColor(tt);const{values:et}=tt,nt=et[0],rt=et[1]/100,it=et[2]/100,ot=rt*Math.min(it,1-it),at=(ct,ut=(ct+nt/30)%12)=>it-ot*Math.max(Math.min(ut-3,9-ut,1),-1);let st="rgb";const lt=[Math.round(at(0)*255),Math.round(at(8)*255),Math.round(at(4)*255)];return tt.type==="hsla"&&(st+="a",lt.push(et[3])),recomposeColor({type:st,values:lt})}function getLuminance(tt){tt=decomposeColor(tt);let et=tt.type==="hsl"||tt.type==="hsla"?decomposeColor(hslToRgb(tt)).values:tt.values;return et=et.map(nt=>(tt.type!=="color"&&(nt/=255),nt<=.03928?nt/12.92:((nt+.055)/1.055)**2.4)),Number((.2126*et[0]+.7152*et[1]+.0722*et[2]).toFixed(3))}function getContrastRatio(tt,et){const nt=getLuminance(tt),rt=getLuminance(et);return(Math.max(nt,rt)+.05)/(Math.min(nt,rt)+.05)}function alpha$1(tt,et){return tt=decomposeColor(tt),et=clamp$6(et),(tt.type==="rgb"||tt.type==="hsl")&&(tt.type+="a"),tt.type==="color"?tt.values[3]=`/${et}`:tt.values[3]=et,recomposeColor(tt)}function darken(tt,et){if(tt=decomposeColor(tt),et=clamp$6(et),tt.type.indexOf("hsl")!==-1)tt.values[2]*=1-et;else if(tt.type.indexOf("rgb")!==-1||tt.type.indexOf("color")!==-1)for(let nt=0;nt<3;nt+=1)tt.values[nt]*=1-et;return recomposeColor(tt)}function lighten(tt,et){if(tt=decomposeColor(tt),et=clamp$6(et),tt.type.indexOf("hsl")!==-1)tt.values[2]+=(100-tt.values[2])*et;else if(tt.type.indexOf("rgb")!==-1)for(let nt=0;nt<3;nt+=1)tt.values[nt]+=(255-tt.values[nt])*et;else if(tt.type.indexOf("color")!==-1)for(let nt=0;nt<3;nt+=1)tt.values[nt]+=(1-tt.values[nt])*et;return recomposeColor(tt)}const ThemeContext=reactExports.createContext(null),ThemeContext$1=ThemeContext;function useTheme$1(){return reactExports.useContext(ThemeContext$1)}const hasSymbol=typeof Symbol=="function"&&Symbol.for,nested=hasSymbol?Symbol.for("mui.nested"):"__THEME_NESTED__";function mergeOuterLocalTheme(tt,et){return typeof et=="function"?et(tt):_extends$r({},tt,et)}function ThemeProvider$2(tt){const{children:et,theme:nt}=tt,rt=useTheme$1(),it=reactExports.useMemo(()=>{const ot=rt===null?nt:mergeOuterLocalTheme(rt,nt);return ot!=null&&(ot[nested]=rt!==null),ot},[nt,rt]);return jsxRuntimeExports.jsx(ThemeContext$1.Provider,{value:it,children:et})}const EMPTY_THEME={};function useThemeScoping(tt,et,nt,rt=!1){return reactExports.useMemo(()=>{const it=tt&&et[tt]||et;if(typeof nt=="function"){const ot=nt(it),at=tt?_extends$r({},et,{[tt]:ot}):ot;return rt?()=>at:at}return tt?_extends$r({},et,{[tt]:nt}):_extends$r({},et,nt)},[tt,et,nt,rt])}function ThemeProvider$1(tt){const{children:et,theme:nt,themeId:rt}=tt,it=useTheme$3(EMPTY_THEME),ot=useTheme$1()||EMPTY_THEME,at=useThemeScoping(rt,it,nt),st=useThemeScoping(rt,ot,nt,!0);return jsxRuntimeExports.jsx(ThemeProvider$2,{theme:st,children:jsxRuntimeExports.jsx(ThemeContext$2.Provider,{value:at,children:et})})}const _excluded$1x=["component","direction","spacing","divider","children","className","useFlexGap"],defaultTheme$2=createTheme$1(),defaultCreateStyledComponent=systemStyled("div",{name:"MuiStack",slot:"Root",overridesResolver:(tt,et)=>et.root});function useThemePropsDefault(tt){return useThemeProps$1({props:tt,name:"MuiStack",defaultTheme:defaultTheme$2})}function joinChildren(tt,et){const nt=reactExports.Children.toArray(tt).filter(Boolean);return nt.reduce((rt,it,ot)=>(rt.push(it),ot({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[tt],style$1=({ownerState:tt,theme:et})=>{let nt=_extends$r({display:"flex",flexDirection:"column"},handleBreakpoints({theme:et},resolveBreakpointValues({values:tt.direction,breakpoints:et.breakpoints.values}),rt=>({flexDirection:rt})));if(tt.spacing){const rt=createUnarySpacing(et),it=Object.keys(et.breakpoints.values).reduce((lt,ct)=>((typeof tt.spacing=="object"&&tt.spacing[ct]!=null||typeof tt.direction=="object"&&tt.direction[ct]!=null)&&(lt[ct]=!0),lt),{}),ot=resolveBreakpointValues({values:tt.direction,base:it}),at=resolveBreakpointValues({values:tt.spacing,base:it});typeof ot=="object"&&Object.keys(ot).forEach((lt,ct,ut)=>{if(!ot[lt]){const dt=ct>0?ot[ut[ct-1]]:"column";ot[lt]=dt}}),nt=deepmerge$1(nt,handleBreakpoints({theme:et},at,(lt,ct)=>tt.useFlexGap?{gap:getValue$3(rt,lt)}:{"& > :not(style) ~ :not(style)":{margin:0,[`margin${getSideFromDirection(ct?ot[ct]:tt.direction)}`]:getValue$3(rt,lt)}}))}return nt=mergeBreakpointsInOrder(et.breakpoints,nt),nt};function createStack(tt={}){const{createStyledComponent:et=defaultCreateStyledComponent,useThemeProps:nt=useThemePropsDefault,componentName:rt="MuiStack"}=tt,it=()=>composeClasses({root:["root"]},lt=>generateUtilityClass(rt,lt),{}),ot=et(style$1);return reactExports.forwardRef(function(lt,ct){const ut=nt(lt),ht=extendSxProp(ut),{component:dt="div",direction:pt="column",spacing:mt=0,divider:gt,children:yt,className:bt,useFlexGap:wt=!1}=ht,vt=_objectWithoutPropertiesLoose$g(ht,_excluded$1x),kt={direction:pt,spacing:mt,useFlexGap:wt},St=it();return jsxRuntimeExports.jsx(ot,_extends$r({as:dt,ownerState:kt,ref:ct,className:clsx(St.root,bt)},vt,{children:gt?joinChildren(yt,gt):yt}))})}function createMixins(tt,et){return _extends$r({toolbar:{minHeight:56,[tt.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[tt.up("sm")]:{minHeight:64}}},et)}const _excluded$1v=["mode","contrastThreshold","tonalOffset"],light={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:common$8.white,default:common$8.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},dark={text:{primary:common$8.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:common$8.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function addLightOrDark(tt,et,nt,rt){const it=rt.light||rt,ot=rt.dark||rt*1.5;tt[et]||(tt.hasOwnProperty(nt)?tt[et]=tt[nt]:et==="light"?tt.light=lighten(tt.main,it):et==="dark"&&(tt.dark=darken(tt.main,ot)))}function getDefaultPrimary(tt="light"){return tt==="dark"?{main:blue$1[200],light:blue$1[50],dark:blue$1[400]}:{main:blue$1[700],light:blue$1[400],dark:blue$1[800]}}function getDefaultSecondary(tt="light"){return tt==="dark"?{main:purple$1[200],light:purple$1[50],dark:purple$1[400]}:{main:purple$1[500],light:purple$1[300],dark:purple$1[700]}}function getDefaultError(tt="light"){return tt==="dark"?{main:red$1[500],light:red$1[300],dark:red$1[700]}:{main:red$1[700],light:red$1[400],dark:red$1[800]}}function getDefaultInfo(tt="light"){return tt==="dark"?{main:lightBlue$1[400],light:lightBlue$1[300],dark:lightBlue$1[700]}:{main:lightBlue$1[700],light:lightBlue$1[500],dark:lightBlue$1[900]}}function getDefaultSuccess(tt="light"){return tt==="dark"?{main:green$1[400],light:green$1[300],dark:green$1[700]}:{main:green$1[800],light:green$1[500],dark:green$1[900]}}function getDefaultWarning(tt="light"){return tt==="dark"?{main:orange$1[400],light:orange$1[300],dark:orange$1[700]}:{main:"#ed6c02",light:orange$1[500],dark:orange$1[900]}}function createPalette(tt){const{mode:et="light",contrastThreshold:nt=3,tonalOffset:rt=.2}=tt,it=_objectWithoutPropertiesLoose$g(tt,_excluded$1v),ot=tt.primary||getDefaultPrimary(et),at=tt.secondary||getDefaultSecondary(et),st=tt.error||getDefaultError(et),lt=tt.info||getDefaultInfo(et),ct=tt.success||getDefaultSuccess(et),ut=tt.warning||getDefaultWarning(et);function ht(gt){return getContrastRatio(gt,dark.text.primary)>=nt?dark.text.primary:light.text.primary}const dt=({color:gt,name:yt,mainShade:bt=500,lightShade:wt=300,darkShade:vt=700})=>{if(gt=_extends$r({},gt),!gt.main&>[bt]&&(gt.main=gt[bt]),!gt.hasOwnProperty("main"))throw new Error(formatMuiErrorMessage(11,yt?` (${yt})`:"",bt));if(typeof gt.main!="string")throw new Error(formatMuiErrorMessage(12,yt?` (${yt})`:"",JSON.stringify(gt.main)));return addLightOrDark(gt,"light",wt,rt),addLightOrDark(gt,"dark",vt,rt),gt.contrastText||(gt.contrastText=ht(gt.main)),gt},pt={dark,light};return deepmerge$1(_extends$r({common:_extends$r({},common$8),mode:et,primary:dt({color:ot,name:"primary"}),secondary:dt({color:at,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:dt({color:st,name:"error"}),warning:dt({color:ut,name:"warning"}),info:dt({color:lt,name:"info"}),success:dt({color:ct,name:"success"}),grey:grey$1,contrastThreshold:nt,getContrastText:ht,augmentColor:dt,tonalOffset:rt},pt[et]),it)}const _excluded$1u=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];function round$3(tt){return Math.round(tt*1e5)/1e5}const caseAllCaps={textTransform:"uppercase"},defaultFontFamily='"Roboto", "Helvetica", "Arial", sans-serif';function createTypography(tt,et){const nt=typeof et=="function"?et(tt):et,{fontFamily:rt=defaultFontFamily,fontSize:it=14,fontWeightLight:ot=300,fontWeightRegular:at=400,fontWeightMedium:st=500,fontWeightBold:lt=700,htmlFontSize:ct=16,allVariants:ut,pxToRem:ht}=nt,dt=_objectWithoutPropertiesLoose$g(nt,_excluded$1u),pt=it/14,mt=ht||(bt=>`${bt/ct*pt}rem`),gt=(bt,wt,vt,kt,St)=>_extends$r({fontFamily:rt,fontWeight:bt,fontSize:mt(wt),lineHeight:vt},rt===defaultFontFamily?{letterSpacing:`${round$3(kt/wt)}em`}:{},St,ut),yt={h1:gt(ot,96,1.167,-1.5),h2:gt(ot,60,1.2,-.5),h3:gt(at,48,1.167,0),h4:gt(at,34,1.235,.25),h5:gt(at,24,1.334,0),h6:gt(st,20,1.6,.15),subtitle1:gt(at,16,1.75,.15),subtitle2:gt(st,14,1.57,.1),body1:gt(at,16,1.5,.15),body2:gt(at,14,1.43,.15),button:gt(st,14,1.75,.4,caseAllCaps),caption:gt(at,12,1.66,.4),overline:gt(at,12,2.66,1,caseAllCaps),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return deepmerge$1(_extends$r({htmlFontSize:ct,pxToRem:mt,fontFamily:rt,fontSize:it,fontWeightLight:ot,fontWeightRegular:at,fontWeightMedium:st,fontWeightBold:lt},yt),dt,{clone:!1})}const shadowKeyUmbraOpacity=.2,shadowKeyPenumbraOpacity=.14,shadowAmbientShadowOpacity=.12;function createShadow(...tt){return[`${tt[0]}px ${tt[1]}px ${tt[2]}px ${tt[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`,`${tt[4]}px ${tt[5]}px ${tt[6]}px ${tt[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`,`${tt[8]}px ${tt[9]}px ${tt[10]}px ${tt[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(",")}const shadows=["none",createShadow(0,2,1,-1,0,1,1,0,0,1,3,0),createShadow(0,3,1,-2,0,2,2,0,0,1,5,0),createShadow(0,3,3,-2,0,3,4,0,0,1,8,0),createShadow(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow(0,11,15,-7,0,24,38,3,0,9,46,8)],shadows$1=shadows,_excluded$1t=["duration","easing","delay"],easing$1={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},duration={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function formatMs(tt){return`${Math.round(tt)}ms`}function getAutoHeightDuration(tt){if(!tt)return 0;const et=tt/36;return Math.round((4+15*et**.25+et/5)*10)}function createTransitions(tt){const et=_extends$r({},easing$1,tt.easing),nt=_extends$r({},duration,tt.duration);return _extends$r({getAutoHeightDuration,create:(it=["all"],ot={})=>{const{duration:at=nt.standard,easing:st=et.easeInOut,delay:lt=0}=ot;return _objectWithoutPropertiesLoose$g(ot,_excluded$1t),(Array.isArray(it)?it:[it]).map(ct=>`${ct} ${typeof at=="string"?at:formatMs(at)} ${st} ${typeof lt=="string"?lt:formatMs(lt)}`).join(",")}},tt,{easing:et,duration:nt})}const zIndex={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},zIndex$1=zIndex,_excluded$1s=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function createTheme(tt={},...et){const{mixins:nt={},palette:rt={},transitions:it={},typography:ot={}}=tt,at=_objectWithoutPropertiesLoose$g(tt,_excluded$1s);if(tt.vars)throw new Error(formatMuiErrorMessage(18));const st=createPalette(rt),lt=createTheme$1(tt);let ct=deepmerge$1(lt,{mixins:createMixins(lt.breakpoints,nt),palette:st,shadows:shadows$1.slice(),typography:createTypography(st,ot),transitions:createTransitions(it),zIndex:_extends$r({},zIndex$1)});return ct=deepmerge$1(ct,at),ct=et.reduce((ut,ht)=>deepmerge$1(ut,ht),ct),ct.unstable_sxConfig=_extends$r({},defaultSxConfig$1,at==null?void 0:at.unstable_sxConfig),ct.unstable_sx=function(ht){return styleFunctionSx$1({sx:ht,theme:this})},ct}function getUnit$1(tt){return String(tt).match(/[\d.\-+]*\s*(.*)/)[1]||""}function toUnitless(tt){return parseFloat(tt)}const defaultTheme=createTheme(),defaultTheme$1=defaultTheme;function useTheme(){const tt=useTheme$2(defaultTheme$1);return tt[THEME_ID]||tt}function useThemeProps({props:tt,name:et}){return useThemeProps$1({props:tt,name:et,defaultTheme:defaultTheme$1,themeId:THEME_ID})}const rootShouldForwardProp=tt=>shouldForwardProp(tt)&&tt!=="classes",slotShouldForwardProp=shouldForwardProp,styled=createStyled({themeId:THEME_ID,defaultTheme:defaultTheme$1,rootShouldForwardProp}),styled$1=styled,_excluded$1r=["theme"];function ThemeProvider(tt){let{theme:et}=tt,nt=_objectWithoutPropertiesLoose$g(tt,_excluded$1r);const rt=et[THEME_ID];return jsxRuntimeExports.jsx(ThemeProvider$1,_extends$r({},nt,{themeId:rt?THEME_ID:void 0,theme:rt||et}))}const getOverlayAlpha=tt=>{let et;return tt<1?et=5.11916*tt**2:et=4.5*Math.log(tt+1)+2,(et/100).toFixed(2)},getOverlayAlpha$1=getOverlayAlpha;function isHostComponent(tt){return typeof tt=="string"}function appendOwnerState(tt,et,nt){return tt===void 0||isHostComponent(tt)?et:_extends$r({},et,{ownerState:_extends$r({},et.ownerState,nt)})}function areArraysEqual$1(tt,et,nt=(rt,it)=>rt===it){return tt.length===et.length&&tt.every((rt,it)=>nt(rt,et[it]))}const defaultContextValue={disableDefaultClasses:!1},ClassNameConfiguratorContext=reactExports.createContext(defaultContextValue);function useClassNamesOverride(tt){const{disableDefaultClasses:et}=reactExports.useContext(ClassNameConfiguratorContext);return nt=>et?"":tt(nt)}function extractEventHandlers(tt,et=[]){if(tt===void 0)return{};const nt={};return Object.keys(tt).filter(rt=>rt.match(/^on[A-Z]/)&&typeof tt[rt]=="function"&&!et.includes(rt)).forEach(rt=>{nt[rt]=tt[rt]}),nt}function resolveComponentProps(tt,et,nt){return typeof tt=="function"?tt(et,nt):tt}function omitEventHandlers(tt){if(tt===void 0)return{};const et={};return Object.keys(tt).filter(nt=>!(nt.match(/^on[A-Z]/)&&typeof tt[nt]=="function")).forEach(nt=>{et[nt]=tt[nt]}),et}function mergeSlotProps(tt){const{getSlotProps:et,additionalProps:nt,externalSlotProps:rt,externalForwardedProps:it,className:ot}=tt;if(!et){const pt=clsx(it==null?void 0:it.className,rt==null?void 0:rt.className,ot,nt==null?void 0:nt.className),mt=_extends$r({},nt==null?void 0:nt.style,it==null?void 0:it.style,rt==null?void 0:rt.style),gt=_extends$r({},nt,it,rt);return pt.length>0&&(gt.className=pt),Object.keys(mt).length>0&&(gt.style=mt),{props:gt,internalRef:void 0}}const at=extractEventHandlers(_extends$r({},it,rt)),st=omitEventHandlers(rt),lt=omitEventHandlers(it),ct=et(at),ut=clsx(ct==null?void 0:ct.className,nt==null?void 0:nt.className,ot,it==null?void 0:it.className,rt==null?void 0:rt.className),ht=_extends$r({},ct==null?void 0:ct.style,nt==null?void 0:nt.style,it==null?void 0:it.style,rt==null?void 0:rt.style),dt=_extends$r({},ct,nt,lt,st);return ut.length>0&&(dt.className=ut),Object.keys(ht).length>0&&(dt.style=ht),{props:dt,internalRef:ct.ref}}const _excluded$1q=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function useSlotProps(tt){var et;const{elementType:nt,externalSlotProps:rt,ownerState:it,skipResolvingSlotProps:ot=!1}=tt,at=_objectWithoutPropertiesLoose$g(tt,_excluded$1q),st=ot?{}:resolveComponentProps(rt,it),{props:lt,internalRef:ct}=mergeSlotProps(_extends$r({},at,{externalSlotProps:st})),ut=useForkRef(ct,st==null?void 0:st.ref,(et=tt.additionalProps)==null?void 0:et.ref);return appendOwnerState(nt,_extends$r({},lt,{ref:ut}),it)}const candidatesSelector=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function getTabIndex(tt){const et=parseInt(tt.getAttribute("tabindex")||"",10);return Number.isNaN(et)?tt.contentEditable==="true"||(tt.nodeName==="AUDIO"||tt.nodeName==="VIDEO"||tt.nodeName==="DETAILS")&&tt.getAttribute("tabindex")===null?0:tt.tabIndex:et}function isNonTabbableRadio(tt){if(tt.tagName!=="INPUT"||tt.type!=="radio"||!tt.name)return!1;const et=rt=>tt.ownerDocument.querySelector(`input[type="radio"]${rt}`);let nt=et(`[name="${tt.name}"]:checked`);return nt||(nt=et(`[name="${tt.name}"]`)),nt!==tt}function isNodeMatchingSelectorFocusable(tt){return!(tt.disabled||tt.tagName==="INPUT"&&tt.type==="hidden"||isNonTabbableRadio(tt))}function defaultGetTabbable(tt){const et=[],nt=[];return Array.from(tt.querySelectorAll(candidatesSelector)).forEach((rt,it)=>{const ot=getTabIndex(rt);ot===-1||!isNodeMatchingSelectorFocusable(rt)||(ot===0?et.push(rt):nt.push({documentOrder:it,tabIndex:ot,node:rt}))}),nt.sort((rt,it)=>rt.tabIndex===it.tabIndex?rt.documentOrder-it.documentOrder:rt.tabIndex-it.tabIndex).map(rt=>rt.node).concat(et)}function defaultIsEnabled(){return!0}function FocusTrap(tt){const{children:et,disableAutoFocus:nt=!1,disableEnforceFocus:rt=!1,disableRestoreFocus:it=!1,getTabbable:ot=defaultGetTabbable,isEnabled:at=defaultIsEnabled,open:st}=tt,lt=reactExports.useRef(!1),ct=reactExports.useRef(null),ut=reactExports.useRef(null),ht=reactExports.useRef(null),dt=reactExports.useRef(null),pt=reactExports.useRef(!1),mt=reactExports.useRef(null),gt=useForkRef(et.ref,mt),yt=reactExports.useRef(null);reactExports.useEffect(()=>{!st||!mt.current||(pt.current=!nt)},[nt,st]),reactExports.useEffect(()=>{if(!st||!mt.current)return;const vt=ownerDocument(mt.current);return mt.current.contains(vt.activeElement)||(mt.current.hasAttribute("tabIndex")||mt.current.setAttribute("tabIndex","-1"),pt.current&&mt.current.focus()),()=>{it||(ht.current&&ht.current.focus&&(lt.current=!0,ht.current.focus()),ht.current=null)}},[st]),reactExports.useEffect(()=>{if(!st||!mt.current)return;const vt=ownerDocument(mt.current),kt=At=>{const{current:Tt}=mt;if(Tt!==null){if(!vt.hasFocus()||rt||!at()||lt.current){lt.current=!1;return}if(!Tt.contains(vt.activeElement)){if(At&&dt.current!==At.target||vt.activeElement!==dt.current)dt.current=null;else if(dt.current!==null)return;if(!pt.current)return;let jt=[];if((vt.activeElement===ct.current||vt.activeElement===ut.current)&&(jt=ot(mt.current)),jt.length>0){var Mt,Lt;const Rt=!!((Mt=yt.current)!=null&&Mt.shiftKey&&((Lt=yt.current)==null?void 0:Lt.key)==="Tab"),$t=jt[0],xt=jt[jt.length-1];typeof $t!="string"&&typeof xt!="string"&&(Rt?xt.focus():$t.focus())}else Tt.focus()}}},St=At=>{yt.current=At,!(rt||!at()||At.key!=="Tab")&&vt.activeElement===mt.current&&At.shiftKey&&(lt.current=!0,ut.current&&ut.current.focus())};vt.addEventListener("focusin",kt),vt.addEventListener("keydown",St,!0);const Et=setInterval(()=>{vt.activeElement&&vt.activeElement.tagName==="BODY"&&kt(null)},50);return()=>{clearInterval(Et),vt.removeEventListener("focusin",kt),vt.removeEventListener("keydown",St,!0)}},[nt,rt,it,at,st,ot]);const bt=vt=>{ht.current===null&&(ht.current=vt.relatedTarget),pt.current=!0,dt.current=vt.target;const kt=et.props.onFocus;kt&&kt(vt)},wt=vt=>{ht.current===null&&(ht.current=vt.relatedTarget),pt.current=!0};return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{tabIndex:st?0:-1,onFocus:wt,ref:ct,"data-testid":"sentinelStart"}),reactExports.cloneElement(et,{ref:gt,onFocus:bt}),jsxRuntimeExports.jsx("div",{tabIndex:st?0:-1,onFocus:wt,ref:ut,"data-testid":"sentinelEnd"})]})}var top="top",bottom="bottom",right="right",left="left",auto="auto",basePlacements=[top,bottom,right,left],start$1="start",end="end",clippingParents="clippingParents",viewport="viewport",popper="popper",reference="reference",variationPlacements=basePlacements.reduce(function(tt,et){return tt.concat([et+"-"+start$1,et+"-"+end])},[]),placements=[].concat(basePlacements,[auto]).reduce(function(tt,et){return tt.concat([et,et+"-"+start$1,et+"-"+end])},[]),beforeRead="beforeRead",read="read",afterRead="afterRead",beforeMain="beforeMain",main$1="main",afterMain="afterMain",beforeWrite="beforeWrite",write="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read,afterRead,beforeMain,main$1,afterMain,beforeWrite,write,afterWrite];function getNodeName(tt){return tt?(tt.nodeName||"").toLowerCase():null}function getWindow(tt){if(tt==null)return window;if(tt.toString()!=="[object Window]"){var et=tt.ownerDocument;return et&&et.defaultView||window}return tt}function isElement(tt){var et=getWindow(tt).Element;return tt instanceof et||tt instanceof Element}function isHTMLElement$1(tt){var et=getWindow(tt).HTMLElement;return tt instanceof et||tt instanceof HTMLElement}function isShadowRoot(tt){if(typeof ShadowRoot>"u")return!1;var et=getWindow(tt).ShadowRoot;return tt instanceof et||tt instanceof ShadowRoot}function applyStyles(tt){var et=tt.state;Object.keys(et.elements).forEach(function(nt){var rt=et.styles[nt]||{},it=et.attributes[nt]||{},ot=et.elements[nt];!isHTMLElement$1(ot)||!getNodeName(ot)||(Object.assign(ot.style,rt),Object.keys(it).forEach(function(at){var st=it[at];st===!1?ot.removeAttribute(at):ot.setAttribute(at,st===!0?"":st)}))})}function effect$2(tt){var et=tt.state,nt={popper:{position:et.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(et.elements.popper.style,nt.popper),et.styles=nt,et.elements.arrow&&Object.assign(et.elements.arrow.style,nt.arrow),function(){Object.keys(et.elements).forEach(function(rt){var it=et.elements[rt],ot=et.attributes[rt]||{},at=Object.keys(et.styles.hasOwnProperty(rt)?et.styles[rt]:nt[rt]),st=at.reduce(function(lt,ct){return lt[ct]="",lt},{});!isHTMLElement$1(it)||!getNodeName(it)||(Object.assign(it.style,st),Object.keys(ot).forEach(function(lt){it.removeAttribute(lt)}))})}}const applyStyles$1={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect$2,requires:["computeStyles"]};function getBasePlacement(tt){return tt.split("-")[0]}var max$3=Math.max,min$3=Math.min,round$2=Math.round;function getUAString(){var tt=navigator.userAgentData;return tt!=null&&tt.brands&&Array.isArray(tt.brands)?tt.brands.map(function(et){return et.brand+"/"+et.version}).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(tt,et,nt){et===void 0&&(et=!1),nt===void 0&&(nt=!1);var rt=tt.getBoundingClientRect(),it=1,ot=1;et&&isHTMLElement$1(tt)&&(it=tt.offsetWidth>0&&round$2(rt.width)/tt.offsetWidth||1,ot=tt.offsetHeight>0&&round$2(rt.height)/tt.offsetHeight||1);var at=isElement(tt)?getWindow(tt):window,st=at.visualViewport,lt=!isLayoutViewport()&&nt,ct=(rt.left+(lt&&st?st.offsetLeft:0))/it,ut=(rt.top+(lt&&st?st.offsetTop:0))/ot,ht=rt.width/it,dt=rt.height/ot;return{width:ht,height:dt,top:ut,right:ct+ht,bottom:ut+dt,left:ct,x:ct,y:ut}}function getLayoutRect(tt){var et=getBoundingClientRect(tt),nt=tt.offsetWidth,rt=tt.offsetHeight;return Math.abs(et.width-nt)<=1&&(nt=et.width),Math.abs(et.height-rt)<=1&&(rt=et.height),{x:tt.offsetLeft,y:tt.offsetTop,width:nt,height:rt}}function contains(tt,et){var nt=et.getRootNode&&et.getRootNode();if(tt.contains(et))return!0;if(nt&&isShadowRoot(nt)){var rt=et;do{if(rt&&tt.isSameNode(rt))return!0;rt=rt.parentNode||rt.host}while(rt)}return!1}function getComputedStyle$1(tt){return getWindow(tt).getComputedStyle(tt)}function isTableElement(tt){return["table","td","th"].indexOf(getNodeName(tt))>=0}function getDocumentElement(tt){return((isElement(tt)?tt.ownerDocument:tt.document)||window.document).documentElement}function getParentNode(tt){return getNodeName(tt)==="html"?tt:tt.assignedSlot||tt.parentNode||(isShadowRoot(tt)?tt.host:null)||getDocumentElement(tt)}function getTrueOffsetParent(tt){return!isHTMLElement$1(tt)||getComputedStyle$1(tt).position==="fixed"?null:tt.offsetParent}function getContainingBlock(tt){var et=/firefox/i.test(getUAString()),nt=/Trident/i.test(getUAString());if(nt&&isHTMLElement$1(tt)){var rt=getComputedStyle$1(tt);if(rt.position==="fixed")return null}var it=getParentNode(tt);for(isShadowRoot(it)&&(it=it.host);isHTMLElement$1(it)&&["html","body"].indexOf(getNodeName(it))<0;){var ot=getComputedStyle$1(it);if(ot.transform!=="none"||ot.perspective!=="none"||ot.contain==="paint"||["transform","perspective"].indexOf(ot.willChange)!==-1||et&&ot.willChange==="filter"||et&&ot.filter&&ot.filter!=="none")return it;it=it.parentNode}return null}function getOffsetParent(tt){for(var et=getWindow(tt),nt=getTrueOffsetParent(tt);nt&&isTableElement(nt)&&getComputedStyle$1(nt).position==="static";)nt=getTrueOffsetParent(nt);return nt&&(getNodeName(nt)==="html"||getNodeName(nt)==="body"&&getComputedStyle$1(nt).position==="static")?et:nt||getContainingBlock(tt)||et}function getMainAxisFromPlacement(tt){return["top","bottom"].indexOf(tt)>=0?"x":"y"}function within(tt,et,nt){return max$3(tt,min$3(et,nt))}function withinMaxClamp(tt,et,nt){var rt=within(tt,et,nt);return rt>nt?nt:rt}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(tt){return Object.assign({},getFreshSideObject(),tt)}function expandToHashMap(tt,et){return et.reduce(function(nt,rt){return nt[rt]=tt,nt},{})}var toPaddingObject=function(et,nt){return et=typeof et=="function"?et(Object.assign({},nt.rects,{placement:nt.placement})):et,mergePaddingObject(typeof et!="number"?et:expandToHashMap(et,basePlacements))};function arrow(tt){var et,nt=tt.state,rt=tt.name,it=tt.options,ot=nt.elements.arrow,at=nt.modifiersData.popperOffsets,st=getBasePlacement(nt.placement),lt=getMainAxisFromPlacement(st),ct=[left,right].indexOf(st)>=0,ut=ct?"height":"width";if(!(!ot||!at)){var ht=toPaddingObject(it.padding,nt),dt=getLayoutRect(ot),pt=lt==="y"?top:left,mt=lt==="y"?bottom:right,gt=nt.rects.reference[ut]+nt.rects.reference[lt]-at[lt]-nt.rects.popper[ut],yt=at[lt]-nt.rects.reference[lt],bt=getOffsetParent(ot),wt=bt?lt==="y"?bt.clientHeight||0:bt.clientWidth||0:0,vt=gt/2-yt/2,kt=ht[pt],St=wt-dt[ut]-ht[mt],Et=wt/2-dt[ut]/2+vt,At=within(kt,Et,St),Tt=lt;nt.modifiersData[rt]=(et={},et[Tt]=At,et.centerOffset=At-Et,et)}}function effect$1(tt){var et=tt.state,nt=tt.options,rt=nt.element,it=rt===void 0?"[data-popper-arrow]":rt;it!=null&&(typeof it=="string"&&(it=et.elements.popper.querySelector(it),!it)||contains(et.elements.popper,it)&&(et.elements.arrow=it))}const arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(tt){return tt.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(tt,et){var nt=tt.x,rt=tt.y,it=et.devicePixelRatio||1;return{x:round$2(nt*it)/it||0,y:round$2(rt*it)/it||0}}function mapToStyles(tt){var et,nt=tt.popper,rt=tt.popperRect,it=tt.placement,ot=tt.variation,at=tt.offsets,st=tt.position,lt=tt.gpuAcceleration,ct=tt.adaptive,ut=tt.roundOffsets,ht=tt.isFixed,dt=at.x,pt=dt===void 0?0:dt,mt=at.y,gt=mt===void 0?0:mt,yt=typeof ut=="function"?ut({x:pt,y:gt}):{x:pt,y:gt};pt=yt.x,gt=yt.y;var bt=at.hasOwnProperty("x"),wt=at.hasOwnProperty("y"),vt=left,kt=top,St=window;if(ct){var Et=getOffsetParent(nt),At="clientHeight",Tt="clientWidth";if(Et===getWindow(nt)&&(Et=getDocumentElement(nt),getComputedStyle$1(Et).position!=="static"&&st==="absolute"&&(At="scrollHeight",Tt="scrollWidth")),Et=Et,it===top||(it===left||it===right)&&ot===end){kt=bottom;var Mt=ht&&Et===St&&St.visualViewport?St.visualViewport.height:Et[At];gt-=Mt-rt.height,gt*=lt?1:-1}if(it===left||(it===top||it===bottom)&&ot===end){vt=right;var Lt=ht&&Et===St&&St.visualViewport?St.visualViewport.width:Et[Tt];pt-=Lt-rt.width,pt*=lt?1:-1}}var jt=Object.assign({position:st},ct&&unsetSides),Rt=ut===!0?roundOffsetsByDPR({x:pt,y:gt},getWindow(nt)):{x:pt,y:gt};if(pt=Rt.x,gt=Rt.y,lt){var $t;return Object.assign({},jt,($t={},$t[kt]=wt?"0":"",$t[vt]=bt?"0":"",$t.transform=(St.devicePixelRatio||1)<=1?"translate("+pt+"px, "+gt+"px)":"translate3d("+pt+"px, "+gt+"px, 0)",$t))}return Object.assign({},jt,(et={},et[kt]=wt?gt+"px":"",et[vt]=bt?pt+"px":"",et.transform="",et))}function computeStyles(tt){var et=tt.state,nt=tt.options,rt=nt.gpuAcceleration,it=rt===void 0?!0:rt,ot=nt.adaptive,at=ot===void 0?!0:ot,st=nt.roundOffsets,lt=st===void 0?!0:st,ct={placement:getBasePlacement(et.placement),variation:getVariation(et.placement),popper:et.elements.popper,popperRect:et.rects.popper,gpuAcceleration:it,isFixed:et.options.strategy==="fixed"};et.modifiersData.popperOffsets!=null&&(et.styles.popper=Object.assign({},et.styles.popper,mapToStyles(Object.assign({},ct,{offsets:et.modifiersData.popperOffsets,position:et.options.strategy,adaptive:at,roundOffsets:lt})))),et.modifiersData.arrow!=null&&(et.styles.arrow=Object.assign({},et.styles.arrow,mapToStyles(Object.assign({},ct,{offsets:et.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:lt})))),et.attributes.popper=Object.assign({},et.attributes.popper,{"data-popper-placement":et.placement})}const computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}};var passive={passive:!0};function effect(tt){var et=tt.state,nt=tt.instance,rt=tt.options,it=rt.scroll,ot=it===void 0?!0:it,at=rt.resize,st=at===void 0?!0:at,lt=getWindow(et.elements.popper),ct=[].concat(et.scrollParents.reference,et.scrollParents.popper);return ot&&ct.forEach(function(ut){ut.addEventListener("scroll",nt.update,passive)}),st&<.addEventListener("resize",nt.update,passive),function(){ot&&ct.forEach(function(ut){ut.removeEventListener("scroll",nt.update,passive)}),st&<.removeEventListener("resize",nt.update,passive)}}const eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect,data:{}};var hash$6={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(tt){return tt.replace(/left|right|bottom|top/g,function(et){return hash$6[et]})}var hash$5={start:"end",end:"start"};function getOppositeVariationPlacement(tt){return tt.replace(/start|end/g,function(et){return hash$5[et]})}function getWindowScroll(tt){var et=getWindow(tt),nt=et.pageXOffset,rt=et.pageYOffset;return{scrollLeft:nt,scrollTop:rt}}function getWindowScrollBarX(tt){return getBoundingClientRect(getDocumentElement(tt)).left+getWindowScroll(tt).scrollLeft}function getViewportRect(tt,et){var nt=getWindow(tt),rt=getDocumentElement(tt),it=nt.visualViewport,ot=rt.clientWidth,at=rt.clientHeight,st=0,lt=0;if(it){ot=it.width,at=it.height;var ct=isLayoutViewport();(ct||!ct&&et==="fixed")&&(st=it.offsetLeft,lt=it.offsetTop)}return{width:ot,height:at,x:st+getWindowScrollBarX(tt),y:lt}}function getDocumentRect(tt){var et,nt=getDocumentElement(tt),rt=getWindowScroll(tt),it=(et=tt.ownerDocument)==null?void 0:et.body,ot=max$3(nt.scrollWidth,nt.clientWidth,it?it.scrollWidth:0,it?it.clientWidth:0),at=max$3(nt.scrollHeight,nt.clientHeight,it?it.scrollHeight:0,it?it.clientHeight:0),st=-rt.scrollLeft+getWindowScrollBarX(tt),lt=-rt.scrollTop;return getComputedStyle$1(it||nt).direction==="rtl"&&(st+=max$3(nt.clientWidth,it?it.clientWidth:0)-ot),{width:ot,height:at,x:st,y:lt}}function isScrollParent(tt){var et=getComputedStyle$1(tt),nt=et.overflow,rt=et.overflowX,it=et.overflowY;return/auto|scroll|overlay|hidden/.test(nt+it+rt)}function getScrollParent(tt){return["html","body","#document"].indexOf(getNodeName(tt))>=0?tt.ownerDocument.body:isHTMLElement$1(tt)&&isScrollParent(tt)?tt:getScrollParent(getParentNode(tt))}function listScrollParents(tt,et){var nt;et===void 0&&(et=[]);var rt=getScrollParent(tt),it=rt===((nt=tt.ownerDocument)==null?void 0:nt.body),ot=getWindow(rt),at=it?[ot].concat(ot.visualViewport||[],isScrollParent(rt)?rt:[]):rt,st=et.concat(at);return it?st:st.concat(listScrollParents(getParentNode(at)))}function rectToClientRect(tt){return Object.assign({},tt,{left:tt.x,top:tt.y,right:tt.x+tt.width,bottom:tt.y+tt.height})}function getInnerBoundingClientRect(tt,et){var nt=getBoundingClientRect(tt,!1,et==="fixed");return nt.top=nt.top+tt.clientTop,nt.left=nt.left+tt.clientLeft,nt.bottom=nt.top+tt.clientHeight,nt.right=nt.left+tt.clientWidth,nt.width=tt.clientWidth,nt.height=tt.clientHeight,nt.x=nt.left,nt.y=nt.top,nt}function getClientRectFromMixedType(tt,et,nt){return et===viewport?rectToClientRect(getViewportRect(tt,nt)):isElement(et)?getInnerBoundingClientRect(et,nt):rectToClientRect(getDocumentRect(getDocumentElement(tt)))}function getClippingParents(tt){var et=listScrollParents(getParentNode(tt)),nt=["absolute","fixed"].indexOf(getComputedStyle$1(tt).position)>=0,rt=nt&&isHTMLElement$1(tt)?getOffsetParent(tt):tt;return isElement(rt)?et.filter(function(it){return isElement(it)&&contains(it,rt)&&getNodeName(it)!=="body"}):[]}function getClippingRect(tt,et,nt,rt){var it=et==="clippingParents"?getClippingParents(tt):[].concat(et),ot=[].concat(it,[nt]),at=ot[0],st=ot.reduce(function(lt,ct){var ut=getClientRectFromMixedType(tt,ct,rt);return lt.top=max$3(ut.top,lt.top),lt.right=min$3(ut.right,lt.right),lt.bottom=min$3(ut.bottom,lt.bottom),lt.left=max$3(ut.left,lt.left),lt},getClientRectFromMixedType(tt,at,rt));return st.width=st.right-st.left,st.height=st.bottom-st.top,st.x=st.left,st.y=st.top,st}function computeOffsets(tt){var et=tt.reference,nt=tt.element,rt=tt.placement,it=rt?getBasePlacement(rt):null,ot=rt?getVariation(rt):null,at=et.x+et.width/2-nt.width/2,st=et.y+et.height/2-nt.height/2,lt;switch(it){case top:lt={x:at,y:et.y-nt.height};break;case bottom:lt={x:at,y:et.y+et.height};break;case right:lt={x:et.x+et.width,y:st};break;case left:lt={x:et.x-nt.width,y:st};break;default:lt={x:et.x,y:et.y}}var ct=it?getMainAxisFromPlacement(it):null;if(ct!=null){var ut=ct==="y"?"height":"width";switch(ot){case start$1:lt[ct]=lt[ct]-(et[ut]/2-nt[ut]/2);break;case end:lt[ct]=lt[ct]+(et[ut]/2-nt[ut]/2);break}}return lt}function detectOverflow(tt,et){et===void 0&&(et={});var nt=et,rt=nt.placement,it=rt===void 0?tt.placement:rt,ot=nt.strategy,at=ot===void 0?tt.strategy:ot,st=nt.boundary,lt=st===void 0?clippingParents:st,ct=nt.rootBoundary,ut=ct===void 0?viewport:ct,ht=nt.elementContext,dt=ht===void 0?popper:ht,pt=nt.altBoundary,mt=pt===void 0?!1:pt,gt=nt.padding,yt=gt===void 0?0:gt,bt=mergePaddingObject(typeof yt!="number"?yt:expandToHashMap(yt,basePlacements)),wt=dt===popper?reference:popper,vt=tt.rects.popper,kt=tt.elements[mt?wt:dt],St=getClippingRect(isElement(kt)?kt:kt.contextElement||getDocumentElement(tt.elements.popper),lt,ut,at),Et=getBoundingClientRect(tt.elements.reference),At=computeOffsets({reference:Et,element:vt,strategy:"absolute",placement:it}),Tt=rectToClientRect(Object.assign({},vt,At)),Mt=dt===popper?Tt:Et,Lt={top:St.top-Mt.top+bt.top,bottom:Mt.bottom-St.bottom+bt.bottom,left:St.left-Mt.left+bt.left,right:Mt.right-St.right+bt.right},jt=tt.modifiersData.offset;if(dt===popper&&jt){var Rt=jt[it];Object.keys(Lt).forEach(function($t){var xt=[right,bottom].indexOf($t)>=0?1:-1,It=[top,bottom].indexOf($t)>=0?"y":"x";Lt[$t]+=Rt[It]*xt})}return Lt}function computeAutoPlacement(tt,et){et===void 0&&(et={});var nt=et,rt=nt.placement,it=nt.boundary,ot=nt.rootBoundary,at=nt.padding,st=nt.flipVariations,lt=nt.allowedAutoPlacements,ct=lt===void 0?placements:lt,ut=getVariation(rt),ht=ut?st?variationPlacements:variationPlacements.filter(function(mt){return getVariation(mt)===ut}):basePlacements,dt=ht.filter(function(mt){return ct.indexOf(mt)>=0});dt.length===0&&(dt=ht);var pt=dt.reduce(function(mt,gt){return mt[gt]=detectOverflow(tt,{placement:gt,boundary:it,rootBoundary:ot,padding:at})[getBasePlacement(gt)],mt},{});return Object.keys(pt).sort(function(mt,gt){return pt[mt]-pt[gt]})}function getExpandedFallbackPlacements(tt){if(getBasePlacement(tt)===auto)return[];var et=getOppositePlacement(tt);return[getOppositeVariationPlacement(tt),et,getOppositeVariationPlacement(et)]}function flip$1(tt){var et=tt.state,nt=tt.options,rt=tt.name;if(!et.modifiersData[rt]._skip){for(var it=nt.mainAxis,ot=it===void 0?!0:it,at=nt.altAxis,st=at===void 0?!0:at,lt=nt.fallbackPlacements,ct=nt.padding,ut=nt.boundary,ht=nt.rootBoundary,dt=nt.altBoundary,pt=nt.flipVariations,mt=pt===void 0?!0:pt,gt=nt.allowedAutoPlacements,yt=et.options.placement,bt=getBasePlacement(yt),wt=bt===yt,vt=lt||(wt||!mt?[getOppositePlacement(yt)]:getExpandedFallbackPlacements(yt)),kt=[yt].concat(vt).reduce(function(Jt,nn){return Jt.concat(getBasePlacement(nn)===auto?computeAutoPlacement(et,{placement:nn,boundary:ut,rootBoundary:ht,padding:ct,flipVariations:mt,allowedAutoPlacements:gt}):nn)},[]),St=et.rects.reference,Et=et.rects.popper,At=new Map,Tt=!0,Mt=kt[0],Lt=0;Lt=0,It=xt?"width":"height",Ot=detectOverflow(et,{placement:jt,boundary:ut,rootBoundary:ht,altBoundary:dt,padding:ct}),zt=xt?$t?right:left:$t?bottom:top;St[It]>Et[It]&&(zt=getOppositePlacement(zt));var Ut=getOppositePlacement(zt),Wt=[];if(ot&&Wt.push(Ot[Rt]<=0),st&&Wt.push(Ot[zt]<=0,Ot[Ut]<=0),Wt.every(function(Jt){return Jt})){Mt=jt,Tt=!1;break}At.set(jt,Wt)}if(Tt)for(var Ft=mt?3:1,Nt=function(nn){var Yt=kt.find(function(fn){var cn=At.get(fn);if(cn)return cn.slice(0,nn).every(function(_n){return _n})});if(Yt)return Mt=Yt,"break"},Ct=Ft;Ct>0;Ct--){var Ht=Nt(Ct);if(Ht==="break")break}et.placement!==Mt&&(et.modifiersData[rt]._skip=!0,et.placement=Mt,et.reset=!0)}}const flip$2={name:"flip",enabled:!0,phase:"main",fn:flip$1,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(tt,et,nt){return nt===void 0&&(nt={x:0,y:0}),{top:tt.top-et.height-nt.y,right:tt.right-et.width+nt.x,bottom:tt.bottom-et.height+nt.y,left:tt.left-et.width-nt.x}}function isAnySideFullyClipped(tt){return[top,right,bottom,left].some(function(et){return tt[et]>=0})}function hide(tt){var et=tt.state,nt=tt.name,rt=et.rects.reference,it=et.rects.popper,ot=et.modifiersData.preventOverflow,at=detectOverflow(et,{elementContext:"reference"}),st=detectOverflow(et,{altBoundary:!0}),lt=getSideOffsets(at,rt),ct=getSideOffsets(st,it,ot),ut=isAnySideFullyClipped(lt),ht=isAnySideFullyClipped(ct);et.modifiersData[nt]={referenceClippingOffsets:lt,popperEscapeOffsets:ct,isReferenceHidden:ut,hasPopperEscaped:ht},et.attributes.popper=Object.assign({},et.attributes.popper,{"data-popper-reference-hidden":ut,"data-popper-escaped":ht})}const hide$1={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide};function distanceAndSkiddingToXY(tt,et,nt){var rt=getBasePlacement(tt),it=[left,top].indexOf(rt)>=0?-1:1,ot=typeof nt=="function"?nt(Object.assign({},et,{placement:tt})):nt,at=ot[0],st=ot[1];return at=at||0,st=(st||0)*it,[left,right].indexOf(rt)>=0?{x:st,y:at}:{x:at,y:st}}function offset$1(tt){var et=tt.state,nt=tt.options,rt=tt.name,it=nt.offset,ot=it===void 0?[0,0]:it,at=placements.reduce(function(ut,ht){return ut[ht]=distanceAndSkiddingToXY(ht,et.rects,ot),ut},{}),st=at[et.placement],lt=st.x,ct=st.y;et.modifiersData.popperOffsets!=null&&(et.modifiersData.popperOffsets.x+=lt,et.modifiersData.popperOffsets.y+=ct),et.modifiersData[rt]=at}const offset$2={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset$1};function popperOffsets(tt){var et=tt.state,nt=tt.name;et.modifiersData[nt]=computeOffsets({reference:et.rects.reference,element:et.rects.popper,strategy:"absolute",placement:et.placement})}const popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(tt){return tt==="x"?"y":"x"}function preventOverflow(tt){var et=tt.state,nt=tt.options,rt=tt.name,it=nt.mainAxis,ot=it===void 0?!0:it,at=nt.altAxis,st=at===void 0?!1:at,lt=nt.boundary,ct=nt.rootBoundary,ut=nt.altBoundary,ht=nt.padding,dt=nt.tether,pt=dt===void 0?!0:dt,mt=nt.tetherOffset,gt=mt===void 0?0:mt,yt=detectOverflow(et,{boundary:lt,rootBoundary:ct,padding:ht,altBoundary:ut}),bt=getBasePlacement(et.placement),wt=getVariation(et.placement),vt=!wt,kt=getMainAxisFromPlacement(bt),St=getAltAxis(kt),Et=et.modifiersData.popperOffsets,At=et.rects.reference,Tt=et.rects.popper,Mt=typeof gt=="function"?gt(Object.assign({},et.rects,{placement:et.placement})):gt,Lt=typeof Mt=="number"?{mainAxis:Mt,altAxis:Mt}:Object.assign({mainAxis:0,altAxis:0},Mt),jt=et.modifiersData.offset?et.modifiersData.offset[et.placement]:null,Rt={x:0,y:0};if(Et){if(ot){var $t,xt=kt==="y"?top:left,It=kt==="y"?bottom:right,Ot=kt==="y"?"height":"width",zt=Et[kt],Ut=zt+yt[xt],Wt=zt-yt[It],Ft=pt?-Tt[Ot]/2:0,Nt=wt===start$1?At[Ot]:Tt[Ot],Ct=wt===start$1?-Tt[Ot]:-At[Ot],Ht=et.elements.arrow,Jt=pt&&Ht?getLayoutRect(Ht):{width:0,height:0},nn=et.modifiersData["arrow#persistent"]?et.modifiersData["arrow#persistent"].padding:getFreshSideObject(),Yt=nn[xt],fn=nn[It],cn=within(0,At[Ot],Jt[Ot]),_n=vt?At[Ot]/2-Ft-cn-Yt-Lt.mainAxis:Nt-cn-Yt-Lt.mainAxis,En=vt?-At[Ot]/2+Ft+cn+fn+Lt.mainAxis:Ct+cn+fn+Lt.mainAxis,an=et.elements.arrow&&getOffsetParent(et.elements.arrow),en=an?kt==="y"?an.clientTop||0:an.clientLeft||0:0,Tn=($t=jt==null?void 0:jt[kt])!=null?$t:0,Rn=zt+_n-Tn-en,An=zt+En-Tn,yn=within(pt?min$3(Ut,Rn):Ut,zt,pt?max$3(Wt,An):Wt);Et[kt]=yn,Rt[kt]=yn-zt}if(st){var kn,dn=kt==="x"?top:left,gn=kt==="x"?bottom:right,Cn=Et[St],$n=St==="y"?"height":"width",un=Cn+yt[dn],rn=Cn-yt[gn],Sn=[top,left].indexOf(bt)!==-1,Mn=(kn=jt==null?void 0:jt[St])!=null?kn:0,Nn=Sn?un:Cn-At[$n]-Tt[$n]-Mn+Lt.altAxis,hn=Sn?Cn+At[$n]+Tt[$n]-Mn-Lt.altAxis:rn,Qt=pt&&Sn?withinMaxClamp(Nn,Cn,hn):within(pt?Nn:un,Cn,pt?hn:rn);Et[St]=Qt,Rt[St]=Qt-Cn}et.modifiersData[rt]=Rt}}const preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(tt){return{scrollLeft:tt.scrollLeft,scrollTop:tt.scrollTop}}function getNodeScroll(tt){return tt===getWindow(tt)||!isHTMLElement$1(tt)?getWindowScroll(tt):getHTMLElementScroll(tt)}function isElementScaled(tt){var et=tt.getBoundingClientRect(),nt=round$2(et.width)/tt.offsetWidth||1,rt=round$2(et.height)/tt.offsetHeight||1;return nt!==1||rt!==1}function getCompositeRect(tt,et,nt){nt===void 0&&(nt=!1);var rt=isHTMLElement$1(et),it=isHTMLElement$1(et)&&isElementScaled(et),ot=getDocumentElement(et),at=getBoundingClientRect(tt,it,nt),st={scrollLeft:0,scrollTop:0},lt={x:0,y:0};return(rt||!rt&&!nt)&&((getNodeName(et)!=="body"||isScrollParent(ot))&&(st=getNodeScroll(et)),isHTMLElement$1(et)?(lt=getBoundingClientRect(et,!0),lt.x+=et.clientLeft,lt.y+=et.clientTop):ot&&(lt.x=getWindowScrollBarX(ot))),{x:at.left+st.scrollLeft-lt.x,y:at.top+st.scrollTop-lt.y,width:at.width,height:at.height}}function order(tt){var et=new Map,nt=new Set,rt=[];tt.forEach(function(ot){et.set(ot.name,ot)});function it(ot){nt.add(ot.name);var at=[].concat(ot.requires||[],ot.requiresIfExists||[]);at.forEach(function(st){if(!nt.has(st)){var lt=et.get(st);lt&&it(lt)}}),rt.push(ot)}return tt.forEach(function(ot){nt.has(ot.name)||it(ot)}),rt}function orderModifiers(tt){var et=order(tt);return modifierPhases.reduce(function(nt,rt){return nt.concat(et.filter(function(it){return it.phase===rt}))},[])}function debounce$4(tt){var et;return function(){return et||(et=new Promise(function(nt){Promise.resolve().then(function(){et=void 0,nt(tt())})})),et}}function mergeByName(tt){var et=tt.reduce(function(nt,rt){var it=nt[rt.name];return nt[rt.name]=it?Object.assign({},it,rt,{options:Object.assign({},it.options,rt.options),data:Object.assign({},it.data,rt.data)}):rt,nt},{});return Object.keys(et).map(function(nt){return et[nt]})}var DEFAULT_OPTIONS$k={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var tt=arguments.length,et=new Array(tt),nt=0;nt{ot||st(getContainer$1(it)||document.body)},[it,ot]),useEnhancedEffect$1(()=>{if(at&&!ot)return setRef(nt,at),()=>{setRef(nt,null)}},[nt,at,ot]),ot){if(reactExports.isValidElement(rt)){const ct={ref:lt};return reactExports.cloneElement(rt,ct)}return jsxRuntimeExports.jsx(reactExports.Fragment,{children:rt})}return jsxRuntimeExports.jsx(reactExports.Fragment,{children:at&&reactDomExports.createPortal(rt,at)})}),Portal$2=Portal$1;function getPopperUtilityClass(tt){return generateUtilityClass("MuiPopper",tt)}generateUtilityClasses("MuiPopper",["root"]);const _excluded$1p=["anchorEl","children","direction","disablePortal","modifiers","open","placement","popperOptions","popperRef","slotProps","slots","TransitionProps","ownerState"],_excluded2$a=["anchorEl","children","container","direction","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition","slotProps","slots"];function flipPlacement(tt,et){if(et==="ltr")return tt;switch(tt){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return tt}}function resolveAnchorEl$1(tt){return typeof tt=="function"?tt():tt}function isHTMLElement(tt){return tt.nodeType!==void 0}const useUtilityClasses$W=()=>composeClasses({root:["root"]},useClassNamesOverride(getPopperUtilityClass)),defaultPopperOptions={},PopperTooltip=reactExports.forwardRef(function(et,nt){var rt;const{anchorEl:it,children:ot,direction:at,disablePortal:st,modifiers:lt,open:ct,placement:ut,popperOptions:ht,popperRef:dt,slotProps:pt={},slots:mt={},TransitionProps:gt}=et,yt=_objectWithoutPropertiesLoose$g(et,_excluded$1p),bt=reactExports.useRef(null),wt=useForkRef(bt,nt),vt=reactExports.useRef(null),kt=useForkRef(vt,dt),St=reactExports.useRef(kt);useEnhancedEffect$1(()=>{St.current=kt},[kt]),reactExports.useImperativeHandle(dt,()=>vt.current,[]);const Et=flipPlacement(ut,at),[At,Tt]=reactExports.useState(Et),[Mt,Lt]=reactExports.useState(resolveAnchorEl$1(it));reactExports.useEffect(()=>{vt.current&&vt.current.forceUpdate()}),reactExports.useEffect(()=>{it&&Lt(resolveAnchorEl$1(it))},[it]),useEnhancedEffect$1(()=>{if(!Mt||!ct)return;const It=Ut=>{Tt(Ut.placement)};let Ot=[{name:"preventOverflow",options:{altBoundary:st}},{name:"flip",options:{altBoundary:st}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:Ut})=>{It(Ut)}}];lt!=null&&(Ot=Ot.concat(lt)),ht&&ht.modifiers!=null&&(Ot=Ot.concat(ht.modifiers));const zt=createPopper(Mt,bt.current,_extends$r({placement:Et},ht,{modifiers:Ot}));return St.current(zt),()=>{zt.destroy(),St.current(null)}},[Mt,st,lt,ct,ht,Et]);const jt={placement:At};gt!==null&&(jt.TransitionProps=gt);const Rt=useUtilityClasses$W(),$t=(rt=mt.root)!=null?rt:"div",xt=useSlotProps({elementType:$t,externalSlotProps:pt.root,externalForwardedProps:yt,additionalProps:{role:"tooltip",ref:wt},ownerState:et,className:Rt.root});return jsxRuntimeExports.jsx($t,_extends$r({},xt,{children:typeof ot=="function"?ot(jt):ot}))}),Popper$1=reactExports.forwardRef(function(et,nt){const{anchorEl:rt,children:it,container:ot,direction:at="ltr",disablePortal:st=!1,keepMounted:lt=!1,modifiers:ct,open:ut,placement:ht="bottom",popperOptions:dt=defaultPopperOptions,popperRef:pt,style:mt,transition:gt=!1,slotProps:yt={},slots:bt={}}=et,wt=_objectWithoutPropertiesLoose$g(et,_excluded2$a),[vt,kt]=reactExports.useState(!0),St=()=>{kt(!1)},Et=()=>{kt(!0)};if(!lt&&!ut&&(!gt||vt))return null;let At;if(ot)At=ot;else if(rt){const Lt=resolveAnchorEl$1(rt);At=Lt&&isHTMLElement(Lt)?ownerDocument(Lt).body:ownerDocument(null).body}const Tt=!ut&<&&(!gt||vt)?"none":void 0,Mt=gt?{in:ut,onEnter:St,onExited:Et}:void 0;return jsxRuntimeExports.jsx(Portal$2,{disablePortal:st,container:At,children:jsxRuntimeExports.jsx(PopperTooltip,_extends$r({anchorEl:rt,direction:at,disablePortal:st,modifiers:ct,ref:nt,open:gt?!vt:ut,placement:ht,popperOptions:dt,popperRef:pt,slotProps:yt,slots:bt},wt,{style:_extends$r({position:"fixed",top:0,left:0,display:Tt},mt),TransitionProps:Mt,children:it}))})}),BasePopper=Popper$1;function isOverflowing(tt){const et=ownerDocument(tt);return et.body===tt?ownerWindow(tt).innerWidth>et.documentElement.clientWidth:tt.scrollHeight>tt.clientHeight}function ariaHidden(tt,et){et?tt.setAttribute("aria-hidden","true"):tt.removeAttribute("aria-hidden")}function getPaddingRight(tt){return parseInt(ownerWindow(tt).getComputedStyle(tt).paddingRight,10)||0}function isAriaHiddenForbiddenOnElement(tt){const nt=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(tt.tagName)!==-1,rt=tt.tagName==="INPUT"&&tt.getAttribute("type")==="hidden";return nt||rt}function ariaHiddenSiblings(tt,et,nt,rt,it){const ot=[et,nt,...rt];[].forEach.call(tt.children,at=>{const st=ot.indexOf(at)===-1,lt=!isAriaHiddenForbiddenOnElement(at);st&<&&ariaHidden(at,it)})}function findIndexOf(tt,et){let nt=-1;return tt.some((rt,it)=>et(rt)?(nt=it,!0):!1),nt}function handleContainer(tt,et){const nt=[],rt=tt.container;if(!et.disableScrollLock){if(isOverflowing(rt)){const at=getScrollbarSize(ownerDocument(rt));nt.push({value:rt.style.paddingRight,property:"padding-right",el:rt}),rt.style.paddingRight=`${getPaddingRight(rt)+at}px`;const st=ownerDocument(rt).querySelectorAll(".mui-fixed");[].forEach.call(st,lt=>{nt.push({value:lt.style.paddingRight,property:"padding-right",el:lt}),lt.style.paddingRight=`${getPaddingRight(lt)+at}px`})}let ot;if(rt.parentNode instanceof DocumentFragment)ot=ownerDocument(rt).body;else{const at=rt.parentElement,st=ownerWindow(rt);ot=(at==null?void 0:at.nodeName)==="HTML"&&st.getComputedStyle(at).overflowY==="scroll"?at:rt}nt.push({value:ot.style.overflow,property:"overflow",el:ot},{value:ot.style.overflowX,property:"overflow-x",el:ot},{value:ot.style.overflowY,property:"overflow-y",el:ot}),ot.style.overflow="hidden"}return()=>{nt.forEach(({value:ot,el:at,property:st})=>{ot?at.style.setProperty(st,ot):at.style.removeProperty(st)})}}function getHiddenSiblings(tt){const et=[];return[].forEach.call(tt.children,nt=>{nt.getAttribute("aria-hidden")==="true"&&et.push(nt)}),et}class ModalManager{constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}add(et,nt){let rt=this.modals.indexOf(et);if(rt!==-1)return rt;rt=this.modals.length,this.modals.push(et),et.modalRef&&ariaHidden(et.modalRef,!1);const it=getHiddenSiblings(nt);ariaHiddenSiblings(nt,et.mount,et.modalRef,it,!0);const ot=findIndexOf(this.containers,at=>at.container===nt);return ot!==-1?(this.containers[ot].modals.push(et),rt):(this.containers.push({modals:[et],container:nt,restore:null,hiddenSiblings:it}),rt)}mount(et,nt){const rt=findIndexOf(this.containers,ot=>ot.modals.indexOf(et)!==-1),it=this.containers[rt];it.restore||(it.restore=handleContainer(it,nt))}remove(et,nt=!0){const rt=this.modals.indexOf(et);if(rt===-1)return rt;const it=findIndexOf(this.containers,at=>at.modals.indexOf(et)!==-1),ot=this.containers[it];if(ot.modals.splice(ot.modals.indexOf(et),1),this.modals.splice(rt,1),ot.modals.length===0)ot.restore&&ot.restore(),et.modalRef&&ariaHidden(et.modalRef,nt),ariaHiddenSiblings(ot.container,et.mount,et.modalRef,ot.hiddenSiblings,!1),this.containers.splice(it,1);else{const at=ot.modals[ot.modals.length-1];at.modalRef&&ariaHidden(at.modalRef,!1)}return rt}isTopModal(et){return this.modals.length>0&&this.modals[this.modals.length-1]===et}}function getModalUtilityClass(tt){return generateUtilityClass("MuiModal",tt)}generateUtilityClasses("MuiModal",["root","hidden","backdrop"]);const _excluded$1o=["children","closeAfterTransition","container","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","manager","onBackdropClick","onClose","onKeyDown","open","onTransitionEnter","onTransitionExited","slotProps","slots"],useUtilityClasses$V=tt=>{const{open:et,exited:nt}=tt;return composeClasses({root:["root",!et&&nt&&"hidden"],backdrop:["backdrop"]},useClassNamesOverride(getModalUtilityClass))};function getContainer(tt){return typeof tt=="function"?tt():tt}function getHasTransition(tt){return tt?tt.props.hasOwnProperty("in"):!1}const defaultManager=new ModalManager,Modal$2=reactExports.forwardRef(function(et,nt){var rt,it;const{children:ot,closeAfterTransition:at=!1,container:st,disableAutoFocus:lt=!1,disableEnforceFocus:ct=!1,disableEscapeKeyDown:ut=!1,disablePortal:ht=!1,disableRestoreFocus:dt=!1,disableScrollLock:pt=!1,hideBackdrop:mt=!1,keepMounted:gt=!1,manager:yt=defaultManager,onBackdropClick:bt,onClose:wt,onKeyDown:vt,open:kt,onTransitionEnter:St,onTransitionExited:Et,slotProps:At={},slots:Tt={}}=et,Mt=_objectWithoutPropertiesLoose$g(et,_excluded$1o),Lt=yt,[jt,Rt]=reactExports.useState(!kt),$t=reactExports.useRef({}),xt=reactExports.useRef(null),It=reactExports.useRef(null),Ot=useForkRef(It,nt),zt=getHasTransition(ot),Ut=(rt=et["aria-hidden"])!=null?rt:!0,Wt=()=>ownerDocument(xt.current),Ft=()=>($t.current.modalRef=It.current,$t.current.mountNode=xt.current,$t.current),Nt=()=>{Lt.mount(Ft(),{disableScrollLock:pt}),It.current&&(It.current.scrollTop=0)},Ct=useEventCallback(()=>{const kn=getContainer(st)||Wt().body;Lt.add(Ft(),kn),It.current&&Nt()}),Ht=reactExports.useCallback(()=>Lt.isTopModal(Ft()),[Lt]),Jt=useEventCallback(kn=>{xt.current=kn,!(!kn||!It.current)&&(kt&&Ht()?Nt():ariaHidden(It.current,Ut))}),nn=reactExports.useCallback(()=>{Lt.remove(Ft(),Ut)},[Lt,Ut]);reactExports.useEffect(()=>()=>{nn()},[nn]),reactExports.useEffect(()=>{kt?Ct():(!zt||!at)&&nn()},[kt,nn,zt,at,Ct]);const Yt=_extends$r({},et,{closeAfterTransition:at,disableAutoFocus:lt,disableEnforceFocus:ct,disableEscapeKeyDown:ut,disablePortal:ht,disableRestoreFocus:dt,disableScrollLock:pt,exited:jt,hideBackdrop:mt,keepMounted:gt}),fn=useUtilityClasses$V(Yt),cn=()=>{Rt(!1),St&&St()},_n=()=>{Rt(!0),Et&&Et(),at&&nn()},En=kn=>{kn.target===kn.currentTarget&&(bt&&bt(kn),wt&&wt(kn,"backdropClick"))},an=kn=>{vt&&vt(kn),!(kn.key!=="Escape"||!Ht())&&(ut||(kn.stopPropagation(),wt&&wt(kn,"escapeKeyDown")))},en={};ot.props.tabIndex===void 0&&(en.tabIndex="-1"),zt&&(en.onEnter=createChainedFunction(cn,ot.props.onEnter),en.onExited=createChainedFunction(_n,ot.props.onExited));const Tn=(it=Tt.root)!=null?it:"div",Rn=useSlotProps({elementType:Tn,externalSlotProps:At.root,externalForwardedProps:Mt,additionalProps:{ref:Ot,role:"presentation",onKeyDown:an},className:fn.root,ownerState:Yt}),An=Tt.backdrop,yn=useSlotProps({elementType:An,externalSlotProps:At.backdrop,additionalProps:{"aria-hidden":!0,onClick:En,open:kt},className:fn.backdrop,ownerState:Yt});return!gt&&!kt&&(!zt||jt)?null:jsxRuntimeExports.jsx(Portal$2,{ref:Jt,container:st,disablePortal:ht,children:jsxRuntimeExports.jsxs(Tn,_extends$r({},Rn,{children:[!mt&&An?jsxRuntimeExports.jsx(An,_extends$r({},yn)):null,jsxRuntimeExports.jsx(FocusTrap,{disableEnforceFocus:ct,disableAutoFocus:lt,disableRestoreFocus:dt,isEnabled:Ht,open:kt,children:reactExports.cloneElement(ot,en)})]}))})}),ModalUnstyled=Modal$2,INTENTIONAL_DRAG_COUNT_THRESHOLD=2;function asc(tt,et){return tt-et}function clamp$5(tt,et,nt){return tt==null?et:Math.min(Math.max(et,tt),nt)}function findClosest(tt,et){var nt;const{index:rt}=(nt=tt.reduce((it,ot,at)=>{const st=Math.abs(et-ot);return it===null||st({left:`${tt}%`}),leap:tt=>({width:`${tt}%`})},"horizontal-reverse":{offset:tt=>({right:`${tt}%`}),leap:tt=>({width:`${tt}%`})},vertical:{offset:tt=>({bottom:`${tt}%`}),leap:tt=>({height:`${tt}%`})}},Identity$1=tt=>tt;let cachedSupportsTouchActionNone;function doesSupportTouchActionNone(){return cachedSupportsTouchActionNone===void 0&&(typeof CSS<"u"&&typeof CSS.supports=="function"?cachedSupportsTouchActionNone=CSS.supports("touch-action","none"):cachedSupportsTouchActionNone=!0),cachedSupportsTouchActionNone}function useSlider(tt){const{"aria-labelledby":et,defaultValue:nt,disabled:rt=!1,disableSwap:it=!1,isRtl:ot=!1,marks:at=!1,max:st=100,min:lt=0,name:ct,onChange:ut,onChangeCommitted:ht,orientation:dt="horizontal",rootRef:pt,scale:mt=Identity$1,step:gt=1,tabIndex:yt,value:bt}=tt,wt=reactExports.useRef(),[vt,kt]=reactExports.useState(-1),[St,Et]=reactExports.useState(-1),[At,Tt]=reactExports.useState(!1),Mt=reactExports.useRef(0),[Lt,jt]=useControlled({controlled:bt,default:nt??lt,name:"Slider"}),Rt=ut&&((Mn,Nn,hn)=>{const Qt=Mn.nativeEvent||Mn,Zt=new Qt.constructor(Qt.type,Qt);Object.defineProperty(Zt,"target",{writable:!0,value:{value:Nn,name:ct}}),ut(Zt,Nn,hn)}),$t=Array.isArray(Lt);let xt=$t?Lt.slice().sort(asc):[Lt];xt=xt.map(Mn=>clamp$5(Mn,lt,st));const It=at===!0&>!==null?[...Array(Math.floor((st-lt)/gt)+1)].map((Mn,Nn)=>({value:lt+gt*Nn})):at||[],Ot=It.map(Mn=>Mn.value),{isFocusVisibleRef:zt,onBlur:Ut,onFocus:Wt,ref:Ft}=useIsFocusVisible(),[Nt,Ct]=reactExports.useState(-1),Ht=reactExports.useRef(),Jt=useForkRef(Ft,Ht),nn=useForkRef(pt,Jt),Yt=Mn=>Nn=>{var hn;const Qt=Number(Nn.currentTarget.getAttribute("data-index"));Wt(Nn),zt.current===!0&&Ct(Qt),Et(Qt),Mn==null||(hn=Mn.onFocus)==null||hn.call(Mn,Nn)},fn=Mn=>Nn=>{var hn;Ut(Nn),zt.current===!1&&Ct(-1),Et(-1),Mn==null||(hn=Mn.onBlur)==null||hn.call(Mn,Nn)};useEnhancedEffect$1(()=>{if(rt&&Ht.current.contains(document.activeElement)){var Mn;(Mn=document.activeElement)==null||Mn.blur()}},[rt]),rt&&vt!==-1&&kt(-1),rt&&Nt!==-1&&Ct(-1);const cn=Mn=>Nn=>{var hn;(hn=Mn.onChange)==null||hn.call(Mn,Nn);const Qt=Number(Nn.currentTarget.getAttribute("data-index")),Zt=xt[Qt],wn=Ot.indexOf(Zt);let On=Nn.target.valueAsNumber;if(It&>==null){const jn=Ot[Ot.length-1];On>jn?On=jn:On{const{current:hn}=Ht,{width:Qt,height:Zt,bottom:wn,left:On}=hn.getBoundingClientRect();let jn;En.indexOf("vertical")===0?jn=(wn-Mn.y)/Zt:jn=(Mn.x-On)/Qt,En.indexOf("-reverse")!==-1&&(jn=1-jn);let Un;if(Un=percentToValue(jn,lt,st),gt)Un=roundValueToStep(Un,gt,lt);else{const qn=findClosest(Ot,Un);Un=Ot[qn]}Un=clamp$5(Un,lt,st);let tr=0;if($t){Nn?tr=_n.current:tr=findClosest(xt,Un),it&&(Un=clamp$5(Un,xt[tr-1]||-1/0,xt[tr+1]||1/0));const qn=Un;Un=setValueIndex({values:xt,newValue:Un,index:tr}),it&&Nn||(tr=Un.indexOf(qn),_n.current=tr)}return{newValue:Un,activeIndex:tr}},en=useEventCallback(Mn=>{const Nn=trackFinger(Mn,wt);if(!Nn)return;if(Mt.current+=1,Mn.type==="mousemove"&&Mn.buttons===0){Tn(Mn);return}const{newValue:hn,activeIndex:Qt}=an({finger:Nn,move:!0});focusThumb({sliderRef:Ht,activeIndex:Qt,setActive:kt}),jt(hn),!At&&Mt.current>INTENTIONAL_DRAG_COUNT_THRESHOLD&&Tt(!0),Rt&&!areValuesEqual(hn,Lt)&&Rt(Mn,hn,Qt)}),Tn=useEventCallback(Mn=>{const Nn=trackFinger(Mn,wt);if(Tt(!1),!Nn)return;const{newValue:hn}=an({finger:Nn,move:!0});kt(-1),Mn.type==="touchend"&&Et(-1),ht&&ht(Mn,hn),wt.current=void 0,An()}),Rn=useEventCallback(Mn=>{if(rt)return;doesSupportTouchActionNone()||Mn.preventDefault();const Nn=Mn.changedTouches[0];Nn!=null&&(wt.current=Nn.identifier);const hn=trackFinger(Mn,wt);if(hn!==!1){const{newValue:Zt,activeIndex:wn}=an({finger:hn});focusThumb({sliderRef:Ht,activeIndex:wn,setActive:kt}),jt(Zt),Rt&&!areValuesEqual(Zt,Lt)&&Rt(Mn,Zt,wn)}Mt.current=0;const Qt=ownerDocument(Ht.current);Qt.addEventListener("touchmove",en),Qt.addEventListener("touchend",Tn)}),An=reactExports.useCallback(()=>{const Mn=ownerDocument(Ht.current);Mn.removeEventListener("mousemove",en),Mn.removeEventListener("mouseup",Tn),Mn.removeEventListener("touchmove",en),Mn.removeEventListener("touchend",Tn)},[Tn,en]);reactExports.useEffect(()=>{const{current:Mn}=Ht;return Mn.addEventListener("touchstart",Rn,{passive:doesSupportTouchActionNone()}),()=>{Mn.removeEventListener("touchstart",Rn,{passive:doesSupportTouchActionNone()}),An()}},[An,Rn]),reactExports.useEffect(()=>{rt&&An()},[rt,An]);const yn=Mn=>Nn=>{var hn;if((hn=Mn.onMouseDown)==null||hn.call(Mn,Nn),rt||Nn.defaultPrevented||Nn.button!==0)return;Nn.preventDefault();const Qt=trackFinger(Nn,wt);if(Qt!==!1){const{newValue:wn,activeIndex:On}=an({finger:Qt});focusThumb({sliderRef:Ht,activeIndex:On,setActive:kt}),jt(wn),Rt&&!areValuesEqual(wn,Lt)&&Rt(Nn,wn,On)}Mt.current=0;const Zt=ownerDocument(Ht.current);Zt.addEventListener("mousemove",en),Zt.addEventListener("mouseup",Tn)},kn=valueToPercent($t?xt[0]:lt,lt,st),dn=valueToPercent(xt[xt.length-1],lt,st)-kn,gn=(Mn={})=>{const Nn={onMouseDown:yn(Mn||{})},hn=_extends$r({},Mn,Nn);return _extends$r({ref:nn},hn)},Cn=Mn=>Nn=>{var hn;(hn=Mn.onMouseOver)==null||hn.call(Mn,Nn);const Qt=Number(Nn.currentTarget.getAttribute("data-index"));Et(Qt)},$n=Mn=>Nn=>{var hn;(hn=Mn.onMouseLeave)==null||hn.call(Mn,Nn),Et(-1)};return{active:vt,axis:En,axisProps,dragging:At,focusedThumbIndex:Nt,getHiddenInputProps:(Mn={})=>{var Nn;const hn={onChange:cn(Mn||{}),onFocus:Yt(Mn||{}),onBlur:fn(Mn||{})},Qt=_extends$r({},Mn,hn);return _extends$r({tabIndex:yt,"aria-labelledby":et,"aria-orientation":dt,"aria-valuemax":mt(st),"aria-valuemin":mt(lt),name:ct,type:"range",min:tt.min,max:tt.max,step:tt.step===null&&tt.marks?"any":(Nn=tt.step)!=null?Nn:void 0,disabled:rt},Qt,{style:_extends$r({},visuallyHidden$1,{direction:ot?"rtl":"ltr",width:"100%",height:"100%"})})},getRootProps:gn,getThumbProps:(Mn={})=>{const Nn={onMouseOver:Cn(Mn||{}),onMouseLeave:$n(Mn||{})};return _extends$r({},Mn,Nn)},marks:It,open:St,range:$t,rootRef:nn,trackLeap:dn,trackOffset:kn,values:xt,getThumbStyle:Mn=>({pointerEvents:vt!==-1&&vt!==Mn?"none":void 0})}}const _excluded$1n=["onChange","maxRows","minRows","style","value"];function getStyleValue(tt){return parseInt(tt,10)||0}const styles$5={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function isEmpty$1(tt){return tt==null||Object.keys(tt).length===0||tt.outerHeightStyle===0&&!tt.overflow}const TextareaAutosize=reactExports.forwardRef(function(et,nt){const{onChange:rt,maxRows:it,minRows:ot=1,style:at,value:st}=et,lt=_objectWithoutPropertiesLoose$g(et,_excluded$1n),{current:ct}=reactExports.useRef(st!=null),ut=reactExports.useRef(null),ht=useForkRef(nt,ut),dt=reactExports.useRef(null),pt=reactExports.useRef(0),[mt,gt]=reactExports.useState({outerHeightStyle:0}),yt=reactExports.useCallback(()=>{const St=ut.current,At=ownerWindow(St).getComputedStyle(St);if(At.width==="0px")return{outerHeightStyle:0};const Tt=dt.current;Tt.style.width=At.width,Tt.value=St.value||et.placeholder||"x",Tt.value.slice(-1)===` +`&&(Tt.value+=" ");const Mt=At.boxSizing,Lt=getStyleValue(At.paddingBottom)+getStyleValue(At.paddingTop),jt=getStyleValue(At.borderBottomWidth)+getStyleValue(At.borderTopWidth),Rt=Tt.scrollHeight;Tt.value="x";const $t=Tt.scrollHeight;let xt=Rt;ot&&(xt=Math.max(Number(ot)*$t,xt)),it&&(xt=Math.min(Number(it)*$t,xt)),xt=Math.max(xt,$t);const It=xt+(Mt==="border-box"?Lt+jt:0),Ot=Math.abs(xt-Rt)<=1;return{outerHeightStyle:It,overflow:Ot}},[it,ot,et.placeholder]),bt=(St,Et)=>{const{outerHeightStyle:At,overflow:Tt}=Et;return pt.current<20&&(At>0&&Math.abs((St.outerHeightStyle||0)-At)>1||St.overflow!==Tt)?(pt.current+=1,{overflow:Tt,outerHeightStyle:At}):St},wt=reactExports.useCallback(()=>{const St=yt();isEmpty$1(St)||gt(Et=>bt(Et,St))},[yt]),vt=()=>{const St=yt();isEmpty$1(St)||reactDomExports.flushSync(()=>{gt(Et=>bt(Et,St))})};reactExports.useEffect(()=>{const St=debounce$5(()=>{pt.current=0,ut.current&&vt()});let Et;const At=ut.current,Tt=ownerWindow(At);return Tt.addEventListener("resize",St),typeof ResizeObserver<"u"&&(Et=new ResizeObserver(St),Et.observe(At)),()=>{St.clear(),Tt.removeEventListener("resize",St),Et&&Et.disconnect()}}),useEnhancedEffect$1(()=>{wt()}),reactExports.useEffect(()=>{pt.current=0},[st]);const kt=St=>{pt.current=0,ct||wt(),rt&&rt(St)};return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("textarea",_extends$r({value:st,onChange:kt,ref:ht,rows:ot,style:_extends$r({height:mt.outerHeightStyle,overflow:mt.overflow?"hidden":void 0},at)},lt)),jsxRuntimeExports.jsx("textarea",{"aria-hidden":!0,className:et.className,readOnly:!0,ref:dt,tabIndex:-1,style:_extends$r({},styles$5.shadow,at,{paddingTop:0,paddingBottom:0})})]})}),TextareaAutosize$1=TextareaAutosize;function getSvgIconUtilityClass(tt){return generateUtilityClass("MuiSvgIcon",tt)}generateUtilityClasses("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const _excluded$1m=["children","className","color","component","fontSize","htmlColor","inheritViewBox","titleAccess","viewBox"],useUtilityClasses$U=tt=>{const{color:et,fontSize:nt,classes:rt}=tt,it={root:["root",et!=="inherit"&&`color${capitalize(et)}`,`fontSize${capitalize(nt)}`]};return composeClasses(it,getSvgIconUtilityClass,rt)},SvgIconRoot=styled$1("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.color!=="inherit"&&et[`color${capitalize(nt.color)}`],et[`fontSize${capitalize(nt.fontSize)}`]]}})(({theme:tt,ownerState:et})=>{var nt,rt,it,ot,at,st,lt,ct,ut,ht,dt,pt,mt;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:et.hasSvgAsChild?void 0:"currentColor",flexShrink:0,transition:(nt=tt.transitions)==null||(rt=nt.create)==null?void 0:rt.call(nt,"fill",{duration:(it=tt.transitions)==null||(it=it.duration)==null?void 0:it.shorter}),fontSize:{inherit:"inherit",small:((ot=tt.typography)==null||(at=ot.pxToRem)==null?void 0:at.call(ot,20))||"1.25rem",medium:((st=tt.typography)==null||(lt=st.pxToRem)==null?void 0:lt.call(st,24))||"1.5rem",large:((ct=tt.typography)==null||(ut=ct.pxToRem)==null?void 0:ut.call(ct,35))||"2.1875rem"}[et.fontSize],color:(ht=(dt=(tt.vars||tt).palette)==null||(dt=dt[et.color])==null?void 0:dt.main)!=null?ht:{action:(pt=(tt.vars||tt).palette)==null||(pt=pt.action)==null?void 0:pt.active,disabled:(mt=(tt.vars||tt).palette)==null||(mt=mt.action)==null?void 0:mt.disabled,inherit:void 0}[et.color]}}),SvgIcon=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiSvgIcon"}),{children:it,className:ot,color:at="inherit",component:st="svg",fontSize:lt="medium",htmlColor:ct,inheritViewBox:ut=!1,titleAccess:ht,viewBox:dt="0 0 24 24"}=rt,pt=_objectWithoutPropertiesLoose$g(rt,_excluded$1m),mt=reactExports.isValidElement(it)&&it.type==="svg",gt=_extends$r({},rt,{color:at,component:st,fontSize:lt,instanceFontSize:et.fontSize,inheritViewBox:ut,viewBox:dt,hasSvgAsChild:mt}),yt={};ut||(yt.viewBox=dt);const bt=useUtilityClasses$U(gt);return jsxRuntimeExports.jsxs(SvgIconRoot,_extends$r({as:st,className:clsx(bt.root,ot),focusable:"false",color:ct,"aria-hidden":ht?void 0:!0,role:ht?"img":void 0,ref:nt},yt,pt,mt&&it.props,{ownerState:gt,children:[mt?it.props.children:it,ht?jsxRuntimeExports.jsx("title",{children:ht}):null]}))});SvgIcon.muiName="SvgIcon";const SvgIcon$1=SvgIcon;function createSvgIcon(tt,et){function nt(rt,it){return jsxRuntimeExports.jsx(SvgIcon$1,_extends$r({"data-testid":`${et}Icon`,ref:it},rt,{children:tt}))}return nt.muiName=SvgIcon$1.muiName,reactExports.memo(reactExports.forwardRef(nt))}function _setPrototypeOf$b(tt,et){return _setPrototypeOf$b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(rt,it){return rt.__proto__=it,rt},_setPrototypeOf$b(tt,et)}function _inheritsLoose$2(tt,et){tt.prototype=Object.create(et.prototype),tt.prototype.constructor=tt,_setPrototypeOf$b(tt,et)}function hasClass(tt,et){return tt.classList?!!et&&tt.classList.contains(et):(" "+(tt.className.baseVal||tt.className)+" ").indexOf(" "+et+" ")!==-1}function addClass(tt,et){tt.classList?tt.classList.add(et):hasClass(tt,et)||(typeof tt.className=="string"?tt.className=tt.className+" "+et:tt.setAttribute("class",(tt.className&&tt.className.baseVal||"")+" "+et))}function replaceClassName(tt,et){return tt.replace(new RegExp("(^|\\s)"+et+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function removeClass$1(tt,et){tt.classList?tt.classList.remove(et):typeof tt.className=="string"?tt.className=replaceClassName(tt.className,et):tt.setAttribute("class",replaceClassName(tt.className&&tt.className.baseVal||"",et))}const config$2={disabled:!1},TransitionGroupContext=React$1.createContext(null);var forceReflow=function(et){return et.scrollTop},UNMOUNTED="unmounted",EXITED="exited",ENTERING="entering",ENTERED="entered",EXITING="exiting",Transition=function(tt){_inheritsLoose$2(et,tt);function et(rt,it){var ot;ot=tt.call(this,rt,it)||this;var at=it,st=at&&!at.isMounting?rt.enter:rt.appear,lt;return ot.appearStatus=null,rt.in?st?(lt=EXITED,ot.appearStatus=ENTERING):lt=ENTERED:rt.unmountOnExit||rt.mountOnEnter?lt=UNMOUNTED:lt=EXITED,ot.state={status:lt},ot.nextCallback=null,ot}et.getDerivedStateFromProps=function(it,ot){var at=it.in;return at&&ot.status===UNMOUNTED?{status:EXITED}:null};var nt=et.prototype;return nt.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},nt.componentDidUpdate=function(it){var ot=null;if(it!==this.props){var at=this.state.status;this.props.in?at!==ENTERING&&at!==ENTERED&&(ot=ENTERING):(at===ENTERING||at===ENTERED)&&(ot=EXITING)}this.updateStatus(!1,ot)},nt.componentWillUnmount=function(){this.cancelNextCallback()},nt.getTimeouts=function(){var it=this.props.timeout,ot,at,st;return ot=at=st=it,it!=null&&typeof it!="number"&&(ot=it.exit,at=it.enter,st=it.appear!==void 0?it.appear:at),{exit:ot,enter:at,appear:st}},nt.updateStatus=function(it,ot){if(it===void 0&&(it=!1),ot!==null)if(this.cancelNextCallback(),ot===ENTERING){if(this.props.unmountOnExit||this.props.mountOnEnter){var at=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this);at&&forceReflow(at)}this.performEnter(it)}else this.performExit();else this.props.unmountOnExit&&this.state.status===EXITED&&this.setState({status:UNMOUNTED})},nt.performEnter=function(it){var ot=this,at=this.props.enter,st=this.context?this.context.isMounting:it,lt=this.props.nodeRef?[st]:[ReactDOM.findDOMNode(this),st],ct=lt[0],ut=lt[1],ht=this.getTimeouts(),dt=st?ht.appear:ht.enter;if(!it&&!at||config$2.disabled){this.safeSetState({status:ENTERED},function(){ot.props.onEntered(ct)});return}this.props.onEnter(ct,ut),this.safeSetState({status:ENTERING},function(){ot.props.onEntering(ct,ut),ot.onTransitionEnd(dt,function(){ot.safeSetState({status:ENTERED},function(){ot.props.onEntered(ct,ut)})})})},nt.performExit=function(){var it=this,ot=this.props.exit,at=this.getTimeouts(),st=this.props.nodeRef?void 0:ReactDOM.findDOMNode(this);if(!ot||config$2.disabled){this.safeSetState({status:EXITED},function(){it.props.onExited(st)});return}this.props.onExit(st),this.safeSetState({status:EXITING},function(){it.props.onExiting(st),it.onTransitionEnd(at.exit,function(){it.safeSetState({status:EXITED},function(){it.props.onExited(st)})})})},nt.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},nt.safeSetState=function(it,ot){ot=this.setNextCallback(ot),this.setState(it,ot)},nt.setNextCallback=function(it){var ot=this,at=!0;return this.nextCallback=function(st){at&&(at=!1,ot.nextCallback=null,it(st))},this.nextCallback.cancel=function(){at=!1},this.nextCallback},nt.onTransitionEnd=function(it,ot){this.setNextCallback(ot);var at=this.props.nodeRef?this.props.nodeRef.current:ReactDOM.findDOMNode(this),st=it==null&&!this.props.addEndListener;if(!at||st){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var lt=this.props.nodeRef?[this.nextCallback]:[at,this.nextCallback],ct=lt[0],ut=lt[1];this.props.addEndListener(ct,ut)}it!=null&&setTimeout(this.nextCallback,it)},nt.render=function(){var it=this.state.status;if(it===UNMOUNTED)return null;var ot=this.props,at=ot.children;ot.in,ot.mountOnEnter,ot.unmountOnExit,ot.appear,ot.enter,ot.exit,ot.timeout,ot.addEndListener,ot.onEnter,ot.onEntering,ot.onEntered,ot.onExit,ot.onExiting,ot.onExited,ot.nodeRef;var st=_objectWithoutPropertiesLoose$g(ot,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return React$1.createElement(TransitionGroupContext.Provider,{value:null},typeof at=="function"?at(it,st):React$1.cloneElement(React$1.Children.only(at),st))},et}(React$1.Component);Transition.contextType=TransitionGroupContext;Transition.propTypes={};function noop$8(){}Transition.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:noop$8,onEntering:noop$8,onEntered:noop$8,onExit:noop$8,onExiting:noop$8,onExited:noop$8};Transition.UNMOUNTED=UNMOUNTED;Transition.EXITED=EXITED;Transition.ENTERING=ENTERING;Transition.ENTERED=ENTERED;Transition.EXITING=EXITING;const Transition$1=Transition;var _addClass=function(et,nt){return et&&nt&&nt.split(" ").forEach(function(rt){return addClass(et,rt)})},removeClass=function(et,nt){return et&&nt&&nt.split(" ").forEach(function(rt){return removeClass$1(et,rt)})},CSSTransition=function(tt){_inheritsLoose$2(et,tt);function et(){for(var rt,it=arguments.length,ot=new Array(it),at=0;attt.scrollTop;function getTransitionProps(tt,et){var nt,rt;const{timeout:it,easing:ot,style:at={}}=tt;return{duration:(nt=at.transitionDuration)!=null?nt:typeof it=="number"?it:it[et.mode]||0,easing:(rt=at.transitionTimingFunction)!=null?rt:typeof ot=="object"?ot[et.mode]:ot,delay:at.transitionDelay}}function getPaperUtilityClass(tt){return generateUtilityClass("MuiPaper",tt)}generateUtilityClasses("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const _excluded$1l=["className","component","elevation","square","variant"],useUtilityClasses$T=tt=>{const{square:et,elevation:nt,variant:rt,classes:it}=tt,ot={root:["root",rt,!et&&"rounded",rt==="elevation"&&`elevation${nt}`]};return composeClasses(ot,getPaperUtilityClass,it)},PaperRoot=styled$1("div",{name:"MuiPaper",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,et[nt.variant],!nt.square&&et.rounded,nt.variant==="elevation"&&et[`elevation${nt.elevation}`]]}})(({theme:tt,ownerState:et})=>{var nt;return _extends$r({backgroundColor:(tt.vars||tt).palette.background.paper,color:(tt.vars||tt).palette.text.primary,transition:tt.transitions.create("box-shadow")},!et.square&&{borderRadius:tt.shape.borderRadius},et.variant==="outlined"&&{border:`1px solid ${(tt.vars||tt).palette.divider}`},et.variant==="elevation"&&_extends$r({boxShadow:(tt.vars||tt).shadows[et.elevation]},!tt.vars&&tt.palette.mode==="dark"&&{backgroundImage:`linear-gradient(${alpha$1("#fff",getOverlayAlpha$1(et.elevation))}, ${alpha$1("#fff",getOverlayAlpha$1(et.elevation))})`},tt.vars&&{backgroundImage:(nt=tt.vars.overlays)==null?void 0:nt[et.elevation]}))}),Paper=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiPaper"}),{className:it,component:ot="div",elevation:at=1,square:st=!1,variant:lt="elevation"}=rt,ct=_objectWithoutPropertiesLoose$g(rt,_excluded$1l),ut=_extends$r({},rt,{component:ot,elevation:at,square:st,variant:lt}),ht=useUtilityClasses$T(ut);return jsxRuntimeExports.jsx(PaperRoot,_extends$r({as:ot,ownerState:ut,className:clsx(ht.root,it),ref:nt},ct))}),Paper$1=Paper;function Ripple(tt){const{className:et,classes:nt,pulsate:rt=!1,rippleX:it,rippleY:ot,rippleSize:at,in:st,onExited:lt,timeout:ct}=tt,[ut,ht]=reactExports.useState(!1),dt=clsx(et,nt.ripple,nt.rippleVisible,rt&&nt.ripplePulsate),pt={width:at,height:at,top:-(at/2)+ot,left:-(at/2)+it},mt=clsx(nt.child,ut&&nt.childLeaving,rt&&nt.childPulsate);return!st&&!ut&&ht(!0),reactExports.useEffect(()=>{if(!st&<!=null){const gt=setTimeout(lt,ct);return()=>{clearTimeout(gt)}}},[lt,st,ct]),jsxRuntimeExports.jsx("span",{className:dt,style:pt,children:jsxRuntimeExports.jsx("span",{className:mt})})}const touchRippleClasses=generateUtilityClasses("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),touchRippleClasses$1=touchRippleClasses,_excluded$1k=["center","classes","className"];let _$1=tt=>tt,_t$1,_t2$1,_t3$1,_t4$1;const DURATION=550,DELAY_RIPPLE=80,enterKeyframe=keyframes(_t$1||(_t$1=_$1` 0% { transform: scale(0); opacity: 0.1; @@ -193,7 +193,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho animation-iteration-count: infinite; animation-delay: 200ms; } -`),touchRippleClasses$1.rippleVisible,enterKeyframe,DURATION,({theme:tt})=>tt.transitions.easing.easeInOut,touchRippleClasses$1.ripplePulsate,({theme:tt})=>tt.transitions.duration.shorter,touchRippleClasses$1.child,touchRippleClasses$1.childLeaving,exitKeyframe,DURATION,({theme:tt})=>tt.transitions.easing.easeInOut,touchRippleClasses$1.childPulsate,pulsateKeyframe,({theme:tt})=>tt.transitions.easing.easeInOut),TouchRipple=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTouchRipple"}),{center:it=!1,classes:ot={},className:at}=rt,st=_objectWithoutPropertiesLoose$g(rt,_excluded$1k),[lt,ct]=reactExports.useState([]),ut=reactExports.useRef(0),ht=reactExports.useRef(null);reactExports.useEffect(()=>{ht.current&&(ht.current(),ht.current=null)},[lt]);const dt=reactExports.useRef(!1),pt=reactExports.useRef(0),mt=reactExports.useRef(null),gt=reactExports.useRef(null);reactExports.useEffect(()=>()=>{pt.current&&clearTimeout(pt.current)},[]);const yt=reactExports.useCallback(kt=>{const{pulsate:St,rippleX:Tt,rippleY:At,rippleSize:Et,cb:Mt}=kt;ct(Lt=>[...Lt,jsxRuntimeExports.jsx(TouchRippleRipple,{classes:{ripple:clsx(ot.ripple,touchRippleClasses$1.ripple),rippleVisible:clsx(ot.rippleVisible,touchRippleClasses$1.rippleVisible),ripplePulsate:clsx(ot.ripplePulsate,touchRippleClasses$1.ripplePulsate),child:clsx(ot.child,touchRippleClasses$1.child),childLeaving:clsx(ot.childLeaving,touchRippleClasses$1.childLeaving),childPulsate:clsx(ot.childPulsate,touchRippleClasses$1.childPulsate)},timeout:DURATION,pulsate:St,rippleX:Tt,rippleY:At,rippleSize:Et},ut.current)]),ut.current+=1,ht.current=Mt},[ot]),bt=reactExports.useCallback((kt={},St={},Tt=()=>{})=>{const{pulsate:At=!1,center:Et=it||St.pulsate,fakeElement:Mt=!1}=St;if((kt==null?void 0:kt.type)==="mousedown"&&dt.current){dt.current=!1;return}(kt==null?void 0:kt.type)==="touchstart"&&(dt.current=!0);const Lt=Mt?null:gt.current,jt=Lt?Lt.getBoundingClientRect():{width:0,height:0,left:0,top:0};let Rt,$t,xt;if(Et||kt===void 0||kt.clientX===0&&kt.clientY===0||!kt.clientX&&!kt.touches)Rt=Math.round(jt.width/2),$t=Math.round(jt.height/2);else{const{clientX:It,clientY:Ot}=kt.touches&&kt.touches.length>0?kt.touches[0]:kt;Rt=Math.round(It-jt.left),$t=Math.round(Ot-jt.top)}if(Et)xt=Math.sqrt((2*jt.width**2+jt.height**2)/3),xt%2===0&&(xt+=1);else{const It=Math.max(Math.abs((Lt?Lt.clientWidth:0)-Rt),Rt)*2+2,Ot=Math.max(Math.abs((Lt?Lt.clientHeight:0)-$t),$t)*2+2;xt=Math.sqrt(It**2+Ot**2)}kt!=null&&kt.touches?mt.current===null&&(mt.current=()=>{yt({pulsate:At,rippleX:Rt,rippleY:$t,rippleSize:xt,cb:Tt})},pt.current=setTimeout(()=>{mt.current&&(mt.current(),mt.current=null)},DELAY_RIPPLE)):yt({pulsate:At,rippleX:Rt,rippleY:$t,rippleSize:xt,cb:Tt})},[it,yt]),wt=reactExports.useCallback(()=>{bt({},{pulsate:!0})},[bt]),vt=reactExports.useCallback((kt,St)=>{if(clearTimeout(pt.current),(kt==null?void 0:kt.type)==="touchend"&&mt.current){mt.current(),mt.current=null,pt.current=setTimeout(()=>{vt(kt,St)});return}mt.current=null,ct(Tt=>Tt.length>0?Tt.slice(1):Tt),ht.current=St},[]);return reactExports.useImperativeHandle(nt,()=>({pulsate:wt,start:bt,stop:vt}),[wt,bt,vt]),jsxRuntimeExports.jsx(TouchRippleRoot,_extends$r({className:clsx(touchRippleClasses$1.root,ot.root,at),ref:gt},st,{children:jsxRuntimeExports.jsx(TransitionGroup$1,{component:null,exit:!0,children:lt})}))}),TouchRipple$1=TouchRipple;function getButtonBaseUtilityClass(tt){return generateUtilityClass("MuiButtonBase",tt)}const buttonBaseClasses=generateUtilityClasses("MuiButtonBase",["root","disabled","focusVisible"]),buttonBaseClasses$1=buttonBaseClasses,_excluded$1j=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],useUtilityClasses$S=tt=>{const{disabled:et,focusVisible:nt,focusVisibleClassName:rt,classes:it}=tt,at=composeClasses({root:["root",et&&"disabled",nt&&"focusVisible"]},getButtonBaseUtilityClass,it);return nt&&rt&&(at.root+=` ${rt}`),at},ButtonBaseRoot=styled$1("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${buttonBaseClasses$1.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),ButtonBase=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiButtonBase"}),{action:it,centerRipple:ot=!1,children:at,className:st,component:lt="button",disabled:ct=!1,disableRipple:ut=!1,disableTouchRipple:ht=!1,focusRipple:dt=!1,LinkComponent:pt="a",onBlur:mt,onClick:gt,onContextMenu:yt,onDragLeave:bt,onFocus:wt,onFocusVisible:vt,onKeyDown:kt,onKeyUp:St,onMouseDown:Tt,onMouseLeave:At,onMouseUp:Et,onTouchEnd:Mt,onTouchMove:Lt,onTouchStart:jt,tabIndex:Rt=0,TouchRippleProps:$t,touchRippleRef:xt,type:It}=rt,Ot=_objectWithoutPropertiesLoose$g(rt,_excluded$1j),zt=reactExports.useRef(null),Ut=reactExports.useRef(null),Wt=useForkRef(Ut,xt),{isFocusVisibleRef:Ft,onFocus:Nt,onBlur:Ct,ref:Ht}=useIsFocusVisible(),[Jt,nn]=reactExports.useState(!1);ct&&Jt&&nn(!1),reactExports.useImperativeHandle(it,()=>({focusVisible:()=>{nn(!0),zt.current.focus()}}),[]);const[Yt,fn]=reactExports.useState(!1);reactExports.useEffect(()=>{fn(!0)},[]);const cn=Yt&&!ut&&!ct;reactExports.useEffect(()=>{Jt&&dt&&!ut&&Yt&&Ut.current.pulsate()},[ut,dt,Jt,Yt]);function _n(Zt,wn,On=ht){return useEventCallback(jn=>(wn&&wn(jn),!On&&Ut.current&&Ut.current[Zt](jn),!0))}const En=_n("start",Tt),an=_n("stop",yt),en=_n("stop",bt),Tn=_n("stop",Et),Rn=_n("stop",Zt=>{Jt&&Zt.preventDefault(),At&&At(Zt)}),An=_n("start",jt),yn=_n("stop",Mt),kn=_n("stop",Lt),dn=_n("stop",Zt=>{Ct(Zt),Ft.current===!1&&nn(!1),mt&&mt(Zt)},!1),gn=useEventCallback(Zt=>{zt.current||(zt.current=Zt.currentTarget),Nt(Zt),Ft.current===!0&&(nn(!0),vt&&vt(Zt)),wt&&wt(Zt)}),Cn=()=>{const Zt=zt.current;return lt&<!=="button"&&!(Zt.tagName==="A"&&Zt.href)},$n=reactExports.useRef(!1),un=useEventCallback(Zt=>{dt&&!$n.current&&Jt&&Ut.current&&Zt.key===" "&&($n.current=!0,Ut.current.stop(Zt,()=>{Ut.current.start(Zt)})),Zt.target===Zt.currentTarget&&Cn()&&Zt.key===" "&&Zt.preventDefault(),kt&&kt(Zt),Zt.target===Zt.currentTarget&&Cn()&&Zt.key==="Enter"&&!ct&&(Zt.preventDefault(),gt&>(Zt))}),rn=useEventCallback(Zt=>{dt&&Zt.key===" "&&Ut.current&&Jt&&!Zt.defaultPrevented&&($n.current=!1,Ut.current.stop(Zt,()=>{Ut.current.pulsate(Zt)})),St&&St(Zt),gt&&Zt.target===Zt.currentTarget&&Cn()&&Zt.key===" "&&!Zt.defaultPrevented&>(Zt)});let Sn=lt;Sn==="button"&&(Ot.href||Ot.to)&&(Sn=pt);const Mn={};Sn==="button"?(Mn.type=It===void 0?"button":It,Mn.disabled=ct):(!Ot.href&&!Ot.to&&(Mn.role="button"),ct&&(Mn["aria-disabled"]=ct));const Nn=useForkRef(nt,Ht,zt),hn=_extends$r({},rt,{centerRipple:ot,component:lt,disabled:ct,disableRipple:ut,disableTouchRipple:ht,focusRipple:dt,tabIndex:Rt,focusVisible:Jt}),Qt=useUtilityClasses$S(hn);return jsxRuntimeExports.jsxs(ButtonBaseRoot,_extends$r({as:Sn,className:clsx(Qt.root,st),ownerState:hn,onBlur:dn,onClick:gt,onContextMenu:an,onFocus:gn,onKeyDown:un,onKeyUp:rn,onMouseDown:En,onMouseLeave:Rn,onMouseUp:Tn,onDragLeave:en,onTouchEnd:yn,onTouchMove:kn,onTouchStart:An,ref:Nn,tabIndex:ct?-1:Rt,type:It},Mn,Ot,{children:[at,cn?jsxRuntimeExports.jsx(TouchRipple$1,_extends$r({ref:Wt,center:ot},$t)):null]}))}),ButtonBase$1=ButtonBase;function getIconButtonUtilityClass(tt){return generateUtilityClass("MuiIconButton",tt)}const iconButtonClasses=generateUtilityClasses("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),iconButtonClasses$1=iconButtonClasses,_excluded$1i=["edge","children","className","color","disabled","disableFocusRipple","size"],useUtilityClasses$R=tt=>{const{classes:et,disabled:nt,color:rt,edge:it,size:ot}=tt,at={root:["root",nt&&"disabled",rt!=="default"&&`color${capitalize(rt)}`,it&&`edge${capitalize(it)}`,`size${capitalize(ot)}`]};return composeClasses(at,getIconButtonUtilityClass,et)},IconButtonRoot=styled$1(ButtonBase$1,{name:"MuiIconButton",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.color!=="default"&&et[`color${capitalize(nt.color)}`],nt.edge&&et[`edge${capitalize(nt.edge)}`],et[`size${capitalize(nt.size)}`]]}})(({theme:tt,ownerState:et})=>_extends$r({textAlign:"center",flex:"0 0 auto",fontSize:tt.typography.pxToRem(24),padding:8,borderRadius:"50%",overflow:"visible",color:(tt.vars||tt).palette.action.active,transition:tt.transitions.create("background-color",{duration:tt.transitions.duration.shortest})},!et.disableRipple&&{"&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.activeChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.action.active,tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},et.edge==="start"&&{marginLeft:et.size==="small"?-3:-12},et.edge==="end"&&{marginRight:et.size==="small"?-3:-12}),({theme:tt,ownerState:et})=>{var nt;const rt=(nt=(tt.vars||tt).palette)==null?void 0:nt[et.color];return _extends$r({},et.color==="inherit"&&{color:"inherit"},et.color!=="inherit"&&et.color!=="default"&&_extends$r({color:rt==null?void 0:rt.main},!et.disableRipple&&{"&:hover":_extends$r({},rt&&{backgroundColor:tt.vars?`rgba(${rt.mainChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(rt.main,tt.palette.action.hoverOpacity)},{"@media (hover: none)":{backgroundColor:"transparent"}})}),et.size==="small"&&{padding:5,fontSize:tt.typography.pxToRem(18)},et.size==="large"&&{padding:12,fontSize:tt.typography.pxToRem(28)},{[`&.${iconButtonClasses$1.disabled}`]:{backgroundColor:"transparent",color:(tt.vars||tt).palette.action.disabled}})}),IconButton$1=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiIconButton"}),{edge:it=!1,children:ot,className:at,color:st="default",disabled:lt=!1,disableFocusRipple:ct=!1,size:ut="medium"}=rt,ht=_objectWithoutPropertiesLoose$g(rt,_excluded$1i),dt=_extends$r({},rt,{edge:it,color:st,disabled:lt,disableFocusRipple:ct,size:ut}),pt=useUtilityClasses$R(dt);return jsxRuntimeExports.jsx(IconButtonRoot,_extends$r({className:clsx(pt.root,at),centerRipple:!0,focusRipple:!ct,disabled:lt,ref:nt,ownerState:dt},ht,{children:ot}))}),IconButton$2=IconButton$1;function getTypographyUtilityClass(tt){return generateUtilityClass("MuiTypography",tt)}generateUtilityClasses("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const _excluded$1h=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],useUtilityClasses$Q=tt=>{const{align:et,gutterBottom:nt,noWrap:rt,paragraph:it,variant:ot,classes:at}=tt,st={root:["root",ot,tt.align!=="inherit"&&`align${capitalize(et)}`,nt&&"gutterBottom",rt&&"noWrap",it&&"paragraph"]};return composeClasses(st,getTypographyUtilityClass,at)},TypographyRoot=styled$1("span",{name:"MuiTypography",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.variant&&et[nt.variant],nt.align!=="inherit"&&et[`align${capitalize(nt.align)}`],nt.noWrap&&et.noWrap,nt.gutterBottom&&et.gutterBottom,nt.paragraph&&et.paragraph]}})(({theme:tt,ownerState:et})=>_extends$r({margin:0},et.variant&&tt.typography[et.variant],et.align!=="inherit"&&{textAlign:et.align},et.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},et.gutterBottom&&{marginBottom:"0.35em"},et.paragraph&&{marginBottom:16})),defaultVariantMapping={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},colorTransformations={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},transformDeprecatedColors=tt=>colorTransformations[tt]||tt,Typography=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTypography"}),it=transformDeprecatedColors(rt.color),ot=extendSxProp(_extends$r({},rt,{color:it})),{align:at="inherit",className:st,component:lt,gutterBottom:ct=!1,noWrap:ut=!1,paragraph:ht=!1,variant:dt="body1",variantMapping:pt=defaultVariantMapping}=ot,mt=_objectWithoutPropertiesLoose$g(ot,_excluded$1h),gt=_extends$r({},ot,{align:at,color:it,className:st,component:lt,gutterBottom:ct,noWrap:ut,paragraph:ht,variant:dt,variantMapping:pt}),yt=lt||(ht?"p":pt[dt]||defaultVariantMapping[dt])||"span",bt=useUtilityClasses$Q(gt);return jsxRuntimeExports.jsx(TypographyRoot,_extends$r({as:yt,ref:nt,ownerState:gt,className:clsx(bt.root,st)},mt))}),Typography$1=Typography,_excluded$1g=["anchorEl","component","components","componentsProps","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","transition","slots","slotProps"],PopperRoot=styled$1(BasePopper,{name:"MuiPopper",slot:"Root",overridesResolver:(tt,et)=>et.root})({}),Popper=reactExports.forwardRef(function(et,nt){var rt;const it=useTheme$3(),ot=useThemeProps({props:et,name:"MuiPopper"}),{anchorEl:at,component:st,components:lt,componentsProps:ct,container:ut,disablePortal:ht,keepMounted:dt,modifiers:pt,open:mt,placement:gt,popperOptions:yt,popperRef:bt,transition:wt,slots:vt,slotProps:kt}=ot,St=_objectWithoutPropertiesLoose$g(ot,_excluded$1g),Tt=(rt=vt==null?void 0:vt.root)!=null?rt:lt==null?void 0:lt.Root,At=_extends$r({anchorEl:at,container:ut,disablePortal:ht,keepMounted:dt,modifiers:pt,open:mt,placement:gt,popperOptions:yt,popperRef:bt,transition:wt},St);return jsxRuntimeExports.jsx(PopperRoot,_extends$r({as:st,direction:it==null?void 0:it.direction,slots:{root:Tt},slotProps:kt??ct},At,{ref:nt}))}),MuiPopper=Popper,CancelIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function getChipUtilityClass(tt){return generateUtilityClass("MuiChip",tt)}const chipClasses=generateUtilityClasses("MuiChip",["root","sizeSmall","sizeMedium","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),chipClasses$1=chipClasses,_excluded$1f=["avatar","className","clickable","color","component","deleteIcon","disabled","icon","label","onClick","onDelete","onKeyDown","onKeyUp","size","variant","tabIndex","skipFocusWhenDisabled"],useUtilityClasses$P=tt=>{const{classes:et,disabled:nt,size:rt,color:it,iconColor:ot,onDelete:at,clickable:st,variant:lt}=tt,ct={root:["root",lt,nt&&"disabled",`size${capitalize(rt)}`,`color${capitalize(it)}`,st&&"clickable",st&&`clickableColor${capitalize(it)}`,at&&"deletable",at&&`deletableColor${capitalize(it)}`,`${lt}${capitalize(it)}`],label:["label",`label${capitalize(rt)}`],avatar:["avatar",`avatar${capitalize(rt)}`,`avatarColor${capitalize(it)}`],icon:["icon",`icon${capitalize(rt)}`,`iconColor${capitalize(ot)}`],deleteIcon:["deleteIcon",`deleteIcon${capitalize(rt)}`,`deleteIconColor${capitalize(it)}`,`deleteIcon${capitalize(lt)}Color${capitalize(it)}`]};return composeClasses(ct,getChipUtilityClass,et)},ChipRoot=styled$1("div",{name:"MuiChip",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt,{color:rt,iconColor:it,clickable:ot,onDelete:at,size:st,variant:lt}=nt;return[{[`& .${chipClasses$1.avatar}`]:et.avatar},{[`& .${chipClasses$1.avatar}`]:et[`avatar${capitalize(st)}`]},{[`& .${chipClasses$1.avatar}`]:et[`avatarColor${capitalize(rt)}`]},{[`& .${chipClasses$1.icon}`]:et.icon},{[`& .${chipClasses$1.icon}`]:et[`icon${capitalize(st)}`]},{[`& .${chipClasses$1.icon}`]:et[`iconColor${capitalize(it)}`]},{[`& .${chipClasses$1.deleteIcon}`]:et.deleteIcon},{[`& .${chipClasses$1.deleteIcon}`]:et[`deleteIcon${capitalize(st)}`]},{[`& .${chipClasses$1.deleteIcon}`]:et[`deleteIconColor${capitalize(rt)}`]},{[`& .${chipClasses$1.deleteIcon}`]:et[`deleteIcon${capitalize(lt)}Color${capitalize(rt)}`]},et.root,et[`size${capitalize(st)}`],et[`color${capitalize(rt)}`],ot&&et.clickable,ot&&rt!=="default"&&et[`clickableColor${capitalize(rt)})`],at&&et.deletable,at&&rt!=="default"&&et[`deletableColor${capitalize(rt)}`],et[lt],et[`${lt}${capitalize(rt)}`]]}})(({theme:tt,ownerState:et})=>{const nt=tt.palette.mode==="light"?tt.palette.grey[700]:tt.palette.grey[300];return _extends$r({maxWidth:"100%",fontFamily:tt.typography.fontFamily,fontSize:tt.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(tt.vars||tt).palette.text.primary,backgroundColor:(tt.vars||tt).palette.action.selected,borderRadius:32/2,whiteSpace:"nowrap",transition:tt.transitions.create(["background-color","box-shadow"]),outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${chipClasses$1.disabled}`]:{opacity:(tt.vars||tt).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${chipClasses$1.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:tt.vars?tt.vars.palette.Chip.defaultAvatarColor:nt,fontSize:tt.typography.pxToRem(12)},[`& .${chipClasses$1.avatarColorPrimary}`]:{color:(tt.vars||tt).palette.primary.contrastText,backgroundColor:(tt.vars||tt).palette.primary.dark},[`& .${chipClasses$1.avatarColorSecondary}`]:{color:(tt.vars||tt).palette.secondary.contrastText,backgroundColor:(tt.vars||tt).palette.secondary.dark},[`& .${chipClasses$1.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:tt.typography.pxToRem(10)},[`& .${chipClasses$1.icon}`]:_extends$r({marginLeft:5,marginRight:-6},et.size==="small"&&{fontSize:18,marginLeft:4,marginRight:-4},et.iconColor===et.color&&_extends$r({color:tt.vars?tt.vars.palette.Chip.defaultIconColor:nt},et.color!=="default"&&{color:"inherit"})),[`& .${chipClasses$1.deleteIcon}`]:_extends$r({WebkitTapHighlightColor:"transparent",color:tt.vars?`rgba(${tt.vars.palette.text.primaryChannel} / 0.26)`:alpha$1(tt.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:tt.vars?`rgba(${tt.vars.palette.text.primaryChannel} / 0.4)`:alpha$1(tt.palette.text.primary,.4)}},et.size==="small"&&{fontSize:16,marginRight:4,marginLeft:-4},et.color!=="default"&&{color:tt.vars?`rgba(${tt.vars.palette[et.color].contrastTextChannel} / 0.7)`:alpha$1(tt.palette[et.color].contrastText,.7),"&:hover, &:active":{color:(tt.vars||tt).palette[et.color].contrastText}})},et.size==="small"&&{height:24},et.color!=="default"&&{backgroundColor:(tt.vars||tt).palette[et.color].main,color:(tt.vars||tt).palette[et.color].contrastText},et.onDelete&&{[`&.${chipClasses$1.focusVisible}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.selectedChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.focusOpacity}))`:alpha$1(tt.palette.action.selected,tt.palette.action.selectedOpacity+tt.palette.action.focusOpacity)}},et.onDelete&&et.color!=="default"&&{[`&.${chipClasses$1.focusVisible}`]:{backgroundColor:(tt.vars||tt).palette[et.color].dark}})},({theme:tt,ownerState:et})=>_extends$r({},et.clickable&&{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.selectedChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.hoverOpacity}))`:alpha$1(tt.palette.action.selected,tt.palette.action.selectedOpacity+tt.palette.action.hoverOpacity)},[`&.${chipClasses$1.focusVisible}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.selectedChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.focusOpacity}))`:alpha$1(tt.palette.action.selected,tt.palette.action.selectedOpacity+tt.palette.action.focusOpacity)},"&:active":{boxShadow:(tt.vars||tt).shadows[1]}},et.clickable&&et.color!=="default"&&{[`&:hover, &.${chipClasses$1.focusVisible}`]:{backgroundColor:(tt.vars||tt).palette[et.color].dark}}),({theme:tt,ownerState:et})=>_extends$r({},et.variant==="outlined"&&{backgroundColor:"transparent",border:tt.vars?`1px solid ${tt.vars.palette.Chip.defaultBorder}`:`1px solid ${tt.palette.mode==="light"?tt.palette.grey[400]:tt.palette.grey[700]}`,[`&.${chipClasses$1.clickable}:hover`]:{backgroundColor:(tt.vars||tt).palette.action.hover},[`&.${chipClasses$1.focusVisible}`]:{backgroundColor:(tt.vars||tt).palette.action.focus},[`& .${chipClasses$1.avatar}`]:{marginLeft:4},[`& .${chipClasses$1.avatarSmall}`]:{marginLeft:2},[`& .${chipClasses$1.icon}`]:{marginLeft:4},[`& .${chipClasses$1.iconSmall}`]:{marginLeft:2},[`& .${chipClasses$1.deleteIcon}`]:{marginRight:5},[`& .${chipClasses$1.deleteIconSmall}`]:{marginRight:3}},et.variant==="outlined"&&et.color!=="default"&&{color:(tt.vars||tt).palette[et.color].main,border:`1px solid ${tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / 0.7)`:alpha$1(tt.palette[et.color].main,.7)}`,[`&.${chipClasses$1.clickable}:hover`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette[et.color].main,tt.palette.action.hoverOpacity)},[`&.${chipClasses$1.focusVisible}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / ${tt.vars.palette.action.focusOpacity})`:alpha$1(tt.palette[et.color].main,tt.palette.action.focusOpacity)},[`& .${chipClasses$1.deleteIcon}`]:{color:tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / 0.7)`:alpha$1(tt.palette[et.color].main,.7),"&:hover, &:active":{color:(tt.vars||tt).palette[et.color].main}}})),ChipLabel=styled$1("span",{name:"MuiChip",slot:"Label",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt,{size:rt}=nt;return[et.label,et[`label${capitalize(rt)}`]]}})(({ownerState:tt})=>_extends$r({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap"},tt.size==="small"&&{paddingLeft:8,paddingRight:8}));function isDeleteKeyboardEvent(tt){return tt.key==="Backspace"||tt.key==="Delete"}const Chip=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiChip"}),{avatar:it,className:ot,clickable:at,color:st="default",component:lt,deleteIcon:ct,disabled:ut=!1,icon:ht,label:dt,onClick:pt,onDelete:mt,onKeyDown:gt,onKeyUp:yt,size:bt="medium",variant:wt="filled",tabIndex:vt,skipFocusWhenDisabled:kt=!1}=rt,St=_objectWithoutPropertiesLoose$g(rt,_excluded$1f),Tt=reactExports.useRef(null),At=useForkRef(Tt,nt),Et=Wt=>{Wt.stopPropagation(),mt&&mt(Wt)},Mt=Wt=>{Wt.currentTarget===Wt.target&&isDeleteKeyboardEvent(Wt)&&Wt.preventDefault(),gt&>(Wt)},Lt=Wt=>{Wt.currentTarget===Wt.target&&(mt&&isDeleteKeyboardEvent(Wt)?mt(Wt):Wt.key==="Escape"&&Tt.current&&Tt.current.blur()),yt&&yt(Wt)},jt=at!==!1&&pt?!0:at,Rt=jt||mt?ButtonBase$1:lt||"div",$t=_extends$r({},rt,{component:Rt,disabled:ut,size:bt,color:st,iconColor:reactExports.isValidElement(ht)&&ht.props.color||st,onDelete:!!mt,clickable:jt,variant:wt}),xt=useUtilityClasses$P($t),It=Rt===ButtonBase$1?_extends$r({component:lt||"div",focusVisibleClassName:xt.focusVisible},mt&&{disableRipple:!0}):{};let Ot=null;mt&&(Ot=ct&&reactExports.isValidElement(ct)?reactExports.cloneElement(ct,{className:clsx(ct.props.className,xt.deleteIcon),onClick:Et}):jsxRuntimeExports.jsx(CancelIcon,{className:clsx(xt.deleteIcon),onClick:Et}));let zt=null;it&&reactExports.isValidElement(it)&&(zt=reactExports.cloneElement(it,{className:clsx(xt.avatar,it.props.className)}));let Ut=null;return ht&&reactExports.isValidElement(ht)&&(Ut=reactExports.cloneElement(ht,{className:clsx(xt.icon,ht.props.className)})),jsxRuntimeExports.jsxs(ChipRoot,_extends$r({as:Rt,className:clsx(xt.root,ot),disabled:jt&&ut?!0:void 0,onClick:pt,onKeyDown:Mt,onKeyUp:Lt,ref:At,tabIndex:kt&&ut?-1:vt,ownerState:$t},It,St,{children:[zt||Ut,jsxRuntimeExports.jsx(ChipLabel,{className:clsx(xt.label),ownerState:$t,children:dt}),Ot]}))}),Chip$1=Chip;function formControlState({props:tt,states:et,muiFormControl:nt}){return et.reduce((rt,it)=>(rt[it]=tt[it],nt&&typeof tt[it]>"u"&&(rt[it]=nt[it]),rt),{})}const FormControlContext=reactExports.createContext(void 0),FormControlContext$1=FormControlContext;function useFormControl(){return reactExports.useContext(FormControlContext$1)}function GlobalStyles(tt){return jsxRuntimeExports.jsx(GlobalStyles$1,_extends$r({},tt,{defaultTheme:defaultTheme$1,themeId:THEME_ID}))}function hasValue(tt){return tt!=null&&!(Array.isArray(tt)&&tt.length===0)}function isFilled(tt,et=!1){return tt&&(hasValue(tt.value)&&tt.value!==""||et&&hasValue(tt.defaultValue)&&tt.defaultValue!=="")}function isAdornedStart(tt){return tt.startAdornment}function getInputBaseUtilityClass(tt){return generateUtilityClass("MuiInputBase",tt)}const inputBaseClasses=generateUtilityClasses("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),inputBaseClasses$1=inputBaseClasses,_excluded$1e=["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","slotProps","slots","startAdornment","type","value"],rootOverridesResolver=(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.formControl&&et.formControl,nt.startAdornment&&et.adornedStart,nt.endAdornment&&et.adornedEnd,nt.error&&et.error,nt.size==="small"&&et.sizeSmall,nt.multiline&&et.multiline,nt.color&&et[`color${capitalize(nt.color)}`],nt.fullWidth&&et.fullWidth,nt.hiddenLabel&&et.hiddenLabel]},inputOverridesResolver=(tt,et)=>{const{ownerState:nt}=tt;return[et.input,nt.size==="small"&&et.inputSizeSmall,nt.multiline&&et.inputMultiline,nt.type==="search"&&et.inputTypeSearch,nt.startAdornment&&et.inputAdornedStart,nt.endAdornment&&et.inputAdornedEnd,nt.hiddenLabel&&et.inputHiddenLabel]},useUtilityClasses$O=tt=>{const{classes:et,color:nt,disabled:rt,error:it,endAdornment:ot,focused:at,formControl:st,fullWidth:lt,hiddenLabel:ct,multiline:ut,readOnly:ht,size:dt,startAdornment:pt,type:mt}=tt,gt={root:["root",`color${capitalize(nt)}`,rt&&"disabled",it&&"error",lt&&"fullWidth",at&&"focused",st&&"formControl",dt==="small"&&"sizeSmall",ut&&"multiline",pt&&"adornedStart",ot&&"adornedEnd",ct&&"hiddenLabel",ht&&"readOnly"],input:["input",rt&&"disabled",mt==="search"&&"inputTypeSearch",ut&&"inputMultiline",dt==="small"&&"inputSizeSmall",ct&&"inputHiddenLabel",pt&&"inputAdornedStart",ot&&"inputAdornedEnd",ht&&"readOnly"]};return composeClasses(gt,getInputBaseUtilityClass,et)},InputBaseRoot=styled$1("div",{name:"MuiInputBase",slot:"Root",overridesResolver:rootOverridesResolver})(({theme:tt,ownerState:et})=>_extends$r({},tt.typography.body1,{color:(tt.vars||tt).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${inputBaseClasses$1.disabled}`]:{color:(tt.vars||tt).palette.text.disabled,cursor:"default"}},et.multiline&&_extends$r({padding:"4px 0 5px"},et.size==="small"&&{paddingTop:1}),et.fullWidth&&{width:"100%"})),InputBaseComponent=styled$1("input",{name:"MuiInputBase",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:tt,ownerState:et})=>{const nt=tt.palette.mode==="light",rt=_extends$r({color:"currentColor"},tt.vars?{opacity:tt.vars.opacity.inputPlaceholder}:{opacity:nt?.42:.5},{transition:tt.transitions.create("opacity",{duration:tt.transitions.duration.shorter})}),it={opacity:"0 !important"},ot=tt.vars?{opacity:tt.vars.opacity.inputPlaceholder}:{opacity:nt?.42:.5};return _extends$r({font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":rt,"&::-moz-placeholder":rt,"&:-ms-input-placeholder":rt,"&::-ms-input-placeholder":rt,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${inputBaseClasses$1.formControl} &`]:{"&::-webkit-input-placeholder":it,"&::-moz-placeholder":it,"&:-ms-input-placeholder":it,"&::-ms-input-placeholder":it,"&:focus::-webkit-input-placeholder":ot,"&:focus::-moz-placeholder":ot,"&:focus:-ms-input-placeholder":ot,"&:focus::-ms-input-placeholder":ot},[`&.${inputBaseClasses$1.disabled}`]:{opacity:1,WebkitTextFillColor:(tt.vars||tt).palette.text.disabled},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},et.size==="small"&&{paddingTop:1},et.multiline&&{height:"auto",resize:"none",padding:0,paddingTop:0},et.type==="search"&&{MozAppearance:"textfield"})}),inputGlobalStyles=jsxRuntimeExports.jsx(GlobalStyles,{styles:{"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}}),InputBase=reactExports.forwardRef(function(et,nt){var rt;const it=useThemeProps({props:et,name:"MuiInputBase"}),{"aria-describedby":ot,autoComplete:at,autoFocus:st,className:lt,components:ct={},componentsProps:ut={},defaultValue:ht,disabled:dt,disableInjectingGlobalStyles:pt,endAdornment:mt,fullWidth:gt=!1,id:yt,inputComponent:bt="input",inputProps:wt={},inputRef:vt,maxRows:kt,minRows:St,multiline:Tt=!1,name:At,onBlur:Et,onChange:Mt,onClick:Lt,onFocus:jt,onKeyDown:Rt,onKeyUp:$t,placeholder:xt,readOnly:It,renderSuffix:Ot,rows:zt,slotProps:Ut={},slots:Wt={},startAdornment:Ft,type:Nt="text",value:Ct}=it,Ht=_objectWithoutPropertiesLoose$g(it,_excluded$1e),Jt=wt.value!=null?wt.value:Ct,{current:nn}=reactExports.useRef(Jt!=null),Yt=reactExports.useRef(),fn=reactExports.useCallback(Qt=>{},[]),cn=useForkRef(Yt,vt,wt.ref,fn),[_n,En]=reactExports.useState(!1),an=useFormControl(),en=formControlState({props:it,muiFormControl:an,states:["color","disabled","error","hiddenLabel","size","required","filled"]});en.focused=an?an.focused:_n,reactExports.useEffect(()=>{!an&&dt&&_n&&(En(!1),Et&&Et())},[an,dt,_n,Et]);const Tn=an&&an.onFilled,Rn=an&&an.onEmpty,An=reactExports.useCallback(Qt=>{isFilled(Qt)?Tn&&Tn():Rn&&Rn()},[Tn,Rn]);useEnhancedEffect$1(()=>{nn&&An({value:Jt})},[Jt,An,nn]);const yn=Qt=>{if(en.disabled){Qt.stopPropagation();return}jt&&jt(Qt),wt.onFocus&&wt.onFocus(Qt),an&&an.onFocus?an.onFocus(Qt):En(!0)},kn=Qt=>{Et&&Et(Qt),wt.onBlur&&wt.onBlur(Qt),an&&an.onBlur?an.onBlur(Qt):En(!1)},dn=(Qt,...Zt)=>{if(!nn){const wn=Qt.target||Yt.current;if(wn==null)throw new Error(formatMuiErrorMessage(1));An({value:wn.value})}wt.onChange&&wt.onChange(Qt,...Zt),Mt&&Mt(Qt,...Zt)};reactExports.useEffect(()=>{An(Yt.current)},[]);const gn=Qt=>{Yt.current&&Qt.currentTarget===Qt.target&&Yt.current.focus(),Lt&&!en.disabled&&Lt(Qt)};let Cn=bt,$n=wt;Tt&&Cn==="input"&&(zt?$n=_extends$r({type:void 0,minRows:zt,maxRows:zt},$n):$n=_extends$r({type:void 0,maxRows:kt,minRows:St},$n),Cn=TextareaAutosize$1);const un=Qt=>{An(Qt.animationName==="mui-auto-fill-cancel"?Yt.current:{value:"x"})};reactExports.useEffect(()=>{an&&an.setAdornedStart(!!Ft)},[an,Ft]);const rn=_extends$r({},it,{color:en.color||"primary",disabled:en.disabled,endAdornment:mt,error:en.error,focused:en.focused,formControl:an,fullWidth:gt,hiddenLabel:en.hiddenLabel,multiline:Tt,size:en.size,startAdornment:Ft,type:Nt}),Sn=useUtilityClasses$O(rn),Mn=Wt.root||ct.Root||InputBaseRoot,Nn=Ut.root||ut.root||{},hn=Wt.input||ct.Input||InputBaseComponent;return $n=_extends$r({},$n,(rt=Ut.input)!=null?rt:ut.input),jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[!pt&&inputGlobalStyles,jsxRuntimeExports.jsxs(Mn,_extends$r({},Nn,!isHostComponent(Mn)&&{ownerState:_extends$r({},rn,Nn.ownerState)},{ref:nt,onClick:gn},Ht,{className:clsx(Sn.root,Nn.className,lt,It&&"MuiInputBase-readOnly"),children:[Ft,jsxRuntimeExports.jsx(FormControlContext$1.Provider,{value:null,children:jsxRuntimeExports.jsx(hn,_extends$r({ownerState:rn,"aria-invalid":en.error,"aria-describedby":ot,autoComplete:at,autoFocus:st,defaultValue:ht,disabled:en.disabled,id:yt,onAnimationStart:un,name:At,placeholder:xt,readOnly:It,required:en.required,rows:zt,value:Jt,onKeyDown:Rt,onKeyUp:$t,type:Nt},$n,!isHostComponent(hn)&&{as:Cn,ownerState:_extends$r({},rn,$n.ownerState)},{ref:cn,className:clsx(Sn.input,$n.className,It&&"MuiInputBase-readOnly"),onBlur:kn,onChange:dn,onFocus:yn}))}),mt,Ot?Ot(_extends$r({},en,{startAdornment:Ft})):null]}))]})}),InputBase$1=InputBase;function getInputUtilityClass(tt){return generateUtilityClass("MuiInput",tt)}const inputClasses=_extends$r({},inputBaseClasses$1,generateUtilityClasses("MuiInput",["root","underline","input"])),inputClasses$1=inputClasses;function getOutlinedInputUtilityClass(tt){return generateUtilityClass("MuiOutlinedInput",tt)}const outlinedInputClasses=_extends$r({},inputBaseClasses$1,generateUtilityClasses("MuiOutlinedInput",["root","notchedOutline","input"])),outlinedInputClasses$1=outlinedInputClasses;function getFilledInputUtilityClass(tt){return generateUtilityClass("MuiFilledInput",tt)}const filledInputClasses=_extends$r({},inputBaseClasses$1,generateUtilityClasses("MuiFilledInput",["root","underline","input"])),filledInputClasses$1=filledInputClasses,ArrowDropDownIcon$1=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),_excluded$1d=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],styles$4={entering:{opacity:1},entered:{opacity:1}},Fade=reactExports.forwardRef(function(et,nt){const rt=useTheme(),it={enter:rt.transitions.duration.enteringScreen,exit:rt.transitions.duration.leavingScreen},{addEndListener:ot,appear:at=!0,children:st,easing:lt,in:ct,onEnter:ut,onEntered:ht,onEntering:dt,onExit:pt,onExited:mt,onExiting:gt,style:yt,timeout:bt=it,TransitionComponent:wt=Transition$1}=et,vt=_objectWithoutPropertiesLoose$g(et,_excluded$1d),kt=reactExports.useRef(null),St=useForkRef(kt,st.ref,nt),Tt=xt=>It=>{if(xt){const Ot=kt.current;It===void 0?xt(Ot):xt(Ot,It)}},At=Tt(dt),Et=Tt((xt,It)=>{reflow(xt);const Ot=getTransitionProps({style:yt,timeout:bt,easing:lt},{mode:"enter"});xt.style.webkitTransition=rt.transitions.create("opacity",Ot),xt.style.transition=rt.transitions.create("opacity",Ot),ut&&ut(xt,It)}),Mt=Tt(ht),Lt=Tt(gt),jt=Tt(xt=>{const It=getTransitionProps({style:yt,timeout:bt,easing:lt},{mode:"exit"});xt.style.webkitTransition=rt.transitions.create("opacity",It),xt.style.transition=rt.transitions.create("opacity",It),pt&&pt(xt)}),Rt=Tt(mt),$t=xt=>{ot&&ot(kt.current,xt)};return jsxRuntimeExports.jsx(wt,_extends$r({appear:at,in:ct,nodeRef:kt,onEnter:Et,onEntered:Mt,onEntering:At,onExit:jt,onExited:Rt,onExiting:Lt,addEndListener:$t,timeout:bt},vt,{children:(xt,It)=>reactExports.cloneElement(st,_extends$r({style:_extends$r({opacity:0,visibility:xt==="exited"&&!ct?"hidden":void 0},styles$4[xt],yt,st.props.style),ref:St},It))}))}),Fade$1=Fade;function getBackdropUtilityClass(tt){return generateUtilityClass("MuiBackdrop",tt)}generateUtilityClasses("MuiBackdrop",["root","invisible"]);const _excluded$1c=["children","className","component","components","componentsProps","invisible","open","slotProps","slots","TransitionComponent","transitionDuration"],useUtilityClasses$N=tt=>{const{classes:et,invisible:nt}=tt;return composeClasses({root:["root",nt&&"invisible"]},getBackdropUtilityClass,et)},BackdropRoot=styled$1("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.invisible&&et.invisible]}})(({ownerState:tt})=>_extends$r({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},tt.invisible&&{backgroundColor:"transparent"})),Backdrop=reactExports.forwardRef(function(et,nt){var rt,it,ot;const at=useThemeProps({props:et,name:"MuiBackdrop"}),{children:st,className:lt,component:ct="div",components:ut={},componentsProps:ht={},invisible:dt=!1,open:pt,slotProps:mt={},slots:gt={},TransitionComponent:yt=Fade$1,transitionDuration:bt}=at,wt=_objectWithoutPropertiesLoose$g(at,_excluded$1c),vt=_extends$r({},at,{component:ct,invisible:dt}),kt=useUtilityClasses$N(vt),St=(rt=mt.root)!=null?rt:ht.root;return jsxRuntimeExports.jsx(yt,_extends$r({in:pt,timeout:bt},wt,{children:jsxRuntimeExports.jsx(BackdropRoot,_extends$r({"aria-hidden":!0},St,{as:(it=(ot=gt.root)!=null?ot:ut.Root)!=null?it:ct,className:clsx(kt.root,lt,St==null?void 0:St.className),ownerState:_extends$r({},vt,St==null?void 0:St.ownerState),classes:kt,ref:nt,children:st}))}))}),Backdrop$1=Backdrop;function getButtonUtilityClass(tt){return generateUtilityClass("MuiButton",tt)}const buttonClasses=generateUtilityClasses("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),buttonClasses$1=buttonClasses,ButtonGroupContext=reactExports.createContext({}),ButtonGroupContext$1=ButtonGroupContext,_excluded$1b=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],useUtilityClasses$M=tt=>{const{color:et,disableElevation:nt,fullWidth:rt,size:it,variant:ot,classes:at}=tt,st={root:["root",ot,`${ot}${capitalize(et)}`,`size${capitalize(it)}`,`${ot}Size${capitalize(it)}`,et==="inherit"&&"colorInherit",nt&&"disableElevation",rt&&"fullWidth"],label:["label"],startIcon:["startIcon",`iconSize${capitalize(it)}`],endIcon:["endIcon",`iconSize${capitalize(it)}`]},lt=composeClasses(st,getButtonUtilityClass,at);return _extends$r({},at,lt)},commonIconStyles=tt=>_extends$r({},tt.size==="small"&&{"& > *:nth-of-type(1)":{fontSize:18}},tt.size==="medium"&&{"& > *:nth-of-type(1)":{fontSize:20}},tt.size==="large"&&{"& > *:nth-of-type(1)":{fontSize:22}}),ButtonRoot=styled$1(ButtonBase$1,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiButton",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,et[nt.variant],et[`${nt.variant}${capitalize(nt.color)}`],et[`size${capitalize(nt.size)}`],et[`${nt.variant}Size${capitalize(nt.size)}`],nt.color==="inherit"&&et.colorInherit,nt.disableElevation&&et.disableElevation,nt.fullWidth&&et.fullWidth]}})(({theme:tt,ownerState:et})=>{var nt,rt;const it=tt.palette.mode==="light"?tt.palette.grey[300]:tt.palette.grey[800],ot=tt.palette.mode==="light"?tt.palette.grey.A100:tt.palette.grey[700];return _extends$r({},tt.typography.button,{minWidth:64,padding:"6px 16px",borderRadius:(tt.vars||tt).shape.borderRadius,transition:tt.transitions.create(["background-color","box-shadow","border-color","color"],{duration:tt.transitions.duration.short}),"&:hover":_extends$r({textDecoration:"none",backgroundColor:tt.vars?`rgba(${tt.vars.palette.text.primaryChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.text.primary,tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},et.variant==="text"&&et.color!=="inherit"&&{backgroundColor:tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette[et.color].main,tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},et.variant==="outlined"&&et.color!=="inherit"&&{border:`1px solid ${(tt.vars||tt).palette[et.color].main}`,backgroundColor:tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette[et.color].main,tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},et.variant==="contained"&&{backgroundColor:tt.vars?tt.vars.palette.Button.inheritContainedHoverBg:ot,boxShadow:(tt.vars||tt).shadows[4],"@media (hover: none)":{boxShadow:(tt.vars||tt).shadows[2],backgroundColor:(tt.vars||tt).palette.grey[300]}},et.variant==="contained"&&et.color!=="inherit"&&{backgroundColor:(tt.vars||tt).palette[et.color].dark,"@media (hover: none)":{backgroundColor:(tt.vars||tt).palette[et.color].main}}),"&:active":_extends$r({},et.variant==="contained"&&{boxShadow:(tt.vars||tt).shadows[8]}),[`&.${buttonClasses$1.focusVisible}`]:_extends$r({},et.variant==="contained"&&{boxShadow:(tt.vars||tt).shadows[6]}),[`&.${buttonClasses$1.disabled}`]:_extends$r({color:(tt.vars||tt).palette.action.disabled},et.variant==="outlined"&&{border:`1px solid ${(tt.vars||tt).palette.action.disabledBackground}`},et.variant==="contained"&&{color:(tt.vars||tt).palette.action.disabled,boxShadow:(tt.vars||tt).shadows[0],backgroundColor:(tt.vars||tt).palette.action.disabledBackground})},et.variant==="text"&&{padding:"6px 8px"},et.variant==="text"&&et.color!=="inherit"&&{color:(tt.vars||tt).palette[et.color].main},et.variant==="outlined"&&{padding:"5px 15px",border:"1px solid currentColor"},et.variant==="outlined"&&et.color!=="inherit"&&{color:(tt.vars||tt).palette[et.color].main,border:tt.vars?`1px solid rgba(${tt.vars.palette[et.color].mainChannel} / 0.5)`:`1px solid ${alpha$1(tt.palette[et.color].main,.5)}`},et.variant==="contained"&&{color:tt.vars?tt.vars.palette.text.primary:(nt=(rt=tt.palette).getContrastText)==null?void 0:nt.call(rt,tt.palette.grey[300]),backgroundColor:tt.vars?tt.vars.palette.Button.inheritContainedBg:it,boxShadow:(tt.vars||tt).shadows[2]},et.variant==="contained"&&et.color!=="inherit"&&{color:(tt.vars||tt).palette[et.color].contrastText,backgroundColor:(tt.vars||tt).palette[et.color].main},et.color==="inherit"&&{color:"inherit",borderColor:"currentColor"},et.size==="small"&&et.variant==="text"&&{padding:"4px 5px",fontSize:tt.typography.pxToRem(13)},et.size==="large"&&et.variant==="text"&&{padding:"8px 11px",fontSize:tt.typography.pxToRem(15)},et.size==="small"&&et.variant==="outlined"&&{padding:"3px 9px",fontSize:tt.typography.pxToRem(13)},et.size==="large"&&et.variant==="outlined"&&{padding:"7px 21px",fontSize:tt.typography.pxToRem(15)},et.size==="small"&&et.variant==="contained"&&{padding:"4px 10px",fontSize:tt.typography.pxToRem(13)},et.size==="large"&&et.variant==="contained"&&{padding:"8px 22px",fontSize:tt.typography.pxToRem(15)},et.fullWidth&&{width:"100%"})},({ownerState:tt})=>tt.disableElevation&&{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${buttonClasses$1.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${buttonClasses$1.disabled}`]:{boxShadow:"none"}}),ButtonStartIcon=styled$1("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.startIcon,et[`iconSize${capitalize(nt.size)}`]]}})(({ownerState:tt})=>_extends$r({display:"inherit",marginRight:8,marginLeft:-4},tt.size==="small"&&{marginLeft:-2},commonIconStyles(tt))),ButtonEndIcon=styled$1("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.endIcon,et[`iconSize${capitalize(nt.size)}`]]}})(({ownerState:tt})=>_extends$r({display:"inherit",marginRight:-4,marginLeft:8},tt.size==="small"&&{marginRight:-2},commonIconStyles(tt))),Button$1=reactExports.forwardRef(function(et,nt){const rt=reactExports.useContext(ButtonGroupContext$1),it=resolveProps(rt,et),ot=useThemeProps({props:it,name:"MuiButton"}),{children:at,color:st="primary",component:lt="button",className:ct,disabled:ut=!1,disableElevation:ht=!1,disableFocusRipple:dt=!1,endIcon:pt,focusVisibleClassName:mt,fullWidth:gt=!1,size:yt="medium",startIcon:bt,type:wt,variant:vt="text"}=ot,kt=_objectWithoutPropertiesLoose$g(ot,_excluded$1b),St=_extends$r({},ot,{color:st,component:lt,disabled:ut,disableElevation:ht,disableFocusRipple:dt,fullWidth:gt,size:yt,type:wt,variant:vt}),Tt=useUtilityClasses$M(St),At=bt&&jsxRuntimeExports.jsx(ButtonStartIcon,{className:Tt.startIcon,ownerState:St,children:bt}),Et=pt&&jsxRuntimeExports.jsx(ButtonEndIcon,{className:Tt.endIcon,ownerState:St,children:pt});return jsxRuntimeExports.jsxs(ButtonRoot,_extends$r({ownerState:St,className:clsx(rt.className,Tt.root,ct),component:lt,disabled:ut,focusRipple:!dt,focusVisibleClassName:clsx(Tt.focusVisible,mt),ref:nt,type:wt},kt,{classes:Tt,children:[At,at,Et]}))}),Button$2=Button$1,_excluded$1a=["BackdropComponent","BackdropProps","classes","className","closeAfterTransition","children","container","component","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","onBackdropClick","onClose","open","slotProps","slots","theme"],ModalRoot=styled$1("div",{name:"MuiModal",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,!nt.open&&nt.exited&&et.hidden]}})(({theme:tt,ownerState:et})=>_extends$r({position:"fixed",zIndex:(tt.vars||tt).zIndex.modal,right:0,bottom:0,top:0,left:0},!et.open&&et.exited&&{visibility:"hidden"})),ModalBackdrop=styled$1(Backdrop$1,{name:"MuiModal",slot:"Backdrop",overridesResolver:(tt,et)=>et.backdrop})({zIndex:-1}),Modal=reactExports.forwardRef(function(et,nt){var rt,it,ot,at,st,lt;const ct=useThemeProps({name:"MuiModal",props:et}),{BackdropComponent:ut=ModalBackdrop,BackdropProps:ht,classes:dt,className:pt,closeAfterTransition:mt=!1,children:gt,container:yt,component:bt,components:wt={},componentsProps:vt={},disableAutoFocus:kt=!1,disableEnforceFocus:St=!1,disableEscapeKeyDown:Tt=!1,disablePortal:At=!1,disableRestoreFocus:Et=!1,disableScrollLock:Mt=!1,hideBackdrop:Lt=!1,keepMounted:jt=!1,onBackdropClick:Rt,onClose:$t,open:xt,slotProps:It,slots:Ot,theme:zt}=ct,Ut=_objectWithoutPropertiesLoose$g(ct,_excluded$1a),[Wt,Ft]=reactExports.useState(!0),Nt={container:yt,closeAfterTransition:mt,disableAutoFocus:kt,disableEnforceFocus:St,disableEscapeKeyDown:Tt,disablePortal:At,disableRestoreFocus:Et,disableScrollLock:Mt,hideBackdrop:Lt,keepMounted:jt,onBackdropClick:Rt,onClose:$t,open:xt},Ct=_extends$r({},ct,Nt,{exited:Wt}),Ht=(rt=(it=Ot==null?void 0:Ot.root)!=null?it:wt.Root)!=null?rt:ModalRoot,Jt=(ot=(at=Ot==null?void 0:Ot.backdrop)!=null?at:wt.Backdrop)!=null?ot:ut,nn=(st=It==null?void 0:It.root)!=null?st:vt.root,Yt=(lt=It==null?void 0:It.backdrop)!=null?lt:vt.backdrop;return jsxRuntimeExports.jsx(ModalUnstyled,_extends$r({slots:{root:Ht,backdrop:Jt},slotProps:{root:()=>_extends$r({},resolveComponentProps(nn,Ct),!isHostComponent(Ht)&&{as:bt,theme:zt},{className:clsx(pt,nn==null?void 0:nn.className,dt==null?void 0:dt.root,!Ct.open&&Ct.exited&&(dt==null?void 0:dt.hidden))}),backdrop:()=>_extends$r({},ht,resolveComponentProps(Yt,Ct),{className:clsx(Yt==null?void 0:Yt.className,ht==null?void 0:ht.className,dt==null?void 0:dt.backdrop)})},onTransitionEnter:()=>Ft(!1),onTransitionExited:()=>Ft(!0),ref:nt},Ut,Nt,{children:gt}))}),Modal$1=Modal;function getDialogUtilityClass(tt){return generateUtilityClass("MuiDialog",tt)}const dialogClasses=generateUtilityClasses("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]),dialogClasses$1=dialogClasses,DialogContext=reactExports.createContext({}),DialogContext$1=DialogContext,_excluded$19=["aria-describedby","aria-labelledby","BackdropComponent","BackdropProps","children","className","disableEscapeKeyDown","fullScreen","fullWidth","maxWidth","onBackdropClick","onClose","open","PaperComponent","PaperProps","scroll","TransitionComponent","transitionDuration","TransitionProps"],DialogBackdrop=styled$1(Backdrop$1,{name:"MuiDialog",slot:"Backdrop",overrides:(tt,et)=>et.backdrop})({zIndex:-1}),useUtilityClasses$L=tt=>{const{classes:et,scroll:nt,maxWidth:rt,fullWidth:it,fullScreen:ot}=tt,at={root:["root"],container:["container",`scroll${capitalize(nt)}`],paper:["paper",`paperScroll${capitalize(nt)}`,`paperWidth${capitalize(String(rt))}`,it&&"paperFullWidth",ot&&"paperFullScreen"]};return composeClasses(at,getDialogUtilityClass,et)},DialogRoot=styled$1(Modal$1,{name:"MuiDialog",slot:"Root",overridesResolver:(tt,et)=>et.root})({"@media print":{position:"absolute !important"}}),DialogContainer=styled$1("div",{name:"MuiDialog",slot:"Container",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.container,et[`scroll${capitalize(nt.scroll)}`]]}})(({ownerState:tt})=>_extends$r({height:"100%","@media print":{height:"auto"},outline:0},tt.scroll==="paper"&&{display:"flex",justifyContent:"center",alignItems:"center"},tt.scroll==="body"&&{overflowY:"auto",overflowX:"hidden",textAlign:"center","&:after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}})),DialogPaper=styled$1(Paper$1,{name:"MuiDialog",slot:"Paper",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.paper,et[`scrollPaper${capitalize(nt.scroll)}`],et[`paperWidth${capitalize(String(nt.maxWidth))}`],nt.fullWidth&&et.paperFullWidth,nt.fullScreen&&et.paperFullScreen]}})(({theme:tt,ownerState:et})=>_extends$r({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"}},et.scroll==="paper"&&{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"},et.scroll==="body"&&{display:"inline-block",verticalAlign:"middle",textAlign:"left"},!et.maxWidth&&{maxWidth:"calc(100% - 64px)"},et.maxWidth==="xs"&&{maxWidth:tt.breakpoints.unit==="px"?Math.max(tt.breakpoints.values.xs,444):`max(${tt.breakpoints.values.xs}${tt.breakpoints.unit}, 444px)`,[`&.${dialogClasses$1.paperScrollBody}`]:{[tt.breakpoints.down(Math.max(tt.breakpoints.values.xs,444)+32*2)]:{maxWidth:"calc(100% - 64px)"}}},et.maxWidth&&et.maxWidth!=="xs"&&{maxWidth:`${tt.breakpoints.values[et.maxWidth]}${tt.breakpoints.unit}`,[`&.${dialogClasses$1.paperScrollBody}`]:{[tt.breakpoints.down(tt.breakpoints.values[et.maxWidth]+32*2)]:{maxWidth:"calc(100% - 64px)"}}},et.fullWidth&&{width:"calc(100% - 64px)"},et.fullScreen&&{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${dialogClasses$1.paperScrollBody}`]:{margin:0,maxWidth:"100%"}})),Dialog=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiDialog"}),it=useTheme(),ot={enter:it.transitions.duration.enteringScreen,exit:it.transitions.duration.leavingScreen},{"aria-describedby":at,"aria-labelledby":st,BackdropComponent:lt,BackdropProps:ct,children:ut,className:ht,disableEscapeKeyDown:dt=!1,fullScreen:pt=!1,fullWidth:mt=!1,maxWidth:gt="sm",onBackdropClick:yt,onClose:bt,open:wt,PaperComponent:vt=Paper$1,PaperProps:kt={},scroll:St="paper",TransitionComponent:Tt=Fade$1,transitionDuration:At=ot,TransitionProps:Et}=rt,Mt=_objectWithoutPropertiesLoose$g(rt,_excluded$19),Lt=_extends$r({},rt,{disableEscapeKeyDown:dt,fullScreen:pt,fullWidth:mt,maxWidth:gt,scroll:St}),jt=useUtilityClasses$L(Lt),Rt=reactExports.useRef(),$t=zt=>{Rt.current=zt.target===zt.currentTarget},xt=zt=>{Rt.current&&(Rt.current=null,yt&&yt(zt),bt&&bt(zt,"backdropClick"))},It=useId(st),Ot=reactExports.useMemo(()=>({titleId:It}),[It]);return jsxRuntimeExports.jsx(DialogRoot,_extends$r({className:clsx(jt.root,ht),closeAfterTransition:!0,components:{Backdrop:DialogBackdrop},componentsProps:{backdrop:_extends$r({transitionDuration:At,as:lt},ct)},disableEscapeKeyDown:dt,onClose:bt,open:wt,ref:nt,onClick:xt,ownerState:Lt},Mt,{children:jsxRuntimeExports.jsx(Tt,_extends$r({appear:!0,in:wt,timeout:At,role:"presentation"},Et,{children:jsxRuntimeExports.jsx(DialogContainer,{className:clsx(jt.container),onMouseDown:$t,ownerState:Lt,children:jsxRuntimeExports.jsx(DialogPaper,_extends$r({as:vt,elevation:24,role:"dialog","aria-describedby":at,"aria-labelledby":It},kt,{className:clsx(jt.paper,kt.className),ownerState:Lt,children:jsxRuntimeExports.jsx(DialogContext$1.Provider,{value:Ot,children:ut})}))})}))}))}),MuiDialog=Dialog;function getDialogActionsUtilityClass(tt){return generateUtilityClass("MuiDialogActions",tt)}generateUtilityClasses("MuiDialogActions",["root","spacing"]);const _excluded$18=["className","disableSpacing"],useUtilityClasses$K=tt=>{const{classes:et,disableSpacing:nt}=tt;return composeClasses({root:["root",!nt&&"spacing"]},getDialogActionsUtilityClass,et)},DialogActionsRoot=styled$1("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,!nt.disableSpacing&&et.spacing]}})(({ownerState:tt})=>_extends$r({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto"},!tt.disableSpacing&&{"& > :not(:first-of-type)":{marginLeft:8}})),DialogActions=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiDialogActions"}),{className:it,disableSpacing:ot=!1}=rt,at=_objectWithoutPropertiesLoose$g(rt,_excluded$18),st=_extends$r({},rt,{disableSpacing:ot}),lt=useUtilityClasses$K(st);return jsxRuntimeExports.jsx(DialogActionsRoot,_extends$r({className:clsx(lt.root,it),ownerState:st,ref:nt},at))}),DialogActions$1=DialogActions;function getDialogContentUtilityClass(tt){return generateUtilityClass("MuiDialogContent",tt)}generateUtilityClasses("MuiDialogContent",["root","dividers"]);const dialogTitleClasses=generateUtilityClasses("MuiDialogTitle",["root"]),dialogTitleClasses$1=dialogTitleClasses,_excluded$17=["className","dividers"],useUtilityClasses$J=tt=>{const{classes:et,dividers:nt}=tt;return composeClasses({root:["root",nt&&"dividers"]},getDialogContentUtilityClass,et)},DialogContentRoot=styled$1("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.dividers&&et.dividers]}})(({theme:tt,ownerState:et})=>_extends$r({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px"},et.dividers?{padding:"16px 24px",borderTop:`1px solid ${(tt.vars||tt).palette.divider}`,borderBottom:`1px solid ${(tt.vars||tt).palette.divider}`}:{[`.${dialogTitleClasses$1.root} + &`]:{paddingTop:0}})),DialogContent=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiDialogContent"}),{className:it,dividers:ot=!1}=rt,at=_objectWithoutPropertiesLoose$g(rt,_excluded$17),st=_extends$r({},rt,{dividers:ot}),lt=useUtilityClasses$J(st);return jsxRuntimeExports.jsx(DialogContentRoot,_extends$r({className:clsx(lt.root,it),ownerState:st,ref:nt},at))}),DialogContent$1=DialogContent,dividerClasses=generateUtilityClasses("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),dividerClasses$1=dividerClasses,_excluded$16=["addEndListener","appear","children","container","direction","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function getTranslateValue(tt,et,nt){const rt=et.getBoundingClientRect(),it=nt&&nt.getBoundingClientRect(),ot=ownerWindow(et);let at;if(et.fakeTransform)at=et.fakeTransform;else{const ct=ot.getComputedStyle(et);at=ct.getPropertyValue("-webkit-transform")||ct.getPropertyValue("transform")}let st=0,lt=0;if(at&&at!=="none"&&typeof at=="string"){const ct=at.split("(")[1].split(")")[0].split(",");st=parseInt(ct[4],10),lt=parseInt(ct[5],10)}return tt==="left"?it?`translateX(${it.right+st-rt.left}px)`:`translateX(${ot.innerWidth+st-rt.left}px)`:tt==="right"?it?`translateX(-${rt.right-it.left-st}px)`:`translateX(-${rt.left+rt.width-st}px)`:tt==="up"?it?`translateY(${it.bottom+lt-rt.top}px)`:`translateY(${ot.innerHeight+lt-rt.top}px)`:it?`translateY(-${rt.top-it.top+rt.height-lt}px)`:`translateY(-${rt.top+rt.height-lt}px)`}function resolveContainer(tt){return typeof tt=="function"?tt():tt}function setTranslateValue(tt,et,nt){const rt=resolveContainer(nt),it=getTranslateValue(tt,et,rt);it&&(et.style.webkitTransform=it,et.style.transform=it)}const Slide=reactExports.forwardRef(function(et,nt){const rt=useTheme(),it={enter:rt.transitions.easing.easeOut,exit:rt.transitions.easing.sharp},ot={enter:rt.transitions.duration.enteringScreen,exit:rt.transitions.duration.leavingScreen},{addEndListener:at,appear:st=!0,children:lt,container:ct,direction:ut="down",easing:ht=it,in:dt,onEnter:pt,onEntered:mt,onEntering:gt,onExit:yt,onExited:bt,onExiting:wt,style:vt,timeout:kt=ot,TransitionComponent:St=Transition$1}=et,Tt=_objectWithoutPropertiesLoose$g(et,_excluded$16),At=reactExports.useRef(null),Et=useForkRef(lt.ref,At,nt),Mt=Ut=>Wt=>{Ut&&(Wt===void 0?Ut(At.current):Ut(At.current,Wt))},Lt=Mt((Ut,Wt)=>{setTranslateValue(ut,Ut,ct),reflow(Ut),pt&&pt(Ut,Wt)}),jt=Mt((Ut,Wt)=>{const Ft=getTransitionProps({timeout:kt,style:vt,easing:ht},{mode:"enter"});Ut.style.webkitTransition=rt.transitions.create("-webkit-transform",_extends$r({},Ft)),Ut.style.transition=rt.transitions.create("transform",_extends$r({},Ft)),Ut.style.webkitTransform="none",Ut.style.transform="none",gt&>(Ut,Wt)}),Rt=Mt(mt),$t=Mt(wt),xt=Mt(Ut=>{const Wt=getTransitionProps({timeout:kt,style:vt,easing:ht},{mode:"exit"});Ut.style.webkitTransition=rt.transitions.create("-webkit-transform",Wt),Ut.style.transition=rt.transitions.create("transform",Wt),setTranslateValue(ut,Ut,ct),yt&&yt(Ut)}),It=Mt(Ut=>{Ut.style.webkitTransition="",Ut.style.transition="",bt&&bt(Ut)}),Ot=Ut=>{at&&at(At.current,Ut)},zt=reactExports.useCallback(()=>{At.current&&setTranslateValue(ut,At.current,ct)},[ut,ct]);return reactExports.useEffect(()=>{if(dt||ut==="down"||ut==="right")return;const Ut=debounce$5(()=>{At.current&&setTranslateValue(ut,At.current,ct)}),Wt=ownerWindow(At.current);return Wt.addEventListener("resize",Ut),()=>{Ut.clear(),Wt.removeEventListener("resize",Ut)}},[ut,dt,ct]),reactExports.useEffect(()=>{dt||zt()},[dt,zt]),jsxRuntimeExports.jsx(St,_extends$r({nodeRef:At,onEnter:Lt,onEntered:Rt,onEntering:jt,onExit:xt,onExited:It,onExiting:$t,addEndListener:Ot,appear:st,in:dt,timeout:kt},Tt,{children:(Ut,Wt)=>reactExports.cloneElement(lt,_extends$r({ref:Et,style:_extends$r({visibility:Ut==="exited"&&!dt?"hidden":void 0},vt,lt.props.style)},Wt))}))}),Slide$1=Slide,_excluded$15=["disableUnderline","components","componentsProps","fullWidth","hiddenLabel","inputComponent","multiline","slotProps","slots","type"],useUtilityClasses$I=tt=>{const{classes:et,disableUnderline:nt}=tt,it=composeClasses({root:["root",!nt&&"underline"],input:["input"]},getFilledInputUtilityClass,et);return _extends$r({},et,it)},FilledInputRoot=styled$1(InputBaseRoot,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[...rootOverridesResolver(tt,et),!nt.disableUnderline&&et.underline]}})(({theme:tt,ownerState:et})=>{var nt;const rt=tt.palette.mode==="light",it=rt?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",ot=rt?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",at=rt?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",st=rt?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return _extends$r({position:"relative",backgroundColor:tt.vars?tt.vars.palette.FilledInput.bg:ot,borderTopLeftRadius:(tt.vars||tt).shape.borderRadius,borderTopRightRadius:(tt.vars||tt).shape.borderRadius,transition:tt.transitions.create("background-color",{duration:tt.transitions.duration.shorter,easing:tt.transitions.easing.easeOut}),"&:hover":{backgroundColor:tt.vars?tt.vars.palette.FilledInput.hoverBg:at,"@media (hover: none)":{backgroundColor:tt.vars?tt.vars.palette.FilledInput.bg:ot}},[`&.${filledInputClasses$1.focused}`]:{backgroundColor:tt.vars?tt.vars.palette.FilledInput.bg:ot},[`&.${filledInputClasses$1.disabled}`]:{backgroundColor:tt.vars?tt.vars.palette.FilledInput.disabledBg:st}},!et.disableUnderline&&{"&:after":{borderBottom:`2px solid ${(nt=(tt.vars||tt).palette[et.color||"primary"])==null?void 0:nt.main}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:tt.transitions.create("transform",{duration:tt.transitions.duration.shorter,easing:tt.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${filledInputClasses$1.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${filledInputClasses$1.error}`]:{"&:before, &:after":{borderBottomColor:(tt.vars||tt).palette.error.main}},"&:before":{borderBottom:`1px solid ${tt.vars?`rgba(${tt.vars.palette.common.onBackgroundChannel} / ${tt.vars.opacity.inputUnderline})`:it}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:tt.transitions.create("border-bottom-color",{duration:tt.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${filledInputClasses$1.disabled}, .${filledInputClasses$1.error}):before`]:{borderBottom:`1px solid ${(tt.vars||tt).palette.text.primary}`},[`&.${filledInputClasses$1.disabled}:before`]:{borderBottomStyle:"dotted"}},et.startAdornment&&{paddingLeft:12},et.endAdornment&&{paddingRight:12},et.multiline&&_extends$r({padding:"25px 12px 8px"},et.size==="small"&&{paddingTop:21,paddingBottom:4},et.hiddenLabel&&{paddingTop:16,paddingBottom:17}))}),FilledInputInput=styled$1(InputBaseComponent,{name:"MuiFilledInput",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:tt,ownerState:et})=>_extends$r({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12},!tt.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:tt.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:tt.palette.mode==="light"?null:"#fff",caretColor:tt.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},tt.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[tt.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},et.size==="small"&&{paddingTop:21,paddingBottom:4},et.hiddenLabel&&{paddingTop:16,paddingBottom:17},et.multiline&&{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0},et.startAdornment&&{paddingLeft:0},et.endAdornment&&{paddingRight:0},et.hiddenLabel&&et.size==="small"&&{paddingTop:8,paddingBottom:9})),FilledInput=reactExports.forwardRef(function(et,nt){var rt,it,ot,at;const st=useThemeProps({props:et,name:"MuiFilledInput"}),{components:lt={},componentsProps:ct,fullWidth:ut=!1,inputComponent:ht="input",multiline:dt=!1,slotProps:pt,slots:mt={},type:gt="text"}=st,yt=_objectWithoutPropertiesLoose$g(st,_excluded$15),bt=_extends$r({},st,{fullWidth:ut,inputComponent:ht,multiline:dt,type:gt}),wt=useUtilityClasses$I(st),vt={root:{ownerState:bt},input:{ownerState:bt}},kt=pt??ct?deepmerge$1(pt??ct,vt):vt,St=(rt=(it=mt.root)!=null?it:lt.Root)!=null?rt:FilledInputRoot,Tt=(ot=(at=mt.input)!=null?at:lt.Input)!=null?ot:FilledInputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends$r({slots:{root:St,input:Tt},componentsProps:kt,fullWidth:ut,inputComponent:ht,multiline:dt,ref:nt,type:gt},yt,{classes:wt}))});FilledInput.muiName="Input";const FilledInput$1=FilledInput;function getFormControlUtilityClasses(tt){return generateUtilityClass("MuiFormControl",tt)}generateUtilityClasses("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const _excluded$14=["children","className","color","component","disabled","error","focused","fullWidth","hiddenLabel","margin","required","size","variant"],useUtilityClasses$H=tt=>{const{classes:et,margin:nt,fullWidth:rt}=tt,it={root:["root",nt!=="none"&&`margin${capitalize(nt)}`,rt&&"fullWidth"]};return composeClasses(it,getFormControlUtilityClasses,et)},FormControlRoot=styled$1("div",{name:"MuiFormControl",slot:"Root",overridesResolver:({ownerState:tt},et)=>_extends$r({},et.root,et[`margin${capitalize(tt.margin)}`],tt.fullWidth&&et.fullWidth)})(({ownerState:tt})=>_extends$r({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},tt.margin==="normal"&&{marginTop:16,marginBottom:8},tt.margin==="dense"&&{marginTop:8,marginBottom:4},tt.fullWidth&&{width:"100%"})),FormControl=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiFormControl"}),{children:it,className:ot,color:at="primary",component:st="div",disabled:lt=!1,error:ct=!1,focused:ut,fullWidth:ht=!1,hiddenLabel:dt=!1,margin:pt="none",required:mt=!1,size:gt="medium",variant:yt="outlined"}=rt,bt=_objectWithoutPropertiesLoose$g(rt,_excluded$14),wt=_extends$r({},rt,{color:at,component:st,disabled:lt,error:ct,fullWidth:ht,hiddenLabel:dt,margin:pt,required:mt,size:gt,variant:yt}),vt=useUtilityClasses$H(wt),[kt,St]=reactExports.useState(()=>{let $t=!1;return it&&reactExports.Children.forEach(it,xt=>{if(!isMuiElement(xt,["Input","Select"]))return;const It=isMuiElement(xt,["Select"])?xt.props.input:xt;It&&isAdornedStart(It.props)&&($t=!0)}),$t}),[Tt,At]=reactExports.useState(()=>{let $t=!1;return it&&reactExports.Children.forEach(it,xt=>{isMuiElement(xt,["Input","Select"])&&(isFilled(xt.props,!0)||isFilled(xt.props.inputProps,!0))&&($t=!0)}),$t}),[Et,Mt]=reactExports.useState(!1);lt&&Et&&Mt(!1);const Lt=ut!==void 0&&!lt?ut:Et;let jt;const Rt=reactExports.useMemo(()=>({adornedStart:kt,setAdornedStart:St,color:at,disabled:lt,error:ct,filled:Tt,focused:Lt,fullWidth:ht,hiddenLabel:dt,size:gt,onBlur:()=>{Mt(!1)},onEmpty:()=>{At(!1)},onFilled:()=>{At(!0)},onFocus:()=>{Mt(!0)},registerEffect:jt,required:mt,variant:yt}),[kt,at,lt,ct,Tt,Lt,ht,dt,jt,mt,gt,yt]);return jsxRuntimeExports.jsx(FormControlContext$1.Provider,{value:Rt,children:jsxRuntimeExports.jsx(FormControlRoot,_extends$r({as:st,ownerState:wt,className:clsx(vt.root,ot),ref:nt},bt,{children:it}))})}),FormControl$1=FormControl,Stack$4=createStack({createStyledComponent:styled$1("div",{name:"MuiStack",slot:"Root",overridesResolver:(tt,et)=>et.root}),useThemeProps:tt=>useThemeProps({props:tt,name:"MuiStack"})}),Stack$5=Stack$4;function getFormHelperTextUtilityClasses(tt){return generateUtilityClass("MuiFormHelperText",tt)}const formHelperTextClasses=generateUtilityClasses("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]),formHelperTextClasses$1=formHelperTextClasses;var _span$3;const _excluded$13=["children","className","component","disabled","error","filled","focused","margin","required","variant"],useUtilityClasses$G=tt=>{const{classes:et,contained:nt,size:rt,disabled:it,error:ot,filled:at,focused:st,required:lt}=tt,ct={root:["root",it&&"disabled",ot&&"error",rt&&`size${capitalize(rt)}`,nt&&"contained",st&&"focused",at&&"filled",lt&&"required"]};return composeClasses(ct,getFormHelperTextUtilityClasses,et)},FormHelperTextRoot=styled$1("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.size&&et[`size${capitalize(nt.size)}`],nt.contained&&et.contained,nt.filled&&et.filled]}})(({theme:tt,ownerState:et})=>_extends$r({color:(tt.vars||tt).palette.text.secondary},tt.typography.caption,{textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${formHelperTextClasses$1.disabled}`]:{color:(tt.vars||tt).palette.text.disabled},[`&.${formHelperTextClasses$1.error}`]:{color:(tt.vars||tt).palette.error.main}},et.size==="small"&&{marginTop:4},et.contained&&{marginLeft:14,marginRight:14})),FormHelperText=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiFormHelperText"}),{children:it,className:ot,component:at="p"}=rt,st=_objectWithoutPropertiesLoose$g(rt,_excluded$13),lt=useFormControl(),ct=formControlState({props:rt,muiFormControl:lt,states:["variant","size","disabled","error","filled","focused","required"]}),ut=_extends$r({},rt,{component:at,contained:ct.variant==="filled"||ct.variant==="outlined",variant:ct.variant,size:ct.size,disabled:ct.disabled,error:ct.error,filled:ct.filled,focused:ct.focused,required:ct.required}),ht=useUtilityClasses$G(ut);return jsxRuntimeExports.jsx(FormHelperTextRoot,_extends$r({as:at,ownerState:ut,className:clsx(ht.root,ot),ref:nt},st,{children:it===" "?_span$3||(_span$3=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"})):it}))}),FormHelperText$1=FormHelperText;function getFormLabelUtilityClasses(tt){return generateUtilityClass("MuiFormLabel",tt)}const formLabelClasses=generateUtilityClasses("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),formLabelClasses$1=formLabelClasses,_excluded$12=["children","className","color","component","disabled","error","filled","focused","required"],useUtilityClasses$F=tt=>{const{classes:et,color:nt,focused:rt,disabled:it,error:ot,filled:at,required:st}=tt,lt={root:["root",`color${capitalize(nt)}`,it&&"disabled",ot&&"error",at&&"filled",rt&&"focused",st&&"required"],asterisk:["asterisk",ot&&"error"]};return composeClasses(lt,getFormLabelUtilityClasses,et)},FormLabelRoot=styled$1("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:({ownerState:tt},et)=>_extends$r({},et.root,tt.color==="secondary"&&et.colorSecondary,tt.filled&&et.filled)})(({theme:tt,ownerState:et})=>_extends$r({color:(tt.vars||tt).palette.text.secondary},tt.typography.body1,{lineHeight:"1.4375em",padding:0,position:"relative",[`&.${formLabelClasses$1.focused}`]:{color:(tt.vars||tt).palette[et.color].main},[`&.${formLabelClasses$1.disabled}`]:{color:(tt.vars||tt).palette.text.disabled},[`&.${formLabelClasses$1.error}`]:{color:(tt.vars||tt).palette.error.main}})),AsteriskComponent=styled$1("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(tt,et)=>et.asterisk})(({theme:tt})=>({[`&.${formLabelClasses$1.error}`]:{color:(tt.vars||tt).palette.error.main}})),FormLabel=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiFormLabel"}),{children:it,className:ot,component:at="label"}=rt,st=_objectWithoutPropertiesLoose$g(rt,_excluded$12),lt=useFormControl(),ct=formControlState({props:rt,muiFormControl:lt,states:["color","required","focused","disabled","error","filled"]}),ut=_extends$r({},rt,{color:ct.color||"primary",component:at,disabled:ct.disabled,error:ct.error,filled:ct.filled,focused:ct.focused,required:ct.required}),ht=useUtilityClasses$F(ut);return jsxRuntimeExports.jsxs(FormLabelRoot,_extends$r({as:at,ownerState:ut,className:clsx(ht.root,ot),ref:nt},st,{children:[it,ct.required&&jsxRuntimeExports.jsxs(AsteriskComponent,{ownerState:ut,"aria-hidden":!0,className:ht.asterisk,children:[" ","*"]})]}))}),FormLabel$1=FormLabel,GridContext=reactExports.createContext(),GridContext$1=GridContext;function getGridUtilityClass(tt){return generateUtilityClass("MuiGrid",tt)}const SPACINGS=[0,1,2,3,4,5,6,7,8,9,10],DIRECTIONS=["column-reverse","column","row-reverse","row"],WRAPS=["nowrap","wrap-reverse","wrap"],GRID_SIZES=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],gridClasses=generateUtilityClasses("MuiGrid",["root","container","item","zeroMinWidth",...SPACINGS.map(tt=>`spacing-xs-${tt}`),...DIRECTIONS.map(tt=>`direction-xs-${tt}`),...WRAPS.map(tt=>`wrap-xs-${tt}`),...GRID_SIZES.map(tt=>`grid-xs-${tt}`),...GRID_SIZES.map(tt=>`grid-sm-${tt}`),...GRID_SIZES.map(tt=>`grid-md-${tt}`),...GRID_SIZES.map(tt=>`grid-lg-${tt}`),...GRID_SIZES.map(tt=>`grid-xl-${tt}`)]),gridClasses$1=gridClasses,_excluded$11=["className","columns","columnSpacing","component","container","direction","item","rowSpacing","spacing","wrap","zeroMinWidth"];function getOffset$1(tt){const et=parseFloat(tt);return`${et}${String(tt).replace(String(et),"")||"px"}`}function generateGrid({theme:tt,ownerState:et}){let nt;return tt.breakpoints.keys.reduce((rt,it)=>{let ot={};if(et[it]&&(nt=et[it]),!nt)return rt;if(nt===!0)ot={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if(nt==="auto")ot={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{const at=resolveBreakpointValues({values:et.columns,breakpoints:tt.breakpoints.values}),st=typeof at=="object"?at[it]:at;if(st==null)return rt;const lt=`${Math.round(nt/st*1e8)/1e6}%`;let ct={};if(et.container&&et.item&&et.columnSpacing!==0){const ut=tt.spacing(et.columnSpacing);if(ut!=="0px"){const ht=`calc(${lt} + ${getOffset$1(ut)})`;ct={flexBasis:ht,maxWidth:ht}}}ot=_extends$r({flexBasis:lt,flexGrow:0,maxWidth:lt},ct)}return tt.breakpoints.values[it]===0?Object.assign(rt,ot):rt[tt.breakpoints.up(it)]=ot,rt},{})}function generateDirection({theme:tt,ownerState:et}){const nt=resolveBreakpointValues({values:et.direction,breakpoints:tt.breakpoints.values});return handleBreakpoints({theme:tt},nt,rt=>{const it={flexDirection:rt};return rt.indexOf("column")===0&&(it[`& > .${gridClasses$1.item}`]={maxWidth:"none"}),it})}function extractZeroValueBreakpointKeys({breakpoints:tt,values:et}){let nt="";Object.keys(et).forEach(it=>{nt===""&&et[it]!==0&&(nt=it)});const rt=Object.keys(tt).sort((it,ot)=>tt[it]-tt[ot]);return rt.slice(0,rt.indexOf(nt))}function generateRowGap({theme:tt,ownerState:et}){const{container:nt,rowSpacing:rt}=et;let it={};if(nt&&rt!==0){const ot=resolveBreakpointValues({values:rt,breakpoints:tt.breakpoints.values});let at;typeof ot=="object"&&(at=extractZeroValueBreakpointKeys({breakpoints:tt.breakpoints.values,values:ot})),it=handleBreakpoints({theme:tt},ot,(st,lt)=>{var ct;const ut=tt.spacing(st);return ut!=="0px"?{marginTop:`-${getOffset$1(ut)}`,[`& > .${gridClasses$1.item}`]:{paddingTop:getOffset$1(ut)}}:(ct=at)!=null&&ct.includes(lt)?{}:{marginTop:0,[`& > .${gridClasses$1.item}`]:{paddingTop:0}}})}return it}function generateColumnGap({theme:tt,ownerState:et}){const{container:nt,columnSpacing:rt}=et;let it={};if(nt&&rt!==0){const ot=resolveBreakpointValues({values:rt,breakpoints:tt.breakpoints.values});let at;typeof ot=="object"&&(at=extractZeroValueBreakpointKeys({breakpoints:tt.breakpoints.values,values:ot})),it=handleBreakpoints({theme:tt},ot,(st,lt)=>{var ct;const ut=tt.spacing(st);return ut!=="0px"?{width:`calc(100% + ${getOffset$1(ut)})`,marginLeft:`-${getOffset$1(ut)}`,[`& > .${gridClasses$1.item}`]:{paddingLeft:getOffset$1(ut)}}:(ct=at)!=null&&ct.includes(lt)?{}:{width:"100%",marginLeft:0,[`& > .${gridClasses$1.item}`]:{paddingLeft:0}}})}return it}function resolveSpacingStyles(tt,et,nt={}){if(!tt||tt<=0)return[];if(typeof tt=="string"&&!Number.isNaN(Number(tt))||typeof tt=="number")return[nt[`spacing-xs-${String(tt)}`]];const rt=[];return et.forEach(it=>{const ot=tt[it];Number(ot)>0&&rt.push(nt[`spacing-${it}-${String(ot)}`])}),rt}const GridRoot=styled$1("div",{name:"MuiGrid",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt,{container:rt,direction:it,item:ot,spacing:at,wrap:st,zeroMinWidth:lt,breakpoints:ct}=nt;let ut=[];rt&&(ut=resolveSpacingStyles(at,ct,et));const ht=[];return ct.forEach(dt=>{const pt=nt[dt];pt&&ht.push(et[`grid-${dt}-${String(pt)}`])}),[et.root,rt&&et.container,ot&&et.item,lt&&et.zeroMinWidth,...ut,it!=="row"&&et[`direction-xs-${String(it)}`],st!=="wrap"&&et[`wrap-xs-${String(st)}`],...ht]}})(({ownerState:tt})=>_extends$r({boxSizing:"border-box"},tt.container&&{display:"flex",flexWrap:"wrap",width:"100%"},tt.item&&{margin:0},tt.zeroMinWidth&&{minWidth:0},tt.wrap!=="wrap"&&{flexWrap:tt.wrap}),generateDirection,generateRowGap,generateColumnGap,generateGrid);function resolveSpacingClasses(tt,et){if(!tt||tt<=0)return[];if(typeof tt=="string"&&!Number.isNaN(Number(tt))||typeof tt=="number")return[`spacing-xs-${String(tt)}`];const nt=[];return et.forEach(rt=>{const it=tt[rt];if(Number(it)>0){const ot=`spacing-${rt}-${String(it)}`;nt.push(ot)}}),nt}const useUtilityClasses$E=tt=>{const{classes:et,container:nt,direction:rt,item:it,spacing:ot,wrap:at,zeroMinWidth:st,breakpoints:lt}=tt;let ct=[];nt&&(ct=resolveSpacingClasses(ot,lt));const ut=[];lt.forEach(dt=>{const pt=tt[dt];pt&&ut.push(`grid-${dt}-${String(pt)}`)});const ht={root:["root",nt&&"container",it&&"item",st&&"zeroMinWidth",...ct,rt!=="row"&&`direction-xs-${String(rt)}`,at!=="wrap"&&`wrap-xs-${String(at)}`,...ut]};return composeClasses(ht,getGridUtilityClass,et)},Grid=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiGrid"}),{breakpoints:it}=useTheme(),ot=extendSxProp(rt),{className:at,columns:st,columnSpacing:lt,component:ct="div",container:ut=!1,direction:ht="row",item:dt=!1,rowSpacing:pt,spacing:mt=0,wrap:gt="wrap",zeroMinWidth:yt=!1}=ot,bt=_objectWithoutPropertiesLoose$g(ot,_excluded$11),wt=pt||mt,vt=lt||mt,kt=reactExports.useContext(GridContext$1),St=ut?st||12:kt,Tt={},At=_extends$r({},bt);it.keys.forEach(Lt=>{bt[Lt]!=null&&(Tt[Lt]=bt[Lt],delete At[Lt])});const Et=_extends$r({},ot,{columns:St,container:ut,direction:ht,item:dt,rowSpacing:wt,columnSpacing:vt,wrap:gt,zeroMinWidth:yt,spacing:mt},Tt,{breakpoints:it.keys}),Mt=useUtilityClasses$E(Et);return jsxRuntimeExports.jsx(GridContext$1.Provider,{value:St,children:jsxRuntimeExports.jsx(GridRoot,_extends$r({ownerState:Et,className:clsx(Mt.root,at),as:ct,ref:nt},At))})}),Grid$1=Grid,_excluded$10=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function getScale(tt){return`scale(${tt}, ${tt**2})`}const styles$3={entering:{opacity:1,transform:getScale(1)},entered:{opacity:1,transform:"none"}},isWebKit154=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),Grow=reactExports.forwardRef(function(et,nt){const{addEndListener:rt,appear:it=!0,children:ot,easing:at,in:st,onEnter:lt,onEntered:ct,onEntering:ut,onExit:ht,onExited:dt,onExiting:pt,style:mt,timeout:gt="auto",TransitionComponent:yt=Transition$1}=et,bt=_objectWithoutPropertiesLoose$g(et,_excluded$10),wt=reactExports.useRef(),vt=reactExports.useRef(),kt=useTheme(),St=reactExports.useRef(null),Tt=useForkRef(St,ot.ref,nt),At=It=>Ot=>{if(It){const zt=St.current;Ot===void 0?It(zt):It(zt,Ot)}},Et=At(ut),Mt=At((It,Ot)=>{reflow(It);const{duration:zt,delay:Ut,easing:Wt}=getTransitionProps({style:mt,timeout:gt,easing:at},{mode:"enter"});let Ft;gt==="auto"?(Ft=kt.transitions.getAutoHeightDuration(It.clientHeight),vt.current=Ft):Ft=zt,It.style.transition=[kt.transitions.create("opacity",{duration:Ft,delay:Ut}),kt.transitions.create("transform",{duration:isWebKit154?Ft:Ft*.666,delay:Ut,easing:Wt})].join(","),lt&<(It,Ot)}),Lt=At(ct),jt=At(pt),Rt=At(It=>{const{duration:Ot,delay:zt,easing:Ut}=getTransitionProps({style:mt,timeout:gt,easing:at},{mode:"exit"});let Wt;gt==="auto"?(Wt=kt.transitions.getAutoHeightDuration(It.clientHeight),vt.current=Wt):Wt=Ot,It.style.transition=[kt.transitions.create("opacity",{duration:Wt,delay:zt}),kt.transitions.create("transform",{duration:isWebKit154?Wt:Wt*.666,delay:isWebKit154?zt:zt||Wt*.333,easing:Ut})].join(","),It.style.opacity=0,It.style.transform=getScale(.75),ht&&ht(It)}),$t=At(dt),xt=It=>{gt==="auto"&&(wt.current=setTimeout(It,vt.current||0)),rt&&rt(St.current,It)};return reactExports.useEffect(()=>()=>{clearTimeout(wt.current)},[]),jsxRuntimeExports.jsx(yt,_extends$r({appear:it,in:st,nodeRef:St,onEnter:Mt,onEntered:Lt,onEntering:Et,onExit:Rt,onExited:$t,onExiting:jt,addEndListener:xt,timeout:gt==="auto"?null:gt},bt,{children:(It,Ot)=>reactExports.cloneElement(ot,_extends$r({style:_extends$r({opacity:0,transform:getScale(.75),visibility:It==="exited"&&!st?"hidden":void 0},styles$3[It],mt,ot.props.style),ref:Tt},Ot))}))});Grow.muiSupportAuto=!0;const Grow$1=Grow;function useMediaQueryOld(tt,et,nt,rt,it){const[ot,at]=reactExports.useState(()=>it&&nt?nt(tt).matches:rt?rt(tt).matches:et);return useEnhancedEffect$1(()=>{let st=!0;if(!nt)return;const lt=nt(tt),ct=()=>{st&&at(lt.matches)};return ct(),lt.addListener(ct),()=>{st=!1,lt.removeListener(ct)}},[tt,nt]),ot}const maybeReactUseSyncExternalStore=React$2["useSyncExternalStore"];function useMediaQueryNew(tt,et,nt,rt,it){const ot=reactExports.useCallback(()=>et,[et]),at=reactExports.useMemo(()=>{if(it&&nt)return()=>nt(tt).matches;if(rt!==null){const{matches:ut}=rt(tt);return()=>ut}return ot},[ot,tt,rt,it,nt]),[st,lt]=reactExports.useMemo(()=>{if(nt===null)return[ot,()=>()=>{}];const ut=nt(tt);return[()=>ut.matches,ht=>(ut.addListener(ht),()=>{ut.removeListener(ht)})]},[ot,nt,tt]);return maybeReactUseSyncExternalStore(lt,st,at)}function useMediaQuery(tt,et={}){const nt=useTheme$3(),rt=typeof window<"u"&&typeof window.matchMedia<"u",{defaultMatches:it=!1,matchMedia:ot=rt?window.matchMedia:null,ssrMatchMedia:at=null,noSsr:st=!1}=getThemeProps({name:"MuiUseMediaQuery",props:et,theme:nt});let lt=typeof tt=="function"?tt(nt):tt;return lt=lt.replace(/^@media( ?)/m,""),(maybeReactUseSyncExternalStore!==void 0?useMediaQueryNew:useMediaQueryOld)(lt,it,ot,at,st)}const _excluded$$=["disableUnderline","components","componentsProps","fullWidth","inputComponent","multiline","slotProps","slots","type"],useUtilityClasses$D=tt=>{const{classes:et,disableUnderline:nt}=tt,it=composeClasses({root:["root",!nt&&"underline"],input:["input"]},getInputUtilityClass,et);return _extends$r({},et,it)},InputRoot=styled$1(InputBaseRoot,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiInput",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[...rootOverridesResolver(tt,et),!nt.disableUnderline&&et.underline]}})(({theme:tt,ownerState:et})=>{let rt=tt.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return tt.vars&&(rt=`rgba(${tt.vars.palette.common.onBackgroundChannel} / ${tt.vars.opacity.inputUnderline})`),_extends$r({position:"relative"},et.formControl&&{"label + &":{marginTop:16}},!et.disableUnderline&&{"&:after":{borderBottom:`2px solid ${(tt.vars||tt).palette[et.color].main}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:tt.transitions.create("transform",{duration:tt.transitions.duration.shorter,easing:tt.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${inputClasses$1.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${inputClasses$1.error}`]:{"&:before, &:after":{borderBottomColor:(tt.vars||tt).palette.error.main}},"&:before":{borderBottom:`1px solid ${rt}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:tt.transitions.create("border-bottom-color",{duration:tt.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${inputClasses$1.disabled}, .${inputClasses$1.error}):before`]:{borderBottom:`2px solid ${(tt.vars||tt).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${rt}`}},[`&.${inputClasses$1.disabled}:before`]:{borderBottomStyle:"dotted"}})}),InputInput=styled$1(InputBaseComponent,{name:"MuiInput",slot:"Input",overridesResolver:inputOverridesResolver})({}),Input$2=reactExports.forwardRef(function(et,nt){var rt,it,ot,at;const st=useThemeProps({props:et,name:"MuiInput"}),{disableUnderline:lt,components:ct={},componentsProps:ut,fullWidth:ht=!1,inputComponent:dt="input",multiline:pt=!1,slotProps:mt,slots:gt={},type:yt="text"}=st,bt=_objectWithoutPropertiesLoose$g(st,_excluded$$),wt=useUtilityClasses$D(st),kt={root:{ownerState:{disableUnderline:lt}}},St=mt??ut?deepmerge$1(mt??ut,kt):kt,Tt=(rt=(it=gt.root)!=null?it:ct.Root)!=null?rt:InputRoot,At=(ot=(at=gt.input)!=null?at:ct.Input)!=null?ot:InputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends$r({slots:{root:Tt,input:At},slotProps:St,fullWidth:ht,inputComponent:dt,multiline:pt,ref:nt,type:yt},bt,{classes:wt}))});Input$2.muiName="Input";const Input$3=Input$2;function getInputAdornmentUtilityClass(tt){return generateUtilityClass("MuiInputAdornment",tt)}const inputAdornmentClasses=generateUtilityClasses("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),inputAdornmentClasses$1=inputAdornmentClasses;var _span$2;const _excluded$_=["children","className","component","disablePointerEvents","disableTypography","position","variant"],overridesResolver$3=(tt,et)=>{const{ownerState:nt}=tt;return[et.root,et[`position${capitalize(nt.position)}`],nt.disablePointerEvents===!0&&et.disablePointerEvents,et[nt.variant]]},useUtilityClasses$C=tt=>{const{classes:et,disablePointerEvents:nt,hiddenLabel:rt,position:it,size:ot,variant:at}=tt,st={root:["root",nt&&"disablePointerEvents",it&&`position${capitalize(it)}`,at,rt&&"hiddenLabel",ot&&`size${capitalize(ot)}`]};return composeClasses(st,getInputAdornmentUtilityClass,et)},InputAdornmentRoot=styled$1("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:overridesResolver$3})(({theme:tt,ownerState:et})=>_extends$r({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(tt.vars||tt).palette.action.active},et.variant==="filled"&&{[`&.${inputAdornmentClasses$1.positionStart}&:not(.${inputAdornmentClasses$1.hiddenLabel})`]:{marginTop:16}},et.position==="start"&&{marginRight:8},et.position==="end"&&{marginLeft:8},et.disablePointerEvents===!0&&{pointerEvents:"none"})),InputAdornment=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiInputAdornment"}),{children:it,className:ot,component:at="div",disablePointerEvents:st=!1,disableTypography:lt=!1,position:ct,variant:ut}=rt,ht=_objectWithoutPropertiesLoose$g(rt,_excluded$_),dt=useFormControl()||{};let pt=ut;ut&&dt.variant,dt&&!pt&&(pt=dt.variant);const mt=_extends$r({},rt,{hiddenLabel:dt.hiddenLabel,size:dt.size,disablePointerEvents:st,position:ct,variant:pt}),gt=useUtilityClasses$C(mt);return jsxRuntimeExports.jsx(FormControlContext$1.Provider,{value:null,children:jsxRuntimeExports.jsx(InputAdornmentRoot,_extends$r({as:at,ownerState:mt,className:clsx(gt.root,ot),ref:nt},ht,{children:typeof it=="string"&&!lt?jsxRuntimeExports.jsx(Typography$1,{color:"text.secondary",children:it}):jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ct==="start"?_span$2||(_span$2=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"})):null,it]})}))})}),MuiInputAdornment=InputAdornment;function getInputLabelUtilityClasses(tt){return generateUtilityClass("MuiInputLabel",tt)}generateUtilityClasses("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const _excluded$Z=["disableAnimation","margin","shrink","variant","className"],useUtilityClasses$B=tt=>{const{classes:et,formControl:nt,size:rt,shrink:it,disableAnimation:ot,variant:at,required:st}=tt,ct=composeClasses({root:["root",nt&&"formControl",!ot&&"animated",it&&"shrink",rt==="small"&&"sizeSmall",at],asterisk:[st&&"asterisk"]},getInputLabelUtilityClasses,et);return _extends$r({},et,ct)},InputLabelRoot=styled$1(FormLabel$1,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[{[`& .${formLabelClasses$1.asterisk}`]:et.asterisk},et.root,nt.formControl&&et.formControl,nt.size==="small"&&et.sizeSmall,nt.shrink&&et.shrink,!nt.disableAnimation&&et.animated,et[nt.variant]]}})(({theme:tt,ownerState:et})=>_extends$r({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},et.formControl&&{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"},et.size==="small"&&{transform:"translate(0, 17px) scale(1)"},et.shrink&&{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"},!et.disableAnimation&&{transition:tt.transitions.create(["color","transform","max-width"],{duration:tt.transitions.duration.shorter,easing:tt.transitions.easing.easeOut})},et.variant==="filled"&&_extends$r({zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},et.size==="small"&&{transform:"translate(12px, 13px) scale(1)"},et.shrink&&_extends$r({userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"},et.size==="small"&&{transform:"translate(12px, 4px) scale(0.75)"})),et.variant==="outlined"&&_extends$r({zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},et.size==="small"&&{transform:"translate(14px, 9px) scale(1)"},et.shrink&&{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}))),InputLabel=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({name:"MuiInputLabel",props:et}),{disableAnimation:it=!1,shrink:ot,className:at}=rt,st=_objectWithoutPropertiesLoose$g(rt,_excluded$Z),lt=useFormControl();let ct=ot;typeof ct>"u"&<&&(ct=lt.filled||lt.focused||lt.adornedStart);const ut=formControlState({props:rt,muiFormControl:lt,states:["size","variant","required"]}),ht=_extends$r({},rt,{disableAnimation:it,formControl:lt,shrink:ct,size:ut.size,variant:ut.variant,required:ut.required}),dt=useUtilityClasses$B(ht);return jsxRuntimeExports.jsx(InputLabelRoot,_extends$r({"data-shrink":ct,ownerState:ht,ref:nt,className:clsx(dt.root,at)},st,{classes:dt}))}),InputLabel$1=InputLabel,ListContext=reactExports.createContext({}),ListContext$1=ListContext;function getListUtilityClass(tt){return generateUtilityClass("MuiList",tt)}generateUtilityClasses("MuiList",["root","padding","dense","subheader"]);const _excluded$Y=["children","className","component","dense","disablePadding","subheader"],useUtilityClasses$A=tt=>{const{classes:et,disablePadding:nt,dense:rt,subheader:it}=tt;return composeClasses({root:["root",!nt&&"padding",rt&&"dense",it&&"subheader"]},getListUtilityClass,et)},ListRoot=styled$1("ul",{name:"MuiList",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,!nt.disablePadding&&et.padding,nt.dense&&et.dense,nt.subheader&&et.subheader]}})(({ownerState:tt})=>_extends$r({listStyle:"none",margin:0,padding:0,position:"relative"},!tt.disablePadding&&{paddingTop:8,paddingBottom:8},tt.subheader&&{paddingTop:0})),List=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiList"}),{children:it,className:ot,component:at="ul",dense:st=!1,disablePadding:lt=!1,subheader:ct}=rt,ut=_objectWithoutPropertiesLoose$g(rt,_excluded$Y),ht=reactExports.useMemo(()=>({dense:st}),[st]),dt=_extends$r({},rt,{component:at,dense:st,disablePadding:lt}),pt=useUtilityClasses$A(dt);return jsxRuntimeExports.jsx(ListContext$1.Provider,{value:ht,children:jsxRuntimeExports.jsxs(ListRoot,_extends$r({as:at,className:clsx(pt.root,ot),ref:nt,ownerState:dt},ut,{children:[ct,it]}))})}),List$1=List;function getListItemUtilityClass(tt){return generateUtilityClass("MuiListItem",tt)}const listItemClasses=generateUtilityClasses("MuiListItem",["root","container","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","padding","button","secondaryAction","selected"]),listItemClasses$1=listItemClasses,listItemButtonClasses=generateUtilityClasses("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]),listItemButtonClasses$1=listItemButtonClasses;function getListItemSecondaryActionClassesUtilityClass(tt){return generateUtilityClass("MuiListItemSecondaryAction",tt)}generateUtilityClasses("MuiListItemSecondaryAction",["root","disableGutters"]);const _excluded$X=["className"],useUtilityClasses$z=tt=>{const{disableGutters:et,classes:nt}=tt;return composeClasses({root:["root",et&&"disableGutters"]},getListItemSecondaryActionClassesUtilityClass,nt)},ListItemSecondaryActionRoot=styled$1("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.disableGutters&&et.disableGutters]}})(({ownerState:tt})=>_extends$r({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)"},tt.disableGutters&&{right:0})),ListItemSecondaryAction=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiListItemSecondaryAction"}),{className:it}=rt,ot=_objectWithoutPropertiesLoose$g(rt,_excluded$X),at=reactExports.useContext(ListContext$1),st=_extends$r({},rt,{disableGutters:at.disableGutters}),lt=useUtilityClasses$z(st);return jsxRuntimeExports.jsx(ListItemSecondaryActionRoot,_extends$r({className:clsx(lt.root,it),ownerState:st,ref:nt},ot))});ListItemSecondaryAction.muiName="ListItemSecondaryAction";const ListItemSecondaryAction$1=ListItemSecondaryAction,_excluded$W=["className"],_excluded2$9=["alignItems","autoFocus","button","children","className","component","components","componentsProps","ContainerComponent","ContainerProps","dense","disabled","disableGutters","disablePadding","divider","focusVisibleClassName","secondaryAction","selected","slotProps","slots"],overridesResolver$2=(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.dense&&et.dense,nt.alignItems==="flex-start"&&et.alignItemsFlexStart,nt.divider&&et.divider,!nt.disableGutters&&et.gutters,!nt.disablePadding&&et.padding,nt.button&&et.button,nt.hasSecondaryAction&&et.secondaryAction]},useUtilityClasses$y=tt=>{const{alignItems:et,button:nt,classes:rt,dense:it,disabled:ot,disableGutters:at,disablePadding:st,divider:lt,hasSecondaryAction:ct,selected:ut}=tt;return composeClasses({root:["root",it&&"dense",!at&&"gutters",!st&&"padding",lt&&"divider",ot&&"disabled",nt&&"button",et==="flex-start"&&"alignItemsFlexStart",ct&&"secondaryAction",ut&&"selected"],container:["container"]},getListItemUtilityClass,rt)},ListItemRoot=styled$1("div",{name:"MuiListItem",slot:"Root",overridesResolver:overridesResolver$2})(({theme:tt,ownerState:et})=>_extends$r({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left"},!et.disablePadding&&_extends$r({paddingTop:8,paddingBottom:8},et.dense&&{paddingTop:4,paddingBottom:4},!et.disableGutters&&{paddingLeft:16,paddingRight:16},!!et.secondaryAction&&{paddingRight:48}),!!et.secondaryAction&&{[`& > .${listItemButtonClasses$1.root}`]:{paddingRight:48}},{[`&.${listItemClasses$1.focusVisible}`]:{backgroundColor:(tt.vars||tt).palette.action.focus},[`&.${listItemClasses$1.selected}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.selectedOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity),[`&.${listItemClasses$1.focusVisible}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.focusOpacity}))`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity+tt.palette.action.focusOpacity)}},[`&.${listItemClasses$1.disabled}`]:{opacity:(tt.vars||tt).palette.action.disabledOpacity}},et.alignItems==="flex-start"&&{alignItems:"flex-start"},et.divider&&{borderBottom:`1px solid ${(tt.vars||tt).palette.divider}`,backgroundClip:"padding-box"},et.button&&{transition:tt.transitions.create("background-color",{duration:tt.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(tt.vars||tt).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${listItemClasses$1.selected}:hover`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.hoverOpacity}))`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity+tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.selectedOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity)}}},et.hasSecondaryAction&&{paddingRight:48})),ListItemContainer=styled$1("li",{name:"MuiListItem",slot:"Container",overridesResolver:(tt,et)=>et.container})({position:"relative"}),ListItem=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiListItem"}),{alignItems:it="center",autoFocus:ot=!1,button:at=!1,children:st,className:lt,component:ct,components:ut={},componentsProps:ht={},ContainerComponent:dt="li",ContainerProps:{className:pt}={},dense:mt=!1,disabled:gt=!1,disableGutters:yt=!1,disablePadding:bt=!1,divider:wt=!1,focusVisibleClassName:vt,secondaryAction:kt,selected:St=!1,slotProps:Tt={},slots:At={}}=rt,Et=_objectWithoutPropertiesLoose$g(rt.ContainerProps,_excluded$W),Mt=_objectWithoutPropertiesLoose$g(rt,_excluded2$9),Lt=reactExports.useContext(ListContext$1),jt=reactExports.useMemo(()=>({dense:mt||Lt.dense||!1,alignItems:it,disableGutters:yt}),[it,Lt.dense,mt,yt]),Rt=reactExports.useRef(null);useEnhancedEffect$1(()=>{ot&&Rt.current&&Rt.current.focus()},[ot]);const $t=reactExports.Children.toArray(st),xt=$t.length&&isMuiElement($t[$t.length-1],["ListItemSecondaryAction"]),It=_extends$r({},rt,{alignItems:it,autoFocus:ot,button:at,dense:jt.dense,disabled:gt,disableGutters:yt,disablePadding:bt,divider:wt,hasSecondaryAction:xt,selected:St}),Ot=useUtilityClasses$y(It),zt=useForkRef(Rt,nt),Ut=At.root||ut.Root||ListItemRoot,Wt=Tt.root||ht.root||{},Ft=_extends$r({className:clsx(Ot.root,Wt.className,lt),disabled:gt},Mt);let Nt=ct||"li";return at&&(Ft.component=ct||"div",Ft.focusVisibleClassName=clsx(listItemClasses$1.focusVisible,vt),Nt=ButtonBase$1),xt?(Nt=!Ft.component&&!ct?"div":Nt,dt==="li"&&(Nt==="li"?Nt="div":Ft.component==="li"&&(Ft.component="div")),jsxRuntimeExports.jsx(ListContext$1.Provider,{value:jt,children:jsxRuntimeExports.jsxs(ListItemContainer,_extends$r({as:dt,className:clsx(Ot.container,pt),ref:zt,ownerState:It},Et,{children:[jsxRuntimeExports.jsx(Ut,_extends$r({},Wt,!isHostComponent(Ut)&&{as:Nt,ownerState:_extends$r({},It,Wt.ownerState)},Ft,{children:$t})),$t.pop()]}))})):jsxRuntimeExports.jsx(ListContext$1.Provider,{value:jt,children:jsxRuntimeExports.jsxs(Ut,_extends$r({},Wt,{as:Nt,ref:zt},!isHostComponent(Ut)&&{ownerState:_extends$r({},It,Wt.ownerState)},Ft,{children:[$t,kt&&jsxRuntimeExports.jsx(ListItemSecondaryAction$1,{children:kt})]}))})}),ListItem$1=ListItem,listItemIconClasses=generateUtilityClasses("MuiListItemIcon",["root","alignItemsFlexStart"]),listItemIconClasses$1=listItemIconClasses,listItemTextClasses=generateUtilityClasses("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),listItemTextClasses$1=listItemTextClasses,_excluded$V=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function nextItem$1(tt,et,nt){return tt===et?tt.firstChild:et&&et.nextElementSibling?et.nextElementSibling:nt?null:tt.firstChild}function previousItem$1(tt,et,nt){return tt===et?nt?tt.firstChild:tt.lastChild:et&&et.previousElementSibling?et.previousElementSibling:nt?null:tt.lastChild}function textCriteriaMatches(tt,et){if(et===void 0)return!0;let nt=tt.innerText;return nt===void 0&&(nt=tt.textContent),nt=nt.trim().toLowerCase(),nt.length===0?!1:et.repeating?nt[0]===et.keys[0]:nt.indexOf(et.keys.join(""))===0}function moveFocus$1(tt,et,nt,rt,it,ot){let at=!1,st=it(tt,et,et?nt:!1);for(;st;){if(st===tt.firstChild){if(at)return!1;at=!0}const lt=rt?!1:st.disabled||st.getAttribute("aria-disabled")==="true";if(!st.hasAttribute("tabindex")||!textCriteriaMatches(st,ot)||lt)st=it(tt,st,nt);else return st.focus(),!0}return!1}const MenuList=reactExports.forwardRef(function(et,nt){const{actions:rt,autoFocus:it=!1,autoFocusItem:ot=!1,children:at,className:st,disabledItemsFocusable:lt=!1,disableListWrap:ct=!1,onKeyDown:ut,variant:ht="selectedMenu"}=et,dt=_objectWithoutPropertiesLoose$g(et,_excluded$V),pt=reactExports.useRef(null),mt=reactExports.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});useEnhancedEffect$1(()=>{it&&pt.current.focus()},[it]),reactExports.useImperativeHandle(rt,()=>({adjustStyleForScrollbar:(vt,kt)=>{const St=!pt.current.style.width;if(vt.clientHeight{const kt=pt.current,St=vt.key,Tt=ownerDocument(kt).activeElement;if(St==="ArrowDown")vt.preventDefault(),moveFocus$1(kt,Tt,ct,lt,nextItem$1);else if(St==="ArrowUp")vt.preventDefault(),moveFocus$1(kt,Tt,ct,lt,previousItem$1);else if(St==="Home")vt.preventDefault(),moveFocus$1(kt,null,ct,lt,nextItem$1);else if(St==="End")vt.preventDefault(),moveFocus$1(kt,null,ct,lt,previousItem$1);else if(St.length===1){const At=mt.current,Et=St.toLowerCase(),Mt=performance.now();At.keys.length>0&&(Mt-At.lastTime>500?(At.keys=[],At.repeating=!0,At.previousKeyMatched=!0):At.repeating&&Et!==At.keys[0]&&(At.repeating=!1)),At.lastTime=Mt,At.keys.push(Et);const Lt=Tt&&!At.repeating&&textCriteriaMatches(Tt,At);At.previousKeyMatched&&(Lt||moveFocus$1(kt,Tt,!1,lt,nextItem$1,At))?vt.preventDefault():At.previousKeyMatched=!1}ut&&ut(vt)},yt=useForkRef(pt,nt);let bt=-1;reactExports.Children.forEach(at,(vt,kt)=>{if(!reactExports.isValidElement(vt)){bt===kt&&(bt+=1,bt>=at.length&&(bt=-1));return}vt.props.disabled||(ht==="selectedMenu"&&vt.props.selected||bt===-1)&&(bt=kt),bt===kt&&(vt.props.disabled||vt.props.muiSkipListHighlight||vt.type.muiSkipListHighlight)&&(bt+=1,bt>=at.length&&(bt=-1))});const wt=reactExports.Children.map(at,(vt,kt)=>{if(kt===bt){const St={};return ot&&(St.autoFocus=!0),vt.props.tabIndex===void 0&&ht==="selectedMenu"&&(St.tabIndex=0),reactExports.cloneElement(vt,St)}return vt});return jsxRuntimeExports.jsx(List$1,_extends$r({role:"menu",ref:yt,className:st,onKeyDown:gt,tabIndex:it?0:-1},dt,{children:wt}))}),MenuList$1=MenuList;function getPopoverUtilityClass(tt){return generateUtilityClass("MuiPopover",tt)}generateUtilityClasses("MuiPopover",["root","paper"]);const _excluded$U=["onEntering"],_excluded2$8=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","slots","slotProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"],_excluded3$4=["slotProps"];function getOffsetTop(tt,et){let nt=0;return typeof et=="number"?nt=et:et==="center"?nt=tt.height/2:et==="bottom"&&(nt=tt.height),nt}function getOffsetLeft(tt,et){let nt=0;return typeof et=="number"?nt=et:et==="center"?nt=tt.width/2:et==="right"&&(nt=tt.width),nt}function getTransformOriginValue(tt){return[tt.horizontal,tt.vertical].map(et=>typeof et=="number"?`${et}px`:et).join(" ")}function resolveAnchorEl(tt){return typeof tt=="function"?tt():tt}const useUtilityClasses$x=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],paper:["paper"]},getPopoverUtilityClass,et)},PopoverRoot=styled$1(Modal$1,{name:"MuiPopover",slot:"Root",overridesResolver:(tt,et)=>et.root})({}),PopoverPaper=styled$1(Paper$1,{name:"MuiPopover",slot:"Paper",overridesResolver:(tt,et)=>et.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),Popover=reactExports.forwardRef(function(et,nt){var rt,it,ot;const at=useThemeProps({props:et,name:"MuiPopover"}),{action:st,anchorEl:lt,anchorOrigin:ct={vertical:"top",horizontal:"left"},anchorPosition:ut,anchorReference:ht="anchorEl",children:dt,className:pt,container:mt,elevation:gt=8,marginThreshold:yt=16,open:bt,PaperProps:wt={},slots:vt,slotProps:kt,transformOrigin:St={vertical:"top",horizontal:"left"},TransitionComponent:Tt=Grow$1,transitionDuration:At="auto",TransitionProps:{onEntering:Et}={}}=at,Mt=_objectWithoutPropertiesLoose$g(at.TransitionProps,_excluded$U),Lt=_objectWithoutPropertiesLoose$g(at,_excluded2$8),jt=(rt=kt==null?void 0:kt.paper)!=null?rt:wt,Rt=reactExports.useRef(),$t=useForkRef(Rt,jt.ref),xt=_extends$r({},at,{anchorOrigin:ct,anchorReference:ht,elevation:gt,marginThreshold:yt,externalPaperSlotProps:jt,transformOrigin:St,TransitionComponent:Tt,transitionDuration:At,TransitionProps:Mt}),It=useUtilityClasses$x(xt),Ot=reactExports.useCallback(()=>{if(ht==="anchorPosition")return ut;const en=resolveAnchorEl(lt),Rn=(en&&en.nodeType===1?en:ownerDocument(Rt.current).body).getBoundingClientRect();return{top:Rn.top+getOffsetTop(Rn,ct.vertical),left:Rn.left+getOffsetLeft(Rn,ct.horizontal)}},[lt,ct.horizontal,ct.vertical,ut,ht]),zt=reactExports.useCallback(en=>({vertical:getOffsetTop(en,St.vertical),horizontal:getOffsetLeft(en,St.horizontal)}),[St.horizontal,St.vertical]),Ut=reactExports.useCallback(en=>{const Tn={width:en.offsetWidth,height:en.offsetHeight},Rn=zt(Tn);if(ht==="none")return{top:null,left:null,transformOrigin:getTransformOriginValue(Rn)};const An=Ot();let yn=An.top-Rn.vertical,kn=An.left-Rn.horizontal;const dn=yn+Tn.height,gn=kn+Tn.width,Cn=ownerWindow(resolveAnchorEl(lt)),$n=Cn.innerHeight-yt,un=Cn.innerWidth-yt;if(yn$n){const rn=dn-$n;yn-=rn,Rn.vertical+=rn}if(knun){const rn=gn-un;kn-=rn,Rn.horizontal+=rn}return{top:`${Math.round(yn)}px`,left:`${Math.round(kn)}px`,transformOrigin:getTransformOriginValue(Rn)}},[lt,ht,Ot,zt,yt]),[Wt,Ft]=reactExports.useState(bt),Nt=reactExports.useCallback(()=>{const en=Rt.current;if(!en)return;const Tn=Ut(en);Tn.top!==null&&(en.style.top=Tn.top),Tn.left!==null&&(en.style.left=Tn.left),en.style.transformOrigin=Tn.transformOrigin,Ft(!0)},[Ut]),Ct=(en,Tn)=>{Et&&Et(en,Tn),Nt()},Ht=()=>{Ft(!1)};reactExports.useEffect(()=>{bt&&Nt()}),reactExports.useImperativeHandle(st,()=>bt?{updatePosition:()=>{Nt()}}:null,[bt,Nt]),reactExports.useEffect(()=>{if(!bt)return;const en=debounce$5(()=>{Nt()}),Tn=ownerWindow(lt);return Tn.addEventListener("resize",en),()=>{en.clear(),Tn.removeEventListener("resize",en)}},[lt,bt,Nt]);let Jt=At;At==="auto"&&!Tt.muiSupportAuto&&(Jt=void 0);const nn=mt||(lt?ownerDocument(resolveAnchorEl(lt)).body:void 0),Yt=(it=vt==null?void 0:vt.root)!=null?it:PopoverRoot,fn=(ot=vt==null?void 0:vt.paper)!=null?ot:PopoverPaper,cn=useSlotProps({elementType:fn,externalSlotProps:_extends$r({},jt,{style:Wt?jt.style:_extends$r({},jt.style,{opacity:0})}),additionalProps:{elevation:gt,ref:$t},ownerState:xt,className:clsx(It.paper,jt==null?void 0:jt.className)}),_n=useSlotProps({elementType:Yt,externalSlotProps:(kt==null?void 0:kt.root)||{},externalForwardedProps:Lt,additionalProps:{ref:nt,slotProps:{backdrop:{invisible:!0}},container:nn,open:bt},ownerState:xt,className:clsx(It.root,pt)}),{slotProps:En}=_n,an=_objectWithoutPropertiesLoose$g(_n,_excluded3$4);return jsxRuntimeExports.jsx(Yt,_extends$r({},an,!isHostComponent(Yt)&&{slotProps:En},{children:jsxRuntimeExports.jsx(Tt,_extends$r({appear:!0,in:bt,onEntering:Ct,onExited:Ht,timeout:Jt},Mt,{children:jsxRuntimeExports.jsx(fn,_extends$r({},cn,{children:dt}))}))}))}),Popover$1=Popover;function getMenuUtilityClass(tt){return generateUtilityClass("MuiMenu",tt)}generateUtilityClasses("MuiMenu",["root","paper","list"]);const _excluded$T=["onEntering"],_excluded2$7=["autoFocus","children","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant"],RTL_ORIGIN={vertical:"top",horizontal:"right"},LTR_ORIGIN={vertical:"top",horizontal:"left"},useUtilityClasses$w=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],paper:["paper"],list:["list"]},getMenuUtilityClass,et)},MenuRoot=styled$1(Popover$1,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(tt,et)=>et.root})({}),MenuPaper=styled$1(PopoverPaper,{name:"MuiMenu",slot:"Paper",overridesResolver:(tt,et)=>et.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),MenuMenuList=styled$1(MenuList$1,{name:"MuiMenu",slot:"List",overridesResolver:(tt,et)=>et.list})({outline:0}),Menu=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiMenu"}),{autoFocus:it=!0,children:ot,disableAutoFocusItem:at=!1,MenuListProps:st={},onClose:lt,open:ct,PaperProps:ut={},PopoverClasses:ht,transitionDuration:dt="auto",TransitionProps:{onEntering:pt}={},variant:mt="selectedMenu"}=rt,gt=_objectWithoutPropertiesLoose$g(rt.TransitionProps,_excluded$T),yt=_objectWithoutPropertiesLoose$g(rt,_excluded2$7),bt=useTheme(),wt=bt.direction==="rtl",vt=_extends$r({},rt,{autoFocus:it,disableAutoFocusItem:at,MenuListProps:st,onEntering:pt,PaperProps:ut,transitionDuration:dt,TransitionProps:gt,variant:mt}),kt=useUtilityClasses$w(vt),St=it&&!at&&ct,Tt=reactExports.useRef(null),At=(Lt,jt)=>{Tt.current&&Tt.current.adjustStyleForScrollbar(Lt,bt),pt&&pt(Lt,jt)},Et=Lt=>{Lt.key==="Tab"&&(Lt.preventDefault(),lt&<(Lt,"tabKeyDown"))};let Mt=-1;return reactExports.Children.map(ot,(Lt,jt)=>{reactExports.isValidElement(Lt)&&(Lt.props.disabled||(mt==="selectedMenu"&&Lt.props.selected||Mt===-1)&&(Mt=jt))}),jsxRuntimeExports.jsx(MenuRoot,_extends$r({onClose:lt,anchorOrigin:{vertical:"bottom",horizontal:wt?"right":"left"},transformOrigin:wt?RTL_ORIGIN:LTR_ORIGIN,slots:{paper:MenuPaper},slotProps:{paper:_extends$r({},ut,{classes:_extends$r({},ut.classes,{root:kt.paper})})},className:kt.root,open:ct,ref:nt,transitionDuration:dt,TransitionProps:_extends$r({onEntering:At},gt),ownerState:vt},yt,{classes:ht,children:jsxRuntimeExports.jsx(MenuMenuList,_extends$r({onKeyDown:Et,actions:Tt,autoFocus:it&&(Mt===-1||at),autoFocusItem:St,variant:mt},st,{className:clsx(kt.list,st.className),children:ot}))}))}),Menu$1=Menu;function getMenuItemUtilityClass(tt){return generateUtilityClass("MuiMenuItem",tt)}const menuItemClasses=generateUtilityClasses("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),menuItemClasses$1=menuItemClasses,_excluded$S=["autoFocus","component","dense","divider","disableGutters","focusVisibleClassName","role","tabIndex","className"],overridesResolver$1=(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.dense&&et.dense,nt.divider&&et.divider,!nt.disableGutters&&et.gutters]},useUtilityClasses$v=tt=>{const{disabled:et,dense:nt,divider:rt,disableGutters:it,selected:ot,classes:at}=tt,lt=composeClasses({root:["root",nt&&"dense",et&&"disabled",!it&&"gutters",rt&&"divider",ot&&"selected"]},getMenuItemUtilityClass,at);return _extends$r({},at,lt)},MenuItemRoot=styled$1(ButtonBase$1,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:overridesResolver$1})(({theme:tt,ownerState:et})=>_extends$r({},tt.typography.body1,{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap"},!et.disableGutters&&{paddingLeft:16,paddingRight:16},et.divider&&{borderBottom:`1px solid ${(tt.vars||tt).palette.divider}`,backgroundClip:"padding-box"},{"&:hover":{textDecoration:"none",backgroundColor:(tt.vars||tt).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${menuItemClasses$1.selected}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.selectedOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity),[`&.${menuItemClasses$1.focusVisible}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.focusOpacity}))`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity+tt.palette.action.focusOpacity)}},[`&.${menuItemClasses$1.selected}:hover`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.hoverOpacity}))`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity+tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.selectedOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity)}},[`&.${menuItemClasses$1.focusVisible}`]:{backgroundColor:(tt.vars||tt).palette.action.focus},[`&.${menuItemClasses$1.disabled}`]:{opacity:(tt.vars||tt).palette.action.disabledOpacity},[`& + .${dividerClasses$1.root}`]:{marginTop:tt.spacing(1),marginBottom:tt.spacing(1)},[`& + .${dividerClasses$1.inset}`]:{marginLeft:52},[`& .${listItemTextClasses$1.root}`]:{marginTop:0,marginBottom:0},[`& .${listItemTextClasses$1.inset}`]:{paddingLeft:36},[`& .${listItemIconClasses$1.root}`]:{minWidth:36}},!et.dense&&{[tt.breakpoints.up("sm")]:{minHeight:"auto"}},et.dense&&_extends$r({minHeight:32,paddingTop:4,paddingBottom:4},tt.typography.body2,{[`& .${listItemIconClasses$1.root} svg`]:{fontSize:"1.25rem"}}))),MenuItem=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiMenuItem"}),{autoFocus:it=!1,component:ot="li",dense:at=!1,divider:st=!1,disableGutters:lt=!1,focusVisibleClassName:ct,role:ut="menuitem",tabIndex:ht,className:dt}=rt,pt=_objectWithoutPropertiesLoose$g(rt,_excluded$S),mt=reactExports.useContext(ListContext$1),gt=reactExports.useMemo(()=>({dense:at||mt.dense||!1,disableGutters:lt}),[mt.dense,at,lt]),yt=reactExports.useRef(null);useEnhancedEffect$1(()=>{it&&yt.current&&yt.current.focus()},[it]);const bt=_extends$r({},rt,{dense:gt.dense,divider:st,disableGutters:lt}),wt=useUtilityClasses$v(rt),vt=useForkRef(yt,nt);let kt;return rt.disabled||(kt=ht!==void 0?ht:-1),jsxRuntimeExports.jsx(ListContext$1.Provider,{value:gt,children:jsxRuntimeExports.jsx(MenuItemRoot,_extends$r({ref:vt,role:ut,tabIndex:kt,component:ot,focusVisibleClassName:clsx(wt.focusVisible,ct),className:clsx(wt.root,dt)},pt,{ownerState:bt,classes:wt}))})}),MenuItem$1=MenuItem;function getNativeSelectUtilityClasses(tt){return generateUtilityClass("MuiNativeSelect",tt)}const nativeSelectClasses=generateUtilityClasses("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),nativeSelectClasses$1=nativeSelectClasses,_excluded$R=["className","disabled","error","IconComponent","inputRef","variant"],useUtilityClasses$u=tt=>{const{classes:et,variant:nt,disabled:rt,multiple:it,open:ot,error:at}=tt,st={select:["select",nt,rt&&"disabled",it&&"multiple",at&&"error"],icon:["icon",`icon${capitalize(nt)}`,ot&&"iconOpen",rt&&"disabled"]};return composeClasses(st,getNativeSelectUtilityClasses,et)},nativeSelectSelectStyles=({ownerState:tt,theme:et})=>_extends$r({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":_extends$r({},et.vars?{backgroundColor:`rgba(${et.vars.palette.common.onBackgroundChannel} / 0.05)`}:{backgroundColor:et.palette.mode==="light"?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"},{borderRadius:0}),"&::-ms-expand":{display:"none"},[`&.${nativeSelectClasses$1.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(et.vars||et).palette.background.paper},"&&&":{paddingRight:24,minWidth:16}},tt.variant==="filled"&&{"&&&":{paddingRight:32}},tt.variant==="outlined"&&{borderRadius:(et.vars||et).shape.borderRadius,"&:focus":{borderRadius:(et.vars||et).shape.borderRadius},"&&&":{paddingRight:32}}),NativeSelectSelect=styled$1("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:rootShouldForwardProp,overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.select,et[nt.variant],nt.error&&et.error,{[`&.${nativeSelectClasses$1.multiple}`]:et.multiple}]}})(nativeSelectSelectStyles),nativeSelectIconStyles=({ownerState:tt,theme:et})=>_extends$r({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(et.vars||et).palette.action.active,[`&.${nativeSelectClasses$1.disabled}`]:{color:(et.vars||et).palette.action.disabled}},tt.open&&{transform:"rotate(180deg)"},tt.variant==="filled"&&{right:7},tt.variant==="outlined"&&{right:7}),NativeSelectIcon=styled$1("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.icon,nt.variant&&et[`icon${capitalize(nt.variant)}`],nt.open&&et.iconOpen]}})(nativeSelectIconStyles),NativeSelectInput=reactExports.forwardRef(function(et,nt){const{className:rt,disabled:it,error:ot,IconComponent:at,inputRef:st,variant:lt="standard"}=et,ct=_objectWithoutPropertiesLoose$g(et,_excluded$R),ut=_extends$r({},et,{disabled:it,variant:lt,error:ot}),ht=useUtilityClasses$u(ut);return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(NativeSelectSelect,_extends$r({ownerState:ut,className:clsx(ht.select,rt),disabled:it,ref:st||nt},ct)),et.multiple?null:jsxRuntimeExports.jsx(NativeSelectIcon,{as:at,ownerState:ut,className:ht.icon})]})}),NativeSelectInput$1=NativeSelectInput;var _span$1;const _excluded$Q=["children","classes","className","label","notched"],NotchedOutlineRoot$1=styled$1("fieldset")({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),NotchedOutlineLegend=styled$1("legend")(({ownerState:tt,theme:et})=>_extends$r({float:"unset",width:"auto",overflow:"hidden"},!tt.withLabel&&{padding:0,lineHeight:"11px",transition:et.transitions.create("width",{duration:150,easing:et.transitions.easing.easeOut})},tt.withLabel&&_extends$r({display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:et.transitions.create("max-width",{duration:50,easing:et.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},tt.notched&&{maxWidth:"100%",transition:et.transitions.create("max-width",{duration:100,easing:et.transitions.easing.easeOut,delay:50})})));function NotchedOutline(tt){const{className:et,label:nt,notched:rt}=tt,it=_objectWithoutPropertiesLoose$g(tt,_excluded$Q),ot=nt!=null&&nt!=="",at=_extends$r({},tt,{notched:rt,withLabel:ot});return jsxRuntimeExports.jsx(NotchedOutlineRoot$1,_extends$r({"aria-hidden":!0,className:et,ownerState:at},it,{children:jsxRuntimeExports.jsx(NotchedOutlineLegend,{ownerState:at,children:ot?jsxRuntimeExports.jsx("span",{children:nt}):_span$1||(_span$1=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"}))})}))}const _excluded$P=["components","fullWidth","inputComponent","label","multiline","notched","slots","type"],useUtilityClasses$t=tt=>{const{classes:et}=tt,rt=composeClasses({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},getOutlinedInputUtilityClass,et);return _extends$r({},et,rt)},OutlinedInputRoot=styled$1(InputBaseRoot,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:rootOverridesResolver})(({theme:tt,ownerState:et})=>{const nt=tt.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return _extends$r({position:"relative",borderRadius:(tt.vars||tt).shape.borderRadius,[`&:hover .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(tt.vars||tt).palette.text.primary},"@media (hover: none)":{[`&:hover .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:tt.vars?`rgba(${tt.vars.palette.common.onBackgroundChannel} / 0.23)`:nt}},[`&.${outlinedInputClasses$1.focused} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(tt.vars||tt).palette[et.color].main,borderWidth:2},[`&.${outlinedInputClasses$1.error} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(tt.vars||tt).palette.error.main},[`&.${outlinedInputClasses$1.disabled} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(tt.vars||tt).palette.action.disabled}},et.startAdornment&&{paddingLeft:14},et.endAdornment&&{paddingRight:14},et.multiline&&_extends$r({padding:"16.5px 14px"},et.size==="small"&&{padding:"8.5px 14px"}))}),NotchedOutlineRoot=styled$1(NotchedOutline,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(tt,et)=>et.notchedOutline})(({theme:tt})=>{const et=tt.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:tt.vars?`rgba(${tt.vars.palette.common.onBackgroundChannel} / 0.23)`:et}}),OutlinedInputInput=styled$1(InputBaseComponent,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:tt,ownerState:et})=>_extends$r({padding:"16.5px 14px"},!tt.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:tt.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:tt.palette.mode==="light"?null:"#fff",caretColor:tt.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},tt.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[tt.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},et.size==="small"&&{padding:"8.5px 14px"},et.multiline&&{padding:0},et.startAdornment&&{paddingLeft:0},et.endAdornment&&{paddingRight:0})),OutlinedInput=reactExports.forwardRef(function(et,nt){var rt,it,ot,at,st;const lt=useThemeProps({props:et,name:"MuiOutlinedInput"}),{components:ct={},fullWidth:ut=!1,inputComponent:ht="input",label:dt,multiline:pt=!1,notched:mt,slots:gt={},type:yt="text"}=lt,bt=_objectWithoutPropertiesLoose$g(lt,_excluded$P),wt=useUtilityClasses$t(lt),vt=useFormControl(),kt=formControlState({props:lt,muiFormControl:vt,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),St=_extends$r({},lt,{color:kt.color||"primary",disabled:kt.disabled,error:kt.error,focused:kt.focused,formControl:vt,fullWidth:ut,hiddenLabel:kt.hiddenLabel,multiline:pt,size:kt.size,type:yt}),Tt=(rt=(it=gt.root)!=null?it:ct.Root)!=null?rt:OutlinedInputRoot,At=(ot=(at=gt.input)!=null?at:ct.Input)!=null?ot:OutlinedInputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends$r({slots:{root:Tt,input:At},renderSuffix:Et=>jsxRuntimeExports.jsx(NotchedOutlineRoot,{ownerState:St,className:wt.notchedOutline,label:dt!=null&&dt!==""&&kt.required?st||(st=jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[dt," ","*"]})):dt,notched:typeof mt<"u"?mt:!!(Et.startAdornment||Et.filled||Et.focused)}),fullWidth:ut,inputComponent:ht,multiline:pt,ref:nt,type:yt},bt,{classes:_extends$r({},wt,{notchedOutline:null})}))});OutlinedInput.muiName="Input";const OutlinedInput$1=OutlinedInput;function getSelectUtilityClasses(tt){return generateUtilityClass("MuiSelect",tt)}const selectClasses=generateUtilityClasses("MuiSelect",["select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),selectClasses$1=selectClasses;var _span;const _excluded$O=["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","error","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"],SelectSelect=styled$1("div",{name:"MuiSelect",slot:"Select",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[{[`&.${selectClasses$1.select}`]:et.select},{[`&.${selectClasses$1.select}`]:et[nt.variant]},{[`&.${selectClasses$1.error}`]:et.error},{[`&.${selectClasses$1.multiple}`]:et.multiple}]}})(nativeSelectSelectStyles,{[`&.${selectClasses$1.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),SelectIcon=styled$1("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.icon,nt.variant&&et[`icon${capitalize(nt.variant)}`],nt.open&&et.iconOpen]}})(nativeSelectIconStyles),SelectNativeInput=styled$1("input",{shouldForwardProp:tt=>slotShouldForwardProp(tt)&&tt!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(tt,et)=>et.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function areEqualValues(tt,et){return typeof et=="object"&&et!==null?tt===et:String(tt)===String(et)}function isEmpty(tt){return tt==null||typeof tt=="string"&&!tt.trim()}const useUtilityClasses$s=tt=>{const{classes:et,variant:nt,disabled:rt,multiple:it,open:ot,error:at}=tt,st={select:["select",nt,rt&&"disabled",it&&"multiple",at&&"error"],icon:["icon",`icon${capitalize(nt)}`,ot&&"iconOpen",rt&&"disabled"],nativeInput:["nativeInput"]};return composeClasses(st,getSelectUtilityClasses,et)},SelectInput=reactExports.forwardRef(function(et,nt){const{"aria-describedby":rt,"aria-label":it,autoFocus:ot,autoWidth:at,children:st,className:lt,defaultOpen:ct,defaultValue:ut,disabled:ht,displayEmpty:dt,error:pt=!1,IconComponent:mt,inputRef:gt,labelId:yt,MenuProps:bt={},multiple:wt,name:vt,onBlur:kt,onChange:St,onClose:Tt,onFocus:At,onOpen:Et,open:Mt,readOnly:Lt,renderValue:jt,SelectDisplayProps:Rt={},tabIndex:$t,value:xt,variant:It="standard"}=et,Ot=_objectWithoutPropertiesLoose$g(et,_excluded$O),[zt,Ut]=useControlled({controlled:xt,default:ut,name:"Select"}),[Wt,Ft]=useControlled({controlled:Mt,default:ct,name:"Select"}),Nt=reactExports.useRef(null),Ct=reactExports.useRef(null),[Ht,Jt]=reactExports.useState(null),{current:nn}=reactExports.useRef(Mt!=null),[Yt,fn]=reactExports.useState(),cn=useForkRef(nt,gt),_n=reactExports.useCallback(wn=>{Ct.current=wn,wn&&Jt(wn)},[]),En=Ht==null?void 0:Ht.parentNode;reactExports.useImperativeHandle(cn,()=>({focus:()=>{Ct.current.focus()},node:Nt.current,value:zt}),[zt]),reactExports.useEffect(()=>{ct&&Wt&&Ht&&!nn&&(fn(at?null:En.clientWidth),Ct.current.focus())},[Ht,at]),reactExports.useEffect(()=>{ot&&Ct.current.focus()},[ot]),reactExports.useEffect(()=>{if(!yt)return;const wn=ownerDocument(Ct.current).getElementById(yt);if(wn){const On=()=>{getSelection().isCollapsed&&Ct.current.focus()};return wn.addEventListener("click",On),()=>{wn.removeEventListener("click",On)}}},[yt]);const an=(wn,On)=>{wn?Et&&Et(On):Tt&&Tt(On),nn||(fn(at?null:En.clientWidth),Ft(wn))},en=wn=>{wn.button===0&&(wn.preventDefault(),Ct.current.focus(),an(!0,wn))},Tn=wn=>{an(!1,wn)},Rn=reactExports.Children.toArray(st),An=wn=>{const On=Rn.find(jn=>jn.props.value===wn.target.value);On!==void 0&&(Ut(On.props.value),St&&St(wn,On))},yn=wn=>On=>{let jn;if(On.currentTarget.hasAttribute("tabindex")){if(wt){jn=Array.isArray(zt)?zt.slice():[];const Un=zt.indexOf(wn.props.value);Un===-1?jn.push(wn.props.value):jn.splice(Un,1)}else jn=wn.props.value;if(wn.props.onClick&&wn.props.onClick(On),zt!==jn&&(Ut(jn),St)){const Un=On.nativeEvent||On,tr=new Un.constructor(Un.type,Un);Object.defineProperty(tr,"target",{writable:!0,value:{value:jn,name:vt}}),St(tr,wn)}wt||an(!1,On)}},kn=wn=>{Lt||[" ","ArrowUp","ArrowDown","Enter"].indexOf(wn.key)!==-1&&(wn.preventDefault(),an(!0,wn))},dn=Ht!==null&&Wt,gn=wn=>{!dn&&kt&&(Object.defineProperty(wn,"target",{writable:!0,value:{value:zt,name:vt}}),kt(wn))};delete Ot["aria-invalid"];let Cn,$n;const un=[];let rn=!1;(isFilled({value:zt})||dt)&&(jt?Cn=jt(zt):rn=!0);const Sn=Rn.map(wn=>{if(!reactExports.isValidElement(wn))return null;let On;if(wt){if(!Array.isArray(zt))throw new Error(formatMuiErrorMessage(2));On=zt.some(jn=>areEqualValues(jn,wn.props.value)),On&&rn&&un.push(wn.props.children)}else On=areEqualValues(zt,wn.props.value),On&&rn&&($n=wn.props.children);return reactExports.cloneElement(wn,{"aria-selected":On?"true":"false",onClick:yn(wn),onKeyUp:jn=>{jn.key===" "&&jn.preventDefault(),wn.props.onKeyUp&&wn.props.onKeyUp(jn)},role:"option",selected:On,value:void 0,"data-value":wn.props.value})});rn&&(wt?un.length===0?Cn=null:Cn=un.reduce((wn,On,jn)=>(wn.push(On),jn{const{classes:et}=tt;return et},styledRootConfig={name:"MuiSelect",overridesResolver:(tt,et)=>et.root,shouldForwardProp:tt=>rootShouldForwardProp(tt)&&tt!=="variant",slot:"Root"},StyledInput$1=styled$1(Input$3,styledRootConfig)(""),StyledOutlinedInput=styled$1(OutlinedInput$1,styledRootConfig)(""),StyledFilledInput=styled$1(FilledInput$1,styledRootConfig)(""),Select$3=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({name:"MuiSelect",props:et}),{autoWidth:it=!1,children:ot,classes:at={},className:st,defaultOpen:lt=!1,displayEmpty:ct=!1,IconComponent:ut=ArrowDropDownIcon$1,id:ht,input:dt,inputProps:pt,label:mt,labelId:gt,MenuProps:yt,multiple:bt=!1,native:wt=!1,onClose:vt,onOpen:kt,open:St,renderValue:Tt,SelectDisplayProps:At,variant:Et="outlined"}=rt,Mt=_objectWithoutPropertiesLoose$g(rt,_excluded$N),Lt=wt?NativeSelectInput$1:SelectInput$1,jt=useFormControl(),Rt=formControlState({props:rt,muiFormControl:jt,states:["variant","error"]}),$t=Rt.variant||Et,xt=_extends$r({},rt,{variant:$t,classes:at}),It=useUtilityClasses$r(xt),Ot=dt||{standard:jsxRuntimeExports.jsx(StyledInput$1,{ownerState:xt}),outlined:jsxRuntimeExports.jsx(StyledOutlinedInput,{label:mt,ownerState:xt}),filled:jsxRuntimeExports.jsx(StyledFilledInput,{ownerState:xt})}[$t],zt=useForkRef(nt,Ot.ref);return jsxRuntimeExports.jsx(reactExports.Fragment,{children:reactExports.cloneElement(Ot,_extends$r({inputComponent:Lt,inputProps:_extends$r({children:ot,error:Rt.error,IconComponent:ut,variant:$t,type:void 0,multiple:bt},wt?{id:ht}:{autoWidth:it,defaultOpen:lt,displayEmpty:ct,labelId:gt,MenuProps:yt,onClose:vt,onOpen:kt,open:St,renderValue:Tt,SelectDisplayProps:_extends$r({id:ht},At)},pt,{classes:pt?deepmerge$1(It,pt.classes):It},dt?dt.props.inputProps:{})},bt&&wt&&$t==="outlined"?{notched:!0}:{},{ref:zt,className:clsx(Ot.props.className,st)},!dt&&{variant:$t},Mt))})});Select$3.muiName="Select";const Select$4=Select$3;function getSkeletonUtilityClass(tt){return generateUtilityClass("MuiSkeleton",tt)}generateUtilityClasses("MuiSkeleton",["root","text","rectangular","rounded","circular","pulse","wave","withChildren","fitContent","heightAuto"]);const _excluded$M=["animation","className","component","height","style","variant","width"];let _=tt=>tt,_t,_t2,_t3,_t4;const useUtilityClasses$q=tt=>{const{classes:et,variant:nt,animation:rt,hasChildren:it,width:ot,height:at}=tt;return composeClasses({root:["root",nt,rt,it&&"withChildren",it&&!ot&&"fitContent",it&&!at&&"heightAuto"]},getSkeletonUtilityClass,et)},pulseKeyframe=keyframes(_t||(_t=_` +`),touchRippleClasses$1.rippleVisible,enterKeyframe,DURATION,({theme:tt})=>tt.transitions.easing.easeInOut,touchRippleClasses$1.ripplePulsate,({theme:tt})=>tt.transitions.duration.shorter,touchRippleClasses$1.child,touchRippleClasses$1.childLeaving,exitKeyframe,DURATION,({theme:tt})=>tt.transitions.easing.easeInOut,touchRippleClasses$1.childPulsate,pulsateKeyframe,({theme:tt})=>tt.transitions.easing.easeInOut),TouchRipple=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTouchRipple"}),{center:it=!1,classes:ot={},className:at}=rt,st=_objectWithoutPropertiesLoose$g(rt,_excluded$1k),[lt,ct]=reactExports.useState([]),ut=reactExports.useRef(0),ht=reactExports.useRef(null);reactExports.useEffect(()=>{ht.current&&(ht.current(),ht.current=null)},[lt]);const dt=reactExports.useRef(!1),pt=reactExports.useRef(0),mt=reactExports.useRef(null),gt=reactExports.useRef(null);reactExports.useEffect(()=>()=>{pt.current&&clearTimeout(pt.current)},[]);const yt=reactExports.useCallback(kt=>{const{pulsate:St,rippleX:Et,rippleY:At,rippleSize:Tt,cb:Mt}=kt;ct(Lt=>[...Lt,jsxRuntimeExports.jsx(TouchRippleRipple,{classes:{ripple:clsx(ot.ripple,touchRippleClasses$1.ripple),rippleVisible:clsx(ot.rippleVisible,touchRippleClasses$1.rippleVisible),ripplePulsate:clsx(ot.ripplePulsate,touchRippleClasses$1.ripplePulsate),child:clsx(ot.child,touchRippleClasses$1.child),childLeaving:clsx(ot.childLeaving,touchRippleClasses$1.childLeaving),childPulsate:clsx(ot.childPulsate,touchRippleClasses$1.childPulsate)},timeout:DURATION,pulsate:St,rippleX:Et,rippleY:At,rippleSize:Tt},ut.current)]),ut.current+=1,ht.current=Mt},[ot]),bt=reactExports.useCallback((kt={},St={},Et=()=>{})=>{const{pulsate:At=!1,center:Tt=it||St.pulsate,fakeElement:Mt=!1}=St;if((kt==null?void 0:kt.type)==="mousedown"&&dt.current){dt.current=!1;return}(kt==null?void 0:kt.type)==="touchstart"&&(dt.current=!0);const Lt=Mt?null:gt.current,jt=Lt?Lt.getBoundingClientRect():{width:0,height:0,left:0,top:0};let Rt,$t,xt;if(Tt||kt===void 0||kt.clientX===0&&kt.clientY===0||!kt.clientX&&!kt.touches)Rt=Math.round(jt.width/2),$t=Math.round(jt.height/2);else{const{clientX:It,clientY:Ot}=kt.touches&&kt.touches.length>0?kt.touches[0]:kt;Rt=Math.round(It-jt.left),$t=Math.round(Ot-jt.top)}if(Tt)xt=Math.sqrt((2*jt.width**2+jt.height**2)/3),xt%2===0&&(xt+=1);else{const It=Math.max(Math.abs((Lt?Lt.clientWidth:0)-Rt),Rt)*2+2,Ot=Math.max(Math.abs((Lt?Lt.clientHeight:0)-$t),$t)*2+2;xt=Math.sqrt(It**2+Ot**2)}kt!=null&&kt.touches?mt.current===null&&(mt.current=()=>{yt({pulsate:At,rippleX:Rt,rippleY:$t,rippleSize:xt,cb:Et})},pt.current=setTimeout(()=>{mt.current&&(mt.current(),mt.current=null)},DELAY_RIPPLE)):yt({pulsate:At,rippleX:Rt,rippleY:$t,rippleSize:xt,cb:Et})},[it,yt]),wt=reactExports.useCallback(()=>{bt({},{pulsate:!0})},[bt]),vt=reactExports.useCallback((kt,St)=>{if(clearTimeout(pt.current),(kt==null?void 0:kt.type)==="touchend"&&mt.current){mt.current(),mt.current=null,pt.current=setTimeout(()=>{vt(kt,St)});return}mt.current=null,ct(Et=>Et.length>0?Et.slice(1):Et),ht.current=St},[]);return reactExports.useImperativeHandle(nt,()=>({pulsate:wt,start:bt,stop:vt}),[wt,bt,vt]),jsxRuntimeExports.jsx(TouchRippleRoot,_extends$r({className:clsx(touchRippleClasses$1.root,ot.root,at),ref:gt},st,{children:jsxRuntimeExports.jsx(TransitionGroup$1,{component:null,exit:!0,children:lt})}))}),TouchRipple$1=TouchRipple;function getButtonBaseUtilityClass(tt){return generateUtilityClass("MuiButtonBase",tt)}const buttonBaseClasses=generateUtilityClasses("MuiButtonBase",["root","disabled","focusVisible"]),buttonBaseClasses$1=buttonBaseClasses,_excluded$1j=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],useUtilityClasses$S=tt=>{const{disabled:et,focusVisible:nt,focusVisibleClassName:rt,classes:it}=tt,at=composeClasses({root:["root",et&&"disabled",nt&&"focusVisible"]},getButtonBaseUtilityClass,it);return nt&&rt&&(at.root+=` ${rt}`),at},ButtonBaseRoot=styled$1("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${buttonBaseClasses$1.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),ButtonBase=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiButtonBase"}),{action:it,centerRipple:ot=!1,children:at,className:st,component:lt="button",disabled:ct=!1,disableRipple:ut=!1,disableTouchRipple:ht=!1,focusRipple:dt=!1,LinkComponent:pt="a",onBlur:mt,onClick:gt,onContextMenu:yt,onDragLeave:bt,onFocus:wt,onFocusVisible:vt,onKeyDown:kt,onKeyUp:St,onMouseDown:Et,onMouseLeave:At,onMouseUp:Tt,onTouchEnd:Mt,onTouchMove:Lt,onTouchStart:jt,tabIndex:Rt=0,TouchRippleProps:$t,touchRippleRef:xt,type:It}=rt,Ot=_objectWithoutPropertiesLoose$g(rt,_excluded$1j),zt=reactExports.useRef(null),Ut=reactExports.useRef(null),Wt=useForkRef(Ut,xt),{isFocusVisibleRef:Ft,onFocus:Nt,onBlur:Ct,ref:Ht}=useIsFocusVisible(),[Jt,nn]=reactExports.useState(!1);ct&&Jt&&nn(!1),reactExports.useImperativeHandle(it,()=>({focusVisible:()=>{nn(!0),zt.current.focus()}}),[]);const[Yt,fn]=reactExports.useState(!1);reactExports.useEffect(()=>{fn(!0)},[]);const cn=Yt&&!ut&&!ct;reactExports.useEffect(()=>{Jt&&dt&&!ut&&Yt&&Ut.current.pulsate()},[ut,dt,Jt,Yt]);function _n(Zt,wn,On=ht){return useEventCallback(jn=>(wn&&wn(jn),!On&&Ut.current&&Ut.current[Zt](jn),!0))}const En=_n("start",Et),an=_n("stop",yt),en=_n("stop",bt),Tn=_n("stop",Tt),Rn=_n("stop",Zt=>{Jt&&Zt.preventDefault(),At&&At(Zt)}),An=_n("start",jt),yn=_n("stop",Mt),kn=_n("stop",Lt),dn=_n("stop",Zt=>{Ct(Zt),Ft.current===!1&&nn(!1),mt&&mt(Zt)},!1),gn=useEventCallback(Zt=>{zt.current||(zt.current=Zt.currentTarget),Nt(Zt),Ft.current===!0&&(nn(!0),vt&&vt(Zt)),wt&&wt(Zt)}),Cn=()=>{const Zt=zt.current;return lt&<!=="button"&&!(Zt.tagName==="A"&&Zt.href)},$n=reactExports.useRef(!1),un=useEventCallback(Zt=>{dt&&!$n.current&&Jt&&Ut.current&&Zt.key===" "&&($n.current=!0,Ut.current.stop(Zt,()=>{Ut.current.start(Zt)})),Zt.target===Zt.currentTarget&&Cn()&&Zt.key===" "&&Zt.preventDefault(),kt&&kt(Zt),Zt.target===Zt.currentTarget&&Cn()&&Zt.key==="Enter"&&!ct&&(Zt.preventDefault(),gt&>(Zt))}),rn=useEventCallback(Zt=>{dt&&Zt.key===" "&&Ut.current&&Jt&&!Zt.defaultPrevented&&($n.current=!1,Ut.current.stop(Zt,()=>{Ut.current.pulsate(Zt)})),St&&St(Zt),gt&&Zt.target===Zt.currentTarget&&Cn()&&Zt.key===" "&&!Zt.defaultPrevented&>(Zt)});let Sn=lt;Sn==="button"&&(Ot.href||Ot.to)&&(Sn=pt);const Mn={};Sn==="button"?(Mn.type=It===void 0?"button":It,Mn.disabled=ct):(!Ot.href&&!Ot.to&&(Mn.role="button"),ct&&(Mn["aria-disabled"]=ct));const Nn=useForkRef(nt,Ht,zt),hn=_extends$r({},rt,{centerRipple:ot,component:lt,disabled:ct,disableRipple:ut,disableTouchRipple:ht,focusRipple:dt,tabIndex:Rt,focusVisible:Jt}),Qt=useUtilityClasses$S(hn);return jsxRuntimeExports.jsxs(ButtonBaseRoot,_extends$r({as:Sn,className:clsx(Qt.root,st),ownerState:hn,onBlur:dn,onClick:gt,onContextMenu:an,onFocus:gn,onKeyDown:un,onKeyUp:rn,onMouseDown:En,onMouseLeave:Rn,onMouseUp:Tn,onDragLeave:en,onTouchEnd:yn,onTouchMove:kn,onTouchStart:An,ref:Nn,tabIndex:ct?-1:Rt,type:It},Mn,Ot,{children:[at,cn?jsxRuntimeExports.jsx(TouchRipple$1,_extends$r({ref:Wt,center:ot},$t)):null]}))}),ButtonBase$1=ButtonBase;function getIconButtonUtilityClass(tt){return generateUtilityClass("MuiIconButton",tt)}const iconButtonClasses=generateUtilityClasses("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge"]),iconButtonClasses$1=iconButtonClasses,_excluded$1i=["edge","children","className","color","disabled","disableFocusRipple","size"],useUtilityClasses$R=tt=>{const{classes:et,disabled:nt,color:rt,edge:it,size:ot}=tt,at={root:["root",nt&&"disabled",rt!=="default"&&`color${capitalize(rt)}`,it&&`edge${capitalize(it)}`,`size${capitalize(ot)}`]};return composeClasses(at,getIconButtonUtilityClass,et)},IconButtonRoot=styled$1(ButtonBase$1,{name:"MuiIconButton",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.color!=="default"&&et[`color${capitalize(nt.color)}`],nt.edge&&et[`edge${capitalize(nt.edge)}`],et[`size${capitalize(nt.size)}`]]}})(({theme:tt,ownerState:et})=>_extends$r({textAlign:"center",flex:"0 0 auto",fontSize:tt.typography.pxToRem(24),padding:8,borderRadius:"50%",overflow:"visible",color:(tt.vars||tt).palette.action.active,transition:tt.transitions.create("background-color",{duration:tt.transitions.duration.shortest})},!et.disableRipple&&{"&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.activeChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.action.active,tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},et.edge==="start"&&{marginLeft:et.size==="small"?-3:-12},et.edge==="end"&&{marginRight:et.size==="small"?-3:-12}),({theme:tt,ownerState:et})=>{var nt;const rt=(nt=(tt.vars||tt).palette)==null?void 0:nt[et.color];return _extends$r({},et.color==="inherit"&&{color:"inherit"},et.color!=="inherit"&&et.color!=="default"&&_extends$r({color:rt==null?void 0:rt.main},!et.disableRipple&&{"&:hover":_extends$r({},rt&&{backgroundColor:tt.vars?`rgba(${rt.mainChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(rt.main,tt.palette.action.hoverOpacity)},{"@media (hover: none)":{backgroundColor:"transparent"}})}),et.size==="small"&&{padding:5,fontSize:tt.typography.pxToRem(18)},et.size==="large"&&{padding:12,fontSize:tt.typography.pxToRem(28)},{[`&.${iconButtonClasses$1.disabled}`]:{backgroundColor:"transparent",color:(tt.vars||tt).palette.action.disabled}})}),IconButton$1=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiIconButton"}),{edge:it=!1,children:ot,className:at,color:st="default",disabled:lt=!1,disableFocusRipple:ct=!1,size:ut="medium"}=rt,ht=_objectWithoutPropertiesLoose$g(rt,_excluded$1i),dt=_extends$r({},rt,{edge:it,color:st,disabled:lt,disableFocusRipple:ct,size:ut}),pt=useUtilityClasses$R(dt);return jsxRuntimeExports.jsx(IconButtonRoot,_extends$r({className:clsx(pt.root,at),centerRipple:!0,focusRipple:!ct,disabled:lt,ref:nt,ownerState:dt},ht,{children:ot}))}),IconButton$2=IconButton$1;function getTypographyUtilityClass(tt){return generateUtilityClass("MuiTypography",tt)}generateUtilityClasses("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const _excluded$1h=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],useUtilityClasses$Q=tt=>{const{align:et,gutterBottom:nt,noWrap:rt,paragraph:it,variant:ot,classes:at}=tt,st={root:["root",ot,tt.align!=="inherit"&&`align${capitalize(et)}`,nt&&"gutterBottom",rt&&"noWrap",it&&"paragraph"]};return composeClasses(st,getTypographyUtilityClass,at)},TypographyRoot=styled$1("span",{name:"MuiTypography",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.variant&&et[nt.variant],nt.align!=="inherit"&&et[`align${capitalize(nt.align)}`],nt.noWrap&&et.noWrap,nt.gutterBottom&&et.gutterBottom,nt.paragraph&&et.paragraph]}})(({theme:tt,ownerState:et})=>_extends$r({margin:0},et.variant&&tt.typography[et.variant],et.align!=="inherit"&&{textAlign:et.align},et.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},et.gutterBottom&&{marginBottom:"0.35em"},et.paragraph&&{marginBottom:16})),defaultVariantMapping={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},colorTransformations={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},transformDeprecatedColors=tt=>colorTransformations[tt]||tt,Typography=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTypography"}),it=transformDeprecatedColors(rt.color),ot=extendSxProp(_extends$r({},rt,{color:it})),{align:at="inherit",className:st,component:lt,gutterBottom:ct=!1,noWrap:ut=!1,paragraph:ht=!1,variant:dt="body1",variantMapping:pt=defaultVariantMapping}=ot,mt=_objectWithoutPropertiesLoose$g(ot,_excluded$1h),gt=_extends$r({},ot,{align:at,color:it,className:st,component:lt,gutterBottom:ct,noWrap:ut,paragraph:ht,variant:dt,variantMapping:pt}),yt=lt||(ht?"p":pt[dt]||defaultVariantMapping[dt])||"span",bt=useUtilityClasses$Q(gt);return jsxRuntimeExports.jsx(TypographyRoot,_extends$r({as:yt,ref:nt,ownerState:gt,className:clsx(bt.root,st)},mt))}),Typography$1=Typography,_excluded$1g=["anchorEl","component","components","componentsProps","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","transition","slots","slotProps"],PopperRoot=styled$1(BasePopper,{name:"MuiPopper",slot:"Root",overridesResolver:(tt,et)=>et.root})({}),Popper=reactExports.forwardRef(function(et,nt){var rt;const it=useTheme$3(),ot=useThemeProps({props:et,name:"MuiPopper"}),{anchorEl:at,component:st,components:lt,componentsProps:ct,container:ut,disablePortal:ht,keepMounted:dt,modifiers:pt,open:mt,placement:gt,popperOptions:yt,popperRef:bt,transition:wt,slots:vt,slotProps:kt}=ot,St=_objectWithoutPropertiesLoose$g(ot,_excluded$1g),Et=(rt=vt==null?void 0:vt.root)!=null?rt:lt==null?void 0:lt.Root,At=_extends$r({anchorEl:at,container:ut,disablePortal:ht,keepMounted:dt,modifiers:pt,open:mt,placement:gt,popperOptions:yt,popperRef:bt,transition:wt},St);return jsxRuntimeExports.jsx(PopperRoot,_extends$r({as:st,direction:it==null?void 0:it.direction,slots:{root:Et},slotProps:kt??ct},At,{ref:nt}))}),MuiPopper=Popper,CancelIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function getChipUtilityClass(tt){return generateUtilityClass("MuiChip",tt)}const chipClasses=generateUtilityClasses("MuiChip",["root","sizeSmall","sizeMedium","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),chipClasses$1=chipClasses,_excluded$1f=["avatar","className","clickable","color","component","deleteIcon","disabled","icon","label","onClick","onDelete","onKeyDown","onKeyUp","size","variant","tabIndex","skipFocusWhenDisabled"],useUtilityClasses$P=tt=>{const{classes:et,disabled:nt,size:rt,color:it,iconColor:ot,onDelete:at,clickable:st,variant:lt}=tt,ct={root:["root",lt,nt&&"disabled",`size${capitalize(rt)}`,`color${capitalize(it)}`,st&&"clickable",st&&`clickableColor${capitalize(it)}`,at&&"deletable",at&&`deletableColor${capitalize(it)}`,`${lt}${capitalize(it)}`],label:["label",`label${capitalize(rt)}`],avatar:["avatar",`avatar${capitalize(rt)}`,`avatarColor${capitalize(it)}`],icon:["icon",`icon${capitalize(rt)}`,`iconColor${capitalize(ot)}`],deleteIcon:["deleteIcon",`deleteIcon${capitalize(rt)}`,`deleteIconColor${capitalize(it)}`,`deleteIcon${capitalize(lt)}Color${capitalize(it)}`]};return composeClasses(ct,getChipUtilityClass,et)},ChipRoot=styled$1("div",{name:"MuiChip",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt,{color:rt,iconColor:it,clickable:ot,onDelete:at,size:st,variant:lt}=nt;return[{[`& .${chipClasses$1.avatar}`]:et.avatar},{[`& .${chipClasses$1.avatar}`]:et[`avatar${capitalize(st)}`]},{[`& .${chipClasses$1.avatar}`]:et[`avatarColor${capitalize(rt)}`]},{[`& .${chipClasses$1.icon}`]:et.icon},{[`& .${chipClasses$1.icon}`]:et[`icon${capitalize(st)}`]},{[`& .${chipClasses$1.icon}`]:et[`iconColor${capitalize(it)}`]},{[`& .${chipClasses$1.deleteIcon}`]:et.deleteIcon},{[`& .${chipClasses$1.deleteIcon}`]:et[`deleteIcon${capitalize(st)}`]},{[`& .${chipClasses$1.deleteIcon}`]:et[`deleteIconColor${capitalize(rt)}`]},{[`& .${chipClasses$1.deleteIcon}`]:et[`deleteIcon${capitalize(lt)}Color${capitalize(rt)}`]},et.root,et[`size${capitalize(st)}`],et[`color${capitalize(rt)}`],ot&&et.clickable,ot&&rt!=="default"&&et[`clickableColor${capitalize(rt)})`],at&&et.deletable,at&&rt!=="default"&&et[`deletableColor${capitalize(rt)}`],et[lt],et[`${lt}${capitalize(rt)}`]]}})(({theme:tt,ownerState:et})=>{const nt=tt.palette.mode==="light"?tt.palette.grey[700]:tt.palette.grey[300];return _extends$r({maxWidth:"100%",fontFamily:tt.typography.fontFamily,fontSize:tt.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(tt.vars||tt).palette.text.primary,backgroundColor:(tt.vars||tt).palette.action.selected,borderRadius:32/2,whiteSpace:"nowrap",transition:tt.transitions.create(["background-color","box-shadow"]),outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${chipClasses$1.disabled}`]:{opacity:(tt.vars||tt).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${chipClasses$1.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:tt.vars?tt.vars.palette.Chip.defaultAvatarColor:nt,fontSize:tt.typography.pxToRem(12)},[`& .${chipClasses$1.avatarColorPrimary}`]:{color:(tt.vars||tt).palette.primary.contrastText,backgroundColor:(tt.vars||tt).palette.primary.dark},[`& .${chipClasses$1.avatarColorSecondary}`]:{color:(tt.vars||tt).palette.secondary.contrastText,backgroundColor:(tt.vars||tt).palette.secondary.dark},[`& .${chipClasses$1.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:tt.typography.pxToRem(10)},[`& .${chipClasses$1.icon}`]:_extends$r({marginLeft:5,marginRight:-6},et.size==="small"&&{fontSize:18,marginLeft:4,marginRight:-4},et.iconColor===et.color&&_extends$r({color:tt.vars?tt.vars.palette.Chip.defaultIconColor:nt},et.color!=="default"&&{color:"inherit"})),[`& .${chipClasses$1.deleteIcon}`]:_extends$r({WebkitTapHighlightColor:"transparent",color:tt.vars?`rgba(${tt.vars.palette.text.primaryChannel} / 0.26)`:alpha$1(tt.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:tt.vars?`rgba(${tt.vars.palette.text.primaryChannel} / 0.4)`:alpha$1(tt.palette.text.primary,.4)}},et.size==="small"&&{fontSize:16,marginRight:4,marginLeft:-4},et.color!=="default"&&{color:tt.vars?`rgba(${tt.vars.palette[et.color].contrastTextChannel} / 0.7)`:alpha$1(tt.palette[et.color].contrastText,.7),"&:hover, &:active":{color:(tt.vars||tt).palette[et.color].contrastText}})},et.size==="small"&&{height:24},et.color!=="default"&&{backgroundColor:(tt.vars||tt).palette[et.color].main,color:(tt.vars||tt).palette[et.color].contrastText},et.onDelete&&{[`&.${chipClasses$1.focusVisible}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.selectedChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.focusOpacity}))`:alpha$1(tt.palette.action.selected,tt.palette.action.selectedOpacity+tt.palette.action.focusOpacity)}},et.onDelete&&et.color!=="default"&&{[`&.${chipClasses$1.focusVisible}`]:{backgroundColor:(tt.vars||tt).palette[et.color].dark}})},({theme:tt,ownerState:et})=>_extends$r({},et.clickable&&{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.selectedChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.hoverOpacity}))`:alpha$1(tt.palette.action.selected,tt.palette.action.selectedOpacity+tt.palette.action.hoverOpacity)},[`&.${chipClasses$1.focusVisible}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.selectedChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.focusOpacity}))`:alpha$1(tt.palette.action.selected,tt.palette.action.selectedOpacity+tt.palette.action.focusOpacity)},"&:active":{boxShadow:(tt.vars||tt).shadows[1]}},et.clickable&&et.color!=="default"&&{[`&:hover, &.${chipClasses$1.focusVisible}`]:{backgroundColor:(tt.vars||tt).palette[et.color].dark}}),({theme:tt,ownerState:et})=>_extends$r({},et.variant==="outlined"&&{backgroundColor:"transparent",border:tt.vars?`1px solid ${tt.vars.palette.Chip.defaultBorder}`:`1px solid ${tt.palette.mode==="light"?tt.palette.grey[400]:tt.palette.grey[700]}`,[`&.${chipClasses$1.clickable}:hover`]:{backgroundColor:(tt.vars||tt).palette.action.hover},[`&.${chipClasses$1.focusVisible}`]:{backgroundColor:(tt.vars||tt).palette.action.focus},[`& .${chipClasses$1.avatar}`]:{marginLeft:4},[`& .${chipClasses$1.avatarSmall}`]:{marginLeft:2},[`& .${chipClasses$1.icon}`]:{marginLeft:4},[`& .${chipClasses$1.iconSmall}`]:{marginLeft:2},[`& .${chipClasses$1.deleteIcon}`]:{marginRight:5},[`& .${chipClasses$1.deleteIconSmall}`]:{marginRight:3}},et.variant==="outlined"&&et.color!=="default"&&{color:(tt.vars||tt).palette[et.color].main,border:`1px solid ${tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / 0.7)`:alpha$1(tt.palette[et.color].main,.7)}`,[`&.${chipClasses$1.clickable}:hover`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette[et.color].main,tt.palette.action.hoverOpacity)},[`&.${chipClasses$1.focusVisible}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / ${tt.vars.palette.action.focusOpacity})`:alpha$1(tt.palette[et.color].main,tt.palette.action.focusOpacity)},[`& .${chipClasses$1.deleteIcon}`]:{color:tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / 0.7)`:alpha$1(tt.palette[et.color].main,.7),"&:hover, &:active":{color:(tt.vars||tt).palette[et.color].main}}})),ChipLabel=styled$1("span",{name:"MuiChip",slot:"Label",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt,{size:rt}=nt;return[et.label,et[`label${capitalize(rt)}`]]}})(({ownerState:tt})=>_extends$r({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap"},tt.size==="small"&&{paddingLeft:8,paddingRight:8}));function isDeleteKeyboardEvent(tt){return tt.key==="Backspace"||tt.key==="Delete"}const Chip=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiChip"}),{avatar:it,className:ot,clickable:at,color:st="default",component:lt,deleteIcon:ct,disabled:ut=!1,icon:ht,label:dt,onClick:pt,onDelete:mt,onKeyDown:gt,onKeyUp:yt,size:bt="medium",variant:wt="filled",tabIndex:vt,skipFocusWhenDisabled:kt=!1}=rt,St=_objectWithoutPropertiesLoose$g(rt,_excluded$1f),Et=reactExports.useRef(null),At=useForkRef(Et,nt),Tt=Wt=>{Wt.stopPropagation(),mt&&mt(Wt)},Mt=Wt=>{Wt.currentTarget===Wt.target&&isDeleteKeyboardEvent(Wt)&&Wt.preventDefault(),gt&>(Wt)},Lt=Wt=>{Wt.currentTarget===Wt.target&&(mt&&isDeleteKeyboardEvent(Wt)?mt(Wt):Wt.key==="Escape"&&Et.current&&Et.current.blur()),yt&&yt(Wt)},jt=at!==!1&&pt?!0:at,Rt=jt||mt?ButtonBase$1:lt||"div",$t=_extends$r({},rt,{component:Rt,disabled:ut,size:bt,color:st,iconColor:reactExports.isValidElement(ht)&&ht.props.color||st,onDelete:!!mt,clickable:jt,variant:wt}),xt=useUtilityClasses$P($t),It=Rt===ButtonBase$1?_extends$r({component:lt||"div",focusVisibleClassName:xt.focusVisible},mt&&{disableRipple:!0}):{};let Ot=null;mt&&(Ot=ct&&reactExports.isValidElement(ct)?reactExports.cloneElement(ct,{className:clsx(ct.props.className,xt.deleteIcon),onClick:Tt}):jsxRuntimeExports.jsx(CancelIcon,{className:clsx(xt.deleteIcon),onClick:Tt}));let zt=null;it&&reactExports.isValidElement(it)&&(zt=reactExports.cloneElement(it,{className:clsx(xt.avatar,it.props.className)}));let Ut=null;return ht&&reactExports.isValidElement(ht)&&(Ut=reactExports.cloneElement(ht,{className:clsx(xt.icon,ht.props.className)})),jsxRuntimeExports.jsxs(ChipRoot,_extends$r({as:Rt,className:clsx(xt.root,ot),disabled:jt&&ut?!0:void 0,onClick:pt,onKeyDown:Mt,onKeyUp:Lt,ref:At,tabIndex:kt&&ut?-1:vt,ownerState:$t},It,St,{children:[zt||Ut,jsxRuntimeExports.jsx(ChipLabel,{className:clsx(xt.label),ownerState:$t,children:dt}),Ot]}))}),Chip$1=Chip;function formControlState({props:tt,states:et,muiFormControl:nt}){return et.reduce((rt,it)=>(rt[it]=tt[it],nt&&typeof tt[it]>"u"&&(rt[it]=nt[it]),rt),{})}const FormControlContext=reactExports.createContext(void 0),FormControlContext$1=FormControlContext;function useFormControl(){return reactExports.useContext(FormControlContext$1)}function GlobalStyles(tt){return jsxRuntimeExports.jsx(GlobalStyles$1,_extends$r({},tt,{defaultTheme:defaultTheme$1,themeId:THEME_ID}))}function hasValue(tt){return tt!=null&&!(Array.isArray(tt)&&tt.length===0)}function isFilled(tt,et=!1){return tt&&(hasValue(tt.value)&&tt.value!==""||et&&hasValue(tt.defaultValue)&&tt.defaultValue!=="")}function isAdornedStart(tt){return tt.startAdornment}function getInputBaseUtilityClass(tt){return generateUtilityClass("MuiInputBase",tt)}const inputBaseClasses=generateUtilityClasses("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),inputBaseClasses$1=inputBaseClasses,_excluded$1e=["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","slotProps","slots","startAdornment","type","value"],rootOverridesResolver=(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.formControl&&et.formControl,nt.startAdornment&&et.adornedStart,nt.endAdornment&&et.adornedEnd,nt.error&&et.error,nt.size==="small"&&et.sizeSmall,nt.multiline&&et.multiline,nt.color&&et[`color${capitalize(nt.color)}`],nt.fullWidth&&et.fullWidth,nt.hiddenLabel&&et.hiddenLabel]},inputOverridesResolver=(tt,et)=>{const{ownerState:nt}=tt;return[et.input,nt.size==="small"&&et.inputSizeSmall,nt.multiline&&et.inputMultiline,nt.type==="search"&&et.inputTypeSearch,nt.startAdornment&&et.inputAdornedStart,nt.endAdornment&&et.inputAdornedEnd,nt.hiddenLabel&&et.inputHiddenLabel]},useUtilityClasses$O=tt=>{const{classes:et,color:nt,disabled:rt,error:it,endAdornment:ot,focused:at,formControl:st,fullWidth:lt,hiddenLabel:ct,multiline:ut,readOnly:ht,size:dt,startAdornment:pt,type:mt}=tt,gt={root:["root",`color${capitalize(nt)}`,rt&&"disabled",it&&"error",lt&&"fullWidth",at&&"focused",st&&"formControl",dt==="small"&&"sizeSmall",ut&&"multiline",pt&&"adornedStart",ot&&"adornedEnd",ct&&"hiddenLabel",ht&&"readOnly"],input:["input",rt&&"disabled",mt==="search"&&"inputTypeSearch",ut&&"inputMultiline",dt==="small"&&"inputSizeSmall",ct&&"inputHiddenLabel",pt&&"inputAdornedStart",ot&&"inputAdornedEnd",ht&&"readOnly"]};return composeClasses(gt,getInputBaseUtilityClass,et)},InputBaseRoot=styled$1("div",{name:"MuiInputBase",slot:"Root",overridesResolver:rootOverridesResolver})(({theme:tt,ownerState:et})=>_extends$r({},tt.typography.body1,{color:(tt.vars||tt).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${inputBaseClasses$1.disabled}`]:{color:(tt.vars||tt).palette.text.disabled,cursor:"default"}},et.multiline&&_extends$r({padding:"4px 0 5px"},et.size==="small"&&{paddingTop:1}),et.fullWidth&&{width:"100%"})),InputBaseComponent=styled$1("input",{name:"MuiInputBase",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:tt,ownerState:et})=>{const nt=tt.palette.mode==="light",rt=_extends$r({color:"currentColor"},tt.vars?{opacity:tt.vars.opacity.inputPlaceholder}:{opacity:nt?.42:.5},{transition:tt.transitions.create("opacity",{duration:tt.transitions.duration.shorter})}),it={opacity:"0 !important"},ot=tt.vars?{opacity:tt.vars.opacity.inputPlaceholder}:{opacity:nt?.42:.5};return _extends$r({font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":rt,"&::-moz-placeholder":rt,"&:-ms-input-placeholder":rt,"&::-ms-input-placeholder":rt,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${inputBaseClasses$1.formControl} &`]:{"&::-webkit-input-placeholder":it,"&::-moz-placeholder":it,"&:-ms-input-placeholder":it,"&::-ms-input-placeholder":it,"&:focus::-webkit-input-placeholder":ot,"&:focus::-moz-placeholder":ot,"&:focus:-ms-input-placeholder":ot,"&:focus::-ms-input-placeholder":ot},[`&.${inputBaseClasses$1.disabled}`]:{opacity:1,WebkitTextFillColor:(tt.vars||tt).palette.text.disabled},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},et.size==="small"&&{paddingTop:1},et.multiline&&{height:"auto",resize:"none",padding:0,paddingTop:0},et.type==="search"&&{MozAppearance:"textfield"})}),inputGlobalStyles=jsxRuntimeExports.jsx(GlobalStyles,{styles:{"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}}),InputBase=reactExports.forwardRef(function(et,nt){var rt;const it=useThemeProps({props:et,name:"MuiInputBase"}),{"aria-describedby":ot,autoComplete:at,autoFocus:st,className:lt,components:ct={},componentsProps:ut={},defaultValue:ht,disabled:dt,disableInjectingGlobalStyles:pt,endAdornment:mt,fullWidth:gt=!1,id:yt,inputComponent:bt="input",inputProps:wt={},inputRef:vt,maxRows:kt,minRows:St,multiline:Et=!1,name:At,onBlur:Tt,onChange:Mt,onClick:Lt,onFocus:jt,onKeyDown:Rt,onKeyUp:$t,placeholder:xt,readOnly:It,renderSuffix:Ot,rows:zt,slotProps:Ut={},slots:Wt={},startAdornment:Ft,type:Nt="text",value:Ct}=it,Ht=_objectWithoutPropertiesLoose$g(it,_excluded$1e),Jt=wt.value!=null?wt.value:Ct,{current:nn}=reactExports.useRef(Jt!=null),Yt=reactExports.useRef(),fn=reactExports.useCallback(Qt=>{},[]),cn=useForkRef(Yt,vt,wt.ref,fn),[_n,En]=reactExports.useState(!1),an=useFormControl(),en=formControlState({props:it,muiFormControl:an,states:["color","disabled","error","hiddenLabel","size","required","filled"]});en.focused=an?an.focused:_n,reactExports.useEffect(()=>{!an&&dt&&_n&&(En(!1),Tt&&Tt())},[an,dt,_n,Tt]);const Tn=an&&an.onFilled,Rn=an&&an.onEmpty,An=reactExports.useCallback(Qt=>{isFilled(Qt)?Tn&&Tn():Rn&&Rn()},[Tn,Rn]);useEnhancedEffect$1(()=>{nn&&An({value:Jt})},[Jt,An,nn]);const yn=Qt=>{if(en.disabled){Qt.stopPropagation();return}jt&&jt(Qt),wt.onFocus&&wt.onFocus(Qt),an&&an.onFocus?an.onFocus(Qt):En(!0)},kn=Qt=>{Tt&&Tt(Qt),wt.onBlur&&wt.onBlur(Qt),an&&an.onBlur?an.onBlur(Qt):En(!1)},dn=(Qt,...Zt)=>{if(!nn){const wn=Qt.target||Yt.current;if(wn==null)throw new Error(formatMuiErrorMessage(1));An({value:wn.value})}wt.onChange&&wt.onChange(Qt,...Zt),Mt&&Mt(Qt,...Zt)};reactExports.useEffect(()=>{An(Yt.current)},[]);const gn=Qt=>{Yt.current&&Qt.currentTarget===Qt.target&&Yt.current.focus(),Lt&&!en.disabled&&Lt(Qt)};let Cn=bt,$n=wt;Et&&Cn==="input"&&(zt?$n=_extends$r({type:void 0,minRows:zt,maxRows:zt},$n):$n=_extends$r({type:void 0,maxRows:kt,minRows:St},$n),Cn=TextareaAutosize$1);const un=Qt=>{An(Qt.animationName==="mui-auto-fill-cancel"?Yt.current:{value:"x"})};reactExports.useEffect(()=>{an&&an.setAdornedStart(!!Ft)},[an,Ft]);const rn=_extends$r({},it,{color:en.color||"primary",disabled:en.disabled,endAdornment:mt,error:en.error,focused:en.focused,formControl:an,fullWidth:gt,hiddenLabel:en.hiddenLabel,multiline:Et,size:en.size,startAdornment:Ft,type:Nt}),Sn=useUtilityClasses$O(rn),Mn=Wt.root||ct.Root||InputBaseRoot,Nn=Ut.root||ut.root||{},hn=Wt.input||ct.Input||InputBaseComponent;return $n=_extends$r({},$n,(rt=Ut.input)!=null?rt:ut.input),jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[!pt&&inputGlobalStyles,jsxRuntimeExports.jsxs(Mn,_extends$r({},Nn,!isHostComponent(Mn)&&{ownerState:_extends$r({},rn,Nn.ownerState)},{ref:nt,onClick:gn},Ht,{className:clsx(Sn.root,Nn.className,lt,It&&"MuiInputBase-readOnly"),children:[Ft,jsxRuntimeExports.jsx(FormControlContext$1.Provider,{value:null,children:jsxRuntimeExports.jsx(hn,_extends$r({ownerState:rn,"aria-invalid":en.error,"aria-describedby":ot,autoComplete:at,autoFocus:st,defaultValue:ht,disabled:en.disabled,id:yt,onAnimationStart:un,name:At,placeholder:xt,readOnly:It,required:en.required,rows:zt,value:Jt,onKeyDown:Rt,onKeyUp:$t,type:Nt},$n,!isHostComponent(hn)&&{as:Cn,ownerState:_extends$r({},rn,$n.ownerState)},{ref:cn,className:clsx(Sn.input,$n.className,It&&"MuiInputBase-readOnly"),onBlur:kn,onChange:dn,onFocus:yn}))}),mt,Ot?Ot(_extends$r({},en,{startAdornment:Ft})):null]}))]})}),InputBase$1=InputBase;function getInputUtilityClass(tt){return generateUtilityClass("MuiInput",tt)}const inputClasses=_extends$r({},inputBaseClasses$1,generateUtilityClasses("MuiInput",["root","underline","input"])),inputClasses$1=inputClasses;function getOutlinedInputUtilityClass(tt){return generateUtilityClass("MuiOutlinedInput",tt)}const outlinedInputClasses=_extends$r({},inputBaseClasses$1,generateUtilityClasses("MuiOutlinedInput",["root","notchedOutline","input"])),outlinedInputClasses$1=outlinedInputClasses;function getFilledInputUtilityClass(tt){return generateUtilityClass("MuiFilledInput",tt)}const filledInputClasses=_extends$r({},inputBaseClasses$1,generateUtilityClasses("MuiFilledInput",["root","underline","input"])),filledInputClasses$1=filledInputClasses,ArrowDropDownIcon$1=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),_excluded$1d=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],styles$4={entering:{opacity:1},entered:{opacity:1}},Fade=reactExports.forwardRef(function(et,nt){const rt=useTheme(),it={enter:rt.transitions.duration.enteringScreen,exit:rt.transitions.duration.leavingScreen},{addEndListener:ot,appear:at=!0,children:st,easing:lt,in:ct,onEnter:ut,onEntered:ht,onEntering:dt,onExit:pt,onExited:mt,onExiting:gt,style:yt,timeout:bt=it,TransitionComponent:wt=Transition$1}=et,vt=_objectWithoutPropertiesLoose$g(et,_excluded$1d),kt=reactExports.useRef(null),St=useForkRef(kt,st.ref,nt),Et=xt=>It=>{if(xt){const Ot=kt.current;It===void 0?xt(Ot):xt(Ot,It)}},At=Et(dt),Tt=Et((xt,It)=>{reflow(xt);const Ot=getTransitionProps({style:yt,timeout:bt,easing:lt},{mode:"enter"});xt.style.webkitTransition=rt.transitions.create("opacity",Ot),xt.style.transition=rt.transitions.create("opacity",Ot),ut&&ut(xt,It)}),Mt=Et(ht),Lt=Et(gt),jt=Et(xt=>{const It=getTransitionProps({style:yt,timeout:bt,easing:lt},{mode:"exit"});xt.style.webkitTransition=rt.transitions.create("opacity",It),xt.style.transition=rt.transitions.create("opacity",It),pt&&pt(xt)}),Rt=Et(mt),$t=xt=>{ot&&ot(kt.current,xt)};return jsxRuntimeExports.jsx(wt,_extends$r({appear:at,in:ct,nodeRef:kt,onEnter:Tt,onEntered:Mt,onEntering:At,onExit:jt,onExited:Rt,onExiting:Lt,addEndListener:$t,timeout:bt},vt,{children:(xt,It)=>reactExports.cloneElement(st,_extends$r({style:_extends$r({opacity:0,visibility:xt==="exited"&&!ct?"hidden":void 0},styles$4[xt],yt,st.props.style),ref:St},It))}))}),Fade$1=Fade;function getBackdropUtilityClass(tt){return generateUtilityClass("MuiBackdrop",tt)}generateUtilityClasses("MuiBackdrop",["root","invisible"]);const _excluded$1c=["children","className","component","components","componentsProps","invisible","open","slotProps","slots","TransitionComponent","transitionDuration"],useUtilityClasses$N=tt=>{const{classes:et,invisible:nt}=tt;return composeClasses({root:["root",nt&&"invisible"]},getBackdropUtilityClass,et)},BackdropRoot=styled$1("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.invisible&&et.invisible]}})(({ownerState:tt})=>_extends$r({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},tt.invisible&&{backgroundColor:"transparent"})),Backdrop=reactExports.forwardRef(function(et,nt){var rt,it,ot;const at=useThemeProps({props:et,name:"MuiBackdrop"}),{children:st,className:lt,component:ct="div",components:ut={},componentsProps:ht={},invisible:dt=!1,open:pt,slotProps:mt={},slots:gt={},TransitionComponent:yt=Fade$1,transitionDuration:bt}=at,wt=_objectWithoutPropertiesLoose$g(at,_excluded$1c),vt=_extends$r({},at,{component:ct,invisible:dt}),kt=useUtilityClasses$N(vt),St=(rt=mt.root)!=null?rt:ht.root;return jsxRuntimeExports.jsx(yt,_extends$r({in:pt,timeout:bt},wt,{children:jsxRuntimeExports.jsx(BackdropRoot,_extends$r({"aria-hidden":!0},St,{as:(it=(ot=gt.root)!=null?ot:ut.Root)!=null?it:ct,className:clsx(kt.root,lt,St==null?void 0:St.className),ownerState:_extends$r({},vt,St==null?void 0:St.ownerState),classes:kt,ref:nt,children:st}))}))}),Backdrop$1=Backdrop;function getButtonUtilityClass(tt){return generateUtilityClass("MuiButton",tt)}const buttonClasses=generateUtilityClasses("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),buttonClasses$1=buttonClasses,ButtonGroupContext=reactExports.createContext({}),ButtonGroupContext$1=ButtonGroupContext,_excluded$1b=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],useUtilityClasses$M=tt=>{const{color:et,disableElevation:nt,fullWidth:rt,size:it,variant:ot,classes:at}=tt,st={root:["root",ot,`${ot}${capitalize(et)}`,`size${capitalize(it)}`,`${ot}Size${capitalize(it)}`,et==="inherit"&&"colorInherit",nt&&"disableElevation",rt&&"fullWidth"],label:["label"],startIcon:["startIcon",`iconSize${capitalize(it)}`],endIcon:["endIcon",`iconSize${capitalize(it)}`]},lt=composeClasses(st,getButtonUtilityClass,at);return _extends$r({},at,lt)},commonIconStyles=tt=>_extends$r({},tt.size==="small"&&{"& > *:nth-of-type(1)":{fontSize:18}},tt.size==="medium"&&{"& > *:nth-of-type(1)":{fontSize:20}},tt.size==="large"&&{"& > *:nth-of-type(1)":{fontSize:22}}),ButtonRoot=styled$1(ButtonBase$1,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiButton",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,et[nt.variant],et[`${nt.variant}${capitalize(nt.color)}`],et[`size${capitalize(nt.size)}`],et[`${nt.variant}Size${capitalize(nt.size)}`],nt.color==="inherit"&&et.colorInherit,nt.disableElevation&&et.disableElevation,nt.fullWidth&&et.fullWidth]}})(({theme:tt,ownerState:et})=>{var nt,rt;const it=tt.palette.mode==="light"?tt.palette.grey[300]:tt.palette.grey[800],ot=tt.palette.mode==="light"?tt.palette.grey.A100:tt.palette.grey[700];return _extends$r({},tt.typography.button,{minWidth:64,padding:"6px 16px",borderRadius:(tt.vars||tt).shape.borderRadius,transition:tt.transitions.create(["background-color","box-shadow","border-color","color"],{duration:tt.transitions.duration.short}),"&:hover":_extends$r({textDecoration:"none",backgroundColor:tt.vars?`rgba(${tt.vars.palette.text.primaryChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.text.primary,tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},et.variant==="text"&&et.color!=="inherit"&&{backgroundColor:tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette[et.color].main,tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},et.variant==="outlined"&&et.color!=="inherit"&&{border:`1px solid ${(tt.vars||tt).palette[et.color].main}`,backgroundColor:tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette[et.color].main,tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},et.variant==="contained"&&{backgroundColor:tt.vars?tt.vars.palette.Button.inheritContainedHoverBg:ot,boxShadow:(tt.vars||tt).shadows[4],"@media (hover: none)":{boxShadow:(tt.vars||tt).shadows[2],backgroundColor:(tt.vars||tt).palette.grey[300]}},et.variant==="contained"&&et.color!=="inherit"&&{backgroundColor:(tt.vars||tt).palette[et.color].dark,"@media (hover: none)":{backgroundColor:(tt.vars||tt).palette[et.color].main}}),"&:active":_extends$r({},et.variant==="contained"&&{boxShadow:(tt.vars||tt).shadows[8]}),[`&.${buttonClasses$1.focusVisible}`]:_extends$r({},et.variant==="contained"&&{boxShadow:(tt.vars||tt).shadows[6]}),[`&.${buttonClasses$1.disabled}`]:_extends$r({color:(tt.vars||tt).palette.action.disabled},et.variant==="outlined"&&{border:`1px solid ${(tt.vars||tt).palette.action.disabledBackground}`},et.variant==="contained"&&{color:(tt.vars||tt).palette.action.disabled,boxShadow:(tt.vars||tt).shadows[0],backgroundColor:(tt.vars||tt).palette.action.disabledBackground})},et.variant==="text"&&{padding:"6px 8px"},et.variant==="text"&&et.color!=="inherit"&&{color:(tt.vars||tt).palette[et.color].main},et.variant==="outlined"&&{padding:"5px 15px",border:"1px solid currentColor"},et.variant==="outlined"&&et.color!=="inherit"&&{color:(tt.vars||tt).palette[et.color].main,border:tt.vars?`1px solid rgba(${tt.vars.palette[et.color].mainChannel} / 0.5)`:`1px solid ${alpha$1(tt.palette[et.color].main,.5)}`},et.variant==="contained"&&{color:tt.vars?tt.vars.palette.text.primary:(nt=(rt=tt.palette).getContrastText)==null?void 0:nt.call(rt,tt.palette.grey[300]),backgroundColor:tt.vars?tt.vars.palette.Button.inheritContainedBg:it,boxShadow:(tt.vars||tt).shadows[2]},et.variant==="contained"&&et.color!=="inherit"&&{color:(tt.vars||tt).palette[et.color].contrastText,backgroundColor:(tt.vars||tt).palette[et.color].main},et.color==="inherit"&&{color:"inherit",borderColor:"currentColor"},et.size==="small"&&et.variant==="text"&&{padding:"4px 5px",fontSize:tt.typography.pxToRem(13)},et.size==="large"&&et.variant==="text"&&{padding:"8px 11px",fontSize:tt.typography.pxToRem(15)},et.size==="small"&&et.variant==="outlined"&&{padding:"3px 9px",fontSize:tt.typography.pxToRem(13)},et.size==="large"&&et.variant==="outlined"&&{padding:"7px 21px",fontSize:tt.typography.pxToRem(15)},et.size==="small"&&et.variant==="contained"&&{padding:"4px 10px",fontSize:tt.typography.pxToRem(13)},et.size==="large"&&et.variant==="contained"&&{padding:"8px 22px",fontSize:tt.typography.pxToRem(15)},et.fullWidth&&{width:"100%"})},({ownerState:tt})=>tt.disableElevation&&{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${buttonClasses$1.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${buttonClasses$1.disabled}`]:{boxShadow:"none"}}),ButtonStartIcon=styled$1("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.startIcon,et[`iconSize${capitalize(nt.size)}`]]}})(({ownerState:tt})=>_extends$r({display:"inherit",marginRight:8,marginLeft:-4},tt.size==="small"&&{marginLeft:-2},commonIconStyles(tt))),ButtonEndIcon=styled$1("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.endIcon,et[`iconSize${capitalize(nt.size)}`]]}})(({ownerState:tt})=>_extends$r({display:"inherit",marginRight:-4,marginLeft:8},tt.size==="small"&&{marginRight:-2},commonIconStyles(tt))),Button$1=reactExports.forwardRef(function(et,nt){const rt=reactExports.useContext(ButtonGroupContext$1),it=resolveProps(rt,et),ot=useThemeProps({props:it,name:"MuiButton"}),{children:at,color:st="primary",component:lt="button",className:ct,disabled:ut=!1,disableElevation:ht=!1,disableFocusRipple:dt=!1,endIcon:pt,focusVisibleClassName:mt,fullWidth:gt=!1,size:yt="medium",startIcon:bt,type:wt,variant:vt="text"}=ot,kt=_objectWithoutPropertiesLoose$g(ot,_excluded$1b),St=_extends$r({},ot,{color:st,component:lt,disabled:ut,disableElevation:ht,disableFocusRipple:dt,fullWidth:gt,size:yt,type:wt,variant:vt}),Et=useUtilityClasses$M(St),At=bt&&jsxRuntimeExports.jsx(ButtonStartIcon,{className:Et.startIcon,ownerState:St,children:bt}),Tt=pt&&jsxRuntimeExports.jsx(ButtonEndIcon,{className:Et.endIcon,ownerState:St,children:pt});return jsxRuntimeExports.jsxs(ButtonRoot,_extends$r({ownerState:St,className:clsx(rt.className,Et.root,ct),component:lt,disabled:ut,focusRipple:!dt,focusVisibleClassName:clsx(Et.focusVisible,mt),ref:nt,type:wt},kt,{classes:Et,children:[At,at,Tt]}))}),Button$2=Button$1,_excluded$1a=["BackdropComponent","BackdropProps","classes","className","closeAfterTransition","children","container","component","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","onBackdropClick","onClose","open","slotProps","slots","theme"],ModalRoot=styled$1("div",{name:"MuiModal",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,!nt.open&&nt.exited&&et.hidden]}})(({theme:tt,ownerState:et})=>_extends$r({position:"fixed",zIndex:(tt.vars||tt).zIndex.modal,right:0,bottom:0,top:0,left:0},!et.open&&et.exited&&{visibility:"hidden"})),ModalBackdrop=styled$1(Backdrop$1,{name:"MuiModal",slot:"Backdrop",overridesResolver:(tt,et)=>et.backdrop})({zIndex:-1}),Modal=reactExports.forwardRef(function(et,nt){var rt,it,ot,at,st,lt;const ct=useThemeProps({name:"MuiModal",props:et}),{BackdropComponent:ut=ModalBackdrop,BackdropProps:ht,classes:dt,className:pt,closeAfterTransition:mt=!1,children:gt,container:yt,component:bt,components:wt={},componentsProps:vt={},disableAutoFocus:kt=!1,disableEnforceFocus:St=!1,disableEscapeKeyDown:Et=!1,disablePortal:At=!1,disableRestoreFocus:Tt=!1,disableScrollLock:Mt=!1,hideBackdrop:Lt=!1,keepMounted:jt=!1,onBackdropClick:Rt,onClose:$t,open:xt,slotProps:It,slots:Ot,theme:zt}=ct,Ut=_objectWithoutPropertiesLoose$g(ct,_excluded$1a),[Wt,Ft]=reactExports.useState(!0),Nt={container:yt,closeAfterTransition:mt,disableAutoFocus:kt,disableEnforceFocus:St,disableEscapeKeyDown:Et,disablePortal:At,disableRestoreFocus:Tt,disableScrollLock:Mt,hideBackdrop:Lt,keepMounted:jt,onBackdropClick:Rt,onClose:$t,open:xt},Ct=_extends$r({},ct,Nt,{exited:Wt}),Ht=(rt=(it=Ot==null?void 0:Ot.root)!=null?it:wt.Root)!=null?rt:ModalRoot,Jt=(ot=(at=Ot==null?void 0:Ot.backdrop)!=null?at:wt.Backdrop)!=null?ot:ut,nn=(st=It==null?void 0:It.root)!=null?st:vt.root,Yt=(lt=It==null?void 0:It.backdrop)!=null?lt:vt.backdrop;return jsxRuntimeExports.jsx(ModalUnstyled,_extends$r({slots:{root:Ht,backdrop:Jt},slotProps:{root:()=>_extends$r({},resolveComponentProps(nn,Ct),!isHostComponent(Ht)&&{as:bt,theme:zt},{className:clsx(pt,nn==null?void 0:nn.className,dt==null?void 0:dt.root,!Ct.open&&Ct.exited&&(dt==null?void 0:dt.hidden))}),backdrop:()=>_extends$r({},ht,resolveComponentProps(Yt,Ct),{className:clsx(Yt==null?void 0:Yt.className,ht==null?void 0:ht.className,dt==null?void 0:dt.backdrop)})},onTransitionEnter:()=>Ft(!1),onTransitionExited:()=>Ft(!0),ref:nt},Ut,Nt,{children:gt}))}),Modal$1=Modal;function getDialogUtilityClass(tt){return generateUtilityClass("MuiDialog",tt)}const dialogClasses=generateUtilityClasses("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]),dialogClasses$1=dialogClasses,DialogContext=reactExports.createContext({}),DialogContext$1=DialogContext,_excluded$19=["aria-describedby","aria-labelledby","BackdropComponent","BackdropProps","children","className","disableEscapeKeyDown","fullScreen","fullWidth","maxWidth","onBackdropClick","onClose","open","PaperComponent","PaperProps","scroll","TransitionComponent","transitionDuration","TransitionProps"],DialogBackdrop=styled$1(Backdrop$1,{name:"MuiDialog",slot:"Backdrop",overrides:(tt,et)=>et.backdrop})({zIndex:-1}),useUtilityClasses$L=tt=>{const{classes:et,scroll:nt,maxWidth:rt,fullWidth:it,fullScreen:ot}=tt,at={root:["root"],container:["container",`scroll${capitalize(nt)}`],paper:["paper",`paperScroll${capitalize(nt)}`,`paperWidth${capitalize(String(rt))}`,it&&"paperFullWidth",ot&&"paperFullScreen"]};return composeClasses(at,getDialogUtilityClass,et)},DialogRoot=styled$1(Modal$1,{name:"MuiDialog",slot:"Root",overridesResolver:(tt,et)=>et.root})({"@media print":{position:"absolute !important"}}),DialogContainer=styled$1("div",{name:"MuiDialog",slot:"Container",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.container,et[`scroll${capitalize(nt.scroll)}`]]}})(({ownerState:tt})=>_extends$r({height:"100%","@media print":{height:"auto"},outline:0},tt.scroll==="paper"&&{display:"flex",justifyContent:"center",alignItems:"center"},tt.scroll==="body"&&{overflowY:"auto",overflowX:"hidden",textAlign:"center","&:after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}})),DialogPaper=styled$1(Paper$1,{name:"MuiDialog",slot:"Paper",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.paper,et[`scrollPaper${capitalize(nt.scroll)}`],et[`paperWidth${capitalize(String(nt.maxWidth))}`],nt.fullWidth&&et.paperFullWidth,nt.fullScreen&&et.paperFullScreen]}})(({theme:tt,ownerState:et})=>_extends$r({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"}},et.scroll==="paper"&&{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"},et.scroll==="body"&&{display:"inline-block",verticalAlign:"middle",textAlign:"left"},!et.maxWidth&&{maxWidth:"calc(100% - 64px)"},et.maxWidth==="xs"&&{maxWidth:tt.breakpoints.unit==="px"?Math.max(tt.breakpoints.values.xs,444):`max(${tt.breakpoints.values.xs}${tt.breakpoints.unit}, 444px)`,[`&.${dialogClasses$1.paperScrollBody}`]:{[tt.breakpoints.down(Math.max(tt.breakpoints.values.xs,444)+32*2)]:{maxWidth:"calc(100% - 64px)"}}},et.maxWidth&&et.maxWidth!=="xs"&&{maxWidth:`${tt.breakpoints.values[et.maxWidth]}${tt.breakpoints.unit}`,[`&.${dialogClasses$1.paperScrollBody}`]:{[tt.breakpoints.down(tt.breakpoints.values[et.maxWidth]+32*2)]:{maxWidth:"calc(100% - 64px)"}}},et.fullWidth&&{width:"calc(100% - 64px)"},et.fullScreen&&{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${dialogClasses$1.paperScrollBody}`]:{margin:0,maxWidth:"100%"}})),Dialog=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiDialog"}),it=useTheme(),ot={enter:it.transitions.duration.enteringScreen,exit:it.transitions.duration.leavingScreen},{"aria-describedby":at,"aria-labelledby":st,BackdropComponent:lt,BackdropProps:ct,children:ut,className:ht,disableEscapeKeyDown:dt=!1,fullScreen:pt=!1,fullWidth:mt=!1,maxWidth:gt="sm",onBackdropClick:yt,onClose:bt,open:wt,PaperComponent:vt=Paper$1,PaperProps:kt={},scroll:St="paper",TransitionComponent:Et=Fade$1,transitionDuration:At=ot,TransitionProps:Tt}=rt,Mt=_objectWithoutPropertiesLoose$g(rt,_excluded$19),Lt=_extends$r({},rt,{disableEscapeKeyDown:dt,fullScreen:pt,fullWidth:mt,maxWidth:gt,scroll:St}),jt=useUtilityClasses$L(Lt),Rt=reactExports.useRef(),$t=zt=>{Rt.current=zt.target===zt.currentTarget},xt=zt=>{Rt.current&&(Rt.current=null,yt&&yt(zt),bt&&bt(zt,"backdropClick"))},It=useId(st),Ot=reactExports.useMemo(()=>({titleId:It}),[It]);return jsxRuntimeExports.jsx(DialogRoot,_extends$r({className:clsx(jt.root,ht),closeAfterTransition:!0,components:{Backdrop:DialogBackdrop},componentsProps:{backdrop:_extends$r({transitionDuration:At,as:lt},ct)},disableEscapeKeyDown:dt,onClose:bt,open:wt,ref:nt,onClick:xt,ownerState:Lt},Mt,{children:jsxRuntimeExports.jsx(Et,_extends$r({appear:!0,in:wt,timeout:At,role:"presentation"},Tt,{children:jsxRuntimeExports.jsx(DialogContainer,{className:clsx(jt.container),onMouseDown:$t,ownerState:Lt,children:jsxRuntimeExports.jsx(DialogPaper,_extends$r({as:vt,elevation:24,role:"dialog","aria-describedby":at,"aria-labelledby":It},kt,{className:clsx(jt.paper,kt.className),ownerState:Lt,children:jsxRuntimeExports.jsx(DialogContext$1.Provider,{value:Ot,children:ut})}))})}))}))}),MuiDialog=Dialog;function getDialogActionsUtilityClass(tt){return generateUtilityClass("MuiDialogActions",tt)}generateUtilityClasses("MuiDialogActions",["root","spacing"]);const _excluded$18=["className","disableSpacing"],useUtilityClasses$K=tt=>{const{classes:et,disableSpacing:nt}=tt;return composeClasses({root:["root",!nt&&"spacing"]},getDialogActionsUtilityClass,et)},DialogActionsRoot=styled$1("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,!nt.disableSpacing&&et.spacing]}})(({ownerState:tt})=>_extends$r({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto"},!tt.disableSpacing&&{"& > :not(:first-of-type)":{marginLeft:8}})),DialogActions=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiDialogActions"}),{className:it,disableSpacing:ot=!1}=rt,at=_objectWithoutPropertiesLoose$g(rt,_excluded$18),st=_extends$r({},rt,{disableSpacing:ot}),lt=useUtilityClasses$K(st);return jsxRuntimeExports.jsx(DialogActionsRoot,_extends$r({className:clsx(lt.root,it),ownerState:st,ref:nt},at))}),DialogActions$1=DialogActions;function getDialogContentUtilityClass(tt){return generateUtilityClass("MuiDialogContent",tt)}generateUtilityClasses("MuiDialogContent",["root","dividers"]);const dialogTitleClasses=generateUtilityClasses("MuiDialogTitle",["root"]),dialogTitleClasses$1=dialogTitleClasses,_excluded$17=["className","dividers"],useUtilityClasses$J=tt=>{const{classes:et,dividers:nt}=tt;return composeClasses({root:["root",nt&&"dividers"]},getDialogContentUtilityClass,et)},DialogContentRoot=styled$1("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.dividers&&et.dividers]}})(({theme:tt,ownerState:et})=>_extends$r({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px"},et.dividers?{padding:"16px 24px",borderTop:`1px solid ${(tt.vars||tt).palette.divider}`,borderBottom:`1px solid ${(tt.vars||tt).palette.divider}`}:{[`.${dialogTitleClasses$1.root} + &`]:{paddingTop:0}})),DialogContent=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiDialogContent"}),{className:it,dividers:ot=!1}=rt,at=_objectWithoutPropertiesLoose$g(rt,_excluded$17),st=_extends$r({},rt,{dividers:ot}),lt=useUtilityClasses$J(st);return jsxRuntimeExports.jsx(DialogContentRoot,_extends$r({className:clsx(lt.root,it),ownerState:st,ref:nt},at))}),DialogContent$1=DialogContent,dividerClasses=generateUtilityClasses("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),dividerClasses$1=dividerClasses,_excluded$16=["addEndListener","appear","children","container","direction","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function getTranslateValue(tt,et,nt){const rt=et.getBoundingClientRect(),it=nt&&nt.getBoundingClientRect(),ot=ownerWindow(et);let at;if(et.fakeTransform)at=et.fakeTransform;else{const ct=ot.getComputedStyle(et);at=ct.getPropertyValue("-webkit-transform")||ct.getPropertyValue("transform")}let st=0,lt=0;if(at&&at!=="none"&&typeof at=="string"){const ct=at.split("(")[1].split(")")[0].split(",");st=parseInt(ct[4],10),lt=parseInt(ct[5],10)}return tt==="left"?it?`translateX(${it.right+st-rt.left}px)`:`translateX(${ot.innerWidth+st-rt.left}px)`:tt==="right"?it?`translateX(-${rt.right-it.left-st}px)`:`translateX(-${rt.left+rt.width-st}px)`:tt==="up"?it?`translateY(${it.bottom+lt-rt.top}px)`:`translateY(${ot.innerHeight+lt-rt.top}px)`:it?`translateY(-${rt.top-it.top+rt.height-lt}px)`:`translateY(-${rt.top+rt.height-lt}px)`}function resolveContainer(tt){return typeof tt=="function"?tt():tt}function setTranslateValue(tt,et,nt){const rt=resolveContainer(nt),it=getTranslateValue(tt,et,rt);it&&(et.style.webkitTransform=it,et.style.transform=it)}const Slide=reactExports.forwardRef(function(et,nt){const rt=useTheme(),it={enter:rt.transitions.easing.easeOut,exit:rt.transitions.easing.sharp},ot={enter:rt.transitions.duration.enteringScreen,exit:rt.transitions.duration.leavingScreen},{addEndListener:at,appear:st=!0,children:lt,container:ct,direction:ut="down",easing:ht=it,in:dt,onEnter:pt,onEntered:mt,onEntering:gt,onExit:yt,onExited:bt,onExiting:wt,style:vt,timeout:kt=ot,TransitionComponent:St=Transition$1}=et,Et=_objectWithoutPropertiesLoose$g(et,_excluded$16),At=reactExports.useRef(null),Tt=useForkRef(lt.ref,At,nt),Mt=Ut=>Wt=>{Ut&&(Wt===void 0?Ut(At.current):Ut(At.current,Wt))},Lt=Mt((Ut,Wt)=>{setTranslateValue(ut,Ut,ct),reflow(Ut),pt&&pt(Ut,Wt)}),jt=Mt((Ut,Wt)=>{const Ft=getTransitionProps({timeout:kt,style:vt,easing:ht},{mode:"enter"});Ut.style.webkitTransition=rt.transitions.create("-webkit-transform",_extends$r({},Ft)),Ut.style.transition=rt.transitions.create("transform",_extends$r({},Ft)),Ut.style.webkitTransform="none",Ut.style.transform="none",gt&>(Ut,Wt)}),Rt=Mt(mt),$t=Mt(wt),xt=Mt(Ut=>{const Wt=getTransitionProps({timeout:kt,style:vt,easing:ht},{mode:"exit"});Ut.style.webkitTransition=rt.transitions.create("-webkit-transform",Wt),Ut.style.transition=rt.transitions.create("transform",Wt),setTranslateValue(ut,Ut,ct),yt&&yt(Ut)}),It=Mt(Ut=>{Ut.style.webkitTransition="",Ut.style.transition="",bt&&bt(Ut)}),Ot=Ut=>{at&&at(At.current,Ut)},zt=reactExports.useCallback(()=>{At.current&&setTranslateValue(ut,At.current,ct)},[ut,ct]);return reactExports.useEffect(()=>{if(dt||ut==="down"||ut==="right")return;const Ut=debounce$5(()=>{At.current&&setTranslateValue(ut,At.current,ct)}),Wt=ownerWindow(At.current);return Wt.addEventListener("resize",Ut),()=>{Ut.clear(),Wt.removeEventListener("resize",Ut)}},[ut,dt,ct]),reactExports.useEffect(()=>{dt||zt()},[dt,zt]),jsxRuntimeExports.jsx(St,_extends$r({nodeRef:At,onEnter:Lt,onEntered:Rt,onEntering:jt,onExit:xt,onExited:It,onExiting:$t,addEndListener:Ot,appear:st,in:dt,timeout:kt},Et,{children:(Ut,Wt)=>reactExports.cloneElement(lt,_extends$r({ref:Tt,style:_extends$r({visibility:Ut==="exited"&&!dt?"hidden":void 0},vt,lt.props.style)},Wt))}))}),Slide$1=Slide,_excluded$15=["disableUnderline","components","componentsProps","fullWidth","hiddenLabel","inputComponent","multiline","slotProps","slots","type"],useUtilityClasses$I=tt=>{const{classes:et,disableUnderline:nt}=tt,it=composeClasses({root:["root",!nt&&"underline"],input:["input"]},getFilledInputUtilityClass,et);return _extends$r({},et,it)},FilledInputRoot=styled$1(InputBaseRoot,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[...rootOverridesResolver(tt,et),!nt.disableUnderline&&et.underline]}})(({theme:tt,ownerState:et})=>{var nt;const rt=tt.palette.mode==="light",it=rt?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",ot=rt?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",at=rt?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",st=rt?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return _extends$r({position:"relative",backgroundColor:tt.vars?tt.vars.palette.FilledInput.bg:ot,borderTopLeftRadius:(tt.vars||tt).shape.borderRadius,borderTopRightRadius:(tt.vars||tt).shape.borderRadius,transition:tt.transitions.create("background-color",{duration:tt.transitions.duration.shorter,easing:tt.transitions.easing.easeOut}),"&:hover":{backgroundColor:tt.vars?tt.vars.palette.FilledInput.hoverBg:at,"@media (hover: none)":{backgroundColor:tt.vars?tt.vars.palette.FilledInput.bg:ot}},[`&.${filledInputClasses$1.focused}`]:{backgroundColor:tt.vars?tt.vars.palette.FilledInput.bg:ot},[`&.${filledInputClasses$1.disabled}`]:{backgroundColor:tt.vars?tt.vars.palette.FilledInput.disabledBg:st}},!et.disableUnderline&&{"&:after":{borderBottom:`2px solid ${(nt=(tt.vars||tt).palette[et.color||"primary"])==null?void 0:nt.main}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:tt.transitions.create("transform",{duration:tt.transitions.duration.shorter,easing:tt.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${filledInputClasses$1.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${filledInputClasses$1.error}`]:{"&:before, &:after":{borderBottomColor:(tt.vars||tt).palette.error.main}},"&:before":{borderBottom:`1px solid ${tt.vars?`rgba(${tt.vars.palette.common.onBackgroundChannel} / ${tt.vars.opacity.inputUnderline})`:it}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:tt.transitions.create("border-bottom-color",{duration:tt.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${filledInputClasses$1.disabled}, .${filledInputClasses$1.error}):before`]:{borderBottom:`1px solid ${(tt.vars||tt).palette.text.primary}`},[`&.${filledInputClasses$1.disabled}:before`]:{borderBottomStyle:"dotted"}},et.startAdornment&&{paddingLeft:12},et.endAdornment&&{paddingRight:12},et.multiline&&_extends$r({padding:"25px 12px 8px"},et.size==="small"&&{paddingTop:21,paddingBottom:4},et.hiddenLabel&&{paddingTop:16,paddingBottom:17}))}),FilledInputInput=styled$1(InputBaseComponent,{name:"MuiFilledInput",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:tt,ownerState:et})=>_extends$r({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12},!tt.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:tt.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:tt.palette.mode==="light"?null:"#fff",caretColor:tt.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},tt.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[tt.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},et.size==="small"&&{paddingTop:21,paddingBottom:4},et.hiddenLabel&&{paddingTop:16,paddingBottom:17},et.multiline&&{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0},et.startAdornment&&{paddingLeft:0},et.endAdornment&&{paddingRight:0},et.hiddenLabel&&et.size==="small"&&{paddingTop:8,paddingBottom:9})),FilledInput=reactExports.forwardRef(function(et,nt){var rt,it,ot,at;const st=useThemeProps({props:et,name:"MuiFilledInput"}),{components:lt={},componentsProps:ct,fullWidth:ut=!1,inputComponent:ht="input",multiline:dt=!1,slotProps:pt,slots:mt={},type:gt="text"}=st,yt=_objectWithoutPropertiesLoose$g(st,_excluded$15),bt=_extends$r({},st,{fullWidth:ut,inputComponent:ht,multiline:dt,type:gt}),wt=useUtilityClasses$I(st),vt={root:{ownerState:bt},input:{ownerState:bt}},kt=pt??ct?deepmerge$1(pt??ct,vt):vt,St=(rt=(it=mt.root)!=null?it:lt.Root)!=null?rt:FilledInputRoot,Et=(ot=(at=mt.input)!=null?at:lt.Input)!=null?ot:FilledInputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends$r({slots:{root:St,input:Et},componentsProps:kt,fullWidth:ut,inputComponent:ht,multiline:dt,ref:nt,type:gt},yt,{classes:wt}))});FilledInput.muiName="Input";const FilledInput$1=FilledInput;function getFormControlUtilityClasses(tt){return generateUtilityClass("MuiFormControl",tt)}generateUtilityClasses("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const _excluded$14=["children","className","color","component","disabled","error","focused","fullWidth","hiddenLabel","margin","required","size","variant"],useUtilityClasses$H=tt=>{const{classes:et,margin:nt,fullWidth:rt}=tt,it={root:["root",nt!=="none"&&`margin${capitalize(nt)}`,rt&&"fullWidth"]};return composeClasses(it,getFormControlUtilityClasses,et)},FormControlRoot=styled$1("div",{name:"MuiFormControl",slot:"Root",overridesResolver:({ownerState:tt},et)=>_extends$r({},et.root,et[`margin${capitalize(tt.margin)}`],tt.fullWidth&&et.fullWidth)})(({ownerState:tt})=>_extends$r({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},tt.margin==="normal"&&{marginTop:16,marginBottom:8},tt.margin==="dense"&&{marginTop:8,marginBottom:4},tt.fullWidth&&{width:"100%"})),FormControl=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiFormControl"}),{children:it,className:ot,color:at="primary",component:st="div",disabled:lt=!1,error:ct=!1,focused:ut,fullWidth:ht=!1,hiddenLabel:dt=!1,margin:pt="none",required:mt=!1,size:gt="medium",variant:yt="outlined"}=rt,bt=_objectWithoutPropertiesLoose$g(rt,_excluded$14),wt=_extends$r({},rt,{color:at,component:st,disabled:lt,error:ct,fullWidth:ht,hiddenLabel:dt,margin:pt,required:mt,size:gt,variant:yt}),vt=useUtilityClasses$H(wt),[kt,St]=reactExports.useState(()=>{let $t=!1;return it&&reactExports.Children.forEach(it,xt=>{if(!isMuiElement(xt,["Input","Select"]))return;const It=isMuiElement(xt,["Select"])?xt.props.input:xt;It&&isAdornedStart(It.props)&&($t=!0)}),$t}),[Et,At]=reactExports.useState(()=>{let $t=!1;return it&&reactExports.Children.forEach(it,xt=>{isMuiElement(xt,["Input","Select"])&&(isFilled(xt.props,!0)||isFilled(xt.props.inputProps,!0))&&($t=!0)}),$t}),[Tt,Mt]=reactExports.useState(!1);lt&&Tt&&Mt(!1);const Lt=ut!==void 0&&!lt?ut:Tt;let jt;const Rt=reactExports.useMemo(()=>({adornedStart:kt,setAdornedStart:St,color:at,disabled:lt,error:ct,filled:Et,focused:Lt,fullWidth:ht,hiddenLabel:dt,size:gt,onBlur:()=>{Mt(!1)},onEmpty:()=>{At(!1)},onFilled:()=>{At(!0)},onFocus:()=>{Mt(!0)},registerEffect:jt,required:mt,variant:yt}),[kt,at,lt,ct,Et,Lt,ht,dt,jt,mt,gt,yt]);return jsxRuntimeExports.jsx(FormControlContext$1.Provider,{value:Rt,children:jsxRuntimeExports.jsx(FormControlRoot,_extends$r({as:st,ownerState:wt,className:clsx(vt.root,ot),ref:nt},bt,{children:it}))})}),FormControl$1=FormControl,Stack$4=createStack({createStyledComponent:styled$1("div",{name:"MuiStack",slot:"Root",overridesResolver:(tt,et)=>et.root}),useThemeProps:tt=>useThemeProps({props:tt,name:"MuiStack"})}),Stack$5=Stack$4;function getFormHelperTextUtilityClasses(tt){return generateUtilityClass("MuiFormHelperText",tt)}const formHelperTextClasses=generateUtilityClasses("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]),formHelperTextClasses$1=formHelperTextClasses;var _span$3;const _excluded$13=["children","className","component","disabled","error","filled","focused","margin","required","variant"],useUtilityClasses$G=tt=>{const{classes:et,contained:nt,size:rt,disabled:it,error:ot,filled:at,focused:st,required:lt}=tt,ct={root:["root",it&&"disabled",ot&&"error",rt&&`size${capitalize(rt)}`,nt&&"contained",st&&"focused",at&&"filled",lt&&"required"]};return composeClasses(ct,getFormHelperTextUtilityClasses,et)},FormHelperTextRoot=styled$1("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.size&&et[`size${capitalize(nt.size)}`],nt.contained&&et.contained,nt.filled&&et.filled]}})(({theme:tt,ownerState:et})=>_extends$r({color:(tt.vars||tt).palette.text.secondary},tt.typography.caption,{textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${formHelperTextClasses$1.disabled}`]:{color:(tt.vars||tt).palette.text.disabled},[`&.${formHelperTextClasses$1.error}`]:{color:(tt.vars||tt).palette.error.main}},et.size==="small"&&{marginTop:4},et.contained&&{marginLeft:14,marginRight:14})),FormHelperText=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiFormHelperText"}),{children:it,className:ot,component:at="p"}=rt,st=_objectWithoutPropertiesLoose$g(rt,_excluded$13),lt=useFormControl(),ct=formControlState({props:rt,muiFormControl:lt,states:["variant","size","disabled","error","filled","focused","required"]}),ut=_extends$r({},rt,{component:at,contained:ct.variant==="filled"||ct.variant==="outlined",variant:ct.variant,size:ct.size,disabled:ct.disabled,error:ct.error,filled:ct.filled,focused:ct.focused,required:ct.required}),ht=useUtilityClasses$G(ut);return jsxRuntimeExports.jsx(FormHelperTextRoot,_extends$r({as:at,ownerState:ut,className:clsx(ht.root,ot),ref:nt},st,{children:it===" "?_span$3||(_span$3=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"})):it}))}),FormHelperText$1=FormHelperText;function getFormLabelUtilityClasses(tt){return generateUtilityClass("MuiFormLabel",tt)}const formLabelClasses=generateUtilityClasses("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),formLabelClasses$1=formLabelClasses,_excluded$12=["children","className","color","component","disabled","error","filled","focused","required"],useUtilityClasses$F=tt=>{const{classes:et,color:nt,focused:rt,disabled:it,error:ot,filled:at,required:st}=tt,lt={root:["root",`color${capitalize(nt)}`,it&&"disabled",ot&&"error",at&&"filled",rt&&"focused",st&&"required"],asterisk:["asterisk",ot&&"error"]};return composeClasses(lt,getFormLabelUtilityClasses,et)},FormLabelRoot=styled$1("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:({ownerState:tt},et)=>_extends$r({},et.root,tt.color==="secondary"&&et.colorSecondary,tt.filled&&et.filled)})(({theme:tt,ownerState:et})=>_extends$r({color:(tt.vars||tt).palette.text.secondary},tt.typography.body1,{lineHeight:"1.4375em",padding:0,position:"relative",[`&.${formLabelClasses$1.focused}`]:{color:(tt.vars||tt).palette[et.color].main},[`&.${formLabelClasses$1.disabled}`]:{color:(tt.vars||tt).palette.text.disabled},[`&.${formLabelClasses$1.error}`]:{color:(tt.vars||tt).palette.error.main}})),AsteriskComponent=styled$1("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(tt,et)=>et.asterisk})(({theme:tt})=>({[`&.${formLabelClasses$1.error}`]:{color:(tt.vars||tt).palette.error.main}})),FormLabel=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiFormLabel"}),{children:it,className:ot,component:at="label"}=rt,st=_objectWithoutPropertiesLoose$g(rt,_excluded$12),lt=useFormControl(),ct=formControlState({props:rt,muiFormControl:lt,states:["color","required","focused","disabled","error","filled"]}),ut=_extends$r({},rt,{color:ct.color||"primary",component:at,disabled:ct.disabled,error:ct.error,filled:ct.filled,focused:ct.focused,required:ct.required}),ht=useUtilityClasses$F(ut);return jsxRuntimeExports.jsxs(FormLabelRoot,_extends$r({as:at,ownerState:ut,className:clsx(ht.root,ot),ref:nt},st,{children:[it,ct.required&&jsxRuntimeExports.jsxs(AsteriskComponent,{ownerState:ut,"aria-hidden":!0,className:ht.asterisk,children:[" ","*"]})]}))}),FormLabel$1=FormLabel,GridContext=reactExports.createContext(),GridContext$1=GridContext;function getGridUtilityClass(tt){return generateUtilityClass("MuiGrid",tt)}const SPACINGS=[0,1,2,3,4,5,6,7,8,9,10],DIRECTIONS=["column-reverse","column","row-reverse","row"],WRAPS=["nowrap","wrap-reverse","wrap"],GRID_SIZES=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],gridClasses=generateUtilityClasses("MuiGrid",["root","container","item","zeroMinWidth",...SPACINGS.map(tt=>`spacing-xs-${tt}`),...DIRECTIONS.map(tt=>`direction-xs-${tt}`),...WRAPS.map(tt=>`wrap-xs-${tt}`),...GRID_SIZES.map(tt=>`grid-xs-${tt}`),...GRID_SIZES.map(tt=>`grid-sm-${tt}`),...GRID_SIZES.map(tt=>`grid-md-${tt}`),...GRID_SIZES.map(tt=>`grid-lg-${tt}`),...GRID_SIZES.map(tt=>`grid-xl-${tt}`)]),gridClasses$1=gridClasses,_excluded$11=["className","columns","columnSpacing","component","container","direction","item","rowSpacing","spacing","wrap","zeroMinWidth"];function getOffset$1(tt){const et=parseFloat(tt);return`${et}${String(tt).replace(String(et),"")||"px"}`}function generateGrid({theme:tt,ownerState:et}){let nt;return tt.breakpoints.keys.reduce((rt,it)=>{let ot={};if(et[it]&&(nt=et[it]),!nt)return rt;if(nt===!0)ot={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if(nt==="auto")ot={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{const at=resolveBreakpointValues({values:et.columns,breakpoints:tt.breakpoints.values}),st=typeof at=="object"?at[it]:at;if(st==null)return rt;const lt=`${Math.round(nt/st*1e8)/1e6}%`;let ct={};if(et.container&&et.item&&et.columnSpacing!==0){const ut=tt.spacing(et.columnSpacing);if(ut!=="0px"){const ht=`calc(${lt} + ${getOffset$1(ut)})`;ct={flexBasis:ht,maxWidth:ht}}}ot=_extends$r({flexBasis:lt,flexGrow:0,maxWidth:lt},ct)}return tt.breakpoints.values[it]===0?Object.assign(rt,ot):rt[tt.breakpoints.up(it)]=ot,rt},{})}function generateDirection({theme:tt,ownerState:et}){const nt=resolveBreakpointValues({values:et.direction,breakpoints:tt.breakpoints.values});return handleBreakpoints({theme:tt},nt,rt=>{const it={flexDirection:rt};return rt.indexOf("column")===0&&(it[`& > .${gridClasses$1.item}`]={maxWidth:"none"}),it})}function extractZeroValueBreakpointKeys({breakpoints:tt,values:et}){let nt="";Object.keys(et).forEach(it=>{nt===""&&et[it]!==0&&(nt=it)});const rt=Object.keys(tt).sort((it,ot)=>tt[it]-tt[ot]);return rt.slice(0,rt.indexOf(nt))}function generateRowGap({theme:tt,ownerState:et}){const{container:nt,rowSpacing:rt}=et;let it={};if(nt&&rt!==0){const ot=resolveBreakpointValues({values:rt,breakpoints:tt.breakpoints.values});let at;typeof ot=="object"&&(at=extractZeroValueBreakpointKeys({breakpoints:tt.breakpoints.values,values:ot})),it=handleBreakpoints({theme:tt},ot,(st,lt)=>{var ct;const ut=tt.spacing(st);return ut!=="0px"?{marginTop:`-${getOffset$1(ut)}`,[`& > .${gridClasses$1.item}`]:{paddingTop:getOffset$1(ut)}}:(ct=at)!=null&&ct.includes(lt)?{}:{marginTop:0,[`& > .${gridClasses$1.item}`]:{paddingTop:0}}})}return it}function generateColumnGap({theme:tt,ownerState:et}){const{container:nt,columnSpacing:rt}=et;let it={};if(nt&&rt!==0){const ot=resolveBreakpointValues({values:rt,breakpoints:tt.breakpoints.values});let at;typeof ot=="object"&&(at=extractZeroValueBreakpointKeys({breakpoints:tt.breakpoints.values,values:ot})),it=handleBreakpoints({theme:tt},ot,(st,lt)=>{var ct;const ut=tt.spacing(st);return ut!=="0px"?{width:`calc(100% + ${getOffset$1(ut)})`,marginLeft:`-${getOffset$1(ut)}`,[`& > .${gridClasses$1.item}`]:{paddingLeft:getOffset$1(ut)}}:(ct=at)!=null&&ct.includes(lt)?{}:{width:"100%",marginLeft:0,[`& > .${gridClasses$1.item}`]:{paddingLeft:0}}})}return it}function resolveSpacingStyles(tt,et,nt={}){if(!tt||tt<=0)return[];if(typeof tt=="string"&&!Number.isNaN(Number(tt))||typeof tt=="number")return[nt[`spacing-xs-${String(tt)}`]];const rt=[];return et.forEach(it=>{const ot=tt[it];Number(ot)>0&&rt.push(nt[`spacing-${it}-${String(ot)}`])}),rt}const GridRoot=styled$1("div",{name:"MuiGrid",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt,{container:rt,direction:it,item:ot,spacing:at,wrap:st,zeroMinWidth:lt,breakpoints:ct}=nt;let ut=[];rt&&(ut=resolveSpacingStyles(at,ct,et));const ht=[];return ct.forEach(dt=>{const pt=nt[dt];pt&&ht.push(et[`grid-${dt}-${String(pt)}`])}),[et.root,rt&&et.container,ot&&et.item,lt&&et.zeroMinWidth,...ut,it!=="row"&&et[`direction-xs-${String(it)}`],st!=="wrap"&&et[`wrap-xs-${String(st)}`],...ht]}})(({ownerState:tt})=>_extends$r({boxSizing:"border-box"},tt.container&&{display:"flex",flexWrap:"wrap",width:"100%"},tt.item&&{margin:0},tt.zeroMinWidth&&{minWidth:0},tt.wrap!=="wrap"&&{flexWrap:tt.wrap}),generateDirection,generateRowGap,generateColumnGap,generateGrid);function resolveSpacingClasses(tt,et){if(!tt||tt<=0)return[];if(typeof tt=="string"&&!Number.isNaN(Number(tt))||typeof tt=="number")return[`spacing-xs-${String(tt)}`];const nt=[];return et.forEach(rt=>{const it=tt[rt];if(Number(it)>0){const ot=`spacing-${rt}-${String(it)}`;nt.push(ot)}}),nt}const useUtilityClasses$E=tt=>{const{classes:et,container:nt,direction:rt,item:it,spacing:ot,wrap:at,zeroMinWidth:st,breakpoints:lt}=tt;let ct=[];nt&&(ct=resolveSpacingClasses(ot,lt));const ut=[];lt.forEach(dt=>{const pt=tt[dt];pt&&ut.push(`grid-${dt}-${String(pt)}`)});const ht={root:["root",nt&&"container",it&&"item",st&&"zeroMinWidth",...ct,rt!=="row"&&`direction-xs-${String(rt)}`,at!=="wrap"&&`wrap-xs-${String(at)}`,...ut]};return composeClasses(ht,getGridUtilityClass,et)},Grid=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiGrid"}),{breakpoints:it}=useTheme(),ot=extendSxProp(rt),{className:at,columns:st,columnSpacing:lt,component:ct="div",container:ut=!1,direction:ht="row",item:dt=!1,rowSpacing:pt,spacing:mt=0,wrap:gt="wrap",zeroMinWidth:yt=!1}=ot,bt=_objectWithoutPropertiesLoose$g(ot,_excluded$11),wt=pt||mt,vt=lt||mt,kt=reactExports.useContext(GridContext$1),St=ut?st||12:kt,Et={},At=_extends$r({},bt);it.keys.forEach(Lt=>{bt[Lt]!=null&&(Et[Lt]=bt[Lt],delete At[Lt])});const Tt=_extends$r({},ot,{columns:St,container:ut,direction:ht,item:dt,rowSpacing:wt,columnSpacing:vt,wrap:gt,zeroMinWidth:yt,spacing:mt},Et,{breakpoints:it.keys}),Mt=useUtilityClasses$E(Tt);return jsxRuntimeExports.jsx(GridContext$1.Provider,{value:St,children:jsxRuntimeExports.jsx(GridRoot,_extends$r({ownerState:Tt,className:clsx(Mt.root,at),as:ct,ref:nt},At))})}),Grid$1=Grid,_excluded$10=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function getScale(tt){return`scale(${tt}, ${tt**2})`}const styles$3={entering:{opacity:1,transform:getScale(1)},entered:{opacity:1,transform:"none"}},isWebKit154=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),Grow=reactExports.forwardRef(function(et,nt){const{addEndListener:rt,appear:it=!0,children:ot,easing:at,in:st,onEnter:lt,onEntered:ct,onEntering:ut,onExit:ht,onExited:dt,onExiting:pt,style:mt,timeout:gt="auto",TransitionComponent:yt=Transition$1}=et,bt=_objectWithoutPropertiesLoose$g(et,_excluded$10),wt=reactExports.useRef(),vt=reactExports.useRef(),kt=useTheme(),St=reactExports.useRef(null),Et=useForkRef(St,ot.ref,nt),At=It=>Ot=>{if(It){const zt=St.current;Ot===void 0?It(zt):It(zt,Ot)}},Tt=At(ut),Mt=At((It,Ot)=>{reflow(It);const{duration:zt,delay:Ut,easing:Wt}=getTransitionProps({style:mt,timeout:gt,easing:at},{mode:"enter"});let Ft;gt==="auto"?(Ft=kt.transitions.getAutoHeightDuration(It.clientHeight),vt.current=Ft):Ft=zt,It.style.transition=[kt.transitions.create("opacity",{duration:Ft,delay:Ut}),kt.transitions.create("transform",{duration:isWebKit154?Ft:Ft*.666,delay:Ut,easing:Wt})].join(","),lt&<(It,Ot)}),Lt=At(ct),jt=At(pt),Rt=At(It=>{const{duration:Ot,delay:zt,easing:Ut}=getTransitionProps({style:mt,timeout:gt,easing:at},{mode:"exit"});let Wt;gt==="auto"?(Wt=kt.transitions.getAutoHeightDuration(It.clientHeight),vt.current=Wt):Wt=Ot,It.style.transition=[kt.transitions.create("opacity",{duration:Wt,delay:zt}),kt.transitions.create("transform",{duration:isWebKit154?Wt:Wt*.666,delay:isWebKit154?zt:zt||Wt*.333,easing:Ut})].join(","),It.style.opacity=0,It.style.transform=getScale(.75),ht&&ht(It)}),$t=At(dt),xt=It=>{gt==="auto"&&(wt.current=setTimeout(It,vt.current||0)),rt&&rt(St.current,It)};return reactExports.useEffect(()=>()=>{clearTimeout(wt.current)},[]),jsxRuntimeExports.jsx(yt,_extends$r({appear:it,in:st,nodeRef:St,onEnter:Mt,onEntered:Lt,onEntering:Tt,onExit:Rt,onExited:$t,onExiting:jt,addEndListener:xt,timeout:gt==="auto"?null:gt},bt,{children:(It,Ot)=>reactExports.cloneElement(ot,_extends$r({style:_extends$r({opacity:0,transform:getScale(.75),visibility:It==="exited"&&!st?"hidden":void 0},styles$3[It],mt,ot.props.style),ref:Et},Ot))}))});Grow.muiSupportAuto=!0;const Grow$1=Grow;function useMediaQueryOld(tt,et,nt,rt,it){const[ot,at]=reactExports.useState(()=>it&&nt?nt(tt).matches:rt?rt(tt).matches:et);return useEnhancedEffect$1(()=>{let st=!0;if(!nt)return;const lt=nt(tt),ct=()=>{st&&at(lt.matches)};return ct(),lt.addListener(ct),()=>{st=!1,lt.removeListener(ct)}},[tt,nt]),ot}const maybeReactUseSyncExternalStore=React$2["useSyncExternalStore"];function useMediaQueryNew(tt,et,nt,rt,it){const ot=reactExports.useCallback(()=>et,[et]),at=reactExports.useMemo(()=>{if(it&&nt)return()=>nt(tt).matches;if(rt!==null){const{matches:ut}=rt(tt);return()=>ut}return ot},[ot,tt,rt,it,nt]),[st,lt]=reactExports.useMemo(()=>{if(nt===null)return[ot,()=>()=>{}];const ut=nt(tt);return[()=>ut.matches,ht=>(ut.addListener(ht),()=>{ut.removeListener(ht)})]},[ot,nt,tt]);return maybeReactUseSyncExternalStore(lt,st,at)}function useMediaQuery(tt,et={}){const nt=useTheme$3(),rt=typeof window<"u"&&typeof window.matchMedia<"u",{defaultMatches:it=!1,matchMedia:ot=rt?window.matchMedia:null,ssrMatchMedia:at=null,noSsr:st=!1}=getThemeProps({name:"MuiUseMediaQuery",props:et,theme:nt});let lt=typeof tt=="function"?tt(nt):tt;return lt=lt.replace(/^@media( ?)/m,""),(maybeReactUseSyncExternalStore!==void 0?useMediaQueryNew:useMediaQueryOld)(lt,it,ot,at,st)}const _excluded$$=["disableUnderline","components","componentsProps","fullWidth","inputComponent","multiline","slotProps","slots","type"],useUtilityClasses$D=tt=>{const{classes:et,disableUnderline:nt}=tt,it=composeClasses({root:["root",!nt&&"underline"],input:["input"]},getInputUtilityClass,et);return _extends$r({},et,it)},InputRoot=styled$1(InputBaseRoot,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiInput",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[...rootOverridesResolver(tt,et),!nt.disableUnderline&&et.underline]}})(({theme:tt,ownerState:et})=>{let rt=tt.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return tt.vars&&(rt=`rgba(${tt.vars.palette.common.onBackgroundChannel} / ${tt.vars.opacity.inputUnderline})`),_extends$r({position:"relative"},et.formControl&&{"label + &":{marginTop:16}},!et.disableUnderline&&{"&:after":{borderBottom:`2px solid ${(tt.vars||tt).palette[et.color].main}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:tt.transitions.create("transform",{duration:tt.transitions.duration.shorter,easing:tt.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${inputClasses$1.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${inputClasses$1.error}`]:{"&:before, &:after":{borderBottomColor:(tt.vars||tt).palette.error.main}},"&:before":{borderBottom:`1px solid ${rt}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:tt.transitions.create("border-bottom-color",{duration:tt.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${inputClasses$1.disabled}, .${inputClasses$1.error}):before`]:{borderBottom:`2px solid ${(tt.vars||tt).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${rt}`}},[`&.${inputClasses$1.disabled}:before`]:{borderBottomStyle:"dotted"}})}),InputInput=styled$1(InputBaseComponent,{name:"MuiInput",slot:"Input",overridesResolver:inputOverridesResolver})({}),Input$2=reactExports.forwardRef(function(et,nt){var rt,it,ot,at;const st=useThemeProps({props:et,name:"MuiInput"}),{disableUnderline:lt,components:ct={},componentsProps:ut,fullWidth:ht=!1,inputComponent:dt="input",multiline:pt=!1,slotProps:mt,slots:gt={},type:yt="text"}=st,bt=_objectWithoutPropertiesLoose$g(st,_excluded$$),wt=useUtilityClasses$D(st),kt={root:{ownerState:{disableUnderline:lt}}},St=mt??ut?deepmerge$1(mt??ut,kt):kt,Et=(rt=(it=gt.root)!=null?it:ct.Root)!=null?rt:InputRoot,At=(ot=(at=gt.input)!=null?at:ct.Input)!=null?ot:InputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends$r({slots:{root:Et,input:At},slotProps:St,fullWidth:ht,inputComponent:dt,multiline:pt,ref:nt,type:yt},bt,{classes:wt}))});Input$2.muiName="Input";const Input$3=Input$2;function getInputAdornmentUtilityClass(tt){return generateUtilityClass("MuiInputAdornment",tt)}const inputAdornmentClasses=generateUtilityClasses("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),inputAdornmentClasses$1=inputAdornmentClasses;var _span$2;const _excluded$_=["children","className","component","disablePointerEvents","disableTypography","position","variant"],overridesResolver$3=(tt,et)=>{const{ownerState:nt}=tt;return[et.root,et[`position${capitalize(nt.position)}`],nt.disablePointerEvents===!0&&et.disablePointerEvents,et[nt.variant]]},useUtilityClasses$C=tt=>{const{classes:et,disablePointerEvents:nt,hiddenLabel:rt,position:it,size:ot,variant:at}=tt,st={root:["root",nt&&"disablePointerEvents",it&&`position${capitalize(it)}`,at,rt&&"hiddenLabel",ot&&`size${capitalize(ot)}`]};return composeClasses(st,getInputAdornmentUtilityClass,et)},InputAdornmentRoot=styled$1("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:overridesResolver$3})(({theme:tt,ownerState:et})=>_extends$r({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(tt.vars||tt).palette.action.active},et.variant==="filled"&&{[`&.${inputAdornmentClasses$1.positionStart}&:not(.${inputAdornmentClasses$1.hiddenLabel})`]:{marginTop:16}},et.position==="start"&&{marginRight:8},et.position==="end"&&{marginLeft:8},et.disablePointerEvents===!0&&{pointerEvents:"none"})),InputAdornment=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiInputAdornment"}),{children:it,className:ot,component:at="div",disablePointerEvents:st=!1,disableTypography:lt=!1,position:ct,variant:ut}=rt,ht=_objectWithoutPropertiesLoose$g(rt,_excluded$_),dt=useFormControl()||{};let pt=ut;ut&&dt.variant,dt&&!pt&&(pt=dt.variant);const mt=_extends$r({},rt,{hiddenLabel:dt.hiddenLabel,size:dt.size,disablePointerEvents:st,position:ct,variant:pt}),gt=useUtilityClasses$C(mt);return jsxRuntimeExports.jsx(FormControlContext$1.Provider,{value:null,children:jsxRuntimeExports.jsx(InputAdornmentRoot,_extends$r({as:at,ownerState:mt,className:clsx(gt.root,ot),ref:nt},ht,{children:typeof it=="string"&&!lt?jsxRuntimeExports.jsx(Typography$1,{color:"text.secondary",children:it}):jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ct==="start"?_span$2||(_span$2=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"})):null,it]})}))})}),MuiInputAdornment=InputAdornment;function getInputLabelUtilityClasses(tt){return generateUtilityClass("MuiInputLabel",tt)}generateUtilityClasses("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const _excluded$Z=["disableAnimation","margin","shrink","variant","className"],useUtilityClasses$B=tt=>{const{classes:et,formControl:nt,size:rt,shrink:it,disableAnimation:ot,variant:at,required:st}=tt,ct=composeClasses({root:["root",nt&&"formControl",!ot&&"animated",it&&"shrink",rt==="small"&&"sizeSmall",at],asterisk:[st&&"asterisk"]},getInputLabelUtilityClasses,et);return _extends$r({},et,ct)},InputLabelRoot=styled$1(FormLabel$1,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[{[`& .${formLabelClasses$1.asterisk}`]:et.asterisk},et.root,nt.formControl&&et.formControl,nt.size==="small"&&et.sizeSmall,nt.shrink&&et.shrink,!nt.disableAnimation&&et.animated,et[nt.variant]]}})(({theme:tt,ownerState:et})=>_extends$r({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},et.formControl&&{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"},et.size==="small"&&{transform:"translate(0, 17px) scale(1)"},et.shrink&&{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"},!et.disableAnimation&&{transition:tt.transitions.create(["color","transform","max-width"],{duration:tt.transitions.duration.shorter,easing:tt.transitions.easing.easeOut})},et.variant==="filled"&&_extends$r({zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},et.size==="small"&&{transform:"translate(12px, 13px) scale(1)"},et.shrink&&_extends$r({userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"},et.size==="small"&&{transform:"translate(12px, 4px) scale(0.75)"})),et.variant==="outlined"&&_extends$r({zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},et.size==="small"&&{transform:"translate(14px, 9px) scale(1)"},et.shrink&&{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}))),InputLabel=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({name:"MuiInputLabel",props:et}),{disableAnimation:it=!1,shrink:ot,className:at}=rt,st=_objectWithoutPropertiesLoose$g(rt,_excluded$Z),lt=useFormControl();let ct=ot;typeof ct>"u"&<&&(ct=lt.filled||lt.focused||lt.adornedStart);const ut=formControlState({props:rt,muiFormControl:lt,states:["size","variant","required"]}),ht=_extends$r({},rt,{disableAnimation:it,formControl:lt,shrink:ct,size:ut.size,variant:ut.variant,required:ut.required}),dt=useUtilityClasses$B(ht);return jsxRuntimeExports.jsx(InputLabelRoot,_extends$r({"data-shrink":ct,ownerState:ht,ref:nt,className:clsx(dt.root,at)},st,{classes:dt}))}),InputLabel$1=InputLabel,ListContext=reactExports.createContext({}),ListContext$1=ListContext;function getListUtilityClass(tt){return generateUtilityClass("MuiList",tt)}generateUtilityClasses("MuiList",["root","padding","dense","subheader"]);const _excluded$Y=["children","className","component","dense","disablePadding","subheader"],useUtilityClasses$A=tt=>{const{classes:et,disablePadding:nt,dense:rt,subheader:it}=tt;return composeClasses({root:["root",!nt&&"padding",rt&&"dense",it&&"subheader"]},getListUtilityClass,et)},ListRoot=styled$1("ul",{name:"MuiList",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,!nt.disablePadding&&et.padding,nt.dense&&et.dense,nt.subheader&&et.subheader]}})(({ownerState:tt})=>_extends$r({listStyle:"none",margin:0,padding:0,position:"relative"},!tt.disablePadding&&{paddingTop:8,paddingBottom:8},tt.subheader&&{paddingTop:0})),List=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiList"}),{children:it,className:ot,component:at="ul",dense:st=!1,disablePadding:lt=!1,subheader:ct}=rt,ut=_objectWithoutPropertiesLoose$g(rt,_excluded$Y),ht=reactExports.useMemo(()=>({dense:st}),[st]),dt=_extends$r({},rt,{component:at,dense:st,disablePadding:lt}),pt=useUtilityClasses$A(dt);return jsxRuntimeExports.jsx(ListContext$1.Provider,{value:ht,children:jsxRuntimeExports.jsxs(ListRoot,_extends$r({as:at,className:clsx(pt.root,ot),ref:nt,ownerState:dt},ut,{children:[ct,it]}))})}),List$1=List;function getListItemUtilityClass(tt){return generateUtilityClass("MuiListItem",tt)}const listItemClasses=generateUtilityClasses("MuiListItem",["root","container","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","padding","button","secondaryAction","selected"]),listItemClasses$1=listItemClasses,listItemButtonClasses=generateUtilityClasses("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]),listItemButtonClasses$1=listItemButtonClasses;function getListItemSecondaryActionClassesUtilityClass(tt){return generateUtilityClass("MuiListItemSecondaryAction",tt)}generateUtilityClasses("MuiListItemSecondaryAction",["root","disableGutters"]);const _excluded$X=["className"],useUtilityClasses$z=tt=>{const{disableGutters:et,classes:nt}=tt;return composeClasses({root:["root",et&&"disableGutters"]},getListItemSecondaryActionClassesUtilityClass,nt)},ListItemSecondaryActionRoot=styled$1("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.disableGutters&&et.disableGutters]}})(({ownerState:tt})=>_extends$r({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)"},tt.disableGutters&&{right:0})),ListItemSecondaryAction=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiListItemSecondaryAction"}),{className:it}=rt,ot=_objectWithoutPropertiesLoose$g(rt,_excluded$X),at=reactExports.useContext(ListContext$1),st=_extends$r({},rt,{disableGutters:at.disableGutters}),lt=useUtilityClasses$z(st);return jsxRuntimeExports.jsx(ListItemSecondaryActionRoot,_extends$r({className:clsx(lt.root,it),ownerState:st,ref:nt},ot))});ListItemSecondaryAction.muiName="ListItemSecondaryAction";const ListItemSecondaryAction$1=ListItemSecondaryAction,_excluded$W=["className"],_excluded2$9=["alignItems","autoFocus","button","children","className","component","components","componentsProps","ContainerComponent","ContainerProps","dense","disabled","disableGutters","disablePadding","divider","focusVisibleClassName","secondaryAction","selected","slotProps","slots"],overridesResolver$2=(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.dense&&et.dense,nt.alignItems==="flex-start"&&et.alignItemsFlexStart,nt.divider&&et.divider,!nt.disableGutters&&et.gutters,!nt.disablePadding&&et.padding,nt.button&&et.button,nt.hasSecondaryAction&&et.secondaryAction]},useUtilityClasses$y=tt=>{const{alignItems:et,button:nt,classes:rt,dense:it,disabled:ot,disableGutters:at,disablePadding:st,divider:lt,hasSecondaryAction:ct,selected:ut}=tt;return composeClasses({root:["root",it&&"dense",!at&&"gutters",!st&&"padding",lt&&"divider",ot&&"disabled",nt&&"button",et==="flex-start"&&"alignItemsFlexStart",ct&&"secondaryAction",ut&&"selected"],container:["container"]},getListItemUtilityClass,rt)},ListItemRoot=styled$1("div",{name:"MuiListItem",slot:"Root",overridesResolver:overridesResolver$2})(({theme:tt,ownerState:et})=>_extends$r({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left"},!et.disablePadding&&_extends$r({paddingTop:8,paddingBottom:8},et.dense&&{paddingTop:4,paddingBottom:4},!et.disableGutters&&{paddingLeft:16,paddingRight:16},!!et.secondaryAction&&{paddingRight:48}),!!et.secondaryAction&&{[`& > .${listItemButtonClasses$1.root}`]:{paddingRight:48}},{[`&.${listItemClasses$1.focusVisible}`]:{backgroundColor:(tt.vars||tt).palette.action.focus},[`&.${listItemClasses$1.selected}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.selectedOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity),[`&.${listItemClasses$1.focusVisible}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.focusOpacity}))`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity+tt.palette.action.focusOpacity)}},[`&.${listItemClasses$1.disabled}`]:{opacity:(tt.vars||tt).palette.action.disabledOpacity}},et.alignItems==="flex-start"&&{alignItems:"flex-start"},et.divider&&{borderBottom:`1px solid ${(tt.vars||tt).palette.divider}`,backgroundClip:"padding-box"},et.button&&{transition:tt.transitions.create("background-color",{duration:tt.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(tt.vars||tt).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${listItemClasses$1.selected}:hover`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.hoverOpacity}))`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity+tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.selectedOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity)}}},et.hasSecondaryAction&&{paddingRight:48})),ListItemContainer=styled$1("li",{name:"MuiListItem",slot:"Container",overridesResolver:(tt,et)=>et.container})({position:"relative"}),ListItem=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiListItem"}),{alignItems:it="center",autoFocus:ot=!1,button:at=!1,children:st,className:lt,component:ct,components:ut={},componentsProps:ht={},ContainerComponent:dt="li",ContainerProps:{className:pt}={},dense:mt=!1,disabled:gt=!1,disableGutters:yt=!1,disablePadding:bt=!1,divider:wt=!1,focusVisibleClassName:vt,secondaryAction:kt,selected:St=!1,slotProps:Et={},slots:At={}}=rt,Tt=_objectWithoutPropertiesLoose$g(rt.ContainerProps,_excluded$W),Mt=_objectWithoutPropertiesLoose$g(rt,_excluded2$9),Lt=reactExports.useContext(ListContext$1),jt=reactExports.useMemo(()=>({dense:mt||Lt.dense||!1,alignItems:it,disableGutters:yt}),[it,Lt.dense,mt,yt]),Rt=reactExports.useRef(null);useEnhancedEffect$1(()=>{ot&&Rt.current&&Rt.current.focus()},[ot]);const $t=reactExports.Children.toArray(st),xt=$t.length&&isMuiElement($t[$t.length-1],["ListItemSecondaryAction"]),It=_extends$r({},rt,{alignItems:it,autoFocus:ot,button:at,dense:jt.dense,disabled:gt,disableGutters:yt,disablePadding:bt,divider:wt,hasSecondaryAction:xt,selected:St}),Ot=useUtilityClasses$y(It),zt=useForkRef(Rt,nt),Ut=At.root||ut.Root||ListItemRoot,Wt=Et.root||ht.root||{},Ft=_extends$r({className:clsx(Ot.root,Wt.className,lt),disabled:gt},Mt);let Nt=ct||"li";return at&&(Ft.component=ct||"div",Ft.focusVisibleClassName=clsx(listItemClasses$1.focusVisible,vt),Nt=ButtonBase$1),xt?(Nt=!Ft.component&&!ct?"div":Nt,dt==="li"&&(Nt==="li"?Nt="div":Ft.component==="li"&&(Ft.component="div")),jsxRuntimeExports.jsx(ListContext$1.Provider,{value:jt,children:jsxRuntimeExports.jsxs(ListItemContainer,_extends$r({as:dt,className:clsx(Ot.container,pt),ref:zt,ownerState:It},Tt,{children:[jsxRuntimeExports.jsx(Ut,_extends$r({},Wt,!isHostComponent(Ut)&&{as:Nt,ownerState:_extends$r({},It,Wt.ownerState)},Ft,{children:$t})),$t.pop()]}))})):jsxRuntimeExports.jsx(ListContext$1.Provider,{value:jt,children:jsxRuntimeExports.jsxs(Ut,_extends$r({},Wt,{as:Nt,ref:zt},!isHostComponent(Ut)&&{ownerState:_extends$r({},It,Wt.ownerState)},Ft,{children:[$t,kt&&jsxRuntimeExports.jsx(ListItemSecondaryAction$1,{children:kt})]}))})}),ListItem$1=ListItem,listItemIconClasses=generateUtilityClasses("MuiListItemIcon",["root","alignItemsFlexStart"]),listItemIconClasses$1=listItemIconClasses,listItemTextClasses=generateUtilityClasses("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),listItemTextClasses$1=listItemTextClasses,_excluded$V=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function nextItem$1(tt,et,nt){return tt===et?tt.firstChild:et&&et.nextElementSibling?et.nextElementSibling:nt?null:tt.firstChild}function previousItem$1(tt,et,nt){return tt===et?nt?tt.firstChild:tt.lastChild:et&&et.previousElementSibling?et.previousElementSibling:nt?null:tt.lastChild}function textCriteriaMatches(tt,et){if(et===void 0)return!0;let nt=tt.innerText;return nt===void 0&&(nt=tt.textContent),nt=nt.trim().toLowerCase(),nt.length===0?!1:et.repeating?nt[0]===et.keys[0]:nt.indexOf(et.keys.join(""))===0}function moveFocus$1(tt,et,nt,rt,it,ot){let at=!1,st=it(tt,et,et?nt:!1);for(;st;){if(st===tt.firstChild){if(at)return!1;at=!0}const lt=rt?!1:st.disabled||st.getAttribute("aria-disabled")==="true";if(!st.hasAttribute("tabindex")||!textCriteriaMatches(st,ot)||lt)st=it(tt,st,nt);else return st.focus(),!0}return!1}const MenuList=reactExports.forwardRef(function(et,nt){const{actions:rt,autoFocus:it=!1,autoFocusItem:ot=!1,children:at,className:st,disabledItemsFocusable:lt=!1,disableListWrap:ct=!1,onKeyDown:ut,variant:ht="selectedMenu"}=et,dt=_objectWithoutPropertiesLoose$g(et,_excluded$V),pt=reactExports.useRef(null),mt=reactExports.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});useEnhancedEffect$1(()=>{it&&pt.current.focus()},[it]),reactExports.useImperativeHandle(rt,()=>({adjustStyleForScrollbar:(vt,kt)=>{const St=!pt.current.style.width;if(vt.clientHeight{const kt=pt.current,St=vt.key,Et=ownerDocument(kt).activeElement;if(St==="ArrowDown")vt.preventDefault(),moveFocus$1(kt,Et,ct,lt,nextItem$1);else if(St==="ArrowUp")vt.preventDefault(),moveFocus$1(kt,Et,ct,lt,previousItem$1);else if(St==="Home")vt.preventDefault(),moveFocus$1(kt,null,ct,lt,nextItem$1);else if(St==="End")vt.preventDefault(),moveFocus$1(kt,null,ct,lt,previousItem$1);else if(St.length===1){const At=mt.current,Tt=St.toLowerCase(),Mt=performance.now();At.keys.length>0&&(Mt-At.lastTime>500?(At.keys=[],At.repeating=!0,At.previousKeyMatched=!0):At.repeating&&Tt!==At.keys[0]&&(At.repeating=!1)),At.lastTime=Mt,At.keys.push(Tt);const Lt=Et&&!At.repeating&&textCriteriaMatches(Et,At);At.previousKeyMatched&&(Lt||moveFocus$1(kt,Et,!1,lt,nextItem$1,At))?vt.preventDefault():At.previousKeyMatched=!1}ut&&ut(vt)},yt=useForkRef(pt,nt);let bt=-1;reactExports.Children.forEach(at,(vt,kt)=>{if(!reactExports.isValidElement(vt)){bt===kt&&(bt+=1,bt>=at.length&&(bt=-1));return}vt.props.disabled||(ht==="selectedMenu"&&vt.props.selected||bt===-1)&&(bt=kt),bt===kt&&(vt.props.disabled||vt.props.muiSkipListHighlight||vt.type.muiSkipListHighlight)&&(bt+=1,bt>=at.length&&(bt=-1))});const wt=reactExports.Children.map(at,(vt,kt)=>{if(kt===bt){const St={};return ot&&(St.autoFocus=!0),vt.props.tabIndex===void 0&&ht==="selectedMenu"&&(St.tabIndex=0),reactExports.cloneElement(vt,St)}return vt});return jsxRuntimeExports.jsx(List$1,_extends$r({role:"menu",ref:yt,className:st,onKeyDown:gt,tabIndex:it?0:-1},dt,{children:wt}))}),MenuList$1=MenuList;function getPopoverUtilityClass(tt){return generateUtilityClass("MuiPopover",tt)}generateUtilityClasses("MuiPopover",["root","paper"]);const _excluded$U=["onEntering"],_excluded2$8=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","slots","slotProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"],_excluded3$4=["slotProps"];function getOffsetTop(tt,et){let nt=0;return typeof et=="number"?nt=et:et==="center"?nt=tt.height/2:et==="bottom"&&(nt=tt.height),nt}function getOffsetLeft(tt,et){let nt=0;return typeof et=="number"?nt=et:et==="center"?nt=tt.width/2:et==="right"&&(nt=tt.width),nt}function getTransformOriginValue(tt){return[tt.horizontal,tt.vertical].map(et=>typeof et=="number"?`${et}px`:et).join(" ")}function resolveAnchorEl(tt){return typeof tt=="function"?tt():tt}const useUtilityClasses$x=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],paper:["paper"]},getPopoverUtilityClass,et)},PopoverRoot=styled$1(Modal$1,{name:"MuiPopover",slot:"Root",overridesResolver:(tt,et)=>et.root})({}),PopoverPaper=styled$1(Paper$1,{name:"MuiPopover",slot:"Paper",overridesResolver:(tt,et)=>et.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),Popover=reactExports.forwardRef(function(et,nt){var rt,it,ot;const at=useThemeProps({props:et,name:"MuiPopover"}),{action:st,anchorEl:lt,anchorOrigin:ct={vertical:"top",horizontal:"left"},anchorPosition:ut,anchorReference:ht="anchorEl",children:dt,className:pt,container:mt,elevation:gt=8,marginThreshold:yt=16,open:bt,PaperProps:wt={},slots:vt,slotProps:kt,transformOrigin:St={vertical:"top",horizontal:"left"},TransitionComponent:Et=Grow$1,transitionDuration:At="auto",TransitionProps:{onEntering:Tt}={}}=at,Mt=_objectWithoutPropertiesLoose$g(at.TransitionProps,_excluded$U),Lt=_objectWithoutPropertiesLoose$g(at,_excluded2$8),jt=(rt=kt==null?void 0:kt.paper)!=null?rt:wt,Rt=reactExports.useRef(),$t=useForkRef(Rt,jt.ref),xt=_extends$r({},at,{anchorOrigin:ct,anchorReference:ht,elevation:gt,marginThreshold:yt,externalPaperSlotProps:jt,transformOrigin:St,TransitionComponent:Et,transitionDuration:At,TransitionProps:Mt}),It=useUtilityClasses$x(xt),Ot=reactExports.useCallback(()=>{if(ht==="anchorPosition")return ut;const en=resolveAnchorEl(lt),Rn=(en&&en.nodeType===1?en:ownerDocument(Rt.current).body).getBoundingClientRect();return{top:Rn.top+getOffsetTop(Rn,ct.vertical),left:Rn.left+getOffsetLeft(Rn,ct.horizontal)}},[lt,ct.horizontal,ct.vertical,ut,ht]),zt=reactExports.useCallback(en=>({vertical:getOffsetTop(en,St.vertical),horizontal:getOffsetLeft(en,St.horizontal)}),[St.horizontal,St.vertical]),Ut=reactExports.useCallback(en=>{const Tn={width:en.offsetWidth,height:en.offsetHeight},Rn=zt(Tn);if(ht==="none")return{top:null,left:null,transformOrigin:getTransformOriginValue(Rn)};const An=Ot();let yn=An.top-Rn.vertical,kn=An.left-Rn.horizontal;const dn=yn+Tn.height,gn=kn+Tn.width,Cn=ownerWindow(resolveAnchorEl(lt)),$n=Cn.innerHeight-yt,un=Cn.innerWidth-yt;if(yn$n){const rn=dn-$n;yn-=rn,Rn.vertical+=rn}if(knun){const rn=gn-un;kn-=rn,Rn.horizontal+=rn}return{top:`${Math.round(yn)}px`,left:`${Math.round(kn)}px`,transformOrigin:getTransformOriginValue(Rn)}},[lt,ht,Ot,zt,yt]),[Wt,Ft]=reactExports.useState(bt),Nt=reactExports.useCallback(()=>{const en=Rt.current;if(!en)return;const Tn=Ut(en);Tn.top!==null&&(en.style.top=Tn.top),Tn.left!==null&&(en.style.left=Tn.left),en.style.transformOrigin=Tn.transformOrigin,Ft(!0)},[Ut]),Ct=(en,Tn)=>{Tt&&Tt(en,Tn),Nt()},Ht=()=>{Ft(!1)};reactExports.useEffect(()=>{bt&&Nt()}),reactExports.useImperativeHandle(st,()=>bt?{updatePosition:()=>{Nt()}}:null,[bt,Nt]),reactExports.useEffect(()=>{if(!bt)return;const en=debounce$5(()=>{Nt()}),Tn=ownerWindow(lt);return Tn.addEventListener("resize",en),()=>{en.clear(),Tn.removeEventListener("resize",en)}},[lt,bt,Nt]);let Jt=At;At==="auto"&&!Et.muiSupportAuto&&(Jt=void 0);const nn=mt||(lt?ownerDocument(resolveAnchorEl(lt)).body:void 0),Yt=(it=vt==null?void 0:vt.root)!=null?it:PopoverRoot,fn=(ot=vt==null?void 0:vt.paper)!=null?ot:PopoverPaper,cn=useSlotProps({elementType:fn,externalSlotProps:_extends$r({},jt,{style:Wt?jt.style:_extends$r({},jt.style,{opacity:0})}),additionalProps:{elevation:gt,ref:$t},ownerState:xt,className:clsx(It.paper,jt==null?void 0:jt.className)}),_n=useSlotProps({elementType:Yt,externalSlotProps:(kt==null?void 0:kt.root)||{},externalForwardedProps:Lt,additionalProps:{ref:nt,slotProps:{backdrop:{invisible:!0}},container:nn,open:bt},ownerState:xt,className:clsx(It.root,pt)}),{slotProps:En}=_n,an=_objectWithoutPropertiesLoose$g(_n,_excluded3$4);return jsxRuntimeExports.jsx(Yt,_extends$r({},an,!isHostComponent(Yt)&&{slotProps:En},{children:jsxRuntimeExports.jsx(Et,_extends$r({appear:!0,in:bt,onEntering:Ct,onExited:Ht,timeout:Jt},Mt,{children:jsxRuntimeExports.jsx(fn,_extends$r({},cn,{children:dt}))}))}))}),Popover$1=Popover;function getMenuUtilityClass(tt){return generateUtilityClass("MuiMenu",tt)}generateUtilityClasses("MuiMenu",["root","paper","list"]);const _excluded$T=["onEntering"],_excluded2$7=["autoFocus","children","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant"],RTL_ORIGIN={vertical:"top",horizontal:"right"},LTR_ORIGIN={vertical:"top",horizontal:"left"},useUtilityClasses$w=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],paper:["paper"],list:["list"]},getMenuUtilityClass,et)},MenuRoot=styled$1(Popover$1,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(tt,et)=>et.root})({}),MenuPaper=styled$1(PopoverPaper,{name:"MuiMenu",slot:"Paper",overridesResolver:(tt,et)=>et.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),MenuMenuList=styled$1(MenuList$1,{name:"MuiMenu",slot:"List",overridesResolver:(tt,et)=>et.list})({outline:0}),Menu=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiMenu"}),{autoFocus:it=!0,children:ot,disableAutoFocusItem:at=!1,MenuListProps:st={},onClose:lt,open:ct,PaperProps:ut={},PopoverClasses:ht,transitionDuration:dt="auto",TransitionProps:{onEntering:pt}={},variant:mt="selectedMenu"}=rt,gt=_objectWithoutPropertiesLoose$g(rt.TransitionProps,_excluded$T),yt=_objectWithoutPropertiesLoose$g(rt,_excluded2$7),bt=useTheme(),wt=bt.direction==="rtl",vt=_extends$r({},rt,{autoFocus:it,disableAutoFocusItem:at,MenuListProps:st,onEntering:pt,PaperProps:ut,transitionDuration:dt,TransitionProps:gt,variant:mt}),kt=useUtilityClasses$w(vt),St=it&&!at&&ct,Et=reactExports.useRef(null),At=(Lt,jt)=>{Et.current&&Et.current.adjustStyleForScrollbar(Lt,bt),pt&&pt(Lt,jt)},Tt=Lt=>{Lt.key==="Tab"&&(Lt.preventDefault(),lt&<(Lt,"tabKeyDown"))};let Mt=-1;return reactExports.Children.map(ot,(Lt,jt)=>{reactExports.isValidElement(Lt)&&(Lt.props.disabled||(mt==="selectedMenu"&&Lt.props.selected||Mt===-1)&&(Mt=jt))}),jsxRuntimeExports.jsx(MenuRoot,_extends$r({onClose:lt,anchorOrigin:{vertical:"bottom",horizontal:wt?"right":"left"},transformOrigin:wt?RTL_ORIGIN:LTR_ORIGIN,slots:{paper:MenuPaper},slotProps:{paper:_extends$r({},ut,{classes:_extends$r({},ut.classes,{root:kt.paper})})},className:kt.root,open:ct,ref:nt,transitionDuration:dt,TransitionProps:_extends$r({onEntering:At},gt),ownerState:vt},yt,{classes:ht,children:jsxRuntimeExports.jsx(MenuMenuList,_extends$r({onKeyDown:Tt,actions:Et,autoFocus:it&&(Mt===-1||at),autoFocusItem:St,variant:mt},st,{className:clsx(kt.list,st.className),children:ot}))}))}),Menu$1=Menu;function getMenuItemUtilityClass(tt){return generateUtilityClass("MuiMenuItem",tt)}const menuItemClasses=generateUtilityClasses("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),menuItemClasses$1=menuItemClasses,_excluded$S=["autoFocus","component","dense","divider","disableGutters","focusVisibleClassName","role","tabIndex","className"],overridesResolver$1=(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.dense&&et.dense,nt.divider&&et.divider,!nt.disableGutters&&et.gutters]},useUtilityClasses$v=tt=>{const{disabled:et,dense:nt,divider:rt,disableGutters:it,selected:ot,classes:at}=tt,lt=composeClasses({root:["root",nt&&"dense",et&&"disabled",!it&&"gutters",rt&&"divider",ot&&"selected"]},getMenuItemUtilityClass,at);return _extends$r({},at,lt)},MenuItemRoot=styled$1(ButtonBase$1,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:overridesResolver$1})(({theme:tt,ownerState:et})=>_extends$r({},tt.typography.body1,{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap"},!et.disableGutters&&{paddingLeft:16,paddingRight:16},et.divider&&{borderBottom:`1px solid ${(tt.vars||tt).palette.divider}`,backgroundClip:"padding-box"},{"&:hover":{textDecoration:"none",backgroundColor:(tt.vars||tt).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${menuItemClasses$1.selected}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.selectedOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity),[`&.${menuItemClasses$1.focusVisible}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.focusOpacity}))`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity+tt.palette.action.focusOpacity)}},[`&.${menuItemClasses$1.selected}:hover`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.hoverOpacity}))`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity+tt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.selectedOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity)}},[`&.${menuItemClasses$1.focusVisible}`]:{backgroundColor:(tt.vars||tt).palette.action.focus},[`&.${menuItemClasses$1.disabled}`]:{opacity:(tt.vars||tt).palette.action.disabledOpacity},[`& + .${dividerClasses$1.root}`]:{marginTop:tt.spacing(1),marginBottom:tt.spacing(1)},[`& + .${dividerClasses$1.inset}`]:{marginLeft:52},[`& .${listItemTextClasses$1.root}`]:{marginTop:0,marginBottom:0},[`& .${listItemTextClasses$1.inset}`]:{paddingLeft:36},[`& .${listItemIconClasses$1.root}`]:{minWidth:36}},!et.dense&&{[tt.breakpoints.up("sm")]:{minHeight:"auto"}},et.dense&&_extends$r({minHeight:32,paddingTop:4,paddingBottom:4},tt.typography.body2,{[`& .${listItemIconClasses$1.root} svg`]:{fontSize:"1.25rem"}}))),MenuItem=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiMenuItem"}),{autoFocus:it=!1,component:ot="li",dense:at=!1,divider:st=!1,disableGutters:lt=!1,focusVisibleClassName:ct,role:ut="menuitem",tabIndex:ht,className:dt}=rt,pt=_objectWithoutPropertiesLoose$g(rt,_excluded$S),mt=reactExports.useContext(ListContext$1),gt=reactExports.useMemo(()=>({dense:at||mt.dense||!1,disableGutters:lt}),[mt.dense,at,lt]),yt=reactExports.useRef(null);useEnhancedEffect$1(()=>{it&&yt.current&&yt.current.focus()},[it]);const bt=_extends$r({},rt,{dense:gt.dense,divider:st,disableGutters:lt}),wt=useUtilityClasses$v(rt),vt=useForkRef(yt,nt);let kt;return rt.disabled||(kt=ht!==void 0?ht:-1),jsxRuntimeExports.jsx(ListContext$1.Provider,{value:gt,children:jsxRuntimeExports.jsx(MenuItemRoot,_extends$r({ref:vt,role:ut,tabIndex:kt,component:ot,focusVisibleClassName:clsx(wt.focusVisible,ct),className:clsx(wt.root,dt)},pt,{ownerState:bt,classes:wt}))})}),MenuItem$1=MenuItem;function getNativeSelectUtilityClasses(tt){return generateUtilityClass("MuiNativeSelect",tt)}const nativeSelectClasses=generateUtilityClasses("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),nativeSelectClasses$1=nativeSelectClasses,_excluded$R=["className","disabled","error","IconComponent","inputRef","variant"],useUtilityClasses$u=tt=>{const{classes:et,variant:nt,disabled:rt,multiple:it,open:ot,error:at}=tt,st={select:["select",nt,rt&&"disabled",it&&"multiple",at&&"error"],icon:["icon",`icon${capitalize(nt)}`,ot&&"iconOpen",rt&&"disabled"]};return composeClasses(st,getNativeSelectUtilityClasses,et)},nativeSelectSelectStyles=({ownerState:tt,theme:et})=>_extends$r({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":_extends$r({},et.vars?{backgroundColor:`rgba(${et.vars.palette.common.onBackgroundChannel} / 0.05)`}:{backgroundColor:et.palette.mode==="light"?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"},{borderRadius:0}),"&::-ms-expand":{display:"none"},[`&.${nativeSelectClasses$1.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(et.vars||et).palette.background.paper},"&&&":{paddingRight:24,minWidth:16}},tt.variant==="filled"&&{"&&&":{paddingRight:32}},tt.variant==="outlined"&&{borderRadius:(et.vars||et).shape.borderRadius,"&:focus":{borderRadius:(et.vars||et).shape.borderRadius},"&&&":{paddingRight:32}}),NativeSelectSelect=styled$1("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:rootShouldForwardProp,overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.select,et[nt.variant],nt.error&&et.error,{[`&.${nativeSelectClasses$1.multiple}`]:et.multiple}]}})(nativeSelectSelectStyles),nativeSelectIconStyles=({ownerState:tt,theme:et})=>_extends$r({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(et.vars||et).palette.action.active,[`&.${nativeSelectClasses$1.disabled}`]:{color:(et.vars||et).palette.action.disabled}},tt.open&&{transform:"rotate(180deg)"},tt.variant==="filled"&&{right:7},tt.variant==="outlined"&&{right:7}),NativeSelectIcon=styled$1("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.icon,nt.variant&&et[`icon${capitalize(nt.variant)}`],nt.open&&et.iconOpen]}})(nativeSelectIconStyles),NativeSelectInput=reactExports.forwardRef(function(et,nt){const{className:rt,disabled:it,error:ot,IconComponent:at,inputRef:st,variant:lt="standard"}=et,ct=_objectWithoutPropertiesLoose$g(et,_excluded$R),ut=_extends$r({},et,{disabled:it,variant:lt,error:ot}),ht=useUtilityClasses$u(ut);return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(NativeSelectSelect,_extends$r({ownerState:ut,className:clsx(ht.select,rt),disabled:it,ref:st||nt},ct)),et.multiple?null:jsxRuntimeExports.jsx(NativeSelectIcon,{as:at,ownerState:ut,className:ht.icon})]})}),NativeSelectInput$1=NativeSelectInput;var _span$1;const _excluded$Q=["children","classes","className","label","notched"],NotchedOutlineRoot$1=styled$1("fieldset")({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),NotchedOutlineLegend=styled$1("legend")(({ownerState:tt,theme:et})=>_extends$r({float:"unset",width:"auto",overflow:"hidden"},!tt.withLabel&&{padding:0,lineHeight:"11px",transition:et.transitions.create("width",{duration:150,easing:et.transitions.easing.easeOut})},tt.withLabel&&_extends$r({display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:et.transitions.create("max-width",{duration:50,easing:et.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},tt.notched&&{maxWidth:"100%",transition:et.transitions.create("max-width",{duration:100,easing:et.transitions.easing.easeOut,delay:50})})));function NotchedOutline(tt){const{className:et,label:nt,notched:rt}=tt,it=_objectWithoutPropertiesLoose$g(tt,_excluded$Q),ot=nt!=null&&nt!=="",at=_extends$r({},tt,{notched:rt,withLabel:ot});return jsxRuntimeExports.jsx(NotchedOutlineRoot$1,_extends$r({"aria-hidden":!0,className:et,ownerState:at},it,{children:jsxRuntimeExports.jsx(NotchedOutlineLegend,{ownerState:at,children:ot?jsxRuntimeExports.jsx("span",{children:nt}):_span$1||(_span$1=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"}))})}))}const _excluded$P=["components","fullWidth","inputComponent","label","multiline","notched","slots","type"],useUtilityClasses$t=tt=>{const{classes:et}=tt,rt=composeClasses({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},getOutlinedInputUtilityClass,et);return _extends$r({},et,rt)},OutlinedInputRoot=styled$1(InputBaseRoot,{shouldForwardProp:tt=>rootShouldForwardProp(tt)||tt==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:rootOverridesResolver})(({theme:tt,ownerState:et})=>{const nt=tt.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return _extends$r({position:"relative",borderRadius:(tt.vars||tt).shape.borderRadius,[`&:hover .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(tt.vars||tt).palette.text.primary},"@media (hover: none)":{[`&:hover .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:tt.vars?`rgba(${tt.vars.palette.common.onBackgroundChannel} / 0.23)`:nt}},[`&.${outlinedInputClasses$1.focused} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(tt.vars||tt).palette[et.color].main,borderWidth:2},[`&.${outlinedInputClasses$1.error} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(tt.vars||tt).palette.error.main},[`&.${outlinedInputClasses$1.disabled} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(tt.vars||tt).palette.action.disabled}},et.startAdornment&&{paddingLeft:14},et.endAdornment&&{paddingRight:14},et.multiline&&_extends$r({padding:"16.5px 14px"},et.size==="small"&&{padding:"8.5px 14px"}))}),NotchedOutlineRoot=styled$1(NotchedOutline,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(tt,et)=>et.notchedOutline})(({theme:tt})=>{const et=tt.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:tt.vars?`rgba(${tt.vars.palette.common.onBackgroundChannel} / 0.23)`:et}}),OutlinedInputInput=styled$1(InputBaseComponent,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:tt,ownerState:et})=>_extends$r({padding:"16.5px 14px"},!tt.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:tt.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:tt.palette.mode==="light"?null:"#fff",caretColor:tt.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},tt.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[tt.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},et.size==="small"&&{padding:"8.5px 14px"},et.multiline&&{padding:0},et.startAdornment&&{paddingLeft:0},et.endAdornment&&{paddingRight:0})),OutlinedInput=reactExports.forwardRef(function(et,nt){var rt,it,ot,at,st;const lt=useThemeProps({props:et,name:"MuiOutlinedInput"}),{components:ct={},fullWidth:ut=!1,inputComponent:ht="input",label:dt,multiline:pt=!1,notched:mt,slots:gt={},type:yt="text"}=lt,bt=_objectWithoutPropertiesLoose$g(lt,_excluded$P),wt=useUtilityClasses$t(lt),vt=useFormControl(),kt=formControlState({props:lt,muiFormControl:vt,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),St=_extends$r({},lt,{color:kt.color||"primary",disabled:kt.disabled,error:kt.error,focused:kt.focused,formControl:vt,fullWidth:ut,hiddenLabel:kt.hiddenLabel,multiline:pt,size:kt.size,type:yt}),Et=(rt=(it=gt.root)!=null?it:ct.Root)!=null?rt:OutlinedInputRoot,At=(ot=(at=gt.input)!=null?at:ct.Input)!=null?ot:OutlinedInputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends$r({slots:{root:Et,input:At},renderSuffix:Tt=>jsxRuntimeExports.jsx(NotchedOutlineRoot,{ownerState:St,className:wt.notchedOutline,label:dt!=null&&dt!==""&&kt.required?st||(st=jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[dt," ","*"]})):dt,notched:typeof mt<"u"?mt:!!(Tt.startAdornment||Tt.filled||Tt.focused)}),fullWidth:ut,inputComponent:ht,multiline:pt,ref:nt,type:yt},bt,{classes:_extends$r({},wt,{notchedOutline:null})}))});OutlinedInput.muiName="Input";const OutlinedInput$1=OutlinedInput;function getSelectUtilityClasses(tt){return generateUtilityClass("MuiSelect",tt)}const selectClasses=generateUtilityClasses("MuiSelect",["select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),selectClasses$1=selectClasses;var _span;const _excluded$O=["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","error","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"],SelectSelect=styled$1("div",{name:"MuiSelect",slot:"Select",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[{[`&.${selectClasses$1.select}`]:et.select},{[`&.${selectClasses$1.select}`]:et[nt.variant]},{[`&.${selectClasses$1.error}`]:et.error},{[`&.${selectClasses$1.multiple}`]:et.multiple}]}})(nativeSelectSelectStyles,{[`&.${selectClasses$1.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),SelectIcon=styled$1("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.icon,nt.variant&&et[`icon${capitalize(nt.variant)}`],nt.open&&et.iconOpen]}})(nativeSelectIconStyles),SelectNativeInput=styled$1("input",{shouldForwardProp:tt=>slotShouldForwardProp(tt)&&tt!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(tt,et)=>et.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function areEqualValues(tt,et){return typeof et=="object"&&et!==null?tt===et:String(tt)===String(et)}function isEmpty(tt){return tt==null||typeof tt=="string"&&!tt.trim()}const useUtilityClasses$s=tt=>{const{classes:et,variant:nt,disabled:rt,multiple:it,open:ot,error:at}=tt,st={select:["select",nt,rt&&"disabled",it&&"multiple",at&&"error"],icon:["icon",`icon${capitalize(nt)}`,ot&&"iconOpen",rt&&"disabled"],nativeInput:["nativeInput"]};return composeClasses(st,getSelectUtilityClasses,et)},SelectInput=reactExports.forwardRef(function(et,nt){const{"aria-describedby":rt,"aria-label":it,autoFocus:ot,autoWidth:at,children:st,className:lt,defaultOpen:ct,defaultValue:ut,disabled:ht,displayEmpty:dt,error:pt=!1,IconComponent:mt,inputRef:gt,labelId:yt,MenuProps:bt={},multiple:wt,name:vt,onBlur:kt,onChange:St,onClose:Et,onFocus:At,onOpen:Tt,open:Mt,readOnly:Lt,renderValue:jt,SelectDisplayProps:Rt={},tabIndex:$t,value:xt,variant:It="standard"}=et,Ot=_objectWithoutPropertiesLoose$g(et,_excluded$O),[zt,Ut]=useControlled({controlled:xt,default:ut,name:"Select"}),[Wt,Ft]=useControlled({controlled:Mt,default:ct,name:"Select"}),Nt=reactExports.useRef(null),Ct=reactExports.useRef(null),[Ht,Jt]=reactExports.useState(null),{current:nn}=reactExports.useRef(Mt!=null),[Yt,fn]=reactExports.useState(),cn=useForkRef(nt,gt),_n=reactExports.useCallback(wn=>{Ct.current=wn,wn&&Jt(wn)},[]),En=Ht==null?void 0:Ht.parentNode;reactExports.useImperativeHandle(cn,()=>({focus:()=>{Ct.current.focus()},node:Nt.current,value:zt}),[zt]),reactExports.useEffect(()=>{ct&&Wt&&Ht&&!nn&&(fn(at?null:En.clientWidth),Ct.current.focus())},[Ht,at]),reactExports.useEffect(()=>{ot&&Ct.current.focus()},[ot]),reactExports.useEffect(()=>{if(!yt)return;const wn=ownerDocument(Ct.current).getElementById(yt);if(wn){const On=()=>{getSelection().isCollapsed&&Ct.current.focus()};return wn.addEventListener("click",On),()=>{wn.removeEventListener("click",On)}}},[yt]);const an=(wn,On)=>{wn?Tt&&Tt(On):Et&&Et(On),nn||(fn(at?null:En.clientWidth),Ft(wn))},en=wn=>{wn.button===0&&(wn.preventDefault(),Ct.current.focus(),an(!0,wn))},Tn=wn=>{an(!1,wn)},Rn=reactExports.Children.toArray(st),An=wn=>{const On=Rn.find(jn=>jn.props.value===wn.target.value);On!==void 0&&(Ut(On.props.value),St&&St(wn,On))},yn=wn=>On=>{let jn;if(On.currentTarget.hasAttribute("tabindex")){if(wt){jn=Array.isArray(zt)?zt.slice():[];const Un=zt.indexOf(wn.props.value);Un===-1?jn.push(wn.props.value):jn.splice(Un,1)}else jn=wn.props.value;if(wn.props.onClick&&wn.props.onClick(On),zt!==jn&&(Ut(jn),St)){const Un=On.nativeEvent||On,tr=new Un.constructor(Un.type,Un);Object.defineProperty(tr,"target",{writable:!0,value:{value:jn,name:vt}}),St(tr,wn)}wt||an(!1,On)}},kn=wn=>{Lt||[" ","ArrowUp","ArrowDown","Enter"].indexOf(wn.key)!==-1&&(wn.preventDefault(),an(!0,wn))},dn=Ht!==null&&Wt,gn=wn=>{!dn&&kt&&(Object.defineProperty(wn,"target",{writable:!0,value:{value:zt,name:vt}}),kt(wn))};delete Ot["aria-invalid"];let Cn,$n;const un=[];let rn=!1;(isFilled({value:zt})||dt)&&(jt?Cn=jt(zt):rn=!0);const Sn=Rn.map(wn=>{if(!reactExports.isValidElement(wn))return null;let On;if(wt){if(!Array.isArray(zt))throw new Error(formatMuiErrorMessage(2));On=zt.some(jn=>areEqualValues(jn,wn.props.value)),On&&rn&&un.push(wn.props.children)}else On=areEqualValues(zt,wn.props.value),On&&rn&&($n=wn.props.children);return reactExports.cloneElement(wn,{"aria-selected":On?"true":"false",onClick:yn(wn),onKeyUp:jn=>{jn.key===" "&&jn.preventDefault(),wn.props.onKeyUp&&wn.props.onKeyUp(jn)},role:"option",selected:On,value:void 0,"data-value":wn.props.value})});rn&&(wt?un.length===0?Cn=null:Cn=un.reduce((wn,On,jn)=>(wn.push(On),jn{const{classes:et}=tt;return et},styledRootConfig={name:"MuiSelect",overridesResolver:(tt,et)=>et.root,shouldForwardProp:tt=>rootShouldForwardProp(tt)&&tt!=="variant",slot:"Root"},StyledInput$1=styled$1(Input$3,styledRootConfig)(""),StyledOutlinedInput=styled$1(OutlinedInput$1,styledRootConfig)(""),StyledFilledInput=styled$1(FilledInput$1,styledRootConfig)(""),Select$3=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({name:"MuiSelect",props:et}),{autoWidth:it=!1,children:ot,classes:at={},className:st,defaultOpen:lt=!1,displayEmpty:ct=!1,IconComponent:ut=ArrowDropDownIcon$1,id:ht,input:dt,inputProps:pt,label:mt,labelId:gt,MenuProps:yt,multiple:bt=!1,native:wt=!1,onClose:vt,onOpen:kt,open:St,renderValue:Et,SelectDisplayProps:At,variant:Tt="outlined"}=rt,Mt=_objectWithoutPropertiesLoose$g(rt,_excluded$N),Lt=wt?NativeSelectInput$1:SelectInput$1,jt=useFormControl(),Rt=formControlState({props:rt,muiFormControl:jt,states:["variant","error"]}),$t=Rt.variant||Tt,xt=_extends$r({},rt,{variant:$t,classes:at}),It=useUtilityClasses$r(xt),Ot=dt||{standard:jsxRuntimeExports.jsx(StyledInput$1,{ownerState:xt}),outlined:jsxRuntimeExports.jsx(StyledOutlinedInput,{label:mt,ownerState:xt}),filled:jsxRuntimeExports.jsx(StyledFilledInput,{ownerState:xt})}[$t],zt=useForkRef(nt,Ot.ref);return jsxRuntimeExports.jsx(reactExports.Fragment,{children:reactExports.cloneElement(Ot,_extends$r({inputComponent:Lt,inputProps:_extends$r({children:ot,error:Rt.error,IconComponent:ut,variant:$t,type:void 0,multiple:bt},wt?{id:ht}:{autoWidth:it,defaultOpen:lt,displayEmpty:ct,labelId:gt,MenuProps:yt,onClose:vt,onOpen:kt,open:St,renderValue:Et,SelectDisplayProps:_extends$r({id:ht},At)},pt,{classes:pt?deepmerge$1(It,pt.classes):It},dt?dt.props.inputProps:{})},bt&&wt&&$t==="outlined"?{notched:!0}:{},{ref:zt,className:clsx(Ot.props.className,st)},!dt&&{variant:$t},Mt))})});Select$3.muiName="Select";const Select$4=Select$3;function getSkeletonUtilityClass(tt){return generateUtilityClass("MuiSkeleton",tt)}generateUtilityClasses("MuiSkeleton",["root","text","rectangular","rounded","circular","pulse","wave","withChildren","fitContent","heightAuto"]);const _excluded$M=["animation","className","component","height","style","variant","width"];let _=tt=>tt,_t,_t2,_t3,_t4;const useUtilityClasses$q=tt=>{const{classes:et,variant:nt,animation:rt,hasChildren:it,width:ot,height:at}=tt;return composeClasses({root:["root",nt,rt,it&&"withChildren",it&&!ot&&"fitContent",it&&!at&&"heightAuto"]},getSkeletonUtilityClass,et)},pulseKeyframe=keyframes(_t||(_t=_` 0% { opacity: 1; } @@ -243,8 +243,8 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho right: 0; top: 0; } - `),waveKeyframe,(et.vars||et).palette.action.hover)),Skeleton$1=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiSkeleton"}),{animation:it="pulse",className:ot,component:at="span",height:st,style:lt,variant:ct="text",width:ut}=rt,ht=_objectWithoutPropertiesLoose$g(rt,_excluded$M),dt=_extends$r({},rt,{animation:it,component:at,variant:ct,hasChildren:!!ht.children}),pt=useUtilityClasses$q(dt);return jsxRuntimeExports.jsx(SkeletonRoot,_extends$r({as:at,ref:nt,className:clsx(pt.root,ot),ownerState:dt},ht,{style:_extends$r({width:ut,height:st},lt)}))}),Skeleton$2=Skeleton$1,shouldSpreadAdditionalProps=tt=>!tt||!isHostComponent(tt),shouldSpreadAdditionalProps$1=shouldSpreadAdditionalProps;function getSliderUtilityClass(tt){return generateUtilityClass("MuiSlider",tt)}const sliderClasses=generateUtilityClasses("MuiSlider",["root","active","colorPrimary","colorSecondary","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","thumbColorPrimary","thumbColorSecondary","track","trackInverted","trackFalse","thumbSizeSmall","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]),sliderClasses$1=sliderClasses,useValueLabelClasses=tt=>{const{open:et}=tt;return{offset:clsx(et&&sliderClasses$1.valueLabelOpen),circle:sliderClasses$1.valueLabelCircle,label:sliderClasses$1.valueLabelLabel}};function SliderValueLabel(tt){const{children:et,className:nt,value:rt}=tt,it=useValueLabelClasses(tt);return et?reactExports.cloneElement(et,{className:clsx(et.props.className)},jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[et.props.children,jsxRuntimeExports.jsx("span",{className:clsx(it.offset,nt),"aria-hidden":!0,children:jsxRuntimeExports.jsx("span",{className:it.circle,children:jsxRuntimeExports.jsx("span",{className:it.label,children:rt})})})]})):null}const _excluded$L=["aria-label","aria-valuetext","aria-labelledby","component","components","componentsProps","color","classes","className","disableSwap","disabled","getAriaLabel","getAriaValueText","marks","max","min","name","onChange","onChangeCommitted","orientation","size","step","scale","slotProps","slots","tabIndex","track","value","valueLabelDisplay","valueLabelFormat"];function Identity(tt){return tt}const SliderRoot=styled$1("span",{name:"MuiSlider",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,et[`color${capitalize(nt.color)}`],nt.size!=="medium"&&et[`size${capitalize(nt.size)}`],nt.marked&&et.marked,nt.orientation==="vertical"&&et.vertical,nt.track==="inverted"&&et.trackInverted,nt.track===!1&&et.trackFalse]}})(({theme:tt,ownerState:et})=>_extends$r({borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",color:(tt.vars||tt).palette[et.color].main,WebkitTapHighlightColor:"transparent"},et.orientation==="horizontal"&&_extends$r({height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}},et.size==="small"&&{height:2},et.marked&&{marginBottom:20}),et.orientation==="vertical"&&_extends$r({height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}},et.size==="small"&&{width:2},et.marked&&{marginRight:44}),{"@media print":{colorAdjust:"exact"},[`&.${sliderClasses$1.disabled}`]:{pointerEvents:"none",cursor:"default",color:(tt.vars||tt).palette.grey[400]},[`&.${sliderClasses$1.dragging}`]:{[`& .${sliderClasses$1.thumb}, & .${sliderClasses$1.track}`]:{transition:"none"}}})),SliderRail=styled$1("span",{name:"MuiSlider",slot:"Rail",overridesResolver:(tt,et)=>et.rail})(({ownerState:tt})=>_extends$r({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38},tt.orientation==="horizontal"&&{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"},tt.orientation==="vertical"&&{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"},tt.track==="inverted"&&{opacity:1})),SliderTrack=styled$1("span",{name:"MuiSlider",slot:"Track",overridesResolver:(tt,et)=>et.track})(({theme:tt,ownerState:et})=>{const nt=tt.palette.mode==="light"?lighten(tt.palette[et.color].main,.62):darken(tt.palette[et.color].main,.5);return _extends$r({display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:tt.transitions.create(["left","width","bottom","height"],{duration:tt.transitions.duration.shortest})},et.size==="small"&&{border:"none"},et.orientation==="horizontal"&&{height:"inherit",top:"50%",transform:"translateY(-50%)"},et.orientation==="vertical"&&{width:"inherit",left:"50%",transform:"translateX(-50%)"},et.track===!1&&{display:"none"},et.track==="inverted"&&{backgroundColor:tt.vars?tt.vars.palette.Slider[`${et.color}Track`]:nt,borderColor:tt.vars?tt.vars.palette.Slider[`${et.color}Track`]:nt})}),SliderThumb=styled$1("span",{name:"MuiSlider",slot:"Thumb",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.thumb,et[`thumbColor${capitalize(nt.color)}`],nt.size!=="medium"&&et[`thumbSize${capitalize(nt.size)}`]]}})(({theme:tt,ownerState:et})=>_extends$r({position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:tt.transitions.create(["box-shadow","left","bottom"],{duration:tt.transitions.duration.shortest})},et.size==="small"&&{width:12,height:12},et.orientation==="horizontal"&&{top:"50%",transform:"translate(-50%, -50%)"},et.orientation==="vertical"&&{left:"50%",transform:"translate(-50%, 50%)"},{"&:before":_extends$r({position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(tt.vars||tt).shadows[2]},et.size==="small"&&{boxShadow:"none"}),"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"},[`&:hover, &.${sliderClasses$1.focusVisible}`]:{boxShadow:`0px 0px 0px 8px ${tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / 0.16)`:alpha$1(tt.palette[et.color].main,.16)}`,"@media (hover: none)":{boxShadow:"none"}},[`&.${sliderClasses$1.active}`]:{boxShadow:`0px 0px 0px 14px ${tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / 0.16)`:alpha$1(tt.palette[et.color].main,.16)}`},[`&.${sliderClasses$1.disabled}`]:{"&:hover":{boxShadow:"none"}}})),StyledSliderValueLabel=styled$1(SliderValueLabel,{name:"MuiSlider",slot:"ValueLabel",overridesResolver:(tt,et)=>et.valueLabel})(({theme:tt,ownerState:et})=>_extends$r({[`&.${sliderClasses$1.valueLabelOpen}`]:{transform:`${et.orientation==="vertical"?"translateY(-50%)":"translateY(-100%)"} scale(1)`},zIndex:1,whiteSpace:"nowrap"},tt.typography.body2,{fontWeight:500,transition:tt.transitions.create(["transform"],{duration:tt.transitions.duration.shortest}),transform:`${et.orientation==="vertical"?"translateY(-50%)":"translateY(-100%)"} scale(0)`,position:"absolute",backgroundColor:(tt.vars||tt).palette.grey[600],borderRadius:2,color:(tt.vars||tt).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem"},et.orientation==="horizontal"&&{top:"-10px",transformOrigin:"bottom center","&:before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"}},et.orientation==="vertical"&&{right:et.size==="small"?"20px":"30px",top:"50%",transformOrigin:"right center","&:before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"}},et.size==="small"&&{fontSize:tt.typography.pxToRem(12),padding:"0.25rem 0.5rem"})),SliderMark=styled$1("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:tt=>slotShouldForwardProp(tt)&&tt!=="markActive",overridesResolver:(tt,et)=>{const{markActive:nt}=tt;return[et.mark,nt&&et.markActive]}})(({theme:tt,ownerState:et,markActive:nt})=>_extends$r({position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor"},et.orientation==="horizontal"&&{top:"50%",transform:"translate(-1px, -50%)"},et.orientation==="vertical"&&{left:"50%",transform:"translate(-50%, 1px)"},nt&&{backgroundColor:(tt.vars||tt).palette.background.paper,opacity:.8})),SliderMarkLabel=styled$1("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:tt=>slotShouldForwardProp(tt)&&tt!=="markLabelActive",overridesResolver:(tt,et)=>et.markLabel})(({theme:tt,ownerState:et,markLabelActive:nt})=>_extends$r({},tt.typography.body2,{color:(tt.vars||tt).palette.text.secondary,position:"absolute",whiteSpace:"nowrap"},et.orientation==="horizontal"&&{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}},et.orientation==="vertical"&&{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}},nt&&{color:(tt.vars||tt).palette.text.primary})),useUtilityClasses$p=tt=>{const{disabled:et,dragging:nt,marked:rt,orientation:it,track:ot,classes:at,color:st,size:lt}=tt,ct={root:["root",et&&"disabled",nt&&"dragging",rt&&"marked",it==="vertical"&&"vertical",ot==="inverted"&&"trackInverted",ot===!1&&"trackFalse",st&&`color${capitalize(st)}`,lt&&`size${capitalize(lt)}`],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",et&&"disabled",lt&&`thumbSize${capitalize(lt)}`,st&&`thumbColor${capitalize(st)}`],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]};return composeClasses(ct,getSliderUtilityClass,at)},Forward=({children:tt})=>tt,Slider=reactExports.forwardRef(function(et,nt){var rt,it,ot,at,st,lt,ct,ut,ht,dt,pt,mt,gt,yt,bt,wt,vt,kt,St,Tt,At,Et,Mt,Lt;const jt=useThemeProps({props:et,name:"MuiSlider"}),$t=useTheme().direction==="rtl",{"aria-label":xt,"aria-valuetext":It,"aria-labelledby":Ot,component:zt="span",components:Ut={},componentsProps:Wt={},color:Ft="primary",classes:Nt,className:Ct,disableSwap:Ht=!1,disabled:Jt=!1,getAriaLabel:nn,getAriaValueText:Yt,marks:fn=!1,max:cn=100,min:_n=0,orientation:En="horizontal",size:an="medium",step:en=1,scale:Tn=Identity,slotProps:Rn,slots:An,track:yn="normal",valueLabelDisplay:kn="off",valueLabelFormat:dn=Identity}=jt,gn=_objectWithoutPropertiesLoose$g(jt,_excluded$L),Cn=_extends$r({},jt,{isRtl:$t,max:cn,min:_n,classes:Nt,disabled:Jt,disableSwap:Ht,orientation:En,marks:fn,color:Ft,size:an,step:en,scale:Tn,track:yn,valueLabelDisplay:kn,valueLabelFormat:dn}),{axisProps:$n,getRootProps:un,getHiddenInputProps:rn,getThumbProps:Sn,open:Mn,active:Nn,axis:hn,focusedThumbIndex:Qt,range:Zt,dragging:wn,marks:On,values:jn,trackOffset:Un,trackLeap:tr,getThumbStyle:qn}=useSlider(_extends$r({},Cn,{rootRef:nt}));Cn.marked=On.length>0&&On.some(nr=>nr.label),Cn.dragging=wn,Cn.focusedThumbIndex=Qt;const Xn=useUtilityClasses$p(Cn),Wn=(rt=(it=An==null?void 0:An.root)!=null?it:Ut.Root)!=null?rt:SliderRoot,Zn=(ot=(at=An==null?void 0:An.rail)!=null?at:Ut.Rail)!=null?ot:SliderRail,Vn=(st=(lt=An==null?void 0:An.track)!=null?lt:Ut.Track)!=null?st:SliderTrack,pr=(ct=(ut=An==null?void 0:An.thumb)!=null?ut:Ut.Thumb)!=null?ct:SliderThumb,fr=(ht=(dt=An==null?void 0:An.valueLabel)!=null?dt:Ut.ValueLabel)!=null?ht:StyledSliderValueLabel,Er=(pt=(mt=An==null?void 0:An.mark)!=null?mt:Ut.Mark)!=null?pt:SliderMark,oo=(gt=(yt=An==null?void 0:An.markLabel)!=null?yt:Ut.MarkLabel)!=null?gt:SliderMarkLabel,Dr=(bt=(wt=An==null?void 0:An.input)!=null?wt:Ut.Input)!=null?bt:"input",Rr=(vt=Rn==null?void 0:Rn.root)!=null?vt:Wt.root,Xr=(kt=Rn==null?void 0:Rn.rail)!=null?kt:Wt.rail,Vr=(St=Rn==null?void 0:Rn.track)!=null?St:Wt.track,Fr=(Tt=Rn==null?void 0:Rn.thumb)!=null?Tt:Wt.thumb,so=(At=Rn==null?void 0:Rn.valueLabel)!=null?At:Wt.valueLabel,qr=(Et=Rn==null?void 0:Rn.mark)!=null?Et:Wt.mark,Or=(Mt=Rn==null?void 0:Rn.markLabel)!=null?Mt:Wt.markLabel,wo=(Lt=Rn==null?void 0:Rn.input)!=null?Lt:Wt.input,vn=useSlotProps({elementType:Wn,getSlotProps:un,externalSlotProps:Rr,externalForwardedProps:gn,additionalProps:_extends$r({},shouldSpreadAdditionalProps$1(Wn)&&{as:zt}),ownerState:_extends$r({},Cn,Rr==null?void 0:Rr.ownerState),className:[Xn.root,Ct]}),Pn=useSlotProps({elementType:Zn,externalSlotProps:Xr,ownerState:Cn,className:Xn.rail}),sn=useSlotProps({elementType:Vn,externalSlotProps:Vr,additionalProps:{style:_extends$r({},$n[hn].offset(Un),$n[hn].leap(tr))},ownerState:_extends$r({},Cn,Vr==null?void 0:Vr.ownerState),className:Xn.track}),Xt=useSlotProps({elementType:pr,getSlotProps:Sn,externalSlotProps:Fr,ownerState:_extends$r({},Cn,Fr==null?void 0:Fr.ownerState),className:Xn.thumb}),xn=useSlotProps({elementType:fr,externalSlotProps:so,ownerState:_extends$r({},Cn,so==null?void 0:so.ownerState),className:Xn.valueLabel}),Dn=useSlotProps({elementType:Er,externalSlotProps:qr,ownerState:Cn,className:Xn.mark}),Fn=useSlotProps({elementType:oo,externalSlotProps:Or,ownerState:Cn,className:Xn.markLabel}),Kn=useSlotProps({elementType:Dr,getSlotProps:rn,externalSlotProps:wo,ownerState:Cn});return jsxRuntimeExports.jsxs(Wn,_extends$r({},vn,{children:[jsxRuntimeExports.jsx(Zn,_extends$r({},Pn)),jsxRuntimeExports.jsx(Vn,_extends$r({},sn)),On.filter(nr=>nr.value>=_n&&nr.value<=cn).map((nr,lr)=>{const cr=valueToPercent(nr.value,_n,cn),Hr=$n[hn].offset(cr);let _r;return yn===!1?_r=jn.indexOf(nr.value)!==-1:_r=yn==="normal"&&(Zt?nr.value>=jn[0]&&nr.value<=jn[jn.length-1]:nr.value<=jn[0])||yn==="inverted"&&(Zt?nr.value<=jn[0]||nr.value>=jn[jn.length-1]:nr.value>=jn[0]),jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(Er,_extends$r({"data-index":lr},Dn,!isHostComponent(Er)&&{markActive:_r},{style:_extends$r({},Hr,Dn.style),className:clsx(Dn.className,_r&&Xn.markActive)})),nr.label!=null?jsxRuntimeExports.jsx(oo,_extends$r({"aria-hidden":!0,"data-index":lr},Fn,!isHostComponent(oo)&&{markLabelActive:_r},{style:_extends$r({},Hr,Fn.style),className:clsx(Xn.markLabel,Fn.className,_r&&Xn.markLabelActive),children:nr.label})):null]},lr)}),jn.map((nr,lr)=>{const cr=valueToPercent(nr,_n,cn),Hr=$n[hn].offset(cr),_r=kn==="off"?Forward:fr;return jsxRuntimeExports.jsx(_r,_extends$r({},!isHostComponent(_r)&&{valueLabelFormat:dn,valueLabelDisplay:kn,value:typeof dn=="function"?dn(Tn(nr),lr):dn,index:lr,open:Mn===lr||Nn===lr||kn==="on",disabled:Jt},xn,{children:jsxRuntimeExports.jsx(pr,_extends$r({"data-index":lr},Xt,{className:clsx(Xn.thumb,Xt.className,Nn===lr&&Xn.active,Qt===lr&&Xn.focusVisible),style:_extends$r({},Hr,qn(lr),Xt.style),children:jsxRuntimeExports.jsx(Dr,_extends$r({"data-index":lr,"aria-label":nn?nn(lr):xt,"aria-valuenow":Tn(nr),"aria-labelledby":Ot,"aria-valuetext":Yt?Yt(Tn(nr),lr):It,value:jn[lr]},Kn))}))}),lr)})]}))}),Slider$1=Slider;function getTabUtilityClass(tt){return generateUtilityClass("MuiTab",tt)}const tabClasses=generateUtilityClasses("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper"]),tabClasses$1=tabClasses,_excluded$K=["className","disabled","disableFocusRipple","fullWidth","icon","iconPosition","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"],useUtilityClasses$o=tt=>{const{classes:et,textColor:nt,fullWidth:rt,wrapped:it,icon:ot,label:at,selected:st,disabled:lt}=tt,ct={root:["root",ot&&at&&"labelIcon",`textColor${capitalize(nt)}`,rt&&"fullWidth",it&&"wrapped",st&&"selected",lt&&"disabled"],iconWrapper:["iconWrapper"]};return composeClasses(ct,getTabUtilityClass,et)},TabRoot=styled$1(ButtonBase$1,{name:"MuiTab",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.label&&nt.icon&&et.labelIcon,et[`textColor${capitalize(nt.textColor)}`],nt.fullWidth&&et.fullWidth,nt.wrapped&&et.wrapped]}})(({theme:tt,ownerState:et})=>_extends$r({},tt.typography.button,{maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center"},et.label&&{flexDirection:et.iconPosition==="top"||et.iconPosition==="bottom"?"column":"row"},{lineHeight:1.25},et.icon&&et.label&&{minHeight:72,paddingTop:9,paddingBottom:9,[`& > .${tabClasses$1.iconWrapper}`]:_extends$r({},et.iconPosition==="top"&&{marginBottom:6},et.iconPosition==="bottom"&&{marginTop:6},et.iconPosition==="start"&&{marginRight:tt.spacing(1)},et.iconPosition==="end"&&{marginLeft:tt.spacing(1)})},et.textColor==="inherit"&&{color:"inherit",opacity:.6,[`&.${tabClasses$1.selected}`]:{opacity:1},[`&.${tabClasses$1.disabled}`]:{opacity:(tt.vars||tt).palette.action.disabledOpacity}},et.textColor==="primary"&&{color:(tt.vars||tt).palette.text.secondary,[`&.${tabClasses$1.selected}`]:{color:(tt.vars||tt).palette.primary.main},[`&.${tabClasses$1.disabled}`]:{color:(tt.vars||tt).palette.text.disabled}},et.textColor==="secondary"&&{color:(tt.vars||tt).palette.text.secondary,[`&.${tabClasses$1.selected}`]:{color:(tt.vars||tt).palette.secondary.main},[`&.${tabClasses$1.disabled}`]:{color:(tt.vars||tt).palette.text.disabled}},et.fullWidth&&{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},et.wrapped&&{fontSize:tt.typography.pxToRem(12)})),Tab$1=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTab"}),{className:it,disabled:ot=!1,disableFocusRipple:at=!1,fullWidth:st,icon:lt,iconPosition:ct="top",indicator:ut,label:ht,onChange:dt,onClick:pt,onFocus:mt,selected:gt,selectionFollowsFocus:yt,textColor:bt="inherit",value:wt,wrapped:vt=!1}=rt,kt=_objectWithoutPropertiesLoose$g(rt,_excluded$K),St=_extends$r({},rt,{disabled:ot,disableFocusRipple:at,selected:gt,icon:!!lt,iconPosition:ct,label:!!ht,fullWidth:st,textColor:bt,wrapped:vt}),Tt=useUtilityClasses$o(St),At=lt&&ht&&reactExports.isValidElement(lt)?reactExports.cloneElement(lt,{className:clsx(Tt.iconWrapper,lt.props.className)}):lt,Et=Lt=>{!gt&&dt&&dt(Lt,wt),pt&&pt(Lt)},Mt=Lt=>{yt&&!gt&&dt&&dt(Lt,wt),mt&&mt(Lt)};return jsxRuntimeExports.jsxs(TabRoot,_extends$r({focusRipple:!at,className:clsx(Tt.root,it),ref:nt,role:"tab","aria-selected":gt,disabled:ot,onClick:Et,onFocus:Mt,ownerState:St,tabIndex:gt?0:-1},kt,{children:[ct==="top"||ct==="start"?jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[At,ht]}):jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ht,At]}),ut]}))}),Tab$2=Tab$1,TableContext=reactExports.createContext(),TableContext$1=TableContext;function getTableUtilityClass(tt){return generateUtilityClass("MuiTable",tt)}generateUtilityClasses("MuiTable",["root","stickyHeader"]);const _excluded$J=["className","component","padding","size","stickyHeader"],useUtilityClasses$n=tt=>{const{classes:et,stickyHeader:nt}=tt;return composeClasses({root:["root",nt&&"stickyHeader"]},getTableUtilityClass,et)},TableRoot=styled$1("table",{name:"MuiTable",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.stickyHeader&&et.stickyHeader]}})(({theme:tt,ownerState:et})=>_extends$r({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":_extends$r({},tt.typography.body2,{padding:tt.spacing(2),color:(tt.vars||tt).palette.text.secondary,textAlign:"left",captionSide:"bottom"})},et.stickyHeader&&{borderCollapse:"separate"})),defaultComponent$3="table",Table$2=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTable"}),{className:it,component:ot=defaultComponent$3,padding:at="normal",size:st="medium",stickyHeader:lt=!1}=rt,ct=_objectWithoutPropertiesLoose$g(rt,_excluded$J),ut=_extends$r({},rt,{component:ot,padding:at,size:st,stickyHeader:lt}),ht=useUtilityClasses$n(ut),dt=reactExports.useMemo(()=>({padding:at,size:st,stickyHeader:lt}),[at,st,lt]);return jsxRuntimeExports.jsx(TableContext$1.Provider,{value:dt,children:jsxRuntimeExports.jsx(TableRoot,_extends$r({as:ot,role:ot===defaultComponent$3?null:"table",ref:nt,className:clsx(ht.root,it),ownerState:ut},ct))})}),MaterialTable=Table$2,Tablelvl2Context=reactExports.createContext(),Tablelvl2Context$1=Tablelvl2Context;function getTableBodyUtilityClass(tt){return generateUtilityClass("MuiTableBody",tt)}generateUtilityClasses("MuiTableBody",["root"]);const _excluded$I=["className","component"],useUtilityClasses$m=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getTableBodyUtilityClass,et)},TableBodyRoot=styled$1("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"table-row-group"}),tablelvl2$1={variant:"body"},defaultComponent$2="tbody",TableBody=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTableBody"}),{className:it,component:ot=defaultComponent$2}=rt,at=_objectWithoutPropertiesLoose$g(rt,_excluded$I),st=_extends$r({},rt,{component:ot}),lt=useUtilityClasses$m(st);return jsxRuntimeExports.jsx(Tablelvl2Context$1.Provider,{value:tablelvl2$1,children:jsxRuntimeExports.jsx(TableBodyRoot,_extends$r({className:clsx(lt.root,it),as:ot,ref:nt,role:ot===defaultComponent$2?null:"rowgroup",ownerState:st},at))})}),TableBody$1=TableBody;function getTableCellUtilityClass(tt){return generateUtilityClass("MuiTableCell",tt)}const tableCellClasses=generateUtilityClasses("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),tableCellClasses$1=tableCellClasses,_excluded$G=["align","className","component","padding","scope","size","sortDirection","variant"],useUtilityClasses$l=tt=>{const{classes:et,variant:nt,align:rt,padding:it,size:ot,stickyHeader:at}=tt,st={root:["root",nt,at&&"stickyHeader",rt!=="inherit"&&`align${capitalize(rt)}`,it!=="normal"&&`padding${capitalize(it)}`,`size${capitalize(ot)}`]};return composeClasses(st,getTableCellUtilityClass,et)},TableCellRoot=styled$1("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,et[nt.variant],et[`size${capitalize(nt.size)}`],nt.padding!=="normal"&&et[`padding${capitalize(nt.padding)}`],nt.align!=="inherit"&&et[`align${capitalize(nt.align)}`],nt.stickyHeader&&et.stickyHeader]}})(({theme:tt,ownerState:et})=>_extends$r({},tt.typography.body2,{display:"table-cell",verticalAlign:"inherit",borderBottom:tt.vars?`1px solid ${tt.vars.palette.TableCell.border}`:`1px solid - ${tt.palette.mode==="light"?lighten(alpha$1(tt.palette.divider,1),.88):darken(alpha$1(tt.palette.divider,1),.68)}`,textAlign:"left",padding:16},et.variant==="head"&&{color:(tt.vars||tt).palette.text.primary,lineHeight:tt.typography.pxToRem(24),fontWeight:tt.typography.fontWeightMedium},et.variant==="body"&&{color:(tt.vars||tt).palette.text.primary},et.variant==="footer"&&{color:(tt.vars||tt).palette.text.secondary,lineHeight:tt.typography.pxToRem(21),fontSize:tt.typography.pxToRem(12)},et.size==="small"&&{padding:"6px 16px",[`&.${tableCellClasses$1.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}},et.padding==="checkbox"&&{width:48,padding:"0 0 0 4px"},et.padding==="none"&&{padding:0},et.align==="left"&&{textAlign:"left"},et.align==="center"&&{textAlign:"center"},et.align==="right"&&{textAlign:"right",flexDirection:"row-reverse"},et.align==="justify"&&{textAlign:"justify"},et.stickyHeader&&{position:"sticky",top:0,zIndex:2,backgroundColor:(tt.vars||tt).palette.background.default})),TableCell=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTableCell"}),{align:it="inherit",className:ot,component:at,padding:st,scope:lt,size:ct,sortDirection:ut,variant:ht}=rt,dt=_objectWithoutPropertiesLoose$g(rt,_excluded$G),pt=reactExports.useContext(TableContext$1),mt=reactExports.useContext(Tablelvl2Context$1),gt=mt&&mt.variant==="head";let yt;at?yt=at:yt=gt?"th":"td";let bt=lt;yt==="td"?bt=void 0:!bt&>&&(bt="col");const wt=ht||mt&&mt.variant,vt=_extends$r({},rt,{align:it,component:yt,padding:st||(pt&&pt.padding?pt.padding:"normal"),size:ct||(pt&&pt.size?pt.size:"medium"),sortDirection:ut,stickyHeader:wt==="head"&&pt&&pt.stickyHeader,variant:wt}),kt=useUtilityClasses$l(vt);let St=null;return ut&&(St=ut==="asc"?"ascending":"descending"),jsxRuntimeExports.jsx(TableCellRoot,_extends$r({as:yt,ref:nt,className:clsx(kt.root,ot),"aria-sort":St,scope:bt,ownerState:vt},dt))}),TableCell$1=TableCell;function getTableHeadUtilityClass(tt){return generateUtilityClass("MuiTableHead",tt)}generateUtilityClasses("MuiTableHead",["root"]);const _excluded$F=["className","component"],useUtilityClasses$k=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getTableHeadUtilityClass,et)},TableHeadRoot=styled$1("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"table-header-group"}),tablelvl2={variant:"head"},defaultComponent$1="thead",TableHead=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTableHead"}),{className:it,component:ot=defaultComponent$1}=rt,at=_objectWithoutPropertiesLoose$g(rt,_excluded$F),st=_extends$r({},rt,{component:ot}),lt=useUtilityClasses$k(st);return jsxRuntimeExports.jsx(Tablelvl2Context$1.Provider,{value:tablelvl2,children:jsxRuntimeExports.jsx(TableHeadRoot,_extends$r({as:ot,className:clsx(lt.root,it),ref:nt,role:ot===defaultComponent$1?null:"rowgroup",ownerState:st},at))})}),TableHead$1=TableHead,KeyboardArrowLeft=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),KeyboardArrowRight=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");function getTableRowUtilityClass(tt){return generateUtilityClass("MuiTableRow",tt)}const tableRowClasses=generateUtilityClasses("MuiTableRow",["root","selected","hover","head","footer"]),tableRowClasses$1=tableRowClasses,_excluded$E=["className","component","hover","selected"],useUtilityClasses$j=tt=>{const{classes:et,selected:nt,hover:rt,head:it,footer:ot}=tt;return composeClasses({root:["root",nt&&"selected",rt&&"hover",it&&"head",ot&&"footer"]},getTableRowUtilityClass,et)},TableRowRoot=styled$1("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.head&&et.head,nt.footer&&et.footer]}})(({theme:tt})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${tableRowClasses$1.hover}:hover`]:{backgroundColor:(tt.vars||tt).palette.action.hover},[`&.${tableRowClasses$1.selected}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.selectedOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity),"&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.hoverOpacity}))`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity+tt.palette.action.hoverOpacity)}}})),defaultComponent="tr",TableRow=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTableRow"}),{className:it,component:ot=defaultComponent,hover:at=!1,selected:st=!1}=rt,lt=_objectWithoutPropertiesLoose$g(rt,_excluded$E),ct=reactExports.useContext(Tablelvl2Context$1),ut=_extends$r({},rt,{component:ot,hover:at,selected:st,head:ct&&ct.variant==="head",footer:ct&&ct.variant==="footer"}),ht=useUtilityClasses$j(ut);return jsxRuntimeExports.jsx(TableRowRoot,_extends$r({as:ot,ref:nt,className:clsx(ht.root,it),role:ot===defaultComponent?null:"row",ownerState:ut},lt))}),TableRow$1=TableRow;function easeInOutSin(tt){return(1+Math.sin(Math.PI*tt-Math.PI/2))/2}function animate(tt,et,nt,rt={},it=()=>{}){const{ease:ot=easeInOutSin,duration:at=300}=rt;let st=null;const lt=et[tt];let ct=!1;const ut=()=>{ct=!0},ht=dt=>{if(ct){it(new Error("Animation cancelled"));return}st===null&&(st=dt);const pt=Math.min(1,(dt-st)/at);if(et[tt]=ot(pt)*(nt-lt)+lt,pt>=1){requestAnimationFrame(()=>{it(null)});return}requestAnimationFrame(ht)};return lt===nt?(it(new Error("Element already at target position")),ut):(requestAnimationFrame(ht),ut)}const _excluded$D=["onChange"],styles$2={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function ScrollbarSize(tt){const{onChange:et}=tt,nt=_objectWithoutPropertiesLoose$g(tt,_excluded$D),rt=reactExports.useRef(),it=reactExports.useRef(null),ot=()=>{rt.current=it.current.offsetHeight-it.current.clientHeight};return useEnhancedEffect$1(()=>{const at=debounce$5(()=>{const lt=rt.current;ot(),lt!==rt.current&&et(rt.current)}),st=ownerWindow(it.current);return st.addEventListener("resize",at),()=>{at.clear(),st.removeEventListener("resize",at)}},[et]),reactExports.useEffect(()=>{ot(),et(rt.current)},[et]),jsxRuntimeExports.jsx("div",_extends$r({style:styles$2,ref:it},nt))}function getTabScrollButtonUtilityClass(tt){return generateUtilityClass("MuiTabScrollButton",tt)}const tabScrollButtonClasses=generateUtilityClasses("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),tabScrollButtonClasses$1=tabScrollButtonClasses,_excluded$C=["className","slots","slotProps","direction","orientation","disabled"],useUtilityClasses$i=tt=>{const{classes:et,orientation:nt,disabled:rt}=tt;return composeClasses({root:["root",nt,rt&&"disabled"]},getTabScrollButtonUtilityClass,et)},TabScrollButtonRoot=styled$1(ButtonBase$1,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.orientation&&et[nt.orientation]]}})(({ownerState:tt})=>_extends$r({width:40,flexShrink:0,opacity:.8,[`&.${tabScrollButtonClasses$1.disabled}`]:{opacity:0}},tt.orientation==="vertical"&&{width:"100%",height:40,"& svg":{transform:`rotate(${tt.isRtl?-90:90}deg)`}})),TabScrollButton=reactExports.forwardRef(function(et,nt){var rt,it;const ot=useThemeProps({props:et,name:"MuiTabScrollButton"}),{className:at,slots:st={},slotProps:lt={},direction:ct}=ot,ut=_objectWithoutPropertiesLoose$g(ot,_excluded$C),dt=useTheme().direction==="rtl",pt=_extends$r({isRtl:dt},ot),mt=useUtilityClasses$i(pt),gt=(rt=st.StartScrollButtonIcon)!=null?rt:KeyboardArrowLeft,yt=(it=st.EndScrollButtonIcon)!=null?it:KeyboardArrowRight,bt=useSlotProps({elementType:gt,externalSlotProps:lt.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:pt}),wt=useSlotProps({elementType:yt,externalSlotProps:lt.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:pt});return jsxRuntimeExports.jsx(TabScrollButtonRoot,_extends$r({component:"div",className:clsx(mt.root,at),ref:nt,role:null,ownerState:pt,tabIndex:null},ut,{children:ct==="left"?jsxRuntimeExports.jsx(gt,_extends$r({},bt)):jsxRuntimeExports.jsx(yt,_extends$r({},wt))}))}),TabScrollButton$1=TabScrollButton;function getTabsUtilityClass(tt){return generateUtilityClass("MuiTabs",tt)}const tabsClasses=generateUtilityClasses("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),tabsClasses$1=tabsClasses,_excluded$B=["aria-label","aria-labelledby","action","centered","children","className","component","allowScrollButtonsMobile","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","slots","slotProps","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant","visibleScrollbar"],nextItem=(tt,et)=>tt===et?tt.firstChild:et&&et.nextElementSibling?et.nextElementSibling:tt.firstChild,previousItem=(tt,et)=>tt===et?tt.lastChild:et&&et.previousElementSibling?et.previousElementSibling:tt.lastChild,moveFocus=(tt,et,nt)=>{let rt=!1,it=nt(tt,et);for(;it;){if(it===tt.firstChild){if(rt)return;rt=!0}const ot=it.disabled||it.getAttribute("aria-disabled")==="true";if(!it.hasAttribute("tabindex")||ot)it=nt(tt,it);else{it.focus();return}}},useUtilityClasses$h=tt=>{const{vertical:et,fixed:nt,hideScrollbar:rt,scrollableX:it,scrollableY:ot,centered:at,scrollButtonsHideMobile:st,classes:lt}=tt;return composeClasses({root:["root",et&&"vertical"],scroller:["scroller",nt&&"fixed",rt&&"hideScrollbar",it&&"scrollableX",ot&&"scrollableY"],flexContainer:["flexContainer",et&&"flexContainerVertical",at&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",st&&"scrollButtonsHideMobile"],scrollableX:[it&&"scrollableX"],hideScrollbar:[rt&&"hideScrollbar"]},getTabsUtilityClass,lt)},TabsRoot=styled$1("div",{name:"MuiTabs",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[{[`& .${tabsClasses$1.scrollButtons}`]:et.scrollButtons},{[`& .${tabsClasses$1.scrollButtons}`]:nt.scrollButtonsHideMobile&&et.scrollButtonsHideMobile},et.root,nt.vertical&&et.vertical]}})(({ownerState:tt,theme:et})=>_extends$r({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},tt.vertical&&{flexDirection:"column"},tt.scrollButtonsHideMobile&&{[`& .${tabsClasses$1.scrollButtons}`]:{[et.breakpoints.down("sm")]:{display:"none"}}})),TabsScroller=styled$1("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.scroller,nt.fixed&&et.fixed,nt.hideScrollbar&&et.hideScrollbar,nt.scrollableX&&et.scrollableX,nt.scrollableY&&et.scrollableY]}})(({ownerState:tt})=>_extends$r({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},tt.fixed&&{overflowX:"hidden",width:"100%"},tt.hideScrollbar&&{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},tt.scrollableX&&{overflowX:"auto",overflowY:"hidden"},tt.scrollableY&&{overflowY:"auto",overflowX:"hidden"})),FlexContainer=styled$1("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.flexContainer,nt.vertical&&et.flexContainerVertical,nt.centered&&et.centered]}})(({ownerState:tt})=>_extends$r({display:"flex"},tt.vertical&&{flexDirection:"column"},tt.centered&&{justifyContent:"center"})),TabsIndicator=styled$1("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(tt,et)=>et.indicator})(({ownerState:tt,theme:et})=>_extends$r({position:"absolute",height:2,bottom:0,width:"100%",transition:et.transitions.create()},tt.indicatorColor==="primary"&&{backgroundColor:(et.vars||et).palette.primary.main},tt.indicatorColor==="secondary"&&{backgroundColor:(et.vars||et).palette.secondary.main},tt.vertical&&{height:"100%",width:2,right:0})),TabsScrollbarSize=styled$1(ScrollbarSize,{name:"MuiTabs",slot:"ScrollbarSize"})({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),defaultIndicatorStyle={},Tabs=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTabs"}),it=useTheme(),ot=it.direction==="rtl",{"aria-label":at,"aria-labelledby":st,action:lt,centered:ct=!1,children:ut,className:ht,component:dt="div",allowScrollButtonsMobile:pt=!1,indicatorColor:mt="primary",onChange:gt,orientation:yt="horizontal",ScrollButtonComponent:bt=TabScrollButton$1,scrollButtons:wt="auto",selectionFollowsFocus:vt,slots:kt={},slotProps:St={},TabIndicatorProps:Tt={},TabScrollButtonProps:At={},textColor:Et="primary",value:Mt,variant:Lt="standard",visibleScrollbar:jt=!1}=rt,Rt=_objectWithoutPropertiesLoose$g(rt,_excluded$B),$t=Lt==="scrollable",xt=yt==="vertical",It=xt?"scrollTop":"scrollLeft",Ot=xt?"top":"left",zt=xt?"bottom":"right",Ut=xt?"clientHeight":"clientWidth",Wt=xt?"height":"width",Ft=_extends$r({},rt,{component:dt,allowScrollButtonsMobile:pt,indicatorColor:mt,orientation:yt,vertical:xt,scrollButtons:wt,textColor:Et,variant:Lt,visibleScrollbar:jt,fixed:!$t,hideScrollbar:$t&&!jt,scrollableX:$t&&!xt,scrollableY:$t&&xt,centered:ct&&!$t,scrollButtonsHideMobile:!pt}),Nt=useUtilityClasses$h(Ft),Ct=useSlotProps({elementType:kt.StartScrollButtonIcon,externalSlotProps:St.startScrollButtonIcon,ownerState:Ft}),Ht=useSlotProps({elementType:kt.EndScrollButtonIcon,externalSlotProps:St.endScrollButtonIcon,ownerState:Ft}),[Jt,nn]=reactExports.useState(!1),[Yt,fn]=reactExports.useState(defaultIndicatorStyle),[cn,_n]=reactExports.useState(!1),[En,an]=reactExports.useState(!1),[en,Tn]=reactExports.useState(!1),[Rn,An]=reactExports.useState({overflow:"hidden",scrollbarWidth:0}),yn=new Map,kn=reactExports.useRef(null),dn=reactExports.useRef(null),gn=()=>{const qn=kn.current;let Xn;if(qn){const Zn=qn.getBoundingClientRect();Xn={clientWidth:qn.clientWidth,scrollLeft:qn.scrollLeft,scrollTop:qn.scrollTop,scrollLeftNormalized:getNormalizedScrollLeft(qn,it.direction),scrollWidth:qn.scrollWidth,top:Zn.top,bottom:Zn.bottom,left:Zn.left,right:Zn.right}}let Wn;if(qn&&Mt!==!1){const Zn=dn.current.children;if(Zn.length>0){const Vn=Zn[yn.get(Mt)];Wn=Vn?Vn.getBoundingClientRect():null}}return{tabsMeta:Xn,tabMeta:Wn}},Cn=useEventCallback(()=>{const{tabsMeta:qn,tabMeta:Xn}=gn();let Wn=0,Zn;if(xt)Zn="top",Xn&&qn&&(Wn=Xn.top-qn.top+qn.scrollTop);else if(Zn=ot?"right":"left",Xn&&qn){const pr=ot?qn.scrollLeftNormalized+qn.clientWidth-qn.scrollWidth:qn.scrollLeft;Wn=(ot?-1:1)*(Xn[Zn]-qn[Zn]+pr)}const Vn={[Zn]:Wn,[Wt]:Xn?Xn[Wt]:0};if(isNaN(Yt[Zn])||isNaN(Yt[Wt]))fn(Vn);else{const pr=Math.abs(Yt[Zn]-Vn[Zn]),fr=Math.abs(Yt[Wt]-Vn[Wt]);(pr>=1||fr>=1)&&fn(Vn)}}),$n=(qn,{animation:Xn=!0}={})=>{Xn?animate(It,kn.current,qn,{duration:it.transitions.duration.standard}):kn.current[It]=qn},un=qn=>{let Xn=kn.current[It];xt?Xn+=qn:(Xn+=qn*(ot?-1:1),Xn*=ot&&detectScrollType()==="reverse"?-1:1),$n(Xn)},rn=()=>{const qn=kn.current[Ut];let Xn=0;const Wn=Array.from(dn.current.children);for(let Zn=0;Znqn){Zn===0&&(Xn=qn);break}Xn+=Vn[Ut]}return Xn},Sn=()=>{un(-1*rn())},Mn=()=>{un(rn())},Nn=reactExports.useCallback(qn=>{An({overflow:null,scrollbarWidth:qn})},[]),hn=()=>{const qn={};qn.scrollbarSizeListener=$t?jsxRuntimeExports.jsx(TabsScrollbarSize,{onChange:Nn,className:clsx(Nt.scrollableX,Nt.hideScrollbar)}):null;const Wn=$t&&(wt==="auto"&&(cn||En)||wt===!0);return qn.scrollButtonStart=Wn?jsxRuntimeExports.jsx(bt,_extends$r({slots:{StartScrollButtonIcon:kt.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:Ct},orientation:yt,direction:ot?"right":"left",onClick:Sn,disabled:!cn},At,{className:clsx(Nt.scrollButtons,At.className)})):null,qn.scrollButtonEnd=Wn?jsxRuntimeExports.jsx(bt,_extends$r({slots:{EndScrollButtonIcon:kt.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:Ht},orientation:yt,direction:ot?"left":"right",onClick:Mn,disabled:!En},At,{className:clsx(Nt.scrollButtons,At.className)})):null,qn},Qt=useEventCallback(qn=>{const{tabsMeta:Xn,tabMeta:Wn}=gn();if(!(!Wn||!Xn)){if(Wn[Ot]Xn[zt]){const Zn=Xn[It]+(Wn[zt]-Xn[zt]);$n(Zn,{animation:qn})}}}),Zt=useEventCallback(()=>{$t&&wt!==!1&&Tn(!en)});reactExports.useEffect(()=>{const qn=debounce$5(()=>{kn.current&&Cn()}),Xn=ownerWindow(kn.current);Xn.addEventListener("resize",qn);let Wn;return typeof ResizeObserver<"u"&&(Wn=new ResizeObserver(qn),Array.from(dn.current.children).forEach(Zn=>{Wn.observe(Zn)})),()=>{qn.clear(),Xn.removeEventListener("resize",qn),Wn&&Wn.disconnect()}},[Cn]),reactExports.useEffect(()=>{const qn=Array.from(dn.current.children),Xn=qn.length;if(typeof IntersectionObserver<"u"&&Xn>0&&$t&&wt!==!1){const Wn=qn[0],Zn=qn[Xn-1],Vn={root:kn.current,threshold:.99},pr=Dr=>{_n(!Dr[0].isIntersecting)},fr=new IntersectionObserver(pr,Vn);fr.observe(Wn);const Er=Dr=>{an(!Dr[0].isIntersecting)},oo=new IntersectionObserver(Er,Vn);return oo.observe(Zn),()=>{fr.disconnect(),oo.disconnect()}}},[$t,wt,en,ut==null?void 0:ut.length]),reactExports.useEffect(()=>{nn(!0)},[]),reactExports.useEffect(()=>{Cn()}),reactExports.useEffect(()=>{Qt(defaultIndicatorStyle!==Yt)},[Qt,Yt]),reactExports.useImperativeHandle(lt,()=>({updateIndicator:Cn,updateScrollButtons:Zt}),[Cn,Zt]);const wn=jsxRuntimeExports.jsx(TabsIndicator,_extends$r({},Tt,{className:clsx(Nt.indicator,Tt.className),ownerState:Ft,style:_extends$r({},Yt,Tt.style)}));let On=0;const jn=reactExports.Children.map(ut,qn=>{if(!reactExports.isValidElement(qn))return null;const Xn=qn.props.value===void 0?On:qn.props.value;yn.set(Xn,On);const Wn=Xn===Mt;return On+=1,reactExports.cloneElement(qn,_extends$r({fullWidth:Lt==="fullWidth",indicator:Wn&&!Jt&&wn,selected:Wn,selectionFollowsFocus:vt,onChange:gt,textColor:Et,value:Xn},On===1&&Mt===!1&&!qn.props.tabIndex?{tabIndex:0}:{}))}),Un=qn=>{const Xn=dn.current,Wn=ownerDocument(Xn).activeElement;if(Wn.getAttribute("role")!=="tab")return;let Vn=yt==="horizontal"?"ArrowLeft":"ArrowUp",pr=yt==="horizontal"?"ArrowRight":"ArrowDown";switch(yt==="horizontal"&&ot&&(Vn="ArrowRight",pr="ArrowLeft"),qn.key){case Vn:qn.preventDefault(),moveFocus(Xn,Wn,previousItem);break;case pr:qn.preventDefault(),moveFocus(Xn,Wn,nextItem);break;case"Home":qn.preventDefault(),moveFocus(Xn,null,nextItem);break;case"End":qn.preventDefault(),moveFocus(Xn,null,previousItem);break}},tr=hn();return jsxRuntimeExports.jsxs(TabsRoot,_extends$r({className:clsx(Nt.root,ht),ownerState:Ft,ref:nt,as:dt},Rt,{children:[tr.scrollButtonStart,tr.scrollbarSizeListener,jsxRuntimeExports.jsxs(TabsScroller,{className:Nt.scroller,ownerState:Ft,style:{overflow:Rn.overflow,[xt?`margin${ot?"Left":"Right"}`:"marginBottom"]:jt?void 0:-Rn.scrollbarWidth},ref:kn,children:[jsxRuntimeExports.jsx(FlexContainer,{"aria-label":at,"aria-labelledby":st,"aria-orientation":yt==="vertical"?"vertical":null,className:Nt.flexContainer,ownerState:Ft,onKeyDown:Un,ref:dn,role:"tablist",children:jn}),Jt&&wn]}),tr.scrollButtonEnd]}))}),Tabs$1=Tabs;function getTextFieldUtilityClass(tt){return generateUtilityClass("MuiTextField",tt)}generateUtilityClasses("MuiTextField",["root"]);const _excluded$A=["autoComplete","autoFocus","children","className","color","defaultValue","disabled","error","FormHelperTextProps","fullWidth","helperText","id","InputLabelProps","inputProps","InputProps","inputRef","label","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","placeholder","required","rows","select","SelectProps","type","value","variant"],variantComponent={standard:Input$3,filled:FilledInput$1,outlined:OutlinedInput$1},useUtilityClasses$g=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getTextFieldUtilityClass,et)},TextFieldRoot=styled$1(FormControl$1,{name:"MuiTextField",slot:"Root",overridesResolver:(tt,et)=>et.root})({}),TextField=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTextField"}),{autoComplete:it,autoFocus:ot=!1,children:at,className:st,color:lt="primary",defaultValue:ct,disabled:ut=!1,error:ht=!1,FormHelperTextProps:dt,fullWidth:pt=!1,helperText:mt,id:gt,InputLabelProps:yt,inputProps:bt,InputProps:wt,inputRef:vt,label:kt,maxRows:St,minRows:Tt,multiline:At=!1,name:Et,onBlur:Mt,onChange:Lt,onClick:jt,onFocus:Rt,placeholder:$t,required:xt=!1,rows:It,select:Ot=!1,SelectProps:zt,type:Ut,value:Wt,variant:Ft="outlined"}=rt,Nt=_objectWithoutPropertiesLoose$g(rt,_excluded$A),Ct=_extends$r({},rt,{autoFocus:ot,color:lt,disabled:ut,error:ht,fullWidth:pt,multiline:At,required:xt,select:Ot,variant:Ft}),Ht=useUtilityClasses$g(Ct),Jt={};Ft==="outlined"&&(yt&&typeof yt.shrink<"u"&&(Jt.notched=yt.shrink),Jt.label=kt),Ot&&((!zt||!zt.native)&&(Jt.id=void 0),Jt["aria-describedby"]=void 0);const nn=useId(gt),Yt=mt&&nn?`${nn}-helper-text`:void 0,fn=kt&&nn?`${nn}-label`:void 0,cn=variantComponent[Ft],_n=jsxRuntimeExports.jsx(cn,_extends$r({"aria-describedby":Yt,autoComplete:it,autoFocus:ot,defaultValue:ct,fullWidth:pt,multiline:At,name:Et,rows:It,maxRows:St,minRows:Tt,type:Ut,value:Wt,id:nn,inputRef:vt,onBlur:Mt,onChange:Lt,onFocus:Rt,onClick:jt,placeholder:$t,inputProps:bt},Jt,wt));return jsxRuntimeExports.jsxs(TextFieldRoot,_extends$r({className:clsx(Ht.root,st),disabled:ut,error:ht,fullWidth:pt,ref:nt,required:xt,color:lt,variant:Ft,ownerState:Ct},Nt,{children:[kt!=null&&kt!==""&&jsxRuntimeExports.jsx(InputLabel$1,_extends$r({htmlFor:nn,id:fn},yt,{children:kt})),Ot?jsxRuntimeExports.jsx(Select$4,_extends$r({"aria-describedby":Yt,id:nn,labelId:fn,value:Wt,input:_n},zt,{children:at})):_n,mt&&jsxRuntimeExports.jsx(FormHelperText$1,_extends$r({id:Yt},dt,{children:mt}))]}))}),MuiTextField=TextField;var DefaultContext={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},IconContext=React$1.createContext&&React$1.createContext(DefaultContext),__assign$3=globalThis&&globalThis.__assign||function(){return __assign$3=Object.assign||function(tt){for(var et,nt=1,rt=arguments.length;nt"u"||!window.document)return rt;var it=document.createElement("style");document.head.appendChild(it);var ot=it.sheet,at=` + `),waveKeyframe,(et.vars||et).palette.action.hover)),Skeleton$1=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiSkeleton"}),{animation:it="pulse",className:ot,component:at="span",height:st,style:lt,variant:ct="text",width:ut}=rt,ht=_objectWithoutPropertiesLoose$g(rt,_excluded$M),dt=_extends$r({},rt,{animation:it,component:at,variant:ct,hasChildren:!!ht.children}),pt=useUtilityClasses$q(dt);return jsxRuntimeExports.jsx(SkeletonRoot,_extends$r({as:at,ref:nt,className:clsx(pt.root,ot),ownerState:dt},ht,{style:_extends$r({width:ut,height:st},lt)}))}),Skeleton$2=Skeleton$1,shouldSpreadAdditionalProps=tt=>!tt||!isHostComponent(tt),shouldSpreadAdditionalProps$1=shouldSpreadAdditionalProps;function getSliderUtilityClass(tt){return generateUtilityClass("MuiSlider",tt)}const sliderClasses=generateUtilityClasses("MuiSlider",["root","active","colorPrimary","colorSecondary","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","thumbColorPrimary","thumbColorSecondary","track","trackInverted","trackFalse","thumbSizeSmall","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]),sliderClasses$1=sliderClasses,useValueLabelClasses=tt=>{const{open:et}=tt;return{offset:clsx(et&&sliderClasses$1.valueLabelOpen),circle:sliderClasses$1.valueLabelCircle,label:sliderClasses$1.valueLabelLabel}};function SliderValueLabel(tt){const{children:et,className:nt,value:rt}=tt,it=useValueLabelClasses(tt);return et?reactExports.cloneElement(et,{className:clsx(et.props.className)},jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[et.props.children,jsxRuntimeExports.jsx("span",{className:clsx(it.offset,nt),"aria-hidden":!0,children:jsxRuntimeExports.jsx("span",{className:it.circle,children:jsxRuntimeExports.jsx("span",{className:it.label,children:rt})})})]})):null}const _excluded$L=["aria-label","aria-valuetext","aria-labelledby","component","components","componentsProps","color","classes","className","disableSwap","disabled","getAriaLabel","getAriaValueText","marks","max","min","name","onChange","onChangeCommitted","orientation","size","step","scale","slotProps","slots","tabIndex","track","value","valueLabelDisplay","valueLabelFormat"];function Identity(tt){return tt}const SliderRoot=styled$1("span",{name:"MuiSlider",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,et[`color${capitalize(nt.color)}`],nt.size!=="medium"&&et[`size${capitalize(nt.size)}`],nt.marked&&et.marked,nt.orientation==="vertical"&&et.vertical,nt.track==="inverted"&&et.trackInverted,nt.track===!1&&et.trackFalse]}})(({theme:tt,ownerState:et})=>_extends$r({borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",color:(tt.vars||tt).palette[et.color].main,WebkitTapHighlightColor:"transparent"},et.orientation==="horizontal"&&_extends$r({height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}},et.size==="small"&&{height:2},et.marked&&{marginBottom:20}),et.orientation==="vertical"&&_extends$r({height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}},et.size==="small"&&{width:2},et.marked&&{marginRight:44}),{"@media print":{colorAdjust:"exact"},[`&.${sliderClasses$1.disabled}`]:{pointerEvents:"none",cursor:"default",color:(tt.vars||tt).palette.grey[400]},[`&.${sliderClasses$1.dragging}`]:{[`& .${sliderClasses$1.thumb}, & .${sliderClasses$1.track}`]:{transition:"none"}}})),SliderRail=styled$1("span",{name:"MuiSlider",slot:"Rail",overridesResolver:(tt,et)=>et.rail})(({ownerState:tt})=>_extends$r({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38},tt.orientation==="horizontal"&&{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"},tt.orientation==="vertical"&&{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"},tt.track==="inverted"&&{opacity:1})),SliderTrack=styled$1("span",{name:"MuiSlider",slot:"Track",overridesResolver:(tt,et)=>et.track})(({theme:tt,ownerState:et})=>{const nt=tt.palette.mode==="light"?lighten(tt.palette[et.color].main,.62):darken(tt.palette[et.color].main,.5);return _extends$r({display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:tt.transitions.create(["left","width","bottom","height"],{duration:tt.transitions.duration.shortest})},et.size==="small"&&{border:"none"},et.orientation==="horizontal"&&{height:"inherit",top:"50%",transform:"translateY(-50%)"},et.orientation==="vertical"&&{width:"inherit",left:"50%",transform:"translateX(-50%)"},et.track===!1&&{display:"none"},et.track==="inverted"&&{backgroundColor:tt.vars?tt.vars.palette.Slider[`${et.color}Track`]:nt,borderColor:tt.vars?tt.vars.palette.Slider[`${et.color}Track`]:nt})}),SliderThumb=styled$1("span",{name:"MuiSlider",slot:"Thumb",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.thumb,et[`thumbColor${capitalize(nt.color)}`],nt.size!=="medium"&&et[`thumbSize${capitalize(nt.size)}`]]}})(({theme:tt,ownerState:et})=>_extends$r({position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:tt.transitions.create(["box-shadow","left","bottom"],{duration:tt.transitions.duration.shortest})},et.size==="small"&&{width:12,height:12},et.orientation==="horizontal"&&{top:"50%",transform:"translate(-50%, -50%)"},et.orientation==="vertical"&&{left:"50%",transform:"translate(-50%, 50%)"},{"&:before":_extends$r({position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(tt.vars||tt).shadows[2]},et.size==="small"&&{boxShadow:"none"}),"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"},[`&:hover, &.${sliderClasses$1.focusVisible}`]:{boxShadow:`0px 0px 0px 8px ${tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / 0.16)`:alpha$1(tt.palette[et.color].main,.16)}`,"@media (hover: none)":{boxShadow:"none"}},[`&.${sliderClasses$1.active}`]:{boxShadow:`0px 0px 0px 14px ${tt.vars?`rgba(${tt.vars.palette[et.color].mainChannel} / 0.16)`:alpha$1(tt.palette[et.color].main,.16)}`},[`&.${sliderClasses$1.disabled}`]:{"&:hover":{boxShadow:"none"}}})),StyledSliderValueLabel=styled$1(SliderValueLabel,{name:"MuiSlider",slot:"ValueLabel",overridesResolver:(tt,et)=>et.valueLabel})(({theme:tt,ownerState:et})=>_extends$r({[`&.${sliderClasses$1.valueLabelOpen}`]:{transform:`${et.orientation==="vertical"?"translateY(-50%)":"translateY(-100%)"} scale(1)`},zIndex:1,whiteSpace:"nowrap"},tt.typography.body2,{fontWeight:500,transition:tt.transitions.create(["transform"],{duration:tt.transitions.duration.shortest}),transform:`${et.orientation==="vertical"?"translateY(-50%)":"translateY(-100%)"} scale(0)`,position:"absolute",backgroundColor:(tt.vars||tt).palette.grey[600],borderRadius:2,color:(tt.vars||tt).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem"},et.orientation==="horizontal"&&{top:"-10px",transformOrigin:"bottom center","&:before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"}},et.orientation==="vertical"&&{right:et.size==="small"?"20px":"30px",top:"50%",transformOrigin:"right center","&:before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"}},et.size==="small"&&{fontSize:tt.typography.pxToRem(12),padding:"0.25rem 0.5rem"})),SliderMark=styled$1("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:tt=>slotShouldForwardProp(tt)&&tt!=="markActive",overridesResolver:(tt,et)=>{const{markActive:nt}=tt;return[et.mark,nt&&et.markActive]}})(({theme:tt,ownerState:et,markActive:nt})=>_extends$r({position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor"},et.orientation==="horizontal"&&{top:"50%",transform:"translate(-1px, -50%)"},et.orientation==="vertical"&&{left:"50%",transform:"translate(-50%, 1px)"},nt&&{backgroundColor:(tt.vars||tt).palette.background.paper,opacity:.8})),SliderMarkLabel=styled$1("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:tt=>slotShouldForwardProp(tt)&&tt!=="markLabelActive",overridesResolver:(tt,et)=>et.markLabel})(({theme:tt,ownerState:et,markLabelActive:nt})=>_extends$r({},tt.typography.body2,{color:(tt.vars||tt).palette.text.secondary,position:"absolute",whiteSpace:"nowrap"},et.orientation==="horizontal"&&{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}},et.orientation==="vertical"&&{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}},nt&&{color:(tt.vars||tt).palette.text.primary})),useUtilityClasses$p=tt=>{const{disabled:et,dragging:nt,marked:rt,orientation:it,track:ot,classes:at,color:st,size:lt}=tt,ct={root:["root",et&&"disabled",nt&&"dragging",rt&&"marked",it==="vertical"&&"vertical",ot==="inverted"&&"trackInverted",ot===!1&&"trackFalse",st&&`color${capitalize(st)}`,lt&&`size${capitalize(lt)}`],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",et&&"disabled",lt&&`thumbSize${capitalize(lt)}`,st&&`thumbColor${capitalize(st)}`],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]};return composeClasses(ct,getSliderUtilityClass,at)},Forward=({children:tt})=>tt,Slider=reactExports.forwardRef(function(et,nt){var rt,it,ot,at,st,lt,ct,ut,ht,dt,pt,mt,gt,yt,bt,wt,vt,kt,St,Et,At,Tt,Mt,Lt;const jt=useThemeProps({props:et,name:"MuiSlider"}),$t=useTheme().direction==="rtl",{"aria-label":xt,"aria-valuetext":It,"aria-labelledby":Ot,component:zt="span",components:Ut={},componentsProps:Wt={},color:Ft="primary",classes:Nt,className:Ct,disableSwap:Ht=!1,disabled:Jt=!1,getAriaLabel:nn,getAriaValueText:Yt,marks:fn=!1,max:cn=100,min:_n=0,orientation:En="horizontal",size:an="medium",step:en=1,scale:Tn=Identity,slotProps:Rn,slots:An,track:yn="normal",valueLabelDisplay:kn="off",valueLabelFormat:dn=Identity}=jt,gn=_objectWithoutPropertiesLoose$g(jt,_excluded$L),Cn=_extends$r({},jt,{isRtl:$t,max:cn,min:_n,classes:Nt,disabled:Jt,disableSwap:Ht,orientation:En,marks:fn,color:Ft,size:an,step:en,scale:Tn,track:yn,valueLabelDisplay:kn,valueLabelFormat:dn}),{axisProps:$n,getRootProps:un,getHiddenInputProps:rn,getThumbProps:Sn,open:Mn,active:Nn,axis:hn,focusedThumbIndex:Qt,range:Zt,dragging:wn,marks:On,values:jn,trackOffset:Un,trackLeap:tr,getThumbStyle:qn}=useSlider(_extends$r({},Cn,{rootRef:nt}));Cn.marked=On.length>0&&On.some(nr=>nr.label),Cn.dragging=wn,Cn.focusedThumbIndex=Qt;const Xn=useUtilityClasses$p(Cn),Wn=(rt=(it=An==null?void 0:An.root)!=null?it:Ut.Root)!=null?rt:SliderRoot,Zn=(ot=(at=An==null?void 0:An.rail)!=null?at:Ut.Rail)!=null?ot:SliderRail,Vn=(st=(lt=An==null?void 0:An.track)!=null?lt:Ut.Track)!=null?st:SliderTrack,pr=(ct=(ut=An==null?void 0:An.thumb)!=null?ut:Ut.Thumb)!=null?ct:SliderThumb,fr=(ht=(dt=An==null?void 0:An.valueLabel)!=null?dt:Ut.ValueLabel)!=null?ht:StyledSliderValueLabel,Er=(pt=(mt=An==null?void 0:An.mark)!=null?mt:Ut.Mark)!=null?pt:SliderMark,oo=(gt=(yt=An==null?void 0:An.markLabel)!=null?yt:Ut.MarkLabel)!=null?gt:SliderMarkLabel,Dr=(bt=(wt=An==null?void 0:An.input)!=null?wt:Ut.Input)!=null?bt:"input",Rr=(vt=Rn==null?void 0:Rn.root)!=null?vt:Wt.root,Xr=(kt=Rn==null?void 0:Rn.rail)!=null?kt:Wt.rail,Vr=(St=Rn==null?void 0:Rn.track)!=null?St:Wt.track,Fr=(Et=Rn==null?void 0:Rn.thumb)!=null?Et:Wt.thumb,so=(At=Rn==null?void 0:Rn.valueLabel)!=null?At:Wt.valueLabel,qr=(Tt=Rn==null?void 0:Rn.mark)!=null?Tt:Wt.mark,Or=(Mt=Rn==null?void 0:Rn.markLabel)!=null?Mt:Wt.markLabel,wo=(Lt=Rn==null?void 0:Rn.input)!=null?Lt:Wt.input,vn=useSlotProps({elementType:Wn,getSlotProps:un,externalSlotProps:Rr,externalForwardedProps:gn,additionalProps:_extends$r({},shouldSpreadAdditionalProps$1(Wn)&&{as:zt}),ownerState:_extends$r({},Cn,Rr==null?void 0:Rr.ownerState),className:[Xn.root,Ct]}),Pn=useSlotProps({elementType:Zn,externalSlotProps:Xr,ownerState:Cn,className:Xn.rail}),sn=useSlotProps({elementType:Vn,externalSlotProps:Vr,additionalProps:{style:_extends$r({},$n[hn].offset(Un),$n[hn].leap(tr))},ownerState:_extends$r({},Cn,Vr==null?void 0:Vr.ownerState),className:Xn.track}),Xt=useSlotProps({elementType:pr,getSlotProps:Sn,externalSlotProps:Fr,ownerState:_extends$r({},Cn,Fr==null?void 0:Fr.ownerState),className:Xn.thumb}),xn=useSlotProps({elementType:fr,externalSlotProps:so,ownerState:_extends$r({},Cn,so==null?void 0:so.ownerState),className:Xn.valueLabel}),Dn=useSlotProps({elementType:Er,externalSlotProps:qr,ownerState:Cn,className:Xn.mark}),Fn=useSlotProps({elementType:oo,externalSlotProps:Or,ownerState:Cn,className:Xn.markLabel}),Kn=useSlotProps({elementType:Dr,getSlotProps:rn,externalSlotProps:wo,ownerState:Cn});return jsxRuntimeExports.jsxs(Wn,_extends$r({},vn,{children:[jsxRuntimeExports.jsx(Zn,_extends$r({},Pn)),jsxRuntimeExports.jsx(Vn,_extends$r({},sn)),On.filter(nr=>nr.value>=_n&&nr.value<=cn).map((nr,lr)=>{const cr=valueToPercent(nr.value,_n,cn),Hr=$n[hn].offset(cr);let _r;return yn===!1?_r=jn.indexOf(nr.value)!==-1:_r=yn==="normal"&&(Zt?nr.value>=jn[0]&&nr.value<=jn[jn.length-1]:nr.value<=jn[0])||yn==="inverted"&&(Zt?nr.value<=jn[0]||nr.value>=jn[jn.length-1]:nr.value>=jn[0]),jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(Er,_extends$r({"data-index":lr},Dn,!isHostComponent(Er)&&{markActive:_r},{style:_extends$r({},Hr,Dn.style),className:clsx(Dn.className,_r&&Xn.markActive)})),nr.label!=null?jsxRuntimeExports.jsx(oo,_extends$r({"aria-hidden":!0,"data-index":lr},Fn,!isHostComponent(oo)&&{markLabelActive:_r},{style:_extends$r({},Hr,Fn.style),className:clsx(Xn.markLabel,Fn.className,_r&&Xn.markLabelActive),children:nr.label})):null]},lr)}),jn.map((nr,lr)=>{const cr=valueToPercent(nr,_n,cn),Hr=$n[hn].offset(cr),_r=kn==="off"?Forward:fr;return jsxRuntimeExports.jsx(_r,_extends$r({},!isHostComponent(_r)&&{valueLabelFormat:dn,valueLabelDisplay:kn,value:typeof dn=="function"?dn(Tn(nr),lr):dn,index:lr,open:Mn===lr||Nn===lr||kn==="on",disabled:Jt},xn,{children:jsxRuntimeExports.jsx(pr,_extends$r({"data-index":lr},Xt,{className:clsx(Xn.thumb,Xt.className,Nn===lr&&Xn.active,Qt===lr&&Xn.focusVisible),style:_extends$r({},Hr,qn(lr),Xt.style),children:jsxRuntimeExports.jsx(Dr,_extends$r({"data-index":lr,"aria-label":nn?nn(lr):xt,"aria-valuenow":Tn(nr),"aria-labelledby":Ot,"aria-valuetext":Yt?Yt(Tn(nr),lr):It,value:jn[lr]},Kn))}))}),lr)})]}))}),Slider$1=Slider;function getTabUtilityClass(tt){return generateUtilityClass("MuiTab",tt)}const tabClasses=generateUtilityClasses("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper"]),tabClasses$1=tabClasses,_excluded$K=["className","disabled","disableFocusRipple","fullWidth","icon","iconPosition","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"],useUtilityClasses$o=tt=>{const{classes:et,textColor:nt,fullWidth:rt,wrapped:it,icon:ot,label:at,selected:st,disabled:lt}=tt,ct={root:["root",ot&&at&&"labelIcon",`textColor${capitalize(nt)}`,rt&&"fullWidth",it&&"wrapped",st&&"selected",lt&&"disabled"],iconWrapper:["iconWrapper"]};return composeClasses(ct,getTabUtilityClass,et)},TabRoot=styled$1(ButtonBase$1,{name:"MuiTab",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.label&&nt.icon&&et.labelIcon,et[`textColor${capitalize(nt.textColor)}`],nt.fullWidth&&et.fullWidth,nt.wrapped&&et.wrapped]}})(({theme:tt,ownerState:et})=>_extends$r({},tt.typography.button,{maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center"},et.label&&{flexDirection:et.iconPosition==="top"||et.iconPosition==="bottom"?"column":"row"},{lineHeight:1.25},et.icon&&et.label&&{minHeight:72,paddingTop:9,paddingBottom:9,[`& > .${tabClasses$1.iconWrapper}`]:_extends$r({},et.iconPosition==="top"&&{marginBottom:6},et.iconPosition==="bottom"&&{marginTop:6},et.iconPosition==="start"&&{marginRight:tt.spacing(1)},et.iconPosition==="end"&&{marginLeft:tt.spacing(1)})},et.textColor==="inherit"&&{color:"inherit",opacity:.6,[`&.${tabClasses$1.selected}`]:{opacity:1},[`&.${tabClasses$1.disabled}`]:{opacity:(tt.vars||tt).palette.action.disabledOpacity}},et.textColor==="primary"&&{color:(tt.vars||tt).palette.text.secondary,[`&.${tabClasses$1.selected}`]:{color:(tt.vars||tt).palette.primary.main},[`&.${tabClasses$1.disabled}`]:{color:(tt.vars||tt).palette.text.disabled}},et.textColor==="secondary"&&{color:(tt.vars||tt).palette.text.secondary,[`&.${tabClasses$1.selected}`]:{color:(tt.vars||tt).palette.secondary.main},[`&.${tabClasses$1.disabled}`]:{color:(tt.vars||tt).palette.text.disabled}},et.fullWidth&&{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},et.wrapped&&{fontSize:tt.typography.pxToRem(12)})),Tab$1=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTab"}),{className:it,disabled:ot=!1,disableFocusRipple:at=!1,fullWidth:st,icon:lt,iconPosition:ct="top",indicator:ut,label:ht,onChange:dt,onClick:pt,onFocus:mt,selected:gt,selectionFollowsFocus:yt,textColor:bt="inherit",value:wt,wrapped:vt=!1}=rt,kt=_objectWithoutPropertiesLoose$g(rt,_excluded$K),St=_extends$r({},rt,{disabled:ot,disableFocusRipple:at,selected:gt,icon:!!lt,iconPosition:ct,label:!!ht,fullWidth:st,textColor:bt,wrapped:vt}),Et=useUtilityClasses$o(St),At=lt&&ht&&reactExports.isValidElement(lt)?reactExports.cloneElement(lt,{className:clsx(Et.iconWrapper,lt.props.className)}):lt,Tt=Lt=>{!gt&&dt&&dt(Lt,wt),pt&&pt(Lt)},Mt=Lt=>{yt&&!gt&&dt&&dt(Lt,wt),mt&&mt(Lt)};return jsxRuntimeExports.jsxs(TabRoot,_extends$r({focusRipple:!at,className:clsx(Et.root,it),ref:nt,role:"tab","aria-selected":gt,disabled:ot,onClick:Tt,onFocus:Mt,ownerState:St,tabIndex:gt?0:-1},kt,{children:[ct==="top"||ct==="start"?jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[At,ht]}):jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ht,At]}),ut]}))}),Tab$2=Tab$1,TableContext=reactExports.createContext(),TableContext$1=TableContext;function getTableUtilityClass(tt){return generateUtilityClass("MuiTable",tt)}generateUtilityClasses("MuiTable",["root","stickyHeader"]);const _excluded$J=["className","component","padding","size","stickyHeader"],useUtilityClasses$n=tt=>{const{classes:et,stickyHeader:nt}=tt;return composeClasses({root:["root",nt&&"stickyHeader"]},getTableUtilityClass,et)},TableRoot=styled$1("table",{name:"MuiTable",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.stickyHeader&&et.stickyHeader]}})(({theme:tt,ownerState:et})=>_extends$r({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":_extends$r({},tt.typography.body2,{padding:tt.spacing(2),color:(tt.vars||tt).palette.text.secondary,textAlign:"left",captionSide:"bottom"})},et.stickyHeader&&{borderCollapse:"separate"})),defaultComponent$3="table",Table$2=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTable"}),{className:it,component:ot=defaultComponent$3,padding:at="normal",size:st="medium",stickyHeader:lt=!1}=rt,ct=_objectWithoutPropertiesLoose$g(rt,_excluded$J),ut=_extends$r({},rt,{component:ot,padding:at,size:st,stickyHeader:lt}),ht=useUtilityClasses$n(ut),dt=reactExports.useMemo(()=>({padding:at,size:st,stickyHeader:lt}),[at,st,lt]);return jsxRuntimeExports.jsx(TableContext$1.Provider,{value:dt,children:jsxRuntimeExports.jsx(TableRoot,_extends$r({as:ot,role:ot===defaultComponent$3?null:"table",ref:nt,className:clsx(ht.root,it),ownerState:ut},ct))})}),MaterialTable=Table$2,Tablelvl2Context=reactExports.createContext(),Tablelvl2Context$1=Tablelvl2Context;function getTableBodyUtilityClass(tt){return generateUtilityClass("MuiTableBody",tt)}generateUtilityClasses("MuiTableBody",["root"]);const _excluded$I=["className","component"],useUtilityClasses$m=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getTableBodyUtilityClass,et)},TableBodyRoot=styled$1("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"table-row-group"}),tablelvl2$1={variant:"body"},defaultComponent$2="tbody",TableBody=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTableBody"}),{className:it,component:ot=defaultComponent$2}=rt,at=_objectWithoutPropertiesLoose$g(rt,_excluded$I),st=_extends$r({},rt,{component:ot}),lt=useUtilityClasses$m(st);return jsxRuntimeExports.jsx(Tablelvl2Context$1.Provider,{value:tablelvl2$1,children:jsxRuntimeExports.jsx(TableBodyRoot,_extends$r({className:clsx(lt.root,it),as:ot,ref:nt,role:ot===defaultComponent$2?null:"rowgroup",ownerState:st},at))})}),TableBody$1=TableBody;function getTableCellUtilityClass(tt){return generateUtilityClass("MuiTableCell",tt)}const tableCellClasses=generateUtilityClasses("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),tableCellClasses$1=tableCellClasses,_excluded$G=["align","className","component","padding","scope","size","sortDirection","variant"],useUtilityClasses$l=tt=>{const{classes:et,variant:nt,align:rt,padding:it,size:ot,stickyHeader:at}=tt,st={root:["root",nt,at&&"stickyHeader",rt!=="inherit"&&`align${capitalize(rt)}`,it!=="normal"&&`padding${capitalize(it)}`,`size${capitalize(ot)}`]};return composeClasses(st,getTableCellUtilityClass,et)},TableCellRoot=styled$1("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,et[nt.variant],et[`size${capitalize(nt.size)}`],nt.padding!=="normal"&&et[`padding${capitalize(nt.padding)}`],nt.align!=="inherit"&&et[`align${capitalize(nt.align)}`],nt.stickyHeader&&et.stickyHeader]}})(({theme:tt,ownerState:et})=>_extends$r({},tt.typography.body2,{display:"table-cell",verticalAlign:"inherit",borderBottom:tt.vars?`1px solid ${tt.vars.palette.TableCell.border}`:`1px solid + ${tt.palette.mode==="light"?lighten(alpha$1(tt.palette.divider,1),.88):darken(alpha$1(tt.palette.divider,1),.68)}`,textAlign:"left",padding:16},et.variant==="head"&&{color:(tt.vars||tt).palette.text.primary,lineHeight:tt.typography.pxToRem(24),fontWeight:tt.typography.fontWeightMedium},et.variant==="body"&&{color:(tt.vars||tt).palette.text.primary},et.variant==="footer"&&{color:(tt.vars||tt).palette.text.secondary,lineHeight:tt.typography.pxToRem(21),fontSize:tt.typography.pxToRem(12)},et.size==="small"&&{padding:"6px 16px",[`&.${tableCellClasses$1.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}},et.padding==="checkbox"&&{width:48,padding:"0 0 0 4px"},et.padding==="none"&&{padding:0},et.align==="left"&&{textAlign:"left"},et.align==="center"&&{textAlign:"center"},et.align==="right"&&{textAlign:"right",flexDirection:"row-reverse"},et.align==="justify"&&{textAlign:"justify"},et.stickyHeader&&{position:"sticky",top:0,zIndex:2,backgroundColor:(tt.vars||tt).palette.background.default})),TableCell=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTableCell"}),{align:it="inherit",className:ot,component:at,padding:st,scope:lt,size:ct,sortDirection:ut,variant:ht}=rt,dt=_objectWithoutPropertiesLoose$g(rt,_excluded$G),pt=reactExports.useContext(TableContext$1),mt=reactExports.useContext(Tablelvl2Context$1),gt=mt&&mt.variant==="head";let yt;at?yt=at:yt=gt?"th":"td";let bt=lt;yt==="td"?bt=void 0:!bt&>&&(bt="col");const wt=ht||mt&&mt.variant,vt=_extends$r({},rt,{align:it,component:yt,padding:st||(pt&&pt.padding?pt.padding:"normal"),size:ct||(pt&&pt.size?pt.size:"medium"),sortDirection:ut,stickyHeader:wt==="head"&&pt&&pt.stickyHeader,variant:wt}),kt=useUtilityClasses$l(vt);let St=null;return ut&&(St=ut==="asc"?"ascending":"descending"),jsxRuntimeExports.jsx(TableCellRoot,_extends$r({as:yt,ref:nt,className:clsx(kt.root,ot),"aria-sort":St,scope:bt,ownerState:vt},dt))}),TableCell$1=TableCell;function getTableHeadUtilityClass(tt){return generateUtilityClass("MuiTableHead",tt)}generateUtilityClasses("MuiTableHead",["root"]);const _excluded$F=["className","component"],useUtilityClasses$k=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getTableHeadUtilityClass,et)},TableHeadRoot=styled$1("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"table-header-group"}),tablelvl2={variant:"head"},defaultComponent$1="thead",TableHead=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTableHead"}),{className:it,component:ot=defaultComponent$1}=rt,at=_objectWithoutPropertiesLoose$g(rt,_excluded$F),st=_extends$r({},rt,{component:ot}),lt=useUtilityClasses$k(st);return jsxRuntimeExports.jsx(Tablelvl2Context$1.Provider,{value:tablelvl2,children:jsxRuntimeExports.jsx(TableHeadRoot,_extends$r({as:ot,className:clsx(lt.root,it),ref:nt,role:ot===defaultComponent$1?null:"rowgroup",ownerState:st},at))})}),TableHead$1=TableHead,KeyboardArrowLeft=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),KeyboardArrowRight=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");function getTableRowUtilityClass(tt){return generateUtilityClass("MuiTableRow",tt)}const tableRowClasses=generateUtilityClasses("MuiTableRow",["root","selected","hover","head","footer"]),tableRowClasses$1=tableRowClasses,_excluded$E=["className","component","hover","selected"],useUtilityClasses$j=tt=>{const{classes:et,selected:nt,hover:rt,head:it,footer:ot}=tt;return composeClasses({root:["root",nt&&"selected",rt&&"hover",it&&"head",ot&&"footer"]},getTableRowUtilityClass,et)},TableRowRoot=styled$1("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.head&&et.head,nt.footer&&et.footer]}})(({theme:tt})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${tableRowClasses$1.hover}:hover`]:{backgroundColor:(tt.vars||tt).palette.action.hover},[`&.${tableRowClasses$1.selected}`]:{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.selectedOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity),"&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / calc(${tt.vars.palette.action.selectedOpacity} + ${tt.vars.palette.action.hoverOpacity}))`:alpha$1(tt.palette.primary.main,tt.palette.action.selectedOpacity+tt.palette.action.hoverOpacity)}}})),defaultComponent="tr",TableRow=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTableRow"}),{className:it,component:ot=defaultComponent,hover:at=!1,selected:st=!1}=rt,lt=_objectWithoutPropertiesLoose$g(rt,_excluded$E),ct=reactExports.useContext(Tablelvl2Context$1),ut=_extends$r({},rt,{component:ot,hover:at,selected:st,head:ct&&ct.variant==="head",footer:ct&&ct.variant==="footer"}),ht=useUtilityClasses$j(ut);return jsxRuntimeExports.jsx(TableRowRoot,_extends$r({as:ot,ref:nt,className:clsx(ht.root,it),role:ot===defaultComponent?null:"row",ownerState:ut},lt))}),TableRow$1=TableRow;function easeInOutSin(tt){return(1+Math.sin(Math.PI*tt-Math.PI/2))/2}function animate(tt,et,nt,rt={},it=()=>{}){const{ease:ot=easeInOutSin,duration:at=300}=rt;let st=null;const lt=et[tt];let ct=!1;const ut=()=>{ct=!0},ht=dt=>{if(ct){it(new Error("Animation cancelled"));return}st===null&&(st=dt);const pt=Math.min(1,(dt-st)/at);if(et[tt]=ot(pt)*(nt-lt)+lt,pt>=1){requestAnimationFrame(()=>{it(null)});return}requestAnimationFrame(ht)};return lt===nt?(it(new Error("Element already at target position")),ut):(requestAnimationFrame(ht),ut)}const _excluded$D=["onChange"],styles$2={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function ScrollbarSize(tt){const{onChange:et}=tt,nt=_objectWithoutPropertiesLoose$g(tt,_excluded$D),rt=reactExports.useRef(),it=reactExports.useRef(null),ot=()=>{rt.current=it.current.offsetHeight-it.current.clientHeight};return useEnhancedEffect$1(()=>{const at=debounce$5(()=>{const lt=rt.current;ot(),lt!==rt.current&&et(rt.current)}),st=ownerWindow(it.current);return st.addEventListener("resize",at),()=>{at.clear(),st.removeEventListener("resize",at)}},[et]),reactExports.useEffect(()=>{ot(),et(rt.current)},[et]),jsxRuntimeExports.jsx("div",_extends$r({style:styles$2,ref:it},nt))}function getTabScrollButtonUtilityClass(tt){return generateUtilityClass("MuiTabScrollButton",tt)}const tabScrollButtonClasses=generateUtilityClasses("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),tabScrollButtonClasses$1=tabScrollButtonClasses,_excluded$C=["className","slots","slotProps","direction","orientation","disabled"],useUtilityClasses$i=tt=>{const{classes:et,orientation:nt,disabled:rt}=tt;return composeClasses({root:["root",nt,rt&&"disabled"]},getTabScrollButtonUtilityClass,et)},TabScrollButtonRoot=styled$1(ButtonBase$1,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.root,nt.orientation&&et[nt.orientation]]}})(({ownerState:tt})=>_extends$r({width:40,flexShrink:0,opacity:.8,[`&.${tabScrollButtonClasses$1.disabled}`]:{opacity:0}},tt.orientation==="vertical"&&{width:"100%",height:40,"& svg":{transform:`rotate(${tt.isRtl?-90:90}deg)`}})),TabScrollButton=reactExports.forwardRef(function(et,nt){var rt,it;const ot=useThemeProps({props:et,name:"MuiTabScrollButton"}),{className:at,slots:st={},slotProps:lt={},direction:ct}=ot,ut=_objectWithoutPropertiesLoose$g(ot,_excluded$C),dt=useTheme().direction==="rtl",pt=_extends$r({isRtl:dt},ot),mt=useUtilityClasses$i(pt),gt=(rt=st.StartScrollButtonIcon)!=null?rt:KeyboardArrowLeft,yt=(it=st.EndScrollButtonIcon)!=null?it:KeyboardArrowRight,bt=useSlotProps({elementType:gt,externalSlotProps:lt.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:pt}),wt=useSlotProps({elementType:yt,externalSlotProps:lt.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:pt});return jsxRuntimeExports.jsx(TabScrollButtonRoot,_extends$r({component:"div",className:clsx(mt.root,at),ref:nt,role:null,ownerState:pt,tabIndex:null},ut,{children:ct==="left"?jsxRuntimeExports.jsx(gt,_extends$r({},bt)):jsxRuntimeExports.jsx(yt,_extends$r({},wt))}))}),TabScrollButton$1=TabScrollButton;function getTabsUtilityClass(tt){return generateUtilityClass("MuiTabs",tt)}const tabsClasses=generateUtilityClasses("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),tabsClasses$1=tabsClasses,_excluded$B=["aria-label","aria-labelledby","action","centered","children","className","component","allowScrollButtonsMobile","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","slots","slotProps","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant","visibleScrollbar"],nextItem=(tt,et)=>tt===et?tt.firstChild:et&&et.nextElementSibling?et.nextElementSibling:tt.firstChild,previousItem=(tt,et)=>tt===et?tt.lastChild:et&&et.previousElementSibling?et.previousElementSibling:tt.lastChild,moveFocus=(tt,et,nt)=>{let rt=!1,it=nt(tt,et);for(;it;){if(it===tt.firstChild){if(rt)return;rt=!0}const ot=it.disabled||it.getAttribute("aria-disabled")==="true";if(!it.hasAttribute("tabindex")||ot)it=nt(tt,it);else{it.focus();return}}},useUtilityClasses$h=tt=>{const{vertical:et,fixed:nt,hideScrollbar:rt,scrollableX:it,scrollableY:ot,centered:at,scrollButtonsHideMobile:st,classes:lt}=tt;return composeClasses({root:["root",et&&"vertical"],scroller:["scroller",nt&&"fixed",rt&&"hideScrollbar",it&&"scrollableX",ot&&"scrollableY"],flexContainer:["flexContainer",et&&"flexContainerVertical",at&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",st&&"scrollButtonsHideMobile"],scrollableX:[it&&"scrollableX"],hideScrollbar:[rt&&"hideScrollbar"]},getTabsUtilityClass,lt)},TabsRoot=styled$1("div",{name:"MuiTabs",slot:"Root",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[{[`& .${tabsClasses$1.scrollButtons}`]:et.scrollButtons},{[`& .${tabsClasses$1.scrollButtons}`]:nt.scrollButtonsHideMobile&&et.scrollButtonsHideMobile},et.root,nt.vertical&&et.vertical]}})(({ownerState:tt,theme:et})=>_extends$r({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},tt.vertical&&{flexDirection:"column"},tt.scrollButtonsHideMobile&&{[`& .${tabsClasses$1.scrollButtons}`]:{[et.breakpoints.down("sm")]:{display:"none"}}})),TabsScroller=styled$1("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.scroller,nt.fixed&&et.fixed,nt.hideScrollbar&&et.hideScrollbar,nt.scrollableX&&et.scrollableX,nt.scrollableY&&et.scrollableY]}})(({ownerState:tt})=>_extends$r({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},tt.fixed&&{overflowX:"hidden",width:"100%"},tt.hideScrollbar&&{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},tt.scrollableX&&{overflowX:"auto",overflowY:"hidden"},tt.scrollableY&&{overflowY:"auto",overflowX:"hidden"})),FlexContainer=styled$1("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(tt,et)=>{const{ownerState:nt}=tt;return[et.flexContainer,nt.vertical&&et.flexContainerVertical,nt.centered&&et.centered]}})(({ownerState:tt})=>_extends$r({display:"flex"},tt.vertical&&{flexDirection:"column"},tt.centered&&{justifyContent:"center"})),TabsIndicator=styled$1("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(tt,et)=>et.indicator})(({ownerState:tt,theme:et})=>_extends$r({position:"absolute",height:2,bottom:0,width:"100%",transition:et.transitions.create()},tt.indicatorColor==="primary"&&{backgroundColor:(et.vars||et).palette.primary.main},tt.indicatorColor==="secondary"&&{backgroundColor:(et.vars||et).palette.secondary.main},tt.vertical&&{height:"100%",width:2,right:0})),TabsScrollbarSize=styled$1(ScrollbarSize,{name:"MuiTabs",slot:"ScrollbarSize"})({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),defaultIndicatorStyle={},Tabs=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTabs"}),it=useTheme(),ot=it.direction==="rtl",{"aria-label":at,"aria-labelledby":st,action:lt,centered:ct=!1,children:ut,className:ht,component:dt="div",allowScrollButtonsMobile:pt=!1,indicatorColor:mt="primary",onChange:gt,orientation:yt="horizontal",ScrollButtonComponent:bt=TabScrollButton$1,scrollButtons:wt="auto",selectionFollowsFocus:vt,slots:kt={},slotProps:St={},TabIndicatorProps:Et={},TabScrollButtonProps:At={},textColor:Tt="primary",value:Mt,variant:Lt="standard",visibleScrollbar:jt=!1}=rt,Rt=_objectWithoutPropertiesLoose$g(rt,_excluded$B),$t=Lt==="scrollable",xt=yt==="vertical",It=xt?"scrollTop":"scrollLeft",Ot=xt?"top":"left",zt=xt?"bottom":"right",Ut=xt?"clientHeight":"clientWidth",Wt=xt?"height":"width",Ft=_extends$r({},rt,{component:dt,allowScrollButtonsMobile:pt,indicatorColor:mt,orientation:yt,vertical:xt,scrollButtons:wt,textColor:Tt,variant:Lt,visibleScrollbar:jt,fixed:!$t,hideScrollbar:$t&&!jt,scrollableX:$t&&!xt,scrollableY:$t&&xt,centered:ct&&!$t,scrollButtonsHideMobile:!pt}),Nt=useUtilityClasses$h(Ft),Ct=useSlotProps({elementType:kt.StartScrollButtonIcon,externalSlotProps:St.startScrollButtonIcon,ownerState:Ft}),Ht=useSlotProps({elementType:kt.EndScrollButtonIcon,externalSlotProps:St.endScrollButtonIcon,ownerState:Ft}),[Jt,nn]=reactExports.useState(!1),[Yt,fn]=reactExports.useState(defaultIndicatorStyle),[cn,_n]=reactExports.useState(!1),[En,an]=reactExports.useState(!1),[en,Tn]=reactExports.useState(!1),[Rn,An]=reactExports.useState({overflow:"hidden",scrollbarWidth:0}),yn=new Map,kn=reactExports.useRef(null),dn=reactExports.useRef(null),gn=()=>{const qn=kn.current;let Xn;if(qn){const Zn=qn.getBoundingClientRect();Xn={clientWidth:qn.clientWidth,scrollLeft:qn.scrollLeft,scrollTop:qn.scrollTop,scrollLeftNormalized:getNormalizedScrollLeft(qn,it.direction),scrollWidth:qn.scrollWidth,top:Zn.top,bottom:Zn.bottom,left:Zn.left,right:Zn.right}}let Wn;if(qn&&Mt!==!1){const Zn=dn.current.children;if(Zn.length>0){const Vn=Zn[yn.get(Mt)];Wn=Vn?Vn.getBoundingClientRect():null}}return{tabsMeta:Xn,tabMeta:Wn}},Cn=useEventCallback(()=>{const{tabsMeta:qn,tabMeta:Xn}=gn();let Wn=0,Zn;if(xt)Zn="top",Xn&&qn&&(Wn=Xn.top-qn.top+qn.scrollTop);else if(Zn=ot?"right":"left",Xn&&qn){const pr=ot?qn.scrollLeftNormalized+qn.clientWidth-qn.scrollWidth:qn.scrollLeft;Wn=(ot?-1:1)*(Xn[Zn]-qn[Zn]+pr)}const Vn={[Zn]:Wn,[Wt]:Xn?Xn[Wt]:0};if(isNaN(Yt[Zn])||isNaN(Yt[Wt]))fn(Vn);else{const pr=Math.abs(Yt[Zn]-Vn[Zn]),fr=Math.abs(Yt[Wt]-Vn[Wt]);(pr>=1||fr>=1)&&fn(Vn)}}),$n=(qn,{animation:Xn=!0}={})=>{Xn?animate(It,kn.current,qn,{duration:it.transitions.duration.standard}):kn.current[It]=qn},un=qn=>{let Xn=kn.current[It];xt?Xn+=qn:(Xn+=qn*(ot?-1:1),Xn*=ot&&detectScrollType()==="reverse"?-1:1),$n(Xn)},rn=()=>{const qn=kn.current[Ut];let Xn=0;const Wn=Array.from(dn.current.children);for(let Zn=0;Znqn){Zn===0&&(Xn=qn);break}Xn+=Vn[Ut]}return Xn},Sn=()=>{un(-1*rn())},Mn=()=>{un(rn())},Nn=reactExports.useCallback(qn=>{An({overflow:null,scrollbarWidth:qn})},[]),hn=()=>{const qn={};qn.scrollbarSizeListener=$t?jsxRuntimeExports.jsx(TabsScrollbarSize,{onChange:Nn,className:clsx(Nt.scrollableX,Nt.hideScrollbar)}):null;const Wn=$t&&(wt==="auto"&&(cn||En)||wt===!0);return qn.scrollButtonStart=Wn?jsxRuntimeExports.jsx(bt,_extends$r({slots:{StartScrollButtonIcon:kt.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:Ct},orientation:yt,direction:ot?"right":"left",onClick:Sn,disabled:!cn},At,{className:clsx(Nt.scrollButtons,At.className)})):null,qn.scrollButtonEnd=Wn?jsxRuntimeExports.jsx(bt,_extends$r({slots:{EndScrollButtonIcon:kt.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:Ht},orientation:yt,direction:ot?"left":"right",onClick:Mn,disabled:!En},At,{className:clsx(Nt.scrollButtons,At.className)})):null,qn},Qt=useEventCallback(qn=>{const{tabsMeta:Xn,tabMeta:Wn}=gn();if(!(!Wn||!Xn)){if(Wn[Ot]Xn[zt]){const Zn=Xn[It]+(Wn[zt]-Xn[zt]);$n(Zn,{animation:qn})}}}),Zt=useEventCallback(()=>{$t&&wt!==!1&&Tn(!en)});reactExports.useEffect(()=>{const qn=debounce$5(()=>{kn.current&&Cn()}),Xn=ownerWindow(kn.current);Xn.addEventListener("resize",qn);let Wn;return typeof ResizeObserver<"u"&&(Wn=new ResizeObserver(qn),Array.from(dn.current.children).forEach(Zn=>{Wn.observe(Zn)})),()=>{qn.clear(),Xn.removeEventListener("resize",qn),Wn&&Wn.disconnect()}},[Cn]),reactExports.useEffect(()=>{const qn=Array.from(dn.current.children),Xn=qn.length;if(typeof IntersectionObserver<"u"&&Xn>0&&$t&&wt!==!1){const Wn=qn[0],Zn=qn[Xn-1],Vn={root:kn.current,threshold:.99},pr=Dr=>{_n(!Dr[0].isIntersecting)},fr=new IntersectionObserver(pr,Vn);fr.observe(Wn);const Er=Dr=>{an(!Dr[0].isIntersecting)},oo=new IntersectionObserver(Er,Vn);return oo.observe(Zn),()=>{fr.disconnect(),oo.disconnect()}}},[$t,wt,en,ut==null?void 0:ut.length]),reactExports.useEffect(()=>{nn(!0)},[]),reactExports.useEffect(()=>{Cn()}),reactExports.useEffect(()=>{Qt(defaultIndicatorStyle!==Yt)},[Qt,Yt]),reactExports.useImperativeHandle(lt,()=>({updateIndicator:Cn,updateScrollButtons:Zt}),[Cn,Zt]);const wn=jsxRuntimeExports.jsx(TabsIndicator,_extends$r({},Et,{className:clsx(Nt.indicator,Et.className),ownerState:Ft,style:_extends$r({},Yt,Et.style)}));let On=0;const jn=reactExports.Children.map(ut,qn=>{if(!reactExports.isValidElement(qn))return null;const Xn=qn.props.value===void 0?On:qn.props.value;yn.set(Xn,On);const Wn=Xn===Mt;return On+=1,reactExports.cloneElement(qn,_extends$r({fullWidth:Lt==="fullWidth",indicator:Wn&&!Jt&&wn,selected:Wn,selectionFollowsFocus:vt,onChange:gt,textColor:Tt,value:Xn},On===1&&Mt===!1&&!qn.props.tabIndex?{tabIndex:0}:{}))}),Un=qn=>{const Xn=dn.current,Wn=ownerDocument(Xn).activeElement;if(Wn.getAttribute("role")!=="tab")return;let Vn=yt==="horizontal"?"ArrowLeft":"ArrowUp",pr=yt==="horizontal"?"ArrowRight":"ArrowDown";switch(yt==="horizontal"&&ot&&(Vn="ArrowRight",pr="ArrowLeft"),qn.key){case Vn:qn.preventDefault(),moveFocus(Xn,Wn,previousItem);break;case pr:qn.preventDefault(),moveFocus(Xn,Wn,nextItem);break;case"Home":qn.preventDefault(),moveFocus(Xn,null,nextItem);break;case"End":qn.preventDefault(),moveFocus(Xn,null,previousItem);break}},tr=hn();return jsxRuntimeExports.jsxs(TabsRoot,_extends$r({className:clsx(Nt.root,ht),ownerState:Ft,ref:nt,as:dt},Rt,{children:[tr.scrollButtonStart,tr.scrollbarSizeListener,jsxRuntimeExports.jsxs(TabsScroller,{className:Nt.scroller,ownerState:Ft,style:{overflow:Rn.overflow,[xt?`margin${ot?"Left":"Right"}`:"marginBottom"]:jt?void 0:-Rn.scrollbarWidth},ref:kn,children:[jsxRuntimeExports.jsx(FlexContainer,{"aria-label":at,"aria-labelledby":st,"aria-orientation":yt==="vertical"?"vertical":null,className:Nt.flexContainer,ownerState:Ft,onKeyDown:Un,ref:dn,role:"tablist",children:jn}),Jt&&wn]}),tr.scrollButtonEnd]}))}),Tabs$1=Tabs;function getTextFieldUtilityClass(tt){return generateUtilityClass("MuiTextField",tt)}generateUtilityClasses("MuiTextField",["root"]);const _excluded$A=["autoComplete","autoFocus","children","className","color","defaultValue","disabled","error","FormHelperTextProps","fullWidth","helperText","id","InputLabelProps","inputProps","InputProps","inputRef","label","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","placeholder","required","rows","select","SelectProps","type","value","variant"],variantComponent={standard:Input$3,filled:FilledInput$1,outlined:OutlinedInput$1},useUtilityClasses$g=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getTextFieldUtilityClass,et)},TextFieldRoot=styled$1(FormControl$1,{name:"MuiTextField",slot:"Root",overridesResolver:(tt,et)=>et.root})({}),TextField=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiTextField"}),{autoComplete:it,autoFocus:ot=!1,children:at,className:st,color:lt="primary",defaultValue:ct,disabled:ut=!1,error:ht=!1,FormHelperTextProps:dt,fullWidth:pt=!1,helperText:mt,id:gt,InputLabelProps:yt,inputProps:bt,InputProps:wt,inputRef:vt,label:kt,maxRows:St,minRows:Et,multiline:At=!1,name:Tt,onBlur:Mt,onChange:Lt,onClick:jt,onFocus:Rt,placeholder:$t,required:xt=!1,rows:It,select:Ot=!1,SelectProps:zt,type:Ut,value:Wt,variant:Ft="outlined"}=rt,Nt=_objectWithoutPropertiesLoose$g(rt,_excluded$A),Ct=_extends$r({},rt,{autoFocus:ot,color:lt,disabled:ut,error:ht,fullWidth:pt,multiline:At,required:xt,select:Ot,variant:Ft}),Ht=useUtilityClasses$g(Ct),Jt={};Ft==="outlined"&&(yt&&typeof yt.shrink<"u"&&(Jt.notched=yt.shrink),Jt.label=kt),Ot&&((!zt||!zt.native)&&(Jt.id=void 0),Jt["aria-describedby"]=void 0);const nn=useId(gt),Yt=mt&&nn?`${nn}-helper-text`:void 0,fn=kt&&nn?`${nn}-label`:void 0,cn=variantComponent[Ft],_n=jsxRuntimeExports.jsx(cn,_extends$r({"aria-describedby":Yt,autoComplete:it,autoFocus:ot,defaultValue:ct,fullWidth:pt,multiline:At,name:Tt,rows:It,maxRows:St,minRows:Et,type:Ut,value:Wt,id:nn,inputRef:vt,onBlur:Mt,onChange:Lt,onFocus:Rt,onClick:jt,placeholder:$t,inputProps:bt},Jt,wt));return jsxRuntimeExports.jsxs(TextFieldRoot,_extends$r({className:clsx(Ht.root,st),disabled:ut,error:ht,fullWidth:pt,ref:nt,required:xt,color:lt,variant:Ft,ownerState:Ct},Nt,{children:[kt!=null&&kt!==""&&jsxRuntimeExports.jsx(InputLabel$1,_extends$r({htmlFor:nn,id:fn},yt,{children:kt})),Ot?jsxRuntimeExports.jsx(Select$4,_extends$r({"aria-describedby":Yt,id:nn,labelId:fn,value:Wt,input:_n},zt,{children:at})):_n,mt&&jsxRuntimeExports.jsx(FormHelperText$1,_extends$r({id:Yt},dt,{children:mt}))]}))}),MuiTextField=TextField;var DefaultContext={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},IconContext=React$1.createContext&&React$1.createContext(DefaultContext),__assign$3=globalThis&&globalThis.__assign||function(){return __assign$3=Object.assign||function(tt){for(var et,nt=1,rt=arguments.length;nt"u"||!window.document)return rt;var it=document.createElement("style");document.head.appendChild(it);var ot=it.sheet,at=` @keyframes `.concat(rt,` { `).concat(et,` } @@ -264,7 +264,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho 95% {transform: translateX(0rem) scale(1)}`),"propogate-4"),createAnimation$1("PropagateLoader","25% {transform: translateX(".concat(distance[0],`rem) scale(0.75)} 50% {transform: translateX(`).concat(distance[1],`rem) scale(0.6)} 75% {transform: translateX(`).concat(distance[2],`rem) scale(0.5)} - 95% {transform: translateX(0rem) scale(1)}`),"propogate-5")];function PropagateLoader(tt){var et=tt.loading,nt=et===void 0?!0:et,rt=tt.color,it=rt===void 0?"#000000":rt,ot=tt.speedMultiplier,at=ot===void 0?1:ot,st=tt.cssOverride,lt=st===void 0?{}:st,ct=tt.size,ut=ct===void 0?15:ct,ht=__rest$2(tt,["loading","color","speedMultiplier","cssOverride","size"]),dt=parseLengthAndUnit$1(ut),pt=dt.value,mt=dt.unit,gt=__assign$1({display:"inherit",position:"relative"},lt),yt=function(bt){return{position:"absolute",fontSize:"".concat(pt/3).concat(mt),width:"".concat(pt).concat(mt),height:"".concat(pt).concat(mt),background:it,borderRadius:"50%",animation:"".concat(propagate[bt]," ").concat(1.5/at,"s infinite"),animationFillMode:"forwards"}};return nt?reactExports.createElement("span",__assign$1({style:gt},ht),reactExports.createElement("span",{style:yt(0)}),reactExports.createElement("span",{style:yt(1)}),reactExports.createElement("span",{style:yt(2)}),reactExports.createElement("span",{style:yt(3)}),reactExports.createElement("span",{style:yt(4)}),reactExports.createElement("span",{style:yt(5)})):null}function _extends$p(){return _extends$p=Object.assign||function(tt){for(var et=1;et=0)&&(nt[it]=tt[it]);return nt}function isNum(tt){return typeof tt=="number"&&!isNaN(tt)}function isBool(tt){return typeof tt=="boolean"}function isStr(tt){return typeof tt=="string"}function isFn(tt){return typeof tt=="function"}function parseClassName(tt){return isStr(tt)||isFn(tt)?tt:null}function isToastIdValid(tt){return tt===0||tt}function getAutoCloseDelay(tt,et){return tt===!1||isNum(tt)&&tt>0?tt:et}var canUseDom=!!(typeof window<"u"&&window.document&&window.document.createElement);function canBeRendered(tt){return reactExports.isValidElement(tt)||isStr(tt)||isFn(tt)||isNum(tt)}var POSITION={TOP_LEFT:"top-left",TOP_RIGHT:"top-right",TOP_CENTER:"top-center",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",BOTTOM_CENTER:"bottom-center"},TYPE={INFO:"info",SUCCESS:"success",WARNING:"warning",ERROR:"error",DEFAULT:"default"};function collapseToast(tt,et,nt){nt===void 0&&(nt=300);var rt=tt.scrollHeight,it=tt.style;requestAnimationFrame(function(){it.minHeight="initial",it.height=rt+"px",it.transition="all "+nt+"ms",requestAnimationFrame(function(){it.height="0",it.padding="0",it.margin="0",setTimeout(et,nt)})})}function cssTransition(tt){var et=tt.enter,nt=tt.exit,rt=tt.appendPosition,it=rt===void 0?!1:rt,ot=tt.collapse,at=ot===void 0?!0:ot,st=tt.collapseDuration,lt=st===void 0?300:st;return function(ut){var ht=ut.children,dt=ut.position,pt=ut.preventExitTransition,mt=ut.done,gt=ut.nodeRef,yt=ut.isIn,bt=it?et+"--"+dt:et,wt=it?nt+"--"+dt:nt,vt=reactExports.useRef(),kt=reactExports.useRef(0);reactExports.useLayoutEffect(function(){St()},[]),reactExports.useEffect(function(){yt||(pt?Et():At())},[yt]);function St(){var Mt=gt.current;vt.current=Mt.className,Mt.className+=" "+bt,Mt.addEventListener("animationend",Tt),Mt.addEventListener("animationcancel",Tt)}function Tt(Mt){if(Mt.target===gt.current){var Lt=gt.current;Lt.dispatchEvent(new Event("d")),Lt.removeEventListener("animationend",Tt),Lt.removeEventListener("animationcancel",Tt),kt.current===0&&(Lt.className=vt.current)}}function At(){kt.current=1;var Mt=gt.current;Mt.className+=" "+wt,Mt.addEventListener("animationend",Et)}function Et(){var Mt=gt.current;Mt.removeEventListener("animationend",Et),at?collapseToast(Mt,mt,lt):mt()}return React$1.createElement(React$1.Fragment,null,ht)}}var eventManager={list:new Map,emitQueue:new Map,on:function(et,nt){return this.list.has(et)||this.list.set(et,[]),this.list.get(et).push(nt),this},off:function(et,nt){if(nt){var rt=this.list.get(et).filter(function(it){return it!==nt});return this.list.set(et,rt),this}return this.list.delete(et),this},cancelEmit:function(et){var nt=this.emitQueue.get(et);return nt&&(nt.forEach(clearTimeout),this.emitQueue.delete(et)),this},emit:function(et){for(var nt=this,rt=arguments.length,it=new Array(rt>1?rt-1:0),ot=1;ot0){var Ot=isToastIdValid(Tt)?1:ct.props.limit;if(It===1||Ot===1)ct.displayedToast++,dt();else{var zt=Ot>It?It:Ot;ct.displayedToast=zt;for(var Ut=0;Ut0&&ct.count>Mt.limit&&jt?ct.queue.push({toastContent:$t,toastProps:Rt,staleId:kt}):isNum(vt)&&vt>0?setTimeout(function(){gt($t,Rt,kt)},vt):gt($t,Rt,kt)}}function gt(bt,wt,vt){var kt=wt.toastId;vt&&st.delete(vt),st.set(kt,{content:bt,props:wt}),ot(function(St){return[].concat(St,[kt]).filter(function(Tt){return Tt!==vt})})}function yt(bt){var wt=new Map,vt=Array.from(st.values());return tt.newestOnTop&&vt.reverse(),vt.forEach(function(kt){var St=kt.props.position;wt.has(St)||wt.set(St,[]),wt.get(St).push(kt)}),Array.from(wt,function(kt){return bt(kt[0],kt[1])})}return{getToastToRender:yt,containerRef:at,isToastActive:lt}}function getX$1(tt){return tt.targetTouches&&tt.targetTouches.length>=1?tt.targetTouches[0].clientX:tt.clientX}function getY$1(tt){return tt.targetTouches&&tt.targetTouches.length>=1?tt.targetTouches[0].clientY:tt.clientY}function useToast(tt){var et=reactExports.useState(!1),nt=et[0],rt=et[1],it=reactExports.useState(!1),ot=it[0],at=it[1],st=reactExports.useRef(null),lt=reactExports.useRef({start:0,x:0,y:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,boundingRect:null,didMove:!1}).current,ct=reactExports.useRef(tt),ut=tt.autoClose,ht=tt.pauseOnHover,dt=tt.closeToast,pt=tt.onClick,mt=tt.closeOnClick;reactExports.useEffect(function(){ct.current=tt}),reactExports.useEffect(function(){return st.current&&st.current.addEventListener("d",bt,{once:!0}),isFn(tt.onOpen)&&tt.onOpen(reactExports.isValidElement(tt.children)&&tt.children.props),function(){var Lt=ct.current;isFn(Lt.onClose)&&Lt.onClose(reactExports.isValidElement(Lt.children)&&Lt.children.props)}},[]),reactExports.useEffect(function(){return tt.pauseOnFocusLoss&&vt(),function(){tt.pauseOnFocusLoss&&kt()}},[tt.pauseOnFocusLoss]);function gt(Lt){if(tt.draggable){St();var jt=st.current;lt.canCloseOnClick=!0,lt.canDrag=!0,lt.boundingRect=jt.getBoundingClientRect(),jt.style.transition="",lt.x=getX$1(Lt.nativeEvent),lt.y=getY$1(Lt.nativeEvent),tt.draggableDirection==="x"?(lt.start=lt.x,lt.removalDistance=jt.offsetWidth*(tt.draggablePercent/100)):(lt.start=lt.y,lt.removalDistance=jt.offsetHeight*(tt.draggablePercent===80?tt.draggablePercent*1.5:tt.draggablePercent/100))}}function yt(){if(lt.boundingRect){var Lt=lt.boundingRect,jt=Lt.top,Rt=Lt.bottom,$t=Lt.left,xt=Lt.right;tt.pauseOnHover&<.x>=$t&<.x<=xt&<.y>=jt&<.y<=Rt?wt():bt()}}function bt(){rt(!0)}function wt(){rt(!1)}function vt(){document.hasFocus()||wt(),window.addEventListener("focus",bt),window.addEventListener("blur",wt)}function kt(){window.removeEventListener("focus",bt),window.removeEventListener("blur",wt)}function St(){lt.didMove=!1,document.addEventListener("mousemove",At),document.addEventListener("mouseup",Et),document.addEventListener("touchmove",At),document.addEventListener("touchend",Et)}function Tt(){document.removeEventListener("mousemove",At),document.removeEventListener("mouseup",Et),document.removeEventListener("touchmove",At),document.removeEventListener("touchend",Et)}function At(Lt){var jt=st.current;lt.canDrag&&jt&&(lt.didMove=!0,nt&&wt(),lt.x=getX$1(Lt),lt.y=getY$1(Lt),tt.draggableDirection==="x"?lt.delta=lt.x-lt.start:lt.delta=lt.y-lt.start,lt.start!==lt.x&&(lt.canCloseOnClick=!1),jt.style.transform="translate"+tt.draggableDirection+"("+lt.delta+"px)",jt.style.opacity=""+(1-Math.abs(lt.delta/lt.removalDistance)))}function Et(){Tt();var Lt=st.current;if(lt.canDrag&<.didMove&&Lt){if(lt.canDrag=!1,Math.abs(lt.delta)>lt.removalDistance){at(!0),tt.closeToast();return}Lt.style.transition="transform 0.2s, opacity 0.2s",Lt.style.transform="translate"+tt.draggableDirection+"(0)",Lt.style.opacity="1"}}var Mt={onMouseDown:gt,onTouchStart:gt,onMouseUp:yt,onTouchEnd:yt};return ut&&ht&&(Mt.onMouseEnter=wt,Mt.onMouseLeave=bt),mt&&(Mt.onClick=function(Lt){pt&&pt(Lt),lt.canCloseOnClick&&dt()}),{playToast:bt,pauseToast:wt,isRunning:nt,preventExitTransition:ot,toastRef:st,eventHandlers:Mt}}function CloseButton$8(tt){var et=tt.closeToast,nt=tt.theme,rt=tt.ariaLabel,it=rt===void 0?"close":rt;return reactExports.createElement("button",{className:"Toastify__close-button Toastify__close-button--"+nt,type:"button",onClick:function(at){at.stopPropagation(),et(at)},"aria-label":it},reactExports.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},reactExports.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function ProgressBar(tt){var et,nt,rt=tt.delay,it=tt.isRunning,ot=tt.closeToast,at=tt.type,st=tt.hide,lt=tt.className,ct=tt.style,ut=tt.controlledProgress,ht=tt.progress,dt=tt.rtl,pt=tt.isIn,mt=tt.theme,gt=_extends$p({},ct,{animationDuration:rt+"ms",animationPlayState:it?"running":"paused",opacity:st?0:1});ut&&(gt.transform="scaleX("+ht+")");var yt=clsx("Toastify__progress-bar",ut?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated","Toastify__progress-bar-theme--"+mt,"Toastify__progress-bar--"+at,(et={},et["Toastify__progress-bar--rtl"]=dt,et)),bt=isFn(lt)?lt({rtl:dt,type:at,defaultClassName:yt}):clsx(yt,lt),wt=(nt={},nt[ut&&ht>=1?"onTransitionEnd":"onAnimationEnd"]=ut&&ht<1?null:function(){pt&&ot()},nt);return reactExports.createElement("div",Object.assign({role:"progressbar","aria-hidden":st?"true":"false","aria-label":"notification timer",className:bt,style:gt},wt))}ProgressBar.defaultProps={type:TYPE.DEFAULT,hide:!1};var _excluded$1$2=["theme","type"],Svg=function(et){var nt=et.theme,rt=et.type,it=_objectWithoutPropertiesLoose$f(et,_excluded$1$2);return reactExports.createElement("svg",Object.assign({viewBox:"0 0 24 24",width:"100%",height:"100%",fill:nt==="colored"?"currentColor":"var(--toastify-icon-color-"+rt+")"},it))};function Warning(tt){return reactExports.createElement(Svg,Object.assign({},tt),reactExports.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function Info(tt){return reactExports.createElement(Svg,Object.assign({},tt),reactExports.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function Success(tt){return reactExports.createElement(Svg,Object.assign({},tt),reactExports.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function Error$2(tt){return reactExports.createElement(Svg,Object.assign({},tt),reactExports.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function Spinner(){return reactExports.createElement("div",{className:"Toastify__spinner"})}var Icons={info:Info,warning:Warning,success:Success,error:Error$2,spinner:Spinner},Toast=function(et){var nt,rt,it=useToast(et),ot=it.isRunning,at=it.preventExitTransition,st=it.toastRef,lt=it.eventHandlers,ct=et.closeButton,ut=et.children,ht=et.autoClose,dt=et.onClick,pt=et.type,mt=et.hideProgressBar,gt=et.closeToast,yt=et.transition,bt=et.position,wt=et.className,vt=et.style,kt=et.bodyClassName,St=et.bodyStyle,Tt=et.progressClassName,At=et.progressStyle,Et=et.updateId,Mt=et.role,Lt=et.progress,jt=et.rtl,Rt=et.toastId,$t=et.deleteToast,xt=et.isIn,It=et.isLoading,Ot=et.icon,zt=et.theme,Ut=clsx("Toastify__toast","Toastify__toast-theme--"+zt,"Toastify__toast--"+pt,(nt={},nt["Toastify__toast--rtl"]=jt,nt)),Wt=isFn(wt)?wt({rtl:jt,position:bt,type:pt,defaultClassName:Ut}):clsx(Ut,wt),Ft=!!Lt,Nt=Icons[pt],Ct={theme:zt,type:pt},Ht=Nt&&Nt(Ct);Ot===!1?Ht=void 0:isFn(Ot)?Ht=Ot(Ct):reactExports.isValidElement(Ot)?Ht=reactExports.cloneElement(Ot,Ct):isStr(Ot)?Ht=Ot:It&&(Ht=Icons.spinner());function Jt(nn){if(nn){var Yt={closeToast:gt,type:pt,theme:zt};if(isFn(nn))return nn(Yt);if(reactExports.isValidElement(nn))return reactExports.cloneElement(nn,Yt)}}return reactExports.createElement(yt,{isIn:xt,done:$t,position:bt,preventExitTransition:at,nodeRef:st},reactExports.createElement("div",Object.assign({id:Rt,onClick:dt,className:Wt},lt,{style:vt,ref:st}),reactExports.createElement("div",Object.assign({},xt&&{role:Mt},{className:isFn(kt)?kt({type:pt}):clsx("Toastify__toast-body",kt),style:St}),Ht&&reactExports.createElement("div",{className:clsx("Toastify__toast-icon",(rt={},rt["Toastify--animate-icon Toastify__zoom-enter"]=!It,rt))},Ht),reactExports.createElement("div",null,ut)),Jt(ct),(ht||Ft)&&reactExports.createElement(ProgressBar,Object.assign({},Et&&!Ft?{key:"pb-"+Et}:{},{rtl:jt,theme:zt,delay:ht,isRunning:ot,isIn:xt,closeToast:gt,hide:mt,type:pt,style:At,className:Tt,controlledProgress:Ft,progress:Lt}))))},Bounce=cssTransition({enter:"Toastify--animate Toastify__bounce-enter",exit:"Toastify--animate Toastify__bounce-exit",appendPosition:!0}),ToastContainer=function(et){var nt=useToastContainer(et),rt=nt.getToastToRender,it=nt.containerRef,ot=nt.isToastActive,at=et.className,st=et.style,lt=et.rtl,ct=et.containerId;function ut(ht){var dt,pt=clsx("Toastify__toast-container","Toastify__toast-container--"+ht,(dt={},dt["Toastify__toast-container--rtl"]=lt,dt));return isFn(at)?at({position:ht,rtl:lt,defaultClassName:pt}):clsx(pt,parseClassName(at))}return reactExports.createElement("div",{ref:it,className:"Toastify",id:ct},rt(function(ht,dt){var pt=dt.length?_extends$p({},st):_extends$p({},st,{pointerEvents:"none"});return reactExports.createElement("div",{className:ut(ht),style:pt,key:"container-"+ht},dt.map(function(mt){var gt=mt.content,yt=mt.props;return reactExports.createElement(Toast,Object.assign({},yt,{isIn:ot(yt.toastId),key:"toast-"+yt.key,closeButton:yt.closeButton===!0?CloseButton$8:yt.closeButton}),gt)}))}))};ToastContainer.defaultProps={position:POSITION.TOP_RIGHT,transition:Bounce,rtl:!1,autoClose:5e3,hideProgressBar:!1,closeButton:CloseButton$8,pauseOnHover:!0,pauseOnFocusLoss:!0,closeOnClick:!0,newestOnTop:!1,draggable:!0,draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};var containers=new Map,latestInstance,containerDomNode,containerConfig,queue$1=[],lazy$9=!1;function getToast(tt,et){var nt=et.containerId,rt=containers.get(nt||latestInstance);return rt?rt.getToast(tt):null}function generateToastId(){return Math.random().toString(36).substring(2,9)}function getToastId(tt){return tt&&(isStr(tt.toastId)||isNum(tt.toastId))?tt.toastId:generateToastId()}function dispatchToast(tt,et){return containers.size>0?eventManager.emit(0,tt,et):(queue$1.push({content:tt,options:et}),lazy$9&&canUseDom&&(lazy$9=!1,containerDomNode=document.createElement("div"),document.body.appendChild(containerDomNode),reactDomExports.render(reactExports.createElement(ToastContainer,Object.assign({},containerConfig)),containerDomNode))),et.toastId}function mergeOptions(tt,et){return _extends$p({},et,{type:et&&et.type||tt,toastId:getToastId(et)})}function createToastByType(tt){return function(et,nt){return dispatchToast(et,mergeOptions(tt,nt))}}function toast(tt,et){return dispatchToast(tt,mergeOptions(TYPE.DEFAULT,et))}toast.loading=function(tt,et){return dispatchToast(tt,mergeOptions(TYPE.DEFAULT,_extends$p({isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1},et)))};function handlePromise(tt,et,nt){var rt=et.pending,it=et.error,ot=et.success,at;rt&&(at=isStr(rt)?toast.loading(rt,nt):toast.loading(rt.render,_extends$p({},nt,rt)));var st={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},lt=function(ht,dt,pt){if(dt==null){toast.dismiss(at);return}var mt=_extends$p({type:ht},st,nt,{data:pt}),gt=isStr(dt)?{render:dt}:dt;return at?toast.update(at,_extends$p({},mt,gt)):toast(gt.render,_extends$p({},mt,gt)),pt},ct=isFn(tt)?tt():tt;return ct.then(function(ut){return lt("success",ot,ut)}).catch(function(ut){return lt("error",it,ut)}),ct}toast.promise=handlePromise;toast.success=createToastByType(TYPE.SUCCESS);toast.info=createToastByType(TYPE.INFO);toast.error=createToastByType(TYPE.ERROR);toast.warning=createToastByType(TYPE.WARNING);toast.warn=toast.warning;toast.dark=function(tt,et){return dispatchToast(tt,mergeOptions(TYPE.DEFAULT,_extends$p({theme:"dark"},et)))};toast.dismiss=function(tt){return eventManager.emit(1,tt)};toast.clearWaitingQueue=function(tt){return tt===void 0&&(tt={}),eventManager.emit(5,tt)};toast.isActive=function(tt){var et=!1;return containers.forEach(function(nt){nt.isToastActive&&nt.isToastActive(tt)&&(et=!0)}),et};toast.update=function(tt,et){et===void 0&&(et={}),setTimeout(function(){var nt=getToast(tt,et);if(nt){var rt=nt.props,it=nt.content,ot=_extends$p({},rt,et,{toastId:et.toastId||tt,updateId:generateToastId()});ot.toastId!==tt&&(ot.staleId=tt);var at=ot.render||it;delete ot.render,dispatchToast(at,ot)}},0)};toast.done=function(tt){toast.update(tt,{progress:1})};toast.onChange=function(tt){return isFn(tt)&&eventManager.on(4,tt),function(){isFn(tt)&&eventManager.off(4,tt)}};toast.configure=function(tt){tt===void 0&&(tt={}),lazy$9=!0,containerConfig=tt};toast.POSITION=POSITION;toast.TYPE=TYPE;eventManager.on(2,function(tt){latestInstance=tt.containerId||tt,containers.set(latestInstance,tt),queue$1.forEach(function(et){eventManager.emit(0,et.content,et.options)}),queue$1=[]}).on(3,function(tt){containers.delete(tt.containerId||tt),containers.size===0&&eventManager.off(0).off(1).off(5),canUseDom&&containerDomNode&&document.body.removeChild(containerDomNode)});const colors={black:"rgb(0, 0, 0)",bluePressState:"rgb(57, 97, 220)",blueTextAccent:"rgb(130, 180, 255)",body:"rgb(21, 30, 39)",boostBg1:"rgb(32, 63, 62)",budgetExplanationModalBg:"rgb(21, 28, 35)",dashboardHeader:"rgba(26, 36, 46, 0.3)",dashboardSearch:"rgb(21, 30, 39)",dashboardWashedoutText:"rgb(107, 122, 141)",divider1:"rgb(21, 30, 39)",divider2:"rgb(16, 19, 23)",divider3:"rgb(71, 81, 94)",gray100:"rgba(51, 51, 51, 0.2)",gray200:"rgba(51, 51, 51, 0.4)",gray300:"rgba(51, 51, 51, 0.6)",gray400:"rgba(51, 51, 51, 0.8)",gray500:"rgb(51, 51, 51)",green100:"rgba(73, 201, 152, 0.2)",green200:"rgba(73, 201, 152, 0.4)",green300:"rgba(73, 201, 152, 0.6)",green400:"rgba(73, 201, 152, 0.8)",greenBorder:"rgb(47, 179, 121)",headerBackground:"rgb(26, 36, 46)",inputBg1:"rgb(32, 39, 47)",inputBg2:"rgb(20, 22, 26)",inputOutline1:"rgb(71, 81, 94)",inputPlaceholder:"rgb(76, 86, 101)",lightBlue100:"rgba(93, 143, 221, 0.2)",lightBlue200:"rgba(93, 143, 221, 0.4)",lightBlue300:"rgba(93, 143, 221, 0.6)",lightBlue400:"rgba(93, 143, 221, 0.8)",lightBlue500:"rgb(93, 143, 221)",lightGray:"rgb(187, 187, 187)",listBg:"rgb(21, 30, 39)",mainBottomIcons:"rgb(144, 155, 170)",modalAuth:"#909baa",modalBg:"rgb(25, 33, 40)",modalShield:"#618aff",modalWhiteOverlayBg:"rgba(255, 255, 255, 0.2)",placeholderText:"rgb(85, 97, 113)",primaryBlueBorder:"rgb(80, 120, 242)",primaryBlue:"rgba(97, 138, 255, 1)",primaryButton:"rgb(130, 180, 255)",primaryGreen:"rgb(73, 201, 152)",primaryRed:"rgb(237, 116, 116)",primaryText1:"rgb(255, 255, 255)",receivedIcon:"rgb(130, 180, 255)",receivedMsgBg:"rgb(34, 46, 58)",secondaryRed:"rgb(255, 143, 128)",secondaryText4:"rgb(107, 122, 141)",sentMsgBg:"rgb(62, 97, 137)",sentMsgBgPress:"rgb(44, 66, 91)",text2:"rgb(255, 255, 255)",textMessages:"rgb(255, 255, 255)",transactionBg:"rgb(30, 41, 52)",transactionBgBorder:"rgb(21, 30, 39)",transactionBlueText:"rgb(130, 180, 255)",unreadMsgText:"rgb(186, 193, 198)",washedOutGreen:"rgb(47, 116, 96)",washedOutReceivedText:"rgb(85, 97, 113)",washedOutSentText:"rgb(130, 156, 185)",white:"rgb(255, 255, 255)",transparentWhite:"#ffffff88",transparentBlack:"#000000bb",BG1:"rgba(35, 37, 47, 1)",BG1_NORMAL:"rgba(28, 30, 38, 1)",BG1_HOVER:"rgba(21, 22, 28, 1)",BG1_PRESS:"#0E0F13",BG2:"rgba(22, 23, 29, 1)",BG3:"rgba(28, 30, 38, 1)",GRAY3:"rgba(186, 193, 198, 1)",GRAY6:"#909BAA",GRAY7:"rgba(107, 122, 141, 1)",SECONDARY_BLUE:"rgba(130, 180, 255, 1)",PRIMARY_BLUE:"rgba(97, 138, 255, 1)",BUTTON1:"rgba(48, 51, 66, 1)",BUTTON1_HOVER:"rgba(44, 47, 60, 1)",BUTTON1_PRESS:"rgba(41, 44, 56, 1)",PRIMARY_BLUE_BORDER:"rgba(80, 120, 242, 1)",BLUE_PRESS_STATE:"rgba(57, 97, 220, 1)"},background=Ae` + 95% {transform: translateX(0rem) scale(1)}`),"propogate-5")];function PropagateLoader(tt){var et=tt.loading,nt=et===void 0?!0:et,rt=tt.color,it=rt===void 0?"#000000":rt,ot=tt.speedMultiplier,at=ot===void 0?1:ot,st=tt.cssOverride,lt=st===void 0?{}:st,ct=tt.size,ut=ct===void 0?15:ct,ht=__rest$2(tt,["loading","color","speedMultiplier","cssOverride","size"]),dt=parseLengthAndUnit$1(ut),pt=dt.value,mt=dt.unit,gt=__assign$1({display:"inherit",position:"relative"},lt),yt=function(bt){return{position:"absolute",fontSize:"".concat(pt/3).concat(mt),width:"".concat(pt).concat(mt),height:"".concat(pt).concat(mt),background:it,borderRadius:"50%",animation:"".concat(propagate[bt]," ").concat(1.5/at,"s infinite"),animationFillMode:"forwards"}};return nt?reactExports.createElement("span",__assign$1({style:gt},ht),reactExports.createElement("span",{style:yt(0)}),reactExports.createElement("span",{style:yt(1)}),reactExports.createElement("span",{style:yt(2)}),reactExports.createElement("span",{style:yt(3)}),reactExports.createElement("span",{style:yt(4)}),reactExports.createElement("span",{style:yt(5)})):null}function _extends$p(){return _extends$p=Object.assign||function(tt){for(var et=1;et=0)&&(nt[it]=tt[it]);return nt}function isNum(tt){return typeof tt=="number"&&!isNaN(tt)}function isBool(tt){return typeof tt=="boolean"}function isStr(tt){return typeof tt=="string"}function isFn(tt){return typeof tt=="function"}function parseClassName(tt){return isStr(tt)||isFn(tt)?tt:null}function isToastIdValid(tt){return tt===0||tt}function getAutoCloseDelay(tt,et){return tt===!1||isNum(tt)&&tt>0?tt:et}var canUseDom=!!(typeof window<"u"&&window.document&&window.document.createElement);function canBeRendered(tt){return reactExports.isValidElement(tt)||isStr(tt)||isFn(tt)||isNum(tt)}var POSITION={TOP_LEFT:"top-left",TOP_RIGHT:"top-right",TOP_CENTER:"top-center",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",BOTTOM_CENTER:"bottom-center"},TYPE={INFO:"info",SUCCESS:"success",WARNING:"warning",ERROR:"error",DEFAULT:"default"};function collapseToast(tt,et,nt){nt===void 0&&(nt=300);var rt=tt.scrollHeight,it=tt.style;requestAnimationFrame(function(){it.minHeight="initial",it.height=rt+"px",it.transition="all "+nt+"ms",requestAnimationFrame(function(){it.height="0",it.padding="0",it.margin="0",setTimeout(et,nt)})})}function cssTransition(tt){var et=tt.enter,nt=tt.exit,rt=tt.appendPosition,it=rt===void 0?!1:rt,ot=tt.collapse,at=ot===void 0?!0:ot,st=tt.collapseDuration,lt=st===void 0?300:st;return function(ut){var ht=ut.children,dt=ut.position,pt=ut.preventExitTransition,mt=ut.done,gt=ut.nodeRef,yt=ut.isIn,bt=it?et+"--"+dt:et,wt=it?nt+"--"+dt:nt,vt=reactExports.useRef(),kt=reactExports.useRef(0);reactExports.useLayoutEffect(function(){St()},[]),reactExports.useEffect(function(){yt||(pt?Tt():At())},[yt]);function St(){var Mt=gt.current;vt.current=Mt.className,Mt.className+=" "+bt,Mt.addEventListener("animationend",Et),Mt.addEventListener("animationcancel",Et)}function Et(Mt){if(Mt.target===gt.current){var Lt=gt.current;Lt.dispatchEvent(new Event("d")),Lt.removeEventListener("animationend",Et),Lt.removeEventListener("animationcancel",Et),kt.current===0&&(Lt.className=vt.current)}}function At(){kt.current=1;var Mt=gt.current;Mt.className+=" "+wt,Mt.addEventListener("animationend",Tt)}function Tt(){var Mt=gt.current;Mt.removeEventListener("animationend",Tt),at?collapseToast(Mt,mt,lt):mt()}return React$1.createElement(React$1.Fragment,null,ht)}}var eventManager={list:new Map,emitQueue:new Map,on:function(et,nt){return this.list.has(et)||this.list.set(et,[]),this.list.get(et).push(nt),this},off:function(et,nt){if(nt){var rt=this.list.get(et).filter(function(it){return it!==nt});return this.list.set(et,rt),this}return this.list.delete(et),this},cancelEmit:function(et){var nt=this.emitQueue.get(et);return nt&&(nt.forEach(clearTimeout),this.emitQueue.delete(et)),this},emit:function(et){for(var nt=this,rt=arguments.length,it=new Array(rt>1?rt-1:0),ot=1;ot0){var Ot=isToastIdValid(Et)?1:ct.props.limit;if(It===1||Ot===1)ct.displayedToast++,dt();else{var zt=Ot>It?It:Ot;ct.displayedToast=zt;for(var Ut=0;Ut0&&ct.count>Mt.limit&&jt?ct.queue.push({toastContent:$t,toastProps:Rt,staleId:kt}):isNum(vt)&&vt>0?setTimeout(function(){gt($t,Rt,kt)},vt):gt($t,Rt,kt)}}function gt(bt,wt,vt){var kt=wt.toastId;vt&&st.delete(vt),st.set(kt,{content:bt,props:wt}),ot(function(St){return[].concat(St,[kt]).filter(function(Et){return Et!==vt})})}function yt(bt){var wt=new Map,vt=Array.from(st.values());return tt.newestOnTop&&vt.reverse(),vt.forEach(function(kt){var St=kt.props.position;wt.has(St)||wt.set(St,[]),wt.get(St).push(kt)}),Array.from(wt,function(kt){return bt(kt[0],kt[1])})}return{getToastToRender:yt,containerRef:at,isToastActive:lt}}function getX$1(tt){return tt.targetTouches&&tt.targetTouches.length>=1?tt.targetTouches[0].clientX:tt.clientX}function getY$1(tt){return tt.targetTouches&&tt.targetTouches.length>=1?tt.targetTouches[0].clientY:tt.clientY}function useToast(tt){var et=reactExports.useState(!1),nt=et[0],rt=et[1],it=reactExports.useState(!1),ot=it[0],at=it[1],st=reactExports.useRef(null),lt=reactExports.useRef({start:0,x:0,y:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,boundingRect:null,didMove:!1}).current,ct=reactExports.useRef(tt),ut=tt.autoClose,ht=tt.pauseOnHover,dt=tt.closeToast,pt=tt.onClick,mt=tt.closeOnClick;reactExports.useEffect(function(){ct.current=tt}),reactExports.useEffect(function(){return st.current&&st.current.addEventListener("d",bt,{once:!0}),isFn(tt.onOpen)&&tt.onOpen(reactExports.isValidElement(tt.children)&&tt.children.props),function(){var Lt=ct.current;isFn(Lt.onClose)&&Lt.onClose(reactExports.isValidElement(Lt.children)&&Lt.children.props)}},[]),reactExports.useEffect(function(){return tt.pauseOnFocusLoss&&vt(),function(){tt.pauseOnFocusLoss&&kt()}},[tt.pauseOnFocusLoss]);function gt(Lt){if(tt.draggable){St();var jt=st.current;lt.canCloseOnClick=!0,lt.canDrag=!0,lt.boundingRect=jt.getBoundingClientRect(),jt.style.transition="",lt.x=getX$1(Lt.nativeEvent),lt.y=getY$1(Lt.nativeEvent),tt.draggableDirection==="x"?(lt.start=lt.x,lt.removalDistance=jt.offsetWidth*(tt.draggablePercent/100)):(lt.start=lt.y,lt.removalDistance=jt.offsetHeight*(tt.draggablePercent===80?tt.draggablePercent*1.5:tt.draggablePercent/100))}}function yt(){if(lt.boundingRect){var Lt=lt.boundingRect,jt=Lt.top,Rt=Lt.bottom,$t=Lt.left,xt=Lt.right;tt.pauseOnHover&<.x>=$t&<.x<=xt&<.y>=jt&<.y<=Rt?wt():bt()}}function bt(){rt(!0)}function wt(){rt(!1)}function vt(){document.hasFocus()||wt(),window.addEventListener("focus",bt),window.addEventListener("blur",wt)}function kt(){window.removeEventListener("focus",bt),window.removeEventListener("blur",wt)}function St(){lt.didMove=!1,document.addEventListener("mousemove",At),document.addEventListener("mouseup",Tt),document.addEventListener("touchmove",At),document.addEventListener("touchend",Tt)}function Et(){document.removeEventListener("mousemove",At),document.removeEventListener("mouseup",Tt),document.removeEventListener("touchmove",At),document.removeEventListener("touchend",Tt)}function At(Lt){var jt=st.current;lt.canDrag&&jt&&(lt.didMove=!0,nt&&wt(),lt.x=getX$1(Lt),lt.y=getY$1(Lt),tt.draggableDirection==="x"?lt.delta=lt.x-lt.start:lt.delta=lt.y-lt.start,lt.start!==lt.x&&(lt.canCloseOnClick=!1),jt.style.transform="translate"+tt.draggableDirection+"("+lt.delta+"px)",jt.style.opacity=""+(1-Math.abs(lt.delta/lt.removalDistance)))}function Tt(){Et();var Lt=st.current;if(lt.canDrag&<.didMove&&Lt){if(lt.canDrag=!1,Math.abs(lt.delta)>lt.removalDistance){at(!0),tt.closeToast();return}Lt.style.transition="transform 0.2s, opacity 0.2s",Lt.style.transform="translate"+tt.draggableDirection+"(0)",Lt.style.opacity="1"}}var Mt={onMouseDown:gt,onTouchStart:gt,onMouseUp:yt,onTouchEnd:yt};return ut&&ht&&(Mt.onMouseEnter=wt,Mt.onMouseLeave=bt),mt&&(Mt.onClick=function(Lt){pt&&pt(Lt),lt.canCloseOnClick&&dt()}),{playToast:bt,pauseToast:wt,isRunning:nt,preventExitTransition:ot,toastRef:st,eventHandlers:Mt}}function CloseButton$8(tt){var et=tt.closeToast,nt=tt.theme,rt=tt.ariaLabel,it=rt===void 0?"close":rt;return reactExports.createElement("button",{className:"Toastify__close-button Toastify__close-button--"+nt,type:"button",onClick:function(at){at.stopPropagation(),et(at)},"aria-label":it},reactExports.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},reactExports.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function ProgressBar(tt){var et,nt,rt=tt.delay,it=tt.isRunning,ot=tt.closeToast,at=tt.type,st=tt.hide,lt=tt.className,ct=tt.style,ut=tt.controlledProgress,ht=tt.progress,dt=tt.rtl,pt=tt.isIn,mt=tt.theme,gt=_extends$p({},ct,{animationDuration:rt+"ms",animationPlayState:it?"running":"paused",opacity:st?0:1});ut&&(gt.transform="scaleX("+ht+")");var yt=clsx("Toastify__progress-bar",ut?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated","Toastify__progress-bar-theme--"+mt,"Toastify__progress-bar--"+at,(et={},et["Toastify__progress-bar--rtl"]=dt,et)),bt=isFn(lt)?lt({rtl:dt,type:at,defaultClassName:yt}):clsx(yt,lt),wt=(nt={},nt[ut&&ht>=1?"onTransitionEnd":"onAnimationEnd"]=ut&&ht<1?null:function(){pt&&ot()},nt);return reactExports.createElement("div",Object.assign({role:"progressbar","aria-hidden":st?"true":"false","aria-label":"notification timer",className:bt,style:gt},wt))}ProgressBar.defaultProps={type:TYPE.DEFAULT,hide:!1};var _excluded$1$2=["theme","type"],Svg=function(et){var nt=et.theme,rt=et.type,it=_objectWithoutPropertiesLoose$f(et,_excluded$1$2);return reactExports.createElement("svg",Object.assign({viewBox:"0 0 24 24",width:"100%",height:"100%",fill:nt==="colored"?"currentColor":"var(--toastify-icon-color-"+rt+")"},it))};function Warning(tt){return reactExports.createElement(Svg,Object.assign({},tt),reactExports.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function Info(tt){return reactExports.createElement(Svg,Object.assign({},tt),reactExports.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function Success(tt){return reactExports.createElement(Svg,Object.assign({},tt),reactExports.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function Error$2(tt){return reactExports.createElement(Svg,Object.assign({},tt),reactExports.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function Spinner(){return reactExports.createElement("div",{className:"Toastify__spinner"})}var Icons={info:Info,warning:Warning,success:Success,error:Error$2,spinner:Spinner},Toast=function(et){var nt,rt,it=useToast(et),ot=it.isRunning,at=it.preventExitTransition,st=it.toastRef,lt=it.eventHandlers,ct=et.closeButton,ut=et.children,ht=et.autoClose,dt=et.onClick,pt=et.type,mt=et.hideProgressBar,gt=et.closeToast,yt=et.transition,bt=et.position,wt=et.className,vt=et.style,kt=et.bodyClassName,St=et.bodyStyle,Et=et.progressClassName,At=et.progressStyle,Tt=et.updateId,Mt=et.role,Lt=et.progress,jt=et.rtl,Rt=et.toastId,$t=et.deleteToast,xt=et.isIn,It=et.isLoading,Ot=et.icon,zt=et.theme,Ut=clsx("Toastify__toast","Toastify__toast-theme--"+zt,"Toastify__toast--"+pt,(nt={},nt["Toastify__toast--rtl"]=jt,nt)),Wt=isFn(wt)?wt({rtl:jt,position:bt,type:pt,defaultClassName:Ut}):clsx(Ut,wt),Ft=!!Lt,Nt=Icons[pt],Ct={theme:zt,type:pt},Ht=Nt&&Nt(Ct);Ot===!1?Ht=void 0:isFn(Ot)?Ht=Ot(Ct):reactExports.isValidElement(Ot)?Ht=reactExports.cloneElement(Ot,Ct):isStr(Ot)?Ht=Ot:It&&(Ht=Icons.spinner());function Jt(nn){if(nn){var Yt={closeToast:gt,type:pt,theme:zt};if(isFn(nn))return nn(Yt);if(reactExports.isValidElement(nn))return reactExports.cloneElement(nn,Yt)}}return reactExports.createElement(yt,{isIn:xt,done:$t,position:bt,preventExitTransition:at,nodeRef:st},reactExports.createElement("div",Object.assign({id:Rt,onClick:dt,className:Wt},lt,{style:vt,ref:st}),reactExports.createElement("div",Object.assign({},xt&&{role:Mt},{className:isFn(kt)?kt({type:pt}):clsx("Toastify__toast-body",kt),style:St}),Ht&&reactExports.createElement("div",{className:clsx("Toastify__toast-icon",(rt={},rt["Toastify--animate-icon Toastify__zoom-enter"]=!It,rt))},Ht),reactExports.createElement("div",null,ut)),Jt(ct),(ht||Ft)&&reactExports.createElement(ProgressBar,Object.assign({},Tt&&!Ft?{key:"pb-"+Tt}:{},{rtl:jt,theme:zt,delay:ht,isRunning:ot,isIn:xt,closeToast:gt,hide:mt,type:pt,style:At,className:Et,controlledProgress:Ft,progress:Lt}))))},Bounce=cssTransition({enter:"Toastify--animate Toastify__bounce-enter",exit:"Toastify--animate Toastify__bounce-exit",appendPosition:!0}),ToastContainer=function(et){var nt=useToastContainer(et),rt=nt.getToastToRender,it=nt.containerRef,ot=nt.isToastActive,at=et.className,st=et.style,lt=et.rtl,ct=et.containerId;function ut(ht){var dt,pt=clsx("Toastify__toast-container","Toastify__toast-container--"+ht,(dt={},dt["Toastify__toast-container--rtl"]=lt,dt));return isFn(at)?at({position:ht,rtl:lt,defaultClassName:pt}):clsx(pt,parseClassName(at))}return reactExports.createElement("div",{ref:it,className:"Toastify",id:ct},rt(function(ht,dt){var pt=dt.length?_extends$p({},st):_extends$p({},st,{pointerEvents:"none"});return reactExports.createElement("div",{className:ut(ht),style:pt,key:"container-"+ht},dt.map(function(mt){var gt=mt.content,yt=mt.props;return reactExports.createElement(Toast,Object.assign({},yt,{isIn:ot(yt.toastId),key:"toast-"+yt.key,closeButton:yt.closeButton===!0?CloseButton$8:yt.closeButton}),gt)}))}))};ToastContainer.defaultProps={position:POSITION.TOP_RIGHT,transition:Bounce,rtl:!1,autoClose:5e3,hideProgressBar:!1,closeButton:CloseButton$8,pauseOnHover:!0,pauseOnFocusLoss:!0,closeOnClick:!0,newestOnTop:!1,draggable:!0,draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};var containers=new Map,latestInstance,containerDomNode,containerConfig,queue$1=[],lazy$9=!1;function getToast(tt,et){var nt=et.containerId,rt=containers.get(nt||latestInstance);return rt?rt.getToast(tt):null}function generateToastId(){return Math.random().toString(36).substring(2,9)}function getToastId(tt){return tt&&(isStr(tt.toastId)||isNum(tt.toastId))?tt.toastId:generateToastId()}function dispatchToast(tt,et){return containers.size>0?eventManager.emit(0,tt,et):(queue$1.push({content:tt,options:et}),lazy$9&&canUseDom&&(lazy$9=!1,containerDomNode=document.createElement("div"),document.body.appendChild(containerDomNode),reactDomExports.render(reactExports.createElement(ToastContainer,Object.assign({},containerConfig)),containerDomNode))),et.toastId}function mergeOptions(tt,et){return _extends$p({},et,{type:et&&et.type||tt,toastId:getToastId(et)})}function createToastByType(tt){return function(et,nt){return dispatchToast(et,mergeOptions(tt,nt))}}function toast(tt,et){return dispatchToast(tt,mergeOptions(TYPE.DEFAULT,et))}toast.loading=function(tt,et){return dispatchToast(tt,mergeOptions(TYPE.DEFAULT,_extends$p({isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1},et)))};function handlePromise(tt,et,nt){var rt=et.pending,it=et.error,ot=et.success,at;rt&&(at=isStr(rt)?toast.loading(rt,nt):toast.loading(rt.render,_extends$p({},nt,rt)));var st={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},lt=function(ht,dt,pt){if(dt==null){toast.dismiss(at);return}var mt=_extends$p({type:ht},st,nt,{data:pt}),gt=isStr(dt)?{render:dt}:dt;return at?toast.update(at,_extends$p({},mt,gt)):toast(gt.render,_extends$p({},mt,gt)),pt},ct=isFn(tt)?tt():tt;return ct.then(function(ut){return lt("success",ot,ut)}).catch(function(ut){return lt("error",it,ut)}),ct}toast.promise=handlePromise;toast.success=createToastByType(TYPE.SUCCESS);toast.info=createToastByType(TYPE.INFO);toast.error=createToastByType(TYPE.ERROR);toast.warning=createToastByType(TYPE.WARNING);toast.warn=toast.warning;toast.dark=function(tt,et){return dispatchToast(tt,mergeOptions(TYPE.DEFAULT,_extends$p({theme:"dark"},et)))};toast.dismiss=function(tt){return eventManager.emit(1,tt)};toast.clearWaitingQueue=function(tt){return tt===void 0&&(tt={}),eventManager.emit(5,tt)};toast.isActive=function(tt){var et=!1;return containers.forEach(function(nt){nt.isToastActive&&nt.isToastActive(tt)&&(et=!0)}),et};toast.update=function(tt,et){et===void 0&&(et={}),setTimeout(function(){var nt=getToast(tt,et);if(nt){var rt=nt.props,it=nt.content,ot=_extends$p({},rt,et,{toastId:et.toastId||tt,updateId:generateToastId()});ot.toastId!==tt&&(ot.staleId=tt);var at=ot.render||it;delete ot.render,dispatchToast(at,ot)}},0)};toast.done=function(tt){toast.update(tt,{progress:1})};toast.onChange=function(tt){return isFn(tt)&&eventManager.on(4,tt),function(){isFn(tt)&&eventManager.off(4,tt)}};toast.configure=function(tt){tt===void 0&&(tt={}),lazy$9=!0,containerConfig=tt};toast.POSITION=POSITION;toast.TYPE=TYPE;eventManager.on(2,function(tt){latestInstance=tt.containerId||tt,containers.set(latestInstance,tt),queue$1.forEach(function(et){eventManager.emit(0,et.content,et.options)}),queue$1=[]}).on(3,function(tt){containers.delete(tt.containerId||tt),containers.size===0&&eventManager.off(0).off(1).off(5),canUseDom&&containerDomNode&&document.body.removeChild(containerDomNode)});const colors={black:"rgb(0, 0, 0)",bluePressState:"rgb(57, 97, 220)",blueTextAccent:"rgb(130, 180, 255)",body:"rgb(21, 30, 39)",boostBg1:"rgb(32, 63, 62)",budgetExplanationModalBg:"rgb(21, 28, 35)",dashboardHeader:"rgba(26, 36, 46, 0.3)",dashboardSearch:"rgb(21, 30, 39)",dashboardWashedoutText:"rgb(107, 122, 141)",divider1:"rgb(21, 30, 39)",divider2:"rgb(16, 19, 23)",divider3:"rgb(71, 81, 94)",gray100:"rgba(51, 51, 51, 0.2)",gray200:"rgba(51, 51, 51, 0.4)",gray300:"rgba(51, 51, 51, 0.6)",gray400:"rgba(51, 51, 51, 0.8)",gray500:"rgb(51, 51, 51)",green100:"rgba(73, 201, 152, 0.2)",green200:"rgba(73, 201, 152, 0.4)",green300:"rgba(73, 201, 152, 0.6)",green400:"rgba(73, 201, 152, 0.8)",greenBorder:"rgb(47, 179, 121)",headerBackground:"rgb(26, 36, 46)",inputBg1:"rgb(32, 39, 47)",inputBg2:"rgb(20, 22, 26)",inputOutline1:"rgb(71, 81, 94)",inputPlaceholder:"rgb(76, 86, 101)",lightBlue100:"rgba(93, 143, 221, 0.2)",lightBlue200:"rgba(93, 143, 221, 0.4)",lightBlue300:"rgba(93, 143, 221, 0.6)",lightBlue400:"rgba(93, 143, 221, 0.8)",lightBlue500:"rgb(93, 143, 221)",lightGray:"rgb(187, 187, 187)",listBg:"rgb(21, 30, 39)",mainBottomIcons:"rgb(144, 155, 170)",modalAuth:"#909baa",modalBg:"rgb(25, 33, 40)",modalShield:"#618aff",modalWhiteOverlayBg:"rgba(255, 255, 255, 0.2)",placeholderText:"rgb(85, 97, 113)",primaryBlueBorder:"rgb(80, 120, 242)",primaryBlue:"rgba(97, 138, 255, 1)",primaryButton:"rgb(130, 180, 255)",primaryGreen:"rgb(73, 201, 152)",primaryRed:"rgb(237, 116, 116)",primaryText1:"rgb(255, 255, 255)",receivedIcon:"rgb(130, 180, 255)",receivedMsgBg:"rgb(34, 46, 58)",secondaryRed:"rgb(255, 143, 128)",secondaryText4:"rgb(107, 122, 141)",sentMsgBg:"rgb(62, 97, 137)",sentMsgBgPress:"rgb(44, 66, 91)",text2:"rgb(255, 255, 255)",textMessages:"rgb(255, 255, 255)",transactionBg:"rgb(30, 41, 52)",transactionBgBorder:"rgb(21, 30, 39)",transactionBlueText:"rgb(130, 180, 255)",unreadMsgText:"rgb(186, 193, 198)",washedOutGreen:"rgb(47, 116, 96)",washedOutReceivedText:"rgb(85, 97, 113)",washedOutSentText:"rgb(130, 156, 185)",white:"rgb(255, 255, 255)",transparentWhite:"#ffffff88",transparentBlack:"#000000bb",BG1:"rgba(35, 37, 47, 1)",BG1_NORMAL:"rgba(28, 30, 38, 1)",BG1_HOVER:"rgba(21, 22, 28, 1)",BG1_PRESS:"#0E0F13",BG2:"rgba(22, 23, 29, 1)",BG3:"rgba(28, 30, 38, 1)",GRAY3:"rgba(186, 193, 198, 1)",GRAY6:"#909BAA",GRAY7:"rgba(107, 122, 141, 1)",SECONDARY_BLUE:"rgba(130, 180, 255, 1)",PRIMARY_BLUE:"rgba(97, 138, 255, 1)",BUTTON1:"rgba(48, 51, 66, 1)",BUTTON1_HOVER:"rgba(44, 47, 60, 1)",BUTTON1_PRESS:"rgba(41, 44, 56, 1)",PRIMARY_BLUE_BORDER:"rgba(80, 120, 242, 1)",BLUE_PRESS_STATE:"rgba(57, 97, 220, 1)"},background=Ae` ${({background:tt})=>tt&&`background-color: ${colors[tt]};`} `,switchProp$2=(tt,et)=>{switch(tt){case"borderColor":return`border-color: ${et};`;case"borderRadius":return`border-radius: ${et}px;`;case"borderRadiusBottomLeft":return`border-bottom-left-radius: ${et}px;`;case"borderRadiusBottomRight":return`border-bottom-right-radius: ${et}px;`;case"borderRadiusTopLeft":return`border-top-left-radius: ${et}px;`;case"borderRadiusTopRight":return`border-top-right-radius: ${et}px;`;case"borderSize":return` border-style: solid; @@ -426,7 +426,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho color: ${colors.GRAY6}; cursor: pointer; z-index: 1; -`,BaseModal=({background:tt="modalBg",children:et,id:nt,hideBg:rt,kind:it,preventOutsideClose:ot,noWrap:at=!1,onClose:st})=>{const{visible:lt,close:ct}=useModal(nt);return lt?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx(Bg,{align:"center",hideBg:rt,justify:"center",onClick:ut=>{ot||(ut.stopPropagation(),ct())},children:jsxRuntimeExports.jsxs(ModalContainer,{background:tt,borderRadius:9,id:nt,kind:it,onClick:ut=>{ut.stopPropagation()},px:at?0:20,py:at?0:20,children:[st&&jsxRuntimeExports.jsx(CloseButton$7,{onClick:st,children:jsxRuntimeExports.jsx(ClearIcon,{})}),et]})})}):null},{origin:origin$1,host}=window.location,isDevelopment=origin$1==="http://localhost:3000"||origin$1==="http://localhost:3001"||origin$1==="https://sphinx-jarvis-david.sphinx1.repl.co",getUrlFormEnv=()=>({}).VITE_APP_API_URL,API_URL=getUrlFormEnv()||apiUrlFromSwarmHost()||"https://knowledge-graph.sphinx.chat";console.log("🚀 ~ file: index.ts:12 ~ API_URL:",API_URL);console.log("🚀 ~ file: index.ts:12 ~ getUrlFormEnv:",getUrlFormEnv());const isChileGraph=API_URL.includes("boltwall");function apiUrlFromSwarmHost(){if(host.includes("swarm")&&host.startsWith("nav")){const tt=host.split(".");tt[0]="boltwall";const nt=`https://${tt.join(".")}`;return console.log("API URL:",nt),nt}}const AWS_IMAGE_BUCKET_URL="https://stakwork-uploads.s3.amazonaws.com/",CLOUDFRONT_IMAGE_BUCKET_URL="https://d1gd7b7slyku8k.cloudfront.net/",GRAPH_FOG_COLOR="blue",GRAPH_GROUND_COLOR=13421772,GRAPH_LIGHT_INTENSITY=.8,BOOST_SUCCESS="Boosted successfully",BOOST_ERROR_BUDGET="Boost failed, insufficient budget",NODE_ADD_SUCCESS="Submitted!",NODE_ADD_ERROR="Submission failed, please try again.",NODE_RELATIVE_HIGHLIGHT_COLORS={children:{nodeColor:"green",segmentColor:4063109},guests:{nodeColor:"purple",segmentColor:14504191},topics:{nodeColor:"purple",segmentColor:5273842},pathway:{nodeColor:"#ffffff",segmentColor:16777215}},LINK="link",TWITTER_HANDLE="twitter_handle",GITHUB_REPOSITORY="github_repository",YOUTUBE_CHANNEL="youtube_channel",WEB_PAGE="web_page",RSS="rss",TWITTER_SOURCE="tweet",TOPIC="topic",DOCUMENT="document",isE2E=!!{}.VITE_APP_IS_E2E,request=async(tt,et)=>(await fetch(tt,et)).json(),api$1={delete:(tt,et)=>request(`${API_URL}${tt}`,{headers:{...et,"Content-Type":"application/json"},method:"DELETE"}),get:(tt,et)=>request(`${API_URL}${tt}`,et?{headers:et}:void 0),post:(tt,et,nt)=>request(`${API_URL}${tt}`,{body:et,headers:{...nt,"Content-Type":"application/json"},method:"POST"}),put:(tt,et,nt)=>request(`${API_URL}${tt}`,{body:et,headers:{...nt,"Content-Type":"application/json"},method:"PUT"})},defaultParams={skip:"0",limit:"500",approved:"True"},getRadarData=async(tt=defaultParams)=>await api$1.get(`/radar?${new URLSearchParams({...defaultParams,...tt}).toString()}`),getAboutData=async()=>await api$1.get("/about"),postAboutData=async tt=>await api$1.post("/about",JSON.stringify(tt)),triggerRadarJob=async()=>api$1.get("/radar/trigger-job"),putRadarData=async(tt,et)=>await api$1.put(`/radar/${tt}`,JSON.stringify(et)),approveRadarData=async(tt,et)=>await api$1.put(`/radar/${tt}/approve`,JSON.stringify({approve:"True",pubkey:et})),deleteRadarData=async tt=>await api$1.delete(`/radar/${tt}`);var dist$2={},identifier={},assert$q={exports:{}},errors$2={},util$1={},types$7={},shams$1=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var et={},nt=Symbol("test"),rt=Object(nt);if(typeof nt=="string"||Object.prototype.toString.call(nt)!=="[object Symbol]"||Object.prototype.toString.call(rt)!=="[object Symbol]")return!1;var it=42;et[nt]=it;for(nt in et)return!1;if(typeof Object.keys=="function"&&Object.keys(et).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(et).length!==0)return!1;var ot=Object.getOwnPropertySymbols(et);if(ot.length!==1||ot[0]!==nt||!Object.prototype.propertyIsEnumerable.call(et,nt))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var at=Object.getOwnPropertyDescriptor(et,nt);if(at.value!==it||at.enumerable!==!0)return!1}return!0},hasSymbols$1=shams$1,shams=function(){return hasSymbols$1()&&!!Symbol.toStringTag},hasSymbols,hasRequiredHasSymbols;function requireHasSymbols(){if(hasRequiredHasSymbols)return hasSymbols;hasRequiredHasSymbols=1;var tt=typeof Symbol<"u"&&Symbol,et=shams$1;return hasSymbols=function(){return typeof tt!="function"||typeof Symbol!="function"||typeof tt("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:et()},hasSymbols}var hasProto,hasRequiredHasProto;function requireHasProto(){if(hasRequiredHasProto)return hasProto;hasRequiredHasProto=1;var tt={foo:{}},et=Object;return hasProto=function(){return{__proto__:tt}.foo===tt.foo&&!({__proto__:null}instanceof et)},hasProto}var implementation$3,hasRequiredImplementation$3;function requireImplementation$3(){if(hasRequiredImplementation$3)return implementation$3;hasRequiredImplementation$3=1;var tt="Function.prototype.bind called on incompatible ",et=Array.prototype.slice,nt=Object.prototype.toString,rt="[object Function]";return implementation$3=function(ot){var at=this;if(typeof at!="function"||nt.call(at)!==rt)throw new TypeError(tt+at);for(var st=et.call(arguments,1),lt,ct=function(){if(this instanceof lt){var mt=at.apply(this,st.concat(et.call(arguments)));return Object(mt)===mt?mt:this}else return at.apply(ot,st.concat(et.call(arguments)))},ut=Math.max(0,at.length-st.length),ht=[],dt=0;dt"u"||!ut?tt:ut(Uint8Array),pt={"%AggregateError%":typeof AggregateError>"u"?tt:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?tt:ArrayBuffer,"%ArrayIteratorPrototype%":lt&&ut?ut([][Symbol.iterator]()):tt,"%AsyncFromSyncIteratorPrototype%":tt,"%AsyncFunction%":ht,"%AsyncGenerator%":ht,"%AsyncGeneratorFunction%":ht,"%AsyncIteratorPrototype%":ht,"%Atomics%":typeof Atomics>"u"?tt:Atomics,"%BigInt%":typeof BigInt>"u"?tt:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?tt:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?tt:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?tt:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?tt:Float32Array,"%Float64Array%":typeof Float64Array>"u"?tt:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?tt:FinalizationRegistry,"%Function%":nt,"%GeneratorFunction%":ht,"%Int8Array%":typeof Int8Array>"u"?tt:Int8Array,"%Int16Array%":typeof Int16Array>"u"?tt:Int16Array,"%Int32Array%":typeof Int32Array>"u"?tt:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":lt&&ut?ut(ut([][Symbol.iterator]())):tt,"%JSON%":typeof JSON=="object"?JSON:tt,"%Map%":typeof Map>"u"?tt:Map,"%MapIteratorPrototype%":typeof Map>"u"||!lt||!ut?tt:ut(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?tt:Promise,"%Proxy%":typeof Proxy>"u"?tt:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?tt:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?tt:Set,"%SetIteratorPrototype%":typeof Set>"u"||!lt||!ut?tt:ut(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?tt:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":lt&&ut?ut(""[Symbol.iterator]()):tt,"%Symbol%":lt?Symbol:tt,"%SyntaxError%":et,"%ThrowTypeError%":st,"%TypedArray%":dt,"%TypeError%":rt,"%Uint8Array%":typeof Uint8Array>"u"?tt:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?tt:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?tt:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?tt:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?tt:WeakMap,"%WeakRef%":typeof WeakRef>"u"?tt:WeakRef,"%WeakSet%":typeof WeakSet>"u"?tt:WeakSet};if(ut)try{null.error}catch(Rt){var mt=ut(ut(Rt));pt["%Error.prototype%"]=mt}var gt=function Rt($t){var xt;if($t==="%AsyncFunction%")xt=it("async function () {}");else if($t==="%GeneratorFunction%")xt=it("function* () {}");else if($t==="%AsyncGeneratorFunction%")xt=it("async function* () {}");else if($t==="%AsyncGenerator%"){var It=Rt("%AsyncGeneratorFunction%");It&&(xt=It.prototype)}else if($t==="%AsyncIteratorPrototype%"){var Ot=Rt("%AsyncGenerator%");Ot&&ut&&(xt=ut(Ot.prototype))}return pt[$t]=xt,xt},yt={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bt=requireFunctionBind(),wt=requireSrc(),vt=bt.call(Function.call,Array.prototype.concat),kt=bt.call(Function.apply,Array.prototype.splice),St=bt.call(Function.call,String.prototype.replace),Tt=bt.call(Function.call,String.prototype.slice),At=bt.call(Function.call,RegExp.prototype.exec),Et=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Mt=/\\(\\)?/g,Lt=function($t){var xt=Tt($t,0,1),It=Tt($t,-1);if(xt==="%"&&It!=="%")throw new et("invalid intrinsic syntax, expected closing `%`");if(It==="%"&&xt!=="%")throw new et("invalid intrinsic syntax, expected opening `%`");var Ot=[];return St($t,Et,function(zt,Ut,Wt,Ft){Ot[Ot.length]=Wt?St(Ft,Mt,"$1"):Ut||zt}),Ot},jt=function($t,xt){var It=$t,Ot;if(wt(yt,It)&&(Ot=yt[It],It="%"+Ot[0]+"%"),wt(pt,It)){var zt=pt[It];if(zt===ht&&(zt=gt(It)),typeof zt>"u"&&!xt)throw new rt("intrinsic "+$t+" exists, but is not available. Please file an issue!");return{alias:Ot,name:It,value:zt}}throw new et("intrinsic "+$t+" does not exist!")};return getIntrinsic=function($t,xt){if(typeof $t!="string"||$t.length===0)throw new rt("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof xt!="boolean")throw new rt('"allowMissing" argument must be a boolean');if(At(/^%?[^%]*%?$/,$t)===null)throw new et("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var It=Lt($t),Ot=It.length>0?It[0]:"",zt=jt("%"+Ot+"%",xt),Ut=zt.name,Wt=zt.value,Ft=!1,Nt=zt.alias;Nt&&(Ot=Nt[0],kt(It,vt([0,1],Nt)));for(var Ct=1,Ht=!0;Ct=It.length){var fn=ot(Wt,Jt);Ht=!!fn,Ht&&"get"in fn&&!("originalValue"in fn.get)?Wt=fn.get:Wt=Wt[Jt]}else Ht=wt(Wt,Jt),Wt=Wt[Jt];Ht&&!Ft&&(pt[Ut]=Wt)}}return Wt},getIntrinsic}var callBind$2={exports:{}},hasRequiredCallBind;function requireCallBind(){return hasRequiredCallBind||(hasRequiredCallBind=1,function(tt){var et=requireFunctionBind(),nt=requireGetIntrinsic(),rt=nt("%Function.prototype.apply%"),it=nt("%Function.prototype.call%"),ot=nt("%Reflect.apply%",!0)||et.call(it,rt),at=nt("%Object.getOwnPropertyDescriptor%",!0),st=nt("%Object.defineProperty%",!0),lt=nt("%Math.max%");if(st)try{st({},"a",{value:1})}catch{st=null}tt.exports=function(ht){var dt=ot(et,it,arguments);if(at&&st){var pt=at(dt,"length");pt.configurable&&st(dt,"length",{value:1+lt(0,ht.length-(arguments.length-1))})}return dt};var ct=function(){return ot(et,rt,arguments)};st?st(tt.exports,"apply",{value:ct}):tt.exports.apply=ct}(callBind$2)),callBind$2.exports}var GetIntrinsic$1=requireGetIntrinsic(),callBind$1=requireCallBind(),$indexOf$1=callBind$1(GetIntrinsic$1("String.prototype.indexOf")),callBound$2=function(et,nt){var rt=GetIntrinsic$1(et,!!nt);return typeof rt=="function"&&$indexOf$1(et,".prototype.")>-1?callBind$1(rt):rt},hasToStringTag$3=shams(),callBound$1=callBound$2,$toString$1=callBound$1("Object.prototype.toString"),isStandardArguments=function(et){return hasToStringTag$3&&et&&typeof et=="object"&&Symbol.toStringTag in et?!1:$toString$1(et)==="[object Arguments]"},isLegacyArguments=function(et){return isStandardArguments(et)?!0:et!==null&&typeof et=="object"&&typeof et.length=="number"&&et.length>=0&&$toString$1(et)!=="[object Array]"&&$toString$1(et.callee)==="[object Function]"},supportsStandardArguments=function(){return isStandardArguments(arguments)}();isStandardArguments.isLegacyArguments=isLegacyArguments;var isArguments$5=supportsStandardArguments?isStandardArguments:isLegacyArguments,toStr$2=Object.prototype.toString,fnToStr$1=Function.prototype.toString,isFnRegex=/^\s*(?:function)?\*/,hasToStringTag$2=shams(),getProto=Object.getPrototypeOf,getGeneratorFunc=function(){if(!hasToStringTag$2)return!1;try{return Function("return function*() {}")()}catch{}},GeneratorFunction,isGeneratorFunction=function(et){if(typeof et!="function")return!1;if(isFnRegex.test(fnToStr$1.call(et)))return!0;if(!hasToStringTag$2){var nt=toStr$2.call(et);return nt==="[object GeneratorFunction]"}if(!getProto)return!1;if(typeof GeneratorFunction>"u"){var rt=getGeneratorFunc();GeneratorFunction=rt?getProto(rt):!1}return getProto(et)===GeneratorFunction},fnToStr=Function.prototype.toString,reflectApply=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,badArrayLike,isCallableMarker;if(typeof reflectApply=="function"&&typeof Object.defineProperty=="function")try{badArrayLike=Object.defineProperty({},"length",{get:function(){throw isCallableMarker}}),isCallableMarker={},reflectApply(function(){throw 42},null,badArrayLike)}catch(tt){tt!==isCallableMarker&&(reflectApply=null)}else reflectApply=null;var constructorRegex=/^\s*class\b/,isES6ClassFn=function(et){try{var nt=fnToStr.call(et);return constructorRegex.test(nt)}catch{return!1}},tryFunctionObject=function(et){try{return isES6ClassFn(et)?!1:(fnToStr.call(et),!0)}catch{return!1}},toStr$1=Object.prototype.toString,objectClass="[object Object]",fnClass="[object Function]",genClass="[object GeneratorFunction]",ddaClass="[object HTMLAllCollection]",ddaClass2="[object HTML document.all class]",ddaClass3="[object HTMLCollection]",hasToStringTag$1=typeof Symbol=="function"&&!!Symbol.toStringTag,isIE68=!(0 in[,]),isDDA=function(){return!1};if(typeof document=="object"){var all=document.all;toStr$1.call(all)===toStr$1.call(document.all)&&(isDDA=function(et){if((isIE68||!et)&&(typeof et>"u"||typeof et=="object"))try{var nt=toStr$1.call(et);return(nt===ddaClass||nt===ddaClass2||nt===ddaClass3||nt===objectClass)&&et("")==null}catch{}return!1})}var isCallable$1=reflectApply?function(et){if(isDDA(et))return!0;if(!et||typeof et!="function"&&typeof et!="object")return!1;try{reflectApply(et,null,badArrayLike)}catch(nt){if(nt!==isCallableMarker)return!1}return!isES6ClassFn(et)&&tryFunctionObject(et)}:function(et){if(isDDA(et))return!0;if(!et||typeof et!="function"&&typeof et!="object")return!1;if(hasToStringTag$1)return tryFunctionObject(et);if(isES6ClassFn(et))return!1;var nt=toStr$1.call(et);return nt!==fnClass&&nt!==genClass&&!/^\[object HTML/.test(nt)?!1:tryFunctionObject(et)},isCallable=isCallable$1,toStr=Object.prototype.toString,hasOwnProperty$d=Object.prototype.hasOwnProperty,forEachArray=function(et,nt,rt){for(var it=0,ot=et.length;it=3&&(it=rt),toStr.call(et)==="[object Array]"?forEachArray(et,nt,it):typeof et=="string"?forEachString(et,nt,it):forEachObject(et,nt,it)},forEach_1=forEach$1,possibleNames=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],g$3=typeof globalThis>"u"?commonjsGlobal:globalThis,availableTypedArrays$1=function(){for(var et=[],nt=0;nt"u"?commonjsGlobal:globalThis,typedArrays=availableTypedArrays(),$slice=callBound("String.prototype.slice"),getPrototypeOf=Object.getPrototypeOf,$indexOf=callBound("Array.prototype.indexOf",!0)||function(et,nt){for(var rt=0;rt-1?nt:nt!=="Object"?!1:trySlices(et)}return gOPD?tryTypedArrays(et):null},whichTypedArray=whichTypedArray$1,isTypedArray$5=function(et){return!!whichTypedArray(et)};(function(tt){var et=isArguments$5,nt=isGeneratorFunction,rt=whichTypedArray$1,it=isTypedArray$5;function ot(gn){return gn.call.bind(gn)}var at=typeof BigInt<"u",st=typeof Symbol<"u",lt=ot(Object.prototype.toString),ct=ot(Number.prototype.valueOf),ut=ot(String.prototype.valueOf),ht=ot(Boolean.prototype.valueOf);if(at)var dt=ot(BigInt.prototype.valueOf);if(st)var pt=ot(Symbol.prototype.valueOf);function mt(gn,Cn){if(typeof gn!="object")return!1;try{return Cn(gn),!0}catch{return!1}}tt.isArgumentsObject=et,tt.isGeneratorFunction=nt,tt.isTypedArray=it;function gt(gn){return typeof Promise<"u"&&gn instanceof Promise||gn!==null&&typeof gn=="object"&&typeof gn.then=="function"&&typeof gn.catch=="function"}tt.isPromise=gt;function yt(gn){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(gn):it(gn)||Ht(gn)}tt.isArrayBufferView=yt;function bt(gn){return rt(gn)==="Uint8Array"}tt.isUint8Array=bt;function wt(gn){return rt(gn)==="Uint8ClampedArray"}tt.isUint8ClampedArray=wt;function vt(gn){return rt(gn)==="Uint16Array"}tt.isUint16Array=vt;function kt(gn){return rt(gn)==="Uint32Array"}tt.isUint32Array=kt;function St(gn){return rt(gn)==="Int8Array"}tt.isInt8Array=St;function Tt(gn){return rt(gn)==="Int16Array"}tt.isInt16Array=Tt;function At(gn){return rt(gn)==="Int32Array"}tt.isInt32Array=At;function Et(gn){return rt(gn)==="Float32Array"}tt.isFloat32Array=Et;function Mt(gn){return rt(gn)==="Float64Array"}tt.isFloat64Array=Mt;function Lt(gn){return rt(gn)==="BigInt64Array"}tt.isBigInt64Array=Lt;function jt(gn){return rt(gn)==="BigUint64Array"}tt.isBigUint64Array=jt;function Rt(gn){return lt(gn)==="[object Map]"}Rt.working=typeof Map<"u"&&Rt(new Map);function $t(gn){return typeof Map>"u"?!1:Rt.working?Rt(gn):gn instanceof Map}tt.isMap=$t;function xt(gn){return lt(gn)==="[object Set]"}xt.working=typeof Set<"u"&&xt(new Set);function It(gn){return typeof Set>"u"?!1:xt.working?xt(gn):gn instanceof Set}tt.isSet=It;function Ot(gn){return lt(gn)==="[object WeakMap]"}Ot.working=typeof WeakMap<"u"&&Ot(new WeakMap);function zt(gn){return typeof WeakMap>"u"?!1:Ot.working?Ot(gn):gn instanceof WeakMap}tt.isWeakMap=zt;function Ut(gn){return lt(gn)==="[object WeakSet]"}Ut.working=typeof WeakSet<"u"&&Ut(new WeakSet);function Wt(gn){return Ut(gn)}tt.isWeakSet=Wt;function Ft(gn){return lt(gn)==="[object ArrayBuffer]"}Ft.working=typeof ArrayBuffer<"u"&&Ft(new ArrayBuffer);function Nt(gn){return typeof ArrayBuffer>"u"?!1:Ft.working?Ft(gn):gn instanceof ArrayBuffer}tt.isArrayBuffer=Nt;function Ct(gn){return lt(gn)==="[object DataView]"}Ct.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&Ct(new DataView(new ArrayBuffer(1),0,1));function Ht(gn){return typeof DataView>"u"?!1:Ct.working?Ct(gn):gn instanceof DataView}tt.isDataView=Ht;var Jt=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function nn(gn){return lt(gn)==="[object SharedArrayBuffer]"}function Yt(gn){return typeof Jt>"u"?!1:(typeof nn.working>"u"&&(nn.working=nn(new Jt)),nn.working?nn(gn):gn instanceof Jt)}tt.isSharedArrayBuffer=Yt;function fn(gn){return lt(gn)==="[object AsyncFunction]"}tt.isAsyncFunction=fn;function cn(gn){return lt(gn)==="[object Map Iterator]"}tt.isMapIterator=cn;function _n(gn){return lt(gn)==="[object Set Iterator]"}tt.isSetIterator=_n;function En(gn){return lt(gn)==="[object Generator]"}tt.isGeneratorObject=En;function an(gn){return lt(gn)==="[object WebAssembly.Module]"}tt.isWebAssemblyCompiledModule=an;function en(gn){return mt(gn,ct)}tt.isNumberObject=en;function Tn(gn){return mt(gn,ut)}tt.isStringObject=Tn;function Rn(gn){return mt(gn,ht)}tt.isBooleanObject=Rn;function An(gn){return at&&mt(gn,dt)}tt.isBigIntObject=An;function yn(gn){return st&&mt(gn,pt)}tt.isSymbolObject=yn;function kn(gn){return en(gn)||Tn(gn)||Rn(gn)||An(gn)||yn(gn)}tt.isBoxedPrimitive=kn;function dn(gn){return typeof Uint8Array<"u"&&(Nt(gn)||Yt(gn))}tt.isAnyArrayBuffer=dn,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(gn){Object.defineProperty(tt,gn,{enumerable:!1,value:function(){throw new Error(gn+" is not supported in userland")}})})})(types$7);var isBufferBrowser=function(et){return et&&typeof et=="object"&&typeof et.copy=="function"&&typeof et.fill=="function"&&typeof et.readUInt8=="function"},inherits_browser={exports:{}};typeof Object.create=="function"?inherits_browser.exports=function(et,nt){nt&&(et.super_=nt,et.prototype=Object.create(nt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}}))}:inherits_browser.exports=function(et,nt){if(nt){et.super_=nt;var rt=function(){};rt.prototype=nt.prototype,et.prototype=new rt,et.prototype.constructor=et}};var inherits_browserExports=inherits_browser.exports;(function(tt){var et=Object.getOwnPropertyDescriptors||function(Ht){for(var Jt=Object.keys(Ht),nn={},Yt=0;Yt=Yt)return _n;switch(_n){case"%s":return String(nn[Jt++]);case"%d":return Number(nn[Jt++]);case"%j":try{return JSON.stringify(nn[Jt++])}catch{return"[Circular]"}default:return _n}}),cn=nn[Jt];Jt"u")return function(){return tt.deprecate(Ct,Ht).apply(this,arguments)};var Jt=!1;function nn(){if(!Jt){if(process.throwDeprecation)throw new Error(Ht);process.traceDeprecation?console.trace(Ht):console.error(Ht),Jt=!0}return Ct.apply(this,arguments)}return nn};var rt={},it=/^$/;if({}.NODE_DEBUG){var ot={}.NODE_DEBUG;ot=ot.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),it=new RegExp("^"+ot+"$","i")}tt.debuglog=function(Ct){if(Ct=Ct.toUpperCase(),!rt[Ct])if(it.test(Ct)){var Ht=process.pid;rt[Ct]=function(){var Jt=tt.format.apply(tt,arguments);console.error("%s %d: %s",Ct,Ht,Jt)}}else rt[Ct]=function(){};return rt[Ct]};function at(Ct,Ht){var Jt={seen:[],stylize:lt};return arguments.length>=3&&(Jt.depth=arguments[2]),arguments.length>=4&&(Jt.colors=arguments[3]),bt(Ht)?Jt.showHidden=Ht:Ht&&tt._extend(Jt,Ht),At(Jt.showHidden)&&(Jt.showHidden=!1),At(Jt.depth)&&(Jt.depth=2),At(Jt.colors)&&(Jt.colors=!1),At(Jt.customInspect)&&(Jt.customInspect=!0),Jt.colors&&(Jt.stylize=st),ut(Jt,Ct,Jt.depth)}tt.inspect=at,at.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},at.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function st(Ct,Ht){var Jt=at.styles[Ht];return Jt?"\x1B["+at.colors[Jt][0]+"m"+Ct+"\x1B["+at.colors[Jt][1]+"m":Ct}function lt(Ct,Ht){return Ct}function ct(Ct){var Ht={};return Ct.forEach(function(Jt,nn){Ht[Jt]=!0}),Ht}function ut(Ct,Ht,Jt){if(Ct.customInspect&&Ht&&Rt(Ht.inspect)&&Ht.inspect!==tt.inspect&&!(Ht.constructor&&Ht.constructor.prototype===Ht)){var nn=Ht.inspect(Jt,Ct);return St(nn)||(nn=ut(Ct,nn,Jt)),nn}var Yt=ht(Ct,Ht);if(Yt)return Yt;var fn=Object.keys(Ht),cn=ct(fn);if(Ct.showHidden&&(fn=Object.getOwnPropertyNames(Ht)),jt(Ht)&&(fn.indexOf("message")>=0||fn.indexOf("description")>=0))return dt(Ht);if(fn.length===0){if(Rt(Ht)){var _n=Ht.name?": "+Ht.name:"";return Ct.stylize("[Function"+_n+"]","special")}if(Et(Ht))return Ct.stylize(RegExp.prototype.toString.call(Ht),"regexp");if(Lt(Ht))return Ct.stylize(Date.prototype.toString.call(Ht),"date");if(jt(Ht))return dt(Ht)}var En="",an=!1,en=["{","}"];if(yt(Ht)&&(an=!0,en=["[","]"]),Rt(Ht)){var Tn=Ht.name?": "+Ht.name:"";En=" [Function"+Tn+"]"}if(Et(Ht)&&(En=" "+RegExp.prototype.toString.call(Ht)),Lt(Ht)&&(En=" "+Date.prototype.toUTCString.call(Ht)),jt(Ht)&&(En=" "+dt(Ht)),fn.length===0&&(!an||Ht.length==0))return en[0]+En+en[1];if(Jt<0)return Et(Ht)?Ct.stylize(RegExp.prototype.toString.call(Ht),"regexp"):Ct.stylize("[Object]","special");Ct.seen.push(Ht);var Rn;return an?Rn=pt(Ct,Ht,Jt,cn,fn):Rn=fn.map(function(An){return mt(Ct,Ht,Jt,cn,An,an)}),Ct.seen.pop(),gt(Rn,En,en)}function ht(Ct,Ht){if(At(Ht))return Ct.stylize("undefined","undefined");if(St(Ht)){var Jt="'"+JSON.stringify(Ht).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Ct.stylize(Jt,"string")}if(kt(Ht))return Ct.stylize(""+Ht,"number");if(bt(Ht))return Ct.stylize(""+Ht,"boolean");if(wt(Ht))return Ct.stylize("null","null")}function dt(Ct){return"["+Error.prototype.toString.call(Ct)+"]"}function pt(Ct,Ht,Jt,nn,Yt){for(var fn=[],cn=0,_n=Ht.length;cn<_n;++cn)Ut(Ht,String(cn))?fn.push(mt(Ct,Ht,Jt,nn,String(cn),!0)):fn.push("");return Yt.forEach(function(En){En.match(/^\d+$/)||fn.push(mt(Ct,Ht,Jt,nn,En,!0))}),fn}function mt(Ct,Ht,Jt,nn,Yt,fn){var cn,_n,En;if(En=Object.getOwnPropertyDescriptor(Ht,Yt)||{value:Ht[Yt]},En.get?En.set?_n=Ct.stylize("[Getter/Setter]","special"):_n=Ct.stylize("[Getter]","special"):En.set&&(_n=Ct.stylize("[Setter]","special")),Ut(nn,Yt)||(cn="["+Yt+"]"),_n||(Ct.seen.indexOf(En.value)<0?(wt(Jt)?_n=ut(Ct,En.value,null):_n=ut(Ct,En.value,Jt-1),_n.indexOf(` +`,BaseModal=({background:tt="modalBg",children:et,id:nt,hideBg:rt,kind:it,preventOutsideClose:ot,noWrap:at=!1,onClose:st})=>{const{visible:lt,close:ct}=useModal(nt);return lt?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx(Bg,{align:"center",hideBg:rt,justify:"center",onClick:ut=>{ot||(ut.stopPropagation(),ct())},children:jsxRuntimeExports.jsxs(ModalContainer,{background:tt,borderRadius:9,id:nt,kind:it,onClick:ut=>{ut.stopPropagation()},px:at?0:20,py:at?0:20,children:[st&&jsxRuntimeExports.jsx(CloseButton$7,{onClick:st,children:jsxRuntimeExports.jsx(ClearIcon,{})}),et]})})}):null},{origin:origin$1,host}=window.location,isDevelopment=origin$1==="http://localhost:3000"||origin$1==="http://localhost:3001"||origin$1==="https://sphinx-jarvis-david.sphinx1.repl.co",getUrlFormEnv=()=>({}).VITE_APP_API_URL,API_URL=getUrlFormEnv()||apiUrlFromSwarmHost()||"https://knowledge-graph.sphinx.chat";console.log("🚀 ~ file: index.ts:12 ~ API_URL:",API_URL);console.log("🚀 ~ file: index.ts:12 ~ getUrlFormEnv:",getUrlFormEnv());const isChileGraph=API_URL.includes("boltwall");function apiUrlFromSwarmHost(){if(host.includes("swarm")&&host.startsWith("nav")){const tt=host.split(".");tt[0]="boltwall";const nt=`https://${tt.join(".")}`;return console.log("API URL:",nt),nt}}const AWS_IMAGE_BUCKET_URL="https://stakwork-uploads.s3.amazonaws.com/",CLOUDFRONT_IMAGE_BUCKET_URL="https://d1gd7b7slyku8k.cloudfront.net/",GRAPH_FOG_COLOR="blue",GRAPH_GROUND_COLOR=13421772,GRAPH_LIGHT_INTENSITY=.8,BOOST_SUCCESS="Boosted successfully",BOOST_ERROR_BUDGET="Boost failed, insufficient budget",NODE_ADD_SUCCESS="Submitted!",NODE_ADD_ERROR="Submission failed, please try again.",NODE_RELATIVE_HIGHLIGHT_COLORS={children:{nodeColor:"green",segmentColor:4063109},guests:{nodeColor:"purple",segmentColor:14504191},topics:{nodeColor:"purple",segmentColor:5273842},pathway:{nodeColor:"#ffffff",segmentColor:16777215}},LINK="link",TWITTER_HANDLE="twitter_handle",GITHUB_REPOSITORY="github_repository",YOUTUBE_CHANNEL="youtube_channel",WEB_PAGE="web_page",RSS="rss",TWITTER_SOURCE="tweet",TOPIC="topic",DOCUMENT="document",isE2E=!!{}.VITE_APP_IS_E2E,request=async(tt,et)=>(await fetch(tt,et)).json(),api$1={delete:(tt,et)=>request(`${API_URL}${tt}`,{headers:{...et,"Content-Type":"application/json"},method:"DELETE"}),get:(tt,et)=>request(`${API_URL}${tt}`,et?{headers:et}:void 0),post:(tt,et,nt)=>request(`${API_URL}${tt}`,{body:et,headers:{...nt,"Content-Type":"application/json"},method:"POST"}),put:(tt,et,nt)=>request(`${API_URL}${tt}`,{body:et,headers:{...nt,"Content-Type":"application/json"},method:"PUT"})},defaultParams={skip:"0",limit:"500",approved:"True"},getRadarData=async(tt=defaultParams)=>await api$1.get(`/radar?${new URLSearchParams({...defaultParams,...tt}).toString()}`),getAboutData=async()=>await api$1.get("/about"),postAboutData=async tt=>await api$1.post("/about",JSON.stringify(tt)),triggerRadarJob=async()=>api$1.get("/radar/trigger-job"),putRadarData=async(tt,et)=>await api$1.put(`/radar/${tt}`,JSON.stringify(et)),approveRadarData=async(tt,et)=>await api$1.put(`/radar/${tt}/approve`,JSON.stringify({approve:"True",pubkey:et})),deleteRadarData=async tt=>await api$1.delete(`/radar/${tt}`);var dist$2={},identifier={},assert$q={exports:{}},errors$2={},util$1={},types$7={},shams$1=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var et={},nt=Symbol("test"),rt=Object(nt);if(typeof nt=="string"||Object.prototype.toString.call(nt)!=="[object Symbol]"||Object.prototype.toString.call(rt)!=="[object Symbol]")return!1;var it=42;et[nt]=it;for(nt in et)return!1;if(typeof Object.keys=="function"&&Object.keys(et).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(et).length!==0)return!1;var ot=Object.getOwnPropertySymbols(et);if(ot.length!==1||ot[0]!==nt||!Object.prototype.propertyIsEnumerable.call(et,nt))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var at=Object.getOwnPropertyDescriptor(et,nt);if(at.value!==it||at.enumerable!==!0)return!1}return!0},hasSymbols$1=shams$1,shams=function(){return hasSymbols$1()&&!!Symbol.toStringTag},hasSymbols,hasRequiredHasSymbols;function requireHasSymbols(){if(hasRequiredHasSymbols)return hasSymbols;hasRequiredHasSymbols=1;var tt=typeof Symbol<"u"&&Symbol,et=shams$1;return hasSymbols=function(){return typeof tt!="function"||typeof Symbol!="function"||typeof tt("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:et()},hasSymbols}var hasProto,hasRequiredHasProto;function requireHasProto(){if(hasRequiredHasProto)return hasProto;hasRequiredHasProto=1;var tt={foo:{}},et=Object;return hasProto=function(){return{__proto__:tt}.foo===tt.foo&&!({__proto__:null}instanceof et)},hasProto}var implementation$3,hasRequiredImplementation$3;function requireImplementation$3(){if(hasRequiredImplementation$3)return implementation$3;hasRequiredImplementation$3=1;var tt="Function.prototype.bind called on incompatible ",et=Array.prototype.slice,nt=Object.prototype.toString,rt="[object Function]";return implementation$3=function(ot){var at=this;if(typeof at!="function"||nt.call(at)!==rt)throw new TypeError(tt+at);for(var st=et.call(arguments,1),lt,ct=function(){if(this instanceof lt){var mt=at.apply(this,st.concat(et.call(arguments)));return Object(mt)===mt?mt:this}else return at.apply(ot,st.concat(et.call(arguments)))},ut=Math.max(0,at.length-st.length),ht=[],dt=0;dt"u"||!ut?tt:ut(Uint8Array),pt={"%AggregateError%":typeof AggregateError>"u"?tt:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?tt:ArrayBuffer,"%ArrayIteratorPrototype%":lt&&ut?ut([][Symbol.iterator]()):tt,"%AsyncFromSyncIteratorPrototype%":tt,"%AsyncFunction%":ht,"%AsyncGenerator%":ht,"%AsyncGeneratorFunction%":ht,"%AsyncIteratorPrototype%":ht,"%Atomics%":typeof Atomics>"u"?tt:Atomics,"%BigInt%":typeof BigInt>"u"?tt:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?tt:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?tt:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?tt:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array>"u"?tt:Float32Array,"%Float64Array%":typeof Float64Array>"u"?tt:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?tt:FinalizationRegistry,"%Function%":nt,"%GeneratorFunction%":ht,"%Int8Array%":typeof Int8Array>"u"?tt:Int8Array,"%Int16Array%":typeof Int16Array>"u"?tt:Int16Array,"%Int32Array%":typeof Int32Array>"u"?tt:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":lt&&ut?ut(ut([][Symbol.iterator]())):tt,"%JSON%":typeof JSON=="object"?JSON:tt,"%Map%":typeof Map>"u"?tt:Map,"%MapIteratorPrototype%":typeof Map>"u"||!lt||!ut?tt:ut(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?tt:Promise,"%Proxy%":typeof Proxy>"u"?tt:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect>"u"?tt:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?tt:Set,"%SetIteratorPrototype%":typeof Set>"u"||!lt||!ut?tt:ut(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?tt:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":lt&&ut?ut(""[Symbol.iterator]()):tt,"%Symbol%":lt?Symbol:tt,"%SyntaxError%":et,"%ThrowTypeError%":st,"%TypedArray%":dt,"%TypeError%":rt,"%Uint8Array%":typeof Uint8Array>"u"?tt:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?tt:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?tt:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?tt:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap>"u"?tt:WeakMap,"%WeakRef%":typeof WeakRef>"u"?tt:WeakRef,"%WeakSet%":typeof WeakSet>"u"?tt:WeakSet};if(ut)try{null.error}catch(Rt){var mt=ut(ut(Rt));pt["%Error.prototype%"]=mt}var gt=function Rt($t){var xt;if($t==="%AsyncFunction%")xt=it("async function () {}");else if($t==="%GeneratorFunction%")xt=it("function* () {}");else if($t==="%AsyncGeneratorFunction%")xt=it("async function* () {}");else if($t==="%AsyncGenerator%"){var It=Rt("%AsyncGeneratorFunction%");It&&(xt=It.prototype)}else if($t==="%AsyncIteratorPrototype%"){var Ot=Rt("%AsyncGenerator%");Ot&&ut&&(xt=ut(Ot.prototype))}return pt[$t]=xt,xt},yt={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bt=requireFunctionBind(),wt=requireSrc(),vt=bt.call(Function.call,Array.prototype.concat),kt=bt.call(Function.apply,Array.prototype.splice),St=bt.call(Function.call,String.prototype.replace),Et=bt.call(Function.call,String.prototype.slice),At=bt.call(Function.call,RegExp.prototype.exec),Tt=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Mt=/\\(\\)?/g,Lt=function($t){var xt=Et($t,0,1),It=Et($t,-1);if(xt==="%"&&It!=="%")throw new et("invalid intrinsic syntax, expected closing `%`");if(It==="%"&&xt!=="%")throw new et("invalid intrinsic syntax, expected opening `%`");var Ot=[];return St($t,Tt,function(zt,Ut,Wt,Ft){Ot[Ot.length]=Wt?St(Ft,Mt,"$1"):Ut||zt}),Ot},jt=function($t,xt){var It=$t,Ot;if(wt(yt,It)&&(Ot=yt[It],It="%"+Ot[0]+"%"),wt(pt,It)){var zt=pt[It];if(zt===ht&&(zt=gt(It)),typeof zt>"u"&&!xt)throw new rt("intrinsic "+$t+" exists, but is not available. Please file an issue!");return{alias:Ot,name:It,value:zt}}throw new et("intrinsic "+$t+" does not exist!")};return getIntrinsic=function($t,xt){if(typeof $t!="string"||$t.length===0)throw new rt("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof xt!="boolean")throw new rt('"allowMissing" argument must be a boolean');if(At(/^%?[^%]*%?$/,$t)===null)throw new et("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var It=Lt($t),Ot=It.length>0?It[0]:"",zt=jt("%"+Ot+"%",xt),Ut=zt.name,Wt=zt.value,Ft=!1,Nt=zt.alias;Nt&&(Ot=Nt[0],kt(It,vt([0,1],Nt)));for(var Ct=1,Ht=!0;Ct=It.length){var fn=ot(Wt,Jt);Ht=!!fn,Ht&&"get"in fn&&!("originalValue"in fn.get)?Wt=fn.get:Wt=Wt[Jt]}else Ht=wt(Wt,Jt),Wt=Wt[Jt];Ht&&!Ft&&(pt[Ut]=Wt)}}return Wt},getIntrinsic}var callBind$2={exports:{}},hasRequiredCallBind;function requireCallBind(){return hasRequiredCallBind||(hasRequiredCallBind=1,function(tt){var et=requireFunctionBind(),nt=requireGetIntrinsic(),rt=nt("%Function.prototype.apply%"),it=nt("%Function.prototype.call%"),ot=nt("%Reflect.apply%",!0)||et.call(it,rt),at=nt("%Object.getOwnPropertyDescriptor%",!0),st=nt("%Object.defineProperty%",!0),lt=nt("%Math.max%");if(st)try{st({},"a",{value:1})}catch{st=null}tt.exports=function(ht){var dt=ot(et,it,arguments);if(at&&st){var pt=at(dt,"length");pt.configurable&&st(dt,"length",{value:1+lt(0,ht.length-(arguments.length-1))})}return dt};var ct=function(){return ot(et,rt,arguments)};st?st(tt.exports,"apply",{value:ct}):tt.exports.apply=ct}(callBind$2)),callBind$2.exports}var GetIntrinsic$1=requireGetIntrinsic(),callBind$1=requireCallBind(),$indexOf$1=callBind$1(GetIntrinsic$1("String.prototype.indexOf")),callBound$2=function(et,nt){var rt=GetIntrinsic$1(et,!!nt);return typeof rt=="function"&&$indexOf$1(et,".prototype.")>-1?callBind$1(rt):rt},hasToStringTag$3=shams(),callBound$1=callBound$2,$toString$1=callBound$1("Object.prototype.toString"),isStandardArguments=function(et){return hasToStringTag$3&&et&&typeof et=="object"&&Symbol.toStringTag in et?!1:$toString$1(et)==="[object Arguments]"},isLegacyArguments=function(et){return isStandardArguments(et)?!0:et!==null&&typeof et=="object"&&typeof et.length=="number"&&et.length>=0&&$toString$1(et)!=="[object Array]"&&$toString$1(et.callee)==="[object Function]"},supportsStandardArguments=function(){return isStandardArguments(arguments)}();isStandardArguments.isLegacyArguments=isLegacyArguments;var isArguments$5=supportsStandardArguments?isStandardArguments:isLegacyArguments,toStr$2=Object.prototype.toString,fnToStr$1=Function.prototype.toString,isFnRegex=/^\s*(?:function)?\*/,hasToStringTag$2=shams(),getProto=Object.getPrototypeOf,getGeneratorFunc=function(){if(!hasToStringTag$2)return!1;try{return Function("return function*() {}")()}catch{}},GeneratorFunction,isGeneratorFunction=function(et){if(typeof et!="function")return!1;if(isFnRegex.test(fnToStr$1.call(et)))return!0;if(!hasToStringTag$2){var nt=toStr$2.call(et);return nt==="[object GeneratorFunction]"}if(!getProto)return!1;if(typeof GeneratorFunction>"u"){var rt=getGeneratorFunc();GeneratorFunction=rt?getProto(rt):!1}return getProto(et)===GeneratorFunction},fnToStr=Function.prototype.toString,reflectApply=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,badArrayLike,isCallableMarker;if(typeof reflectApply=="function"&&typeof Object.defineProperty=="function")try{badArrayLike=Object.defineProperty({},"length",{get:function(){throw isCallableMarker}}),isCallableMarker={},reflectApply(function(){throw 42},null,badArrayLike)}catch(tt){tt!==isCallableMarker&&(reflectApply=null)}else reflectApply=null;var constructorRegex=/^\s*class\b/,isES6ClassFn=function(et){try{var nt=fnToStr.call(et);return constructorRegex.test(nt)}catch{return!1}},tryFunctionObject=function(et){try{return isES6ClassFn(et)?!1:(fnToStr.call(et),!0)}catch{return!1}},toStr$1=Object.prototype.toString,objectClass="[object Object]",fnClass="[object Function]",genClass="[object GeneratorFunction]",ddaClass="[object HTMLAllCollection]",ddaClass2="[object HTML document.all class]",ddaClass3="[object HTMLCollection]",hasToStringTag$1=typeof Symbol=="function"&&!!Symbol.toStringTag,isIE68=!(0 in[,]),isDDA=function(){return!1};if(typeof document=="object"){var all=document.all;toStr$1.call(all)===toStr$1.call(document.all)&&(isDDA=function(et){if((isIE68||!et)&&(typeof et>"u"||typeof et=="object"))try{var nt=toStr$1.call(et);return(nt===ddaClass||nt===ddaClass2||nt===ddaClass3||nt===objectClass)&&et("")==null}catch{}return!1})}var isCallable$1=reflectApply?function(et){if(isDDA(et))return!0;if(!et||typeof et!="function"&&typeof et!="object")return!1;try{reflectApply(et,null,badArrayLike)}catch(nt){if(nt!==isCallableMarker)return!1}return!isES6ClassFn(et)&&tryFunctionObject(et)}:function(et){if(isDDA(et))return!0;if(!et||typeof et!="function"&&typeof et!="object")return!1;if(hasToStringTag$1)return tryFunctionObject(et);if(isES6ClassFn(et))return!1;var nt=toStr$1.call(et);return nt!==fnClass&&nt!==genClass&&!/^\[object HTML/.test(nt)?!1:tryFunctionObject(et)},isCallable=isCallable$1,toStr=Object.prototype.toString,hasOwnProperty$d=Object.prototype.hasOwnProperty,forEachArray=function(et,nt,rt){for(var it=0,ot=et.length;it=3&&(it=rt),toStr.call(et)==="[object Array]"?forEachArray(et,nt,it):typeof et=="string"?forEachString(et,nt,it):forEachObject(et,nt,it)},forEach_1=forEach$1,possibleNames=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],g$3=typeof globalThis>"u"?commonjsGlobal:globalThis,availableTypedArrays$1=function(){for(var et=[],nt=0;nt"u"?commonjsGlobal:globalThis,typedArrays=availableTypedArrays(),$slice=callBound("String.prototype.slice"),getPrototypeOf=Object.getPrototypeOf,$indexOf=callBound("Array.prototype.indexOf",!0)||function(et,nt){for(var rt=0;rt-1?nt:nt!=="Object"?!1:trySlices(et)}return gOPD?tryTypedArrays(et):null},whichTypedArray=whichTypedArray$1,isTypedArray$5=function(et){return!!whichTypedArray(et)};(function(tt){var et=isArguments$5,nt=isGeneratorFunction,rt=whichTypedArray$1,it=isTypedArray$5;function ot(gn){return gn.call.bind(gn)}var at=typeof BigInt<"u",st=typeof Symbol<"u",lt=ot(Object.prototype.toString),ct=ot(Number.prototype.valueOf),ut=ot(String.prototype.valueOf),ht=ot(Boolean.prototype.valueOf);if(at)var dt=ot(BigInt.prototype.valueOf);if(st)var pt=ot(Symbol.prototype.valueOf);function mt(gn,Cn){if(typeof gn!="object")return!1;try{return Cn(gn),!0}catch{return!1}}tt.isArgumentsObject=et,tt.isGeneratorFunction=nt,tt.isTypedArray=it;function gt(gn){return typeof Promise<"u"&&gn instanceof Promise||gn!==null&&typeof gn=="object"&&typeof gn.then=="function"&&typeof gn.catch=="function"}tt.isPromise=gt;function yt(gn){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(gn):it(gn)||Ht(gn)}tt.isArrayBufferView=yt;function bt(gn){return rt(gn)==="Uint8Array"}tt.isUint8Array=bt;function wt(gn){return rt(gn)==="Uint8ClampedArray"}tt.isUint8ClampedArray=wt;function vt(gn){return rt(gn)==="Uint16Array"}tt.isUint16Array=vt;function kt(gn){return rt(gn)==="Uint32Array"}tt.isUint32Array=kt;function St(gn){return rt(gn)==="Int8Array"}tt.isInt8Array=St;function Et(gn){return rt(gn)==="Int16Array"}tt.isInt16Array=Et;function At(gn){return rt(gn)==="Int32Array"}tt.isInt32Array=At;function Tt(gn){return rt(gn)==="Float32Array"}tt.isFloat32Array=Tt;function Mt(gn){return rt(gn)==="Float64Array"}tt.isFloat64Array=Mt;function Lt(gn){return rt(gn)==="BigInt64Array"}tt.isBigInt64Array=Lt;function jt(gn){return rt(gn)==="BigUint64Array"}tt.isBigUint64Array=jt;function Rt(gn){return lt(gn)==="[object Map]"}Rt.working=typeof Map<"u"&&Rt(new Map);function $t(gn){return typeof Map>"u"?!1:Rt.working?Rt(gn):gn instanceof Map}tt.isMap=$t;function xt(gn){return lt(gn)==="[object Set]"}xt.working=typeof Set<"u"&&xt(new Set);function It(gn){return typeof Set>"u"?!1:xt.working?xt(gn):gn instanceof Set}tt.isSet=It;function Ot(gn){return lt(gn)==="[object WeakMap]"}Ot.working=typeof WeakMap<"u"&&Ot(new WeakMap);function zt(gn){return typeof WeakMap>"u"?!1:Ot.working?Ot(gn):gn instanceof WeakMap}tt.isWeakMap=zt;function Ut(gn){return lt(gn)==="[object WeakSet]"}Ut.working=typeof WeakSet<"u"&&Ut(new WeakSet);function Wt(gn){return Ut(gn)}tt.isWeakSet=Wt;function Ft(gn){return lt(gn)==="[object ArrayBuffer]"}Ft.working=typeof ArrayBuffer<"u"&&Ft(new ArrayBuffer);function Nt(gn){return typeof ArrayBuffer>"u"?!1:Ft.working?Ft(gn):gn instanceof ArrayBuffer}tt.isArrayBuffer=Nt;function Ct(gn){return lt(gn)==="[object DataView]"}Ct.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&Ct(new DataView(new ArrayBuffer(1),0,1));function Ht(gn){return typeof DataView>"u"?!1:Ct.working?Ct(gn):gn instanceof DataView}tt.isDataView=Ht;var Jt=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function nn(gn){return lt(gn)==="[object SharedArrayBuffer]"}function Yt(gn){return typeof Jt>"u"?!1:(typeof nn.working>"u"&&(nn.working=nn(new Jt)),nn.working?nn(gn):gn instanceof Jt)}tt.isSharedArrayBuffer=Yt;function fn(gn){return lt(gn)==="[object AsyncFunction]"}tt.isAsyncFunction=fn;function cn(gn){return lt(gn)==="[object Map Iterator]"}tt.isMapIterator=cn;function _n(gn){return lt(gn)==="[object Set Iterator]"}tt.isSetIterator=_n;function En(gn){return lt(gn)==="[object Generator]"}tt.isGeneratorObject=En;function an(gn){return lt(gn)==="[object WebAssembly.Module]"}tt.isWebAssemblyCompiledModule=an;function en(gn){return mt(gn,ct)}tt.isNumberObject=en;function Tn(gn){return mt(gn,ut)}tt.isStringObject=Tn;function Rn(gn){return mt(gn,ht)}tt.isBooleanObject=Rn;function An(gn){return at&&mt(gn,dt)}tt.isBigIntObject=An;function yn(gn){return st&&mt(gn,pt)}tt.isSymbolObject=yn;function kn(gn){return en(gn)||Tn(gn)||Rn(gn)||An(gn)||yn(gn)}tt.isBoxedPrimitive=kn;function dn(gn){return typeof Uint8Array<"u"&&(Nt(gn)||Yt(gn))}tt.isAnyArrayBuffer=dn,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(gn){Object.defineProperty(tt,gn,{enumerable:!1,value:function(){throw new Error(gn+" is not supported in userland")}})})})(types$7);var isBufferBrowser=function(et){return et&&typeof et=="object"&&typeof et.copy=="function"&&typeof et.fill=="function"&&typeof et.readUInt8=="function"},inherits_browser={exports:{}};typeof Object.create=="function"?inherits_browser.exports=function(et,nt){nt&&(et.super_=nt,et.prototype=Object.create(nt.prototype,{constructor:{value:et,enumerable:!1,writable:!0,configurable:!0}}))}:inherits_browser.exports=function(et,nt){if(nt){et.super_=nt;var rt=function(){};rt.prototype=nt.prototype,et.prototype=new rt,et.prototype.constructor=et}};var inherits_browserExports=inherits_browser.exports;(function(tt){var et=Object.getOwnPropertyDescriptors||function(Ht){for(var Jt=Object.keys(Ht),nn={},Yt=0;Yt=Yt)return _n;switch(_n){case"%s":return String(nn[Jt++]);case"%d":return Number(nn[Jt++]);case"%j":try{return JSON.stringify(nn[Jt++])}catch{return"[Circular]"}default:return _n}}),cn=nn[Jt];Jt"u")return function(){return tt.deprecate(Ct,Ht).apply(this,arguments)};var Jt=!1;function nn(){if(!Jt){if(process.throwDeprecation)throw new Error(Ht);process.traceDeprecation?console.trace(Ht):console.error(Ht),Jt=!0}return Ct.apply(this,arguments)}return nn};var rt={},it=/^$/;if({}.NODE_DEBUG){var ot={}.NODE_DEBUG;ot=ot.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),it=new RegExp("^"+ot+"$","i")}tt.debuglog=function(Ct){if(Ct=Ct.toUpperCase(),!rt[Ct])if(it.test(Ct)){var Ht=process.pid;rt[Ct]=function(){var Jt=tt.format.apply(tt,arguments);console.error("%s %d: %s",Ct,Ht,Jt)}}else rt[Ct]=function(){};return rt[Ct]};function at(Ct,Ht){var Jt={seen:[],stylize:lt};return arguments.length>=3&&(Jt.depth=arguments[2]),arguments.length>=4&&(Jt.colors=arguments[3]),bt(Ht)?Jt.showHidden=Ht:Ht&&tt._extend(Jt,Ht),At(Jt.showHidden)&&(Jt.showHidden=!1),At(Jt.depth)&&(Jt.depth=2),At(Jt.colors)&&(Jt.colors=!1),At(Jt.customInspect)&&(Jt.customInspect=!0),Jt.colors&&(Jt.stylize=st),ut(Jt,Ct,Jt.depth)}tt.inspect=at,at.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},at.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function st(Ct,Ht){var Jt=at.styles[Ht];return Jt?"\x1B["+at.colors[Jt][0]+"m"+Ct+"\x1B["+at.colors[Jt][1]+"m":Ct}function lt(Ct,Ht){return Ct}function ct(Ct){var Ht={};return Ct.forEach(function(Jt,nn){Ht[Jt]=!0}),Ht}function ut(Ct,Ht,Jt){if(Ct.customInspect&&Ht&&Rt(Ht.inspect)&&Ht.inspect!==tt.inspect&&!(Ht.constructor&&Ht.constructor.prototype===Ht)){var nn=Ht.inspect(Jt,Ct);return St(nn)||(nn=ut(Ct,nn,Jt)),nn}var Yt=ht(Ct,Ht);if(Yt)return Yt;var fn=Object.keys(Ht),cn=ct(fn);if(Ct.showHidden&&(fn=Object.getOwnPropertyNames(Ht)),jt(Ht)&&(fn.indexOf("message")>=0||fn.indexOf("description")>=0))return dt(Ht);if(fn.length===0){if(Rt(Ht)){var _n=Ht.name?": "+Ht.name:"";return Ct.stylize("[Function"+_n+"]","special")}if(Tt(Ht))return Ct.stylize(RegExp.prototype.toString.call(Ht),"regexp");if(Lt(Ht))return Ct.stylize(Date.prototype.toString.call(Ht),"date");if(jt(Ht))return dt(Ht)}var En="",an=!1,en=["{","}"];if(yt(Ht)&&(an=!0,en=["[","]"]),Rt(Ht)){var Tn=Ht.name?": "+Ht.name:"";En=" [Function"+Tn+"]"}if(Tt(Ht)&&(En=" "+RegExp.prototype.toString.call(Ht)),Lt(Ht)&&(En=" "+Date.prototype.toUTCString.call(Ht)),jt(Ht)&&(En=" "+dt(Ht)),fn.length===0&&(!an||Ht.length==0))return en[0]+En+en[1];if(Jt<0)return Tt(Ht)?Ct.stylize(RegExp.prototype.toString.call(Ht),"regexp"):Ct.stylize("[Object]","special");Ct.seen.push(Ht);var Rn;return an?Rn=pt(Ct,Ht,Jt,cn,fn):Rn=fn.map(function(An){return mt(Ct,Ht,Jt,cn,An,an)}),Ct.seen.pop(),gt(Rn,En,en)}function ht(Ct,Ht){if(At(Ht))return Ct.stylize("undefined","undefined");if(St(Ht)){var Jt="'"+JSON.stringify(Ht).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return Ct.stylize(Jt,"string")}if(kt(Ht))return Ct.stylize(""+Ht,"number");if(bt(Ht))return Ct.stylize(""+Ht,"boolean");if(wt(Ht))return Ct.stylize("null","null")}function dt(Ct){return"["+Error.prototype.toString.call(Ct)+"]"}function pt(Ct,Ht,Jt,nn,Yt){for(var fn=[],cn=0,_n=Ht.length;cn<_n;++cn)Ut(Ht,String(cn))?fn.push(mt(Ct,Ht,Jt,nn,String(cn),!0)):fn.push("");return Yt.forEach(function(En){En.match(/^\d+$/)||fn.push(mt(Ct,Ht,Jt,nn,En,!0))}),fn}function mt(Ct,Ht,Jt,nn,Yt,fn){var cn,_n,En;if(En=Object.getOwnPropertyDescriptor(Ht,Yt)||{value:Ht[Yt]},En.get?En.set?_n=Ct.stylize("[Getter/Setter]","special"):_n=Ct.stylize("[Getter]","special"):En.set&&(_n=Ct.stylize("[Setter]","special")),Ut(nn,Yt)||(cn="["+Yt+"]"),_n||(Ct.seen.indexOf(En.value)<0?(wt(Jt)?_n=ut(Ct,En.value,null):_n=ut(Ct,En.value,Jt-1),_n.indexOf(` `)>-1&&(fn?_n=_n.split(` `).map(function(an){return" "+an}).join(` `).slice(2):_n=` @@ -435,7 +435,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho `))):_n=Ct.stylize("[Circular]","special")),At(cn)){if(fn&&Yt.match(/^\d+$/))return _n;cn=JSON.stringify(""+Yt),cn.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(cn=cn.slice(1,-1),cn=Ct.stylize(cn,"name")):(cn=cn.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),cn=Ct.stylize(cn,"string"))}return cn+": "+_n}function gt(Ct,Ht,Jt){var nn=Ct.reduce(function(Yt,fn){return fn.indexOf(` `)>=0,Yt+fn.replace(/\u001b\[\d\d?m/g,"").length+1},0);return nn>60?Jt[0]+(Ht===""?"":Ht+` `)+" "+Ct.join(`, - `)+" "+Jt[1]:Jt[0]+Ht+" "+Ct.join(", ")+" "+Jt[1]}tt.types=types$7;function yt(Ct){return Array.isArray(Ct)}tt.isArray=yt;function bt(Ct){return typeof Ct=="boolean"}tt.isBoolean=bt;function wt(Ct){return Ct===null}tt.isNull=wt;function vt(Ct){return Ct==null}tt.isNullOrUndefined=vt;function kt(Ct){return typeof Ct=="number"}tt.isNumber=kt;function St(Ct){return typeof Ct=="string"}tt.isString=St;function Tt(Ct){return typeof Ct=="symbol"}tt.isSymbol=Tt;function At(Ct){return Ct===void 0}tt.isUndefined=At;function Et(Ct){return Mt(Ct)&&xt(Ct)==="[object RegExp]"}tt.isRegExp=Et,tt.types.isRegExp=Et;function Mt(Ct){return typeof Ct=="object"&&Ct!==null}tt.isObject=Mt;function Lt(Ct){return Mt(Ct)&&xt(Ct)==="[object Date]"}tt.isDate=Lt,tt.types.isDate=Lt;function jt(Ct){return Mt(Ct)&&(xt(Ct)==="[object Error]"||Ct instanceof Error)}tt.isError=jt,tt.types.isNativeError=jt;function Rt(Ct){return typeof Ct=="function"}tt.isFunction=Rt;function $t(Ct){return Ct===null||typeof Ct=="boolean"||typeof Ct=="number"||typeof Ct=="string"||typeof Ct=="symbol"||typeof Ct>"u"}tt.isPrimitive=$t,tt.isBuffer=isBufferBrowser;function xt(Ct){return Object.prototype.toString.call(Ct)}function It(Ct){return Ct<10?"0"+Ct.toString(10):Ct.toString(10)}var Ot=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function zt(){var Ct=new Date,Ht=[It(Ct.getHours()),It(Ct.getMinutes()),It(Ct.getSeconds())].join(":");return[Ct.getDate(),Ot[Ct.getMonth()],Ht].join(" ")}tt.log=function(){console.log("%s - %s",zt(),tt.format.apply(tt,arguments))},tt.inherits=inherits_browserExports,tt._extend=function(Ct,Ht){if(!Ht||!Mt(Ht))return Ct;for(var Jt=Object.keys(Ht),nn=Jt.length;nn--;)Ct[Jt[nn]]=Ht[Jt[nn]];return Ct};function Ut(Ct,Ht){return Object.prototype.hasOwnProperty.call(Ct,Ht)}var Wt=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;tt.promisify=function(Ht){if(typeof Ht!="function")throw new TypeError('The "original" argument must be of type Function');if(Wt&&Ht[Wt]){var Jt=Ht[Wt];if(typeof Jt!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(Jt,Wt,{value:Jt,enumerable:!1,writable:!1,configurable:!0}),Jt}function Jt(){for(var nn,Yt,fn=new Promise(function(En,an){nn=En,Yt=an}),cn=[],_n=0;_n2?"one of ".concat(yt," ").concat(gt.slice(0,bt-1).join(", "),", or ")+gt[bt-1]:bt===2?"one of ".concat(yt," ").concat(gt[0]," or ").concat(gt[1]):"of ".concat(yt," ").concat(gt[0])}else return"of ".concat(yt," ").concat(String(gt))}function dt(gt,yt,bt){return gt.substr(!bt||bt<0?0:+bt,yt.length)===yt}function pt(gt,yt,bt){return(bt===void 0||bt>gt.length)&&(bt=gt.length),gt.substring(bt-yt.length,bt)===yt}function mt(gt,yt,bt){return typeof bt!="number"&&(bt=0),bt+yt.length>gt.length?!1:gt.indexOf(yt,bt)!==-1}return ut("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),ut("ERR_INVALID_ARG_TYPE",function(gt,yt,bt){lt===void 0&&(lt=requireAssert()),lt(typeof gt=="string","'name' must be a string");var wt;typeof yt=="string"&&dt(yt,"not ")?(wt="must not be",yt=yt.replace(/^not /,"")):wt="must be";var vt;if(pt(gt," argument"))vt="The ".concat(gt," ").concat(wt," ").concat(ht(yt,"type"));else{var kt=mt(gt,".")?"property":"argument";vt='The "'.concat(gt,'" ').concat(kt," ").concat(wt," ").concat(ht(yt,"type"))}return vt+=". Received type ".concat(tt(bt)),vt},TypeError),ut("ERR_INVALID_ARG_VALUE",function(gt,yt){var bt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"is invalid";ct===void 0&&(ct=util$1);var wt=ct.inspect(yt);return wt.length>128&&(wt="".concat(wt.slice(0,128),"...")),"The argument '".concat(gt,"' ").concat(bt,". Received ").concat(wt)},TypeError),ut("ERR_INVALID_RETURN_VALUE",function(gt,yt,bt){var wt;return bt&&bt.constructor&&bt.constructor.name?wt="instance of ".concat(bt.constructor.name):wt="type ".concat(tt(bt)),"Expected ".concat(gt,' to be returned from the "').concat(yt,'"')+" function but got ".concat(wt,".")},TypeError),ut("ERR_MISSING_ARGS",function(){for(var gt=arguments.length,yt=new Array(gt),bt=0;bt0,"At least one arg needs to be specified");var wt="The ",vt=yt.length;switch(yt=yt.map(function(kt){return'"'.concat(kt,'"')}),vt){case 1:wt+="".concat(yt[0]," argument");break;case 2:wt+="".concat(yt[0]," and ").concat(yt[1]," arguments");break;default:wt+=yt.slice(0,vt-1).join(", "),wt+=", and ".concat(yt[vt-1]," arguments");break}return"".concat(wt," must be specified")},TypeError),errors$2.codes=st,errors$2}var assertion_error,hasRequiredAssertion_error;function requireAssertion_error(){if(hasRequiredAssertion_error)return assertion_error;hasRequiredAssertion_error=1;function tt(It){for(var Ot=1;Ot"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function ut(It,Ot,zt){return ct()?ut=Reflect.construct:ut=function(Wt,Ft,Nt){var Ct=[null];Ct.push.apply(Ct,Ft);var Ht=Function.bind.apply(Wt,Ct),Jt=new Ht;return Nt&&dt(Jt,Nt.prototype),Jt},ut.apply(null,arguments)}function ht(It){return Function.toString.call(It).indexOf("[native code]")!==-1}function dt(It,Ot){return dt=Object.setPrototypeOf||function(Ut,Wt){return Ut.__proto__=Wt,Ut},dt(It,Ot)}function pt(It){return pt=Object.setPrototypeOf?Object.getPrototypeOf:function(zt){return zt.__proto__||Object.getPrototypeOf(zt)},pt(It)}function mt(It){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?mt=function(zt){return typeof zt}:mt=function(zt){return zt&&typeof Symbol=="function"&&zt.constructor===Symbol&&zt!==Symbol.prototype?"symbol":typeof zt},mt(It)}var gt=util$1,yt=gt.inspect,bt=requireErrors(),wt=bt.codes.ERR_INVALID_ARG_TYPE;function vt(It,Ot,zt){return(zt===void 0||zt>It.length)&&(zt=It.length),It.substring(zt-Ot.length,zt)===Ot}function kt(It,Ot){if(Ot=Math.floor(Ot),It.length==0||Ot==0)return"";var zt=It.length*Ot;for(Ot=Math.floor(Math.log(Ot)/Math.log(2));Ot;)It+=It,Ot--;return It+=It.substring(0,zt-It.length),It}var St="",Tt="",At="",Et="",Mt={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},Lt=10;function jt(It){var Ot=Object.keys(It),zt=Object.create(Object.getPrototypeOf(It));return Ot.forEach(function(Ut){zt[Ut]=It[Ut]}),Object.defineProperty(zt,"message",{value:It.message}),zt}function Rt(It){return yt(It,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function $t(It,Ot,zt){var Ut="",Wt="",Ft=0,Nt="",Ct=!1,Ht=Rt(It),Jt=Ht.split(` + `)+" "+Jt[1]:Jt[0]+Ht+" "+Ct.join(", ")+" "+Jt[1]}tt.types=types$7;function yt(Ct){return Array.isArray(Ct)}tt.isArray=yt;function bt(Ct){return typeof Ct=="boolean"}tt.isBoolean=bt;function wt(Ct){return Ct===null}tt.isNull=wt;function vt(Ct){return Ct==null}tt.isNullOrUndefined=vt;function kt(Ct){return typeof Ct=="number"}tt.isNumber=kt;function St(Ct){return typeof Ct=="string"}tt.isString=St;function Et(Ct){return typeof Ct=="symbol"}tt.isSymbol=Et;function At(Ct){return Ct===void 0}tt.isUndefined=At;function Tt(Ct){return Mt(Ct)&&xt(Ct)==="[object RegExp]"}tt.isRegExp=Tt,tt.types.isRegExp=Tt;function Mt(Ct){return typeof Ct=="object"&&Ct!==null}tt.isObject=Mt;function Lt(Ct){return Mt(Ct)&&xt(Ct)==="[object Date]"}tt.isDate=Lt,tt.types.isDate=Lt;function jt(Ct){return Mt(Ct)&&(xt(Ct)==="[object Error]"||Ct instanceof Error)}tt.isError=jt,tt.types.isNativeError=jt;function Rt(Ct){return typeof Ct=="function"}tt.isFunction=Rt;function $t(Ct){return Ct===null||typeof Ct=="boolean"||typeof Ct=="number"||typeof Ct=="string"||typeof Ct=="symbol"||typeof Ct>"u"}tt.isPrimitive=$t,tt.isBuffer=isBufferBrowser;function xt(Ct){return Object.prototype.toString.call(Ct)}function It(Ct){return Ct<10?"0"+Ct.toString(10):Ct.toString(10)}var Ot=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function zt(){var Ct=new Date,Ht=[It(Ct.getHours()),It(Ct.getMinutes()),It(Ct.getSeconds())].join(":");return[Ct.getDate(),Ot[Ct.getMonth()],Ht].join(" ")}tt.log=function(){console.log("%s - %s",zt(),tt.format.apply(tt,arguments))},tt.inherits=inherits_browserExports,tt._extend=function(Ct,Ht){if(!Ht||!Mt(Ht))return Ct;for(var Jt=Object.keys(Ht),nn=Jt.length;nn--;)Ct[Jt[nn]]=Ht[Jt[nn]];return Ct};function Ut(Ct,Ht){return Object.prototype.hasOwnProperty.call(Ct,Ht)}var Wt=typeof Symbol<"u"?Symbol("util.promisify.custom"):void 0;tt.promisify=function(Ht){if(typeof Ht!="function")throw new TypeError('The "original" argument must be of type Function');if(Wt&&Ht[Wt]){var Jt=Ht[Wt];if(typeof Jt!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(Jt,Wt,{value:Jt,enumerable:!1,writable:!1,configurable:!0}),Jt}function Jt(){for(var nn,Yt,fn=new Promise(function(En,an){nn=En,Yt=an}),cn=[],_n=0;_n2?"one of ".concat(yt," ").concat(gt.slice(0,bt-1).join(", "),", or ")+gt[bt-1]:bt===2?"one of ".concat(yt," ").concat(gt[0]," or ").concat(gt[1]):"of ".concat(yt," ").concat(gt[0])}else return"of ".concat(yt," ").concat(String(gt))}function dt(gt,yt,bt){return gt.substr(!bt||bt<0?0:+bt,yt.length)===yt}function pt(gt,yt,bt){return(bt===void 0||bt>gt.length)&&(bt=gt.length),gt.substring(bt-yt.length,bt)===yt}function mt(gt,yt,bt){return typeof bt!="number"&&(bt=0),bt+yt.length>gt.length?!1:gt.indexOf(yt,bt)!==-1}return ut("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),ut("ERR_INVALID_ARG_TYPE",function(gt,yt,bt){lt===void 0&&(lt=requireAssert()),lt(typeof gt=="string","'name' must be a string");var wt;typeof yt=="string"&&dt(yt,"not ")?(wt="must not be",yt=yt.replace(/^not /,"")):wt="must be";var vt;if(pt(gt," argument"))vt="The ".concat(gt," ").concat(wt," ").concat(ht(yt,"type"));else{var kt=mt(gt,".")?"property":"argument";vt='The "'.concat(gt,'" ').concat(kt," ").concat(wt," ").concat(ht(yt,"type"))}return vt+=". Received type ".concat(tt(bt)),vt},TypeError),ut("ERR_INVALID_ARG_VALUE",function(gt,yt){var bt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"is invalid";ct===void 0&&(ct=util$1);var wt=ct.inspect(yt);return wt.length>128&&(wt="".concat(wt.slice(0,128),"...")),"The argument '".concat(gt,"' ").concat(bt,". Received ").concat(wt)},TypeError),ut("ERR_INVALID_RETURN_VALUE",function(gt,yt,bt){var wt;return bt&&bt.constructor&&bt.constructor.name?wt="instance of ".concat(bt.constructor.name):wt="type ".concat(tt(bt)),"Expected ".concat(gt,' to be returned from the "').concat(yt,'"')+" function but got ".concat(wt,".")},TypeError),ut("ERR_MISSING_ARGS",function(){for(var gt=arguments.length,yt=new Array(gt),bt=0;bt0,"At least one arg needs to be specified");var wt="The ",vt=yt.length;switch(yt=yt.map(function(kt){return'"'.concat(kt,'"')}),vt){case 1:wt+="".concat(yt[0]," argument");break;case 2:wt+="".concat(yt[0]," and ").concat(yt[1]," arguments");break;default:wt+=yt.slice(0,vt-1).join(", "),wt+=", and ".concat(yt[vt-1]," arguments");break}return"".concat(wt," must be specified")},TypeError),errors$2.codes=st,errors$2}var assertion_error,hasRequiredAssertion_error;function requireAssertion_error(){if(hasRequiredAssertion_error)return assertion_error;hasRequiredAssertion_error=1;function tt(It){for(var Ot=1;Ot"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function ut(It,Ot,zt){return ct()?ut=Reflect.construct:ut=function(Wt,Ft,Nt){var Ct=[null];Ct.push.apply(Ct,Ft);var Ht=Function.bind.apply(Wt,Ct),Jt=new Ht;return Nt&&dt(Jt,Nt.prototype),Jt},ut.apply(null,arguments)}function ht(It){return Function.toString.call(It).indexOf("[native code]")!==-1}function dt(It,Ot){return dt=Object.setPrototypeOf||function(Ut,Wt){return Ut.__proto__=Wt,Ut},dt(It,Ot)}function pt(It){return pt=Object.setPrototypeOf?Object.getPrototypeOf:function(zt){return zt.__proto__||Object.getPrototypeOf(zt)},pt(It)}function mt(It){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?mt=function(zt){return typeof zt}:mt=function(zt){return zt&&typeof Symbol=="function"&&zt.constructor===Symbol&&zt!==Symbol.prototype?"symbol":typeof zt},mt(It)}var gt=util$1,yt=gt.inspect,bt=requireErrors(),wt=bt.codes.ERR_INVALID_ARG_TYPE;function vt(It,Ot,zt){return(zt===void 0||zt>It.length)&&(zt=It.length),It.substring(zt-Ot.length,zt)===Ot}function kt(It,Ot){if(Ot=Math.floor(Ot),It.length==0||Ot==0)return"";var zt=It.length*Ot;for(Ot=Math.floor(Math.log(Ot)/Math.log(2));Ot;)It+=It,Ot--;return It+=It.substring(0,zt-It.length),It}var St="",Et="",At="",Tt="",Mt={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},Lt=10;function jt(It){var Ot=Object.keys(It),zt=Object.create(Object.getPrototypeOf(It));return Ot.forEach(function(Ut){zt[Ut]=It[Ut]}),Object.defineProperty(zt,"message",{value:It.message}),zt}function Rt(It){return yt(It,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function $t(It,Ot,zt){var Ut="",Wt="",Ft=0,Nt="",Ct=!1,Ht=Rt(It),Jt=Ht.split(` `),nn=Rt(Ot).split(` `),Yt=0,fn="";if(zt==="strictEqual"&&mt(It)==="object"&&mt(Ot)==="object"&&It!==null&&Ot!==null&&(zt="strictEqualObject"),Jt.length===1&&nn.length===1&&Jt[0]!==nn[0]){var cn=Jt[0].length+nn[0].length;if(cn<=Lt){if((mt(It)!=="object"||It===null)&&(mt(Ot)!=="object"||Ot===null)&&(It!==0||Ot!==0))return"".concat(Mt[zt],` @@ -443,33 +443,33 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho `)}else if(zt!=="strictEqualObject"){var _n=process.stderr&&process.stderr.isTTY?process.stderr.columns:80;if(cn<_n){for(;Jt[0][Yt]===nn[0][Yt];)Yt++;Yt>2&&(fn=` `.concat(kt(" ",Yt),"^"),Yt=0)}}}for(var En=Jt[Jt.length-1],an=nn[nn.length-1];En===an&&(Yt++<2?Nt=` `.concat(En).concat(Nt):Ut=En,Jt.pop(),nn.pop(),!(Jt.length===0||nn.length===0));)En=Jt[Jt.length-1],an=nn[nn.length-1];var en=Math.max(Jt.length,nn.length);if(en===0){var Tn=Ht.split(` -`);if(Tn.length>30)for(Tn[26]="".concat(St,"...").concat(Et);Tn.length>27;)Tn.pop();return"".concat(Mt.notIdentical,` +`);if(Tn.length>30)for(Tn[26]="".concat(St,"...").concat(Tt);Tn.length>27;)Tn.pop();return"".concat(Mt.notIdentical,` `).concat(Tn.join(` `),` `)}Yt>3&&(Nt=` -`.concat(St,"...").concat(Et).concat(Nt),Ct=!0),Ut!==""&&(Nt=` +`.concat(St,"...").concat(Tt).concat(Nt),Ct=!0),Ut!==""&&(Nt=` `.concat(Ut).concat(Nt),Ut="");var Rn=0,An=Mt[zt]+` -`.concat(Tt,"+ actual").concat(Et," ").concat(At,"- expected").concat(Et),yn=" ".concat(St,"...").concat(Et," Lines skipped");for(Yt=0;Yt1&&Yt>2&&(kn>4?(Wt+=` -`.concat(St,"...").concat(Et),Ct=!0):kn>3&&(Wt+=` +`.concat(Et,"+ actual").concat(Tt," ").concat(At,"- expected").concat(Tt),yn=" ".concat(St,"...").concat(Tt," Lines skipped");for(Yt=0;Yt1&&Yt>2&&(kn>4?(Wt+=` +`.concat(St,"...").concat(Tt),Ct=!0):kn>3&&(Wt+=` `.concat(nn[Yt-2]),Rn++),Wt+=` `.concat(nn[Yt-1]),Rn++),Ft=Yt,Ut+=` -`.concat(At,"-").concat(Et," ").concat(nn[Yt]),Rn++;else if(nn.length1&&Yt>2&&(kn>4?(Wt+=` -`.concat(St,"...").concat(Et),Ct=!0):kn>3&&(Wt+=` +`.concat(At,"-").concat(Tt," ").concat(nn[Yt]),Rn++;else if(nn.length1&&Yt>2&&(kn>4?(Wt+=` +`.concat(St,"...").concat(Tt),Ct=!0):kn>3&&(Wt+=` `.concat(Jt[Yt-2]),Rn++),Wt+=` `.concat(Jt[Yt-1]),Rn++),Ft=Yt,Wt+=` -`.concat(Tt,"+").concat(Et," ").concat(Jt[Yt]),Rn++;else{var dn=nn[Yt],gn=Jt[Yt],Cn=gn!==dn&&(!vt(gn,",")||gn.slice(0,-1)!==dn);Cn&&vt(dn,",")&&dn.slice(0,-1)===gn&&(Cn=!1,gn+=","),Cn?(kn>1&&Yt>2&&(kn>4?(Wt+=` -`.concat(St,"...").concat(Et),Ct=!0):kn>3&&(Wt+=` +`.concat(Et,"+").concat(Tt," ").concat(Jt[Yt]),Rn++;else{var dn=nn[Yt],gn=Jt[Yt],Cn=gn!==dn&&(!vt(gn,",")||gn.slice(0,-1)!==dn);Cn&&vt(dn,",")&&dn.slice(0,-1)===gn&&(Cn=!1,gn+=","),Cn?(kn>1&&Yt>2&&(kn>4?(Wt+=` +`.concat(St,"...").concat(Tt),Ct=!0):kn>3&&(Wt+=` `.concat(Jt[Yt-2]),Rn++),Wt+=` `.concat(Jt[Yt-1]),Rn++),Ft=Yt,Wt+=` -`.concat(Tt,"+").concat(Et," ").concat(gn),Ut+=` -`.concat(At,"-").concat(Et," ").concat(dn),Rn+=2):(Wt+=Ut,Ut="",(kn===1||Yt===0)&&(Wt+=` +`.concat(Et,"+").concat(Tt," ").concat(gn),Ut+=` +`.concat(At,"-").concat(Tt," ").concat(dn),Rn+=2):(Wt+=Ut,Ut="",(kn===1||Yt===0)&&(Wt+=` `.concat(gn),Rn++))}if(Rn>20&&Yt30)for(Yt[26]="".concat(St,"...").concat(Et);Yt.length>27;)Yt.pop();Yt.length===1?Ut=ot(this,pt(Ot).call(this,"".concat(nn," ").concat(Yt[0]))):Ut=ot(this,pt(Ot).call(this,"".concat(nn,` +`).concat(St,"...").concat(Tt).concat(Ut,` +`)+"".concat(St,"...").concat(Tt)}return"".concat(An).concat(Ct?yn:"",` +`).concat(Wt).concat(Ut).concat(Nt).concat(fn)}var xt=function(It){st(Ot,It);function Ot(zt){var Ut;if(nt(this,Ot),mt(zt)!=="object"||zt===null)throw new wt("options","Object",zt);var Wt=zt.message,Ft=zt.operator,Nt=zt.stackStartFn,Ct=zt.actual,Ht=zt.expected,Jt=Error.stackTraceLimit;if(Error.stackTraceLimit=0,Wt!=null)Ut=ot(this,pt(Ot).call(this,String(Wt)));else if(process.stderr&&process.stderr.isTTY&&(process.stderr&&process.stderr.getColorDepth&&process.stderr.getColorDepth()!==1?(St="\x1B[34m",Et="\x1B[32m",Tt="\x1B[39m",At="\x1B[31m"):(St="",Et="",Tt="",At="")),mt(Ct)==="object"&&Ct!==null&&mt(Ht)==="object"&&Ht!==null&&"stack"in Ct&&Ct instanceof Error&&"stack"in Ht&&Ht instanceof Error&&(Ct=jt(Ct),Ht=jt(Ht)),Ft==="deepStrictEqual"||Ft==="strictEqual")Ut=ot(this,pt(Ot).call(this,$t(Ct,Ht,Ft)));else if(Ft==="notDeepStrictEqual"||Ft==="notStrictEqual"){var nn=Mt[Ft],Yt=Rt(Ct).split(` +`);if(Ft==="notStrictEqual"&&mt(Ct)==="object"&&Ct!==null&&(nn=Mt.notStrictEqualObject),Yt.length>30)for(Yt[26]="".concat(St,"...").concat(Tt);Yt.length>27;)Yt.pop();Yt.length===1?Ut=ot(this,pt(Ot).call(this,"".concat(nn," ").concat(Yt[0]))):Ut=ot(this,pt(Ot).call(this,"".concat(nn,` `).concat(Yt.join(` `),` @@ -481,12 +481,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho should equal -`):cn=" ".concat(Ft," ").concat(cn)),Ut=ot(this,pt(Ot).call(this,"".concat(fn).concat(cn)))}return Error.stackTraceLimit=Jt,Ut.generatedMessage=!Wt,Object.defineProperty(at(Ut),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),Ut.code="ERR_ASSERTION",Ut.actual=Ct,Ut.expected=Ht,Ut.operator=Ft,Error.captureStackTrace&&Error.captureStackTrace(at(Ut),Nt),Ut.stack,Ut.name="AssertionError",ot(Ut)}return it(Ot,[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:yt.custom,value:function(Ut,Wt){return yt(this,tt({},Wt,{customInspect:!1,depth:0}))}}]),Ot}(lt(Error));return assertion_error=xt,assertion_error}var es6ObjectAssign,hasRequiredEs6ObjectAssign;function requireEs6ObjectAssign(){if(hasRequiredEs6ObjectAssign)return es6ObjectAssign;hasRequiredEs6ObjectAssign=1;function tt(nt,rt){if(nt==null)throw new TypeError("Cannot convert first argument to object");for(var it=Object(nt),ot=1;ot=0&&tt.call(nt.callee)==="[object Function]"),it},isArguments$4}var implementation$2,hasRequiredImplementation$2;function requireImplementation$2(){if(hasRequiredImplementation$2)return implementation$2;hasRequiredImplementation$2=1;var tt;if(!Object.keys){var et=Object.prototype.hasOwnProperty,nt=Object.prototype.toString,rt=requireIsArguments(),it=Object.prototype.propertyIsEnumerable,ot=!it.call({toString:null},"toString"),at=it.call(function(){},"prototype"),st=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],lt=function(dt){var pt=dt.constructor;return pt&&pt.prototype===dt},ct={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},ut=function(){if(typeof window>"u")return!1;for(var dt in window)try{if(!ct["$"+dt]&&et.call(window,dt)&&window[dt]!==null&&typeof window[dt]=="object")try{lt(window[dt])}catch{return!0}}catch{return!0}return!1}(),ht=function(dt){if(typeof window>"u"||!ut)return lt(dt);try{return lt(dt)}catch{return!1}};tt=function(pt){var mt=pt!==null&&typeof pt=="object",gt=nt.call(pt)==="[object Function]",yt=rt(pt),bt=mt&&nt.call(pt)==="[object String]",wt=[];if(!mt&&!gt&&!yt)throw new TypeError("Object.keys called on a non-object");var vt=at&>if(bt&&pt.length>0&&!et.call(pt,0))for(var kt=0;kt0)for(var St=0;St2?arguments[2]:{},pt=tt(ht);et&&(pt=rt.call(pt,Object.getOwnPropertySymbols(ht)));for(var mt=0;mt10)return!0;for(var rn=0;rn57)return!0}return un.length===10&&un>=Math.pow(2,32)}function Ot(un){return Object.keys(un).filter(It).concat(ct(un).filter(Object.prototype.propertyIsEnumerable.bind(un)))}/*! +`):cn=" ".concat(Ft," ").concat(cn)),Ut=ot(this,pt(Ot).call(this,"".concat(fn).concat(cn)))}return Error.stackTraceLimit=Jt,Ut.generatedMessage=!Wt,Object.defineProperty(at(Ut),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),Ut.code="ERR_ASSERTION",Ut.actual=Ct,Ut.expected=Ht,Ut.operator=Ft,Error.captureStackTrace&&Error.captureStackTrace(at(Ut),Nt),Ut.stack,Ut.name="AssertionError",ot(Ut)}return it(Ot,[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:yt.custom,value:function(Ut,Wt){return yt(this,tt({},Wt,{customInspect:!1,depth:0}))}}]),Ot}(lt(Error));return assertion_error=xt,assertion_error}var es6ObjectAssign,hasRequiredEs6ObjectAssign;function requireEs6ObjectAssign(){if(hasRequiredEs6ObjectAssign)return es6ObjectAssign;hasRequiredEs6ObjectAssign=1;function tt(nt,rt){if(nt==null)throw new TypeError("Cannot convert first argument to object");for(var it=Object(nt),ot=1;ot=0&&tt.call(nt.callee)==="[object Function]"),it},isArguments$4}var implementation$2,hasRequiredImplementation$2;function requireImplementation$2(){if(hasRequiredImplementation$2)return implementation$2;hasRequiredImplementation$2=1;var tt;if(!Object.keys){var et=Object.prototype.hasOwnProperty,nt=Object.prototype.toString,rt=requireIsArguments(),it=Object.prototype.propertyIsEnumerable,ot=!it.call({toString:null},"toString"),at=it.call(function(){},"prototype"),st=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],lt=function(dt){var pt=dt.constructor;return pt&&pt.prototype===dt},ct={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},ut=function(){if(typeof window>"u")return!1;for(var dt in window)try{if(!ct["$"+dt]&&et.call(window,dt)&&window[dt]!==null&&typeof window[dt]=="object")try{lt(window[dt])}catch{return!0}}catch{return!0}return!1}(),ht=function(dt){if(typeof window>"u"||!ut)return lt(dt);try{return lt(dt)}catch{return!1}};tt=function(pt){var mt=pt!==null&&typeof pt=="object",gt=nt.call(pt)==="[object Function]",yt=rt(pt),bt=mt&&nt.call(pt)==="[object String]",wt=[];if(!mt&&!gt&&!yt)throw new TypeError("Object.keys called on a non-object");var vt=at&>if(bt&&pt.length>0&&!et.call(pt,0))for(var kt=0;kt0)for(var St=0;St2?arguments[2]:{},pt=tt(ht);et&&(pt=rt.call(pt,Object.getOwnPropertySymbols(ht)));for(var mt=0;mt10)return!0;for(var rn=0;rn57)return!0}return un.length===10&&un>=Math.pow(2,32)}function Ot(un){return Object.keys(un).filter(It).concat(ct(un).filter(Object.prototype.propertyIsEnumerable.bind(un)))}/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT - */function zt(un,rn){if(un===rn)return 0;for(var Sn=un.length,Mn=rn.length,Nn=0,hn=Math.min(Sn,Mn);Nn1?Ht-1:0),nn=1;nn1?Ht-1:0),nn=1;nn1?Ht-1:0),nn=1;nn1?Ht-1:0),nn=1;nn>>0===rt,"off","integer"),rt+et>nt.length)throw new EncodingError(rt,"Out of bounds read");return tt(nt,rt)}}function _readn(tt){return function(et,nt,rt){if(enforce$1(Buffer.isBuffer(et),"data","buffer"),enforce$1(nt>>>0===nt,"off","integer"),enforce$1(rt>>>0===rt,"len","integer"),nt+rt>et.length)throw new EncodingError(nt,"Out of bounds read");return tt(et,nt,rt)}}function _readvar(tt){return function(et,nt){return enforce$1(Buffer.isBuffer(et),"data","buffer"),enforce$1(nt>>>0===nt,"off","integer"),tt(et,nt)}}function _write(tt,et){return function(nt,rt,it){if(enforce$1(Buffer.isBuffer(nt),"data","buffer"),enforce$1(it>>>0===it,"off","integer"),it+et>nt.length)throw new EncodingError(it,"Out of bounds write");return tt(nt,rt,it)}}function _writen(tt){return function(et,nt,rt,it){if(enforce$1(Buffer.isBuffer(et),"data","buffer"),enforce$1(rt>>>0===rt,"off","integer"),enforce$1(it>>>0===it,"len","integer"),rt+it>et.length)throw new EncodingError(rt,"Out of bounds write");return tt(et,nt,rt,it)}}function _writecb(tt,et){return function(nt,rt,it){if(enforce$1(Buffer.isBuffer(nt),"data","buffer"),enforce$1(it>>>0===it,"off","integer"),it+et(rt)>nt.length)throw new EncodingError(it,"Out of bounds write");return tt(nt,rt,it)}}bufio.readU=_readn(encoding.readU);bufio.readBigU256=_read(encoding.readBigU256,32);bufio.readBigU128=_read(encoding.readBigU128,16);bufio.readBigU64=_read(encoding.readBigU64,8);bufio.readBigU56=_read(encoding.readBigU56,7);bufio.readU64=_read(encoding.readU64,8);bufio.readU56=_read(encoding.readU56,7);bufio.readU48=_read(encoding.readU48,6);bufio.readU40=_read(encoding.readU40,5);bufio.readU32=_read(encoding.readU32,4);bufio.readU24=_read(encoding.readU24,3);bufio.readU16=_read(encoding.readU16,2);bufio.readU8=_read(encoding.readU8,1);bufio.readUBE=_readn(encoding.readUBE);bufio.readBigU256BE=_read(encoding.readBigU256BE,32);bufio.readBigU128BE=_read(encoding.readBigU128BE,16);bufio.readBigU64BE=_read(encoding.readBigU64BE,8);bufio.readBigU56BE=_read(encoding.readBigU56BE,7);bufio.readU64BE=_read(encoding.readU64BE,8);bufio.readU56BE=_read(encoding.readU56BE,7);bufio.readU48BE=_read(encoding.readU48BE,6);bufio.readU40BE=_read(encoding.readU40BE,5);bufio.readU32BE=_read(encoding.readU32BE,4);bufio.readU24BE=_read(encoding.readU24BE,3);bufio.readU16BE=_read(encoding.readU16BE,2);bufio.readI=_readn(encoding.readI);bufio.readBigI64=_read(encoding.readBigI64,8);bufio.readBigI56=_read(encoding.readBigI56,7);bufio.readI64=_read(encoding.readI64,8);bufio.readI56=_read(encoding.readI56,7);bufio.readI48=_read(encoding.readI48,6);bufio.readI40=_read(encoding.readI40,5);bufio.readI32=_read(encoding.readI32,4);bufio.readI24=_read(encoding.readI24,3);bufio.readI16=_read(encoding.readI16,2);bufio.readI8=_read(encoding.readI8,1);bufio.readIBE=_readn(encoding.readIBE);bufio.readBigI64BE=_read(encoding.readBigI64BE,8);bufio.readBigI56BE=_read(encoding.readBigI56BE,7);bufio.readI64BE=_read(encoding.readI64BE,8);bufio.readI56BE=_read(encoding.readI56BE,7);bufio.readI48BE=_read(encoding.readI48BE,6);bufio.readI40BE=_read(encoding.readI40BE,5);bufio.readI32BE=_read(encoding.readI32BE,4);bufio.readI24BE=_read(encoding.readI24BE,3);bufio.readI16BE=_read(encoding.readI16BE,2);bufio.readFloat=_read(encoding.readFloat,4);bufio.readFloatBE=_read(encoding.readFloatBE,4);bufio.readDouble=_read(encoding.readDouble,8);bufio.readDoubleBE=_read(encoding.readDoubleBE,8);bufio.writeU=_writen(encoding.writeU);bufio.writeBigU256=_write(encoding.writeBigU256,32);bufio.writeBigU128=_write(encoding.writeBigU128,16);bufio.writeBigU64=_write(encoding.writeBigU64,8);bufio.writeBigU56=_write(encoding.writeBigU56,7);bufio.writeU64=_write(encoding.writeU64,8);bufio.writeU56=_write(encoding.writeU56,7);bufio.writeU48=_write(encoding.writeU48,6);bufio.writeU40=_write(encoding.writeU40,5);bufio.writeU32=_write(encoding.writeU32,4);bufio.writeU24=_write(encoding.writeU24,3);bufio.writeU16=_write(encoding.writeU16,2);bufio.writeU8=_write(encoding.writeU8,1);bufio.writeUBE=_writen(encoding.writeUBE);bufio.writeBigU256BE=_write(encoding.writeBigU256BE,32);bufio.writeBigU128BE=_write(encoding.writeBigU128BE,16);bufio.writeBigU64BE=_write(encoding.writeBigU64BE,8);bufio.writeBigU56BE=_write(encoding.writeBigU56BE,7);bufio.writeU64BE=_write(encoding.writeU64BE,8);bufio.writeU56BE=_write(encoding.writeU56BE,7);bufio.writeU48BE=_write(encoding.writeU48BE,6);bufio.writeU40BE=_write(encoding.writeU40BE,5);bufio.writeU32BE=_write(encoding.writeU32BE,4);bufio.writeU24BE=_write(encoding.writeU24BE,3);bufio.writeU16BE=_write(encoding.writeU16BE,2);bufio.writeI=_writen(encoding.writeI);bufio.writeBigI64=_write(encoding.writeBigI64,8);bufio.writeBigI56=_write(encoding.writeBigI56,7);bufio.writeI64=_write(encoding.writeI64,8);bufio.writeI56=_write(encoding.writeI56,7);bufio.writeI48=_write(encoding.writeI48,6);bufio.writeI40=_write(encoding.writeI40,5);bufio.writeI32=_write(encoding.writeI32,4);bufio.writeI24=_write(encoding.writeI24,3);bufio.writeI16=_write(encoding.writeI16,2);bufio.writeI8=_write(encoding.writeI8,1);bufio.writeIBE=_writen(encoding.writeIBE);bufio.writeBigI64BE=_write(encoding.writeBigI64BE,8);bufio.writeBigI56BE=_write(encoding.writeBigI56BE,7);bufio.writeI64BE=_write(encoding.writeI64BE,8);bufio.writeI56BE=_write(encoding.writeI56BE,7);bufio.writeI48BE=_write(encoding.writeI48BE,6);bufio.writeI40BE=_write(encoding.writeI40BE,5);bufio.writeI32BE=_write(encoding.writeI32BE,4);bufio.writeI24BE=_write(encoding.writeI24BE,3);bufio.writeI16BE=_write(encoding.writeI16BE,2);bufio.writeFloat=_write(encoding.writeFloat,4);bufio.writeFloatBE=_write(encoding.writeFloatBE,4);bufio.writeDouble=_write(encoding.writeDouble,8);bufio.writeDoubleBE=_write(encoding.writeDoubleBE,8);bufio.readVarint=_readvar(encoding.readVarint);bufio.writeVarint=_writecb(encoding.writeVarint,encoding.sizeVarint);bufio.sizeVarint=encoding.sizeVarint;bufio.readVarint2=_readvar(encoding.readVarint2);bufio.writeVarint2=_writecb(encoding.writeVarint2,encoding.sizeVarint2);bufio.sizeVarint2=encoding.sizeVarint2;bufio.sliceBytes=encoding.sliceBytes;bufio.readBytes=encoding.readBytes;bufio.writeBytes=encoding.writeBytes;bufio.readString=encoding.readString;bufio.writeString=encoding.writeString;bufio.realloc=encoding.realloc;bufio.copy=encoding.copy;bufio.concat=encoding.concat;bufio.sizeVarBytes=encoding.sizeVarBytes;bufio.sizeVarlen=encoding.sizeVarlen;bufio.sizeVarString=encoding.sizeVarString;var cryptoBrowserify={},browser$c={exports:{}},safeBuffer$1={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh */(function(tt,et){var nt=buffer$2,rt=nt.Buffer;function it(at,st){for(var lt in at)st[lt]=at[lt]}rt.from&&rt.alloc&&rt.allocUnsafe&&rt.allocUnsafeSlow?tt.exports=nt:(it(nt,et),et.Buffer=ot);function ot(at,st,lt){return rt(at,st,lt)}ot.prototype=Object.create(rt.prototype),it(rt,ot),ot.from=function(at,st,lt){if(typeof at=="number")throw new TypeError("Argument must not be a number");return rt(at,st,lt)},ot.alloc=function(at,st,lt){if(typeof at!="number")throw new TypeError("Argument must be a number");var ct=rt(at);return st!==void 0?typeof lt=="string"?ct.fill(st,lt):ct.fill(st):ct.fill(0),ct},ot.allocUnsafe=function(at){if(typeof at!="number")throw new TypeError("Argument must be a number");return rt(at)},ot.allocUnsafeSlow=function(at){if(typeof at!="number")throw new TypeError("Argument must be a number");return nt.SlowBuffer(at)}})(safeBuffer$1,safeBuffer$1.exports);var safeBufferExports=safeBuffer$1.exports,MAX_BYTES=65536,MAX_UINT32=4294967295;function oldBrowser$1(){throw new Error(`Secure random number generation is not supported by this browser. -Use Chrome, Firefox or Internet Explorer 11`)}var Buffer$H=safeBufferExports.Buffer,crypto$4=commonjsGlobal.crypto||commonjsGlobal.msCrypto;crypto$4&&crypto$4.getRandomValues?browser$c.exports=randomBytes$2:browser$c.exports=oldBrowser$1;function randomBytes$2(tt,et){if(tt>MAX_UINT32)throw new RangeError("requested too many random bytes");var nt=Buffer$H.allocUnsafe(tt);if(tt>0)if(tt>MAX_BYTES)for(var rt=0;rt0&&(at=nt[0]),at instanceof Error)throw at;var st=new Error("Unhandled error."+(at?" ("+at.message+")":""));throw st.context=at,st}var lt=ot[et];if(lt===void 0)return!1;if(typeof lt=="function")ReflectApply(lt,this,nt);else for(var ct=lt.length,ut=arrayClone(lt,ct),rt=0;rt0&&at.length>it&&!at.warned){at.warned=!0;var st=new Error("Possible EventEmitter memory leak detected. "+at.length+" "+String(et)+" listeners added. Use emitter.setMaxListeners() to increase limit");st.name="MaxListenersExceededWarning",st.emitter=tt,st.type=et,st.count=at.length,ProcessEmitWarning(st)}return tt}EventEmitter$1.prototype.addListener=function(et,nt){return _addListener(this,et,nt,!1)};EventEmitter$1.prototype.on=EventEmitter$1.prototype.addListener;EventEmitter$1.prototype.prependListener=function(et,nt){return _addListener(this,et,nt,!0)};function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(tt,et,nt){var rt={fired:!1,wrapFn:void 0,target:tt,type:et,listener:nt},it=onceWrapper.bind(rt);return it.listener=nt,rt.wrapFn=it,it}EventEmitter$1.prototype.once=function(et,nt){return checkListener(nt),this.on(et,_onceWrap(this,et,nt)),this};EventEmitter$1.prototype.prependOnceListener=function(et,nt){return checkListener(nt),this.prependListener(et,_onceWrap(this,et,nt)),this};EventEmitter$1.prototype.removeListener=function(et,nt){var rt,it,ot,at,st;if(checkListener(nt),it=this._events,it===void 0)return this;if(rt=it[et],rt===void 0)return this;if(rt===nt||rt.listener===nt)--this._eventsCount===0?this._events=Object.create(null):(delete it[et],it.removeListener&&this.emit("removeListener",et,rt.listener||nt));else if(typeof rt!="function"){for(ot=-1,at=rt.length-1;at>=0;at--)if(rt[at]===nt||rt[at].listener===nt){st=rt[at].listener,ot=at;break}if(ot<0)return this;ot===0?rt.shift():spliceOne(rt,ot),rt.length===1&&(it[et]=rt[0]),it.removeListener!==void 0&&this.emit("removeListener",et,st||nt)}return this};EventEmitter$1.prototype.off=EventEmitter$1.prototype.removeListener;EventEmitter$1.prototype.removeAllListeners=function(et){var nt,rt,it;if(rt=this._events,rt===void 0)return this;if(rt.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):rt[et]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete rt[et]),this;if(arguments.length===0){var ot=Object.keys(rt),at;for(it=0;it=0;it--)this.removeListener(et,nt[it]);return this};function _listeners$1(tt,et,nt){var rt=tt._events;if(rt===void 0)return[];var it=rt[et];return it===void 0?[]:typeof it=="function"?nt?[it.listener||it]:[it]:nt?unwrapListeners(it):arrayClone(it,it.length)}EventEmitter$1.prototype.listeners=function(et){return _listeners$1(this,et,!0)};EventEmitter$1.prototype.rawListeners=function(et){return _listeners$1(this,et,!1)};EventEmitter$1.listenerCount=function(tt,et){return typeof tt.listenerCount=="function"?tt.listenerCount(et):listenerCount.call(tt,et)};EventEmitter$1.prototype.listenerCount=listenerCount;function listenerCount(tt){var et=this._events;if(et!==void 0){var nt=et[tt];if(typeof nt=="function")return 1;if(nt!==void 0)return nt.length}return 0}EventEmitter$1.prototype.eventNames=function(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};function arrayClone(tt,et){for(var nt=new Array(et),rt=0;rt0?this.tail.next=bt:this.head=bt,this.tail=bt,++this.length}},{key:"unshift",value:function(yt){var bt={data:yt,next:this.head};this.length===0&&(this.tail=bt),this.head=bt,++this.length}},{key:"shift",value:function(){if(this.length!==0){var yt=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,yt}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(yt){if(this.length===0)return"";for(var bt=this.head,wt=""+bt.data;bt=bt.next;)wt+=yt+bt.data;return wt}},{key:"concat",value:function(yt){if(this.length===0)return ct.alloc(0);for(var bt=ct.allocUnsafe(yt>>>0),wt=this.head,vt=0;wt;)pt(wt.data,bt,vt),vt+=wt.data.length,wt=wt.next;return bt}},{key:"consume",value:function(yt,bt){var wt;return ytkt.length?kt.length:yt;if(St===kt.length?vt+=kt:vt+=kt.slice(0,yt),yt-=St,yt===0){St===kt.length?(++wt,bt.next?this.head=bt.next:this.head=this.tail=null):(this.head=bt,bt.data=kt.slice(St));break}++wt}return this.length-=wt,vt}},{key:"_getBuffer",value:function(yt){var bt=ct.allocUnsafe(yt),wt=this.head,vt=1;for(wt.data.copy(bt),yt-=wt.data.length;wt=wt.next;){var kt=wt.data,St=yt>kt.length?kt.length:yt;if(kt.copy(bt,bt.length-yt,0,St),yt-=St,yt===0){St===kt.length?(++vt,wt.next?this.head=wt.next:this.head=this.tail=null):(this.head=wt,wt.data=kt.slice(St));break}++vt}return this.length-=vt,bt}},{key:dt,value:function(yt,bt){return ht(this,et(et({},bt),{},{depth:0,customInspect:!1}))}}]),mt}(),buffer_list}function destroy(tt,et){var nt=this,rt=this._readableState&&this._readableState.destroyed,it=this._writableState&&this._writableState.destroyed;return rt||it?(et?et(tt):tt&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(emitErrorNT,this,tt)):process.nextTick(emitErrorNT,this,tt)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(tt||null,function(ot){!et&&ot?nt._writableState?nt._writableState.errorEmitted?process.nextTick(emitCloseNT,nt):(nt._writableState.errorEmitted=!0,process.nextTick(emitErrorAndCloseNT,nt,ot)):process.nextTick(emitErrorAndCloseNT,nt,ot):et?(process.nextTick(emitCloseNT,nt),et(ot)):process.nextTick(emitCloseNT,nt)}),this)}function emitErrorAndCloseNT(tt,et){emitErrorNT(tt,et),emitCloseNT(tt)}function emitCloseNT(tt){tt._writableState&&!tt._writableState.emitClose||tt._readableState&&!tt._readableState.emitClose||tt.emit("close")}function undestroy(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function emitErrorNT(tt,et){tt.emit("error",et)}function errorOrDestroy(tt,et){var nt=tt._readableState,rt=tt._writableState;nt&&nt.autoDestroy||rt&&rt.autoDestroy?tt.destroy(et):tt.emit("error",et)}var destroy_1={destroy,undestroy,errorOrDestroy},errorsBrowser={};function _inheritsLoose$1(tt,et){tt.prototype=Object.create(et.prototype),tt.prototype.constructor=tt,tt.__proto__=et}var codes={};function createErrorType(tt,et,nt){nt||(nt=Error);function rt(ot,at,st){return typeof et=="string"?et:et(ot,at,st)}var it=function(ot){_inheritsLoose$1(at,ot);function at(st,lt,ct){return ot.call(this,rt(st,lt,ct))||this}return at}(nt);it.prototype.name=nt.name,it.prototype.code=tt,codes[tt]=it}function oneOf(tt,et){if(Array.isArray(tt)){var nt=tt.length;return tt=tt.map(function(rt){return String(rt)}),nt>2?"one of ".concat(et," ").concat(tt.slice(0,nt-1).join(", "),", or ")+tt[nt-1]:nt===2?"one of ".concat(et," ").concat(tt[0]," or ").concat(tt[1]):"of ".concat(et," ").concat(tt[0])}else return"of ".concat(et," ").concat(String(tt))}function startsWith(tt,et,nt){return tt.substr(!nt||nt<0?0:+nt,et.length)===et}function endsWith(tt,et,nt){return(nt===void 0||nt>tt.length)&&(nt=tt.length),tt.substring(nt-et.length,nt)===et}function includes(tt,et,nt){return typeof nt!="number"&&(nt=0),nt+et.length>tt.length?!1:tt.indexOf(et,nt)!==-1}createErrorType("ERR_INVALID_OPT_VALUE",function(tt,et){return'The value "'+et+'" is invalid for option "'+tt+'"'},TypeError);createErrorType("ERR_INVALID_ARG_TYPE",function(tt,et,nt){var rt;typeof et=="string"&&startsWith(et,"not ")?(rt="must not be",et=et.replace(/^not /,"")):rt="must be";var it;if(endsWith(tt," argument"))it="The ".concat(tt," ").concat(rt," ").concat(oneOf(et,"type"));else{var ot=includes(tt,".")?"property":"argument";it='The "'.concat(tt,'" ').concat(ot," ").concat(rt," ").concat(oneOf(et,"type"))}return it+=". Received type ".concat(typeof nt),it},TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",function(tt){return"The "+tt+" method is not implemented"});createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",function(tt){return"Cannot call "+tt+" after a stream was destroyed"});createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",function(tt){return"Unknown encoding: "+tt},TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");errorsBrowser.codes=codes;var ERR_INVALID_OPT_VALUE=errorsBrowser.codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(tt,et,nt){return tt.highWaterMark!=null?tt.highWaterMark:et?tt[nt]:null}function getHighWaterMark(tt,et,nt,rt){var it=highWaterMarkFrom(et,rt,nt);if(it!=null){if(!(isFinite(it)&&Math.floor(it)===it)||it<0){var ot=rt?nt:"highWaterMark";throw new ERR_INVALID_OPT_VALUE(ot,it)}return Math.floor(it)}return tt.objectMode?16:16*1024}var state={getHighWaterMark},browser$b=deprecate$1;function deprecate$1(tt,et){if(config$1("noDeprecation"))return tt;var nt=!1;function rt(){if(!nt){if(config$1("throwDeprecation"))throw new Error(et);config$1("traceDeprecation")?console.trace(et):console.warn(et),nt=!0}return tt.apply(this,arguments)}return rt}function config$1(tt){try{if(!commonjsGlobal.localStorage)return!1}catch{return!1}var et=commonjsGlobal.localStorage[tt];return et==null?!1:String(et).toLowerCase()==="true"}var _stream_writable,hasRequired_stream_writable;function require_stream_writable(){if(hasRequired_stream_writable)return _stream_writable;hasRequired_stream_writable=1,_stream_writable=Et;function tt(Yt){var fn=this;this.next=null,this.entry=null,this.finish=function(){nn(fn,Yt)}}var et;Et.WritableState=Tt;var nt={deprecate:browser$b},rt=streamBrowser,it=buffer$2.Buffer,ot=(typeof commonjsGlobal<"u"?commonjsGlobal:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function at(Yt){return it.from(Yt)}function st(Yt){return it.isBuffer(Yt)||Yt instanceof ot}var lt=destroy_1,ct=state,ut=ct.getHighWaterMark,ht=errorsBrowser.codes,dt=ht.ERR_INVALID_ARG_TYPE,pt=ht.ERR_METHOD_NOT_IMPLEMENTED,mt=ht.ERR_MULTIPLE_CALLBACK,gt=ht.ERR_STREAM_CANNOT_PIPE,yt=ht.ERR_STREAM_DESTROYED,bt=ht.ERR_STREAM_NULL_VALUES,wt=ht.ERR_STREAM_WRITE_AFTER_END,vt=ht.ERR_UNKNOWN_ENCODING,kt=lt.errorOrDestroy;inherits_browserExports(Et,rt);function St(){}function Tt(Yt,fn,cn){et=et||require_stream_duplex(),Yt=Yt||{},typeof cn!="boolean"&&(cn=fn instanceof et),this.objectMode=!!Yt.objectMode,cn&&(this.objectMode=this.objectMode||!!Yt.writableObjectMode),this.highWaterMark=ut(this,Yt,"writableHighWaterMark",cn),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var _n=Yt.decodeStrings===!1;this.decodeStrings=!_n,this.defaultEncoding=Yt.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(En){Ot(fn,En)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=Yt.emitClose!==!1,this.autoDestroy=!!Yt.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new tt(this)}Tt.prototype.getBuffer=function(){for(var fn=this.bufferedRequest,cn=[];fn;)cn.push(fn),fn=fn.next;return cn},function(){try{Object.defineProperty(Tt.prototype,"buffer",{get:nt.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var At;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(At=Function.prototype[Symbol.hasInstance],Object.defineProperty(Et,Symbol.hasInstance,{value:function(fn){return At.call(this,fn)?!0:this!==Et?!1:fn&&fn._writableState instanceof Tt}})):At=function(fn){return fn instanceof this};function Et(Yt){et=et||require_stream_duplex();var fn=this instanceof et;if(!fn&&!At.call(Et,this))return new Et(Yt);this._writableState=new Tt(Yt,this,fn),this.writable=!0,Yt&&(typeof Yt.write=="function"&&(this._write=Yt.write),typeof Yt.writev=="function"&&(this._writev=Yt.writev),typeof Yt.destroy=="function"&&(this._destroy=Yt.destroy),typeof Yt.final=="function"&&(this._final=Yt.final)),rt.call(this)}Et.prototype.pipe=function(){kt(this,new gt)};function Mt(Yt,fn){var cn=new wt;kt(Yt,cn),process.nextTick(fn,cn)}function Lt(Yt,fn,cn,_n){var En;return cn===null?En=new bt:typeof cn!="string"&&!fn.objectMode&&(En=new dt("chunk",["string","Buffer"],cn)),En?(kt(Yt,En),process.nextTick(_n,En),!1):!0}Et.prototype.write=function(Yt,fn,cn){var _n=this._writableState,En=!1,an=!_n.objectMode&&st(Yt);return an&&!it.isBuffer(Yt)&&(Yt=at(Yt)),typeof fn=="function"&&(cn=fn,fn=null),an?fn="buffer":fn||(fn=_n.defaultEncoding),typeof cn!="function"&&(cn=St),_n.ending?Mt(this,cn):(an||Lt(this,_n,Yt,cn))&&(_n.pendingcb++,En=Rt(this,_n,an,Yt,fn,cn)),En},Et.prototype.cork=function(){this._writableState.corked++},Et.prototype.uncork=function(){var Yt=this._writableState;Yt.corked&&(Yt.corked--,!Yt.writing&&!Yt.corked&&!Yt.bufferProcessing&&Yt.bufferedRequest&&Wt(this,Yt))},Et.prototype.setDefaultEncoding=function(fn){if(typeof fn=="string"&&(fn=fn.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((fn+"").toLowerCase())>-1))throw new vt(fn);return this._writableState.defaultEncoding=fn,this},Object.defineProperty(Et.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function jt(Yt,fn,cn){return!Yt.objectMode&&Yt.decodeStrings!==!1&&typeof fn=="string"&&(fn=it.from(fn,cn)),fn}Object.defineProperty(Et.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Rt(Yt,fn,cn,_n,En,an){if(!cn){var en=jt(fn,_n,En);_n!==en&&(cn=!0,En="buffer",_n=en)}var Tn=fn.objectMode?1:_n.length;fn.length+=Tn;var Rn=fn.length>5===6?2:tt>>4===14?3:tt>>3===30?4:tt>>6===2?-1:-2}function utf8CheckIncomplete(tt,et,nt){var rt=et.length-1;if(rt=0?(it>0&&(tt.lastNeed=it-1),it):--rt=0?(it>0&&(tt.lastNeed=it-2),it):--rt=0?(it>0&&(it===2?it=0:tt.lastNeed=it-3),it):0))}function utf8CheckExtraBytes(tt,et,nt){if((et[0]&192)!==128)return tt.lastNeed=0,"�";if(tt.lastNeed>1&&et.length>1){if((et[1]&192)!==128)return tt.lastNeed=1,"�";if(tt.lastNeed>2&&et.length>2&&(et[2]&192)!==128)return tt.lastNeed=2,"�"}}function utf8FillLast(tt){var et=this.lastTotal-this.lastNeed,nt=utf8CheckExtraBytes(this,tt);if(nt!==void 0)return nt;if(this.lastNeed<=tt.length)return tt.copy(this.lastChar,et,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);tt.copy(this.lastChar,et,0,tt.length),this.lastNeed-=tt.length}function utf8Text(tt,et){var nt=utf8CheckIncomplete(this,tt,et);if(!this.lastNeed)return tt.toString("utf8",et);this.lastTotal=nt;var rt=tt.length-(nt-this.lastNeed);return tt.copy(this.lastChar,0,rt),tt.toString("utf8",et,rt)}function utf8End(tt){var et=tt&&tt.length?this.write(tt):"";return this.lastNeed?et+"�":et}function utf16Text(tt,et){if((tt.length-et)%2===0){var nt=tt.toString("utf16le",et);if(nt){var rt=nt.charCodeAt(nt.length-1);if(rt>=55296&&rt<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=tt[tt.length-2],this.lastChar[1]=tt[tt.length-1],nt.slice(0,-1)}return nt}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=tt[tt.length-1],tt.toString("utf16le",et,tt.length-1)}function utf16End(tt){var et=tt&&tt.length?this.write(tt):"";if(this.lastNeed){var nt=this.lastTotal-this.lastNeed;return et+this.lastChar.toString("utf16le",0,nt)}return et}function base64Text(tt,et){var nt=(tt.length-et)%3;return nt===0?tt.toString("base64",et):(this.lastNeed=3-nt,this.lastTotal=3,nt===1?this.lastChar[0]=tt[tt.length-1]:(this.lastChar[0]=tt[tt.length-2],this.lastChar[1]=tt[tt.length-1]),tt.toString("base64",et,tt.length-nt))}function base64End(tt){var et=tt&&tt.length?this.write(tt):"";return this.lastNeed?et+this.lastChar.toString("base64",0,3-this.lastNeed):et}function simpleWrite(tt){return tt.toString(this.encoding)}function simpleEnd(tt){return tt&&tt.length?this.write(tt):""}var ERR_STREAM_PREMATURE_CLOSE=errorsBrowser.codes.ERR_STREAM_PREMATURE_CLOSE;function once$1(tt){var et=!1;return function(){if(!et){et=!0;for(var nt=arguments.length,rt=new Array(nt),it=0;it0)if(typeof en!="string"&&!yn.objectMode&&Object.getPrototypeOf(en)!==rt.prototype&&(en=ot(en)),Rn)yn.endEmitted?St(an,new bt):jt(an,yn,en,!0);else if(yn.ended)St(an,new gt);else{if(yn.destroyed)return!1;yn.reading=!1,yn.decoder&&!Tn?(en=yn.decoder.write(en),yn.objectMode||en.length!==0?jt(an,yn,en,!1):Wt(an,yn)):jt(an,yn,en,!1)}else Rn||(yn.reading=!1,Wt(an,yn))}return!yn.ended&&(yn.length=$t?an=$t:(an--,an|=an>>>1,an|=an>>>2,an|=an>>>4,an|=an>>>8,an|=an>>>16,an++),an}function It(an,en){return an<=0||en.length===0&&en.ended?0:en.objectMode?1:an!==an?en.flowing&&en.length?en.buffer.head.data.length:en.length:(an>en.highWaterMark&&(en.highWaterMark=xt(an)),an<=en.length?an:en.ended?en.length:(en.needReadable=!0,0))}Mt.prototype.read=function(an){lt("read",an),an=parseInt(an,10);var en=this._readableState,Tn=an;if(an!==0&&(en.emittedReadable=!1),an===0&&en.needReadable&&((en.highWaterMark!==0?en.length>=en.highWaterMark:en.length>0)||en.ended))return lt("read: emitReadable",en.length,en.ended),en.length===0&&en.ended?cn(this):zt(this),null;if(an=It(an,en),an===0&&en.ended)return en.length===0&&cn(this),null;var Rn=en.needReadable;lt("need readable",Rn),(en.length===0||en.length-an0?An=fn(an,en):An=null,An===null?(en.needReadable=en.length<=en.highWaterMark,an=0):(en.length-=an,en.awaitDrain=0),en.length===0&&(en.ended||(en.needReadable=!0),Tn!==an&&en.ended&&cn(this)),An!==null&&this.emit("data",An),An};function Ot(an,en){if(lt("onEofChunk"),!en.ended){if(en.decoder){var Tn=en.decoder.end();Tn&&Tn.length&&(en.buffer.push(Tn),en.length+=en.objectMode?1:Tn.length)}en.ended=!0,en.sync?zt(an):(en.needReadable=!1,en.emittedReadable||(en.emittedReadable=!0,Ut(an)))}}function zt(an){var en=an._readableState;lt("emitReadable",en.needReadable,en.emittedReadable),en.needReadable=!1,en.emittedReadable||(lt("emitReadable",en.flowing),en.emittedReadable=!0,process.nextTick(Ut,an))}function Ut(an){var en=an._readableState;lt("emitReadable_",en.destroyed,en.length,en.ended),!en.destroyed&&(en.length||en.ended)&&(an.emit("readable"),en.emittedReadable=!1),en.needReadable=!en.flowing&&!en.ended&&en.length<=en.highWaterMark,Yt(an)}function Wt(an,en){en.readingMore||(en.readingMore=!0,process.nextTick(Ft,an,en))}function Ft(an,en){for(;!en.reading&&!en.ended&&(en.length1&&En(Rn.pipes,an)!==-1)&&!Cn&&(lt("false write response, pause",Rn.awaitDrain),Rn.awaitDrain++),Tn.pause())}function rn(hn){lt("onerror",hn),Nn(),an.removeListener("error",rn),et(an,"error")===0&&St(an,hn)}At(an,"error",rn);function Sn(){an.removeListener("finish",Mn),Nn()}an.once("close",Sn);function Mn(){lt("onfinish"),an.removeListener("close",Sn),Nn()}an.once("finish",Mn);function Nn(){lt("unpipe"),Tn.unpipe(an)}return an.emit("pipe",Tn),Rn.flowing||(lt("pipe resume"),Tn.resume()),an};function Nt(an){return function(){var Tn=an._readableState;lt("pipeOnDrain",Tn.awaitDrain),Tn.awaitDrain&&Tn.awaitDrain--,Tn.awaitDrain===0&&et(an,"data")&&(Tn.flowing=!0,Yt(an))}}Mt.prototype.unpipe=function(an){var en=this._readableState,Tn={hasUnpiped:!1};if(en.pipesCount===0)return this;if(en.pipesCount===1)return an&&an!==en.pipes?this:(an||(an=en.pipes),en.pipes=null,en.pipesCount=0,en.flowing=!1,an&&an.emit("unpipe",this,Tn),this);if(!an){var Rn=en.pipes,An=en.pipesCount;en.pipes=null,en.pipesCount=0,en.flowing=!1;for(var yn=0;yn0,Rn.flowing!==!1&&this.resume()):an==="readable"&&!Rn.endEmitted&&!Rn.readableListening&&(Rn.readableListening=Rn.needReadable=!0,Rn.flowing=!1,Rn.emittedReadable=!1,lt("on readable",Rn.length,Rn.reading),Rn.length?zt(this):Rn.reading||process.nextTick(Ht,this)),Tn},Mt.prototype.addListener=Mt.prototype.on,Mt.prototype.removeListener=function(an,en){var Tn=nt.prototype.removeListener.call(this,an,en);return an==="readable"&&process.nextTick(Ct,this),Tn},Mt.prototype.removeAllListeners=function(an){var en=nt.prototype.removeAllListeners.apply(this,arguments);return(an==="readable"||an===void 0)&&process.nextTick(Ct,this),en};function Ct(an){var en=an._readableState;en.readableListening=an.listenerCount("readable")>0,en.resumeScheduled&&!en.paused?en.flowing=!0:an.listenerCount("data")>0&&an.resume()}function Ht(an){lt("readable nexttick read 0"),an.read(0)}Mt.prototype.resume=function(){var an=this._readableState;return an.flowing||(lt("resume"),an.flowing=!an.readableListening,Jt(this,an)),an.paused=!1,this};function Jt(an,en){en.resumeScheduled||(en.resumeScheduled=!0,process.nextTick(nn,an,en))}function nn(an,en){lt("resume",en.reading),en.reading||an.read(0),en.resumeScheduled=!1,an.emit("resume"),Yt(an),en.flowing&&!en.reading&&an.read(0)}Mt.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Yt(an){var en=an._readableState;for(lt("flow",en.flowing);en.flowing&&an.read()!==null;);}Mt.prototype.wrap=function(an){var en=this,Tn=this._readableState,Rn=!1;an.on("end",function(){if(lt("wrapped end"),Tn.decoder&&!Tn.ended){var kn=Tn.decoder.end();kn&&kn.length&&en.push(kn)}en.push(null)}),an.on("data",function(kn){if(lt("wrapped data"),Tn.decoder&&(kn=Tn.decoder.write(kn)),!(Tn.objectMode&&kn==null)&&!(!Tn.objectMode&&(!kn||!kn.length))){var dn=en.push(kn);dn||(Rn=!0,an.pause())}});for(var An in an)this[An]===void 0&&typeof an[An]=="function"&&(this[An]=function(dn){return function(){return an[dn].apply(an,arguments)}}(An));for(var yn=0;yn=en.length?(en.decoder?Tn=en.buffer.join(""):en.buffer.length===1?Tn=en.buffer.first():Tn=en.buffer.concat(en.length),en.buffer.clear()):Tn=en.buffer.consume(an,en.decoder),Tn}function cn(an){var en=an._readableState;lt("endReadable",en.endEmitted),en.endEmitted||(en.ended=!0,process.nextTick(_n,en,an))}function _n(an,en){if(lt("endReadableNT",an.endEmitted,an.length),!an.endEmitted&&an.length===0&&(an.endEmitted=!0,en.readable=!1,en.emit("end"),an.autoDestroy)){var Tn=en._writableState;(!Tn||Tn.autoDestroy&&Tn.finished)&&en.destroy()}}typeof Symbol=="function"&&(Mt.from=function(an,en){return kt===void 0&&(kt=requireFromBrowser()),kt(Mt,an,en)});function En(an,en){for(var Tn=0,Rn=an.length;Tn0;return destroyer(at,lt,ct,function(ut){it||(it=ut),ut&&ot.forEach(call),!lt&&(ot.forEach(call),rt(it))})});return et.reduce(pipe$1)}var pipeline_1=pipeline;(function(tt,et){et=tt.exports=require_stream_readable(),et.Stream=et,et.Readable=et,et.Writable=require_stream_writable(),et.Duplex=require_stream_duplex(),et.Transform=_stream_transform,et.PassThrough=_stream_passthrough,et.finished=endOfStream,et.pipeline=pipeline_1})(readableBrowser,readableBrowser.exports);var readableBrowserExports=readableBrowser.exports,Buffer$F=safeBufferExports.Buffer,Transform$5=readableBrowserExports.Transform,inherits$v=inherits_browserExports;function throwIfNotStringOrBuffer(tt,et){if(!Buffer$F.isBuffer(tt)&&typeof tt!="string")throw new TypeError(et+" must be a string or a buffer")}function HashBase$2(tt){Transform$5.call(this),this._block=Buffer$F.allocUnsafe(tt),this._blockSize=tt,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}inherits$v(HashBase$2,Transform$5);HashBase$2.prototype._transform=function(tt,et,nt){var rt=null;try{this.update(tt,et)}catch(it){rt=it}nt(rt)};HashBase$2.prototype._flush=function(tt){var et=null;try{this.push(this.digest())}catch(nt){et=nt}tt(et)};HashBase$2.prototype.update=function(tt,et){if(throwIfNotStringOrBuffer(tt,"Data"),this._finalized)throw new Error("Digest already called");Buffer$F.isBuffer(tt)||(tt=Buffer$F.from(tt,et));for(var nt=this._block,rt=0;this._blockOffset+tt.length-rt>=this._blockSize;){for(var it=this._blockOffset;it0;++ot)this._length[ot]+=at,at=this._length[ot]/4294967296|0,at>0&&(this._length[ot]-=4294967296*at);return this};HashBase$2.prototype._update=function(){throw new Error("_update is not implemented")};HashBase$2.prototype.digest=function(tt){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var et=this._digest();tt!==void 0&&(et=et.toString(tt)),this._block.fill(0),this._blockOffset=0;for(var nt=0;nt<4;++nt)this._length[nt]=0;return et};HashBase$2.prototype._digest=function(){throw new Error("_digest is not implemented")};var hashBase=HashBase$2,inherits$u=inherits_browserExports,HashBase$1=hashBase,Buffer$E=safeBufferExports.Buffer,ARRAY16$1=new Array(16);function MD5$3(){HashBase$1.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}inherits$u(MD5$3,HashBase$1);MD5$3.prototype._update=function(){for(var tt=ARRAY16$1,et=0;et<16;++et)tt[et]=this._block.readInt32LE(et*4);var nt=this._a,rt=this._b,it=this._c,ot=this._d;nt=fnF(nt,rt,it,ot,tt[0],3614090360,7),ot=fnF(ot,nt,rt,it,tt[1],3905402710,12),it=fnF(it,ot,nt,rt,tt[2],606105819,17),rt=fnF(rt,it,ot,nt,tt[3],3250441966,22),nt=fnF(nt,rt,it,ot,tt[4],4118548399,7),ot=fnF(ot,nt,rt,it,tt[5],1200080426,12),it=fnF(it,ot,nt,rt,tt[6],2821735955,17),rt=fnF(rt,it,ot,nt,tt[7],4249261313,22),nt=fnF(nt,rt,it,ot,tt[8],1770035416,7),ot=fnF(ot,nt,rt,it,tt[9],2336552879,12),it=fnF(it,ot,nt,rt,tt[10],4294925233,17),rt=fnF(rt,it,ot,nt,tt[11],2304563134,22),nt=fnF(nt,rt,it,ot,tt[12],1804603682,7),ot=fnF(ot,nt,rt,it,tt[13],4254626195,12),it=fnF(it,ot,nt,rt,tt[14],2792965006,17),rt=fnF(rt,it,ot,nt,tt[15],1236535329,22),nt=fnG(nt,rt,it,ot,tt[1],4129170786,5),ot=fnG(ot,nt,rt,it,tt[6],3225465664,9),it=fnG(it,ot,nt,rt,tt[11],643717713,14),rt=fnG(rt,it,ot,nt,tt[0],3921069994,20),nt=fnG(nt,rt,it,ot,tt[5],3593408605,5),ot=fnG(ot,nt,rt,it,tt[10],38016083,9),it=fnG(it,ot,nt,rt,tt[15],3634488961,14),rt=fnG(rt,it,ot,nt,tt[4],3889429448,20),nt=fnG(nt,rt,it,ot,tt[9],568446438,5),ot=fnG(ot,nt,rt,it,tt[14],3275163606,9),it=fnG(it,ot,nt,rt,tt[3],4107603335,14),rt=fnG(rt,it,ot,nt,tt[8],1163531501,20),nt=fnG(nt,rt,it,ot,tt[13],2850285829,5),ot=fnG(ot,nt,rt,it,tt[2],4243563512,9),it=fnG(it,ot,nt,rt,tt[7],1735328473,14),rt=fnG(rt,it,ot,nt,tt[12],2368359562,20),nt=fnH(nt,rt,it,ot,tt[5],4294588738,4),ot=fnH(ot,nt,rt,it,tt[8],2272392833,11),it=fnH(it,ot,nt,rt,tt[11],1839030562,16),rt=fnH(rt,it,ot,nt,tt[14],4259657740,23),nt=fnH(nt,rt,it,ot,tt[1],2763975236,4),ot=fnH(ot,nt,rt,it,tt[4],1272893353,11),it=fnH(it,ot,nt,rt,tt[7],4139469664,16),rt=fnH(rt,it,ot,nt,tt[10],3200236656,23),nt=fnH(nt,rt,it,ot,tt[13],681279174,4),ot=fnH(ot,nt,rt,it,tt[0],3936430074,11),it=fnH(it,ot,nt,rt,tt[3],3572445317,16),rt=fnH(rt,it,ot,nt,tt[6],76029189,23),nt=fnH(nt,rt,it,ot,tt[9],3654602809,4),ot=fnH(ot,nt,rt,it,tt[12],3873151461,11),it=fnH(it,ot,nt,rt,tt[15],530742520,16),rt=fnH(rt,it,ot,nt,tt[2],3299628645,23),nt=fnI(nt,rt,it,ot,tt[0],4096336452,6),ot=fnI(ot,nt,rt,it,tt[7],1126891415,10),it=fnI(it,ot,nt,rt,tt[14],2878612391,15),rt=fnI(rt,it,ot,nt,tt[5],4237533241,21),nt=fnI(nt,rt,it,ot,tt[12],1700485571,6),ot=fnI(ot,nt,rt,it,tt[3],2399980690,10),it=fnI(it,ot,nt,rt,tt[10],4293915773,15),rt=fnI(rt,it,ot,nt,tt[1],2240044497,21),nt=fnI(nt,rt,it,ot,tt[8],1873313359,6),ot=fnI(ot,nt,rt,it,tt[15],4264355552,10),it=fnI(it,ot,nt,rt,tt[6],2734768916,15),rt=fnI(rt,it,ot,nt,tt[13],1309151649,21),nt=fnI(nt,rt,it,ot,tt[4],4149444226,6),ot=fnI(ot,nt,rt,it,tt[11],3174756917,10),it=fnI(it,ot,nt,rt,tt[2],718787259,15),rt=fnI(rt,it,ot,nt,tt[9],3951481745,21),this._a=this._a+nt|0,this._b=this._b+rt|0,this._c=this._c+it|0,this._d=this._d+ot|0};MD5$3.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var tt=Buffer$E.allocUnsafe(16);return tt.writeInt32LE(this._a,0),tt.writeInt32LE(this._b,4),tt.writeInt32LE(this._c,8),tt.writeInt32LE(this._d,12),tt};function rotl$3(tt,et){return tt<>>32-et}function fnF(tt,et,nt,rt,it,ot,at){return rotl$3(tt+(et&nt|~et&rt)+it+ot|0,at)+et|0}function fnG(tt,et,nt,rt,it,ot,at){return rotl$3(tt+(et&rt|nt&~rt)+it+ot|0,at)+et|0}function fnH(tt,et,nt,rt,it,ot,at){return rotl$3(tt+(et^nt^rt)+it+ot|0,at)+et|0}function fnI(tt,et,nt,rt,it,ot,at){return rotl$3(tt+(nt^(et|~rt))+it+ot|0,at)+et|0}var md5_js=MD5$3,Buffer$D=buffer$2.Buffer,inherits$t=inherits_browserExports,HashBase=hashBase,ARRAY16=new Array(16),zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0];function RIPEMD160$5(){HashBase.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}inherits$t(RIPEMD160$5,HashBase);RIPEMD160$5.prototype._update=function(){for(var tt=ARRAY16,et=0;et<16;++et)tt[et]=this._block.readInt32LE(et*4);for(var nt=this._a|0,rt=this._b|0,it=this._c|0,ot=this._d|0,at=this._e|0,st=this._a|0,lt=this._b|0,ct=this._c|0,ut=this._d|0,ht=this._e|0,dt=0;dt<80;dt+=1){var pt,mt;dt<16?(pt=fn1(nt,rt,it,ot,at,tt[zl[dt]],hl[0],sl[dt]),mt=fn5(st,lt,ct,ut,ht,tt[zr[dt]],hr[0],sr[dt])):dt<32?(pt=fn2(nt,rt,it,ot,at,tt[zl[dt]],hl[1],sl[dt]),mt=fn4(st,lt,ct,ut,ht,tt[zr[dt]],hr[1],sr[dt])):dt<48?(pt=fn3(nt,rt,it,ot,at,tt[zl[dt]],hl[2],sl[dt]),mt=fn3(st,lt,ct,ut,ht,tt[zr[dt]],hr[2],sr[dt])):dt<64?(pt=fn4(nt,rt,it,ot,at,tt[zl[dt]],hl[3],sl[dt]),mt=fn2(st,lt,ct,ut,ht,tt[zr[dt]],hr[3],sr[dt])):(pt=fn5(nt,rt,it,ot,at,tt[zl[dt]],hl[4],sl[dt]),mt=fn1(st,lt,ct,ut,ht,tt[zr[dt]],hr[4],sr[dt])),nt=at,at=ot,ot=rotl$2(it,10),it=rt,rt=pt,st=ht,ht=ut,ut=rotl$2(ct,10),ct=lt,lt=mt}var gt=this._b+it+ut|0;this._b=this._c+ot+ht|0,this._c=this._d+at+st|0,this._d=this._e+nt+lt|0,this._e=this._a+rt+ct|0,this._a=gt};RIPEMD160$5.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var tt=Buffer$D.alloc?Buffer$D.alloc(20):new Buffer$D(20);return tt.writeInt32LE(this._a,0),tt.writeInt32LE(this._b,4),tt.writeInt32LE(this._c,8),tt.writeInt32LE(this._d,12),tt.writeInt32LE(this._e,16),tt};function rotl$2(tt,et){return tt<>>32-et}function fn1(tt,et,nt,rt,it,ot,at,st){return rotl$2(tt+(et^nt^rt)+ot+at|0,st)+it|0}function fn2(tt,et,nt,rt,it,ot,at,st){return rotl$2(tt+(et&nt|~et&rt)+ot+at|0,st)+it|0}function fn3(tt,et,nt,rt,it,ot,at,st){return rotl$2(tt+((et|~nt)^rt)+ot+at|0,st)+it|0}function fn4(tt,et,nt,rt,it,ot,at,st){return rotl$2(tt+(et&rt|nt&~rt)+ot+at|0,st)+it|0}function fn5(tt,et,nt,rt,it,ot,at,st){return rotl$2(tt+(et^(nt|~rt))+ot+at|0,st)+it|0}var ripemd160$1=RIPEMD160$5,sha_js={exports:{}},Buffer$C=safeBufferExports.Buffer;function Hash$9(tt,et){this._block=Buffer$C.alloc(tt),this._finalSize=et,this._blockSize=tt,this._len=0}Hash$9.prototype.update=function(tt,et){typeof tt=="string"&&(et=et||"utf8",tt=Buffer$C.from(tt,et));for(var nt=this._block,rt=this._blockSize,it=tt.length,ot=this._len,at=0;at=this._finalSize&&(this._update(this._block),this._block.fill(0));var nt=this._len*8;if(nt<=4294967295)this._block.writeUInt32BE(nt,this._blockSize-4);else{var rt=(nt&4294967295)>>>0,it=(nt-rt)/4294967296;this._block.writeUInt32BE(it,this._blockSize-8),this._block.writeUInt32BE(rt,this._blockSize-4)}this._update(this._block);var ot=this._hash();return tt?ot.toString(tt):ot};Hash$9.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var hash$4=Hash$9,inherits$s=inherits_browserExports,Hash$8=hash$4,Buffer$B=safeBufferExports.Buffer,K$4=[1518500249,1859775393,-1894007588,-899497514],W$5=new Array(80);function Sha(){this.init(),this._w=W$5,Hash$8.call(this,64,56)}inherits$s(Sha,Hash$8);Sha.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function rotl5$1(tt){return tt<<5|tt>>>27}function rotl30$1(tt){return tt<<30|tt>>>2}function ft$1(tt,et,nt,rt){return tt===0?et&nt|~et&rt:tt===2?et&nt|et&rt|nt&rt:et^nt^rt}Sha.prototype._update=function(tt){for(var et=this._w,nt=this._a|0,rt=this._b|0,it=this._c|0,ot=this._d|0,at=this._e|0,st=0;st<16;++st)et[st]=tt.readInt32BE(st*4);for(;st<80;++st)et[st]=et[st-3]^et[st-8]^et[st-14]^et[st-16];for(var lt=0;lt<80;++lt){var ct=~~(lt/20),ut=rotl5$1(nt)+ft$1(ct,rt,it,ot)+at+et[lt]+K$4[ct]|0;at=ot,ot=it,it=rotl30$1(rt),rt=nt,nt=ut}this._a=nt+this._a|0,this._b=rt+this._b|0,this._c=it+this._c|0,this._d=ot+this._d|0,this._e=at+this._e|0};Sha.prototype._hash=function(){var tt=Buffer$B.allocUnsafe(20);return tt.writeInt32BE(this._a|0,0),tt.writeInt32BE(this._b|0,4),tt.writeInt32BE(this._c|0,8),tt.writeInt32BE(this._d|0,12),tt.writeInt32BE(this._e|0,16),tt};var sha$4=Sha,inherits$r=inherits_browserExports,Hash$7=hash$4,Buffer$A=safeBufferExports.Buffer,K$3=[1518500249,1859775393,-1894007588,-899497514],W$4=new Array(80);function Sha1(){this.init(),this._w=W$4,Hash$7.call(this,64,56)}inherits$r(Sha1,Hash$7);Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function rotl1(tt){return tt<<1|tt>>>31}function rotl5(tt){return tt<<5|tt>>>27}function rotl30(tt){return tt<<30|tt>>>2}function ft(tt,et,nt,rt){return tt===0?et&nt|~et&rt:tt===2?et&nt|et&rt|nt&rt:et^nt^rt}Sha1.prototype._update=function(tt){for(var et=this._w,nt=this._a|0,rt=this._b|0,it=this._c|0,ot=this._d|0,at=this._e|0,st=0;st<16;++st)et[st]=tt.readInt32BE(st*4);for(;st<80;++st)et[st]=rotl1(et[st-3]^et[st-8]^et[st-14]^et[st-16]);for(var lt=0;lt<80;++lt){var ct=~~(lt/20),ut=rotl5(nt)+ft(ct,rt,it,ot)+at+et[lt]+K$3[ct]|0;at=ot,ot=it,it=rotl30(rt),rt=nt,nt=ut}this._a=nt+this._a|0,this._b=rt+this._b|0,this._c=it+this._c|0,this._d=ot+this._d|0,this._e=at+this._e|0};Sha1.prototype._hash=function(){var tt=Buffer$A.allocUnsafe(20);return tt.writeInt32BE(this._a|0,0),tt.writeInt32BE(this._b|0,4),tt.writeInt32BE(this._c|0,8),tt.writeInt32BE(this._d|0,12),tt.writeInt32BE(this._e|0,16),tt};var sha1$1=Sha1,inherits$q=inherits_browserExports,Hash$6=hash$4,Buffer$z=safeBufferExports.Buffer,K$2=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],W$3=new Array(64);function Sha256$1(){this.init(),this._w=W$3,Hash$6.call(this,64,56)}inherits$q(Sha256$1,Hash$6);Sha256$1.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function ch(tt,et,nt){return nt^tt&(et^nt)}function maj$1(tt,et,nt){return tt&et|nt&(tt|et)}function sigma0$1(tt){return(tt>>>2|tt<<30)^(tt>>>13|tt<<19)^(tt>>>22|tt<<10)}function sigma1$1(tt){return(tt>>>6|tt<<26)^(tt>>>11|tt<<21)^(tt>>>25|tt<<7)}function gamma0(tt){return(tt>>>7|tt<<25)^(tt>>>18|tt<<14)^tt>>>3}function gamma1(tt){return(tt>>>17|tt<<15)^(tt>>>19|tt<<13)^tt>>>10}Sha256$1.prototype._update=function(tt){for(var et=this._w,nt=this._a|0,rt=this._b|0,it=this._c|0,ot=this._d|0,at=this._e|0,st=this._f|0,lt=this._g|0,ct=this._h|0,ut=0;ut<16;++ut)et[ut]=tt.readInt32BE(ut*4);for(;ut<64;++ut)et[ut]=gamma1(et[ut-2])+et[ut-7]+gamma0(et[ut-15])+et[ut-16]|0;for(var ht=0;ht<64;++ht){var dt=ct+sigma1$1(at)+ch(at,st,lt)+K$2[ht]+et[ht]|0,pt=sigma0$1(nt)+maj$1(nt,rt,it)|0;ct=lt,lt=st,st=at,at=ot+dt|0,ot=it,it=rt,rt=nt,nt=dt+pt|0}this._a=nt+this._a|0,this._b=rt+this._b|0,this._c=it+this._c|0,this._d=ot+this._d|0,this._e=at+this._e|0,this._f=st+this._f|0,this._g=lt+this._g|0,this._h=ct+this._h|0};Sha256$1.prototype._hash=function(){var tt=Buffer$z.allocUnsafe(32);return tt.writeInt32BE(this._a,0),tt.writeInt32BE(this._b,4),tt.writeInt32BE(this._c,8),tt.writeInt32BE(this._d,12),tt.writeInt32BE(this._e,16),tt.writeInt32BE(this._f,20),tt.writeInt32BE(this._g,24),tt.writeInt32BE(this._h,28),tt};var sha256$4=Sha256$1,inherits$p=inherits_browserExports,Sha256=sha256$4,Hash$5=hash$4,Buffer$y=safeBufferExports.Buffer,W$2=new Array(64);function Sha224(){this.init(),this._w=W$2,Hash$5.call(this,64,56)}inherits$p(Sha224,Sha256);Sha224.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};Sha224.prototype._hash=function(){var tt=Buffer$y.allocUnsafe(28);return tt.writeInt32BE(this._a,0),tt.writeInt32BE(this._b,4),tt.writeInt32BE(this._c,8),tt.writeInt32BE(this._d,12),tt.writeInt32BE(this._e,16),tt.writeInt32BE(this._f,20),tt.writeInt32BE(this._g,24),tt};var sha224$1=Sha224,inherits$o=inherits_browserExports,Hash$4=hash$4,Buffer$x=safeBufferExports.Buffer,K$1=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],W$1=new Array(160);function Sha512(){this.init(),this._w=W$1,Hash$4.call(this,128,112)}inherits$o(Sha512,Hash$4);Sha512.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function Ch(tt,et,nt){return nt^tt&(et^nt)}function maj(tt,et,nt){return tt&et|nt&(tt|et)}function sigma0(tt,et){return(tt>>>28|et<<4)^(et>>>2|tt<<30)^(et>>>7|tt<<25)}function sigma1(tt,et){return(tt>>>14|et<<18)^(tt>>>18|et<<14)^(et>>>9|tt<<23)}function Gamma0(tt,et){return(tt>>>1|et<<31)^(tt>>>8|et<<24)^tt>>>7}function Gamma0l(tt,et){return(tt>>>1|et<<31)^(tt>>>8|et<<24)^(tt>>>7|et<<25)}function Gamma1(tt,et){return(tt>>>19|et<<13)^(et>>>29|tt<<3)^tt>>>6}function Gamma1l(tt,et){return(tt>>>19|et<<13)^(et>>>29|tt<<3)^(tt>>>6|et<<26)}function getCarry(tt,et){return tt>>>0>>0?1:0}Sha512.prototype._update=function(tt){for(var et=this._w,nt=this._ah|0,rt=this._bh|0,it=this._ch|0,ot=this._dh|0,at=this._eh|0,st=this._fh|0,lt=this._gh|0,ct=this._hh|0,ut=this._al|0,ht=this._bl|0,dt=this._cl|0,pt=this._dl|0,mt=this._el|0,gt=this._fl|0,yt=this._gl|0,bt=this._hl|0,wt=0;wt<32;wt+=2)et[wt]=tt.readInt32BE(wt*4),et[wt+1]=tt.readInt32BE(wt*4+4);for(;wt<160;wt+=2){var vt=et[wt-30],kt=et[wt-15*2+1],St=Gamma0(vt,kt),Tt=Gamma0l(kt,vt);vt=et[wt-2*2],kt=et[wt-2*2+1];var At=Gamma1(vt,kt),Et=Gamma1l(kt,vt),Mt=et[wt-7*2],Lt=et[wt-7*2+1],jt=et[wt-16*2],Rt=et[wt-16*2+1],$t=Tt+Lt|0,xt=St+Mt+getCarry($t,Tt)|0;$t=$t+Et|0,xt=xt+At+getCarry($t,Et)|0,$t=$t+Rt|0,xt=xt+jt+getCarry($t,Rt)|0,et[wt]=xt,et[wt+1]=$t}for(var It=0;It<160;It+=2){xt=et[It],$t=et[It+1];var Ot=maj(nt,rt,it),zt=maj(ut,ht,dt),Ut=sigma0(nt,ut),Wt=sigma0(ut,nt),Ft=sigma1(at,mt),Nt=sigma1(mt,at),Ct=K$1[It],Ht=K$1[It+1],Jt=Ch(at,st,lt),nn=Ch(mt,gt,yt),Yt=bt+Nt|0,fn=ct+Ft+getCarry(Yt,bt)|0;Yt=Yt+nn|0,fn=fn+Jt+getCarry(Yt,nn)|0,Yt=Yt+Ht|0,fn=fn+Ct+getCarry(Yt,Ht)|0,Yt=Yt+$t|0,fn=fn+xt+getCarry(Yt,$t)|0;var cn=Wt+zt|0,_n=Ut+Ot+getCarry(cn,Wt)|0;ct=lt,bt=yt,lt=st,yt=gt,st=at,gt=mt,mt=pt+Yt|0,at=ot+fn+getCarry(mt,pt)|0,ot=it,pt=dt,it=rt,dt=ht,rt=nt,ht=ut,ut=Yt+cn|0,nt=fn+_n+getCarry(ut,Yt)|0}this._al=this._al+ut|0,this._bl=this._bl+ht|0,this._cl=this._cl+dt|0,this._dl=this._dl+pt|0,this._el=this._el+mt|0,this._fl=this._fl+gt|0,this._gl=this._gl+yt|0,this._hl=this._hl+bt|0,this._ah=this._ah+nt+getCarry(this._al,ut)|0,this._bh=this._bh+rt+getCarry(this._bl,ht)|0,this._ch=this._ch+it+getCarry(this._cl,dt)|0,this._dh=this._dh+ot+getCarry(this._dl,pt)|0,this._eh=this._eh+at+getCarry(this._el,mt)|0,this._fh=this._fh+st+getCarry(this._fl,gt)|0,this._gh=this._gh+lt+getCarry(this._gl,yt)|0,this._hh=this._hh+ct+getCarry(this._hl,bt)|0};Sha512.prototype._hash=function(){var tt=Buffer$x.allocUnsafe(64);function et(nt,rt,it){tt.writeInt32BE(nt,it),tt.writeInt32BE(rt,it+4)}return et(this._ah,this._al,0),et(this._bh,this._bl,8),et(this._ch,this._cl,16),et(this._dh,this._dl,24),et(this._eh,this._el,32),et(this._fh,this._fl,40),et(this._gh,this._gl,48),et(this._hh,this._hl,56),tt};var sha512$1=Sha512,inherits$n=inherits_browserExports,SHA512$2=sha512$1,Hash$3=hash$4,Buffer$w=safeBufferExports.Buffer,W=new Array(160);function Sha384(){this.init(),this._w=W,Hash$3.call(this,128,112)}inherits$n(Sha384,SHA512$2);Sha384.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};Sha384.prototype._hash=function(){var tt=Buffer$w.allocUnsafe(48);function et(nt,rt,it){tt.writeInt32BE(nt,it),tt.writeInt32BE(rt,it+4)}return et(this._ah,this._al,0),et(this._bh,this._bl,8),et(this._ch,this._cl,16),et(this._dh,this._dl,24),et(this._eh,this._el,32),et(this._fh,this._fl,40),tt};var sha384$1=Sha384,exports=sha_js.exports=function(et){et=et.toLowerCase();var nt=exports[et];if(!nt)throw new Error(et+" is not supported (we accept pull requests)");return new nt};exports.sha=sha$4;exports.sha1=sha1$1;exports.sha224=sha224$1;exports.sha256=sha256$4;exports.sha384=sha384$1;exports.sha512=sha512$1;var sha_jsExports=sha_js.exports,streamBrowserify=Stream,EE=eventsExports.EventEmitter,inherits$m=inherits_browserExports;inherits$m(Stream,EE);Stream.Readable=require_stream_readable();Stream.Writable=require_stream_writable();Stream.Duplex=require_stream_duplex();Stream.Transform=_stream_transform;Stream.PassThrough=_stream_passthrough;Stream.finished=endOfStream;Stream.pipeline=pipeline_1;Stream.Stream=Stream;function Stream(){EE.call(this)}Stream.prototype.pipe=function(tt,et){var nt=this;function rt(ut){tt.writable&&tt.write(ut)===!1&&nt.pause&&nt.pause()}nt.on("data",rt);function it(){nt.readable&&nt.resume&&nt.resume()}tt.on("drain",it),!tt._isStdio&&(!et||et.end!==!1)&&(nt.on("end",at),nt.on("close",st));var ot=!1;function at(){ot||(ot=!0,tt.end())}function st(){ot||(ot=!0,typeof tt.destroy=="function"&&tt.destroy())}function lt(ut){if(ct(),EE.listenerCount(this,"error")===0)throw ut}nt.on("error",lt),tt.on("error",lt);function ct(){nt.removeListener("data",rt),tt.removeListener("drain",it),nt.removeListener("end",at),nt.removeListener("close",st),nt.removeListener("error",lt),tt.removeListener("error",lt),nt.removeListener("end",ct),nt.removeListener("close",ct),tt.removeListener("close",ct)}return nt.on("end",ct),nt.on("close",ct),tt.on("close",ct),tt.emit("pipe",nt),tt};var Buffer$v=safeBufferExports.Buffer,Transform$4=streamBrowserify.Transform,StringDecoder=string_decoder.StringDecoder,inherits$l=inherits_browserExports;function CipherBase$1(tt){Transform$4.call(this),this.hashMode=typeof tt=="string",this.hashMode?this[tt]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}inherits$l(CipherBase$1,Transform$4);CipherBase$1.prototype.update=function(tt,et,nt){typeof tt=="string"&&(tt=Buffer$v.from(tt,et));var rt=this._update(tt);return this.hashMode?this:(nt&&(rt=this._toString(rt,nt)),rt)};CipherBase$1.prototype.setAutoPadding=function(){};CipherBase$1.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")};CipherBase$1.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")};CipherBase$1.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")};CipherBase$1.prototype._transform=function(tt,et,nt){var rt;try{this.hashMode?this._update(tt):this.push(this._update(tt))}catch(it){rt=it}finally{nt(rt)}};CipherBase$1.prototype._flush=function(tt){var et;try{this.push(this.__final())}catch(nt){et=nt}tt(et)};CipherBase$1.prototype._finalOrDigest=function(tt){var et=this.__final()||Buffer$v.alloc(0);return tt&&(et=this._toString(et,tt,!0)),et};CipherBase$1.prototype._toString=function(tt,et,nt){if(this._decoder||(this._decoder=new StringDecoder(et),this._encoding=et),this._encoding!==et)throw new Error("can't switch encodings");var rt=this._decoder.write(tt);return nt&&(rt+=this._decoder.end()),rt};var cipherBase=CipherBase$1,inherits$k=inherits_browserExports,MD5$2=md5_js,RIPEMD160$4=ripemd160$1,sha$3=sha_jsExports,Base$5=cipherBase;function Hash$2(tt){Base$5.call(this,"digest"),this._hash=tt}inherits$k(Hash$2,Base$5);Hash$2.prototype._update=function(tt){this._hash.update(tt)};Hash$2.prototype._final=function(){return this._hash.digest()};var browser$a=function(et){return et=et.toLowerCase(),et==="md5"?new MD5$2:et==="rmd160"||et==="ripemd160"?new RIPEMD160$4:new Hash$2(sha$3(et))},inherits$j=inherits_browserExports,Buffer$u=safeBufferExports.Buffer,Base$4=cipherBase,ZEROS$2=Buffer$u.alloc(128),blocksize=64;function Hmac$3(tt,et){Base$4.call(this,"digest"),typeof et=="string"&&(et=Buffer$u.from(et)),this._alg=tt,this._key=et,et.length>blocksize?et=tt(et):et.lengthnt){var rt=tt==="rmd160"?new RIPEMD160$3:sha$2(tt);et=rt.update(et).digest()}else et.lengthMAX_ALLOC||et!==et)throw new TypeError("Bad key length")},defaultEncoding$2;if(commonjsGlobal.process&&commonjsGlobal.process.browser)defaultEncoding$2="utf-8";else if(commonjsGlobal.process&&commonjsGlobal.process.version){var pVersionMajor=parseInt(process.version.split(".")[0].slice(1),10);defaultEncoding$2=pVersionMajor>=6?"utf-8":"binary"}else defaultEncoding$2="utf-8";var defaultEncoding_1=defaultEncoding$2,Buffer$s=safeBufferExports.Buffer,toBuffer$3=function(tt,et,nt){if(Buffer$s.isBuffer(tt))return tt;if(typeof tt=="string")return Buffer$s.from(tt,et);if(ArrayBuffer.isView(tt))return Buffer$s.from(tt.buffer);throw new TypeError(nt+" must be a string, a Buffer, a typed array or a DataView")},md5=md5$2,RIPEMD160$2=ripemd160$1,sha$1=sha_jsExports,Buffer$r=safeBufferExports.Buffer,checkParameters$1=precondition,defaultEncoding$1=defaultEncoding_1,toBuffer$2=toBuffer$3,ZEROS=Buffer$r.alloc(128),sizes={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function Hmac$1(tt,et,nt){var rt=getDigest(tt),it=tt==="sha512"||tt==="sha384"?128:64;et.length>it?et=rt(et):et.length>>0};utils$q.writeUInt32BE=function(et,nt,rt){et[0+rt]=nt>>>24,et[1+rt]=nt>>>16&255,et[2+rt]=nt>>>8&255,et[3+rt]=nt&255};utils$q.ip=function(et,nt,rt,it){for(var ot=0,at=0,st=6;st>=0;st-=2){for(var lt=0;lt<=24;lt+=8)ot<<=1,ot|=nt>>>lt+st&1;for(var lt=0;lt<=24;lt+=8)ot<<=1,ot|=et>>>lt+st&1}for(var st=6;st>=0;st-=2){for(var lt=1;lt<=25;lt+=8)at<<=1,at|=nt>>>lt+st&1;for(var lt=1;lt<=25;lt+=8)at<<=1,at|=et>>>lt+st&1}rt[it+0]=ot>>>0,rt[it+1]=at>>>0};utils$q.rip=function(et,nt,rt,it){for(var ot=0,at=0,st=0;st<4;st++)for(var lt=24;lt>=0;lt-=8)ot<<=1,ot|=nt>>>lt+st&1,ot<<=1,ot|=et>>>lt+st&1;for(var st=4;st<8;st++)for(var lt=24;lt>=0;lt-=8)at<<=1,at|=nt>>>lt+st&1,at<<=1,at|=et>>>lt+st&1;rt[it+0]=ot>>>0,rt[it+1]=at>>>0};utils$q.pc1=function(et,nt,rt,it){for(var ot=0,at=0,st=7;st>=5;st--){for(var lt=0;lt<=24;lt+=8)ot<<=1,ot|=nt>>lt+st&1;for(var lt=0;lt<=24;lt+=8)ot<<=1,ot|=et>>lt+st&1}for(var lt=0;lt<=24;lt+=8)ot<<=1,ot|=nt>>lt+st&1;for(var st=1;st<=3;st++){for(var lt=0;lt<=24;lt+=8)at<<=1,at|=nt>>lt+st&1;for(var lt=0;lt<=24;lt+=8)at<<=1,at|=et>>lt+st&1}for(var lt=0;lt<=24;lt+=8)at<<=1,at|=et>>lt+st&1;rt[it+0]=ot>>>0,rt[it+1]=at>>>0};utils$q.r28shl=function(et,nt){return et<>>28-nt};var pc2table=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];utils$q.pc2=function(et,nt,rt,it){for(var ot=0,at=0,st=pc2table.length>>>1,lt=0;lt>>pc2table[lt]&1;for(var lt=st;lt>>pc2table[lt]&1;rt[it+0]=ot>>>0,rt[it+1]=at>>>0};utils$q.expand=function(et,nt,rt){var it=0,ot=0;it=(et&1)<<5|et>>>27;for(var at=23;at>=15;at-=4)it<<=6,it|=et>>>at&63;for(var at=11;at>=3;at-=4)ot|=et>>>at&63,ot<<=6;ot|=(et&31)<<1|et>>>31,nt[rt+0]=it>>>0,nt[rt+1]=ot>>>0};var sTable=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];utils$q.substitute=function(et,nt){for(var rt=0,it=0;it<4;it++){var ot=et>>>18-it*6&63,at=sTable[it*64+ot];rt<<=4,rt|=at}for(var it=0;it<4;it++){var ot=nt>>>18-it*6&63,at=sTable[4*64+it*64+ot];rt<<=4,rt|=at}return rt>>>0};var permuteTable=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];utils$q.permute=function(et){for(var nt=0,rt=0;rt>>permuteTable[rt]&1;return nt>>>0};utils$q.padSplit=function(et,nt,rt){for(var it=et.toString(2);it.length0;it--)nt+=this._buffer(et,nt),rt+=this._flushBuffer(ot,rt);return nt+=this._buffer(et,nt),ot};Cipher$3.prototype.final=function(et){var nt;et&&(nt=this.update(et));var rt;return this.type==="encrypt"?rt=this._finalEncrypt():rt=this._finalDecrypt(),nt?nt.concat(rt):rt};Cipher$3.prototype._pad=function(et,nt){if(nt===0)return!1;for(;nt>>1];rt=utils$p.r28shl(rt,at),it=utils$p.r28shl(it,at),utils$p.pc2(rt,it,et.keys,ot)}};DES$3.prototype._update=function(et,nt,rt,it){var ot=this._desState,at=utils$p.readUInt32BE(et,nt),st=utils$p.readUInt32BE(et,nt+4);utils$p.ip(at,st,ot.tmp,0),at=ot.tmp[0],st=ot.tmp[1],this.type==="encrypt"?this._encrypt(ot,at,st,ot.tmp,0):this._decrypt(ot,at,st,ot.tmp,0),at=ot.tmp[0],st=ot.tmp[1],utils$p.writeUInt32BE(rt,at,it),utils$p.writeUInt32BE(rt,st,it+4)};DES$3.prototype._pad=function(et,nt){if(this.padding===!1)return!1;for(var rt=et.length-nt,it=nt;it>>0,at=pt}utils$p.rip(st,at,it,ot)};DES$3.prototype._decrypt=function(et,nt,rt,it,ot){for(var at=rt,st=nt,lt=et.keys.length-2;lt>=0;lt-=2){var ct=et.keys[lt],ut=et.keys[lt+1];utils$p.expand(at,et.tmp,0),ct^=et.tmp[0],ut^=et.tmp[1];var ht=utils$p.substitute(ct,ut),dt=utils$p.permute(ht),pt=at;at=(st^dt)>>>0,st=pt}utils$p.rip(at,st,it,ot)};var cbc$1={},assert$m=minimalisticAssert,inherits$g=inherits_browserExports,proto$3={};function CBCState(tt){assert$m.equal(tt.length,8,"Invalid IV length"),this.iv=new Array(8);for(var et=0;et>it%8,tt._prev=shiftIn(tt._prev,nt?st:lt);return at}function shiftIn(tt,et){var nt=tt.length,rt=-1,it=Buffer$m.allocUnsafe(tt.length);for(tt=Buffer$m.concat([tt,Buffer$m.from([et])]);++rt>7;return it}cfb1.encrypt=function(tt,et,nt){for(var rt=et.length,it=Buffer$m.allocUnsafe(rt),ot=-1;++ot>>24]^at[ut>>>16&255]^st[ht>>>8&255]^lt[dt&255]^et[bt++],mt=ot[ut>>>24]^at[ht>>>16&255]^st[dt>>>8&255]^lt[ct&255]^et[bt++],gt=ot[ht>>>24]^at[dt>>>16&255]^st[ct>>>8&255]^lt[ut&255]^et[bt++],yt=ot[dt>>>24]^at[ct>>>16&255]^st[ut>>>8&255]^lt[ht&255]^et[bt++],ct=pt,ut=mt,ht=gt,dt=yt;return pt=(rt[ct>>>24]<<24|rt[ut>>>16&255]<<16|rt[ht>>>8&255]<<8|rt[dt&255])^et[bt++],mt=(rt[ut>>>24]<<24|rt[ht>>>16&255]<<16|rt[dt>>>8&255]<<8|rt[ct&255])^et[bt++],gt=(rt[ht>>>24]<<24|rt[dt>>>16&255]<<16|rt[ct>>>8&255]<<8|rt[ut&255])^et[bt++],yt=(rt[dt>>>24]<<24|rt[ct>>>16&255]<<16|rt[ut>>>8&255]<<8|rt[ht&255])^et[bt++],pt=pt>>>0,mt=mt>>>0,gt=gt>>>0,yt=yt>>>0,[pt,mt,gt,yt]}var RCON=[0,1,2,4,8,16,32,64,128,27,54],G=function(){for(var tt=new Array(256),et=0;et<256;et++)et<128?tt[et]=et<<1:tt[et]=et<<1^283;for(var nt=[],rt=[],it=[[],[],[],[]],ot=[[],[],[],[]],at=0,st=0,lt=0;lt<256;++lt){var ct=st^st<<1^st<<2^st<<3^st<<4;ct=ct>>>8^ct&255^99,nt[at]=ct,rt[ct]=at;var ut=tt[at],ht=tt[ut],dt=tt[ht],pt=tt[ct]*257^ct*16843008;it[0][at]=pt<<24|pt>>>8,it[1][at]=pt<<16|pt>>>16,it[2][at]=pt<<8|pt>>>24,it[3][at]=pt,pt=dt*16843009^ht*65537^ut*257^at*16843008,ot[0][ct]=pt<<24|pt>>>8,ot[1][ct]=pt<<16|pt>>>16,ot[2][ct]=pt<<8|pt>>>24,ot[3][ct]=pt,at===0?at=st=1:(at=ut^tt[tt[tt[dt^ut]]],st^=tt[tt[st]])}return{SBOX:nt,INV_SBOX:rt,SUB_MIX:it,INV_SUB_MIX:ot}}();function AES(tt){this._key=asUInt32Array(tt),this._reset()}AES.blockSize=4*4;AES.keySize=256/8;AES.prototype.blockSize=AES.blockSize;AES.prototype.keySize=AES.keySize;AES.prototype._reset=function(){for(var tt=this._key,et=tt.length,nt=et+6,rt=(nt+1)*4,it=[],ot=0;ot>>24,at=G.SBOX[at>>>24]<<24|G.SBOX[at>>>16&255]<<16|G.SBOX[at>>>8&255]<<8|G.SBOX[at&255],at^=RCON[ot/et|0]<<24):et>6&&ot%et===4&&(at=G.SBOX[at>>>24]<<24|G.SBOX[at>>>16&255]<<16|G.SBOX[at>>>8&255]<<8|G.SBOX[at&255]),it[ot]=it[ot-et]^at}for(var st=[],lt=0;lt>>24]]^G.INV_SUB_MIX[1][G.SBOX[ut>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[ut>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[ut&255]]}this._nRounds=nt,this._keySchedule=it,this._invKeySchedule=st};AES.prototype.encryptBlockRaw=function(tt){return tt=asUInt32Array(tt),cryptBlock(tt,this._keySchedule,G.SUB_MIX,G.SBOX,this._nRounds)};AES.prototype.encryptBlock=function(tt){var et=this.encryptBlockRaw(tt),nt=Buffer$k.allocUnsafe(16);return nt.writeUInt32BE(et[0],0),nt.writeUInt32BE(et[1],4),nt.writeUInt32BE(et[2],8),nt.writeUInt32BE(et[3],12),nt};AES.prototype.decryptBlock=function(tt){tt=asUInt32Array(tt);var et=tt[1];tt[1]=tt[3],tt[3]=et;var nt=cryptBlock(tt,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX,this._nRounds),rt=Buffer$k.allocUnsafe(16);return rt.writeUInt32BE(nt[0],0),rt.writeUInt32BE(nt[3],4),rt.writeUInt32BE(nt[2],8),rt.writeUInt32BE(nt[1],12),rt};AES.prototype.scrub=function(){scrubVec(this._keySchedule),scrubVec(this._invKeySchedule),scrubVec(this._key)};aes$5.AES=AES;var Buffer$j=safeBufferExports.Buffer,ZEROES=Buffer$j.alloc(16,0);function toArray$5(tt){return[tt.readUInt32BE(0),tt.readUInt32BE(4),tt.readUInt32BE(8),tt.readUInt32BE(12)]}function fromArray(tt){var et=Buffer$j.allocUnsafe(16);return et.writeUInt32BE(tt[0]>>>0,0),et.writeUInt32BE(tt[1]>>>0,4),et.writeUInt32BE(tt[2]>>>0,8),et.writeUInt32BE(tt[3]>>>0,12),et}function GHASH$1(tt){this.h=tt,this.state=Buffer$j.alloc(16,0),this.cache=Buffer$j.allocUnsafe(0)}GHASH$1.prototype.ghash=function(tt){for(var et=-1;++et0;nt--)tt[nt]=tt[nt]>>>1|(tt[nt-1]&1)<<31;tt[0]=tt[0]>>>1,it&&(tt[0]=tt[0]^225<<24)}this.state=fromArray(et)};GHASH$1.prototype.update=function(tt){this.cache=Buffer$j.concat([this.cache,tt]);for(var et;this.cache.length>=16;)et=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(et)};GHASH$1.prototype.final=function(tt,et){return this.cache.length&&this.ghash(Buffer$j.concat([this.cache,ZEROES],16)),this.ghash(fromArray([0,tt,0,et])),this.state};var ghash=GHASH$1,aes$4=aes$5,Buffer$i=safeBufferExports.Buffer,Transform$3=cipherBase,inherits$d=inherits_browserExports,GHASH=ghash,xor$3=bufferXor,incr32=incr32_1;function xorTest(tt,et){var nt=0;tt.length!==et.length&&nt++;for(var rt=Math.min(tt.length,et.length),it=0;it0||rt>0;){var lt=new MD5;lt.update(st),lt.update(tt),et&<.update(et),st=lt.digest();var ct=0;if(it>0){var ut=ot.length-it;ct=Math.min(it,st.length),st.copy(ot,ut,0,ct),it-=ct}if(ct0){var ht=at.length-rt,dt=Math.min(rt,st.length-ct);st.copy(at,ht,ct,ct+dt),rt-=dt}}return st.fill(0),{key:ot,iv:at}}var evp_bytestokey=EVP_BytesToKey,MODES$1=modes_1,AuthCipher$1=authCipher,Buffer$f=safeBufferExports.Buffer,StreamCipher$1=streamCipher,Transform$1=cipherBase,aes$2=aes$5,ebtk$2=evp_bytestokey,inherits$b=inherits_browserExports;function Cipher(tt,et,nt){Transform$1.call(this),this._cache=new Splitter$1,this._cipher=new aes$2.AES(et),this._prev=Buffer$f.from(nt),this._mode=tt,this._autopadding=!0}inherits$b(Cipher,Transform$1);Cipher.prototype._update=function(tt){this._cache.add(tt);for(var et,nt,rt=[];et=this._cache.get();)nt=this._mode.encrypt(this,et),rt.push(nt);return Buffer$f.concat(rt)};var PADDING=Buffer$f.alloc(16,16);Cipher.prototype._final=function(){var tt=this._cache.flush();if(this._autopadding)return tt=this._mode.encrypt(this,tt),this._cipher.scrub(),tt;if(!tt.equals(PADDING))throw this._cipher.scrub(),new Error("data not multiple of block length")};Cipher.prototype.setAutoPadding=function(tt){return this._autopadding=!!tt,this};function Splitter$1(){this.cache=Buffer$f.allocUnsafe(0)}Splitter$1.prototype.add=function(tt){this.cache=Buffer$f.concat([this.cache,tt])};Splitter$1.prototype.get=function(){if(this.cache.length>15){var tt=this.cache.slice(0,16);return this.cache=this.cache.slice(16),tt}return null};Splitter$1.prototype.flush=function(){for(var tt=16-this.cache.length,et=Buffer$f.allocUnsafe(tt),nt=-1;++nt16)return et=this.cache.slice(0,16),this.cache=this.cache.slice(16),et}else if(this.cache.length>=16)return et=this.cache.slice(0,16),this.cache=this.cache.slice(16),et;return null};Splitter.prototype.flush=function(){if(this.cache.length)return this.cache};function unpad(tt){var et=tt[15];if(et<1||et>16)throw new Error("unable to decrypt data");for(var nt=-1;++nt0?Rt:$t},ot.min=function(Rt,$t){return Rt.cmp($t)<0?Rt:$t},ot.prototype._init=function(Rt,$t,xt){if(typeof Rt=="number")return this._initNumber(Rt,$t,xt);if(typeof Rt=="object")return this._initArray(Rt,$t,xt);$t==="hex"&&($t=16),rt($t===($t|0)&&$t>=2&&$t<=36),Rt=Rt.toString().replace(/\s+/g,"");var It=0;Rt[0]==="-"&&(It++,this.negative=1),It=0;It-=3)zt=Rt[It]|Rt[It-1]<<8|Rt[It-2]<<16,this.words[Ot]|=zt<>>26-Ut&67108863,Ut+=24,Ut>=26&&(Ut-=26,Ot++);else if(xt==="le")for(It=0,Ot=0;It>>26-Ut&67108863,Ut+=24,Ut>=26&&(Ut-=26,Ot++);return this.strip()};function st(jt,Rt){var $t=jt.charCodeAt(Rt);return $t>=65&&$t<=70?$t-55:$t>=97&&$t<=102?$t-87:$t-48&15}function lt(jt,Rt,$t){var xt=st(jt,$t);return $t-1>=Rt&&(xt|=st(jt,$t-1)<<4),xt}ot.prototype._parseHex=function(Rt,$t,xt){this.length=Math.ceil((Rt.length-$t)/6),this.words=new Array(this.length);for(var It=0;It=$t;It-=2)Ut=lt(Rt,$t,It)<=18?(Ot-=18,zt+=1,this.words[zt]|=Ut>>>26):Ot+=8;else{var Wt=Rt.length-$t;for(It=Wt%2===0?$t+1:$t;It=18?(Ot-=18,zt+=1,this.words[zt]|=Ut>>>26):Ot+=8}this.strip()};function ct(jt,Rt,$t,xt){for(var It=0,Ot=Math.min(jt.length,$t),zt=Rt;zt=49?It+=Ut-49+10:Ut>=17?It+=Ut-17+10:It+=Ut}return It}ot.prototype._parseBase=function(Rt,$t,xt){this.words=[0],this.length=1;for(var It=0,Ot=1;Ot<=67108863;Ot*=$t)It++;It--,Ot=Ot/$t|0;for(var zt=Rt.length-xt,Ut=zt%It,Wt=Math.min(zt,zt-Ut)+xt,Ft=0,Nt=xt;Nt1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},ot.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},ot.prototype.inspect=function(){return(this.red?""};var ut=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],ht=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],dt=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];ot.prototype.toString=function(Rt,$t){Rt=Rt||10,$t=$t|0||1;var xt;if(Rt===16||Rt==="hex"){xt="";for(var It=0,Ot=0,zt=0;zt>>24-It&16777215,Ot!==0||zt!==this.length-1?xt=ut[6-Wt.length]+Wt+xt:xt=Wt+xt,It+=2,It>=26&&(It-=26,zt--)}for(Ot!==0&&(xt=Ot.toString(16)+xt);xt.length%$t!==0;)xt="0"+xt;return this.negative!==0&&(xt="-"+xt),xt}if(Rt===(Rt|0)&&Rt>=2&&Rt<=36){var Ft=ht[Rt],Nt=dt[Rt];xt="";var Ct=this.clone();for(Ct.negative=0;!Ct.isZero();){var Ht=Ct.modn(Nt).toString(Rt);Ct=Ct.idivn(Nt),Ct.isZero()?xt=Ht+xt:xt=ut[Ft-Ht.length]+Ht+xt}for(this.isZero()&&(xt="0"+xt);xt.length%$t!==0;)xt="0"+xt;return this.negative!==0&&(xt="-"+xt),xt}rt(!1,"Base should be between 2 and 36")},ot.prototype.toNumber=function(){var Rt=this.words[0];return this.length===2?Rt+=this.words[1]*67108864:this.length===3&&this.words[2]===1?Rt+=4503599627370496+this.words[1]*67108864:this.length>2&&rt(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-Rt:Rt},ot.prototype.toJSON=function(){return this.toString(16)},ot.prototype.toBuffer=function(Rt,$t){return rt(typeof at<"u"),this.toArrayLike(at,Rt,$t)},ot.prototype.toArray=function(Rt,$t){return this.toArrayLike(Array,Rt,$t)},ot.prototype.toArrayLike=function(Rt,$t,xt){var It=this.byteLength(),Ot=xt||Math.max(1,It);rt(It<=Ot,"byte array longer than desired length"),rt(Ot>0,"Requested array length <= 0"),this.strip();var zt=$t==="le",Ut=new Rt(Ot),Wt,Ft,Nt=this.clone();if(zt){for(Ft=0;!Nt.isZero();Ft++)Wt=Nt.andln(255),Nt.iushrn(8),Ut[Ft]=Wt;for(;Ft=4096&&(xt+=13,$t>>>=13),$t>=64&&(xt+=7,$t>>>=7),$t>=8&&(xt+=4,$t>>>=4),$t>=2&&(xt+=2,$t>>>=2),xt+$t},ot.prototype._zeroBits=function(Rt){if(Rt===0)return 26;var $t=Rt,xt=0;return $t&8191||(xt+=13,$t>>>=13),$t&127||(xt+=7,$t>>>=7),$t&15||(xt+=4,$t>>>=4),$t&3||(xt+=2,$t>>>=2),$t&1||xt++,xt},ot.prototype.bitLength=function(){var Rt=this.words[this.length-1],$t=this._countBits(Rt);return(this.length-1)*26+$t};function pt(jt){for(var Rt=new Array(jt.bitLength()),$t=0;$t>>It}return Rt}ot.prototype.zeroBits=function(){if(this.isZero())return 0;for(var Rt=0,$t=0;$tRt.length?this.clone().ior(Rt):Rt.clone().ior(this)},ot.prototype.uor=function(Rt){return this.length>Rt.length?this.clone().iuor(Rt):Rt.clone().iuor(this)},ot.prototype.iuand=function(Rt){var $t;this.length>Rt.length?$t=Rt:$t=this;for(var xt=0;xt<$t.length;xt++)this.words[xt]=this.words[xt]&Rt.words[xt];return this.length=$t.length,this.strip()},ot.prototype.iand=function(Rt){return rt((this.negative|Rt.negative)===0),this.iuand(Rt)},ot.prototype.and=function(Rt){return this.length>Rt.length?this.clone().iand(Rt):Rt.clone().iand(this)},ot.prototype.uand=function(Rt){return this.length>Rt.length?this.clone().iuand(Rt):Rt.clone().iuand(this)},ot.prototype.iuxor=function(Rt){var $t,xt;this.length>Rt.length?($t=this,xt=Rt):($t=Rt,xt=this);for(var It=0;ItRt.length?this.clone().ixor(Rt):Rt.clone().ixor(this)},ot.prototype.uxor=function(Rt){return this.length>Rt.length?this.clone().iuxor(Rt):Rt.clone().iuxor(this)},ot.prototype.inotn=function(Rt){rt(typeof Rt=="number"&&Rt>=0);var $t=Math.ceil(Rt/26)|0,xt=Rt%26;this._expand($t),xt>0&&$t--;for(var It=0;It<$t;It++)this.words[It]=~this.words[It]&67108863;return xt>0&&(this.words[It]=~this.words[It]&67108863>>26-xt),this.strip()},ot.prototype.notn=function(Rt){return this.clone().inotn(Rt)},ot.prototype.setn=function(Rt,$t){rt(typeof Rt=="number"&&Rt>=0);var xt=Rt/26|0,It=Rt%26;return this._expand(xt+1),$t?this.words[xt]=this.words[xt]|1<Rt.length?(xt=this,It=Rt):(xt=Rt,It=this);for(var Ot=0,zt=0;zt>>26;for(;Ot!==0&&zt>>26;if(this.length=xt.length,Ot!==0)this.words[this.length]=Ot,this.length++;else if(xt!==this)for(;ztRt.length?this.clone().iadd(Rt):Rt.clone().iadd(this)},ot.prototype.isub=function(Rt){if(Rt.negative!==0){Rt.negative=0;var $t=this.iadd(Rt);return Rt.negative=1,$t._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(Rt),this.negative=1,this._normSign();var xt=this.cmp(Rt);if(xt===0)return this.negative=0,this.length=1,this.words[0]=0,this;var It,Ot;xt>0?(It=this,Ot=Rt):(It=Rt,Ot=this);for(var zt=0,Ut=0;Ut>26,this.words[Ut]=$t&67108863;for(;zt!==0&&Ut>26,this.words[Ut]=$t&67108863;if(zt===0&&Ut>>26,Ct=Wt&67108863,Ht=Math.min(Ft,Rt.length-1),Jt=Math.max(0,Ft-jt.length+1);Jt<=Ht;Jt++){var nn=Ft-Jt|0;It=jt.words[nn]|0,Ot=Rt.words[Jt]|0,zt=It*Ot+Ct,Nt+=zt/67108864|0,Ct=zt&67108863}$t.words[Ft]=Ct|0,Wt=Nt|0}return Wt!==0?$t.words[Ft]=Wt|0:$t.length--,$t.strip()}var gt=function(Rt,$t,xt){var It=Rt.words,Ot=$t.words,zt=xt.words,Ut=0,Wt,Ft,Nt,Ct=It[0]|0,Ht=Ct&8191,Jt=Ct>>>13,nn=It[1]|0,Yt=nn&8191,fn=nn>>>13,cn=It[2]|0,_n=cn&8191,En=cn>>>13,an=It[3]|0,en=an&8191,Tn=an>>>13,Rn=It[4]|0,An=Rn&8191,yn=Rn>>>13,kn=It[5]|0,dn=kn&8191,gn=kn>>>13,Cn=It[6]|0,$n=Cn&8191,un=Cn>>>13,rn=It[7]|0,Sn=rn&8191,Mn=rn>>>13,Nn=It[8]|0,hn=Nn&8191,Qt=Nn>>>13,Zt=It[9]|0,wn=Zt&8191,On=Zt>>>13,jn=Ot[0]|0,Un=jn&8191,tr=jn>>>13,qn=Ot[1]|0,Xn=qn&8191,Wn=qn>>>13,Zn=Ot[2]|0,Vn=Zn&8191,pr=Zn>>>13,fr=Ot[3]|0,Er=fr&8191,oo=fr>>>13,Dr=Ot[4]|0,Rr=Dr&8191,Xr=Dr>>>13,Vr=Ot[5]|0,Fr=Vr&8191,so=Vr>>>13,qr=Ot[6]|0,Or=qr&8191,wo=qr>>>13,vn=Ot[7]|0,Pn=vn&8191,sn=vn>>>13,Xt=Ot[8]|0,xn=Xt&8191,Dn=Xt>>>13,Fn=Ot[9]|0,Kn=Fn&8191,nr=Fn>>>13;xt.negative=Rt.negative^$t.negative,xt.length=19,Wt=Math.imul(Ht,Un),Ft=Math.imul(Ht,tr),Ft=Ft+Math.imul(Jt,Un)|0,Nt=Math.imul(Jt,tr);var lr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(lr>>>26)|0,lr&=67108863,Wt=Math.imul(Yt,Un),Ft=Math.imul(Yt,tr),Ft=Ft+Math.imul(fn,Un)|0,Nt=Math.imul(fn,tr),Wt=Wt+Math.imul(Ht,Xn)|0,Ft=Ft+Math.imul(Ht,Wn)|0,Ft=Ft+Math.imul(Jt,Xn)|0,Nt=Nt+Math.imul(Jt,Wn)|0;var cr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(cr>>>26)|0,cr&=67108863,Wt=Math.imul(_n,Un),Ft=Math.imul(_n,tr),Ft=Ft+Math.imul(En,Un)|0,Nt=Math.imul(En,tr),Wt=Wt+Math.imul(Yt,Xn)|0,Ft=Ft+Math.imul(Yt,Wn)|0,Ft=Ft+Math.imul(fn,Xn)|0,Nt=Nt+Math.imul(fn,Wn)|0,Wt=Wt+Math.imul(Ht,Vn)|0,Ft=Ft+Math.imul(Ht,pr)|0,Ft=Ft+Math.imul(Jt,Vn)|0,Nt=Nt+Math.imul(Jt,pr)|0;var Hr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Hr>>>26)|0,Hr&=67108863,Wt=Math.imul(en,Un),Ft=Math.imul(en,tr),Ft=Ft+Math.imul(Tn,Un)|0,Nt=Math.imul(Tn,tr),Wt=Wt+Math.imul(_n,Xn)|0,Ft=Ft+Math.imul(_n,Wn)|0,Ft=Ft+Math.imul(En,Xn)|0,Nt=Nt+Math.imul(En,Wn)|0,Wt=Wt+Math.imul(Yt,Vn)|0,Ft=Ft+Math.imul(Yt,pr)|0,Ft=Ft+Math.imul(fn,Vn)|0,Nt=Nt+Math.imul(fn,pr)|0,Wt=Wt+Math.imul(Ht,Er)|0,Ft=Ft+Math.imul(Ht,oo)|0,Ft=Ft+Math.imul(Jt,Er)|0,Nt=Nt+Math.imul(Jt,oo)|0;var _r=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(_r>>>26)|0,_r&=67108863,Wt=Math.imul(An,Un),Ft=Math.imul(An,tr),Ft=Ft+Math.imul(yn,Un)|0,Nt=Math.imul(yn,tr),Wt=Wt+Math.imul(en,Xn)|0,Ft=Ft+Math.imul(en,Wn)|0,Ft=Ft+Math.imul(Tn,Xn)|0,Nt=Nt+Math.imul(Tn,Wn)|0,Wt=Wt+Math.imul(_n,Vn)|0,Ft=Ft+Math.imul(_n,pr)|0,Ft=Ft+Math.imul(En,Vn)|0,Nt=Nt+Math.imul(En,pr)|0,Wt=Wt+Math.imul(Yt,Er)|0,Ft=Ft+Math.imul(Yt,oo)|0,Ft=Ft+Math.imul(fn,Er)|0,Nt=Nt+Math.imul(fn,oo)|0,Wt=Wt+Math.imul(Ht,Rr)|0,Ft=Ft+Math.imul(Ht,Xr)|0,Ft=Ft+Math.imul(Jt,Rr)|0,Nt=Nt+Math.imul(Jt,Xr)|0;var jr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(jr>>>26)|0,jr&=67108863,Wt=Math.imul(dn,Un),Ft=Math.imul(dn,tr),Ft=Ft+Math.imul(gn,Un)|0,Nt=Math.imul(gn,tr),Wt=Wt+Math.imul(An,Xn)|0,Ft=Ft+Math.imul(An,Wn)|0,Ft=Ft+Math.imul(yn,Xn)|0,Nt=Nt+Math.imul(yn,Wn)|0,Wt=Wt+Math.imul(en,Vn)|0,Ft=Ft+Math.imul(en,pr)|0,Ft=Ft+Math.imul(Tn,Vn)|0,Nt=Nt+Math.imul(Tn,pr)|0,Wt=Wt+Math.imul(_n,Er)|0,Ft=Ft+Math.imul(_n,oo)|0,Ft=Ft+Math.imul(En,Er)|0,Nt=Nt+Math.imul(En,oo)|0,Wt=Wt+Math.imul(Yt,Rr)|0,Ft=Ft+Math.imul(Yt,Xr)|0,Ft=Ft+Math.imul(fn,Rr)|0,Nt=Nt+Math.imul(fn,Xr)|0,Wt=Wt+Math.imul(Ht,Fr)|0,Ft=Ft+Math.imul(Ht,so)|0,Ft=Ft+Math.imul(Jt,Fr)|0,Nt=Nt+Math.imul(Jt,so)|0;var Gr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Gr>>>26)|0,Gr&=67108863,Wt=Math.imul($n,Un),Ft=Math.imul($n,tr),Ft=Ft+Math.imul(un,Un)|0,Nt=Math.imul(un,tr),Wt=Wt+Math.imul(dn,Xn)|0,Ft=Ft+Math.imul(dn,Wn)|0,Ft=Ft+Math.imul(gn,Xn)|0,Nt=Nt+Math.imul(gn,Wn)|0,Wt=Wt+Math.imul(An,Vn)|0,Ft=Ft+Math.imul(An,pr)|0,Ft=Ft+Math.imul(yn,Vn)|0,Nt=Nt+Math.imul(yn,pr)|0,Wt=Wt+Math.imul(en,Er)|0,Ft=Ft+Math.imul(en,oo)|0,Ft=Ft+Math.imul(Tn,Er)|0,Nt=Nt+Math.imul(Tn,oo)|0,Wt=Wt+Math.imul(_n,Rr)|0,Ft=Ft+Math.imul(_n,Xr)|0,Ft=Ft+Math.imul(En,Rr)|0,Nt=Nt+Math.imul(En,Xr)|0,Wt=Wt+Math.imul(Yt,Fr)|0,Ft=Ft+Math.imul(Yt,so)|0,Ft=Ft+Math.imul(fn,Fr)|0,Nt=Nt+Math.imul(fn,so)|0,Wt=Wt+Math.imul(Ht,Or)|0,Ft=Ft+Math.imul(Ht,wo)|0,Ft=Ft+Math.imul(Jt,Or)|0,Nt=Nt+Math.imul(Jt,wo)|0;var eo=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(eo>>>26)|0,eo&=67108863,Wt=Math.imul(Sn,Un),Ft=Math.imul(Sn,tr),Ft=Ft+Math.imul(Mn,Un)|0,Nt=Math.imul(Mn,tr),Wt=Wt+Math.imul($n,Xn)|0,Ft=Ft+Math.imul($n,Wn)|0,Ft=Ft+Math.imul(un,Xn)|0,Nt=Nt+Math.imul(un,Wn)|0,Wt=Wt+Math.imul(dn,Vn)|0,Ft=Ft+Math.imul(dn,pr)|0,Ft=Ft+Math.imul(gn,Vn)|0,Nt=Nt+Math.imul(gn,pr)|0,Wt=Wt+Math.imul(An,Er)|0,Ft=Ft+Math.imul(An,oo)|0,Ft=Ft+Math.imul(yn,Er)|0,Nt=Nt+Math.imul(yn,oo)|0,Wt=Wt+Math.imul(en,Rr)|0,Ft=Ft+Math.imul(en,Xr)|0,Ft=Ft+Math.imul(Tn,Rr)|0,Nt=Nt+Math.imul(Tn,Xr)|0,Wt=Wt+Math.imul(_n,Fr)|0,Ft=Ft+Math.imul(_n,so)|0,Ft=Ft+Math.imul(En,Fr)|0,Nt=Nt+Math.imul(En,so)|0,Wt=Wt+Math.imul(Yt,Or)|0,Ft=Ft+Math.imul(Yt,wo)|0,Ft=Ft+Math.imul(fn,Or)|0,Nt=Nt+Math.imul(fn,wo)|0,Wt=Wt+Math.imul(Ht,Pn)|0,Ft=Ft+Math.imul(Ht,sn)|0,Ft=Ft+Math.imul(Jt,Pn)|0,Nt=Nt+Math.imul(Jt,sn)|0;var Qr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Qr>>>26)|0,Qr&=67108863,Wt=Math.imul(hn,Un),Ft=Math.imul(hn,tr),Ft=Ft+Math.imul(Qt,Un)|0,Nt=Math.imul(Qt,tr),Wt=Wt+Math.imul(Sn,Xn)|0,Ft=Ft+Math.imul(Sn,Wn)|0,Ft=Ft+Math.imul(Mn,Xn)|0,Nt=Nt+Math.imul(Mn,Wn)|0,Wt=Wt+Math.imul($n,Vn)|0,Ft=Ft+Math.imul($n,pr)|0,Ft=Ft+Math.imul(un,Vn)|0,Nt=Nt+Math.imul(un,pr)|0,Wt=Wt+Math.imul(dn,Er)|0,Ft=Ft+Math.imul(dn,oo)|0,Ft=Ft+Math.imul(gn,Er)|0,Nt=Nt+Math.imul(gn,oo)|0,Wt=Wt+Math.imul(An,Rr)|0,Ft=Ft+Math.imul(An,Xr)|0,Ft=Ft+Math.imul(yn,Rr)|0,Nt=Nt+Math.imul(yn,Xr)|0,Wt=Wt+Math.imul(en,Fr)|0,Ft=Ft+Math.imul(en,so)|0,Ft=Ft+Math.imul(Tn,Fr)|0,Nt=Nt+Math.imul(Tn,so)|0,Wt=Wt+Math.imul(_n,Or)|0,Ft=Ft+Math.imul(_n,wo)|0,Ft=Ft+Math.imul(En,Or)|0,Nt=Nt+Math.imul(En,wo)|0,Wt=Wt+Math.imul(Yt,Pn)|0,Ft=Ft+Math.imul(Yt,sn)|0,Ft=Ft+Math.imul(fn,Pn)|0,Nt=Nt+Math.imul(fn,sn)|0,Wt=Wt+Math.imul(Ht,xn)|0,Ft=Ft+Math.imul(Ht,Dn)|0,Ft=Ft+Math.imul(Jt,xn)|0,Nt=Nt+Math.imul(Jt,Dn)|0;var _i=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(_i>>>26)|0,_i&=67108863,Wt=Math.imul(wn,Un),Ft=Math.imul(wn,tr),Ft=Ft+Math.imul(On,Un)|0,Nt=Math.imul(On,tr),Wt=Wt+Math.imul(hn,Xn)|0,Ft=Ft+Math.imul(hn,Wn)|0,Ft=Ft+Math.imul(Qt,Xn)|0,Nt=Nt+Math.imul(Qt,Wn)|0,Wt=Wt+Math.imul(Sn,Vn)|0,Ft=Ft+Math.imul(Sn,pr)|0,Ft=Ft+Math.imul(Mn,Vn)|0,Nt=Nt+Math.imul(Mn,pr)|0,Wt=Wt+Math.imul($n,Er)|0,Ft=Ft+Math.imul($n,oo)|0,Ft=Ft+Math.imul(un,Er)|0,Nt=Nt+Math.imul(un,oo)|0,Wt=Wt+Math.imul(dn,Rr)|0,Ft=Ft+Math.imul(dn,Xr)|0,Ft=Ft+Math.imul(gn,Rr)|0,Nt=Nt+Math.imul(gn,Xr)|0,Wt=Wt+Math.imul(An,Fr)|0,Ft=Ft+Math.imul(An,so)|0,Ft=Ft+Math.imul(yn,Fr)|0,Nt=Nt+Math.imul(yn,so)|0,Wt=Wt+Math.imul(en,Or)|0,Ft=Ft+Math.imul(en,wo)|0,Ft=Ft+Math.imul(Tn,Or)|0,Nt=Nt+Math.imul(Tn,wo)|0,Wt=Wt+Math.imul(_n,Pn)|0,Ft=Ft+Math.imul(_n,sn)|0,Ft=Ft+Math.imul(En,Pn)|0,Nt=Nt+Math.imul(En,sn)|0,Wt=Wt+Math.imul(Yt,xn)|0,Ft=Ft+Math.imul(Yt,Dn)|0,Ft=Ft+Math.imul(fn,xn)|0,Nt=Nt+Math.imul(fn,Dn)|0,Wt=Wt+Math.imul(Ht,Kn)|0,Ft=Ft+Math.imul(Ht,nr)|0,Ft=Ft+Math.imul(Jt,Kn)|0,Nt=Nt+Math.imul(Jt,nr)|0;var wr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(wr>>>26)|0,wr&=67108863,Wt=Math.imul(wn,Xn),Ft=Math.imul(wn,Wn),Ft=Ft+Math.imul(On,Xn)|0,Nt=Math.imul(On,Wn),Wt=Wt+Math.imul(hn,Vn)|0,Ft=Ft+Math.imul(hn,pr)|0,Ft=Ft+Math.imul(Qt,Vn)|0,Nt=Nt+Math.imul(Qt,pr)|0,Wt=Wt+Math.imul(Sn,Er)|0,Ft=Ft+Math.imul(Sn,oo)|0,Ft=Ft+Math.imul(Mn,Er)|0,Nt=Nt+Math.imul(Mn,oo)|0,Wt=Wt+Math.imul($n,Rr)|0,Ft=Ft+Math.imul($n,Xr)|0,Ft=Ft+Math.imul(un,Rr)|0,Nt=Nt+Math.imul(un,Xr)|0,Wt=Wt+Math.imul(dn,Fr)|0,Ft=Ft+Math.imul(dn,so)|0,Ft=Ft+Math.imul(gn,Fr)|0,Nt=Nt+Math.imul(gn,so)|0,Wt=Wt+Math.imul(An,Or)|0,Ft=Ft+Math.imul(An,wo)|0,Ft=Ft+Math.imul(yn,Or)|0,Nt=Nt+Math.imul(yn,wo)|0,Wt=Wt+Math.imul(en,Pn)|0,Ft=Ft+Math.imul(en,sn)|0,Ft=Ft+Math.imul(Tn,Pn)|0,Nt=Nt+Math.imul(Tn,sn)|0,Wt=Wt+Math.imul(_n,xn)|0,Ft=Ft+Math.imul(_n,Dn)|0,Ft=Ft+Math.imul(En,xn)|0,Nt=Nt+Math.imul(En,Dn)|0,Wt=Wt+Math.imul(Yt,Kn)|0,Ft=Ft+Math.imul(Yt,nr)|0,Ft=Ft+Math.imul(fn,Kn)|0,Nt=Nt+Math.imul(fn,nr)|0;var $r=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+($r>>>26)|0,$r&=67108863,Wt=Math.imul(wn,Vn),Ft=Math.imul(wn,pr),Ft=Ft+Math.imul(On,Vn)|0,Nt=Math.imul(On,pr),Wt=Wt+Math.imul(hn,Er)|0,Ft=Ft+Math.imul(hn,oo)|0,Ft=Ft+Math.imul(Qt,Er)|0,Nt=Nt+Math.imul(Qt,oo)|0,Wt=Wt+Math.imul(Sn,Rr)|0,Ft=Ft+Math.imul(Sn,Xr)|0,Ft=Ft+Math.imul(Mn,Rr)|0,Nt=Nt+Math.imul(Mn,Xr)|0,Wt=Wt+Math.imul($n,Fr)|0,Ft=Ft+Math.imul($n,so)|0,Ft=Ft+Math.imul(un,Fr)|0,Nt=Nt+Math.imul(un,so)|0,Wt=Wt+Math.imul(dn,Or)|0,Ft=Ft+Math.imul(dn,wo)|0,Ft=Ft+Math.imul(gn,Or)|0,Nt=Nt+Math.imul(gn,wo)|0,Wt=Wt+Math.imul(An,Pn)|0,Ft=Ft+Math.imul(An,sn)|0,Ft=Ft+Math.imul(yn,Pn)|0,Nt=Nt+Math.imul(yn,sn)|0,Wt=Wt+Math.imul(en,xn)|0,Ft=Ft+Math.imul(en,Dn)|0,Ft=Ft+Math.imul(Tn,xn)|0,Nt=Nt+Math.imul(Tn,Dn)|0,Wt=Wt+Math.imul(_n,Kn)|0,Ft=Ft+Math.imul(_n,nr)|0,Ft=Ft+Math.imul(En,Kn)|0,Nt=Nt+Math.imul(En,nr)|0;var Wr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Wr>>>26)|0,Wr&=67108863,Wt=Math.imul(wn,Er),Ft=Math.imul(wn,oo),Ft=Ft+Math.imul(On,Er)|0,Nt=Math.imul(On,oo),Wt=Wt+Math.imul(hn,Rr)|0,Ft=Ft+Math.imul(hn,Xr)|0,Ft=Ft+Math.imul(Qt,Rr)|0,Nt=Nt+Math.imul(Qt,Xr)|0,Wt=Wt+Math.imul(Sn,Fr)|0,Ft=Ft+Math.imul(Sn,so)|0,Ft=Ft+Math.imul(Mn,Fr)|0,Nt=Nt+Math.imul(Mn,so)|0,Wt=Wt+Math.imul($n,Or)|0,Ft=Ft+Math.imul($n,wo)|0,Ft=Ft+Math.imul(un,Or)|0,Nt=Nt+Math.imul(un,wo)|0,Wt=Wt+Math.imul(dn,Pn)|0,Ft=Ft+Math.imul(dn,sn)|0,Ft=Ft+Math.imul(gn,Pn)|0,Nt=Nt+Math.imul(gn,sn)|0,Wt=Wt+Math.imul(An,xn)|0,Ft=Ft+Math.imul(An,Dn)|0,Ft=Ft+Math.imul(yn,xn)|0,Nt=Nt+Math.imul(yn,Dn)|0,Wt=Wt+Math.imul(en,Kn)|0,Ft=Ft+Math.imul(en,nr)|0,Ft=Ft+Math.imul(Tn,Kn)|0,Nt=Nt+Math.imul(Tn,nr)|0;var Br=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Br>>>26)|0,Br&=67108863,Wt=Math.imul(wn,Rr),Ft=Math.imul(wn,Xr),Ft=Ft+Math.imul(On,Rr)|0,Nt=Math.imul(On,Xr),Wt=Wt+Math.imul(hn,Fr)|0,Ft=Ft+Math.imul(hn,so)|0,Ft=Ft+Math.imul(Qt,Fr)|0,Nt=Nt+Math.imul(Qt,so)|0,Wt=Wt+Math.imul(Sn,Or)|0,Ft=Ft+Math.imul(Sn,wo)|0,Ft=Ft+Math.imul(Mn,Or)|0,Nt=Nt+Math.imul(Mn,wo)|0,Wt=Wt+Math.imul($n,Pn)|0,Ft=Ft+Math.imul($n,sn)|0,Ft=Ft+Math.imul(un,Pn)|0,Nt=Nt+Math.imul(un,sn)|0,Wt=Wt+Math.imul(dn,xn)|0,Ft=Ft+Math.imul(dn,Dn)|0,Ft=Ft+Math.imul(gn,xn)|0,Nt=Nt+Math.imul(gn,Dn)|0,Wt=Wt+Math.imul(An,Kn)|0,Ft=Ft+Math.imul(An,nr)|0,Ft=Ft+Math.imul(yn,Kn)|0,Nt=Nt+Math.imul(yn,nr)|0;var Pr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Pr>>>26)|0,Pr&=67108863,Wt=Math.imul(wn,Fr),Ft=Math.imul(wn,so),Ft=Ft+Math.imul(On,Fr)|0,Nt=Math.imul(On,so),Wt=Wt+Math.imul(hn,Or)|0,Ft=Ft+Math.imul(hn,wo)|0,Ft=Ft+Math.imul(Qt,Or)|0,Nt=Nt+Math.imul(Qt,wo)|0,Wt=Wt+Math.imul(Sn,Pn)|0,Ft=Ft+Math.imul(Sn,sn)|0,Ft=Ft+Math.imul(Mn,Pn)|0,Nt=Nt+Math.imul(Mn,sn)|0,Wt=Wt+Math.imul($n,xn)|0,Ft=Ft+Math.imul($n,Dn)|0,Ft=Ft+Math.imul(un,xn)|0,Nt=Nt+Math.imul(un,Dn)|0,Wt=Wt+Math.imul(dn,Kn)|0,Ft=Ft+Math.imul(dn,nr)|0,Ft=Ft+Math.imul(gn,Kn)|0,Nt=Nt+Math.imul(gn,nr)|0;var Lr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Lr>>>26)|0,Lr&=67108863,Wt=Math.imul(wn,Or),Ft=Math.imul(wn,wo),Ft=Ft+Math.imul(On,Or)|0,Nt=Math.imul(On,wo),Wt=Wt+Math.imul(hn,Pn)|0,Ft=Ft+Math.imul(hn,sn)|0,Ft=Ft+Math.imul(Qt,Pn)|0,Nt=Nt+Math.imul(Qt,sn)|0,Wt=Wt+Math.imul(Sn,xn)|0,Ft=Ft+Math.imul(Sn,Dn)|0,Ft=Ft+Math.imul(Mn,xn)|0,Nt=Nt+Math.imul(Mn,Dn)|0,Wt=Wt+Math.imul($n,Kn)|0,Ft=Ft+Math.imul($n,nr)|0,Ft=Ft+Math.imul(un,Kn)|0,Nt=Nt+Math.imul(un,nr)|0;var Nr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Nr>>>26)|0,Nr&=67108863,Wt=Math.imul(wn,Pn),Ft=Math.imul(wn,sn),Ft=Ft+Math.imul(On,Pn)|0,Nt=Math.imul(On,sn),Wt=Wt+Math.imul(hn,xn)|0,Ft=Ft+Math.imul(hn,Dn)|0,Ft=Ft+Math.imul(Qt,xn)|0,Nt=Nt+Math.imul(Qt,Dn)|0,Wt=Wt+Math.imul(Sn,Kn)|0,Ft=Ft+Math.imul(Sn,nr)|0,Ft=Ft+Math.imul(Mn,Kn)|0,Nt=Nt+Math.imul(Mn,nr)|0;var Cr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Cr>>>26)|0,Cr&=67108863,Wt=Math.imul(wn,xn),Ft=Math.imul(wn,Dn),Ft=Ft+Math.imul(On,xn)|0,Nt=Math.imul(On,Dn),Wt=Wt+Math.imul(hn,Kn)|0,Ft=Ft+Math.imul(hn,nr)|0,Ft=Ft+Math.imul(Qt,Kn)|0,Nt=Nt+Math.imul(Qt,nr)|0;var er=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(er>>>26)|0,er&=67108863,Wt=Math.imul(wn,Kn),Ft=Math.imul(wn,nr),Ft=Ft+Math.imul(On,Kn)|0,Nt=Math.imul(On,nr);var ir=(Ut+Wt|0)+((Ft&8191)<<13)|0;return Ut=(Nt+(Ft>>>13)|0)+(ir>>>26)|0,ir&=67108863,zt[0]=lr,zt[1]=cr,zt[2]=Hr,zt[3]=_r,zt[4]=jr,zt[5]=Gr,zt[6]=eo,zt[7]=Qr,zt[8]=_i,zt[9]=wr,zt[10]=$r,zt[11]=Wr,zt[12]=Br,zt[13]=Pr,zt[14]=Lr,zt[15]=Nr,zt[16]=Cr,zt[17]=er,zt[18]=ir,Ut!==0&&(zt[19]=Ut,xt.length++),xt};Math.imul||(gt=mt);function yt(jt,Rt,$t){$t.negative=Rt.negative^jt.negative,$t.length=jt.length+Rt.length;for(var xt=0,It=0,Ot=0;Ot<$t.length-1;Ot++){var zt=It;It=0;for(var Ut=xt&67108863,Wt=Math.min(Ot,Rt.length-1),Ft=Math.max(0,Ot-jt.length+1);Ft<=Wt;Ft++){var Nt=Ot-Ft,Ct=jt.words[Nt]|0,Ht=Rt.words[Ft]|0,Jt=Ct*Ht,nn=Jt&67108863;zt=zt+(Jt/67108864|0)|0,nn=nn+Ut|0,Ut=nn&67108863,zt=zt+(nn>>>26)|0,It+=zt>>>26,zt&=67108863}$t.words[Ot]=Ut,xt=zt,zt=It}return xt!==0?$t.words[Ot]=xt:$t.length--,$t.strip()}function bt(jt,Rt,$t){var xt=new wt;return xt.mulp(jt,Rt,$t)}ot.prototype.mulTo=function(Rt,$t){var xt,It=this.length+Rt.length;return this.length===10&&Rt.length===10?xt=gt(this,Rt,$t):It<63?xt=mt(this,Rt,$t):It<1024?xt=yt(this,Rt,$t):xt=bt(this,Rt,$t),xt};function wt(jt,Rt){this.x=jt,this.y=Rt}wt.prototype.makeRBT=function(Rt){for(var $t=new Array(Rt),xt=ot.prototype._countBits(Rt)-1,It=0;It>=1;return It},wt.prototype.permute=function(Rt,$t,xt,It,Ot,zt){for(var Ut=0;Ut>>1)Ot++;return 1<>>13,xt[2*zt+1]=Ot&8191,Ot=Ot>>>13;for(zt=2*$t;zt>=26,$t+=It/67108864|0,$t+=Ot>>>26,this.words[xt]=Ot&67108863}return $t!==0&&(this.words[xt]=$t,this.length++),this},ot.prototype.muln=function(Rt){return this.clone().imuln(Rt)},ot.prototype.sqr=function(){return this.mul(this)},ot.prototype.isqr=function(){return this.imul(this.clone())},ot.prototype.pow=function(Rt){var $t=pt(Rt);if($t.length===0)return new ot(1);for(var xt=this,It=0;It<$t.length&&$t[It]===0;It++,xt=xt.sqr());if(++It<$t.length)for(var Ot=xt.sqr();It<$t.length;It++,Ot=Ot.sqr())$t[It]!==0&&(xt=xt.mul(Ot));return xt},ot.prototype.iushln=function(Rt){rt(typeof Rt=="number"&&Rt>=0);var $t=Rt%26,xt=(Rt-$t)/26,It=67108863>>>26-$t<<26-$t,Ot;if($t!==0){var zt=0;for(Ot=0;Ot>>26-$t}zt&&(this.words[Ot]=zt,this.length++)}if(xt!==0){for(Ot=this.length-1;Ot>=0;Ot--)this.words[Ot+xt]=this.words[Ot];for(Ot=0;Ot=0);var It;$t?It=($t-$t%26)/26:It=0;var Ot=Rt%26,zt=Math.min((Rt-Ot)/26,this.length),Ut=67108863^67108863>>>Ot<zt)for(this.length-=zt,Ft=0;Ft=0&&(Nt!==0||Ft>=It);Ft--){var Ct=this.words[Ft]|0;this.words[Ft]=Nt<<26-Ot|Ct>>>Ot,Nt=Ct&Ut}return Wt&&Nt!==0&&(Wt.words[Wt.length++]=Nt),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},ot.prototype.ishrn=function(Rt,$t,xt){return rt(this.negative===0),this.iushrn(Rt,$t,xt)},ot.prototype.shln=function(Rt){return this.clone().ishln(Rt)},ot.prototype.ushln=function(Rt){return this.clone().iushln(Rt)},ot.prototype.shrn=function(Rt){return this.clone().ishrn(Rt)},ot.prototype.ushrn=function(Rt){return this.clone().iushrn(Rt)},ot.prototype.testn=function(Rt){rt(typeof Rt=="number"&&Rt>=0);var $t=Rt%26,xt=(Rt-$t)/26,It=1<<$t;if(this.length<=xt)return!1;var Ot=this.words[xt];return!!(Ot&It)},ot.prototype.imaskn=function(Rt){rt(typeof Rt=="number"&&Rt>=0);var $t=Rt%26,xt=(Rt-$t)/26;if(rt(this.negative===0,"imaskn works only with positive numbers"),this.length<=xt)return this;if($t!==0&&xt++,this.length=Math.min(xt,this.length),$t!==0){var It=67108863^67108863>>>$t<<$t;this.words[this.length-1]&=It}return this.strip()},ot.prototype.maskn=function(Rt){return this.clone().imaskn(Rt)},ot.prototype.iaddn=function(Rt){return rt(typeof Rt=="number"),rt(Rt<67108864),Rt<0?this.isubn(-Rt):this.negative!==0?this.length===1&&(this.words[0]|0)=67108864;$t++)this.words[$t]-=67108864,$t===this.length-1?this.words[$t+1]=1:this.words[$t+1]++;return this.length=Math.max(this.length,$t+1),this},ot.prototype.isubn=function(Rt){if(rt(typeof Rt=="number"),rt(Rt<67108864),Rt<0)return this.iaddn(-Rt);if(this.negative!==0)return this.negative=0,this.iaddn(Rt),this.negative=1,this;if(this.words[0]-=Rt,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var $t=0;$t>26)-(Wt/67108864|0),this.words[Ot+xt]=zt&67108863}for(;Ot>26,this.words[Ot+xt]=zt&67108863;if(Ut===0)return this.strip();for(rt(Ut===-1),Ut=0,Ot=0;Ot>26,this.words[Ot]=zt&67108863;return this.negative=1,this.strip()},ot.prototype._wordDiv=function(Rt,$t){var xt=this.length-Rt.length,It=this.clone(),Ot=Rt,zt=Ot.words[Ot.length-1]|0,Ut=this._countBits(zt);xt=26-Ut,xt!==0&&(Ot=Ot.ushln(xt),It.iushln(xt),zt=Ot.words[Ot.length-1]|0);var Wt=It.length-Ot.length,Ft;if($t!=="mod"){Ft=new ot(null),Ft.length=Wt+1,Ft.words=new Array(Ft.length);for(var Nt=0;Nt=0;Ht--){var Jt=(It.words[Ot.length+Ht]|0)*67108864+(It.words[Ot.length+Ht-1]|0);for(Jt=Math.min(Jt/zt|0,67108863),It._ishlnsubmul(Ot,Jt,Ht);It.negative!==0;)Jt--,It.negative=0,It._ishlnsubmul(Ot,1,Ht),It.isZero()||(It.negative^=1);Ft&&(Ft.words[Ht]=Jt)}return Ft&&Ft.strip(),It.strip(),$t!=="div"&&xt!==0&&It.iushrn(xt),{div:Ft||null,mod:It}},ot.prototype.divmod=function(Rt,$t,xt){if(rt(!Rt.isZero()),this.isZero())return{div:new ot(0),mod:new ot(0)};var It,Ot,zt;return this.negative!==0&&Rt.negative===0?(zt=this.neg().divmod(Rt,$t),$t!=="mod"&&(It=zt.div.neg()),$t!=="div"&&(Ot=zt.mod.neg(),xt&&Ot.negative!==0&&Ot.iadd(Rt)),{div:It,mod:Ot}):this.negative===0&&Rt.negative!==0?(zt=this.divmod(Rt.neg(),$t),$t!=="mod"&&(It=zt.div.neg()),{div:It,mod:zt.mod}):this.negative&Rt.negative?(zt=this.neg().divmod(Rt.neg(),$t),$t!=="div"&&(Ot=zt.mod.neg(),xt&&Ot.negative!==0&&Ot.isub(Rt)),{div:zt.div,mod:Ot}):Rt.length>this.length||this.cmp(Rt)<0?{div:new ot(0),mod:this}:Rt.length===1?$t==="div"?{div:this.divn(Rt.words[0]),mod:null}:$t==="mod"?{div:null,mod:new ot(this.modn(Rt.words[0]))}:{div:this.divn(Rt.words[0]),mod:new ot(this.modn(Rt.words[0]))}:this._wordDiv(Rt,$t)},ot.prototype.div=function(Rt){return this.divmod(Rt,"div",!1).div},ot.prototype.mod=function(Rt){return this.divmod(Rt,"mod",!1).mod},ot.prototype.umod=function(Rt){return this.divmod(Rt,"mod",!0).mod},ot.prototype.divRound=function(Rt){var $t=this.divmod(Rt);if($t.mod.isZero())return $t.div;var xt=$t.div.negative!==0?$t.mod.isub(Rt):$t.mod,It=Rt.ushrn(1),Ot=Rt.andln(1),zt=xt.cmp(It);return zt<0||Ot===1&&zt===0?$t.div:$t.div.negative!==0?$t.div.isubn(1):$t.div.iaddn(1)},ot.prototype.modn=function(Rt){rt(Rt<=67108863);for(var $t=(1<<26)%Rt,xt=0,It=this.length-1;It>=0;It--)xt=($t*xt+(this.words[It]|0))%Rt;return xt},ot.prototype.idivn=function(Rt){rt(Rt<=67108863);for(var $t=0,xt=this.length-1;xt>=0;xt--){var It=(this.words[xt]|0)+$t*67108864;this.words[xt]=It/Rt|0,$t=It%Rt}return this.strip()},ot.prototype.divn=function(Rt){return this.clone().idivn(Rt)},ot.prototype.egcd=function(Rt){rt(Rt.negative===0),rt(!Rt.isZero());var $t=this,xt=Rt.clone();$t.negative!==0?$t=$t.umod(Rt):$t=$t.clone();for(var It=new ot(1),Ot=new ot(0),zt=new ot(0),Ut=new ot(1),Wt=0;$t.isEven()&&xt.isEven();)$t.iushrn(1),xt.iushrn(1),++Wt;for(var Ft=xt.clone(),Nt=$t.clone();!$t.isZero();){for(var Ct=0,Ht=1;!($t.words[0]&Ht)&&Ct<26;++Ct,Ht<<=1);if(Ct>0)for($t.iushrn(Ct);Ct-- >0;)(It.isOdd()||Ot.isOdd())&&(It.iadd(Ft),Ot.isub(Nt)),It.iushrn(1),Ot.iushrn(1);for(var Jt=0,nn=1;!(xt.words[0]&nn)&&Jt<26;++Jt,nn<<=1);if(Jt>0)for(xt.iushrn(Jt);Jt-- >0;)(zt.isOdd()||Ut.isOdd())&&(zt.iadd(Ft),Ut.isub(Nt)),zt.iushrn(1),Ut.iushrn(1);$t.cmp(xt)>=0?($t.isub(xt),It.isub(zt),Ot.isub(Ut)):(xt.isub($t),zt.isub(It),Ut.isub(Ot))}return{a:zt,b:Ut,gcd:xt.iushln(Wt)}},ot.prototype._invmp=function(Rt){rt(Rt.negative===0),rt(!Rt.isZero());var $t=this,xt=Rt.clone();$t.negative!==0?$t=$t.umod(Rt):$t=$t.clone();for(var It=new ot(1),Ot=new ot(0),zt=xt.clone();$t.cmpn(1)>0&&xt.cmpn(1)>0;){for(var Ut=0,Wt=1;!($t.words[0]&Wt)&&Ut<26;++Ut,Wt<<=1);if(Ut>0)for($t.iushrn(Ut);Ut-- >0;)It.isOdd()&&It.iadd(zt),It.iushrn(1);for(var Ft=0,Nt=1;!(xt.words[0]&Nt)&&Ft<26;++Ft,Nt<<=1);if(Ft>0)for(xt.iushrn(Ft);Ft-- >0;)Ot.isOdd()&&Ot.iadd(zt),Ot.iushrn(1);$t.cmp(xt)>=0?($t.isub(xt),It.isub(Ot)):(xt.isub($t),Ot.isub(It))}var Ct;return $t.cmpn(1)===0?Ct=It:Ct=Ot,Ct.cmpn(0)<0&&Ct.iadd(Rt),Ct},ot.prototype.gcd=function(Rt){if(this.isZero())return Rt.abs();if(Rt.isZero())return this.abs();var $t=this.clone(),xt=Rt.clone();$t.negative=0,xt.negative=0;for(var It=0;$t.isEven()&&xt.isEven();It++)$t.iushrn(1),xt.iushrn(1);do{for(;$t.isEven();)$t.iushrn(1);for(;xt.isEven();)xt.iushrn(1);var Ot=$t.cmp(xt);if(Ot<0){var zt=$t;$t=xt,xt=zt}else if(Ot===0||xt.cmpn(1)===0)break;$t.isub(xt)}while(!0);return xt.iushln(It)},ot.prototype.invm=function(Rt){return this.egcd(Rt).a.umod(Rt)},ot.prototype.isEven=function(){return(this.words[0]&1)===0},ot.prototype.isOdd=function(){return(this.words[0]&1)===1},ot.prototype.andln=function(Rt){return this.words[0]&Rt},ot.prototype.bincn=function(Rt){rt(typeof Rt=="number");var $t=Rt%26,xt=(Rt-$t)/26,It=1<<$t;if(this.length<=xt)return this._expand(xt+1),this.words[xt]|=It,this;for(var Ot=It,zt=xt;Ot!==0&&zt>>26,Ut&=67108863,this.words[zt]=Ut}return Ot!==0&&(this.words[zt]=Ot,this.length++),this},ot.prototype.isZero=function(){return this.length===1&&this.words[0]===0},ot.prototype.cmpn=function(Rt){var $t=Rt<0;if(this.negative!==0&&!$t)return-1;if(this.negative===0&&$t)return 1;this.strip();var xt;if(this.length>1)xt=1;else{$t&&(Rt=-Rt),rt(Rt<=67108863,"Number is too big");var It=this.words[0]|0;xt=It===Rt?0:ItRt.length)return 1;if(this.length=0;xt--){var It=this.words[xt]|0,Ot=Rt.words[xt]|0;if(It!==Ot){ItOt&&($t=1);break}}return $t},ot.prototype.gtn=function(Rt){return this.cmpn(Rt)===1},ot.prototype.gt=function(Rt){return this.cmp(Rt)===1},ot.prototype.gten=function(Rt){return this.cmpn(Rt)>=0},ot.prototype.gte=function(Rt){return this.cmp(Rt)>=0},ot.prototype.ltn=function(Rt){return this.cmpn(Rt)===-1},ot.prototype.lt=function(Rt){return this.cmp(Rt)===-1},ot.prototype.lten=function(Rt){return this.cmpn(Rt)<=0},ot.prototype.lte=function(Rt){return this.cmp(Rt)<=0},ot.prototype.eqn=function(Rt){return this.cmpn(Rt)===0},ot.prototype.eq=function(Rt){return this.cmp(Rt)===0},ot.red=function(Rt){return new Mt(Rt)},ot.prototype.toRed=function(Rt){return rt(!this.red,"Already a number in reduction context"),rt(this.negative===0,"red works only with positives"),Rt.convertTo(this)._forceRed(Rt)},ot.prototype.fromRed=function(){return rt(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},ot.prototype._forceRed=function(Rt){return this.red=Rt,this},ot.prototype.forceRed=function(Rt){return rt(!this.red,"Already a number in reduction context"),this._forceRed(Rt)},ot.prototype.redAdd=function(Rt){return rt(this.red,"redAdd works only with red numbers"),this.red.add(this,Rt)},ot.prototype.redIAdd=function(Rt){return rt(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,Rt)},ot.prototype.redSub=function(Rt){return rt(this.red,"redSub works only with red numbers"),this.red.sub(this,Rt)},ot.prototype.redISub=function(Rt){return rt(this.red,"redISub works only with red numbers"),this.red.isub(this,Rt)},ot.prototype.redShl=function(Rt){return rt(this.red,"redShl works only with red numbers"),this.red.shl(this,Rt)},ot.prototype.redMul=function(Rt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,Rt),this.red.mul(this,Rt)},ot.prototype.redIMul=function(Rt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,Rt),this.red.imul(this,Rt)},ot.prototype.redSqr=function(){return rt(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},ot.prototype.redISqr=function(){return rt(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},ot.prototype.redSqrt=function(){return rt(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},ot.prototype.redInvm=function(){return rt(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},ot.prototype.redNeg=function(){return rt(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},ot.prototype.redPow=function(Rt){return rt(this.red&&!Rt.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,Rt)};var vt={k256:null,p224:null,p192:null,p25519:null};function kt(jt,Rt){this.name=jt,this.p=new ot(Rt,16),this.n=this.p.bitLength(),this.k=new ot(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}kt.prototype._tmp=function(){var Rt=new ot(null);return Rt.words=new Array(Math.ceil(this.n/13)),Rt},kt.prototype.ireduce=function(Rt){var $t=Rt,xt;do this.split($t,this.tmp),$t=this.imulK($t),$t=$t.iadd(this.tmp),xt=$t.bitLength();while(xt>this.n);var It=xt0?$t.isub(this.p):$t.strip!==void 0?$t.strip():$t._strip(),$t},kt.prototype.split=function(Rt,$t){Rt.iushrn(this.n,0,$t)},kt.prototype.imulK=function(Rt){return Rt.imul(this.k)};function St(){kt.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}it(St,kt),St.prototype.split=function(Rt,$t){for(var xt=4194303,It=Math.min(Rt.length,9),Ot=0;Ot>>22,zt=Ut}zt>>>=22,Rt.words[Ot-10]=zt,zt===0&&Rt.length>10?Rt.length-=10:Rt.length-=9},St.prototype.imulK=function(Rt){Rt.words[Rt.length]=0,Rt.words[Rt.length+1]=0,Rt.length+=2;for(var $t=0,xt=0;xt>>=26,Rt.words[xt]=Ot,$t=It}return $t!==0&&(Rt.words[Rt.length++]=$t),Rt},ot._prime=function(Rt){if(vt[Rt])return vt[Rt];var $t;if(Rt==="k256")$t=new St;else if(Rt==="p224")$t=new Tt;else if(Rt==="p192")$t=new At;else if(Rt==="p25519")$t=new Et;else throw new Error("Unknown prime "+Rt);return vt[Rt]=$t,$t};function Mt(jt){if(typeof jt=="string"){var Rt=ot._prime(jt);this.m=Rt.p,this.prime=Rt}else rt(jt.gtn(1),"modulus must be greater than 1"),this.m=jt,this.prime=null}Mt.prototype._verify1=function(Rt){rt(Rt.negative===0,"red works only with positives"),rt(Rt.red,"red works only with red numbers")},Mt.prototype._verify2=function(Rt,$t){rt((Rt.negative|$t.negative)===0,"red works only with positives"),rt(Rt.red&&Rt.red===$t.red,"red works only with red numbers")},Mt.prototype.imod=function(Rt){return this.prime?this.prime.ireduce(Rt)._forceRed(this):Rt.umod(this.m)._forceRed(this)},Mt.prototype.neg=function(Rt){return Rt.isZero()?Rt.clone():this.m.sub(Rt)._forceRed(this)},Mt.prototype.add=function(Rt,$t){this._verify2(Rt,$t);var xt=Rt.add($t);return xt.cmp(this.m)>=0&&xt.isub(this.m),xt._forceRed(this)},Mt.prototype.iadd=function(Rt,$t){this._verify2(Rt,$t);var xt=Rt.iadd($t);return xt.cmp(this.m)>=0&&xt.isub(this.m),xt},Mt.prototype.sub=function(Rt,$t){this._verify2(Rt,$t);var xt=Rt.sub($t);return xt.cmpn(0)<0&&xt.iadd(this.m),xt._forceRed(this)},Mt.prototype.isub=function(Rt,$t){this._verify2(Rt,$t);var xt=Rt.isub($t);return xt.cmpn(0)<0&&xt.iadd(this.m),xt},Mt.prototype.shl=function(Rt,$t){return this._verify1(Rt),this.imod(Rt.ushln($t))},Mt.prototype.imul=function(Rt,$t){return this._verify2(Rt,$t),this.imod(Rt.imul($t))},Mt.prototype.mul=function(Rt,$t){return this._verify2(Rt,$t),this.imod(Rt.mul($t))},Mt.prototype.isqr=function(Rt){return this.imul(Rt,Rt.clone())},Mt.prototype.sqr=function(Rt){return this.mul(Rt,Rt)},Mt.prototype.sqrt=function(Rt){if(Rt.isZero())return Rt.clone();var $t=this.m.andln(3);if(rt($t%2===1),$t===3){var xt=this.m.add(new ot(1)).iushrn(2);return this.pow(Rt,xt)}for(var It=this.m.subn(1),Ot=0;!It.isZero()&&It.andln(1)===0;)Ot++,It.iushrn(1);rt(!It.isZero());var zt=new ot(1).toRed(this),Ut=zt.redNeg(),Wt=this.m.subn(1).iushrn(1),Ft=this.m.bitLength();for(Ft=new ot(2*Ft*Ft).toRed(this);this.pow(Ft,Wt).cmp(Ut)!==0;)Ft.redIAdd(Ut);for(var Nt=this.pow(Ft,It),Ct=this.pow(Rt,It.addn(1).iushrn(1)),Ht=this.pow(Rt,It),Jt=Ot;Ht.cmp(zt)!==0;){for(var nn=Ht,Yt=0;nn.cmp(zt)!==0;Yt++)nn=nn.redSqr();rt(Yt=0;Ot--){for(var Nt=$t.words[Ot],Ct=Ft-1;Ct>=0;Ct--){var Ht=Nt>>Ct&1;if(zt!==It[0]&&(zt=this.sqr(zt)),Ht===0&&Ut===0){Wt=0;continue}Ut<<=1,Ut|=Ht,Wt++,!(Wt!==xt&&(Ot!==0||Ct!==0))&&(zt=this.mul(zt,It[Ut]),Wt=0,Ut=0)}Ft=26}return zt},Mt.prototype.convertTo=function(Rt){var $t=Rt.umod(this.m);return $t===Rt?$t.clone():$t},Mt.prototype.convertFrom=function(Rt){var $t=Rt.clone();return $t.red=null,$t},ot.mont=function(Rt){return new Lt(Rt)};function Lt(jt){Mt.call(this,jt),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new ot(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}it(Lt,Mt),Lt.prototype.convertTo=function(Rt){return this.imod(Rt.ushln(this.shift))},Lt.prototype.convertFrom=function(Rt){var $t=this.imod(Rt.mul(this.rinv));return $t.red=null,$t},Lt.prototype.imul=function(Rt,$t){if(Rt.isZero()||$t.isZero())return Rt.words[0]=0,Rt.length=1,Rt;var xt=Rt.imul($t),It=xt.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ot=xt.isub(It).iushrn(this.shift),zt=Ot;return Ot.cmp(this.m)>=0?zt=Ot.isub(this.m):Ot.cmpn(0)<0&&(zt=Ot.iadd(this.m)),zt._forceRed(this)},Lt.prototype.mul=function(Rt,$t){if(Rt.isZero()||$t.isZero())return new ot(0)._forceRed(this);var xt=Rt.mul($t),It=xt.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ot=xt.isub(It).iushrn(this.shift),zt=Ot;return Ot.cmp(this.m)>=0?zt=Ot.isub(this.m):Ot.cmpn(0)<0&&(zt=Ot.iadd(this.m)),zt._forceRed(this)},Lt.prototype.invm=function(Rt){var $t=this.imod(Rt._invmp(this.m).mul(this.r2));return $t._forceRed(this)}})(tt,commonjsGlobal)})(bn$2);var bnExports$2=bn$2.exports,brorand={exports:{}},hasRequiredBrorand;function requireBrorand(){if(hasRequiredBrorand)return brorand.exports;hasRequiredBrorand=1;var tt;brorand.exports=function(it){return tt||(tt=new et(null)),tt.generate(it)};function et(rt){this.rand=rt}if(brorand.exports.Rand=et,et.prototype.generate=function(it){return this._rand(it)},et.prototype._rand=function(it){if(this.rand.getBytes)return this.rand.getBytes(it);for(var ot=new Uint8Array(it),at=0;at=0);return st},nt.prototype._randrange=function(it,ot){var at=ot.sub(it);return it.add(this._randbelow(at))},nt.prototype.test=function(it,ot,at){var st=it.bitLength(),lt=tt.mont(it),ct=new tt(1).toRed(lt);ot||(ot=Math.max(1,st/48|0));for(var ut=it.subn(1),ht=0;!ut.testn(ht);ht++);for(var dt=it.shrn(ht),pt=ut.toRed(lt),mt=!0;ot>0;ot--){var gt=this._randrange(new tt(2),ut);at&&at(gt);var yt=gt.toRed(lt).redPow(dt);if(!(yt.cmp(ct)===0||yt.cmp(pt)===0)){for(var bt=1;bt0;ot--){var pt=this._randrange(new tt(2),ct),mt=it.gcd(pt);if(mt.cmpn(1)!==0)return mt;var gt=pt.toRed(st).redPow(ht);if(!(gt.cmp(lt)===0||gt.cmp(dt)===0)){for(var yt=1;ytbt;)vt.ishrn(1);if(vt.isEven()&&vt.iadd(ot),vt.testn(1)||vt.iadd(at),wt.cmp(at)){if(!wt.cmp(st))for(;vt.mod(lt).cmp(ct);)vt.iadd(ht)}else for(;vt.mod(nt).cmp(ut);)vt.iadd(ht);if(kt=vt.shrn(1),mt(kt)&&mt(vt)&>(kt)&>(vt)&&it.test(kt)&&it.test(vt))return vt}}return generatePrime}const modp1={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},require$$1$1={modp1,modp2,modp5,modp14,modp15,modp16,modp17,modp18};var dh,hasRequiredDh;function requireDh(){if(hasRequiredDh)return dh;hasRequiredDh=1;var tt=bnExports$2,et=requireMr(),nt=new et,rt=new tt(24),it=new tt(11),ot=new tt(10),at=new tt(3),st=new tt(7),lt=requireGeneratePrime(),ct=browserExports;dh=mt;function ut(yt,bt){return bt=bt||"utf8",Buffer.isBuffer(yt)||(yt=new Buffer(yt,bt)),this._pub=new tt(yt),this}function ht(yt,bt){return bt=bt||"utf8",Buffer.isBuffer(yt)||(yt=new Buffer(yt,bt)),this._priv=new tt(yt),this}var dt={};function pt(yt,bt){var wt=bt.toString("hex"),vt=[wt,yt.toString(16)].join("_");if(vt in dt)return dt[vt];var kt=0;if(yt.isEven()||!lt.simpleSieve||!lt.fermatTest(yt)||!nt.test(yt))return kt+=1,wt==="02"||wt==="05"?kt+=8:kt+=4,dt[vt]=kt,kt;nt.test(yt.shrn(1))||(kt+=2);var St;switch(wt){case"02":yt.mod(rt).cmp(it)&&(kt+=8);break;case"05":St=yt.mod(ot),St.cmp(at)&&St.cmp(st)&&(kt+=8);break;default:kt+=4}return dt[vt]=kt,kt}function mt(yt,bt,wt){this.setGenerator(bt),this.__prime=new tt(yt),this._prime=tt.mont(this.__prime),this._primeLen=yt.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,wt?(this.setPublicKey=ut,this.setPrivateKey=ht):this._primeCode=8}Object.defineProperty(mt.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=pt(this.__prime,this.__gen)),this._primeCode}}),mt.prototype.generateKeys=function(){return this._priv||(this._priv=new tt(ct(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},mt.prototype.computeSecret=function(yt){yt=new tt(yt),yt=yt.toRed(this._prime);var bt=yt.redPow(this._priv).fromRed(),wt=new Buffer(bt.toArray()),vt=this.getPrime();if(wt.length0?xt:It},ot.min=function(xt,It){return xt.cmp(It)<0?xt:It},ot.prototype._init=function(xt,It,Ot){if(typeof xt=="number")return this._initNumber(xt,It,Ot);if(typeof xt=="object")return this._initArray(xt,It,Ot);It==="hex"&&(It=16),rt(It===(It|0)&&It>=2&&It<=36),xt=xt.toString().replace(/\s+/g,"");var zt=0;xt[0]==="-"&&(zt++,this.negative=1),zt=0;zt-=3)Wt=xt[zt]|xt[zt-1]<<8|xt[zt-2]<<16,this.words[Ut]|=Wt<>>26-Ft&67108863,Ft+=24,Ft>=26&&(Ft-=26,Ut++);else if(Ot==="le")for(zt=0,Ut=0;zt>>26-Ft&67108863,Ft+=24,Ft>=26&&(Ft-=26,Ut++);return this._strip()};function st($t,xt){var It=$t.charCodeAt(xt);if(It>=48&&It<=57)return It-48;if(It>=65&&It<=70)return It-55;if(It>=97&&It<=102)return It-87;rt(!1,"Invalid character in "+$t)}function lt($t,xt,It){var Ot=st($t,It);return It-1>=xt&&(Ot|=st($t,It-1)<<4),Ot}ot.prototype._parseHex=function(xt,It,Ot){this.length=Math.ceil((xt.length-It)/6),this.words=new Array(this.length);for(var zt=0;zt=It;zt-=2)Ft=lt(xt,It,zt)<=18?(Ut-=18,Wt+=1,this.words[Wt]|=Ft>>>26):Ut+=8;else{var Nt=xt.length-It;for(zt=Nt%2===0?It+1:It;zt=18?(Ut-=18,Wt+=1,this.words[Wt]|=Ft>>>26):Ut+=8}this._strip()};function ct($t,xt,It,Ot){for(var zt=0,Ut=0,Wt=Math.min($t.length,It),Ft=xt;Ft=49?Ut=Nt-49+10:Nt>=17?Ut=Nt-17+10:Ut=Nt,rt(Nt>=0&&Ut1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},ot.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{ot.prototype[Symbol.for("nodejs.util.inspect.custom")]=ht}catch{ot.prototype.inspect=ht}else ot.prototype.inspect=ht;function ht(){return(this.red?""}var dt=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],pt=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],mt=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];ot.prototype.toString=function(xt,It){xt=xt||10,It=It|0||1;var Ot;if(xt===16||xt==="hex"){Ot="";for(var zt=0,Ut=0,Wt=0;Wt>>24-zt&16777215,zt+=2,zt>=26&&(zt-=26,Wt--),Ut!==0||Wt!==this.length-1?Ot=dt[6-Nt.length]+Nt+Ot:Ot=Nt+Ot}for(Ut!==0&&(Ot=Ut.toString(16)+Ot);Ot.length%It!==0;)Ot="0"+Ot;return this.negative!==0&&(Ot="-"+Ot),Ot}if(xt===(xt|0)&&xt>=2&&xt<=36){var Ct=pt[xt],Ht=mt[xt];Ot="";var Jt=this.clone();for(Jt.negative=0;!Jt.isZero();){var nn=Jt.modrn(Ht).toString(xt);Jt=Jt.idivn(Ht),Jt.isZero()?Ot=nn+Ot:Ot=dt[Ct-nn.length]+nn+Ot}for(this.isZero()&&(Ot="0"+Ot);Ot.length%It!==0;)Ot="0"+Ot;return this.negative!==0&&(Ot="-"+Ot),Ot}rt(!1,"Base should be between 2 and 36")},ot.prototype.toNumber=function(){var xt=this.words[0];return this.length===2?xt+=this.words[1]*67108864:this.length===3&&this.words[2]===1?xt+=4503599627370496+this.words[1]*67108864:this.length>2&&rt(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-xt:xt},ot.prototype.toJSON=function(){return this.toString(16,2)},at&&(ot.prototype.toBuffer=function(xt,It){return this.toArrayLike(at,xt,It)}),ot.prototype.toArray=function(xt,It){return this.toArrayLike(Array,xt,It)};var gt=function(xt,It){return xt.allocUnsafe?xt.allocUnsafe(It):new xt(It)};ot.prototype.toArrayLike=function(xt,It,Ot){this._strip();var zt=this.byteLength(),Ut=Ot||Math.max(1,zt);rt(zt<=Ut,"byte array longer than desired length"),rt(Ut>0,"Requested array length <= 0");var Wt=gt(xt,Ut),Ft=It==="le"?"LE":"BE";return this["_toArrayLike"+Ft](Wt,zt),Wt},ot.prototype._toArrayLikeLE=function(xt,It){for(var Ot=0,zt=0,Ut=0,Wt=0;Ut>8&255),Ot>16&255),Wt===6?(Ot>24&255),zt=0,Wt=0):(zt=Ft>>>24,Wt+=2)}if(Ot=0&&(xt[Ot--]=Ft>>8&255),Ot>=0&&(xt[Ot--]=Ft>>16&255),Wt===6?(Ot>=0&&(xt[Ot--]=Ft>>24&255),zt=0,Wt=0):(zt=Ft>>>24,Wt+=2)}if(Ot>=0)for(xt[Ot--]=zt;Ot>=0;)xt[Ot--]=0},Math.clz32?ot.prototype._countBits=function(xt){return 32-Math.clz32(xt)}:ot.prototype._countBits=function(xt){var It=xt,Ot=0;return It>=4096&&(Ot+=13,It>>>=13),It>=64&&(Ot+=7,It>>>=7),It>=8&&(Ot+=4,It>>>=4),It>=2&&(Ot+=2,It>>>=2),Ot+It},ot.prototype._zeroBits=function(xt){if(xt===0)return 26;var It=xt,Ot=0;return It&8191||(Ot+=13,It>>>=13),It&127||(Ot+=7,It>>>=7),It&15||(Ot+=4,It>>>=4),It&3||(Ot+=2,It>>>=2),It&1||Ot++,Ot},ot.prototype.bitLength=function(){var xt=this.words[this.length-1],It=this._countBits(xt);return(this.length-1)*26+It};function yt($t){for(var xt=new Array($t.bitLength()),It=0;It>>zt&1}return xt}ot.prototype.zeroBits=function(){if(this.isZero())return 0;for(var xt=0,It=0;Itxt.length?this.clone().ior(xt):xt.clone().ior(this)},ot.prototype.uor=function(xt){return this.length>xt.length?this.clone().iuor(xt):xt.clone().iuor(this)},ot.prototype.iuand=function(xt){var It;this.length>xt.length?It=xt:It=this;for(var Ot=0;Otxt.length?this.clone().iand(xt):xt.clone().iand(this)},ot.prototype.uand=function(xt){return this.length>xt.length?this.clone().iuand(xt):xt.clone().iuand(this)},ot.prototype.iuxor=function(xt){var It,Ot;this.length>xt.length?(It=this,Ot=xt):(It=xt,Ot=this);for(var zt=0;ztxt.length?this.clone().ixor(xt):xt.clone().ixor(this)},ot.prototype.uxor=function(xt){return this.length>xt.length?this.clone().iuxor(xt):xt.clone().iuxor(this)},ot.prototype.inotn=function(xt){rt(typeof xt=="number"&&xt>=0);var It=Math.ceil(xt/26)|0,Ot=xt%26;this._expand(It),Ot>0&&It--;for(var zt=0;zt0&&(this.words[zt]=~this.words[zt]&67108863>>26-Ot),this._strip()},ot.prototype.notn=function(xt){return this.clone().inotn(xt)},ot.prototype.setn=function(xt,It){rt(typeof xt=="number"&&xt>=0);var Ot=xt/26|0,zt=xt%26;return this._expand(Ot+1),It?this.words[Ot]=this.words[Ot]|1<xt.length?(Ot=this,zt=xt):(Ot=xt,zt=this);for(var Ut=0,Wt=0;Wt>>26;for(;Ut!==0&&Wt>>26;if(this.length=Ot.length,Ut!==0)this.words[this.length]=Ut,this.length++;else if(Ot!==this)for(;Wtxt.length?this.clone().iadd(xt):xt.clone().iadd(this)},ot.prototype.isub=function(xt){if(xt.negative!==0){xt.negative=0;var It=this.iadd(xt);return xt.negative=1,It._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(xt),this.negative=1,this._normSign();var Ot=this.cmp(xt);if(Ot===0)return this.negative=0,this.length=1,this.words[0]=0,this;var zt,Ut;Ot>0?(zt=this,Ut=xt):(zt=xt,Ut=this);for(var Wt=0,Ft=0;Ft>26,this.words[Ft]=It&67108863;for(;Wt!==0&&Ft>26,this.words[Ft]=It&67108863;if(Wt===0&&Ft>>26,Jt=Nt&67108863,nn=Math.min(Ct,xt.length-1),Yt=Math.max(0,Ct-$t.length+1);Yt<=nn;Yt++){var fn=Ct-Yt|0;zt=$t.words[fn]|0,Ut=xt.words[Yt]|0,Wt=zt*Ut+Jt,Ht+=Wt/67108864|0,Jt=Wt&67108863}It.words[Ct]=Jt|0,Nt=Ht|0}return Nt!==0?It.words[Ct]=Nt|0:It.length--,It._strip()}var wt=function(xt,It,Ot){var zt=xt.words,Ut=It.words,Wt=Ot.words,Ft=0,Nt,Ct,Ht,Jt=zt[0]|0,nn=Jt&8191,Yt=Jt>>>13,fn=zt[1]|0,cn=fn&8191,_n=fn>>>13,En=zt[2]|0,an=En&8191,en=En>>>13,Tn=zt[3]|0,Rn=Tn&8191,An=Tn>>>13,yn=zt[4]|0,kn=yn&8191,dn=yn>>>13,gn=zt[5]|0,Cn=gn&8191,$n=gn>>>13,un=zt[6]|0,rn=un&8191,Sn=un>>>13,Mn=zt[7]|0,Nn=Mn&8191,hn=Mn>>>13,Qt=zt[8]|0,Zt=Qt&8191,wn=Qt>>>13,On=zt[9]|0,jn=On&8191,Un=On>>>13,tr=Ut[0]|0,qn=tr&8191,Xn=tr>>>13,Wn=Ut[1]|0,Zn=Wn&8191,Vn=Wn>>>13,pr=Ut[2]|0,fr=pr&8191,Er=pr>>>13,oo=Ut[3]|0,Dr=oo&8191,Rr=oo>>>13,Xr=Ut[4]|0,Vr=Xr&8191,Fr=Xr>>>13,so=Ut[5]|0,qr=so&8191,Or=so>>>13,wo=Ut[6]|0,vn=wo&8191,Pn=wo>>>13,sn=Ut[7]|0,Xt=sn&8191,xn=sn>>>13,Dn=Ut[8]|0,Fn=Dn&8191,Kn=Dn>>>13,nr=Ut[9]|0,lr=nr&8191,cr=nr>>>13;Ot.negative=xt.negative^It.negative,Ot.length=19,Nt=Math.imul(nn,qn),Ct=Math.imul(nn,Xn),Ct=Ct+Math.imul(Yt,qn)|0,Ht=Math.imul(Yt,Xn);var Hr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Hr>>>26)|0,Hr&=67108863,Nt=Math.imul(cn,qn),Ct=Math.imul(cn,Xn),Ct=Ct+Math.imul(_n,qn)|0,Ht=Math.imul(_n,Xn),Nt=Nt+Math.imul(nn,Zn)|0,Ct=Ct+Math.imul(nn,Vn)|0,Ct=Ct+Math.imul(Yt,Zn)|0,Ht=Ht+Math.imul(Yt,Vn)|0;var _r=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(_r>>>26)|0,_r&=67108863,Nt=Math.imul(an,qn),Ct=Math.imul(an,Xn),Ct=Ct+Math.imul(en,qn)|0,Ht=Math.imul(en,Xn),Nt=Nt+Math.imul(cn,Zn)|0,Ct=Ct+Math.imul(cn,Vn)|0,Ct=Ct+Math.imul(_n,Zn)|0,Ht=Ht+Math.imul(_n,Vn)|0,Nt=Nt+Math.imul(nn,fr)|0,Ct=Ct+Math.imul(nn,Er)|0,Ct=Ct+Math.imul(Yt,fr)|0,Ht=Ht+Math.imul(Yt,Er)|0;var jr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(jr>>>26)|0,jr&=67108863,Nt=Math.imul(Rn,qn),Ct=Math.imul(Rn,Xn),Ct=Ct+Math.imul(An,qn)|0,Ht=Math.imul(An,Xn),Nt=Nt+Math.imul(an,Zn)|0,Ct=Ct+Math.imul(an,Vn)|0,Ct=Ct+Math.imul(en,Zn)|0,Ht=Ht+Math.imul(en,Vn)|0,Nt=Nt+Math.imul(cn,fr)|0,Ct=Ct+Math.imul(cn,Er)|0,Ct=Ct+Math.imul(_n,fr)|0,Ht=Ht+Math.imul(_n,Er)|0,Nt=Nt+Math.imul(nn,Dr)|0,Ct=Ct+Math.imul(nn,Rr)|0,Ct=Ct+Math.imul(Yt,Dr)|0,Ht=Ht+Math.imul(Yt,Rr)|0;var Gr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Gr>>>26)|0,Gr&=67108863,Nt=Math.imul(kn,qn),Ct=Math.imul(kn,Xn),Ct=Ct+Math.imul(dn,qn)|0,Ht=Math.imul(dn,Xn),Nt=Nt+Math.imul(Rn,Zn)|0,Ct=Ct+Math.imul(Rn,Vn)|0,Ct=Ct+Math.imul(An,Zn)|0,Ht=Ht+Math.imul(An,Vn)|0,Nt=Nt+Math.imul(an,fr)|0,Ct=Ct+Math.imul(an,Er)|0,Ct=Ct+Math.imul(en,fr)|0,Ht=Ht+Math.imul(en,Er)|0,Nt=Nt+Math.imul(cn,Dr)|0,Ct=Ct+Math.imul(cn,Rr)|0,Ct=Ct+Math.imul(_n,Dr)|0,Ht=Ht+Math.imul(_n,Rr)|0,Nt=Nt+Math.imul(nn,Vr)|0,Ct=Ct+Math.imul(nn,Fr)|0,Ct=Ct+Math.imul(Yt,Vr)|0,Ht=Ht+Math.imul(Yt,Fr)|0;var eo=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(eo>>>26)|0,eo&=67108863,Nt=Math.imul(Cn,qn),Ct=Math.imul(Cn,Xn),Ct=Ct+Math.imul($n,qn)|0,Ht=Math.imul($n,Xn),Nt=Nt+Math.imul(kn,Zn)|0,Ct=Ct+Math.imul(kn,Vn)|0,Ct=Ct+Math.imul(dn,Zn)|0,Ht=Ht+Math.imul(dn,Vn)|0,Nt=Nt+Math.imul(Rn,fr)|0,Ct=Ct+Math.imul(Rn,Er)|0,Ct=Ct+Math.imul(An,fr)|0,Ht=Ht+Math.imul(An,Er)|0,Nt=Nt+Math.imul(an,Dr)|0,Ct=Ct+Math.imul(an,Rr)|0,Ct=Ct+Math.imul(en,Dr)|0,Ht=Ht+Math.imul(en,Rr)|0,Nt=Nt+Math.imul(cn,Vr)|0,Ct=Ct+Math.imul(cn,Fr)|0,Ct=Ct+Math.imul(_n,Vr)|0,Ht=Ht+Math.imul(_n,Fr)|0,Nt=Nt+Math.imul(nn,qr)|0,Ct=Ct+Math.imul(nn,Or)|0,Ct=Ct+Math.imul(Yt,qr)|0,Ht=Ht+Math.imul(Yt,Or)|0;var Qr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Qr>>>26)|0,Qr&=67108863,Nt=Math.imul(rn,qn),Ct=Math.imul(rn,Xn),Ct=Ct+Math.imul(Sn,qn)|0,Ht=Math.imul(Sn,Xn),Nt=Nt+Math.imul(Cn,Zn)|0,Ct=Ct+Math.imul(Cn,Vn)|0,Ct=Ct+Math.imul($n,Zn)|0,Ht=Ht+Math.imul($n,Vn)|0,Nt=Nt+Math.imul(kn,fr)|0,Ct=Ct+Math.imul(kn,Er)|0,Ct=Ct+Math.imul(dn,fr)|0,Ht=Ht+Math.imul(dn,Er)|0,Nt=Nt+Math.imul(Rn,Dr)|0,Ct=Ct+Math.imul(Rn,Rr)|0,Ct=Ct+Math.imul(An,Dr)|0,Ht=Ht+Math.imul(An,Rr)|0,Nt=Nt+Math.imul(an,Vr)|0,Ct=Ct+Math.imul(an,Fr)|0,Ct=Ct+Math.imul(en,Vr)|0,Ht=Ht+Math.imul(en,Fr)|0,Nt=Nt+Math.imul(cn,qr)|0,Ct=Ct+Math.imul(cn,Or)|0,Ct=Ct+Math.imul(_n,qr)|0,Ht=Ht+Math.imul(_n,Or)|0,Nt=Nt+Math.imul(nn,vn)|0,Ct=Ct+Math.imul(nn,Pn)|0,Ct=Ct+Math.imul(Yt,vn)|0,Ht=Ht+Math.imul(Yt,Pn)|0;var _i=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(_i>>>26)|0,_i&=67108863,Nt=Math.imul(Nn,qn),Ct=Math.imul(Nn,Xn),Ct=Ct+Math.imul(hn,qn)|0,Ht=Math.imul(hn,Xn),Nt=Nt+Math.imul(rn,Zn)|0,Ct=Ct+Math.imul(rn,Vn)|0,Ct=Ct+Math.imul(Sn,Zn)|0,Ht=Ht+Math.imul(Sn,Vn)|0,Nt=Nt+Math.imul(Cn,fr)|0,Ct=Ct+Math.imul(Cn,Er)|0,Ct=Ct+Math.imul($n,fr)|0,Ht=Ht+Math.imul($n,Er)|0,Nt=Nt+Math.imul(kn,Dr)|0,Ct=Ct+Math.imul(kn,Rr)|0,Ct=Ct+Math.imul(dn,Dr)|0,Ht=Ht+Math.imul(dn,Rr)|0,Nt=Nt+Math.imul(Rn,Vr)|0,Ct=Ct+Math.imul(Rn,Fr)|0,Ct=Ct+Math.imul(An,Vr)|0,Ht=Ht+Math.imul(An,Fr)|0,Nt=Nt+Math.imul(an,qr)|0,Ct=Ct+Math.imul(an,Or)|0,Ct=Ct+Math.imul(en,qr)|0,Ht=Ht+Math.imul(en,Or)|0,Nt=Nt+Math.imul(cn,vn)|0,Ct=Ct+Math.imul(cn,Pn)|0,Ct=Ct+Math.imul(_n,vn)|0,Ht=Ht+Math.imul(_n,Pn)|0,Nt=Nt+Math.imul(nn,Xt)|0,Ct=Ct+Math.imul(nn,xn)|0,Ct=Ct+Math.imul(Yt,Xt)|0,Ht=Ht+Math.imul(Yt,xn)|0;var wr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(wr>>>26)|0,wr&=67108863,Nt=Math.imul(Zt,qn),Ct=Math.imul(Zt,Xn),Ct=Ct+Math.imul(wn,qn)|0,Ht=Math.imul(wn,Xn),Nt=Nt+Math.imul(Nn,Zn)|0,Ct=Ct+Math.imul(Nn,Vn)|0,Ct=Ct+Math.imul(hn,Zn)|0,Ht=Ht+Math.imul(hn,Vn)|0,Nt=Nt+Math.imul(rn,fr)|0,Ct=Ct+Math.imul(rn,Er)|0,Ct=Ct+Math.imul(Sn,fr)|0,Ht=Ht+Math.imul(Sn,Er)|0,Nt=Nt+Math.imul(Cn,Dr)|0,Ct=Ct+Math.imul(Cn,Rr)|0,Ct=Ct+Math.imul($n,Dr)|0,Ht=Ht+Math.imul($n,Rr)|0,Nt=Nt+Math.imul(kn,Vr)|0,Ct=Ct+Math.imul(kn,Fr)|0,Ct=Ct+Math.imul(dn,Vr)|0,Ht=Ht+Math.imul(dn,Fr)|0,Nt=Nt+Math.imul(Rn,qr)|0,Ct=Ct+Math.imul(Rn,Or)|0,Ct=Ct+Math.imul(An,qr)|0,Ht=Ht+Math.imul(An,Or)|0,Nt=Nt+Math.imul(an,vn)|0,Ct=Ct+Math.imul(an,Pn)|0,Ct=Ct+Math.imul(en,vn)|0,Ht=Ht+Math.imul(en,Pn)|0,Nt=Nt+Math.imul(cn,Xt)|0,Ct=Ct+Math.imul(cn,xn)|0,Ct=Ct+Math.imul(_n,Xt)|0,Ht=Ht+Math.imul(_n,xn)|0,Nt=Nt+Math.imul(nn,Fn)|0,Ct=Ct+Math.imul(nn,Kn)|0,Ct=Ct+Math.imul(Yt,Fn)|0,Ht=Ht+Math.imul(Yt,Kn)|0;var $r=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+($r>>>26)|0,$r&=67108863,Nt=Math.imul(jn,qn),Ct=Math.imul(jn,Xn),Ct=Ct+Math.imul(Un,qn)|0,Ht=Math.imul(Un,Xn),Nt=Nt+Math.imul(Zt,Zn)|0,Ct=Ct+Math.imul(Zt,Vn)|0,Ct=Ct+Math.imul(wn,Zn)|0,Ht=Ht+Math.imul(wn,Vn)|0,Nt=Nt+Math.imul(Nn,fr)|0,Ct=Ct+Math.imul(Nn,Er)|0,Ct=Ct+Math.imul(hn,fr)|0,Ht=Ht+Math.imul(hn,Er)|0,Nt=Nt+Math.imul(rn,Dr)|0,Ct=Ct+Math.imul(rn,Rr)|0,Ct=Ct+Math.imul(Sn,Dr)|0,Ht=Ht+Math.imul(Sn,Rr)|0,Nt=Nt+Math.imul(Cn,Vr)|0,Ct=Ct+Math.imul(Cn,Fr)|0,Ct=Ct+Math.imul($n,Vr)|0,Ht=Ht+Math.imul($n,Fr)|0,Nt=Nt+Math.imul(kn,qr)|0,Ct=Ct+Math.imul(kn,Or)|0,Ct=Ct+Math.imul(dn,qr)|0,Ht=Ht+Math.imul(dn,Or)|0,Nt=Nt+Math.imul(Rn,vn)|0,Ct=Ct+Math.imul(Rn,Pn)|0,Ct=Ct+Math.imul(An,vn)|0,Ht=Ht+Math.imul(An,Pn)|0,Nt=Nt+Math.imul(an,Xt)|0,Ct=Ct+Math.imul(an,xn)|0,Ct=Ct+Math.imul(en,Xt)|0,Ht=Ht+Math.imul(en,xn)|0,Nt=Nt+Math.imul(cn,Fn)|0,Ct=Ct+Math.imul(cn,Kn)|0,Ct=Ct+Math.imul(_n,Fn)|0,Ht=Ht+Math.imul(_n,Kn)|0,Nt=Nt+Math.imul(nn,lr)|0,Ct=Ct+Math.imul(nn,cr)|0,Ct=Ct+Math.imul(Yt,lr)|0,Ht=Ht+Math.imul(Yt,cr)|0;var Wr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Wr>>>26)|0,Wr&=67108863,Nt=Math.imul(jn,Zn),Ct=Math.imul(jn,Vn),Ct=Ct+Math.imul(Un,Zn)|0,Ht=Math.imul(Un,Vn),Nt=Nt+Math.imul(Zt,fr)|0,Ct=Ct+Math.imul(Zt,Er)|0,Ct=Ct+Math.imul(wn,fr)|0,Ht=Ht+Math.imul(wn,Er)|0,Nt=Nt+Math.imul(Nn,Dr)|0,Ct=Ct+Math.imul(Nn,Rr)|0,Ct=Ct+Math.imul(hn,Dr)|0,Ht=Ht+Math.imul(hn,Rr)|0,Nt=Nt+Math.imul(rn,Vr)|0,Ct=Ct+Math.imul(rn,Fr)|0,Ct=Ct+Math.imul(Sn,Vr)|0,Ht=Ht+Math.imul(Sn,Fr)|0,Nt=Nt+Math.imul(Cn,qr)|0,Ct=Ct+Math.imul(Cn,Or)|0,Ct=Ct+Math.imul($n,qr)|0,Ht=Ht+Math.imul($n,Or)|0,Nt=Nt+Math.imul(kn,vn)|0,Ct=Ct+Math.imul(kn,Pn)|0,Ct=Ct+Math.imul(dn,vn)|0,Ht=Ht+Math.imul(dn,Pn)|0,Nt=Nt+Math.imul(Rn,Xt)|0,Ct=Ct+Math.imul(Rn,xn)|0,Ct=Ct+Math.imul(An,Xt)|0,Ht=Ht+Math.imul(An,xn)|0,Nt=Nt+Math.imul(an,Fn)|0,Ct=Ct+Math.imul(an,Kn)|0,Ct=Ct+Math.imul(en,Fn)|0,Ht=Ht+Math.imul(en,Kn)|0,Nt=Nt+Math.imul(cn,lr)|0,Ct=Ct+Math.imul(cn,cr)|0,Ct=Ct+Math.imul(_n,lr)|0,Ht=Ht+Math.imul(_n,cr)|0;var Br=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Br>>>26)|0,Br&=67108863,Nt=Math.imul(jn,fr),Ct=Math.imul(jn,Er),Ct=Ct+Math.imul(Un,fr)|0,Ht=Math.imul(Un,Er),Nt=Nt+Math.imul(Zt,Dr)|0,Ct=Ct+Math.imul(Zt,Rr)|0,Ct=Ct+Math.imul(wn,Dr)|0,Ht=Ht+Math.imul(wn,Rr)|0,Nt=Nt+Math.imul(Nn,Vr)|0,Ct=Ct+Math.imul(Nn,Fr)|0,Ct=Ct+Math.imul(hn,Vr)|0,Ht=Ht+Math.imul(hn,Fr)|0,Nt=Nt+Math.imul(rn,qr)|0,Ct=Ct+Math.imul(rn,Or)|0,Ct=Ct+Math.imul(Sn,qr)|0,Ht=Ht+Math.imul(Sn,Or)|0,Nt=Nt+Math.imul(Cn,vn)|0,Ct=Ct+Math.imul(Cn,Pn)|0,Ct=Ct+Math.imul($n,vn)|0,Ht=Ht+Math.imul($n,Pn)|0,Nt=Nt+Math.imul(kn,Xt)|0,Ct=Ct+Math.imul(kn,xn)|0,Ct=Ct+Math.imul(dn,Xt)|0,Ht=Ht+Math.imul(dn,xn)|0,Nt=Nt+Math.imul(Rn,Fn)|0,Ct=Ct+Math.imul(Rn,Kn)|0,Ct=Ct+Math.imul(An,Fn)|0,Ht=Ht+Math.imul(An,Kn)|0,Nt=Nt+Math.imul(an,lr)|0,Ct=Ct+Math.imul(an,cr)|0,Ct=Ct+Math.imul(en,lr)|0,Ht=Ht+Math.imul(en,cr)|0;var Pr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Pr>>>26)|0,Pr&=67108863,Nt=Math.imul(jn,Dr),Ct=Math.imul(jn,Rr),Ct=Ct+Math.imul(Un,Dr)|0,Ht=Math.imul(Un,Rr),Nt=Nt+Math.imul(Zt,Vr)|0,Ct=Ct+Math.imul(Zt,Fr)|0,Ct=Ct+Math.imul(wn,Vr)|0,Ht=Ht+Math.imul(wn,Fr)|0,Nt=Nt+Math.imul(Nn,qr)|0,Ct=Ct+Math.imul(Nn,Or)|0,Ct=Ct+Math.imul(hn,qr)|0,Ht=Ht+Math.imul(hn,Or)|0,Nt=Nt+Math.imul(rn,vn)|0,Ct=Ct+Math.imul(rn,Pn)|0,Ct=Ct+Math.imul(Sn,vn)|0,Ht=Ht+Math.imul(Sn,Pn)|0,Nt=Nt+Math.imul(Cn,Xt)|0,Ct=Ct+Math.imul(Cn,xn)|0,Ct=Ct+Math.imul($n,Xt)|0,Ht=Ht+Math.imul($n,xn)|0,Nt=Nt+Math.imul(kn,Fn)|0,Ct=Ct+Math.imul(kn,Kn)|0,Ct=Ct+Math.imul(dn,Fn)|0,Ht=Ht+Math.imul(dn,Kn)|0,Nt=Nt+Math.imul(Rn,lr)|0,Ct=Ct+Math.imul(Rn,cr)|0,Ct=Ct+Math.imul(An,lr)|0,Ht=Ht+Math.imul(An,cr)|0;var Lr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Lr>>>26)|0,Lr&=67108863,Nt=Math.imul(jn,Vr),Ct=Math.imul(jn,Fr),Ct=Ct+Math.imul(Un,Vr)|0,Ht=Math.imul(Un,Fr),Nt=Nt+Math.imul(Zt,qr)|0,Ct=Ct+Math.imul(Zt,Or)|0,Ct=Ct+Math.imul(wn,qr)|0,Ht=Ht+Math.imul(wn,Or)|0,Nt=Nt+Math.imul(Nn,vn)|0,Ct=Ct+Math.imul(Nn,Pn)|0,Ct=Ct+Math.imul(hn,vn)|0,Ht=Ht+Math.imul(hn,Pn)|0,Nt=Nt+Math.imul(rn,Xt)|0,Ct=Ct+Math.imul(rn,xn)|0,Ct=Ct+Math.imul(Sn,Xt)|0,Ht=Ht+Math.imul(Sn,xn)|0,Nt=Nt+Math.imul(Cn,Fn)|0,Ct=Ct+Math.imul(Cn,Kn)|0,Ct=Ct+Math.imul($n,Fn)|0,Ht=Ht+Math.imul($n,Kn)|0,Nt=Nt+Math.imul(kn,lr)|0,Ct=Ct+Math.imul(kn,cr)|0,Ct=Ct+Math.imul(dn,lr)|0,Ht=Ht+Math.imul(dn,cr)|0;var Nr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Nr>>>26)|0,Nr&=67108863,Nt=Math.imul(jn,qr),Ct=Math.imul(jn,Or),Ct=Ct+Math.imul(Un,qr)|0,Ht=Math.imul(Un,Or),Nt=Nt+Math.imul(Zt,vn)|0,Ct=Ct+Math.imul(Zt,Pn)|0,Ct=Ct+Math.imul(wn,vn)|0,Ht=Ht+Math.imul(wn,Pn)|0,Nt=Nt+Math.imul(Nn,Xt)|0,Ct=Ct+Math.imul(Nn,xn)|0,Ct=Ct+Math.imul(hn,Xt)|0,Ht=Ht+Math.imul(hn,xn)|0,Nt=Nt+Math.imul(rn,Fn)|0,Ct=Ct+Math.imul(rn,Kn)|0,Ct=Ct+Math.imul(Sn,Fn)|0,Ht=Ht+Math.imul(Sn,Kn)|0,Nt=Nt+Math.imul(Cn,lr)|0,Ct=Ct+Math.imul(Cn,cr)|0,Ct=Ct+Math.imul($n,lr)|0,Ht=Ht+Math.imul($n,cr)|0;var Cr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Cr>>>26)|0,Cr&=67108863,Nt=Math.imul(jn,vn),Ct=Math.imul(jn,Pn),Ct=Ct+Math.imul(Un,vn)|0,Ht=Math.imul(Un,Pn),Nt=Nt+Math.imul(Zt,Xt)|0,Ct=Ct+Math.imul(Zt,xn)|0,Ct=Ct+Math.imul(wn,Xt)|0,Ht=Ht+Math.imul(wn,xn)|0,Nt=Nt+Math.imul(Nn,Fn)|0,Ct=Ct+Math.imul(Nn,Kn)|0,Ct=Ct+Math.imul(hn,Fn)|0,Ht=Ht+Math.imul(hn,Kn)|0,Nt=Nt+Math.imul(rn,lr)|0,Ct=Ct+Math.imul(rn,cr)|0,Ct=Ct+Math.imul(Sn,lr)|0,Ht=Ht+Math.imul(Sn,cr)|0;var er=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(er>>>26)|0,er&=67108863,Nt=Math.imul(jn,Xt),Ct=Math.imul(jn,xn),Ct=Ct+Math.imul(Un,Xt)|0,Ht=Math.imul(Un,xn),Nt=Nt+Math.imul(Zt,Fn)|0,Ct=Ct+Math.imul(Zt,Kn)|0,Ct=Ct+Math.imul(wn,Fn)|0,Ht=Ht+Math.imul(wn,Kn)|0,Nt=Nt+Math.imul(Nn,lr)|0,Ct=Ct+Math.imul(Nn,cr)|0,Ct=Ct+Math.imul(hn,lr)|0,Ht=Ht+Math.imul(hn,cr)|0;var ir=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(ir>>>26)|0,ir&=67108863,Nt=Math.imul(jn,Fn),Ct=Math.imul(jn,Kn),Ct=Ct+Math.imul(Un,Fn)|0,Ht=Math.imul(Un,Kn),Nt=Nt+Math.imul(Zt,lr)|0,Ct=Ct+Math.imul(Zt,cr)|0,Ct=Ct+Math.imul(wn,lr)|0,Ht=Ht+Math.imul(wn,cr)|0;var Sr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Sr>>>26)|0,Sr&=67108863,Nt=Math.imul(jn,lr),Ct=Math.imul(jn,cr),Ct=Ct+Math.imul(Un,lr)|0,Ht=Math.imul(Un,cr);var dr=(Ft+Nt|0)+((Ct&8191)<<13)|0;return Ft=(Ht+(Ct>>>13)|0)+(dr>>>26)|0,dr&=67108863,Wt[0]=Hr,Wt[1]=_r,Wt[2]=jr,Wt[3]=Gr,Wt[4]=eo,Wt[5]=Qr,Wt[6]=_i,Wt[7]=wr,Wt[8]=$r,Wt[9]=Wr,Wt[10]=Br,Wt[11]=Pr,Wt[12]=Lr,Wt[13]=Nr,Wt[14]=Cr,Wt[15]=er,Wt[16]=ir,Wt[17]=Sr,Wt[18]=dr,Ft!==0&&(Wt[19]=Ft,Ot.length++),Ot};Math.imul||(wt=bt);function vt($t,xt,It){It.negative=xt.negative^$t.negative,It.length=$t.length+xt.length;for(var Ot=0,zt=0,Ut=0;Ut>>26)|0,zt+=Wt>>>26,Wt&=67108863}It.words[Ut]=Ft,Ot=Wt,Wt=zt}return Ot!==0?It.words[Ut]=Ot:It.length--,It._strip()}function kt($t,xt,It){return vt($t,xt,It)}ot.prototype.mulTo=function(xt,It){var Ot,zt=this.length+xt.length;return this.length===10&&xt.length===10?Ot=wt(this,xt,It):zt<63?Ot=bt(this,xt,It):zt<1024?Ot=vt(this,xt,It):Ot=kt(this,xt,It),Ot},ot.prototype.mul=function(xt){var It=new ot(null);return It.words=new Array(this.length+xt.length),this.mulTo(xt,It)},ot.prototype.mulf=function(xt){var It=new ot(null);return It.words=new Array(this.length+xt.length),kt(this,xt,It)},ot.prototype.imul=function(xt){return this.clone().mulTo(xt,this)},ot.prototype.imuln=function(xt){var It=xt<0;It&&(xt=-xt),rt(typeof xt=="number"),rt(xt<67108864);for(var Ot=0,zt=0;zt>=26,Ot+=Ut/67108864|0,Ot+=Wt>>>26,this.words[zt]=Wt&67108863}return Ot!==0&&(this.words[zt]=Ot,this.length++),It?this.ineg():this},ot.prototype.muln=function(xt){return this.clone().imuln(xt)},ot.prototype.sqr=function(){return this.mul(this)},ot.prototype.isqr=function(){return this.imul(this.clone())},ot.prototype.pow=function(xt){var It=yt(xt);if(It.length===0)return new ot(1);for(var Ot=this,zt=0;zt=0);var It=xt%26,Ot=(xt-It)/26,zt=67108863>>>26-It<<26-It,Ut;if(It!==0){var Wt=0;for(Ut=0;Ut>>26-It}Wt&&(this.words[Ut]=Wt,this.length++)}if(Ot!==0){for(Ut=this.length-1;Ut>=0;Ut--)this.words[Ut+Ot]=this.words[Ut];for(Ut=0;Ut=0);var zt;It?zt=(It-It%26)/26:zt=0;var Ut=xt%26,Wt=Math.min((xt-Ut)/26,this.length),Ft=67108863^67108863>>>Ut<Wt)for(this.length-=Wt,Ct=0;Ct=0&&(Ht!==0||Ct>=zt);Ct--){var Jt=this.words[Ct]|0;this.words[Ct]=Ht<<26-Ut|Jt>>>Ut,Ht=Jt&Ft}return Nt&&Ht!==0&&(Nt.words[Nt.length++]=Ht),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},ot.prototype.ishrn=function(xt,It,Ot){return rt(this.negative===0),this.iushrn(xt,It,Ot)},ot.prototype.shln=function(xt){return this.clone().ishln(xt)},ot.prototype.ushln=function(xt){return this.clone().iushln(xt)},ot.prototype.shrn=function(xt){return this.clone().ishrn(xt)},ot.prototype.ushrn=function(xt){return this.clone().iushrn(xt)},ot.prototype.testn=function(xt){rt(typeof xt=="number"&&xt>=0);var It=xt%26,Ot=(xt-It)/26,zt=1<=0);var It=xt%26,Ot=(xt-It)/26;if(rt(this.negative===0,"imaskn works only with positive numbers"),this.length<=Ot)return this;if(It!==0&&Ot++,this.length=Math.min(Ot,this.length),It!==0){var zt=67108863^67108863>>>It<=67108864;It++)this.words[It]-=67108864,It===this.length-1?this.words[It+1]=1:this.words[It+1]++;return this.length=Math.max(this.length,It+1),this},ot.prototype.isubn=function(xt){if(rt(typeof xt=="number"),rt(xt<67108864),xt<0)return this.iaddn(-xt);if(this.negative!==0)return this.negative=0,this.iaddn(xt),this.negative=1,this;if(this.words[0]-=xt,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var It=0;It>26)-(Nt/67108864|0),this.words[Ut+Ot]=Wt&67108863}for(;Ut>26,this.words[Ut+Ot]=Wt&67108863;if(Ft===0)return this._strip();for(rt(Ft===-1),Ft=0,Ut=0;Ut>26,this.words[Ut]=Wt&67108863;return this.negative=1,this._strip()},ot.prototype._wordDiv=function(xt,It){var Ot=this.length-xt.length,zt=this.clone(),Ut=xt,Wt=Ut.words[Ut.length-1]|0,Ft=this._countBits(Wt);Ot=26-Ft,Ot!==0&&(Ut=Ut.ushln(Ot),zt.iushln(Ot),Wt=Ut.words[Ut.length-1]|0);var Nt=zt.length-Ut.length,Ct;if(It!=="mod"){Ct=new ot(null),Ct.length=Nt+1,Ct.words=new Array(Ct.length);for(var Ht=0;Ht=0;nn--){var Yt=(zt.words[Ut.length+nn]|0)*67108864+(zt.words[Ut.length+nn-1]|0);for(Yt=Math.min(Yt/Wt|0,67108863),zt._ishlnsubmul(Ut,Yt,nn);zt.negative!==0;)Yt--,zt.negative=0,zt._ishlnsubmul(Ut,1,nn),zt.isZero()||(zt.negative^=1);Ct&&(Ct.words[nn]=Yt)}return Ct&&Ct._strip(),zt._strip(),It!=="div"&&Ot!==0&&zt.iushrn(Ot),{div:Ct||null,mod:zt}},ot.prototype.divmod=function(xt,It,Ot){if(rt(!xt.isZero()),this.isZero())return{div:new ot(0),mod:new ot(0)};var zt,Ut,Wt;return this.negative!==0&&xt.negative===0?(Wt=this.neg().divmod(xt,It),It!=="mod"&&(zt=Wt.div.neg()),It!=="div"&&(Ut=Wt.mod.neg(),Ot&&Ut.negative!==0&&Ut.iadd(xt)),{div:zt,mod:Ut}):this.negative===0&&xt.negative!==0?(Wt=this.divmod(xt.neg(),It),It!=="mod"&&(zt=Wt.div.neg()),{div:zt,mod:Wt.mod}):this.negative&xt.negative?(Wt=this.neg().divmod(xt.neg(),It),It!=="div"&&(Ut=Wt.mod.neg(),Ot&&Ut.negative!==0&&Ut.isub(xt)),{div:Wt.div,mod:Ut}):xt.length>this.length||this.cmp(xt)<0?{div:new ot(0),mod:this}:xt.length===1?It==="div"?{div:this.divn(xt.words[0]),mod:null}:It==="mod"?{div:null,mod:new ot(this.modrn(xt.words[0]))}:{div:this.divn(xt.words[0]),mod:new ot(this.modrn(xt.words[0]))}:this._wordDiv(xt,It)},ot.prototype.div=function(xt){return this.divmod(xt,"div",!1).div},ot.prototype.mod=function(xt){return this.divmod(xt,"mod",!1).mod},ot.prototype.umod=function(xt){return this.divmod(xt,"mod",!0).mod},ot.prototype.divRound=function(xt){var It=this.divmod(xt);if(It.mod.isZero())return It.div;var Ot=It.div.negative!==0?It.mod.isub(xt):It.mod,zt=xt.ushrn(1),Ut=xt.andln(1),Wt=Ot.cmp(zt);return Wt<0||Ut===1&&Wt===0?It.div:It.div.negative!==0?It.div.isubn(1):It.div.iaddn(1)},ot.prototype.modrn=function(xt){var It=xt<0;It&&(xt=-xt),rt(xt<=67108863);for(var Ot=(1<<26)%xt,zt=0,Ut=this.length-1;Ut>=0;Ut--)zt=(Ot*zt+(this.words[Ut]|0))%xt;return It?-zt:zt},ot.prototype.modn=function(xt){return this.modrn(xt)},ot.prototype.idivn=function(xt){var It=xt<0;It&&(xt=-xt),rt(xt<=67108863);for(var Ot=0,zt=this.length-1;zt>=0;zt--){var Ut=(this.words[zt]|0)+Ot*67108864;this.words[zt]=Ut/xt|0,Ot=Ut%xt}return this._strip(),It?this.ineg():this},ot.prototype.divn=function(xt){return this.clone().idivn(xt)},ot.prototype.egcd=function(xt){rt(xt.negative===0),rt(!xt.isZero());var It=this,Ot=xt.clone();It.negative!==0?It=It.umod(xt):It=It.clone();for(var zt=new ot(1),Ut=new ot(0),Wt=new ot(0),Ft=new ot(1),Nt=0;It.isEven()&&Ot.isEven();)It.iushrn(1),Ot.iushrn(1),++Nt;for(var Ct=Ot.clone(),Ht=It.clone();!It.isZero();){for(var Jt=0,nn=1;!(It.words[0]&nn)&&Jt<26;++Jt,nn<<=1);if(Jt>0)for(It.iushrn(Jt);Jt-- >0;)(zt.isOdd()||Ut.isOdd())&&(zt.iadd(Ct),Ut.isub(Ht)),zt.iushrn(1),Ut.iushrn(1);for(var Yt=0,fn=1;!(Ot.words[0]&fn)&&Yt<26;++Yt,fn<<=1);if(Yt>0)for(Ot.iushrn(Yt);Yt-- >0;)(Wt.isOdd()||Ft.isOdd())&&(Wt.iadd(Ct),Ft.isub(Ht)),Wt.iushrn(1),Ft.iushrn(1);It.cmp(Ot)>=0?(It.isub(Ot),zt.isub(Wt),Ut.isub(Ft)):(Ot.isub(It),Wt.isub(zt),Ft.isub(Ut))}return{a:Wt,b:Ft,gcd:Ot.iushln(Nt)}},ot.prototype._invmp=function(xt){rt(xt.negative===0),rt(!xt.isZero());var It=this,Ot=xt.clone();It.negative!==0?It=It.umod(xt):It=It.clone();for(var zt=new ot(1),Ut=new ot(0),Wt=Ot.clone();It.cmpn(1)>0&&Ot.cmpn(1)>0;){for(var Ft=0,Nt=1;!(It.words[0]&Nt)&&Ft<26;++Ft,Nt<<=1);if(Ft>0)for(It.iushrn(Ft);Ft-- >0;)zt.isOdd()&&zt.iadd(Wt),zt.iushrn(1);for(var Ct=0,Ht=1;!(Ot.words[0]&Ht)&&Ct<26;++Ct,Ht<<=1);if(Ct>0)for(Ot.iushrn(Ct);Ct-- >0;)Ut.isOdd()&&Ut.iadd(Wt),Ut.iushrn(1);It.cmp(Ot)>=0?(It.isub(Ot),zt.isub(Ut)):(Ot.isub(It),Ut.isub(zt))}var Jt;return It.cmpn(1)===0?Jt=zt:Jt=Ut,Jt.cmpn(0)<0&&Jt.iadd(xt),Jt},ot.prototype.gcd=function(xt){if(this.isZero())return xt.abs();if(xt.isZero())return this.abs();var It=this.clone(),Ot=xt.clone();It.negative=0,Ot.negative=0;for(var zt=0;It.isEven()&&Ot.isEven();zt++)It.iushrn(1),Ot.iushrn(1);do{for(;It.isEven();)It.iushrn(1);for(;Ot.isEven();)Ot.iushrn(1);var Ut=It.cmp(Ot);if(Ut<0){var Wt=It;It=Ot,Ot=Wt}else if(Ut===0||Ot.cmpn(1)===0)break;It.isub(Ot)}while(!0);return Ot.iushln(zt)},ot.prototype.invm=function(xt){return this.egcd(xt).a.umod(xt)},ot.prototype.isEven=function(){return(this.words[0]&1)===0},ot.prototype.isOdd=function(){return(this.words[0]&1)===1},ot.prototype.andln=function(xt){return this.words[0]&xt},ot.prototype.bincn=function(xt){rt(typeof xt=="number");var It=xt%26,Ot=(xt-It)/26,zt=1<>>26,Ft&=67108863,this.words[Wt]=Ft}return Ut!==0&&(this.words[Wt]=Ut,this.length++),this},ot.prototype.isZero=function(){return this.length===1&&this.words[0]===0},ot.prototype.cmpn=function(xt){var It=xt<0;if(this.negative!==0&&!It)return-1;if(this.negative===0&&It)return 1;this._strip();var Ot;if(this.length>1)Ot=1;else{It&&(xt=-xt),rt(xt<=67108863,"Number is too big");var zt=this.words[0]|0;Ot=zt===xt?0:ztxt.length)return 1;if(this.length=0;Ot--){var zt=this.words[Ot]|0,Ut=xt.words[Ot]|0;if(zt!==Ut){ztUt&&(It=1);break}}return It},ot.prototype.gtn=function(xt){return this.cmpn(xt)===1},ot.prototype.gt=function(xt){return this.cmp(xt)===1},ot.prototype.gten=function(xt){return this.cmpn(xt)>=0},ot.prototype.gte=function(xt){return this.cmp(xt)>=0},ot.prototype.ltn=function(xt){return this.cmpn(xt)===-1},ot.prototype.lt=function(xt){return this.cmp(xt)===-1},ot.prototype.lten=function(xt){return this.cmpn(xt)<=0},ot.prototype.lte=function(xt){return this.cmp(xt)<=0},ot.prototype.eqn=function(xt){return this.cmpn(xt)===0},ot.prototype.eq=function(xt){return this.cmp(xt)===0},ot.red=function(xt){return new jt(xt)},ot.prototype.toRed=function(xt){return rt(!this.red,"Already a number in reduction context"),rt(this.negative===0,"red works only with positives"),xt.convertTo(this)._forceRed(xt)},ot.prototype.fromRed=function(){return rt(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},ot.prototype._forceRed=function(xt){return this.red=xt,this},ot.prototype.forceRed=function(xt){return rt(!this.red,"Already a number in reduction context"),this._forceRed(xt)},ot.prototype.redAdd=function(xt){return rt(this.red,"redAdd works only with red numbers"),this.red.add(this,xt)},ot.prototype.redIAdd=function(xt){return rt(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,xt)},ot.prototype.redSub=function(xt){return rt(this.red,"redSub works only with red numbers"),this.red.sub(this,xt)},ot.prototype.redISub=function(xt){return rt(this.red,"redISub works only with red numbers"),this.red.isub(this,xt)},ot.prototype.redShl=function(xt){return rt(this.red,"redShl works only with red numbers"),this.red.shl(this,xt)},ot.prototype.redMul=function(xt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,xt),this.red.mul(this,xt)},ot.prototype.redIMul=function(xt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,xt),this.red.imul(this,xt)},ot.prototype.redSqr=function(){return rt(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},ot.prototype.redISqr=function(){return rt(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},ot.prototype.redSqrt=function(){return rt(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},ot.prototype.redInvm=function(){return rt(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},ot.prototype.redNeg=function(){return rt(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},ot.prototype.redPow=function(xt){return rt(this.red&&!xt.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,xt)};var St={k256:null,p224:null,p192:null,p25519:null};function Tt($t,xt){this.name=$t,this.p=new ot(xt,16),this.n=this.p.bitLength(),this.k=new ot(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}Tt.prototype._tmp=function(){var xt=new ot(null);return xt.words=new Array(Math.ceil(this.n/13)),xt},Tt.prototype.ireduce=function(xt){var It=xt,Ot;do this.split(It,this.tmp),It=this.imulK(It),It=It.iadd(this.tmp),Ot=It.bitLength();while(Ot>this.n);var zt=Ot0?It.isub(this.p):It.strip!==void 0?It.strip():It._strip(),It},Tt.prototype.split=function(xt,It){xt.iushrn(this.n,0,It)},Tt.prototype.imulK=function(xt){return xt.imul(this.k)};function At(){Tt.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}it(At,Tt),At.prototype.split=function(xt,It){for(var Ot=4194303,zt=Math.min(xt.length,9),Ut=0;Ut>>22,Wt=Ft}Wt>>>=22,xt.words[Ut-10]=Wt,Wt===0&&xt.length>10?xt.length-=10:xt.length-=9},At.prototype.imulK=function(xt){xt.words[xt.length]=0,xt.words[xt.length+1]=0,xt.length+=2;for(var It=0,Ot=0;Ot>>=26,xt.words[Ot]=Ut,It=zt}return It!==0&&(xt.words[xt.length++]=It),xt},ot._prime=function(xt){if(St[xt])return St[xt];var It;if(xt==="k256")It=new At;else if(xt==="p224")It=new Et;else if(xt==="p192")It=new Mt;else if(xt==="p25519")It=new Lt;else throw new Error("Unknown prime "+xt);return St[xt]=It,It};function jt($t){if(typeof $t=="string"){var xt=ot._prime($t);this.m=xt.p,this.prime=xt}else rt($t.gtn(1),"modulus must be greater than 1"),this.m=$t,this.prime=null}jt.prototype._verify1=function(xt){rt(xt.negative===0,"red works only with positives"),rt(xt.red,"red works only with red numbers")},jt.prototype._verify2=function(xt,It){rt((xt.negative|It.negative)===0,"red works only with positives"),rt(xt.red&&xt.red===It.red,"red works only with red numbers")},jt.prototype.imod=function(xt){return this.prime?this.prime.ireduce(xt)._forceRed(this):(ut(xt,xt.umod(this.m)._forceRed(this)),xt)},jt.prototype.neg=function(xt){return xt.isZero()?xt.clone():this.m.sub(xt)._forceRed(this)},jt.prototype.add=function(xt,It){this._verify2(xt,It);var Ot=xt.add(It);return Ot.cmp(this.m)>=0&&Ot.isub(this.m),Ot._forceRed(this)},jt.prototype.iadd=function(xt,It){this._verify2(xt,It);var Ot=xt.iadd(It);return Ot.cmp(this.m)>=0&&Ot.isub(this.m),Ot},jt.prototype.sub=function(xt,It){this._verify2(xt,It);var Ot=xt.sub(It);return Ot.cmpn(0)<0&&Ot.iadd(this.m),Ot._forceRed(this)},jt.prototype.isub=function(xt,It){this._verify2(xt,It);var Ot=xt.isub(It);return Ot.cmpn(0)<0&&Ot.iadd(this.m),Ot},jt.prototype.shl=function(xt,It){return this._verify1(xt),this.imod(xt.ushln(It))},jt.prototype.imul=function(xt,It){return this._verify2(xt,It),this.imod(xt.imul(It))},jt.prototype.mul=function(xt,It){return this._verify2(xt,It),this.imod(xt.mul(It))},jt.prototype.isqr=function(xt){return this.imul(xt,xt.clone())},jt.prototype.sqr=function(xt){return this.mul(xt,xt)},jt.prototype.sqrt=function(xt){if(xt.isZero())return xt.clone();var It=this.m.andln(3);if(rt(It%2===1),It===3){var Ot=this.m.add(new ot(1)).iushrn(2);return this.pow(xt,Ot)}for(var zt=this.m.subn(1),Ut=0;!zt.isZero()&&zt.andln(1)===0;)Ut++,zt.iushrn(1);rt(!zt.isZero());var Wt=new ot(1).toRed(this),Ft=Wt.redNeg(),Nt=this.m.subn(1).iushrn(1),Ct=this.m.bitLength();for(Ct=new ot(2*Ct*Ct).toRed(this);this.pow(Ct,Nt).cmp(Ft)!==0;)Ct.redIAdd(Ft);for(var Ht=this.pow(Ct,zt),Jt=this.pow(xt,zt.addn(1).iushrn(1)),nn=this.pow(xt,zt),Yt=Ut;nn.cmp(Wt)!==0;){for(var fn=nn,cn=0;fn.cmp(Wt)!==0;cn++)fn=fn.redSqr();rt(cn=0;Ut--){for(var Ht=It.words[Ut],Jt=Ct-1;Jt>=0;Jt--){var nn=Ht>>Jt&1;if(Wt!==zt[0]&&(Wt=this.sqr(Wt)),nn===0&&Ft===0){Nt=0;continue}Ft<<=1,Ft|=nn,Nt++,!(Nt!==Ot&&(Ut!==0||Jt!==0))&&(Wt=this.mul(Wt,zt[Ft]),Nt=0,Ft=0)}Ct=26}return Wt},jt.prototype.convertTo=function(xt){var It=xt.umod(this.m);return It===xt?It.clone():It},jt.prototype.convertFrom=function(xt){var It=xt.clone();return It.red=null,It},ot.mont=function(xt){return new Rt(xt)};function Rt($t){jt.call(this,$t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new ot(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}it(Rt,jt),Rt.prototype.convertTo=function(xt){return this.imod(xt.ushln(this.shift))},Rt.prototype.convertFrom=function(xt){var It=this.imod(xt.mul(this.rinv));return It.red=null,It},Rt.prototype.imul=function(xt,It){if(xt.isZero()||It.isZero())return xt.words[0]=0,xt.length=1,xt;var Ot=xt.imul(It),zt=Ot.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ut=Ot.isub(zt).iushrn(this.shift),Wt=Ut;return Ut.cmp(this.m)>=0?Wt=Ut.isub(this.m):Ut.cmpn(0)<0&&(Wt=Ut.iadd(this.m)),Wt._forceRed(this)},Rt.prototype.mul=function(xt,It){if(xt.isZero()||It.isZero())return new ot(0)._forceRed(this);var Ot=xt.mul(It),zt=Ot.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ut=Ot.isub(zt).iushrn(this.shift),Wt=Ut;return Ut.cmp(this.m)>=0?Wt=Ut.isub(this.m):Ut.cmpn(0)<0&&(Wt=Ut.iadd(this.m)),Wt._forceRed(this)},Rt.prototype.invm=function(xt){var It=this.imod(xt._invmp(this.m).mul(this.r2));return It._forceRed(this)}})(tt,commonjsGlobal)})(bn$1);var bnExports$1=bn$1.exports,BN$c=bnExports$1,randomBytes$1=browserExports;function blind(tt){var et=getr(tt),nt=et.toRed(BN$c.mont(tt.modulus)).redPow(new BN$c(tt.publicExponent)).fromRed();return{blinder:nt,unblinder:et.invm(tt.modulus)}}function getr(tt){var et=tt.modulus.byteLength(),nt;do nt=new BN$c(randomBytes$1(et));while(nt.cmp(tt.modulus)>=0||!nt.umod(tt.prime1)||!nt.umod(tt.prime2));return nt}function crt$2(tt,et){var nt=blind(et),rt=et.modulus.byteLength(),it=new BN$c(tt).mul(nt.blinder).umod(et.modulus),ot=it.toRed(BN$c.mont(et.prime1)),at=it.toRed(BN$c.mont(et.prime2)),st=et.coefficient,lt=et.prime1,ct=et.prime2,ut=ot.redPow(et.exponent1).fromRed(),ht=at.redPow(et.exponent2).fromRed(),dt=ut.isub(ht).imul(st).umod(lt).imul(ct);return ht.iadd(dt).imul(nt.unblinder).umod(et.modulus).toArrayLike(Buffer,"be",rt)}crt$2.getr=getr;var browserifyRsa=crt$2,elliptic$2={};const name$1="elliptic",version$2="6.5.4",description="EC cryptography",main="lib/elliptic.js",files=["lib"],scripts={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository={type:"git",url:"git@github.com:indutny/elliptic"},keywords=["EC","Elliptic","curve","Cryptography"],author="Fedor Indutny ",license="MIT",bugs={url:"https://github.com/indutny/elliptic/issues"},homepage="https://github.com/indutny/elliptic",devDependencies={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},require$$0$1={name:name$1,version:version$2,description,main,files,scripts,repository,keywords,author,license,bugs,homepage,devDependencies,dependencies};var utils$o={},utils$n={};(function(tt){var et=tt;function nt(ot,at){if(Array.isArray(ot))return ot.slice();if(!ot)return[];var st=[];if(typeof ot!="string"){for(var lt=0;lt>8,ht=ct&255;ut?st.push(ut,ht):st.push(ht)}return st}et.toArray=nt;function rt(ot){return ot.length===1?"0"+ot:ot}et.zero2=rt;function it(ot){for(var at="",st=0;st(mt>>1)-1?bt=(mt>>1)-wt:bt=wt,gt.isubn(bt)):bt=0,pt[yt]=bt,gt.iushrn(1)}return pt}et.getNAF=ot;function at(ut,ht){var dt=[[],[]];ut=ut.clone(),ht=ht.clone();for(var pt=0,mt=0,gt;ut.cmpn(-pt)>0||ht.cmpn(-mt)>0;){var yt=ut.andln(3)+pt&3,bt=ht.andln(3)+mt&3;yt===3&&(yt=-1),bt===3&&(bt=-1);var wt;yt&1?(gt=ut.andln(7)+pt&7,(gt===3||gt===5)&&bt===2?wt=-yt:wt=yt):wt=0,dt[0].push(wt);var vt;bt&1?(gt=ht.andln(7)+mt&7,(gt===3||gt===5)&&yt===2?vt=-bt:vt=bt):vt=0,dt[1].push(vt),2*pt===wt+1&&(pt=1-pt),2*mt===vt+1&&(mt=1-mt),ut.iushrn(1),ht.iushrn(1)}return dt}et.getJSF=at;function st(ut,ht,dt){var pt="_"+ht;ut.prototype[ht]=function(){return this[pt]!==void 0?this[pt]:this[pt]=dt.call(this)}}et.cachedProperty=st;function lt(ut){return typeof ut=="string"?et.toArray(ut,"hex"):ut}et.parseBytes=lt;function ct(ut){return new nt(ut,"hex","le")}et.intFromLE=ct})(utils$o);var curve={},BN$b=bnExports$2,utils$m=utils$o,getNAF=utils$m.getNAF,getJSF=utils$m.getJSF,assert$k=utils$m.assert;function BaseCurve(tt,et){this.type=tt,this.p=new BN$b(et.p,16),this.red=et.prime?BN$b.red(et.prime):BN$b.mont(this.p),this.zero=new BN$b(0).toRed(this.red),this.one=new BN$b(1).toRed(this.red),this.two=new BN$b(2).toRed(this.red),this.n=et.n&&new BN$b(et.n,16),this.g=et.g&&this.pointFromJSON(et.g,et.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var nt=this.n&&this.p.div(this.n);!nt||nt.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var base$3=BaseCurve;BaseCurve.prototype.point=function(){throw new Error("Not implemented")};BaseCurve.prototype.validate=function(){throw new Error("Not implemented")};BaseCurve.prototype._fixedNafMul=function(et,nt){assert$k(et.precomputed);var rt=et._getDoubles(),it=getNAF(nt,1,this._bitLength),ot=(1<=st;ct--)lt=(lt<<1)+it[ct];at.push(lt)}for(var ut=this.jpoint(null,null,null),ht=this.jpoint(null,null,null),dt=ot;dt>0;dt--){for(st=0;st=0;lt--){for(var ct=0;lt>=0&&at[lt]===0;lt--)ct++;if(lt>=0&&ct++,st=st.dblp(ct),lt<0)break;var ut=at[lt];assert$k(ut!==0),et.type==="affine"?ut>0?st=st.mixedAdd(ot[ut-1>>1]):st=st.mixedAdd(ot[-ut-1>>1].neg()):ut>0?st=st.add(ot[ut-1>>1]):st=st.add(ot[-ut-1>>1].neg())}return et.type==="affine"?st.toP():st};BaseCurve.prototype._wnafMulAdd=function(et,nt,rt,it,ot){var at=this._wnafT1,st=this._wnafT2,lt=this._wnafT3,ct=0,ut,ht,dt;for(ut=0;ut=1;ut-=2){var mt=ut-1,gt=ut;if(at[mt]!==1||at[gt]!==1){lt[mt]=getNAF(rt[mt],at[mt],this._bitLength),lt[gt]=getNAF(rt[gt],at[gt],this._bitLength),ct=Math.max(lt[mt].length,ct),ct=Math.max(lt[gt].length,ct);continue}var yt=[nt[mt],null,null,nt[gt]];nt[mt].y.cmp(nt[gt].y)===0?(yt[1]=nt[mt].add(nt[gt]),yt[2]=nt[mt].toJ().mixedAdd(nt[gt].neg())):nt[mt].y.cmp(nt[gt].y.redNeg())===0?(yt[1]=nt[mt].toJ().mixedAdd(nt[gt]),yt[2]=nt[mt].add(nt[gt].neg())):(yt[1]=nt[mt].toJ().mixedAdd(nt[gt]),yt[2]=nt[mt].toJ().mixedAdd(nt[gt].neg()));var bt=[-3,-1,-5,-7,0,7,5,1,3],wt=getJSF(rt[mt],rt[gt]);for(ct=Math.max(wt[0].length,ct),lt[mt]=new Array(ct),lt[gt]=new Array(ct),ht=0;ht=0;ut--){for(var At=0;ut>=0;){var Et=!0;for(ht=0;ht=0&&At++,St=St.dblp(At),ut<0)break;for(ht=0;ht0?dt=st[ht][Mt-1>>1]:Mt<0&&(dt=st[ht][-Mt-1>>1].neg()),dt.type==="affine"?St=St.mixedAdd(dt):St=St.add(dt))}}for(ut=0;ut=Math.ceil((et.bitLength()+1)/nt.step):!1};BasePoint.prototype._getDoubles=function(et,nt){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var rt=[this],it=this,ot=0;ot=0&&(pt=ct,mt=ut),ht.negative&&(ht=ht.neg(),dt=dt.neg()),pt.negative&&(pt=pt.neg(),mt=mt.neg()),[{a:ht,b:dt},{a:pt,b:mt}]};ShortCurve.prototype._endoSplit=function(et){var nt=this.endo.basis,rt=nt[0],it=nt[1],ot=it.b.mul(et).divRound(this.n),at=rt.b.neg().mul(et).divRound(this.n),st=ot.mul(rt.a),lt=at.mul(it.a),ct=ot.mul(rt.b),ut=at.mul(it.b),ht=et.sub(st).sub(lt),dt=ct.add(ut).neg();return{k1:ht,k2:dt}};ShortCurve.prototype.pointFromX=function(et,nt){et=new BN$a(et,16),et.red||(et=et.toRed(this.red));var rt=et.redSqr().redMul(et).redIAdd(et.redMul(this.a)).redIAdd(this.b),it=rt.redSqrt();if(it.redSqr().redSub(rt).cmp(this.zero)!==0)throw new Error("invalid point");var ot=it.fromRed().isOdd();return(nt&&!ot||!nt&&ot)&&(it=it.redNeg()),this.point(et,it)};ShortCurve.prototype.validate=function(et){if(et.inf)return!0;var nt=et.x,rt=et.y,it=this.a.redMul(nt),ot=nt.redSqr().redMul(nt).redIAdd(it).redIAdd(this.b);return rt.redSqr().redISub(ot).cmpn(0)===0};ShortCurve.prototype._endoWnafMulAdd=function(et,nt,rt){for(var it=this._endoWnafT1,ot=this._endoWnafT2,at=0;at":""};Point$2.prototype.isInfinity=function(){return this.inf};Point$2.prototype.add=function(et){if(this.inf)return et;if(et.inf)return this;if(this.eq(et))return this.dbl();if(this.neg().eq(et))return this.curve.point(null,null);if(this.x.cmp(et.x)===0)return this.curve.point(null,null);var nt=this.y.redSub(et.y);nt.cmpn(0)!==0&&(nt=nt.redMul(this.x.redSub(et.x).redInvm()));var rt=nt.redSqr().redISub(this.x).redISub(et.x),it=nt.redMul(this.x.redSub(rt)).redISub(this.y);return this.curve.point(rt,it)};Point$2.prototype.dbl=function(){if(this.inf)return this;var et=this.y.redAdd(this.y);if(et.cmpn(0)===0)return this.curve.point(null,null);var nt=this.curve.a,rt=this.x.redSqr(),it=et.redInvm(),ot=rt.redAdd(rt).redIAdd(rt).redIAdd(nt).redMul(it),at=ot.redSqr().redISub(this.x.redAdd(this.x)),st=ot.redMul(this.x.redSub(at)).redISub(this.y);return this.curve.point(at,st)};Point$2.prototype.getX=function(){return this.x.fromRed()};Point$2.prototype.getY=function(){return this.y.fromRed()};Point$2.prototype.mul=function(et){return et=new BN$a(et,16),this.isInfinity()?this:this._hasDoubles(et)?this.curve._fixedNafMul(this,et):this.curve.endo?this.curve._endoWnafMulAdd([this],[et]):this.curve._wnafMul(this,et)};Point$2.prototype.mulAdd=function(et,nt,rt){var it=[this,nt],ot=[et,rt];return this.curve.endo?this.curve._endoWnafMulAdd(it,ot):this.curve._wnafMulAdd(1,it,ot,2)};Point$2.prototype.jmulAdd=function(et,nt,rt){var it=[this,nt],ot=[et,rt];return this.curve.endo?this.curve._endoWnafMulAdd(it,ot,!0):this.curve._wnafMulAdd(1,it,ot,2,!0)};Point$2.prototype.eq=function(et){return this===et||this.inf===et.inf&&(this.inf||this.x.cmp(et.x)===0&&this.y.cmp(et.y)===0)};Point$2.prototype.neg=function(et){if(this.inf)return this;var nt=this.curve.point(this.x,this.y.redNeg());if(et&&this.precomputed){var rt=this.precomputed,it=function(ot){return ot.neg()};nt.precomputed={naf:rt.naf&&{wnd:rt.naf.wnd,points:rt.naf.points.map(it)},doubles:rt.doubles&&{step:rt.doubles.step,points:rt.doubles.points.map(it)}}}return nt};Point$2.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var et=this.curve.jpoint(this.x,this.y,this.curve.one);return et};function JPoint(tt,et,nt,rt){Base$2.BasePoint.call(this,tt,"jacobian"),et===null&&nt===null&&rt===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new BN$a(0)):(this.x=new BN$a(et,16),this.y=new BN$a(nt,16),this.z=new BN$a(rt,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}inherits$9(JPoint,Base$2.BasePoint);ShortCurve.prototype.jpoint=function(et,nt,rt){return new JPoint(this,et,nt,rt)};JPoint.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var et=this.z.redInvm(),nt=et.redSqr(),rt=this.x.redMul(nt),it=this.y.redMul(nt).redMul(et);return this.curve.point(rt,it)};JPoint.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};JPoint.prototype.add=function(et){if(this.isInfinity())return et;if(et.isInfinity())return this;var nt=et.z.redSqr(),rt=this.z.redSqr(),it=this.x.redMul(nt),ot=et.x.redMul(rt),at=this.y.redMul(nt.redMul(et.z)),st=et.y.redMul(rt.redMul(this.z)),lt=it.redSub(ot),ct=at.redSub(st);if(lt.cmpn(0)===0)return ct.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var ut=lt.redSqr(),ht=ut.redMul(lt),dt=it.redMul(ut),pt=ct.redSqr().redIAdd(ht).redISub(dt).redISub(dt),mt=ct.redMul(dt.redISub(pt)).redISub(at.redMul(ht)),gt=this.z.redMul(et.z).redMul(lt);return this.curve.jpoint(pt,mt,gt)};JPoint.prototype.mixedAdd=function(et){if(this.isInfinity())return et.toJ();if(et.isInfinity())return this;var nt=this.z.redSqr(),rt=this.x,it=et.x.redMul(nt),ot=this.y,at=et.y.redMul(nt).redMul(this.z),st=rt.redSub(it),lt=ot.redSub(at);if(st.cmpn(0)===0)return lt.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var ct=st.redSqr(),ut=ct.redMul(st),ht=rt.redMul(ct),dt=lt.redSqr().redIAdd(ut).redISub(ht).redISub(ht),pt=lt.redMul(ht.redISub(dt)).redISub(ot.redMul(ut)),mt=this.z.redMul(st);return this.curve.jpoint(dt,pt,mt)};JPoint.prototype.dblp=function(et){if(et===0)return this;if(this.isInfinity())return this;if(!et)return this.dbl();var nt;if(this.curve.zeroA||this.curve.threeA){var rt=this;for(nt=0;nt=0)return!1;if(rt.redIAdd(ot),this.x.cmp(rt)===0)return!0}};JPoint.prototype.inspect=function(){return this.isInfinity()?"":""};JPoint.prototype.isInfinity=function(){return this.z.cmpn(0)===0};var BN$9=bnExports$2,inherits$8=inherits_browserExports,Base$1=base$3,utils$k=utils$o;function MontCurve(tt){Base$1.call(this,"mont",tt),this.a=new BN$9(tt.a,16).toRed(this.red),this.b=new BN$9(tt.b,16).toRed(this.red),this.i4=new BN$9(4).toRed(this.red).redInvm(),this.two=new BN$9(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits$8(MontCurve,Base$1);var mont=MontCurve;MontCurve.prototype.validate=function(et){var nt=et.normalize().x,rt=nt.redSqr(),it=rt.redMul(nt).redAdd(rt.redMul(this.a)).redAdd(nt),ot=it.redSqrt();return ot.redSqr().cmp(it)===0};function Point$1(tt,et,nt){Base$1.BasePoint.call(this,tt,"projective"),et===null&&nt===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new BN$9(et,16),this.z=new BN$9(nt,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}inherits$8(Point$1,Base$1.BasePoint);MontCurve.prototype.decodePoint=function(et,nt){return this.point(utils$k.toArray(et,nt),1)};MontCurve.prototype.point=function(et,nt){return new Point$1(this,et,nt)};MontCurve.prototype.pointFromJSON=function(et){return Point$1.fromJSON(this,et)};Point$1.prototype.precompute=function(){};Point$1.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())};Point$1.fromJSON=function(et,nt){return new Point$1(et,nt[0],nt[1]||et.one)};Point$1.prototype.inspect=function(){return this.isInfinity()?"":""};Point$1.prototype.isInfinity=function(){return this.z.cmpn(0)===0};Point$1.prototype.dbl=function(){var et=this.x.redAdd(this.z),nt=et.redSqr(),rt=this.x.redSub(this.z),it=rt.redSqr(),ot=nt.redSub(it),at=nt.redMul(it),st=ot.redMul(it.redAdd(this.curve.a24.redMul(ot)));return this.curve.point(at,st)};Point$1.prototype.add=function(){throw new Error("Not supported on Montgomery curve")};Point$1.prototype.diffAdd=function(et,nt){var rt=this.x.redAdd(this.z),it=this.x.redSub(this.z),ot=et.x.redAdd(et.z),at=et.x.redSub(et.z),st=at.redMul(rt),lt=ot.redMul(it),ct=nt.z.redMul(st.redAdd(lt).redSqr()),ut=nt.x.redMul(st.redISub(lt).redSqr());return this.curve.point(ct,ut)};Point$1.prototype.mul=function(et){for(var nt=et.clone(),rt=this,it=this.curve.point(null,null),ot=this,at=[];nt.cmpn(0)!==0;nt.iushrn(1))at.push(nt.andln(1));for(var st=at.length-1;st>=0;st--)at[st]===0?(rt=rt.diffAdd(it,ot),it=it.dbl()):(it=rt.diffAdd(it,ot),rt=rt.dbl());return it};Point$1.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")};Point$1.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")};Point$1.prototype.eq=function(et){return this.getX().cmp(et.getX())===0};Point$1.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};Point$1.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var utils$j=utils$o,BN$8=bnExports$2,inherits$7=inherits_browserExports,Base=base$3,assert$i=utils$j.assert;function EdwardsCurve(tt){this.twisted=(tt.a|0)!==1,this.mOneA=this.twisted&&(tt.a|0)===-1,this.extended=this.mOneA,Base.call(this,"edwards",tt),this.a=new BN$8(tt.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new BN$8(tt.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new BN$8(tt.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),assert$i(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(tt.c|0)===1}inherits$7(EdwardsCurve,Base);var edwards=EdwardsCurve;EdwardsCurve.prototype._mulA=function(et){return this.mOneA?et.redNeg():this.a.redMul(et)};EdwardsCurve.prototype._mulC=function(et){return this.oneC?et:this.c.redMul(et)};EdwardsCurve.prototype.jpoint=function(et,nt,rt,it){return this.point(et,nt,rt,it)};EdwardsCurve.prototype.pointFromX=function(et,nt){et=new BN$8(et,16),et.red||(et=et.toRed(this.red));var rt=et.redSqr(),it=this.c2.redSub(this.a.redMul(rt)),ot=this.one.redSub(this.c2.redMul(this.d).redMul(rt)),at=it.redMul(ot.redInvm()),st=at.redSqrt();if(st.redSqr().redSub(at).cmp(this.zero)!==0)throw new Error("invalid point");var lt=st.fromRed().isOdd();return(nt&&!lt||!nt&<)&&(st=st.redNeg()),this.point(et,st)};EdwardsCurve.prototype.pointFromY=function(et,nt){et=new BN$8(et,16),et.red||(et=et.toRed(this.red));var rt=et.redSqr(),it=rt.redSub(this.c2),ot=rt.redMul(this.d).redMul(this.c2).redSub(this.a),at=it.redMul(ot.redInvm());if(at.cmp(this.zero)===0){if(nt)throw new Error("invalid point");return this.point(this.zero,et)}var st=at.redSqrt();if(st.redSqr().redSub(at).cmp(this.zero)!==0)throw new Error("invalid point");return st.fromRed().isOdd()!==nt&&(st=st.redNeg()),this.point(st,et)};EdwardsCurve.prototype.validate=function(et){if(et.isInfinity())return!0;et.normalize();var nt=et.x.redSqr(),rt=et.y.redSqr(),it=nt.redMul(this.a).redAdd(rt),ot=this.c2.redMul(this.one.redAdd(this.d.redMul(nt).redMul(rt)));return it.cmp(ot)===0};function Point(tt,et,nt,rt,it){Base.BasePoint.call(this,tt,"projective"),et===null&&nt===null&&rt===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new BN$8(et,16),this.y=new BN$8(nt,16),this.z=rt?new BN$8(rt,16):this.curve.one,this.t=it&&new BN$8(it,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}inherits$7(Point,Base.BasePoint);EdwardsCurve.prototype.pointFromJSON=function(et){return Point.fromJSON(this,et)};EdwardsCurve.prototype.point=function(et,nt,rt,it){return new Point(this,et,nt,rt,it)};Point.fromJSON=function(et,nt){return new Point(et,nt[0],nt[1],nt[2])};Point.prototype.inspect=function(){return this.isInfinity()?"":""};Point.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Point.prototype._extDbl=function(){var et=this.x.redSqr(),nt=this.y.redSqr(),rt=this.z.redSqr();rt=rt.redIAdd(rt);var it=this.curve._mulA(et),ot=this.x.redAdd(this.y).redSqr().redISub(et).redISub(nt),at=it.redAdd(nt),st=at.redSub(rt),lt=it.redSub(nt),ct=ot.redMul(st),ut=at.redMul(lt),ht=ot.redMul(lt),dt=st.redMul(at);return this.curve.point(ct,ut,dt,ht)};Point.prototype._projDbl=function(){var et=this.x.redAdd(this.y).redSqr(),nt=this.x.redSqr(),rt=this.y.redSqr(),it,ot,at,st,lt,ct;if(this.curve.twisted){st=this.curve._mulA(nt);var ut=st.redAdd(rt);this.zOne?(it=et.redSub(nt).redSub(rt).redMul(ut.redSub(this.curve.two)),ot=ut.redMul(st.redSub(rt)),at=ut.redSqr().redSub(ut).redSub(ut)):(lt=this.z.redSqr(),ct=ut.redSub(lt).redISub(lt),it=et.redSub(nt).redISub(rt).redMul(ct),ot=ut.redMul(st.redSub(rt)),at=ut.redMul(ct))}else st=nt.redAdd(rt),lt=this.curve._mulC(this.z).redSqr(),ct=st.redSub(lt).redSub(lt),it=this.curve._mulC(et.redISub(st)).redMul(ct),ot=this.curve._mulC(st).redMul(nt.redISub(rt)),at=st.redMul(ct);return this.curve.point(it,ot,at)};Point.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()};Point.prototype._extAdd=function(et){var nt=this.y.redSub(this.x).redMul(et.y.redSub(et.x)),rt=this.y.redAdd(this.x).redMul(et.y.redAdd(et.x)),it=this.t.redMul(this.curve.dd).redMul(et.t),ot=this.z.redMul(et.z.redAdd(et.z)),at=rt.redSub(nt),st=ot.redSub(it),lt=ot.redAdd(it),ct=rt.redAdd(nt),ut=at.redMul(st),ht=lt.redMul(ct),dt=at.redMul(ct),pt=st.redMul(lt);return this.curve.point(ut,ht,pt,dt)};Point.prototype._projAdd=function(et){var nt=this.z.redMul(et.z),rt=nt.redSqr(),it=this.x.redMul(et.x),ot=this.y.redMul(et.y),at=this.curve.d.redMul(it).redMul(ot),st=rt.redSub(at),lt=rt.redAdd(at),ct=this.x.redAdd(this.y).redMul(et.x.redAdd(et.y)).redISub(it).redISub(ot),ut=nt.redMul(st).redMul(ct),ht,dt;return this.curve.twisted?(ht=nt.redMul(lt).redMul(ot.redSub(this.curve._mulA(it))),dt=st.redMul(lt)):(ht=nt.redMul(lt).redMul(ot.redSub(it)),dt=this.curve._mulC(st).redMul(lt)),this.curve.point(ut,ht,dt)};Point.prototype.add=function(et){return this.isInfinity()?et:et.isInfinity()?this:this.curve.extended?this._extAdd(et):this._projAdd(et)};Point.prototype.mul=function(et){return this._hasDoubles(et)?this.curve._fixedNafMul(this,et):this.curve._wnafMul(this,et)};Point.prototype.mulAdd=function(et,nt,rt){return this.curve._wnafMulAdd(1,[this,nt],[et,rt],2,!1)};Point.prototype.jmulAdd=function(et,nt,rt){return this.curve._wnafMulAdd(1,[this,nt],[et,rt],2,!0)};Point.prototype.normalize=function(){if(this.zOne)return this;var et=this.z.redInvm();return this.x=this.x.redMul(et),this.y=this.y.redMul(et),this.t&&(this.t=this.t.redMul(et)),this.z=this.curve.one,this.zOne=!0,this};Point.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()};Point.prototype.getY=function(){return this.normalize(),this.y.fromRed()};Point.prototype.eq=function(et){return this===et||this.getX().cmp(et.getX())===0&&this.getY().cmp(et.getY())===0};Point.prototype.eqXToP=function(et){var nt=et.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(nt)===0)return!0;for(var rt=et.clone(),it=this.curve.redN.redMul(this.z);;){if(rt.iadd(this.curve.n),rt.cmp(this.curve.p)>=0)return!1;if(nt.redIAdd(it),this.x.cmp(nt)===0)return!0}};Point.prototype.toP=Point.prototype.normalize;Point.prototype.mixedAdd=Point.prototype.add;(function(tt){var et=tt;et.base=base$3,et.short=short,et.mont=mont,et.edwards=edwards})(curve);var curves$1={},hash$3={},utils$i={},assert$h=minimalisticAssert,inherits$6=inherits_browserExports;utils$i.inherits=inherits$6;function isSurrogatePair(tt,et){return(tt.charCodeAt(et)&64512)!==55296||et<0||et+1>=tt.length?!1:(tt.charCodeAt(et+1)&64512)===56320}function toArray$4(tt,et){if(Array.isArray(tt))return tt.slice();if(!tt)return[];var nt=[];if(typeof tt=="string")if(et){if(et==="hex")for(tt=tt.replace(/[^a-z0-9]+/ig,""),tt.length%2!==0&&(tt="0"+tt),it=0;it>6|192,nt[rt++]=ot&63|128):isSurrogatePair(tt,it)?(ot=65536+((ot&1023)<<10)+(tt.charCodeAt(++it)&1023),nt[rt++]=ot>>18|240,nt[rt++]=ot>>12&63|128,nt[rt++]=ot>>6&63|128,nt[rt++]=ot&63|128):(nt[rt++]=ot>>12|224,nt[rt++]=ot>>6&63|128,nt[rt++]=ot&63|128)}else for(it=0;it>>24|tt>>>8&65280|tt<<8&16711680|(tt&255)<<24;return et>>>0}utils$i.htonl=htonl;function toHex32(tt,et){for(var nt="",rt=0;rt>>0}return ot}utils$i.join32=join32;function split32(tt,et){for(var nt=new Array(tt.length*4),rt=0,it=0;rt>>24,nt[it+1]=ot>>>16&255,nt[it+2]=ot>>>8&255,nt[it+3]=ot&255):(nt[it+3]=ot>>>24,nt[it+2]=ot>>>16&255,nt[it+1]=ot>>>8&255,nt[it]=ot&255)}return nt}utils$i.split32=split32;function rotr32$1(tt,et){return tt>>>et|tt<<32-et}utils$i.rotr32=rotr32$1;function rotl32$2(tt,et){return tt<>>32-et}utils$i.rotl32=rotl32$2;function sum32$3(tt,et){return tt+et>>>0}utils$i.sum32=sum32$3;function sum32_3$1(tt,et,nt){return tt+et+nt>>>0}utils$i.sum32_3=sum32_3$1;function sum32_4$2(tt,et,nt,rt){return tt+et+nt+rt>>>0}utils$i.sum32_4=sum32_4$2;function sum32_5$2(tt,et,nt,rt,it){return tt+et+nt+rt+it>>>0}utils$i.sum32_5=sum32_5$2;function sum64$1(tt,et,nt,rt){var it=tt[et],ot=tt[et+1],at=rt+ot>>>0,st=(at>>0,tt[et+1]=at}utils$i.sum64=sum64$1;function sum64_hi$1(tt,et,nt,rt){var it=et+rt>>>0,ot=(it>>0}utils$i.sum64_hi=sum64_hi$1;function sum64_lo$1(tt,et,nt,rt){var it=et+rt;return it>>>0}utils$i.sum64_lo=sum64_lo$1;function sum64_4_hi$1(tt,et,nt,rt,it,ot,at,st){var lt=0,ct=et;ct=ct+rt>>>0,lt+=ct>>0,lt+=ct>>0,lt+=ct>>0}utils$i.sum64_4_hi=sum64_4_hi$1;function sum64_4_lo$1(tt,et,nt,rt,it,ot,at,st){var lt=et+rt+ot+st;return lt>>>0}utils$i.sum64_4_lo=sum64_4_lo$1;function sum64_5_hi$1(tt,et,nt,rt,it,ot,at,st,lt,ct){var ut=0,ht=et;ht=ht+rt>>>0,ut+=ht>>0,ut+=ht>>0,ut+=ht>>0,ut+=ht>>0}utils$i.sum64_5_hi=sum64_5_hi$1;function sum64_5_lo$1(tt,et,nt,rt,it,ot,at,st,lt,ct){var ut=et+rt+ot+st+ct;return ut>>>0}utils$i.sum64_5_lo=sum64_5_lo$1;function rotr64_hi$1(tt,et,nt){var rt=et<<32-nt|tt>>>nt;return rt>>>0}utils$i.rotr64_hi=rotr64_hi$1;function rotr64_lo$1(tt,et,nt){var rt=tt<<32-nt|et>>>nt;return rt>>>0}utils$i.rotr64_lo=rotr64_lo$1;function shr64_hi$1(tt,et,nt){return tt>>>nt}utils$i.shr64_hi=shr64_hi$1;function shr64_lo$1(tt,et,nt){var rt=tt<<32-nt|et>>>nt;return rt>>>0}utils$i.shr64_lo=shr64_lo$1;var common$6={},utils$h=utils$i,assert$g=minimalisticAssert;function BlockHash$4(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}common$6.BlockHash=BlockHash$4;BlockHash$4.prototype.update=function(et,nt){if(et=utils$h.toArray(et,nt),this.pending?this.pending=this.pending.concat(et):this.pending=et,this.pendingTotal+=et.length,this.pending.length>=this._delta8){et=this.pending;var rt=et.length%this._delta8;this.pending=et.slice(et.length-rt,et.length),this.pending.length===0&&(this.pending=null),et=utils$h.join32(et,0,et.length-rt,this.endian);for(var it=0;it>>24&255,it[ot++]=et>>>16&255,it[ot++]=et>>>8&255,it[ot++]=et&255}else for(it[ot++]=et&255,it[ot++]=et>>>8&255,it[ot++]=et>>>16&255,it[ot++]=et>>>24&255,it[ot++]=0,it[ot++]=0,it[ot++]=0,it[ot++]=0,at=8;at>>3}common$5.g0_256=g0_256$1;function g1_256$1(tt){return rotr32(tt,17)^rotr32(tt,19)^tt>>>10}common$5.g1_256=g1_256$1;var utils$f=utils$i,common$4=common$6,shaCommon$1=common$5,rotl32$1=utils$f.rotl32,sum32$2=utils$f.sum32,sum32_5$1=utils$f.sum32_5,ft_1=shaCommon$1.ft_1,BlockHash$3=common$4.BlockHash,sha1_K=[1518500249,1859775393,2400959708,3395469782];function SHA1$1(){if(!(this instanceof SHA1$1))return new SHA1$1;BlockHash$3.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}utils$f.inherits(SHA1$1,BlockHash$3);var _1=SHA1$1;SHA1$1.blockSize=512;SHA1$1.outSize=160;SHA1$1.hmacStrength=80;SHA1$1.padLength=64;SHA1$1.prototype._update=function(et,nt){for(var rt=this.W,it=0;it<16;it++)rt[it]=et[nt+it];for(;itthis.blockSize&&(et=new this.Hash().update(et).digest()),assert$d(et.length<=this.blockSize);for(var nt=et.length;nt=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(et,nt,rt)}var hmacDrbg=HmacDRBG;HmacDRBG.prototype._init=function(et,nt,rt){var it=et.concat(nt).concat(rt);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var ot=0;ot=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(et.concat(rt||[])),this._reseed=1};HmacDRBG.prototype.generate=function(et,nt,rt,it){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof nt!="string"&&(it=rt,rt=nt,nt=null),rt&&(rt=utils$8.toArray(rt,it||"hex"),this._update(rt));for(var ot=[];ot.length"};var BN$6=bnExports$2,utils$6=utils$o,assert$a=utils$6.assert;function Signature$2(tt,et){if(tt instanceof Signature$2)return tt;this._importDER(tt,et)||(assert$a(tt.r&&tt.s,"Signature without r or s"),this.r=new BN$6(tt.r,16),this.s=new BN$6(tt.s,16),tt.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=tt.recoveryParam)}var signature$1=Signature$2;function Position(){this.place=0}function getLength(tt,et){var nt=tt[et.place++];if(!(nt&128))return nt;var rt=nt&15;if(rt===0||rt>4)return!1;for(var it=0,ot=0,at=et.place;ot>>=0;return it<=127?!1:(et.place=at,it)}function rmPadding(tt){for(var et=0,nt=tt.length-1;!tt[et]&&!(tt[et+1]&128)&&et>>3);for(tt.push(nt|128);--nt;)tt.push(et>>>(nt<<3)&255);tt.push(et)}Signature$2.prototype.toDER=function(et){var nt=this.r.toArray(),rt=this.s.toArray();for(nt[0]&128&&(nt=[0].concat(nt)),rt[0]&128&&(rt=[0].concat(rt)),nt=rmPadding(nt),rt=rmPadding(rt);!rt[0]&&!(rt[1]&128);)rt=rt.slice(1);var it=[2];constructLength(it,nt.length),it=it.concat(nt),it.push(2),constructLength(it,rt.length);var ot=it.concat(rt),at=[48];return constructLength(at,ot.length),at=at.concat(ot),utils$6.encode(at,et)};var ec$1,hasRequiredEc;function requireEc(){if(hasRequiredEc)return ec$1;hasRequiredEc=1;var tt=bnExports$2,et=hmacDrbg,nt=utils$o,rt=curves$1,it=requireBrorand(),ot=nt.assert,at=key$2,st=signature$1;function lt(ct){if(!(this instanceof lt))return new lt(ct);typeof ct=="string"&&(ot(Object.prototype.hasOwnProperty.call(rt,ct),"Unknown curve "+ct),ct=rt[ct]),ct instanceof rt.PresetCurve&&(ct={curve:ct}),this.curve=ct.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=ct.curve.g,this.g.precompute(ct.curve.n.bitLength()+1),this.hash=ct.hash||ct.curve.hash}return ec$1=lt,lt.prototype.keyPair=function(ut){return new at(this,ut)},lt.prototype.keyFromPrivate=function(ut,ht){return at.fromPrivate(this,ut,ht)},lt.prototype.keyFromPublic=function(ut,ht){return at.fromPublic(this,ut,ht)},lt.prototype.genKeyPair=function(ut){ut||(ut={});for(var ht=new et({hash:this.hash,pers:ut.pers,persEnc:ut.persEnc||"utf8",entropy:ut.entropy||it(this.hash.hmacStrength),entropyEnc:ut.entropy&&ut.entropyEnc||"utf8",nonce:this.n.toArray()}),dt=this.n.byteLength(),pt=this.n.sub(new tt(2));;){var mt=new tt(ht.generate(dt));if(!(mt.cmp(pt)>0))return mt.iaddn(1),this.keyFromPrivate(mt)}},lt.prototype._truncateToN=function(ut,ht){var dt=ut.byteLength()*8-this.n.bitLength();return dt>0&&(ut=ut.ushrn(dt)),!ht&&ut.cmp(this.n)>=0?ut.sub(this.n):ut},lt.prototype.sign=function(ut,ht,dt,pt){typeof dt=="object"&&(pt=dt,dt=null),pt||(pt={}),ht=this.keyFromPrivate(ht,dt),ut=this._truncateToN(new tt(ut,16));for(var mt=this.n.byteLength(),gt=ht.getPrivate().toArray("be",mt),yt=ut.toArray("be",mt),bt=new et({hash:this.hash,entropy:gt,nonce:yt,pers:pt.pers,persEnc:pt.persEnc||"utf8"}),wt=this.n.sub(new tt(1)),vt=0;;vt++){var kt=pt.k?pt.k(vt):new tt(bt.generate(this.n.byteLength()));if(kt=this._truncateToN(kt,!0),!(kt.cmpn(1)<=0||kt.cmp(wt)>=0)){var St=this.g.mul(kt);if(!St.isInfinity()){var Tt=St.getX(),At=Tt.umod(this.n);if(At.cmpn(0)!==0){var Et=kt.invm(this.n).mul(At.mul(ht.getPrivate()).iadd(ut));if(Et=Et.umod(this.n),Et.cmpn(0)!==0){var Mt=(St.getY().isOdd()?1:0)|(Tt.cmp(At)!==0?2:0);return pt.canonical&&Et.cmp(this.nh)>0&&(Et=this.n.sub(Et),Mt^=1),new st({r:At,s:Et,recoveryParam:Mt})}}}}}},lt.prototype.verify=function(ut,ht,dt,pt){ut=this._truncateToN(new tt(ut,16)),dt=this.keyFromPublic(dt,pt),ht=new st(ht,"hex");var mt=ht.r,gt=ht.s;if(mt.cmpn(1)<0||mt.cmp(this.n)>=0||gt.cmpn(1)<0||gt.cmp(this.n)>=0)return!1;var yt=gt.invm(this.n),bt=yt.mul(ut).umod(this.n),wt=yt.mul(mt).umod(this.n),vt;return this.curve._maxwellTrick?(vt=this.g.jmulAdd(bt,dt.getPublic(),wt),vt.isInfinity()?!1:vt.eqXToP(mt)):(vt=this.g.mulAdd(bt,dt.getPublic(),wt),vt.isInfinity()?!1:vt.getX().umod(this.n).cmp(mt)===0)},lt.prototype.recoverPubKey=function(ct,ut,ht,dt){ot((3&ht)===ht,"The recovery param is more than two bits"),ut=new st(ut,dt);var pt=this.n,mt=new tt(ct),gt=ut.r,yt=ut.s,bt=ht&1,wt=ht>>1;if(gt.cmp(this.curve.p.umod(this.curve.n))>=0&&wt)throw new Error("Unable to find sencond key candinate");wt?gt=this.curve.pointFromX(gt.add(this.curve.n),bt):gt=this.curve.pointFromX(gt,bt);var vt=ut.r.invm(pt),kt=pt.sub(mt).mul(vt).umod(pt),St=yt.mul(vt).umod(pt);return this.g.mulAdd(kt,gt,St)},lt.prototype.getKeyRecoveryParam=function(ct,ut,ht,dt){if(ut=new st(ut,dt),ut.recoveryParam!==null)return ut.recoveryParam;for(var pt=0;pt<4;pt++){var mt;try{mt=this.recoverPubKey(ct,ut,pt)}catch{continue}if(mt.eq(ht))return pt}throw new Error("Unable to find valid recovery factor")},ec$1}var utils$5=utils$o,assert$9=utils$5.assert,parseBytes$2=utils$5.parseBytes,cachedProperty$1=utils$5.cachedProperty;function KeyPair$1(tt,et){this.eddsa=tt,this._secret=parseBytes$2(et.secret),tt.isPoint(et.pub)?this._pub=et.pub:this._pubBytes=parseBytes$2(et.pub)}KeyPair$1.fromPublic=function(et,nt){return nt instanceof KeyPair$1?nt:new KeyPair$1(et,{pub:nt})};KeyPair$1.fromSecret=function(et,nt){return nt instanceof KeyPair$1?nt:new KeyPair$1(et,{secret:nt})};KeyPair$1.prototype.secret=function(){return this._secret};cachedProperty$1(KeyPair$1,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())});cachedProperty$1(KeyPair$1,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())});cachedProperty$1(KeyPair$1,"privBytes",function(){var et=this.eddsa,nt=this.hash(),rt=et.encodingLength-1,it=nt.slice(0,et.encodingLength);return it[0]&=248,it[rt]&=127,it[rt]|=64,it});cachedProperty$1(KeyPair$1,"priv",function(){return this.eddsa.decodeInt(this.privBytes())});cachedProperty$1(KeyPair$1,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()});cachedProperty$1(KeyPair$1,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)});KeyPair$1.prototype.sign=function(et){return assert$9(this._secret,"KeyPair can only verify"),this.eddsa.sign(et,this)};KeyPair$1.prototype.verify=function(et,nt){return this.eddsa.verify(et,nt,this)};KeyPair$1.prototype.getSecret=function(et){return assert$9(this._secret,"KeyPair is public only"),utils$5.encode(this.secret(),et)};KeyPair$1.prototype.getPublic=function(et){return utils$5.encode(this.pubBytes(),et)};var key$1=KeyPair$1,BN$5=bnExports$2,utils$4=utils$o,assert$8=utils$4.assert,cachedProperty=utils$4.cachedProperty,parseBytes$1=utils$4.parseBytes;function Signature$1(tt,et){this.eddsa=tt,typeof et!="object"&&(et=parseBytes$1(et)),Array.isArray(et)&&(et={R:et.slice(0,tt.encodingLength),S:et.slice(tt.encodingLength)}),assert$8(et.R&&et.S,"Signature without R or S"),tt.isPoint(et.R)&&(this._R=et.R),et.S instanceof BN$5&&(this._S=et.S),this._Rencoded=Array.isArray(et.R)?et.R:et.Rencoded,this._Sencoded=Array.isArray(et.S)?et.S:et.Sencoded}cachedProperty(Signature$1,"S",function(){return this.eddsa.decodeInt(this.Sencoded())});cachedProperty(Signature$1,"R",function(){return this.eddsa.decodePoint(this.Rencoded())});cachedProperty(Signature$1,"Rencoded",function(){return this.eddsa.encodePoint(this.R())});cachedProperty(Signature$1,"Sencoded",function(){return this.eddsa.encodeInt(this.S())});Signature$1.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};Signature$1.prototype.toHex=function(){return utils$4.encode(this.toBytes(),"hex").toUpperCase()};var signature=Signature$1,hash$1=hash$3,curves=curves$1,utils$3=utils$o,assert$7=utils$3.assert,parseBytes=utils$3.parseBytes,KeyPair=key$1,Signature=signature;function EDDSA(tt){if(assert$7(tt==="ed25519","only tested with ed25519 so far"),!(this instanceof EDDSA))return new EDDSA(tt);tt=curves[tt].curve,this.curve=tt,this.g=tt.g,this.g.precompute(tt.n.bitLength()+1),this.pointClass=tt.point().constructor,this.encodingLength=Math.ceil(tt.n.bitLength()/8),this.hash=hash$1.sha512}var eddsa=EDDSA;EDDSA.prototype.sign=function(et,nt){et=parseBytes(et);var rt=this.keyFromSecret(nt),it=this.hashInt(rt.messagePrefix(),et),ot=this.g.mul(it),at=this.encodePoint(ot),st=this.hashInt(at,rt.pubBytes(),et).mul(rt.priv()),lt=it.add(st).umod(this.curve.n);return this.makeSignature({R:ot,S:lt,Rencoded:at})};EDDSA.prototype.verify=function(et,nt,rt){et=parseBytes(et),nt=this.makeSignature(nt);var it=this.keyFromPublic(rt),ot=this.hashInt(nt.Rencoded(),it.pubBytes(),et),at=this.g.mul(nt.S()),st=nt.R().add(it.pub().mul(ot));return st.eq(at)};EDDSA.prototype.hashInt=function(){for(var et=this.hash(),nt=0;nt0?xt:It},ot.min=function(xt,It){return xt.cmp(It)<0?xt:It},ot.prototype._init=function(xt,It,Ot){if(typeof xt=="number")return this._initNumber(xt,It,Ot);if(typeof xt=="object")return this._initArray(xt,It,Ot);It==="hex"&&(It=16),rt(It===(It|0)&&It>=2&&It<=36),xt=xt.toString().replace(/\s+/g,"");var zt=0;xt[0]==="-"&&(zt++,this.negative=1),zt=0;zt-=3)Wt=xt[zt]|xt[zt-1]<<8|xt[zt-2]<<16,this.words[Ut]|=Wt<>>26-Ft&67108863,Ft+=24,Ft>=26&&(Ft-=26,Ut++);else if(Ot==="le")for(zt=0,Ut=0;zt>>26-Ft&67108863,Ft+=24,Ft>=26&&(Ft-=26,Ut++);return this._strip()};function st($t,xt){var It=$t.charCodeAt(xt);if(It>=48&&It<=57)return It-48;if(It>=65&&It<=70)return It-55;if(It>=97&&It<=102)return It-87;rt(!1,"Invalid character in "+$t)}function lt($t,xt,It){var Ot=st($t,It);return It-1>=xt&&(Ot|=st($t,It-1)<<4),Ot}ot.prototype._parseHex=function(xt,It,Ot){this.length=Math.ceil((xt.length-It)/6),this.words=new Array(this.length);for(var zt=0;zt=It;zt-=2)Ft=lt(xt,It,zt)<=18?(Ut-=18,Wt+=1,this.words[Wt]|=Ft>>>26):Ut+=8;else{var Nt=xt.length-It;for(zt=Nt%2===0?It+1:It;zt=18?(Ut-=18,Wt+=1,this.words[Wt]|=Ft>>>26):Ut+=8}this._strip()};function ct($t,xt,It,Ot){for(var zt=0,Ut=0,Wt=Math.min($t.length,It),Ft=xt;Ft=49?Ut=Nt-49+10:Nt>=17?Ut=Nt-17+10:Ut=Nt,rt(Nt>=0&&Ut1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},ot.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{ot.prototype[Symbol.for("nodejs.util.inspect.custom")]=ht}catch{ot.prototype.inspect=ht}else ot.prototype.inspect=ht;function ht(){return(this.red?""}var dt=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],pt=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],mt=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];ot.prototype.toString=function(xt,It){xt=xt||10,It=It|0||1;var Ot;if(xt===16||xt==="hex"){Ot="";for(var zt=0,Ut=0,Wt=0;Wt>>24-zt&16777215,zt+=2,zt>=26&&(zt-=26,Wt--),Ut!==0||Wt!==this.length-1?Ot=dt[6-Nt.length]+Nt+Ot:Ot=Nt+Ot}for(Ut!==0&&(Ot=Ut.toString(16)+Ot);Ot.length%It!==0;)Ot="0"+Ot;return this.negative!==0&&(Ot="-"+Ot),Ot}if(xt===(xt|0)&&xt>=2&&xt<=36){var Ct=pt[xt],Ht=mt[xt];Ot="";var Jt=this.clone();for(Jt.negative=0;!Jt.isZero();){var nn=Jt.modrn(Ht).toString(xt);Jt=Jt.idivn(Ht),Jt.isZero()?Ot=nn+Ot:Ot=dt[Ct-nn.length]+nn+Ot}for(this.isZero()&&(Ot="0"+Ot);Ot.length%It!==0;)Ot="0"+Ot;return this.negative!==0&&(Ot="-"+Ot),Ot}rt(!1,"Base should be between 2 and 36")},ot.prototype.toNumber=function(){var xt=this.words[0];return this.length===2?xt+=this.words[1]*67108864:this.length===3&&this.words[2]===1?xt+=4503599627370496+this.words[1]*67108864:this.length>2&&rt(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-xt:xt},ot.prototype.toJSON=function(){return this.toString(16,2)},at&&(ot.prototype.toBuffer=function(xt,It){return this.toArrayLike(at,xt,It)}),ot.prototype.toArray=function(xt,It){return this.toArrayLike(Array,xt,It)};var gt=function(xt,It){return xt.allocUnsafe?xt.allocUnsafe(It):new xt(It)};ot.prototype.toArrayLike=function(xt,It,Ot){this._strip();var zt=this.byteLength(),Ut=Ot||Math.max(1,zt);rt(zt<=Ut,"byte array longer than desired length"),rt(Ut>0,"Requested array length <= 0");var Wt=gt(xt,Ut),Ft=It==="le"?"LE":"BE";return this["_toArrayLike"+Ft](Wt,zt),Wt},ot.prototype._toArrayLikeLE=function(xt,It){for(var Ot=0,zt=0,Ut=0,Wt=0;Ut>8&255),Ot>16&255),Wt===6?(Ot>24&255),zt=0,Wt=0):(zt=Ft>>>24,Wt+=2)}if(Ot=0&&(xt[Ot--]=Ft>>8&255),Ot>=0&&(xt[Ot--]=Ft>>16&255),Wt===6?(Ot>=0&&(xt[Ot--]=Ft>>24&255),zt=0,Wt=0):(zt=Ft>>>24,Wt+=2)}if(Ot>=0)for(xt[Ot--]=zt;Ot>=0;)xt[Ot--]=0},Math.clz32?ot.prototype._countBits=function(xt){return 32-Math.clz32(xt)}:ot.prototype._countBits=function(xt){var It=xt,Ot=0;return It>=4096&&(Ot+=13,It>>>=13),It>=64&&(Ot+=7,It>>>=7),It>=8&&(Ot+=4,It>>>=4),It>=2&&(Ot+=2,It>>>=2),Ot+It},ot.prototype._zeroBits=function(xt){if(xt===0)return 26;var It=xt,Ot=0;return It&8191||(Ot+=13,It>>>=13),It&127||(Ot+=7,It>>>=7),It&15||(Ot+=4,It>>>=4),It&3||(Ot+=2,It>>>=2),It&1||Ot++,Ot},ot.prototype.bitLength=function(){var xt=this.words[this.length-1],It=this._countBits(xt);return(this.length-1)*26+It};function yt($t){for(var xt=new Array($t.bitLength()),It=0;It>>zt&1}return xt}ot.prototype.zeroBits=function(){if(this.isZero())return 0;for(var xt=0,It=0;Itxt.length?this.clone().ior(xt):xt.clone().ior(this)},ot.prototype.uor=function(xt){return this.length>xt.length?this.clone().iuor(xt):xt.clone().iuor(this)},ot.prototype.iuand=function(xt){var It;this.length>xt.length?It=xt:It=this;for(var Ot=0;Otxt.length?this.clone().iand(xt):xt.clone().iand(this)},ot.prototype.uand=function(xt){return this.length>xt.length?this.clone().iuand(xt):xt.clone().iuand(this)},ot.prototype.iuxor=function(xt){var It,Ot;this.length>xt.length?(It=this,Ot=xt):(It=xt,Ot=this);for(var zt=0;ztxt.length?this.clone().ixor(xt):xt.clone().ixor(this)},ot.prototype.uxor=function(xt){return this.length>xt.length?this.clone().iuxor(xt):xt.clone().iuxor(this)},ot.prototype.inotn=function(xt){rt(typeof xt=="number"&&xt>=0);var It=Math.ceil(xt/26)|0,Ot=xt%26;this._expand(It),Ot>0&&It--;for(var zt=0;zt0&&(this.words[zt]=~this.words[zt]&67108863>>26-Ot),this._strip()},ot.prototype.notn=function(xt){return this.clone().inotn(xt)},ot.prototype.setn=function(xt,It){rt(typeof xt=="number"&&xt>=0);var Ot=xt/26|0,zt=xt%26;return this._expand(Ot+1),It?this.words[Ot]=this.words[Ot]|1<xt.length?(Ot=this,zt=xt):(Ot=xt,zt=this);for(var Ut=0,Wt=0;Wt>>26;for(;Ut!==0&&Wt>>26;if(this.length=Ot.length,Ut!==0)this.words[this.length]=Ut,this.length++;else if(Ot!==this)for(;Wtxt.length?this.clone().iadd(xt):xt.clone().iadd(this)},ot.prototype.isub=function(xt){if(xt.negative!==0){xt.negative=0;var It=this.iadd(xt);return xt.negative=1,It._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(xt),this.negative=1,this._normSign();var Ot=this.cmp(xt);if(Ot===0)return this.negative=0,this.length=1,this.words[0]=0,this;var zt,Ut;Ot>0?(zt=this,Ut=xt):(zt=xt,Ut=this);for(var Wt=0,Ft=0;Ft>26,this.words[Ft]=It&67108863;for(;Wt!==0&&Ft>26,this.words[Ft]=It&67108863;if(Wt===0&&Ft>>26,Jt=Nt&67108863,nn=Math.min(Ct,xt.length-1),Yt=Math.max(0,Ct-$t.length+1);Yt<=nn;Yt++){var fn=Ct-Yt|0;zt=$t.words[fn]|0,Ut=xt.words[Yt]|0,Wt=zt*Ut+Jt,Ht+=Wt/67108864|0,Jt=Wt&67108863}It.words[Ct]=Jt|0,Nt=Ht|0}return Nt!==0?It.words[Ct]=Nt|0:It.length--,It._strip()}var wt=function(xt,It,Ot){var zt=xt.words,Ut=It.words,Wt=Ot.words,Ft=0,Nt,Ct,Ht,Jt=zt[0]|0,nn=Jt&8191,Yt=Jt>>>13,fn=zt[1]|0,cn=fn&8191,_n=fn>>>13,En=zt[2]|0,an=En&8191,en=En>>>13,Tn=zt[3]|0,Rn=Tn&8191,An=Tn>>>13,yn=zt[4]|0,kn=yn&8191,dn=yn>>>13,gn=zt[5]|0,Cn=gn&8191,$n=gn>>>13,un=zt[6]|0,rn=un&8191,Sn=un>>>13,Mn=zt[7]|0,Nn=Mn&8191,hn=Mn>>>13,Qt=zt[8]|0,Zt=Qt&8191,wn=Qt>>>13,On=zt[9]|0,jn=On&8191,Un=On>>>13,tr=Ut[0]|0,qn=tr&8191,Xn=tr>>>13,Wn=Ut[1]|0,Zn=Wn&8191,Vn=Wn>>>13,pr=Ut[2]|0,fr=pr&8191,Er=pr>>>13,oo=Ut[3]|0,Dr=oo&8191,Rr=oo>>>13,Xr=Ut[4]|0,Vr=Xr&8191,Fr=Xr>>>13,so=Ut[5]|0,qr=so&8191,Or=so>>>13,wo=Ut[6]|0,vn=wo&8191,Pn=wo>>>13,sn=Ut[7]|0,Xt=sn&8191,xn=sn>>>13,Dn=Ut[8]|0,Fn=Dn&8191,Kn=Dn>>>13,nr=Ut[9]|0,lr=nr&8191,cr=nr>>>13;Ot.negative=xt.negative^It.negative,Ot.length=19,Nt=Math.imul(nn,qn),Ct=Math.imul(nn,Xn),Ct=Ct+Math.imul(Yt,qn)|0,Ht=Math.imul(Yt,Xn);var Hr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Hr>>>26)|0,Hr&=67108863,Nt=Math.imul(cn,qn),Ct=Math.imul(cn,Xn),Ct=Ct+Math.imul(_n,qn)|0,Ht=Math.imul(_n,Xn),Nt=Nt+Math.imul(nn,Zn)|0,Ct=Ct+Math.imul(nn,Vn)|0,Ct=Ct+Math.imul(Yt,Zn)|0,Ht=Ht+Math.imul(Yt,Vn)|0;var _r=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(_r>>>26)|0,_r&=67108863,Nt=Math.imul(an,qn),Ct=Math.imul(an,Xn),Ct=Ct+Math.imul(en,qn)|0,Ht=Math.imul(en,Xn),Nt=Nt+Math.imul(cn,Zn)|0,Ct=Ct+Math.imul(cn,Vn)|0,Ct=Ct+Math.imul(_n,Zn)|0,Ht=Ht+Math.imul(_n,Vn)|0,Nt=Nt+Math.imul(nn,fr)|0,Ct=Ct+Math.imul(nn,Er)|0,Ct=Ct+Math.imul(Yt,fr)|0,Ht=Ht+Math.imul(Yt,Er)|0;var jr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(jr>>>26)|0,jr&=67108863,Nt=Math.imul(Rn,qn),Ct=Math.imul(Rn,Xn),Ct=Ct+Math.imul(An,qn)|0,Ht=Math.imul(An,Xn),Nt=Nt+Math.imul(an,Zn)|0,Ct=Ct+Math.imul(an,Vn)|0,Ct=Ct+Math.imul(en,Zn)|0,Ht=Ht+Math.imul(en,Vn)|0,Nt=Nt+Math.imul(cn,fr)|0,Ct=Ct+Math.imul(cn,Er)|0,Ct=Ct+Math.imul(_n,fr)|0,Ht=Ht+Math.imul(_n,Er)|0,Nt=Nt+Math.imul(nn,Dr)|0,Ct=Ct+Math.imul(nn,Rr)|0,Ct=Ct+Math.imul(Yt,Dr)|0,Ht=Ht+Math.imul(Yt,Rr)|0;var Gr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Gr>>>26)|0,Gr&=67108863,Nt=Math.imul(kn,qn),Ct=Math.imul(kn,Xn),Ct=Ct+Math.imul(dn,qn)|0,Ht=Math.imul(dn,Xn),Nt=Nt+Math.imul(Rn,Zn)|0,Ct=Ct+Math.imul(Rn,Vn)|0,Ct=Ct+Math.imul(An,Zn)|0,Ht=Ht+Math.imul(An,Vn)|0,Nt=Nt+Math.imul(an,fr)|0,Ct=Ct+Math.imul(an,Er)|0,Ct=Ct+Math.imul(en,fr)|0,Ht=Ht+Math.imul(en,Er)|0,Nt=Nt+Math.imul(cn,Dr)|0,Ct=Ct+Math.imul(cn,Rr)|0,Ct=Ct+Math.imul(_n,Dr)|0,Ht=Ht+Math.imul(_n,Rr)|0,Nt=Nt+Math.imul(nn,Vr)|0,Ct=Ct+Math.imul(nn,Fr)|0,Ct=Ct+Math.imul(Yt,Vr)|0,Ht=Ht+Math.imul(Yt,Fr)|0;var eo=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(eo>>>26)|0,eo&=67108863,Nt=Math.imul(Cn,qn),Ct=Math.imul(Cn,Xn),Ct=Ct+Math.imul($n,qn)|0,Ht=Math.imul($n,Xn),Nt=Nt+Math.imul(kn,Zn)|0,Ct=Ct+Math.imul(kn,Vn)|0,Ct=Ct+Math.imul(dn,Zn)|0,Ht=Ht+Math.imul(dn,Vn)|0,Nt=Nt+Math.imul(Rn,fr)|0,Ct=Ct+Math.imul(Rn,Er)|0,Ct=Ct+Math.imul(An,fr)|0,Ht=Ht+Math.imul(An,Er)|0,Nt=Nt+Math.imul(an,Dr)|0,Ct=Ct+Math.imul(an,Rr)|0,Ct=Ct+Math.imul(en,Dr)|0,Ht=Ht+Math.imul(en,Rr)|0,Nt=Nt+Math.imul(cn,Vr)|0,Ct=Ct+Math.imul(cn,Fr)|0,Ct=Ct+Math.imul(_n,Vr)|0,Ht=Ht+Math.imul(_n,Fr)|0,Nt=Nt+Math.imul(nn,qr)|0,Ct=Ct+Math.imul(nn,Or)|0,Ct=Ct+Math.imul(Yt,qr)|0,Ht=Ht+Math.imul(Yt,Or)|0;var Qr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Qr>>>26)|0,Qr&=67108863,Nt=Math.imul(rn,qn),Ct=Math.imul(rn,Xn),Ct=Ct+Math.imul(Sn,qn)|0,Ht=Math.imul(Sn,Xn),Nt=Nt+Math.imul(Cn,Zn)|0,Ct=Ct+Math.imul(Cn,Vn)|0,Ct=Ct+Math.imul($n,Zn)|0,Ht=Ht+Math.imul($n,Vn)|0,Nt=Nt+Math.imul(kn,fr)|0,Ct=Ct+Math.imul(kn,Er)|0,Ct=Ct+Math.imul(dn,fr)|0,Ht=Ht+Math.imul(dn,Er)|0,Nt=Nt+Math.imul(Rn,Dr)|0,Ct=Ct+Math.imul(Rn,Rr)|0,Ct=Ct+Math.imul(An,Dr)|0,Ht=Ht+Math.imul(An,Rr)|0,Nt=Nt+Math.imul(an,Vr)|0,Ct=Ct+Math.imul(an,Fr)|0,Ct=Ct+Math.imul(en,Vr)|0,Ht=Ht+Math.imul(en,Fr)|0,Nt=Nt+Math.imul(cn,qr)|0,Ct=Ct+Math.imul(cn,Or)|0,Ct=Ct+Math.imul(_n,qr)|0,Ht=Ht+Math.imul(_n,Or)|0,Nt=Nt+Math.imul(nn,vn)|0,Ct=Ct+Math.imul(nn,Pn)|0,Ct=Ct+Math.imul(Yt,vn)|0,Ht=Ht+Math.imul(Yt,Pn)|0;var _i=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(_i>>>26)|0,_i&=67108863,Nt=Math.imul(Nn,qn),Ct=Math.imul(Nn,Xn),Ct=Ct+Math.imul(hn,qn)|0,Ht=Math.imul(hn,Xn),Nt=Nt+Math.imul(rn,Zn)|0,Ct=Ct+Math.imul(rn,Vn)|0,Ct=Ct+Math.imul(Sn,Zn)|0,Ht=Ht+Math.imul(Sn,Vn)|0,Nt=Nt+Math.imul(Cn,fr)|0,Ct=Ct+Math.imul(Cn,Er)|0,Ct=Ct+Math.imul($n,fr)|0,Ht=Ht+Math.imul($n,Er)|0,Nt=Nt+Math.imul(kn,Dr)|0,Ct=Ct+Math.imul(kn,Rr)|0,Ct=Ct+Math.imul(dn,Dr)|0,Ht=Ht+Math.imul(dn,Rr)|0,Nt=Nt+Math.imul(Rn,Vr)|0,Ct=Ct+Math.imul(Rn,Fr)|0,Ct=Ct+Math.imul(An,Vr)|0,Ht=Ht+Math.imul(An,Fr)|0,Nt=Nt+Math.imul(an,qr)|0,Ct=Ct+Math.imul(an,Or)|0,Ct=Ct+Math.imul(en,qr)|0,Ht=Ht+Math.imul(en,Or)|0,Nt=Nt+Math.imul(cn,vn)|0,Ct=Ct+Math.imul(cn,Pn)|0,Ct=Ct+Math.imul(_n,vn)|0,Ht=Ht+Math.imul(_n,Pn)|0,Nt=Nt+Math.imul(nn,Xt)|0,Ct=Ct+Math.imul(nn,xn)|0,Ct=Ct+Math.imul(Yt,Xt)|0,Ht=Ht+Math.imul(Yt,xn)|0;var wr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(wr>>>26)|0,wr&=67108863,Nt=Math.imul(Zt,qn),Ct=Math.imul(Zt,Xn),Ct=Ct+Math.imul(wn,qn)|0,Ht=Math.imul(wn,Xn),Nt=Nt+Math.imul(Nn,Zn)|0,Ct=Ct+Math.imul(Nn,Vn)|0,Ct=Ct+Math.imul(hn,Zn)|0,Ht=Ht+Math.imul(hn,Vn)|0,Nt=Nt+Math.imul(rn,fr)|0,Ct=Ct+Math.imul(rn,Er)|0,Ct=Ct+Math.imul(Sn,fr)|0,Ht=Ht+Math.imul(Sn,Er)|0,Nt=Nt+Math.imul(Cn,Dr)|0,Ct=Ct+Math.imul(Cn,Rr)|0,Ct=Ct+Math.imul($n,Dr)|0,Ht=Ht+Math.imul($n,Rr)|0,Nt=Nt+Math.imul(kn,Vr)|0,Ct=Ct+Math.imul(kn,Fr)|0,Ct=Ct+Math.imul(dn,Vr)|0,Ht=Ht+Math.imul(dn,Fr)|0,Nt=Nt+Math.imul(Rn,qr)|0,Ct=Ct+Math.imul(Rn,Or)|0,Ct=Ct+Math.imul(An,qr)|0,Ht=Ht+Math.imul(An,Or)|0,Nt=Nt+Math.imul(an,vn)|0,Ct=Ct+Math.imul(an,Pn)|0,Ct=Ct+Math.imul(en,vn)|0,Ht=Ht+Math.imul(en,Pn)|0,Nt=Nt+Math.imul(cn,Xt)|0,Ct=Ct+Math.imul(cn,xn)|0,Ct=Ct+Math.imul(_n,Xt)|0,Ht=Ht+Math.imul(_n,xn)|0,Nt=Nt+Math.imul(nn,Fn)|0,Ct=Ct+Math.imul(nn,Kn)|0,Ct=Ct+Math.imul(Yt,Fn)|0,Ht=Ht+Math.imul(Yt,Kn)|0;var $r=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+($r>>>26)|0,$r&=67108863,Nt=Math.imul(jn,qn),Ct=Math.imul(jn,Xn),Ct=Ct+Math.imul(Un,qn)|0,Ht=Math.imul(Un,Xn),Nt=Nt+Math.imul(Zt,Zn)|0,Ct=Ct+Math.imul(Zt,Vn)|0,Ct=Ct+Math.imul(wn,Zn)|0,Ht=Ht+Math.imul(wn,Vn)|0,Nt=Nt+Math.imul(Nn,fr)|0,Ct=Ct+Math.imul(Nn,Er)|0,Ct=Ct+Math.imul(hn,fr)|0,Ht=Ht+Math.imul(hn,Er)|0,Nt=Nt+Math.imul(rn,Dr)|0,Ct=Ct+Math.imul(rn,Rr)|0,Ct=Ct+Math.imul(Sn,Dr)|0,Ht=Ht+Math.imul(Sn,Rr)|0,Nt=Nt+Math.imul(Cn,Vr)|0,Ct=Ct+Math.imul(Cn,Fr)|0,Ct=Ct+Math.imul($n,Vr)|0,Ht=Ht+Math.imul($n,Fr)|0,Nt=Nt+Math.imul(kn,qr)|0,Ct=Ct+Math.imul(kn,Or)|0,Ct=Ct+Math.imul(dn,qr)|0,Ht=Ht+Math.imul(dn,Or)|0,Nt=Nt+Math.imul(Rn,vn)|0,Ct=Ct+Math.imul(Rn,Pn)|0,Ct=Ct+Math.imul(An,vn)|0,Ht=Ht+Math.imul(An,Pn)|0,Nt=Nt+Math.imul(an,Xt)|0,Ct=Ct+Math.imul(an,xn)|0,Ct=Ct+Math.imul(en,Xt)|0,Ht=Ht+Math.imul(en,xn)|0,Nt=Nt+Math.imul(cn,Fn)|0,Ct=Ct+Math.imul(cn,Kn)|0,Ct=Ct+Math.imul(_n,Fn)|0,Ht=Ht+Math.imul(_n,Kn)|0,Nt=Nt+Math.imul(nn,lr)|0,Ct=Ct+Math.imul(nn,cr)|0,Ct=Ct+Math.imul(Yt,lr)|0,Ht=Ht+Math.imul(Yt,cr)|0;var Wr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Wr>>>26)|0,Wr&=67108863,Nt=Math.imul(jn,Zn),Ct=Math.imul(jn,Vn),Ct=Ct+Math.imul(Un,Zn)|0,Ht=Math.imul(Un,Vn),Nt=Nt+Math.imul(Zt,fr)|0,Ct=Ct+Math.imul(Zt,Er)|0,Ct=Ct+Math.imul(wn,fr)|0,Ht=Ht+Math.imul(wn,Er)|0,Nt=Nt+Math.imul(Nn,Dr)|0,Ct=Ct+Math.imul(Nn,Rr)|0,Ct=Ct+Math.imul(hn,Dr)|0,Ht=Ht+Math.imul(hn,Rr)|0,Nt=Nt+Math.imul(rn,Vr)|0,Ct=Ct+Math.imul(rn,Fr)|0,Ct=Ct+Math.imul(Sn,Vr)|0,Ht=Ht+Math.imul(Sn,Fr)|0,Nt=Nt+Math.imul(Cn,qr)|0,Ct=Ct+Math.imul(Cn,Or)|0,Ct=Ct+Math.imul($n,qr)|0,Ht=Ht+Math.imul($n,Or)|0,Nt=Nt+Math.imul(kn,vn)|0,Ct=Ct+Math.imul(kn,Pn)|0,Ct=Ct+Math.imul(dn,vn)|0,Ht=Ht+Math.imul(dn,Pn)|0,Nt=Nt+Math.imul(Rn,Xt)|0,Ct=Ct+Math.imul(Rn,xn)|0,Ct=Ct+Math.imul(An,Xt)|0,Ht=Ht+Math.imul(An,xn)|0,Nt=Nt+Math.imul(an,Fn)|0,Ct=Ct+Math.imul(an,Kn)|0,Ct=Ct+Math.imul(en,Fn)|0,Ht=Ht+Math.imul(en,Kn)|0,Nt=Nt+Math.imul(cn,lr)|0,Ct=Ct+Math.imul(cn,cr)|0,Ct=Ct+Math.imul(_n,lr)|0,Ht=Ht+Math.imul(_n,cr)|0;var Br=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Br>>>26)|0,Br&=67108863,Nt=Math.imul(jn,fr),Ct=Math.imul(jn,Er),Ct=Ct+Math.imul(Un,fr)|0,Ht=Math.imul(Un,Er),Nt=Nt+Math.imul(Zt,Dr)|0,Ct=Ct+Math.imul(Zt,Rr)|0,Ct=Ct+Math.imul(wn,Dr)|0,Ht=Ht+Math.imul(wn,Rr)|0,Nt=Nt+Math.imul(Nn,Vr)|0,Ct=Ct+Math.imul(Nn,Fr)|0,Ct=Ct+Math.imul(hn,Vr)|0,Ht=Ht+Math.imul(hn,Fr)|0,Nt=Nt+Math.imul(rn,qr)|0,Ct=Ct+Math.imul(rn,Or)|0,Ct=Ct+Math.imul(Sn,qr)|0,Ht=Ht+Math.imul(Sn,Or)|0,Nt=Nt+Math.imul(Cn,vn)|0,Ct=Ct+Math.imul(Cn,Pn)|0,Ct=Ct+Math.imul($n,vn)|0,Ht=Ht+Math.imul($n,Pn)|0,Nt=Nt+Math.imul(kn,Xt)|0,Ct=Ct+Math.imul(kn,xn)|0,Ct=Ct+Math.imul(dn,Xt)|0,Ht=Ht+Math.imul(dn,xn)|0,Nt=Nt+Math.imul(Rn,Fn)|0,Ct=Ct+Math.imul(Rn,Kn)|0,Ct=Ct+Math.imul(An,Fn)|0,Ht=Ht+Math.imul(An,Kn)|0,Nt=Nt+Math.imul(an,lr)|0,Ct=Ct+Math.imul(an,cr)|0,Ct=Ct+Math.imul(en,lr)|0,Ht=Ht+Math.imul(en,cr)|0;var Pr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Pr>>>26)|0,Pr&=67108863,Nt=Math.imul(jn,Dr),Ct=Math.imul(jn,Rr),Ct=Ct+Math.imul(Un,Dr)|0,Ht=Math.imul(Un,Rr),Nt=Nt+Math.imul(Zt,Vr)|0,Ct=Ct+Math.imul(Zt,Fr)|0,Ct=Ct+Math.imul(wn,Vr)|0,Ht=Ht+Math.imul(wn,Fr)|0,Nt=Nt+Math.imul(Nn,qr)|0,Ct=Ct+Math.imul(Nn,Or)|0,Ct=Ct+Math.imul(hn,qr)|0,Ht=Ht+Math.imul(hn,Or)|0,Nt=Nt+Math.imul(rn,vn)|0,Ct=Ct+Math.imul(rn,Pn)|0,Ct=Ct+Math.imul(Sn,vn)|0,Ht=Ht+Math.imul(Sn,Pn)|0,Nt=Nt+Math.imul(Cn,Xt)|0,Ct=Ct+Math.imul(Cn,xn)|0,Ct=Ct+Math.imul($n,Xt)|0,Ht=Ht+Math.imul($n,xn)|0,Nt=Nt+Math.imul(kn,Fn)|0,Ct=Ct+Math.imul(kn,Kn)|0,Ct=Ct+Math.imul(dn,Fn)|0,Ht=Ht+Math.imul(dn,Kn)|0,Nt=Nt+Math.imul(Rn,lr)|0,Ct=Ct+Math.imul(Rn,cr)|0,Ct=Ct+Math.imul(An,lr)|0,Ht=Ht+Math.imul(An,cr)|0;var Lr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Lr>>>26)|0,Lr&=67108863,Nt=Math.imul(jn,Vr),Ct=Math.imul(jn,Fr),Ct=Ct+Math.imul(Un,Vr)|0,Ht=Math.imul(Un,Fr),Nt=Nt+Math.imul(Zt,qr)|0,Ct=Ct+Math.imul(Zt,Or)|0,Ct=Ct+Math.imul(wn,qr)|0,Ht=Ht+Math.imul(wn,Or)|0,Nt=Nt+Math.imul(Nn,vn)|0,Ct=Ct+Math.imul(Nn,Pn)|0,Ct=Ct+Math.imul(hn,vn)|0,Ht=Ht+Math.imul(hn,Pn)|0,Nt=Nt+Math.imul(rn,Xt)|0,Ct=Ct+Math.imul(rn,xn)|0,Ct=Ct+Math.imul(Sn,Xt)|0,Ht=Ht+Math.imul(Sn,xn)|0,Nt=Nt+Math.imul(Cn,Fn)|0,Ct=Ct+Math.imul(Cn,Kn)|0,Ct=Ct+Math.imul($n,Fn)|0,Ht=Ht+Math.imul($n,Kn)|0,Nt=Nt+Math.imul(kn,lr)|0,Ct=Ct+Math.imul(kn,cr)|0,Ct=Ct+Math.imul(dn,lr)|0,Ht=Ht+Math.imul(dn,cr)|0;var Nr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Nr>>>26)|0,Nr&=67108863,Nt=Math.imul(jn,qr),Ct=Math.imul(jn,Or),Ct=Ct+Math.imul(Un,qr)|0,Ht=Math.imul(Un,Or),Nt=Nt+Math.imul(Zt,vn)|0,Ct=Ct+Math.imul(Zt,Pn)|0,Ct=Ct+Math.imul(wn,vn)|0,Ht=Ht+Math.imul(wn,Pn)|0,Nt=Nt+Math.imul(Nn,Xt)|0,Ct=Ct+Math.imul(Nn,xn)|0,Ct=Ct+Math.imul(hn,Xt)|0,Ht=Ht+Math.imul(hn,xn)|0,Nt=Nt+Math.imul(rn,Fn)|0,Ct=Ct+Math.imul(rn,Kn)|0,Ct=Ct+Math.imul(Sn,Fn)|0,Ht=Ht+Math.imul(Sn,Kn)|0,Nt=Nt+Math.imul(Cn,lr)|0,Ct=Ct+Math.imul(Cn,cr)|0,Ct=Ct+Math.imul($n,lr)|0,Ht=Ht+Math.imul($n,cr)|0;var Cr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Cr>>>26)|0,Cr&=67108863,Nt=Math.imul(jn,vn),Ct=Math.imul(jn,Pn),Ct=Ct+Math.imul(Un,vn)|0,Ht=Math.imul(Un,Pn),Nt=Nt+Math.imul(Zt,Xt)|0,Ct=Ct+Math.imul(Zt,xn)|0,Ct=Ct+Math.imul(wn,Xt)|0,Ht=Ht+Math.imul(wn,xn)|0,Nt=Nt+Math.imul(Nn,Fn)|0,Ct=Ct+Math.imul(Nn,Kn)|0,Ct=Ct+Math.imul(hn,Fn)|0,Ht=Ht+Math.imul(hn,Kn)|0,Nt=Nt+Math.imul(rn,lr)|0,Ct=Ct+Math.imul(rn,cr)|0,Ct=Ct+Math.imul(Sn,lr)|0,Ht=Ht+Math.imul(Sn,cr)|0;var er=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(er>>>26)|0,er&=67108863,Nt=Math.imul(jn,Xt),Ct=Math.imul(jn,xn),Ct=Ct+Math.imul(Un,Xt)|0,Ht=Math.imul(Un,xn),Nt=Nt+Math.imul(Zt,Fn)|0,Ct=Ct+Math.imul(Zt,Kn)|0,Ct=Ct+Math.imul(wn,Fn)|0,Ht=Ht+Math.imul(wn,Kn)|0,Nt=Nt+Math.imul(Nn,lr)|0,Ct=Ct+Math.imul(Nn,cr)|0,Ct=Ct+Math.imul(hn,lr)|0,Ht=Ht+Math.imul(hn,cr)|0;var ir=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(ir>>>26)|0,ir&=67108863,Nt=Math.imul(jn,Fn),Ct=Math.imul(jn,Kn),Ct=Ct+Math.imul(Un,Fn)|0,Ht=Math.imul(Un,Kn),Nt=Nt+Math.imul(Zt,lr)|0,Ct=Ct+Math.imul(Zt,cr)|0,Ct=Ct+Math.imul(wn,lr)|0,Ht=Ht+Math.imul(wn,cr)|0;var Sr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Sr>>>26)|0,Sr&=67108863,Nt=Math.imul(jn,lr),Ct=Math.imul(jn,cr),Ct=Ct+Math.imul(Un,lr)|0,Ht=Math.imul(Un,cr);var dr=(Ft+Nt|0)+((Ct&8191)<<13)|0;return Ft=(Ht+(Ct>>>13)|0)+(dr>>>26)|0,dr&=67108863,Wt[0]=Hr,Wt[1]=_r,Wt[2]=jr,Wt[3]=Gr,Wt[4]=eo,Wt[5]=Qr,Wt[6]=_i,Wt[7]=wr,Wt[8]=$r,Wt[9]=Wr,Wt[10]=Br,Wt[11]=Pr,Wt[12]=Lr,Wt[13]=Nr,Wt[14]=Cr,Wt[15]=er,Wt[16]=ir,Wt[17]=Sr,Wt[18]=dr,Ft!==0&&(Wt[19]=Ft,Ot.length++),Ot};Math.imul||(wt=bt);function vt($t,xt,It){It.negative=xt.negative^$t.negative,It.length=$t.length+xt.length;for(var Ot=0,zt=0,Ut=0;Ut>>26)|0,zt+=Wt>>>26,Wt&=67108863}It.words[Ut]=Ft,Ot=Wt,Wt=zt}return Ot!==0?It.words[Ut]=Ot:It.length--,It._strip()}function kt($t,xt,It){return vt($t,xt,It)}ot.prototype.mulTo=function(xt,It){var Ot,zt=this.length+xt.length;return this.length===10&&xt.length===10?Ot=wt(this,xt,It):zt<63?Ot=bt(this,xt,It):zt<1024?Ot=vt(this,xt,It):Ot=kt(this,xt,It),Ot},ot.prototype.mul=function(xt){var It=new ot(null);return It.words=new Array(this.length+xt.length),this.mulTo(xt,It)},ot.prototype.mulf=function(xt){var It=new ot(null);return It.words=new Array(this.length+xt.length),kt(this,xt,It)},ot.prototype.imul=function(xt){return this.clone().mulTo(xt,this)},ot.prototype.imuln=function(xt){var It=xt<0;It&&(xt=-xt),rt(typeof xt=="number"),rt(xt<67108864);for(var Ot=0,zt=0;zt>=26,Ot+=Ut/67108864|0,Ot+=Wt>>>26,this.words[zt]=Wt&67108863}return Ot!==0&&(this.words[zt]=Ot,this.length++),It?this.ineg():this},ot.prototype.muln=function(xt){return this.clone().imuln(xt)},ot.prototype.sqr=function(){return this.mul(this)},ot.prototype.isqr=function(){return this.imul(this.clone())},ot.prototype.pow=function(xt){var It=yt(xt);if(It.length===0)return new ot(1);for(var Ot=this,zt=0;zt=0);var It=xt%26,Ot=(xt-It)/26,zt=67108863>>>26-It<<26-It,Ut;if(It!==0){var Wt=0;for(Ut=0;Ut>>26-It}Wt&&(this.words[Ut]=Wt,this.length++)}if(Ot!==0){for(Ut=this.length-1;Ut>=0;Ut--)this.words[Ut+Ot]=this.words[Ut];for(Ut=0;Ut=0);var zt;It?zt=(It-It%26)/26:zt=0;var Ut=xt%26,Wt=Math.min((xt-Ut)/26,this.length),Ft=67108863^67108863>>>Ut<Wt)for(this.length-=Wt,Ct=0;Ct=0&&(Ht!==0||Ct>=zt);Ct--){var Jt=this.words[Ct]|0;this.words[Ct]=Ht<<26-Ut|Jt>>>Ut,Ht=Jt&Ft}return Nt&&Ht!==0&&(Nt.words[Nt.length++]=Ht),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},ot.prototype.ishrn=function(xt,It,Ot){return rt(this.negative===0),this.iushrn(xt,It,Ot)},ot.prototype.shln=function(xt){return this.clone().ishln(xt)},ot.prototype.ushln=function(xt){return this.clone().iushln(xt)},ot.prototype.shrn=function(xt){return this.clone().ishrn(xt)},ot.prototype.ushrn=function(xt){return this.clone().iushrn(xt)},ot.prototype.testn=function(xt){rt(typeof xt=="number"&&xt>=0);var It=xt%26,Ot=(xt-It)/26,zt=1<=0);var It=xt%26,Ot=(xt-It)/26;if(rt(this.negative===0,"imaskn works only with positive numbers"),this.length<=Ot)return this;if(It!==0&&Ot++,this.length=Math.min(Ot,this.length),It!==0){var zt=67108863^67108863>>>It<=67108864;It++)this.words[It]-=67108864,It===this.length-1?this.words[It+1]=1:this.words[It+1]++;return this.length=Math.max(this.length,It+1),this},ot.prototype.isubn=function(xt){if(rt(typeof xt=="number"),rt(xt<67108864),xt<0)return this.iaddn(-xt);if(this.negative!==0)return this.negative=0,this.iaddn(xt),this.negative=1,this;if(this.words[0]-=xt,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var It=0;It>26)-(Nt/67108864|0),this.words[Ut+Ot]=Wt&67108863}for(;Ut>26,this.words[Ut+Ot]=Wt&67108863;if(Ft===0)return this._strip();for(rt(Ft===-1),Ft=0,Ut=0;Ut>26,this.words[Ut]=Wt&67108863;return this.negative=1,this._strip()},ot.prototype._wordDiv=function(xt,It){var Ot=this.length-xt.length,zt=this.clone(),Ut=xt,Wt=Ut.words[Ut.length-1]|0,Ft=this._countBits(Wt);Ot=26-Ft,Ot!==0&&(Ut=Ut.ushln(Ot),zt.iushln(Ot),Wt=Ut.words[Ut.length-1]|0);var Nt=zt.length-Ut.length,Ct;if(It!=="mod"){Ct=new ot(null),Ct.length=Nt+1,Ct.words=new Array(Ct.length);for(var Ht=0;Ht=0;nn--){var Yt=(zt.words[Ut.length+nn]|0)*67108864+(zt.words[Ut.length+nn-1]|0);for(Yt=Math.min(Yt/Wt|0,67108863),zt._ishlnsubmul(Ut,Yt,nn);zt.negative!==0;)Yt--,zt.negative=0,zt._ishlnsubmul(Ut,1,nn),zt.isZero()||(zt.negative^=1);Ct&&(Ct.words[nn]=Yt)}return Ct&&Ct._strip(),zt._strip(),It!=="div"&&Ot!==0&&zt.iushrn(Ot),{div:Ct||null,mod:zt}},ot.prototype.divmod=function(xt,It,Ot){if(rt(!xt.isZero()),this.isZero())return{div:new ot(0),mod:new ot(0)};var zt,Ut,Wt;return this.negative!==0&&xt.negative===0?(Wt=this.neg().divmod(xt,It),It!=="mod"&&(zt=Wt.div.neg()),It!=="div"&&(Ut=Wt.mod.neg(),Ot&&Ut.negative!==0&&Ut.iadd(xt)),{div:zt,mod:Ut}):this.negative===0&&xt.negative!==0?(Wt=this.divmod(xt.neg(),It),It!=="mod"&&(zt=Wt.div.neg()),{div:zt,mod:Wt.mod}):this.negative&xt.negative?(Wt=this.neg().divmod(xt.neg(),It),It!=="div"&&(Ut=Wt.mod.neg(),Ot&&Ut.negative!==0&&Ut.isub(xt)),{div:Wt.div,mod:Ut}):xt.length>this.length||this.cmp(xt)<0?{div:new ot(0),mod:this}:xt.length===1?It==="div"?{div:this.divn(xt.words[0]),mod:null}:It==="mod"?{div:null,mod:new ot(this.modrn(xt.words[0]))}:{div:this.divn(xt.words[0]),mod:new ot(this.modrn(xt.words[0]))}:this._wordDiv(xt,It)},ot.prototype.div=function(xt){return this.divmod(xt,"div",!1).div},ot.prototype.mod=function(xt){return this.divmod(xt,"mod",!1).mod},ot.prototype.umod=function(xt){return this.divmod(xt,"mod",!0).mod},ot.prototype.divRound=function(xt){var It=this.divmod(xt);if(It.mod.isZero())return It.div;var Ot=It.div.negative!==0?It.mod.isub(xt):It.mod,zt=xt.ushrn(1),Ut=xt.andln(1),Wt=Ot.cmp(zt);return Wt<0||Ut===1&&Wt===0?It.div:It.div.negative!==0?It.div.isubn(1):It.div.iaddn(1)},ot.prototype.modrn=function(xt){var It=xt<0;It&&(xt=-xt),rt(xt<=67108863);for(var Ot=(1<<26)%xt,zt=0,Ut=this.length-1;Ut>=0;Ut--)zt=(Ot*zt+(this.words[Ut]|0))%xt;return It?-zt:zt},ot.prototype.modn=function(xt){return this.modrn(xt)},ot.prototype.idivn=function(xt){var It=xt<0;It&&(xt=-xt),rt(xt<=67108863);for(var Ot=0,zt=this.length-1;zt>=0;zt--){var Ut=(this.words[zt]|0)+Ot*67108864;this.words[zt]=Ut/xt|0,Ot=Ut%xt}return this._strip(),It?this.ineg():this},ot.prototype.divn=function(xt){return this.clone().idivn(xt)},ot.prototype.egcd=function(xt){rt(xt.negative===0),rt(!xt.isZero());var It=this,Ot=xt.clone();It.negative!==0?It=It.umod(xt):It=It.clone();for(var zt=new ot(1),Ut=new ot(0),Wt=new ot(0),Ft=new ot(1),Nt=0;It.isEven()&&Ot.isEven();)It.iushrn(1),Ot.iushrn(1),++Nt;for(var Ct=Ot.clone(),Ht=It.clone();!It.isZero();){for(var Jt=0,nn=1;!(It.words[0]&nn)&&Jt<26;++Jt,nn<<=1);if(Jt>0)for(It.iushrn(Jt);Jt-- >0;)(zt.isOdd()||Ut.isOdd())&&(zt.iadd(Ct),Ut.isub(Ht)),zt.iushrn(1),Ut.iushrn(1);for(var Yt=0,fn=1;!(Ot.words[0]&fn)&&Yt<26;++Yt,fn<<=1);if(Yt>0)for(Ot.iushrn(Yt);Yt-- >0;)(Wt.isOdd()||Ft.isOdd())&&(Wt.iadd(Ct),Ft.isub(Ht)),Wt.iushrn(1),Ft.iushrn(1);It.cmp(Ot)>=0?(It.isub(Ot),zt.isub(Wt),Ut.isub(Ft)):(Ot.isub(It),Wt.isub(zt),Ft.isub(Ut))}return{a:Wt,b:Ft,gcd:Ot.iushln(Nt)}},ot.prototype._invmp=function(xt){rt(xt.negative===0),rt(!xt.isZero());var It=this,Ot=xt.clone();It.negative!==0?It=It.umod(xt):It=It.clone();for(var zt=new ot(1),Ut=new ot(0),Wt=Ot.clone();It.cmpn(1)>0&&Ot.cmpn(1)>0;){for(var Ft=0,Nt=1;!(It.words[0]&Nt)&&Ft<26;++Ft,Nt<<=1);if(Ft>0)for(It.iushrn(Ft);Ft-- >0;)zt.isOdd()&&zt.iadd(Wt),zt.iushrn(1);for(var Ct=0,Ht=1;!(Ot.words[0]&Ht)&&Ct<26;++Ct,Ht<<=1);if(Ct>0)for(Ot.iushrn(Ct);Ct-- >0;)Ut.isOdd()&&Ut.iadd(Wt),Ut.iushrn(1);It.cmp(Ot)>=0?(It.isub(Ot),zt.isub(Ut)):(Ot.isub(It),Ut.isub(zt))}var Jt;return It.cmpn(1)===0?Jt=zt:Jt=Ut,Jt.cmpn(0)<0&&Jt.iadd(xt),Jt},ot.prototype.gcd=function(xt){if(this.isZero())return xt.abs();if(xt.isZero())return this.abs();var It=this.clone(),Ot=xt.clone();It.negative=0,Ot.negative=0;for(var zt=0;It.isEven()&&Ot.isEven();zt++)It.iushrn(1),Ot.iushrn(1);do{for(;It.isEven();)It.iushrn(1);for(;Ot.isEven();)Ot.iushrn(1);var Ut=It.cmp(Ot);if(Ut<0){var Wt=It;It=Ot,Ot=Wt}else if(Ut===0||Ot.cmpn(1)===0)break;It.isub(Ot)}while(!0);return Ot.iushln(zt)},ot.prototype.invm=function(xt){return this.egcd(xt).a.umod(xt)},ot.prototype.isEven=function(){return(this.words[0]&1)===0},ot.prototype.isOdd=function(){return(this.words[0]&1)===1},ot.prototype.andln=function(xt){return this.words[0]&xt},ot.prototype.bincn=function(xt){rt(typeof xt=="number");var It=xt%26,Ot=(xt-It)/26,zt=1<>>26,Ft&=67108863,this.words[Wt]=Ft}return Ut!==0&&(this.words[Wt]=Ut,this.length++),this},ot.prototype.isZero=function(){return this.length===1&&this.words[0]===0},ot.prototype.cmpn=function(xt){var It=xt<0;if(this.negative!==0&&!It)return-1;if(this.negative===0&&It)return 1;this._strip();var Ot;if(this.length>1)Ot=1;else{It&&(xt=-xt),rt(xt<=67108863,"Number is too big");var zt=this.words[0]|0;Ot=zt===xt?0:ztxt.length)return 1;if(this.length=0;Ot--){var zt=this.words[Ot]|0,Ut=xt.words[Ot]|0;if(zt!==Ut){ztUt&&(It=1);break}}return It},ot.prototype.gtn=function(xt){return this.cmpn(xt)===1},ot.prototype.gt=function(xt){return this.cmp(xt)===1},ot.prototype.gten=function(xt){return this.cmpn(xt)>=0},ot.prototype.gte=function(xt){return this.cmp(xt)>=0},ot.prototype.ltn=function(xt){return this.cmpn(xt)===-1},ot.prototype.lt=function(xt){return this.cmp(xt)===-1},ot.prototype.lten=function(xt){return this.cmpn(xt)<=0},ot.prototype.lte=function(xt){return this.cmp(xt)<=0},ot.prototype.eqn=function(xt){return this.cmpn(xt)===0},ot.prototype.eq=function(xt){return this.cmp(xt)===0},ot.red=function(xt){return new jt(xt)},ot.prototype.toRed=function(xt){return rt(!this.red,"Already a number in reduction context"),rt(this.negative===0,"red works only with positives"),xt.convertTo(this)._forceRed(xt)},ot.prototype.fromRed=function(){return rt(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},ot.prototype._forceRed=function(xt){return this.red=xt,this},ot.prototype.forceRed=function(xt){return rt(!this.red,"Already a number in reduction context"),this._forceRed(xt)},ot.prototype.redAdd=function(xt){return rt(this.red,"redAdd works only with red numbers"),this.red.add(this,xt)},ot.prototype.redIAdd=function(xt){return rt(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,xt)},ot.prototype.redSub=function(xt){return rt(this.red,"redSub works only with red numbers"),this.red.sub(this,xt)},ot.prototype.redISub=function(xt){return rt(this.red,"redISub works only with red numbers"),this.red.isub(this,xt)},ot.prototype.redShl=function(xt){return rt(this.red,"redShl works only with red numbers"),this.red.shl(this,xt)},ot.prototype.redMul=function(xt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,xt),this.red.mul(this,xt)},ot.prototype.redIMul=function(xt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,xt),this.red.imul(this,xt)},ot.prototype.redSqr=function(){return rt(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},ot.prototype.redISqr=function(){return rt(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},ot.prototype.redSqrt=function(){return rt(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},ot.prototype.redInvm=function(){return rt(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},ot.prototype.redNeg=function(){return rt(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},ot.prototype.redPow=function(xt){return rt(this.red&&!xt.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,xt)};var St={k256:null,p224:null,p192:null,p25519:null};function Tt($t,xt){this.name=$t,this.p=new ot(xt,16),this.n=this.p.bitLength(),this.k=new ot(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}Tt.prototype._tmp=function(){var xt=new ot(null);return xt.words=new Array(Math.ceil(this.n/13)),xt},Tt.prototype.ireduce=function(xt){var It=xt,Ot;do this.split(It,this.tmp),It=this.imulK(It),It=It.iadd(this.tmp),Ot=It.bitLength();while(Ot>this.n);var zt=Ot0?It.isub(this.p):It.strip!==void 0?It.strip():It._strip(),It},Tt.prototype.split=function(xt,It){xt.iushrn(this.n,0,It)},Tt.prototype.imulK=function(xt){return xt.imul(this.k)};function At(){Tt.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}it(At,Tt),At.prototype.split=function(xt,It){for(var Ot=4194303,zt=Math.min(xt.length,9),Ut=0;Ut>>22,Wt=Ft}Wt>>>=22,xt.words[Ut-10]=Wt,Wt===0&&xt.length>10?xt.length-=10:xt.length-=9},At.prototype.imulK=function(xt){xt.words[xt.length]=0,xt.words[xt.length+1]=0,xt.length+=2;for(var It=0,Ot=0;Ot>>=26,xt.words[Ot]=Ut,It=zt}return It!==0&&(xt.words[xt.length++]=It),xt},ot._prime=function(xt){if(St[xt])return St[xt];var It;if(xt==="k256")It=new At;else if(xt==="p224")It=new Et;else if(xt==="p192")It=new Mt;else if(xt==="p25519")It=new Lt;else throw new Error("Unknown prime "+xt);return St[xt]=It,It};function jt($t){if(typeof $t=="string"){var xt=ot._prime($t);this.m=xt.p,this.prime=xt}else rt($t.gtn(1),"modulus must be greater than 1"),this.m=$t,this.prime=null}jt.prototype._verify1=function(xt){rt(xt.negative===0,"red works only with positives"),rt(xt.red,"red works only with red numbers")},jt.prototype._verify2=function(xt,It){rt((xt.negative|It.negative)===0,"red works only with positives"),rt(xt.red&&xt.red===It.red,"red works only with red numbers")},jt.prototype.imod=function(xt){return this.prime?this.prime.ireduce(xt)._forceRed(this):(ut(xt,xt.umod(this.m)._forceRed(this)),xt)},jt.prototype.neg=function(xt){return xt.isZero()?xt.clone():this.m.sub(xt)._forceRed(this)},jt.prototype.add=function(xt,It){this._verify2(xt,It);var Ot=xt.add(It);return Ot.cmp(this.m)>=0&&Ot.isub(this.m),Ot._forceRed(this)},jt.prototype.iadd=function(xt,It){this._verify2(xt,It);var Ot=xt.iadd(It);return Ot.cmp(this.m)>=0&&Ot.isub(this.m),Ot},jt.prototype.sub=function(xt,It){this._verify2(xt,It);var Ot=xt.sub(It);return Ot.cmpn(0)<0&&Ot.iadd(this.m),Ot._forceRed(this)},jt.prototype.isub=function(xt,It){this._verify2(xt,It);var Ot=xt.isub(It);return Ot.cmpn(0)<0&&Ot.iadd(this.m),Ot},jt.prototype.shl=function(xt,It){return this._verify1(xt),this.imod(xt.ushln(It))},jt.prototype.imul=function(xt,It){return this._verify2(xt,It),this.imod(xt.imul(It))},jt.prototype.mul=function(xt,It){return this._verify2(xt,It),this.imod(xt.mul(It))},jt.prototype.isqr=function(xt){return this.imul(xt,xt.clone())},jt.prototype.sqr=function(xt){return this.mul(xt,xt)},jt.prototype.sqrt=function(xt){if(xt.isZero())return xt.clone();var It=this.m.andln(3);if(rt(It%2===1),It===3){var Ot=this.m.add(new ot(1)).iushrn(2);return this.pow(xt,Ot)}for(var zt=this.m.subn(1),Ut=0;!zt.isZero()&&zt.andln(1)===0;)Ut++,zt.iushrn(1);rt(!zt.isZero());var Wt=new ot(1).toRed(this),Ft=Wt.redNeg(),Nt=this.m.subn(1).iushrn(1),Ct=this.m.bitLength();for(Ct=new ot(2*Ct*Ct).toRed(this);this.pow(Ct,Nt).cmp(Ft)!==0;)Ct.redIAdd(Ft);for(var Ht=this.pow(Ct,zt),Jt=this.pow(xt,zt.addn(1).iushrn(1)),nn=this.pow(xt,zt),Yt=Ut;nn.cmp(Wt)!==0;){for(var fn=nn,cn=0;fn.cmp(Wt)!==0;cn++)fn=fn.redSqr();rt(cn=0;Ut--){for(var Ht=It.words[Ut],Jt=Ct-1;Jt>=0;Jt--){var nn=Ht>>Jt&1;if(Wt!==zt[0]&&(Wt=this.sqr(Wt)),nn===0&&Ft===0){Nt=0;continue}Ft<<=1,Ft|=nn,Nt++,!(Nt!==Ot&&(Ut!==0||Jt!==0))&&(Wt=this.mul(Wt,zt[Ft]),Nt=0,Ft=0)}Ct=26}return Wt},jt.prototype.convertTo=function(xt){var It=xt.umod(this.m);return It===xt?It.clone():It},jt.prototype.convertFrom=function(xt){var It=xt.clone();return It.red=null,It},ot.mont=function(xt){return new Rt(xt)};function Rt($t){jt.call(this,$t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new ot(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}it(Rt,jt),Rt.prototype.convertTo=function(xt){return this.imod(xt.ushln(this.shift))},Rt.prototype.convertFrom=function(xt){var It=this.imod(xt.mul(this.rinv));return It.red=null,It},Rt.prototype.imul=function(xt,It){if(xt.isZero()||It.isZero())return xt.words[0]=0,xt.length=1,xt;var Ot=xt.imul(It),zt=Ot.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ut=Ot.isub(zt).iushrn(this.shift),Wt=Ut;return Ut.cmp(this.m)>=0?Wt=Ut.isub(this.m):Ut.cmpn(0)<0&&(Wt=Ut.iadd(this.m)),Wt._forceRed(this)},Rt.prototype.mul=function(xt,It){if(xt.isZero()||It.isZero())return new ot(0)._forceRed(this);var Ot=xt.mul(It),zt=Ot.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ut=Ot.isub(zt).iushrn(this.shift),Wt=Ut;return Ut.cmp(this.m)>=0?Wt=Ut.isub(this.m):Ut.cmpn(0)<0&&(Wt=Ut.iadd(this.m)),Wt._forceRed(this)},Rt.prototype.invm=function(xt){var It=this.imod(xt._invmp(this.m).mul(this.r2));return It._forceRed(this)}})(tt,commonjsGlobal)})(bn);var bnExports=bn.exports,asn1$3={},asn1$2={},api={},encoders={},buffer$1=buffer$2,Buffer$d=buffer$1.Buffer,safer={},key;for(key in buffer$1)buffer$1.hasOwnProperty(key)&&(key==="SlowBuffer"||key==="Buffer"||(safer[key]=buffer$1[key]));var Safer=safer.Buffer={};for(key in Buffer$d)Buffer$d.hasOwnProperty(key)&&(key==="allocUnsafe"||key==="allocUnsafeSlow"||(Safer[key]=Buffer$d[key]));safer.Buffer.prototype=Buffer$d.prototype;(!Safer.from||Safer.from===Uint8Array.from)&&(Safer.from=function(tt,et,nt){if(typeof tt=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof tt);if(tt&&typeof tt.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof tt);return Buffer$d(tt,et,nt)});Safer.alloc||(Safer.alloc=function(tt,et,nt){if(typeof tt!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof tt);if(tt<0||tt>=2*(1<<30))throw new RangeError('The value "'+tt+'" is invalid for option "size"');var rt=Buffer$d(tt);return!et||et.length===0?rt.fill(0):typeof nt=="string"?rt.fill(et,nt):rt.fill(et),rt});if(!safer.kStringMaxLength)try{safer.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}safer.constants||(safer.constants={MAX_LENGTH:safer.kMaxLength},safer.kStringMaxLength&&(safer.constants.MAX_STRING_LENGTH=safer.kStringMaxLength));var safer_1=safer,reporter={};const inherits$5=inherits_browserExports;function Reporter$2(tt){this._reporterState={obj:null,path:[],options:tt||{},errors:[]}}reporter.Reporter=Reporter$2;Reporter$2.prototype.isError=function(et){return et instanceof ReporterError};Reporter$2.prototype.save=function(){const et=this._reporterState;return{obj:et.obj,pathLen:et.path.length}};Reporter$2.prototype.restore=function(et){const nt=this._reporterState;nt.obj=et.obj,nt.path=nt.path.slice(0,et.pathLen)};Reporter$2.prototype.enterKey=function(et){return this._reporterState.path.push(et)};Reporter$2.prototype.exitKey=function(et){const nt=this._reporterState;nt.path=nt.path.slice(0,et-1)};Reporter$2.prototype.leaveKey=function(et,nt,rt){const it=this._reporterState;this.exitKey(et),it.obj!==null&&(it.obj[nt]=rt)};Reporter$2.prototype.path=function(){return this._reporterState.path.join("/")};Reporter$2.prototype.enterObject=function(){const et=this._reporterState,nt=et.obj;return et.obj={},nt};Reporter$2.prototype.leaveObject=function(et){const nt=this._reporterState,rt=nt.obj;return nt.obj=et,rt};Reporter$2.prototype.error=function(et){let nt;const rt=this._reporterState,it=et instanceof ReporterError;if(it?nt=et:nt=new ReporterError(rt.path.map(function(ot){return"["+JSON.stringify(ot)+"]"}).join(""),et.message||et,et.stack),!rt.options.partial)throw nt;return it||rt.errors.push(nt),nt};Reporter$2.prototype.wrapResult=function(et){const nt=this._reporterState;return nt.options.partial?{result:this.isError(et)?null:et,errors:nt.errors}:et};function ReporterError(tt,et){this.path=tt,this.rethrow(et)}inherits$5(ReporterError,Error);ReporterError.prototype.rethrow=function(et){if(this.message=et+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,ReporterError),!this.stack)try{throw new Error(this.message)}catch(nt){this.stack=nt.stack}return this};var buffer={};const inherits$4=inherits_browserExports,Reporter$1=reporter.Reporter,Buffer$c=safer_1.Buffer;function DecoderBuffer$2(tt,et){if(Reporter$1.call(this,et),!Buffer$c.isBuffer(tt)){this.error("Input not Buffer");return}this.base=tt,this.offset=0,this.length=tt.length}inherits$4(DecoderBuffer$2,Reporter$1);buffer.DecoderBuffer=DecoderBuffer$2;DecoderBuffer$2.isDecoderBuffer=function(et){return et instanceof DecoderBuffer$2?!0:typeof et=="object"&&Buffer$c.isBuffer(et.base)&&et.constructor.name==="DecoderBuffer"&&typeof et.offset=="number"&&typeof et.length=="number"&&typeof et.save=="function"&&typeof et.restore=="function"&&typeof et.isEmpty=="function"&&typeof et.readUInt8=="function"&&typeof et.skip=="function"&&typeof et.raw=="function"};DecoderBuffer$2.prototype.save=function(){return{offset:this.offset,reporter:Reporter$1.prototype.save.call(this)}};DecoderBuffer$2.prototype.restore=function(et){const nt=new DecoderBuffer$2(this.base);return nt.offset=et.offset,nt.length=this.offset,this.offset=et.offset,Reporter$1.prototype.restore.call(this,et.reporter),nt};DecoderBuffer$2.prototype.isEmpty=function(){return this.offset===this.length};DecoderBuffer$2.prototype.readUInt8=function(et){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(et||"DecoderBuffer overrun")};DecoderBuffer$2.prototype.skip=function(et,nt){if(!(this.offset+et<=this.length))return this.error(nt||"DecoderBuffer overrun");const rt=new DecoderBuffer$2(this.base);return rt._reporterState=this._reporterState,rt.offset=this.offset,rt.length=this.offset+et,this.offset+=et,rt};DecoderBuffer$2.prototype.raw=function(et){return this.base.slice(et?et.offset:this.offset,this.length)};function EncoderBuffer$1(tt,et){if(Array.isArray(tt))this.length=0,this.value=tt.map(function(nt){return EncoderBuffer$1.isEncoderBuffer(nt)||(nt=new EncoderBuffer$1(nt,et)),this.length+=nt.length,nt},this);else if(typeof tt=="number"){if(!(0<=tt&&tt<=255))return et.error("non-byte EncoderBuffer value");this.value=tt,this.length=1}else if(typeof tt=="string")this.value=tt,this.length=Buffer$c.byteLength(tt);else if(Buffer$c.isBuffer(tt))this.value=tt,this.length=tt.length;else return et.error("Unsupported type: "+typeof tt)}buffer.EncoderBuffer=EncoderBuffer$1;EncoderBuffer$1.isEncoderBuffer=function(et){return et instanceof EncoderBuffer$1?!0:typeof et=="object"&&et.constructor.name==="EncoderBuffer"&&typeof et.length=="number"&&typeof et.join=="function"};EncoderBuffer$1.prototype.join=function(et,nt){return et||(et=Buffer$c.alloc(this.length)),nt||(nt=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(rt){rt.join(et,nt),nt+=rt.length}):(typeof this.value=="number"?et[nt]=this.value:typeof this.value=="string"?et.write(this.value,nt):Buffer$c.isBuffer(this.value)&&this.value.copy(et,nt),nt+=this.length)),et};const Reporter=reporter.Reporter,EncoderBuffer=buffer.EncoderBuffer,DecoderBuffer$1=buffer.DecoderBuffer,assert$6=minimalisticAssert,tags=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],methods=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(tags),overrided=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function Node$3(tt,et,nt){const rt={};this._baseState=rt,rt.name=nt,rt.enc=tt,rt.parent=et||null,rt.children=null,rt.tag=null,rt.args=null,rt.reverseArgs=null,rt.choice=null,rt.optional=!1,rt.any=!1,rt.obj=!1,rt.use=null,rt.useDecoder=null,rt.key=null,rt.default=null,rt.explicit=null,rt.implicit=null,rt.contains=null,rt.parent||(rt.children=[],this._wrap())}var node$1=Node$3;const stateProps=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];Node$3.prototype.clone=function(){const et=this._baseState,nt={};stateProps.forEach(function(it){nt[it]=et[it]});const rt=new this.constructor(nt.parent);return rt._baseState=nt,rt};Node$3.prototype._wrap=function(){const et=this._baseState;methods.forEach(function(nt){this[nt]=function(){const it=new this.constructor(this);return et.children.push(it),it[nt].apply(it,arguments)}},this)};Node$3.prototype._init=function(et){const nt=this._baseState;assert$6(nt.parent===null),et.call(this),nt.children=nt.children.filter(function(rt){return rt._baseState.parent===this},this),assert$6.equal(nt.children.length,1,"Root node can have only one child")};Node$3.prototype._useArgs=function(et){const nt=this._baseState,rt=et.filter(function(it){return it instanceof this.constructor},this);et=et.filter(function(it){return!(it instanceof this.constructor)},this),rt.length!==0&&(assert$6(nt.children===null),nt.children=rt,rt.forEach(function(it){it._baseState.parent=this},this)),et.length!==0&&(assert$6(nt.args===null),nt.args=et,nt.reverseArgs=et.map(function(it){if(typeof it!="object"||it.constructor!==Object)return it;const ot={};return Object.keys(it).forEach(function(at){at==(at|0)&&(at|=0);const st=it[at];ot[st]=at}),ot}))};overrided.forEach(function(tt){Node$3.prototype[tt]=function(){const nt=this._baseState;throw new Error(tt+" not implemented for encoding: "+nt.enc)}});tags.forEach(function(tt){Node$3.prototype[tt]=function(){const nt=this._baseState,rt=Array.prototype.slice.call(arguments);return assert$6(nt.tag===null),nt.tag=tt,this._useArgs(rt),this}});Node$3.prototype.use=function(et){assert$6(et);const nt=this._baseState;return assert$6(nt.use===null),nt.use=et,this};Node$3.prototype.optional=function(){const et=this._baseState;return et.optional=!0,this};Node$3.prototype.def=function(et){const nt=this._baseState;return assert$6(nt.default===null),nt.default=et,nt.optional=!0,this};Node$3.prototype.explicit=function(et){const nt=this._baseState;return assert$6(nt.explicit===null&&nt.implicit===null),nt.explicit=et,this};Node$3.prototype.implicit=function(et){const nt=this._baseState;return assert$6(nt.explicit===null&&nt.implicit===null),nt.implicit=et,this};Node$3.prototype.obj=function(){const et=this._baseState,nt=Array.prototype.slice.call(arguments);return et.obj=!0,nt.length!==0&&this._useArgs(nt),this};Node$3.prototype.key=function(et){const nt=this._baseState;return assert$6(nt.key===null),nt.key=et,this};Node$3.prototype.any=function(){const et=this._baseState;return et.any=!0,this};Node$3.prototype.choice=function(et){const nt=this._baseState;return assert$6(nt.choice===null),nt.choice=et,this._useArgs(Object.keys(et).map(function(rt){return et[rt]})),this};Node$3.prototype.contains=function(et){const nt=this._baseState;return assert$6(nt.use===null),nt.contains=et,this};Node$3.prototype._decode=function(et,nt){const rt=this._baseState;if(rt.parent===null)return et.wrapResult(rt.children[0]._decode(et,nt));let it=rt.default,ot=!0,at=null;if(rt.key!==null&&(at=et.enterKey(rt.key)),rt.optional){let lt=null;if(rt.explicit!==null?lt=rt.explicit:rt.implicit!==null?lt=rt.implicit:rt.tag!==null&&(lt=rt.tag),lt===null&&!rt.any){const ct=et.save();try{rt.choice===null?this._decodeGeneric(rt.tag,et,nt):this._decodeChoice(et,nt),ot=!0}catch{ot=!1}et.restore(ct)}else if(ot=this._peekTag(et,lt,rt.any),et.isError(ot))return ot}let st;if(rt.obj&&ot&&(st=et.enterObject()),ot){if(rt.explicit!==null){const ct=this._decodeTag(et,rt.explicit);if(et.isError(ct))return ct;et=ct}const lt=et.offset;if(rt.use===null&&rt.choice===null){let ct;rt.any&&(ct=et.save());const ut=this._decodeTag(et,rt.implicit!==null?rt.implicit:rt.tag,rt.any);if(et.isError(ut))return ut;rt.any?it=et.raw(ct):et=ut}if(nt&&nt.track&&rt.tag!==null&&nt.track(et.path(),lt,et.length,"tagged"),nt&&nt.track&&rt.tag!==null&&nt.track(et.path(),et.offset,et.length,"content"),rt.any||(rt.choice===null?it=this._decodeGeneric(rt.tag,et,nt):it=this._decodeChoice(et,nt)),et.isError(it))return it;if(!rt.any&&rt.choice===null&&rt.children!==null&&rt.children.forEach(function(ut){ut._decode(et,nt)}),rt.contains&&(rt.tag==="octstr"||rt.tag==="bitstr")){const ct=new DecoderBuffer$1(it);it=this._getUse(rt.contains,et._reporterState.obj)._decode(ct,nt)}}return rt.obj&&ot&&(it=et.leaveObject(st)),rt.key!==null&&(it!==null||ot===!0)?et.leaveKey(at,rt.key,it):at!==null&&et.exitKey(at),it};Node$3.prototype._decodeGeneric=function(et,nt,rt){const it=this._baseState;return et==="seq"||et==="set"?null:et==="seqof"||et==="setof"?this._decodeList(nt,et,it.args[0],rt):/str$/.test(et)?this._decodeStr(nt,et,rt):et==="objid"&&it.args?this._decodeObjid(nt,it.args[0],it.args[1],rt):et==="objid"?this._decodeObjid(nt,null,null,rt):et==="gentime"||et==="utctime"?this._decodeTime(nt,et,rt):et==="null_"?this._decodeNull(nt,rt):et==="bool"?this._decodeBool(nt,rt):et==="objDesc"?this._decodeStr(nt,et,rt):et==="int"||et==="enum"?this._decodeInt(nt,it.args&&it.args[0],rt):it.use!==null?this._getUse(it.use,nt._reporterState.obj)._decode(nt,rt):nt.error("unknown tag: "+et)};Node$3.prototype._getUse=function(et,nt){const rt=this._baseState;return rt.useDecoder=this._use(et,nt),assert$6(rt.useDecoder._baseState.parent===null),rt.useDecoder=rt.useDecoder._baseState.children[0],rt.implicit!==rt.useDecoder._baseState.implicit&&(rt.useDecoder=rt.useDecoder.clone(),rt.useDecoder._baseState.implicit=rt.implicit),rt.useDecoder};Node$3.prototype._decodeChoice=function(et,nt){const rt=this._baseState;let it=null,ot=!1;return Object.keys(rt.choice).some(function(at){const st=et.save(),lt=rt.choice[at];try{const ct=lt._decode(et,nt);if(et.isError(ct))return!1;it={type:at,value:ct},ot=!0}catch{return et.restore(st),!1}return!0},this),ot?it:et.error("Choice not matched")};Node$3.prototype._createEncoderBuffer=function(et){return new EncoderBuffer(et,this.reporter)};Node$3.prototype._encode=function(et,nt,rt){const it=this._baseState;if(it.default!==null&&it.default===et)return;const ot=this._encodeValue(et,nt,rt);if(ot!==void 0&&!this._skipDefault(ot,nt,rt))return ot};Node$3.prototype._encodeValue=function(et,nt,rt){const it=this._baseState;if(it.parent===null)return it.children[0]._encode(et,nt||new Reporter);let ot=null;if(this.reporter=nt,it.optional&&et===void 0)if(it.default!==null)et=it.default;else return;let at=null,st=!1;if(it.any)ot=this._createEncoderBuffer(et);else if(it.choice)ot=this._encodeChoice(et,nt);else if(it.contains)at=this._getUse(it.contains,rt)._encode(et,nt),st=!0;else if(it.children)at=it.children.map(function(lt){if(lt._baseState.tag==="null_")return lt._encode(null,nt,et);if(lt._baseState.key===null)return nt.error("Child should have a key");const ct=nt.enterKey(lt._baseState.key);if(typeof et!="object")return nt.error("Child expected, but input is not object");const ut=lt._encode(et[lt._baseState.key],nt,et);return nt.leaveKey(ct),ut},this).filter(function(lt){return lt}),at=this._createEncoderBuffer(at);else if(it.tag==="seqof"||it.tag==="setof"){if(!(it.args&&it.args.length===1))return nt.error("Too many args for : "+it.tag);if(!Array.isArray(et))return nt.error("seqof/setof, but data is not Array");const lt=this.clone();lt._baseState.implicit=null,at=this._createEncoderBuffer(et.map(function(ct){const ut=this._baseState;return this._getUse(ut.args[0],et)._encode(ct,nt)},lt))}else it.use!==null?ot=this._getUse(it.use,rt)._encode(et,nt):(at=this._encodePrimitive(it.tag,et),st=!0);if(!it.any&&it.choice===null){const lt=it.implicit!==null?it.implicit:it.tag,ct=it.implicit===null?"universal":"context";lt===null?it.use===null&&nt.error("Tag could be omitted only for .use()"):it.use===null&&(ot=this._encodeComposite(lt,st,ct,at))}return it.explicit!==null&&(ot=this._encodeComposite(it.explicit,!1,"context",ot)),ot};Node$3.prototype._encodeChoice=function(et,nt){const rt=this._baseState,it=rt.choice[et.type];return it||assert$6(!1,et.type+" not found in "+JSON.stringify(Object.keys(rt.choice))),it._encode(et.value,nt)};Node$3.prototype._encodePrimitive=function(et,nt){const rt=this._baseState;if(/str$/.test(et))return this._encodeStr(nt,et);if(et==="objid"&&rt.args)return this._encodeObjid(nt,rt.reverseArgs[0],rt.args[1]);if(et==="objid")return this._encodeObjid(nt,null,null);if(et==="gentime"||et==="utctime")return this._encodeTime(nt,et);if(et==="null_")return this._encodeNull();if(et==="int"||et==="enum")return this._encodeInt(nt,rt.args&&rt.reverseArgs[0]);if(et==="bool")return this._encodeBool(nt);if(et==="objDesc")return this._encodeStr(nt,et);throw new Error("Unsupported tag: "+et)};Node$3.prototype._isNumstr=function(et){return/^[0-9 ]*$/.test(et)};Node$3.prototype._isPrintstr=function(et){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(et)};var der$2={};(function(tt){function et(nt){const rt={};return Object.keys(nt).forEach(function(it){(it|0)==it&&(it=it|0);const ot=nt[it];rt[ot]=it}),rt}tt.tagClass={0:"universal",1:"application",2:"context",3:"private"},tt.tagClassByName=et(tt.tagClass),tt.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},tt.tagByName=et(tt.tag)})(der$2);const inherits$3=inherits_browserExports,Buffer$b=safer_1.Buffer,Node$2=node$1,der$1=der$2;function DEREncoder$1(tt){this.enc="der",this.name=tt.name,this.entity=tt,this.tree=new DERNode$1,this.tree._init(tt.body)}var der_1$1=DEREncoder$1;DEREncoder$1.prototype.encode=function(et,nt){return this.tree._encode(et,nt).join()};function DERNode$1(tt){Node$2.call(this,"der",tt)}inherits$3(DERNode$1,Node$2);DERNode$1.prototype._encodeComposite=function(et,nt,rt,it){const ot=encodeTag(et,nt,rt,this.reporter);if(it.length<128){const lt=Buffer$b.alloc(2);return lt[0]=ot,lt[1]=it.length,this._createEncoderBuffer([lt,it])}let at=1;for(let lt=it.length;lt>=256;lt>>=8)at++;const st=Buffer$b.alloc(1+1+at);st[0]=ot,st[1]=128|at;for(let lt=1+at,ct=it.length;ct>0;lt--,ct>>=8)st[lt]=ct&255;return this._createEncoderBuffer([st,it])};DERNode$1.prototype._encodeStr=function(et,nt){if(nt==="bitstr")return this._createEncoderBuffer([et.unused|0,et.data]);if(nt==="bmpstr"){const rt=Buffer$b.alloc(et.length*2);for(let it=0;it=40)return this.reporter.error("Second objid identifier OOB");et.splice(0,2,et[0]*40+et[1])}let it=0;for(let st=0;st=128;lt>>=7)it++}const ot=Buffer$b.alloc(it);let at=ot.length-1;for(let st=et.length-1;st>=0;st--){let lt=et[st];for(ot[at--]=lt&127;(lt>>=7)>0;)ot[at--]=128|lt&127}return this._createEncoderBuffer(ot)};function two(tt){return tt<10?"0"+tt:tt}DERNode$1.prototype._encodeTime=function(et,nt){let rt;const it=new Date(et);return nt==="gentime"?rt=[two(it.getUTCFullYear()),two(it.getUTCMonth()+1),two(it.getUTCDate()),two(it.getUTCHours()),two(it.getUTCMinutes()),two(it.getUTCSeconds()),"Z"].join(""):nt==="utctime"?rt=[two(it.getUTCFullYear()%100),two(it.getUTCMonth()+1),two(it.getUTCDate()),two(it.getUTCHours()),two(it.getUTCMinutes()),two(it.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+nt+" time is not supported yet"),this._encodeStr(rt,"octstr")};DERNode$1.prototype._encodeNull=function(){return this._createEncoderBuffer("")};DERNode$1.prototype._encodeInt=function(et,nt){if(typeof et=="string"){if(!nt)return this.reporter.error("String int or enum given, but no values map");if(!nt.hasOwnProperty(et))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(et));et=nt[et]}if(typeof et!="number"&&!Buffer$b.isBuffer(et)){const ot=et.toArray();!et.sign&&ot[0]&128&&ot.unshift(0),et=Buffer$b.from(ot)}if(Buffer$b.isBuffer(et)){let ot=et.length;et.length===0&&ot++;const at=Buffer$b.alloc(ot);return et.copy(at),et.length===0&&(at[0]=0),this._createEncoderBuffer(at)}if(et<128)return this._createEncoderBuffer(et);if(et<256)return this._createEncoderBuffer([0,et]);let rt=1;for(let ot=et;ot>=256;ot>>=8)rt++;const it=new Array(rt);for(let ot=it.length-1;ot>=0;ot--)it[ot]=et&255,et>>=8;return it[0]&128&&it.unshift(0),this._createEncoderBuffer(Buffer$b.from(it))};DERNode$1.prototype._encodeBool=function(et){return this._createEncoderBuffer(et?255:0)};DERNode$1.prototype._use=function(et,nt){return typeof et=="function"&&(et=et(nt)),et._getEncoder("der").tree};DERNode$1.prototype._skipDefault=function(et,nt,rt){const it=this._baseState;let ot;if(it.default===null)return!1;const at=et.join();if(it.defaultBuffer===void 0&&(it.defaultBuffer=this._encodeValue(it.default,nt,rt).join()),at.length!==it.defaultBuffer.length)return!1;for(ot=0;ot=31?rt.error("Multi-octet tag encoding unsupported"):(et||(it|=32),it|=der$1.tagClassByName[nt||"universal"]<<6,it)}const inherits$2=inherits_browserExports,DEREncoder=der_1$1;function PEMEncoder(tt){DEREncoder.call(this,tt),this.enc="pem"}inherits$2(PEMEncoder,DEREncoder);var pem$1=PEMEncoder;PEMEncoder.prototype.encode=function(et,nt){const it=DEREncoder.prototype.encode.call(this,et).toString("base64"),ot=["-----BEGIN "+nt.label+"-----"];for(let at=0;at>6],it=(nt&32)===0;if((nt&31)===31){let at=nt;for(nt=0;(at&128)===128;){if(at=tt.readUInt8(et),tt.isError(at))return at;nt<<=7,nt|=at&127}}else nt&=31;const ot=der.tag[nt];return{cls:rt,primitive:it,tag:nt,tagStr:ot}}function derDecodeLen(tt,et,nt){let rt=tt.readUInt8(nt);if(tt.isError(rt))return rt;if(!et&&rt===128)return null;if(!(rt&128))return rt;const it=rt&127;if(it>4)return tt.error("length octect is too long");rt=0;for(let ot=0;ot0&&wt.ishrn(vt),wt}function pt(yt,bt){yt=dt(yt,bt),yt=yt.mod(bt);var wt=tt.from(yt.toArray());if(wt.length=ut)throw new Error("invalid sig")}return verify_1=ot,verify_1}var browser$4,hasRequiredBrowser$1;function requireBrowser$1(){if(hasRequiredBrowser$1)return browser$4;hasRequiredBrowser$1=1;var tt=safeBufferExports.Buffer,et=browser$a,nt=readableBrowserExports,rt=inherits_browserExports,it=requireSign(),ot=requireVerify(),at=require$$6;Object.keys(at).forEach(function(ht){at[ht].id=tt.from(at[ht].id,"hex"),at[ht.toLowerCase()]=at[ht]});function st(ht){nt.Writable.call(this);var dt=at[ht];if(!dt)throw new Error("Unknown message digest");this._hashType=dt.hash,this._hash=et(dt.hash),this._tag=dt.id,this._signType=dt.sign}rt(st,nt.Writable),st.prototype._write=function(dt,pt,mt){this._hash.update(dt),mt()},st.prototype.update=function(dt,pt){return typeof dt=="string"&&(dt=tt.from(dt,pt)),this._hash.update(dt),this},st.prototype.sign=function(dt,pt){this.end();var mt=this._hash.digest(),gt=it(mt,dt,this._hashType,this._signType,this._tag);return pt?gt.toString(pt):gt};function lt(ht){nt.Writable.call(this);var dt=at[ht];if(!dt)throw new Error("Unknown message digest");this._hash=et(dt.hash),this._tag=dt.id,this._signType=dt.sign}rt(lt,nt.Writable),lt.prototype._write=function(dt,pt,mt){this._hash.update(dt),mt()},lt.prototype.update=function(dt,pt){return typeof dt=="string"&&(dt=tt.from(dt,pt)),this._hash.update(dt),this},lt.prototype.verify=function(dt,pt,mt){typeof pt=="string"&&(pt=tt.from(pt,mt)),this.end();var gt=this._hash.digest();return ot(pt,gt,dt,this._signType,this._tag)};function ct(ht){return new st(ht)}function ut(ht){return new lt(ht)}return browser$4={Sign:ct,Verify:ut,createSign:ct,createVerify:ut},browser$4}var browser$3,hasRequiredBrowser;function requireBrowser(){if(hasRequiredBrowser)return browser$3;hasRequiredBrowser=1;var tt=requireElliptic(),et=bnExports$2;browser$3=function(at){return new rt(at)};var nt={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};nt.p224=nt.secp224r1,nt.p256=nt.secp256r1=nt.prime256v1,nt.p192=nt.secp192r1=nt.prime192v1,nt.p384=nt.secp384r1,nt.p521=nt.secp521r1;function rt(ot){this.curveType=nt[ot],this.curveType||(this.curveType={name:ot}),this.curve=new tt.ec(this.curveType.name),this.keys=void 0}rt.prototype.generateKeys=function(ot,at){return this.keys=this.curve.genKeyPair(),this.getPublicKey(ot,at)},rt.prototype.computeSecret=function(ot,at,st){at=at||"utf8",Buffer.isBuffer(ot)||(ot=new Buffer(ot,at));var lt=this.curve.keyFromPublic(ot).getPublic(),ct=lt.mul(this.keys.getPrivate()).getX();return it(ct,st,this.curveType.byteLength)},rt.prototype.getPublicKey=function(ot,at){var st=this.keys.getPublic(at==="compressed",!0);return at==="hybrid"&&(st[st.length-1]%2?st[0]=7:st[0]=6),it(st,ot)},rt.prototype.getPrivateKey=function(ot){return it(this.keys.getPrivate(),ot)},rt.prototype.setPublicKey=function(ot,at){return at=at||"utf8",Buffer.isBuffer(ot)||(ot=new Buffer(ot,at)),this.keys._importPublic(ot),this},rt.prototype.setPrivateKey=function(ot,at){at=at||"utf8",Buffer.isBuffer(ot)||(ot=new Buffer(ot,at));var st=new et(ot);return st=st.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(st),this};function it(ot,at,st){Array.isArray(ot)||(ot=ot.toArray());var lt=new Buffer(ot);if(st&<.length=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return rt?crt$1(at,ot):withPublic$1(at,ot)};function oaep$1(tt,et){var nt=tt.modulus.byteLength(),rt=et.length,it=createHash$2("sha1").update(Buffer$5.alloc(0)).digest(),ot=it.length,at=2*ot;if(rt>nt-at-2)throw new Error("message too long");var st=Buffer$5.alloc(nt-rt-at-2),lt=nt-ot-1,ct=randomBytes(ot),ut=xor$1(Buffer$5.concat([it,st,Buffer$5.alloc(1,1),et],lt),mgf$1(ct,lt)),ht=xor$1(ct,mgf$1(ut,ot));return new BN$3(Buffer$5.concat([Buffer$5.alloc(1),ht,ut],nt))}function pkcs1$1(tt,et,nt){var rt=et.length,it=tt.modulus.byteLength();if(rt>it-11)throw new Error("message too long");var ot;return nt?ot=Buffer$5.alloc(it-rt-3,255):ot=nonZero(it-rt-3),new BN$3(Buffer$5.concat([Buffer$5.from([0,nt?1:2]),ot,Buffer$5.alloc(1),et],it))}function nonZero(tt){for(var et=Buffer$5.allocUnsafe(tt),nt=0,rt=randomBytes(tt*2),it=0,ot;ntat||new BN$2(nt).cmp(ot.modulus)>=0)throw new Error("decryption error");var st;rt?st=withPublic(new BN$2(nt),ot):st=crt(nt,ot);var lt=Buffer$4.alloc(at-st.length);if(st=Buffer$4.concat([lt,st],at),it===4)return oaep(ot,st);if(it===1)return pkcs1(ot,st,rt);if(it===3)return st;throw new Error("unknown padding")};function oaep(tt,et){var nt=tt.modulus.byteLength(),rt=createHash$1("sha1").update(Buffer$4.alloc(0)).digest(),it=rt.length;if(et[0]!==0)throw new Error("decryption error");var ot=et.slice(1,it+1),at=et.slice(it+1),st=xor(ot,mgf(at,it)),lt=xor(at,mgf(st,nt-it-1));if(compare$1(rt,lt.slice(0,it)))throw new Error("decryption error");for(var ct=it;lt[ct]===0;)ct++;if(lt[ct++]!==1)throw new Error("decryption error");return lt.slice(ct)}function pkcs1(tt,et,nt){for(var rt=et.slice(0,2),it=2,ot=0;et[it++]!==0;)if(it>=et.length){ot++;break}var at=et.slice(2,it-1);if((rt.toString("hex")!=="0002"&&!nt||rt.toString("hex")!=="0001"&&nt)&&ot++,at.length<8&&ot++,ot)throw new Error("decryption error");return et.slice(it)}function compare$1(tt,et){tt=Buffer$4.from(tt),et=Buffer$4.from(et);var nt=0,rt=tt.length;tt.length!==et.length&&(nt++,rt=Math.min(tt.length,et.length));for(var it=-1;++itMAX_UINT32)throw new RangeError("requested too many random bytes");var nt=Buffer$H.allocUnsafe(tt);if(tt>0)if(tt>MAX_BYTES)for(var rt=0;rt0&&(at=nt[0]),at instanceof Error)throw at;var st=new Error("Unhandled error."+(at?" ("+at.message+")":""));throw st.context=at,st}var lt=ot[et];if(lt===void 0)return!1;if(typeof lt=="function")ReflectApply(lt,this,nt);else for(var ct=lt.length,ut=arrayClone(lt,ct),rt=0;rt0&&at.length>it&&!at.warned){at.warned=!0;var st=new Error("Possible EventEmitter memory leak detected. "+at.length+" "+String(et)+" listeners added. Use emitter.setMaxListeners() to increase limit");st.name="MaxListenersExceededWarning",st.emitter=tt,st.type=et,st.count=at.length,ProcessEmitWarning(st)}return tt}EventEmitter$1.prototype.addListener=function(et,nt){return _addListener(this,et,nt,!1)};EventEmitter$1.prototype.on=EventEmitter$1.prototype.addListener;EventEmitter$1.prototype.prependListener=function(et,nt){return _addListener(this,et,nt,!0)};function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(tt,et,nt){var rt={fired:!1,wrapFn:void 0,target:tt,type:et,listener:nt},it=onceWrapper.bind(rt);return it.listener=nt,rt.wrapFn=it,it}EventEmitter$1.prototype.once=function(et,nt){return checkListener(nt),this.on(et,_onceWrap(this,et,nt)),this};EventEmitter$1.prototype.prependOnceListener=function(et,nt){return checkListener(nt),this.prependListener(et,_onceWrap(this,et,nt)),this};EventEmitter$1.prototype.removeListener=function(et,nt){var rt,it,ot,at,st;if(checkListener(nt),it=this._events,it===void 0)return this;if(rt=it[et],rt===void 0)return this;if(rt===nt||rt.listener===nt)--this._eventsCount===0?this._events=Object.create(null):(delete it[et],it.removeListener&&this.emit("removeListener",et,rt.listener||nt));else if(typeof rt!="function"){for(ot=-1,at=rt.length-1;at>=0;at--)if(rt[at]===nt||rt[at].listener===nt){st=rt[at].listener,ot=at;break}if(ot<0)return this;ot===0?rt.shift():spliceOne(rt,ot),rt.length===1&&(it[et]=rt[0]),it.removeListener!==void 0&&this.emit("removeListener",et,st||nt)}return this};EventEmitter$1.prototype.off=EventEmitter$1.prototype.removeListener;EventEmitter$1.prototype.removeAllListeners=function(et){var nt,rt,it;if(rt=this._events,rt===void 0)return this;if(rt.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):rt[et]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete rt[et]),this;if(arguments.length===0){var ot=Object.keys(rt),at;for(it=0;it=0;it--)this.removeListener(et,nt[it]);return this};function _listeners$1(tt,et,nt){var rt=tt._events;if(rt===void 0)return[];var it=rt[et];return it===void 0?[]:typeof it=="function"?nt?[it.listener||it]:[it]:nt?unwrapListeners(it):arrayClone(it,it.length)}EventEmitter$1.prototype.listeners=function(et){return _listeners$1(this,et,!0)};EventEmitter$1.prototype.rawListeners=function(et){return _listeners$1(this,et,!1)};EventEmitter$1.listenerCount=function(tt,et){return typeof tt.listenerCount=="function"?tt.listenerCount(et):listenerCount.call(tt,et)};EventEmitter$1.prototype.listenerCount=listenerCount;function listenerCount(tt){var et=this._events;if(et!==void 0){var nt=et[tt];if(typeof nt=="function")return 1;if(nt!==void 0)return nt.length}return 0}EventEmitter$1.prototype.eventNames=function(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};function arrayClone(tt,et){for(var nt=new Array(et),rt=0;rt0?this.tail.next=bt:this.head=bt,this.tail=bt,++this.length}},{key:"unshift",value:function(yt){var bt={data:yt,next:this.head};this.length===0&&(this.tail=bt),this.head=bt,++this.length}},{key:"shift",value:function(){if(this.length!==0){var yt=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,yt}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(yt){if(this.length===0)return"";for(var bt=this.head,wt=""+bt.data;bt=bt.next;)wt+=yt+bt.data;return wt}},{key:"concat",value:function(yt){if(this.length===0)return ct.alloc(0);for(var bt=ct.allocUnsafe(yt>>>0),wt=this.head,vt=0;wt;)pt(wt.data,bt,vt),vt+=wt.data.length,wt=wt.next;return bt}},{key:"consume",value:function(yt,bt){var wt;return ytkt.length?kt.length:yt;if(St===kt.length?vt+=kt:vt+=kt.slice(0,yt),yt-=St,yt===0){St===kt.length?(++wt,bt.next?this.head=bt.next:this.head=this.tail=null):(this.head=bt,bt.data=kt.slice(St));break}++wt}return this.length-=wt,vt}},{key:"_getBuffer",value:function(yt){var bt=ct.allocUnsafe(yt),wt=this.head,vt=1;for(wt.data.copy(bt),yt-=wt.data.length;wt=wt.next;){var kt=wt.data,St=yt>kt.length?kt.length:yt;if(kt.copy(bt,bt.length-yt,0,St),yt-=St,yt===0){St===kt.length?(++vt,wt.next?this.head=wt.next:this.head=this.tail=null):(this.head=wt,wt.data=kt.slice(St));break}++vt}return this.length-=vt,bt}},{key:dt,value:function(yt,bt){return ht(this,et(et({},bt),{},{depth:0,customInspect:!1}))}}]),mt}(),buffer_list}function destroy(tt,et){var nt=this,rt=this._readableState&&this._readableState.destroyed,it=this._writableState&&this._writableState.destroyed;return rt||it?(et?et(tt):tt&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(emitErrorNT,this,tt)):process.nextTick(emitErrorNT,this,tt)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(tt||null,function(ot){!et&&ot?nt._writableState?nt._writableState.errorEmitted?process.nextTick(emitCloseNT,nt):(nt._writableState.errorEmitted=!0,process.nextTick(emitErrorAndCloseNT,nt,ot)):process.nextTick(emitErrorAndCloseNT,nt,ot):et?(process.nextTick(emitCloseNT,nt),et(ot)):process.nextTick(emitCloseNT,nt)}),this)}function emitErrorAndCloseNT(tt,et){emitErrorNT(tt,et),emitCloseNT(tt)}function emitCloseNT(tt){tt._writableState&&!tt._writableState.emitClose||tt._readableState&&!tt._readableState.emitClose||tt.emit("close")}function undestroy(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function emitErrorNT(tt,et){tt.emit("error",et)}function errorOrDestroy(tt,et){var nt=tt._readableState,rt=tt._writableState;nt&&nt.autoDestroy||rt&&rt.autoDestroy?tt.destroy(et):tt.emit("error",et)}var destroy_1={destroy,undestroy,errorOrDestroy},errorsBrowser={};function _inheritsLoose$1(tt,et){tt.prototype=Object.create(et.prototype),tt.prototype.constructor=tt,tt.__proto__=et}var codes={};function createErrorType(tt,et,nt){nt||(nt=Error);function rt(ot,at,st){return typeof et=="string"?et:et(ot,at,st)}var it=function(ot){_inheritsLoose$1(at,ot);function at(st,lt,ct){return ot.call(this,rt(st,lt,ct))||this}return at}(nt);it.prototype.name=nt.name,it.prototype.code=tt,codes[tt]=it}function oneOf(tt,et){if(Array.isArray(tt)){var nt=tt.length;return tt=tt.map(function(rt){return String(rt)}),nt>2?"one of ".concat(et," ").concat(tt.slice(0,nt-1).join(", "),", or ")+tt[nt-1]:nt===2?"one of ".concat(et," ").concat(tt[0]," or ").concat(tt[1]):"of ".concat(et," ").concat(tt[0])}else return"of ".concat(et," ").concat(String(tt))}function startsWith(tt,et,nt){return tt.substr(!nt||nt<0?0:+nt,et.length)===et}function endsWith(tt,et,nt){return(nt===void 0||nt>tt.length)&&(nt=tt.length),tt.substring(nt-et.length,nt)===et}function includes(tt,et,nt){return typeof nt!="number"&&(nt=0),nt+et.length>tt.length?!1:tt.indexOf(et,nt)!==-1}createErrorType("ERR_INVALID_OPT_VALUE",function(tt,et){return'The value "'+et+'" is invalid for option "'+tt+'"'},TypeError);createErrorType("ERR_INVALID_ARG_TYPE",function(tt,et,nt){var rt;typeof et=="string"&&startsWith(et,"not ")?(rt="must not be",et=et.replace(/^not /,"")):rt="must be";var it;if(endsWith(tt," argument"))it="The ".concat(tt," ").concat(rt," ").concat(oneOf(et,"type"));else{var ot=includes(tt,".")?"property":"argument";it='The "'.concat(tt,'" ').concat(ot," ").concat(rt," ").concat(oneOf(et,"type"))}return it+=". Received type ".concat(typeof nt),it},TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",function(tt){return"The "+tt+" method is not implemented"});createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",function(tt){return"Cannot call "+tt+" after a stream was destroyed"});createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",function(tt){return"Unknown encoding: "+tt},TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");errorsBrowser.codes=codes;var ERR_INVALID_OPT_VALUE=errorsBrowser.codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(tt,et,nt){return tt.highWaterMark!=null?tt.highWaterMark:et?tt[nt]:null}function getHighWaterMark(tt,et,nt,rt){var it=highWaterMarkFrom(et,rt,nt);if(it!=null){if(!(isFinite(it)&&Math.floor(it)===it)||it<0){var ot=rt?nt:"highWaterMark";throw new ERR_INVALID_OPT_VALUE(ot,it)}return Math.floor(it)}return tt.objectMode?16:16*1024}var state={getHighWaterMark},browser$b=deprecate$1;function deprecate$1(tt,et){if(config$1("noDeprecation"))return tt;var nt=!1;function rt(){if(!nt){if(config$1("throwDeprecation"))throw new Error(et);config$1("traceDeprecation")?console.trace(et):console.warn(et),nt=!0}return tt.apply(this,arguments)}return rt}function config$1(tt){try{if(!commonjsGlobal.localStorage)return!1}catch{return!1}var et=commonjsGlobal.localStorage[tt];return et==null?!1:String(et).toLowerCase()==="true"}var _stream_writable,hasRequired_stream_writable;function require_stream_writable(){if(hasRequired_stream_writable)return _stream_writable;hasRequired_stream_writable=1,_stream_writable=Tt;function tt(Yt){var fn=this;this.next=null,this.entry=null,this.finish=function(){nn(fn,Yt)}}var et;Tt.WritableState=Et;var nt={deprecate:browser$b},rt=streamBrowser,it=buffer$2.Buffer,ot=(typeof commonjsGlobal<"u"?commonjsGlobal:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function at(Yt){return it.from(Yt)}function st(Yt){return it.isBuffer(Yt)||Yt instanceof ot}var lt=destroy_1,ct=state,ut=ct.getHighWaterMark,ht=errorsBrowser.codes,dt=ht.ERR_INVALID_ARG_TYPE,pt=ht.ERR_METHOD_NOT_IMPLEMENTED,mt=ht.ERR_MULTIPLE_CALLBACK,gt=ht.ERR_STREAM_CANNOT_PIPE,yt=ht.ERR_STREAM_DESTROYED,bt=ht.ERR_STREAM_NULL_VALUES,wt=ht.ERR_STREAM_WRITE_AFTER_END,vt=ht.ERR_UNKNOWN_ENCODING,kt=lt.errorOrDestroy;inherits_browserExports(Tt,rt);function St(){}function Et(Yt,fn,cn){et=et||require_stream_duplex(),Yt=Yt||{},typeof cn!="boolean"&&(cn=fn instanceof et),this.objectMode=!!Yt.objectMode,cn&&(this.objectMode=this.objectMode||!!Yt.writableObjectMode),this.highWaterMark=ut(this,Yt,"writableHighWaterMark",cn),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var _n=Yt.decodeStrings===!1;this.decodeStrings=!_n,this.defaultEncoding=Yt.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(En){Ot(fn,En)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=Yt.emitClose!==!1,this.autoDestroy=!!Yt.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new tt(this)}Et.prototype.getBuffer=function(){for(var fn=this.bufferedRequest,cn=[];fn;)cn.push(fn),fn=fn.next;return cn},function(){try{Object.defineProperty(Et.prototype,"buffer",{get:nt.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var At;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(At=Function.prototype[Symbol.hasInstance],Object.defineProperty(Tt,Symbol.hasInstance,{value:function(fn){return At.call(this,fn)?!0:this!==Tt?!1:fn&&fn._writableState instanceof Et}})):At=function(fn){return fn instanceof this};function Tt(Yt){et=et||require_stream_duplex();var fn=this instanceof et;if(!fn&&!At.call(Tt,this))return new Tt(Yt);this._writableState=new Et(Yt,this,fn),this.writable=!0,Yt&&(typeof Yt.write=="function"&&(this._write=Yt.write),typeof Yt.writev=="function"&&(this._writev=Yt.writev),typeof Yt.destroy=="function"&&(this._destroy=Yt.destroy),typeof Yt.final=="function"&&(this._final=Yt.final)),rt.call(this)}Tt.prototype.pipe=function(){kt(this,new gt)};function Mt(Yt,fn){var cn=new wt;kt(Yt,cn),process.nextTick(fn,cn)}function Lt(Yt,fn,cn,_n){var En;return cn===null?En=new bt:typeof cn!="string"&&!fn.objectMode&&(En=new dt("chunk",["string","Buffer"],cn)),En?(kt(Yt,En),process.nextTick(_n,En),!1):!0}Tt.prototype.write=function(Yt,fn,cn){var _n=this._writableState,En=!1,an=!_n.objectMode&&st(Yt);return an&&!it.isBuffer(Yt)&&(Yt=at(Yt)),typeof fn=="function"&&(cn=fn,fn=null),an?fn="buffer":fn||(fn=_n.defaultEncoding),typeof cn!="function"&&(cn=St),_n.ending?Mt(this,cn):(an||Lt(this,_n,Yt,cn))&&(_n.pendingcb++,En=Rt(this,_n,an,Yt,fn,cn)),En},Tt.prototype.cork=function(){this._writableState.corked++},Tt.prototype.uncork=function(){var Yt=this._writableState;Yt.corked&&(Yt.corked--,!Yt.writing&&!Yt.corked&&!Yt.bufferProcessing&&Yt.bufferedRequest&&Wt(this,Yt))},Tt.prototype.setDefaultEncoding=function(fn){if(typeof fn=="string"&&(fn=fn.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((fn+"").toLowerCase())>-1))throw new vt(fn);return this._writableState.defaultEncoding=fn,this},Object.defineProperty(Tt.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function jt(Yt,fn,cn){return!Yt.objectMode&&Yt.decodeStrings!==!1&&typeof fn=="string"&&(fn=it.from(fn,cn)),fn}Object.defineProperty(Tt.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Rt(Yt,fn,cn,_n,En,an){if(!cn){var en=jt(fn,_n,En);_n!==en&&(cn=!0,En="buffer",_n=en)}var Tn=fn.objectMode?1:_n.length;fn.length+=Tn;var Rn=fn.length>5===6?2:tt>>4===14?3:tt>>3===30?4:tt>>6===2?-1:-2}function utf8CheckIncomplete(tt,et,nt){var rt=et.length-1;if(rt=0?(it>0&&(tt.lastNeed=it-1),it):--rt=0?(it>0&&(tt.lastNeed=it-2),it):--rt=0?(it>0&&(it===2?it=0:tt.lastNeed=it-3),it):0))}function utf8CheckExtraBytes(tt,et,nt){if((et[0]&192)!==128)return tt.lastNeed=0,"�";if(tt.lastNeed>1&&et.length>1){if((et[1]&192)!==128)return tt.lastNeed=1,"�";if(tt.lastNeed>2&&et.length>2&&(et[2]&192)!==128)return tt.lastNeed=2,"�"}}function utf8FillLast(tt){var et=this.lastTotal-this.lastNeed,nt=utf8CheckExtraBytes(this,tt);if(nt!==void 0)return nt;if(this.lastNeed<=tt.length)return tt.copy(this.lastChar,et,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);tt.copy(this.lastChar,et,0,tt.length),this.lastNeed-=tt.length}function utf8Text(tt,et){var nt=utf8CheckIncomplete(this,tt,et);if(!this.lastNeed)return tt.toString("utf8",et);this.lastTotal=nt;var rt=tt.length-(nt-this.lastNeed);return tt.copy(this.lastChar,0,rt),tt.toString("utf8",et,rt)}function utf8End(tt){var et=tt&&tt.length?this.write(tt):"";return this.lastNeed?et+"�":et}function utf16Text(tt,et){if((tt.length-et)%2===0){var nt=tt.toString("utf16le",et);if(nt){var rt=nt.charCodeAt(nt.length-1);if(rt>=55296&&rt<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=tt[tt.length-2],this.lastChar[1]=tt[tt.length-1],nt.slice(0,-1)}return nt}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=tt[tt.length-1],tt.toString("utf16le",et,tt.length-1)}function utf16End(tt){var et=tt&&tt.length?this.write(tt):"";if(this.lastNeed){var nt=this.lastTotal-this.lastNeed;return et+this.lastChar.toString("utf16le",0,nt)}return et}function base64Text(tt,et){var nt=(tt.length-et)%3;return nt===0?tt.toString("base64",et):(this.lastNeed=3-nt,this.lastTotal=3,nt===1?this.lastChar[0]=tt[tt.length-1]:(this.lastChar[0]=tt[tt.length-2],this.lastChar[1]=tt[tt.length-1]),tt.toString("base64",et,tt.length-nt))}function base64End(tt){var et=tt&&tt.length?this.write(tt):"";return this.lastNeed?et+this.lastChar.toString("base64",0,3-this.lastNeed):et}function simpleWrite(tt){return tt.toString(this.encoding)}function simpleEnd(tt){return tt&&tt.length?this.write(tt):""}var ERR_STREAM_PREMATURE_CLOSE=errorsBrowser.codes.ERR_STREAM_PREMATURE_CLOSE;function once$1(tt){var et=!1;return function(){if(!et){et=!0;for(var nt=arguments.length,rt=new Array(nt),it=0;it0)if(typeof en!="string"&&!yn.objectMode&&Object.getPrototypeOf(en)!==rt.prototype&&(en=ot(en)),Rn)yn.endEmitted?St(an,new bt):jt(an,yn,en,!0);else if(yn.ended)St(an,new gt);else{if(yn.destroyed)return!1;yn.reading=!1,yn.decoder&&!Tn?(en=yn.decoder.write(en),yn.objectMode||en.length!==0?jt(an,yn,en,!1):Wt(an,yn)):jt(an,yn,en,!1)}else Rn||(yn.reading=!1,Wt(an,yn))}return!yn.ended&&(yn.length=$t?an=$t:(an--,an|=an>>>1,an|=an>>>2,an|=an>>>4,an|=an>>>8,an|=an>>>16,an++),an}function It(an,en){return an<=0||en.length===0&&en.ended?0:en.objectMode?1:an!==an?en.flowing&&en.length?en.buffer.head.data.length:en.length:(an>en.highWaterMark&&(en.highWaterMark=xt(an)),an<=en.length?an:en.ended?en.length:(en.needReadable=!0,0))}Mt.prototype.read=function(an){lt("read",an),an=parseInt(an,10);var en=this._readableState,Tn=an;if(an!==0&&(en.emittedReadable=!1),an===0&&en.needReadable&&((en.highWaterMark!==0?en.length>=en.highWaterMark:en.length>0)||en.ended))return lt("read: emitReadable",en.length,en.ended),en.length===0&&en.ended?cn(this):zt(this),null;if(an=It(an,en),an===0&&en.ended)return en.length===0&&cn(this),null;var Rn=en.needReadable;lt("need readable",Rn),(en.length===0||en.length-an0?An=fn(an,en):An=null,An===null?(en.needReadable=en.length<=en.highWaterMark,an=0):(en.length-=an,en.awaitDrain=0),en.length===0&&(en.ended||(en.needReadable=!0),Tn!==an&&en.ended&&cn(this)),An!==null&&this.emit("data",An),An};function Ot(an,en){if(lt("onEofChunk"),!en.ended){if(en.decoder){var Tn=en.decoder.end();Tn&&Tn.length&&(en.buffer.push(Tn),en.length+=en.objectMode?1:Tn.length)}en.ended=!0,en.sync?zt(an):(en.needReadable=!1,en.emittedReadable||(en.emittedReadable=!0,Ut(an)))}}function zt(an){var en=an._readableState;lt("emitReadable",en.needReadable,en.emittedReadable),en.needReadable=!1,en.emittedReadable||(lt("emitReadable",en.flowing),en.emittedReadable=!0,process.nextTick(Ut,an))}function Ut(an){var en=an._readableState;lt("emitReadable_",en.destroyed,en.length,en.ended),!en.destroyed&&(en.length||en.ended)&&(an.emit("readable"),en.emittedReadable=!1),en.needReadable=!en.flowing&&!en.ended&&en.length<=en.highWaterMark,Yt(an)}function Wt(an,en){en.readingMore||(en.readingMore=!0,process.nextTick(Ft,an,en))}function Ft(an,en){for(;!en.reading&&!en.ended&&(en.length1&&En(Rn.pipes,an)!==-1)&&!Cn&&(lt("false write response, pause",Rn.awaitDrain),Rn.awaitDrain++),Tn.pause())}function rn(hn){lt("onerror",hn),Nn(),an.removeListener("error",rn),et(an,"error")===0&&St(an,hn)}At(an,"error",rn);function Sn(){an.removeListener("finish",Mn),Nn()}an.once("close",Sn);function Mn(){lt("onfinish"),an.removeListener("close",Sn),Nn()}an.once("finish",Mn);function Nn(){lt("unpipe"),Tn.unpipe(an)}return an.emit("pipe",Tn),Rn.flowing||(lt("pipe resume"),Tn.resume()),an};function Nt(an){return function(){var Tn=an._readableState;lt("pipeOnDrain",Tn.awaitDrain),Tn.awaitDrain&&Tn.awaitDrain--,Tn.awaitDrain===0&&et(an,"data")&&(Tn.flowing=!0,Yt(an))}}Mt.prototype.unpipe=function(an){var en=this._readableState,Tn={hasUnpiped:!1};if(en.pipesCount===0)return this;if(en.pipesCount===1)return an&&an!==en.pipes?this:(an||(an=en.pipes),en.pipes=null,en.pipesCount=0,en.flowing=!1,an&&an.emit("unpipe",this,Tn),this);if(!an){var Rn=en.pipes,An=en.pipesCount;en.pipes=null,en.pipesCount=0,en.flowing=!1;for(var yn=0;yn0,Rn.flowing!==!1&&this.resume()):an==="readable"&&!Rn.endEmitted&&!Rn.readableListening&&(Rn.readableListening=Rn.needReadable=!0,Rn.flowing=!1,Rn.emittedReadable=!1,lt("on readable",Rn.length,Rn.reading),Rn.length?zt(this):Rn.reading||process.nextTick(Ht,this)),Tn},Mt.prototype.addListener=Mt.prototype.on,Mt.prototype.removeListener=function(an,en){var Tn=nt.prototype.removeListener.call(this,an,en);return an==="readable"&&process.nextTick(Ct,this),Tn},Mt.prototype.removeAllListeners=function(an){var en=nt.prototype.removeAllListeners.apply(this,arguments);return(an==="readable"||an===void 0)&&process.nextTick(Ct,this),en};function Ct(an){var en=an._readableState;en.readableListening=an.listenerCount("readable")>0,en.resumeScheduled&&!en.paused?en.flowing=!0:an.listenerCount("data")>0&&an.resume()}function Ht(an){lt("readable nexttick read 0"),an.read(0)}Mt.prototype.resume=function(){var an=this._readableState;return an.flowing||(lt("resume"),an.flowing=!an.readableListening,Jt(this,an)),an.paused=!1,this};function Jt(an,en){en.resumeScheduled||(en.resumeScheduled=!0,process.nextTick(nn,an,en))}function nn(an,en){lt("resume",en.reading),en.reading||an.read(0),en.resumeScheduled=!1,an.emit("resume"),Yt(an),en.flowing&&!en.reading&&an.read(0)}Mt.prototype.pause=function(){return lt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(lt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Yt(an){var en=an._readableState;for(lt("flow",en.flowing);en.flowing&&an.read()!==null;);}Mt.prototype.wrap=function(an){var en=this,Tn=this._readableState,Rn=!1;an.on("end",function(){if(lt("wrapped end"),Tn.decoder&&!Tn.ended){var kn=Tn.decoder.end();kn&&kn.length&&en.push(kn)}en.push(null)}),an.on("data",function(kn){if(lt("wrapped data"),Tn.decoder&&(kn=Tn.decoder.write(kn)),!(Tn.objectMode&&kn==null)&&!(!Tn.objectMode&&(!kn||!kn.length))){var dn=en.push(kn);dn||(Rn=!0,an.pause())}});for(var An in an)this[An]===void 0&&typeof an[An]=="function"&&(this[An]=function(dn){return function(){return an[dn].apply(an,arguments)}}(An));for(var yn=0;yn=en.length?(en.decoder?Tn=en.buffer.join(""):en.buffer.length===1?Tn=en.buffer.first():Tn=en.buffer.concat(en.length),en.buffer.clear()):Tn=en.buffer.consume(an,en.decoder),Tn}function cn(an){var en=an._readableState;lt("endReadable",en.endEmitted),en.endEmitted||(en.ended=!0,process.nextTick(_n,en,an))}function _n(an,en){if(lt("endReadableNT",an.endEmitted,an.length),!an.endEmitted&&an.length===0&&(an.endEmitted=!0,en.readable=!1,en.emit("end"),an.autoDestroy)){var Tn=en._writableState;(!Tn||Tn.autoDestroy&&Tn.finished)&&en.destroy()}}typeof Symbol=="function"&&(Mt.from=function(an,en){return kt===void 0&&(kt=requireFromBrowser()),kt(Mt,an,en)});function En(an,en){for(var Tn=0,Rn=an.length;Tn0;return destroyer(at,lt,ct,function(ut){it||(it=ut),ut&&ot.forEach(call),!lt&&(ot.forEach(call),rt(it))})});return et.reduce(pipe$1)}var pipeline_1=pipeline;(function(tt,et){et=tt.exports=require_stream_readable(),et.Stream=et,et.Readable=et,et.Writable=require_stream_writable(),et.Duplex=require_stream_duplex(),et.Transform=_stream_transform,et.PassThrough=_stream_passthrough,et.finished=endOfStream,et.pipeline=pipeline_1})(readableBrowser,readableBrowser.exports);var readableBrowserExports=readableBrowser.exports,Buffer$F=safeBufferExports.Buffer,Transform$5=readableBrowserExports.Transform,inherits$v=inherits_browserExports;function throwIfNotStringOrBuffer(tt,et){if(!Buffer$F.isBuffer(tt)&&typeof tt!="string")throw new TypeError(et+" must be a string or a buffer")}function HashBase$2(tt){Transform$5.call(this),this._block=Buffer$F.allocUnsafe(tt),this._blockSize=tt,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}inherits$v(HashBase$2,Transform$5);HashBase$2.prototype._transform=function(tt,et,nt){var rt=null;try{this.update(tt,et)}catch(it){rt=it}nt(rt)};HashBase$2.prototype._flush=function(tt){var et=null;try{this.push(this.digest())}catch(nt){et=nt}tt(et)};HashBase$2.prototype.update=function(tt,et){if(throwIfNotStringOrBuffer(tt,"Data"),this._finalized)throw new Error("Digest already called");Buffer$F.isBuffer(tt)||(tt=Buffer$F.from(tt,et));for(var nt=this._block,rt=0;this._blockOffset+tt.length-rt>=this._blockSize;){for(var it=this._blockOffset;it0;++ot)this._length[ot]+=at,at=this._length[ot]/4294967296|0,at>0&&(this._length[ot]-=4294967296*at);return this};HashBase$2.prototype._update=function(){throw new Error("_update is not implemented")};HashBase$2.prototype.digest=function(tt){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var et=this._digest();tt!==void 0&&(et=et.toString(tt)),this._block.fill(0),this._blockOffset=0;for(var nt=0;nt<4;++nt)this._length[nt]=0;return et};HashBase$2.prototype._digest=function(){throw new Error("_digest is not implemented")};var hashBase=HashBase$2,inherits$u=inherits_browserExports,HashBase$1=hashBase,Buffer$E=safeBufferExports.Buffer,ARRAY16$1=new Array(16);function MD5$3(){HashBase$1.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}inherits$u(MD5$3,HashBase$1);MD5$3.prototype._update=function(){for(var tt=ARRAY16$1,et=0;et<16;++et)tt[et]=this._block.readInt32LE(et*4);var nt=this._a,rt=this._b,it=this._c,ot=this._d;nt=fnF(nt,rt,it,ot,tt[0],3614090360,7),ot=fnF(ot,nt,rt,it,tt[1],3905402710,12),it=fnF(it,ot,nt,rt,tt[2],606105819,17),rt=fnF(rt,it,ot,nt,tt[3],3250441966,22),nt=fnF(nt,rt,it,ot,tt[4],4118548399,7),ot=fnF(ot,nt,rt,it,tt[5],1200080426,12),it=fnF(it,ot,nt,rt,tt[6],2821735955,17),rt=fnF(rt,it,ot,nt,tt[7],4249261313,22),nt=fnF(nt,rt,it,ot,tt[8],1770035416,7),ot=fnF(ot,nt,rt,it,tt[9],2336552879,12),it=fnF(it,ot,nt,rt,tt[10],4294925233,17),rt=fnF(rt,it,ot,nt,tt[11],2304563134,22),nt=fnF(nt,rt,it,ot,tt[12],1804603682,7),ot=fnF(ot,nt,rt,it,tt[13],4254626195,12),it=fnF(it,ot,nt,rt,tt[14],2792965006,17),rt=fnF(rt,it,ot,nt,tt[15],1236535329,22),nt=fnG(nt,rt,it,ot,tt[1],4129170786,5),ot=fnG(ot,nt,rt,it,tt[6],3225465664,9),it=fnG(it,ot,nt,rt,tt[11],643717713,14),rt=fnG(rt,it,ot,nt,tt[0],3921069994,20),nt=fnG(nt,rt,it,ot,tt[5],3593408605,5),ot=fnG(ot,nt,rt,it,tt[10],38016083,9),it=fnG(it,ot,nt,rt,tt[15],3634488961,14),rt=fnG(rt,it,ot,nt,tt[4],3889429448,20),nt=fnG(nt,rt,it,ot,tt[9],568446438,5),ot=fnG(ot,nt,rt,it,tt[14],3275163606,9),it=fnG(it,ot,nt,rt,tt[3],4107603335,14),rt=fnG(rt,it,ot,nt,tt[8],1163531501,20),nt=fnG(nt,rt,it,ot,tt[13],2850285829,5),ot=fnG(ot,nt,rt,it,tt[2],4243563512,9),it=fnG(it,ot,nt,rt,tt[7],1735328473,14),rt=fnG(rt,it,ot,nt,tt[12],2368359562,20),nt=fnH(nt,rt,it,ot,tt[5],4294588738,4),ot=fnH(ot,nt,rt,it,tt[8],2272392833,11),it=fnH(it,ot,nt,rt,tt[11],1839030562,16),rt=fnH(rt,it,ot,nt,tt[14],4259657740,23),nt=fnH(nt,rt,it,ot,tt[1],2763975236,4),ot=fnH(ot,nt,rt,it,tt[4],1272893353,11),it=fnH(it,ot,nt,rt,tt[7],4139469664,16),rt=fnH(rt,it,ot,nt,tt[10],3200236656,23),nt=fnH(nt,rt,it,ot,tt[13],681279174,4),ot=fnH(ot,nt,rt,it,tt[0],3936430074,11),it=fnH(it,ot,nt,rt,tt[3],3572445317,16),rt=fnH(rt,it,ot,nt,tt[6],76029189,23),nt=fnH(nt,rt,it,ot,tt[9],3654602809,4),ot=fnH(ot,nt,rt,it,tt[12],3873151461,11),it=fnH(it,ot,nt,rt,tt[15],530742520,16),rt=fnH(rt,it,ot,nt,tt[2],3299628645,23),nt=fnI(nt,rt,it,ot,tt[0],4096336452,6),ot=fnI(ot,nt,rt,it,tt[7],1126891415,10),it=fnI(it,ot,nt,rt,tt[14],2878612391,15),rt=fnI(rt,it,ot,nt,tt[5],4237533241,21),nt=fnI(nt,rt,it,ot,tt[12],1700485571,6),ot=fnI(ot,nt,rt,it,tt[3],2399980690,10),it=fnI(it,ot,nt,rt,tt[10],4293915773,15),rt=fnI(rt,it,ot,nt,tt[1],2240044497,21),nt=fnI(nt,rt,it,ot,tt[8],1873313359,6),ot=fnI(ot,nt,rt,it,tt[15],4264355552,10),it=fnI(it,ot,nt,rt,tt[6],2734768916,15),rt=fnI(rt,it,ot,nt,tt[13],1309151649,21),nt=fnI(nt,rt,it,ot,tt[4],4149444226,6),ot=fnI(ot,nt,rt,it,tt[11],3174756917,10),it=fnI(it,ot,nt,rt,tt[2],718787259,15),rt=fnI(rt,it,ot,nt,tt[9],3951481745,21),this._a=this._a+nt|0,this._b=this._b+rt|0,this._c=this._c+it|0,this._d=this._d+ot|0};MD5$3.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var tt=Buffer$E.allocUnsafe(16);return tt.writeInt32LE(this._a,0),tt.writeInt32LE(this._b,4),tt.writeInt32LE(this._c,8),tt.writeInt32LE(this._d,12),tt};function rotl$3(tt,et){return tt<>>32-et}function fnF(tt,et,nt,rt,it,ot,at){return rotl$3(tt+(et&nt|~et&rt)+it+ot|0,at)+et|0}function fnG(tt,et,nt,rt,it,ot,at){return rotl$3(tt+(et&rt|nt&~rt)+it+ot|0,at)+et|0}function fnH(tt,et,nt,rt,it,ot,at){return rotl$3(tt+(et^nt^rt)+it+ot|0,at)+et|0}function fnI(tt,et,nt,rt,it,ot,at){return rotl$3(tt+(nt^(et|~rt))+it+ot|0,at)+et|0}var md5_js=MD5$3,Buffer$D=buffer$2.Buffer,inherits$t=inherits_browserExports,HashBase=hashBase,ARRAY16=new Array(16),zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0];function RIPEMD160$5(){HashBase.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}inherits$t(RIPEMD160$5,HashBase);RIPEMD160$5.prototype._update=function(){for(var tt=ARRAY16,et=0;et<16;++et)tt[et]=this._block.readInt32LE(et*4);for(var nt=this._a|0,rt=this._b|0,it=this._c|0,ot=this._d|0,at=this._e|0,st=this._a|0,lt=this._b|0,ct=this._c|0,ut=this._d|0,ht=this._e|0,dt=0;dt<80;dt+=1){var pt,mt;dt<16?(pt=fn1(nt,rt,it,ot,at,tt[zl[dt]],hl[0],sl[dt]),mt=fn5(st,lt,ct,ut,ht,tt[zr[dt]],hr[0],sr[dt])):dt<32?(pt=fn2(nt,rt,it,ot,at,tt[zl[dt]],hl[1],sl[dt]),mt=fn4(st,lt,ct,ut,ht,tt[zr[dt]],hr[1],sr[dt])):dt<48?(pt=fn3(nt,rt,it,ot,at,tt[zl[dt]],hl[2],sl[dt]),mt=fn3(st,lt,ct,ut,ht,tt[zr[dt]],hr[2],sr[dt])):dt<64?(pt=fn4(nt,rt,it,ot,at,tt[zl[dt]],hl[3],sl[dt]),mt=fn2(st,lt,ct,ut,ht,tt[zr[dt]],hr[3],sr[dt])):(pt=fn5(nt,rt,it,ot,at,tt[zl[dt]],hl[4],sl[dt]),mt=fn1(st,lt,ct,ut,ht,tt[zr[dt]],hr[4],sr[dt])),nt=at,at=ot,ot=rotl$2(it,10),it=rt,rt=pt,st=ht,ht=ut,ut=rotl$2(ct,10),ct=lt,lt=mt}var gt=this._b+it+ut|0;this._b=this._c+ot+ht|0,this._c=this._d+at+st|0,this._d=this._e+nt+lt|0,this._e=this._a+rt+ct|0,this._a=gt};RIPEMD160$5.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var tt=Buffer$D.alloc?Buffer$D.alloc(20):new Buffer$D(20);return tt.writeInt32LE(this._a,0),tt.writeInt32LE(this._b,4),tt.writeInt32LE(this._c,8),tt.writeInt32LE(this._d,12),tt.writeInt32LE(this._e,16),tt};function rotl$2(tt,et){return tt<>>32-et}function fn1(tt,et,nt,rt,it,ot,at,st){return rotl$2(tt+(et^nt^rt)+ot+at|0,st)+it|0}function fn2(tt,et,nt,rt,it,ot,at,st){return rotl$2(tt+(et&nt|~et&rt)+ot+at|0,st)+it|0}function fn3(tt,et,nt,rt,it,ot,at,st){return rotl$2(tt+((et|~nt)^rt)+ot+at|0,st)+it|0}function fn4(tt,et,nt,rt,it,ot,at,st){return rotl$2(tt+(et&rt|nt&~rt)+ot+at|0,st)+it|0}function fn5(tt,et,nt,rt,it,ot,at,st){return rotl$2(tt+(et^(nt|~rt))+ot+at|0,st)+it|0}var ripemd160$1=RIPEMD160$5,sha_js={exports:{}},Buffer$C=safeBufferExports.Buffer;function Hash$9(tt,et){this._block=Buffer$C.alloc(tt),this._finalSize=et,this._blockSize=tt,this._len=0}Hash$9.prototype.update=function(tt,et){typeof tt=="string"&&(et=et||"utf8",tt=Buffer$C.from(tt,et));for(var nt=this._block,rt=this._blockSize,it=tt.length,ot=this._len,at=0;at=this._finalSize&&(this._update(this._block),this._block.fill(0));var nt=this._len*8;if(nt<=4294967295)this._block.writeUInt32BE(nt,this._blockSize-4);else{var rt=(nt&4294967295)>>>0,it=(nt-rt)/4294967296;this._block.writeUInt32BE(it,this._blockSize-8),this._block.writeUInt32BE(rt,this._blockSize-4)}this._update(this._block);var ot=this._hash();return tt?ot.toString(tt):ot};Hash$9.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var hash$4=Hash$9,inherits$s=inherits_browserExports,Hash$8=hash$4,Buffer$B=safeBufferExports.Buffer,K$4=[1518500249,1859775393,-1894007588,-899497514],W$5=new Array(80);function Sha(){this.init(),this._w=W$5,Hash$8.call(this,64,56)}inherits$s(Sha,Hash$8);Sha.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function rotl5$1(tt){return tt<<5|tt>>>27}function rotl30$1(tt){return tt<<30|tt>>>2}function ft$1(tt,et,nt,rt){return tt===0?et&nt|~et&rt:tt===2?et&nt|et&rt|nt&rt:et^nt^rt}Sha.prototype._update=function(tt){for(var et=this._w,nt=this._a|0,rt=this._b|0,it=this._c|0,ot=this._d|0,at=this._e|0,st=0;st<16;++st)et[st]=tt.readInt32BE(st*4);for(;st<80;++st)et[st]=et[st-3]^et[st-8]^et[st-14]^et[st-16];for(var lt=0;lt<80;++lt){var ct=~~(lt/20),ut=rotl5$1(nt)+ft$1(ct,rt,it,ot)+at+et[lt]+K$4[ct]|0;at=ot,ot=it,it=rotl30$1(rt),rt=nt,nt=ut}this._a=nt+this._a|0,this._b=rt+this._b|0,this._c=it+this._c|0,this._d=ot+this._d|0,this._e=at+this._e|0};Sha.prototype._hash=function(){var tt=Buffer$B.allocUnsafe(20);return tt.writeInt32BE(this._a|0,0),tt.writeInt32BE(this._b|0,4),tt.writeInt32BE(this._c|0,8),tt.writeInt32BE(this._d|0,12),tt.writeInt32BE(this._e|0,16),tt};var sha$4=Sha,inherits$r=inherits_browserExports,Hash$7=hash$4,Buffer$A=safeBufferExports.Buffer,K$3=[1518500249,1859775393,-1894007588,-899497514],W$4=new Array(80);function Sha1(){this.init(),this._w=W$4,Hash$7.call(this,64,56)}inherits$r(Sha1,Hash$7);Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function rotl1(tt){return tt<<1|tt>>>31}function rotl5(tt){return tt<<5|tt>>>27}function rotl30(tt){return tt<<30|tt>>>2}function ft(tt,et,nt,rt){return tt===0?et&nt|~et&rt:tt===2?et&nt|et&rt|nt&rt:et^nt^rt}Sha1.prototype._update=function(tt){for(var et=this._w,nt=this._a|0,rt=this._b|0,it=this._c|0,ot=this._d|0,at=this._e|0,st=0;st<16;++st)et[st]=tt.readInt32BE(st*4);for(;st<80;++st)et[st]=rotl1(et[st-3]^et[st-8]^et[st-14]^et[st-16]);for(var lt=0;lt<80;++lt){var ct=~~(lt/20),ut=rotl5(nt)+ft(ct,rt,it,ot)+at+et[lt]+K$3[ct]|0;at=ot,ot=it,it=rotl30(rt),rt=nt,nt=ut}this._a=nt+this._a|0,this._b=rt+this._b|0,this._c=it+this._c|0,this._d=ot+this._d|0,this._e=at+this._e|0};Sha1.prototype._hash=function(){var tt=Buffer$A.allocUnsafe(20);return tt.writeInt32BE(this._a|0,0),tt.writeInt32BE(this._b|0,4),tt.writeInt32BE(this._c|0,8),tt.writeInt32BE(this._d|0,12),tt.writeInt32BE(this._e|0,16),tt};var sha1$1=Sha1,inherits$q=inherits_browserExports,Hash$6=hash$4,Buffer$z=safeBufferExports.Buffer,K$2=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],W$3=new Array(64);function Sha256$1(){this.init(),this._w=W$3,Hash$6.call(this,64,56)}inherits$q(Sha256$1,Hash$6);Sha256$1.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function ch(tt,et,nt){return nt^tt&(et^nt)}function maj$1(tt,et,nt){return tt&et|nt&(tt|et)}function sigma0$1(tt){return(tt>>>2|tt<<30)^(tt>>>13|tt<<19)^(tt>>>22|tt<<10)}function sigma1$1(tt){return(tt>>>6|tt<<26)^(tt>>>11|tt<<21)^(tt>>>25|tt<<7)}function gamma0(tt){return(tt>>>7|tt<<25)^(tt>>>18|tt<<14)^tt>>>3}function gamma1(tt){return(tt>>>17|tt<<15)^(tt>>>19|tt<<13)^tt>>>10}Sha256$1.prototype._update=function(tt){for(var et=this._w,nt=this._a|0,rt=this._b|0,it=this._c|0,ot=this._d|0,at=this._e|0,st=this._f|0,lt=this._g|0,ct=this._h|0,ut=0;ut<16;++ut)et[ut]=tt.readInt32BE(ut*4);for(;ut<64;++ut)et[ut]=gamma1(et[ut-2])+et[ut-7]+gamma0(et[ut-15])+et[ut-16]|0;for(var ht=0;ht<64;++ht){var dt=ct+sigma1$1(at)+ch(at,st,lt)+K$2[ht]+et[ht]|0,pt=sigma0$1(nt)+maj$1(nt,rt,it)|0;ct=lt,lt=st,st=at,at=ot+dt|0,ot=it,it=rt,rt=nt,nt=dt+pt|0}this._a=nt+this._a|0,this._b=rt+this._b|0,this._c=it+this._c|0,this._d=ot+this._d|0,this._e=at+this._e|0,this._f=st+this._f|0,this._g=lt+this._g|0,this._h=ct+this._h|0};Sha256$1.prototype._hash=function(){var tt=Buffer$z.allocUnsafe(32);return tt.writeInt32BE(this._a,0),tt.writeInt32BE(this._b,4),tt.writeInt32BE(this._c,8),tt.writeInt32BE(this._d,12),tt.writeInt32BE(this._e,16),tt.writeInt32BE(this._f,20),tt.writeInt32BE(this._g,24),tt.writeInt32BE(this._h,28),tt};var sha256$4=Sha256$1,inherits$p=inherits_browserExports,Sha256=sha256$4,Hash$5=hash$4,Buffer$y=safeBufferExports.Buffer,W$2=new Array(64);function Sha224(){this.init(),this._w=W$2,Hash$5.call(this,64,56)}inherits$p(Sha224,Sha256);Sha224.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};Sha224.prototype._hash=function(){var tt=Buffer$y.allocUnsafe(28);return tt.writeInt32BE(this._a,0),tt.writeInt32BE(this._b,4),tt.writeInt32BE(this._c,8),tt.writeInt32BE(this._d,12),tt.writeInt32BE(this._e,16),tt.writeInt32BE(this._f,20),tt.writeInt32BE(this._g,24),tt};var sha224$1=Sha224,inherits$o=inherits_browserExports,Hash$4=hash$4,Buffer$x=safeBufferExports.Buffer,K$1=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],W$1=new Array(160);function Sha512(){this.init(),this._w=W$1,Hash$4.call(this,128,112)}inherits$o(Sha512,Hash$4);Sha512.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function Ch(tt,et,nt){return nt^tt&(et^nt)}function maj(tt,et,nt){return tt&et|nt&(tt|et)}function sigma0(tt,et){return(tt>>>28|et<<4)^(et>>>2|tt<<30)^(et>>>7|tt<<25)}function sigma1(tt,et){return(tt>>>14|et<<18)^(tt>>>18|et<<14)^(et>>>9|tt<<23)}function Gamma0(tt,et){return(tt>>>1|et<<31)^(tt>>>8|et<<24)^tt>>>7}function Gamma0l(tt,et){return(tt>>>1|et<<31)^(tt>>>8|et<<24)^(tt>>>7|et<<25)}function Gamma1(tt,et){return(tt>>>19|et<<13)^(et>>>29|tt<<3)^tt>>>6}function Gamma1l(tt,et){return(tt>>>19|et<<13)^(et>>>29|tt<<3)^(tt>>>6|et<<26)}function getCarry(tt,et){return tt>>>0>>0?1:0}Sha512.prototype._update=function(tt){for(var et=this._w,nt=this._ah|0,rt=this._bh|0,it=this._ch|0,ot=this._dh|0,at=this._eh|0,st=this._fh|0,lt=this._gh|0,ct=this._hh|0,ut=this._al|0,ht=this._bl|0,dt=this._cl|0,pt=this._dl|0,mt=this._el|0,gt=this._fl|0,yt=this._gl|0,bt=this._hl|0,wt=0;wt<32;wt+=2)et[wt]=tt.readInt32BE(wt*4),et[wt+1]=tt.readInt32BE(wt*4+4);for(;wt<160;wt+=2){var vt=et[wt-30],kt=et[wt-15*2+1],St=Gamma0(vt,kt),Et=Gamma0l(kt,vt);vt=et[wt-2*2],kt=et[wt-2*2+1];var At=Gamma1(vt,kt),Tt=Gamma1l(kt,vt),Mt=et[wt-7*2],Lt=et[wt-7*2+1],jt=et[wt-16*2],Rt=et[wt-16*2+1],$t=Et+Lt|0,xt=St+Mt+getCarry($t,Et)|0;$t=$t+Tt|0,xt=xt+At+getCarry($t,Tt)|0,$t=$t+Rt|0,xt=xt+jt+getCarry($t,Rt)|0,et[wt]=xt,et[wt+1]=$t}for(var It=0;It<160;It+=2){xt=et[It],$t=et[It+1];var Ot=maj(nt,rt,it),zt=maj(ut,ht,dt),Ut=sigma0(nt,ut),Wt=sigma0(ut,nt),Ft=sigma1(at,mt),Nt=sigma1(mt,at),Ct=K$1[It],Ht=K$1[It+1],Jt=Ch(at,st,lt),nn=Ch(mt,gt,yt),Yt=bt+Nt|0,fn=ct+Ft+getCarry(Yt,bt)|0;Yt=Yt+nn|0,fn=fn+Jt+getCarry(Yt,nn)|0,Yt=Yt+Ht|0,fn=fn+Ct+getCarry(Yt,Ht)|0,Yt=Yt+$t|0,fn=fn+xt+getCarry(Yt,$t)|0;var cn=Wt+zt|0,_n=Ut+Ot+getCarry(cn,Wt)|0;ct=lt,bt=yt,lt=st,yt=gt,st=at,gt=mt,mt=pt+Yt|0,at=ot+fn+getCarry(mt,pt)|0,ot=it,pt=dt,it=rt,dt=ht,rt=nt,ht=ut,ut=Yt+cn|0,nt=fn+_n+getCarry(ut,Yt)|0}this._al=this._al+ut|0,this._bl=this._bl+ht|0,this._cl=this._cl+dt|0,this._dl=this._dl+pt|0,this._el=this._el+mt|0,this._fl=this._fl+gt|0,this._gl=this._gl+yt|0,this._hl=this._hl+bt|0,this._ah=this._ah+nt+getCarry(this._al,ut)|0,this._bh=this._bh+rt+getCarry(this._bl,ht)|0,this._ch=this._ch+it+getCarry(this._cl,dt)|0,this._dh=this._dh+ot+getCarry(this._dl,pt)|0,this._eh=this._eh+at+getCarry(this._el,mt)|0,this._fh=this._fh+st+getCarry(this._fl,gt)|0,this._gh=this._gh+lt+getCarry(this._gl,yt)|0,this._hh=this._hh+ct+getCarry(this._hl,bt)|0};Sha512.prototype._hash=function(){var tt=Buffer$x.allocUnsafe(64);function et(nt,rt,it){tt.writeInt32BE(nt,it),tt.writeInt32BE(rt,it+4)}return et(this._ah,this._al,0),et(this._bh,this._bl,8),et(this._ch,this._cl,16),et(this._dh,this._dl,24),et(this._eh,this._el,32),et(this._fh,this._fl,40),et(this._gh,this._gl,48),et(this._hh,this._hl,56),tt};var sha512$1=Sha512,inherits$n=inherits_browserExports,SHA512$2=sha512$1,Hash$3=hash$4,Buffer$w=safeBufferExports.Buffer,W=new Array(160);function Sha384(){this.init(),this._w=W,Hash$3.call(this,128,112)}inherits$n(Sha384,SHA512$2);Sha384.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};Sha384.prototype._hash=function(){var tt=Buffer$w.allocUnsafe(48);function et(nt,rt,it){tt.writeInt32BE(nt,it),tt.writeInt32BE(rt,it+4)}return et(this._ah,this._al,0),et(this._bh,this._bl,8),et(this._ch,this._cl,16),et(this._dh,this._dl,24),et(this._eh,this._el,32),et(this._fh,this._fl,40),tt};var sha384$1=Sha384,exports=sha_js.exports=function(et){et=et.toLowerCase();var nt=exports[et];if(!nt)throw new Error(et+" is not supported (we accept pull requests)");return new nt};exports.sha=sha$4;exports.sha1=sha1$1;exports.sha224=sha224$1;exports.sha256=sha256$4;exports.sha384=sha384$1;exports.sha512=sha512$1;var sha_jsExports=sha_js.exports,streamBrowserify=Stream,EE=eventsExports.EventEmitter,inherits$m=inherits_browserExports;inherits$m(Stream,EE);Stream.Readable=require_stream_readable();Stream.Writable=require_stream_writable();Stream.Duplex=require_stream_duplex();Stream.Transform=_stream_transform;Stream.PassThrough=_stream_passthrough;Stream.finished=endOfStream;Stream.pipeline=pipeline_1;Stream.Stream=Stream;function Stream(){EE.call(this)}Stream.prototype.pipe=function(tt,et){var nt=this;function rt(ut){tt.writable&&tt.write(ut)===!1&&nt.pause&&nt.pause()}nt.on("data",rt);function it(){nt.readable&&nt.resume&&nt.resume()}tt.on("drain",it),!tt._isStdio&&(!et||et.end!==!1)&&(nt.on("end",at),nt.on("close",st));var ot=!1;function at(){ot||(ot=!0,tt.end())}function st(){ot||(ot=!0,typeof tt.destroy=="function"&&tt.destroy())}function lt(ut){if(ct(),EE.listenerCount(this,"error")===0)throw ut}nt.on("error",lt),tt.on("error",lt);function ct(){nt.removeListener("data",rt),tt.removeListener("drain",it),nt.removeListener("end",at),nt.removeListener("close",st),nt.removeListener("error",lt),tt.removeListener("error",lt),nt.removeListener("end",ct),nt.removeListener("close",ct),tt.removeListener("close",ct)}return nt.on("end",ct),nt.on("close",ct),tt.on("close",ct),tt.emit("pipe",nt),tt};var Buffer$v=safeBufferExports.Buffer,Transform$4=streamBrowserify.Transform,StringDecoder=string_decoder.StringDecoder,inherits$l=inherits_browserExports;function CipherBase$1(tt){Transform$4.call(this),this.hashMode=typeof tt=="string",this.hashMode?this[tt]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}inherits$l(CipherBase$1,Transform$4);CipherBase$1.prototype.update=function(tt,et,nt){typeof tt=="string"&&(tt=Buffer$v.from(tt,et));var rt=this._update(tt);return this.hashMode?this:(nt&&(rt=this._toString(rt,nt)),rt)};CipherBase$1.prototype.setAutoPadding=function(){};CipherBase$1.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")};CipherBase$1.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")};CipherBase$1.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")};CipherBase$1.prototype._transform=function(tt,et,nt){var rt;try{this.hashMode?this._update(tt):this.push(this._update(tt))}catch(it){rt=it}finally{nt(rt)}};CipherBase$1.prototype._flush=function(tt){var et;try{this.push(this.__final())}catch(nt){et=nt}tt(et)};CipherBase$1.prototype._finalOrDigest=function(tt){var et=this.__final()||Buffer$v.alloc(0);return tt&&(et=this._toString(et,tt,!0)),et};CipherBase$1.prototype._toString=function(tt,et,nt){if(this._decoder||(this._decoder=new StringDecoder(et),this._encoding=et),this._encoding!==et)throw new Error("can't switch encodings");var rt=this._decoder.write(tt);return nt&&(rt+=this._decoder.end()),rt};var cipherBase=CipherBase$1,inherits$k=inherits_browserExports,MD5$2=md5_js,RIPEMD160$4=ripemd160$1,sha$3=sha_jsExports,Base$5=cipherBase;function Hash$2(tt){Base$5.call(this,"digest"),this._hash=tt}inherits$k(Hash$2,Base$5);Hash$2.prototype._update=function(tt){this._hash.update(tt)};Hash$2.prototype._final=function(){return this._hash.digest()};var browser$a=function(et){return et=et.toLowerCase(),et==="md5"?new MD5$2:et==="rmd160"||et==="ripemd160"?new RIPEMD160$4:new Hash$2(sha$3(et))},inherits$j=inherits_browserExports,Buffer$u=safeBufferExports.Buffer,Base$4=cipherBase,ZEROS$2=Buffer$u.alloc(128),blocksize=64;function Hmac$3(tt,et){Base$4.call(this,"digest"),typeof et=="string"&&(et=Buffer$u.from(et)),this._alg=tt,this._key=et,et.length>blocksize?et=tt(et):et.lengthnt){var rt=tt==="rmd160"?new RIPEMD160$3:sha$2(tt);et=rt.update(et).digest()}else et.lengthMAX_ALLOC||et!==et)throw new TypeError("Bad key length")},defaultEncoding$2;if(commonjsGlobal.process&&commonjsGlobal.process.browser)defaultEncoding$2="utf-8";else if(commonjsGlobal.process&&commonjsGlobal.process.version){var pVersionMajor=parseInt(process.version.split(".")[0].slice(1),10);defaultEncoding$2=pVersionMajor>=6?"utf-8":"binary"}else defaultEncoding$2="utf-8";var defaultEncoding_1=defaultEncoding$2,Buffer$s=safeBufferExports.Buffer,toBuffer$3=function(tt,et,nt){if(Buffer$s.isBuffer(tt))return tt;if(typeof tt=="string")return Buffer$s.from(tt,et);if(ArrayBuffer.isView(tt))return Buffer$s.from(tt.buffer);throw new TypeError(nt+" must be a string, a Buffer, a typed array or a DataView")},md5=md5$2,RIPEMD160$2=ripemd160$1,sha$1=sha_jsExports,Buffer$r=safeBufferExports.Buffer,checkParameters$1=precondition,defaultEncoding$1=defaultEncoding_1,toBuffer$2=toBuffer$3,ZEROS=Buffer$r.alloc(128),sizes={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function Hmac$1(tt,et,nt){var rt=getDigest(tt),it=tt==="sha512"||tt==="sha384"?128:64;et.length>it?et=rt(et):et.length>>0};utils$q.writeUInt32BE=function(et,nt,rt){et[0+rt]=nt>>>24,et[1+rt]=nt>>>16&255,et[2+rt]=nt>>>8&255,et[3+rt]=nt&255};utils$q.ip=function(et,nt,rt,it){for(var ot=0,at=0,st=6;st>=0;st-=2){for(var lt=0;lt<=24;lt+=8)ot<<=1,ot|=nt>>>lt+st&1;for(var lt=0;lt<=24;lt+=8)ot<<=1,ot|=et>>>lt+st&1}for(var st=6;st>=0;st-=2){for(var lt=1;lt<=25;lt+=8)at<<=1,at|=nt>>>lt+st&1;for(var lt=1;lt<=25;lt+=8)at<<=1,at|=et>>>lt+st&1}rt[it+0]=ot>>>0,rt[it+1]=at>>>0};utils$q.rip=function(et,nt,rt,it){for(var ot=0,at=0,st=0;st<4;st++)for(var lt=24;lt>=0;lt-=8)ot<<=1,ot|=nt>>>lt+st&1,ot<<=1,ot|=et>>>lt+st&1;for(var st=4;st<8;st++)for(var lt=24;lt>=0;lt-=8)at<<=1,at|=nt>>>lt+st&1,at<<=1,at|=et>>>lt+st&1;rt[it+0]=ot>>>0,rt[it+1]=at>>>0};utils$q.pc1=function(et,nt,rt,it){for(var ot=0,at=0,st=7;st>=5;st--){for(var lt=0;lt<=24;lt+=8)ot<<=1,ot|=nt>>lt+st&1;for(var lt=0;lt<=24;lt+=8)ot<<=1,ot|=et>>lt+st&1}for(var lt=0;lt<=24;lt+=8)ot<<=1,ot|=nt>>lt+st&1;for(var st=1;st<=3;st++){for(var lt=0;lt<=24;lt+=8)at<<=1,at|=nt>>lt+st&1;for(var lt=0;lt<=24;lt+=8)at<<=1,at|=et>>lt+st&1}for(var lt=0;lt<=24;lt+=8)at<<=1,at|=et>>lt+st&1;rt[it+0]=ot>>>0,rt[it+1]=at>>>0};utils$q.r28shl=function(et,nt){return et<>>28-nt};var pc2table=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];utils$q.pc2=function(et,nt,rt,it){for(var ot=0,at=0,st=pc2table.length>>>1,lt=0;lt>>pc2table[lt]&1;for(var lt=st;lt>>pc2table[lt]&1;rt[it+0]=ot>>>0,rt[it+1]=at>>>0};utils$q.expand=function(et,nt,rt){var it=0,ot=0;it=(et&1)<<5|et>>>27;for(var at=23;at>=15;at-=4)it<<=6,it|=et>>>at&63;for(var at=11;at>=3;at-=4)ot|=et>>>at&63,ot<<=6;ot|=(et&31)<<1|et>>>31,nt[rt+0]=it>>>0,nt[rt+1]=ot>>>0};var sTable=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];utils$q.substitute=function(et,nt){for(var rt=0,it=0;it<4;it++){var ot=et>>>18-it*6&63,at=sTable[it*64+ot];rt<<=4,rt|=at}for(var it=0;it<4;it++){var ot=nt>>>18-it*6&63,at=sTable[4*64+it*64+ot];rt<<=4,rt|=at}return rt>>>0};var permuteTable=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];utils$q.permute=function(et){for(var nt=0,rt=0;rt>>permuteTable[rt]&1;return nt>>>0};utils$q.padSplit=function(et,nt,rt){for(var it=et.toString(2);it.length0;it--)nt+=this._buffer(et,nt),rt+=this._flushBuffer(ot,rt);return nt+=this._buffer(et,nt),ot};Cipher$3.prototype.final=function(et){var nt;et&&(nt=this.update(et));var rt;return this.type==="encrypt"?rt=this._finalEncrypt():rt=this._finalDecrypt(),nt?nt.concat(rt):rt};Cipher$3.prototype._pad=function(et,nt){if(nt===0)return!1;for(;nt>>1];rt=utils$p.r28shl(rt,at),it=utils$p.r28shl(it,at),utils$p.pc2(rt,it,et.keys,ot)}};DES$3.prototype._update=function(et,nt,rt,it){var ot=this._desState,at=utils$p.readUInt32BE(et,nt),st=utils$p.readUInt32BE(et,nt+4);utils$p.ip(at,st,ot.tmp,0),at=ot.tmp[0],st=ot.tmp[1],this.type==="encrypt"?this._encrypt(ot,at,st,ot.tmp,0):this._decrypt(ot,at,st,ot.tmp,0),at=ot.tmp[0],st=ot.tmp[1],utils$p.writeUInt32BE(rt,at,it),utils$p.writeUInt32BE(rt,st,it+4)};DES$3.prototype._pad=function(et,nt){if(this.padding===!1)return!1;for(var rt=et.length-nt,it=nt;it>>0,at=pt}utils$p.rip(st,at,it,ot)};DES$3.prototype._decrypt=function(et,nt,rt,it,ot){for(var at=rt,st=nt,lt=et.keys.length-2;lt>=0;lt-=2){var ct=et.keys[lt],ut=et.keys[lt+1];utils$p.expand(at,et.tmp,0),ct^=et.tmp[0],ut^=et.tmp[1];var ht=utils$p.substitute(ct,ut),dt=utils$p.permute(ht),pt=at;at=(st^dt)>>>0,st=pt}utils$p.rip(at,st,it,ot)};var cbc$1={},assert$m=minimalisticAssert,inherits$g=inherits_browserExports,proto$3={};function CBCState(tt){assert$m.equal(tt.length,8,"Invalid IV length"),this.iv=new Array(8);for(var et=0;et>it%8,tt._prev=shiftIn(tt._prev,nt?st:lt);return at}function shiftIn(tt,et){var nt=tt.length,rt=-1,it=Buffer$m.allocUnsafe(tt.length);for(tt=Buffer$m.concat([tt,Buffer$m.from([et])]);++rt>7;return it}cfb1.encrypt=function(tt,et,nt){for(var rt=et.length,it=Buffer$m.allocUnsafe(rt),ot=-1;++ot>>24]^at[ut>>>16&255]^st[ht>>>8&255]^lt[dt&255]^et[bt++],mt=ot[ut>>>24]^at[ht>>>16&255]^st[dt>>>8&255]^lt[ct&255]^et[bt++],gt=ot[ht>>>24]^at[dt>>>16&255]^st[ct>>>8&255]^lt[ut&255]^et[bt++],yt=ot[dt>>>24]^at[ct>>>16&255]^st[ut>>>8&255]^lt[ht&255]^et[bt++],ct=pt,ut=mt,ht=gt,dt=yt;return pt=(rt[ct>>>24]<<24|rt[ut>>>16&255]<<16|rt[ht>>>8&255]<<8|rt[dt&255])^et[bt++],mt=(rt[ut>>>24]<<24|rt[ht>>>16&255]<<16|rt[dt>>>8&255]<<8|rt[ct&255])^et[bt++],gt=(rt[ht>>>24]<<24|rt[dt>>>16&255]<<16|rt[ct>>>8&255]<<8|rt[ut&255])^et[bt++],yt=(rt[dt>>>24]<<24|rt[ct>>>16&255]<<16|rt[ut>>>8&255]<<8|rt[ht&255])^et[bt++],pt=pt>>>0,mt=mt>>>0,gt=gt>>>0,yt=yt>>>0,[pt,mt,gt,yt]}var RCON=[0,1,2,4,8,16,32,64,128,27,54],G=function(){for(var tt=new Array(256),et=0;et<256;et++)et<128?tt[et]=et<<1:tt[et]=et<<1^283;for(var nt=[],rt=[],it=[[],[],[],[]],ot=[[],[],[],[]],at=0,st=0,lt=0;lt<256;++lt){var ct=st^st<<1^st<<2^st<<3^st<<4;ct=ct>>>8^ct&255^99,nt[at]=ct,rt[ct]=at;var ut=tt[at],ht=tt[ut],dt=tt[ht],pt=tt[ct]*257^ct*16843008;it[0][at]=pt<<24|pt>>>8,it[1][at]=pt<<16|pt>>>16,it[2][at]=pt<<8|pt>>>24,it[3][at]=pt,pt=dt*16843009^ht*65537^ut*257^at*16843008,ot[0][ct]=pt<<24|pt>>>8,ot[1][ct]=pt<<16|pt>>>16,ot[2][ct]=pt<<8|pt>>>24,ot[3][ct]=pt,at===0?at=st=1:(at=ut^tt[tt[tt[dt^ut]]],st^=tt[tt[st]])}return{SBOX:nt,INV_SBOX:rt,SUB_MIX:it,INV_SUB_MIX:ot}}();function AES(tt){this._key=asUInt32Array(tt),this._reset()}AES.blockSize=4*4;AES.keySize=256/8;AES.prototype.blockSize=AES.blockSize;AES.prototype.keySize=AES.keySize;AES.prototype._reset=function(){for(var tt=this._key,et=tt.length,nt=et+6,rt=(nt+1)*4,it=[],ot=0;ot>>24,at=G.SBOX[at>>>24]<<24|G.SBOX[at>>>16&255]<<16|G.SBOX[at>>>8&255]<<8|G.SBOX[at&255],at^=RCON[ot/et|0]<<24):et>6&&ot%et===4&&(at=G.SBOX[at>>>24]<<24|G.SBOX[at>>>16&255]<<16|G.SBOX[at>>>8&255]<<8|G.SBOX[at&255]),it[ot]=it[ot-et]^at}for(var st=[],lt=0;lt>>24]]^G.INV_SUB_MIX[1][G.SBOX[ut>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[ut>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[ut&255]]}this._nRounds=nt,this._keySchedule=it,this._invKeySchedule=st};AES.prototype.encryptBlockRaw=function(tt){return tt=asUInt32Array(tt),cryptBlock(tt,this._keySchedule,G.SUB_MIX,G.SBOX,this._nRounds)};AES.prototype.encryptBlock=function(tt){var et=this.encryptBlockRaw(tt),nt=Buffer$k.allocUnsafe(16);return nt.writeUInt32BE(et[0],0),nt.writeUInt32BE(et[1],4),nt.writeUInt32BE(et[2],8),nt.writeUInt32BE(et[3],12),nt};AES.prototype.decryptBlock=function(tt){tt=asUInt32Array(tt);var et=tt[1];tt[1]=tt[3],tt[3]=et;var nt=cryptBlock(tt,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX,this._nRounds),rt=Buffer$k.allocUnsafe(16);return rt.writeUInt32BE(nt[0],0),rt.writeUInt32BE(nt[3],4),rt.writeUInt32BE(nt[2],8),rt.writeUInt32BE(nt[1],12),rt};AES.prototype.scrub=function(){scrubVec(this._keySchedule),scrubVec(this._invKeySchedule),scrubVec(this._key)};aes$5.AES=AES;var Buffer$j=safeBufferExports.Buffer,ZEROES=Buffer$j.alloc(16,0);function toArray$5(tt){return[tt.readUInt32BE(0),tt.readUInt32BE(4),tt.readUInt32BE(8),tt.readUInt32BE(12)]}function fromArray(tt){var et=Buffer$j.allocUnsafe(16);return et.writeUInt32BE(tt[0]>>>0,0),et.writeUInt32BE(tt[1]>>>0,4),et.writeUInt32BE(tt[2]>>>0,8),et.writeUInt32BE(tt[3]>>>0,12),et}function GHASH$1(tt){this.h=tt,this.state=Buffer$j.alloc(16,0),this.cache=Buffer$j.allocUnsafe(0)}GHASH$1.prototype.ghash=function(tt){for(var et=-1;++et0;nt--)tt[nt]=tt[nt]>>>1|(tt[nt-1]&1)<<31;tt[0]=tt[0]>>>1,it&&(tt[0]=tt[0]^225<<24)}this.state=fromArray(et)};GHASH$1.prototype.update=function(tt){this.cache=Buffer$j.concat([this.cache,tt]);for(var et;this.cache.length>=16;)et=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(et)};GHASH$1.prototype.final=function(tt,et){return this.cache.length&&this.ghash(Buffer$j.concat([this.cache,ZEROES],16)),this.ghash(fromArray([0,tt,0,et])),this.state};var ghash=GHASH$1,aes$4=aes$5,Buffer$i=safeBufferExports.Buffer,Transform$3=cipherBase,inherits$d=inherits_browserExports,GHASH=ghash,xor$3=bufferXor,incr32=incr32_1;function xorTest(tt,et){var nt=0;tt.length!==et.length&&nt++;for(var rt=Math.min(tt.length,et.length),it=0;it0||rt>0;){var lt=new MD5;lt.update(st),lt.update(tt),et&<.update(et),st=lt.digest();var ct=0;if(it>0){var ut=ot.length-it;ct=Math.min(it,st.length),st.copy(ot,ut,0,ct),it-=ct}if(ct0){var ht=at.length-rt,dt=Math.min(rt,st.length-ct);st.copy(at,ht,ct,ct+dt),rt-=dt}}return st.fill(0),{key:ot,iv:at}}var evp_bytestokey=EVP_BytesToKey,MODES$1=modes_1,AuthCipher$1=authCipher,Buffer$f=safeBufferExports.Buffer,StreamCipher$1=streamCipher,Transform$1=cipherBase,aes$2=aes$5,ebtk$2=evp_bytestokey,inherits$b=inherits_browserExports;function Cipher(tt,et,nt){Transform$1.call(this),this._cache=new Splitter$1,this._cipher=new aes$2.AES(et),this._prev=Buffer$f.from(nt),this._mode=tt,this._autopadding=!0}inherits$b(Cipher,Transform$1);Cipher.prototype._update=function(tt){this._cache.add(tt);for(var et,nt,rt=[];et=this._cache.get();)nt=this._mode.encrypt(this,et),rt.push(nt);return Buffer$f.concat(rt)};var PADDING=Buffer$f.alloc(16,16);Cipher.prototype._final=function(){var tt=this._cache.flush();if(this._autopadding)return tt=this._mode.encrypt(this,tt),this._cipher.scrub(),tt;if(!tt.equals(PADDING))throw this._cipher.scrub(),new Error("data not multiple of block length")};Cipher.prototype.setAutoPadding=function(tt){return this._autopadding=!!tt,this};function Splitter$1(){this.cache=Buffer$f.allocUnsafe(0)}Splitter$1.prototype.add=function(tt){this.cache=Buffer$f.concat([this.cache,tt])};Splitter$1.prototype.get=function(){if(this.cache.length>15){var tt=this.cache.slice(0,16);return this.cache=this.cache.slice(16),tt}return null};Splitter$1.prototype.flush=function(){for(var tt=16-this.cache.length,et=Buffer$f.allocUnsafe(tt),nt=-1;++nt16)return et=this.cache.slice(0,16),this.cache=this.cache.slice(16),et}else if(this.cache.length>=16)return et=this.cache.slice(0,16),this.cache=this.cache.slice(16),et;return null};Splitter.prototype.flush=function(){if(this.cache.length)return this.cache};function unpad(tt){var et=tt[15];if(et<1||et>16)throw new Error("unable to decrypt data");for(var nt=-1;++nt0?Rt:$t},ot.min=function(Rt,$t){return Rt.cmp($t)<0?Rt:$t},ot.prototype._init=function(Rt,$t,xt){if(typeof Rt=="number")return this._initNumber(Rt,$t,xt);if(typeof Rt=="object")return this._initArray(Rt,$t,xt);$t==="hex"&&($t=16),rt($t===($t|0)&&$t>=2&&$t<=36),Rt=Rt.toString().replace(/\s+/g,"");var It=0;Rt[0]==="-"&&(It++,this.negative=1),It=0;It-=3)zt=Rt[It]|Rt[It-1]<<8|Rt[It-2]<<16,this.words[Ot]|=zt<>>26-Ut&67108863,Ut+=24,Ut>=26&&(Ut-=26,Ot++);else if(xt==="le")for(It=0,Ot=0;It>>26-Ut&67108863,Ut+=24,Ut>=26&&(Ut-=26,Ot++);return this.strip()};function st(jt,Rt){var $t=jt.charCodeAt(Rt);return $t>=65&&$t<=70?$t-55:$t>=97&&$t<=102?$t-87:$t-48&15}function lt(jt,Rt,$t){var xt=st(jt,$t);return $t-1>=Rt&&(xt|=st(jt,$t-1)<<4),xt}ot.prototype._parseHex=function(Rt,$t,xt){this.length=Math.ceil((Rt.length-$t)/6),this.words=new Array(this.length);for(var It=0;It=$t;It-=2)Ut=lt(Rt,$t,It)<=18?(Ot-=18,zt+=1,this.words[zt]|=Ut>>>26):Ot+=8;else{var Wt=Rt.length-$t;for(It=Wt%2===0?$t+1:$t;It=18?(Ot-=18,zt+=1,this.words[zt]|=Ut>>>26):Ot+=8}this.strip()};function ct(jt,Rt,$t,xt){for(var It=0,Ot=Math.min(jt.length,$t),zt=Rt;zt=49?It+=Ut-49+10:Ut>=17?It+=Ut-17+10:It+=Ut}return It}ot.prototype._parseBase=function(Rt,$t,xt){this.words=[0],this.length=1;for(var It=0,Ot=1;Ot<=67108863;Ot*=$t)It++;It--,Ot=Ot/$t|0;for(var zt=Rt.length-xt,Ut=zt%It,Wt=Math.min(zt,zt-Ut)+xt,Ft=0,Nt=xt;Nt1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},ot.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},ot.prototype.inspect=function(){return(this.red?""};var ut=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],ht=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],dt=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];ot.prototype.toString=function(Rt,$t){Rt=Rt||10,$t=$t|0||1;var xt;if(Rt===16||Rt==="hex"){xt="";for(var It=0,Ot=0,zt=0;zt>>24-It&16777215,Ot!==0||zt!==this.length-1?xt=ut[6-Wt.length]+Wt+xt:xt=Wt+xt,It+=2,It>=26&&(It-=26,zt--)}for(Ot!==0&&(xt=Ot.toString(16)+xt);xt.length%$t!==0;)xt="0"+xt;return this.negative!==0&&(xt="-"+xt),xt}if(Rt===(Rt|0)&&Rt>=2&&Rt<=36){var Ft=ht[Rt],Nt=dt[Rt];xt="";var Ct=this.clone();for(Ct.negative=0;!Ct.isZero();){var Ht=Ct.modn(Nt).toString(Rt);Ct=Ct.idivn(Nt),Ct.isZero()?xt=Ht+xt:xt=ut[Ft-Ht.length]+Ht+xt}for(this.isZero()&&(xt="0"+xt);xt.length%$t!==0;)xt="0"+xt;return this.negative!==0&&(xt="-"+xt),xt}rt(!1,"Base should be between 2 and 36")},ot.prototype.toNumber=function(){var Rt=this.words[0];return this.length===2?Rt+=this.words[1]*67108864:this.length===3&&this.words[2]===1?Rt+=4503599627370496+this.words[1]*67108864:this.length>2&&rt(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-Rt:Rt},ot.prototype.toJSON=function(){return this.toString(16)},ot.prototype.toBuffer=function(Rt,$t){return rt(typeof at<"u"),this.toArrayLike(at,Rt,$t)},ot.prototype.toArray=function(Rt,$t){return this.toArrayLike(Array,Rt,$t)},ot.prototype.toArrayLike=function(Rt,$t,xt){var It=this.byteLength(),Ot=xt||Math.max(1,It);rt(It<=Ot,"byte array longer than desired length"),rt(Ot>0,"Requested array length <= 0"),this.strip();var zt=$t==="le",Ut=new Rt(Ot),Wt,Ft,Nt=this.clone();if(zt){for(Ft=0;!Nt.isZero();Ft++)Wt=Nt.andln(255),Nt.iushrn(8),Ut[Ft]=Wt;for(;Ft=4096&&(xt+=13,$t>>>=13),$t>=64&&(xt+=7,$t>>>=7),$t>=8&&(xt+=4,$t>>>=4),$t>=2&&(xt+=2,$t>>>=2),xt+$t},ot.prototype._zeroBits=function(Rt){if(Rt===0)return 26;var $t=Rt,xt=0;return $t&8191||(xt+=13,$t>>>=13),$t&127||(xt+=7,$t>>>=7),$t&15||(xt+=4,$t>>>=4),$t&3||(xt+=2,$t>>>=2),$t&1||xt++,xt},ot.prototype.bitLength=function(){var Rt=this.words[this.length-1],$t=this._countBits(Rt);return(this.length-1)*26+$t};function pt(jt){for(var Rt=new Array(jt.bitLength()),$t=0;$t>>It}return Rt}ot.prototype.zeroBits=function(){if(this.isZero())return 0;for(var Rt=0,$t=0;$tRt.length?this.clone().ior(Rt):Rt.clone().ior(this)},ot.prototype.uor=function(Rt){return this.length>Rt.length?this.clone().iuor(Rt):Rt.clone().iuor(this)},ot.prototype.iuand=function(Rt){var $t;this.length>Rt.length?$t=Rt:$t=this;for(var xt=0;xt<$t.length;xt++)this.words[xt]=this.words[xt]&Rt.words[xt];return this.length=$t.length,this.strip()},ot.prototype.iand=function(Rt){return rt((this.negative|Rt.negative)===0),this.iuand(Rt)},ot.prototype.and=function(Rt){return this.length>Rt.length?this.clone().iand(Rt):Rt.clone().iand(this)},ot.prototype.uand=function(Rt){return this.length>Rt.length?this.clone().iuand(Rt):Rt.clone().iuand(this)},ot.prototype.iuxor=function(Rt){var $t,xt;this.length>Rt.length?($t=this,xt=Rt):($t=Rt,xt=this);for(var It=0;ItRt.length?this.clone().ixor(Rt):Rt.clone().ixor(this)},ot.prototype.uxor=function(Rt){return this.length>Rt.length?this.clone().iuxor(Rt):Rt.clone().iuxor(this)},ot.prototype.inotn=function(Rt){rt(typeof Rt=="number"&&Rt>=0);var $t=Math.ceil(Rt/26)|0,xt=Rt%26;this._expand($t),xt>0&&$t--;for(var It=0;It<$t;It++)this.words[It]=~this.words[It]&67108863;return xt>0&&(this.words[It]=~this.words[It]&67108863>>26-xt),this.strip()},ot.prototype.notn=function(Rt){return this.clone().inotn(Rt)},ot.prototype.setn=function(Rt,$t){rt(typeof Rt=="number"&&Rt>=0);var xt=Rt/26|0,It=Rt%26;return this._expand(xt+1),$t?this.words[xt]=this.words[xt]|1<Rt.length?(xt=this,It=Rt):(xt=Rt,It=this);for(var Ot=0,zt=0;zt>>26;for(;Ot!==0&&zt>>26;if(this.length=xt.length,Ot!==0)this.words[this.length]=Ot,this.length++;else if(xt!==this)for(;ztRt.length?this.clone().iadd(Rt):Rt.clone().iadd(this)},ot.prototype.isub=function(Rt){if(Rt.negative!==0){Rt.negative=0;var $t=this.iadd(Rt);return Rt.negative=1,$t._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(Rt),this.negative=1,this._normSign();var xt=this.cmp(Rt);if(xt===0)return this.negative=0,this.length=1,this.words[0]=0,this;var It,Ot;xt>0?(It=this,Ot=Rt):(It=Rt,Ot=this);for(var zt=0,Ut=0;Ut>26,this.words[Ut]=$t&67108863;for(;zt!==0&&Ut>26,this.words[Ut]=$t&67108863;if(zt===0&&Ut>>26,Ct=Wt&67108863,Ht=Math.min(Ft,Rt.length-1),Jt=Math.max(0,Ft-jt.length+1);Jt<=Ht;Jt++){var nn=Ft-Jt|0;It=jt.words[nn]|0,Ot=Rt.words[Jt]|0,zt=It*Ot+Ct,Nt+=zt/67108864|0,Ct=zt&67108863}$t.words[Ft]=Ct|0,Wt=Nt|0}return Wt!==0?$t.words[Ft]=Wt|0:$t.length--,$t.strip()}var gt=function(Rt,$t,xt){var It=Rt.words,Ot=$t.words,zt=xt.words,Ut=0,Wt,Ft,Nt,Ct=It[0]|0,Ht=Ct&8191,Jt=Ct>>>13,nn=It[1]|0,Yt=nn&8191,fn=nn>>>13,cn=It[2]|0,_n=cn&8191,En=cn>>>13,an=It[3]|0,en=an&8191,Tn=an>>>13,Rn=It[4]|0,An=Rn&8191,yn=Rn>>>13,kn=It[5]|0,dn=kn&8191,gn=kn>>>13,Cn=It[6]|0,$n=Cn&8191,un=Cn>>>13,rn=It[7]|0,Sn=rn&8191,Mn=rn>>>13,Nn=It[8]|0,hn=Nn&8191,Qt=Nn>>>13,Zt=It[9]|0,wn=Zt&8191,On=Zt>>>13,jn=Ot[0]|0,Un=jn&8191,tr=jn>>>13,qn=Ot[1]|0,Xn=qn&8191,Wn=qn>>>13,Zn=Ot[2]|0,Vn=Zn&8191,pr=Zn>>>13,fr=Ot[3]|0,Er=fr&8191,oo=fr>>>13,Dr=Ot[4]|0,Rr=Dr&8191,Xr=Dr>>>13,Vr=Ot[5]|0,Fr=Vr&8191,so=Vr>>>13,qr=Ot[6]|0,Or=qr&8191,wo=qr>>>13,vn=Ot[7]|0,Pn=vn&8191,sn=vn>>>13,Xt=Ot[8]|0,xn=Xt&8191,Dn=Xt>>>13,Fn=Ot[9]|0,Kn=Fn&8191,nr=Fn>>>13;xt.negative=Rt.negative^$t.negative,xt.length=19,Wt=Math.imul(Ht,Un),Ft=Math.imul(Ht,tr),Ft=Ft+Math.imul(Jt,Un)|0,Nt=Math.imul(Jt,tr);var lr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(lr>>>26)|0,lr&=67108863,Wt=Math.imul(Yt,Un),Ft=Math.imul(Yt,tr),Ft=Ft+Math.imul(fn,Un)|0,Nt=Math.imul(fn,tr),Wt=Wt+Math.imul(Ht,Xn)|0,Ft=Ft+Math.imul(Ht,Wn)|0,Ft=Ft+Math.imul(Jt,Xn)|0,Nt=Nt+Math.imul(Jt,Wn)|0;var cr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(cr>>>26)|0,cr&=67108863,Wt=Math.imul(_n,Un),Ft=Math.imul(_n,tr),Ft=Ft+Math.imul(En,Un)|0,Nt=Math.imul(En,tr),Wt=Wt+Math.imul(Yt,Xn)|0,Ft=Ft+Math.imul(Yt,Wn)|0,Ft=Ft+Math.imul(fn,Xn)|0,Nt=Nt+Math.imul(fn,Wn)|0,Wt=Wt+Math.imul(Ht,Vn)|0,Ft=Ft+Math.imul(Ht,pr)|0,Ft=Ft+Math.imul(Jt,Vn)|0,Nt=Nt+Math.imul(Jt,pr)|0;var Hr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Hr>>>26)|0,Hr&=67108863,Wt=Math.imul(en,Un),Ft=Math.imul(en,tr),Ft=Ft+Math.imul(Tn,Un)|0,Nt=Math.imul(Tn,tr),Wt=Wt+Math.imul(_n,Xn)|0,Ft=Ft+Math.imul(_n,Wn)|0,Ft=Ft+Math.imul(En,Xn)|0,Nt=Nt+Math.imul(En,Wn)|0,Wt=Wt+Math.imul(Yt,Vn)|0,Ft=Ft+Math.imul(Yt,pr)|0,Ft=Ft+Math.imul(fn,Vn)|0,Nt=Nt+Math.imul(fn,pr)|0,Wt=Wt+Math.imul(Ht,Er)|0,Ft=Ft+Math.imul(Ht,oo)|0,Ft=Ft+Math.imul(Jt,Er)|0,Nt=Nt+Math.imul(Jt,oo)|0;var _r=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(_r>>>26)|0,_r&=67108863,Wt=Math.imul(An,Un),Ft=Math.imul(An,tr),Ft=Ft+Math.imul(yn,Un)|0,Nt=Math.imul(yn,tr),Wt=Wt+Math.imul(en,Xn)|0,Ft=Ft+Math.imul(en,Wn)|0,Ft=Ft+Math.imul(Tn,Xn)|0,Nt=Nt+Math.imul(Tn,Wn)|0,Wt=Wt+Math.imul(_n,Vn)|0,Ft=Ft+Math.imul(_n,pr)|0,Ft=Ft+Math.imul(En,Vn)|0,Nt=Nt+Math.imul(En,pr)|0,Wt=Wt+Math.imul(Yt,Er)|0,Ft=Ft+Math.imul(Yt,oo)|0,Ft=Ft+Math.imul(fn,Er)|0,Nt=Nt+Math.imul(fn,oo)|0,Wt=Wt+Math.imul(Ht,Rr)|0,Ft=Ft+Math.imul(Ht,Xr)|0,Ft=Ft+Math.imul(Jt,Rr)|0,Nt=Nt+Math.imul(Jt,Xr)|0;var jr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(jr>>>26)|0,jr&=67108863,Wt=Math.imul(dn,Un),Ft=Math.imul(dn,tr),Ft=Ft+Math.imul(gn,Un)|0,Nt=Math.imul(gn,tr),Wt=Wt+Math.imul(An,Xn)|0,Ft=Ft+Math.imul(An,Wn)|0,Ft=Ft+Math.imul(yn,Xn)|0,Nt=Nt+Math.imul(yn,Wn)|0,Wt=Wt+Math.imul(en,Vn)|0,Ft=Ft+Math.imul(en,pr)|0,Ft=Ft+Math.imul(Tn,Vn)|0,Nt=Nt+Math.imul(Tn,pr)|0,Wt=Wt+Math.imul(_n,Er)|0,Ft=Ft+Math.imul(_n,oo)|0,Ft=Ft+Math.imul(En,Er)|0,Nt=Nt+Math.imul(En,oo)|0,Wt=Wt+Math.imul(Yt,Rr)|0,Ft=Ft+Math.imul(Yt,Xr)|0,Ft=Ft+Math.imul(fn,Rr)|0,Nt=Nt+Math.imul(fn,Xr)|0,Wt=Wt+Math.imul(Ht,Fr)|0,Ft=Ft+Math.imul(Ht,so)|0,Ft=Ft+Math.imul(Jt,Fr)|0,Nt=Nt+Math.imul(Jt,so)|0;var Gr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Gr>>>26)|0,Gr&=67108863,Wt=Math.imul($n,Un),Ft=Math.imul($n,tr),Ft=Ft+Math.imul(un,Un)|0,Nt=Math.imul(un,tr),Wt=Wt+Math.imul(dn,Xn)|0,Ft=Ft+Math.imul(dn,Wn)|0,Ft=Ft+Math.imul(gn,Xn)|0,Nt=Nt+Math.imul(gn,Wn)|0,Wt=Wt+Math.imul(An,Vn)|0,Ft=Ft+Math.imul(An,pr)|0,Ft=Ft+Math.imul(yn,Vn)|0,Nt=Nt+Math.imul(yn,pr)|0,Wt=Wt+Math.imul(en,Er)|0,Ft=Ft+Math.imul(en,oo)|0,Ft=Ft+Math.imul(Tn,Er)|0,Nt=Nt+Math.imul(Tn,oo)|0,Wt=Wt+Math.imul(_n,Rr)|0,Ft=Ft+Math.imul(_n,Xr)|0,Ft=Ft+Math.imul(En,Rr)|0,Nt=Nt+Math.imul(En,Xr)|0,Wt=Wt+Math.imul(Yt,Fr)|0,Ft=Ft+Math.imul(Yt,so)|0,Ft=Ft+Math.imul(fn,Fr)|0,Nt=Nt+Math.imul(fn,so)|0,Wt=Wt+Math.imul(Ht,Or)|0,Ft=Ft+Math.imul(Ht,wo)|0,Ft=Ft+Math.imul(Jt,Or)|0,Nt=Nt+Math.imul(Jt,wo)|0;var eo=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(eo>>>26)|0,eo&=67108863,Wt=Math.imul(Sn,Un),Ft=Math.imul(Sn,tr),Ft=Ft+Math.imul(Mn,Un)|0,Nt=Math.imul(Mn,tr),Wt=Wt+Math.imul($n,Xn)|0,Ft=Ft+Math.imul($n,Wn)|0,Ft=Ft+Math.imul(un,Xn)|0,Nt=Nt+Math.imul(un,Wn)|0,Wt=Wt+Math.imul(dn,Vn)|0,Ft=Ft+Math.imul(dn,pr)|0,Ft=Ft+Math.imul(gn,Vn)|0,Nt=Nt+Math.imul(gn,pr)|0,Wt=Wt+Math.imul(An,Er)|0,Ft=Ft+Math.imul(An,oo)|0,Ft=Ft+Math.imul(yn,Er)|0,Nt=Nt+Math.imul(yn,oo)|0,Wt=Wt+Math.imul(en,Rr)|0,Ft=Ft+Math.imul(en,Xr)|0,Ft=Ft+Math.imul(Tn,Rr)|0,Nt=Nt+Math.imul(Tn,Xr)|0,Wt=Wt+Math.imul(_n,Fr)|0,Ft=Ft+Math.imul(_n,so)|0,Ft=Ft+Math.imul(En,Fr)|0,Nt=Nt+Math.imul(En,so)|0,Wt=Wt+Math.imul(Yt,Or)|0,Ft=Ft+Math.imul(Yt,wo)|0,Ft=Ft+Math.imul(fn,Or)|0,Nt=Nt+Math.imul(fn,wo)|0,Wt=Wt+Math.imul(Ht,Pn)|0,Ft=Ft+Math.imul(Ht,sn)|0,Ft=Ft+Math.imul(Jt,Pn)|0,Nt=Nt+Math.imul(Jt,sn)|0;var Qr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Qr>>>26)|0,Qr&=67108863,Wt=Math.imul(hn,Un),Ft=Math.imul(hn,tr),Ft=Ft+Math.imul(Qt,Un)|0,Nt=Math.imul(Qt,tr),Wt=Wt+Math.imul(Sn,Xn)|0,Ft=Ft+Math.imul(Sn,Wn)|0,Ft=Ft+Math.imul(Mn,Xn)|0,Nt=Nt+Math.imul(Mn,Wn)|0,Wt=Wt+Math.imul($n,Vn)|0,Ft=Ft+Math.imul($n,pr)|0,Ft=Ft+Math.imul(un,Vn)|0,Nt=Nt+Math.imul(un,pr)|0,Wt=Wt+Math.imul(dn,Er)|0,Ft=Ft+Math.imul(dn,oo)|0,Ft=Ft+Math.imul(gn,Er)|0,Nt=Nt+Math.imul(gn,oo)|0,Wt=Wt+Math.imul(An,Rr)|0,Ft=Ft+Math.imul(An,Xr)|0,Ft=Ft+Math.imul(yn,Rr)|0,Nt=Nt+Math.imul(yn,Xr)|0,Wt=Wt+Math.imul(en,Fr)|0,Ft=Ft+Math.imul(en,so)|0,Ft=Ft+Math.imul(Tn,Fr)|0,Nt=Nt+Math.imul(Tn,so)|0,Wt=Wt+Math.imul(_n,Or)|0,Ft=Ft+Math.imul(_n,wo)|0,Ft=Ft+Math.imul(En,Or)|0,Nt=Nt+Math.imul(En,wo)|0,Wt=Wt+Math.imul(Yt,Pn)|0,Ft=Ft+Math.imul(Yt,sn)|0,Ft=Ft+Math.imul(fn,Pn)|0,Nt=Nt+Math.imul(fn,sn)|0,Wt=Wt+Math.imul(Ht,xn)|0,Ft=Ft+Math.imul(Ht,Dn)|0,Ft=Ft+Math.imul(Jt,xn)|0,Nt=Nt+Math.imul(Jt,Dn)|0;var _i=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(_i>>>26)|0,_i&=67108863,Wt=Math.imul(wn,Un),Ft=Math.imul(wn,tr),Ft=Ft+Math.imul(On,Un)|0,Nt=Math.imul(On,tr),Wt=Wt+Math.imul(hn,Xn)|0,Ft=Ft+Math.imul(hn,Wn)|0,Ft=Ft+Math.imul(Qt,Xn)|0,Nt=Nt+Math.imul(Qt,Wn)|0,Wt=Wt+Math.imul(Sn,Vn)|0,Ft=Ft+Math.imul(Sn,pr)|0,Ft=Ft+Math.imul(Mn,Vn)|0,Nt=Nt+Math.imul(Mn,pr)|0,Wt=Wt+Math.imul($n,Er)|0,Ft=Ft+Math.imul($n,oo)|0,Ft=Ft+Math.imul(un,Er)|0,Nt=Nt+Math.imul(un,oo)|0,Wt=Wt+Math.imul(dn,Rr)|0,Ft=Ft+Math.imul(dn,Xr)|0,Ft=Ft+Math.imul(gn,Rr)|0,Nt=Nt+Math.imul(gn,Xr)|0,Wt=Wt+Math.imul(An,Fr)|0,Ft=Ft+Math.imul(An,so)|0,Ft=Ft+Math.imul(yn,Fr)|0,Nt=Nt+Math.imul(yn,so)|0,Wt=Wt+Math.imul(en,Or)|0,Ft=Ft+Math.imul(en,wo)|0,Ft=Ft+Math.imul(Tn,Or)|0,Nt=Nt+Math.imul(Tn,wo)|0,Wt=Wt+Math.imul(_n,Pn)|0,Ft=Ft+Math.imul(_n,sn)|0,Ft=Ft+Math.imul(En,Pn)|0,Nt=Nt+Math.imul(En,sn)|0,Wt=Wt+Math.imul(Yt,xn)|0,Ft=Ft+Math.imul(Yt,Dn)|0,Ft=Ft+Math.imul(fn,xn)|0,Nt=Nt+Math.imul(fn,Dn)|0,Wt=Wt+Math.imul(Ht,Kn)|0,Ft=Ft+Math.imul(Ht,nr)|0,Ft=Ft+Math.imul(Jt,Kn)|0,Nt=Nt+Math.imul(Jt,nr)|0;var wr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(wr>>>26)|0,wr&=67108863,Wt=Math.imul(wn,Xn),Ft=Math.imul(wn,Wn),Ft=Ft+Math.imul(On,Xn)|0,Nt=Math.imul(On,Wn),Wt=Wt+Math.imul(hn,Vn)|0,Ft=Ft+Math.imul(hn,pr)|0,Ft=Ft+Math.imul(Qt,Vn)|0,Nt=Nt+Math.imul(Qt,pr)|0,Wt=Wt+Math.imul(Sn,Er)|0,Ft=Ft+Math.imul(Sn,oo)|0,Ft=Ft+Math.imul(Mn,Er)|0,Nt=Nt+Math.imul(Mn,oo)|0,Wt=Wt+Math.imul($n,Rr)|0,Ft=Ft+Math.imul($n,Xr)|0,Ft=Ft+Math.imul(un,Rr)|0,Nt=Nt+Math.imul(un,Xr)|0,Wt=Wt+Math.imul(dn,Fr)|0,Ft=Ft+Math.imul(dn,so)|0,Ft=Ft+Math.imul(gn,Fr)|0,Nt=Nt+Math.imul(gn,so)|0,Wt=Wt+Math.imul(An,Or)|0,Ft=Ft+Math.imul(An,wo)|0,Ft=Ft+Math.imul(yn,Or)|0,Nt=Nt+Math.imul(yn,wo)|0,Wt=Wt+Math.imul(en,Pn)|0,Ft=Ft+Math.imul(en,sn)|0,Ft=Ft+Math.imul(Tn,Pn)|0,Nt=Nt+Math.imul(Tn,sn)|0,Wt=Wt+Math.imul(_n,xn)|0,Ft=Ft+Math.imul(_n,Dn)|0,Ft=Ft+Math.imul(En,xn)|0,Nt=Nt+Math.imul(En,Dn)|0,Wt=Wt+Math.imul(Yt,Kn)|0,Ft=Ft+Math.imul(Yt,nr)|0,Ft=Ft+Math.imul(fn,Kn)|0,Nt=Nt+Math.imul(fn,nr)|0;var $r=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+($r>>>26)|0,$r&=67108863,Wt=Math.imul(wn,Vn),Ft=Math.imul(wn,pr),Ft=Ft+Math.imul(On,Vn)|0,Nt=Math.imul(On,pr),Wt=Wt+Math.imul(hn,Er)|0,Ft=Ft+Math.imul(hn,oo)|0,Ft=Ft+Math.imul(Qt,Er)|0,Nt=Nt+Math.imul(Qt,oo)|0,Wt=Wt+Math.imul(Sn,Rr)|0,Ft=Ft+Math.imul(Sn,Xr)|0,Ft=Ft+Math.imul(Mn,Rr)|0,Nt=Nt+Math.imul(Mn,Xr)|0,Wt=Wt+Math.imul($n,Fr)|0,Ft=Ft+Math.imul($n,so)|0,Ft=Ft+Math.imul(un,Fr)|0,Nt=Nt+Math.imul(un,so)|0,Wt=Wt+Math.imul(dn,Or)|0,Ft=Ft+Math.imul(dn,wo)|0,Ft=Ft+Math.imul(gn,Or)|0,Nt=Nt+Math.imul(gn,wo)|0,Wt=Wt+Math.imul(An,Pn)|0,Ft=Ft+Math.imul(An,sn)|0,Ft=Ft+Math.imul(yn,Pn)|0,Nt=Nt+Math.imul(yn,sn)|0,Wt=Wt+Math.imul(en,xn)|0,Ft=Ft+Math.imul(en,Dn)|0,Ft=Ft+Math.imul(Tn,xn)|0,Nt=Nt+Math.imul(Tn,Dn)|0,Wt=Wt+Math.imul(_n,Kn)|0,Ft=Ft+Math.imul(_n,nr)|0,Ft=Ft+Math.imul(En,Kn)|0,Nt=Nt+Math.imul(En,nr)|0;var Wr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Wr>>>26)|0,Wr&=67108863,Wt=Math.imul(wn,Er),Ft=Math.imul(wn,oo),Ft=Ft+Math.imul(On,Er)|0,Nt=Math.imul(On,oo),Wt=Wt+Math.imul(hn,Rr)|0,Ft=Ft+Math.imul(hn,Xr)|0,Ft=Ft+Math.imul(Qt,Rr)|0,Nt=Nt+Math.imul(Qt,Xr)|0,Wt=Wt+Math.imul(Sn,Fr)|0,Ft=Ft+Math.imul(Sn,so)|0,Ft=Ft+Math.imul(Mn,Fr)|0,Nt=Nt+Math.imul(Mn,so)|0,Wt=Wt+Math.imul($n,Or)|0,Ft=Ft+Math.imul($n,wo)|0,Ft=Ft+Math.imul(un,Or)|0,Nt=Nt+Math.imul(un,wo)|0,Wt=Wt+Math.imul(dn,Pn)|0,Ft=Ft+Math.imul(dn,sn)|0,Ft=Ft+Math.imul(gn,Pn)|0,Nt=Nt+Math.imul(gn,sn)|0,Wt=Wt+Math.imul(An,xn)|0,Ft=Ft+Math.imul(An,Dn)|0,Ft=Ft+Math.imul(yn,xn)|0,Nt=Nt+Math.imul(yn,Dn)|0,Wt=Wt+Math.imul(en,Kn)|0,Ft=Ft+Math.imul(en,nr)|0,Ft=Ft+Math.imul(Tn,Kn)|0,Nt=Nt+Math.imul(Tn,nr)|0;var Br=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Br>>>26)|0,Br&=67108863,Wt=Math.imul(wn,Rr),Ft=Math.imul(wn,Xr),Ft=Ft+Math.imul(On,Rr)|0,Nt=Math.imul(On,Xr),Wt=Wt+Math.imul(hn,Fr)|0,Ft=Ft+Math.imul(hn,so)|0,Ft=Ft+Math.imul(Qt,Fr)|0,Nt=Nt+Math.imul(Qt,so)|0,Wt=Wt+Math.imul(Sn,Or)|0,Ft=Ft+Math.imul(Sn,wo)|0,Ft=Ft+Math.imul(Mn,Or)|0,Nt=Nt+Math.imul(Mn,wo)|0,Wt=Wt+Math.imul($n,Pn)|0,Ft=Ft+Math.imul($n,sn)|0,Ft=Ft+Math.imul(un,Pn)|0,Nt=Nt+Math.imul(un,sn)|0,Wt=Wt+Math.imul(dn,xn)|0,Ft=Ft+Math.imul(dn,Dn)|0,Ft=Ft+Math.imul(gn,xn)|0,Nt=Nt+Math.imul(gn,Dn)|0,Wt=Wt+Math.imul(An,Kn)|0,Ft=Ft+Math.imul(An,nr)|0,Ft=Ft+Math.imul(yn,Kn)|0,Nt=Nt+Math.imul(yn,nr)|0;var Pr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Pr>>>26)|0,Pr&=67108863,Wt=Math.imul(wn,Fr),Ft=Math.imul(wn,so),Ft=Ft+Math.imul(On,Fr)|0,Nt=Math.imul(On,so),Wt=Wt+Math.imul(hn,Or)|0,Ft=Ft+Math.imul(hn,wo)|0,Ft=Ft+Math.imul(Qt,Or)|0,Nt=Nt+Math.imul(Qt,wo)|0,Wt=Wt+Math.imul(Sn,Pn)|0,Ft=Ft+Math.imul(Sn,sn)|0,Ft=Ft+Math.imul(Mn,Pn)|0,Nt=Nt+Math.imul(Mn,sn)|0,Wt=Wt+Math.imul($n,xn)|0,Ft=Ft+Math.imul($n,Dn)|0,Ft=Ft+Math.imul(un,xn)|0,Nt=Nt+Math.imul(un,Dn)|0,Wt=Wt+Math.imul(dn,Kn)|0,Ft=Ft+Math.imul(dn,nr)|0,Ft=Ft+Math.imul(gn,Kn)|0,Nt=Nt+Math.imul(gn,nr)|0;var Lr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Lr>>>26)|0,Lr&=67108863,Wt=Math.imul(wn,Or),Ft=Math.imul(wn,wo),Ft=Ft+Math.imul(On,Or)|0,Nt=Math.imul(On,wo),Wt=Wt+Math.imul(hn,Pn)|0,Ft=Ft+Math.imul(hn,sn)|0,Ft=Ft+Math.imul(Qt,Pn)|0,Nt=Nt+Math.imul(Qt,sn)|0,Wt=Wt+Math.imul(Sn,xn)|0,Ft=Ft+Math.imul(Sn,Dn)|0,Ft=Ft+Math.imul(Mn,xn)|0,Nt=Nt+Math.imul(Mn,Dn)|0,Wt=Wt+Math.imul($n,Kn)|0,Ft=Ft+Math.imul($n,nr)|0,Ft=Ft+Math.imul(un,Kn)|0,Nt=Nt+Math.imul(un,nr)|0;var Nr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Nr>>>26)|0,Nr&=67108863,Wt=Math.imul(wn,Pn),Ft=Math.imul(wn,sn),Ft=Ft+Math.imul(On,Pn)|0,Nt=Math.imul(On,sn),Wt=Wt+Math.imul(hn,xn)|0,Ft=Ft+Math.imul(hn,Dn)|0,Ft=Ft+Math.imul(Qt,xn)|0,Nt=Nt+Math.imul(Qt,Dn)|0,Wt=Wt+Math.imul(Sn,Kn)|0,Ft=Ft+Math.imul(Sn,nr)|0,Ft=Ft+Math.imul(Mn,Kn)|0,Nt=Nt+Math.imul(Mn,nr)|0;var Cr=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(Cr>>>26)|0,Cr&=67108863,Wt=Math.imul(wn,xn),Ft=Math.imul(wn,Dn),Ft=Ft+Math.imul(On,xn)|0,Nt=Math.imul(On,Dn),Wt=Wt+Math.imul(hn,Kn)|0,Ft=Ft+Math.imul(hn,nr)|0,Ft=Ft+Math.imul(Qt,Kn)|0,Nt=Nt+Math.imul(Qt,nr)|0;var er=(Ut+Wt|0)+((Ft&8191)<<13)|0;Ut=(Nt+(Ft>>>13)|0)+(er>>>26)|0,er&=67108863,Wt=Math.imul(wn,Kn),Ft=Math.imul(wn,nr),Ft=Ft+Math.imul(On,Kn)|0,Nt=Math.imul(On,nr);var ir=(Ut+Wt|0)+((Ft&8191)<<13)|0;return Ut=(Nt+(Ft>>>13)|0)+(ir>>>26)|0,ir&=67108863,zt[0]=lr,zt[1]=cr,zt[2]=Hr,zt[3]=_r,zt[4]=jr,zt[5]=Gr,zt[6]=eo,zt[7]=Qr,zt[8]=_i,zt[9]=wr,zt[10]=$r,zt[11]=Wr,zt[12]=Br,zt[13]=Pr,zt[14]=Lr,zt[15]=Nr,zt[16]=Cr,zt[17]=er,zt[18]=ir,Ut!==0&&(zt[19]=Ut,xt.length++),xt};Math.imul||(gt=mt);function yt(jt,Rt,$t){$t.negative=Rt.negative^jt.negative,$t.length=jt.length+Rt.length;for(var xt=0,It=0,Ot=0;Ot<$t.length-1;Ot++){var zt=It;It=0;for(var Ut=xt&67108863,Wt=Math.min(Ot,Rt.length-1),Ft=Math.max(0,Ot-jt.length+1);Ft<=Wt;Ft++){var Nt=Ot-Ft,Ct=jt.words[Nt]|0,Ht=Rt.words[Ft]|0,Jt=Ct*Ht,nn=Jt&67108863;zt=zt+(Jt/67108864|0)|0,nn=nn+Ut|0,Ut=nn&67108863,zt=zt+(nn>>>26)|0,It+=zt>>>26,zt&=67108863}$t.words[Ot]=Ut,xt=zt,zt=It}return xt!==0?$t.words[Ot]=xt:$t.length--,$t.strip()}function bt(jt,Rt,$t){var xt=new wt;return xt.mulp(jt,Rt,$t)}ot.prototype.mulTo=function(Rt,$t){var xt,It=this.length+Rt.length;return this.length===10&&Rt.length===10?xt=gt(this,Rt,$t):It<63?xt=mt(this,Rt,$t):It<1024?xt=yt(this,Rt,$t):xt=bt(this,Rt,$t),xt};function wt(jt,Rt){this.x=jt,this.y=Rt}wt.prototype.makeRBT=function(Rt){for(var $t=new Array(Rt),xt=ot.prototype._countBits(Rt)-1,It=0;It>=1;return It},wt.prototype.permute=function(Rt,$t,xt,It,Ot,zt){for(var Ut=0;Ut>>1)Ot++;return 1<>>13,xt[2*zt+1]=Ot&8191,Ot=Ot>>>13;for(zt=2*$t;zt>=26,$t+=It/67108864|0,$t+=Ot>>>26,this.words[xt]=Ot&67108863}return $t!==0&&(this.words[xt]=$t,this.length++),this},ot.prototype.muln=function(Rt){return this.clone().imuln(Rt)},ot.prototype.sqr=function(){return this.mul(this)},ot.prototype.isqr=function(){return this.imul(this.clone())},ot.prototype.pow=function(Rt){var $t=pt(Rt);if($t.length===0)return new ot(1);for(var xt=this,It=0;It<$t.length&&$t[It]===0;It++,xt=xt.sqr());if(++It<$t.length)for(var Ot=xt.sqr();It<$t.length;It++,Ot=Ot.sqr())$t[It]!==0&&(xt=xt.mul(Ot));return xt},ot.prototype.iushln=function(Rt){rt(typeof Rt=="number"&&Rt>=0);var $t=Rt%26,xt=(Rt-$t)/26,It=67108863>>>26-$t<<26-$t,Ot;if($t!==0){var zt=0;for(Ot=0;Ot>>26-$t}zt&&(this.words[Ot]=zt,this.length++)}if(xt!==0){for(Ot=this.length-1;Ot>=0;Ot--)this.words[Ot+xt]=this.words[Ot];for(Ot=0;Ot=0);var It;$t?It=($t-$t%26)/26:It=0;var Ot=Rt%26,zt=Math.min((Rt-Ot)/26,this.length),Ut=67108863^67108863>>>Ot<zt)for(this.length-=zt,Ft=0;Ft=0&&(Nt!==0||Ft>=It);Ft--){var Ct=this.words[Ft]|0;this.words[Ft]=Nt<<26-Ot|Ct>>>Ot,Nt=Ct&Ut}return Wt&&Nt!==0&&(Wt.words[Wt.length++]=Nt),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},ot.prototype.ishrn=function(Rt,$t,xt){return rt(this.negative===0),this.iushrn(Rt,$t,xt)},ot.prototype.shln=function(Rt){return this.clone().ishln(Rt)},ot.prototype.ushln=function(Rt){return this.clone().iushln(Rt)},ot.prototype.shrn=function(Rt){return this.clone().ishrn(Rt)},ot.prototype.ushrn=function(Rt){return this.clone().iushrn(Rt)},ot.prototype.testn=function(Rt){rt(typeof Rt=="number"&&Rt>=0);var $t=Rt%26,xt=(Rt-$t)/26,It=1<<$t;if(this.length<=xt)return!1;var Ot=this.words[xt];return!!(Ot&It)},ot.prototype.imaskn=function(Rt){rt(typeof Rt=="number"&&Rt>=0);var $t=Rt%26,xt=(Rt-$t)/26;if(rt(this.negative===0,"imaskn works only with positive numbers"),this.length<=xt)return this;if($t!==0&&xt++,this.length=Math.min(xt,this.length),$t!==0){var It=67108863^67108863>>>$t<<$t;this.words[this.length-1]&=It}return this.strip()},ot.prototype.maskn=function(Rt){return this.clone().imaskn(Rt)},ot.prototype.iaddn=function(Rt){return rt(typeof Rt=="number"),rt(Rt<67108864),Rt<0?this.isubn(-Rt):this.negative!==0?this.length===1&&(this.words[0]|0)=67108864;$t++)this.words[$t]-=67108864,$t===this.length-1?this.words[$t+1]=1:this.words[$t+1]++;return this.length=Math.max(this.length,$t+1),this},ot.prototype.isubn=function(Rt){if(rt(typeof Rt=="number"),rt(Rt<67108864),Rt<0)return this.iaddn(-Rt);if(this.negative!==0)return this.negative=0,this.iaddn(Rt),this.negative=1,this;if(this.words[0]-=Rt,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var $t=0;$t>26)-(Wt/67108864|0),this.words[Ot+xt]=zt&67108863}for(;Ot>26,this.words[Ot+xt]=zt&67108863;if(Ut===0)return this.strip();for(rt(Ut===-1),Ut=0,Ot=0;Ot>26,this.words[Ot]=zt&67108863;return this.negative=1,this.strip()},ot.prototype._wordDiv=function(Rt,$t){var xt=this.length-Rt.length,It=this.clone(),Ot=Rt,zt=Ot.words[Ot.length-1]|0,Ut=this._countBits(zt);xt=26-Ut,xt!==0&&(Ot=Ot.ushln(xt),It.iushln(xt),zt=Ot.words[Ot.length-1]|0);var Wt=It.length-Ot.length,Ft;if($t!=="mod"){Ft=new ot(null),Ft.length=Wt+1,Ft.words=new Array(Ft.length);for(var Nt=0;Nt=0;Ht--){var Jt=(It.words[Ot.length+Ht]|0)*67108864+(It.words[Ot.length+Ht-1]|0);for(Jt=Math.min(Jt/zt|0,67108863),It._ishlnsubmul(Ot,Jt,Ht);It.negative!==0;)Jt--,It.negative=0,It._ishlnsubmul(Ot,1,Ht),It.isZero()||(It.negative^=1);Ft&&(Ft.words[Ht]=Jt)}return Ft&&Ft.strip(),It.strip(),$t!=="div"&&xt!==0&&It.iushrn(xt),{div:Ft||null,mod:It}},ot.prototype.divmod=function(Rt,$t,xt){if(rt(!Rt.isZero()),this.isZero())return{div:new ot(0),mod:new ot(0)};var It,Ot,zt;return this.negative!==0&&Rt.negative===0?(zt=this.neg().divmod(Rt,$t),$t!=="mod"&&(It=zt.div.neg()),$t!=="div"&&(Ot=zt.mod.neg(),xt&&Ot.negative!==0&&Ot.iadd(Rt)),{div:It,mod:Ot}):this.negative===0&&Rt.negative!==0?(zt=this.divmod(Rt.neg(),$t),$t!=="mod"&&(It=zt.div.neg()),{div:It,mod:zt.mod}):this.negative&Rt.negative?(zt=this.neg().divmod(Rt.neg(),$t),$t!=="div"&&(Ot=zt.mod.neg(),xt&&Ot.negative!==0&&Ot.isub(Rt)),{div:zt.div,mod:Ot}):Rt.length>this.length||this.cmp(Rt)<0?{div:new ot(0),mod:this}:Rt.length===1?$t==="div"?{div:this.divn(Rt.words[0]),mod:null}:$t==="mod"?{div:null,mod:new ot(this.modn(Rt.words[0]))}:{div:this.divn(Rt.words[0]),mod:new ot(this.modn(Rt.words[0]))}:this._wordDiv(Rt,$t)},ot.prototype.div=function(Rt){return this.divmod(Rt,"div",!1).div},ot.prototype.mod=function(Rt){return this.divmod(Rt,"mod",!1).mod},ot.prototype.umod=function(Rt){return this.divmod(Rt,"mod",!0).mod},ot.prototype.divRound=function(Rt){var $t=this.divmod(Rt);if($t.mod.isZero())return $t.div;var xt=$t.div.negative!==0?$t.mod.isub(Rt):$t.mod,It=Rt.ushrn(1),Ot=Rt.andln(1),zt=xt.cmp(It);return zt<0||Ot===1&&zt===0?$t.div:$t.div.negative!==0?$t.div.isubn(1):$t.div.iaddn(1)},ot.prototype.modn=function(Rt){rt(Rt<=67108863);for(var $t=(1<<26)%Rt,xt=0,It=this.length-1;It>=0;It--)xt=($t*xt+(this.words[It]|0))%Rt;return xt},ot.prototype.idivn=function(Rt){rt(Rt<=67108863);for(var $t=0,xt=this.length-1;xt>=0;xt--){var It=(this.words[xt]|0)+$t*67108864;this.words[xt]=It/Rt|0,$t=It%Rt}return this.strip()},ot.prototype.divn=function(Rt){return this.clone().idivn(Rt)},ot.prototype.egcd=function(Rt){rt(Rt.negative===0),rt(!Rt.isZero());var $t=this,xt=Rt.clone();$t.negative!==0?$t=$t.umod(Rt):$t=$t.clone();for(var It=new ot(1),Ot=new ot(0),zt=new ot(0),Ut=new ot(1),Wt=0;$t.isEven()&&xt.isEven();)$t.iushrn(1),xt.iushrn(1),++Wt;for(var Ft=xt.clone(),Nt=$t.clone();!$t.isZero();){for(var Ct=0,Ht=1;!($t.words[0]&Ht)&&Ct<26;++Ct,Ht<<=1);if(Ct>0)for($t.iushrn(Ct);Ct-- >0;)(It.isOdd()||Ot.isOdd())&&(It.iadd(Ft),Ot.isub(Nt)),It.iushrn(1),Ot.iushrn(1);for(var Jt=0,nn=1;!(xt.words[0]&nn)&&Jt<26;++Jt,nn<<=1);if(Jt>0)for(xt.iushrn(Jt);Jt-- >0;)(zt.isOdd()||Ut.isOdd())&&(zt.iadd(Ft),Ut.isub(Nt)),zt.iushrn(1),Ut.iushrn(1);$t.cmp(xt)>=0?($t.isub(xt),It.isub(zt),Ot.isub(Ut)):(xt.isub($t),zt.isub(It),Ut.isub(Ot))}return{a:zt,b:Ut,gcd:xt.iushln(Wt)}},ot.prototype._invmp=function(Rt){rt(Rt.negative===0),rt(!Rt.isZero());var $t=this,xt=Rt.clone();$t.negative!==0?$t=$t.umod(Rt):$t=$t.clone();for(var It=new ot(1),Ot=new ot(0),zt=xt.clone();$t.cmpn(1)>0&&xt.cmpn(1)>0;){for(var Ut=0,Wt=1;!($t.words[0]&Wt)&&Ut<26;++Ut,Wt<<=1);if(Ut>0)for($t.iushrn(Ut);Ut-- >0;)It.isOdd()&&It.iadd(zt),It.iushrn(1);for(var Ft=0,Nt=1;!(xt.words[0]&Nt)&&Ft<26;++Ft,Nt<<=1);if(Ft>0)for(xt.iushrn(Ft);Ft-- >0;)Ot.isOdd()&&Ot.iadd(zt),Ot.iushrn(1);$t.cmp(xt)>=0?($t.isub(xt),It.isub(Ot)):(xt.isub($t),Ot.isub(It))}var Ct;return $t.cmpn(1)===0?Ct=It:Ct=Ot,Ct.cmpn(0)<0&&Ct.iadd(Rt),Ct},ot.prototype.gcd=function(Rt){if(this.isZero())return Rt.abs();if(Rt.isZero())return this.abs();var $t=this.clone(),xt=Rt.clone();$t.negative=0,xt.negative=0;for(var It=0;$t.isEven()&&xt.isEven();It++)$t.iushrn(1),xt.iushrn(1);do{for(;$t.isEven();)$t.iushrn(1);for(;xt.isEven();)xt.iushrn(1);var Ot=$t.cmp(xt);if(Ot<0){var zt=$t;$t=xt,xt=zt}else if(Ot===0||xt.cmpn(1)===0)break;$t.isub(xt)}while(!0);return xt.iushln(It)},ot.prototype.invm=function(Rt){return this.egcd(Rt).a.umod(Rt)},ot.prototype.isEven=function(){return(this.words[0]&1)===0},ot.prototype.isOdd=function(){return(this.words[0]&1)===1},ot.prototype.andln=function(Rt){return this.words[0]&Rt},ot.prototype.bincn=function(Rt){rt(typeof Rt=="number");var $t=Rt%26,xt=(Rt-$t)/26,It=1<<$t;if(this.length<=xt)return this._expand(xt+1),this.words[xt]|=It,this;for(var Ot=It,zt=xt;Ot!==0&&zt>>26,Ut&=67108863,this.words[zt]=Ut}return Ot!==0&&(this.words[zt]=Ot,this.length++),this},ot.prototype.isZero=function(){return this.length===1&&this.words[0]===0},ot.prototype.cmpn=function(Rt){var $t=Rt<0;if(this.negative!==0&&!$t)return-1;if(this.negative===0&&$t)return 1;this.strip();var xt;if(this.length>1)xt=1;else{$t&&(Rt=-Rt),rt(Rt<=67108863,"Number is too big");var It=this.words[0]|0;xt=It===Rt?0:ItRt.length)return 1;if(this.length=0;xt--){var It=this.words[xt]|0,Ot=Rt.words[xt]|0;if(It!==Ot){ItOt&&($t=1);break}}return $t},ot.prototype.gtn=function(Rt){return this.cmpn(Rt)===1},ot.prototype.gt=function(Rt){return this.cmp(Rt)===1},ot.prototype.gten=function(Rt){return this.cmpn(Rt)>=0},ot.prototype.gte=function(Rt){return this.cmp(Rt)>=0},ot.prototype.ltn=function(Rt){return this.cmpn(Rt)===-1},ot.prototype.lt=function(Rt){return this.cmp(Rt)===-1},ot.prototype.lten=function(Rt){return this.cmpn(Rt)<=0},ot.prototype.lte=function(Rt){return this.cmp(Rt)<=0},ot.prototype.eqn=function(Rt){return this.cmpn(Rt)===0},ot.prototype.eq=function(Rt){return this.cmp(Rt)===0},ot.red=function(Rt){return new Mt(Rt)},ot.prototype.toRed=function(Rt){return rt(!this.red,"Already a number in reduction context"),rt(this.negative===0,"red works only with positives"),Rt.convertTo(this)._forceRed(Rt)},ot.prototype.fromRed=function(){return rt(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},ot.prototype._forceRed=function(Rt){return this.red=Rt,this},ot.prototype.forceRed=function(Rt){return rt(!this.red,"Already a number in reduction context"),this._forceRed(Rt)},ot.prototype.redAdd=function(Rt){return rt(this.red,"redAdd works only with red numbers"),this.red.add(this,Rt)},ot.prototype.redIAdd=function(Rt){return rt(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,Rt)},ot.prototype.redSub=function(Rt){return rt(this.red,"redSub works only with red numbers"),this.red.sub(this,Rt)},ot.prototype.redISub=function(Rt){return rt(this.red,"redISub works only with red numbers"),this.red.isub(this,Rt)},ot.prototype.redShl=function(Rt){return rt(this.red,"redShl works only with red numbers"),this.red.shl(this,Rt)},ot.prototype.redMul=function(Rt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,Rt),this.red.mul(this,Rt)},ot.prototype.redIMul=function(Rt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,Rt),this.red.imul(this,Rt)},ot.prototype.redSqr=function(){return rt(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},ot.prototype.redISqr=function(){return rt(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},ot.prototype.redSqrt=function(){return rt(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},ot.prototype.redInvm=function(){return rt(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},ot.prototype.redNeg=function(){return rt(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},ot.prototype.redPow=function(Rt){return rt(this.red&&!Rt.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,Rt)};var vt={k256:null,p224:null,p192:null,p25519:null};function kt(jt,Rt){this.name=jt,this.p=new ot(Rt,16),this.n=this.p.bitLength(),this.k=new ot(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}kt.prototype._tmp=function(){var Rt=new ot(null);return Rt.words=new Array(Math.ceil(this.n/13)),Rt},kt.prototype.ireduce=function(Rt){var $t=Rt,xt;do this.split($t,this.tmp),$t=this.imulK($t),$t=$t.iadd(this.tmp),xt=$t.bitLength();while(xt>this.n);var It=xt0?$t.isub(this.p):$t.strip!==void 0?$t.strip():$t._strip(),$t},kt.prototype.split=function(Rt,$t){Rt.iushrn(this.n,0,$t)},kt.prototype.imulK=function(Rt){return Rt.imul(this.k)};function St(){kt.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}it(St,kt),St.prototype.split=function(Rt,$t){for(var xt=4194303,It=Math.min(Rt.length,9),Ot=0;Ot>>22,zt=Ut}zt>>>=22,Rt.words[Ot-10]=zt,zt===0&&Rt.length>10?Rt.length-=10:Rt.length-=9},St.prototype.imulK=function(Rt){Rt.words[Rt.length]=0,Rt.words[Rt.length+1]=0,Rt.length+=2;for(var $t=0,xt=0;xt>>=26,Rt.words[xt]=Ot,$t=It}return $t!==0&&(Rt.words[Rt.length++]=$t),Rt},ot._prime=function(Rt){if(vt[Rt])return vt[Rt];var $t;if(Rt==="k256")$t=new St;else if(Rt==="p224")$t=new Et;else if(Rt==="p192")$t=new At;else if(Rt==="p25519")$t=new Tt;else throw new Error("Unknown prime "+Rt);return vt[Rt]=$t,$t};function Mt(jt){if(typeof jt=="string"){var Rt=ot._prime(jt);this.m=Rt.p,this.prime=Rt}else rt(jt.gtn(1),"modulus must be greater than 1"),this.m=jt,this.prime=null}Mt.prototype._verify1=function(Rt){rt(Rt.negative===0,"red works only with positives"),rt(Rt.red,"red works only with red numbers")},Mt.prototype._verify2=function(Rt,$t){rt((Rt.negative|$t.negative)===0,"red works only with positives"),rt(Rt.red&&Rt.red===$t.red,"red works only with red numbers")},Mt.prototype.imod=function(Rt){return this.prime?this.prime.ireduce(Rt)._forceRed(this):Rt.umod(this.m)._forceRed(this)},Mt.prototype.neg=function(Rt){return Rt.isZero()?Rt.clone():this.m.sub(Rt)._forceRed(this)},Mt.prototype.add=function(Rt,$t){this._verify2(Rt,$t);var xt=Rt.add($t);return xt.cmp(this.m)>=0&&xt.isub(this.m),xt._forceRed(this)},Mt.prototype.iadd=function(Rt,$t){this._verify2(Rt,$t);var xt=Rt.iadd($t);return xt.cmp(this.m)>=0&&xt.isub(this.m),xt},Mt.prototype.sub=function(Rt,$t){this._verify2(Rt,$t);var xt=Rt.sub($t);return xt.cmpn(0)<0&&xt.iadd(this.m),xt._forceRed(this)},Mt.prototype.isub=function(Rt,$t){this._verify2(Rt,$t);var xt=Rt.isub($t);return xt.cmpn(0)<0&&xt.iadd(this.m),xt},Mt.prototype.shl=function(Rt,$t){return this._verify1(Rt),this.imod(Rt.ushln($t))},Mt.prototype.imul=function(Rt,$t){return this._verify2(Rt,$t),this.imod(Rt.imul($t))},Mt.prototype.mul=function(Rt,$t){return this._verify2(Rt,$t),this.imod(Rt.mul($t))},Mt.prototype.isqr=function(Rt){return this.imul(Rt,Rt.clone())},Mt.prototype.sqr=function(Rt){return this.mul(Rt,Rt)},Mt.prototype.sqrt=function(Rt){if(Rt.isZero())return Rt.clone();var $t=this.m.andln(3);if(rt($t%2===1),$t===3){var xt=this.m.add(new ot(1)).iushrn(2);return this.pow(Rt,xt)}for(var It=this.m.subn(1),Ot=0;!It.isZero()&&It.andln(1)===0;)Ot++,It.iushrn(1);rt(!It.isZero());var zt=new ot(1).toRed(this),Ut=zt.redNeg(),Wt=this.m.subn(1).iushrn(1),Ft=this.m.bitLength();for(Ft=new ot(2*Ft*Ft).toRed(this);this.pow(Ft,Wt).cmp(Ut)!==0;)Ft.redIAdd(Ut);for(var Nt=this.pow(Ft,It),Ct=this.pow(Rt,It.addn(1).iushrn(1)),Ht=this.pow(Rt,It),Jt=Ot;Ht.cmp(zt)!==0;){for(var nn=Ht,Yt=0;nn.cmp(zt)!==0;Yt++)nn=nn.redSqr();rt(Yt=0;Ot--){for(var Nt=$t.words[Ot],Ct=Ft-1;Ct>=0;Ct--){var Ht=Nt>>Ct&1;if(zt!==It[0]&&(zt=this.sqr(zt)),Ht===0&&Ut===0){Wt=0;continue}Ut<<=1,Ut|=Ht,Wt++,!(Wt!==xt&&(Ot!==0||Ct!==0))&&(zt=this.mul(zt,It[Ut]),Wt=0,Ut=0)}Ft=26}return zt},Mt.prototype.convertTo=function(Rt){var $t=Rt.umod(this.m);return $t===Rt?$t.clone():$t},Mt.prototype.convertFrom=function(Rt){var $t=Rt.clone();return $t.red=null,$t},ot.mont=function(Rt){return new Lt(Rt)};function Lt(jt){Mt.call(this,jt),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new ot(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}it(Lt,Mt),Lt.prototype.convertTo=function(Rt){return this.imod(Rt.ushln(this.shift))},Lt.prototype.convertFrom=function(Rt){var $t=this.imod(Rt.mul(this.rinv));return $t.red=null,$t},Lt.prototype.imul=function(Rt,$t){if(Rt.isZero()||$t.isZero())return Rt.words[0]=0,Rt.length=1,Rt;var xt=Rt.imul($t),It=xt.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ot=xt.isub(It).iushrn(this.shift),zt=Ot;return Ot.cmp(this.m)>=0?zt=Ot.isub(this.m):Ot.cmpn(0)<0&&(zt=Ot.iadd(this.m)),zt._forceRed(this)},Lt.prototype.mul=function(Rt,$t){if(Rt.isZero()||$t.isZero())return new ot(0)._forceRed(this);var xt=Rt.mul($t),It=xt.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ot=xt.isub(It).iushrn(this.shift),zt=Ot;return Ot.cmp(this.m)>=0?zt=Ot.isub(this.m):Ot.cmpn(0)<0&&(zt=Ot.iadd(this.m)),zt._forceRed(this)},Lt.prototype.invm=function(Rt){var $t=this.imod(Rt._invmp(this.m).mul(this.r2));return $t._forceRed(this)}})(tt,commonjsGlobal)})(bn$2);var bnExports$2=bn$2.exports,brorand={exports:{}},hasRequiredBrorand;function requireBrorand(){if(hasRequiredBrorand)return brorand.exports;hasRequiredBrorand=1;var tt;brorand.exports=function(it){return tt||(tt=new et(null)),tt.generate(it)};function et(rt){this.rand=rt}if(brorand.exports.Rand=et,et.prototype.generate=function(it){return this._rand(it)},et.prototype._rand=function(it){if(this.rand.getBytes)return this.rand.getBytes(it);for(var ot=new Uint8Array(it),at=0;at=0);return st},nt.prototype._randrange=function(it,ot){var at=ot.sub(it);return it.add(this._randbelow(at))},nt.prototype.test=function(it,ot,at){var st=it.bitLength(),lt=tt.mont(it),ct=new tt(1).toRed(lt);ot||(ot=Math.max(1,st/48|0));for(var ut=it.subn(1),ht=0;!ut.testn(ht);ht++);for(var dt=it.shrn(ht),pt=ut.toRed(lt),mt=!0;ot>0;ot--){var gt=this._randrange(new tt(2),ut);at&&at(gt);var yt=gt.toRed(lt).redPow(dt);if(!(yt.cmp(ct)===0||yt.cmp(pt)===0)){for(var bt=1;bt0;ot--){var pt=this._randrange(new tt(2),ct),mt=it.gcd(pt);if(mt.cmpn(1)!==0)return mt;var gt=pt.toRed(st).redPow(ht);if(!(gt.cmp(lt)===0||gt.cmp(dt)===0)){for(var yt=1;ytbt;)vt.ishrn(1);if(vt.isEven()&&vt.iadd(ot),vt.testn(1)||vt.iadd(at),wt.cmp(at)){if(!wt.cmp(st))for(;vt.mod(lt).cmp(ct);)vt.iadd(ht)}else for(;vt.mod(nt).cmp(ut);)vt.iadd(ht);if(kt=vt.shrn(1),mt(kt)&&mt(vt)&>(kt)&>(vt)&&it.test(kt)&&it.test(vt))return vt}}return generatePrime}const modp1={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},require$$1$1={modp1,modp2,modp5,modp14,modp15,modp16,modp17,modp18};var dh,hasRequiredDh;function requireDh(){if(hasRequiredDh)return dh;hasRequiredDh=1;var tt=bnExports$2,et=requireMr(),nt=new et,rt=new tt(24),it=new tt(11),ot=new tt(10),at=new tt(3),st=new tt(7),lt=requireGeneratePrime(),ct=browserExports;dh=mt;function ut(yt,bt){return bt=bt||"utf8",Buffer.isBuffer(yt)||(yt=new Buffer(yt,bt)),this._pub=new tt(yt),this}function ht(yt,bt){return bt=bt||"utf8",Buffer.isBuffer(yt)||(yt=new Buffer(yt,bt)),this._priv=new tt(yt),this}var dt={};function pt(yt,bt){var wt=bt.toString("hex"),vt=[wt,yt.toString(16)].join("_");if(vt in dt)return dt[vt];var kt=0;if(yt.isEven()||!lt.simpleSieve||!lt.fermatTest(yt)||!nt.test(yt))return kt+=1,wt==="02"||wt==="05"?kt+=8:kt+=4,dt[vt]=kt,kt;nt.test(yt.shrn(1))||(kt+=2);var St;switch(wt){case"02":yt.mod(rt).cmp(it)&&(kt+=8);break;case"05":St=yt.mod(ot),St.cmp(at)&&St.cmp(st)&&(kt+=8);break;default:kt+=4}return dt[vt]=kt,kt}function mt(yt,bt,wt){this.setGenerator(bt),this.__prime=new tt(yt),this._prime=tt.mont(this.__prime),this._primeLen=yt.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,wt?(this.setPublicKey=ut,this.setPrivateKey=ht):this._primeCode=8}Object.defineProperty(mt.prototype,"verifyError",{enumerable:!0,get:function(){return typeof this._primeCode!="number"&&(this._primeCode=pt(this.__prime,this.__gen)),this._primeCode}}),mt.prototype.generateKeys=function(){return this._priv||(this._priv=new tt(ct(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},mt.prototype.computeSecret=function(yt){yt=new tt(yt),yt=yt.toRed(this._prime);var bt=yt.redPow(this._priv).fromRed(),wt=new Buffer(bt.toArray()),vt=this.getPrime();if(wt.length0?xt:It},ot.min=function(xt,It){return xt.cmp(It)<0?xt:It},ot.prototype._init=function(xt,It,Ot){if(typeof xt=="number")return this._initNumber(xt,It,Ot);if(typeof xt=="object")return this._initArray(xt,It,Ot);It==="hex"&&(It=16),rt(It===(It|0)&&It>=2&&It<=36),xt=xt.toString().replace(/\s+/g,"");var zt=0;xt[0]==="-"&&(zt++,this.negative=1),zt=0;zt-=3)Wt=xt[zt]|xt[zt-1]<<8|xt[zt-2]<<16,this.words[Ut]|=Wt<>>26-Ft&67108863,Ft+=24,Ft>=26&&(Ft-=26,Ut++);else if(Ot==="le")for(zt=0,Ut=0;zt>>26-Ft&67108863,Ft+=24,Ft>=26&&(Ft-=26,Ut++);return this._strip()};function st($t,xt){var It=$t.charCodeAt(xt);if(It>=48&&It<=57)return It-48;if(It>=65&&It<=70)return It-55;if(It>=97&&It<=102)return It-87;rt(!1,"Invalid character in "+$t)}function lt($t,xt,It){var Ot=st($t,It);return It-1>=xt&&(Ot|=st($t,It-1)<<4),Ot}ot.prototype._parseHex=function(xt,It,Ot){this.length=Math.ceil((xt.length-It)/6),this.words=new Array(this.length);for(var zt=0;zt=It;zt-=2)Ft=lt(xt,It,zt)<=18?(Ut-=18,Wt+=1,this.words[Wt]|=Ft>>>26):Ut+=8;else{var Nt=xt.length-It;for(zt=Nt%2===0?It+1:It;zt=18?(Ut-=18,Wt+=1,this.words[Wt]|=Ft>>>26):Ut+=8}this._strip()};function ct($t,xt,It,Ot){for(var zt=0,Ut=0,Wt=Math.min($t.length,It),Ft=xt;Ft=49?Ut=Nt-49+10:Nt>=17?Ut=Nt-17+10:Ut=Nt,rt(Nt>=0&&Ut1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},ot.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{ot.prototype[Symbol.for("nodejs.util.inspect.custom")]=ht}catch{ot.prototype.inspect=ht}else ot.prototype.inspect=ht;function ht(){return(this.red?""}var dt=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],pt=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],mt=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];ot.prototype.toString=function(xt,It){xt=xt||10,It=It|0||1;var Ot;if(xt===16||xt==="hex"){Ot="";for(var zt=0,Ut=0,Wt=0;Wt>>24-zt&16777215,zt+=2,zt>=26&&(zt-=26,Wt--),Ut!==0||Wt!==this.length-1?Ot=dt[6-Nt.length]+Nt+Ot:Ot=Nt+Ot}for(Ut!==0&&(Ot=Ut.toString(16)+Ot);Ot.length%It!==0;)Ot="0"+Ot;return this.negative!==0&&(Ot="-"+Ot),Ot}if(xt===(xt|0)&&xt>=2&&xt<=36){var Ct=pt[xt],Ht=mt[xt];Ot="";var Jt=this.clone();for(Jt.negative=0;!Jt.isZero();){var nn=Jt.modrn(Ht).toString(xt);Jt=Jt.idivn(Ht),Jt.isZero()?Ot=nn+Ot:Ot=dt[Ct-nn.length]+nn+Ot}for(this.isZero()&&(Ot="0"+Ot);Ot.length%It!==0;)Ot="0"+Ot;return this.negative!==0&&(Ot="-"+Ot),Ot}rt(!1,"Base should be between 2 and 36")},ot.prototype.toNumber=function(){var xt=this.words[0];return this.length===2?xt+=this.words[1]*67108864:this.length===3&&this.words[2]===1?xt+=4503599627370496+this.words[1]*67108864:this.length>2&&rt(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-xt:xt},ot.prototype.toJSON=function(){return this.toString(16,2)},at&&(ot.prototype.toBuffer=function(xt,It){return this.toArrayLike(at,xt,It)}),ot.prototype.toArray=function(xt,It){return this.toArrayLike(Array,xt,It)};var gt=function(xt,It){return xt.allocUnsafe?xt.allocUnsafe(It):new xt(It)};ot.prototype.toArrayLike=function(xt,It,Ot){this._strip();var zt=this.byteLength(),Ut=Ot||Math.max(1,zt);rt(zt<=Ut,"byte array longer than desired length"),rt(Ut>0,"Requested array length <= 0");var Wt=gt(xt,Ut),Ft=It==="le"?"LE":"BE";return this["_toArrayLike"+Ft](Wt,zt),Wt},ot.prototype._toArrayLikeLE=function(xt,It){for(var Ot=0,zt=0,Ut=0,Wt=0;Ut>8&255),Ot>16&255),Wt===6?(Ot>24&255),zt=0,Wt=0):(zt=Ft>>>24,Wt+=2)}if(Ot=0&&(xt[Ot--]=Ft>>8&255),Ot>=0&&(xt[Ot--]=Ft>>16&255),Wt===6?(Ot>=0&&(xt[Ot--]=Ft>>24&255),zt=0,Wt=0):(zt=Ft>>>24,Wt+=2)}if(Ot>=0)for(xt[Ot--]=zt;Ot>=0;)xt[Ot--]=0},Math.clz32?ot.prototype._countBits=function(xt){return 32-Math.clz32(xt)}:ot.prototype._countBits=function(xt){var It=xt,Ot=0;return It>=4096&&(Ot+=13,It>>>=13),It>=64&&(Ot+=7,It>>>=7),It>=8&&(Ot+=4,It>>>=4),It>=2&&(Ot+=2,It>>>=2),Ot+It},ot.prototype._zeroBits=function(xt){if(xt===0)return 26;var It=xt,Ot=0;return It&8191||(Ot+=13,It>>>=13),It&127||(Ot+=7,It>>>=7),It&15||(Ot+=4,It>>>=4),It&3||(Ot+=2,It>>>=2),It&1||Ot++,Ot},ot.prototype.bitLength=function(){var xt=this.words[this.length-1],It=this._countBits(xt);return(this.length-1)*26+It};function yt($t){for(var xt=new Array($t.bitLength()),It=0;It>>zt&1}return xt}ot.prototype.zeroBits=function(){if(this.isZero())return 0;for(var xt=0,It=0;Itxt.length?this.clone().ior(xt):xt.clone().ior(this)},ot.prototype.uor=function(xt){return this.length>xt.length?this.clone().iuor(xt):xt.clone().iuor(this)},ot.prototype.iuand=function(xt){var It;this.length>xt.length?It=xt:It=this;for(var Ot=0;Otxt.length?this.clone().iand(xt):xt.clone().iand(this)},ot.prototype.uand=function(xt){return this.length>xt.length?this.clone().iuand(xt):xt.clone().iuand(this)},ot.prototype.iuxor=function(xt){var It,Ot;this.length>xt.length?(It=this,Ot=xt):(It=xt,Ot=this);for(var zt=0;ztxt.length?this.clone().ixor(xt):xt.clone().ixor(this)},ot.prototype.uxor=function(xt){return this.length>xt.length?this.clone().iuxor(xt):xt.clone().iuxor(this)},ot.prototype.inotn=function(xt){rt(typeof xt=="number"&&xt>=0);var It=Math.ceil(xt/26)|0,Ot=xt%26;this._expand(It),Ot>0&&It--;for(var zt=0;zt0&&(this.words[zt]=~this.words[zt]&67108863>>26-Ot),this._strip()},ot.prototype.notn=function(xt){return this.clone().inotn(xt)},ot.prototype.setn=function(xt,It){rt(typeof xt=="number"&&xt>=0);var Ot=xt/26|0,zt=xt%26;return this._expand(Ot+1),It?this.words[Ot]=this.words[Ot]|1<xt.length?(Ot=this,zt=xt):(Ot=xt,zt=this);for(var Ut=0,Wt=0;Wt>>26;for(;Ut!==0&&Wt>>26;if(this.length=Ot.length,Ut!==0)this.words[this.length]=Ut,this.length++;else if(Ot!==this)for(;Wtxt.length?this.clone().iadd(xt):xt.clone().iadd(this)},ot.prototype.isub=function(xt){if(xt.negative!==0){xt.negative=0;var It=this.iadd(xt);return xt.negative=1,It._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(xt),this.negative=1,this._normSign();var Ot=this.cmp(xt);if(Ot===0)return this.negative=0,this.length=1,this.words[0]=0,this;var zt,Ut;Ot>0?(zt=this,Ut=xt):(zt=xt,Ut=this);for(var Wt=0,Ft=0;Ft>26,this.words[Ft]=It&67108863;for(;Wt!==0&&Ft>26,this.words[Ft]=It&67108863;if(Wt===0&&Ft>>26,Jt=Nt&67108863,nn=Math.min(Ct,xt.length-1),Yt=Math.max(0,Ct-$t.length+1);Yt<=nn;Yt++){var fn=Ct-Yt|0;zt=$t.words[fn]|0,Ut=xt.words[Yt]|0,Wt=zt*Ut+Jt,Ht+=Wt/67108864|0,Jt=Wt&67108863}It.words[Ct]=Jt|0,Nt=Ht|0}return Nt!==0?It.words[Ct]=Nt|0:It.length--,It._strip()}var wt=function(xt,It,Ot){var zt=xt.words,Ut=It.words,Wt=Ot.words,Ft=0,Nt,Ct,Ht,Jt=zt[0]|0,nn=Jt&8191,Yt=Jt>>>13,fn=zt[1]|0,cn=fn&8191,_n=fn>>>13,En=zt[2]|0,an=En&8191,en=En>>>13,Tn=zt[3]|0,Rn=Tn&8191,An=Tn>>>13,yn=zt[4]|0,kn=yn&8191,dn=yn>>>13,gn=zt[5]|0,Cn=gn&8191,$n=gn>>>13,un=zt[6]|0,rn=un&8191,Sn=un>>>13,Mn=zt[7]|0,Nn=Mn&8191,hn=Mn>>>13,Qt=zt[8]|0,Zt=Qt&8191,wn=Qt>>>13,On=zt[9]|0,jn=On&8191,Un=On>>>13,tr=Ut[0]|0,qn=tr&8191,Xn=tr>>>13,Wn=Ut[1]|0,Zn=Wn&8191,Vn=Wn>>>13,pr=Ut[2]|0,fr=pr&8191,Er=pr>>>13,oo=Ut[3]|0,Dr=oo&8191,Rr=oo>>>13,Xr=Ut[4]|0,Vr=Xr&8191,Fr=Xr>>>13,so=Ut[5]|0,qr=so&8191,Or=so>>>13,wo=Ut[6]|0,vn=wo&8191,Pn=wo>>>13,sn=Ut[7]|0,Xt=sn&8191,xn=sn>>>13,Dn=Ut[8]|0,Fn=Dn&8191,Kn=Dn>>>13,nr=Ut[9]|0,lr=nr&8191,cr=nr>>>13;Ot.negative=xt.negative^It.negative,Ot.length=19,Nt=Math.imul(nn,qn),Ct=Math.imul(nn,Xn),Ct=Ct+Math.imul(Yt,qn)|0,Ht=Math.imul(Yt,Xn);var Hr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Hr>>>26)|0,Hr&=67108863,Nt=Math.imul(cn,qn),Ct=Math.imul(cn,Xn),Ct=Ct+Math.imul(_n,qn)|0,Ht=Math.imul(_n,Xn),Nt=Nt+Math.imul(nn,Zn)|0,Ct=Ct+Math.imul(nn,Vn)|0,Ct=Ct+Math.imul(Yt,Zn)|0,Ht=Ht+Math.imul(Yt,Vn)|0;var _r=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(_r>>>26)|0,_r&=67108863,Nt=Math.imul(an,qn),Ct=Math.imul(an,Xn),Ct=Ct+Math.imul(en,qn)|0,Ht=Math.imul(en,Xn),Nt=Nt+Math.imul(cn,Zn)|0,Ct=Ct+Math.imul(cn,Vn)|0,Ct=Ct+Math.imul(_n,Zn)|0,Ht=Ht+Math.imul(_n,Vn)|0,Nt=Nt+Math.imul(nn,fr)|0,Ct=Ct+Math.imul(nn,Er)|0,Ct=Ct+Math.imul(Yt,fr)|0,Ht=Ht+Math.imul(Yt,Er)|0;var jr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(jr>>>26)|0,jr&=67108863,Nt=Math.imul(Rn,qn),Ct=Math.imul(Rn,Xn),Ct=Ct+Math.imul(An,qn)|0,Ht=Math.imul(An,Xn),Nt=Nt+Math.imul(an,Zn)|0,Ct=Ct+Math.imul(an,Vn)|0,Ct=Ct+Math.imul(en,Zn)|0,Ht=Ht+Math.imul(en,Vn)|0,Nt=Nt+Math.imul(cn,fr)|0,Ct=Ct+Math.imul(cn,Er)|0,Ct=Ct+Math.imul(_n,fr)|0,Ht=Ht+Math.imul(_n,Er)|0,Nt=Nt+Math.imul(nn,Dr)|0,Ct=Ct+Math.imul(nn,Rr)|0,Ct=Ct+Math.imul(Yt,Dr)|0,Ht=Ht+Math.imul(Yt,Rr)|0;var Gr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Gr>>>26)|0,Gr&=67108863,Nt=Math.imul(kn,qn),Ct=Math.imul(kn,Xn),Ct=Ct+Math.imul(dn,qn)|0,Ht=Math.imul(dn,Xn),Nt=Nt+Math.imul(Rn,Zn)|0,Ct=Ct+Math.imul(Rn,Vn)|0,Ct=Ct+Math.imul(An,Zn)|0,Ht=Ht+Math.imul(An,Vn)|0,Nt=Nt+Math.imul(an,fr)|0,Ct=Ct+Math.imul(an,Er)|0,Ct=Ct+Math.imul(en,fr)|0,Ht=Ht+Math.imul(en,Er)|0,Nt=Nt+Math.imul(cn,Dr)|0,Ct=Ct+Math.imul(cn,Rr)|0,Ct=Ct+Math.imul(_n,Dr)|0,Ht=Ht+Math.imul(_n,Rr)|0,Nt=Nt+Math.imul(nn,Vr)|0,Ct=Ct+Math.imul(nn,Fr)|0,Ct=Ct+Math.imul(Yt,Vr)|0,Ht=Ht+Math.imul(Yt,Fr)|0;var eo=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(eo>>>26)|0,eo&=67108863,Nt=Math.imul(Cn,qn),Ct=Math.imul(Cn,Xn),Ct=Ct+Math.imul($n,qn)|0,Ht=Math.imul($n,Xn),Nt=Nt+Math.imul(kn,Zn)|0,Ct=Ct+Math.imul(kn,Vn)|0,Ct=Ct+Math.imul(dn,Zn)|0,Ht=Ht+Math.imul(dn,Vn)|0,Nt=Nt+Math.imul(Rn,fr)|0,Ct=Ct+Math.imul(Rn,Er)|0,Ct=Ct+Math.imul(An,fr)|0,Ht=Ht+Math.imul(An,Er)|0,Nt=Nt+Math.imul(an,Dr)|0,Ct=Ct+Math.imul(an,Rr)|0,Ct=Ct+Math.imul(en,Dr)|0,Ht=Ht+Math.imul(en,Rr)|0,Nt=Nt+Math.imul(cn,Vr)|0,Ct=Ct+Math.imul(cn,Fr)|0,Ct=Ct+Math.imul(_n,Vr)|0,Ht=Ht+Math.imul(_n,Fr)|0,Nt=Nt+Math.imul(nn,qr)|0,Ct=Ct+Math.imul(nn,Or)|0,Ct=Ct+Math.imul(Yt,qr)|0,Ht=Ht+Math.imul(Yt,Or)|0;var Qr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Qr>>>26)|0,Qr&=67108863,Nt=Math.imul(rn,qn),Ct=Math.imul(rn,Xn),Ct=Ct+Math.imul(Sn,qn)|0,Ht=Math.imul(Sn,Xn),Nt=Nt+Math.imul(Cn,Zn)|0,Ct=Ct+Math.imul(Cn,Vn)|0,Ct=Ct+Math.imul($n,Zn)|0,Ht=Ht+Math.imul($n,Vn)|0,Nt=Nt+Math.imul(kn,fr)|0,Ct=Ct+Math.imul(kn,Er)|0,Ct=Ct+Math.imul(dn,fr)|0,Ht=Ht+Math.imul(dn,Er)|0,Nt=Nt+Math.imul(Rn,Dr)|0,Ct=Ct+Math.imul(Rn,Rr)|0,Ct=Ct+Math.imul(An,Dr)|0,Ht=Ht+Math.imul(An,Rr)|0,Nt=Nt+Math.imul(an,Vr)|0,Ct=Ct+Math.imul(an,Fr)|0,Ct=Ct+Math.imul(en,Vr)|0,Ht=Ht+Math.imul(en,Fr)|0,Nt=Nt+Math.imul(cn,qr)|0,Ct=Ct+Math.imul(cn,Or)|0,Ct=Ct+Math.imul(_n,qr)|0,Ht=Ht+Math.imul(_n,Or)|0,Nt=Nt+Math.imul(nn,vn)|0,Ct=Ct+Math.imul(nn,Pn)|0,Ct=Ct+Math.imul(Yt,vn)|0,Ht=Ht+Math.imul(Yt,Pn)|0;var _i=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(_i>>>26)|0,_i&=67108863,Nt=Math.imul(Nn,qn),Ct=Math.imul(Nn,Xn),Ct=Ct+Math.imul(hn,qn)|0,Ht=Math.imul(hn,Xn),Nt=Nt+Math.imul(rn,Zn)|0,Ct=Ct+Math.imul(rn,Vn)|0,Ct=Ct+Math.imul(Sn,Zn)|0,Ht=Ht+Math.imul(Sn,Vn)|0,Nt=Nt+Math.imul(Cn,fr)|0,Ct=Ct+Math.imul(Cn,Er)|0,Ct=Ct+Math.imul($n,fr)|0,Ht=Ht+Math.imul($n,Er)|0,Nt=Nt+Math.imul(kn,Dr)|0,Ct=Ct+Math.imul(kn,Rr)|0,Ct=Ct+Math.imul(dn,Dr)|0,Ht=Ht+Math.imul(dn,Rr)|0,Nt=Nt+Math.imul(Rn,Vr)|0,Ct=Ct+Math.imul(Rn,Fr)|0,Ct=Ct+Math.imul(An,Vr)|0,Ht=Ht+Math.imul(An,Fr)|0,Nt=Nt+Math.imul(an,qr)|0,Ct=Ct+Math.imul(an,Or)|0,Ct=Ct+Math.imul(en,qr)|0,Ht=Ht+Math.imul(en,Or)|0,Nt=Nt+Math.imul(cn,vn)|0,Ct=Ct+Math.imul(cn,Pn)|0,Ct=Ct+Math.imul(_n,vn)|0,Ht=Ht+Math.imul(_n,Pn)|0,Nt=Nt+Math.imul(nn,Xt)|0,Ct=Ct+Math.imul(nn,xn)|0,Ct=Ct+Math.imul(Yt,Xt)|0,Ht=Ht+Math.imul(Yt,xn)|0;var wr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(wr>>>26)|0,wr&=67108863,Nt=Math.imul(Zt,qn),Ct=Math.imul(Zt,Xn),Ct=Ct+Math.imul(wn,qn)|0,Ht=Math.imul(wn,Xn),Nt=Nt+Math.imul(Nn,Zn)|0,Ct=Ct+Math.imul(Nn,Vn)|0,Ct=Ct+Math.imul(hn,Zn)|0,Ht=Ht+Math.imul(hn,Vn)|0,Nt=Nt+Math.imul(rn,fr)|0,Ct=Ct+Math.imul(rn,Er)|0,Ct=Ct+Math.imul(Sn,fr)|0,Ht=Ht+Math.imul(Sn,Er)|0,Nt=Nt+Math.imul(Cn,Dr)|0,Ct=Ct+Math.imul(Cn,Rr)|0,Ct=Ct+Math.imul($n,Dr)|0,Ht=Ht+Math.imul($n,Rr)|0,Nt=Nt+Math.imul(kn,Vr)|0,Ct=Ct+Math.imul(kn,Fr)|0,Ct=Ct+Math.imul(dn,Vr)|0,Ht=Ht+Math.imul(dn,Fr)|0,Nt=Nt+Math.imul(Rn,qr)|0,Ct=Ct+Math.imul(Rn,Or)|0,Ct=Ct+Math.imul(An,qr)|0,Ht=Ht+Math.imul(An,Or)|0,Nt=Nt+Math.imul(an,vn)|0,Ct=Ct+Math.imul(an,Pn)|0,Ct=Ct+Math.imul(en,vn)|0,Ht=Ht+Math.imul(en,Pn)|0,Nt=Nt+Math.imul(cn,Xt)|0,Ct=Ct+Math.imul(cn,xn)|0,Ct=Ct+Math.imul(_n,Xt)|0,Ht=Ht+Math.imul(_n,xn)|0,Nt=Nt+Math.imul(nn,Fn)|0,Ct=Ct+Math.imul(nn,Kn)|0,Ct=Ct+Math.imul(Yt,Fn)|0,Ht=Ht+Math.imul(Yt,Kn)|0;var $r=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+($r>>>26)|0,$r&=67108863,Nt=Math.imul(jn,qn),Ct=Math.imul(jn,Xn),Ct=Ct+Math.imul(Un,qn)|0,Ht=Math.imul(Un,Xn),Nt=Nt+Math.imul(Zt,Zn)|0,Ct=Ct+Math.imul(Zt,Vn)|0,Ct=Ct+Math.imul(wn,Zn)|0,Ht=Ht+Math.imul(wn,Vn)|0,Nt=Nt+Math.imul(Nn,fr)|0,Ct=Ct+Math.imul(Nn,Er)|0,Ct=Ct+Math.imul(hn,fr)|0,Ht=Ht+Math.imul(hn,Er)|0,Nt=Nt+Math.imul(rn,Dr)|0,Ct=Ct+Math.imul(rn,Rr)|0,Ct=Ct+Math.imul(Sn,Dr)|0,Ht=Ht+Math.imul(Sn,Rr)|0,Nt=Nt+Math.imul(Cn,Vr)|0,Ct=Ct+Math.imul(Cn,Fr)|0,Ct=Ct+Math.imul($n,Vr)|0,Ht=Ht+Math.imul($n,Fr)|0,Nt=Nt+Math.imul(kn,qr)|0,Ct=Ct+Math.imul(kn,Or)|0,Ct=Ct+Math.imul(dn,qr)|0,Ht=Ht+Math.imul(dn,Or)|0,Nt=Nt+Math.imul(Rn,vn)|0,Ct=Ct+Math.imul(Rn,Pn)|0,Ct=Ct+Math.imul(An,vn)|0,Ht=Ht+Math.imul(An,Pn)|0,Nt=Nt+Math.imul(an,Xt)|0,Ct=Ct+Math.imul(an,xn)|0,Ct=Ct+Math.imul(en,Xt)|0,Ht=Ht+Math.imul(en,xn)|0,Nt=Nt+Math.imul(cn,Fn)|0,Ct=Ct+Math.imul(cn,Kn)|0,Ct=Ct+Math.imul(_n,Fn)|0,Ht=Ht+Math.imul(_n,Kn)|0,Nt=Nt+Math.imul(nn,lr)|0,Ct=Ct+Math.imul(nn,cr)|0,Ct=Ct+Math.imul(Yt,lr)|0,Ht=Ht+Math.imul(Yt,cr)|0;var Wr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Wr>>>26)|0,Wr&=67108863,Nt=Math.imul(jn,Zn),Ct=Math.imul(jn,Vn),Ct=Ct+Math.imul(Un,Zn)|0,Ht=Math.imul(Un,Vn),Nt=Nt+Math.imul(Zt,fr)|0,Ct=Ct+Math.imul(Zt,Er)|0,Ct=Ct+Math.imul(wn,fr)|0,Ht=Ht+Math.imul(wn,Er)|0,Nt=Nt+Math.imul(Nn,Dr)|0,Ct=Ct+Math.imul(Nn,Rr)|0,Ct=Ct+Math.imul(hn,Dr)|0,Ht=Ht+Math.imul(hn,Rr)|0,Nt=Nt+Math.imul(rn,Vr)|0,Ct=Ct+Math.imul(rn,Fr)|0,Ct=Ct+Math.imul(Sn,Vr)|0,Ht=Ht+Math.imul(Sn,Fr)|0,Nt=Nt+Math.imul(Cn,qr)|0,Ct=Ct+Math.imul(Cn,Or)|0,Ct=Ct+Math.imul($n,qr)|0,Ht=Ht+Math.imul($n,Or)|0,Nt=Nt+Math.imul(kn,vn)|0,Ct=Ct+Math.imul(kn,Pn)|0,Ct=Ct+Math.imul(dn,vn)|0,Ht=Ht+Math.imul(dn,Pn)|0,Nt=Nt+Math.imul(Rn,Xt)|0,Ct=Ct+Math.imul(Rn,xn)|0,Ct=Ct+Math.imul(An,Xt)|0,Ht=Ht+Math.imul(An,xn)|0,Nt=Nt+Math.imul(an,Fn)|0,Ct=Ct+Math.imul(an,Kn)|0,Ct=Ct+Math.imul(en,Fn)|0,Ht=Ht+Math.imul(en,Kn)|0,Nt=Nt+Math.imul(cn,lr)|0,Ct=Ct+Math.imul(cn,cr)|0,Ct=Ct+Math.imul(_n,lr)|0,Ht=Ht+Math.imul(_n,cr)|0;var Br=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Br>>>26)|0,Br&=67108863,Nt=Math.imul(jn,fr),Ct=Math.imul(jn,Er),Ct=Ct+Math.imul(Un,fr)|0,Ht=Math.imul(Un,Er),Nt=Nt+Math.imul(Zt,Dr)|0,Ct=Ct+Math.imul(Zt,Rr)|0,Ct=Ct+Math.imul(wn,Dr)|0,Ht=Ht+Math.imul(wn,Rr)|0,Nt=Nt+Math.imul(Nn,Vr)|0,Ct=Ct+Math.imul(Nn,Fr)|0,Ct=Ct+Math.imul(hn,Vr)|0,Ht=Ht+Math.imul(hn,Fr)|0,Nt=Nt+Math.imul(rn,qr)|0,Ct=Ct+Math.imul(rn,Or)|0,Ct=Ct+Math.imul(Sn,qr)|0,Ht=Ht+Math.imul(Sn,Or)|0,Nt=Nt+Math.imul(Cn,vn)|0,Ct=Ct+Math.imul(Cn,Pn)|0,Ct=Ct+Math.imul($n,vn)|0,Ht=Ht+Math.imul($n,Pn)|0,Nt=Nt+Math.imul(kn,Xt)|0,Ct=Ct+Math.imul(kn,xn)|0,Ct=Ct+Math.imul(dn,Xt)|0,Ht=Ht+Math.imul(dn,xn)|0,Nt=Nt+Math.imul(Rn,Fn)|0,Ct=Ct+Math.imul(Rn,Kn)|0,Ct=Ct+Math.imul(An,Fn)|0,Ht=Ht+Math.imul(An,Kn)|0,Nt=Nt+Math.imul(an,lr)|0,Ct=Ct+Math.imul(an,cr)|0,Ct=Ct+Math.imul(en,lr)|0,Ht=Ht+Math.imul(en,cr)|0;var Pr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Pr>>>26)|0,Pr&=67108863,Nt=Math.imul(jn,Dr),Ct=Math.imul(jn,Rr),Ct=Ct+Math.imul(Un,Dr)|0,Ht=Math.imul(Un,Rr),Nt=Nt+Math.imul(Zt,Vr)|0,Ct=Ct+Math.imul(Zt,Fr)|0,Ct=Ct+Math.imul(wn,Vr)|0,Ht=Ht+Math.imul(wn,Fr)|0,Nt=Nt+Math.imul(Nn,qr)|0,Ct=Ct+Math.imul(Nn,Or)|0,Ct=Ct+Math.imul(hn,qr)|0,Ht=Ht+Math.imul(hn,Or)|0,Nt=Nt+Math.imul(rn,vn)|0,Ct=Ct+Math.imul(rn,Pn)|0,Ct=Ct+Math.imul(Sn,vn)|0,Ht=Ht+Math.imul(Sn,Pn)|0,Nt=Nt+Math.imul(Cn,Xt)|0,Ct=Ct+Math.imul(Cn,xn)|0,Ct=Ct+Math.imul($n,Xt)|0,Ht=Ht+Math.imul($n,xn)|0,Nt=Nt+Math.imul(kn,Fn)|0,Ct=Ct+Math.imul(kn,Kn)|0,Ct=Ct+Math.imul(dn,Fn)|0,Ht=Ht+Math.imul(dn,Kn)|0,Nt=Nt+Math.imul(Rn,lr)|0,Ct=Ct+Math.imul(Rn,cr)|0,Ct=Ct+Math.imul(An,lr)|0,Ht=Ht+Math.imul(An,cr)|0;var Lr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Lr>>>26)|0,Lr&=67108863,Nt=Math.imul(jn,Vr),Ct=Math.imul(jn,Fr),Ct=Ct+Math.imul(Un,Vr)|0,Ht=Math.imul(Un,Fr),Nt=Nt+Math.imul(Zt,qr)|0,Ct=Ct+Math.imul(Zt,Or)|0,Ct=Ct+Math.imul(wn,qr)|0,Ht=Ht+Math.imul(wn,Or)|0,Nt=Nt+Math.imul(Nn,vn)|0,Ct=Ct+Math.imul(Nn,Pn)|0,Ct=Ct+Math.imul(hn,vn)|0,Ht=Ht+Math.imul(hn,Pn)|0,Nt=Nt+Math.imul(rn,Xt)|0,Ct=Ct+Math.imul(rn,xn)|0,Ct=Ct+Math.imul(Sn,Xt)|0,Ht=Ht+Math.imul(Sn,xn)|0,Nt=Nt+Math.imul(Cn,Fn)|0,Ct=Ct+Math.imul(Cn,Kn)|0,Ct=Ct+Math.imul($n,Fn)|0,Ht=Ht+Math.imul($n,Kn)|0,Nt=Nt+Math.imul(kn,lr)|0,Ct=Ct+Math.imul(kn,cr)|0,Ct=Ct+Math.imul(dn,lr)|0,Ht=Ht+Math.imul(dn,cr)|0;var Nr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Nr>>>26)|0,Nr&=67108863,Nt=Math.imul(jn,qr),Ct=Math.imul(jn,Or),Ct=Ct+Math.imul(Un,qr)|0,Ht=Math.imul(Un,Or),Nt=Nt+Math.imul(Zt,vn)|0,Ct=Ct+Math.imul(Zt,Pn)|0,Ct=Ct+Math.imul(wn,vn)|0,Ht=Ht+Math.imul(wn,Pn)|0,Nt=Nt+Math.imul(Nn,Xt)|0,Ct=Ct+Math.imul(Nn,xn)|0,Ct=Ct+Math.imul(hn,Xt)|0,Ht=Ht+Math.imul(hn,xn)|0,Nt=Nt+Math.imul(rn,Fn)|0,Ct=Ct+Math.imul(rn,Kn)|0,Ct=Ct+Math.imul(Sn,Fn)|0,Ht=Ht+Math.imul(Sn,Kn)|0,Nt=Nt+Math.imul(Cn,lr)|0,Ct=Ct+Math.imul(Cn,cr)|0,Ct=Ct+Math.imul($n,lr)|0,Ht=Ht+Math.imul($n,cr)|0;var Cr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Cr>>>26)|0,Cr&=67108863,Nt=Math.imul(jn,vn),Ct=Math.imul(jn,Pn),Ct=Ct+Math.imul(Un,vn)|0,Ht=Math.imul(Un,Pn),Nt=Nt+Math.imul(Zt,Xt)|0,Ct=Ct+Math.imul(Zt,xn)|0,Ct=Ct+Math.imul(wn,Xt)|0,Ht=Ht+Math.imul(wn,xn)|0,Nt=Nt+Math.imul(Nn,Fn)|0,Ct=Ct+Math.imul(Nn,Kn)|0,Ct=Ct+Math.imul(hn,Fn)|0,Ht=Ht+Math.imul(hn,Kn)|0,Nt=Nt+Math.imul(rn,lr)|0,Ct=Ct+Math.imul(rn,cr)|0,Ct=Ct+Math.imul(Sn,lr)|0,Ht=Ht+Math.imul(Sn,cr)|0;var er=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(er>>>26)|0,er&=67108863,Nt=Math.imul(jn,Xt),Ct=Math.imul(jn,xn),Ct=Ct+Math.imul(Un,Xt)|0,Ht=Math.imul(Un,xn),Nt=Nt+Math.imul(Zt,Fn)|0,Ct=Ct+Math.imul(Zt,Kn)|0,Ct=Ct+Math.imul(wn,Fn)|0,Ht=Ht+Math.imul(wn,Kn)|0,Nt=Nt+Math.imul(Nn,lr)|0,Ct=Ct+Math.imul(Nn,cr)|0,Ct=Ct+Math.imul(hn,lr)|0,Ht=Ht+Math.imul(hn,cr)|0;var ir=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(ir>>>26)|0,ir&=67108863,Nt=Math.imul(jn,Fn),Ct=Math.imul(jn,Kn),Ct=Ct+Math.imul(Un,Fn)|0,Ht=Math.imul(Un,Kn),Nt=Nt+Math.imul(Zt,lr)|0,Ct=Ct+Math.imul(Zt,cr)|0,Ct=Ct+Math.imul(wn,lr)|0,Ht=Ht+Math.imul(wn,cr)|0;var Sr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Sr>>>26)|0,Sr&=67108863,Nt=Math.imul(jn,lr),Ct=Math.imul(jn,cr),Ct=Ct+Math.imul(Un,lr)|0,Ht=Math.imul(Un,cr);var dr=(Ft+Nt|0)+((Ct&8191)<<13)|0;return Ft=(Ht+(Ct>>>13)|0)+(dr>>>26)|0,dr&=67108863,Wt[0]=Hr,Wt[1]=_r,Wt[2]=jr,Wt[3]=Gr,Wt[4]=eo,Wt[5]=Qr,Wt[6]=_i,Wt[7]=wr,Wt[8]=$r,Wt[9]=Wr,Wt[10]=Br,Wt[11]=Pr,Wt[12]=Lr,Wt[13]=Nr,Wt[14]=Cr,Wt[15]=er,Wt[16]=ir,Wt[17]=Sr,Wt[18]=dr,Ft!==0&&(Wt[19]=Ft,Ot.length++),Ot};Math.imul||(wt=bt);function vt($t,xt,It){It.negative=xt.negative^$t.negative,It.length=$t.length+xt.length;for(var Ot=0,zt=0,Ut=0;Ut>>26)|0,zt+=Wt>>>26,Wt&=67108863}It.words[Ut]=Ft,Ot=Wt,Wt=zt}return Ot!==0?It.words[Ut]=Ot:It.length--,It._strip()}function kt($t,xt,It){return vt($t,xt,It)}ot.prototype.mulTo=function(xt,It){var Ot,zt=this.length+xt.length;return this.length===10&&xt.length===10?Ot=wt(this,xt,It):zt<63?Ot=bt(this,xt,It):zt<1024?Ot=vt(this,xt,It):Ot=kt(this,xt,It),Ot},ot.prototype.mul=function(xt){var It=new ot(null);return It.words=new Array(this.length+xt.length),this.mulTo(xt,It)},ot.prototype.mulf=function(xt){var It=new ot(null);return It.words=new Array(this.length+xt.length),kt(this,xt,It)},ot.prototype.imul=function(xt){return this.clone().mulTo(xt,this)},ot.prototype.imuln=function(xt){var It=xt<0;It&&(xt=-xt),rt(typeof xt=="number"),rt(xt<67108864);for(var Ot=0,zt=0;zt>=26,Ot+=Ut/67108864|0,Ot+=Wt>>>26,this.words[zt]=Wt&67108863}return Ot!==0&&(this.words[zt]=Ot,this.length++),It?this.ineg():this},ot.prototype.muln=function(xt){return this.clone().imuln(xt)},ot.prototype.sqr=function(){return this.mul(this)},ot.prototype.isqr=function(){return this.imul(this.clone())},ot.prototype.pow=function(xt){var It=yt(xt);if(It.length===0)return new ot(1);for(var Ot=this,zt=0;zt=0);var It=xt%26,Ot=(xt-It)/26,zt=67108863>>>26-It<<26-It,Ut;if(It!==0){var Wt=0;for(Ut=0;Ut>>26-It}Wt&&(this.words[Ut]=Wt,this.length++)}if(Ot!==0){for(Ut=this.length-1;Ut>=0;Ut--)this.words[Ut+Ot]=this.words[Ut];for(Ut=0;Ut=0);var zt;It?zt=(It-It%26)/26:zt=0;var Ut=xt%26,Wt=Math.min((xt-Ut)/26,this.length),Ft=67108863^67108863>>>Ut<Wt)for(this.length-=Wt,Ct=0;Ct=0&&(Ht!==0||Ct>=zt);Ct--){var Jt=this.words[Ct]|0;this.words[Ct]=Ht<<26-Ut|Jt>>>Ut,Ht=Jt&Ft}return Nt&&Ht!==0&&(Nt.words[Nt.length++]=Ht),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},ot.prototype.ishrn=function(xt,It,Ot){return rt(this.negative===0),this.iushrn(xt,It,Ot)},ot.prototype.shln=function(xt){return this.clone().ishln(xt)},ot.prototype.ushln=function(xt){return this.clone().iushln(xt)},ot.prototype.shrn=function(xt){return this.clone().ishrn(xt)},ot.prototype.ushrn=function(xt){return this.clone().iushrn(xt)},ot.prototype.testn=function(xt){rt(typeof xt=="number"&&xt>=0);var It=xt%26,Ot=(xt-It)/26,zt=1<=0);var It=xt%26,Ot=(xt-It)/26;if(rt(this.negative===0,"imaskn works only with positive numbers"),this.length<=Ot)return this;if(It!==0&&Ot++,this.length=Math.min(Ot,this.length),It!==0){var zt=67108863^67108863>>>It<=67108864;It++)this.words[It]-=67108864,It===this.length-1?this.words[It+1]=1:this.words[It+1]++;return this.length=Math.max(this.length,It+1),this},ot.prototype.isubn=function(xt){if(rt(typeof xt=="number"),rt(xt<67108864),xt<0)return this.iaddn(-xt);if(this.negative!==0)return this.negative=0,this.iaddn(xt),this.negative=1,this;if(this.words[0]-=xt,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var It=0;It>26)-(Nt/67108864|0),this.words[Ut+Ot]=Wt&67108863}for(;Ut>26,this.words[Ut+Ot]=Wt&67108863;if(Ft===0)return this._strip();for(rt(Ft===-1),Ft=0,Ut=0;Ut>26,this.words[Ut]=Wt&67108863;return this.negative=1,this._strip()},ot.prototype._wordDiv=function(xt,It){var Ot=this.length-xt.length,zt=this.clone(),Ut=xt,Wt=Ut.words[Ut.length-1]|0,Ft=this._countBits(Wt);Ot=26-Ft,Ot!==0&&(Ut=Ut.ushln(Ot),zt.iushln(Ot),Wt=Ut.words[Ut.length-1]|0);var Nt=zt.length-Ut.length,Ct;if(It!=="mod"){Ct=new ot(null),Ct.length=Nt+1,Ct.words=new Array(Ct.length);for(var Ht=0;Ht=0;nn--){var Yt=(zt.words[Ut.length+nn]|0)*67108864+(zt.words[Ut.length+nn-1]|0);for(Yt=Math.min(Yt/Wt|0,67108863),zt._ishlnsubmul(Ut,Yt,nn);zt.negative!==0;)Yt--,zt.negative=0,zt._ishlnsubmul(Ut,1,nn),zt.isZero()||(zt.negative^=1);Ct&&(Ct.words[nn]=Yt)}return Ct&&Ct._strip(),zt._strip(),It!=="div"&&Ot!==0&&zt.iushrn(Ot),{div:Ct||null,mod:zt}},ot.prototype.divmod=function(xt,It,Ot){if(rt(!xt.isZero()),this.isZero())return{div:new ot(0),mod:new ot(0)};var zt,Ut,Wt;return this.negative!==0&&xt.negative===0?(Wt=this.neg().divmod(xt,It),It!=="mod"&&(zt=Wt.div.neg()),It!=="div"&&(Ut=Wt.mod.neg(),Ot&&Ut.negative!==0&&Ut.iadd(xt)),{div:zt,mod:Ut}):this.negative===0&&xt.negative!==0?(Wt=this.divmod(xt.neg(),It),It!=="mod"&&(zt=Wt.div.neg()),{div:zt,mod:Wt.mod}):this.negative&xt.negative?(Wt=this.neg().divmod(xt.neg(),It),It!=="div"&&(Ut=Wt.mod.neg(),Ot&&Ut.negative!==0&&Ut.isub(xt)),{div:Wt.div,mod:Ut}):xt.length>this.length||this.cmp(xt)<0?{div:new ot(0),mod:this}:xt.length===1?It==="div"?{div:this.divn(xt.words[0]),mod:null}:It==="mod"?{div:null,mod:new ot(this.modrn(xt.words[0]))}:{div:this.divn(xt.words[0]),mod:new ot(this.modrn(xt.words[0]))}:this._wordDiv(xt,It)},ot.prototype.div=function(xt){return this.divmod(xt,"div",!1).div},ot.prototype.mod=function(xt){return this.divmod(xt,"mod",!1).mod},ot.prototype.umod=function(xt){return this.divmod(xt,"mod",!0).mod},ot.prototype.divRound=function(xt){var It=this.divmod(xt);if(It.mod.isZero())return It.div;var Ot=It.div.negative!==0?It.mod.isub(xt):It.mod,zt=xt.ushrn(1),Ut=xt.andln(1),Wt=Ot.cmp(zt);return Wt<0||Ut===1&&Wt===0?It.div:It.div.negative!==0?It.div.isubn(1):It.div.iaddn(1)},ot.prototype.modrn=function(xt){var It=xt<0;It&&(xt=-xt),rt(xt<=67108863);for(var Ot=(1<<26)%xt,zt=0,Ut=this.length-1;Ut>=0;Ut--)zt=(Ot*zt+(this.words[Ut]|0))%xt;return It?-zt:zt},ot.prototype.modn=function(xt){return this.modrn(xt)},ot.prototype.idivn=function(xt){var It=xt<0;It&&(xt=-xt),rt(xt<=67108863);for(var Ot=0,zt=this.length-1;zt>=0;zt--){var Ut=(this.words[zt]|0)+Ot*67108864;this.words[zt]=Ut/xt|0,Ot=Ut%xt}return this._strip(),It?this.ineg():this},ot.prototype.divn=function(xt){return this.clone().idivn(xt)},ot.prototype.egcd=function(xt){rt(xt.negative===0),rt(!xt.isZero());var It=this,Ot=xt.clone();It.negative!==0?It=It.umod(xt):It=It.clone();for(var zt=new ot(1),Ut=new ot(0),Wt=new ot(0),Ft=new ot(1),Nt=0;It.isEven()&&Ot.isEven();)It.iushrn(1),Ot.iushrn(1),++Nt;for(var Ct=Ot.clone(),Ht=It.clone();!It.isZero();){for(var Jt=0,nn=1;!(It.words[0]&nn)&&Jt<26;++Jt,nn<<=1);if(Jt>0)for(It.iushrn(Jt);Jt-- >0;)(zt.isOdd()||Ut.isOdd())&&(zt.iadd(Ct),Ut.isub(Ht)),zt.iushrn(1),Ut.iushrn(1);for(var Yt=0,fn=1;!(Ot.words[0]&fn)&&Yt<26;++Yt,fn<<=1);if(Yt>0)for(Ot.iushrn(Yt);Yt-- >0;)(Wt.isOdd()||Ft.isOdd())&&(Wt.iadd(Ct),Ft.isub(Ht)),Wt.iushrn(1),Ft.iushrn(1);It.cmp(Ot)>=0?(It.isub(Ot),zt.isub(Wt),Ut.isub(Ft)):(Ot.isub(It),Wt.isub(zt),Ft.isub(Ut))}return{a:Wt,b:Ft,gcd:Ot.iushln(Nt)}},ot.prototype._invmp=function(xt){rt(xt.negative===0),rt(!xt.isZero());var It=this,Ot=xt.clone();It.negative!==0?It=It.umod(xt):It=It.clone();for(var zt=new ot(1),Ut=new ot(0),Wt=Ot.clone();It.cmpn(1)>0&&Ot.cmpn(1)>0;){for(var Ft=0,Nt=1;!(It.words[0]&Nt)&&Ft<26;++Ft,Nt<<=1);if(Ft>0)for(It.iushrn(Ft);Ft-- >0;)zt.isOdd()&&zt.iadd(Wt),zt.iushrn(1);for(var Ct=0,Ht=1;!(Ot.words[0]&Ht)&&Ct<26;++Ct,Ht<<=1);if(Ct>0)for(Ot.iushrn(Ct);Ct-- >0;)Ut.isOdd()&&Ut.iadd(Wt),Ut.iushrn(1);It.cmp(Ot)>=0?(It.isub(Ot),zt.isub(Ut)):(Ot.isub(It),Ut.isub(zt))}var Jt;return It.cmpn(1)===0?Jt=zt:Jt=Ut,Jt.cmpn(0)<0&&Jt.iadd(xt),Jt},ot.prototype.gcd=function(xt){if(this.isZero())return xt.abs();if(xt.isZero())return this.abs();var It=this.clone(),Ot=xt.clone();It.negative=0,Ot.negative=0;for(var zt=0;It.isEven()&&Ot.isEven();zt++)It.iushrn(1),Ot.iushrn(1);do{for(;It.isEven();)It.iushrn(1);for(;Ot.isEven();)Ot.iushrn(1);var Ut=It.cmp(Ot);if(Ut<0){var Wt=It;It=Ot,Ot=Wt}else if(Ut===0||Ot.cmpn(1)===0)break;It.isub(Ot)}while(!0);return Ot.iushln(zt)},ot.prototype.invm=function(xt){return this.egcd(xt).a.umod(xt)},ot.prototype.isEven=function(){return(this.words[0]&1)===0},ot.prototype.isOdd=function(){return(this.words[0]&1)===1},ot.prototype.andln=function(xt){return this.words[0]&xt},ot.prototype.bincn=function(xt){rt(typeof xt=="number");var It=xt%26,Ot=(xt-It)/26,zt=1<>>26,Ft&=67108863,this.words[Wt]=Ft}return Ut!==0&&(this.words[Wt]=Ut,this.length++),this},ot.prototype.isZero=function(){return this.length===1&&this.words[0]===0},ot.prototype.cmpn=function(xt){var It=xt<0;if(this.negative!==0&&!It)return-1;if(this.negative===0&&It)return 1;this._strip();var Ot;if(this.length>1)Ot=1;else{It&&(xt=-xt),rt(xt<=67108863,"Number is too big");var zt=this.words[0]|0;Ot=zt===xt?0:ztxt.length)return 1;if(this.length=0;Ot--){var zt=this.words[Ot]|0,Ut=xt.words[Ot]|0;if(zt!==Ut){ztUt&&(It=1);break}}return It},ot.prototype.gtn=function(xt){return this.cmpn(xt)===1},ot.prototype.gt=function(xt){return this.cmp(xt)===1},ot.prototype.gten=function(xt){return this.cmpn(xt)>=0},ot.prototype.gte=function(xt){return this.cmp(xt)>=0},ot.prototype.ltn=function(xt){return this.cmpn(xt)===-1},ot.prototype.lt=function(xt){return this.cmp(xt)===-1},ot.prototype.lten=function(xt){return this.cmpn(xt)<=0},ot.prototype.lte=function(xt){return this.cmp(xt)<=0},ot.prototype.eqn=function(xt){return this.cmpn(xt)===0},ot.prototype.eq=function(xt){return this.cmp(xt)===0},ot.red=function(xt){return new jt(xt)},ot.prototype.toRed=function(xt){return rt(!this.red,"Already a number in reduction context"),rt(this.negative===0,"red works only with positives"),xt.convertTo(this)._forceRed(xt)},ot.prototype.fromRed=function(){return rt(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},ot.prototype._forceRed=function(xt){return this.red=xt,this},ot.prototype.forceRed=function(xt){return rt(!this.red,"Already a number in reduction context"),this._forceRed(xt)},ot.prototype.redAdd=function(xt){return rt(this.red,"redAdd works only with red numbers"),this.red.add(this,xt)},ot.prototype.redIAdd=function(xt){return rt(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,xt)},ot.prototype.redSub=function(xt){return rt(this.red,"redSub works only with red numbers"),this.red.sub(this,xt)},ot.prototype.redISub=function(xt){return rt(this.red,"redISub works only with red numbers"),this.red.isub(this,xt)},ot.prototype.redShl=function(xt){return rt(this.red,"redShl works only with red numbers"),this.red.shl(this,xt)},ot.prototype.redMul=function(xt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,xt),this.red.mul(this,xt)},ot.prototype.redIMul=function(xt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,xt),this.red.imul(this,xt)},ot.prototype.redSqr=function(){return rt(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},ot.prototype.redISqr=function(){return rt(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},ot.prototype.redSqrt=function(){return rt(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},ot.prototype.redInvm=function(){return rt(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},ot.prototype.redNeg=function(){return rt(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},ot.prototype.redPow=function(xt){return rt(this.red&&!xt.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,xt)};var St={k256:null,p224:null,p192:null,p25519:null};function Et($t,xt){this.name=$t,this.p=new ot(xt,16),this.n=this.p.bitLength(),this.k=new ot(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}Et.prototype._tmp=function(){var xt=new ot(null);return xt.words=new Array(Math.ceil(this.n/13)),xt},Et.prototype.ireduce=function(xt){var It=xt,Ot;do this.split(It,this.tmp),It=this.imulK(It),It=It.iadd(this.tmp),Ot=It.bitLength();while(Ot>this.n);var zt=Ot0?It.isub(this.p):It.strip!==void 0?It.strip():It._strip(),It},Et.prototype.split=function(xt,It){xt.iushrn(this.n,0,It)},Et.prototype.imulK=function(xt){return xt.imul(this.k)};function At(){Et.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}it(At,Et),At.prototype.split=function(xt,It){for(var Ot=4194303,zt=Math.min(xt.length,9),Ut=0;Ut>>22,Wt=Ft}Wt>>>=22,xt.words[Ut-10]=Wt,Wt===0&&xt.length>10?xt.length-=10:xt.length-=9},At.prototype.imulK=function(xt){xt.words[xt.length]=0,xt.words[xt.length+1]=0,xt.length+=2;for(var It=0,Ot=0;Ot>>=26,xt.words[Ot]=Ut,It=zt}return It!==0&&(xt.words[xt.length++]=It),xt},ot._prime=function(xt){if(St[xt])return St[xt];var It;if(xt==="k256")It=new At;else if(xt==="p224")It=new Tt;else if(xt==="p192")It=new Mt;else if(xt==="p25519")It=new Lt;else throw new Error("Unknown prime "+xt);return St[xt]=It,It};function jt($t){if(typeof $t=="string"){var xt=ot._prime($t);this.m=xt.p,this.prime=xt}else rt($t.gtn(1),"modulus must be greater than 1"),this.m=$t,this.prime=null}jt.prototype._verify1=function(xt){rt(xt.negative===0,"red works only with positives"),rt(xt.red,"red works only with red numbers")},jt.prototype._verify2=function(xt,It){rt((xt.negative|It.negative)===0,"red works only with positives"),rt(xt.red&&xt.red===It.red,"red works only with red numbers")},jt.prototype.imod=function(xt){return this.prime?this.prime.ireduce(xt)._forceRed(this):(ut(xt,xt.umod(this.m)._forceRed(this)),xt)},jt.prototype.neg=function(xt){return xt.isZero()?xt.clone():this.m.sub(xt)._forceRed(this)},jt.prototype.add=function(xt,It){this._verify2(xt,It);var Ot=xt.add(It);return Ot.cmp(this.m)>=0&&Ot.isub(this.m),Ot._forceRed(this)},jt.prototype.iadd=function(xt,It){this._verify2(xt,It);var Ot=xt.iadd(It);return Ot.cmp(this.m)>=0&&Ot.isub(this.m),Ot},jt.prototype.sub=function(xt,It){this._verify2(xt,It);var Ot=xt.sub(It);return Ot.cmpn(0)<0&&Ot.iadd(this.m),Ot._forceRed(this)},jt.prototype.isub=function(xt,It){this._verify2(xt,It);var Ot=xt.isub(It);return Ot.cmpn(0)<0&&Ot.iadd(this.m),Ot},jt.prototype.shl=function(xt,It){return this._verify1(xt),this.imod(xt.ushln(It))},jt.prototype.imul=function(xt,It){return this._verify2(xt,It),this.imod(xt.imul(It))},jt.prototype.mul=function(xt,It){return this._verify2(xt,It),this.imod(xt.mul(It))},jt.prototype.isqr=function(xt){return this.imul(xt,xt.clone())},jt.prototype.sqr=function(xt){return this.mul(xt,xt)},jt.prototype.sqrt=function(xt){if(xt.isZero())return xt.clone();var It=this.m.andln(3);if(rt(It%2===1),It===3){var Ot=this.m.add(new ot(1)).iushrn(2);return this.pow(xt,Ot)}for(var zt=this.m.subn(1),Ut=0;!zt.isZero()&&zt.andln(1)===0;)Ut++,zt.iushrn(1);rt(!zt.isZero());var Wt=new ot(1).toRed(this),Ft=Wt.redNeg(),Nt=this.m.subn(1).iushrn(1),Ct=this.m.bitLength();for(Ct=new ot(2*Ct*Ct).toRed(this);this.pow(Ct,Nt).cmp(Ft)!==0;)Ct.redIAdd(Ft);for(var Ht=this.pow(Ct,zt),Jt=this.pow(xt,zt.addn(1).iushrn(1)),nn=this.pow(xt,zt),Yt=Ut;nn.cmp(Wt)!==0;){for(var fn=nn,cn=0;fn.cmp(Wt)!==0;cn++)fn=fn.redSqr();rt(cn=0;Ut--){for(var Ht=It.words[Ut],Jt=Ct-1;Jt>=0;Jt--){var nn=Ht>>Jt&1;if(Wt!==zt[0]&&(Wt=this.sqr(Wt)),nn===0&&Ft===0){Nt=0;continue}Ft<<=1,Ft|=nn,Nt++,!(Nt!==Ot&&(Ut!==0||Jt!==0))&&(Wt=this.mul(Wt,zt[Ft]),Nt=0,Ft=0)}Ct=26}return Wt},jt.prototype.convertTo=function(xt){var It=xt.umod(this.m);return It===xt?It.clone():It},jt.prototype.convertFrom=function(xt){var It=xt.clone();return It.red=null,It},ot.mont=function(xt){return new Rt(xt)};function Rt($t){jt.call(this,$t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new ot(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}it(Rt,jt),Rt.prototype.convertTo=function(xt){return this.imod(xt.ushln(this.shift))},Rt.prototype.convertFrom=function(xt){var It=this.imod(xt.mul(this.rinv));return It.red=null,It},Rt.prototype.imul=function(xt,It){if(xt.isZero()||It.isZero())return xt.words[0]=0,xt.length=1,xt;var Ot=xt.imul(It),zt=Ot.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ut=Ot.isub(zt).iushrn(this.shift),Wt=Ut;return Ut.cmp(this.m)>=0?Wt=Ut.isub(this.m):Ut.cmpn(0)<0&&(Wt=Ut.iadd(this.m)),Wt._forceRed(this)},Rt.prototype.mul=function(xt,It){if(xt.isZero()||It.isZero())return new ot(0)._forceRed(this);var Ot=xt.mul(It),zt=Ot.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ut=Ot.isub(zt).iushrn(this.shift),Wt=Ut;return Ut.cmp(this.m)>=0?Wt=Ut.isub(this.m):Ut.cmpn(0)<0&&(Wt=Ut.iadd(this.m)),Wt._forceRed(this)},Rt.prototype.invm=function(xt){var It=this.imod(xt._invmp(this.m).mul(this.r2));return It._forceRed(this)}})(tt,commonjsGlobal)})(bn$1);var bnExports$1=bn$1.exports,BN$c=bnExports$1,randomBytes$1=browserExports;function blind(tt){var et=getr(tt),nt=et.toRed(BN$c.mont(tt.modulus)).redPow(new BN$c(tt.publicExponent)).fromRed();return{blinder:nt,unblinder:et.invm(tt.modulus)}}function getr(tt){var et=tt.modulus.byteLength(),nt;do nt=new BN$c(randomBytes$1(et));while(nt.cmp(tt.modulus)>=0||!nt.umod(tt.prime1)||!nt.umod(tt.prime2));return nt}function crt$2(tt,et){var nt=blind(et),rt=et.modulus.byteLength(),it=new BN$c(tt).mul(nt.blinder).umod(et.modulus),ot=it.toRed(BN$c.mont(et.prime1)),at=it.toRed(BN$c.mont(et.prime2)),st=et.coefficient,lt=et.prime1,ct=et.prime2,ut=ot.redPow(et.exponent1).fromRed(),ht=at.redPow(et.exponent2).fromRed(),dt=ut.isub(ht).imul(st).umod(lt).imul(ct);return ht.iadd(dt).imul(nt.unblinder).umod(et.modulus).toArrayLike(Buffer,"be",rt)}crt$2.getr=getr;var browserifyRsa=crt$2,elliptic$2={};const name$1="elliptic",version$2="6.5.4",description="EC cryptography",main="lib/elliptic.js",files=["lib"],scripts={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository={type:"git",url:"git@github.com:indutny/elliptic"},keywords=["EC","Elliptic","curve","Cryptography"],author="Fedor Indutny ",license="MIT",bugs={url:"https://github.com/indutny/elliptic/issues"},homepage="https://github.com/indutny/elliptic",devDependencies={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},require$$0$1={name:name$1,version:version$2,description,main,files,scripts,repository,keywords,author,license,bugs,homepage,devDependencies,dependencies};var utils$o={},utils$n={};(function(tt){var et=tt;function nt(ot,at){if(Array.isArray(ot))return ot.slice();if(!ot)return[];var st=[];if(typeof ot!="string"){for(var lt=0;lt>8,ht=ct&255;ut?st.push(ut,ht):st.push(ht)}return st}et.toArray=nt;function rt(ot){return ot.length===1?"0"+ot:ot}et.zero2=rt;function it(ot){for(var at="",st=0;st(mt>>1)-1?bt=(mt>>1)-wt:bt=wt,gt.isubn(bt)):bt=0,pt[yt]=bt,gt.iushrn(1)}return pt}et.getNAF=ot;function at(ut,ht){var dt=[[],[]];ut=ut.clone(),ht=ht.clone();for(var pt=0,mt=0,gt;ut.cmpn(-pt)>0||ht.cmpn(-mt)>0;){var yt=ut.andln(3)+pt&3,bt=ht.andln(3)+mt&3;yt===3&&(yt=-1),bt===3&&(bt=-1);var wt;yt&1?(gt=ut.andln(7)+pt&7,(gt===3||gt===5)&&bt===2?wt=-yt:wt=yt):wt=0,dt[0].push(wt);var vt;bt&1?(gt=ht.andln(7)+mt&7,(gt===3||gt===5)&&yt===2?vt=-bt:vt=bt):vt=0,dt[1].push(vt),2*pt===wt+1&&(pt=1-pt),2*mt===vt+1&&(mt=1-mt),ut.iushrn(1),ht.iushrn(1)}return dt}et.getJSF=at;function st(ut,ht,dt){var pt="_"+ht;ut.prototype[ht]=function(){return this[pt]!==void 0?this[pt]:this[pt]=dt.call(this)}}et.cachedProperty=st;function lt(ut){return typeof ut=="string"?et.toArray(ut,"hex"):ut}et.parseBytes=lt;function ct(ut){return new nt(ut,"hex","le")}et.intFromLE=ct})(utils$o);var curve={},BN$b=bnExports$2,utils$m=utils$o,getNAF=utils$m.getNAF,getJSF=utils$m.getJSF,assert$k=utils$m.assert;function BaseCurve(tt,et){this.type=tt,this.p=new BN$b(et.p,16),this.red=et.prime?BN$b.red(et.prime):BN$b.mont(this.p),this.zero=new BN$b(0).toRed(this.red),this.one=new BN$b(1).toRed(this.red),this.two=new BN$b(2).toRed(this.red),this.n=et.n&&new BN$b(et.n,16),this.g=et.g&&this.pointFromJSON(et.g,et.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var nt=this.n&&this.p.div(this.n);!nt||nt.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var base$3=BaseCurve;BaseCurve.prototype.point=function(){throw new Error("Not implemented")};BaseCurve.prototype.validate=function(){throw new Error("Not implemented")};BaseCurve.prototype._fixedNafMul=function(et,nt){assert$k(et.precomputed);var rt=et._getDoubles(),it=getNAF(nt,1,this._bitLength),ot=(1<=st;ct--)lt=(lt<<1)+it[ct];at.push(lt)}for(var ut=this.jpoint(null,null,null),ht=this.jpoint(null,null,null),dt=ot;dt>0;dt--){for(st=0;st=0;lt--){for(var ct=0;lt>=0&&at[lt]===0;lt--)ct++;if(lt>=0&&ct++,st=st.dblp(ct),lt<0)break;var ut=at[lt];assert$k(ut!==0),et.type==="affine"?ut>0?st=st.mixedAdd(ot[ut-1>>1]):st=st.mixedAdd(ot[-ut-1>>1].neg()):ut>0?st=st.add(ot[ut-1>>1]):st=st.add(ot[-ut-1>>1].neg())}return et.type==="affine"?st.toP():st};BaseCurve.prototype._wnafMulAdd=function(et,nt,rt,it,ot){var at=this._wnafT1,st=this._wnafT2,lt=this._wnafT3,ct=0,ut,ht,dt;for(ut=0;ut=1;ut-=2){var mt=ut-1,gt=ut;if(at[mt]!==1||at[gt]!==1){lt[mt]=getNAF(rt[mt],at[mt],this._bitLength),lt[gt]=getNAF(rt[gt],at[gt],this._bitLength),ct=Math.max(lt[mt].length,ct),ct=Math.max(lt[gt].length,ct);continue}var yt=[nt[mt],null,null,nt[gt]];nt[mt].y.cmp(nt[gt].y)===0?(yt[1]=nt[mt].add(nt[gt]),yt[2]=nt[mt].toJ().mixedAdd(nt[gt].neg())):nt[mt].y.cmp(nt[gt].y.redNeg())===0?(yt[1]=nt[mt].toJ().mixedAdd(nt[gt]),yt[2]=nt[mt].add(nt[gt].neg())):(yt[1]=nt[mt].toJ().mixedAdd(nt[gt]),yt[2]=nt[mt].toJ().mixedAdd(nt[gt].neg()));var bt=[-3,-1,-5,-7,0,7,5,1,3],wt=getJSF(rt[mt],rt[gt]);for(ct=Math.max(wt[0].length,ct),lt[mt]=new Array(ct),lt[gt]=new Array(ct),ht=0;ht=0;ut--){for(var At=0;ut>=0;){var Tt=!0;for(ht=0;ht=0&&At++,St=St.dblp(At),ut<0)break;for(ht=0;ht0?dt=st[ht][Mt-1>>1]:Mt<0&&(dt=st[ht][-Mt-1>>1].neg()),dt.type==="affine"?St=St.mixedAdd(dt):St=St.add(dt))}}for(ut=0;ut=Math.ceil((et.bitLength()+1)/nt.step):!1};BasePoint.prototype._getDoubles=function(et,nt){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var rt=[this],it=this,ot=0;ot=0&&(pt=ct,mt=ut),ht.negative&&(ht=ht.neg(),dt=dt.neg()),pt.negative&&(pt=pt.neg(),mt=mt.neg()),[{a:ht,b:dt},{a:pt,b:mt}]};ShortCurve.prototype._endoSplit=function(et){var nt=this.endo.basis,rt=nt[0],it=nt[1],ot=it.b.mul(et).divRound(this.n),at=rt.b.neg().mul(et).divRound(this.n),st=ot.mul(rt.a),lt=at.mul(it.a),ct=ot.mul(rt.b),ut=at.mul(it.b),ht=et.sub(st).sub(lt),dt=ct.add(ut).neg();return{k1:ht,k2:dt}};ShortCurve.prototype.pointFromX=function(et,nt){et=new BN$a(et,16),et.red||(et=et.toRed(this.red));var rt=et.redSqr().redMul(et).redIAdd(et.redMul(this.a)).redIAdd(this.b),it=rt.redSqrt();if(it.redSqr().redSub(rt).cmp(this.zero)!==0)throw new Error("invalid point");var ot=it.fromRed().isOdd();return(nt&&!ot||!nt&&ot)&&(it=it.redNeg()),this.point(et,it)};ShortCurve.prototype.validate=function(et){if(et.inf)return!0;var nt=et.x,rt=et.y,it=this.a.redMul(nt),ot=nt.redSqr().redMul(nt).redIAdd(it).redIAdd(this.b);return rt.redSqr().redISub(ot).cmpn(0)===0};ShortCurve.prototype._endoWnafMulAdd=function(et,nt,rt){for(var it=this._endoWnafT1,ot=this._endoWnafT2,at=0;at":""};Point$2.prototype.isInfinity=function(){return this.inf};Point$2.prototype.add=function(et){if(this.inf)return et;if(et.inf)return this;if(this.eq(et))return this.dbl();if(this.neg().eq(et))return this.curve.point(null,null);if(this.x.cmp(et.x)===0)return this.curve.point(null,null);var nt=this.y.redSub(et.y);nt.cmpn(0)!==0&&(nt=nt.redMul(this.x.redSub(et.x).redInvm()));var rt=nt.redSqr().redISub(this.x).redISub(et.x),it=nt.redMul(this.x.redSub(rt)).redISub(this.y);return this.curve.point(rt,it)};Point$2.prototype.dbl=function(){if(this.inf)return this;var et=this.y.redAdd(this.y);if(et.cmpn(0)===0)return this.curve.point(null,null);var nt=this.curve.a,rt=this.x.redSqr(),it=et.redInvm(),ot=rt.redAdd(rt).redIAdd(rt).redIAdd(nt).redMul(it),at=ot.redSqr().redISub(this.x.redAdd(this.x)),st=ot.redMul(this.x.redSub(at)).redISub(this.y);return this.curve.point(at,st)};Point$2.prototype.getX=function(){return this.x.fromRed()};Point$2.prototype.getY=function(){return this.y.fromRed()};Point$2.prototype.mul=function(et){return et=new BN$a(et,16),this.isInfinity()?this:this._hasDoubles(et)?this.curve._fixedNafMul(this,et):this.curve.endo?this.curve._endoWnafMulAdd([this],[et]):this.curve._wnafMul(this,et)};Point$2.prototype.mulAdd=function(et,nt,rt){var it=[this,nt],ot=[et,rt];return this.curve.endo?this.curve._endoWnafMulAdd(it,ot):this.curve._wnafMulAdd(1,it,ot,2)};Point$2.prototype.jmulAdd=function(et,nt,rt){var it=[this,nt],ot=[et,rt];return this.curve.endo?this.curve._endoWnafMulAdd(it,ot,!0):this.curve._wnafMulAdd(1,it,ot,2,!0)};Point$2.prototype.eq=function(et){return this===et||this.inf===et.inf&&(this.inf||this.x.cmp(et.x)===0&&this.y.cmp(et.y)===0)};Point$2.prototype.neg=function(et){if(this.inf)return this;var nt=this.curve.point(this.x,this.y.redNeg());if(et&&this.precomputed){var rt=this.precomputed,it=function(ot){return ot.neg()};nt.precomputed={naf:rt.naf&&{wnd:rt.naf.wnd,points:rt.naf.points.map(it)},doubles:rt.doubles&&{step:rt.doubles.step,points:rt.doubles.points.map(it)}}}return nt};Point$2.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var et=this.curve.jpoint(this.x,this.y,this.curve.one);return et};function JPoint(tt,et,nt,rt){Base$2.BasePoint.call(this,tt,"jacobian"),et===null&&nt===null&&rt===null?(this.x=this.curve.one,this.y=this.curve.one,this.z=new BN$a(0)):(this.x=new BN$a(et,16),this.y=new BN$a(nt,16),this.z=new BN$a(rt,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}inherits$9(JPoint,Base$2.BasePoint);ShortCurve.prototype.jpoint=function(et,nt,rt){return new JPoint(this,et,nt,rt)};JPoint.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var et=this.z.redInvm(),nt=et.redSqr(),rt=this.x.redMul(nt),it=this.y.redMul(nt).redMul(et);return this.curve.point(rt,it)};JPoint.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};JPoint.prototype.add=function(et){if(this.isInfinity())return et;if(et.isInfinity())return this;var nt=et.z.redSqr(),rt=this.z.redSqr(),it=this.x.redMul(nt),ot=et.x.redMul(rt),at=this.y.redMul(nt.redMul(et.z)),st=et.y.redMul(rt.redMul(this.z)),lt=it.redSub(ot),ct=at.redSub(st);if(lt.cmpn(0)===0)return ct.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var ut=lt.redSqr(),ht=ut.redMul(lt),dt=it.redMul(ut),pt=ct.redSqr().redIAdd(ht).redISub(dt).redISub(dt),mt=ct.redMul(dt.redISub(pt)).redISub(at.redMul(ht)),gt=this.z.redMul(et.z).redMul(lt);return this.curve.jpoint(pt,mt,gt)};JPoint.prototype.mixedAdd=function(et){if(this.isInfinity())return et.toJ();if(et.isInfinity())return this;var nt=this.z.redSqr(),rt=this.x,it=et.x.redMul(nt),ot=this.y,at=et.y.redMul(nt).redMul(this.z),st=rt.redSub(it),lt=ot.redSub(at);if(st.cmpn(0)===0)return lt.cmpn(0)!==0?this.curve.jpoint(null,null,null):this.dbl();var ct=st.redSqr(),ut=ct.redMul(st),ht=rt.redMul(ct),dt=lt.redSqr().redIAdd(ut).redISub(ht).redISub(ht),pt=lt.redMul(ht.redISub(dt)).redISub(ot.redMul(ut)),mt=this.z.redMul(st);return this.curve.jpoint(dt,pt,mt)};JPoint.prototype.dblp=function(et){if(et===0)return this;if(this.isInfinity())return this;if(!et)return this.dbl();var nt;if(this.curve.zeroA||this.curve.threeA){var rt=this;for(nt=0;nt=0)return!1;if(rt.redIAdd(ot),this.x.cmp(rt)===0)return!0}};JPoint.prototype.inspect=function(){return this.isInfinity()?"":""};JPoint.prototype.isInfinity=function(){return this.z.cmpn(0)===0};var BN$9=bnExports$2,inherits$8=inherits_browserExports,Base$1=base$3,utils$k=utils$o;function MontCurve(tt){Base$1.call(this,"mont",tt),this.a=new BN$9(tt.a,16).toRed(this.red),this.b=new BN$9(tt.b,16).toRed(this.red),this.i4=new BN$9(4).toRed(this.red).redInvm(),this.two=new BN$9(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits$8(MontCurve,Base$1);var mont=MontCurve;MontCurve.prototype.validate=function(et){var nt=et.normalize().x,rt=nt.redSqr(),it=rt.redMul(nt).redAdd(rt.redMul(this.a)).redAdd(nt),ot=it.redSqrt();return ot.redSqr().cmp(it)===0};function Point$1(tt,et,nt){Base$1.BasePoint.call(this,tt,"projective"),et===null&&nt===null?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new BN$9(et,16),this.z=new BN$9(nt,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}inherits$8(Point$1,Base$1.BasePoint);MontCurve.prototype.decodePoint=function(et,nt){return this.point(utils$k.toArray(et,nt),1)};MontCurve.prototype.point=function(et,nt){return new Point$1(this,et,nt)};MontCurve.prototype.pointFromJSON=function(et){return Point$1.fromJSON(this,et)};Point$1.prototype.precompute=function(){};Point$1.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())};Point$1.fromJSON=function(et,nt){return new Point$1(et,nt[0],nt[1]||et.one)};Point$1.prototype.inspect=function(){return this.isInfinity()?"":""};Point$1.prototype.isInfinity=function(){return this.z.cmpn(0)===0};Point$1.prototype.dbl=function(){var et=this.x.redAdd(this.z),nt=et.redSqr(),rt=this.x.redSub(this.z),it=rt.redSqr(),ot=nt.redSub(it),at=nt.redMul(it),st=ot.redMul(it.redAdd(this.curve.a24.redMul(ot)));return this.curve.point(at,st)};Point$1.prototype.add=function(){throw new Error("Not supported on Montgomery curve")};Point$1.prototype.diffAdd=function(et,nt){var rt=this.x.redAdd(this.z),it=this.x.redSub(this.z),ot=et.x.redAdd(et.z),at=et.x.redSub(et.z),st=at.redMul(rt),lt=ot.redMul(it),ct=nt.z.redMul(st.redAdd(lt).redSqr()),ut=nt.x.redMul(st.redISub(lt).redSqr());return this.curve.point(ct,ut)};Point$1.prototype.mul=function(et){for(var nt=et.clone(),rt=this,it=this.curve.point(null,null),ot=this,at=[];nt.cmpn(0)!==0;nt.iushrn(1))at.push(nt.andln(1));for(var st=at.length-1;st>=0;st--)at[st]===0?(rt=rt.diffAdd(it,ot),it=it.dbl()):(it=rt.diffAdd(it,ot),rt=rt.dbl());return it};Point$1.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")};Point$1.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")};Point$1.prototype.eq=function(et){return this.getX().cmp(et.getX())===0};Point$1.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};Point$1.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var utils$j=utils$o,BN$8=bnExports$2,inherits$7=inherits_browserExports,Base=base$3,assert$i=utils$j.assert;function EdwardsCurve(tt){this.twisted=(tt.a|0)!==1,this.mOneA=this.twisted&&(tt.a|0)===-1,this.extended=this.mOneA,Base.call(this,"edwards",tt),this.a=new BN$8(tt.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new BN$8(tt.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new BN$8(tt.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),assert$i(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(tt.c|0)===1}inherits$7(EdwardsCurve,Base);var edwards=EdwardsCurve;EdwardsCurve.prototype._mulA=function(et){return this.mOneA?et.redNeg():this.a.redMul(et)};EdwardsCurve.prototype._mulC=function(et){return this.oneC?et:this.c.redMul(et)};EdwardsCurve.prototype.jpoint=function(et,nt,rt,it){return this.point(et,nt,rt,it)};EdwardsCurve.prototype.pointFromX=function(et,nt){et=new BN$8(et,16),et.red||(et=et.toRed(this.red));var rt=et.redSqr(),it=this.c2.redSub(this.a.redMul(rt)),ot=this.one.redSub(this.c2.redMul(this.d).redMul(rt)),at=it.redMul(ot.redInvm()),st=at.redSqrt();if(st.redSqr().redSub(at).cmp(this.zero)!==0)throw new Error("invalid point");var lt=st.fromRed().isOdd();return(nt&&!lt||!nt&<)&&(st=st.redNeg()),this.point(et,st)};EdwardsCurve.prototype.pointFromY=function(et,nt){et=new BN$8(et,16),et.red||(et=et.toRed(this.red));var rt=et.redSqr(),it=rt.redSub(this.c2),ot=rt.redMul(this.d).redMul(this.c2).redSub(this.a),at=it.redMul(ot.redInvm());if(at.cmp(this.zero)===0){if(nt)throw new Error("invalid point");return this.point(this.zero,et)}var st=at.redSqrt();if(st.redSqr().redSub(at).cmp(this.zero)!==0)throw new Error("invalid point");return st.fromRed().isOdd()!==nt&&(st=st.redNeg()),this.point(st,et)};EdwardsCurve.prototype.validate=function(et){if(et.isInfinity())return!0;et.normalize();var nt=et.x.redSqr(),rt=et.y.redSqr(),it=nt.redMul(this.a).redAdd(rt),ot=this.c2.redMul(this.one.redAdd(this.d.redMul(nt).redMul(rt)));return it.cmp(ot)===0};function Point(tt,et,nt,rt,it){Base.BasePoint.call(this,tt,"projective"),et===null&&nt===null&&rt===null?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new BN$8(et,16),this.y=new BN$8(nt,16),this.z=rt?new BN$8(rt,16):this.curve.one,this.t=it&&new BN$8(it,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}inherits$7(Point,Base.BasePoint);EdwardsCurve.prototype.pointFromJSON=function(et){return Point.fromJSON(this,et)};EdwardsCurve.prototype.point=function(et,nt,rt,it){return new Point(this,et,nt,rt,it)};Point.fromJSON=function(et,nt){return new Point(et,nt[0],nt[1],nt[2])};Point.prototype.inspect=function(){return this.isInfinity()?"":""};Point.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Point.prototype._extDbl=function(){var et=this.x.redSqr(),nt=this.y.redSqr(),rt=this.z.redSqr();rt=rt.redIAdd(rt);var it=this.curve._mulA(et),ot=this.x.redAdd(this.y).redSqr().redISub(et).redISub(nt),at=it.redAdd(nt),st=at.redSub(rt),lt=it.redSub(nt),ct=ot.redMul(st),ut=at.redMul(lt),ht=ot.redMul(lt),dt=st.redMul(at);return this.curve.point(ct,ut,dt,ht)};Point.prototype._projDbl=function(){var et=this.x.redAdd(this.y).redSqr(),nt=this.x.redSqr(),rt=this.y.redSqr(),it,ot,at,st,lt,ct;if(this.curve.twisted){st=this.curve._mulA(nt);var ut=st.redAdd(rt);this.zOne?(it=et.redSub(nt).redSub(rt).redMul(ut.redSub(this.curve.two)),ot=ut.redMul(st.redSub(rt)),at=ut.redSqr().redSub(ut).redSub(ut)):(lt=this.z.redSqr(),ct=ut.redSub(lt).redISub(lt),it=et.redSub(nt).redISub(rt).redMul(ct),ot=ut.redMul(st.redSub(rt)),at=ut.redMul(ct))}else st=nt.redAdd(rt),lt=this.curve._mulC(this.z).redSqr(),ct=st.redSub(lt).redSub(lt),it=this.curve._mulC(et.redISub(st)).redMul(ct),ot=this.curve._mulC(st).redMul(nt.redISub(rt)),at=st.redMul(ct);return this.curve.point(it,ot,at)};Point.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()};Point.prototype._extAdd=function(et){var nt=this.y.redSub(this.x).redMul(et.y.redSub(et.x)),rt=this.y.redAdd(this.x).redMul(et.y.redAdd(et.x)),it=this.t.redMul(this.curve.dd).redMul(et.t),ot=this.z.redMul(et.z.redAdd(et.z)),at=rt.redSub(nt),st=ot.redSub(it),lt=ot.redAdd(it),ct=rt.redAdd(nt),ut=at.redMul(st),ht=lt.redMul(ct),dt=at.redMul(ct),pt=st.redMul(lt);return this.curve.point(ut,ht,pt,dt)};Point.prototype._projAdd=function(et){var nt=this.z.redMul(et.z),rt=nt.redSqr(),it=this.x.redMul(et.x),ot=this.y.redMul(et.y),at=this.curve.d.redMul(it).redMul(ot),st=rt.redSub(at),lt=rt.redAdd(at),ct=this.x.redAdd(this.y).redMul(et.x.redAdd(et.y)).redISub(it).redISub(ot),ut=nt.redMul(st).redMul(ct),ht,dt;return this.curve.twisted?(ht=nt.redMul(lt).redMul(ot.redSub(this.curve._mulA(it))),dt=st.redMul(lt)):(ht=nt.redMul(lt).redMul(ot.redSub(it)),dt=this.curve._mulC(st).redMul(lt)),this.curve.point(ut,ht,dt)};Point.prototype.add=function(et){return this.isInfinity()?et:et.isInfinity()?this:this.curve.extended?this._extAdd(et):this._projAdd(et)};Point.prototype.mul=function(et){return this._hasDoubles(et)?this.curve._fixedNafMul(this,et):this.curve._wnafMul(this,et)};Point.prototype.mulAdd=function(et,nt,rt){return this.curve._wnafMulAdd(1,[this,nt],[et,rt],2,!1)};Point.prototype.jmulAdd=function(et,nt,rt){return this.curve._wnafMulAdd(1,[this,nt],[et,rt],2,!0)};Point.prototype.normalize=function(){if(this.zOne)return this;var et=this.z.redInvm();return this.x=this.x.redMul(et),this.y=this.y.redMul(et),this.t&&(this.t=this.t.redMul(et)),this.z=this.curve.one,this.zOne=!0,this};Point.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()};Point.prototype.getY=function(){return this.normalize(),this.y.fromRed()};Point.prototype.eq=function(et){return this===et||this.getX().cmp(et.getX())===0&&this.getY().cmp(et.getY())===0};Point.prototype.eqXToP=function(et){var nt=et.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(nt)===0)return!0;for(var rt=et.clone(),it=this.curve.redN.redMul(this.z);;){if(rt.iadd(this.curve.n),rt.cmp(this.curve.p)>=0)return!1;if(nt.redIAdd(it),this.x.cmp(nt)===0)return!0}};Point.prototype.toP=Point.prototype.normalize;Point.prototype.mixedAdd=Point.prototype.add;(function(tt){var et=tt;et.base=base$3,et.short=short,et.mont=mont,et.edwards=edwards})(curve);var curves$1={},hash$3={},utils$i={},assert$h=minimalisticAssert,inherits$6=inherits_browserExports;utils$i.inherits=inherits$6;function isSurrogatePair(tt,et){return(tt.charCodeAt(et)&64512)!==55296||et<0||et+1>=tt.length?!1:(tt.charCodeAt(et+1)&64512)===56320}function toArray$4(tt,et){if(Array.isArray(tt))return tt.slice();if(!tt)return[];var nt=[];if(typeof tt=="string")if(et){if(et==="hex")for(tt=tt.replace(/[^a-z0-9]+/ig,""),tt.length%2!==0&&(tt="0"+tt),it=0;it>6|192,nt[rt++]=ot&63|128):isSurrogatePair(tt,it)?(ot=65536+((ot&1023)<<10)+(tt.charCodeAt(++it)&1023),nt[rt++]=ot>>18|240,nt[rt++]=ot>>12&63|128,nt[rt++]=ot>>6&63|128,nt[rt++]=ot&63|128):(nt[rt++]=ot>>12|224,nt[rt++]=ot>>6&63|128,nt[rt++]=ot&63|128)}else for(it=0;it>>24|tt>>>8&65280|tt<<8&16711680|(tt&255)<<24;return et>>>0}utils$i.htonl=htonl;function toHex32(tt,et){for(var nt="",rt=0;rt>>0}return ot}utils$i.join32=join32;function split32(tt,et){for(var nt=new Array(tt.length*4),rt=0,it=0;rt>>24,nt[it+1]=ot>>>16&255,nt[it+2]=ot>>>8&255,nt[it+3]=ot&255):(nt[it+3]=ot>>>24,nt[it+2]=ot>>>16&255,nt[it+1]=ot>>>8&255,nt[it]=ot&255)}return nt}utils$i.split32=split32;function rotr32$1(tt,et){return tt>>>et|tt<<32-et}utils$i.rotr32=rotr32$1;function rotl32$2(tt,et){return tt<>>32-et}utils$i.rotl32=rotl32$2;function sum32$3(tt,et){return tt+et>>>0}utils$i.sum32=sum32$3;function sum32_3$1(tt,et,nt){return tt+et+nt>>>0}utils$i.sum32_3=sum32_3$1;function sum32_4$2(tt,et,nt,rt){return tt+et+nt+rt>>>0}utils$i.sum32_4=sum32_4$2;function sum32_5$2(tt,et,nt,rt,it){return tt+et+nt+rt+it>>>0}utils$i.sum32_5=sum32_5$2;function sum64$1(tt,et,nt,rt){var it=tt[et],ot=tt[et+1],at=rt+ot>>>0,st=(at>>0,tt[et+1]=at}utils$i.sum64=sum64$1;function sum64_hi$1(tt,et,nt,rt){var it=et+rt>>>0,ot=(it>>0}utils$i.sum64_hi=sum64_hi$1;function sum64_lo$1(tt,et,nt,rt){var it=et+rt;return it>>>0}utils$i.sum64_lo=sum64_lo$1;function sum64_4_hi$1(tt,et,nt,rt,it,ot,at,st){var lt=0,ct=et;ct=ct+rt>>>0,lt+=ct>>0,lt+=ct>>0,lt+=ct>>0}utils$i.sum64_4_hi=sum64_4_hi$1;function sum64_4_lo$1(tt,et,nt,rt,it,ot,at,st){var lt=et+rt+ot+st;return lt>>>0}utils$i.sum64_4_lo=sum64_4_lo$1;function sum64_5_hi$1(tt,et,nt,rt,it,ot,at,st,lt,ct){var ut=0,ht=et;ht=ht+rt>>>0,ut+=ht>>0,ut+=ht>>0,ut+=ht>>0,ut+=ht>>0}utils$i.sum64_5_hi=sum64_5_hi$1;function sum64_5_lo$1(tt,et,nt,rt,it,ot,at,st,lt,ct){var ut=et+rt+ot+st+ct;return ut>>>0}utils$i.sum64_5_lo=sum64_5_lo$1;function rotr64_hi$1(tt,et,nt){var rt=et<<32-nt|tt>>>nt;return rt>>>0}utils$i.rotr64_hi=rotr64_hi$1;function rotr64_lo$1(tt,et,nt){var rt=tt<<32-nt|et>>>nt;return rt>>>0}utils$i.rotr64_lo=rotr64_lo$1;function shr64_hi$1(tt,et,nt){return tt>>>nt}utils$i.shr64_hi=shr64_hi$1;function shr64_lo$1(tt,et,nt){var rt=tt<<32-nt|et>>>nt;return rt>>>0}utils$i.shr64_lo=shr64_lo$1;var common$6={},utils$h=utils$i,assert$g=minimalisticAssert;function BlockHash$4(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}common$6.BlockHash=BlockHash$4;BlockHash$4.prototype.update=function(et,nt){if(et=utils$h.toArray(et,nt),this.pending?this.pending=this.pending.concat(et):this.pending=et,this.pendingTotal+=et.length,this.pending.length>=this._delta8){et=this.pending;var rt=et.length%this._delta8;this.pending=et.slice(et.length-rt,et.length),this.pending.length===0&&(this.pending=null),et=utils$h.join32(et,0,et.length-rt,this.endian);for(var it=0;it>>24&255,it[ot++]=et>>>16&255,it[ot++]=et>>>8&255,it[ot++]=et&255}else for(it[ot++]=et&255,it[ot++]=et>>>8&255,it[ot++]=et>>>16&255,it[ot++]=et>>>24&255,it[ot++]=0,it[ot++]=0,it[ot++]=0,it[ot++]=0,at=8;at>>3}common$5.g0_256=g0_256$1;function g1_256$1(tt){return rotr32(tt,17)^rotr32(tt,19)^tt>>>10}common$5.g1_256=g1_256$1;var utils$f=utils$i,common$4=common$6,shaCommon$1=common$5,rotl32$1=utils$f.rotl32,sum32$2=utils$f.sum32,sum32_5$1=utils$f.sum32_5,ft_1=shaCommon$1.ft_1,BlockHash$3=common$4.BlockHash,sha1_K=[1518500249,1859775393,2400959708,3395469782];function SHA1$1(){if(!(this instanceof SHA1$1))return new SHA1$1;BlockHash$3.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}utils$f.inherits(SHA1$1,BlockHash$3);var _1=SHA1$1;SHA1$1.blockSize=512;SHA1$1.outSize=160;SHA1$1.hmacStrength=80;SHA1$1.padLength=64;SHA1$1.prototype._update=function(et,nt){for(var rt=this.W,it=0;it<16;it++)rt[it]=et[nt+it];for(;itthis.blockSize&&(et=new this.Hash().update(et).digest()),assert$d(et.length<=this.blockSize);for(var nt=et.length;nt=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(et,nt,rt)}var hmacDrbg=HmacDRBG;HmacDRBG.prototype._init=function(et,nt,rt){var it=et.concat(nt).concat(rt);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var ot=0;ot=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(et.concat(rt||[])),this._reseed=1};HmacDRBG.prototype.generate=function(et,nt,rt,it){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");typeof nt!="string"&&(it=rt,rt=nt,nt=null),rt&&(rt=utils$8.toArray(rt,it||"hex"),this._update(rt));for(var ot=[];ot.length"};var BN$6=bnExports$2,utils$6=utils$o,assert$a=utils$6.assert;function Signature$2(tt,et){if(tt instanceof Signature$2)return tt;this._importDER(tt,et)||(assert$a(tt.r&&tt.s,"Signature without r or s"),this.r=new BN$6(tt.r,16),this.s=new BN$6(tt.s,16),tt.recoveryParam===void 0?this.recoveryParam=null:this.recoveryParam=tt.recoveryParam)}var signature$1=Signature$2;function Position(){this.place=0}function getLength(tt,et){var nt=tt[et.place++];if(!(nt&128))return nt;var rt=nt&15;if(rt===0||rt>4)return!1;for(var it=0,ot=0,at=et.place;ot>>=0;return it<=127?!1:(et.place=at,it)}function rmPadding(tt){for(var et=0,nt=tt.length-1;!tt[et]&&!(tt[et+1]&128)&&et>>3);for(tt.push(nt|128);--nt;)tt.push(et>>>(nt<<3)&255);tt.push(et)}Signature$2.prototype.toDER=function(et){var nt=this.r.toArray(),rt=this.s.toArray();for(nt[0]&128&&(nt=[0].concat(nt)),rt[0]&128&&(rt=[0].concat(rt)),nt=rmPadding(nt),rt=rmPadding(rt);!rt[0]&&!(rt[1]&128);)rt=rt.slice(1);var it=[2];constructLength(it,nt.length),it=it.concat(nt),it.push(2),constructLength(it,rt.length);var ot=it.concat(rt),at=[48];return constructLength(at,ot.length),at=at.concat(ot),utils$6.encode(at,et)};var ec$1,hasRequiredEc;function requireEc(){if(hasRequiredEc)return ec$1;hasRequiredEc=1;var tt=bnExports$2,et=hmacDrbg,nt=utils$o,rt=curves$1,it=requireBrorand(),ot=nt.assert,at=key$2,st=signature$1;function lt(ct){if(!(this instanceof lt))return new lt(ct);typeof ct=="string"&&(ot(Object.prototype.hasOwnProperty.call(rt,ct),"Unknown curve "+ct),ct=rt[ct]),ct instanceof rt.PresetCurve&&(ct={curve:ct}),this.curve=ct.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=ct.curve.g,this.g.precompute(ct.curve.n.bitLength()+1),this.hash=ct.hash||ct.curve.hash}return ec$1=lt,lt.prototype.keyPair=function(ut){return new at(this,ut)},lt.prototype.keyFromPrivate=function(ut,ht){return at.fromPrivate(this,ut,ht)},lt.prototype.keyFromPublic=function(ut,ht){return at.fromPublic(this,ut,ht)},lt.prototype.genKeyPair=function(ut){ut||(ut={});for(var ht=new et({hash:this.hash,pers:ut.pers,persEnc:ut.persEnc||"utf8",entropy:ut.entropy||it(this.hash.hmacStrength),entropyEnc:ut.entropy&&ut.entropyEnc||"utf8",nonce:this.n.toArray()}),dt=this.n.byteLength(),pt=this.n.sub(new tt(2));;){var mt=new tt(ht.generate(dt));if(!(mt.cmp(pt)>0))return mt.iaddn(1),this.keyFromPrivate(mt)}},lt.prototype._truncateToN=function(ut,ht){var dt=ut.byteLength()*8-this.n.bitLength();return dt>0&&(ut=ut.ushrn(dt)),!ht&&ut.cmp(this.n)>=0?ut.sub(this.n):ut},lt.prototype.sign=function(ut,ht,dt,pt){typeof dt=="object"&&(pt=dt,dt=null),pt||(pt={}),ht=this.keyFromPrivate(ht,dt),ut=this._truncateToN(new tt(ut,16));for(var mt=this.n.byteLength(),gt=ht.getPrivate().toArray("be",mt),yt=ut.toArray("be",mt),bt=new et({hash:this.hash,entropy:gt,nonce:yt,pers:pt.pers,persEnc:pt.persEnc||"utf8"}),wt=this.n.sub(new tt(1)),vt=0;;vt++){var kt=pt.k?pt.k(vt):new tt(bt.generate(this.n.byteLength()));if(kt=this._truncateToN(kt,!0),!(kt.cmpn(1)<=0||kt.cmp(wt)>=0)){var St=this.g.mul(kt);if(!St.isInfinity()){var Et=St.getX(),At=Et.umod(this.n);if(At.cmpn(0)!==0){var Tt=kt.invm(this.n).mul(At.mul(ht.getPrivate()).iadd(ut));if(Tt=Tt.umod(this.n),Tt.cmpn(0)!==0){var Mt=(St.getY().isOdd()?1:0)|(Et.cmp(At)!==0?2:0);return pt.canonical&&Tt.cmp(this.nh)>0&&(Tt=this.n.sub(Tt),Mt^=1),new st({r:At,s:Tt,recoveryParam:Mt})}}}}}},lt.prototype.verify=function(ut,ht,dt,pt){ut=this._truncateToN(new tt(ut,16)),dt=this.keyFromPublic(dt,pt),ht=new st(ht,"hex");var mt=ht.r,gt=ht.s;if(mt.cmpn(1)<0||mt.cmp(this.n)>=0||gt.cmpn(1)<0||gt.cmp(this.n)>=0)return!1;var yt=gt.invm(this.n),bt=yt.mul(ut).umod(this.n),wt=yt.mul(mt).umod(this.n),vt;return this.curve._maxwellTrick?(vt=this.g.jmulAdd(bt,dt.getPublic(),wt),vt.isInfinity()?!1:vt.eqXToP(mt)):(vt=this.g.mulAdd(bt,dt.getPublic(),wt),vt.isInfinity()?!1:vt.getX().umod(this.n).cmp(mt)===0)},lt.prototype.recoverPubKey=function(ct,ut,ht,dt){ot((3&ht)===ht,"The recovery param is more than two bits"),ut=new st(ut,dt);var pt=this.n,mt=new tt(ct),gt=ut.r,yt=ut.s,bt=ht&1,wt=ht>>1;if(gt.cmp(this.curve.p.umod(this.curve.n))>=0&&wt)throw new Error("Unable to find sencond key candinate");wt?gt=this.curve.pointFromX(gt.add(this.curve.n),bt):gt=this.curve.pointFromX(gt,bt);var vt=ut.r.invm(pt),kt=pt.sub(mt).mul(vt).umod(pt),St=yt.mul(vt).umod(pt);return this.g.mulAdd(kt,gt,St)},lt.prototype.getKeyRecoveryParam=function(ct,ut,ht,dt){if(ut=new st(ut,dt),ut.recoveryParam!==null)return ut.recoveryParam;for(var pt=0;pt<4;pt++){var mt;try{mt=this.recoverPubKey(ct,ut,pt)}catch{continue}if(mt.eq(ht))return pt}throw new Error("Unable to find valid recovery factor")},ec$1}var utils$5=utils$o,assert$9=utils$5.assert,parseBytes$2=utils$5.parseBytes,cachedProperty$1=utils$5.cachedProperty;function KeyPair$1(tt,et){this.eddsa=tt,this._secret=parseBytes$2(et.secret),tt.isPoint(et.pub)?this._pub=et.pub:this._pubBytes=parseBytes$2(et.pub)}KeyPair$1.fromPublic=function(et,nt){return nt instanceof KeyPair$1?nt:new KeyPair$1(et,{pub:nt})};KeyPair$1.fromSecret=function(et,nt){return nt instanceof KeyPair$1?nt:new KeyPair$1(et,{secret:nt})};KeyPair$1.prototype.secret=function(){return this._secret};cachedProperty$1(KeyPair$1,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())});cachedProperty$1(KeyPair$1,"pub",function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())});cachedProperty$1(KeyPair$1,"privBytes",function(){var et=this.eddsa,nt=this.hash(),rt=et.encodingLength-1,it=nt.slice(0,et.encodingLength);return it[0]&=248,it[rt]&=127,it[rt]|=64,it});cachedProperty$1(KeyPair$1,"priv",function(){return this.eddsa.decodeInt(this.privBytes())});cachedProperty$1(KeyPair$1,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()});cachedProperty$1(KeyPair$1,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)});KeyPair$1.prototype.sign=function(et){return assert$9(this._secret,"KeyPair can only verify"),this.eddsa.sign(et,this)};KeyPair$1.prototype.verify=function(et,nt){return this.eddsa.verify(et,nt,this)};KeyPair$1.prototype.getSecret=function(et){return assert$9(this._secret,"KeyPair is public only"),utils$5.encode(this.secret(),et)};KeyPair$1.prototype.getPublic=function(et){return utils$5.encode(this.pubBytes(),et)};var key$1=KeyPair$1,BN$5=bnExports$2,utils$4=utils$o,assert$8=utils$4.assert,cachedProperty=utils$4.cachedProperty,parseBytes$1=utils$4.parseBytes;function Signature$1(tt,et){this.eddsa=tt,typeof et!="object"&&(et=parseBytes$1(et)),Array.isArray(et)&&(et={R:et.slice(0,tt.encodingLength),S:et.slice(tt.encodingLength)}),assert$8(et.R&&et.S,"Signature without R or S"),tt.isPoint(et.R)&&(this._R=et.R),et.S instanceof BN$5&&(this._S=et.S),this._Rencoded=Array.isArray(et.R)?et.R:et.Rencoded,this._Sencoded=Array.isArray(et.S)?et.S:et.Sencoded}cachedProperty(Signature$1,"S",function(){return this.eddsa.decodeInt(this.Sencoded())});cachedProperty(Signature$1,"R",function(){return this.eddsa.decodePoint(this.Rencoded())});cachedProperty(Signature$1,"Rencoded",function(){return this.eddsa.encodePoint(this.R())});cachedProperty(Signature$1,"Sencoded",function(){return this.eddsa.encodeInt(this.S())});Signature$1.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};Signature$1.prototype.toHex=function(){return utils$4.encode(this.toBytes(),"hex").toUpperCase()};var signature=Signature$1,hash$1=hash$3,curves=curves$1,utils$3=utils$o,assert$7=utils$3.assert,parseBytes=utils$3.parseBytes,KeyPair=key$1,Signature=signature;function EDDSA(tt){if(assert$7(tt==="ed25519","only tested with ed25519 so far"),!(this instanceof EDDSA))return new EDDSA(tt);tt=curves[tt].curve,this.curve=tt,this.g=tt.g,this.g.precompute(tt.n.bitLength()+1),this.pointClass=tt.point().constructor,this.encodingLength=Math.ceil(tt.n.bitLength()/8),this.hash=hash$1.sha512}var eddsa=EDDSA;EDDSA.prototype.sign=function(et,nt){et=parseBytes(et);var rt=this.keyFromSecret(nt),it=this.hashInt(rt.messagePrefix(),et),ot=this.g.mul(it),at=this.encodePoint(ot),st=this.hashInt(at,rt.pubBytes(),et).mul(rt.priv()),lt=it.add(st).umod(this.curve.n);return this.makeSignature({R:ot,S:lt,Rencoded:at})};EDDSA.prototype.verify=function(et,nt,rt){et=parseBytes(et),nt=this.makeSignature(nt);var it=this.keyFromPublic(rt),ot=this.hashInt(nt.Rencoded(),it.pubBytes(),et),at=this.g.mul(nt.S()),st=nt.R().add(it.pub().mul(ot));return st.eq(at)};EDDSA.prototype.hashInt=function(){for(var et=this.hash(),nt=0;nt0?xt:It},ot.min=function(xt,It){return xt.cmp(It)<0?xt:It},ot.prototype._init=function(xt,It,Ot){if(typeof xt=="number")return this._initNumber(xt,It,Ot);if(typeof xt=="object")return this._initArray(xt,It,Ot);It==="hex"&&(It=16),rt(It===(It|0)&&It>=2&&It<=36),xt=xt.toString().replace(/\s+/g,"");var zt=0;xt[0]==="-"&&(zt++,this.negative=1),zt=0;zt-=3)Wt=xt[zt]|xt[zt-1]<<8|xt[zt-2]<<16,this.words[Ut]|=Wt<>>26-Ft&67108863,Ft+=24,Ft>=26&&(Ft-=26,Ut++);else if(Ot==="le")for(zt=0,Ut=0;zt>>26-Ft&67108863,Ft+=24,Ft>=26&&(Ft-=26,Ut++);return this._strip()};function st($t,xt){var It=$t.charCodeAt(xt);if(It>=48&&It<=57)return It-48;if(It>=65&&It<=70)return It-55;if(It>=97&&It<=102)return It-87;rt(!1,"Invalid character in "+$t)}function lt($t,xt,It){var Ot=st($t,It);return It-1>=xt&&(Ot|=st($t,It-1)<<4),Ot}ot.prototype._parseHex=function(xt,It,Ot){this.length=Math.ceil((xt.length-It)/6),this.words=new Array(this.length);for(var zt=0;zt=It;zt-=2)Ft=lt(xt,It,zt)<=18?(Ut-=18,Wt+=1,this.words[Wt]|=Ft>>>26):Ut+=8;else{var Nt=xt.length-It;for(zt=Nt%2===0?It+1:It;zt=18?(Ut-=18,Wt+=1,this.words[Wt]|=Ft>>>26):Ut+=8}this._strip()};function ct($t,xt,It,Ot){for(var zt=0,Ut=0,Wt=Math.min($t.length,It),Ft=xt;Ft=49?Ut=Nt-49+10:Nt>=17?Ut=Nt-17+10:Ut=Nt,rt(Nt>=0&&Ut1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},ot.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{ot.prototype[Symbol.for("nodejs.util.inspect.custom")]=ht}catch{ot.prototype.inspect=ht}else ot.prototype.inspect=ht;function ht(){return(this.red?""}var dt=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],pt=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],mt=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];ot.prototype.toString=function(xt,It){xt=xt||10,It=It|0||1;var Ot;if(xt===16||xt==="hex"){Ot="";for(var zt=0,Ut=0,Wt=0;Wt>>24-zt&16777215,zt+=2,zt>=26&&(zt-=26,Wt--),Ut!==0||Wt!==this.length-1?Ot=dt[6-Nt.length]+Nt+Ot:Ot=Nt+Ot}for(Ut!==0&&(Ot=Ut.toString(16)+Ot);Ot.length%It!==0;)Ot="0"+Ot;return this.negative!==0&&(Ot="-"+Ot),Ot}if(xt===(xt|0)&&xt>=2&&xt<=36){var Ct=pt[xt],Ht=mt[xt];Ot="";var Jt=this.clone();for(Jt.negative=0;!Jt.isZero();){var nn=Jt.modrn(Ht).toString(xt);Jt=Jt.idivn(Ht),Jt.isZero()?Ot=nn+Ot:Ot=dt[Ct-nn.length]+nn+Ot}for(this.isZero()&&(Ot="0"+Ot);Ot.length%It!==0;)Ot="0"+Ot;return this.negative!==0&&(Ot="-"+Ot),Ot}rt(!1,"Base should be between 2 and 36")},ot.prototype.toNumber=function(){var xt=this.words[0];return this.length===2?xt+=this.words[1]*67108864:this.length===3&&this.words[2]===1?xt+=4503599627370496+this.words[1]*67108864:this.length>2&&rt(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-xt:xt},ot.prototype.toJSON=function(){return this.toString(16,2)},at&&(ot.prototype.toBuffer=function(xt,It){return this.toArrayLike(at,xt,It)}),ot.prototype.toArray=function(xt,It){return this.toArrayLike(Array,xt,It)};var gt=function(xt,It){return xt.allocUnsafe?xt.allocUnsafe(It):new xt(It)};ot.prototype.toArrayLike=function(xt,It,Ot){this._strip();var zt=this.byteLength(),Ut=Ot||Math.max(1,zt);rt(zt<=Ut,"byte array longer than desired length"),rt(Ut>0,"Requested array length <= 0");var Wt=gt(xt,Ut),Ft=It==="le"?"LE":"BE";return this["_toArrayLike"+Ft](Wt,zt),Wt},ot.prototype._toArrayLikeLE=function(xt,It){for(var Ot=0,zt=0,Ut=0,Wt=0;Ut>8&255),Ot>16&255),Wt===6?(Ot>24&255),zt=0,Wt=0):(zt=Ft>>>24,Wt+=2)}if(Ot=0&&(xt[Ot--]=Ft>>8&255),Ot>=0&&(xt[Ot--]=Ft>>16&255),Wt===6?(Ot>=0&&(xt[Ot--]=Ft>>24&255),zt=0,Wt=0):(zt=Ft>>>24,Wt+=2)}if(Ot>=0)for(xt[Ot--]=zt;Ot>=0;)xt[Ot--]=0},Math.clz32?ot.prototype._countBits=function(xt){return 32-Math.clz32(xt)}:ot.prototype._countBits=function(xt){var It=xt,Ot=0;return It>=4096&&(Ot+=13,It>>>=13),It>=64&&(Ot+=7,It>>>=7),It>=8&&(Ot+=4,It>>>=4),It>=2&&(Ot+=2,It>>>=2),Ot+It},ot.prototype._zeroBits=function(xt){if(xt===0)return 26;var It=xt,Ot=0;return It&8191||(Ot+=13,It>>>=13),It&127||(Ot+=7,It>>>=7),It&15||(Ot+=4,It>>>=4),It&3||(Ot+=2,It>>>=2),It&1||Ot++,Ot},ot.prototype.bitLength=function(){var xt=this.words[this.length-1],It=this._countBits(xt);return(this.length-1)*26+It};function yt($t){for(var xt=new Array($t.bitLength()),It=0;It>>zt&1}return xt}ot.prototype.zeroBits=function(){if(this.isZero())return 0;for(var xt=0,It=0;Itxt.length?this.clone().ior(xt):xt.clone().ior(this)},ot.prototype.uor=function(xt){return this.length>xt.length?this.clone().iuor(xt):xt.clone().iuor(this)},ot.prototype.iuand=function(xt){var It;this.length>xt.length?It=xt:It=this;for(var Ot=0;Otxt.length?this.clone().iand(xt):xt.clone().iand(this)},ot.prototype.uand=function(xt){return this.length>xt.length?this.clone().iuand(xt):xt.clone().iuand(this)},ot.prototype.iuxor=function(xt){var It,Ot;this.length>xt.length?(It=this,Ot=xt):(It=xt,Ot=this);for(var zt=0;ztxt.length?this.clone().ixor(xt):xt.clone().ixor(this)},ot.prototype.uxor=function(xt){return this.length>xt.length?this.clone().iuxor(xt):xt.clone().iuxor(this)},ot.prototype.inotn=function(xt){rt(typeof xt=="number"&&xt>=0);var It=Math.ceil(xt/26)|0,Ot=xt%26;this._expand(It),Ot>0&&It--;for(var zt=0;zt0&&(this.words[zt]=~this.words[zt]&67108863>>26-Ot),this._strip()},ot.prototype.notn=function(xt){return this.clone().inotn(xt)},ot.prototype.setn=function(xt,It){rt(typeof xt=="number"&&xt>=0);var Ot=xt/26|0,zt=xt%26;return this._expand(Ot+1),It?this.words[Ot]=this.words[Ot]|1<xt.length?(Ot=this,zt=xt):(Ot=xt,zt=this);for(var Ut=0,Wt=0;Wt>>26;for(;Ut!==0&&Wt>>26;if(this.length=Ot.length,Ut!==0)this.words[this.length]=Ut,this.length++;else if(Ot!==this)for(;Wtxt.length?this.clone().iadd(xt):xt.clone().iadd(this)},ot.prototype.isub=function(xt){if(xt.negative!==0){xt.negative=0;var It=this.iadd(xt);return xt.negative=1,It._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(xt),this.negative=1,this._normSign();var Ot=this.cmp(xt);if(Ot===0)return this.negative=0,this.length=1,this.words[0]=0,this;var zt,Ut;Ot>0?(zt=this,Ut=xt):(zt=xt,Ut=this);for(var Wt=0,Ft=0;Ft>26,this.words[Ft]=It&67108863;for(;Wt!==0&&Ft>26,this.words[Ft]=It&67108863;if(Wt===0&&Ft>>26,Jt=Nt&67108863,nn=Math.min(Ct,xt.length-1),Yt=Math.max(0,Ct-$t.length+1);Yt<=nn;Yt++){var fn=Ct-Yt|0;zt=$t.words[fn]|0,Ut=xt.words[Yt]|0,Wt=zt*Ut+Jt,Ht+=Wt/67108864|0,Jt=Wt&67108863}It.words[Ct]=Jt|0,Nt=Ht|0}return Nt!==0?It.words[Ct]=Nt|0:It.length--,It._strip()}var wt=function(xt,It,Ot){var zt=xt.words,Ut=It.words,Wt=Ot.words,Ft=0,Nt,Ct,Ht,Jt=zt[0]|0,nn=Jt&8191,Yt=Jt>>>13,fn=zt[1]|0,cn=fn&8191,_n=fn>>>13,En=zt[2]|0,an=En&8191,en=En>>>13,Tn=zt[3]|0,Rn=Tn&8191,An=Tn>>>13,yn=zt[4]|0,kn=yn&8191,dn=yn>>>13,gn=zt[5]|0,Cn=gn&8191,$n=gn>>>13,un=zt[6]|0,rn=un&8191,Sn=un>>>13,Mn=zt[7]|0,Nn=Mn&8191,hn=Mn>>>13,Qt=zt[8]|0,Zt=Qt&8191,wn=Qt>>>13,On=zt[9]|0,jn=On&8191,Un=On>>>13,tr=Ut[0]|0,qn=tr&8191,Xn=tr>>>13,Wn=Ut[1]|0,Zn=Wn&8191,Vn=Wn>>>13,pr=Ut[2]|0,fr=pr&8191,Er=pr>>>13,oo=Ut[3]|0,Dr=oo&8191,Rr=oo>>>13,Xr=Ut[4]|0,Vr=Xr&8191,Fr=Xr>>>13,so=Ut[5]|0,qr=so&8191,Or=so>>>13,wo=Ut[6]|0,vn=wo&8191,Pn=wo>>>13,sn=Ut[7]|0,Xt=sn&8191,xn=sn>>>13,Dn=Ut[8]|0,Fn=Dn&8191,Kn=Dn>>>13,nr=Ut[9]|0,lr=nr&8191,cr=nr>>>13;Ot.negative=xt.negative^It.negative,Ot.length=19,Nt=Math.imul(nn,qn),Ct=Math.imul(nn,Xn),Ct=Ct+Math.imul(Yt,qn)|0,Ht=Math.imul(Yt,Xn);var Hr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Hr>>>26)|0,Hr&=67108863,Nt=Math.imul(cn,qn),Ct=Math.imul(cn,Xn),Ct=Ct+Math.imul(_n,qn)|0,Ht=Math.imul(_n,Xn),Nt=Nt+Math.imul(nn,Zn)|0,Ct=Ct+Math.imul(nn,Vn)|0,Ct=Ct+Math.imul(Yt,Zn)|0,Ht=Ht+Math.imul(Yt,Vn)|0;var _r=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(_r>>>26)|0,_r&=67108863,Nt=Math.imul(an,qn),Ct=Math.imul(an,Xn),Ct=Ct+Math.imul(en,qn)|0,Ht=Math.imul(en,Xn),Nt=Nt+Math.imul(cn,Zn)|0,Ct=Ct+Math.imul(cn,Vn)|0,Ct=Ct+Math.imul(_n,Zn)|0,Ht=Ht+Math.imul(_n,Vn)|0,Nt=Nt+Math.imul(nn,fr)|0,Ct=Ct+Math.imul(nn,Er)|0,Ct=Ct+Math.imul(Yt,fr)|0,Ht=Ht+Math.imul(Yt,Er)|0;var jr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(jr>>>26)|0,jr&=67108863,Nt=Math.imul(Rn,qn),Ct=Math.imul(Rn,Xn),Ct=Ct+Math.imul(An,qn)|0,Ht=Math.imul(An,Xn),Nt=Nt+Math.imul(an,Zn)|0,Ct=Ct+Math.imul(an,Vn)|0,Ct=Ct+Math.imul(en,Zn)|0,Ht=Ht+Math.imul(en,Vn)|0,Nt=Nt+Math.imul(cn,fr)|0,Ct=Ct+Math.imul(cn,Er)|0,Ct=Ct+Math.imul(_n,fr)|0,Ht=Ht+Math.imul(_n,Er)|0,Nt=Nt+Math.imul(nn,Dr)|0,Ct=Ct+Math.imul(nn,Rr)|0,Ct=Ct+Math.imul(Yt,Dr)|0,Ht=Ht+Math.imul(Yt,Rr)|0;var Gr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Gr>>>26)|0,Gr&=67108863,Nt=Math.imul(kn,qn),Ct=Math.imul(kn,Xn),Ct=Ct+Math.imul(dn,qn)|0,Ht=Math.imul(dn,Xn),Nt=Nt+Math.imul(Rn,Zn)|0,Ct=Ct+Math.imul(Rn,Vn)|0,Ct=Ct+Math.imul(An,Zn)|0,Ht=Ht+Math.imul(An,Vn)|0,Nt=Nt+Math.imul(an,fr)|0,Ct=Ct+Math.imul(an,Er)|0,Ct=Ct+Math.imul(en,fr)|0,Ht=Ht+Math.imul(en,Er)|0,Nt=Nt+Math.imul(cn,Dr)|0,Ct=Ct+Math.imul(cn,Rr)|0,Ct=Ct+Math.imul(_n,Dr)|0,Ht=Ht+Math.imul(_n,Rr)|0,Nt=Nt+Math.imul(nn,Vr)|0,Ct=Ct+Math.imul(nn,Fr)|0,Ct=Ct+Math.imul(Yt,Vr)|0,Ht=Ht+Math.imul(Yt,Fr)|0;var eo=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(eo>>>26)|0,eo&=67108863,Nt=Math.imul(Cn,qn),Ct=Math.imul(Cn,Xn),Ct=Ct+Math.imul($n,qn)|0,Ht=Math.imul($n,Xn),Nt=Nt+Math.imul(kn,Zn)|0,Ct=Ct+Math.imul(kn,Vn)|0,Ct=Ct+Math.imul(dn,Zn)|0,Ht=Ht+Math.imul(dn,Vn)|0,Nt=Nt+Math.imul(Rn,fr)|0,Ct=Ct+Math.imul(Rn,Er)|0,Ct=Ct+Math.imul(An,fr)|0,Ht=Ht+Math.imul(An,Er)|0,Nt=Nt+Math.imul(an,Dr)|0,Ct=Ct+Math.imul(an,Rr)|0,Ct=Ct+Math.imul(en,Dr)|0,Ht=Ht+Math.imul(en,Rr)|0,Nt=Nt+Math.imul(cn,Vr)|0,Ct=Ct+Math.imul(cn,Fr)|0,Ct=Ct+Math.imul(_n,Vr)|0,Ht=Ht+Math.imul(_n,Fr)|0,Nt=Nt+Math.imul(nn,qr)|0,Ct=Ct+Math.imul(nn,Or)|0,Ct=Ct+Math.imul(Yt,qr)|0,Ht=Ht+Math.imul(Yt,Or)|0;var Qr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Qr>>>26)|0,Qr&=67108863,Nt=Math.imul(rn,qn),Ct=Math.imul(rn,Xn),Ct=Ct+Math.imul(Sn,qn)|0,Ht=Math.imul(Sn,Xn),Nt=Nt+Math.imul(Cn,Zn)|0,Ct=Ct+Math.imul(Cn,Vn)|0,Ct=Ct+Math.imul($n,Zn)|0,Ht=Ht+Math.imul($n,Vn)|0,Nt=Nt+Math.imul(kn,fr)|0,Ct=Ct+Math.imul(kn,Er)|0,Ct=Ct+Math.imul(dn,fr)|0,Ht=Ht+Math.imul(dn,Er)|0,Nt=Nt+Math.imul(Rn,Dr)|0,Ct=Ct+Math.imul(Rn,Rr)|0,Ct=Ct+Math.imul(An,Dr)|0,Ht=Ht+Math.imul(An,Rr)|0,Nt=Nt+Math.imul(an,Vr)|0,Ct=Ct+Math.imul(an,Fr)|0,Ct=Ct+Math.imul(en,Vr)|0,Ht=Ht+Math.imul(en,Fr)|0,Nt=Nt+Math.imul(cn,qr)|0,Ct=Ct+Math.imul(cn,Or)|0,Ct=Ct+Math.imul(_n,qr)|0,Ht=Ht+Math.imul(_n,Or)|0,Nt=Nt+Math.imul(nn,vn)|0,Ct=Ct+Math.imul(nn,Pn)|0,Ct=Ct+Math.imul(Yt,vn)|0,Ht=Ht+Math.imul(Yt,Pn)|0;var _i=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(_i>>>26)|0,_i&=67108863,Nt=Math.imul(Nn,qn),Ct=Math.imul(Nn,Xn),Ct=Ct+Math.imul(hn,qn)|0,Ht=Math.imul(hn,Xn),Nt=Nt+Math.imul(rn,Zn)|0,Ct=Ct+Math.imul(rn,Vn)|0,Ct=Ct+Math.imul(Sn,Zn)|0,Ht=Ht+Math.imul(Sn,Vn)|0,Nt=Nt+Math.imul(Cn,fr)|0,Ct=Ct+Math.imul(Cn,Er)|0,Ct=Ct+Math.imul($n,fr)|0,Ht=Ht+Math.imul($n,Er)|0,Nt=Nt+Math.imul(kn,Dr)|0,Ct=Ct+Math.imul(kn,Rr)|0,Ct=Ct+Math.imul(dn,Dr)|0,Ht=Ht+Math.imul(dn,Rr)|0,Nt=Nt+Math.imul(Rn,Vr)|0,Ct=Ct+Math.imul(Rn,Fr)|0,Ct=Ct+Math.imul(An,Vr)|0,Ht=Ht+Math.imul(An,Fr)|0,Nt=Nt+Math.imul(an,qr)|0,Ct=Ct+Math.imul(an,Or)|0,Ct=Ct+Math.imul(en,qr)|0,Ht=Ht+Math.imul(en,Or)|0,Nt=Nt+Math.imul(cn,vn)|0,Ct=Ct+Math.imul(cn,Pn)|0,Ct=Ct+Math.imul(_n,vn)|0,Ht=Ht+Math.imul(_n,Pn)|0,Nt=Nt+Math.imul(nn,Xt)|0,Ct=Ct+Math.imul(nn,xn)|0,Ct=Ct+Math.imul(Yt,Xt)|0,Ht=Ht+Math.imul(Yt,xn)|0;var wr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(wr>>>26)|0,wr&=67108863,Nt=Math.imul(Zt,qn),Ct=Math.imul(Zt,Xn),Ct=Ct+Math.imul(wn,qn)|0,Ht=Math.imul(wn,Xn),Nt=Nt+Math.imul(Nn,Zn)|0,Ct=Ct+Math.imul(Nn,Vn)|0,Ct=Ct+Math.imul(hn,Zn)|0,Ht=Ht+Math.imul(hn,Vn)|0,Nt=Nt+Math.imul(rn,fr)|0,Ct=Ct+Math.imul(rn,Er)|0,Ct=Ct+Math.imul(Sn,fr)|0,Ht=Ht+Math.imul(Sn,Er)|0,Nt=Nt+Math.imul(Cn,Dr)|0,Ct=Ct+Math.imul(Cn,Rr)|0,Ct=Ct+Math.imul($n,Dr)|0,Ht=Ht+Math.imul($n,Rr)|0,Nt=Nt+Math.imul(kn,Vr)|0,Ct=Ct+Math.imul(kn,Fr)|0,Ct=Ct+Math.imul(dn,Vr)|0,Ht=Ht+Math.imul(dn,Fr)|0,Nt=Nt+Math.imul(Rn,qr)|0,Ct=Ct+Math.imul(Rn,Or)|0,Ct=Ct+Math.imul(An,qr)|0,Ht=Ht+Math.imul(An,Or)|0,Nt=Nt+Math.imul(an,vn)|0,Ct=Ct+Math.imul(an,Pn)|0,Ct=Ct+Math.imul(en,vn)|0,Ht=Ht+Math.imul(en,Pn)|0,Nt=Nt+Math.imul(cn,Xt)|0,Ct=Ct+Math.imul(cn,xn)|0,Ct=Ct+Math.imul(_n,Xt)|0,Ht=Ht+Math.imul(_n,xn)|0,Nt=Nt+Math.imul(nn,Fn)|0,Ct=Ct+Math.imul(nn,Kn)|0,Ct=Ct+Math.imul(Yt,Fn)|0,Ht=Ht+Math.imul(Yt,Kn)|0;var $r=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+($r>>>26)|0,$r&=67108863,Nt=Math.imul(jn,qn),Ct=Math.imul(jn,Xn),Ct=Ct+Math.imul(Un,qn)|0,Ht=Math.imul(Un,Xn),Nt=Nt+Math.imul(Zt,Zn)|0,Ct=Ct+Math.imul(Zt,Vn)|0,Ct=Ct+Math.imul(wn,Zn)|0,Ht=Ht+Math.imul(wn,Vn)|0,Nt=Nt+Math.imul(Nn,fr)|0,Ct=Ct+Math.imul(Nn,Er)|0,Ct=Ct+Math.imul(hn,fr)|0,Ht=Ht+Math.imul(hn,Er)|0,Nt=Nt+Math.imul(rn,Dr)|0,Ct=Ct+Math.imul(rn,Rr)|0,Ct=Ct+Math.imul(Sn,Dr)|0,Ht=Ht+Math.imul(Sn,Rr)|0,Nt=Nt+Math.imul(Cn,Vr)|0,Ct=Ct+Math.imul(Cn,Fr)|0,Ct=Ct+Math.imul($n,Vr)|0,Ht=Ht+Math.imul($n,Fr)|0,Nt=Nt+Math.imul(kn,qr)|0,Ct=Ct+Math.imul(kn,Or)|0,Ct=Ct+Math.imul(dn,qr)|0,Ht=Ht+Math.imul(dn,Or)|0,Nt=Nt+Math.imul(Rn,vn)|0,Ct=Ct+Math.imul(Rn,Pn)|0,Ct=Ct+Math.imul(An,vn)|0,Ht=Ht+Math.imul(An,Pn)|0,Nt=Nt+Math.imul(an,Xt)|0,Ct=Ct+Math.imul(an,xn)|0,Ct=Ct+Math.imul(en,Xt)|0,Ht=Ht+Math.imul(en,xn)|0,Nt=Nt+Math.imul(cn,Fn)|0,Ct=Ct+Math.imul(cn,Kn)|0,Ct=Ct+Math.imul(_n,Fn)|0,Ht=Ht+Math.imul(_n,Kn)|0,Nt=Nt+Math.imul(nn,lr)|0,Ct=Ct+Math.imul(nn,cr)|0,Ct=Ct+Math.imul(Yt,lr)|0,Ht=Ht+Math.imul(Yt,cr)|0;var Wr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Wr>>>26)|0,Wr&=67108863,Nt=Math.imul(jn,Zn),Ct=Math.imul(jn,Vn),Ct=Ct+Math.imul(Un,Zn)|0,Ht=Math.imul(Un,Vn),Nt=Nt+Math.imul(Zt,fr)|0,Ct=Ct+Math.imul(Zt,Er)|0,Ct=Ct+Math.imul(wn,fr)|0,Ht=Ht+Math.imul(wn,Er)|0,Nt=Nt+Math.imul(Nn,Dr)|0,Ct=Ct+Math.imul(Nn,Rr)|0,Ct=Ct+Math.imul(hn,Dr)|0,Ht=Ht+Math.imul(hn,Rr)|0,Nt=Nt+Math.imul(rn,Vr)|0,Ct=Ct+Math.imul(rn,Fr)|0,Ct=Ct+Math.imul(Sn,Vr)|0,Ht=Ht+Math.imul(Sn,Fr)|0,Nt=Nt+Math.imul(Cn,qr)|0,Ct=Ct+Math.imul(Cn,Or)|0,Ct=Ct+Math.imul($n,qr)|0,Ht=Ht+Math.imul($n,Or)|0,Nt=Nt+Math.imul(kn,vn)|0,Ct=Ct+Math.imul(kn,Pn)|0,Ct=Ct+Math.imul(dn,vn)|0,Ht=Ht+Math.imul(dn,Pn)|0,Nt=Nt+Math.imul(Rn,Xt)|0,Ct=Ct+Math.imul(Rn,xn)|0,Ct=Ct+Math.imul(An,Xt)|0,Ht=Ht+Math.imul(An,xn)|0,Nt=Nt+Math.imul(an,Fn)|0,Ct=Ct+Math.imul(an,Kn)|0,Ct=Ct+Math.imul(en,Fn)|0,Ht=Ht+Math.imul(en,Kn)|0,Nt=Nt+Math.imul(cn,lr)|0,Ct=Ct+Math.imul(cn,cr)|0,Ct=Ct+Math.imul(_n,lr)|0,Ht=Ht+Math.imul(_n,cr)|0;var Br=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Br>>>26)|0,Br&=67108863,Nt=Math.imul(jn,fr),Ct=Math.imul(jn,Er),Ct=Ct+Math.imul(Un,fr)|0,Ht=Math.imul(Un,Er),Nt=Nt+Math.imul(Zt,Dr)|0,Ct=Ct+Math.imul(Zt,Rr)|0,Ct=Ct+Math.imul(wn,Dr)|0,Ht=Ht+Math.imul(wn,Rr)|0,Nt=Nt+Math.imul(Nn,Vr)|0,Ct=Ct+Math.imul(Nn,Fr)|0,Ct=Ct+Math.imul(hn,Vr)|0,Ht=Ht+Math.imul(hn,Fr)|0,Nt=Nt+Math.imul(rn,qr)|0,Ct=Ct+Math.imul(rn,Or)|0,Ct=Ct+Math.imul(Sn,qr)|0,Ht=Ht+Math.imul(Sn,Or)|0,Nt=Nt+Math.imul(Cn,vn)|0,Ct=Ct+Math.imul(Cn,Pn)|0,Ct=Ct+Math.imul($n,vn)|0,Ht=Ht+Math.imul($n,Pn)|0,Nt=Nt+Math.imul(kn,Xt)|0,Ct=Ct+Math.imul(kn,xn)|0,Ct=Ct+Math.imul(dn,Xt)|0,Ht=Ht+Math.imul(dn,xn)|0,Nt=Nt+Math.imul(Rn,Fn)|0,Ct=Ct+Math.imul(Rn,Kn)|0,Ct=Ct+Math.imul(An,Fn)|0,Ht=Ht+Math.imul(An,Kn)|0,Nt=Nt+Math.imul(an,lr)|0,Ct=Ct+Math.imul(an,cr)|0,Ct=Ct+Math.imul(en,lr)|0,Ht=Ht+Math.imul(en,cr)|0;var Pr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Pr>>>26)|0,Pr&=67108863,Nt=Math.imul(jn,Dr),Ct=Math.imul(jn,Rr),Ct=Ct+Math.imul(Un,Dr)|0,Ht=Math.imul(Un,Rr),Nt=Nt+Math.imul(Zt,Vr)|0,Ct=Ct+Math.imul(Zt,Fr)|0,Ct=Ct+Math.imul(wn,Vr)|0,Ht=Ht+Math.imul(wn,Fr)|0,Nt=Nt+Math.imul(Nn,qr)|0,Ct=Ct+Math.imul(Nn,Or)|0,Ct=Ct+Math.imul(hn,qr)|0,Ht=Ht+Math.imul(hn,Or)|0,Nt=Nt+Math.imul(rn,vn)|0,Ct=Ct+Math.imul(rn,Pn)|0,Ct=Ct+Math.imul(Sn,vn)|0,Ht=Ht+Math.imul(Sn,Pn)|0,Nt=Nt+Math.imul(Cn,Xt)|0,Ct=Ct+Math.imul(Cn,xn)|0,Ct=Ct+Math.imul($n,Xt)|0,Ht=Ht+Math.imul($n,xn)|0,Nt=Nt+Math.imul(kn,Fn)|0,Ct=Ct+Math.imul(kn,Kn)|0,Ct=Ct+Math.imul(dn,Fn)|0,Ht=Ht+Math.imul(dn,Kn)|0,Nt=Nt+Math.imul(Rn,lr)|0,Ct=Ct+Math.imul(Rn,cr)|0,Ct=Ct+Math.imul(An,lr)|0,Ht=Ht+Math.imul(An,cr)|0;var Lr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Lr>>>26)|0,Lr&=67108863,Nt=Math.imul(jn,Vr),Ct=Math.imul(jn,Fr),Ct=Ct+Math.imul(Un,Vr)|0,Ht=Math.imul(Un,Fr),Nt=Nt+Math.imul(Zt,qr)|0,Ct=Ct+Math.imul(Zt,Or)|0,Ct=Ct+Math.imul(wn,qr)|0,Ht=Ht+Math.imul(wn,Or)|0,Nt=Nt+Math.imul(Nn,vn)|0,Ct=Ct+Math.imul(Nn,Pn)|0,Ct=Ct+Math.imul(hn,vn)|0,Ht=Ht+Math.imul(hn,Pn)|0,Nt=Nt+Math.imul(rn,Xt)|0,Ct=Ct+Math.imul(rn,xn)|0,Ct=Ct+Math.imul(Sn,Xt)|0,Ht=Ht+Math.imul(Sn,xn)|0,Nt=Nt+Math.imul(Cn,Fn)|0,Ct=Ct+Math.imul(Cn,Kn)|0,Ct=Ct+Math.imul($n,Fn)|0,Ht=Ht+Math.imul($n,Kn)|0,Nt=Nt+Math.imul(kn,lr)|0,Ct=Ct+Math.imul(kn,cr)|0,Ct=Ct+Math.imul(dn,lr)|0,Ht=Ht+Math.imul(dn,cr)|0;var Nr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Nr>>>26)|0,Nr&=67108863,Nt=Math.imul(jn,qr),Ct=Math.imul(jn,Or),Ct=Ct+Math.imul(Un,qr)|0,Ht=Math.imul(Un,Or),Nt=Nt+Math.imul(Zt,vn)|0,Ct=Ct+Math.imul(Zt,Pn)|0,Ct=Ct+Math.imul(wn,vn)|0,Ht=Ht+Math.imul(wn,Pn)|0,Nt=Nt+Math.imul(Nn,Xt)|0,Ct=Ct+Math.imul(Nn,xn)|0,Ct=Ct+Math.imul(hn,Xt)|0,Ht=Ht+Math.imul(hn,xn)|0,Nt=Nt+Math.imul(rn,Fn)|0,Ct=Ct+Math.imul(rn,Kn)|0,Ct=Ct+Math.imul(Sn,Fn)|0,Ht=Ht+Math.imul(Sn,Kn)|0,Nt=Nt+Math.imul(Cn,lr)|0,Ct=Ct+Math.imul(Cn,cr)|0,Ct=Ct+Math.imul($n,lr)|0,Ht=Ht+Math.imul($n,cr)|0;var Cr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Cr>>>26)|0,Cr&=67108863,Nt=Math.imul(jn,vn),Ct=Math.imul(jn,Pn),Ct=Ct+Math.imul(Un,vn)|0,Ht=Math.imul(Un,Pn),Nt=Nt+Math.imul(Zt,Xt)|0,Ct=Ct+Math.imul(Zt,xn)|0,Ct=Ct+Math.imul(wn,Xt)|0,Ht=Ht+Math.imul(wn,xn)|0,Nt=Nt+Math.imul(Nn,Fn)|0,Ct=Ct+Math.imul(Nn,Kn)|0,Ct=Ct+Math.imul(hn,Fn)|0,Ht=Ht+Math.imul(hn,Kn)|0,Nt=Nt+Math.imul(rn,lr)|0,Ct=Ct+Math.imul(rn,cr)|0,Ct=Ct+Math.imul(Sn,lr)|0,Ht=Ht+Math.imul(Sn,cr)|0;var er=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(er>>>26)|0,er&=67108863,Nt=Math.imul(jn,Xt),Ct=Math.imul(jn,xn),Ct=Ct+Math.imul(Un,Xt)|0,Ht=Math.imul(Un,xn),Nt=Nt+Math.imul(Zt,Fn)|0,Ct=Ct+Math.imul(Zt,Kn)|0,Ct=Ct+Math.imul(wn,Fn)|0,Ht=Ht+Math.imul(wn,Kn)|0,Nt=Nt+Math.imul(Nn,lr)|0,Ct=Ct+Math.imul(Nn,cr)|0,Ct=Ct+Math.imul(hn,lr)|0,Ht=Ht+Math.imul(hn,cr)|0;var ir=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(ir>>>26)|0,ir&=67108863,Nt=Math.imul(jn,Fn),Ct=Math.imul(jn,Kn),Ct=Ct+Math.imul(Un,Fn)|0,Ht=Math.imul(Un,Kn),Nt=Nt+Math.imul(Zt,lr)|0,Ct=Ct+Math.imul(Zt,cr)|0,Ct=Ct+Math.imul(wn,lr)|0,Ht=Ht+Math.imul(wn,cr)|0;var Sr=(Ft+Nt|0)+((Ct&8191)<<13)|0;Ft=(Ht+(Ct>>>13)|0)+(Sr>>>26)|0,Sr&=67108863,Nt=Math.imul(jn,lr),Ct=Math.imul(jn,cr),Ct=Ct+Math.imul(Un,lr)|0,Ht=Math.imul(Un,cr);var dr=(Ft+Nt|0)+((Ct&8191)<<13)|0;return Ft=(Ht+(Ct>>>13)|0)+(dr>>>26)|0,dr&=67108863,Wt[0]=Hr,Wt[1]=_r,Wt[2]=jr,Wt[3]=Gr,Wt[4]=eo,Wt[5]=Qr,Wt[6]=_i,Wt[7]=wr,Wt[8]=$r,Wt[9]=Wr,Wt[10]=Br,Wt[11]=Pr,Wt[12]=Lr,Wt[13]=Nr,Wt[14]=Cr,Wt[15]=er,Wt[16]=ir,Wt[17]=Sr,Wt[18]=dr,Ft!==0&&(Wt[19]=Ft,Ot.length++),Ot};Math.imul||(wt=bt);function vt($t,xt,It){It.negative=xt.negative^$t.negative,It.length=$t.length+xt.length;for(var Ot=0,zt=0,Ut=0;Ut>>26)|0,zt+=Wt>>>26,Wt&=67108863}It.words[Ut]=Ft,Ot=Wt,Wt=zt}return Ot!==0?It.words[Ut]=Ot:It.length--,It._strip()}function kt($t,xt,It){return vt($t,xt,It)}ot.prototype.mulTo=function(xt,It){var Ot,zt=this.length+xt.length;return this.length===10&&xt.length===10?Ot=wt(this,xt,It):zt<63?Ot=bt(this,xt,It):zt<1024?Ot=vt(this,xt,It):Ot=kt(this,xt,It),Ot},ot.prototype.mul=function(xt){var It=new ot(null);return It.words=new Array(this.length+xt.length),this.mulTo(xt,It)},ot.prototype.mulf=function(xt){var It=new ot(null);return It.words=new Array(this.length+xt.length),kt(this,xt,It)},ot.prototype.imul=function(xt){return this.clone().mulTo(xt,this)},ot.prototype.imuln=function(xt){var It=xt<0;It&&(xt=-xt),rt(typeof xt=="number"),rt(xt<67108864);for(var Ot=0,zt=0;zt>=26,Ot+=Ut/67108864|0,Ot+=Wt>>>26,this.words[zt]=Wt&67108863}return Ot!==0&&(this.words[zt]=Ot,this.length++),It?this.ineg():this},ot.prototype.muln=function(xt){return this.clone().imuln(xt)},ot.prototype.sqr=function(){return this.mul(this)},ot.prototype.isqr=function(){return this.imul(this.clone())},ot.prototype.pow=function(xt){var It=yt(xt);if(It.length===0)return new ot(1);for(var Ot=this,zt=0;zt=0);var It=xt%26,Ot=(xt-It)/26,zt=67108863>>>26-It<<26-It,Ut;if(It!==0){var Wt=0;for(Ut=0;Ut>>26-It}Wt&&(this.words[Ut]=Wt,this.length++)}if(Ot!==0){for(Ut=this.length-1;Ut>=0;Ut--)this.words[Ut+Ot]=this.words[Ut];for(Ut=0;Ut=0);var zt;It?zt=(It-It%26)/26:zt=0;var Ut=xt%26,Wt=Math.min((xt-Ut)/26,this.length),Ft=67108863^67108863>>>Ut<Wt)for(this.length-=Wt,Ct=0;Ct=0&&(Ht!==0||Ct>=zt);Ct--){var Jt=this.words[Ct]|0;this.words[Ct]=Ht<<26-Ut|Jt>>>Ut,Ht=Jt&Ft}return Nt&&Ht!==0&&(Nt.words[Nt.length++]=Ht),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},ot.prototype.ishrn=function(xt,It,Ot){return rt(this.negative===0),this.iushrn(xt,It,Ot)},ot.prototype.shln=function(xt){return this.clone().ishln(xt)},ot.prototype.ushln=function(xt){return this.clone().iushln(xt)},ot.prototype.shrn=function(xt){return this.clone().ishrn(xt)},ot.prototype.ushrn=function(xt){return this.clone().iushrn(xt)},ot.prototype.testn=function(xt){rt(typeof xt=="number"&&xt>=0);var It=xt%26,Ot=(xt-It)/26,zt=1<=0);var It=xt%26,Ot=(xt-It)/26;if(rt(this.negative===0,"imaskn works only with positive numbers"),this.length<=Ot)return this;if(It!==0&&Ot++,this.length=Math.min(Ot,this.length),It!==0){var zt=67108863^67108863>>>It<=67108864;It++)this.words[It]-=67108864,It===this.length-1?this.words[It+1]=1:this.words[It+1]++;return this.length=Math.max(this.length,It+1),this},ot.prototype.isubn=function(xt){if(rt(typeof xt=="number"),rt(xt<67108864),xt<0)return this.iaddn(-xt);if(this.negative!==0)return this.negative=0,this.iaddn(xt),this.negative=1,this;if(this.words[0]-=xt,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var It=0;It>26)-(Nt/67108864|0),this.words[Ut+Ot]=Wt&67108863}for(;Ut>26,this.words[Ut+Ot]=Wt&67108863;if(Ft===0)return this._strip();for(rt(Ft===-1),Ft=0,Ut=0;Ut>26,this.words[Ut]=Wt&67108863;return this.negative=1,this._strip()},ot.prototype._wordDiv=function(xt,It){var Ot=this.length-xt.length,zt=this.clone(),Ut=xt,Wt=Ut.words[Ut.length-1]|0,Ft=this._countBits(Wt);Ot=26-Ft,Ot!==0&&(Ut=Ut.ushln(Ot),zt.iushln(Ot),Wt=Ut.words[Ut.length-1]|0);var Nt=zt.length-Ut.length,Ct;if(It!=="mod"){Ct=new ot(null),Ct.length=Nt+1,Ct.words=new Array(Ct.length);for(var Ht=0;Ht=0;nn--){var Yt=(zt.words[Ut.length+nn]|0)*67108864+(zt.words[Ut.length+nn-1]|0);for(Yt=Math.min(Yt/Wt|0,67108863),zt._ishlnsubmul(Ut,Yt,nn);zt.negative!==0;)Yt--,zt.negative=0,zt._ishlnsubmul(Ut,1,nn),zt.isZero()||(zt.negative^=1);Ct&&(Ct.words[nn]=Yt)}return Ct&&Ct._strip(),zt._strip(),It!=="div"&&Ot!==0&&zt.iushrn(Ot),{div:Ct||null,mod:zt}},ot.prototype.divmod=function(xt,It,Ot){if(rt(!xt.isZero()),this.isZero())return{div:new ot(0),mod:new ot(0)};var zt,Ut,Wt;return this.negative!==0&&xt.negative===0?(Wt=this.neg().divmod(xt,It),It!=="mod"&&(zt=Wt.div.neg()),It!=="div"&&(Ut=Wt.mod.neg(),Ot&&Ut.negative!==0&&Ut.iadd(xt)),{div:zt,mod:Ut}):this.negative===0&&xt.negative!==0?(Wt=this.divmod(xt.neg(),It),It!=="mod"&&(zt=Wt.div.neg()),{div:zt,mod:Wt.mod}):this.negative&xt.negative?(Wt=this.neg().divmod(xt.neg(),It),It!=="div"&&(Ut=Wt.mod.neg(),Ot&&Ut.negative!==0&&Ut.isub(xt)),{div:Wt.div,mod:Ut}):xt.length>this.length||this.cmp(xt)<0?{div:new ot(0),mod:this}:xt.length===1?It==="div"?{div:this.divn(xt.words[0]),mod:null}:It==="mod"?{div:null,mod:new ot(this.modrn(xt.words[0]))}:{div:this.divn(xt.words[0]),mod:new ot(this.modrn(xt.words[0]))}:this._wordDiv(xt,It)},ot.prototype.div=function(xt){return this.divmod(xt,"div",!1).div},ot.prototype.mod=function(xt){return this.divmod(xt,"mod",!1).mod},ot.prototype.umod=function(xt){return this.divmod(xt,"mod",!0).mod},ot.prototype.divRound=function(xt){var It=this.divmod(xt);if(It.mod.isZero())return It.div;var Ot=It.div.negative!==0?It.mod.isub(xt):It.mod,zt=xt.ushrn(1),Ut=xt.andln(1),Wt=Ot.cmp(zt);return Wt<0||Ut===1&&Wt===0?It.div:It.div.negative!==0?It.div.isubn(1):It.div.iaddn(1)},ot.prototype.modrn=function(xt){var It=xt<0;It&&(xt=-xt),rt(xt<=67108863);for(var Ot=(1<<26)%xt,zt=0,Ut=this.length-1;Ut>=0;Ut--)zt=(Ot*zt+(this.words[Ut]|0))%xt;return It?-zt:zt},ot.prototype.modn=function(xt){return this.modrn(xt)},ot.prototype.idivn=function(xt){var It=xt<0;It&&(xt=-xt),rt(xt<=67108863);for(var Ot=0,zt=this.length-1;zt>=0;zt--){var Ut=(this.words[zt]|0)+Ot*67108864;this.words[zt]=Ut/xt|0,Ot=Ut%xt}return this._strip(),It?this.ineg():this},ot.prototype.divn=function(xt){return this.clone().idivn(xt)},ot.prototype.egcd=function(xt){rt(xt.negative===0),rt(!xt.isZero());var It=this,Ot=xt.clone();It.negative!==0?It=It.umod(xt):It=It.clone();for(var zt=new ot(1),Ut=new ot(0),Wt=new ot(0),Ft=new ot(1),Nt=0;It.isEven()&&Ot.isEven();)It.iushrn(1),Ot.iushrn(1),++Nt;for(var Ct=Ot.clone(),Ht=It.clone();!It.isZero();){for(var Jt=0,nn=1;!(It.words[0]&nn)&&Jt<26;++Jt,nn<<=1);if(Jt>0)for(It.iushrn(Jt);Jt-- >0;)(zt.isOdd()||Ut.isOdd())&&(zt.iadd(Ct),Ut.isub(Ht)),zt.iushrn(1),Ut.iushrn(1);for(var Yt=0,fn=1;!(Ot.words[0]&fn)&&Yt<26;++Yt,fn<<=1);if(Yt>0)for(Ot.iushrn(Yt);Yt-- >0;)(Wt.isOdd()||Ft.isOdd())&&(Wt.iadd(Ct),Ft.isub(Ht)),Wt.iushrn(1),Ft.iushrn(1);It.cmp(Ot)>=0?(It.isub(Ot),zt.isub(Wt),Ut.isub(Ft)):(Ot.isub(It),Wt.isub(zt),Ft.isub(Ut))}return{a:Wt,b:Ft,gcd:Ot.iushln(Nt)}},ot.prototype._invmp=function(xt){rt(xt.negative===0),rt(!xt.isZero());var It=this,Ot=xt.clone();It.negative!==0?It=It.umod(xt):It=It.clone();for(var zt=new ot(1),Ut=new ot(0),Wt=Ot.clone();It.cmpn(1)>0&&Ot.cmpn(1)>0;){for(var Ft=0,Nt=1;!(It.words[0]&Nt)&&Ft<26;++Ft,Nt<<=1);if(Ft>0)for(It.iushrn(Ft);Ft-- >0;)zt.isOdd()&&zt.iadd(Wt),zt.iushrn(1);for(var Ct=0,Ht=1;!(Ot.words[0]&Ht)&&Ct<26;++Ct,Ht<<=1);if(Ct>0)for(Ot.iushrn(Ct);Ct-- >0;)Ut.isOdd()&&Ut.iadd(Wt),Ut.iushrn(1);It.cmp(Ot)>=0?(It.isub(Ot),zt.isub(Ut)):(Ot.isub(It),Ut.isub(zt))}var Jt;return It.cmpn(1)===0?Jt=zt:Jt=Ut,Jt.cmpn(0)<0&&Jt.iadd(xt),Jt},ot.prototype.gcd=function(xt){if(this.isZero())return xt.abs();if(xt.isZero())return this.abs();var It=this.clone(),Ot=xt.clone();It.negative=0,Ot.negative=0;for(var zt=0;It.isEven()&&Ot.isEven();zt++)It.iushrn(1),Ot.iushrn(1);do{for(;It.isEven();)It.iushrn(1);for(;Ot.isEven();)Ot.iushrn(1);var Ut=It.cmp(Ot);if(Ut<0){var Wt=It;It=Ot,Ot=Wt}else if(Ut===0||Ot.cmpn(1)===0)break;It.isub(Ot)}while(!0);return Ot.iushln(zt)},ot.prototype.invm=function(xt){return this.egcd(xt).a.umod(xt)},ot.prototype.isEven=function(){return(this.words[0]&1)===0},ot.prototype.isOdd=function(){return(this.words[0]&1)===1},ot.prototype.andln=function(xt){return this.words[0]&xt},ot.prototype.bincn=function(xt){rt(typeof xt=="number");var It=xt%26,Ot=(xt-It)/26,zt=1<>>26,Ft&=67108863,this.words[Wt]=Ft}return Ut!==0&&(this.words[Wt]=Ut,this.length++),this},ot.prototype.isZero=function(){return this.length===1&&this.words[0]===0},ot.prototype.cmpn=function(xt){var It=xt<0;if(this.negative!==0&&!It)return-1;if(this.negative===0&&It)return 1;this._strip();var Ot;if(this.length>1)Ot=1;else{It&&(xt=-xt),rt(xt<=67108863,"Number is too big");var zt=this.words[0]|0;Ot=zt===xt?0:ztxt.length)return 1;if(this.length=0;Ot--){var zt=this.words[Ot]|0,Ut=xt.words[Ot]|0;if(zt!==Ut){ztUt&&(It=1);break}}return It},ot.prototype.gtn=function(xt){return this.cmpn(xt)===1},ot.prototype.gt=function(xt){return this.cmp(xt)===1},ot.prototype.gten=function(xt){return this.cmpn(xt)>=0},ot.prototype.gte=function(xt){return this.cmp(xt)>=0},ot.prototype.ltn=function(xt){return this.cmpn(xt)===-1},ot.prototype.lt=function(xt){return this.cmp(xt)===-1},ot.prototype.lten=function(xt){return this.cmpn(xt)<=0},ot.prototype.lte=function(xt){return this.cmp(xt)<=0},ot.prototype.eqn=function(xt){return this.cmpn(xt)===0},ot.prototype.eq=function(xt){return this.cmp(xt)===0},ot.red=function(xt){return new jt(xt)},ot.prototype.toRed=function(xt){return rt(!this.red,"Already a number in reduction context"),rt(this.negative===0,"red works only with positives"),xt.convertTo(this)._forceRed(xt)},ot.prototype.fromRed=function(){return rt(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},ot.prototype._forceRed=function(xt){return this.red=xt,this},ot.prototype.forceRed=function(xt){return rt(!this.red,"Already a number in reduction context"),this._forceRed(xt)},ot.prototype.redAdd=function(xt){return rt(this.red,"redAdd works only with red numbers"),this.red.add(this,xt)},ot.prototype.redIAdd=function(xt){return rt(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,xt)},ot.prototype.redSub=function(xt){return rt(this.red,"redSub works only with red numbers"),this.red.sub(this,xt)},ot.prototype.redISub=function(xt){return rt(this.red,"redISub works only with red numbers"),this.red.isub(this,xt)},ot.prototype.redShl=function(xt){return rt(this.red,"redShl works only with red numbers"),this.red.shl(this,xt)},ot.prototype.redMul=function(xt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,xt),this.red.mul(this,xt)},ot.prototype.redIMul=function(xt){return rt(this.red,"redMul works only with red numbers"),this.red._verify2(this,xt),this.red.imul(this,xt)},ot.prototype.redSqr=function(){return rt(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},ot.prototype.redISqr=function(){return rt(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},ot.prototype.redSqrt=function(){return rt(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},ot.prototype.redInvm=function(){return rt(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},ot.prototype.redNeg=function(){return rt(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},ot.prototype.redPow=function(xt){return rt(this.red&&!xt.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,xt)};var St={k256:null,p224:null,p192:null,p25519:null};function Et($t,xt){this.name=$t,this.p=new ot(xt,16),this.n=this.p.bitLength(),this.k=new ot(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}Et.prototype._tmp=function(){var xt=new ot(null);return xt.words=new Array(Math.ceil(this.n/13)),xt},Et.prototype.ireduce=function(xt){var It=xt,Ot;do this.split(It,this.tmp),It=this.imulK(It),It=It.iadd(this.tmp),Ot=It.bitLength();while(Ot>this.n);var zt=Ot0?It.isub(this.p):It.strip!==void 0?It.strip():It._strip(),It},Et.prototype.split=function(xt,It){xt.iushrn(this.n,0,It)},Et.prototype.imulK=function(xt){return xt.imul(this.k)};function At(){Et.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}it(At,Et),At.prototype.split=function(xt,It){for(var Ot=4194303,zt=Math.min(xt.length,9),Ut=0;Ut>>22,Wt=Ft}Wt>>>=22,xt.words[Ut-10]=Wt,Wt===0&&xt.length>10?xt.length-=10:xt.length-=9},At.prototype.imulK=function(xt){xt.words[xt.length]=0,xt.words[xt.length+1]=0,xt.length+=2;for(var It=0,Ot=0;Ot>>=26,xt.words[Ot]=Ut,It=zt}return It!==0&&(xt.words[xt.length++]=It),xt},ot._prime=function(xt){if(St[xt])return St[xt];var It;if(xt==="k256")It=new At;else if(xt==="p224")It=new Tt;else if(xt==="p192")It=new Mt;else if(xt==="p25519")It=new Lt;else throw new Error("Unknown prime "+xt);return St[xt]=It,It};function jt($t){if(typeof $t=="string"){var xt=ot._prime($t);this.m=xt.p,this.prime=xt}else rt($t.gtn(1),"modulus must be greater than 1"),this.m=$t,this.prime=null}jt.prototype._verify1=function(xt){rt(xt.negative===0,"red works only with positives"),rt(xt.red,"red works only with red numbers")},jt.prototype._verify2=function(xt,It){rt((xt.negative|It.negative)===0,"red works only with positives"),rt(xt.red&&xt.red===It.red,"red works only with red numbers")},jt.prototype.imod=function(xt){return this.prime?this.prime.ireduce(xt)._forceRed(this):(ut(xt,xt.umod(this.m)._forceRed(this)),xt)},jt.prototype.neg=function(xt){return xt.isZero()?xt.clone():this.m.sub(xt)._forceRed(this)},jt.prototype.add=function(xt,It){this._verify2(xt,It);var Ot=xt.add(It);return Ot.cmp(this.m)>=0&&Ot.isub(this.m),Ot._forceRed(this)},jt.prototype.iadd=function(xt,It){this._verify2(xt,It);var Ot=xt.iadd(It);return Ot.cmp(this.m)>=0&&Ot.isub(this.m),Ot},jt.prototype.sub=function(xt,It){this._verify2(xt,It);var Ot=xt.sub(It);return Ot.cmpn(0)<0&&Ot.iadd(this.m),Ot._forceRed(this)},jt.prototype.isub=function(xt,It){this._verify2(xt,It);var Ot=xt.isub(It);return Ot.cmpn(0)<0&&Ot.iadd(this.m),Ot},jt.prototype.shl=function(xt,It){return this._verify1(xt),this.imod(xt.ushln(It))},jt.prototype.imul=function(xt,It){return this._verify2(xt,It),this.imod(xt.imul(It))},jt.prototype.mul=function(xt,It){return this._verify2(xt,It),this.imod(xt.mul(It))},jt.prototype.isqr=function(xt){return this.imul(xt,xt.clone())},jt.prototype.sqr=function(xt){return this.mul(xt,xt)},jt.prototype.sqrt=function(xt){if(xt.isZero())return xt.clone();var It=this.m.andln(3);if(rt(It%2===1),It===3){var Ot=this.m.add(new ot(1)).iushrn(2);return this.pow(xt,Ot)}for(var zt=this.m.subn(1),Ut=0;!zt.isZero()&&zt.andln(1)===0;)Ut++,zt.iushrn(1);rt(!zt.isZero());var Wt=new ot(1).toRed(this),Ft=Wt.redNeg(),Nt=this.m.subn(1).iushrn(1),Ct=this.m.bitLength();for(Ct=new ot(2*Ct*Ct).toRed(this);this.pow(Ct,Nt).cmp(Ft)!==0;)Ct.redIAdd(Ft);for(var Ht=this.pow(Ct,zt),Jt=this.pow(xt,zt.addn(1).iushrn(1)),nn=this.pow(xt,zt),Yt=Ut;nn.cmp(Wt)!==0;){for(var fn=nn,cn=0;fn.cmp(Wt)!==0;cn++)fn=fn.redSqr();rt(cn=0;Ut--){for(var Ht=It.words[Ut],Jt=Ct-1;Jt>=0;Jt--){var nn=Ht>>Jt&1;if(Wt!==zt[0]&&(Wt=this.sqr(Wt)),nn===0&&Ft===0){Nt=0;continue}Ft<<=1,Ft|=nn,Nt++,!(Nt!==Ot&&(Ut!==0||Jt!==0))&&(Wt=this.mul(Wt,zt[Ft]),Nt=0,Ft=0)}Ct=26}return Wt},jt.prototype.convertTo=function(xt){var It=xt.umod(this.m);return It===xt?It.clone():It},jt.prototype.convertFrom=function(xt){var It=xt.clone();return It.red=null,It},ot.mont=function(xt){return new Rt(xt)};function Rt($t){jt.call(this,$t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new ot(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}it(Rt,jt),Rt.prototype.convertTo=function(xt){return this.imod(xt.ushln(this.shift))},Rt.prototype.convertFrom=function(xt){var It=this.imod(xt.mul(this.rinv));return It.red=null,It},Rt.prototype.imul=function(xt,It){if(xt.isZero()||It.isZero())return xt.words[0]=0,xt.length=1,xt;var Ot=xt.imul(It),zt=Ot.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ut=Ot.isub(zt).iushrn(this.shift),Wt=Ut;return Ut.cmp(this.m)>=0?Wt=Ut.isub(this.m):Ut.cmpn(0)<0&&(Wt=Ut.iadd(this.m)),Wt._forceRed(this)},Rt.prototype.mul=function(xt,It){if(xt.isZero()||It.isZero())return new ot(0)._forceRed(this);var Ot=xt.mul(It),zt=Ot.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),Ut=Ot.isub(zt).iushrn(this.shift),Wt=Ut;return Ut.cmp(this.m)>=0?Wt=Ut.isub(this.m):Ut.cmpn(0)<0&&(Wt=Ut.iadd(this.m)),Wt._forceRed(this)},Rt.prototype.invm=function(xt){var It=this.imod(xt._invmp(this.m).mul(this.r2));return It._forceRed(this)}})(tt,commonjsGlobal)})(bn);var bnExports=bn.exports,asn1$3={},asn1$2={},api={},encoders={},buffer$1=buffer$2,Buffer$d=buffer$1.Buffer,safer={},key;for(key in buffer$1)buffer$1.hasOwnProperty(key)&&(key==="SlowBuffer"||key==="Buffer"||(safer[key]=buffer$1[key]));var Safer=safer.Buffer={};for(key in Buffer$d)Buffer$d.hasOwnProperty(key)&&(key==="allocUnsafe"||key==="allocUnsafeSlow"||(Safer[key]=Buffer$d[key]));safer.Buffer.prototype=Buffer$d.prototype;(!Safer.from||Safer.from===Uint8Array.from)&&(Safer.from=function(tt,et,nt){if(typeof tt=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof tt);if(tt&&typeof tt.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof tt);return Buffer$d(tt,et,nt)});Safer.alloc||(Safer.alloc=function(tt,et,nt){if(typeof tt!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof tt);if(tt<0||tt>=2*(1<<30))throw new RangeError('The value "'+tt+'" is invalid for option "size"');var rt=Buffer$d(tt);return!et||et.length===0?rt.fill(0):typeof nt=="string"?rt.fill(et,nt):rt.fill(et),rt});if(!safer.kStringMaxLength)try{safer.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}safer.constants||(safer.constants={MAX_LENGTH:safer.kMaxLength},safer.kStringMaxLength&&(safer.constants.MAX_STRING_LENGTH=safer.kStringMaxLength));var safer_1=safer,reporter={};const inherits$5=inherits_browserExports;function Reporter$2(tt){this._reporterState={obj:null,path:[],options:tt||{},errors:[]}}reporter.Reporter=Reporter$2;Reporter$2.prototype.isError=function(et){return et instanceof ReporterError};Reporter$2.prototype.save=function(){const et=this._reporterState;return{obj:et.obj,pathLen:et.path.length}};Reporter$2.prototype.restore=function(et){const nt=this._reporterState;nt.obj=et.obj,nt.path=nt.path.slice(0,et.pathLen)};Reporter$2.prototype.enterKey=function(et){return this._reporterState.path.push(et)};Reporter$2.prototype.exitKey=function(et){const nt=this._reporterState;nt.path=nt.path.slice(0,et-1)};Reporter$2.prototype.leaveKey=function(et,nt,rt){const it=this._reporterState;this.exitKey(et),it.obj!==null&&(it.obj[nt]=rt)};Reporter$2.prototype.path=function(){return this._reporterState.path.join("/")};Reporter$2.prototype.enterObject=function(){const et=this._reporterState,nt=et.obj;return et.obj={},nt};Reporter$2.prototype.leaveObject=function(et){const nt=this._reporterState,rt=nt.obj;return nt.obj=et,rt};Reporter$2.prototype.error=function(et){let nt;const rt=this._reporterState,it=et instanceof ReporterError;if(it?nt=et:nt=new ReporterError(rt.path.map(function(ot){return"["+JSON.stringify(ot)+"]"}).join(""),et.message||et,et.stack),!rt.options.partial)throw nt;return it||rt.errors.push(nt),nt};Reporter$2.prototype.wrapResult=function(et){const nt=this._reporterState;return nt.options.partial?{result:this.isError(et)?null:et,errors:nt.errors}:et};function ReporterError(tt,et){this.path=tt,this.rethrow(et)}inherits$5(ReporterError,Error);ReporterError.prototype.rethrow=function(et){if(this.message=et+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,ReporterError),!this.stack)try{throw new Error(this.message)}catch(nt){this.stack=nt.stack}return this};var buffer={};const inherits$4=inherits_browserExports,Reporter$1=reporter.Reporter,Buffer$c=safer_1.Buffer;function DecoderBuffer$2(tt,et){if(Reporter$1.call(this,et),!Buffer$c.isBuffer(tt)){this.error("Input not Buffer");return}this.base=tt,this.offset=0,this.length=tt.length}inherits$4(DecoderBuffer$2,Reporter$1);buffer.DecoderBuffer=DecoderBuffer$2;DecoderBuffer$2.isDecoderBuffer=function(et){return et instanceof DecoderBuffer$2?!0:typeof et=="object"&&Buffer$c.isBuffer(et.base)&&et.constructor.name==="DecoderBuffer"&&typeof et.offset=="number"&&typeof et.length=="number"&&typeof et.save=="function"&&typeof et.restore=="function"&&typeof et.isEmpty=="function"&&typeof et.readUInt8=="function"&&typeof et.skip=="function"&&typeof et.raw=="function"};DecoderBuffer$2.prototype.save=function(){return{offset:this.offset,reporter:Reporter$1.prototype.save.call(this)}};DecoderBuffer$2.prototype.restore=function(et){const nt=new DecoderBuffer$2(this.base);return nt.offset=et.offset,nt.length=this.offset,this.offset=et.offset,Reporter$1.prototype.restore.call(this,et.reporter),nt};DecoderBuffer$2.prototype.isEmpty=function(){return this.offset===this.length};DecoderBuffer$2.prototype.readUInt8=function(et){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(et||"DecoderBuffer overrun")};DecoderBuffer$2.prototype.skip=function(et,nt){if(!(this.offset+et<=this.length))return this.error(nt||"DecoderBuffer overrun");const rt=new DecoderBuffer$2(this.base);return rt._reporterState=this._reporterState,rt.offset=this.offset,rt.length=this.offset+et,this.offset+=et,rt};DecoderBuffer$2.prototype.raw=function(et){return this.base.slice(et?et.offset:this.offset,this.length)};function EncoderBuffer$1(tt,et){if(Array.isArray(tt))this.length=0,this.value=tt.map(function(nt){return EncoderBuffer$1.isEncoderBuffer(nt)||(nt=new EncoderBuffer$1(nt,et)),this.length+=nt.length,nt},this);else if(typeof tt=="number"){if(!(0<=tt&&tt<=255))return et.error("non-byte EncoderBuffer value");this.value=tt,this.length=1}else if(typeof tt=="string")this.value=tt,this.length=Buffer$c.byteLength(tt);else if(Buffer$c.isBuffer(tt))this.value=tt,this.length=tt.length;else return et.error("Unsupported type: "+typeof tt)}buffer.EncoderBuffer=EncoderBuffer$1;EncoderBuffer$1.isEncoderBuffer=function(et){return et instanceof EncoderBuffer$1?!0:typeof et=="object"&&et.constructor.name==="EncoderBuffer"&&typeof et.length=="number"&&typeof et.join=="function"};EncoderBuffer$1.prototype.join=function(et,nt){return et||(et=Buffer$c.alloc(this.length)),nt||(nt=0),this.length===0||(Array.isArray(this.value)?this.value.forEach(function(rt){rt.join(et,nt),nt+=rt.length}):(typeof this.value=="number"?et[nt]=this.value:typeof this.value=="string"?et.write(this.value,nt):Buffer$c.isBuffer(this.value)&&this.value.copy(et,nt),nt+=this.length)),et};const Reporter=reporter.Reporter,EncoderBuffer=buffer.EncoderBuffer,DecoderBuffer$1=buffer.DecoderBuffer,assert$6=minimalisticAssert,tags=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],methods=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(tags),overrided=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function Node$3(tt,et,nt){const rt={};this._baseState=rt,rt.name=nt,rt.enc=tt,rt.parent=et||null,rt.children=null,rt.tag=null,rt.args=null,rt.reverseArgs=null,rt.choice=null,rt.optional=!1,rt.any=!1,rt.obj=!1,rt.use=null,rt.useDecoder=null,rt.key=null,rt.default=null,rt.explicit=null,rt.implicit=null,rt.contains=null,rt.parent||(rt.children=[],this._wrap())}var node$1=Node$3;const stateProps=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];Node$3.prototype.clone=function(){const et=this._baseState,nt={};stateProps.forEach(function(it){nt[it]=et[it]});const rt=new this.constructor(nt.parent);return rt._baseState=nt,rt};Node$3.prototype._wrap=function(){const et=this._baseState;methods.forEach(function(nt){this[nt]=function(){const it=new this.constructor(this);return et.children.push(it),it[nt].apply(it,arguments)}},this)};Node$3.prototype._init=function(et){const nt=this._baseState;assert$6(nt.parent===null),et.call(this),nt.children=nt.children.filter(function(rt){return rt._baseState.parent===this},this),assert$6.equal(nt.children.length,1,"Root node can have only one child")};Node$3.prototype._useArgs=function(et){const nt=this._baseState,rt=et.filter(function(it){return it instanceof this.constructor},this);et=et.filter(function(it){return!(it instanceof this.constructor)},this),rt.length!==0&&(assert$6(nt.children===null),nt.children=rt,rt.forEach(function(it){it._baseState.parent=this},this)),et.length!==0&&(assert$6(nt.args===null),nt.args=et,nt.reverseArgs=et.map(function(it){if(typeof it!="object"||it.constructor!==Object)return it;const ot={};return Object.keys(it).forEach(function(at){at==(at|0)&&(at|=0);const st=it[at];ot[st]=at}),ot}))};overrided.forEach(function(tt){Node$3.prototype[tt]=function(){const nt=this._baseState;throw new Error(tt+" not implemented for encoding: "+nt.enc)}});tags.forEach(function(tt){Node$3.prototype[tt]=function(){const nt=this._baseState,rt=Array.prototype.slice.call(arguments);return assert$6(nt.tag===null),nt.tag=tt,this._useArgs(rt),this}});Node$3.prototype.use=function(et){assert$6(et);const nt=this._baseState;return assert$6(nt.use===null),nt.use=et,this};Node$3.prototype.optional=function(){const et=this._baseState;return et.optional=!0,this};Node$3.prototype.def=function(et){const nt=this._baseState;return assert$6(nt.default===null),nt.default=et,nt.optional=!0,this};Node$3.prototype.explicit=function(et){const nt=this._baseState;return assert$6(nt.explicit===null&&nt.implicit===null),nt.explicit=et,this};Node$3.prototype.implicit=function(et){const nt=this._baseState;return assert$6(nt.explicit===null&&nt.implicit===null),nt.implicit=et,this};Node$3.prototype.obj=function(){const et=this._baseState,nt=Array.prototype.slice.call(arguments);return et.obj=!0,nt.length!==0&&this._useArgs(nt),this};Node$3.prototype.key=function(et){const nt=this._baseState;return assert$6(nt.key===null),nt.key=et,this};Node$3.prototype.any=function(){const et=this._baseState;return et.any=!0,this};Node$3.prototype.choice=function(et){const nt=this._baseState;return assert$6(nt.choice===null),nt.choice=et,this._useArgs(Object.keys(et).map(function(rt){return et[rt]})),this};Node$3.prototype.contains=function(et){const nt=this._baseState;return assert$6(nt.use===null),nt.contains=et,this};Node$3.prototype._decode=function(et,nt){const rt=this._baseState;if(rt.parent===null)return et.wrapResult(rt.children[0]._decode(et,nt));let it=rt.default,ot=!0,at=null;if(rt.key!==null&&(at=et.enterKey(rt.key)),rt.optional){let lt=null;if(rt.explicit!==null?lt=rt.explicit:rt.implicit!==null?lt=rt.implicit:rt.tag!==null&&(lt=rt.tag),lt===null&&!rt.any){const ct=et.save();try{rt.choice===null?this._decodeGeneric(rt.tag,et,nt):this._decodeChoice(et,nt),ot=!0}catch{ot=!1}et.restore(ct)}else if(ot=this._peekTag(et,lt,rt.any),et.isError(ot))return ot}let st;if(rt.obj&&ot&&(st=et.enterObject()),ot){if(rt.explicit!==null){const ct=this._decodeTag(et,rt.explicit);if(et.isError(ct))return ct;et=ct}const lt=et.offset;if(rt.use===null&&rt.choice===null){let ct;rt.any&&(ct=et.save());const ut=this._decodeTag(et,rt.implicit!==null?rt.implicit:rt.tag,rt.any);if(et.isError(ut))return ut;rt.any?it=et.raw(ct):et=ut}if(nt&&nt.track&&rt.tag!==null&&nt.track(et.path(),lt,et.length,"tagged"),nt&&nt.track&&rt.tag!==null&&nt.track(et.path(),et.offset,et.length,"content"),rt.any||(rt.choice===null?it=this._decodeGeneric(rt.tag,et,nt):it=this._decodeChoice(et,nt)),et.isError(it))return it;if(!rt.any&&rt.choice===null&&rt.children!==null&&rt.children.forEach(function(ut){ut._decode(et,nt)}),rt.contains&&(rt.tag==="octstr"||rt.tag==="bitstr")){const ct=new DecoderBuffer$1(it);it=this._getUse(rt.contains,et._reporterState.obj)._decode(ct,nt)}}return rt.obj&&ot&&(it=et.leaveObject(st)),rt.key!==null&&(it!==null||ot===!0)?et.leaveKey(at,rt.key,it):at!==null&&et.exitKey(at),it};Node$3.prototype._decodeGeneric=function(et,nt,rt){const it=this._baseState;return et==="seq"||et==="set"?null:et==="seqof"||et==="setof"?this._decodeList(nt,et,it.args[0],rt):/str$/.test(et)?this._decodeStr(nt,et,rt):et==="objid"&&it.args?this._decodeObjid(nt,it.args[0],it.args[1],rt):et==="objid"?this._decodeObjid(nt,null,null,rt):et==="gentime"||et==="utctime"?this._decodeTime(nt,et,rt):et==="null_"?this._decodeNull(nt,rt):et==="bool"?this._decodeBool(nt,rt):et==="objDesc"?this._decodeStr(nt,et,rt):et==="int"||et==="enum"?this._decodeInt(nt,it.args&&it.args[0],rt):it.use!==null?this._getUse(it.use,nt._reporterState.obj)._decode(nt,rt):nt.error("unknown tag: "+et)};Node$3.prototype._getUse=function(et,nt){const rt=this._baseState;return rt.useDecoder=this._use(et,nt),assert$6(rt.useDecoder._baseState.parent===null),rt.useDecoder=rt.useDecoder._baseState.children[0],rt.implicit!==rt.useDecoder._baseState.implicit&&(rt.useDecoder=rt.useDecoder.clone(),rt.useDecoder._baseState.implicit=rt.implicit),rt.useDecoder};Node$3.prototype._decodeChoice=function(et,nt){const rt=this._baseState;let it=null,ot=!1;return Object.keys(rt.choice).some(function(at){const st=et.save(),lt=rt.choice[at];try{const ct=lt._decode(et,nt);if(et.isError(ct))return!1;it={type:at,value:ct},ot=!0}catch{return et.restore(st),!1}return!0},this),ot?it:et.error("Choice not matched")};Node$3.prototype._createEncoderBuffer=function(et){return new EncoderBuffer(et,this.reporter)};Node$3.prototype._encode=function(et,nt,rt){const it=this._baseState;if(it.default!==null&&it.default===et)return;const ot=this._encodeValue(et,nt,rt);if(ot!==void 0&&!this._skipDefault(ot,nt,rt))return ot};Node$3.prototype._encodeValue=function(et,nt,rt){const it=this._baseState;if(it.parent===null)return it.children[0]._encode(et,nt||new Reporter);let ot=null;if(this.reporter=nt,it.optional&&et===void 0)if(it.default!==null)et=it.default;else return;let at=null,st=!1;if(it.any)ot=this._createEncoderBuffer(et);else if(it.choice)ot=this._encodeChoice(et,nt);else if(it.contains)at=this._getUse(it.contains,rt)._encode(et,nt),st=!0;else if(it.children)at=it.children.map(function(lt){if(lt._baseState.tag==="null_")return lt._encode(null,nt,et);if(lt._baseState.key===null)return nt.error("Child should have a key");const ct=nt.enterKey(lt._baseState.key);if(typeof et!="object")return nt.error("Child expected, but input is not object");const ut=lt._encode(et[lt._baseState.key],nt,et);return nt.leaveKey(ct),ut},this).filter(function(lt){return lt}),at=this._createEncoderBuffer(at);else if(it.tag==="seqof"||it.tag==="setof"){if(!(it.args&&it.args.length===1))return nt.error("Too many args for : "+it.tag);if(!Array.isArray(et))return nt.error("seqof/setof, but data is not Array");const lt=this.clone();lt._baseState.implicit=null,at=this._createEncoderBuffer(et.map(function(ct){const ut=this._baseState;return this._getUse(ut.args[0],et)._encode(ct,nt)},lt))}else it.use!==null?ot=this._getUse(it.use,rt)._encode(et,nt):(at=this._encodePrimitive(it.tag,et),st=!0);if(!it.any&&it.choice===null){const lt=it.implicit!==null?it.implicit:it.tag,ct=it.implicit===null?"universal":"context";lt===null?it.use===null&&nt.error("Tag could be omitted only for .use()"):it.use===null&&(ot=this._encodeComposite(lt,st,ct,at))}return it.explicit!==null&&(ot=this._encodeComposite(it.explicit,!1,"context",ot)),ot};Node$3.prototype._encodeChoice=function(et,nt){const rt=this._baseState,it=rt.choice[et.type];return it||assert$6(!1,et.type+" not found in "+JSON.stringify(Object.keys(rt.choice))),it._encode(et.value,nt)};Node$3.prototype._encodePrimitive=function(et,nt){const rt=this._baseState;if(/str$/.test(et))return this._encodeStr(nt,et);if(et==="objid"&&rt.args)return this._encodeObjid(nt,rt.reverseArgs[0],rt.args[1]);if(et==="objid")return this._encodeObjid(nt,null,null);if(et==="gentime"||et==="utctime")return this._encodeTime(nt,et);if(et==="null_")return this._encodeNull();if(et==="int"||et==="enum")return this._encodeInt(nt,rt.args&&rt.reverseArgs[0]);if(et==="bool")return this._encodeBool(nt);if(et==="objDesc")return this._encodeStr(nt,et);throw new Error("Unsupported tag: "+et)};Node$3.prototype._isNumstr=function(et){return/^[0-9 ]*$/.test(et)};Node$3.prototype._isPrintstr=function(et){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(et)};var der$2={};(function(tt){function et(nt){const rt={};return Object.keys(nt).forEach(function(it){(it|0)==it&&(it=it|0);const ot=nt[it];rt[ot]=it}),rt}tt.tagClass={0:"universal",1:"application",2:"context",3:"private"},tt.tagClassByName=et(tt.tagClass),tt.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},tt.tagByName=et(tt.tag)})(der$2);const inherits$3=inherits_browserExports,Buffer$b=safer_1.Buffer,Node$2=node$1,der$1=der$2;function DEREncoder$1(tt){this.enc="der",this.name=tt.name,this.entity=tt,this.tree=new DERNode$1,this.tree._init(tt.body)}var der_1$1=DEREncoder$1;DEREncoder$1.prototype.encode=function(et,nt){return this.tree._encode(et,nt).join()};function DERNode$1(tt){Node$2.call(this,"der",tt)}inherits$3(DERNode$1,Node$2);DERNode$1.prototype._encodeComposite=function(et,nt,rt,it){const ot=encodeTag(et,nt,rt,this.reporter);if(it.length<128){const lt=Buffer$b.alloc(2);return lt[0]=ot,lt[1]=it.length,this._createEncoderBuffer([lt,it])}let at=1;for(let lt=it.length;lt>=256;lt>>=8)at++;const st=Buffer$b.alloc(1+1+at);st[0]=ot,st[1]=128|at;for(let lt=1+at,ct=it.length;ct>0;lt--,ct>>=8)st[lt]=ct&255;return this._createEncoderBuffer([st,it])};DERNode$1.prototype._encodeStr=function(et,nt){if(nt==="bitstr")return this._createEncoderBuffer([et.unused|0,et.data]);if(nt==="bmpstr"){const rt=Buffer$b.alloc(et.length*2);for(let it=0;it=40)return this.reporter.error("Second objid identifier OOB");et.splice(0,2,et[0]*40+et[1])}let it=0;for(let st=0;st=128;lt>>=7)it++}const ot=Buffer$b.alloc(it);let at=ot.length-1;for(let st=et.length-1;st>=0;st--){let lt=et[st];for(ot[at--]=lt&127;(lt>>=7)>0;)ot[at--]=128|lt&127}return this._createEncoderBuffer(ot)};function two(tt){return tt<10?"0"+tt:tt}DERNode$1.prototype._encodeTime=function(et,nt){let rt;const it=new Date(et);return nt==="gentime"?rt=[two(it.getUTCFullYear()),two(it.getUTCMonth()+1),two(it.getUTCDate()),two(it.getUTCHours()),two(it.getUTCMinutes()),two(it.getUTCSeconds()),"Z"].join(""):nt==="utctime"?rt=[two(it.getUTCFullYear()%100),two(it.getUTCMonth()+1),two(it.getUTCDate()),two(it.getUTCHours()),two(it.getUTCMinutes()),two(it.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+nt+" time is not supported yet"),this._encodeStr(rt,"octstr")};DERNode$1.prototype._encodeNull=function(){return this._createEncoderBuffer("")};DERNode$1.prototype._encodeInt=function(et,nt){if(typeof et=="string"){if(!nt)return this.reporter.error("String int or enum given, but no values map");if(!nt.hasOwnProperty(et))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(et));et=nt[et]}if(typeof et!="number"&&!Buffer$b.isBuffer(et)){const ot=et.toArray();!et.sign&&ot[0]&128&&ot.unshift(0),et=Buffer$b.from(ot)}if(Buffer$b.isBuffer(et)){let ot=et.length;et.length===0&&ot++;const at=Buffer$b.alloc(ot);return et.copy(at),et.length===0&&(at[0]=0),this._createEncoderBuffer(at)}if(et<128)return this._createEncoderBuffer(et);if(et<256)return this._createEncoderBuffer([0,et]);let rt=1;for(let ot=et;ot>=256;ot>>=8)rt++;const it=new Array(rt);for(let ot=it.length-1;ot>=0;ot--)it[ot]=et&255,et>>=8;return it[0]&128&&it.unshift(0),this._createEncoderBuffer(Buffer$b.from(it))};DERNode$1.prototype._encodeBool=function(et){return this._createEncoderBuffer(et?255:0)};DERNode$1.prototype._use=function(et,nt){return typeof et=="function"&&(et=et(nt)),et._getEncoder("der").tree};DERNode$1.prototype._skipDefault=function(et,nt,rt){const it=this._baseState;let ot;if(it.default===null)return!1;const at=et.join();if(it.defaultBuffer===void 0&&(it.defaultBuffer=this._encodeValue(it.default,nt,rt).join()),at.length!==it.defaultBuffer.length)return!1;for(ot=0;ot=31?rt.error("Multi-octet tag encoding unsupported"):(et||(it|=32),it|=der$1.tagClassByName[nt||"universal"]<<6,it)}const inherits$2=inherits_browserExports,DEREncoder=der_1$1;function PEMEncoder(tt){DEREncoder.call(this,tt),this.enc="pem"}inherits$2(PEMEncoder,DEREncoder);var pem$1=PEMEncoder;PEMEncoder.prototype.encode=function(et,nt){const it=DEREncoder.prototype.encode.call(this,et).toString("base64"),ot=["-----BEGIN "+nt.label+"-----"];for(let at=0;at>6],it=(nt&32)===0;if((nt&31)===31){let at=nt;for(nt=0;(at&128)===128;){if(at=tt.readUInt8(et),tt.isError(at))return at;nt<<=7,nt|=at&127}}else nt&=31;const ot=der.tag[nt];return{cls:rt,primitive:it,tag:nt,tagStr:ot}}function derDecodeLen(tt,et,nt){let rt=tt.readUInt8(nt);if(tt.isError(rt))return rt;if(!et&&rt===128)return null;if(!(rt&128))return rt;const it=rt&127;if(it>4)return tt.error("length octect is too long");rt=0;for(let ot=0;ot0&&wt.ishrn(vt),wt}function pt(yt,bt){yt=dt(yt,bt),yt=yt.mod(bt);var wt=tt.from(yt.toArray());if(wt.length=ut)throw new Error("invalid sig")}return verify_1=ot,verify_1}var browser$4,hasRequiredBrowser$1;function requireBrowser$1(){if(hasRequiredBrowser$1)return browser$4;hasRequiredBrowser$1=1;var tt=safeBufferExports.Buffer,et=browser$a,nt=readableBrowserExports,rt=inherits_browserExports,it=requireSign(),ot=requireVerify(),at=require$$6;Object.keys(at).forEach(function(ht){at[ht].id=tt.from(at[ht].id,"hex"),at[ht.toLowerCase()]=at[ht]});function st(ht){nt.Writable.call(this);var dt=at[ht];if(!dt)throw new Error("Unknown message digest");this._hashType=dt.hash,this._hash=et(dt.hash),this._tag=dt.id,this._signType=dt.sign}rt(st,nt.Writable),st.prototype._write=function(dt,pt,mt){this._hash.update(dt),mt()},st.prototype.update=function(dt,pt){return typeof dt=="string"&&(dt=tt.from(dt,pt)),this._hash.update(dt),this},st.prototype.sign=function(dt,pt){this.end();var mt=this._hash.digest(),gt=it(mt,dt,this._hashType,this._signType,this._tag);return pt?gt.toString(pt):gt};function lt(ht){nt.Writable.call(this);var dt=at[ht];if(!dt)throw new Error("Unknown message digest");this._hash=et(dt.hash),this._tag=dt.id,this._signType=dt.sign}rt(lt,nt.Writable),lt.prototype._write=function(dt,pt,mt){this._hash.update(dt),mt()},lt.prototype.update=function(dt,pt){return typeof dt=="string"&&(dt=tt.from(dt,pt)),this._hash.update(dt),this},lt.prototype.verify=function(dt,pt,mt){typeof pt=="string"&&(pt=tt.from(pt,mt)),this.end();var gt=this._hash.digest();return ot(pt,gt,dt,this._signType,this._tag)};function ct(ht){return new st(ht)}function ut(ht){return new lt(ht)}return browser$4={Sign:ct,Verify:ut,createSign:ct,createVerify:ut},browser$4}var browser$3,hasRequiredBrowser;function requireBrowser(){if(hasRequiredBrowser)return browser$3;hasRequiredBrowser=1;var tt=requireElliptic(),et=bnExports$2;browser$3=function(at){return new rt(at)};var nt={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};nt.p224=nt.secp224r1,nt.p256=nt.secp256r1=nt.prime256v1,nt.p192=nt.secp192r1=nt.prime192v1,nt.p384=nt.secp384r1,nt.p521=nt.secp521r1;function rt(ot){this.curveType=nt[ot],this.curveType||(this.curveType={name:ot}),this.curve=new tt.ec(this.curveType.name),this.keys=void 0}rt.prototype.generateKeys=function(ot,at){return this.keys=this.curve.genKeyPair(),this.getPublicKey(ot,at)},rt.prototype.computeSecret=function(ot,at,st){at=at||"utf8",Buffer.isBuffer(ot)||(ot=new Buffer(ot,at));var lt=this.curve.keyFromPublic(ot).getPublic(),ct=lt.mul(this.keys.getPrivate()).getX();return it(ct,st,this.curveType.byteLength)},rt.prototype.getPublicKey=function(ot,at){var st=this.keys.getPublic(at==="compressed",!0);return at==="hybrid"&&(st[st.length-1]%2?st[0]=7:st[0]=6),it(st,ot)},rt.prototype.getPrivateKey=function(ot){return it(this.keys.getPrivate(),ot)},rt.prototype.setPublicKey=function(ot,at){return at=at||"utf8",Buffer.isBuffer(ot)||(ot=new Buffer(ot,at)),this.keys._importPublic(ot),this},rt.prototype.setPrivateKey=function(ot,at){at=at||"utf8",Buffer.isBuffer(ot)||(ot=new Buffer(ot,at));var st=new et(ot);return st=st.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(st),this};function it(ot,at,st){Array.isArray(ot)||(ot=ot.toArray());var lt=new Buffer(ot);if(st&<.length=0)throw new Error("data too long for modulus")}else throw new Error("unknown padding");return rt?crt$1(at,ot):withPublic$1(at,ot)};function oaep$1(tt,et){var nt=tt.modulus.byteLength(),rt=et.length,it=createHash$2("sha1").update(Buffer$5.alloc(0)).digest(),ot=it.length,at=2*ot;if(rt>nt-at-2)throw new Error("message too long");var st=Buffer$5.alloc(nt-rt-at-2),lt=nt-ot-1,ct=randomBytes(ot),ut=xor$1(Buffer$5.concat([it,st,Buffer$5.alloc(1,1),et],lt),mgf$1(ct,lt)),ht=xor$1(ct,mgf$1(ut,ot));return new BN$3(Buffer$5.concat([Buffer$5.alloc(1),ht,ut],nt))}function pkcs1$1(tt,et,nt){var rt=et.length,it=tt.modulus.byteLength();if(rt>it-11)throw new Error("message too long");var ot;return nt?ot=Buffer$5.alloc(it-rt-3,255):ot=nonZero(it-rt-3),new BN$3(Buffer$5.concat([Buffer$5.from([0,nt?1:2]),ot,Buffer$5.alloc(1),et],it))}function nonZero(tt){for(var et=Buffer$5.allocUnsafe(tt),nt=0,rt=randomBytes(tt*2),it=0,ot;ntat||new BN$2(nt).cmp(ot.modulus)>=0)throw new Error("decryption error");var st;rt?st=withPublic(new BN$2(nt),ot):st=crt(nt,ot);var lt=Buffer$4.alloc(at-st.length);if(st=Buffer$4.concat([lt,st],at),it===4)return oaep(ot,st);if(it===1)return pkcs1(ot,st,rt);if(it===3)return st;throw new Error("unknown padding")};function oaep(tt,et){var nt=tt.modulus.byteLength(),rt=createHash$1("sha1").update(Buffer$4.alloc(0)).digest(),it=rt.length;if(et[0]!==0)throw new Error("decryption error");var ot=et.slice(1,it+1),at=et.slice(it+1),st=xor(ot,mgf(at,it)),lt=xor(at,mgf(st,nt-it-1));if(compare$1(rt,lt.slice(0,it)))throw new Error("decryption error");for(var ct=it;lt[ct]===0;)ct++;if(lt[ct++]!==1)throw new Error("decryption error");return lt.slice(ct)}function pkcs1(tt,et,nt){for(var rt=et.slice(0,2),it=2,ot=0;et[it++]!==0;)if(it>=et.length){ot++;break}var at=et.slice(2,it-1);if((rt.toString("hex")!=="0002"&&!nt||rt.toString("hex")!=="0001"&&nt)&&ot++,at.length<8&&ot++,ot)throw new Error("decryption error");return et.slice(it)}function compare$1(tt,et){tt=Buffer$4.from(tt),et=Buffer$4.from(et);var nt=0,rt=tt.length;tt.length!==et.length&&(nt++,rt=Math.min(tt.length,et.length));for(var it=-1;++itkMaxUint32||tt<0)throw new TypeError("offset must be a uint32");if(tt>kBufferMaxLength||tt>et)throw new RangeError("offset out of range")}function assertSize(tt,et,nt){if(typeof tt!="number"||tt!==tt)throw new TypeError("size must be a number");if(tt>kMaxUint32||tt<0)throw new TypeError("size must be a uint32");if(tt+et>nt||tt>kBufferMaxLength)throw new RangeError("buffer too small")}crypto$3&&crypto$3.getRandomValues||!process.browser?(browser$1.randomFill=randomFill,browser$1.randomFillSync=randomFillSync):(browser$1.randomFill=oldBrowser,browser$1.randomFillSync=oldBrowser);function randomFill(tt,et,nt,rt){if(!Buffer$3.isBuffer(tt)&&!(tt instanceof commonjsGlobal.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof et=="function")rt=et,et=0,nt=tt.length;else if(typeof nt=="function")rt=nt,nt=tt.length-et;else if(typeof rt!="function")throw new TypeError('"cb" argument must be a function');return assertOffset(et,tt.length),assertSize(nt,et,tt.length),actualFill(tt,et,nt,rt)}function actualFill(tt,et,nt,rt){if(process.browser){var it=tt.buffer,ot=new Uint8Array(it,et,nt);if(crypto$3.getRandomValues(ot),rt){process.nextTick(function(){rt(null,tt)});return}return tt}if(rt){randombytes(nt,function(st,lt){if(st)return rt(st);lt.copy(tt,et),rt(null,tt)});return}var at=randombytes(nt);return at.copy(tt,et),tt}function randomFillSync(tt,et,nt){if(typeof et>"u"&&(et=0),!Buffer$3.isBuffer(tt)&&!(tt instanceof commonjsGlobal.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return assertOffset(et,tt.length),nt===void 0&&(nt=tt.length-et),assertSize(nt,et,tt.length),actualFill(tt,et,nt)}var hasRequiredCryptoBrowserify;function requireCryptoBrowserify(){if(hasRequiredCryptoBrowserify)return cryptoBrowserify;hasRequiredCryptoBrowserify=1,cryptoBrowserify.randomBytes=cryptoBrowserify.rng=cryptoBrowserify.pseudoRandomBytes=cryptoBrowserify.prng=browserExports,cryptoBrowserify.createHash=cryptoBrowserify.Hash=browser$a,cryptoBrowserify.createHmac=cryptoBrowserify.Hmac=browser$9;var tt=algos,et=Object.keys(tt),nt=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(et);cryptoBrowserify.getHashes=function(){return nt};var rt=browser$8;cryptoBrowserify.pbkdf2=rt.pbkdf2,cryptoBrowserify.pbkdf2Sync=rt.pbkdf2Sync;var it=browser$7;cryptoBrowserify.Cipher=it.Cipher,cryptoBrowserify.createCipher=it.createCipher,cryptoBrowserify.Cipheriv=it.Cipheriv,cryptoBrowserify.createCipheriv=it.createCipheriv,cryptoBrowserify.Decipher=it.Decipher,cryptoBrowserify.createDecipher=it.createDecipher,cryptoBrowserify.Decipheriv=it.Decipheriv,cryptoBrowserify.createDecipheriv=it.createDecipheriv,cryptoBrowserify.getCiphers=it.getCiphers,cryptoBrowserify.listCiphers=it.listCiphers;var ot=requireBrowser$2();cryptoBrowserify.DiffieHellmanGroup=ot.DiffieHellmanGroup,cryptoBrowserify.createDiffieHellmanGroup=ot.createDiffieHellmanGroup,cryptoBrowserify.getDiffieHellman=ot.getDiffieHellman,cryptoBrowserify.createDiffieHellman=ot.createDiffieHellman,cryptoBrowserify.DiffieHellman=ot.DiffieHellman;var at=requireBrowser$1();cryptoBrowserify.createSign=at.createSign,cryptoBrowserify.Sign=at.Sign,cryptoBrowserify.createVerify=at.createVerify,cryptoBrowserify.Verify=at.Verify,cryptoBrowserify.createECDH=requireBrowser();var st=browser$2;cryptoBrowserify.publicEncrypt=st.publicEncrypt,cryptoBrowserify.privateEncrypt=st.privateEncrypt,cryptoBrowserify.publicDecrypt=st.publicDecrypt,cryptoBrowserify.privateDecrypt=st.privateDecrypt;var lt=browser$1;return cryptoBrowserify.randomFill=lt.randomFill,cryptoBrowserify.randomFillSync=lt.randomFillSync,cryptoBrowserify.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join(` -`))},cryptoBrowserify.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},cryptoBrowserify}var rngBrowser={exports:{}},getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof window.msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto);if(getRandomValues){var rnds8=new Uint8Array(16);rngBrowser.exports=function(){return getRandomValues(rnds8),rnds8}}else{var rnds=new Array(16);rngBrowser.exports=function(){for(var et=0,nt;et<16;et++)et&3||(nt=Math.random()*4294967296),rnds[et]=nt>>>((et&3)<<3)&255;return rnds}}var rngBrowserExports=rngBrowser.exports,byteToHex=[];for(var i$4=0;i$4<256;++i$4)byteToHex[i$4]=(i$4+256).toString(16).substr(1);function bytesToUuid$1(tt,et){var nt=et||0,rt=byteToHex;return[rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]],"-",rt[tt[nt++]],rt[tt[nt++]],"-",rt[tt[nt++]],rt[tt[nt++]],"-",rt[tt[nt++]],rt[tt[nt++]],"-",rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]]].join("")}var bytesToUuid_1=bytesToUuid$1,rng=rngBrowserExports,bytesToUuid=bytesToUuid_1;function v4(tt,et,nt){var rt=et&&nt||0;typeof tt=="string"&&(et=tt==="binary"?new Array(16):null,tt=null),tt=tt||{};var it=tt.random||(tt.rng||rng)();if(it[6]=it[6]&15|64,it[8]=it[8]&63|128,et)for(var ot=0;ot<16;++ot)et[rt+ot]=it[ot];return et||bytesToUuid(it)}var v4_1=v4,macaroon$1={},sjcl={exports:{}};(function(tt){var et={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(mt){this.toString=function(){return"CORRUPT: "+this.message},this.message=mt},invalid:function(mt){this.toString=function(){return"INVALID: "+this.message},this.message=mt},bug:function(mt){this.toString=function(){return"BUG: "+this.message},this.message=mt},notReady:function(mt){this.toString=function(){return"NOT READY: "+this.message},this.message=mt}}};et.cipher.aes=function(mt){this.s[0][0][0]||this.O();var gt,yt,bt,wt,vt=this.s[0][4],kt=this.s[1];gt=mt.length;var St=1;if(gt!==4&>!==6&>!==8)throw new et.exception.invalid("invalid aes key size");for(this.b=[bt=mt.slice(0),wt=[]],mt=gt;mt<4*gt+28;mt++)yt=bt[mt-1],(mt%gt===0||gt===8&&mt%gt===4)&&(yt=vt[yt>>>24]<<24^vt[yt>>16&255]<<16^vt[yt>>8&255]<<8^vt[yt&255],mt%gt===0&&(yt=yt<<8^yt>>>24^St<<24,St=St<<1^283*(St>>7))),bt[mt]=bt[mt-gt]^yt;for(gt=0;mt;gt++,mt--)yt=bt[gt&3?mt:mt-4],wt[gt]=4>=mt||4>gt?yt:kt[0][vt[yt>>>24]]^kt[1][vt[yt>>16&255]]^kt[2][vt[yt>>8&255]]^kt[3][vt[yt&255]]},et.cipher.aes.prototype={encrypt:function(mt){return nt(this,mt,0)},decrypt:function(mt){return nt(this,mt,1)},s:[[[],[],[],[],[]],[[],[],[],[],[]]],O:function(){var mt=this.s[0],gt=this.s[1],yt=mt[4],bt=gt[4],wt,vt,kt,St=[],Tt=[],At,Et,Mt,Lt;for(wt=0;256>wt;wt++)Tt[(St[wt]=wt<<1^283*(wt>>7))^wt]=wt;for(vt=kt=0;!yt[vt];vt^=At||1,kt=Tt[kt]||1)for(Mt=kt^kt<<1^kt<<2^kt<<3^kt<<4,Mt=Mt>>8^Mt&255^99,yt[vt]=Mt,bt[Mt]=vt,Et=St[wt=St[At=St[vt]]],Lt=16843009*Et^65537*wt^257*At^16843008*vt,Et=257*St[Mt]^16843008*Mt,wt=0;4>wt;wt++)mt[wt][vt]=Et=Et<<24^Et>>>8,gt[wt][Mt]=Lt=Lt<<24^Lt>>>8;for(wt=0;5>wt;wt++)mt[wt]=mt[wt].slice(0),gt[wt]=gt[wt].slice(0)}};function nt(mt,gt,yt){if(gt.length!==4)throw new et.exception.invalid("invalid aes block size");var bt=mt.b[yt],wt=gt[0]^bt[0],vt=gt[yt?3:1]^bt[1],kt=gt[2]^bt[2];gt=gt[yt?1:3]^bt[3];var St,Tt,At,Et=bt.length/4-2,Mt,Lt=4,jt=[0,0,0,0];St=mt.s[yt],mt=St[0];var Rt=St[1],$t=St[2],xt=St[3],It=St[4];for(Mt=0;Mt>>24]^Rt[vt>>16&255]^$t[kt>>8&255]^xt[gt&255]^bt[Lt],Tt=mt[vt>>>24]^Rt[kt>>16&255]^$t[gt>>8&255]^xt[wt&255]^bt[Lt+1],At=mt[kt>>>24]^Rt[gt>>16&255]^$t[wt>>8&255]^xt[vt&255]^bt[Lt+2],gt=mt[gt>>>24]^Rt[wt>>16&255]^$t[vt>>8&255]^xt[kt&255]^bt[Lt+3],Lt+=4,wt=St,vt=Tt,kt=At;for(Mt=0;4>Mt;Mt++)jt[yt?3&-Mt:Mt]=It[wt>>>24]<<24^It[vt>>16&255]<<16^It[kt>>8&255]<<8^It[gt&255]^bt[Lt++],St=wt,wt=vt,vt=kt,kt=gt,gt=St;return jt}et.bitArray={bitSlice:function(mt,gt,yt){return mt=et.bitArray.$(mt.slice(gt/32),32-(gt&31)).slice(1),yt===void 0?mt:et.bitArray.clamp(mt,yt-gt)},extract:function(mt,gt,yt){var bt=Math.floor(-gt-yt&31);return((gt+yt-1^gt)&-32?mt[gt/32|0]<<32-bt^mt[gt/32+1|0]>>>bt:mt[gt/32|0]>>>bt)&(1<>gt-1,1)),mt},partial:function(mt,gt,yt){return mt===32?gt:(yt?gt|0:gt<<32-mt)+1099511627776*mt},getPartial:function(mt){return Math.round(mt/1099511627776)||32},equal:function(mt,gt){if(et.bitArray.bitLength(mt)!==et.bitArray.bitLength(gt))return!1;var yt=0,bt;for(bt=0;bt>>gt),yt=mt[wt]<<32-gt;return wt=mt.length?mt[mt.length-1]:0,mt=et.bitArray.getPartial(wt),bt.push(et.bitArray.partial(gt+mt&31,32>>24|yt>>>8&65280|(yt&65280)<<8|yt<<24;return mt}},et.codec.utf8String={fromBits:function(mt){var gt="",yt=et.bitArray.bitLength(mt),bt,wt;for(bt=0;bt>>8>>>8>>>8),wt<<=8;return decodeURIComponent(escape(gt))},toBits:function(mt){mt=unescape(encodeURIComponent(mt));var gt=[],yt,bt=0;for(yt=0;yt>>kt)>>>wt),ktEt){if(!gt)try{return et.codec.base32hex.toBits(mt)}catch{}throw new et.exception.invalid("this isn't "+Mt+"!")}St>wt?(St-=wt,vt.push(At^Et>>>St),At=Et<>>wt)>>>26),6>wt?(kt=mt[yt]<<6-wt,wt+=26,yt++):(kt<<=6,wt-=6);for(;bt.length&3&&!gt;)bt+="=";return bt},toBits:function(mt,gt){mt=mt.replace(/\s|=/g,"");var yt=[],bt,wt=0,vt=et.codec.base64.B,kt=0,St;for(gt&&(vt=vt.substr(0,62)+"-_"),bt=0;btSt)throw new et.exception.invalid("this isn't base64!");26>>wt),kt=St<<32-wt):(wt+=6,kt^=St<<32-wt)}return wt&56&&yt.push(et.bitArray.partial(wt&56,kt,1)),yt}},et.codec.base64url={fromBits:function(mt){return et.codec.base64.fromBits(mt,1,1)},toBits:function(mt){return et.codec.base64.toBits(mt,1)}},et.hash.sha256=function(mt){this.b[0]||this.O(),mt?(this.F=mt.F.slice(0),this.A=mt.A.slice(0),this.l=mt.l):this.reset()},et.hash.sha256.hash=function(mt){return new et.hash.sha256().update(mt).finalize()},et.hash.sha256.prototype={blockSize:512,reset:function(){return this.F=this.Y.slice(0),this.A=[],this.l=0,this},update:function(mt){typeof mt=="string"&&(mt=et.codec.utf8String.toBits(mt));var gt,yt=this.A=et.bitArray.concat(this.A,mt);if(gt=this.l,mt=this.l=gt+et.bitArray.bitLength(mt),9007199254740991gt;yt++){for(wt=!0,bt=2;bt*bt<=yt;bt++)if(yt%bt===0){wt=!1;break}wt&&(8>gt&&(this.Y[gt]=mt(Math.pow(yt,.5))),this.b[gt]=mt(Math.pow(yt,1/3)),gt++)}}};function rt(mt,gt){var yt,bt,wt,vt=mt.F,kt=mt.b,St=vt[0],Tt=vt[1],At=vt[2],Et=vt[3],Mt=vt[4],Lt=vt[5],jt=vt[6],Rt=vt[7];for(yt=0;64>yt;yt++)16>yt?bt=gt[yt]:(bt=gt[yt+1&15],wt=gt[yt+14&15],bt=gt[yt&15]=(bt>>>7^bt>>>18^bt>>>3^bt<<25^bt<<14)+(wt>>>17^wt>>>19^wt>>>10^wt<<15^wt<<13)+gt[yt&15]+gt[yt+9&15]|0),bt=bt+Rt+(Mt>>>6^Mt>>>11^Mt>>>25^Mt<<26^Mt<<21^Mt<<7)+(jt^Mt&(Lt^jt))+kt[yt],Rt=jt,jt=Lt,Lt=Mt,Mt=Et+bt|0,Et=At,At=Tt,Tt=St,St=bt+(Tt&At^Et&(Tt^At))+(Tt>>>2^Tt>>>13^Tt>>>22^Tt<<30^Tt<<19^Tt<<10)|0;vt[0]=vt[0]+St|0,vt[1]=vt[1]+Tt|0,vt[2]=vt[2]+At|0,vt[3]=vt[3]+Et|0,vt[4]=vt[4]+Mt|0,vt[5]=vt[5]+Lt|0,vt[6]=vt[6]+jt|0,vt[7]=vt[7]+Rt|0}et.mode.ccm={name:"ccm",G:[],listenProgress:function(mt){et.mode.ccm.G.push(mt)},unListenProgress:function(mt){mt=et.mode.ccm.G.indexOf(mt),-1Tt)throw new et.exception.invalid("ccm: iv must be at least 7 bytes");for(vt=2;4>vt&&At>>>8*vt;vt++);return vt<15-Tt&&(vt=15-Tt),yt=St.clamp(yt,8*(15-vt)),gt=et.mode.ccm.V(mt,gt,yt,bt,wt,vt),kt=et.mode.ccm.C(mt,kt,yt,gt,wt,vt),St.concat(kt.data,kt.tag)},decrypt:function(mt,gt,yt,bt,wt){wt=wt||64,bt=bt||[];var vt=et.bitArray,kt=vt.bitLength(yt)/8,At=vt.bitLength(gt),St=vt.clamp(gt,At-wt),Tt=vt.bitSlice(gt,At-wt),At=(At-wt)/8;if(7>kt)throw new et.exception.invalid("ccm: iv must be at least 7 bytes");for(gt=2;4>gt&&At>>>8*gt;gt++);if(gt<15-kt&&(gt=15-kt),yt=vt.clamp(yt,8*(15-gt)),St=et.mode.ccm.C(mt,St,yt,Tt,wt,gt),mt=et.mode.ccm.V(mt,St.data,yt,bt,wt,gt),!vt.equal(St.tag,mt))throw new et.exception.corrupt("ccm: tag doesn't match");return St.data},na:function(mt,gt,yt,bt,wt,vt){var kt=[],St=et.bitArray,Tt=St.i;if(bt=[St.partial(8,(gt.length?64:0)|bt-2<<2|vt-1)],bt=St.concat(bt,yt),bt[3]|=wt,bt=mt.encrypt(bt),gt.length)for(yt=St.bitLength(gt)/8,65279>=yt?kt=[St.partial(16,yt)]:4294967295>=yt&&(kt=St.concat([St.partial(16,65534)],[yt])),kt=St.concat(kt,gt),gt=0;gtwt||16Et&&(et.mode.ccm.fa(kt/Tt),Et+=Mt),yt[3]++,wt=mt.encrypt(yt),gt[kt]^=wt[0],gt[kt+1]^=wt[1],gt[kt+2]^=wt[2],gt[kt+3]^=wt[3];return{tag:bt,data:St.clamp(gt,At)}}},et.mode.ocb2={name:"ocb2",encrypt:function(mt,gt,yt,bt,wt,vt){if(et.bitArray.bitLength(yt)!==128)throw new et.exception.invalid("ocb iv must be 128 bits");var kt,St=et.mode.ocb2.S,Tt=et.bitArray,At=Tt.i,Et=[0,0,0,0];yt=St(mt.encrypt(yt));var Mt,Lt=[];for(bt=bt||[],wt=wt||64,kt=0;kt+4wt.bitLength(yt)&&(St=vt(St,bt(St)),yt=wt.concat(yt,[-2147483648,0,0,0])),kt=vt(kt,yt),mt.encrypt(vt(bt(vt(St,bt(St))),kt))},S:function(mt){return[mt[0]<<1^mt[1]>>>31,mt[1]<<1^mt[2]>>>31,mt[2]<<1^mt[3]>>>31,mt[3]<<1^135*(mt[0]>>>31)]}},et.mode.gcm={name:"gcm",encrypt:function(mt,gt,yt,bt,wt){var vt=gt.slice(0);return gt=et.bitArray,bt=bt||[],mt=et.mode.gcm.C(!0,mt,vt,bt,yt,wt||128),gt.concat(mt.data,mt.tag)},decrypt:function(mt,gt,yt,bt,wt){var vt=gt.slice(0),kt=et.bitArray,St=kt.bitLength(vt);if(wt=wt||128,bt=bt||[],wt<=St?(gt=kt.bitSlice(vt,St-wt),vt=kt.bitSlice(vt,0,St-wt)):(gt=vt,vt=[]),mt=et.mode.gcm.C(!1,mt,vt,bt,yt,wt),!kt.equal(mt.tag,gt))throw new et.exception.corrupt("gcm: tag doesn't match");return mt.data},ka:function(mt,gt){var yt,bt,wt,vt,kt,St=et.bitArray.i;for(wt=[0,0,0,0],vt=gt.slice(0),yt=0;128>yt;yt++){for((bt=(mt[Math.floor(yt/32)]&1<<31-yt%32)!==0)&&(wt=St(wt,vt)),kt=(vt[3]&1)!==0,bt=3;0>>1|(vt[bt-1]&1)<<31;vt[0]>>>=1,kt&&(vt[0]^=-520093696)}return wt},j:function(mt,gt,yt){var bt,wt=yt.length;for(gt=gt.slice(0),bt=0;btwt&&(mt=gt.hash(mt)),bt=0;btbt||0>yt)throw new et.exception.invalid("invalid params to pbkdf2");typeof mt=="string"&&(mt=et.codec.utf8String.toBits(mt)),typeof gt=="string"&&(gt=et.codec.utf8String.toBits(gt)),wt=wt||et.misc.hmac,mt=new wt(mt);var vt,kt,St,Tt,At=[],Et=et.bitArray;for(Tt=1;32*At.length<(bt||1);Tt++){for(wt=vt=mt.encrypt(Et.concat(gt,[Tt])),kt=1;ktkt;kt++)wt.push(4294967296*Math.random()|0);for(kt=0;kt=1<this.o&&(this.o=vt),this.P++,this.b=et.hash.sha256.hash(this.b.concat(wt)),this.L=new et.cipher.aes(this.b),bt=0;4>bt&&(this.h[bt]=this.h[bt]+1|0,!this.h[bt]);bt++);}for(bt=0;bt>>1;this.c[kt].update([bt,this.N++,2,gt,vt,mt.length].concat(mt))}break;case"string":gt===void 0&&(gt=mt.length),this.c[kt].update([bt,this.N++,3,gt,vt,mt.length]),this.c[kt].update(mt);break;default:Tt=1}if(Tt)throw new et.exception.bug("random: addEntropy only supports number, array of numbers or string");this.m[kt]+=gt,this.f+=gt,St===this.u&&(this.isReady()!==this.u&&it("seeded",Math.max(this.o,this.f)),it("progress",this.getProgress()))},isReady:function(mt){return mt=this.T[mt!==void 0?mt:this.M],this.o&&this.o>=mt?this.m[0]>this.ba&&new Date().valueOf()>this.Z?this.J|this.I:this.I:this.f>=mt?this.J|this.u:this.u},getProgress:function(mt){return mt=this.T[mt||this.M],this.o>=mt||this.f>mt?1:this.f/mt},startCollectors:function(){if(!this.D){if(this.a={loadTimeCollector:lt(this,this.ma),mouseCollector:lt(this,this.oa),keyboardCollector:lt(this,this.la),accelerometerCollector:lt(this,this.ea),touchCollector:lt(this,this.qa)},window.addEventListener)window.addEventListener("load",this.a.loadTimeCollector,!1),window.addEventListener("mousemove",this.a.mouseCollector,!1),window.addEventListener("keypress",this.a.keyboardCollector,!1),window.addEventListener("devicemotion",this.a.accelerometerCollector,!1),window.addEventListener("touchmove",this.a.touchCollector,!1);else if(document.attachEvent)document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector);else throw new et.exception.bug("can't attach event");this.D=!0}},stopCollectors:function(){this.D&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,!1),window.removeEventListener("mousemove",this.a.mouseCollector,!1),window.removeEventListener("keypress",this.a.keyboardCollector,!1),window.removeEventListener("devicemotion",this.a.accelerometerCollector,!1),window.removeEventListener("touchmove",this.a.touchCollector,!1)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.D=!1)},addEventListener:function(mt,gt){this.K[mt][this.ga++]=gt},removeEventListener:function(mt,gt){var yt,bt,wt=this.K[mt],vt=[];for(bt in wt)wt.hasOwnProperty(bt)&&wt[bt]===gt&&vt.push(bt);for(yt=0;ytgt&&(mt.h[gt]=mt.h[gt]+1|0,!mt.h[gt]);gt++);return mt.L.encrypt(mt.h)}function lt(mt,gt){return function(){gt.apply(mt,arguments)}}et.random=new et.prng(6);e:try{var ct,ut,ht,dt;if(dt=tt.exports){var pt;try{pt=requireCryptoBrowserify()}catch{pt=null}dt=ut=pt}if(dt&&ut.randomBytes)ct=ut.randomBytes(128),ct=new Uint32Array(new Uint8Array(ct).buffer),et.random.addEntropy(ct,1024,"crypto['randomBytes']");else if(typeof window<"u"&&typeof Uint32Array<"u"){if(ht=new Uint32Array(32),window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(ht);else if(window.msCrypto&&window.msCrypto.getRandomValues)window.msCrypto.getRandomValues(ht);else break e;et.random.addEntropy(ht,1024,"crypto['getRandomValues']")}}catch(mt){typeof window<"u"&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(mt))}et.json={defaults:{v:1,iter:1e4,ks:128,ts:64,mode:"ccm",adata:"",cipher:"aes"},ja:function(mt,gt,yt,bt){yt=yt||{},bt=bt||{};var wt=et.json,vt=wt.g({iv:et.random.randomWords(4,0)},wt.defaults),kt;if(wt.g(vt,yt),yt=vt.adata,typeof vt.salt=="string"&&(vt.salt=et.codec.base64.toBits(vt.salt)),typeof vt.iv=="string"&&(vt.iv=et.codec.base64.toBits(vt.iv)),!et.mode[vt.mode]||!et.cipher[vt.cipher]||typeof mt=="string"&&100>=vt.iter||vt.ts!==64&&vt.ts!==96&&vt.ts!==128||vt.ks!==128&&vt.ks!==192&&vt.ks!==256||2>vt.iv.length||4=gt.iter||gt.ts!==64&>.ts!==96&>.ts!==128||gt.ks!==128&>.ks!==192&>.ks!==256||!gt.iv||2>gt.iv.length||4>24&255,vn[Pn+1]=sn>>16&255,vn[Pn+2]=sn>>8&255,vn[Pn+3]=sn&255,vn[Pn+4]=Xt>>24&255,vn[Pn+5]=Xt>>16&255,vn[Pn+6]=Xt>>8&255,vn[Pn+7]=Xt&255}function gt(vn,Pn,sn,Xt,xn){var Dn,Fn=0;for(Dn=0;Dn>>8)-1}function yt(vn,Pn,sn,Xt){return gt(vn,Pn,sn,Xt,16)}function bt(vn,Pn,sn,Xt){return gt(vn,Pn,sn,Xt,32)}function wt(vn,Pn,sn,Xt){for(var xn=Xt[0]&255|(Xt[1]&255)<<8|(Xt[2]&255)<<16|(Xt[3]&255)<<24,Dn=sn[0]&255|(sn[1]&255)<<8|(sn[2]&255)<<16|(sn[3]&255)<<24,Fn=sn[4]&255|(sn[5]&255)<<8|(sn[6]&255)<<16|(sn[7]&255)<<24,Kn=sn[8]&255|(sn[9]&255)<<8|(sn[10]&255)<<16|(sn[11]&255)<<24,nr=sn[12]&255|(sn[13]&255)<<8|(sn[14]&255)<<16|(sn[15]&255)<<24,lr=Xt[4]&255|(Xt[5]&255)<<8|(Xt[6]&255)<<16|(Xt[7]&255)<<24,cr=Pn[0]&255|(Pn[1]&255)<<8|(Pn[2]&255)<<16|(Pn[3]&255)<<24,Hr=Pn[4]&255|(Pn[5]&255)<<8|(Pn[6]&255)<<16|(Pn[7]&255)<<24,_r=Pn[8]&255|(Pn[9]&255)<<8|(Pn[10]&255)<<16|(Pn[11]&255)<<24,jr=Pn[12]&255|(Pn[13]&255)<<8|(Pn[14]&255)<<16|(Pn[15]&255)<<24,Gr=Xt[8]&255|(Xt[9]&255)<<8|(Xt[10]&255)<<16|(Xt[11]&255)<<24,eo=sn[16]&255|(sn[17]&255)<<8|(sn[18]&255)<<16|(sn[19]&255)<<24,Qr=sn[20]&255|(sn[21]&255)<<8|(sn[22]&255)<<16|(sn[23]&255)<<24,_i=sn[24]&255|(sn[25]&255)<<8|(sn[26]&255)<<16|(sn[27]&255)<<24,wr=sn[28]&255|(sn[29]&255)<<8|(sn[30]&255)<<16|(sn[31]&255)<<24,$r=Xt[12]&255|(Xt[13]&255)<<8|(Xt[14]&255)<<16|(Xt[15]&255)<<24,Wr=xn,Br=Dn,Pr=Fn,Lr=Kn,Nr=nr,Cr=lr,er=cr,ir=Hr,Sr=_r,dr=jr,br=Gr,Ir=eo,ro=Qr,ao=_i,mo=wr,fo=$r,Gn,bo=0;bo<20;bo+=2)Gn=Wr+ro|0,Nr^=Gn<<7|Gn>>>32-7,Gn=Nr+Wr|0,Sr^=Gn<<9|Gn>>>32-9,Gn=Sr+Nr|0,ro^=Gn<<13|Gn>>>32-13,Gn=ro+Sr|0,Wr^=Gn<<18|Gn>>>32-18,Gn=Cr+Br|0,dr^=Gn<<7|Gn>>>32-7,Gn=dr+Cr|0,ao^=Gn<<9|Gn>>>32-9,Gn=ao+dr|0,Br^=Gn<<13|Gn>>>32-13,Gn=Br+ao|0,Cr^=Gn<<18|Gn>>>32-18,Gn=br+er|0,mo^=Gn<<7|Gn>>>32-7,Gn=mo+br|0,Pr^=Gn<<9|Gn>>>32-9,Gn=Pr+mo|0,er^=Gn<<13|Gn>>>32-13,Gn=er+Pr|0,br^=Gn<<18|Gn>>>32-18,Gn=fo+Ir|0,Lr^=Gn<<7|Gn>>>32-7,Gn=Lr+fo|0,ir^=Gn<<9|Gn>>>32-9,Gn=ir+Lr|0,Ir^=Gn<<13|Gn>>>32-13,Gn=Ir+ir|0,fo^=Gn<<18|Gn>>>32-18,Gn=Wr+Lr|0,Br^=Gn<<7|Gn>>>32-7,Gn=Br+Wr|0,Pr^=Gn<<9|Gn>>>32-9,Gn=Pr+Br|0,Lr^=Gn<<13|Gn>>>32-13,Gn=Lr+Pr|0,Wr^=Gn<<18|Gn>>>32-18,Gn=Cr+Nr|0,er^=Gn<<7|Gn>>>32-7,Gn=er+Cr|0,ir^=Gn<<9|Gn>>>32-9,Gn=ir+er|0,Nr^=Gn<<13|Gn>>>32-13,Gn=Nr+ir|0,Cr^=Gn<<18|Gn>>>32-18,Gn=br+dr|0,Ir^=Gn<<7|Gn>>>32-7,Gn=Ir+br|0,Sr^=Gn<<9|Gn>>>32-9,Gn=Sr+Ir|0,dr^=Gn<<13|Gn>>>32-13,Gn=dr+Sr|0,br^=Gn<<18|Gn>>>32-18,Gn=fo+mo|0,ro^=Gn<<7|Gn>>>32-7,Gn=ro+fo|0,ao^=Gn<<9|Gn>>>32-9,Gn=ao+ro|0,mo^=Gn<<13|Gn>>>32-13,Gn=mo+ao|0,fo^=Gn<<18|Gn>>>32-18;Wr=Wr+xn|0,Br=Br+Dn|0,Pr=Pr+Fn|0,Lr=Lr+Kn|0,Nr=Nr+nr|0,Cr=Cr+lr|0,er=er+cr|0,ir=ir+Hr|0,Sr=Sr+_r|0,dr=dr+jr|0,br=br+Gr|0,Ir=Ir+eo|0,ro=ro+Qr|0,ao=ao+_i|0,mo=mo+wr|0,fo=fo+$r|0,vn[0]=Wr>>>0&255,vn[1]=Wr>>>8&255,vn[2]=Wr>>>16&255,vn[3]=Wr>>>24&255,vn[4]=Br>>>0&255,vn[5]=Br>>>8&255,vn[6]=Br>>>16&255,vn[7]=Br>>>24&255,vn[8]=Pr>>>0&255,vn[9]=Pr>>>8&255,vn[10]=Pr>>>16&255,vn[11]=Pr>>>24&255,vn[12]=Lr>>>0&255,vn[13]=Lr>>>8&255,vn[14]=Lr>>>16&255,vn[15]=Lr>>>24&255,vn[16]=Nr>>>0&255,vn[17]=Nr>>>8&255,vn[18]=Nr>>>16&255,vn[19]=Nr>>>24&255,vn[20]=Cr>>>0&255,vn[21]=Cr>>>8&255,vn[22]=Cr>>>16&255,vn[23]=Cr>>>24&255,vn[24]=er>>>0&255,vn[25]=er>>>8&255,vn[26]=er>>>16&255,vn[27]=er>>>24&255,vn[28]=ir>>>0&255,vn[29]=ir>>>8&255,vn[30]=ir>>>16&255,vn[31]=ir>>>24&255,vn[32]=Sr>>>0&255,vn[33]=Sr>>>8&255,vn[34]=Sr>>>16&255,vn[35]=Sr>>>24&255,vn[36]=dr>>>0&255,vn[37]=dr>>>8&255,vn[38]=dr>>>16&255,vn[39]=dr>>>24&255,vn[40]=br>>>0&255,vn[41]=br>>>8&255,vn[42]=br>>>16&255,vn[43]=br>>>24&255,vn[44]=Ir>>>0&255,vn[45]=Ir>>>8&255,vn[46]=Ir>>>16&255,vn[47]=Ir>>>24&255,vn[48]=ro>>>0&255,vn[49]=ro>>>8&255,vn[50]=ro>>>16&255,vn[51]=ro>>>24&255,vn[52]=ao>>>0&255,vn[53]=ao>>>8&255,vn[54]=ao>>>16&255,vn[55]=ao>>>24&255,vn[56]=mo>>>0&255,vn[57]=mo>>>8&255,vn[58]=mo>>>16&255,vn[59]=mo>>>24&255,vn[60]=fo>>>0&255,vn[61]=fo>>>8&255,vn[62]=fo>>>16&255,vn[63]=fo>>>24&255}function vt(vn,Pn,sn,Xt){for(var xn=Xt[0]&255|(Xt[1]&255)<<8|(Xt[2]&255)<<16|(Xt[3]&255)<<24,Dn=sn[0]&255|(sn[1]&255)<<8|(sn[2]&255)<<16|(sn[3]&255)<<24,Fn=sn[4]&255|(sn[5]&255)<<8|(sn[6]&255)<<16|(sn[7]&255)<<24,Kn=sn[8]&255|(sn[9]&255)<<8|(sn[10]&255)<<16|(sn[11]&255)<<24,nr=sn[12]&255|(sn[13]&255)<<8|(sn[14]&255)<<16|(sn[15]&255)<<24,lr=Xt[4]&255|(Xt[5]&255)<<8|(Xt[6]&255)<<16|(Xt[7]&255)<<24,cr=Pn[0]&255|(Pn[1]&255)<<8|(Pn[2]&255)<<16|(Pn[3]&255)<<24,Hr=Pn[4]&255|(Pn[5]&255)<<8|(Pn[6]&255)<<16|(Pn[7]&255)<<24,_r=Pn[8]&255|(Pn[9]&255)<<8|(Pn[10]&255)<<16|(Pn[11]&255)<<24,jr=Pn[12]&255|(Pn[13]&255)<<8|(Pn[14]&255)<<16|(Pn[15]&255)<<24,Gr=Xt[8]&255|(Xt[9]&255)<<8|(Xt[10]&255)<<16|(Xt[11]&255)<<24,eo=sn[16]&255|(sn[17]&255)<<8|(sn[18]&255)<<16|(sn[19]&255)<<24,Qr=sn[20]&255|(sn[21]&255)<<8|(sn[22]&255)<<16|(sn[23]&255)<<24,_i=sn[24]&255|(sn[25]&255)<<8|(sn[26]&255)<<16|(sn[27]&255)<<24,wr=sn[28]&255|(sn[29]&255)<<8|(sn[30]&255)<<16|(sn[31]&255)<<24,$r=Xt[12]&255|(Xt[13]&255)<<8|(Xt[14]&255)<<16|(Xt[15]&255)<<24,Wr=xn,Br=Dn,Pr=Fn,Lr=Kn,Nr=nr,Cr=lr,er=cr,ir=Hr,Sr=_r,dr=jr,br=Gr,Ir=eo,ro=Qr,ao=_i,mo=wr,fo=$r,Gn,bo=0;bo<20;bo+=2)Gn=Wr+ro|0,Nr^=Gn<<7|Gn>>>32-7,Gn=Nr+Wr|0,Sr^=Gn<<9|Gn>>>32-9,Gn=Sr+Nr|0,ro^=Gn<<13|Gn>>>32-13,Gn=ro+Sr|0,Wr^=Gn<<18|Gn>>>32-18,Gn=Cr+Br|0,dr^=Gn<<7|Gn>>>32-7,Gn=dr+Cr|0,ao^=Gn<<9|Gn>>>32-9,Gn=ao+dr|0,Br^=Gn<<13|Gn>>>32-13,Gn=Br+ao|0,Cr^=Gn<<18|Gn>>>32-18,Gn=br+er|0,mo^=Gn<<7|Gn>>>32-7,Gn=mo+br|0,Pr^=Gn<<9|Gn>>>32-9,Gn=Pr+mo|0,er^=Gn<<13|Gn>>>32-13,Gn=er+Pr|0,br^=Gn<<18|Gn>>>32-18,Gn=fo+Ir|0,Lr^=Gn<<7|Gn>>>32-7,Gn=Lr+fo|0,ir^=Gn<<9|Gn>>>32-9,Gn=ir+Lr|0,Ir^=Gn<<13|Gn>>>32-13,Gn=Ir+ir|0,fo^=Gn<<18|Gn>>>32-18,Gn=Wr+Lr|0,Br^=Gn<<7|Gn>>>32-7,Gn=Br+Wr|0,Pr^=Gn<<9|Gn>>>32-9,Gn=Pr+Br|0,Lr^=Gn<<13|Gn>>>32-13,Gn=Lr+Pr|0,Wr^=Gn<<18|Gn>>>32-18,Gn=Cr+Nr|0,er^=Gn<<7|Gn>>>32-7,Gn=er+Cr|0,ir^=Gn<<9|Gn>>>32-9,Gn=ir+er|0,Nr^=Gn<<13|Gn>>>32-13,Gn=Nr+ir|0,Cr^=Gn<<18|Gn>>>32-18,Gn=br+dr|0,Ir^=Gn<<7|Gn>>>32-7,Gn=Ir+br|0,Sr^=Gn<<9|Gn>>>32-9,Gn=Sr+Ir|0,dr^=Gn<<13|Gn>>>32-13,Gn=dr+Sr|0,br^=Gn<<18|Gn>>>32-18,Gn=fo+mo|0,ro^=Gn<<7|Gn>>>32-7,Gn=ro+fo|0,ao^=Gn<<9|Gn>>>32-9,Gn=ao+ro|0,mo^=Gn<<13|Gn>>>32-13,Gn=mo+ao|0,fo^=Gn<<18|Gn>>>32-18;vn[0]=Wr>>>0&255,vn[1]=Wr>>>8&255,vn[2]=Wr>>>16&255,vn[3]=Wr>>>24&255,vn[4]=Cr>>>0&255,vn[5]=Cr>>>8&255,vn[6]=Cr>>>16&255,vn[7]=Cr>>>24&255,vn[8]=br>>>0&255,vn[9]=br>>>8&255,vn[10]=br>>>16&255,vn[11]=br>>>24&255,vn[12]=fo>>>0&255,vn[13]=fo>>>8&255,vn[14]=fo>>>16&255,vn[15]=fo>>>24&255,vn[16]=er>>>0&255,vn[17]=er>>>8&255,vn[18]=er>>>16&255,vn[19]=er>>>24&255,vn[20]=ir>>>0&255,vn[21]=ir>>>8&255,vn[22]=ir>>>16&255,vn[23]=ir>>>24&255,vn[24]=Sr>>>0&255,vn[25]=Sr>>>8&255,vn[26]=Sr>>>16&255,vn[27]=Sr>>>24&255,vn[28]=dr>>>0&255,vn[29]=dr>>>8&255,vn[30]=dr>>>16&255,vn[31]=dr>>>24&255}function kt(vn,Pn,sn,Xt){wt(vn,Pn,sn,Xt)}function St(vn,Pn,sn,Xt){vt(vn,Pn,sn,Xt)}var Tt=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function At(vn,Pn,sn,Xt,xn,Dn,Fn){var Kn=new Uint8Array(16),nr=new Uint8Array(64),lr,cr;for(cr=0;cr<16;cr++)Kn[cr]=0;for(cr=0;cr<8;cr++)Kn[cr]=Dn[cr];for(;xn>=64;){for(kt(nr,Kn,Fn,Tt),cr=0;cr<64;cr++)vn[Pn+cr]=sn[Xt+cr]^nr[cr];for(lr=1,cr=8;cr<16;cr++)lr=lr+(Kn[cr]&255)|0,Kn[cr]=lr&255,lr>>>=8;xn-=64,Pn+=64,Xt+=64}if(xn>0)for(kt(nr,Kn,Fn,Tt),cr=0;cr=64;){for(kt(Fn,Dn,xn,Tt),nr=0;nr<64;nr++)vn[Pn+nr]=Fn[nr];for(Kn=1,nr=8;nr<16;nr++)Kn=Kn+(Dn[nr]&255)|0,Dn[nr]=Kn&255,Kn>>>=8;sn-=64,Pn+=64}if(sn>0)for(kt(Fn,Dn,xn,Tt),nr=0;nr>>13|sn<<3)&8191,Xt=vn[4]&255|(vn[5]&255)<<8,this.r[2]=(sn>>>10|Xt<<6)&7939,xn=vn[6]&255|(vn[7]&255)<<8,this.r[3]=(Xt>>>7|xn<<9)&8191,Dn=vn[8]&255|(vn[9]&255)<<8,this.r[4]=(xn>>>4|Dn<<12)&255,this.r[5]=Dn>>>1&8190,Fn=vn[10]&255|(vn[11]&255)<<8,this.r[6]=(Dn>>>14|Fn<<2)&8191,Kn=vn[12]&255|(vn[13]&255)<<8,this.r[7]=(Fn>>>11|Kn<<5)&8065,nr=vn[14]&255|(vn[15]&255)<<8,this.r[8]=(Kn>>>8|nr<<8)&8191,this.r[9]=nr>>>5&127,this.pad[0]=vn[16]&255|(vn[17]&255)<<8,this.pad[1]=vn[18]&255|(vn[19]&255)<<8,this.pad[2]=vn[20]&255|(vn[21]&255)<<8,this.pad[3]=vn[22]&255|(vn[23]&255)<<8,this.pad[4]=vn[24]&255|(vn[25]&255)<<8,this.pad[5]=vn[26]&255|(vn[27]&255)<<8,this.pad[6]=vn[28]&255|(vn[29]&255)<<8,this.pad[7]=vn[30]&255|(vn[31]&255)<<8};jt.prototype.blocks=function(vn,Pn,sn){for(var Xt=this.fin?0:2048,xn,Dn,Fn,Kn,nr,lr,cr,Hr,_r,jr,Gr,eo,Qr,_i,wr,$r,Wr,Br,Pr,Lr=this.h[0],Nr=this.h[1],Cr=this.h[2],er=this.h[3],ir=this.h[4],Sr=this.h[5],dr=this.h[6],br=this.h[7],Ir=this.h[8],ro=this.h[9],ao=this.r[0],mo=this.r[1],fo=this.r[2],Gn=this.r[3],bo=this.r[4],jo=this.r[5],go=this.r[6],vo=this.r[7],Ao=this.r[8],Mo=this.r[9];sn>=16;)xn=vn[Pn+0]&255|(vn[Pn+1]&255)<<8,Lr+=xn&8191,Dn=vn[Pn+2]&255|(vn[Pn+3]&255)<<8,Nr+=(xn>>>13|Dn<<3)&8191,Fn=vn[Pn+4]&255|(vn[Pn+5]&255)<<8,Cr+=(Dn>>>10|Fn<<6)&8191,Kn=vn[Pn+6]&255|(vn[Pn+7]&255)<<8,er+=(Fn>>>7|Kn<<9)&8191,nr=vn[Pn+8]&255|(vn[Pn+9]&255)<<8,ir+=(Kn>>>4|nr<<12)&8191,Sr+=nr>>>1&8191,lr=vn[Pn+10]&255|(vn[Pn+11]&255)<<8,dr+=(nr>>>14|lr<<2)&8191,cr=vn[Pn+12]&255|(vn[Pn+13]&255)<<8,br+=(lr>>>11|cr<<5)&8191,Hr=vn[Pn+14]&255|(vn[Pn+15]&255)<<8,Ir+=(cr>>>8|Hr<<8)&8191,ro+=Hr>>>5|Xt,_r=0,jr=_r,jr+=Lr*ao,jr+=Nr*(5*Mo),jr+=Cr*(5*Ao),jr+=er*(5*vo),jr+=ir*(5*go),_r=jr>>>13,jr&=8191,jr+=Sr*(5*jo),jr+=dr*(5*bo),jr+=br*(5*Gn),jr+=Ir*(5*fo),jr+=ro*(5*mo),_r+=jr>>>13,jr&=8191,Gr=_r,Gr+=Lr*mo,Gr+=Nr*ao,Gr+=Cr*(5*Mo),Gr+=er*(5*Ao),Gr+=ir*(5*vo),_r=Gr>>>13,Gr&=8191,Gr+=Sr*(5*go),Gr+=dr*(5*jo),Gr+=br*(5*bo),Gr+=Ir*(5*Gn),Gr+=ro*(5*fo),_r+=Gr>>>13,Gr&=8191,eo=_r,eo+=Lr*fo,eo+=Nr*mo,eo+=Cr*ao,eo+=er*(5*Mo),eo+=ir*(5*Ao),_r=eo>>>13,eo&=8191,eo+=Sr*(5*vo),eo+=dr*(5*go),eo+=br*(5*jo),eo+=Ir*(5*bo),eo+=ro*(5*Gn),_r+=eo>>>13,eo&=8191,Qr=_r,Qr+=Lr*Gn,Qr+=Nr*fo,Qr+=Cr*mo,Qr+=er*ao,Qr+=ir*(5*Mo),_r=Qr>>>13,Qr&=8191,Qr+=Sr*(5*Ao),Qr+=dr*(5*vo),Qr+=br*(5*go),Qr+=Ir*(5*jo),Qr+=ro*(5*bo),_r+=Qr>>>13,Qr&=8191,_i=_r,_i+=Lr*bo,_i+=Nr*Gn,_i+=Cr*fo,_i+=er*mo,_i+=ir*ao,_r=_i>>>13,_i&=8191,_i+=Sr*(5*Mo),_i+=dr*(5*Ao),_i+=br*(5*vo),_i+=Ir*(5*go),_i+=ro*(5*jo),_r+=_i>>>13,_i&=8191,wr=_r,wr+=Lr*jo,wr+=Nr*bo,wr+=Cr*Gn,wr+=er*fo,wr+=ir*mo,_r=wr>>>13,wr&=8191,wr+=Sr*ao,wr+=dr*(5*Mo),wr+=br*(5*Ao),wr+=Ir*(5*vo),wr+=ro*(5*go),_r+=wr>>>13,wr&=8191,$r=_r,$r+=Lr*go,$r+=Nr*jo,$r+=Cr*bo,$r+=er*Gn,$r+=ir*fo,_r=$r>>>13,$r&=8191,$r+=Sr*mo,$r+=dr*ao,$r+=br*(5*Mo),$r+=Ir*(5*Ao),$r+=ro*(5*vo),_r+=$r>>>13,$r&=8191,Wr=_r,Wr+=Lr*vo,Wr+=Nr*go,Wr+=Cr*jo,Wr+=er*bo,Wr+=ir*Gn,_r=Wr>>>13,Wr&=8191,Wr+=Sr*fo,Wr+=dr*mo,Wr+=br*ao,Wr+=Ir*(5*Mo),Wr+=ro*(5*Ao),_r+=Wr>>>13,Wr&=8191,Br=_r,Br+=Lr*Ao,Br+=Nr*vo,Br+=Cr*go,Br+=er*jo,Br+=ir*bo,_r=Br>>>13,Br&=8191,Br+=Sr*Gn,Br+=dr*fo,Br+=br*mo,Br+=Ir*ao,Br+=ro*(5*Mo),_r+=Br>>>13,Br&=8191,Pr=_r,Pr+=Lr*Mo,Pr+=Nr*Ao,Pr+=Cr*vo,Pr+=er*go,Pr+=ir*jo,_r=Pr>>>13,Pr&=8191,Pr+=Sr*bo,Pr+=dr*Gn,Pr+=br*fo,Pr+=Ir*mo,Pr+=ro*ao,_r+=Pr>>>13,Pr&=8191,_r=(_r<<2)+_r|0,_r=_r+jr|0,jr=_r&8191,_r=_r>>>13,Gr+=_r,Lr=jr,Nr=Gr,Cr=eo,er=Qr,ir=_i,Sr=wr,dr=$r,br=Wr,Ir=Br,ro=Pr,Pn+=16,sn-=16;this.h[0]=Lr,this.h[1]=Nr,this.h[2]=Cr,this.h[3]=er,this.h[4]=ir,this.h[5]=Sr,this.h[6]=dr,this.h[7]=br,this.h[8]=Ir,this.h[9]=ro},jt.prototype.finish=function(vn,Pn){var sn=new Uint16Array(10),Xt,xn,Dn,Fn;if(this.leftover){for(Fn=this.leftover,this.buffer[Fn++]=1;Fn<16;Fn++)this.buffer[Fn]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(Xt=this.h[1]>>>13,this.h[1]&=8191,Fn=2;Fn<10;Fn++)this.h[Fn]+=Xt,Xt=this.h[Fn]>>>13,this.h[Fn]&=8191;for(this.h[0]+=Xt*5,Xt=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=Xt,Xt=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=Xt,sn[0]=this.h[0]+5,Xt=sn[0]>>>13,sn[0]&=8191,Fn=1;Fn<10;Fn++)sn[Fn]=this.h[Fn]+Xt,Xt=sn[Fn]>>>13,sn[Fn]&=8191;for(sn[9]-=8192,xn=(Xt^1)-1,Fn=0;Fn<10;Fn++)sn[Fn]&=xn;for(xn=~xn,Fn=0;Fn<10;Fn++)this.h[Fn]=this.h[Fn]&xn|sn[Fn];for(this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,Dn=this.h[0]+this.pad[0],this.h[0]=Dn&65535,Fn=1;Fn<8;Fn++)Dn=(this.h[Fn]+this.pad[Fn]|0)+(Dn>>>16)|0,this.h[Fn]=Dn&65535;vn[Pn+0]=this.h[0]>>>0&255,vn[Pn+1]=this.h[0]>>>8&255,vn[Pn+2]=this.h[1]>>>0&255,vn[Pn+3]=this.h[1]>>>8&255,vn[Pn+4]=this.h[2]>>>0&255,vn[Pn+5]=this.h[2]>>>8&255,vn[Pn+6]=this.h[3]>>>0&255,vn[Pn+7]=this.h[3]>>>8&255,vn[Pn+8]=this.h[4]>>>0&255,vn[Pn+9]=this.h[4]>>>8&255,vn[Pn+10]=this.h[5]>>>0&255,vn[Pn+11]=this.h[5]>>>8&255,vn[Pn+12]=this.h[6]>>>0&255,vn[Pn+13]=this.h[6]>>>8&255,vn[Pn+14]=this.h[7]>>>0&255,vn[Pn+15]=this.h[7]>>>8&255},jt.prototype.update=function(vn,Pn,sn){var Xt,xn;if(this.leftover){for(xn=16-this.leftover,xn>sn&&(xn=sn),Xt=0;Xt=16&&(xn=sn-sn%16,this.blocks(vn,Pn,xn),Pn+=xn,sn-=xn),sn){for(Xt=0;Xt>16&1),Dn[sn-1]&=65535;Dn[15]=Fn[15]-32767-(Dn[14]>>16&1),xn=Dn[15]>>16&1,Dn[14]&=65535,Ut(Fn,Dn,1-xn)}for(sn=0;sn<16;sn++)vn[2*sn]=Fn[sn]&255,vn[2*sn+1]=Fn[sn]>>8}function Ft(vn,Pn){var sn=new Uint8Array(32),Xt=new Uint8Array(32);return Wt(sn,vn),Wt(Xt,Pn),bt(sn,0,Xt,0)}function Nt(vn){var Pn=new Uint8Array(32);return Wt(Pn,vn),Pn[0]&1}function Ct(vn,Pn){var sn;for(sn=0;sn<16;sn++)vn[sn]=Pn[2*sn]+(Pn[2*sn+1]<<8);vn[15]&=32767}function Ht(vn,Pn,sn){for(var Xt=0;Xt<16;Xt++)vn[Xt]=Pn[Xt]+sn[Xt]}function Jt(vn,Pn,sn){for(var Xt=0;Xt<16;Xt++)vn[Xt]=Pn[Xt]-sn[Xt]}function nn(vn,Pn,sn){var Xt,xn,Dn=0,Fn=0,Kn=0,nr=0,lr=0,cr=0,Hr=0,_r=0,jr=0,Gr=0,eo=0,Qr=0,_i=0,wr=0,$r=0,Wr=0,Br=0,Pr=0,Lr=0,Nr=0,Cr=0,er=0,ir=0,Sr=0,dr=0,br=0,Ir=0,ro=0,ao=0,mo=0,fo=0,Gn=sn[0],bo=sn[1],jo=sn[2],go=sn[3],vo=sn[4],Ao=sn[5],Mo=sn[6],Vo=sn[7],$o=sn[8],Uo=sn[9],Go=sn[10],Xo=sn[11],ga=sn[12],na=sn[13],$a=sn[14],Zo=sn[15];Xt=Pn[0],Dn+=Xt*Gn,Fn+=Xt*bo,Kn+=Xt*jo,nr+=Xt*go,lr+=Xt*vo,cr+=Xt*Ao,Hr+=Xt*Mo,_r+=Xt*Vo,jr+=Xt*$o,Gr+=Xt*Uo,eo+=Xt*Go,Qr+=Xt*Xo,_i+=Xt*ga,wr+=Xt*na,$r+=Xt*$a,Wr+=Xt*Zo,Xt=Pn[1],Fn+=Xt*Gn,Kn+=Xt*bo,nr+=Xt*jo,lr+=Xt*go,cr+=Xt*vo,Hr+=Xt*Ao,_r+=Xt*Mo,jr+=Xt*Vo,Gr+=Xt*$o,eo+=Xt*Uo,Qr+=Xt*Go,_i+=Xt*Xo,wr+=Xt*ga,$r+=Xt*na,Wr+=Xt*$a,Br+=Xt*Zo,Xt=Pn[2],Kn+=Xt*Gn,nr+=Xt*bo,lr+=Xt*jo,cr+=Xt*go,Hr+=Xt*vo,_r+=Xt*Ao,jr+=Xt*Mo,Gr+=Xt*Vo,eo+=Xt*$o,Qr+=Xt*Uo,_i+=Xt*Go,wr+=Xt*Xo,$r+=Xt*ga,Wr+=Xt*na,Br+=Xt*$a,Pr+=Xt*Zo,Xt=Pn[3],nr+=Xt*Gn,lr+=Xt*bo,cr+=Xt*jo,Hr+=Xt*go,_r+=Xt*vo,jr+=Xt*Ao,Gr+=Xt*Mo,eo+=Xt*Vo,Qr+=Xt*$o,_i+=Xt*Uo,wr+=Xt*Go,$r+=Xt*Xo,Wr+=Xt*ga,Br+=Xt*na,Pr+=Xt*$a,Lr+=Xt*Zo,Xt=Pn[4],lr+=Xt*Gn,cr+=Xt*bo,Hr+=Xt*jo,_r+=Xt*go,jr+=Xt*vo,Gr+=Xt*Ao,eo+=Xt*Mo,Qr+=Xt*Vo,_i+=Xt*$o,wr+=Xt*Uo,$r+=Xt*Go,Wr+=Xt*Xo,Br+=Xt*ga,Pr+=Xt*na,Lr+=Xt*$a,Nr+=Xt*Zo,Xt=Pn[5],cr+=Xt*Gn,Hr+=Xt*bo,_r+=Xt*jo,jr+=Xt*go,Gr+=Xt*vo,eo+=Xt*Ao,Qr+=Xt*Mo,_i+=Xt*Vo,wr+=Xt*$o,$r+=Xt*Uo,Wr+=Xt*Go,Br+=Xt*Xo,Pr+=Xt*ga,Lr+=Xt*na,Nr+=Xt*$a,Cr+=Xt*Zo,Xt=Pn[6],Hr+=Xt*Gn,_r+=Xt*bo,jr+=Xt*jo,Gr+=Xt*go,eo+=Xt*vo,Qr+=Xt*Ao,_i+=Xt*Mo,wr+=Xt*Vo,$r+=Xt*$o,Wr+=Xt*Uo,Br+=Xt*Go,Pr+=Xt*Xo,Lr+=Xt*ga,Nr+=Xt*na,Cr+=Xt*$a,er+=Xt*Zo,Xt=Pn[7],_r+=Xt*Gn,jr+=Xt*bo,Gr+=Xt*jo,eo+=Xt*go,Qr+=Xt*vo,_i+=Xt*Ao,wr+=Xt*Mo,$r+=Xt*Vo,Wr+=Xt*$o,Br+=Xt*Uo,Pr+=Xt*Go,Lr+=Xt*Xo,Nr+=Xt*ga,Cr+=Xt*na,er+=Xt*$a,ir+=Xt*Zo,Xt=Pn[8],jr+=Xt*Gn,Gr+=Xt*bo,eo+=Xt*jo,Qr+=Xt*go,_i+=Xt*vo,wr+=Xt*Ao,$r+=Xt*Mo,Wr+=Xt*Vo,Br+=Xt*$o,Pr+=Xt*Uo,Lr+=Xt*Go,Nr+=Xt*Xo,Cr+=Xt*ga,er+=Xt*na,ir+=Xt*$a,Sr+=Xt*Zo,Xt=Pn[9],Gr+=Xt*Gn,eo+=Xt*bo,Qr+=Xt*jo,_i+=Xt*go,wr+=Xt*vo,$r+=Xt*Ao,Wr+=Xt*Mo,Br+=Xt*Vo,Pr+=Xt*$o,Lr+=Xt*Uo,Nr+=Xt*Go,Cr+=Xt*Xo,er+=Xt*ga,ir+=Xt*na,Sr+=Xt*$a,dr+=Xt*Zo,Xt=Pn[10],eo+=Xt*Gn,Qr+=Xt*bo,_i+=Xt*jo,wr+=Xt*go,$r+=Xt*vo,Wr+=Xt*Ao,Br+=Xt*Mo,Pr+=Xt*Vo,Lr+=Xt*$o,Nr+=Xt*Uo,Cr+=Xt*Go,er+=Xt*Xo,ir+=Xt*ga,Sr+=Xt*na,dr+=Xt*$a,br+=Xt*Zo,Xt=Pn[11],Qr+=Xt*Gn,_i+=Xt*bo,wr+=Xt*jo,$r+=Xt*go,Wr+=Xt*vo,Br+=Xt*Ao,Pr+=Xt*Mo,Lr+=Xt*Vo,Nr+=Xt*$o,Cr+=Xt*Uo,er+=Xt*Go,ir+=Xt*Xo,Sr+=Xt*ga,dr+=Xt*na,br+=Xt*$a,Ir+=Xt*Zo,Xt=Pn[12],_i+=Xt*Gn,wr+=Xt*bo,$r+=Xt*jo,Wr+=Xt*go,Br+=Xt*vo,Pr+=Xt*Ao,Lr+=Xt*Mo,Nr+=Xt*Vo,Cr+=Xt*$o,er+=Xt*Uo,ir+=Xt*Go,Sr+=Xt*Xo,dr+=Xt*ga,br+=Xt*na,Ir+=Xt*$a,ro+=Xt*Zo,Xt=Pn[13],wr+=Xt*Gn,$r+=Xt*bo,Wr+=Xt*jo,Br+=Xt*go,Pr+=Xt*vo,Lr+=Xt*Ao,Nr+=Xt*Mo,Cr+=Xt*Vo,er+=Xt*$o,ir+=Xt*Uo,Sr+=Xt*Go,dr+=Xt*Xo,br+=Xt*ga,Ir+=Xt*na,ro+=Xt*$a,ao+=Xt*Zo,Xt=Pn[14],$r+=Xt*Gn,Wr+=Xt*bo,Br+=Xt*jo,Pr+=Xt*go,Lr+=Xt*vo,Nr+=Xt*Ao,Cr+=Xt*Mo,er+=Xt*Vo,ir+=Xt*$o,Sr+=Xt*Uo,dr+=Xt*Go,br+=Xt*Xo,Ir+=Xt*ga,ro+=Xt*na,ao+=Xt*$a,mo+=Xt*Zo,Xt=Pn[15],Wr+=Xt*Gn,Br+=Xt*bo,Pr+=Xt*jo,Lr+=Xt*go,Nr+=Xt*vo,Cr+=Xt*Ao,er+=Xt*Mo,ir+=Xt*Vo,Sr+=Xt*$o,dr+=Xt*Uo,br+=Xt*Go,Ir+=Xt*Xo,ro+=Xt*ga,ao+=Xt*na,mo+=Xt*$a,fo+=Xt*Zo,Dn+=38*Br,Fn+=38*Pr,Kn+=38*Lr,nr+=38*Nr,lr+=38*Cr,cr+=38*er,Hr+=38*ir,_r+=38*Sr,jr+=38*dr,Gr+=38*br,eo+=38*Ir,Qr+=38*ro,_i+=38*ao,wr+=38*mo,$r+=38*fo,xn=1,Xt=Dn+xn+65535,xn=Math.floor(Xt/65536),Dn=Xt-xn*65536,Xt=Fn+xn+65535,xn=Math.floor(Xt/65536),Fn=Xt-xn*65536,Xt=Kn+xn+65535,xn=Math.floor(Xt/65536),Kn=Xt-xn*65536,Xt=nr+xn+65535,xn=Math.floor(Xt/65536),nr=Xt-xn*65536,Xt=lr+xn+65535,xn=Math.floor(Xt/65536),lr=Xt-xn*65536,Xt=cr+xn+65535,xn=Math.floor(Xt/65536),cr=Xt-xn*65536,Xt=Hr+xn+65535,xn=Math.floor(Xt/65536),Hr=Xt-xn*65536,Xt=_r+xn+65535,xn=Math.floor(Xt/65536),_r=Xt-xn*65536,Xt=jr+xn+65535,xn=Math.floor(Xt/65536),jr=Xt-xn*65536,Xt=Gr+xn+65535,xn=Math.floor(Xt/65536),Gr=Xt-xn*65536,Xt=eo+xn+65535,xn=Math.floor(Xt/65536),eo=Xt-xn*65536,Xt=Qr+xn+65535,xn=Math.floor(Xt/65536),Qr=Xt-xn*65536,Xt=_i+xn+65535,xn=Math.floor(Xt/65536),_i=Xt-xn*65536,Xt=wr+xn+65535,xn=Math.floor(Xt/65536),wr=Xt-xn*65536,Xt=$r+xn+65535,xn=Math.floor(Xt/65536),$r=Xt-xn*65536,Xt=Wr+xn+65535,xn=Math.floor(Xt/65536),Wr=Xt-xn*65536,Dn+=xn-1+37*(xn-1),xn=1,Xt=Dn+xn+65535,xn=Math.floor(Xt/65536),Dn=Xt-xn*65536,Xt=Fn+xn+65535,xn=Math.floor(Xt/65536),Fn=Xt-xn*65536,Xt=Kn+xn+65535,xn=Math.floor(Xt/65536),Kn=Xt-xn*65536,Xt=nr+xn+65535,xn=Math.floor(Xt/65536),nr=Xt-xn*65536,Xt=lr+xn+65535,xn=Math.floor(Xt/65536),lr=Xt-xn*65536,Xt=cr+xn+65535,xn=Math.floor(Xt/65536),cr=Xt-xn*65536,Xt=Hr+xn+65535,xn=Math.floor(Xt/65536),Hr=Xt-xn*65536,Xt=_r+xn+65535,xn=Math.floor(Xt/65536),_r=Xt-xn*65536,Xt=jr+xn+65535,xn=Math.floor(Xt/65536),jr=Xt-xn*65536,Xt=Gr+xn+65535,xn=Math.floor(Xt/65536),Gr=Xt-xn*65536,Xt=eo+xn+65535,xn=Math.floor(Xt/65536),eo=Xt-xn*65536,Xt=Qr+xn+65535,xn=Math.floor(Xt/65536),Qr=Xt-xn*65536,Xt=_i+xn+65535,xn=Math.floor(Xt/65536),_i=Xt-xn*65536,Xt=wr+xn+65535,xn=Math.floor(Xt/65536),wr=Xt-xn*65536,Xt=$r+xn+65535,xn=Math.floor(Xt/65536),$r=Xt-xn*65536,Xt=Wr+xn+65535,xn=Math.floor(Xt/65536),Wr=Xt-xn*65536,Dn+=xn-1+37*(xn-1),vn[0]=Dn,vn[1]=Fn,vn[2]=Kn,vn[3]=nr,vn[4]=lr,vn[5]=cr,vn[6]=Hr,vn[7]=_r,vn[8]=jr,vn[9]=Gr,vn[10]=eo,vn[11]=Qr,vn[12]=_i,vn[13]=wr,vn[14]=$r,vn[15]=Wr}function Yt(vn,Pn){nn(vn,Pn,Pn)}function fn(vn,Pn){var sn=nt(),Xt;for(Xt=0;Xt<16;Xt++)sn[Xt]=Pn[Xt];for(Xt=253;Xt>=0;Xt--)Yt(sn,sn),Xt!==2&&Xt!==4&&nn(sn,sn,Pn);for(Xt=0;Xt<16;Xt++)vn[Xt]=sn[Xt]}function cn(vn,Pn){var sn=nt(),Xt;for(Xt=0;Xt<16;Xt++)sn[Xt]=Pn[Xt];for(Xt=250;Xt>=0;Xt--)Yt(sn,sn),Xt!==1&&nn(sn,sn,Pn);for(Xt=0;Xt<16;Xt++)vn[Xt]=sn[Xt]}function _n(vn,Pn,sn){var Xt=new Uint8Array(32),xn=new Float64Array(80),Dn,Fn,Kn=nt(),nr=nt(),lr=nt(),cr=nt(),Hr=nt(),_r=nt();for(Fn=0;Fn<31;Fn++)Xt[Fn]=Pn[Fn];for(Xt[31]=Pn[31]&127|64,Xt[0]&=248,Ct(xn,sn),Fn=0;Fn<16;Fn++)nr[Fn]=xn[Fn],cr[Fn]=Kn[Fn]=lr[Fn]=0;for(Kn[0]=cr[0]=1,Fn=254;Fn>=0;--Fn)Dn=Xt[Fn>>>3]>>>(Fn&7)&1,Ut(Kn,nr,Dn),Ut(lr,cr,Dn),Ht(Hr,Kn,lr),Jt(Kn,Kn,lr),Ht(lr,nr,cr),Jt(nr,nr,cr),Yt(cr,Hr),Yt(_r,Kn),nn(Kn,lr,Kn),nn(lr,nr,Hr),Ht(Hr,Kn,lr),Jt(Kn,Kn,lr),Yt(nr,Kn),Jt(lr,cr,_r),nn(Kn,lr,lt),Ht(Kn,Kn,cr),nn(lr,lr,Kn),nn(Kn,cr,_r),nn(cr,nr,xn),Yt(nr,Hr),Ut(Kn,nr,Dn),Ut(lr,cr,Dn);for(Fn=0;Fn<16;Fn++)xn[Fn+16]=Kn[Fn],xn[Fn+32]=lr[Fn],xn[Fn+48]=nr[Fn],xn[Fn+64]=cr[Fn];var jr=xn.subarray(32),Gr=xn.subarray(16);return fn(jr,jr),nn(Gr,Gr,jr),Wt(vn,Gr),0}function En(vn,Pn){return _n(vn,Pn,ot)}function an(vn,Pn){return rt(Pn,32),En(vn,Pn)}function en(vn,Pn,sn){var Xt=new Uint8Array(32);return _n(Xt,sn,Pn),St(vn,it,Xt,Tt)}var Tn=xt,Rn=It;function An(vn,Pn,sn,Xt,xn,Dn){var Fn=new Uint8Array(32);return en(Fn,xn,Dn),Tn(vn,Pn,sn,Xt,Fn)}function yn(vn,Pn,sn,Xt,xn,Dn){var Fn=new Uint8Array(32);return en(Fn,xn,Dn),Rn(vn,Pn,sn,Xt,Fn)}var kn=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function dn(vn,Pn,sn,Xt){for(var xn=new Int32Array(16),Dn=new Int32Array(16),Fn,Kn,nr,lr,cr,Hr,_r,jr,Gr,eo,Qr,_i,wr,$r,Wr,Br,Pr,Lr,Nr,Cr,er,ir,Sr,dr,br,Ir,ro=vn[0],ao=vn[1],mo=vn[2],fo=vn[3],Gn=vn[4],bo=vn[5],jo=vn[6],go=vn[7],vo=Pn[0],Ao=Pn[1],Mo=Pn[2],Vo=Pn[3],$o=Pn[4],Uo=Pn[5],Go=Pn[6],Xo=Pn[7],ga=0;Xt>=128;){for(Nr=0;Nr<16;Nr++)Cr=8*Nr+ga,xn[Nr]=sn[Cr+0]<<24|sn[Cr+1]<<16|sn[Cr+2]<<8|sn[Cr+3],Dn[Nr]=sn[Cr+4]<<24|sn[Cr+5]<<16|sn[Cr+6]<<8|sn[Cr+7];for(Nr=0;Nr<80;Nr++)if(Fn=ro,Kn=ao,nr=mo,lr=fo,cr=Gn,Hr=bo,_r=jo,jr=go,Gr=vo,eo=Ao,Qr=Mo,_i=Vo,wr=$o,$r=Uo,Wr=Go,Br=Xo,er=go,ir=Xo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=(Gn>>>14|$o<<32-14)^(Gn>>>18|$o<<32-18)^($o>>>41-32|Gn<<32-(41-32)),ir=($o>>>14|Gn<<32-14)^($o>>>18|Gn<<32-18)^(Gn>>>41-32|$o<<32-(41-32)),Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,er=Gn&bo^~Gn&jo,ir=$o&Uo^~$o&Go,Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,er=kn[Nr*2],ir=kn[Nr*2+1],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,er=xn[Nr%16],ir=Dn[Nr%16],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,Pr=br&65535|Ir<<16,Lr=Sr&65535|dr<<16,er=Pr,ir=Lr,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=(ro>>>28|vo<<32-28)^(vo>>>34-32|ro<<32-(34-32))^(vo>>>39-32|ro<<32-(39-32)),ir=(vo>>>28|ro<<32-28)^(ro>>>34-32|vo<<32-(34-32))^(ro>>>39-32|vo<<32-(39-32)),Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,er=ro&ao^ro&mo^ao&mo,ir=vo&Ao^vo&Mo^Ao&Mo,Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,jr=br&65535|Ir<<16,Br=Sr&65535|dr<<16,er=lr,ir=_i,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=Pr,ir=Lr,Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,lr=br&65535|Ir<<16,_i=Sr&65535|dr<<16,ao=Fn,mo=Kn,fo=nr,Gn=lr,bo=cr,jo=Hr,go=_r,ro=jr,Ao=Gr,Mo=eo,Vo=Qr,$o=_i,Uo=wr,Go=$r,Xo=Wr,vo=Br,Nr%16===15)for(Cr=0;Cr<16;Cr++)er=xn[Cr],ir=Dn[Cr],Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=xn[(Cr+9)%16],ir=Dn[(Cr+9)%16],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,Pr=xn[(Cr+1)%16],Lr=Dn[(Cr+1)%16],er=(Pr>>>1|Lr<<32-1)^(Pr>>>8|Lr<<32-8)^Pr>>>7,ir=(Lr>>>1|Pr<<32-1)^(Lr>>>8|Pr<<32-8)^(Lr>>>7|Pr<<32-7),Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,Pr=xn[(Cr+14)%16],Lr=Dn[(Cr+14)%16],er=(Pr>>>19|Lr<<32-19)^(Lr>>>61-32|Pr<<32-(61-32))^Pr>>>6,ir=(Lr>>>19|Pr<<32-19)^(Pr>>>61-32|Lr<<32-(61-32))^(Lr>>>6|Pr<<32-6),Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,xn[Cr]=br&65535|Ir<<16,Dn[Cr]=Sr&65535|dr<<16;er=ro,ir=vo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[0],ir=Pn[0],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[0]=ro=br&65535|Ir<<16,Pn[0]=vo=Sr&65535|dr<<16,er=ao,ir=Ao,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[1],ir=Pn[1],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[1]=ao=br&65535|Ir<<16,Pn[1]=Ao=Sr&65535|dr<<16,er=mo,ir=Mo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[2],ir=Pn[2],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[2]=mo=br&65535|Ir<<16,Pn[2]=Mo=Sr&65535|dr<<16,er=fo,ir=Vo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[3],ir=Pn[3],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[3]=fo=br&65535|Ir<<16,Pn[3]=Vo=Sr&65535|dr<<16,er=Gn,ir=$o,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[4],ir=Pn[4],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[4]=Gn=br&65535|Ir<<16,Pn[4]=$o=Sr&65535|dr<<16,er=bo,ir=Uo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[5],ir=Pn[5],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[5]=bo=br&65535|Ir<<16,Pn[5]=Uo=Sr&65535|dr<<16,er=jo,ir=Go,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[6],ir=Pn[6],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[6]=jo=br&65535|Ir<<16,Pn[6]=Go=Sr&65535|dr<<16,er=go,ir=Xo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[7],ir=Pn[7],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[7]=go=br&65535|Ir<<16,Pn[7]=Xo=Sr&65535|dr<<16,ga+=128,Xt-=128}return Xt}function gn(vn,Pn,sn){var Xt=new Int32Array(8),xn=new Int32Array(8),Dn=new Uint8Array(256),Fn,Kn=sn;for(Xt[0]=1779033703,Xt[1]=3144134277,Xt[2]=1013904242,Xt[3]=2773480762,Xt[4]=1359893119,Xt[5]=2600822924,Xt[6]=528734635,Xt[7]=1541459225,xn[0]=4089235720,xn[1]=2227873595,xn[2]=4271175723,xn[3]=1595750129,xn[4]=2917565137,xn[5]=725511199,xn[6]=4215389547,xn[7]=327033209,dn(Xt,xn,Pn,sn),sn%=128,Fn=0;Fn=0;--xn)Xt=sn[xn/8|0]>>(xn&7)&1,$n(vn,Pn,Xt),Cn(Pn,vn),Cn(vn,vn),$n(vn,Pn,Xt)}function Sn(vn,Pn){var sn=[nt(),nt(),nt(),nt()];Ot(sn[0],ht),Ot(sn[1],dt),Ot(sn[2],st),nn(sn[3],ht,dt),rn(vn,sn,Pn)}function Mn(vn,Pn,sn){var Xt=new Uint8Array(64),xn=[nt(),nt(),nt(),nt()],Dn;for(sn||rt(Pn,32),gn(Xt,Pn,32),Xt[0]&=248,Xt[31]&=127,Xt[31]|=64,Sn(xn,Xt),un(vn,xn),Dn=0;Dn<32;Dn++)Pn[Dn+32]=vn[Dn];return 0}var Nn=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function hn(vn,Pn){var sn,Xt,xn,Dn;for(Xt=63;Xt>=32;--Xt){for(sn=0,xn=Xt-32,Dn=Xt-12;xn>4)*Nn[xn],sn=Pn[xn]>>8,Pn[xn]&=255;for(xn=0;xn<32;xn++)Pn[xn]-=sn*Nn[xn];for(Xt=0;Xt<32;Xt++)Pn[Xt+1]+=Pn[Xt]>>8,vn[Xt]=Pn[Xt]&255}function Qt(vn){var Pn=new Float64Array(64),sn;for(sn=0;sn<64;sn++)Pn[sn]=vn[sn];for(sn=0;sn<64;sn++)vn[sn]=0;hn(vn,Pn)}function Zt(vn,Pn,sn,Xt){var xn=new Uint8Array(64),Dn=new Uint8Array(64),Fn=new Uint8Array(64),Kn,nr,lr=new Float64Array(64),cr=[nt(),nt(),nt(),nt()];gn(xn,Xt,32),xn[0]&=248,xn[31]&=127,xn[31]|=64;var Hr=sn+64;for(Kn=0;Kn>7&&Jt(vn[0],at,vn[0]),nn(vn[3],vn[0],vn[1]),0)}function On(vn,Pn,sn,Xt){var xn,Dn=new Uint8Array(32),Fn=new Uint8Array(64),Kn=[nt(),nt(),nt(),nt()],nr=[nt(),nt(),nt(),nt()];if(sn<64||wn(nr,Xt))return-1;for(xn=0;xn=0},et.sign.keyPair=function(){var vn=new Uint8Array(Rr),Pn=new Uint8Array(Xr);return Mn(vn,Pn),{publicKey:vn,secretKey:Pn}},et.sign.keyPair.fromSecretKey=function(vn){if(Or(vn),vn.length!==Xr)throw new Error("bad secret key size");for(var Pn=new Uint8Array(Rr),sn=0;sn"u"?typeof Buffer.from<"u"?(et.encodeBase64=function(rt){return Buffer.from(rt).toString("base64")},et.decodeBase64=function(rt){return nt(rt),new Uint8Array(Array.prototype.slice.call(Buffer.from(rt,"base64"),0))}):(et.encodeBase64=function(rt){return new Buffer(rt).toString("base64")},et.decodeBase64=function(rt){return nt(rt),new Uint8Array(Array.prototype.slice.call(new Buffer(rt,"base64"),0))}):(et.encodeBase64=function(rt){var it,ot=[],at=rt.length;for(it=0;itgt||gn<0)throw new RangeError(`varint ${gn} out of range`);this._grow(this._length+wt);let Cn=this._length;for(;gn>=128;)this._buf[Cn++]=gn&255|128,gn>>>=7;this._buf[Cn++]=gn|0,this._length=Cn}get bytes(){return this._buf.subarray(0,this._length)}_grow(gn){const Cn=this._buf.length;if(gn<=Cn)return;const $n=Cn*2,un=gn>$n?gn:$n,rn=new Uint8Array(un);rn.set(this._buf.subarray(0,this._length)),this._buf=rn}}const wt=5;class vt{constructor(gn){this._buf=gn,this._index=0}readByte(){if(this.length<=0)throw new RangeError("Read past end of buffer");return this._buf[this._index++]}peekByte(){if(this.length<=0)throw new RangeError("Read past end of buffer");return this._buf[this._index]}readN(gn){if(this.lengthwt||Sn===wt&&rn>1)throw new RangeError("Overflow error decoding varint");return(Cn|rn<<$n)>>>0}Cn|=(rn&127)<<$n,$n+=7}throw this._index=gn,new RangeError("Buffer too small decoding varint")}}const kt=dn=>dn!=null,St=dn=>kt(dn)?st.encode(dn):dn,Tt=dn=>kt(dn)?lt.decode(dn):dn,At=dn=>nt.default.codec.utf8String.fromBits(dn);tt.base64ToBytes=function(dn){return dn=dn.replace(/-/g,"+").replace(/_/g,"/"),dn.length%4!==0&&!dn.match(/=$/)&&(dn+="=".repeat(4-dn.length%4)),it.default.decodeBase64(dn)},tt.bytesToBase64=function(dn){return it.default.encodeBase64(dn).replace(/=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")};const Et=function(dn){return nt.default.codec.base64.toBits(it.default.encodeBase64(dn))},Mt=function(dn){return it.default.decodeBase64(nt.default.codec.base64.fromBits(dn))},Lt=function(dn){const gn=new Uint8Array(Math.ceil(dn.length/2));for(let Cn=0;Cnkt(dn)?Rt(dn,gn):"",xt=function(dn,gn){if(dn instanceof Uint8Array)return dn;if(typeof dn=="string")return St(dn);throw new TypeError(`${gn} has the wrong type; want string or Uint8Array, got ${typeof dn}.`)},It=new Uint8Array,Ot=function(dn,gn){const Cn=dn.readByte();if(Cn!==gn)throw new Error(`Unexpected field type, got ${Cn} want ${gn}`);return Cn===ut?It:dn.readN(dn.readUvarint())},zt=function(dn,gn,Cn){dn.appendByte(gn),gn!==ut&&(dn.appendUvarint(Cn.length),dn.appendBytes(Cn))},Ut=function(dn,gn){return dn.peekByte()!==gn?null:Ot(dn,gn)},Wt=function(dn,gn,Cn){jt(Cn)?dn[gn]=Tt(Cn):dn[gn+"64"]=tt.bytesToBase64(Cn)},Ft=function(dn,gn){const Cn=new nt.default.misc.hmac(dn,nt.default.hash.sha256);return Cn.update(gn),Cn.digest()},Nt=function(dn,gn,Cn){const $n=Ft(dn,gn),un=Ft(dn,Cn);return Ft(dn,nt.default.bitArray.concat($n,un))},Ct=Et(St("macaroons-key-generator")),Ht=function(dn){return Ft(Ct,dn)},Jt=function(){return rt.default.randomBytes(ct)},nn=function(dn,gn){const Cn=Mt(dn),$n=Mt(gn),un=Jt(),rn=rt.default.secretbox($n,un,Cn),Sn=new Uint8Array(un.length+rn.length);return Sn.set(un,0),Sn.set(rn,un.length),Et(Sn)},Yt=function(dn,gn){const Cn=Mt(dn),$n=Mt(gn),un=$n.slice(0,ct),rn=$n.slice(ct);let Sn=rt.default.secretbox.open(rn,un,Cn);if(!Sn)throw new Error("decryption failed");return Et(Sn)},fn=Et(St("\0".repeat(32))),cn=function(dn,gn){return nt.default.bitArray.equal(dn,gn)?dn:Nt(fn,dn,gn)};class _n{constructor(gn){if(!gn)return;let{version:Cn,identifierBytes:$n,locationStr:un,caveats:rn,signatureBytes:Sn}=gn;if(Cn!==1&&Cn!==2)throw new Error(`Unexpected version ${Cn}`);if(this._version=Cn,this._locationStr=un,$n=xt($n,"Identifier"),Cn===1&&!jt($n))throw new Error("Version 1 macaroon identifier must be well-formed UTF-8");this._identifierBits=$n&&Et($n),this._signatureBits=Sn&&Et(xt(Sn,"Signature")),this._caveats=rn?rn.map(Mn=>{const Nn=xt(Mn.identifierBytes,"Caveat identifier");if(Cn===1&&!jt(Nn))throw new Error("Version 1 caveat identifier must be well-formed UTF-8");return{_locationStr:$t(Mn.locationStr),_identifierBits:Et(Nn),_vidBits:Mn.vidBytes&&Et(xt(Mn.vidBytes,"Verification ID"))}}):[]}get caveats(){return this._caveats.map(gn=>kt(gn._vidBits)?{identifier:Mt(gn._identifierBits),location:gn._locationStr,vid:Mt(gn._vidBits)}:{identifier:Mt(gn._identifierBits)})}get location(){return this._locationStr}get identifier(){return Mt(this._identifierBits)}get signature(){return Mt(this._signatureBits)}addThirdPartyCaveat(gn,Cn,$n){const un={_identifierBits:Et(xt(Cn,"Caveat id")),_vidBits:nn(this._signatureBits,Ht(Et(xt(gn,"Caveat root key")))),_locationStr:$t($n)};this._signatureBits=Nt(this._signatureBits,un._vidBits,un._identifierBits),this._caveats.push(un)}addFirstPartyCaveat(gn){const Cn=Et(xt(gn,"Condition"));this._caveats.push({_identifierBits:Cn}),this._signatureBits=Ft(this._signatureBits,Cn)}bindToRoot(gn){const Cn=Et(xt(gn,"Primary macaroon signature"));this._signatureBits=cn(Cn,this._signatureBits)}clone(){const gn=new _n;return gn._version=this._version,gn._signatureBits=this._signatureBits,gn._identifierBits=this._identifierBits,gn._locationStr=this._locationStr,gn._caveats=this._caveats.slice(),gn}verify(gn,Cn,$n=[]){const un=Ht(Et(xt(gn,"Root key"))),rn=$n.map(Sn=>0);this._verify(this._signatureBits,un,Cn,$n,rn),$n.forEach((Sn,Mn)=>{if(rn[Mn]===0)throw new Error(`discharge macaroon ${yt(Sn.identifier)} was not used`);if(rn[Mn]!==1)throw new Error(`discharge macaroon ${yt(Sn.identifier)} was used more than once`)})}_verify(gn,Cn,$n,un,rn){let Sn=Ft(Cn,this._identifierBits);this._caveats.forEach(Nn=>{if(Nn._vidBits){const hn=Yt(Sn,Nn._vidBits);let Qt=!1,Zt,wn;for(Zt=0;Zt1)throw new Error(`discharge macaroon ${yt(wn.identifier)} was used more than once`);wn._verify(gn,hn,$n,un,rn);break}if(!Qt)throw new Error(`cannot find discharge macaroon for caveat ${yt(Nn._identifierBits)}`);Sn=Nt(Sn,Nn._vidBits,Nn._identifierBits)}else{const hn=At(Nn._identifierBits),Qt=$n(hn);if(Qt)throw new Error(`caveat check failed (${hn}): ${Qt}`);Sn=Ft(Sn,Nn._identifierBits)}});const Mn=cn(gn,Sn);if(!nt.default.bitArray.equal(Mn,this._signatureBits))throw new Error("signature mismatch after caveat verification")}exportJSON(){switch(this._version){case 1:return this._exportAsJSONObjectV1();case 2:return this._exportAsJSONObjectV2();default:throw new Error(`unexpected macaroon version ${this._version}`)}}_exportAsJSONObjectV1(){const gn={identifier:At(this._identifierBits),signature:nt.default.codec.hex.fromBits(this._signatureBits)};return this._locationStr&&(gn.location=this._locationStr),this._caveats.length>0&&(gn.caveats=this._caveats.map(Cn=>{const $n={cid:At(Cn._identifierBits)};return Cn._vidBits&&($n.vid=nt.default.codec.base64.fromBits(Cn._vidBits,!0,!0),$n.cl=Cn._locationStr),$n})),gn}_exportAsJSONObjectV2(){const gn={v:2};return Wt(gn,"s",Mt(this._signatureBits)),Wt(gn,"i",Mt(this._identifierBits)),this._locationStr&&(gn.l=this._locationStr),this._caveats&&this._caveats.length>0&&(gn.c=this._caveats.map(Cn=>{const $n={};return Wt($n,"i",Mt(Cn._identifierBits)),Cn._vidBits&&(Wt($n,"v",Mt(Cn._vidBits)),$n.l=Cn._locationStr),$n})),gn}_exportBinaryV1(){throw new Error("V1 binary export not supported")}_exportBinaryV2(){const gn=new bt(200);return gn.appendByte(2),this._locationStr&&zt(gn,ht,St(this._locationStr)),zt(gn,dt,Mt(this._identifierBits)),zt(gn,ut),this._caveats.forEach(function(Cn){Cn._locationStr&&zt(gn,ht,St(Cn._locationStr)),zt(gn,dt,Mt(Cn._identifierBits)),Cn._vidBits&&zt(gn,pt,Mt(Cn._vidBits)),zt(gn,ut)}),zt(gn,ut),zt(gn,mt,Mt(this._signatureBits)),gn.bytes}exportBinary(){switch(this._version){case 1:return this._exportBinaryV1();case 2:return this._exportBinaryV2();default:throw new Error(`unexpected macaroon version ${this._version}`)}}}tt.importMacaroon=function(dn){if(typeof dn=="string"&&(dn=tt.base64ToBytes(dn)),dn instanceof Uint8Array){const gn=new vt(dn),Cn=kn(gn);if(gn.length!==0)throw new TypeError("extra data found at end of serialized macaroon");return Cn}if(Array.isArray(dn))throw new TypeError("cannot import an array of macaroons as a single macaroon");return En(dn)},tt.importMacaroons=function(dn){if(typeof dn=="string"&&(dn=tt.base64ToBytes(dn)),dn instanceof Uint8Array){if(dn.length===0)throw new TypeError("empty macaroon data");const gn=new vt(dn),Cn=[];do Cn.push(kn(gn));while(gn.length>0);return Cn}return Array.isArray(dn)?dn.map(gn=>En(gn)):[En(dn)]};const En=function(dn){return an(dn)?en(dn):Tn(dn)};function an(dn){return kt(dn.signature)}const en=function(dn){const gn=dn.caveats&&dn.caveats.map(Cn=>{const $n={identifierBytes:St(Rt(Cn.cid,"Caveat id")),locationStr:$t(Cn.cl,"Caveat location")};return Cn.vid&&($n.vidBytes=tt.base64ToBytes(Rt(Cn.vid,"Caveat verification id"))),$n});return new _n({version:1,locationStr:$t(dn.location,"Macaroon location"),identifierBytes:St(Rt(dn.identifier,"Macaroon identifier")),caveats:gn,signatureBytes:Lt(dn.signature)})},Tn=function(dn){if(dn.v!==2&&dn.v!==void 0)throw new Error(`Unsupported macaroon version ${dn.v}`);const gn={version:2,signatureBytes:Rn(dn,"s",!0),locationStr:Tt(Rn(dn,"l",!1)),identifierBytes:Rn(dn,"i",!0)};if(dn.c){if(!Array.isArray(dn.c))throw new Error("caveats field does not hold an array");gn.caveats=dn.c.map(Cn=>({identifierBytes:Rn(Cn,"i",!0),locationStr:Tt(Rn(Cn,"l")),vidBytes:Rn(Cn,"v",!1)}))}return new _n(gn)};function Rn(dn,gn,Cn){if(dn.hasOwnProperty(gn))return St(dn[gn]);const $n=gn+"64";if(dn.hasOwnProperty($n))return tt.base64ToBytes(dn[$n]);if(Cn)throw new Error("Expected key: "+gn);return null}const An=function(dn){const gn=dn.readByte();if(gn!==2)throw new Error(`Only version 2 is supported, found version ${gn}`);const Cn=Tt(Ut(dn,ht)),$n=Ot(dn,dt),un=[];for(Ot(dn,ut);!Ut(dn,ut);){const Sn={locationStr:Tt(Ut(dn,ht)),identifierBytes:Ot(dn,dt),vidBytes:Ut(dn,pt)};Ot(dn,ut),un.push(Sn)}const rn=Ot(dn,mt);if(dn.length!==0)throw new Error("unexpected extra data at end of macaroon");return new _n({version:gn,locationStr:Cn,identifierBytes:$n,signatureBytes:rn,caveats:un})},yn=function(dn){return 48<=dn&&dn<=58||97<=dn&&dn<=102},kn=function(dn){if(dn.length===0)throw new Error("Empty macaroon data");const gn=dn.peekByte();if(gn===2)return An(dn);throw yn(gn)?new Error("Version 1 binary format not supported"):new Error("Cannot determine data format of binary-encoded macaroon")};tt.newMacaroon=function({identifier:dn,location:gn,rootKey:Cn,version:$n}){const un=xt(dn,"Macaroon identifier"),rn=xt(Cn,"Macaroon root key");return new _n({version:$n===void 0?2:$n,identifierBytes:un,locationStr:$t(gn,"Macaroon location"),signatureBytes:Mt(Ft(Ht(Et(rn)),Et(un)))})},tt.dischargeMacaroon=function(dn,gn,Cn,$n){const un=dn.signature,rn=[dn];let Sn=0,Mn=!1;const Nn=dn.location,hn=wn=>{Mn||(wn.bindToRoot(un),rn.push(wn),Sn--,Zt(wn))},Qt=wn=>{Mn||($n(wn),Mn=!0)},Zt=wn=>{let On,jn;for(jn=0;jntt.LATEST_VERSION)throw new ut(mt.version);if(mt.version&&(this.version=mt.version),ot(typeof this.version=="number","Identifier version must be a number"),ot(mt.paymentHash.length===32,`Expected 32-byte hash, instead got ${mt.paymentHash.length}`),this.paymentHash=mt.paymentHash,mt.tokenId)this.tokenId=mt.tokenId;else{const gt=(0,lt.default)();this.tokenId=st.default.createHash("sha256").update(Buffer.from(gt)).digest()}return ot(this.tokenId.length===tt.TOKEN_ID_SIZE,"Token Id of unexpected size"),this}toString(){return this.toHex()}static fromString(mt){try{return new this().fromHex(mt)}catch{return new this().fromBase64(mt)}}write(mt){switch(mt.writeU16BE(this.version),this.version){case 0:return mt.writeHash(this.paymentHash),ot(Buffer.isBuffer(this.tokenId)&&this.tokenId.length===tt.TOKEN_ID_SIZE,`Token ID must be ${tt.TOKEN_ID_SIZE}-byte hash`),mt.writeBytes(this.tokenId),this;default:throw new ut(this.version)}}read(mt){switch(this.version=mt.readU16BE(),this.version){case 0:return this.paymentHash=mt.readHash(),this.tokenId=mt.readBytes(tt.TOKEN_ID_SIZE),this;default:throw new ut(this.version)}}}tt.Identifier=ht;const dt=pt=>{const mt=ct.importMacaroon(pt);let gt=mt._exportAsJSONObjectV2().i;if(gt==null&&(gt=mt._exportAsJSONObjectV2().i64,gt==null))throw new Error("Problem parsing macaroon identifier");return gt};tt.decodeIdentifierFromMacaroon=dt})(identifier);var caveat={};/*! +`))},cryptoBrowserify.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},cryptoBrowserify}var rngBrowser={exports:{}},getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof window.msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto);if(getRandomValues){var rnds8=new Uint8Array(16);rngBrowser.exports=function(){return getRandomValues(rnds8),rnds8}}else{var rnds=new Array(16);rngBrowser.exports=function(){for(var et=0,nt;et<16;et++)et&3||(nt=Math.random()*4294967296),rnds[et]=nt>>>((et&3)<<3)&255;return rnds}}var rngBrowserExports=rngBrowser.exports,byteToHex=[];for(var i$4=0;i$4<256;++i$4)byteToHex[i$4]=(i$4+256).toString(16).substr(1);function bytesToUuid$1(tt,et){var nt=et||0,rt=byteToHex;return[rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]],"-",rt[tt[nt++]],rt[tt[nt++]],"-",rt[tt[nt++]],rt[tt[nt++]],"-",rt[tt[nt++]],rt[tt[nt++]],"-",rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]],rt[tt[nt++]]].join("")}var bytesToUuid_1=bytesToUuid$1,rng=rngBrowserExports,bytesToUuid=bytesToUuid_1;function v4(tt,et,nt){var rt=et&&nt||0;typeof tt=="string"&&(et=tt==="binary"?new Array(16):null,tt=null),tt=tt||{};var it=tt.random||(tt.rng||rng)();if(it[6]=it[6]&15|64,it[8]=it[8]&63|128,et)for(var ot=0;ot<16;++ot)et[rt+ot]=it[ot];return et||bytesToUuid(it)}var v4_1=v4,macaroon$1={},sjcl={exports:{}};(function(tt){var et={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(mt){this.toString=function(){return"CORRUPT: "+this.message},this.message=mt},invalid:function(mt){this.toString=function(){return"INVALID: "+this.message},this.message=mt},bug:function(mt){this.toString=function(){return"BUG: "+this.message},this.message=mt},notReady:function(mt){this.toString=function(){return"NOT READY: "+this.message},this.message=mt}}};et.cipher.aes=function(mt){this.s[0][0][0]||this.O();var gt,yt,bt,wt,vt=this.s[0][4],kt=this.s[1];gt=mt.length;var St=1;if(gt!==4&>!==6&>!==8)throw new et.exception.invalid("invalid aes key size");for(this.b=[bt=mt.slice(0),wt=[]],mt=gt;mt<4*gt+28;mt++)yt=bt[mt-1],(mt%gt===0||gt===8&&mt%gt===4)&&(yt=vt[yt>>>24]<<24^vt[yt>>16&255]<<16^vt[yt>>8&255]<<8^vt[yt&255],mt%gt===0&&(yt=yt<<8^yt>>>24^St<<24,St=St<<1^283*(St>>7))),bt[mt]=bt[mt-gt]^yt;for(gt=0;mt;gt++,mt--)yt=bt[gt&3?mt:mt-4],wt[gt]=4>=mt||4>gt?yt:kt[0][vt[yt>>>24]]^kt[1][vt[yt>>16&255]]^kt[2][vt[yt>>8&255]]^kt[3][vt[yt&255]]},et.cipher.aes.prototype={encrypt:function(mt){return nt(this,mt,0)},decrypt:function(mt){return nt(this,mt,1)},s:[[[],[],[],[],[]],[[],[],[],[],[]]],O:function(){var mt=this.s[0],gt=this.s[1],yt=mt[4],bt=gt[4],wt,vt,kt,St=[],Et=[],At,Tt,Mt,Lt;for(wt=0;256>wt;wt++)Et[(St[wt]=wt<<1^283*(wt>>7))^wt]=wt;for(vt=kt=0;!yt[vt];vt^=At||1,kt=Et[kt]||1)for(Mt=kt^kt<<1^kt<<2^kt<<3^kt<<4,Mt=Mt>>8^Mt&255^99,yt[vt]=Mt,bt[Mt]=vt,Tt=St[wt=St[At=St[vt]]],Lt=16843009*Tt^65537*wt^257*At^16843008*vt,Tt=257*St[Mt]^16843008*Mt,wt=0;4>wt;wt++)mt[wt][vt]=Tt=Tt<<24^Tt>>>8,gt[wt][Mt]=Lt=Lt<<24^Lt>>>8;for(wt=0;5>wt;wt++)mt[wt]=mt[wt].slice(0),gt[wt]=gt[wt].slice(0)}};function nt(mt,gt,yt){if(gt.length!==4)throw new et.exception.invalid("invalid aes block size");var bt=mt.b[yt],wt=gt[0]^bt[0],vt=gt[yt?3:1]^bt[1],kt=gt[2]^bt[2];gt=gt[yt?1:3]^bt[3];var St,Et,At,Tt=bt.length/4-2,Mt,Lt=4,jt=[0,0,0,0];St=mt.s[yt],mt=St[0];var Rt=St[1],$t=St[2],xt=St[3],It=St[4];for(Mt=0;Mt>>24]^Rt[vt>>16&255]^$t[kt>>8&255]^xt[gt&255]^bt[Lt],Et=mt[vt>>>24]^Rt[kt>>16&255]^$t[gt>>8&255]^xt[wt&255]^bt[Lt+1],At=mt[kt>>>24]^Rt[gt>>16&255]^$t[wt>>8&255]^xt[vt&255]^bt[Lt+2],gt=mt[gt>>>24]^Rt[wt>>16&255]^$t[vt>>8&255]^xt[kt&255]^bt[Lt+3],Lt+=4,wt=St,vt=Et,kt=At;for(Mt=0;4>Mt;Mt++)jt[yt?3&-Mt:Mt]=It[wt>>>24]<<24^It[vt>>16&255]<<16^It[kt>>8&255]<<8^It[gt&255]^bt[Lt++],St=wt,wt=vt,vt=kt,kt=gt,gt=St;return jt}et.bitArray={bitSlice:function(mt,gt,yt){return mt=et.bitArray.$(mt.slice(gt/32),32-(gt&31)).slice(1),yt===void 0?mt:et.bitArray.clamp(mt,yt-gt)},extract:function(mt,gt,yt){var bt=Math.floor(-gt-yt&31);return((gt+yt-1^gt)&-32?mt[gt/32|0]<<32-bt^mt[gt/32+1|0]>>>bt:mt[gt/32|0]>>>bt)&(1<>gt-1,1)),mt},partial:function(mt,gt,yt){return mt===32?gt:(yt?gt|0:gt<<32-mt)+1099511627776*mt},getPartial:function(mt){return Math.round(mt/1099511627776)||32},equal:function(mt,gt){if(et.bitArray.bitLength(mt)!==et.bitArray.bitLength(gt))return!1;var yt=0,bt;for(bt=0;bt>>gt),yt=mt[wt]<<32-gt;return wt=mt.length?mt[mt.length-1]:0,mt=et.bitArray.getPartial(wt),bt.push(et.bitArray.partial(gt+mt&31,32>>24|yt>>>8&65280|(yt&65280)<<8|yt<<24;return mt}},et.codec.utf8String={fromBits:function(mt){var gt="",yt=et.bitArray.bitLength(mt),bt,wt;for(bt=0;bt>>8>>>8>>>8),wt<<=8;return decodeURIComponent(escape(gt))},toBits:function(mt){mt=unescape(encodeURIComponent(mt));var gt=[],yt,bt=0;for(yt=0;yt>>kt)>>>wt),ktTt){if(!gt)try{return et.codec.base32hex.toBits(mt)}catch{}throw new et.exception.invalid("this isn't "+Mt+"!")}St>wt?(St-=wt,vt.push(At^Tt>>>St),At=Tt<>>wt)>>>26),6>wt?(kt=mt[yt]<<6-wt,wt+=26,yt++):(kt<<=6,wt-=6);for(;bt.length&3&&!gt;)bt+="=";return bt},toBits:function(mt,gt){mt=mt.replace(/\s|=/g,"");var yt=[],bt,wt=0,vt=et.codec.base64.B,kt=0,St;for(gt&&(vt=vt.substr(0,62)+"-_"),bt=0;btSt)throw new et.exception.invalid("this isn't base64!");26>>wt),kt=St<<32-wt):(wt+=6,kt^=St<<32-wt)}return wt&56&&yt.push(et.bitArray.partial(wt&56,kt,1)),yt}},et.codec.base64url={fromBits:function(mt){return et.codec.base64.fromBits(mt,1,1)},toBits:function(mt){return et.codec.base64.toBits(mt,1)}},et.hash.sha256=function(mt){this.b[0]||this.O(),mt?(this.F=mt.F.slice(0),this.A=mt.A.slice(0),this.l=mt.l):this.reset()},et.hash.sha256.hash=function(mt){return new et.hash.sha256().update(mt).finalize()},et.hash.sha256.prototype={blockSize:512,reset:function(){return this.F=this.Y.slice(0),this.A=[],this.l=0,this},update:function(mt){typeof mt=="string"&&(mt=et.codec.utf8String.toBits(mt));var gt,yt=this.A=et.bitArray.concat(this.A,mt);if(gt=this.l,mt=this.l=gt+et.bitArray.bitLength(mt),9007199254740991gt;yt++){for(wt=!0,bt=2;bt*bt<=yt;bt++)if(yt%bt===0){wt=!1;break}wt&&(8>gt&&(this.Y[gt]=mt(Math.pow(yt,.5))),this.b[gt]=mt(Math.pow(yt,1/3)),gt++)}}};function rt(mt,gt){var yt,bt,wt,vt=mt.F,kt=mt.b,St=vt[0],Et=vt[1],At=vt[2],Tt=vt[3],Mt=vt[4],Lt=vt[5],jt=vt[6],Rt=vt[7];for(yt=0;64>yt;yt++)16>yt?bt=gt[yt]:(bt=gt[yt+1&15],wt=gt[yt+14&15],bt=gt[yt&15]=(bt>>>7^bt>>>18^bt>>>3^bt<<25^bt<<14)+(wt>>>17^wt>>>19^wt>>>10^wt<<15^wt<<13)+gt[yt&15]+gt[yt+9&15]|0),bt=bt+Rt+(Mt>>>6^Mt>>>11^Mt>>>25^Mt<<26^Mt<<21^Mt<<7)+(jt^Mt&(Lt^jt))+kt[yt],Rt=jt,jt=Lt,Lt=Mt,Mt=Tt+bt|0,Tt=At,At=Et,Et=St,St=bt+(Et&At^Tt&(Et^At))+(Et>>>2^Et>>>13^Et>>>22^Et<<30^Et<<19^Et<<10)|0;vt[0]=vt[0]+St|0,vt[1]=vt[1]+Et|0,vt[2]=vt[2]+At|0,vt[3]=vt[3]+Tt|0,vt[4]=vt[4]+Mt|0,vt[5]=vt[5]+Lt|0,vt[6]=vt[6]+jt|0,vt[7]=vt[7]+Rt|0}et.mode.ccm={name:"ccm",G:[],listenProgress:function(mt){et.mode.ccm.G.push(mt)},unListenProgress:function(mt){mt=et.mode.ccm.G.indexOf(mt),-1Et)throw new et.exception.invalid("ccm: iv must be at least 7 bytes");for(vt=2;4>vt&&At>>>8*vt;vt++);return vt<15-Et&&(vt=15-Et),yt=St.clamp(yt,8*(15-vt)),gt=et.mode.ccm.V(mt,gt,yt,bt,wt,vt),kt=et.mode.ccm.C(mt,kt,yt,gt,wt,vt),St.concat(kt.data,kt.tag)},decrypt:function(mt,gt,yt,bt,wt){wt=wt||64,bt=bt||[];var vt=et.bitArray,kt=vt.bitLength(yt)/8,At=vt.bitLength(gt),St=vt.clamp(gt,At-wt),Et=vt.bitSlice(gt,At-wt),At=(At-wt)/8;if(7>kt)throw new et.exception.invalid("ccm: iv must be at least 7 bytes");for(gt=2;4>gt&&At>>>8*gt;gt++);if(gt<15-kt&&(gt=15-kt),yt=vt.clamp(yt,8*(15-gt)),St=et.mode.ccm.C(mt,St,yt,Et,wt,gt),mt=et.mode.ccm.V(mt,St.data,yt,bt,wt,gt),!vt.equal(St.tag,mt))throw new et.exception.corrupt("ccm: tag doesn't match");return St.data},na:function(mt,gt,yt,bt,wt,vt){var kt=[],St=et.bitArray,Et=St.i;if(bt=[St.partial(8,(gt.length?64:0)|bt-2<<2|vt-1)],bt=St.concat(bt,yt),bt[3]|=wt,bt=mt.encrypt(bt),gt.length)for(yt=St.bitLength(gt)/8,65279>=yt?kt=[St.partial(16,yt)]:4294967295>=yt&&(kt=St.concat([St.partial(16,65534)],[yt])),kt=St.concat(kt,gt),gt=0;gtwt||16Tt&&(et.mode.ccm.fa(kt/Et),Tt+=Mt),yt[3]++,wt=mt.encrypt(yt),gt[kt]^=wt[0],gt[kt+1]^=wt[1],gt[kt+2]^=wt[2],gt[kt+3]^=wt[3];return{tag:bt,data:St.clamp(gt,At)}}},et.mode.ocb2={name:"ocb2",encrypt:function(mt,gt,yt,bt,wt,vt){if(et.bitArray.bitLength(yt)!==128)throw new et.exception.invalid("ocb iv must be 128 bits");var kt,St=et.mode.ocb2.S,Et=et.bitArray,At=Et.i,Tt=[0,0,0,0];yt=St(mt.encrypt(yt));var Mt,Lt=[];for(bt=bt||[],wt=wt||64,kt=0;kt+4wt.bitLength(yt)&&(St=vt(St,bt(St)),yt=wt.concat(yt,[-2147483648,0,0,0])),kt=vt(kt,yt),mt.encrypt(vt(bt(vt(St,bt(St))),kt))},S:function(mt){return[mt[0]<<1^mt[1]>>>31,mt[1]<<1^mt[2]>>>31,mt[2]<<1^mt[3]>>>31,mt[3]<<1^135*(mt[0]>>>31)]}},et.mode.gcm={name:"gcm",encrypt:function(mt,gt,yt,bt,wt){var vt=gt.slice(0);return gt=et.bitArray,bt=bt||[],mt=et.mode.gcm.C(!0,mt,vt,bt,yt,wt||128),gt.concat(mt.data,mt.tag)},decrypt:function(mt,gt,yt,bt,wt){var vt=gt.slice(0),kt=et.bitArray,St=kt.bitLength(vt);if(wt=wt||128,bt=bt||[],wt<=St?(gt=kt.bitSlice(vt,St-wt),vt=kt.bitSlice(vt,0,St-wt)):(gt=vt,vt=[]),mt=et.mode.gcm.C(!1,mt,vt,bt,yt,wt),!kt.equal(mt.tag,gt))throw new et.exception.corrupt("gcm: tag doesn't match");return mt.data},ka:function(mt,gt){var yt,bt,wt,vt,kt,St=et.bitArray.i;for(wt=[0,0,0,0],vt=gt.slice(0),yt=0;128>yt;yt++){for((bt=(mt[Math.floor(yt/32)]&1<<31-yt%32)!==0)&&(wt=St(wt,vt)),kt=(vt[3]&1)!==0,bt=3;0>>1|(vt[bt-1]&1)<<31;vt[0]>>>=1,kt&&(vt[0]^=-520093696)}return wt},j:function(mt,gt,yt){var bt,wt=yt.length;for(gt=gt.slice(0),bt=0;btwt&&(mt=gt.hash(mt)),bt=0;btbt||0>yt)throw new et.exception.invalid("invalid params to pbkdf2");typeof mt=="string"&&(mt=et.codec.utf8String.toBits(mt)),typeof gt=="string"&&(gt=et.codec.utf8String.toBits(gt)),wt=wt||et.misc.hmac,mt=new wt(mt);var vt,kt,St,Et,At=[],Tt=et.bitArray;for(Et=1;32*At.length<(bt||1);Et++){for(wt=vt=mt.encrypt(Tt.concat(gt,[Et])),kt=1;ktkt;kt++)wt.push(4294967296*Math.random()|0);for(kt=0;kt=1<this.o&&(this.o=vt),this.P++,this.b=et.hash.sha256.hash(this.b.concat(wt)),this.L=new et.cipher.aes(this.b),bt=0;4>bt&&(this.h[bt]=this.h[bt]+1|0,!this.h[bt]);bt++);}for(bt=0;bt>>1;this.c[kt].update([bt,this.N++,2,gt,vt,mt.length].concat(mt))}break;case"string":gt===void 0&&(gt=mt.length),this.c[kt].update([bt,this.N++,3,gt,vt,mt.length]),this.c[kt].update(mt);break;default:Et=1}if(Et)throw new et.exception.bug("random: addEntropy only supports number, array of numbers or string");this.m[kt]+=gt,this.f+=gt,St===this.u&&(this.isReady()!==this.u&&it("seeded",Math.max(this.o,this.f)),it("progress",this.getProgress()))},isReady:function(mt){return mt=this.T[mt!==void 0?mt:this.M],this.o&&this.o>=mt?this.m[0]>this.ba&&new Date().valueOf()>this.Z?this.J|this.I:this.I:this.f>=mt?this.J|this.u:this.u},getProgress:function(mt){return mt=this.T[mt||this.M],this.o>=mt||this.f>mt?1:this.f/mt},startCollectors:function(){if(!this.D){if(this.a={loadTimeCollector:lt(this,this.ma),mouseCollector:lt(this,this.oa),keyboardCollector:lt(this,this.la),accelerometerCollector:lt(this,this.ea),touchCollector:lt(this,this.qa)},window.addEventListener)window.addEventListener("load",this.a.loadTimeCollector,!1),window.addEventListener("mousemove",this.a.mouseCollector,!1),window.addEventListener("keypress",this.a.keyboardCollector,!1),window.addEventListener("devicemotion",this.a.accelerometerCollector,!1),window.addEventListener("touchmove",this.a.touchCollector,!1);else if(document.attachEvent)document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector);else throw new et.exception.bug("can't attach event");this.D=!0}},stopCollectors:function(){this.D&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,!1),window.removeEventListener("mousemove",this.a.mouseCollector,!1),window.removeEventListener("keypress",this.a.keyboardCollector,!1),window.removeEventListener("devicemotion",this.a.accelerometerCollector,!1),window.removeEventListener("touchmove",this.a.touchCollector,!1)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.D=!1)},addEventListener:function(mt,gt){this.K[mt][this.ga++]=gt},removeEventListener:function(mt,gt){var yt,bt,wt=this.K[mt],vt=[];for(bt in wt)wt.hasOwnProperty(bt)&&wt[bt]===gt&&vt.push(bt);for(yt=0;ytgt&&(mt.h[gt]=mt.h[gt]+1|0,!mt.h[gt]);gt++);return mt.L.encrypt(mt.h)}function lt(mt,gt){return function(){gt.apply(mt,arguments)}}et.random=new et.prng(6);e:try{var ct,ut,ht,dt;if(dt=tt.exports){var pt;try{pt=requireCryptoBrowserify()}catch{pt=null}dt=ut=pt}if(dt&&ut.randomBytes)ct=ut.randomBytes(128),ct=new Uint32Array(new Uint8Array(ct).buffer),et.random.addEntropy(ct,1024,"crypto['randomBytes']");else if(typeof window<"u"&&typeof Uint32Array<"u"){if(ht=new Uint32Array(32),window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(ht);else if(window.msCrypto&&window.msCrypto.getRandomValues)window.msCrypto.getRandomValues(ht);else break e;et.random.addEntropy(ht,1024,"crypto['getRandomValues']")}}catch(mt){typeof window<"u"&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(mt))}et.json={defaults:{v:1,iter:1e4,ks:128,ts:64,mode:"ccm",adata:"",cipher:"aes"},ja:function(mt,gt,yt,bt){yt=yt||{},bt=bt||{};var wt=et.json,vt=wt.g({iv:et.random.randomWords(4,0)},wt.defaults),kt;if(wt.g(vt,yt),yt=vt.adata,typeof vt.salt=="string"&&(vt.salt=et.codec.base64.toBits(vt.salt)),typeof vt.iv=="string"&&(vt.iv=et.codec.base64.toBits(vt.iv)),!et.mode[vt.mode]||!et.cipher[vt.cipher]||typeof mt=="string"&&100>=vt.iter||vt.ts!==64&&vt.ts!==96&&vt.ts!==128||vt.ks!==128&&vt.ks!==192&&vt.ks!==256||2>vt.iv.length||4=gt.iter||gt.ts!==64&>.ts!==96&>.ts!==128||gt.ks!==128&>.ks!==192&>.ks!==256||!gt.iv||2>gt.iv.length||4>24&255,vn[Pn+1]=sn>>16&255,vn[Pn+2]=sn>>8&255,vn[Pn+3]=sn&255,vn[Pn+4]=Xt>>24&255,vn[Pn+5]=Xt>>16&255,vn[Pn+6]=Xt>>8&255,vn[Pn+7]=Xt&255}function gt(vn,Pn,sn,Xt,xn){var Dn,Fn=0;for(Dn=0;Dn>>8)-1}function yt(vn,Pn,sn,Xt){return gt(vn,Pn,sn,Xt,16)}function bt(vn,Pn,sn,Xt){return gt(vn,Pn,sn,Xt,32)}function wt(vn,Pn,sn,Xt){for(var xn=Xt[0]&255|(Xt[1]&255)<<8|(Xt[2]&255)<<16|(Xt[3]&255)<<24,Dn=sn[0]&255|(sn[1]&255)<<8|(sn[2]&255)<<16|(sn[3]&255)<<24,Fn=sn[4]&255|(sn[5]&255)<<8|(sn[6]&255)<<16|(sn[7]&255)<<24,Kn=sn[8]&255|(sn[9]&255)<<8|(sn[10]&255)<<16|(sn[11]&255)<<24,nr=sn[12]&255|(sn[13]&255)<<8|(sn[14]&255)<<16|(sn[15]&255)<<24,lr=Xt[4]&255|(Xt[5]&255)<<8|(Xt[6]&255)<<16|(Xt[7]&255)<<24,cr=Pn[0]&255|(Pn[1]&255)<<8|(Pn[2]&255)<<16|(Pn[3]&255)<<24,Hr=Pn[4]&255|(Pn[5]&255)<<8|(Pn[6]&255)<<16|(Pn[7]&255)<<24,_r=Pn[8]&255|(Pn[9]&255)<<8|(Pn[10]&255)<<16|(Pn[11]&255)<<24,jr=Pn[12]&255|(Pn[13]&255)<<8|(Pn[14]&255)<<16|(Pn[15]&255)<<24,Gr=Xt[8]&255|(Xt[9]&255)<<8|(Xt[10]&255)<<16|(Xt[11]&255)<<24,eo=sn[16]&255|(sn[17]&255)<<8|(sn[18]&255)<<16|(sn[19]&255)<<24,Qr=sn[20]&255|(sn[21]&255)<<8|(sn[22]&255)<<16|(sn[23]&255)<<24,_i=sn[24]&255|(sn[25]&255)<<8|(sn[26]&255)<<16|(sn[27]&255)<<24,wr=sn[28]&255|(sn[29]&255)<<8|(sn[30]&255)<<16|(sn[31]&255)<<24,$r=Xt[12]&255|(Xt[13]&255)<<8|(Xt[14]&255)<<16|(Xt[15]&255)<<24,Wr=xn,Br=Dn,Pr=Fn,Lr=Kn,Nr=nr,Cr=lr,er=cr,ir=Hr,Sr=_r,dr=jr,br=Gr,Ir=eo,ro=Qr,ao=_i,mo=wr,fo=$r,Gn,bo=0;bo<20;bo+=2)Gn=Wr+ro|0,Nr^=Gn<<7|Gn>>>32-7,Gn=Nr+Wr|0,Sr^=Gn<<9|Gn>>>32-9,Gn=Sr+Nr|0,ro^=Gn<<13|Gn>>>32-13,Gn=ro+Sr|0,Wr^=Gn<<18|Gn>>>32-18,Gn=Cr+Br|0,dr^=Gn<<7|Gn>>>32-7,Gn=dr+Cr|0,ao^=Gn<<9|Gn>>>32-9,Gn=ao+dr|0,Br^=Gn<<13|Gn>>>32-13,Gn=Br+ao|0,Cr^=Gn<<18|Gn>>>32-18,Gn=br+er|0,mo^=Gn<<7|Gn>>>32-7,Gn=mo+br|0,Pr^=Gn<<9|Gn>>>32-9,Gn=Pr+mo|0,er^=Gn<<13|Gn>>>32-13,Gn=er+Pr|0,br^=Gn<<18|Gn>>>32-18,Gn=fo+Ir|0,Lr^=Gn<<7|Gn>>>32-7,Gn=Lr+fo|0,ir^=Gn<<9|Gn>>>32-9,Gn=ir+Lr|0,Ir^=Gn<<13|Gn>>>32-13,Gn=Ir+ir|0,fo^=Gn<<18|Gn>>>32-18,Gn=Wr+Lr|0,Br^=Gn<<7|Gn>>>32-7,Gn=Br+Wr|0,Pr^=Gn<<9|Gn>>>32-9,Gn=Pr+Br|0,Lr^=Gn<<13|Gn>>>32-13,Gn=Lr+Pr|0,Wr^=Gn<<18|Gn>>>32-18,Gn=Cr+Nr|0,er^=Gn<<7|Gn>>>32-7,Gn=er+Cr|0,ir^=Gn<<9|Gn>>>32-9,Gn=ir+er|0,Nr^=Gn<<13|Gn>>>32-13,Gn=Nr+ir|0,Cr^=Gn<<18|Gn>>>32-18,Gn=br+dr|0,Ir^=Gn<<7|Gn>>>32-7,Gn=Ir+br|0,Sr^=Gn<<9|Gn>>>32-9,Gn=Sr+Ir|0,dr^=Gn<<13|Gn>>>32-13,Gn=dr+Sr|0,br^=Gn<<18|Gn>>>32-18,Gn=fo+mo|0,ro^=Gn<<7|Gn>>>32-7,Gn=ro+fo|0,ao^=Gn<<9|Gn>>>32-9,Gn=ao+ro|0,mo^=Gn<<13|Gn>>>32-13,Gn=mo+ao|0,fo^=Gn<<18|Gn>>>32-18;Wr=Wr+xn|0,Br=Br+Dn|0,Pr=Pr+Fn|0,Lr=Lr+Kn|0,Nr=Nr+nr|0,Cr=Cr+lr|0,er=er+cr|0,ir=ir+Hr|0,Sr=Sr+_r|0,dr=dr+jr|0,br=br+Gr|0,Ir=Ir+eo|0,ro=ro+Qr|0,ao=ao+_i|0,mo=mo+wr|0,fo=fo+$r|0,vn[0]=Wr>>>0&255,vn[1]=Wr>>>8&255,vn[2]=Wr>>>16&255,vn[3]=Wr>>>24&255,vn[4]=Br>>>0&255,vn[5]=Br>>>8&255,vn[6]=Br>>>16&255,vn[7]=Br>>>24&255,vn[8]=Pr>>>0&255,vn[9]=Pr>>>8&255,vn[10]=Pr>>>16&255,vn[11]=Pr>>>24&255,vn[12]=Lr>>>0&255,vn[13]=Lr>>>8&255,vn[14]=Lr>>>16&255,vn[15]=Lr>>>24&255,vn[16]=Nr>>>0&255,vn[17]=Nr>>>8&255,vn[18]=Nr>>>16&255,vn[19]=Nr>>>24&255,vn[20]=Cr>>>0&255,vn[21]=Cr>>>8&255,vn[22]=Cr>>>16&255,vn[23]=Cr>>>24&255,vn[24]=er>>>0&255,vn[25]=er>>>8&255,vn[26]=er>>>16&255,vn[27]=er>>>24&255,vn[28]=ir>>>0&255,vn[29]=ir>>>8&255,vn[30]=ir>>>16&255,vn[31]=ir>>>24&255,vn[32]=Sr>>>0&255,vn[33]=Sr>>>8&255,vn[34]=Sr>>>16&255,vn[35]=Sr>>>24&255,vn[36]=dr>>>0&255,vn[37]=dr>>>8&255,vn[38]=dr>>>16&255,vn[39]=dr>>>24&255,vn[40]=br>>>0&255,vn[41]=br>>>8&255,vn[42]=br>>>16&255,vn[43]=br>>>24&255,vn[44]=Ir>>>0&255,vn[45]=Ir>>>8&255,vn[46]=Ir>>>16&255,vn[47]=Ir>>>24&255,vn[48]=ro>>>0&255,vn[49]=ro>>>8&255,vn[50]=ro>>>16&255,vn[51]=ro>>>24&255,vn[52]=ao>>>0&255,vn[53]=ao>>>8&255,vn[54]=ao>>>16&255,vn[55]=ao>>>24&255,vn[56]=mo>>>0&255,vn[57]=mo>>>8&255,vn[58]=mo>>>16&255,vn[59]=mo>>>24&255,vn[60]=fo>>>0&255,vn[61]=fo>>>8&255,vn[62]=fo>>>16&255,vn[63]=fo>>>24&255}function vt(vn,Pn,sn,Xt){for(var xn=Xt[0]&255|(Xt[1]&255)<<8|(Xt[2]&255)<<16|(Xt[3]&255)<<24,Dn=sn[0]&255|(sn[1]&255)<<8|(sn[2]&255)<<16|(sn[3]&255)<<24,Fn=sn[4]&255|(sn[5]&255)<<8|(sn[6]&255)<<16|(sn[7]&255)<<24,Kn=sn[8]&255|(sn[9]&255)<<8|(sn[10]&255)<<16|(sn[11]&255)<<24,nr=sn[12]&255|(sn[13]&255)<<8|(sn[14]&255)<<16|(sn[15]&255)<<24,lr=Xt[4]&255|(Xt[5]&255)<<8|(Xt[6]&255)<<16|(Xt[7]&255)<<24,cr=Pn[0]&255|(Pn[1]&255)<<8|(Pn[2]&255)<<16|(Pn[3]&255)<<24,Hr=Pn[4]&255|(Pn[5]&255)<<8|(Pn[6]&255)<<16|(Pn[7]&255)<<24,_r=Pn[8]&255|(Pn[9]&255)<<8|(Pn[10]&255)<<16|(Pn[11]&255)<<24,jr=Pn[12]&255|(Pn[13]&255)<<8|(Pn[14]&255)<<16|(Pn[15]&255)<<24,Gr=Xt[8]&255|(Xt[9]&255)<<8|(Xt[10]&255)<<16|(Xt[11]&255)<<24,eo=sn[16]&255|(sn[17]&255)<<8|(sn[18]&255)<<16|(sn[19]&255)<<24,Qr=sn[20]&255|(sn[21]&255)<<8|(sn[22]&255)<<16|(sn[23]&255)<<24,_i=sn[24]&255|(sn[25]&255)<<8|(sn[26]&255)<<16|(sn[27]&255)<<24,wr=sn[28]&255|(sn[29]&255)<<8|(sn[30]&255)<<16|(sn[31]&255)<<24,$r=Xt[12]&255|(Xt[13]&255)<<8|(Xt[14]&255)<<16|(Xt[15]&255)<<24,Wr=xn,Br=Dn,Pr=Fn,Lr=Kn,Nr=nr,Cr=lr,er=cr,ir=Hr,Sr=_r,dr=jr,br=Gr,Ir=eo,ro=Qr,ao=_i,mo=wr,fo=$r,Gn,bo=0;bo<20;bo+=2)Gn=Wr+ro|0,Nr^=Gn<<7|Gn>>>32-7,Gn=Nr+Wr|0,Sr^=Gn<<9|Gn>>>32-9,Gn=Sr+Nr|0,ro^=Gn<<13|Gn>>>32-13,Gn=ro+Sr|0,Wr^=Gn<<18|Gn>>>32-18,Gn=Cr+Br|0,dr^=Gn<<7|Gn>>>32-7,Gn=dr+Cr|0,ao^=Gn<<9|Gn>>>32-9,Gn=ao+dr|0,Br^=Gn<<13|Gn>>>32-13,Gn=Br+ao|0,Cr^=Gn<<18|Gn>>>32-18,Gn=br+er|0,mo^=Gn<<7|Gn>>>32-7,Gn=mo+br|0,Pr^=Gn<<9|Gn>>>32-9,Gn=Pr+mo|0,er^=Gn<<13|Gn>>>32-13,Gn=er+Pr|0,br^=Gn<<18|Gn>>>32-18,Gn=fo+Ir|0,Lr^=Gn<<7|Gn>>>32-7,Gn=Lr+fo|0,ir^=Gn<<9|Gn>>>32-9,Gn=ir+Lr|0,Ir^=Gn<<13|Gn>>>32-13,Gn=Ir+ir|0,fo^=Gn<<18|Gn>>>32-18,Gn=Wr+Lr|0,Br^=Gn<<7|Gn>>>32-7,Gn=Br+Wr|0,Pr^=Gn<<9|Gn>>>32-9,Gn=Pr+Br|0,Lr^=Gn<<13|Gn>>>32-13,Gn=Lr+Pr|0,Wr^=Gn<<18|Gn>>>32-18,Gn=Cr+Nr|0,er^=Gn<<7|Gn>>>32-7,Gn=er+Cr|0,ir^=Gn<<9|Gn>>>32-9,Gn=ir+er|0,Nr^=Gn<<13|Gn>>>32-13,Gn=Nr+ir|0,Cr^=Gn<<18|Gn>>>32-18,Gn=br+dr|0,Ir^=Gn<<7|Gn>>>32-7,Gn=Ir+br|0,Sr^=Gn<<9|Gn>>>32-9,Gn=Sr+Ir|0,dr^=Gn<<13|Gn>>>32-13,Gn=dr+Sr|0,br^=Gn<<18|Gn>>>32-18,Gn=fo+mo|0,ro^=Gn<<7|Gn>>>32-7,Gn=ro+fo|0,ao^=Gn<<9|Gn>>>32-9,Gn=ao+ro|0,mo^=Gn<<13|Gn>>>32-13,Gn=mo+ao|0,fo^=Gn<<18|Gn>>>32-18;vn[0]=Wr>>>0&255,vn[1]=Wr>>>8&255,vn[2]=Wr>>>16&255,vn[3]=Wr>>>24&255,vn[4]=Cr>>>0&255,vn[5]=Cr>>>8&255,vn[6]=Cr>>>16&255,vn[7]=Cr>>>24&255,vn[8]=br>>>0&255,vn[9]=br>>>8&255,vn[10]=br>>>16&255,vn[11]=br>>>24&255,vn[12]=fo>>>0&255,vn[13]=fo>>>8&255,vn[14]=fo>>>16&255,vn[15]=fo>>>24&255,vn[16]=er>>>0&255,vn[17]=er>>>8&255,vn[18]=er>>>16&255,vn[19]=er>>>24&255,vn[20]=ir>>>0&255,vn[21]=ir>>>8&255,vn[22]=ir>>>16&255,vn[23]=ir>>>24&255,vn[24]=Sr>>>0&255,vn[25]=Sr>>>8&255,vn[26]=Sr>>>16&255,vn[27]=Sr>>>24&255,vn[28]=dr>>>0&255,vn[29]=dr>>>8&255,vn[30]=dr>>>16&255,vn[31]=dr>>>24&255}function kt(vn,Pn,sn,Xt){wt(vn,Pn,sn,Xt)}function St(vn,Pn,sn,Xt){vt(vn,Pn,sn,Xt)}var Et=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function At(vn,Pn,sn,Xt,xn,Dn,Fn){var Kn=new Uint8Array(16),nr=new Uint8Array(64),lr,cr;for(cr=0;cr<16;cr++)Kn[cr]=0;for(cr=0;cr<8;cr++)Kn[cr]=Dn[cr];for(;xn>=64;){for(kt(nr,Kn,Fn,Et),cr=0;cr<64;cr++)vn[Pn+cr]=sn[Xt+cr]^nr[cr];for(lr=1,cr=8;cr<16;cr++)lr=lr+(Kn[cr]&255)|0,Kn[cr]=lr&255,lr>>>=8;xn-=64,Pn+=64,Xt+=64}if(xn>0)for(kt(nr,Kn,Fn,Et),cr=0;cr=64;){for(kt(Fn,Dn,xn,Et),nr=0;nr<64;nr++)vn[Pn+nr]=Fn[nr];for(Kn=1,nr=8;nr<16;nr++)Kn=Kn+(Dn[nr]&255)|0,Dn[nr]=Kn&255,Kn>>>=8;sn-=64,Pn+=64}if(sn>0)for(kt(Fn,Dn,xn,Et),nr=0;nr>>13|sn<<3)&8191,Xt=vn[4]&255|(vn[5]&255)<<8,this.r[2]=(sn>>>10|Xt<<6)&7939,xn=vn[6]&255|(vn[7]&255)<<8,this.r[3]=(Xt>>>7|xn<<9)&8191,Dn=vn[8]&255|(vn[9]&255)<<8,this.r[4]=(xn>>>4|Dn<<12)&255,this.r[5]=Dn>>>1&8190,Fn=vn[10]&255|(vn[11]&255)<<8,this.r[6]=(Dn>>>14|Fn<<2)&8191,Kn=vn[12]&255|(vn[13]&255)<<8,this.r[7]=(Fn>>>11|Kn<<5)&8065,nr=vn[14]&255|(vn[15]&255)<<8,this.r[8]=(Kn>>>8|nr<<8)&8191,this.r[9]=nr>>>5&127,this.pad[0]=vn[16]&255|(vn[17]&255)<<8,this.pad[1]=vn[18]&255|(vn[19]&255)<<8,this.pad[2]=vn[20]&255|(vn[21]&255)<<8,this.pad[3]=vn[22]&255|(vn[23]&255)<<8,this.pad[4]=vn[24]&255|(vn[25]&255)<<8,this.pad[5]=vn[26]&255|(vn[27]&255)<<8,this.pad[6]=vn[28]&255|(vn[29]&255)<<8,this.pad[7]=vn[30]&255|(vn[31]&255)<<8};jt.prototype.blocks=function(vn,Pn,sn){for(var Xt=this.fin?0:2048,xn,Dn,Fn,Kn,nr,lr,cr,Hr,_r,jr,Gr,eo,Qr,_i,wr,$r,Wr,Br,Pr,Lr=this.h[0],Nr=this.h[1],Cr=this.h[2],er=this.h[3],ir=this.h[4],Sr=this.h[5],dr=this.h[6],br=this.h[7],Ir=this.h[8],ro=this.h[9],ao=this.r[0],mo=this.r[1],fo=this.r[2],Gn=this.r[3],bo=this.r[4],jo=this.r[5],go=this.r[6],vo=this.r[7],Ao=this.r[8],Mo=this.r[9];sn>=16;)xn=vn[Pn+0]&255|(vn[Pn+1]&255)<<8,Lr+=xn&8191,Dn=vn[Pn+2]&255|(vn[Pn+3]&255)<<8,Nr+=(xn>>>13|Dn<<3)&8191,Fn=vn[Pn+4]&255|(vn[Pn+5]&255)<<8,Cr+=(Dn>>>10|Fn<<6)&8191,Kn=vn[Pn+6]&255|(vn[Pn+7]&255)<<8,er+=(Fn>>>7|Kn<<9)&8191,nr=vn[Pn+8]&255|(vn[Pn+9]&255)<<8,ir+=(Kn>>>4|nr<<12)&8191,Sr+=nr>>>1&8191,lr=vn[Pn+10]&255|(vn[Pn+11]&255)<<8,dr+=(nr>>>14|lr<<2)&8191,cr=vn[Pn+12]&255|(vn[Pn+13]&255)<<8,br+=(lr>>>11|cr<<5)&8191,Hr=vn[Pn+14]&255|(vn[Pn+15]&255)<<8,Ir+=(cr>>>8|Hr<<8)&8191,ro+=Hr>>>5|Xt,_r=0,jr=_r,jr+=Lr*ao,jr+=Nr*(5*Mo),jr+=Cr*(5*Ao),jr+=er*(5*vo),jr+=ir*(5*go),_r=jr>>>13,jr&=8191,jr+=Sr*(5*jo),jr+=dr*(5*bo),jr+=br*(5*Gn),jr+=Ir*(5*fo),jr+=ro*(5*mo),_r+=jr>>>13,jr&=8191,Gr=_r,Gr+=Lr*mo,Gr+=Nr*ao,Gr+=Cr*(5*Mo),Gr+=er*(5*Ao),Gr+=ir*(5*vo),_r=Gr>>>13,Gr&=8191,Gr+=Sr*(5*go),Gr+=dr*(5*jo),Gr+=br*(5*bo),Gr+=Ir*(5*Gn),Gr+=ro*(5*fo),_r+=Gr>>>13,Gr&=8191,eo=_r,eo+=Lr*fo,eo+=Nr*mo,eo+=Cr*ao,eo+=er*(5*Mo),eo+=ir*(5*Ao),_r=eo>>>13,eo&=8191,eo+=Sr*(5*vo),eo+=dr*(5*go),eo+=br*(5*jo),eo+=Ir*(5*bo),eo+=ro*(5*Gn),_r+=eo>>>13,eo&=8191,Qr=_r,Qr+=Lr*Gn,Qr+=Nr*fo,Qr+=Cr*mo,Qr+=er*ao,Qr+=ir*(5*Mo),_r=Qr>>>13,Qr&=8191,Qr+=Sr*(5*Ao),Qr+=dr*(5*vo),Qr+=br*(5*go),Qr+=Ir*(5*jo),Qr+=ro*(5*bo),_r+=Qr>>>13,Qr&=8191,_i=_r,_i+=Lr*bo,_i+=Nr*Gn,_i+=Cr*fo,_i+=er*mo,_i+=ir*ao,_r=_i>>>13,_i&=8191,_i+=Sr*(5*Mo),_i+=dr*(5*Ao),_i+=br*(5*vo),_i+=Ir*(5*go),_i+=ro*(5*jo),_r+=_i>>>13,_i&=8191,wr=_r,wr+=Lr*jo,wr+=Nr*bo,wr+=Cr*Gn,wr+=er*fo,wr+=ir*mo,_r=wr>>>13,wr&=8191,wr+=Sr*ao,wr+=dr*(5*Mo),wr+=br*(5*Ao),wr+=Ir*(5*vo),wr+=ro*(5*go),_r+=wr>>>13,wr&=8191,$r=_r,$r+=Lr*go,$r+=Nr*jo,$r+=Cr*bo,$r+=er*Gn,$r+=ir*fo,_r=$r>>>13,$r&=8191,$r+=Sr*mo,$r+=dr*ao,$r+=br*(5*Mo),$r+=Ir*(5*Ao),$r+=ro*(5*vo),_r+=$r>>>13,$r&=8191,Wr=_r,Wr+=Lr*vo,Wr+=Nr*go,Wr+=Cr*jo,Wr+=er*bo,Wr+=ir*Gn,_r=Wr>>>13,Wr&=8191,Wr+=Sr*fo,Wr+=dr*mo,Wr+=br*ao,Wr+=Ir*(5*Mo),Wr+=ro*(5*Ao),_r+=Wr>>>13,Wr&=8191,Br=_r,Br+=Lr*Ao,Br+=Nr*vo,Br+=Cr*go,Br+=er*jo,Br+=ir*bo,_r=Br>>>13,Br&=8191,Br+=Sr*Gn,Br+=dr*fo,Br+=br*mo,Br+=Ir*ao,Br+=ro*(5*Mo),_r+=Br>>>13,Br&=8191,Pr=_r,Pr+=Lr*Mo,Pr+=Nr*Ao,Pr+=Cr*vo,Pr+=er*go,Pr+=ir*jo,_r=Pr>>>13,Pr&=8191,Pr+=Sr*bo,Pr+=dr*Gn,Pr+=br*fo,Pr+=Ir*mo,Pr+=ro*ao,_r+=Pr>>>13,Pr&=8191,_r=(_r<<2)+_r|0,_r=_r+jr|0,jr=_r&8191,_r=_r>>>13,Gr+=_r,Lr=jr,Nr=Gr,Cr=eo,er=Qr,ir=_i,Sr=wr,dr=$r,br=Wr,Ir=Br,ro=Pr,Pn+=16,sn-=16;this.h[0]=Lr,this.h[1]=Nr,this.h[2]=Cr,this.h[3]=er,this.h[4]=ir,this.h[5]=Sr,this.h[6]=dr,this.h[7]=br,this.h[8]=Ir,this.h[9]=ro},jt.prototype.finish=function(vn,Pn){var sn=new Uint16Array(10),Xt,xn,Dn,Fn;if(this.leftover){for(Fn=this.leftover,this.buffer[Fn++]=1;Fn<16;Fn++)this.buffer[Fn]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(Xt=this.h[1]>>>13,this.h[1]&=8191,Fn=2;Fn<10;Fn++)this.h[Fn]+=Xt,Xt=this.h[Fn]>>>13,this.h[Fn]&=8191;for(this.h[0]+=Xt*5,Xt=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=Xt,Xt=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=Xt,sn[0]=this.h[0]+5,Xt=sn[0]>>>13,sn[0]&=8191,Fn=1;Fn<10;Fn++)sn[Fn]=this.h[Fn]+Xt,Xt=sn[Fn]>>>13,sn[Fn]&=8191;for(sn[9]-=8192,xn=(Xt^1)-1,Fn=0;Fn<10;Fn++)sn[Fn]&=xn;for(xn=~xn,Fn=0;Fn<10;Fn++)this.h[Fn]=this.h[Fn]&xn|sn[Fn];for(this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,Dn=this.h[0]+this.pad[0],this.h[0]=Dn&65535,Fn=1;Fn<8;Fn++)Dn=(this.h[Fn]+this.pad[Fn]|0)+(Dn>>>16)|0,this.h[Fn]=Dn&65535;vn[Pn+0]=this.h[0]>>>0&255,vn[Pn+1]=this.h[0]>>>8&255,vn[Pn+2]=this.h[1]>>>0&255,vn[Pn+3]=this.h[1]>>>8&255,vn[Pn+4]=this.h[2]>>>0&255,vn[Pn+5]=this.h[2]>>>8&255,vn[Pn+6]=this.h[3]>>>0&255,vn[Pn+7]=this.h[3]>>>8&255,vn[Pn+8]=this.h[4]>>>0&255,vn[Pn+9]=this.h[4]>>>8&255,vn[Pn+10]=this.h[5]>>>0&255,vn[Pn+11]=this.h[5]>>>8&255,vn[Pn+12]=this.h[6]>>>0&255,vn[Pn+13]=this.h[6]>>>8&255,vn[Pn+14]=this.h[7]>>>0&255,vn[Pn+15]=this.h[7]>>>8&255},jt.prototype.update=function(vn,Pn,sn){var Xt,xn;if(this.leftover){for(xn=16-this.leftover,xn>sn&&(xn=sn),Xt=0;Xt=16&&(xn=sn-sn%16,this.blocks(vn,Pn,xn),Pn+=xn,sn-=xn),sn){for(Xt=0;Xt>16&1),Dn[sn-1]&=65535;Dn[15]=Fn[15]-32767-(Dn[14]>>16&1),xn=Dn[15]>>16&1,Dn[14]&=65535,Ut(Fn,Dn,1-xn)}for(sn=0;sn<16;sn++)vn[2*sn]=Fn[sn]&255,vn[2*sn+1]=Fn[sn]>>8}function Ft(vn,Pn){var sn=new Uint8Array(32),Xt=new Uint8Array(32);return Wt(sn,vn),Wt(Xt,Pn),bt(sn,0,Xt,0)}function Nt(vn){var Pn=new Uint8Array(32);return Wt(Pn,vn),Pn[0]&1}function Ct(vn,Pn){var sn;for(sn=0;sn<16;sn++)vn[sn]=Pn[2*sn]+(Pn[2*sn+1]<<8);vn[15]&=32767}function Ht(vn,Pn,sn){for(var Xt=0;Xt<16;Xt++)vn[Xt]=Pn[Xt]+sn[Xt]}function Jt(vn,Pn,sn){for(var Xt=0;Xt<16;Xt++)vn[Xt]=Pn[Xt]-sn[Xt]}function nn(vn,Pn,sn){var Xt,xn,Dn=0,Fn=0,Kn=0,nr=0,lr=0,cr=0,Hr=0,_r=0,jr=0,Gr=0,eo=0,Qr=0,_i=0,wr=0,$r=0,Wr=0,Br=0,Pr=0,Lr=0,Nr=0,Cr=0,er=0,ir=0,Sr=0,dr=0,br=0,Ir=0,ro=0,ao=0,mo=0,fo=0,Gn=sn[0],bo=sn[1],jo=sn[2],go=sn[3],vo=sn[4],Ao=sn[5],Mo=sn[6],Vo=sn[7],$o=sn[8],Uo=sn[9],Go=sn[10],Xo=sn[11],ga=sn[12],na=sn[13],$a=sn[14],Zo=sn[15];Xt=Pn[0],Dn+=Xt*Gn,Fn+=Xt*bo,Kn+=Xt*jo,nr+=Xt*go,lr+=Xt*vo,cr+=Xt*Ao,Hr+=Xt*Mo,_r+=Xt*Vo,jr+=Xt*$o,Gr+=Xt*Uo,eo+=Xt*Go,Qr+=Xt*Xo,_i+=Xt*ga,wr+=Xt*na,$r+=Xt*$a,Wr+=Xt*Zo,Xt=Pn[1],Fn+=Xt*Gn,Kn+=Xt*bo,nr+=Xt*jo,lr+=Xt*go,cr+=Xt*vo,Hr+=Xt*Ao,_r+=Xt*Mo,jr+=Xt*Vo,Gr+=Xt*$o,eo+=Xt*Uo,Qr+=Xt*Go,_i+=Xt*Xo,wr+=Xt*ga,$r+=Xt*na,Wr+=Xt*$a,Br+=Xt*Zo,Xt=Pn[2],Kn+=Xt*Gn,nr+=Xt*bo,lr+=Xt*jo,cr+=Xt*go,Hr+=Xt*vo,_r+=Xt*Ao,jr+=Xt*Mo,Gr+=Xt*Vo,eo+=Xt*$o,Qr+=Xt*Uo,_i+=Xt*Go,wr+=Xt*Xo,$r+=Xt*ga,Wr+=Xt*na,Br+=Xt*$a,Pr+=Xt*Zo,Xt=Pn[3],nr+=Xt*Gn,lr+=Xt*bo,cr+=Xt*jo,Hr+=Xt*go,_r+=Xt*vo,jr+=Xt*Ao,Gr+=Xt*Mo,eo+=Xt*Vo,Qr+=Xt*$o,_i+=Xt*Uo,wr+=Xt*Go,$r+=Xt*Xo,Wr+=Xt*ga,Br+=Xt*na,Pr+=Xt*$a,Lr+=Xt*Zo,Xt=Pn[4],lr+=Xt*Gn,cr+=Xt*bo,Hr+=Xt*jo,_r+=Xt*go,jr+=Xt*vo,Gr+=Xt*Ao,eo+=Xt*Mo,Qr+=Xt*Vo,_i+=Xt*$o,wr+=Xt*Uo,$r+=Xt*Go,Wr+=Xt*Xo,Br+=Xt*ga,Pr+=Xt*na,Lr+=Xt*$a,Nr+=Xt*Zo,Xt=Pn[5],cr+=Xt*Gn,Hr+=Xt*bo,_r+=Xt*jo,jr+=Xt*go,Gr+=Xt*vo,eo+=Xt*Ao,Qr+=Xt*Mo,_i+=Xt*Vo,wr+=Xt*$o,$r+=Xt*Uo,Wr+=Xt*Go,Br+=Xt*Xo,Pr+=Xt*ga,Lr+=Xt*na,Nr+=Xt*$a,Cr+=Xt*Zo,Xt=Pn[6],Hr+=Xt*Gn,_r+=Xt*bo,jr+=Xt*jo,Gr+=Xt*go,eo+=Xt*vo,Qr+=Xt*Ao,_i+=Xt*Mo,wr+=Xt*Vo,$r+=Xt*$o,Wr+=Xt*Uo,Br+=Xt*Go,Pr+=Xt*Xo,Lr+=Xt*ga,Nr+=Xt*na,Cr+=Xt*$a,er+=Xt*Zo,Xt=Pn[7],_r+=Xt*Gn,jr+=Xt*bo,Gr+=Xt*jo,eo+=Xt*go,Qr+=Xt*vo,_i+=Xt*Ao,wr+=Xt*Mo,$r+=Xt*Vo,Wr+=Xt*$o,Br+=Xt*Uo,Pr+=Xt*Go,Lr+=Xt*Xo,Nr+=Xt*ga,Cr+=Xt*na,er+=Xt*$a,ir+=Xt*Zo,Xt=Pn[8],jr+=Xt*Gn,Gr+=Xt*bo,eo+=Xt*jo,Qr+=Xt*go,_i+=Xt*vo,wr+=Xt*Ao,$r+=Xt*Mo,Wr+=Xt*Vo,Br+=Xt*$o,Pr+=Xt*Uo,Lr+=Xt*Go,Nr+=Xt*Xo,Cr+=Xt*ga,er+=Xt*na,ir+=Xt*$a,Sr+=Xt*Zo,Xt=Pn[9],Gr+=Xt*Gn,eo+=Xt*bo,Qr+=Xt*jo,_i+=Xt*go,wr+=Xt*vo,$r+=Xt*Ao,Wr+=Xt*Mo,Br+=Xt*Vo,Pr+=Xt*$o,Lr+=Xt*Uo,Nr+=Xt*Go,Cr+=Xt*Xo,er+=Xt*ga,ir+=Xt*na,Sr+=Xt*$a,dr+=Xt*Zo,Xt=Pn[10],eo+=Xt*Gn,Qr+=Xt*bo,_i+=Xt*jo,wr+=Xt*go,$r+=Xt*vo,Wr+=Xt*Ao,Br+=Xt*Mo,Pr+=Xt*Vo,Lr+=Xt*$o,Nr+=Xt*Uo,Cr+=Xt*Go,er+=Xt*Xo,ir+=Xt*ga,Sr+=Xt*na,dr+=Xt*$a,br+=Xt*Zo,Xt=Pn[11],Qr+=Xt*Gn,_i+=Xt*bo,wr+=Xt*jo,$r+=Xt*go,Wr+=Xt*vo,Br+=Xt*Ao,Pr+=Xt*Mo,Lr+=Xt*Vo,Nr+=Xt*$o,Cr+=Xt*Uo,er+=Xt*Go,ir+=Xt*Xo,Sr+=Xt*ga,dr+=Xt*na,br+=Xt*$a,Ir+=Xt*Zo,Xt=Pn[12],_i+=Xt*Gn,wr+=Xt*bo,$r+=Xt*jo,Wr+=Xt*go,Br+=Xt*vo,Pr+=Xt*Ao,Lr+=Xt*Mo,Nr+=Xt*Vo,Cr+=Xt*$o,er+=Xt*Uo,ir+=Xt*Go,Sr+=Xt*Xo,dr+=Xt*ga,br+=Xt*na,Ir+=Xt*$a,ro+=Xt*Zo,Xt=Pn[13],wr+=Xt*Gn,$r+=Xt*bo,Wr+=Xt*jo,Br+=Xt*go,Pr+=Xt*vo,Lr+=Xt*Ao,Nr+=Xt*Mo,Cr+=Xt*Vo,er+=Xt*$o,ir+=Xt*Uo,Sr+=Xt*Go,dr+=Xt*Xo,br+=Xt*ga,Ir+=Xt*na,ro+=Xt*$a,ao+=Xt*Zo,Xt=Pn[14],$r+=Xt*Gn,Wr+=Xt*bo,Br+=Xt*jo,Pr+=Xt*go,Lr+=Xt*vo,Nr+=Xt*Ao,Cr+=Xt*Mo,er+=Xt*Vo,ir+=Xt*$o,Sr+=Xt*Uo,dr+=Xt*Go,br+=Xt*Xo,Ir+=Xt*ga,ro+=Xt*na,ao+=Xt*$a,mo+=Xt*Zo,Xt=Pn[15],Wr+=Xt*Gn,Br+=Xt*bo,Pr+=Xt*jo,Lr+=Xt*go,Nr+=Xt*vo,Cr+=Xt*Ao,er+=Xt*Mo,ir+=Xt*Vo,Sr+=Xt*$o,dr+=Xt*Uo,br+=Xt*Go,Ir+=Xt*Xo,ro+=Xt*ga,ao+=Xt*na,mo+=Xt*$a,fo+=Xt*Zo,Dn+=38*Br,Fn+=38*Pr,Kn+=38*Lr,nr+=38*Nr,lr+=38*Cr,cr+=38*er,Hr+=38*ir,_r+=38*Sr,jr+=38*dr,Gr+=38*br,eo+=38*Ir,Qr+=38*ro,_i+=38*ao,wr+=38*mo,$r+=38*fo,xn=1,Xt=Dn+xn+65535,xn=Math.floor(Xt/65536),Dn=Xt-xn*65536,Xt=Fn+xn+65535,xn=Math.floor(Xt/65536),Fn=Xt-xn*65536,Xt=Kn+xn+65535,xn=Math.floor(Xt/65536),Kn=Xt-xn*65536,Xt=nr+xn+65535,xn=Math.floor(Xt/65536),nr=Xt-xn*65536,Xt=lr+xn+65535,xn=Math.floor(Xt/65536),lr=Xt-xn*65536,Xt=cr+xn+65535,xn=Math.floor(Xt/65536),cr=Xt-xn*65536,Xt=Hr+xn+65535,xn=Math.floor(Xt/65536),Hr=Xt-xn*65536,Xt=_r+xn+65535,xn=Math.floor(Xt/65536),_r=Xt-xn*65536,Xt=jr+xn+65535,xn=Math.floor(Xt/65536),jr=Xt-xn*65536,Xt=Gr+xn+65535,xn=Math.floor(Xt/65536),Gr=Xt-xn*65536,Xt=eo+xn+65535,xn=Math.floor(Xt/65536),eo=Xt-xn*65536,Xt=Qr+xn+65535,xn=Math.floor(Xt/65536),Qr=Xt-xn*65536,Xt=_i+xn+65535,xn=Math.floor(Xt/65536),_i=Xt-xn*65536,Xt=wr+xn+65535,xn=Math.floor(Xt/65536),wr=Xt-xn*65536,Xt=$r+xn+65535,xn=Math.floor(Xt/65536),$r=Xt-xn*65536,Xt=Wr+xn+65535,xn=Math.floor(Xt/65536),Wr=Xt-xn*65536,Dn+=xn-1+37*(xn-1),xn=1,Xt=Dn+xn+65535,xn=Math.floor(Xt/65536),Dn=Xt-xn*65536,Xt=Fn+xn+65535,xn=Math.floor(Xt/65536),Fn=Xt-xn*65536,Xt=Kn+xn+65535,xn=Math.floor(Xt/65536),Kn=Xt-xn*65536,Xt=nr+xn+65535,xn=Math.floor(Xt/65536),nr=Xt-xn*65536,Xt=lr+xn+65535,xn=Math.floor(Xt/65536),lr=Xt-xn*65536,Xt=cr+xn+65535,xn=Math.floor(Xt/65536),cr=Xt-xn*65536,Xt=Hr+xn+65535,xn=Math.floor(Xt/65536),Hr=Xt-xn*65536,Xt=_r+xn+65535,xn=Math.floor(Xt/65536),_r=Xt-xn*65536,Xt=jr+xn+65535,xn=Math.floor(Xt/65536),jr=Xt-xn*65536,Xt=Gr+xn+65535,xn=Math.floor(Xt/65536),Gr=Xt-xn*65536,Xt=eo+xn+65535,xn=Math.floor(Xt/65536),eo=Xt-xn*65536,Xt=Qr+xn+65535,xn=Math.floor(Xt/65536),Qr=Xt-xn*65536,Xt=_i+xn+65535,xn=Math.floor(Xt/65536),_i=Xt-xn*65536,Xt=wr+xn+65535,xn=Math.floor(Xt/65536),wr=Xt-xn*65536,Xt=$r+xn+65535,xn=Math.floor(Xt/65536),$r=Xt-xn*65536,Xt=Wr+xn+65535,xn=Math.floor(Xt/65536),Wr=Xt-xn*65536,Dn+=xn-1+37*(xn-1),vn[0]=Dn,vn[1]=Fn,vn[2]=Kn,vn[3]=nr,vn[4]=lr,vn[5]=cr,vn[6]=Hr,vn[7]=_r,vn[8]=jr,vn[9]=Gr,vn[10]=eo,vn[11]=Qr,vn[12]=_i,vn[13]=wr,vn[14]=$r,vn[15]=Wr}function Yt(vn,Pn){nn(vn,Pn,Pn)}function fn(vn,Pn){var sn=nt(),Xt;for(Xt=0;Xt<16;Xt++)sn[Xt]=Pn[Xt];for(Xt=253;Xt>=0;Xt--)Yt(sn,sn),Xt!==2&&Xt!==4&&nn(sn,sn,Pn);for(Xt=0;Xt<16;Xt++)vn[Xt]=sn[Xt]}function cn(vn,Pn){var sn=nt(),Xt;for(Xt=0;Xt<16;Xt++)sn[Xt]=Pn[Xt];for(Xt=250;Xt>=0;Xt--)Yt(sn,sn),Xt!==1&&nn(sn,sn,Pn);for(Xt=0;Xt<16;Xt++)vn[Xt]=sn[Xt]}function _n(vn,Pn,sn){var Xt=new Uint8Array(32),xn=new Float64Array(80),Dn,Fn,Kn=nt(),nr=nt(),lr=nt(),cr=nt(),Hr=nt(),_r=nt();for(Fn=0;Fn<31;Fn++)Xt[Fn]=Pn[Fn];for(Xt[31]=Pn[31]&127|64,Xt[0]&=248,Ct(xn,sn),Fn=0;Fn<16;Fn++)nr[Fn]=xn[Fn],cr[Fn]=Kn[Fn]=lr[Fn]=0;for(Kn[0]=cr[0]=1,Fn=254;Fn>=0;--Fn)Dn=Xt[Fn>>>3]>>>(Fn&7)&1,Ut(Kn,nr,Dn),Ut(lr,cr,Dn),Ht(Hr,Kn,lr),Jt(Kn,Kn,lr),Ht(lr,nr,cr),Jt(nr,nr,cr),Yt(cr,Hr),Yt(_r,Kn),nn(Kn,lr,Kn),nn(lr,nr,Hr),Ht(Hr,Kn,lr),Jt(Kn,Kn,lr),Yt(nr,Kn),Jt(lr,cr,_r),nn(Kn,lr,lt),Ht(Kn,Kn,cr),nn(lr,lr,Kn),nn(Kn,cr,_r),nn(cr,nr,xn),Yt(nr,Hr),Ut(Kn,nr,Dn),Ut(lr,cr,Dn);for(Fn=0;Fn<16;Fn++)xn[Fn+16]=Kn[Fn],xn[Fn+32]=lr[Fn],xn[Fn+48]=nr[Fn],xn[Fn+64]=cr[Fn];var jr=xn.subarray(32),Gr=xn.subarray(16);return fn(jr,jr),nn(Gr,Gr,jr),Wt(vn,Gr),0}function En(vn,Pn){return _n(vn,Pn,ot)}function an(vn,Pn){return rt(Pn,32),En(vn,Pn)}function en(vn,Pn,sn){var Xt=new Uint8Array(32);return _n(Xt,sn,Pn),St(vn,it,Xt,Et)}var Tn=xt,Rn=It;function An(vn,Pn,sn,Xt,xn,Dn){var Fn=new Uint8Array(32);return en(Fn,xn,Dn),Tn(vn,Pn,sn,Xt,Fn)}function yn(vn,Pn,sn,Xt,xn,Dn){var Fn=new Uint8Array(32);return en(Fn,xn,Dn),Rn(vn,Pn,sn,Xt,Fn)}var kn=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function dn(vn,Pn,sn,Xt){for(var xn=new Int32Array(16),Dn=new Int32Array(16),Fn,Kn,nr,lr,cr,Hr,_r,jr,Gr,eo,Qr,_i,wr,$r,Wr,Br,Pr,Lr,Nr,Cr,er,ir,Sr,dr,br,Ir,ro=vn[0],ao=vn[1],mo=vn[2],fo=vn[3],Gn=vn[4],bo=vn[5],jo=vn[6],go=vn[7],vo=Pn[0],Ao=Pn[1],Mo=Pn[2],Vo=Pn[3],$o=Pn[4],Uo=Pn[5],Go=Pn[6],Xo=Pn[7],ga=0;Xt>=128;){for(Nr=0;Nr<16;Nr++)Cr=8*Nr+ga,xn[Nr]=sn[Cr+0]<<24|sn[Cr+1]<<16|sn[Cr+2]<<8|sn[Cr+3],Dn[Nr]=sn[Cr+4]<<24|sn[Cr+5]<<16|sn[Cr+6]<<8|sn[Cr+7];for(Nr=0;Nr<80;Nr++)if(Fn=ro,Kn=ao,nr=mo,lr=fo,cr=Gn,Hr=bo,_r=jo,jr=go,Gr=vo,eo=Ao,Qr=Mo,_i=Vo,wr=$o,$r=Uo,Wr=Go,Br=Xo,er=go,ir=Xo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=(Gn>>>14|$o<<32-14)^(Gn>>>18|$o<<32-18)^($o>>>41-32|Gn<<32-(41-32)),ir=($o>>>14|Gn<<32-14)^($o>>>18|Gn<<32-18)^(Gn>>>41-32|$o<<32-(41-32)),Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,er=Gn&bo^~Gn&jo,ir=$o&Uo^~$o&Go,Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,er=kn[Nr*2],ir=kn[Nr*2+1],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,er=xn[Nr%16],ir=Dn[Nr%16],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,Pr=br&65535|Ir<<16,Lr=Sr&65535|dr<<16,er=Pr,ir=Lr,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=(ro>>>28|vo<<32-28)^(vo>>>34-32|ro<<32-(34-32))^(vo>>>39-32|ro<<32-(39-32)),ir=(vo>>>28|ro<<32-28)^(ro>>>34-32|vo<<32-(34-32))^(ro>>>39-32|vo<<32-(39-32)),Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,er=ro&ao^ro&mo^ao&mo,ir=vo&Ao^vo&Mo^Ao&Mo,Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,jr=br&65535|Ir<<16,Br=Sr&65535|dr<<16,er=lr,ir=_i,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=Pr,ir=Lr,Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,lr=br&65535|Ir<<16,_i=Sr&65535|dr<<16,ao=Fn,mo=Kn,fo=nr,Gn=lr,bo=cr,jo=Hr,go=_r,ro=jr,Ao=Gr,Mo=eo,Vo=Qr,$o=_i,Uo=wr,Go=$r,Xo=Wr,vo=Br,Nr%16===15)for(Cr=0;Cr<16;Cr++)er=xn[Cr],ir=Dn[Cr],Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=xn[(Cr+9)%16],ir=Dn[(Cr+9)%16],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,Pr=xn[(Cr+1)%16],Lr=Dn[(Cr+1)%16],er=(Pr>>>1|Lr<<32-1)^(Pr>>>8|Lr<<32-8)^Pr>>>7,ir=(Lr>>>1|Pr<<32-1)^(Lr>>>8|Pr<<32-8)^(Lr>>>7|Pr<<32-7),Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,Pr=xn[(Cr+14)%16],Lr=Dn[(Cr+14)%16],er=(Pr>>>19|Lr<<32-19)^(Lr>>>61-32|Pr<<32-(61-32))^Pr>>>6,ir=(Lr>>>19|Pr<<32-19)^(Pr>>>61-32|Lr<<32-(61-32))^(Lr>>>6|Pr<<32-6),Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,xn[Cr]=br&65535|Ir<<16,Dn[Cr]=Sr&65535|dr<<16;er=ro,ir=vo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[0],ir=Pn[0],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[0]=ro=br&65535|Ir<<16,Pn[0]=vo=Sr&65535|dr<<16,er=ao,ir=Ao,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[1],ir=Pn[1],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[1]=ao=br&65535|Ir<<16,Pn[1]=Ao=Sr&65535|dr<<16,er=mo,ir=Mo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[2],ir=Pn[2],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[2]=mo=br&65535|Ir<<16,Pn[2]=Mo=Sr&65535|dr<<16,er=fo,ir=Vo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[3],ir=Pn[3],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[3]=fo=br&65535|Ir<<16,Pn[3]=Vo=Sr&65535|dr<<16,er=Gn,ir=$o,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[4],ir=Pn[4],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[4]=Gn=br&65535|Ir<<16,Pn[4]=$o=Sr&65535|dr<<16,er=bo,ir=Uo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[5],ir=Pn[5],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[5]=bo=br&65535|Ir<<16,Pn[5]=Uo=Sr&65535|dr<<16,er=jo,ir=Go,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[6],ir=Pn[6],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[6]=jo=br&65535|Ir<<16,Pn[6]=Go=Sr&65535|dr<<16,er=go,ir=Xo,Sr=ir&65535,dr=ir>>>16,br=er&65535,Ir=er>>>16,er=vn[7],ir=Pn[7],Sr+=ir&65535,dr+=ir>>>16,br+=er&65535,Ir+=er>>>16,dr+=Sr>>>16,br+=dr>>>16,Ir+=br>>>16,vn[7]=go=br&65535|Ir<<16,Pn[7]=Xo=Sr&65535|dr<<16,ga+=128,Xt-=128}return Xt}function gn(vn,Pn,sn){var Xt=new Int32Array(8),xn=new Int32Array(8),Dn=new Uint8Array(256),Fn,Kn=sn;for(Xt[0]=1779033703,Xt[1]=3144134277,Xt[2]=1013904242,Xt[3]=2773480762,Xt[4]=1359893119,Xt[5]=2600822924,Xt[6]=528734635,Xt[7]=1541459225,xn[0]=4089235720,xn[1]=2227873595,xn[2]=4271175723,xn[3]=1595750129,xn[4]=2917565137,xn[5]=725511199,xn[6]=4215389547,xn[7]=327033209,dn(Xt,xn,Pn,sn),sn%=128,Fn=0;Fn=0;--xn)Xt=sn[xn/8|0]>>(xn&7)&1,$n(vn,Pn,Xt),Cn(Pn,vn),Cn(vn,vn),$n(vn,Pn,Xt)}function Sn(vn,Pn){var sn=[nt(),nt(),nt(),nt()];Ot(sn[0],ht),Ot(sn[1],dt),Ot(sn[2],st),nn(sn[3],ht,dt),rn(vn,sn,Pn)}function Mn(vn,Pn,sn){var Xt=new Uint8Array(64),xn=[nt(),nt(),nt(),nt()],Dn;for(sn||rt(Pn,32),gn(Xt,Pn,32),Xt[0]&=248,Xt[31]&=127,Xt[31]|=64,Sn(xn,Xt),un(vn,xn),Dn=0;Dn<32;Dn++)Pn[Dn+32]=vn[Dn];return 0}var Nn=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function hn(vn,Pn){var sn,Xt,xn,Dn;for(Xt=63;Xt>=32;--Xt){for(sn=0,xn=Xt-32,Dn=Xt-12;xn>4)*Nn[xn],sn=Pn[xn]>>8,Pn[xn]&=255;for(xn=0;xn<32;xn++)Pn[xn]-=sn*Nn[xn];for(Xt=0;Xt<32;Xt++)Pn[Xt+1]+=Pn[Xt]>>8,vn[Xt]=Pn[Xt]&255}function Qt(vn){var Pn=new Float64Array(64),sn;for(sn=0;sn<64;sn++)Pn[sn]=vn[sn];for(sn=0;sn<64;sn++)vn[sn]=0;hn(vn,Pn)}function Zt(vn,Pn,sn,Xt){var xn=new Uint8Array(64),Dn=new Uint8Array(64),Fn=new Uint8Array(64),Kn,nr,lr=new Float64Array(64),cr=[nt(),nt(),nt(),nt()];gn(xn,Xt,32),xn[0]&=248,xn[31]&=127,xn[31]|=64;var Hr=sn+64;for(Kn=0;Kn>7&&Jt(vn[0],at,vn[0]),nn(vn[3],vn[0],vn[1]),0)}function On(vn,Pn,sn,Xt){var xn,Dn=new Uint8Array(32),Fn=new Uint8Array(64),Kn=[nt(),nt(),nt(),nt()],nr=[nt(),nt(),nt(),nt()];if(sn<64||wn(nr,Xt))return-1;for(xn=0;xn=0},et.sign.keyPair=function(){var vn=new Uint8Array(Rr),Pn=new Uint8Array(Xr);return Mn(vn,Pn),{publicKey:vn,secretKey:Pn}},et.sign.keyPair.fromSecretKey=function(vn){if(Or(vn),vn.length!==Xr)throw new Error("bad secret key size");for(var Pn=new Uint8Array(Rr),sn=0;sn"u"?typeof Buffer.from<"u"?(et.encodeBase64=function(rt){return Buffer.from(rt).toString("base64")},et.decodeBase64=function(rt){return nt(rt),new Uint8Array(Array.prototype.slice.call(Buffer.from(rt,"base64"),0))}):(et.encodeBase64=function(rt){return new Buffer(rt).toString("base64")},et.decodeBase64=function(rt){return nt(rt),new Uint8Array(Array.prototype.slice.call(new Buffer(rt,"base64"),0))}):(et.encodeBase64=function(rt){var it,ot=[],at=rt.length;for(it=0;itgt||gn<0)throw new RangeError(`varint ${gn} out of range`);this._grow(this._length+wt);let Cn=this._length;for(;gn>=128;)this._buf[Cn++]=gn&255|128,gn>>>=7;this._buf[Cn++]=gn|0,this._length=Cn}get bytes(){return this._buf.subarray(0,this._length)}_grow(gn){const Cn=this._buf.length;if(gn<=Cn)return;const $n=Cn*2,un=gn>$n?gn:$n,rn=new Uint8Array(un);rn.set(this._buf.subarray(0,this._length)),this._buf=rn}}const wt=5;class vt{constructor(gn){this._buf=gn,this._index=0}readByte(){if(this.length<=0)throw new RangeError("Read past end of buffer");return this._buf[this._index++]}peekByte(){if(this.length<=0)throw new RangeError("Read past end of buffer");return this._buf[this._index]}readN(gn){if(this.lengthwt||Sn===wt&&rn>1)throw new RangeError("Overflow error decoding varint");return(Cn|rn<<$n)>>>0}Cn|=(rn&127)<<$n,$n+=7}throw this._index=gn,new RangeError("Buffer too small decoding varint")}}const kt=dn=>dn!=null,St=dn=>kt(dn)?st.encode(dn):dn,Et=dn=>kt(dn)?lt.decode(dn):dn,At=dn=>nt.default.codec.utf8String.fromBits(dn);tt.base64ToBytes=function(dn){return dn=dn.replace(/-/g,"+").replace(/_/g,"/"),dn.length%4!==0&&!dn.match(/=$/)&&(dn+="=".repeat(4-dn.length%4)),it.default.decodeBase64(dn)},tt.bytesToBase64=function(dn){return it.default.encodeBase64(dn).replace(/=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")};const Tt=function(dn){return nt.default.codec.base64.toBits(it.default.encodeBase64(dn))},Mt=function(dn){return it.default.decodeBase64(nt.default.codec.base64.fromBits(dn))},Lt=function(dn){const gn=new Uint8Array(Math.ceil(dn.length/2));for(let Cn=0;Cnkt(dn)?Rt(dn,gn):"",xt=function(dn,gn){if(dn instanceof Uint8Array)return dn;if(typeof dn=="string")return St(dn);throw new TypeError(`${gn} has the wrong type; want string or Uint8Array, got ${typeof dn}.`)},It=new Uint8Array,Ot=function(dn,gn){const Cn=dn.readByte();if(Cn!==gn)throw new Error(`Unexpected field type, got ${Cn} want ${gn}`);return Cn===ut?It:dn.readN(dn.readUvarint())},zt=function(dn,gn,Cn){dn.appendByte(gn),gn!==ut&&(dn.appendUvarint(Cn.length),dn.appendBytes(Cn))},Ut=function(dn,gn){return dn.peekByte()!==gn?null:Ot(dn,gn)},Wt=function(dn,gn,Cn){jt(Cn)?dn[gn]=Et(Cn):dn[gn+"64"]=tt.bytesToBase64(Cn)},Ft=function(dn,gn){const Cn=new nt.default.misc.hmac(dn,nt.default.hash.sha256);return Cn.update(gn),Cn.digest()},Nt=function(dn,gn,Cn){const $n=Ft(dn,gn),un=Ft(dn,Cn);return Ft(dn,nt.default.bitArray.concat($n,un))},Ct=Tt(St("macaroons-key-generator")),Ht=function(dn){return Ft(Ct,dn)},Jt=function(){return rt.default.randomBytes(ct)},nn=function(dn,gn){const Cn=Mt(dn),$n=Mt(gn),un=Jt(),rn=rt.default.secretbox($n,un,Cn),Sn=new Uint8Array(un.length+rn.length);return Sn.set(un,0),Sn.set(rn,un.length),Tt(Sn)},Yt=function(dn,gn){const Cn=Mt(dn),$n=Mt(gn),un=$n.slice(0,ct),rn=$n.slice(ct);let Sn=rt.default.secretbox.open(rn,un,Cn);if(!Sn)throw new Error("decryption failed");return Tt(Sn)},fn=Tt(St("\0".repeat(32))),cn=function(dn,gn){return nt.default.bitArray.equal(dn,gn)?dn:Nt(fn,dn,gn)};class _n{constructor(gn){if(!gn)return;let{version:Cn,identifierBytes:$n,locationStr:un,caveats:rn,signatureBytes:Sn}=gn;if(Cn!==1&&Cn!==2)throw new Error(`Unexpected version ${Cn}`);if(this._version=Cn,this._locationStr=un,$n=xt($n,"Identifier"),Cn===1&&!jt($n))throw new Error("Version 1 macaroon identifier must be well-formed UTF-8");this._identifierBits=$n&&Tt($n),this._signatureBits=Sn&&Tt(xt(Sn,"Signature")),this._caveats=rn?rn.map(Mn=>{const Nn=xt(Mn.identifierBytes,"Caveat identifier");if(Cn===1&&!jt(Nn))throw new Error("Version 1 caveat identifier must be well-formed UTF-8");return{_locationStr:$t(Mn.locationStr),_identifierBits:Tt(Nn),_vidBits:Mn.vidBytes&&Tt(xt(Mn.vidBytes,"Verification ID"))}}):[]}get caveats(){return this._caveats.map(gn=>kt(gn._vidBits)?{identifier:Mt(gn._identifierBits),location:gn._locationStr,vid:Mt(gn._vidBits)}:{identifier:Mt(gn._identifierBits)})}get location(){return this._locationStr}get identifier(){return Mt(this._identifierBits)}get signature(){return Mt(this._signatureBits)}addThirdPartyCaveat(gn,Cn,$n){const un={_identifierBits:Tt(xt(Cn,"Caveat id")),_vidBits:nn(this._signatureBits,Ht(Tt(xt(gn,"Caveat root key")))),_locationStr:$t($n)};this._signatureBits=Nt(this._signatureBits,un._vidBits,un._identifierBits),this._caveats.push(un)}addFirstPartyCaveat(gn){const Cn=Tt(xt(gn,"Condition"));this._caveats.push({_identifierBits:Cn}),this._signatureBits=Ft(this._signatureBits,Cn)}bindToRoot(gn){const Cn=Tt(xt(gn,"Primary macaroon signature"));this._signatureBits=cn(Cn,this._signatureBits)}clone(){const gn=new _n;return gn._version=this._version,gn._signatureBits=this._signatureBits,gn._identifierBits=this._identifierBits,gn._locationStr=this._locationStr,gn._caveats=this._caveats.slice(),gn}verify(gn,Cn,$n=[]){const un=Ht(Tt(xt(gn,"Root key"))),rn=$n.map(Sn=>0);this._verify(this._signatureBits,un,Cn,$n,rn),$n.forEach((Sn,Mn)=>{if(rn[Mn]===0)throw new Error(`discharge macaroon ${yt(Sn.identifier)} was not used`);if(rn[Mn]!==1)throw new Error(`discharge macaroon ${yt(Sn.identifier)} was used more than once`)})}_verify(gn,Cn,$n,un,rn){let Sn=Ft(Cn,this._identifierBits);this._caveats.forEach(Nn=>{if(Nn._vidBits){const hn=Yt(Sn,Nn._vidBits);let Qt=!1,Zt,wn;for(Zt=0;Zt1)throw new Error(`discharge macaroon ${yt(wn.identifier)} was used more than once`);wn._verify(gn,hn,$n,un,rn);break}if(!Qt)throw new Error(`cannot find discharge macaroon for caveat ${yt(Nn._identifierBits)}`);Sn=Nt(Sn,Nn._vidBits,Nn._identifierBits)}else{const hn=At(Nn._identifierBits),Qt=$n(hn);if(Qt)throw new Error(`caveat check failed (${hn}): ${Qt}`);Sn=Ft(Sn,Nn._identifierBits)}});const Mn=cn(gn,Sn);if(!nt.default.bitArray.equal(Mn,this._signatureBits))throw new Error("signature mismatch after caveat verification")}exportJSON(){switch(this._version){case 1:return this._exportAsJSONObjectV1();case 2:return this._exportAsJSONObjectV2();default:throw new Error(`unexpected macaroon version ${this._version}`)}}_exportAsJSONObjectV1(){const gn={identifier:At(this._identifierBits),signature:nt.default.codec.hex.fromBits(this._signatureBits)};return this._locationStr&&(gn.location=this._locationStr),this._caveats.length>0&&(gn.caveats=this._caveats.map(Cn=>{const $n={cid:At(Cn._identifierBits)};return Cn._vidBits&&($n.vid=nt.default.codec.base64.fromBits(Cn._vidBits,!0,!0),$n.cl=Cn._locationStr),$n})),gn}_exportAsJSONObjectV2(){const gn={v:2};return Wt(gn,"s",Mt(this._signatureBits)),Wt(gn,"i",Mt(this._identifierBits)),this._locationStr&&(gn.l=this._locationStr),this._caveats&&this._caveats.length>0&&(gn.c=this._caveats.map(Cn=>{const $n={};return Wt($n,"i",Mt(Cn._identifierBits)),Cn._vidBits&&(Wt($n,"v",Mt(Cn._vidBits)),$n.l=Cn._locationStr),$n})),gn}_exportBinaryV1(){throw new Error("V1 binary export not supported")}_exportBinaryV2(){const gn=new bt(200);return gn.appendByte(2),this._locationStr&&zt(gn,ht,St(this._locationStr)),zt(gn,dt,Mt(this._identifierBits)),zt(gn,ut),this._caveats.forEach(function(Cn){Cn._locationStr&&zt(gn,ht,St(Cn._locationStr)),zt(gn,dt,Mt(Cn._identifierBits)),Cn._vidBits&&zt(gn,pt,Mt(Cn._vidBits)),zt(gn,ut)}),zt(gn,ut),zt(gn,mt,Mt(this._signatureBits)),gn.bytes}exportBinary(){switch(this._version){case 1:return this._exportBinaryV1();case 2:return this._exportBinaryV2();default:throw new Error(`unexpected macaroon version ${this._version}`)}}}tt.importMacaroon=function(dn){if(typeof dn=="string"&&(dn=tt.base64ToBytes(dn)),dn instanceof Uint8Array){const gn=new vt(dn),Cn=kn(gn);if(gn.length!==0)throw new TypeError("extra data found at end of serialized macaroon");return Cn}if(Array.isArray(dn))throw new TypeError("cannot import an array of macaroons as a single macaroon");return En(dn)},tt.importMacaroons=function(dn){if(typeof dn=="string"&&(dn=tt.base64ToBytes(dn)),dn instanceof Uint8Array){if(dn.length===0)throw new TypeError("empty macaroon data");const gn=new vt(dn),Cn=[];do Cn.push(kn(gn));while(gn.length>0);return Cn}return Array.isArray(dn)?dn.map(gn=>En(gn)):[En(dn)]};const En=function(dn){return an(dn)?en(dn):Tn(dn)};function an(dn){return kt(dn.signature)}const en=function(dn){const gn=dn.caveats&&dn.caveats.map(Cn=>{const $n={identifierBytes:St(Rt(Cn.cid,"Caveat id")),locationStr:$t(Cn.cl,"Caveat location")};return Cn.vid&&($n.vidBytes=tt.base64ToBytes(Rt(Cn.vid,"Caveat verification id"))),$n});return new _n({version:1,locationStr:$t(dn.location,"Macaroon location"),identifierBytes:St(Rt(dn.identifier,"Macaroon identifier")),caveats:gn,signatureBytes:Lt(dn.signature)})},Tn=function(dn){if(dn.v!==2&&dn.v!==void 0)throw new Error(`Unsupported macaroon version ${dn.v}`);const gn={version:2,signatureBytes:Rn(dn,"s",!0),locationStr:Et(Rn(dn,"l",!1)),identifierBytes:Rn(dn,"i",!0)};if(dn.c){if(!Array.isArray(dn.c))throw new Error("caveats field does not hold an array");gn.caveats=dn.c.map(Cn=>({identifierBytes:Rn(Cn,"i",!0),locationStr:Et(Rn(Cn,"l")),vidBytes:Rn(Cn,"v",!1)}))}return new _n(gn)};function Rn(dn,gn,Cn){if(dn.hasOwnProperty(gn))return St(dn[gn]);const $n=gn+"64";if(dn.hasOwnProperty($n))return tt.base64ToBytes(dn[$n]);if(Cn)throw new Error("Expected key: "+gn);return null}const An=function(dn){const gn=dn.readByte();if(gn!==2)throw new Error(`Only version 2 is supported, found version ${gn}`);const Cn=Et(Ut(dn,ht)),$n=Ot(dn,dt),un=[];for(Ot(dn,ut);!Ut(dn,ut);){const Sn={locationStr:Et(Ut(dn,ht)),identifierBytes:Ot(dn,dt),vidBytes:Ut(dn,pt)};Ot(dn,ut),un.push(Sn)}const rn=Ot(dn,mt);if(dn.length!==0)throw new Error("unexpected extra data at end of macaroon");return new _n({version:gn,locationStr:Cn,identifierBytes:$n,signatureBytes:rn,caveats:un})},yn=function(dn){return 48<=dn&&dn<=58||97<=dn&&dn<=102},kn=function(dn){if(dn.length===0)throw new Error("Empty macaroon data");const gn=dn.peekByte();if(gn===2)return An(dn);throw yn(gn)?new Error("Version 1 binary format not supported"):new Error("Cannot determine data format of binary-encoded macaroon")};tt.newMacaroon=function({identifier:dn,location:gn,rootKey:Cn,version:$n}){const un=xt(dn,"Macaroon identifier"),rn=xt(Cn,"Macaroon root key");return new _n({version:$n===void 0?2:$n,identifierBytes:un,locationStr:$t(gn,"Macaroon location"),signatureBytes:Mt(Ft(Ht(Tt(rn)),Tt(un)))})},tt.dischargeMacaroon=function(dn,gn,Cn,$n){const un=dn.signature,rn=[dn];let Sn=0,Mn=!1;const Nn=dn.location,hn=wn=>{Mn||(wn.bindToRoot(un),rn.push(wn),Sn--,Zt(wn))},Qt=wn=>{Mn||($n(wn),Mn=!0)},Zt=wn=>{let On,jn;for(jn=0;jntt.LATEST_VERSION)throw new ut(mt.version);if(mt.version&&(this.version=mt.version),ot(typeof this.version=="number","Identifier version must be a number"),ot(mt.paymentHash.length===32,`Expected 32-byte hash, instead got ${mt.paymentHash.length}`),this.paymentHash=mt.paymentHash,mt.tokenId)this.tokenId=mt.tokenId;else{const gt=(0,lt.default)();this.tokenId=st.default.createHash("sha256").update(Buffer.from(gt)).digest()}return ot(this.tokenId.length===tt.TOKEN_ID_SIZE,"Token Id of unexpected size"),this}toString(){return this.toHex()}static fromString(mt){try{return new this().fromHex(mt)}catch{return new this().fromBase64(mt)}}write(mt){switch(mt.writeU16BE(this.version),this.version){case 0:return mt.writeHash(this.paymentHash),ot(Buffer.isBuffer(this.tokenId)&&this.tokenId.length===tt.TOKEN_ID_SIZE,`Token ID must be ${tt.TOKEN_ID_SIZE}-byte hash`),mt.writeBytes(this.tokenId),this;default:throw new ut(this.version)}}read(mt){switch(this.version=mt.readU16BE(),this.version){case 0:return this.paymentHash=mt.readHash(),this.tokenId=mt.readBytes(tt.TOKEN_ID_SIZE),this;default:throw new ut(this.version)}}}tt.Identifier=ht;const dt=pt=>{const mt=ct.importMacaroon(pt);let gt=mt._exportAsJSONObjectV2().i;if(gt==null&&(gt=mt._exportAsJSONObjectV2().i64,gt==null))throw new Error("Problem parsing macaroon identifier");return gt};tt.decodeIdentifierFromMacaroon=dt})(identifier);var caveat={};/*! * assert.js - assertions for javascript * Copyright (c) 2018, Christopher Jeffrey (MIT License). * https://github.com/chjj/bsert */class AssertionError extends Error{constructor(et){typeof et=="string"&&(et={message:et}),(et===null||typeof et!="object")&&(et={});let nt=null,rt="fail",it=!!et.generatedMessage;if(et.message!=null&&(nt=toString$6(et.message)),typeof et.operator=="string"&&(rt=et.operator),nt==null){if(rt==="fail")nt="Assertion failed.";else{const at=stringify$2(et.actual),st=stringify$2(et.expected);nt=`${at} ${rt} ${st}`}it=!0}super(nt);let ot=this.constructor;typeof et.stackStartFunction=="function"?ot=et.stackStartFunction:typeof et.stackStartFn=="function"&&(ot=et.stackStartFn),this.type="AssertionError",this.name="AssertionError [ERR_ASSERTION]",this.code="ERR_ASSERTION",this.generatedMessage=it,this.actual=et.actual,this.expected=et.expected,this.operator=rt,Error.captureStackTrace&&Error.captureStackTrace(this,ot)}}function assert$5(tt,et){if(!tt){let nt=!1;if(arguments.length===0)et="No value argument passed to `assert()`.",nt=!0;else if(et==null)et="Assertion failed.",nt=!0;else if(isError(et))throw et;throw new AssertionError({message:et,actual:tt,expected:!0,operator:"==",generatedMessage:nt,stackStartFn:assert$5})}}function equal$1(tt,et,nt){if(!Object.is(tt,et))throw isError(nt)?nt:new AssertionError({message:nt,actual:tt,expected:et,operator:"strictEqual",stackStartFn:equal$1})}function notEqual(tt,et,nt){if(Object.is(tt,et))throw isError(nt)?nt:new AssertionError({message:nt,actual:tt,expected:et,operator:"notStrictEqual",stackStartFn:notEqual})}function fail(tt){let et=!1;throw isError(tt)?tt:(tt==null&&(tt="Assertion failed.",et=!0),new AssertionError({message:tt,actual:!1,expected:!0,operator:"fail",generatedMessage:et,stackStartFn:fail}))}function throws(tt,et,nt){typeof et=="string"&&(nt=et,et=void 0);let rt=!1,it=null;enforce(typeof tt=="function","func","function");try{tt()}catch(ot){rt=!0,it=ot}if(!rt){let ot=!1;throw nt==null&&(nt="Missing expected exception.",ot=!0),new AssertionError({message:nt,actual:void 0,expected:et,operator:"throws",generatedMessage:ot,stackStartFn:throws})}if(!testError(it,et,nt,throws))throw it}function doesNotThrow(tt,et,nt){typeof et=="string"&&(nt=et,et=void 0);let rt=!1,it=null;enforce(typeof tt=="function","func","function");try{tt()}catch(ot){rt=!0,it=ot}if(rt){if(testError(it,et,nt,doesNotThrow)){let ot=!1;throw nt==null&&(nt="Got unwanted exception.",ot=!0),new AssertionError({message:nt,actual:it,expected:et,operator:"doesNotThrow",generatedMessage:ot,stackStartFn:doesNotThrow})}throw it}}async function rejects(tt,et,nt){typeof et=="string"&&(nt=et,et=void 0);let rt=!1,it=null;typeof tt!="function"&&enforce(isPromise$1(tt),"func","promise");try{isPromise$1(tt)?await tt:await tt()}catch(ot){rt=!0,it=ot}if(!rt){let ot=!1;throw nt==null&&(nt="Missing expected rejection.",ot=!0),new AssertionError({message:nt,actual:void 0,expected:et,operator:"rejects",generatedMessage:ot,stackStartFn:rejects})}if(!testError(it,et,nt,rejects))throw it}async function doesNotReject(tt,et,nt){typeof et=="string"&&(nt=et,et=void 0);let rt=!1,it=null;typeof tt!="function"&&enforce(isPromise$1(tt),"func","promise");try{isPromise$1(tt)?await tt:await tt()}catch(ot){rt=!0,it=ot}if(rt){if(testError(it,et,nt,doesNotReject)){let ot=!1;throw nt==null&&(nt="Got unwanted rejection.",ot=!0),new AssertionError({message:nt,actual:void 0,expected:et,operator:"doesNotReject",generatedMessage:ot,stackStartFn:doesNotReject})}throw it}}function ifError(tt){if(tt!=null){let et="ifError got unwanted exception: ";throw typeof tt=="object"&&typeof tt.message=="string"?tt.message.length===0&&tt.constructor?et+=tt.constructor.name:et+=tt.message:et+=stringify$2(tt),new AssertionError({message:et,actual:tt,expected:null,operator:"ifError",generatedMessage:!0,stackStartFn:ifError})}}function deepEqual$1(tt,et,nt){if(!isDeepEqual(tt,et,!1))throw isError(nt)?nt:new AssertionError({message:nt,actual:tt,expected:et,operator:"deepStrictEqual",stackStartFn:deepEqual$1})}function notDeepEqual(tt,et,nt){if(isDeepEqual(tt,et,!0))throw isError(nt)?nt:new AssertionError({message:nt,actual:tt,expected:et,operator:"notDeepStrictEqual",stackStartFn:notDeepEqual})}function bufferEqual(tt,et,nt,rt){if(isEncoding(nt)||(rt=nt,nt=null),nt==null&&(nt="hex"),et=bufferize(tt,et,nt),enforce(isBuffer$4(tt),"actual","buffer"),enforce(isBuffer$4(et),"expected","buffer"),tt!==et&&!tt.equals(et))throw isError(rt)?rt:new AssertionError({message:rt,actual:tt.toString(nt),expected:et.toString(nt),operator:"bufferEqual",stackStartFn:bufferEqual})}function notBufferEqual(tt,et,nt,rt){if(isEncoding(nt)||(rt=nt,nt=null),nt==null&&(nt="hex"),et=bufferize(tt,et,nt),enforce(isBuffer$4(tt),"actual","buffer"),enforce(isBuffer$4(et),"expected","buffer"),tt===et||tt.equals(et))throw isError(rt)?rt:new AssertionError({message:rt,actual:tt.toString(nt),expected:et.toString(nt),operator:"notBufferEqual",stackStartFn:notBufferEqual})}function enforce(tt,et,nt){if(!tt){let rt;et==null?rt="Invalid type for parameter.":nt==null?rt=`Invalid type for "${et}".`:rt=`"${et}" must be a(n) ${nt}.`;const it=new TypeError(rt);throw Error.captureStackTrace&&Error.captureStackTrace(it,enforce),it}}function range$7(tt,et){if(!tt){const nt=et!=null?`"${et}" is out of range.`:"Parameter is out of range.",rt=new RangeError(nt);throw Error.captureStackTrace&&Error.captureStackTrace(rt,range$7),rt}}function stringify$2(tt){switch(typeof tt){case"undefined":return"undefined";case"object":return tt===null?"null":`[${objectName(tt)}]`;case"boolean":return`${tt}`;case"number":return`${tt}`;case"string":return tt.length>80&&(tt=`${tt.substring(0,77)}...`),JSON.stringify(tt);case"symbol":return tryString(tt);case"function":return`[${funcName(tt)}]`;case"bigint":return`${tt}n`;default:return`[${typeof tt}]`}}function toString$6(tt){return typeof tt=="string"?tt:isError(tt)?tryString(tt):stringify$2(tt)}function tryString(tt){try{return String(tt)}catch{return"Object"}}function testError(tt,et,nt,rt){if(et==null)return!0;if(isRegExp(et))return et.test(tt);if(typeof et!="function"){if(rt===doesNotThrow||rt===doesNotReject)throw new TypeError('"expected" must not be an object.');if(typeof et!="object")throw new TypeError('"expected" must be an object.');let it=!1;if(nt==null&&(nt=`Missing expected ${rt===rejects?"rejection":"exception"}.`,it=!0),tt==null||typeof tt!="object")throw new AssertionError({actual:tt,expected:et,message:nt,operator:rt.name,generatedMessage:it,stackStartFn:rt});const ot=Object.keys(et);if(isError(et)&&ot.push("name","message"),ot.length===0)throw new TypeError('"expected" may not be an empty object.');for(const at of ot){const st=et[at],lt=tt[at];if(!(typeof lt=="string"&&isRegExp(st)&&st.test(lt))&&!(at in tt&&isDeepEqual(lt,st,!1)))throw new AssertionError({actual:tt,expected:et,message:nt,operator:rt.name,generatedMessage:it,stackStartFn:rt})}return!0}return et.prototype!==void 0&&tt instanceof et?!0:Error.isPrototypeOf(et)?!1:et.call({},tt)===!0}function isDeepEqual(tt,et,nt){try{return compare(tt,et,null)}catch{return nt}}function compare(tt,et,nt){if(Object.is(tt,et))return!0;if(!isObject$e(tt)||!isObject$e(et)||objectString(tt)!==objectString(et)||Object.getPrototypeOf(tt)!==Object.getPrototypeOf(et))return!1;if(isBuffer$4(tt)&&isBuffer$4(et))return tt.equals(et);if(isDate$1(tt))return Object.is(tt.getTime(),et.getTime());if(isRegExp(tt))return tt.source===et.source&&tt.global===et.global&&tt.multiline===et.multiline&&tt.lastIndex===et.lastIndex&&tt.ignoreCase===et.ignoreCase;if(isError(tt)&&tt.message!==et.message)return!1;if(isArrayBuffer(tt)&&(tt=new Uint8Array(tt),et=new Uint8Array(et)),isView$2(tt)&&!isBuffer$4(tt)){if(isBuffer$4(et))return!1;const it=new Uint8Array(tt.buffer),ot=new Uint8Array(et.buffer);if(it.length!==ot.length)return!1;for(let at=0;at>>1?null:it}return et}assert$5.AssertionError=AssertionError;assert$5.assert=assert$5;assert$5.strict=assert$5;assert$5.ok=assert$5;assert$5.equal=equal$1;assert$5.notEqual=notEqual;assert$5.strictEqual=equal$1;assert$5.notStrictEqual=notEqual;assert$5.fail=fail;assert$5.throws=throws;assert$5.doesNotThrow=doesNotThrow;assert$5.rejects=rejects;assert$5.doesNotReject=doesNotReject;assert$5.ifError=ifError;assert$5.deepEqual=deepEqual$1;assert$5.notDeepEqual=notDeepEqual;assert$5.deepStrictEqual=deepEqual$1;assert$5.notDeepStrictEqual=notDeepEqual;assert$5.bufferEqual=bufferEqual;assert$5.notBufferEqual=notBufferEqual;assert$5.enforce=enforce;assert$5.range=range$7;var assert_1=assert$5,__createBinding$2=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(tt,et,nt,rt){rt===void 0&&(rt=nt);var it=Object.getOwnPropertyDescriptor(et,nt);(!it||("get"in it?!et.__esModule:it.writable||it.configurable))&&(it={enumerable:!0,get:function(){return et[nt]}}),Object.defineProperty(tt,rt,it)}:function(tt,et,nt,rt){rt===void 0&&(rt=nt),tt[rt]=et[nt]}),__setModuleDefault$2=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(tt,et){Object.defineProperty(tt,"default",{enumerable:!0,value:et})}:function(tt,et){tt.default=et}),__importStar$2=commonjsGlobal&&commonjsGlobal.__importStar||function(tt){if(tt&&tt.__esModule)return tt;var et={};if(tt!=null)for(var nt in tt)nt!=="default"&&Object.prototype.hasOwnProperty.call(tt,nt)&&__createBinding$2(et,tt,nt);return __setModuleDefault$2(et,tt),et},__importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(tt){return tt&&tt.__esModule?tt:{default:tt}};Object.defineProperty(caveat,"__esModule",{value:!0});caveat.verifyCaveats=caveat.hasCaveat=caveat.Caveat=caveat.ErrInvalidCaveat=void 0;const bsert_1=__importDefault(assert_1),Macaroon$1=__importStar$2(macaroon$1);class ErrInvalidCaveat extends Error{constructor(...et){super(...et),Error.captureStackTrace&&Error.captureStackTrace(this,ErrInvalidCaveat),this.name="ErrInvalidCaveat",this.message='Caveat must be of the form "condition[<,=,>]value"'}}caveat.ErrInvalidCaveat=ErrInvalidCaveat;const validComp=new Set(["<",">","="]);class Caveat{constructor(et){this.condition="",this.value="",this.comp="=",et&&this.fromOptions(et)}fromOptions(et){if((0,bsert_1.default)(et,"Data required to create new caveat"),(0,bsert_1.default)(typeof et.condition=="string"&&et.condition.length,"Require a condition"),this.condition=et.condition,et.value.toString(),this.value=et.value,et.comp){if(!validComp.has(et.comp))throw new ErrInvalidCaveat;this.comp=et.comp}return this}encode(){return`${this.condition}${this.comp}${this.value}`}static decode(et){let nt;for(let at=0;at{try{if(at.i!=null){const st=Caveat.decode(at.i);it===st.condition&&(ot=st.value)}}catch{}}),ot||!1}caveat.hasCaveat=hasCaveat;function verifyCaveats(tt,et,nt={}){if(et)Array.isArray(et)||(et=[et]);else return!0;const rt=new Map;for(const ot of et)rt.set(ot.condition,ot);const it=new Map;for(const ot of tt){const at=ot.condition;if(!rt.has(at))continue;it.has(at)||it.set(at,[]);const st=it.get(at);st.push(ot),it.set(at,st)}for(const[ot,at]of it){const st=rt.get(ot);for(let lt=0;lt>25;return(tt&33554431)<<5^-(et>>0&1)&996825010^-(et>>1&1)&642813549^-(et>>2&1)&513874426^-(et>>3&1)&1027748829^-(et>>4&1)&705979059}function prefixChk$1(tt){for(var et=1,nt=0;nt126)return"Invalid prefix ("+tt+")";et=polymodStep$1(et)^rt>>5}for(et=polymodStep$1(et),nt=0;ntnt)throw new TypeError("Exceeds length limit");tt=tt.toLowerCase();var rt=prefixChk$1(tt);if(typeof rt=="string")throw new Error(rt);for(var it=tt+"1",ot=0;ot>5)throw new Error("Non 5-bit word");rt=polymodStep$1(rt)^at,it+=ALPHABET$2.charAt(at)}for(ot=0;ot<6;++ot)rt=polymodStep$1(rt);for(rt^=1,ot=0;ot<6;++ot){var st=rt>>(5-ot)*5&31;it+=ALPHABET$2.charAt(st)}return it}function __decode(tt,et){if(et=et||90,tt.length<8)return tt+" too short";if(tt.length>et)return"Exceeds length limit";var nt=tt.toLowerCase(),rt=tt.toUpperCase();if(tt!==nt&&tt!==rt)return"Mixed-case string "+tt;tt=nt;var it=tt.lastIndexOf("1");if(it===-1)return"No separator character for "+tt;if(it===0)return"Missing prefix for "+tt;var ot=tt.slice(0,it),at=tt.slice(it+1);if(at.length<6)return"Data too short";var st=prefixChk$1(ot);if(typeof st=="string")return st;for(var lt=[],ct=0;ct=at.length)&<.push(ht)}return st!==1?"Invalid checksum for "+tt:{prefix:ot,words:lt}}function decodeUnsafe(){var tt=__decode.apply(null,arguments);if(typeof tt=="object")return tt}function decode$n(tt){var et=__decode.apply(null,arguments);if(typeof et=="object")return et;throw new Error(et)}function convert$5(tt,et,nt,rt){for(var it=0,ot=0,at=(1<=nt;)ot-=nt,st.push(it>>ot&at);if(rt)ot>0&&st.push(it<=et)return"Excess padding";if(it<new Uint8Array(nt),et){return typeof tt=="function"&&(tt=tt(et)),isUint8Array("output",tt,et),tt}function toTypeString(tt){return Object.prototype.toString.call(tt).slice(8,-1)}var lib$3=tt=>({contextRandomize(et){switch(assert$4(et===null||et instanceof Uint8Array,"Expected seed to be an Uint8Array or null"),et!==null&&isUint8Array("seed",et,32),tt.contextRandomize(et)){case 1:throw new Error(errors$1.CONTEXT_RANDOMIZE_UNKNOW)}},privateKeyVerify(et){return isUint8Array("private key",et,32),tt.privateKeyVerify(et)===0},privateKeyNegate(et){switch(isUint8Array("private key",et,32),tt.privateKeyNegate(et)){case 0:return et;case 1:throw new Error(errors$1.IMPOSSIBLE_CASE)}},privateKeyTweakAdd(et,nt){switch(isUint8Array("private key",et,32),isUint8Array("tweak",nt,32),tt.privateKeyTweakAdd(et,nt)){case 0:return et;case 1:throw new Error(errors$1.TWEAK_ADD)}},privateKeyTweakMul(et,nt){switch(isUint8Array("private key",et,32),isUint8Array("tweak",nt,32),tt.privateKeyTweakMul(et,nt)){case 0:return et;case 1:throw new Error(errors$1.TWEAK_MUL)}},publicKeyVerify(et){return isUint8Array("public key",et,[33,65]),tt.publicKeyVerify(et)===0},publicKeyCreate(et,nt=!0,rt){switch(isUint8Array("private key",et,32),isCompressed(nt),rt=getAssertedOutput(rt,nt?33:65),tt.publicKeyCreate(rt,et)){case 0:return rt;case 1:throw new Error(errors$1.SECKEY_INVALID);case 2:throw new Error(errors$1.PUBKEY_SERIALIZE)}},publicKeyConvert(et,nt=!0,rt){switch(isUint8Array("public key",et,[33,65]),isCompressed(nt),rt=getAssertedOutput(rt,nt?33:65),tt.publicKeyConvert(rt,et)){case 0:return rt;case 1:throw new Error(errors$1.PUBKEY_PARSE);case 2:throw new Error(errors$1.PUBKEY_SERIALIZE)}},publicKeyNegate(et,nt=!0,rt){switch(isUint8Array("public key",et,[33,65]),isCompressed(nt),rt=getAssertedOutput(rt,nt?33:65),tt.publicKeyNegate(rt,et)){case 0:return rt;case 1:throw new Error(errors$1.PUBKEY_PARSE);case 2:throw new Error(errors$1.IMPOSSIBLE_CASE);case 3:throw new Error(errors$1.PUBKEY_SERIALIZE)}},publicKeyCombine(et,nt=!0,rt){assert$4(Array.isArray(et),"Expected public keys to be an Array"),assert$4(et.length>0,"Expected public keys array will have more than zero items");for(const it of et)isUint8Array("public key",it,[33,65]);switch(isCompressed(nt),rt=getAssertedOutput(rt,nt?33:65),tt.publicKeyCombine(rt,et)){case 0:return rt;case 1:throw new Error(errors$1.PUBKEY_PARSE);case 2:throw new Error(errors$1.PUBKEY_COMBINE);case 3:throw new Error(errors$1.PUBKEY_SERIALIZE)}},publicKeyTweakAdd(et,nt,rt=!0,it){switch(isUint8Array("public key",et,[33,65]),isUint8Array("tweak",nt,32),isCompressed(rt),it=getAssertedOutput(it,rt?33:65),tt.publicKeyTweakAdd(it,et,nt)){case 0:return it;case 1:throw new Error(errors$1.PUBKEY_PARSE);case 2:throw new Error(errors$1.TWEAK_ADD)}},publicKeyTweakMul(et,nt,rt=!0,it){switch(isUint8Array("public key",et,[33,65]),isUint8Array("tweak",nt,32),isCompressed(rt),it=getAssertedOutput(it,rt?33:65),tt.publicKeyTweakMul(it,et,nt)){case 0:return it;case 1:throw new Error(errors$1.PUBKEY_PARSE);case 2:throw new Error(errors$1.TWEAK_MUL)}},signatureNormalize(et){switch(isUint8Array("signature",et,64),tt.signatureNormalize(et)){case 0:return et;case 1:throw new Error(errors$1.SIG_PARSE)}},signatureExport(et,nt){isUint8Array("signature",et,64),nt=getAssertedOutput(nt,72);const rt={output:nt,outputlen:72};switch(tt.signatureExport(rt,et)){case 0:return nt.slice(0,rt.outputlen);case 1:throw new Error(errors$1.SIG_PARSE);case 2:throw new Error(errors$1.IMPOSSIBLE_CASE)}},signatureImport(et,nt){switch(isUint8Array("signature",et),nt=getAssertedOutput(nt,64),tt.signatureImport(nt,et)){case 0:return nt;case 1:throw new Error(errors$1.SIG_PARSE);case 2:throw new Error(errors$1.IMPOSSIBLE_CASE)}},ecdsaSign(et,nt,rt={},it){isUint8Array("message",et,32),isUint8Array("private key",nt,32),assert$4(toTypeString(rt)==="Object","Expected options to be an Object"),rt.data!==void 0&&isUint8Array("options.data",rt.data),rt.noncefn!==void 0&&assert$4(toTypeString(rt.noncefn)==="Function","Expected options.noncefn to be a Function"),it=getAssertedOutput(it,64);const ot={signature:it,recid:null};switch(tt.ecdsaSign(ot,et,nt,rt.data,rt.noncefn)){case 0:return ot;case 1:throw new Error(errors$1.SIGN);case 2:throw new Error(errors$1.IMPOSSIBLE_CASE)}},ecdsaVerify(et,nt,rt){switch(isUint8Array("signature",et,64),isUint8Array("message",nt,32),isUint8Array("public key",rt,[33,65]),tt.ecdsaVerify(et,nt,rt)){case 0:return!0;case 3:return!1;case 1:throw new Error(errors$1.SIG_PARSE);case 2:throw new Error(errors$1.PUBKEY_PARSE)}},ecdsaRecover(et,nt,rt,it=!0,ot){switch(isUint8Array("signature",et,64),assert$4(toTypeString(nt)==="Number"&&nt>=0&&nt<=3,"Expected recovery id to be a Number within interval [0, 3]"),isUint8Array("message",rt,32),isCompressed(it),ot=getAssertedOutput(ot,it?33:65),tt.ecdsaRecover(ot,et,nt,rt)){case 0:return ot;case 1:throw new Error(errors$1.SIG_PARSE);case 2:throw new Error(errors$1.RECOVER);case 3:throw new Error(errors$1.IMPOSSIBLE_CASE)}},ecdh(et,nt,rt={},it){switch(isUint8Array("public key",et,[33,65]),isUint8Array("private key",nt,32),assert$4(toTypeString(rt)==="Object","Expected options to be an Object"),rt.data!==void 0&&isUint8Array("options.data",rt.data),rt.hashfn!==void 0?(assert$4(toTypeString(rt.hashfn)==="Function","Expected options.hashfn to be a Function"),rt.xbuf!==void 0&&isUint8Array("options.xbuf",rt.xbuf,32),rt.ybuf!==void 0&&isUint8Array("options.ybuf",rt.ybuf,32),isUint8Array("output",it)):it=getAssertedOutput(it,32),tt.ecdh(it,et,nt,rt.data,rt.hashfn,rt.xbuf,rt.ybuf)){case 0:return it;case 1:throw new Error(errors$1.PUBKEY_PARSE);case 2:throw new Error(errors$1.ECDH)}}});const EC=requireElliptic().ec,ec=new EC("secp256k1"),ecparams=ec.curve,BN$1=ecparams.n.constructor;function loadCompressedPublicKey(tt,et){let nt=new BN$1(et);if(nt.cmp(ecparams.p)>=0)return null;nt=nt.toRed(ecparams.red);let rt=nt.redSqr().redIMul(nt).redIAdd(ecparams.b).redSqrt();return tt===3!==rt.isOdd()&&(rt=rt.redNeg()),ec.keyPair({pub:{x:nt,y:rt}})}function loadUncompressedPublicKey(tt,et,nt){let rt=new BN$1(et),it=new BN$1(nt);if(rt.cmp(ecparams.p)>=0||it.cmp(ecparams.p)>=0||(rt=rt.toRed(ecparams.red),it=it.toRed(ecparams.red),(tt===6||tt===7)&&it.isOdd()!==(tt===7)))return null;const ot=rt.redSqr().redIMul(rt);return it.redSqr().redISub(ot.redIAdd(ecparams.b)).isZero()?ec.keyPair({pub:{x:rt,y:it}}):null}function loadPublicKey(tt){const et=tt[0];switch(et){case 2:case 3:return tt.length!==33?null:loadCompressedPublicKey(et,tt.subarray(1,33));case 4:case 6:case 7:return tt.length!==65?null:loadUncompressedPublicKey(et,tt.subarray(1,33),tt.subarray(33,65));default:return null}}function savePublicKey(tt,et){const nt=et.encode(null,tt.length===33);for(let rt=0;rt=0||(nt.iadd(new BN$1(tt)),nt.cmp(ecparams.n)>=0&&nt.isub(ecparams.n),nt.isZero()))return 1;const rt=nt.toArrayLike(Uint8Array,"be",32);return tt.set(rt),0},privateKeyTweakMul(tt,et){let nt=new BN$1(et);if(nt.cmp(ecparams.n)>=0||nt.isZero())return 1;nt.imul(new BN$1(tt)),nt.cmp(ecparams.n)>=0&&(nt=nt.umod(ecparams.n));const rt=nt.toArrayLike(Uint8Array,"be",32);return tt.set(rt),0},publicKeyVerify(tt){return loadPublicKey(tt)===null?1:0},publicKeyCreate(tt,et){const nt=new BN$1(et);if(nt.cmp(ecparams.n)>=0||nt.isZero())return 1;const rt=ec.keyFromPrivate(et).getPublic();return savePublicKey(tt,rt),0},publicKeyConvert(tt,et){const nt=loadPublicKey(et);if(nt===null)return 1;const rt=nt.getPublic();return savePublicKey(tt,rt),0},publicKeyNegate(tt,et){const nt=loadPublicKey(et);if(nt===null)return 1;const rt=nt.getPublic();return rt.y=rt.y.redNeg(),savePublicKey(tt,rt),0},publicKeyCombine(tt,et){const nt=new Array(et.length);for(let it=0;it=0)return 2;const it=rt.getPublic().add(ecparams.g.mul(nt));return it.isInfinity()?2:(savePublicKey(tt,it),0)},publicKeyTweakMul(tt,et,nt){const rt=loadPublicKey(et);if(rt===null)return 1;if(nt=new BN$1(nt),nt.cmp(ecparams.n)>=0||nt.isZero())return 2;const it=rt.getPublic().mul(nt);return savePublicKey(tt,it),0},signatureNormalize(tt){const et=new BN$1(tt.subarray(0,32)),nt=new BN$1(tt.subarray(32,64));return et.cmp(ecparams.n)>=0||nt.cmp(ecparams.n)>=0?1:(nt.cmp(ec.nh)===1&&tt.set(ecparams.n.sub(nt).toArrayLike(Uint8Array,"be",32),32),0)},signatureExport(tt,et){const nt=et.subarray(0,32),rt=et.subarray(32,64);if(new BN$1(nt).cmp(ecparams.n)>=0||new BN$1(rt).cmp(ecparams.n)>=0)return 1;const{output:it}=tt;let ot=it.subarray(4,4+33);ot[0]=0,ot.set(nt,1);let at=33,st=0;for(;at>1&&ot[st]===0&&!(ot[st+1]&128);--at,++st);if(ot=ot.subarray(st),ot[0]&128||at>1&&ot[0]===0&&!(ot[1]&128))return 1;let lt=it.subarray(6+33,6+33+33);lt[0]=0,lt.set(rt,1);let ct=33,ut=0;for(;ct>1&<[ut]===0&&!(lt[ut+1]&128);--ct,++ut);return lt=lt.subarray(ut),lt[0]&128||ct>1&<[0]===0&&!(lt[1]&128)?1:(tt.outputlen=6+at+ct,it[0]=48,it[1]=tt.outputlen-2,it[2]=2,it[3]=ot.length,it.set(ot,4),it[4+at]=2,it[5+at]=lt.length,it.set(lt,6+at),0)},signatureImport(tt,et){if(et.length<8||et.length>72||et[0]!==48||et[1]!==et.length-2||et[2]!==2)return 1;const nt=et[3];if(nt===0||5+nt>=et.length||et[4+nt]!==2)return 1;const rt=et[5+nt];if(rt===0||6+nt+rt!==et.length||et[4]&128||nt>1&&et[4]===0&&!(et[5]&128)||et[nt+6]&128||rt>1&&et[nt+6]===0&&!(et[nt+7]&128))return 1;let it=et.subarray(4,4+nt);if(it.length===33&&it[0]===0&&(it=it.subarray(1)),it.length>32)return 1;let ot=et.subarray(6+nt);if(ot.length===33&&ot[0]===0&&(ot=ot.slice(1)),ot.length>32)throw new Error("S length is too long");let at=new BN$1(it);at.cmp(ecparams.n)>=0&&(at=new BN$1(0));let st=new BN$1(et.subarray(6+nt));return st.cmp(ecparams.n)>=0&&(st=new BN$1(0)),tt.set(at.toArrayLike(Uint8Array,"be",32),0),tt.set(st.toArrayLike(Uint8Array,"be",32),32),0},ecdsaSign(tt,et,nt,rt,it){if(it){const st=it;it=lt=>{const ct=st(et,nt,null,rt,lt);if(!(ct instanceof Uint8Array&&ct.length===32))throw new Error("This is the way");return new BN$1(ct)}}const ot=new BN$1(nt);if(ot.cmp(ecparams.n)>=0||ot.isZero())return 1;let at;try{at=ec.sign(et,nt,{canonical:!0,k:it,pers:rt})}catch{return 1}return tt.signature.set(at.r.toArrayLike(Uint8Array,"be",32),0),tt.signature.set(at.s.toArrayLike(Uint8Array,"be",32),32),tt.recid=at.recoveryParam,0},ecdsaVerify(tt,et,nt){const rt={r:tt.subarray(0,32),s:tt.subarray(32,64)},it=new BN$1(rt.r),ot=new BN$1(rt.s);if(it.cmp(ecparams.n)>=0||ot.cmp(ecparams.n)>=0)return 1;if(ot.cmp(ec.nh)===1||it.isZero()||ot.isZero())return 3;const at=loadPublicKey(nt);if(at===null)return 2;const st=at.getPublic();return ec.verify(et,rt,st)?0:3},ecdsaRecover(tt,et,nt,rt){const it={r:et.slice(0,32),s:et.slice(32,64)},ot=new BN$1(it.r),at=new BN$1(it.s);if(ot.cmp(ecparams.n)>=0||at.cmp(ecparams.n)>=0)return 1;if(ot.isZero()||at.isZero())return 2;let st;try{st=ec.recoverPubKey(rt,it,nt)}catch{return 2}return savePublicKey(tt,st),0},ecdh(tt,et,nt,rt,it,ot,at){const st=loadPublicKey(et);if(st===null)return 1;const lt=new BN$1(nt);if(lt.cmp(ecparams.n)>=0||lt.isZero())return 2;const ct=st.getPublic().mul(lt);if(it===void 0){const ut=ct.encode(null,!0),ht=ec.hash().update(ut).digest();for(let dt=0;dt<32;++dt)tt[dt]=ht[dt]}else{ot||(ot=new Uint8Array(32));const ut=ct.getX().toArray("be",32);for(let mt=0;mt<32;++mt)ot[mt]=ut[mt];at||(at=new Uint8Array(32));const ht=ct.getY().toArray("be",32);for(let mt=0;mt<32;++mt)at[mt]=ht[mt];const dt=it(ot,at,rt);if(!(dt instanceof Uint8Array&&dt.length===tt.length))return 2;tt.set(dt)}return 0}},elliptic=lib$3(elliptic$1),src$1={},address={},networks$1={};Object.defineProperty(networks$1,"__esModule",{value:!0});networks$1.testnet=networks$1.regtest=networks$1.bitcoin=void 0;networks$1.bitcoin={messagePrefix:`Bitcoin Signed Message: `,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};networks$1.regtest={messagePrefix:`Bitcoin Signed Message: `,bech32:"bcrt",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};networks$1.testnet={messagePrefix:`Bitcoin Signed Message: -`,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var payments$3={},embed={},script={},bip66$1={};Object.defineProperty(bip66$1,"__esModule",{value:!0});bip66$1.encode=bip66$1.decode=bip66$1.check=void 0;function check$d(tt){if(tt.length<8||tt.length>72||tt[0]!==48||tt[1]!==tt.length-2||tt[2]!==2)return!1;const et=tt[3];if(et===0||5+et>=tt.length||tt[4+et]!==2)return!1;const nt=tt[5+et];return!(nt===0||6+et+nt!==tt.length||tt[4]&128||et>1&&tt[4]===0&&!(tt[5]&128)||tt[et+6]&128||nt>1&&tt[et+6]===0&&!(tt[et+7]&128))}bip66$1.check=check$d;function decode$m(tt){if(tt.length<8)throw new Error("DER sequence length is too short");if(tt.length>72)throw new Error("DER sequence length is too long");if(tt[0]!==48)throw new Error("Expected DER sequence");if(tt[1]!==tt.length-2)throw new Error("DER sequence length is invalid");if(tt[2]!==2)throw new Error("Expected DER integer");const et=tt[3];if(et===0)throw new Error("R length is zero");if(5+et>=tt.length)throw new Error("R length is too long");if(tt[4+et]!==2)throw new Error("Expected DER integer (2)");const nt=tt[5+et];if(nt===0)throw new Error("S length is zero");if(6+et+nt!==tt.length)throw new Error("S length is invalid");if(tt[4]&128)throw new Error("R value is negative");if(et>1&&tt[4]===0&&!(tt[5]&128))throw new Error("R value excessively padded");if(tt[et+6]&128)throw new Error("S value is negative");if(nt>1&&tt[et+6]===0&&!(tt[et+7]&128))throw new Error("S value excessively padded");return{r:tt.slice(4,4+et),s:tt.slice(6+et)}}bip66$1.decode=decode$m;function encode$n(tt,et){const nt=tt.length,rt=et.length;if(nt===0)throw new Error("R length is zero");if(rt===0)throw new Error("S length is zero");if(nt>33)throw new Error("R length is too long");if(rt>33)throw new Error("S length is too long");if(tt[0]&128)throw new Error("R value is negative");if(et[0]&128)throw new Error("S value is negative");if(nt>1&&tt[0]===0&&!(tt[1]&128))throw new Error("R value excessively padded");if(rt>1&&et[0]===0&&!(et[1]&128))throw new Error("S value excessively padded");const it=Buffer.allocUnsafe(6+nt+rt);return it[0]=48,it[1]=it.length-2,it[2]=2,it[3]=tt.length,tt.copy(it,4),it[4+nt]=2,it[5+nt]=et.length,et.copy(it,6+nt),it}bip66$1.encode=encode$n;var ops={};Object.defineProperty(ops,"__esModule",{value:!0});ops.REVERSE_OPS=ops.OPS=void 0;const OPS$8={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_LEFT:128,OP_RIGHT:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP3:178,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_CHECKSIGADD:186,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255};ops.OPS=OPS$8;const REVERSE_OPS={};ops.REVERSE_OPS=REVERSE_OPS;for(const tt of Object.keys(OPS$8)){const et=OPS$8[tt];REVERSE_OPS[et]=tt}var push_data={};Object.defineProperty(push_data,"__esModule",{value:!0});push_data.decode=push_data.encode=push_data.encodingLength=void 0;const ops_1=ops;function encodingLength$2(tt){return tttt.length)return null;rt=tt.readUInt8(et+1),it=2}else if(nt===ops_1.OPS.OP_PUSHDATA2){if(et+3>tt.length)return null;rt=tt.readUInt16LE(et+1),it=3}else{if(et+5>tt.length)return null;if(nt!==ops_1.OPS.OP_PUSHDATA4)throw new Error("Unexpected opcode");rt=tt.readUInt32LE(et+1),it=5}return{opcode:nt,number:rt,size:it}}push_data.decode=decode$l;var script_number={};Object.defineProperty(script_number,"__esModule",{value:!0});script_number.encode=script_number.decode=void 0;function decode$k(tt,et,nt){et=et||4,nt=nt===void 0?!0:nt;const rt=tt.length;if(rt===0)return 0;if(rt>et)throw new TypeError("Script number overflow");if(nt&&!(tt[rt-1]&127)&&(rt<=1||!(tt[rt-2]&128)))throw new Error("Non-minimally encoded script number");if(rt===5){const ot=tt.readUInt32LE(0),at=tt.readUInt8(4);return at&128?-((at&-129)*4294967296+ot):at*4294967296+ot}let it=0;for(let ot=0;ot2147483647?5:tt>8388607?4:tt>32767?3:tt>127?2:tt>0?1:0}function encode$l(tt){let et=Math.abs(tt);const nt=scriptNumSize(et),rt=Buffer.allocUnsafe(nt),it=tt<0;for(let ot=0;ot>=8;return rt[nt-1]&128?rt.writeUInt8(it?128:0,nt-1):it&&(rt[nt-1]|=128),rt}script_number.encode=encode$l;var script_signature={},types$6={},types$5={Array:function(tt){return tt!=null&&tt.constructor===Array},Boolean:function(tt){return typeof tt=="boolean"},Function:function(tt){return typeof tt=="function"},Nil:function(tt){return tt==null},Number:function(tt){return typeof tt=="number"},Object:function(tt){return typeof tt=="object"},String:function(tt){return typeof tt=="string"},"":function(){return!0}};types$5.Null=types$5.Nil;for(var typeName$1 in types$5)types$5[typeName$1].toJSON=(function(tt){return tt}).bind(null,typeName$1);var native$1=types$5,native=native$1;function getTypeName(tt){return tt.name||tt.toString().match(/function (.*?)\s*\(/)[1]}function getValueTypeName$1(tt){return native.Nil(tt)?"":getTypeName(tt.constructor)}function getValue$2(tt){return native.Function(tt)?"":native.String(tt)?JSON.stringify(tt):tt&&native.Object(tt)?"":tt}function captureStackTrace(tt,et){Error.captureStackTrace&&Error.captureStackTrace(tt,et)}function tfJSON$1(tt){return native.Function(tt)?tt.toJSON?tt.toJSON():getTypeName(tt):native.Array(tt)?"Array":tt&&native.Object(tt)?"Object":tt!==void 0?tt:""}function tfErrorString(tt,et,nt){var rt=getValue$2(et);return"Expected "+tfJSON$1(tt)+", got"+(nt!==""?" "+nt:"")+(rt!==""?" "+rt:"")}function TfTypeError$1(tt,et,nt){nt=nt||getValueTypeName$1(et),this.message=tfErrorString(tt,et,nt),captureStackTrace(this,TfTypeError$1),this.__type=tt,this.__value=et,this.__valueTypeName=nt}TfTypeError$1.prototype=Object.create(Error.prototype);TfTypeError$1.prototype.constructor=TfTypeError$1;function tfPropertyErrorString(tt,et,nt,rt,it){var ot='" of type ';return et==="key"&&(ot='" with key type '),tfErrorString('property "'+tfJSON$1(nt)+ot+tfJSON$1(tt),rt,it)}function TfPropertyTypeError$1(tt,et,nt,rt,it){tt?(it=it||getValueTypeName$1(rt),this.message=tfPropertyErrorString(tt,nt,et,rt,it)):this.message='Unexpected property "'+et+'"',captureStackTrace(this,TfTypeError$1),this.__label=nt,this.__property=et,this.__type=tt,this.__value=rt,this.__valueTypeName=it}TfPropertyTypeError$1.prototype=Object.create(Error.prototype);TfPropertyTypeError$1.prototype.constructor=TfTypeError$1;function tfCustomError(tt,et){return new TfTypeError$1(tt,{},et)}function tfSubError$1(tt,et,nt){return tt instanceof TfPropertyTypeError$1?(et=et+"."+tt.__property,tt=new TfPropertyTypeError$1(tt.__type,et,tt.__label,tt.__value,tt.__valueTypeName)):tt instanceof TfTypeError$1&&(tt=new TfPropertyTypeError$1(tt.__type,et,nt,tt.__value,tt.__valueTypeName)),captureStackTrace(tt),tt}var errors={TfTypeError:TfTypeError$1,TfPropertyTypeError:TfPropertyTypeError$1,tfCustomError,tfSubError:tfSubError$1,tfJSON:tfJSON$1,getValueTypeName:getValueTypeName$1},extra,hasRequiredExtra;function requireExtra(){if(hasRequiredExtra)return extra;hasRequiredExtra=1;var tt=native$1,et=errors;function nt(Tt){return Buffer.isBuffer(Tt)}function rt(Tt){return typeof Tt=="string"&&/^([0-9a-f]{2})+$/i.test(Tt)}function it(Tt,At){var Et=Tt.toJSON();function Mt(Lt){if(!Tt(Lt))return!1;if(Lt.length===At)return!0;throw et.tfCustomError(Et+"(Length: "+At+")",Et+"(Length: "+Lt.length+")")}return Mt.toJSON=function(){return Et},Mt}var ot=it.bind(null,tt.Array),at=it.bind(null,nt),st=it.bind(null,rt),lt=it.bind(null,tt.String);function ct(Tt,At,Et){Et=Et||tt.Number;function Mt(Lt,jt){return Et(Lt,jt)&&Lt>Tt&&Lt>24===Tt}function pt(Tt){return Tt<<16>>16===Tt}function mt(Tt){return(Tt|0)===Tt}function gt(Tt){return typeof Tt=="number"&&Tt>=-ut&&Tt<=ut&&Math.floor(Tt)===Tt}function yt(Tt){return(Tt&255)===Tt}function bt(Tt){return(Tt&65535)===Tt}function wt(Tt){return Tt>>>0===Tt}function vt(Tt){return typeof Tt=="number"&&Tt>=0&&Tt<=ut&&Math.floor(Tt)===Tt}var kt={ArrayN:ot,Buffer:nt,BufferN:at,Finite:ht,Hex:rt,HexN:st,Int8:dt,Int16:pt,Int32:mt,Int53:gt,Range:ct,StringN:lt,UInt8:yt,UInt16:bt,UInt32:wt,UInt53:vt};for(var St in kt)kt[St].toJSON=(function(Tt){return Tt}).bind(null,St);return extra=kt,extra}var ERRORS=errors,NATIVE=native$1,tfJSON=ERRORS.tfJSON,TfTypeError=ERRORS.TfTypeError,TfPropertyTypeError=ERRORS.TfPropertyTypeError,tfSubError=ERRORS.tfSubError,getValueTypeName=ERRORS.getValueTypeName,TYPES={arrayOf:function(et,nt){et=compile(et),nt=nt||{};function rt(it,ot){return!NATIVE.Array(it)||NATIVE.Nil(it)||nt.minLength!==void 0&&it.lengthnt.maxLength||nt.length!==void 0&&it.length!==nt.length?!1:it.every(function(at,st){try{return typeforce$4(et,at,ot)}catch(lt){throw tfSubError(lt,st)}})}return rt.toJSON=function(){var it="["+tfJSON(et)+"]";return nt.length!==void 0?it+="{"+nt.length+"}":(nt.minLength!==void 0||nt.maxLength!==void 0)&&(it+="{"+(nt.minLength===void 0?0:nt.minLength)+","+(nt.maxLength===void 0?1/0:nt.maxLength)+"}"),it},rt},maybe:function tt(et){et=compile(et);function nt(rt,it){return NATIVE.Nil(rt)||et(rt,it,tt)}return nt.toJSON=function(){return"?"+tfJSON(et)},nt},map:function(et,nt){et=compile(et),nt&&(nt=compile(nt));function rt(it,ot){if(!NATIVE.Object(it)||NATIVE.Nil(it))return!1;for(var at in it){try{nt&&typeforce$4(nt,at,ot)}catch(lt){throw tfSubError(lt,at,"key")}try{var st=it[at];typeforce$4(et,st,ot)}catch(lt){throw tfSubError(lt,at)}}return!0}return nt?rt.toJSON=function(){return"{"+tfJSON(nt)+": "+tfJSON(et)+"}"}:rt.toJSON=function(){return"{"+tfJSON(et)+"}"},rt},object:function(et){var nt={};for(var rt in et)nt[rt]=compile(et[rt]);function it(ot,at){if(!NATIVE.Object(ot)||NATIVE.Nil(ot))return!1;var st;try{for(st in nt){var lt=nt[st],ct=ot[st];typeforce$4(lt,ct,at)}}catch(ut){throw tfSubError(ut,st)}if(at){for(st in ot)if(!nt[st])throw new TfPropertyTypeError(void 0,st)}return!0}return it.toJSON=function(){return tfJSON(nt)},it},anyOf:function(){var et=[].slice.call(arguments).map(compile);function nt(rt,it){return et.some(function(ot){try{return typeforce$4(ot,rt,it)}catch{return!1}})}return nt.toJSON=function(){return et.map(tfJSON).join("|")},nt},allOf:function(){var et=[].slice.call(arguments).map(compile);function nt(rt,it){return et.every(function(ot){try{return typeforce$4(ot,rt,it)}catch{return!1}})}return nt.toJSON=function(){return et.map(tfJSON).join(" & ")},nt},quacksLike:function(et){function nt(rt){return et===getValueTypeName(rt)}return nt.toJSON=function(){return et},nt},tuple:function(){var et=[].slice.call(arguments).map(compile);function nt(rt,it){return NATIVE.Nil(rt)||NATIVE.Nil(rt.length)||it&&rt.length!==et.length?!1:et.every(function(ot,at){try{return typeforce$4(ot,rt[at],it)}catch(st){throw tfSubError(st,at)}})}return nt.toJSON=function(){return"("+et.map(tfJSON).join(", ")+")"},nt},value:function(et){function nt(rt){return rt===et}return nt.toJSON=function(){return et},nt}};TYPES.oneOf=TYPES.anyOf;function compile(tt){if(NATIVE.String(tt))return tt[0]==="?"?TYPES.maybe(tt.slice(1)):NATIVE[tt]||TYPES.quacksLike(tt);if(tt&&NATIVE.Object(tt)){if(NATIVE.Array(tt)){if(tt.length!==1)throw new TypeError("Expected compile() parameter of type Array of length 1");return TYPES.arrayOf(tt[0])}return TYPES.object(tt)}else if(NATIVE.Function(tt))return tt;return TYPES.value(tt)}function typeforce$4(tt,et,nt,rt){if(NATIVE.Function(tt)){if(tt(et,nt))return!0;throw new TfTypeError(rt||tt,et)}return typeforce$4(compile(tt),et,nt)}for(var typeName in NATIVE)typeforce$4[typeName]=NATIVE[typeName];for(typeName in TYPES)typeforce$4[typeName]=TYPES[typeName];var EXTRA=requireExtra();for(typeName in EXTRA)typeforce$4[typeName]=EXTRA[typeName];typeforce$4.compile=compile;typeforce$4.TfTypeError=TfTypeError;typeforce$4.TfPropertyTypeError=TfPropertyTypeError;var typeforce_1=typeforce$4;(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.oneOf=tt.Null=tt.BufferN=tt.Function=tt.UInt32=tt.UInt8=tt.tuple=tt.maybe=tt.Hex=tt.Buffer=tt.String=tt.Boolean=tt.Array=tt.Number=tt.Hash256bit=tt.Hash160bit=tt.Buffer256bit=tt.isTaptree=tt.isTapleaf=tt.TAPLEAF_VERSION_MASK=tt.Network=tt.ECPoint=tt.Satoshi=tt.Signer=tt.BIP32Path=tt.UInt31=tt.isPoint=tt.typeforce=void 0;const et=buffer$2;tt.typeforce=typeforce_1;const nt=et.Buffer.alloc(32,0),rt=et.Buffer.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex");function it(pt){if(!et.Buffer.isBuffer(pt)||pt.length<33)return!1;const mt=pt[0],gt=pt.slice(1,33);if(gt.compare(nt)===0||gt.compare(rt)>=0)return!1;if((mt===2||mt===3)&&pt.length===33)return!0;const yt=pt.slice(33);return yt.compare(nt)===0||yt.compare(rt)>=0?!1:mt===4&&pt.length===65}tt.isPoint=it;const ot=Math.pow(2,31)-1;function at(pt){return tt.typeforce.UInt32(pt)&&pt<=ot}tt.UInt31=at;function st(pt){return tt.typeforce.String(pt)&&!!pt.match(/^(m\/)?(\d+'?\/)*\d+'?$/)}tt.BIP32Path=st,st.toJSON=()=>"BIP32 derivation path";function lt(pt){return(tt.typeforce.Buffer(pt.publicKey)||typeof pt.getPublicKey=="function")&&typeof pt.sign=="function"}tt.Signer=lt;const ct=21*1e14;function ut(pt){return tt.typeforce.UInt53(pt)&&pt<=ct}tt.Satoshi=ut,tt.ECPoint=tt.typeforce.quacksLike("Point"),tt.Network=tt.typeforce.compile({messagePrefix:tt.typeforce.oneOf(tt.typeforce.Buffer,tt.typeforce.String),bip32:{public:tt.typeforce.UInt32,private:tt.typeforce.UInt32},pubKeyHash:tt.typeforce.UInt8,scriptHash:tt.typeforce.UInt8,wif:tt.typeforce.UInt8}),tt.TAPLEAF_VERSION_MASK=254;function ht(pt){return!pt||!("output"in pt)||!et.Buffer.isBuffer(pt.output)?!1:pt.version!==void 0?(pt.version&tt.TAPLEAF_VERSION_MASK)===pt.version:!0}tt.isTapleaf=ht;function dt(pt){return(0,tt.Array)(pt)?pt.length!==2?!1:pt.every(mt=>dt(mt)):ht(pt)}tt.isTaptree=dt,tt.Buffer256bit=tt.typeforce.BufferN(32),tt.Hash160bit=tt.typeforce.BufferN(20),tt.Hash256bit=tt.typeforce.BufferN(32),tt.Number=tt.typeforce.Number,tt.Array=tt.typeforce.Array,tt.Boolean=tt.typeforce.Boolean,tt.String=tt.typeforce.String,tt.Buffer=tt.typeforce.Buffer,tt.Hex=tt.typeforce.Hex,tt.maybe=tt.typeforce.maybe,tt.tuple=tt.typeforce.tuple,tt.UInt8=tt.typeforce.UInt8,tt.UInt32=tt.typeforce.UInt32,tt.Function=tt.typeforce.Function,tt.BufferN=tt.typeforce.BufferN,tt.Null=tt.typeforce.Null,tt.oneOf=tt.typeforce.oneOf})(types$6);Object.defineProperty(script_signature,"__esModule",{value:!0});script_signature.encode=script_signature.decode=void 0;const bip66=bip66$1,types$4=types$6,{typeforce:typeforce$3}=types$4,ZERO$1=Buffer.alloc(1,0);function toDER(tt){let et=0;for(;tt[et]===0;)++et;return et===tt.length?ZERO$1:(tt=tt.slice(et),tt[0]&128?Buffer.concat([ZERO$1,tt],1+tt.length):tt)}function fromDER(tt){tt[0]===0&&(tt=tt.slice(1));const et=Buffer.alloc(32,0),nt=Math.max(0,32-tt.length);return tt.copy(et,nt),et}function decode$j(tt){const et=tt.readUInt8(tt.length-1),nt=et&-129;if(nt<=0||nt>=4)throw new Error("Invalid hashType "+et);const rt=bip66.decode(tt.slice(0,-1)),it=fromDER(rt.r),ot=fromDER(rt.s);return{signature:Buffer.concat([it,ot],64),hashType:et}}script_signature.decode=decode$j;function encode$k(tt,et){typeforce$3({signature:types$4.BufferN(64),hashType:types$4.UInt8},{signature:tt,hashType:et});const nt=et&-129;if(nt<=0||nt>=4)throw new Error("Invalid hashType "+et);const rt=Buffer.allocUnsafe(1);rt.writeUInt8(et,0);const it=toDER(tt.slice(0,32)),ot=toDER(tt.slice(32,64));return Buffer.concat([bip66.encode(it,ot),rt])}script_signature.encode=encode$k;(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.signature=tt.number=tt.isCanonicalScriptSignature=tt.isDefinedHashType=tt.isCanonicalPubKey=tt.toStack=tt.fromASM=tt.toASM=tt.decompile=tt.compile=tt.countNonPushOnlyOPs=tt.isPushOnly=tt.OPS=void 0;const et=bip66$1,nt=ops;Object.defineProperty(tt,"OPS",{enumerable:!0,get:function(){return nt.OPS}});const rt=push_data,it=script_number,ot=script_signature,at=types$6,{typeforce:st}=at,lt=nt.OPS.OP_RESERVED;function ct(Mt){return at.Number(Mt)&&(Mt===nt.OPS.OP_0||Mt>=nt.OPS.OP_1&&Mt<=nt.OPS.OP_16||Mt===nt.OPS.OP_1NEGATE)}function ut(Mt){return at.Buffer(Mt)||ct(Mt)}function ht(Mt){return at.Array(Mt)&&Mt.every(ut)}tt.isPushOnly=ht;function dt(Mt){return Mt.length-Mt.filter(ut).length}tt.countNonPushOnlyOPs=dt;function pt(Mt){if(Mt.length===0)return nt.OPS.OP_0;if(Mt.length===1){if(Mt[0]>=1&&Mt[0]<=16)return lt+Mt[0];if(Mt[0]===129)return nt.OPS.OP_1NEGATE}}function mt(Mt){return Buffer.isBuffer(Mt)}function gt(Mt){return at.Array(Mt)}function yt(Mt){return Buffer.isBuffer(Mt)}function bt(Mt){if(mt(Mt))return Mt;st(at.Array,Mt);const Lt=Mt.reduce(($t,xt)=>yt(xt)?xt.length===1&&pt(xt)!==void 0?$t+1:$t+rt.encodingLength(xt.length)+xt.length:$t+1,0),jt=Buffer.allocUnsafe(Lt);let Rt=0;if(Mt.forEach($t=>{if(yt($t)){const xt=pt($t);if(xt!==void 0){jt.writeUInt8(xt,Rt),Rt+=1;return}Rt+=rt.encode(jt,$t.length,Rt),$t.copy(jt,Rt),Rt+=$t.length}else jt.writeUInt8($t,Rt),Rt+=1}),Rt!==jt.length)throw new Error("Could not decode chunks");return jt}tt.compile=bt;function wt(Mt){if(gt(Mt))return Mt;st(at.Buffer,Mt);const Lt=[];let jt=0;for(;jtnt.OPS.OP_0&&Rt<=nt.OPS.OP_PUSHDATA4){const $t=rt.decode(Mt,jt);if($t===null||(jt+=$t.size,jt+$t.number>Mt.length))return null;const xt=Mt.slice(jt,jt+$t.number);jt+=$t.number;const It=pt(xt);It!==void 0?Lt.push(It):Lt.push(xt)}else Lt.push(Rt),jt+=1}return Lt}tt.decompile=wt;function vt(Mt){return mt(Mt)&&(Mt=wt(Mt)),Mt.map(Lt=>{if(yt(Lt)){const jt=pt(Lt);if(jt===void 0)return Lt.toString("hex");Lt=jt}return nt.REVERSE_OPS[Lt]}).join(" ")}tt.toASM=vt;function kt(Mt){return st(at.String,Mt),bt(Mt.split(" ").map(Lt=>nt.OPS[Lt]!==void 0?nt.OPS[Lt]:(st(at.Hex,Lt),Buffer.from(Lt,"hex"))))}tt.fromASM=kt;function St(Mt){return Mt=wt(Mt),st(ht,Mt),Mt.map(Lt=>yt(Lt)?Lt:Lt===nt.OPS.OP_0?Buffer.allocUnsafe(0):it.encode(Lt-lt))}tt.toStack=St;function Tt(Mt){return at.isPoint(Mt)}tt.isCanonicalPubKey=Tt;function At(Mt){const Lt=Mt&-129;return Lt>0&&Lt<4}tt.isDefinedHashType=At;function Et(Mt){return!Buffer.isBuffer(Mt)||!At(Mt[Mt.length-1])?!1:et.check(Mt.slice(0,-1))}tt.isCanonicalScriptSignature=Et,tt.number=it,tt.signature=ot})(script);var lazy$8={};Object.defineProperty(lazy$8,"__esModule",{value:!0});lazy$8.value=lazy$8.prop=void 0;function prop(tt,et,nt){Object.defineProperty(tt,et,{configurable:!0,enumerable:!0,get(){const rt=nt.call(this);return this[et]=rt,rt},set(rt){Object.defineProperty(this,et,{configurable:!0,enumerable:!0,value:rt,writable:!0})}})}lazy$8.prop=prop;function value$1(tt){let et;return()=>(et!==void 0||(et=tt()),et)}lazy$8.value=value$1;Object.defineProperty(embed,"__esModule",{value:!0});embed.p2data=void 0;const networks_1$8=networks$1,bscript$b=script,types_1$9=types$6,lazy$7=lazy$8,OPS$7=bscript$b.OPS;function stacksEqual$4(tt,et){return tt.length!==et.length?!1:tt.every((nt,rt)=>nt.equals(et[rt]))}function p2data(tt,et){if(!tt.data&&!tt.output)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$9.typeforce)({network:types_1$9.typeforce.maybe(types_1$9.typeforce.Object),output:types_1$9.typeforce.maybe(types_1$9.typeforce.Buffer),data:types_1$9.typeforce.maybe(types_1$9.typeforce.arrayOf(types_1$9.typeforce.Buffer))},tt);const rt={name:"embed",network:tt.network||networks_1$8.bitcoin};if(lazy$7.prop(rt,"output",()=>{if(tt.data)return bscript$b.compile([OPS$7.OP_RETURN].concat(tt.data))}),lazy$7.prop(rt,"data",()=>{if(tt.output)return bscript$b.decompile(tt.output).slice(1)}),et.validate&&tt.output){const it=bscript$b.decompile(tt.output);if(it[0]!==OPS$7.OP_RETURN)throw new TypeError("Output is invalid");if(!it.slice(1).every(types_1$9.typeforce.Buffer))throw new TypeError("Output is invalid");if(tt.data&&!stacksEqual$4(tt.data,rt.data))throw new TypeError("Data mismatch")}return Object.assign(rt,tt)}embed.p2data=p2data;var p2ms$1={};Object.defineProperty(p2ms$1,"__esModule",{value:!0});p2ms$1.p2ms=void 0;const networks_1$7=networks$1,bscript$a=script,types_1$8=types$6,lazy$6=lazy$8,OPS$6=bscript$a.OPS,OP_INT_BASE=OPS$6.OP_RESERVED;function stacksEqual$3(tt,et){return tt.length!==et.length?!1:tt.every((nt,rt)=>nt.equals(et[rt]))}function p2ms(tt,et){if(!tt.input&&!tt.output&&!(tt.pubkeys&&tt.m!==void 0)&&!tt.signatures)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{});function nt(lt){return bscript$a.isCanonicalScriptSignature(lt)||(et.allowIncomplete&<===OPS$6.OP_0)!==void 0}(0,types_1$8.typeforce)({network:types_1$8.typeforce.maybe(types_1$8.typeforce.Object),m:types_1$8.typeforce.maybe(types_1$8.typeforce.Number),n:types_1$8.typeforce.maybe(types_1$8.typeforce.Number),output:types_1$8.typeforce.maybe(types_1$8.typeforce.Buffer),pubkeys:types_1$8.typeforce.maybe(types_1$8.typeforce.arrayOf(types_1$8.isPoint)),signatures:types_1$8.typeforce.maybe(types_1$8.typeforce.arrayOf(nt)),input:types_1$8.typeforce.maybe(types_1$8.typeforce.Buffer)},tt);const it={network:tt.network||networks_1$7.bitcoin};let ot=[],at=!1;function st(lt){at||(at=!0,ot=bscript$a.decompile(lt),it.m=ot[0]-OP_INT_BASE,it.n=ot[ot.length-2]-OP_INT_BASE,it.pubkeys=ot.slice(1,-2))}if(lazy$6.prop(it,"output",()=>{if(tt.m&&it.n&&tt.pubkeys)return bscript$a.compile([].concat(OP_INT_BASE+tt.m,tt.pubkeys,OP_INT_BASE+it.n,OPS$6.OP_CHECKMULTISIG))}),lazy$6.prop(it,"m",()=>{if(it.output)return st(it.output),it.m}),lazy$6.prop(it,"n",()=>{if(it.pubkeys)return it.pubkeys.length}),lazy$6.prop(it,"pubkeys",()=>{if(tt.output)return st(tt.output),it.pubkeys}),lazy$6.prop(it,"signatures",()=>{if(tt.input)return bscript$a.decompile(tt.input).slice(1)}),lazy$6.prop(it,"input",()=>{if(tt.signatures)return bscript$a.compile([OPS$6.OP_0].concat(tt.signatures))}),lazy$6.prop(it,"witness",()=>{if(it.input)return[]}),lazy$6.prop(it,"name",()=>{if(!(!it.m||!it.n))return`p2ms(${it.m} of ${it.n})`}),et.validate){if(tt.output){if(st(tt.output),!types_1$8.typeforce.Number(ot[0]))throw new TypeError("Output is invalid");if(!types_1$8.typeforce.Number(ot[ot.length-2]))throw new TypeError("Output is invalid");if(ot[ot.length-1]!==OPS$6.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(it.m<=0||it.n>16||it.m>it.n||it.n!==ot.length-3)throw new TypeError("Output is invalid");if(!it.pubkeys.every(lt=>(0,types_1$8.isPoint)(lt)))throw new TypeError("Output is invalid");if(tt.m!==void 0&&tt.m!==it.m)throw new TypeError("m mismatch");if(tt.n!==void 0&&tt.n!==it.n)throw new TypeError("n mismatch");if(tt.pubkeys&&!stacksEqual$3(tt.pubkeys,it.pubkeys))throw new TypeError("Pubkeys mismatch")}if(tt.pubkeys){if(tt.n!==void 0&&tt.n!==tt.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(it.n=tt.pubkeys.length,it.nit.m)throw new TypeError("Too many signatures provided")}if(tt.input){if(tt.input[0]!==OPS$6.OP_0)throw new TypeError("Input is invalid");if(it.signatures.length===0||!it.signatures.every(nt))throw new TypeError("Input has invalid signature(s)");if(tt.signatures&&!stacksEqual$3(tt.signatures,it.signatures))throw new TypeError("Signature mismatch");if(tt.m!==void 0&&tt.m!==tt.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(it,tt)}p2ms$1.p2ms=p2ms;var p2pk$1={};Object.defineProperty(p2pk$1,"__esModule",{value:!0});p2pk$1.p2pk=void 0;const networks_1$6=networks$1,bscript$9=script,types_1$7=types$6,lazy$5=lazy$8,OPS$5=bscript$9.OPS;function p2pk(tt,et){if(!tt.input&&!tt.output&&!tt.pubkey&&!tt.input&&!tt.signature)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$7.typeforce)({network:types_1$7.typeforce.maybe(types_1$7.typeforce.Object),output:types_1$7.typeforce.maybe(types_1$7.typeforce.Buffer),pubkey:types_1$7.typeforce.maybe(types_1$7.isPoint),signature:types_1$7.typeforce.maybe(bscript$9.isCanonicalScriptSignature),input:types_1$7.typeforce.maybe(types_1$7.typeforce.Buffer)},tt);const nt=lazy$5.value(()=>bscript$9.decompile(tt.input)),it={name:"p2pk",network:tt.network||networks_1$6.bitcoin};if(lazy$5.prop(it,"output",()=>{if(tt.pubkey)return bscript$9.compile([tt.pubkey,OPS$5.OP_CHECKSIG])}),lazy$5.prop(it,"pubkey",()=>{if(tt.output)return tt.output.slice(1,-1)}),lazy$5.prop(it,"signature",()=>{if(tt.input)return nt()[0]}),lazy$5.prop(it,"input",()=>{if(tt.signature)return bscript$9.compile([tt.signature])}),lazy$5.prop(it,"witness",()=>{if(it.input)return[]}),et.validate){if(tt.output){if(tt.output[tt.output.length-1]!==OPS$5.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!(0,types_1$7.isPoint)(it.pubkey))throw new TypeError("Output pubkey is invalid");if(tt.pubkey&&!tt.pubkey.equals(it.pubkey))throw new TypeError("Pubkey mismatch")}if(tt.signature&&tt.input&&!tt.input.equals(it.input))throw new TypeError("Signature mismatch");if(tt.input){if(nt().length!==1)throw new TypeError("Input is invalid");if(!bscript$9.isCanonicalScriptSignature(it.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(it,tt)}p2pk$1.p2pk=p2pk;var p2pkh$1={},crypto$2={},ripemd160={},_sha2={},_assert={};Object.defineProperty(_assert,"__esModule",{value:!0});_assert.output=_assert.exists=_assert.hash=_assert.bytes=_assert.bool=_assert.number=void 0;function number$4(tt){if(!Number.isSafeInteger(tt)||tt<0)throw new Error(`Wrong positive integer: ${tt}`)}_assert.number=number$4;function bool$1(tt){if(typeof tt!="boolean")throw new Error(`Expected boolean, not ${tt}`)}_assert.bool=bool$1;function bytes(tt,...et){if(!(tt instanceof Uint8Array))throw new Error("Expected Uint8Array");if(et.length>0&&!et.includes(tt.length))throw new Error(`Expected Uint8Array of length ${et}, not of length=${tt.length}`)}_assert.bytes=bytes;function hash(tt){if(typeof tt!="function"||typeof tt.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");number$4(tt.outputLen),number$4(tt.blockLen)}_assert.hash=hash;function exists(tt,et=!0){if(tt.destroyed)throw new Error("Hash instance has been destroyed");if(et&&tt.finished)throw new Error("Hash#digest() has already been called")}_assert.exists=exists;function output(tt,et){bytes(tt);const nt=et.outputLen;if(tt.lengthTt instanceof Uint8Array,rt=Tt=>new Uint8Array(Tt.buffer,Tt.byteOffset,Tt.byteLength);tt.u8=rt;const it=Tt=>new Uint32Array(Tt.buffer,Tt.byteOffset,Math.floor(Tt.byteLength/4));tt.u32=it;const ot=Tt=>new DataView(Tt.buffer,Tt.byteOffset,Tt.byteLength);tt.createView=ot;const at=(Tt,At)=>Tt<<32-At|Tt>>>At;if(tt.rotr=at,tt.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,!tt.isLE)throw new Error("Non little-endian hardware is not supported");const st=Array.from({length:256},(Tt,At)=>At.toString(16).padStart(2,"0"));function lt(Tt){if(!nt(Tt))throw new Error("Uint8Array expected");let At="";for(let Et=0;Et{};tt.nextTick=ut;async function ht(Tt,At,Et){let Mt=Date.now();for(let Lt=0;Lt=0&&jtMt+Lt.length,0));let Et=0;return Tt.forEach(Mt=>{if(!nt(Mt))throw new Error("Uint8Array expected");At.set(Mt,Et),Et+=Mt.length}),At}tt.concatBytes=mt;class gt{clone(){return this._cloneInto()}}tt.Hash=gt;const yt=Tt=>Object.prototype.toString.call(Tt)==="[object Object]"&&Tt.constructor===Object;function bt(Tt,At){if(At!==void 0&&(typeof At!="object"||!yt(At)))throw new Error("Options should be object or undefined");return Object.assign(Tt,At)}tt.checkOpts=bt;function wt(Tt){const At=Mt=>Tt().update(pt(Mt)).digest(),Et=Tt();return At.outputLen=Et.outputLen,At.blockLen=Et.blockLen,At.create=()=>Tt(),At}tt.wrapConstructor=wt;function vt(Tt){const At=(Mt,Lt)=>Tt(Lt).update(pt(Mt)).digest(),Et=Tt({});return At.outputLen=Et.outputLen,At.blockLen=Et.blockLen,At.create=Mt=>Tt(Mt),At}tt.wrapConstructorWithOpts=vt;function kt(Tt){const At=(Mt,Lt)=>Tt(Lt).update(pt(Mt)).digest(),Et=Tt({});return At.outputLen=Et.outputLen,At.blockLen=Et.blockLen,At.create=Mt=>Tt(Mt),At}tt.wrapXOFConstructorWithOpts=kt;function St(Tt=32){if(et.crypto&&typeof et.crypto.getRandomValues=="function")return et.crypto.getRandomValues(new Uint8Array(Tt));throw new Error("crypto.getRandomValues must be defined")}tt.randomBytes=St})(utils$2);Object.defineProperty(_sha2,"__esModule",{value:!0});_sha2.SHA2=void 0;const _assert_js_1=_assert,utils_js_1$3=utils$2;function setBigUint64(tt,et,nt,rt){if(typeof tt.setBigUint64=="function")return tt.setBigUint64(et,nt,rt);const it=BigInt(32),ot=BigInt(4294967295),at=Number(nt>>it&ot),st=Number(nt&ot),lt=rt?4:0,ct=rt?0:4;tt.setUint32(et+lt,at,rt),tt.setUint32(et+ct,st,rt)}class SHA2 extends utils_js_1$3.Hash{constructor(et,nt,rt,it){super(),this.blockLen=et,this.outputLen=nt,this.padOffset=rt,this.isLE=it,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(et),this.view=(0,utils_js_1$3.createView)(this.buffer)}update(et){_assert_js_1.default.exists(this);const{view:nt,buffer:rt,blockLen:it}=this;et=(0,utils_js_1$3.toBytes)(et);const ot=et.length;for(let at=0;atit-at&&(this.process(rt,0),at=0);for(let ht=at;htut.length)throw new Error("_sha2: outputLen bigger than state");for(let ht=0;htet),Pi=Id.map(tt=>(9*tt+5)%16);let idxL=[Id],idxR=[Pi];for(let tt=0;tt<4;tt++)for(let et of[idxL,idxR])et.push(et[tt].map(nt=>Rho[nt]));const shifts=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(tt=>new Uint8Array(tt)),shiftsL=idxL.map((tt,et)=>tt.map(nt=>shifts[et][nt])),shiftsR=idxR.map((tt,et)=>tt.map(nt=>shifts[et][nt])),Kl=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Kr=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),rotl$1=(tt,et)=>tt<>>32-et;function f$2(tt,et,nt,rt){return tt===0?et^nt^rt:tt===1?et&nt|~et&rt:tt===2?(et|~nt)^rt:tt===3?et&rt|nt&~rt:et^(nt|~rt)}const BUF=new Uint32Array(16);class RIPEMD160 extends _sha2_js_1$2.SHA2{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:et,h1:nt,h2:rt,h3:it,h4:ot}=this;return[et,nt,rt,it,ot]}set(et,nt,rt,it,ot){this.h0=et|0,this.h1=nt|0,this.h2=rt|0,this.h3=it|0,this.h4=ot|0}process(et,nt){for(let pt=0;pt<16;pt++,nt+=4)BUF[pt]=et.getUint32(nt,!0);let rt=this.h0|0,it=rt,ot=this.h1|0,at=ot,st=this.h2|0,lt=st,ct=this.h3|0,ut=ct,ht=this.h4|0,dt=ht;for(let pt=0;pt<5;pt++){const mt=4-pt,gt=Kl[pt],yt=Kr[pt],bt=idxL[pt],wt=idxR[pt],vt=shiftsL[pt],kt=shiftsR[pt];for(let St=0;St<16;St++){const Tt=rotl$1(rt+f$2(pt,ot,st,ct)+BUF[bt[St]]+gt,vt[St])+ht|0;rt=ht,ht=ct,ct=rotl$1(st,10)|0,st=ot,ot=Tt}for(let St=0;St<16;St++){const Tt=rotl$1(it+f$2(mt,at,lt,ut)+BUF[wt[St]]+yt,kt[St])+dt|0;it=dt,dt=ut,ut=rotl$1(lt,10)|0,lt=at,at=Tt}}this.set(this.h1+st+ut|0,this.h2+ct+dt|0,this.h3+ht+it|0,this.h4+rt+at|0,this.h0+ot+lt|0)}roundClean(){BUF.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}ripemd160.RIPEMD160=RIPEMD160;ripemd160.ripemd160=(0,utils_js_1$2.wrapConstructor)(()=>new RIPEMD160);var sha1={};Object.defineProperty(sha1,"__esModule",{value:!0});sha1.sha1=void 0;const _sha2_js_1$1=_sha2,utils_js_1$1=utils$2,rotl=(tt,et)=>tt<>>32-et>>>0,Chi$1=(tt,et,nt)=>tt&et^~tt&nt,Maj$1=(tt,et,nt)=>tt&et^tt&nt^et&nt,IV$1=new Uint32Array([1732584193,4023233417,2562383102,271733878,3285377520]),SHA1_W=new Uint32Array(80);class SHA1 extends _sha2_js_1$1.SHA2{constructor(){super(64,20,8,!1),this.A=IV$1[0]|0,this.B=IV$1[1]|0,this.C=IV$1[2]|0,this.D=IV$1[3]|0,this.E=IV$1[4]|0}get(){const{A:et,B:nt,C:rt,D:it,E:ot}=this;return[et,nt,rt,it,ot]}set(et,nt,rt,it,ot){this.A=et|0,this.B=nt|0,this.C=rt|0,this.D=it|0,this.E=ot|0}process(et,nt){for(let lt=0;lt<16;lt++,nt+=4)SHA1_W[lt]=et.getUint32(nt,!1);for(let lt=16;lt<80;lt++)SHA1_W[lt]=rotl(SHA1_W[lt-3]^SHA1_W[lt-8]^SHA1_W[lt-14]^SHA1_W[lt-16],1);let{A:rt,B:it,C:ot,D:at,E:st}=this;for(let lt=0;lt<80;lt++){let ct,ut;lt<20?(ct=Chi$1(it,ot,at),ut=1518500249):lt<40?(ct=it^ot^at,ut=1859775393):lt<60?(ct=Maj$1(it,ot,at),ut=2400959708):(ct=it^ot^at,ut=3395469782);const ht=rotl(rt,5)+ct+st+ut+SHA1_W[lt]|0;st=at,at=ot,ot=rotl(it,30),it=rt,rt=ht}rt=rt+this.A|0,it=it+this.B|0,ot=ot+this.C|0,at=at+this.D|0,st=st+this.E|0,this.set(rt,it,ot,at,st)}roundClean(){SHA1_W.fill(0)}destroy(){this.set(0,0,0,0,0),this.buffer.fill(0)}}sha1.sha1=(0,utils_js_1$1.wrapConstructor)(()=>new SHA1);var sha256$2={};Object.defineProperty(sha256$2,"__esModule",{value:!0});sha256$2.sha224=sha256$2.sha256=void 0;const _sha2_js_1=_sha2,utils_js_1=utils$2,Chi=(tt,et,nt)=>tt&et^~tt&nt,Maj=(tt,et,nt)=>tt&et^tt&nt^et&nt,SHA256_K=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),IV=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),SHA256_W=new Uint32Array(64);class SHA256 extends _sha2_js_1.SHA2{constructor(){super(64,32,8,!1),this.A=IV[0]|0,this.B=IV[1]|0,this.C=IV[2]|0,this.D=IV[3]|0,this.E=IV[4]|0,this.F=IV[5]|0,this.G=IV[6]|0,this.H=IV[7]|0}get(){const{A:et,B:nt,C:rt,D:it,E:ot,F:at,G:st,H:lt}=this;return[et,nt,rt,it,ot,at,st,lt]}set(et,nt,rt,it,ot,at,st,lt){this.A=et|0,this.B=nt|0,this.C=rt|0,this.D=it|0,this.E=ot|0,this.F=at|0,this.G=st|0,this.H=lt|0}process(et,nt){for(let ht=0;ht<16;ht++,nt+=4)SHA256_W[ht]=et.getUint32(nt,!1);for(let ht=16;ht<64;ht++){const dt=SHA256_W[ht-15],pt=SHA256_W[ht-2],mt=(0,utils_js_1.rotr)(dt,7)^(0,utils_js_1.rotr)(dt,18)^dt>>>3,gt=(0,utils_js_1.rotr)(pt,17)^(0,utils_js_1.rotr)(pt,19)^pt>>>10;SHA256_W[ht]=gt+SHA256_W[ht-7]+mt+SHA256_W[ht-16]|0}let{A:rt,B:it,C:ot,D:at,E:st,F:lt,G:ct,H:ut}=this;for(let ht=0;ht<64;ht++){const dt=(0,utils_js_1.rotr)(st,6)^(0,utils_js_1.rotr)(st,11)^(0,utils_js_1.rotr)(st,25),pt=ut+dt+Chi(st,lt,ct)+SHA256_K[ht]+SHA256_W[ht]|0,gt=((0,utils_js_1.rotr)(rt,2)^(0,utils_js_1.rotr)(rt,13)^(0,utils_js_1.rotr)(rt,22))+Maj(rt,it,ot)|0;ut=ct,ct=lt,lt=st,st=at+pt|0,at=ot,ot=it,it=rt,rt=pt+gt|0}rt=rt+this.A|0,it=it+this.B|0,ot=ot+this.C|0,at=at+this.D|0,st=st+this.E|0,lt=lt+this.F|0,ct=ct+this.G|0,ut=ut+this.H|0,this.set(rt,it,ot,at,st,lt,ct,ut)}roundClean(){SHA256_W.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class SHA224 extends SHA256{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}sha256$2.sha256=(0,utils_js_1.wrapConstructor)(()=>new SHA256);sha256$2.sha224=(0,utils_js_1.wrapConstructor)(()=>new SHA224);(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.taggedHash=tt.TAGGED_HASH_PREFIXES=tt.TAGS=tt.hash256=tt.hash160=tt.sha256=tt.sha1=tt.ripemd160=void 0;const et=ripemd160,nt=sha1,rt=sha256$2;function it(ut){return Buffer.from((0,et.ripemd160)(Uint8Array.from(ut)))}tt.ripemd160=it;function ot(ut){return Buffer.from((0,nt.sha1)(Uint8Array.from(ut)))}tt.sha1=ot;function at(ut){return Buffer.from((0,rt.sha256)(Uint8Array.from(ut)))}tt.sha256=at;function st(ut){return Buffer.from((0,et.ripemd160)((0,rt.sha256)(Uint8Array.from(ut))))}tt.hash160=st;function lt(ut){return Buffer.from((0,rt.sha256)((0,rt.sha256)(Uint8Array.from(ut))))}tt.hash256=lt,tt.TAGS=["BIP0340/challenge","BIP0340/aux","BIP0340/nonce","TapLeaf","TapBranch","TapSighash","TapTweak","KeyAgg list","KeyAgg coefficient"],tt.TAGGED_HASH_PREFIXES={"BIP0340/challenge":Buffer.from([123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124,123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124]),"BIP0340/aux":Buffer.from([241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144,241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144]),"BIP0340/nonce":Buffer.from([7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47,7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47]),TapLeaf:Buffer.from([174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238,174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238]),TapBranch:Buffer.from([25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21,25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21]),TapSighash:Buffer.from([244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49,244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49]),TapTweak:Buffer.from([232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233,232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233]),"KeyAgg list":Buffer.from([72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240,72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240]),"KeyAgg coefficient":Buffer.from([191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129,191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129])};function ct(ut,ht){return at(Buffer.concat([tt.TAGGED_HASH_PREFIXES[ut],ht]))}tt.taggedHash=ct})(crypto$2);function base$1(tt){if(tt.length>=255)throw new TypeError("Alphabet too long");for(var et=new Uint8Array(256),nt=0;nt>>0,vt=new Uint8Array(wt);yt!==bt;){for(var kt=pt[yt],St=0,Tt=wt-1;(kt!==0||St>>0,vt[Tt]=kt%at>>>0,kt=kt/at>>>0;if(kt!==0)throw new Error("Non-zero carry");gt=St,yt++}for(var At=wt-gt;At!==wt&&vt[At]===0;)At++;for(var Et=st.repeat(mt);At>>0,wt=new Uint8Array(bt);pt[mt];){var vt=et[pt.charCodeAt(mt)];if(vt===255)return;for(var kt=0,St=bt-1;(vt!==0||kt>>0,wt[St]=vt%256>>>0,vt=vt/256>>>0;if(vt!==0)throw new Error("Non-zero carry");yt=kt,mt++}for(var Tt=bt-yt;Tt!==bt&&wt[Tt]===0;)Tt++;for(var At=new Uint8Array(gt+(bt-Tt)),Et=gt;Tt!==bt;)At[Et++]=wt[Tt++];return At}function dt(pt){var mt=ht(pt);if(mt)return mt;throw new Error("Non-base"+at+" character")}return{encode:ut,decodeUnsafe:ht,decode:dt}}var src=base$1;const basex=src,ALPHABET$1="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var bs58=basex(ALPHABET$1),base58=bs58,base=function(tt){function et(ot){var at=Uint8Array.from(ot),st=tt(at),lt=at.length+4,ct=new Uint8Array(lt);return ct.set(at,0),ct.set(st.subarray(0,4),at.length),base58.encode(ct,lt)}function nt(ot){var at=ot.slice(0,-4),st=ot.slice(-4),lt=tt(at);if(!(st[0]^lt[0]|st[1]^lt[1]|st[2]^lt[2]|st[3]^lt[3]))return at}function rt(ot){var at=base58.decodeUnsafe(ot);if(at)return nt(at)}function it(ot){var at=base58.decode(ot),st=nt(at);if(!st)throw new Error("Invalid checksum");return st}return{encode:et,decode:it,decodeUnsafe:rt}},{sha256:sha256$1}=sha256$2,bs58checkBase=base;function sha256x2(tt){return sha256$1(sha256$1(tt))}var bs58check$3=bs58checkBase(sha256x2);Object.defineProperty(p2pkh$1,"__esModule",{value:!0});p2pkh$1.p2pkh=void 0;const bcrypto$5=crypto$2,networks_1$5=networks$1,bscript$8=script,types_1$6=types$6,lazy$4=lazy$8,bs58check$2=bs58check$3,OPS$4=bscript$8.OPS;function p2pkh(tt,et){if(!tt.address&&!tt.hash&&!tt.output&&!tt.pubkey&&!tt.input)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$6.typeforce)({network:types_1$6.typeforce.maybe(types_1$6.typeforce.Object),address:types_1$6.typeforce.maybe(types_1$6.typeforce.String),hash:types_1$6.typeforce.maybe(types_1$6.typeforce.BufferN(20)),output:types_1$6.typeforce.maybe(types_1$6.typeforce.BufferN(25)),pubkey:types_1$6.typeforce.maybe(types_1$6.isPoint),signature:types_1$6.typeforce.maybe(bscript$8.isCanonicalScriptSignature),input:types_1$6.typeforce.maybe(types_1$6.typeforce.Buffer)},tt);const nt=lazy$4.value(()=>{const at=Buffer.from(bs58check$2.decode(tt.address)),st=at.readUInt8(0),lt=at.slice(1);return{version:st,hash:lt}}),rt=lazy$4.value(()=>bscript$8.decompile(tt.input)),it=tt.network||networks_1$5.bitcoin,ot={name:"p2pkh",network:it};if(lazy$4.prop(ot,"address",()=>{if(!ot.hash)return;const at=Buffer.allocUnsafe(21);return at.writeUInt8(it.pubKeyHash,0),ot.hash.copy(at,1),bs58check$2.encode(at)}),lazy$4.prop(ot,"hash",()=>{if(tt.output)return tt.output.slice(3,23);if(tt.address)return nt().hash;if(tt.pubkey||ot.pubkey)return bcrypto$5.hash160(tt.pubkey||ot.pubkey)}),lazy$4.prop(ot,"output",()=>{if(ot.hash)return bscript$8.compile([OPS$4.OP_DUP,OPS$4.OP_HASH160,ot.hash,OPS$4.OP_EQUALVERIFY,OPS$4.OP_CHECKSIG])}),lazy$4.prop(ot,"pubkey",()=>{if(tt.input)return rt()[1]}),lazy$4.prop(ot,"signature",()=>{if(tt.input)return rt()[0]}),lazy$4.prop(ot,"input",()=>{if(tt.pubkey&&tt.signature)return bscript$8.compile([tt.signature,tt.pubkey])}),lazy$4.prop(ot,"witness",()=>{if(ot.input)return[]}),et.validate){let at=Buffer.from([]);if(tt.address){if(nt().version!==it.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(nt().hash.length!==20)throw new TypeError("Invalid address");at=nt().hash}if(tt.hash){if(at.length>0&&!at.equals(tt.hash))throw new TypeError("Hash mismatch");at=tt.hash}if(tt.output){if(tt.output.length!==25||tt.output[0]!==OPS$4.OP_DUP||tt.output[1]!==OPS$4.OP_HASH160||tt.output[2]!==20||tt.output[23]!==OPS$4.OP_EQUALVERIFY||tt.output[24]!==OPS$4.OP_CHECKSIG)throw new TypeError("Output is invalid");const st=tt.output.slice(3,23);if(at.length>0&&!at.equals(st))throw new TypeError("Hash mismatch");at=st}if(tt.pubkey){const st=bcrypto$5.hash160(tt.pubkey);if(at.length>0&&!at.equals(st))throw new TypeError("Hash mismatch");at=st}if(tt.input){const st=rt();if(st.length!==2)throw new TypeError("Input is invalid");if(!bscript$8.isCanonicalScriptSignature(st[0]))throw new TypeError("Input has invalid signature");if(!(0,types_1$6.isPoint)(st[1]))throw new TypeError("Input has invalid pubkey");if(tt.signature&&!tt.signature.equals(st[0]))throw new TypeError("Signature mismatch");if(tt.pubkey&&!tt.pubkey.equals(st[1]))throw new TypeError("Pubkey mismatch");const lt=bcrypto$5.hash160(st[1]);if(at.length>0&&!at.equals(lt))throw new TypeError("Hash mismatch")}}return Object.assign(ot,tt)}p2pkh$1.p2pkh=p2pkh;var p2sh$1={};Object.defineProperty(p2sh$1,"__esModule",{value:!0});p2sh$1.p2sh=void 0;const bcrypto$4=crypto$2,networks_1$4=networks$1,bscript$7=script,types_1$5=types$6,lazy$3=lazy$8,bs58check$1=bs58check$3,OPS$3=bscript$7.OPS;function stacksEqual$2(tt,et){return tt.length!==et.length?!1:tt.every((nt,rt)=>nt.equals(et[rt]))}function p2sh(tt,et){if(!tt.address&&!tt.hash&&!tt.output&&!tt.redeem&&!tt.input)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$5.typeforce)({network:types_1$5.typeforce.maybe(types_1$5.typeforce.Object),address:types_1$5.typeforce.maybe(types_1$5.typeforce.String),hash:types_1$5.typeforce.maybe(types_1$5.typeforce.BufferN(20)),output:types_1$5.typeforce.maybe(types_1$5.typeforce.BufferN(23)),redeem:types_1$5.typeforce.maybe({network:types_1$5.typeforce.maybe(types_1$5.typeforce.Object),output:types_1$5.typeforce.maybe(types_1$5.typeforce.Buffer),input:types_1$5.typeforce.maybe(types_1$5.typeforce.Buffer),witness:types_1$5.typeforce.maybe(types_1$5.typeforce.arrayOf(types_1$5.typeforce.Buffer))}),input:types_1$5.typeforce.maybe(types_1$5.typeforce.Buffer),witness:types_1$5.typeforce.maybe(types_1$5.typeforce.arrayOf(types_1$5.typeforce.Buffer))},tt);let nt=tt.network;nt||(nt=tt.redeem&&tt.redeem.network||networks_1$4.bitcoin);const rt={network:nt},it=lazy$3.value(()=>{const st=Buffer.from(bs58check$1.decode(tt.address)),lt=st.readUInt8(0),ct=st.slice(1);return{version:lt,hash:ct}}),ot=lazy$3.value(()=>bscript$7.decompile(tt.input)),at=lazy$3.value(()=>{const st=ot(),lt=st[st.length-1];return{network:nt,output:lt===OPS$3.OP_FALSE?Buffer.from([]):lt,input:bscript$7.compile(st.slice(0,-1)),witness:tt.witness||[]}});if(lazy$3.prop(rt,"address",()=>{if(!rt.hash)return;const st=Buffer.allocUnsafe(21);return st.writeUInt8(rt.network.scriptHash,0),rt.hash.copy(st,1),bs58check$1.encode(st)}),lazy$3.prop(rt,"hash",()=>{if(tt.output)return tt.output.slice(2,22);if(tt.address)return it().hash;if(rt.redeem&&rt.redeem.output)return bcrypto$4.hash160(rt.redeem.output)}),lazy$3.prop(rt,"output",()=>{if(rt.hash)return bscript$7.compile([OPS$3.OP_HASH160,rt.hash,OPS$3.OP_EQUAL])}),lazy$3.prop(rt,"redeem",()=>{if(tt.input)return at()}),lazy$3.prop(rt,"input",()=>{if(!(!tt.redeem||!tt.redeem.input||!tt.redeem.output))return bscript$7.compile([].concat(bscript$7.decompile(tt.redeem.input),tt.redeem.output))}),lazy$3.prop(rt,"witness",()=>{if(rt.redeem&&rt.redeem.witness)return rt.redeem.witness;if(rt.input)return[]}),lazy$3.prop(rt,"name",()=>{const st=["p2sh"];return rt.redeem!==void 0&&rt.redeem.name!==void 0&&st.push(rt.redeem.name),st.join("-")}),et.validate){let st=Buffer.from([]);if(tt.address){if(it().version!==nt.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(it().hash.length!==20)throw new TypeError("Invalid address");st=it().hash}if(tt.hash){if(st.length>0&&!st.equals(tt.hash))throw new TypeError("Hash mismatch");st=tt.hash}if(tt.output){if(tt.output.length!==23||tt.output[0]!==OPS$3.OP_HASH160||tt.output[1]!==20||tt.output[22]!==OPS$3.OP_EQUAL)throw new TypeError("Output is invalid");const ct=tt.output.slice(2,22);if(st.length>0&&!st.equals(ct))throw new TypeError("Hash mismatch");st=ct}const lt=ct=>{if(ct.output){const ut=bscript$7.decompile(ct.output);if(!ut||ut.length<1)throw new TypeError("Redeem.output too short");if(ct.output.byteLength>520)throw new TypeError("Redeem.output unspendable if larger than 520 bytes");if(bscript$7.countNonPushOnlyOPs(ut)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const ht=bcrypto$4.hash160(ct.output);if(st.length>0&&!st.equals(ht))throw new TypeError("Hash mismatch");st=ht}if(ct.input){const ut=ct.input.length>0,ht=ct.witness&&ct.witness.length>0;if(!ut&&!ht)throw new TypeError("Empty input");if(ut&&ht)throw new TypeError("Input and witness provided");if(ut){const dt=bscript$7.decompile(ct.input);if(!bscript$7.isPushOnly(dt))throw new TypeError("Non push-only scriptSig")}}};if(tt.input){const ct=ot();if(!ct||ct.length<1)throw new TypeError("Input too short");if(!Buffer.isBuffer(at().output))throw new TypeError("Input is invalid");lt(at())}if(tt.redeem){if(tt.redeem.network&&tt.redeem.network!==nt)throw new TypeError("Network mismatch");if(tt.input){const ct=at();if(tt.redeem.output&&!tt.redeem.output.equals(ct.output))throw new TypeError("Redeem.output mismatch");if(tt.redeem.input&&!tt.redeem.input.equals(ct.input))throw new TypeError("Redeem.input mismatch")}lt(tt.redeem)}if(tt.witness&&tt.redeem&&tt.redeem.witness&&!stacksEqual$2(tt.redeem.witness,tt.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(rt,tt)}p2sh$1.p2sh=p2sh;var p2wpkh$1={},dist$1={};Object.defineProperty(dist$1,"__esModule",{value:!0});dist$1.bech32m=dist$1.bech32=void 0;const ALPHABET="qpzry9x8gf2tvdw0s3jn54khce6mua7l",ALPHABET_MAP={};for(let tt=0;tt>25;return(tt&33554431)<<5^-(et>>0&1)&996825010^-(et>>1&1)&642813549^-(et>>2&1)&513874426^-(et>>3&1)&1027748829^-(et>>4&1)&705979059}function prefixChk(tt){let et=1;for(let nt=0;nt126)return"Invalid prefix ("+tt+")";et=polymodStep(et)^rt>>5}et=polymodStep(et);for(let nt=0;nt=nt;)ot-=nt,st.push(it>>ot&at);if(rt)ot>0&&st.push(it<=et)return"Excess padding";if(it<lt)throw new TypeError("Exceeds length limit");at=at.toLowerCase();let ct=prefixChk(at);if(typeof ct=="string")throw new Error(ct);let ut=at+"1";for(let ht=0;ht>5)throw new Error("Non 5-bit word");ct=polymodStep(ct)^dt,ut+=ALPHABET.charAt(dt)}for(let ht=0;ht<6;++ht)ct=polymodStep(ct);ct^=et;for(let ht=0;ht<6;++ht){const dt=ct>>(5-ht)*5&31;ut+=ALPHABET.charAt(dt)}return ut}function rt(at,st){if(st=st||90,at.length<8)return at+" too short";if(at.length>st)return"Exceeds length limit";const lt=at.toLowerCase(),ct=at.toUpperCase();if(at!==lt&&at!==ct)return"Mixed-case string "+at;at=lt;const ut=at.lastIndexOf("1");if(ut===-1)return"No separator character for "+at;if(ut===0)return"Missing prefix for "+at;const ht=at.slice(0,ut),dt=at.slice(ut+1);if(dt.length<6)return"Data too short";let pt=prefixChk(ht);if(typeof pt=="string")return pt;const mt=[];for(let gt=0;gt=dt.length)&&mt.push(bt)}return pt!==et?"Invalid checksum for "+at:{prefix:ht,words:mt}}function it(at,st){const lt=rt(at,st);if(typeof lt=="object")return lt}function ot(at,st){const lt=rt(at,st);if(typeof lt=="object")return lt;throw new Error(lt)}return{decodeUnsafe:it,decode:ot,encode:nt,toWords,fromWordsUnsafe,fromWords}}dist$1.bech32=getLibraryFromEncoding("bech32");dist$1.bech32m=getLibraryFromEncoding("bech32m");Object.defineProperty(p2wpkh$1,"__esModule",{value:!0});p2wpkh$1.p2wpkh=void 0;const bcrypto$3=crypto$2,networks_1$3=networks$1,bscript$6=script,types_1$4=types$6,lazy$2=lazy$8,bech32_1$3=dist$1,OPS$2=bscript$6.OPS,EMPTY_BUFFER$2=Buffer.alloc(0);function p2wpkh(tt,et){if(!tt.address&&!tt.hash&&!tt.output&&!tt.pubkey&&!tt.witness)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$4.typeforce)({address:types_1$4.typeforce.maybe(types_1$4.typeforce.String),hash:types_1$4.typeforce.maybe(types_1$4.typeforce.BufferN(20)),input:types_1$4.typeforce.maybe(types_1$4.typeforce.BufferN(0)),network:types_1$4.typeforce.maybe(types_1$4.typeforce.Object),output:types_1$4.typeforce.maybe(types_1$4.typeforce.BufferN(22)),pubkey:types_1$4.typeforce.maybe(types_1$4.isPoint),signature:types_1$4.typeforce.maybe(bscript$6.isCanonicalScriptSignature),witness:types_1$4.typeforce.maybe(types_1$4.typeforce.arrayOf(types_1$4.typeforce.Buffer))},tt);const nt=lazy$2.value(()=>{const ot=bech32_1$3.bech32.decode(tt.address),at=ot.words.shift(),st=bech32_1$3.bech32.fromWords(ot.words);return{version:at,prefix:ot.prefix,data:Buffer.from(st)}}),rt=tt.network||networks_1$3.bitcoin,it={name:"p2wpkh",network:rt};if(lazy$2.prop(it,"address",()=>{if(!it.hash)return;const ot=bech32_1$3.bech32.toWords(it.hash);return ot.unshift(0),bech32_1$3.bech32.encode(rt.bech32,ot)}),lazy$2.prop(it,"hash",()=>{if(tt.output)return tt.output.slice(2,22);if(tt.address)return nt().data;if(tt.pubkey||it.pubkey)return bcrypto$3.hash160(tt.pubkey||it.pubkey)}),lazy$2.prop(it,"output",()=>{if(it.hash)return bscript$6.compile([OPS$2.OP_0,it.hash])}),lazy$2.prop(it,"pubkey",()=>{if(tt.pubkey)return tt.pubkey;if(tt.witness)return tt.witness[1]}),lazy$2.prop(it,"signature",()=>{if(tt.witness)return tt.witness[0]}),lazy$2.prop(it,"input",()=>{if(it.witness)return EMPTY_BUFFER$2}),lazy$2.prop(it,"witness",()=>{if(tt.pubkey&&tt.signature)return[tt.signature,tt.pubkey]}),et.validate){let ot=Buffer.from([]);if(tt.address){if(rt&&rt.bech32!==nt().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(nt().version!==0)throw new TypeError("Invalid address version");if(nt().data.length!==20)throw new TypeError("Invalid address data");ot=nt().data}if(tt.hash){if(ot.length>0&&!ot.equals(tt.hash))throw new TypeError("Hash mismatch");ot=tt.hash}if(tt.output){if(tt.output.length!==22||tt.output[0]!==OPS$2.OP_0||tt.output[1]!==20)throw new TypeError("Output is invalid");if(ot.length>0&&!ot.equals(tt.output.slice(2)))throw new TypeError("Hash mismatch");ot=tt.output.slice(2)}if(tt.pubkey){const at=bcrypto$3.hash160(tt.pubkey);if(ot.length>0&&!ot.equals(at))throw new TypeError("Hash mismatch");if(ot=at,!(0,types_1$4.isPoint)(tt.pubkey)||tt.pubkey.length!==33)throw new TypeError("Invalid pubkey for p2wpkh")}if(tt.witness){if(tt.witness.length!==2)throw new TypeError("Witness is invalid");if(!bscript$6.isCanonicalScriptSignature(tt.witness[0]))throw new TypeError("Witness has invalid signature");if(!(0,types_1$4.isPoint)(tt.witness[1])||tt.witness[1].length!==33)throw new TypeError("Witness has invalid pubkey");if(tt.signature&&!tt.signature.equals(tt.witness[0]))throw new TypeError("Signature mismatch");if(tt.pubkey&&!tt.pubkey.equals(tt.witness[1]))throw new TypeError("Pubkey mismatch");const at=bcrypto$3.hash160(tt.witness[1]);if(ot.length>0&&!ot.equals(at))throw new TypeError("Hash mismatch")}}return Object.assign(it,tt)}p2wpkh$1.p2wpkh=p2wpkh;var p2wsh$1={};Object.defineProperty(p2wsh$1,"__esModule",{value:!0});p2wsh$1.p2wsh=void 0;const bcrypto$2=crypto$2,networks_1$2=networks$1,bscript$5=script,types_1$3=types$6,lazy$1=lazy$8,bech32_1$2=dist$1,OPS$1=bscript$5.OPS,EMPTY_BUFFER$1=Buffer.alloc(0);function stacksEqual$1(tt,et){return tt.length!==et.length?!1:tt.every((nt,rt)=>nt.equals(et[rt]))}function chunkHasUncompressedPubkey(tt){return!!(Buffer.isBuffer(tt)&&tt.length===65&&tt[0]===4&&(0,types_1$3.isPoint)(tt))}function p2wsh(tt,et){if(!tt.address&&!tt.hash&&!tt.output&&!tt.redeem&&!tt.witness)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$3.typeforce)({network:types_1$3.typeforce.maybe(types_1$3.typeforce.Object),address:types_1$3.typeforce.maybe(types_1$3.typeforce.String),hash:types_1$3.typeforce.maybe(types_1$3.typeforce.BufferN(32)),output:types_1$3.typeforce.maybe(types_1$3.typeforce.BufferN(34)),redeem:types_1$3.typeforce.maybe({input:types_1$3.typeforce.maybe(types_1$3.typeforce.Buffer),network:types_1$3.typeforce.maybe(types_1$3.typeforce.Object),output:types_1$3.typeforce.maybe(types_1$3.typeforce.Buffer),witness:types_1$3.typeforce.maybe(types_1$3.typeforce.arrayOf(types_1$3.typeforce.Buffer))}),input:types_1$3.typeforce.maybe(types_1$3.typeforce.BufferN(0)),witness:types_1$3.typeforce.maybe(types_1$3.typeforce.arrayOf(types_1$3.typeforce.Buffer))},tt);const nt=lazy$1.value(()=>{const at=bech32_1$2.bech32.decode(tt.address),st=at.words.shift(),lt=bech32_1$2.bech32.fromWords(at.words);return{version:st,prefix:at.prefix,data:Buffer.from(lt)}}),rt=lazy$1.value(()=>bscript$5.decompile(tt.redeem.input));let it=tt.network;it||(it=tt.redeem&&tt.redeem.network||networks_1$2.bitcoin);const ot={network:it};if(lazy$1.prop(ot,"address",()=>{if(!ot.hash)return;const at=bech32_1$2.bech32.toWords(ot.hash);return at.unshift(0),bech32_1$2.bech32.encode(it.bech32,at)}),lazy$1.prop(ot,"hash",()=>{if(tt.output)return tt.output.slice(2);if(tt.address)return nt().data;if(ot.redeem&&ot.redeem.output)return bcrypto$2.sha256(ot.redeem.output)}),lazy$1.prop(ot,"output",()=>{if(ot.hash)return bscript$5.compile([OPS$1.OP_0,ot.hash])}),lazy$1.prop(ot,"redeem",()=>{if(tt.witness)return{output:tt.witness[tt.witness.length-1],input:EMPTY_BUFFER$1,witness:tt.witness.slice(0,-1)}}),lazy$1.prop(ot,"input",()=>{if(ot.witness)return EMPTY_BUFFER$1}),lazy$1.prop(ot,"witness",()=>{if(tt.redeem&&tt.redeem.input&&tt.redeem.input.length>0&&tt.redeem.output&&tt.redeem.output.length>0){const at=bscript$5.toStack(rt());return ot.redeem=Object.assign({witness:at},tt.redeem),ot.redeem.input=EMPTY_BUFFER$1,[].concat(at,tt.redeem.output)}if(tt.redeem&&tt.redeem.output&&tt.redeem.witness)return[].concat(tt.redeem.witness,tt.redeem.output)}),lazy$1.prop(ot,"name",()=>{const at=["p2wsh"];return ot.redeem!==void 0&&ot.redeem.name!==void 0&&at.push(ot.redeem.name),at.join("-")}),et.validate){let at=Buffer.from([]);if(tt.address){if(nt().prefix!==it.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(nt().version!==0)throw new TypeError("Invalid address version");if(nt().data.length!==32)throw new TypeError("Invalid address data");at=nt().data}if(tt.hash){if(at.length>0&&!at.equals(tt.hash))throw new TypeError("Hash mismatch");at=tt.hash}if(tt.output){if(tt.output.length!==34||tt.output[0]!==OPS$1.OP_0||tt.output[1]!==32)throw new TypeError("Output is invalid");const st=tt.output.slice(2);if(at.length>0&&!at.equals(st))throw new TypeError("Hash mismatch");at=st}if(tt.redeem){if(tt.redeem.network&&tt.redeem.network!==it)throw new TypeError("Network mismatch");if(tt.redeem.input&&tt.redeem.input.length>0&&tt.redeem.witness&&tt.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(tt.redeem.output){const st=bscript$5.decompile(tt.redeem.output);if(!st||st.length<1)throw new TypeError("Redeem.output is invalid");if(tt.redeem.output.byteLength>3600)throw new TypeError("Redeem.output unspendable if larger than 3600 bytes");if(bscript$5.countNonPushOnlyOPs(st)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const lt=bcrypto$2.sha256(tt.redeem.output);if(at.length>0&&!at.equals(lt))throw new TypeError("Hash mismatch");at=lt}if(tt.redeem.input&&!bscript$5.isPushOnly(rt()))throw new TypeError("Non push-only scriptSig");if(tt.witness&&tt.redeem.witness&&!stacksEqual$1(tt.witness,tt.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch");if(tt.redeem.input&&rt().some(chunkHasUncompressedPubkey)||tt.redeem.output&&(bscript$5.decompile(tt.redeem.output)||[]).some(chunkHasUncompressedPubkey))throw new TypeError("redeem.input or redeem.output contains uncompressed pubkey")}if(tt.witness&&tt.witness.length>0){const st=tt.witness[tt.witness.length-1];if(tt.redeem&&tt.redeem.output&&!tt.redeem.output.equals(st))throw new TypeError("Witness and redeem.output mismatch");if(tt.witness.some(chunkHasUncompressedPubkey)||(bscript$5.decompile(st)||[]).some(chunkHasUncompressedPubkey))throw new TypeError("Witness contains uncompressed pubkey")}}return Object.assign(ot,tt)}p2wsh$1.p2wsh=p2wsh;var p2tr$1={},ecc_lib={};Object.defineProperty(ecc_lib,"__esModule",{value:!0});ecc_lib.getEccLib=ecc_lib.initEccLib=void 0;const _ECCLIB_CACHE={};function initEccLib(tt){tt?tt!==_ECCLIB_CACHE.eccLib&&(verifyEcc(tt),_ECCLIB_CACHE.eccLib=tt):_ECCLIB_CACHE.eccLib=tt}ecc_lib.initEccLib=initEccLib;function getEccLib(){if(!_ECCLIB_CACHE.eccLib)throw new Error("No ECC Library provided. You must call initEccLib() with a valid TinySecp256k1Interface instance");return _ECCLIB_CACHE.eccLib}ecc_lib.getEccLib=getEccLib;const h$3=tt=>Buffer.from(tt,"hex");function verifyEcc(tt){assert$2(typeof tt.isXOnlyPoint=="function"),assert$2(tt.isXOnlyPoint(h$3("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),assert$2(tt.isXOnlyPoint(h$3("fffffffffffffffffffffffffffffffffffffffffffffffffffffffeeffffc2e"))),assert$2(tt.isXOnlyPoint(h$3("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9"))),assert$2(tt.isXOnlyPoint(h$3("0000000000000000000000000000000000000000000000000000000000000001"))),assert$2(!tt.isXOnlyPoint(h$3("0000000000000000000000000000000000000000000000000000000000000000"))),assert$2(!tt.isXOnlyPoint(h$3("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"))),assert$2(typeof tt.xOnlyPointAddTweak=="function"),tweakAddVectors.forEach(et=>{const nt=tt.xOnlyPointAddTweak(h$3(et.pubkey),h$3(et.tweak));et.result===null?assert$2(nt===null):(assert$2(nt!==null),assert$2(nt.parity===et.parity),assert$2(Buffer.from(nt.xOnlyPubkey).equals(h$3(et.result))))})}function assert$2(tt){if(!tt)throw new Error("ecc library invalid")}const tweakAddVectors=[{pubkey:"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",tweak:"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140",parity:-1,result:null},{pubkey:"1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b",tweak:"a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac",parity:1,result:"e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf"},{pubkey:"2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991",tweak:"823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47",parity:0,result:"9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c"}];var bip341={},bufferutils={},Buffer$2=safeBufferExports.Buffer,MAX_SAFE_INTEGER$4=9007199254740991;function checkUInt53$1(tt){if(tt<0||tt>MAX_SAFE_INTEGER$4||tt%1!==0)throw new RangeError("value out of range")}function encode$j(tt,et,nt){if(checkUInt53$1(tt),et||(et=Buffer$2.allocUnsafe(encodingLength$1(tt))),!Buffer$2.isBuffer(et))throw new TypeError("buffer must be a Buffer instance");return nt||(nt=0),tt<253?(et.writeUInt8(tt,nt),encode$j.bytes=1):tt<=65535?(et.writeUInt8(253,nt),et.writeUInt16LE(tt,nt+1),encode$j.bytes=3):tt<=4294967295?(et.writeUInt8(254,nt),et.writeUInt32LE(tt,nt+1),encode$j.bytes=5):(et.writeUInt8(255,nt),et.writeUInt32LE(tt>>>0,nt+1),et.writeUInt32LE(tt/4294967296|0,nt+5),encode$j.bytes=9),et}function decode$i(tt,et){if(!Buffer$2.isBuffer(tt))throw new TypeError("buffer must be a Buffer instance");et||(et=0);var nt=tt.readUInt8(et);if(nt<253)return decode$i.bytes=1,nt;if(nt===253)return decode$i.bytes=3,tt.readUInt16LE(et+1);if(nt===254)return decode$i.bytes=5,tt.readUInt32LE(et+1);decode$i.bytes=9;var rt=tt.readUInt32LE(et+1),it=tt.readUInt32LE(et+5),ot=it*4294967296+rt;return checkUInt53$1(ot),ot}function encodingLength$1(tt){return checkUInt53$1(tt),tt<253?1:tt<=65535?3:tt<=4294967295?5:9}var varuintBitcoin={encode:encode$j,decode:decode$i,encodingLength:encodingLength$1};Object.defineProperty(bufferutils,"__esModule",{value:!0});bufferutils.BufferReader=bufferutils.BufferWriter=bufferutils.cloneBuffer=bufferutils.reverseBuffer=bufferutils.writeUInt64LE=bufferutils.readUInt64LE=bufferutils.varuint=void 0;const types$3=types$6,{typeforce:typeforce$2}=types$3,varuint$7=varuintBitcoin;bufferutils.varuint=varuint$7;function verifuint$1(tt,et){if(typeof tt!="number")throw new Error("cannot write a non-number as a number");if(tt<0)throw new Error("specified a negative value for writing an unsigned value");if(tt>et)throw new Error("RangeError: value out of range");if(Math.floor(tt)!==tt)throw new Error("value has a fractional component")}function readUInt64LE$1(tt,et){const nt=tt.readUInt32LE(et);let rt=tt.readUInt32LE(et+4);return rt*=4294967296,verifuint$1(rt+nt,9007199254740991),rt+nt}bufferutils.readUInt64LE=readUInt64LE$1;function writeUInt64LE$1(tt,et,nt){return verifuint$1(et,9007199254740991),tt.writeInt32LE(et&-1,nt),tt.writeUInt32LE(Math.floor(et/4294967296),nt+4),nt+8}bufferutils.writeUInt64LE=writeUInt64LE$1;function reverseBuffer$1(tt){if(tt.length<1)return tt;let et=tt.length-1,nt=0;for(let rt=0;rtthis.writeVarSlice(nt))}end(){if(this.buffer.length===this.offset)return this.buffer;throw new Error(`buffer size ${this.buffer.length}, offset ${this.offset}`)}}bufferutils.BufferWriter=BufferWriter;class BufferReader{constructor(et,nt=0){this.buffer=et,this.offset=nt,typeforce$2(types$3.tuple(types$3.Buffer,types$3.UInt32),[et,nt])}readUInt8(){const et=this.buffer.readUInt8(this.offset);return this.offset++,et}readInt32(){const et=this.buffer.readInt32LE(this.offset);return this.offset+=4,et}readUInt32(){const et=this.buffer.readUInt32LE(this.offset);return this.offset+=4,et}readUInt64(){const et=readUInt64LE$1(this.buffer,this.offset);return this.offset+=8,et}readVarInt(){const et=varuint$7.decode(this.buffer,this.offset);return this.offset+=varuint$7.decode.bytes,et}readSlice(et){if(this.buffer.length"left"in gt&&"right"in gt;function st(gt,yt){if(gt.length<33)throw new TypeError(`The control-block length is too small. Got ${gt.length}, expected min 33.`);const bt=(gt.length-33)/32;let wt=yt;for(let vt=0;vtvt.hash.compare(kt.hash));const[bt,wt]=yt;return{hash:pt(bt.hash,wt.hash),left:bt,right:wt}}tt.toHashTree=lt;function ct(gt,yt){if(at(gt)){const bt=ct(gt.left,yt);if(bt!==void 0)return[...bt,gt.right.hash];const wt=ct(gt.right,yt);if(wt!==void 0)return[...wt,gt.left.hash]}else if(gt.hash.equals(yt))return[]}tt.findScriptPath=ct;function ut(gt){const yt=gt.version||tt.LEAF_VERSION_TAPSCRIPT;return rt.taggedHash("TapLeaf",et.Buffer.concat([et.Buffer.from([yt]),mt(gt.output)]))}tt.tapleafHash=ut;function ht(gt,yt){return rt.taggedHash("TapTweak",et.Buffer.concat(yt?[gt,yt]:[gt]))}tt.tapTweakHash=ht;function dt(gt,yt){if(!et.Buffer.isBuffer(gt)||gt.length!==32||yt&&yt.length!==32)return null;const bt=ht(gt,yt),wt=(0,nt.getEccLib)().xOnlyPointAddTweak(gt,bt);return!wt||wt.xOnlyPubkey===null?null:{parity:wt.parity,x:et.Buffer.from(wt.xOnlyPubkey)}}tt.tweakKey=dt;function pt(gt,yt){return rt.taggedHash("TapBranch",et.Buffer.concat([gt,yt]))}function mt(gt){const yt=it.varuint.encodingLength(gt.length),bt=et.Buffer.allocUnsafe(yt);return it.varuint.encode(gt.length,bt),et.Buffer.concat([bt,gt])}})(bip341);Object.defineProperty(p2tr$1,"__esModule",{value:!0});p2tr$1.p2tr=void 0;const buffer_1=buffer$2,networks_1$1=networks$1,bscript$4=script,types_1$2=types$6,ecc_lib_1=ecc_lib,bip341_1$2=bip341,lazy=lazy$8,bech32_1$1=dist$1,OPS=bscript$4.OPS,TAPROOT_WITNESS_VERSION=1,ANNEX_PREFIX=80;function p2tr(tt,et){if(!tt.address&&!tt.output&&!tt.pubkey&&!tt.internalPubkey&&!(tt.witness&&tt.witness.length>1))throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$2.typeforce)({address:types_1$2.typeforce.maybe(types_1$2.typeforce.String),input:types_1$2.typeforce.maybe(types_1$2.typeforce.BufferN(0)),network:types_1$2.typeforce.maybe(types_1$2.typeforce.Object),output:types_1$2.typeforce.maybe(types_1$2.typeforce.BufferN(34)),internalPubkey:types_1$2.typeforce.maybe(types_1$2.typeforce.BufferN(32)),hash:types_1$2.typeforce.maybe(types_1$2.typeforce.BufferN(32)),pubkey:types_1$2.typeforce.maybe(types_1$2.typeforce.BufferN(32)),signature:types_1$2.typeforce.maybe(types_1$2.typeforce.anyOf(types_1$2.typeforce.BufferN(64),types_1$2.typeforce.BufferN(65))),witness:types_1$2.typeforce.maybe(types_1$2.typeforce.arrayOf(types_1$2.typeforce.Buffer)),scriptTree:types_1$2.typeforce.maybe(types_1$2.isTaptree),redeem:types_1$2.typeforce.maybe({output:types_1$2.typeforce.maybe(types_1$2.typeforce.Buffer),redeemVersion:types_1$2.typeforce.maybe(types_1$2.typeforce.Number),witness:types_1$2.typeforce.maybe(types_1$2.typeforce.arrayOf(types_1$2.typeforce.Buffer))}),redeemVersion:types_1$2.typeforce.maybe(types_1$2.typeforce.Number)},tt);const nt=lazy.value(()=>{const st=bech32_1$1.bech32m.decode(tt.address),lt=st.words.shift(),ct=bech32_1$1.bech32m.fromWords(st.words);return{version:lt,prefix:st.prefix,data:buffer_1.Buffer.from(ct)}}),rt=lazy.value(()=>{if(!(!tt.witness||!tt.witness.length))return tt.witness.length>=2&&tt.witness[tt.witness.length-1][0]===ANNEX_PREFIX?tt.witness.slice(0,-1):tt.witness.slice()}),it=lazy.value(()=>{if(tt.scriptTree)return(0,bip341_1$2.toHashTree)(tt.scriptTree);if(tt.hash)return{hash:tt.hash}}),ot=tt.network||networks_1$1.bitcoin,at={name:"p2tr",network:ot};if(lazy.prop(at,"address",()=>{if(!at.pubkey)return;const st=bech32_1$1.bech32m.toWords(at.pubkey);return st.unshift(TAPROOT_WITNESS_VERSION),bech32_1$1.bech32m.encode(ot.bech32,st)}),lazy.prop(at,"hash",()=>{const st=it();if(st)return st.hash;const lt=rt();if(lt&<.length>1){const ct=lt[lt.length-1],ut=ct[0]&types_1$2.TAPLEAF_VERSION_MASK,ht=lt[lt.length-2],dt=(0,bip341_1$2.tapleafHash)({output:ht,version:ut});return(0,bip341_1$2.rootHashFromPath)(ct,dt)}return null}),lazy.prop(at,"output",()=>{if(at.pubkey)return bscript$4.compile([OPS.OP_1,at.pubkey])}),lazy.prop(at,"redeemVersion",()=>tt.redeemVersion?tt.redeemVersion:tt.redeem&&tt.redeem.redeemVersion!==void 0&&tt.redeem.redeemVersion!==null?tt.redeem.redeemVersion:bip341_1$2.LEAF_VERSION_TAPSCRIPT),lazy.prop(at,"redeem",()=>{const st=rt();if(!(!st||st.length<2))return{output:st[st.length-2],witness:st.slice(0,-2),redeemVersion:st[st.length-1][0]&types_1$2.TAPLEAF_VERSION_MASK}}),lazy.prop(at,"pubkey",()=>{if(tt.pubkey)return tt.pubkey;if(tt.output)return tt.output.slice(2);if(tt.address)return nt().data;if(at.internalPubkey){const st=(0,bip341_1$2.tweakKey)(at.internalPubkey,at.hash);if(st)return st.x}}),lazy.prop(at,"internalPubkey",()=>{if(tt.internalPubkey)return tt.internalPubkey;const st=rt();if(st&&st.length>1)return st[st.length-1].slice(1,33)}),lazy.prop(at,"signature",()=>{if(tt.signature)return tt.signature;const st=rt();if(!(!st||st.length!==1))return st[0]}),lazy.prop(at,"witness",()=>{if(tt.witness)return tt.witness;const st=it();if(st&&tt.redeem&&tt.redeem.output&&tt.internalPubkey){const lt=(0,bip341_1$2.tapleafHash)({output:tt.redeem.output,version:at.redeemVersion}),ct=(0,bip341_1$2.findScriptPath)(st,lt);if(!ct)return;const ut=(0,bip341_1$2.tweakKey)(tt.internalPubkey,st.hash);if(!ut)return;const ht=buffer_1.Buffer.concat([buffer_1.Buffer.from([at.redeemVersion|ut.parity]),tt.internalPubkey].concat(ct));return[tt.redeem.output,ht]}if(tt.signature)return[tt.signature]}),et.validate){let st=buffer_1.Buffer.from([]);if(tt.address){if(ot&&ot.bech32!==nt().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(nt().version!==TAPROOT_WITNESS_VERSION)throw new TypeError("Invalid address version");if(nt().data.length!==32)throw new TypeError("Invalid address data");st=nt().data}if(tt.pubkey){if(st.length>0&&!st.equals(tt.pubkey))throw new TypeError("Pubkey mismatch");st=tt.pubkey}if(tt.output){if(tt.output.length!==34||tt.output[0]!==OPS.OP_1||tt.output[1]!==32)throw new TypeError("Output is invalid");if(st.length>0&&!st.equals(tt.output.slice(2)))throw new TypeError("Pubkey mismatch");st=tt.output.slice(2)}if(tt.internalPubkey){const ut=(0,bip341_1$2.tweakKey)(tt.internalPubkey,at.hash);if(st.length>0&&!st.equals(ut.x))throw new TypeError("Pubkey mismatch");st=ut.x}if(st&&st.length&&!(0,ecc_lib_1.getEccLib)().isXOnlyPoint(st))throw new TypeError("Invalid pubkey for p2tr");const lt=it();if(tt.hash&<&&!tt.hash.equals(lt.hash))throw new TypeError("Hash mismatch");if(tt.redeem&&tt.redeem.output&<){const ut=(0,bip341_1$2.tapleafHash)({output:tt.redeem.output,version:at.redeemVersion});if(!(0,bip341_1$2.findScriptPath)(lt,ut))throw new TypeError("Redeem script not in tree")}const ct=rt();if(tt.redeem&&at.redeem){if(tt.redeem.redeemVersion&&tt.redeem.redeemVersion!==at.redeem.redeemVersion)throw new TypeError("Redeem.redeemVersion and witness mismatch");if(tt.redeem.output){if(bscript$4.decompile(tt.redeem.output).length===0)throw new TypeError("Redeem.output is invalid");if(at.redeem.output&&!tt.redeem.output.equals(at.redeem.output))throw new TypeError("Redeem.output and witness mismatch")}if(tt.redeem.witness&&at.redeem.witness&&!stacksEqual(tt.redeem.witness,at.redeem.witness))throw new TypeError("Redeem.witness and witness mismatch")}if(ct&&ct.length)if(ct.length===1){if(tt.signature&&!tt.signature.equals(ct[0]))throw new TypeError("Signature mismatch")}else{const ut=ct[ct.length-1];if(ut.length<33)throw new TypeError(`The control-block length is too small. Got ${ut.length}, expected min 33.`);if((ut.length-33)%32!==0)throw new TypeError(`The control-block length of ${ut.length} is incorrect!`);const ht=(ut.length-33)/32;if(ht>128)throw new TypeError(`The script path is too long. Got ${ht}, expected max 128.`);const dt=ut.slice(1,33);if(tt.internalPubkey&&!tt.internalPubkey.equals(dt))throw new TypeError("Internal pubkey mismatch");if(!(0,ecc_lib_1.getEccLib)().isXOnlyPoint(dt))throw new TypeError("Invalid internalPubkey for p2tr witness");const pt=ut[0]&types_1$2.TAPLEAF_VERSION_MASK,mt=ct[ct.length-2],gt=(0,bip341_1$2.tapleafHash)({output:mt,version:pt}),yt=(0,bip341_1$2.rootHashFromPath)(ut,gt),bt=(0,bip341_1$2.tweakKey)(dt,yt);if(!bt)throw new TypeError("Invalid outputKey for p2tr witness");if(st.length&&!st.equals(bt.x))throw new TypeError("Pubkey mismatch for p2tr witness");if(bt.parity!==(ut[0]&1))throw new Error("Incorrect parity")}}return Object.assign(at,tt)}p2tr$1.p2tr=p2tr;function stacksEqual(tt,et){return tt.length!==et.length?!1:tt.every((nt,rt)=>nt.equals(et[rt]))}(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.p2tr=tt.p2wsh=tt.p2wpkh=tt.p2sh=tt.p2pkh=tt.p2pk=tt.p2ms=tt.embed=void 0;const et=embed;Object.defineProperty(tt,"embed",{enumerable:!0,get:function(){return et.p2data}});const nt=p2ms$1;Object.defineProperty(tt,"p2ms",{enumerable:!0,get:function(){return nt.p2ms}});const rt=p2pk$1;Object.defineProperty(tt,"p2pk",{enumerable:!0,get:function(){return rt.p2pk}});const it=p2pkh$1;Object.defineProperty(tt,"p2pkh",{enumerable:!0,get:function(){return it.p2pkh}});const ot=p2sh$1;Object.defineProperty(tt,"p2sh",{enumerable:!0,get:function(){return ot.p2sh}});const at=p2wpkh$1;Object.defineProperty(tt,"p2wpkh",{enumerable:!0,get:function(){return at.p2wpkh}});const st=p2wsh$1;Object.defineProperty(tt,"p2wsh",{enumerable:!0,get:function(){return st.p2wsh}});const lt=p2tr$1;Object.defineProperty(tt,"p2tr",{enumerable:!0,get:function(){return lt.p2tr}})})(payments$3);Object.defineProperty(address,"__esModule",{value:!0});address.toOutputScript=address.fromOutputScript=address.toBech32=address.toBase58Check=address.fromBech32=address.fromBase58Check=void 0;const networks=networks$1,payments$2=payments$3,bscript$3=script,types_1$1=types$6,bech32_1=dist$1,bs58check=bs58check$3,FUTURE_SEGWIT_MAX_SIZE=40,FUTURE_SEGWIT_MIN_SIZE=2,FUTURE_SEGWIT_MAX_VERSION=16,FUTURE_SEGWIT_MIN_VERSION=2,FUTURE_SEGWIT_VERSION_DIFF=80,FUTURE_SEGWIT_VERSION_WARNING="WARNING: Sending to a future segwit version address can lead to loss of funds. End users MUST be warned carefully in the GUI and asked if they wish to proceed with caution. Wallets should verify the segwit version from the output of fromBech32, then decide when it is safe to use which version of segwit.";function _toFutureSegwitAddress(tt,et){const nt=tt.slice(2);if(nt.lengthFUTURE_SEGWIT_MAX_SIZE)throw new TypeError("Invalid program length for segwit address");const rt=tt[0]-FUTURE_SEGWIT_VERSION_DIFF;if(rtFUTURE_SEGWIT_MAX_VERSION)throw new TypeError("Invalid version for segwit address");if(tt[1]!==nt.length)throw new TypeError("Invalid script for segwit address");return console.warn(FUTURE_SEGWIT_VERSION_WARNING),toBech32(nt,rt,et.bech32)}function fromBase58Check(tt){const et=Buffer.from(bs58check.decode(tt));if(et.length<21)throw new TypeError(tt+" is too short");if(et.length>21)throw new TypeError(tt+" is too long");const nt=et.readUint8(0),rt=et.slice(1);return{version:nt,hash:rt}}address.fromBase58Check=fromBase58Check;function fromBech32(tt){let et,nt;try{et=bech32_1.bech32.decode(tt)}catch{}if(et){if(nt=et.words[0],nt!==0)throw new TypeError(tt+" uses wrong encoding")}else if(et=bech32_1.bech32m.decode(tt),nt=et.words[0],nt===0)throw new TypeError(tt+" uses wrong encoding");const rt=bech32_1.bech32.fromWords(et.words.slice(1));return{version:nt,prefix:et.prefix,data:Buffer.from(rt)}}address.fromBech32=fromBech32;function toBase58Check(tt,et){(0,types_1$1.typeforce)((0,types_1$1.tuple)(types_1$1.Hash160bit,types_1$1.UInt8),arguments);const nt=Buffer.allocUnsafe(21);return nt.writeUInt8(et,0),tt.copy(nt,1),bs58check.encode(nt)}address.toBase58Check=toBase58Check;function toBech32(tt,et,nt){const rt=bech32_1.bech32.toWords(tt);return rt.unshift(et),et===0?bech32_1.bech32.encode(nt,rt):bech32_1.bech32m.encode(nt,rt)}address.toBech32=toBech32;function fromOutputScript(tt,et){et=et||networks.bitcoin;try{return payments$2.p2pkh({output:tt,network:et}).address}catch{}try{return payments$2.p2sh({output:tt,network:et}).address}catch{}try{return payments$2.p2wpkh({output:tt,network:et}).address}catch{}try{return payments$2.p2wsh({output:tt,network:et}).address}catch{}try{return payments$2.p2tr({output:tt,network:et}).address}catch{}try{return _toFutureSegwitAddress(tt,et)}catch{}throw new Error(bscript$3.toASM(tt)+" has no matching Address")}address.fromOutputScript=fromOutputScript;function toOutputScript(tt,et){et=et||networks.bitcoin;let nt,rt;try{nt=fromBase58Check(tt)}catch{}if(nt){if(nt.version===et.pubKeyHash)return payments$2.p2pkh({hash:nt.hash}).output;if(nt.version===et.scriptHash)return payments$2.p2sh({hash:nt.hash}).output}else{try{rt=fromBech32(tt)}catch{}if(rt){if(rt.prefix!==et.bech32)throw new Error(tt+" has an invalid prefix");if(rt.version===0){if(rt.data.length===20)return payments$2.p2wpkh({hash:rt.data}).output;if(rt.data.length===32)return payments$2.p2wsh({hash:rt.data}).output}else if(rt.version===1){if(rt.data.length===32)return payments$2.p2tr({pubkey:rt.data}).output}else if(rt.version>=FUTURE_SEGWIT_MIN_VERSION&&rt.version<=FUTURE_SEGWIT_MAX_VERSION&&rt.data.length>=FUTURE_SEGWIT_MIN_SIZE&&rt.data.length<=FUTURE_SEGWIT_MAX_SIZE)return console.warn(FUTURE_SEGWIT_VERSION_WARNING),bscript$3.compile([rt.version+FUTURE_SEGWIT_VERSION_DIFF,rt.data])}}throw new Error(tt+" has no matching Script")}address.toOutputScript=toOutputScript;var block={},merkle={};Object.defineProperty(merkle,"__esModule",{value:!0});merkle.fastMerkleRoot=void 0;function fastMerkleRoot(tt,et){if(!Array.isArray(tt))throw TypeError("Expected values Array");if(typeof et!="function")throw TypeError("Expected digest Function");let nt=tt.length;const rt=tt.concat();for(;nt>1;){let it=0;for(let ot=0;otnt+varSliceSize(rt),0)}const EMPTY_BUFFER=Buffer.allocUnsafe(0),EMPTY_WITNESS=[],ZERO=Buffer.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),ONE$1=Buffer.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),VALUE_UINT64_MAX=Buffer.from("ffffffffffffffff","hex"),BLANK_OUTPUT={script:EMPTY_BUFFER,valueBuffer:VALUE_UINT64_MAX};function isOutput(tt){return tt.value!==void 0}class Transaction{constructor(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}static fromBuffer(et,nt){const rt=new bufferutils_1$2.BufferReader(et),it=new Transaction;it.version=rt.readInt32();const ot=rt.readUInt8(),at=rt.readUInt8();let st=!1;ot===Transaction.ADVANCED_TRANSACTION_MARKER&&at===Transaction.ADVANCED_TRANSACTION_FLAG?st=!0:rt.offset-=2;const lt=rt.readVarInt();for(let ut=0;utet.witness.length!==0)}weight(){const et=this.byteLength(!1),nt=this.byteLength(!0);return et*3+nt}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(et=!0){const nt=et&&this.hasWitnesses();return(nt?10:8)+bufferutils_1$2.varuint.encodingLength(this.ins.length)+bufferutils_1$2.varuint.encodingLength(this.outs.length)+this.ins.reduce((rt,it)=>rt+40+varSliceSize(it.script),0)+this.outs.reduce((rt,it)=>rt+8+varSliceSize(it.script),0)+(nt?this.ins.reduce((rt,it)=>rt+vectorSize(it.witness),0):0)}clone(){const et=new Transaction;return et.version=this.version,et.locktime=this.locktime,et.ins=this.ins.map(nt=>({hash:nt.hash,index:nt.index,script:nt.script,sequence:nt.sequence,witness:nt.witness})),et.outs=this.outs.map(nt=>({script:nt.script,value:nt.value})),et}hashForSignature(et,nt,rt){if(typeforce$1(types$2.tuple(types$2.UInt32,types$2.Buffer,types$2.Number),arguments),et>=this.ins.length)return ONE$1;const it=bscript$2.compile(bscript$2.decompile(nt).filter(st=>st!==script_1.OPS.OP_CODESEPARATOR)),ot=this.clone();if((rt&31)===Transaction.SIGHASH_NONE)ot.outs=[],ot.ins.forEach((st,lt)=>{lt!==et&&(st.sequence=0)});else if((rt&31)===Transaction.SIGHASH_SINGLE){if(et>=this.outs.length)return ONE$1;ot.outs.length=et+1;for(let st=0;st{lt!==et&&(st.sequence=0)})}rt&Transaction.SIGHASH_ANYONECANPAY?(ot.ins=[ot.ins[et]],ot.ins[0].script=it):(ot.ins.forEach(st=>{st.script=EMPTY_BUFFER}),ot.ins[et].script=it);const at=Buffer.allocUnsafe(ot.byteLength(!1)+4);return at.writeInt32LE(rt,at.length-4),ot.__toBuffer(at,0,!1),bcrypto$1.hash256(at)}hashForWitnessV1(et,nt,rt,it,ot,at){if(typeforce$1(types$2.tuple(types$2.UInt32,typeforce$1.arrayOf(types$2.Buffer),typeforce$1.arrayOf(types$2.Satoshi),types$2.UInt32),arguments),rt.length!==this.ins.length||nt.length!==this.ins.length)throw new Error("Must supply prevout script and value for all inputs");const st=it===Transaction.SIGHASH_DEFAULT?Transaction.SIGHASH_ALL:it&Transaction.SIGHASH_OUTPUT_MASK,ct=(it&Transaction.SIGHASH_INPUT_MASK)===Transaction.SIGHASH_ANYONECANPAY,ut=st===Transaction.SIGHASH_NONE,ht=st===Transaction.SIGHASH_SINGLE;let dt=EMPTY_BUFFER,pt=EMPTY_BUFFER,mt=EMPTY_BUFFER,gt=EMPTY_BUFFER,yt=EMPTY_BUFFER;if(!ct){let kt=bufferutils_1$2.BufferWriter.withCapacity(36*this.ins.length);this.ins.forEach(St=>{kt.writeSlice(St.hash),kt.writeUInt32(St.index)}),dt=bcrypto$1.sha256(kt.end()),kt=bufferutils_1$2.BufferWriter.withCapacity(8*this.ins.length),rt.forEach(St=>kt.writeUInt64(St)),pt=bcrypto$1.sha256(kt.end()),kt=bufferutils_1$2.BufferWriter.withCapacity(nt.map(varSliceSize).reduce((St,Tt)=>St+Tt)),nt.forEach(St=>kt.writeVarSlice(St)),mt=bcrypto$1.sha256(kt.end()),kt=bufferutils_1$2.BufferWriter.withCapacity(4*this.ins.length),this.ins.forEach(St=>kt.writeUInt32(St.sequence)),gt=bcrypto$1.sha256(kt.end())}if(ut||ht){if(ht&&et8+varSliceSize(Tt.script)).reduce((Tt,At)=>Tt+At),St=bufferutils_1$2.BufferWriter.withCapacity(kt);this.outs.forEach(Tt=>{St.writeUInt64(Tt.value),St.writeVarSlice(Tt.script)}),yt=bcrypto$1.sha256(St.end())}const bt=(ot?2:0)+(at?1:0),wt=174-(ct?49:0)-(ut?32:0)+(at?32:0)+(ot?37:0),vt=bufferutils_1$2.BufferWriter.withCapacity(wt);if(vt.writeUInt8(it),vt.writeInt32(this.version),vt.writeUInt32(this.locktime),vt.writeSlice(dt),vt.writeSlice(pt),vt.writeSlice(mt),vt.writeSlice(gt),ut||ht||vt.writeSlice(yt),vt.writeUInt8(bt),ct){const kt=this.ins[et];vt.writeSlice(kt.hash),vt.writeUInt32(kt.index),vt.writeUInt64(rt[et]),vt.writeVarSlice(nt[et]),vt.writeUInt32(kt.sequence)}else vt.writeUInt32(et);if(at){const kt=bufferutils_1$2.BufferWriter.withCapacity(varSliceSize(at));kt.writeVarSlice(at),vt.writeSlice(bcrypto$1.sha256(kt.end()))}return ht&&vt.writeSlice(yt),ot&&(vt.writeSlice(ot),vt.writeUInt8(0),vt.writeUInt32(4294967295)),bcrypto$1.taggedHash("TapSighash",Buffer.concat([Buffer.from([0]),vt.end()]))}hashForWitnessV0(et,nt,rt,it){typeforce$1(types$2.tuple(types$2.UInt32,types$2.Buffer,types$2.Satoshi,types$2.UInt32),arguments);let ot=Buffer.from([]),at,st=ZERO,lt=ZERO,ct=ZERO;if(it&Transaction.SIGHASH_ANYONECANPAY||(ot=Buffer.allocUnsafe(36*this.ins.length),at=new bufferutils_1$2.BufferWriter(ot,0),this.ins.forEach(ht=>{at.writeSlice(ht.hash),at.writeUInt32(ht.index)}),lt=bcrypto$1.hash256(ot)),!(it&Transaction.SIGHASH_ANYONECANPAY)&&(it&31)!==Transaction.SIGHASH_SINGLE&&(it&31)!==Transaction.SIGHASH_NONE&&(ot=Buffer.allocUnsafe(4*this.ins.length),at=new bufferutils_1$2.BufferWriter(ot,0),this.ins.forEach(ht=>{at.writeUInt32(ht.sequence)}),ct=bcrypto$1.hash256(ot)),(it&31)!==Transaction.SIGHASH_SINGLE&&(it&31)!==Transaction.SIGHASH_NONE){const ht=this.outs.reduce((dt,pt)=>dt+8+varSliceSize(pt.script),0);ot=Buffer.allocUnsafe(ht),at=new bufferutils_1$2.BufferWriter(ot,0),this.outs.forEach(dt=>{at.writeUInt64(dt.value),at.writeVarSlice(dt.script)}),st=bcrypto$1.hash256(ot)}else if((it&31)===Transaction.SIGHASH_SINGLE&&et{it.writeSlice(at.hash),it.writeUInt32(at.index),it.writeVarSlice(at.script),it.writeUInt32(at.sequence)}),it.writeVarInt(this.outs.length),this.outs.forEach(at=>{isOutput(at)?it.writeUInt64(at.value):it.writeSlice(at.valueBuffer),it.writeVarSlice(at.script)}),ot&&this.ins.forEach(at=>{it.writeVector(at.witness)}),it.writeUInt32(this.locktime),nt!==void 0?et.slice(nt,it.offset):et}}transaction.Transaction=Transaction;Transaction.DEFAULT_SEQUENCE=4294967295;Transaction.SIGHASH_DEFAULT=0;Transaction.SIGHASH_ALL=1;Transaction.SIGHASH_NONE=2;Transaction.SIGHASH_SINGLE=3;Transaction.SIGHASH_ANYONECANPAY=128;Transaction.SIGHASH_OUTPUT_MASK=3;Transaction.SIGHASH_INPUT_MASK=128;Transaction.ADVANCED_TRANSACTION_MARKER=0;Transaction.ADVANCED_TRANSACTION_FLAG=1;Object.defineProperty(block,"__esModule",{value:!0});block.Block=void 0;const bufferutils_1$1=bufferutils,bcrypto=crypto$2,merkle_1=merkle,transaction_1$3=transaction,types$1=types$6,{typeforce}=types$1,errorMerkleNoTxes=new TypeError("Cannot compute merkle root for zero transactions"),errorWitnessNotSegwit=new TypeError("Cannot compute witness commit for non-segwit block");let Block$1=class Hm{constructor(){this.version=1,this.prevHash=void 0,this.merkleRoot=void 0,this.timestamp=0,this.witnessCommit=void 0,this.bits=0,this.nonce=0,this.transactions=void 0}static fromBuffer(et){if(et.length<80)throw new Error("Buffer too small (< 80 bytes)");const nt=new bufferutils_1$1.BufferReader(et),rt=new Hm;if(rt.version=nt.readInt32(),rt.prevHash=nt.readSlice(32),rt.merkleRoot=nt.readSlice(32),rt.timestamp=nt.readUInt32(),rt.bits=nt.readUInt32(),rt.nonce=nt.readUInt32(),et.length===80)return rt;const it=()=>{const st=transaction_1$3.Transaction.fromBuffer(nt.buffer.slice(nt.offset),!0);return nt.offset+=st.byteLength(),st},ot=nt.readVarInt();rt.transactions=[];for(let st=0;st>24)-3,rt=et&8388607,it=Buffer.alloc(32,0);return it.writeUIntBE(rt,29-nt,3),it}static calculateMerkleRoot(et,nt){if(typeforce([{getHash:types$1.Function}],et),et.length===0)throw errorMerkleNoTxes;if(nt&&!txesHaveWitnessCommit(et))throw errorWitnessNotSegwit;const rt=et.map(ot=>ot.getHash(nt)),it=(0,merkle_1.fastMerkleRoot)(rt,bcrypto.hash256);return nt?bcrypto.hash256(Buffer.concat([it,et[0].ins[0].witness[0]])):it}getWitnessCommit(){if(!txesHaveWitnessCommit(this.transactions))return null;const et=this.transactions[0].outs.filter(rt=>rt.script.slice(0,6).equals(Buffer.from("6a24aa21a9ed","hex"))).map(rt=>rt.script.slice(6,38));if(et.length===0)return null;const nt=et[et.length-1];return nt instanceof Buffer&&nt.length===32?nt:null}hasWitnessCommit(){return this.witnessCommit instanceof Buffer&&this.witnessCommit.length===32||this.getWitnessCommit()!==null}hasWitness(){return anyTxHasWitness(this.transactions)}weight(){const et=this.byteLength(!1,!1),nt=this.byteLength(!1,!0);return et*3+nt}byteLength(et,nt=!0){return et||!this.transactions?80:80+bufferutils_1$1.varuint.encodingLength(this.transactions.length)+this.transactions.reduce((rt,it)=>rt+it.byteLength(nt),0)}getHash(){return bcrypto.hash256(this.toBuffer(!0))}getId(){return(0,bufferutils_1$1.reverseBuffer)(this.getHash()).toString("hex")}getUTCDate(){const et=new Date(0);return et.setUTCSeconds(this.timestamp),et}toBuffer(et){const nt=Buffer.allocUnsafe(this.byteLength(et)),rt=new bufferutils_1$1.BufferWriter(nt);return rt.writeInt32(this.version),rt.writeSlice(this.prevHash),rt.writeSlice(this.merkleRoot),rt.writeUInt32(this.timestamp),rt.writeUInt32(this.bits),rt.writeUInt32(this.nonce),et||!this.transactions||(bufferutils_1$1.varuint.encode(this.transactions.length,nt,rt.offset),rt.offset+=bufferutils_1$1.varuint.encode.bytes,this.transactions.forEach(it=>{const ot=it.byteLength();it.toBuffer(nt,rt.offset),rt.offset+=ot})),nt}toHex(et){return this.toBuffer(et).toString("hex")}checkTxRoots(){const et=this.hasWitnessCommit();return!et&&this.hasWitness()?!1:this.__checkMerkleRoot()&&(et?this.__checkWitnessCommit():!0)}checkProofOfWork(){const et=(0,bufferutils_1$1.reverseBuffer)(this.getHash()),nt=Hm.calculateTarget(this.bits);return et.compare(nt)<=0}__checkMerkleRoot(){if(!this.transactions)throw errorMerkleNoTxes;const et=Hm.calculateMerkleRoot(this.transactions);return this.merkleRoot.compare(et)===0}__checkWitnessCommit(){if(!this.transactions)throw errorMerkleNoTxes;if(!this.hasWitnessCommit())throw errorWitnessNotSegwit;const et=Hm.calculateMerkleRoot(this.transactions,!0);return this.witnessCommit.compare(et)===0}};block.Block=Block$1;function txesHaveWitnessCommit(tt){return tt instanceof Array&&tt[0]&&tt[0].ins&&tt[0].ins instanceof Array&&tt[0].ins[0]&&tt[0].ins[0].witness&&tt[0].ins[0].witness instanceof Array&&tt[0].ins[0].witness.length>0}function anyTxHasWitness(tt){return tt instanceof Array&&tt.some(et=>typeof et=="object"&&et.ins instanceof Array&&et.ins.some(nt=>typeof nt=="object"&&nt.witness instanceof Array&&nt.witness.length>0))}var psbt$1={},psbt={},combiner={},parser$2={},fromBuffer={},converter={},typeFields={};(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),function(et){et[et.UNSIGNED_TX=0]="UNSIGNED_TX",et[et.GLOBAL_XPUB=1]="GLOBAL_XPUB"}(tt.GlobalTypes||(tt.GlobalTypes={})),tt.GLOBAL_TYPE_NAMES=["unsignedTx","globalXpub"],function(et){et[et.NON_WITNESS_UTXO=0]="NON_WITNESS_UTXO",et[et.WITNESS_UTXO=1]="WITNESS_UTXO",et[et.PARTIAL_SIG=2]="PARTIAL_SIG",et[et.SIGHASH_TYPE=3]="SIGHASH_TYPE",et[et.REDEEM_SCRIPT=4]="REDEEM_SCRIPT",et[et.WITNESS_SCRIPT=5]="WITNESS_SCRIPT",et[et.BIP32_DERIVATION=6]="BIP32_DERIVATION",et[et.FINAL_SCRIPTSIG=7]="FINAL_SCRIPTSIG",et[et.FINAL_SCRIPTWITNESS=8]="FINAL_SCRIPTWITNESS",et[et.POR_COMMITMENT=9]="POR_COMMITMENT",et[et.TAP_KEY_SIG=19]="TAP_KEY_SIG",et[et.TAP_SCRIPT_SIG=20]="TAP_SCRIPT_SIG",et[et.TAP_LEAF_SCRIPT=21]="TAP_LEAF_SCRIPT",et[et.TAP_BIP32_DERIVATION=22]="TAP_BIP32_DERIVATION",et[et.TAP_INTERNAL_KEY=23]="TAP_INTERNAL_KEY",et[et.TAP_MERKLE_ROOT=24]="TAP_MERKLE_ROOT"}(tt.InputTypes||(tt.InputTypes={})),tt.INPUT_TYPE_NAMES=["nonWitnessUtxo","witnessUtxo","partialSig","sighashType","redeemScript","witnessScript","bip32Derivation","finalScriptSig","finalScriptWitness","porCommitment","tapKeySig","tapScriptSig","tapLeafScript","tapBip32Derivation","tapInternalKey","tapMerkleRoot"],function(et){et[et.REDEEM_SCRIPT=0]="REDEEM_SCRIPT",et[et.WITNESS_SCRIPT=1]="WITNESS_SCRIPT",et[et.BIP32_DERIVATION=2]="BIP32_DERIVATION",et[et.TAP_INTERNAL_KEY=5]="TAP_INTERNAL_KEY",et[et.TAP_TREE=6]="TAP_TREE",et[et.TAP_BIP32_DERIVATION=7]="TAP_BIP32_DERIVATION"}(tt.OutputTypes||(tt.OutputTypes={})),tt.OUTPUT_TYPE_NAMES=["redeemScript","witnessScript","bip32Derivation","tapInternalKey","tapTree","tapBip32Derivation"]})(typeFields);var globalXpub$1={};Object.defineProperty(globalXpub$1,"__esModule",{value:!0});const typeFields_1$g=typeFields,range$6=tt=>[...Array(tt).keys()];function decode$h(tt){if(tt.key[0]!==typeFields_1$g.GlobalTypes.GLOBAL_XPUB)throw new Error("Decode Error: could not decode globalXpub with key 0x"+tt.key.toString("hex"));if(tt.key.length!==79||![2,3].includes(tt.key[46]))throw new Error("Decode Error: globalXpub has invalid extended pubkey in key 0x"+tt.key.toString("hex"));if(tt.value.length/4%1!==0)throw new Error("Decode Error: Global GLOBAL_XPUB value length should be multiple of 4");const et=tt.key.slice(1),nt={masterFingerprint:tt.value.slice(0,4),extendedPubkey:et,path:"m"};for(const rt of range$6(tt.value.length/4-1)){const it=tt.value.readUInt32LE(rt*4+4),ot=!!(it&2147483648),at=it&2147483647;nt.path+="/"+at.toString(10)+(ot?"'":"")}return nt}globalXpub$1.decode=decode$h;function encode$i(tt){const et=Buffer.from([typeFields_1$g.GlobalTypes.GLOBAL_XPUB]),nt=Buffer.concat([et,tt.extendedPubkey]),rt=tt.path.split("/"),it=Buffer.allocUnsafe(rt.length*4);tt.masterFingerprint.copy(it,0);let ot=4;return rt.slice(1).forEach(at=>{const st=at.slice(-1)==="'";let lt=2147483647&parseInt(st?at.slice(0,-1):at,10);st&&(lt+=2147483648),it.writeUInt32LE(lt,ot),ot+=4}),{key:nt,value:it}}globalXpub$1.encode=encode$i;globalXpub$1.expected="{ masterFingerprint: Buffer; extendedPubkey: Buffer; path: string; }";function check$c(tt){const et=tt.extendedPubkey,nt=tt.masterFingerprint,rt=tt.path;return Buffer.isBuffer(et)&&et.length===78&&[2,3].indexOf(et[45])>-1&&Buffer.isBuffer(nt)&&nt.length===4&&typeof rt=="string"&&!!rt.match(/^m(\/\d+'?)*$/)}globalXpub$1.check=check$c;function canAddToArray$3(tt,et,nt){const rt=et.extendedPubkey.toString("hex");return nt.has(rt)?!1:(nt.add(rt),tt.filter(it=>it.extendedPubkey.equals(et.extendedPubkey)).length===0)}globalXpub$1.canAddToArray=canAddToArray$3;var unsignedTx$1={};Object.defineProperty(unsignedTx$1,"__esModule",{value:!0});const typeFields_1$f=typeFields;function encode$h(tt){return{key:Buffer.from([typeFields_1$f.GlobalTypes.UNSIGNED_TX]),value:tt.toBuffer()}}unsignedTx$1.encode=encode$h;var finalScriptSig$1={};Object.defineProperty(finalScriptSig$1,"__esModule",{value:!0});const typeFields_1$e=typeFields;function decode$g(tt){if(tt.key[0]!==typeFields_1$e.InputTypes.FINAL_SCRIPTSIG)throw new Error("Decode Error: could not decode finalScriptSig with key 0x"+tt.key.toString("hex"));return tt.value}finalScriptSig$1.decode=decode$g;function encode$g(tt){return{key:Buffer.from([typeFields_1$e.InputTypes.FINAL_SCRIPTSIG]),value:tt}}finalScriptSig$1.encode=encode$g;finalScriptSig$1.expected="Buffer";function check$b(tt){return Buffer.isBuffer(tt)}finalScriptSig$1.check=check$b;function canAdd$8(tt,et){return!!tt&&!!et&&tt.finalScriptSig===void 0}finalScriptSig$1.canAdd=canAdd$8;var finalScriptWitness$1={};Object.defineProperty(finalScriptWitness$1,"__esModule",{value:!0});const typeFields_1$d=typeFields;function decode$f(tt){if(tt.key[0]!==typeFields_1$d.InputTypes.FINAL_SCRIPTWITNESS)throw new Error("Decode Error: could not decode finalScriptWitness with key 0x"+tt.key.toString("hex"));return tt.value}finalScriptWitness$1.decode=decode$f;function encode$f(tt){return{key:Buffer.from([typeFields_1$d.InputTypes.FINAL_SCRIPTWITNESS]),value:tt}}finalScriptWitness$1.encode=encode$f;finalScriptWitness$1.expected="Buffer";function check$a(tt){return Buffer.isBuffer(tt)}finalScriptWitness$1.check=check$a;function canAdd$7(tt,et){return!!tt&&!!et&&tt.finalScriptWitness===void 0}finalScriptWitness$1.canAdd=canAdd$7;var nonWitnessUtxo$1={};Object.defineProperty(nonWitnessUtxo$1,"__esModule",{value:!0});const typeFields_1$c=typeFields;function decode$e(tt){if(tt.key[0]!==typeFields_1$c.InputTypes.NON_WITNESS_UTXO)throw new Error("Decode Error: could not decode nonWitnessUtxo with key 0x"+tt.key.toString("hex"));return tt.value}nonWitnessUtxo$1.decode=decode$e;function encode$e(tt){return{key:Buffer.from([typeFields_1$c.InputTypes.NON_WITNESS_UTXO]),value:tt}}nonWitnessUtxo$1.encode=encode$e;nonWitnessUtxo$1.expected="Buffer";function check$9(tt){return Buffer.isBuffer(tt)}nonWitnessUtxo$1.check=check$9;function canAdd$6(tt,et){return!!tt&&!!et&&tt.nonWitnessUtxo===void 0}nonWitnessUtxo$1.canAdd=canAdd$6;var partialSig$1={};Object.defineProperty(partialSig$1,"__esModule",{value:!0});const typeFields_1$b=typeFields;function decode$d(tt){if(tt.key[0]!==typeFields_1$b.InputTypes.PARTIAL_SIG)throw new Error("Decode Error: could not decode partialSig with key 0x"+tt.key.toString("hex"));if(!(tt.key.length===34||tt.key.length===66)||![2,3,4].includes(tt.key[1]))throw new Error("Decode Error: partialSig has invalid pubkey in key 0x"+tt.key.toString("hex"));return{pubkey:tt.key.slice(1),signature:tt.value}}partialSig$1.decode=decode$d;function encode$d(tt){const et=Buffer.from([typeFields_1$b.InputTypes.PARTIAL_SIG]);return{key:Buffer.concat([et,tt.pubkey]),value:tt.signature}}partialSig$1.encode=encode$d;partialSig$1.expected="{ pubkey: Buffer; signature: Buffer; }";function check$8(tt){return Buffer.isBuffer(tt.pubkey)&&Buffer.isBuffer(tt.signature)&&[33,65].includes(tt.pubkey.length)&&[2,3,4].includes(tt.pubkey[0])&&isDerSigWithSighash(tt.signature)}partialSig$1.check=check$8;function isDerSigWithSighash(tt){if(!Buffer.isBuffer(tt)||tt.length<9||tt[0]!==48||tt.length!==tt[1]+3||tt[2]!==2)return!1;const et=tt[3];if(et>33||et<1||tt[3+et+1]!==2)return!1;const nt=tt[3+et+2];return!(nt>33||nt<1||tt.length!==3+et+2+nt+2)}function canAddToArray$2(tt,et,nt){const rt=et.pubkey.toString("hex");return nt.has(rt)?!1:(nt.add(rt),tt.filter(it=>it.pubkey.equals(et.pubkey)).length===0)}partialSig$1.canAddToArray=canAddToArray$2;var porCommitment$1={};Object.defineProperty(porCommitment$1,"__esModule",{value:!0});const typeFields_1$a=typeFields;function decode$c(tt){if(tt.key[0]!==typeFields_1$a.InputTypes.POR_COMMITMENT)throw new Error("Decode Error: could not decode porCommitment with key 0x"+tt.key.toString("hex"));return tt.value.toString("utf8")}porCommitment$1.decode=decode$c;function encode$c(tt){return{key:Buffer.from([typeFields_1$a.InputTypes.POR_COMMITMENT]),value:Buffer.from(tt,"utf8")}}porCommitment$1.encode=encode$c;porCommitment$1.expected="string";function check$7(tt){return typeof tt=="string"}porCommitment$1.check=check$7;function canAdd$5(tt,et){return!!tt&&!!et&&tt.porCommitment===void 0}porCommitment$1.canAdd=canAdd$5;var sighashType$1={};Object.defineProperty(sighashType$1,"__esModule",{value:!0});const typeFields_1$9=typeFields;function decode$b(tt){if(tt.key[0]!==typeFields_1$9.InputTypes.SIGHASH_TYPE)throw new Error("Decode Error: could not decode sighashType with key 0x"+tt.key.toString("hex"));return tt.value.readUInt32LE(0)}sighashType$1.decode=decode$b;function encode$b(tt){const et=Buffer.from([typeFields_1$9.InputTypes.SIGHASH_TYPE]),nt=Buffer.allocUnsafe(4);return nt.writeUInt32LE(tt,0),{key:et,value:nt}}sighashType$1.encode=encode$b;sighashType$1.expected="number";function check$6(tt){return typeof tt=="number"}sighashType$1.check=check$6;function canAdd$4(tt,et){return!!tt&&!!et&&tt.sighashType===void 0}sighashType$1.canAdd=canAdd$4;var tapKeySig$1={};Object.defineProperty(tapKeySig$1,"__esModule",{value:!0});const typeFields_1$8=typeFields;function decode$a(tt){if(tt.key[0]!==typeFields_1$8.InputTypes.TAP_KEY_SIG||tt.key.length!==1)throw new Error("Decode Error: could not decode tapKeySig with key 0x"+tt.key.toString("hex"));if(!check$5(tt.value))throw new Error("Decode Error: tapKeySig not a valid 64-65-byte BIP340 signature");return tt.value}tapKeySig$1.decode=decode$a;function encode$a(tt){return{key:Buffer.from([typeFields_1$8.InputTypes.TAP_KEY_SIG]),value:tt}}tapKeySig$1.encode=encode$a;tapKeySig$1.expected="Buffer";function check$5(tt){return Buffer.isBuffer(tt)&&(tt.length===64||tt.length===65)}tapKeySig$1.check=check$5;function canAdd$3(tt,et){return!!tt&&!!et&&tt.tapKeySig===void 0}tapKeySig$1.canAdd=canAdd$3;var tapLeafScript$1={};Object.defineProperty(tapLeafScript$1,"__esModule",{value:!0});const typeFields_1$7=typeFields;function decode$9(tt){if(tt.key[0]!==typeFields_1$7.InputTypes.TAP_LEAF_SCRIPT)throw new Error("Decode Error: could not decode tapLeafScript with key 0x"+tt.key.toString("hex"));if((tt.key.length-2)%32!==0)throw new Error("Decode Error: tapLeafScript has invalid control block in key 0x"+tt.key.toString("hex"));const et=tt.value[tt.value.length-1];if((tt.key[1]&254)!==et)throw new Error("Decode Error: tapLeafScript bad leaf version in key 0x"+tt.key.toString("hex"));const nt=tt.value.slice(0,-1);return{controlBlock:tt.key.slice(1),script:nt,leafVersion:et}}tapLeafScript$1.decode=decode$9;function encode$9(tt){const et=Buffer.from([typeFields_1$7.InputTypes.TAP_LEAF_SCRIPT]),nt=Buffer.from([tt.leafVersion]);return{key:Buffer.concat([et,tt.controlBlock]),value:Buffer.concat([tt.script,nt])}}tapLeafScript$1.encode=encode$9;tapLeafScript$1.expected="{ controlBlock: Buffer; leafVersion: number, script: Buffer; }";function check$4(tt){return Buffer.isBuffer(tt.controlBlock)&&(tt.controlBlock.length-1)%32===0&&(tt.controlBlock[0]&254)===tt.leafVersion&&Buffer.isBuffer(tt.script)}tapLeafScript$1.check=check$4;function canAddToArray$1(tt,et,nt){const rt=et.controlBlock.toString("hex");return nt.has(rt)?!1:(nt.add(rt),tt.filter(it=>it.controlBlock.equals(et.controlBlock)).length===0)}tapLeafScript$1.canAddToArray=canAddToArray$1;var tapMerkleRoot$1={};Object.defineProperty(tapMerkleRoot$1,"__esModule",{value:!0});const typeFields_1$6=typeFields;function decode$8(tt){if(tt.key[0]!==typeFields_1$6.InputTypes.TAP_MERKLE_ROOT||tt.key.length!==1)throw new Error("Decode Error: could not decode tapMerkleRoot with key 0x"+tt.key.toString("hex"));if(!check$3(tt.value))throw new Error("Decode Error: tapMerkleRoot not a 32-byte hash");return tt.value}tapMerkleRoot$1.decode=decode$8;function encode$8(tt){return{key:Buffer.from([typeFields_1$6.InputTypes.TAP_MERKLE_ROOT]),value:tt}}tapMerkleRoot$1.encode=encode$8;tapMerkleRoot$1.expected="Buffer";function check$3(tt){return Buffer.isBuffer(tt)&&tt.length===32}tapMerkleRoot$1.check=check$3;function canAdd$2(tt,et){return!!tt&&!!et&&tt.tapMerkleRoot===void 0}tapMerkleRoot$1.canAdd=canAdd$2;var tapScriptSig$1={};Object.defineProperty(tapScriptSig$1,"__esModule",{value:!0});const typeFields_1$5=typeFields;function decode$7(tt){if(tt.key[0]!==typeFields_1$5.InputTypes.TAP_SCRIPT_SIG)throw new Error("Decode Error: could not decode tapScriptSig with key 0x"+tt.key.toString("hex"));if(tt.key.length!==65)throw new Error("Decode Error: tapScriptSig has invalid key 0x"+tt.key.toString("hex"));if(tt.value.length!==64&&tt.value.length!==65)throw new Error("Decode Error: tapScriptSig has invalid signature in key 0x"+tt.key.toString("hex"));const et=tt.key.slice(1,33),nt=tt.key.slice(33);return{pubkey:et,leafHash:nt,signature:tt.value}}tapScriptSig$1.decode=decode$7;function encode$7(tt){const et=Buffer.from([typeFields_1$5.InputTypes.TAP_SCRIPT_SIG]);return{key:Buffer.concat([et,tt.pubkey,tt.leafHash]),value:tt.signature}}tapScriptSig$1.encode=encode$7;tapScriptSig$1.expected="{ pubkey: Buffer; leafHash: Buffer; signature: Buffer; }";function check$2(tt){return Buffer.isBuffer(tt.pubkey)&&Buffer.isBuffer(tt.leafHash)&&Buffer.isBuffer(tt.signature)&&tt.pubkey.length===32&&tt.leafHash.length===32&&(tt.signature.length===64||tt.signature.length===65)}tapScriptSig$1.check=check$2;function canAddToArray(tt,et,nt){const rt=et.pubkey.toString("hex")+et.leafHash.toString("hex");return nt.has(rt)?!1:(nt.add(rt),tt.filter(it=>it.pubkey.equals(et.pubkey)&&it.leafHash.equals(et.leafHash)).length===0)}tapScriptSig$1.canAddToArray=canAddToArray;var witnessUtxo$1={},tools={},varint={};Object.defineProperty(varint,"__esModule",{value:!0});const MAX_SAFE_INTEGER$3=9007199254740991;function checkUInt53(tt){if(tt<0||tt>MAX_SAFE_INTEGER$3||tt%1!==0)throw new RangeError("value out of range")}function encode$6(tt,et,nt){if(checkUInt53(tt),et||(et=Buffer.allocUnsafe(encodingLength(tt))),!Buffer.isBuffer(et))throw new TypeError("buffer must be a Buffer instance");return nt||(nt=0),tt<253?(et.writeUInt8(tt,nt),Object.assign(encode$6,{bytes:1})):tt<=65535?(et.writeUInt8(253,nt),et.writeUInt16LE(tt,nt+1),Object.assign(encode$6,{bytes:3})):tt<=4294967295?(et.writeUInt8(254,nt),et.writeUInt32LE(tt,nt+1),Object.assign(encode$6,{bytes:5})):(et.writeUInt8(255,nt),et.writeUInt32LE(tt>>>0,nt+1),et.writeUInt32LE(tt/4294967296|0,nt+5),Object.assign(encode$6,{bytes:9})),et}varint.encode=encode$6;function decode$6(tt,et){if(!Buffer.isBuffer(tt))throw new TypeError("buffer must be a Buffer instance");et||(et=0);const nt=tt.readUInt8(et);if(nt<253)return Object.assign(decode$6,{bytes:1}),nt;if(nt===253)return Object.assign(decode$6,{bytes:3}),tt.readUInt16LE(et+1);if(nt===254)return Object.assign(decode$6,{bytes:5}),tt.readUInt32LE(et+1);{Object.assign(decode$6,{bytes:9});const rt=tt.readUInt32LE(et+1),ot=tt.readUInt32LE(et+5)*4294967296+rt;return checkUInt53(ot),ot}}varint.decode=decode$6;function encodingLength(tt){return checkUInt53(tt),tt<253?1:tt<=65535?3:tt<=4294967295?5:9}varint.encodingLength=encodingLength;Object.defineProperty(tools,"__esModule",{value:!0});const varuint$6=varint;tools.range=tt=>[...Array(tt).keys()];function reverseBuffer(tt){if(tt.length<1)return tt;let et=tt.length-1,nt=0;for(let rt=0;rtet)throw new Error("RangeError: value out of range");if(Math.floor(tt)!==tt)throw new Error("value has a fractional component")}function readUInt64LE(tt,et){const nt=tt.readUInt32LE(et);let rt=tt.readUInt32LE(et+4);return rt*=4294967296,verifuint(rt+nt,9007199254740991),rt+nt}tools.readUInt64LE=readUInt64LE;function writeUInt64LE(tt,et,nt){return verifuint(et,9007199254740991),tt.writeInt32LE(et&-1,nt),tt.writeUInt32LE(Math.floor(et/4294967296),nt+4),nt+8}tools.writeUInt64LE=writeUInt64LE;Object.defineProperty(witnessUtxo$1,"__esModule",{value:!0});const typeFields_1$4=typeFields,tools_1$2=tools,varuint$5=varint;function decode$5(tt){if(tt.key[0]!==typeFields_1$4.InputTypes.WITNESS_UTXO)throw new Error("Decode Error: could not decode witnessUtxo with key 0x"+tt.key.toString("hex"));const et=tools_1$2.readUInt64LE(tt.value,0);let nt=8;const rt=varuint$5.decode(tt.value,nt);nt+=varuint$5.encodingLength(rt);const it=tt.value.slice(nt);if(it.length!==rt)throw new Error("Decode Error: WITNESS_UTXO script is not proper length");return{script:it,value:et}}witnessUtxo$1.decode=decode$5;function encode$5(tt){const{script:et,value:nt}=tt,rt=varuint$5.encodingLength(et.length),it=Buffer.allocUnsafe(8+rt+et.length);return tools_1$2.writeUInt64LE(it,nt,0),varuint$5.encode(et.length,it,8),et.copy(it,8+rt),{key:Buffer.from([typeFields_1$4.InputTypes.WITNESS_UTXO]),value:it}}witnessUtxo$1.encode=encode$5;witnessUtxo$1.expected="{ script: Buffer; value: number; }";function check$1(tt){return Buffer.isBuffer(tt.script)&&typeof tt.value=="number"}witnessUtxo$1.check=check$1;function canAdd$1(tt,et){return!!tt&&!!et&&tt.witnessUtxo===void 0}witnessUtxo$1.canAdd=canAdd$1;var tapTree$1={};Object.defineProperty(tapTree$1,"__esModule",{value:!0});const typeFields_1$3=typeFields,varuint$4=varint;function decode$4(tt){if(tt.key[0]!==typeFields_1$3.OutputTypes.TAP_TREE||tt.key.length!==1)throw new Error("Decode Error: could not decode tapTree with key 0x"+tt.key.toString("hex"));let et=0;const nt=[];for(;et[Buffer.of(rt.depth,rt.leafVersion),varuint$4.encode(rt.script.length),rt.script]));return{key:et,value:Buffer.concat(nt)}}tapTree$1.encode=encode$4;tapTree$1.expected="{ leaves: [{ depth: number; leafVersion: number, script: Buffer; }] }";function check(tt){return Array.isArray(tt.leaves)&&tt.leaves.every(et=>et.depth>=0&&et.depth<=128&&(et.leafVersion&254)===et.leafVersion&&Buffer.isBuffer(et.script))}tapTree$1.check=check;function canAdd(tt,et){return!!tt&&!!et&&tt.tapTree===void 0}tapTree$1.canAdd=canAdd;var bip32Derivation$2={};Object.defineProperty(bip32Derivation$2,"__esModule",{value:!0});const range$5=tt=>[...Array(tt).keys()],isValidDERKey=tt=>tt.length===33&&[2,3].includes(tt[0])||tt.length===65&&tt[0]===4;function makeConverter$4(tt,et=isValidDERKey){function nt(st){if(st.key[0]!==tt)throw new Error("Decode Error: could not decode bip32Derivation with key 0x"+st.key.toString("hex"));const lt=st.key.slice(1);if(!et(lt))throw new Error("Decode Error: bip32Derivation has invalid pubkey in key 0x"+st.key.toString("hex"));if(st.value.length/4%1!==0)throw new Error("Decode Error: Input BIP32_DERIVATION value length should be multiple of 4");const ct={masterFingerprint:st.value.slice(0,4),pubkey:lt,path:"m"};for(const ut of range$5(st.value.length/4-1)){const ht=st.value.readUInt32LE(ut*4+4),dt=!!(ht&2147483648),pt=ht&2147483647;ct.path+="/"+pt.toString(10)+(dt?"'":"")}return ct}function rt(st){const lt=Buffer.from([tt]),ct=Buffer.concat([lt,st.pubkey]),ut=st.path.split("/"),ht=Buffer.allocUnsafe(ut.length*4);st.masterFingerprint.copy(ht,0);let dt=4;return ut.slice(1).forEach(pt=>{const mt=pt.slice(-1)==="'";let gt=2147483647&parseInt(mt?pt.slice(0,-1):pt,10);mt&&(gt+=2147483648),ht.writeUInt32LE(gt,dt),dt+=4}),{key:ct,value:ht}}const it="{ masterFingerprint: Buffer; pubkey: Buffer; path: string; }";function ot(st){return Buffer.isBuffer(st.pubkey)&&Buffer.isBuffer(st.masterFingerprint)&&typeof st.path=="string"&&et(st.pubkey)&&st.masterFingerprint.length===4}function at(st,lt,ct){const ut=lt.pubkey.toString("hex");return ct.has(ut)?!1:(ct.add(ut),st.filter(ht=>ht.pubkey.equals(lt.pubkey)).length===0)}return{decode:nt,encode:rt,check:ot,expected:it,canAddToArray:at}}bip32Derivation$2.makeConverter=makeConverter$4;var checkPubkey$1={};Object.defineProperty(checkPubkey$1,"__esModule",{value:!0});function makeChecker(tt){return et;function et(nt){let rt;if(tt.includes(nt.key[0])&&(rt=nt.key.slice(1),!(rt.length===33||rt.length===65)||![2,3,4].includes(rt[0])))throw new Error("Format Error: invalid pubkey in key 0x"+nt.key.toString("hex"));return rt}}checkPubkey$1.makeChecker=makeChecker;var redeemScript$1={};Object.defineProperty(redeemScript$1,"__esModule",{value:!0});function makeConverter$3(tt){function et(at){if(at.key[0]!==tt)throw new Error("Decode Error: could not decode redeemScript with key 0x"+at.key.toString("hex"));return at.value}function nt(at){return{key:Buffer.from([tt]),value:at}}const rt="Buffer";function it(at){return Buffer.isBuffer(at)}function ot(at,st){return!!at&&!!st&&at.redeemScript===void 0}return{decode:et,encode:nt,check:it,expected:rt,canAdd:ot}}redeemScript$1.makeConverter=makeConverter$3;var tapBip32Derivation$1={};Object.defineProperty(tapBip32Derivation$1,"__esModule",{value:!0});const varuint$3=varint,bip32Derivation$1=bip32Derivation$2,isValidBIP340Key=tt=>tt.length===32;function makeConverter$2(tt){const et=bip32Derivation$1.makeConverter(tt,isValidBIP340Key);function nt(at){const st=varuint$3.decode(at.value),lt=varuint$3.encodingLength(st),ct=et.decode({key:at.key,value:at.value.slice(lt+st*32)}),ut=new Array(st);for(let ht=0,dt=lt;htBuffer.isBuffer(st)&&st.length===32)&&et.check(at)}return{decode:nt,encode:rt,check:ot,expected:it,canAddToArray:et.canAddToArray}}tapBip32Derivation$1.makeConverter=makeConverter$2;var tapInternalKey$1={};Object.defineProperty(tapInternalKey$1,"__esModule",{value:!0});function makeConverter$1(tt){function et(at){if(at.key[0]!==tt||at.key.length!==1)throw new Error("Decode Error: could not decode tapInternalKey with key 0x"+at.key.toString("hex"));if(at.value.length!==32)throw new Error("Decode Error: tapInternalKey not a 32-byte x-only pubkey");return at.value}function nt(at){return{key:Buffer.from([tt]),value:at}}const rt="Buffer";function it(at){return Buffer.isBuffer(at)&&at.length===32}function ot(at,st){return!!at&&!!st&&at.tapInternalKey===void 0}return{decode:et,encode:nt,check:it,expected:rt,canAdd:ot}}tapInternalKey$1.makeConverter=makeConverter$1;var witnessScript$1={};Object.defineProperty(witnessScript$1,"__esModule",{value:!0});function makeConverter(tt){function et(at){if(at.key[0]!==tt)throw new Error("Decode Error: could not decode witnessScript with key 0x"+at.key.toString("hex"));return at.value}function nt(at){return{key:Buffer.from([tt]),value:at}}const rt="Buffer";function it(at){return Buffer.isBuffer(at)}function ot(at,st){return!!at&&!!st&&at.witnessScript===void 0}return{decode:et,encode:nt,check:it,expected:rt,canAdd:ot}}witnessScript$1.makeConverter=makeConverter;Object.defineProperty(converter,"__esModule",{value:!0});const typeFields_1$2=typeFields,globalXpub=globalXpub$1,unsignedTx=unsignedTx$1,finalScriptSig=finalScriptSig$1,finalScriptWitness=finalScriptWitness$1,nonWitnessUtxo=nonWitnessUtxo$1,partialSig=partialSig$1,porCommitment=porCommitment$1,sighashType=sighashType$1,tapKeySig=tapKeySig$1,tapLeafScript=tapLeafScript$1,tapMerkleRoot=tapMerkleRoot$1,tapScriptSig=tapScriptSig$1,witnessUtxo=witnessUtxo$1,tapTree=tapTree$1,bip32Derivation=bip32Derivation$2,checkPubkey=checkPubkey$1,redeemScript=redeemScript$1,tapBip32Derivation=tapBip32Derivation$1,tapInternalKey=tapInternalKey$1,witnessScript=witnessScript$1,globals={unsignedTx,globalXpub,checkPubkey:checkPubkey.makeChecker([])};converter.globals=globals;const inputs={nonWitnessUtxo,partialSig,sighashType,finalScriptSig,finalScriptWitness,porCommitment,witnessUtxo,bip32Derivation:bip32Derivation.makeConverter(typeFields_1$2.InputTypes.BIP32_DERIVATION),redeemScript:redeemScript.makeConverter(typeFields_1$2.InputTypes.REDEEM_SCRIPT),witnessScript:witnessScript.makeConverter(typeFields_1$2.InputTypes.WITNESS_SCRIPT),checkPubkey:checkPubkey.makeChecker([typeFields_1$2.InputTypes.PARTIAL_SIG,typeFields_1$2.InputTypes.BIP32_DERIVATION]),tapKeySig,tapScriptSig,tapLeafScript,tapBip32Derivation:tapBip32Derivation.makeConverter(typeFields_1$2.InputTypes.TAP_BIP32_DERIVATION),tapInternalKey:tapInternalKey.makeConverter(typeFields_1$2.InputTypes.TAP_INTERNAL_KEY),tapMerkleRoot};converter.inputs=inputs;const outputs={bip32Derivation:bip32Derivation.makeConverter(typeFields_1$2.OutputTypes.BIP32_DERIVATION),redeemScript:redeemScript.makeConverter(typeFields_1$2.OutputTypes.REDEEM_SCRIPT),witnessScript:witnessScript.makeConverter(typeFields_1$2.OutputTypes.WITNESS_SCRIPT),checkPubkey:checkPubkey.makeChecker([typeFields_1$2.OutputTypes.BIP32_DERIVATION]),tapBip32Derivation:tapBip32Derivation.makeConverter(typeFields_1$2.OutputTypes.TAP_BIP32_DERIVATION),tapTree,tapInternalKey:tapInternalKey.makeConverter(typeFields_1$2.OutputTypes.TAP_INTERNAL_KEY)};converter.outputs=outputs;Object.defineProperty(fromBuffer,"__esModule",{value:!0});const convert$3=converter,tools_1$1=tools,varuint$2=varint,typeFields_1$1=typeFields;function psbtFromBuffer(tt,et){let nt=0;function rt(){const yt=varuint$2.decode(tt,nt);nt+=varuint$2.encodingLength(yt);const bt=tt.slice(nt,nt+yt);return nt+=yt,bt}function it(){const yt=tt.readUInt32BE(nt);return nt+=4,yt}function ot(){const yt=tt.readUInt8(nt);return nt+=1,yt}function at(){const yt=rt(),bt=rt();return{key:yt,value:bt}}function st(){if(nt>=tt.length)throw new Error("Format Error: Unexpected End of PSBT");const yt=tt.readUInt8(nt)===0;return yt&&nt++,yt}if(it()!==1886610036)throw new Error("Format Error: Invalid Magic Number");if(ot()!==255)throw new Error("Format Error: Magic Number must be followed by 0xff separator");const lt=[],ct={};for(;!st();){const yt=at(),bt=yt.key.toString("hex");if(ct[bt])throw new Error("Format Error: Keys must be unique for global keymap: key "+bt);ct[bt]=1,lt.push(yt)}const ut=lt.filter(yt=>yt.key[0]===typeFields_1$1.GlobalTypes.UNSIGNED_TX);if(ut.length!==1)throw new Error("Format Error: Only one UNSIGNED_TX allowed");const ht=et(ut[0].value),{inputCount:dt,outputCount:pt}=ht.getInputOutputCounts(),mt=[],gt=[];for(const yt of tools_1$1.range(dt)){const bt={},wt=[];for(;!st();){const vt=at(),kt=vt.key.toString("hex");if(bt[kt])throw new Error("Format Error: Keys must be unique for each input: input index "+yt+" key "+kt);bt[kt]=1,wt.push(vt)}mt.push(wt)}for(const yt of tools_1$1.range(pt)){const bt={},wt=[];for(;!st();){const vt=at(),kt=vt.key.toString("hex");if(bt[kt])throw new Error("Format Error: Keys must be unique for each output: output index "+yt+" key "+kt);bt[kt]=1,wt.push(vt)}gt.push(wt)}return psbtFromKeyVals(ht,{globalMapKeyVals:lt,inputKeyVals:mt,outputKeyVals:gt})}fromBuffer.psbtFromBuffer=psbtFromBuffer;function checkKeyBuffer(tt,et,nt){if(!et.equals(Buffer.from([nt])))throw new Error(`Format Error: Invalid ${tt} key: ${et.toString("hex")}`)}fromBuffer.checkKeyBuffer=checkKeyBuffer;function psbtFromKeyVals(tt,{globalMapKeyVals:et,inputKeyVals:nt,outputKeyVals:rt}){const it={unsignedTx:tt};let ot=0;for(const ut of et)switch(ut.key[0]){case typeFields_1$1.GlobalTypes.UNSIGNED_TX:if(checkKeyBuffer("global",ut.key,typeFields_1$1.GlobalTypes.UNSIGNED_TX),ot>0)throw new Error("Format Error: GlobalMap has multiple UNSIGNED_TX");ot++;break;case typeFields_1$1.GlobalTypes.GLOBAL_XPUB:it.globalXpub===void 0&&(it.globalXpub=[]),it.globalXpub.push(convert$3.globals.globalXpub.decode(ut));break;default:it.unknownKeyVals||(it.unknownKeyVals=[]),it.unknownKeyVals.push(ut)}const at=nt.length,st=rt.length,lt=[],ct=[];for(const ut of tools_1$1.range(at)){const ht={};for(const dt of nt[ut])switch(convert$3.inputs.checkPubkey(dt),dt.key[0]){case typeFields_1$1.InputTypes.NON_WITNESS_UTXO:if(checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.NON_WITNESS_UTXO),ht.nonWitnessUtxo!==void 0)throw new Error("Format Error: Input has multiple NON_WITNESS_UTXO");ht.nonWitnessUtxo=convert$3.inputs.nonWitnessUtxo.decode(dt);break;case typeFields_1$1.InputTypes.WITNESS_UTXO:if(checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.WITNESS_UTXO),ht.witnessUtxo!==void 0)throw new Error("Format Error: Input has multiple WITNESS_UTXO");ht.witnessUtxo=convert$3.inputs.witnessUtxo.decode(dt);break;case typeFields_1$1.InputTypes.PARTIAL_SIG:ht.partialSig===void 0&&(ht.partialSig=[]),ht.partialSig.push(convert$3.inputs.partialSig.decode(dt));break;case typeFields_1$1.InputTypes.SIGHASH_TYPE:if(checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.SIGHASH_TYPE),ht.sighashType!==void 0)throw new Error("Format Error: Input has multiple SIGHASH_TYPE");ht.sighashType=convert$3.inputs.sighashType.decode(dt);break;case typeFields_1$1.InputTypes.REDEEM_SCRIPT:if(checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.REDEEM_SCRIPT),ht.redeemScript!==void 0)throw new Error("Format Error: Input has multiple REDEEM_SCRIPT");ht.redeemScript=convert$3.inputs.redeemScript.decode(dt);break;case typeFields_1$1.InputTypes.WITNESS_SCRIPT:if(checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.WITNESS_SCRIPT),ht.witnessScript!==void 0)throw new Error("Format Error: Input has multiple WITNESS_SCRIPT");ht.witnessScript=convert$3.inputs.witnessScript.decode(dt);break;case typeFields_1$1.InputTypes.BIP32_DERIVATION:ht.bip32Derivation===void 0&&(ht.bip32Derivation=[]),ht.bip32Derivation.push(convert$3.inputs.bip32Derivation.decode(dt));break;case typeFields_1$1.InputTypes.FINAL_SCRIPTSIG:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.FINAL_SCRIPTSIG),ht.finalScriptSig=convert$3.inputs.finalScriptSig.decode(dt);break;case typeFields_1$1.InputTypes.FINAL_SCRIPTWITNESS:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.FINAL_SCRIPTWITNESS),ht.finalScriptWitness=convert$3.inputs.finalScriptWitness.decode(dt);break;case typeFields_1$1.InputTypes.POR_COMMITMENT:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.POR_COMMITMENT),ht.porCommitment=convert$3.inputs.porCommitment.decode(dt);break;case typeFields_1$1.InputTypes.TAP_KEY_SIG:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.TAP_KEY_SIG),ht.tapKeySig=convert$3.inputs.tapKeySig.decode(dt);break;case typeFields_1$1.InputTypes.TAP_SCRIPT_SIG:ht.tapScriptSig===void 0&&(ht.tapScriptSig=[]),ht.tapScriptSig.push(convert$3.inputs.tapScriptSig.decode(dt));break;case typeFields_1$1.InputTypes.TAP_LEAF_SCRIPT:ht.tapLeafScript===void 0&&(ht.tapLeafScript=[]),ht.tapLeafScript.push(convert$3.inputs.tapLeafScript.decode(dt));break;case typeFields_1$1.InputTypes.TAP_BIP32_DERIVATION:ht.tapBip32Derivation===void 0&&(ht.tapBip32Derivation=[]),ht.tapBip32Derivation.push(convert$3.inputs.tapBip32Derivation.decode(dt));break;case typeFields_1$1.InputTypes.TAP_INTERNAL_KEY:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.TAP_INTERNAL_KEY),ht.tapInternalKey=convert$3.inputs.tapInternalKey.decode(dt);break;case typeFields_1$1.InputTypes.TAP_MERKLE_ROOT:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.TAP_MERKLE_ROOT),ht.tapMerkleRoot=convert$3.inputs.tapMerkleRoot.decode(dt);break;default:ht.unknownKeyVals||(ht.unknownKeyVals=[]),ht.unknownKeyVals.push(dt)}lt.push(ht)}for(const ut of tools_1$1.range(st)){const ht={};for(const dt of rt[ut])switch(convert$3.outputs.checkPubkey(dt),dt.key[0]){case typeFields_1$1.OutputTypes.REDEEM_SCRIPT:if(checkKeyBuffer("output",dt.key,typeFields_1$1.OutputTypes.REDEEM_SCRIPT),ht.redeemScript!==void 0)throw new Error("Format Error: Output has multiple REDEEM_SCRIPT");ht.redeemScript=convert$3.outputs.redeemScript.decode(dt);break;case typeFields_1$1.OutputTypes.WITNESS_SCRIPT:if(checkKeyBuffer("output",dt.key,typeFields_1$1.OutputTypes.WITNESS_SCRIPT),ht.witnessScript!==void 0)throw new Error("Format Error: Output has multiple WITNESS_SCRIPT");ht.witnessScript=convert$3.outputs.witnessScript.decode(dt);break;case typeFields_1$1.OutputTypes.BIP32_DERIVATION:ht.bip32Derivation===void 0&&(ht.bip32Derivation=[]),ht.bip32Derivation.push(convert$3.outputs.bip32Derivation.decode(dt));break;case typeFields_1$1.OutputTypes.TAP_INTERNAL_KEY:checkKeyBuffer("output",dt.key,typeFields_1$1.OutputTypes.TAP_INTERNAL_KEY),ht.tapInternalKey=convert$3.outputs.tapInternalKey.decode(dt);break;case typeFields_1$1.OutputTypes.TAP_TREE:checkKeyBuffer("output",dt.key,typeFields_1$1.OutputTypes.TAP_TREE),ht.tapTree=convert$3.outputs.tapTree.decode(dt);break;case typeFields_1$1.OutputTypes.TAP_BIP32_DERIVATION:ht.tapBip32Derivation===void 0&&(ht.tapBip32Derivation=[]),ht.tapBip32Derivation.push(convert$3.outputs.tapBip32Derivation.decode(dt));break;default:ht.unknownKeyVals||(ht.unknownKeyVals=[]),ht.unknownKeyVals.push(dt)}ct.push(ht)}return{globalMap:it,inputs:lt,outputs:ct}}fromBuffer.psbtFromKeyVals=psbtFromKeyVals;var toBuffer={};Object.defineProperty(toBuffer,"__esModule",{value:!0});const convert$2=converter,tools_1=tools;function psbtToBuffer({globalMap:tt,inputs:et,outputs:nt}){const{globalKeyVals:rt,inputKeyVals:it,outputKeyVals:ot}=psbtToKeyVals({globalMap:tt,inputs:et,outputs:nt}),at=tools_1.keyValsToBuffer(rt),st=ht=>ht.length===0?[Buffer.from([0])]:ht.map(tools_1.keyValsToBuffer),lt=st(it),ct=st(ot),ut=Buffer.allocUnsafe(5);return ut.writeUIntBE(482972169471,0,5),Buffer.concat([ut,at].concat(lt,ct))}toBuffer.psbtToBuffer=psbtToBuffer;const sortKeyVals=(tt,et)=>tt.key.compare(et.key);function keyValsFromMap(tt,et){const nt=new Set,rt=Object.entries(tt).reduce((ot,[at,st])=>{if(at==="unknownKeyVals")return ot;const lt=et[at];if(lt===void 0)return ot;const ct=(Array.isArray(st)?st:[st]).map(lt.encode);return ct.map(ht=>ht.key.toString("hex")).forEach(ht=>{if(nt.has(ht))throw new Error("Serialize Error: Duplicate key: "+ht);nt.add(ht)}),ot.concat(ct)},[]),it=tt.unknownKeyVals?tt.unknownKeyVals.filter(ot=>!nt.has(ot.key.toString("hex"))):[];return rt.concat(it).sort(sortKeyVals)}function psbtToKeyVals({globalMap:tt,inputs:et,outputs:nt}){return{globalKeyVals:keyValsFromMap(tt,convert$2.globals),inputKeyVals:et.map(rt=>keyValsFromMap(rt,convert$2.inputs)),outputKeyVals:nt.map(rt=>keyValsFromMap(rt,convert$2.outputs))}}toBuffer.psbtToKeyVals=psbtToKeyVals;(function(tt){function et(nt){for(var rt in nt)tt.hasOwnProperty(rt)||(tt[rt]=nt[rt])}Object.defineProperty(tt,"__esModule",{value:!0}),et(fromBuffer),et(toBuffer)})(parser$2);Object.defineProperty(combiner,"__esModule",{value:!0});const parser_1$1=parser$2;function combine(tt){const et=tt[0],nt=parser_1$1.psbtToKeyVals(et),rt=tt.slice(1);if(rt.length===0)throw new Error("Combine: Nothing to combine");const it=getTx(et);if(it===void 0)throw new Error("Combine: Self missing transaction");const ot=getKeySet(nt.globalKeyVals),at=nt.inputKeyVals.map(getKeySet),st=nt.outputKeyVals.map(getKeySet);for(const lt of rt){const ct=getTx(lt);if(ct===void 0||!ct.toBuffer().equals(it.toBuffer()))throw new Error("Combine: One of the Psbts does not have the same transaction.");const ut=parser_1$1.psbtToKeyVals(lt);getKeySet(ut.globalKeyVals).forEach(keyPusher(ot,nt.globalKeyVals,ut.globalKeyVals)),ut.inputKeyVals.map(getKeySet).forEach((mt,gt)=>mt.forEach(keyPusher(at[gt],nt.inputKeyVals[gt],ut.inputKeyVals[gt]))),ut.outputKeyVals.map(getKeySet).forEach((mt,gt)=>mt.forEach(keyPusher(st[gt],nt.outputKeyVals[gt],ut.outputKeyVals[gt])))}return parser_1$1.psbtFromKeyVals(it,{globalMapKeyVals:nt.globalKeyVals,inputKeyVals:nt.inputKeyVals,outputKeyVals:nt.outputKeyVals})}combiner.combine=combine;function keyPusher(tt,et,nt){return rt=>{if(tt.has(rt))return;const it=nt.filter(ot=>ot.key.toString("hex")===rt)[0];et.push(it),tt.add(rt)}}function getTx(tt){return tt.globalMap.unsignedTx}function getKeySet(tt){const et=new Set;return tt.forEach(nt=>{const rt=nt.key.toString("hex");if(et.has(rt))throw new Error("Combine: KeyValue Map keys should be unique");et.add(rt)}),et}var utils$1={};(function(tt){Object.defineProperty(tt,"__esModule",{value:!0});const et=converter;function nt(pt,mt){const gt=pt[mt];if(gt===void 0)throw new Error(`No input #${mt}`);return gt}tt.checkForInput=nt;function rt(pt,mt){const gt=pt[mt];if(gt===void 0)throw new Error(`No output #${mt}`);return gt}tt.checkForOutput=rt;function it(pt,mt,gt){if(pt.key[0]yt.key.equals(pt.key)).length!==0)throw new Error(`Duplicate Key: ${pt.key.toString("hex")}`)}tt.checkHasKey=it;function ot(pt){let mt=0;return Object.keys(pt).forEach(gt=>{Number(isNaN(Number(gt)))&&mt++}),mt}tt.getEnumLength=ot;function at(pt,mt){let gt=!1;if(mt.nonWitnessUtxo||mt.witnessUtxo){const yt=!!mt.redeemScript,bt=!!mt.witnessScript,wt=!yt||!!mt.finalScriptSig,vt=!bt||!!mt.finalScriptWitness,kt=!!mt.finalScriptSig||!!mt.finalScriptWitness;gt=wt&&vt&&kt}if(gt===!1)throw new Error(`Input #${pt} has too much or too little data to clean`)}tt.inputCheckUncleanFinalized=at;function st(pt,mt,gt,yt){throw new Error(`Data for ${pt} key ${mt} is incorrect: Expected ${gt} and got ${JSON.stringify(yt)}`)}function lt(pt){return(mt,gt)=>{for(const yt of Object.keys(mt)){const bt=mt[yt],{canAdd:wt,canAddToArray:vt,check:kt,expected:St}=et[pt+"s"][yt]||{},Tt=!!vt;if(kt)if(Tt){if(!Array.isArray(bt)||gt[yt]&&!Array.isArray(gt[yt]))throw new Error(`Key type ${yt} must be an array`);bt.every(kt)||st(pt,yt,St,bt);const At=gt[yt]||[],Et=new Set;if(!bt.every(Mt=>vt(At,Mt,Et)))throw new Error("Can not add duplicate data to array");gt[yt]=At.concat(bt)}else{if(kt(bt)||st(pt,yt,St,bt),!wt(gt,bt))throw new Error(`Can not add duplicate data to ${pt}`);gt[yt]=bt}}}}tt.updateGlobal=lt("global"),tt.updateInput=lt("input"),tt.updateOutput=lt("output");function ct(pt,mt){const gt=pt.length-1,yt=nt(pt,gt);tt.updateInput(mt,yt)}tt.addInputAttributes=ct;function ut(pt,mt){const gt=pt.length-1,yt=rt(pt,gt);tt.updateOutput(mt,yt)}tt.addOutputAttributes=ut;function ht(pt,mt){if(!Buffer.isBuffer(mt)||mt.length<4)throw new Error("Set Version: Invalid Transaction");return mt.writeUInt32LE(pt,0),mt}tt.defaultVersionSetter=ht;function dt(pt,mt){if(!Buffer.isBuffer(mt)||mt.length<4)throw new Error("Set Locktime: Invalid Transaction");return mt.writeUInt32LE(pt,mt.length-4),mt}tt.defaultLocktimeSetter=dt})(utils$1);Object.defineProperty(psbt,"__esModule",{value:!0});const combiner_1=combiner,parser_1=parser$2,typeFields_1=typeFields,utils_1$1=utils$1;let Psbt$1=class{constructor(et){this.inputs=[],this.outputs=[],this.globalMap={unsignedTx:et}}static fromBase64(et,nt){const rt=Buffer.from(et,"base64");return this.fromBuffer(rt,nt)}static fromHex(et,nt){const rt=Buffer.from(et,"hex");return this.fromBuffer(rt,nt)}static fromBuffer(et,nt){const rt=parser_1.psbtFromBuffer(et,nt),it=new this(rt.globalMap.unsignedTx);return Object.assign(it,rt),it}toBase64(){return this.toBuffer().toString("base64")}toHex(){return this.toBuffer().toString("hex")}toBuffer(){return parser_1.psbtToBuffer(this)}updateGlobal(et){return utils_1$1.updateGlobal(et,this.globalMap),this}updateInput(et,nt){const rt=utils_1$1.checkForInput(this.inputs,et);return utils_1$1.updateInput(nt,rt),this}updateOutput(et,nt){const rt=utils_1$1.checkForOutput(this.outputs,et);return utils_1$1.updateOutput(nt,rt),this}addUnknownKeyValToGlobal(et){return utils_1$1.checkHasKey(et,this.globalMap.unknownKeyVals,utils_1$1.getEnumLength(typeFields_1.GlobalTypes)),this.globalMap.unknownKeyVals||(this.globalMap.unknownKeyVals=[]),this.globalMap.unknownKeyVals.push(et),this}addUnknownKeyValToInput(et,nt){const rt=utils_1$1.checkForInput(this.inputs,et);return utils_1$1.checkHasKey(nt,rt.unknownKeyVals,utils_1$1.getEnumLength(typeFields_1.InputTypes)),rt.unknownKeyVals||(rt.unknownKeyVals=[]),rt.unknownKeyVals.push(nt),this}addUnknownKeyValToOutput(et,nt){const rt=utils_1$1.checkForOutput(this.outputs,et);return utils_1$1.checkHasKey(nt,rt.unknownKeyVals,utils_1$1.getEnumLength(typeFields_1.OutputTypes)),rt.unknownKeyVals||(rt.unknownKeyVals=[]),rt.unknownKeyVals.push(nt),this}addInput(et){this.globalMap.unsignedTx.addInput(et),this.inputs.push({unknownKeyVals:[]});const nt=et.unknownKeyVals||[],rt=this.inputs.length-1;if(!Array.isArray(nt))throw new Error("unknownKeyVals must be an Array");return nt.forEach(it=>this.addUnknownKeyValToInput(rt,it)),utils_1$1.addInputAttributes(this.inputs,et),this}addOutput(et){this.globalMap.unsignedTx.addOutput(et),this.outputs.push({unknownKeyVals:[]});const nt=et.unknownKeyVals||[],rt=this.outputs.length-1;if(!Array.isArray(nt))throw new Error("unknownKeyVals must be an Array");return nt.forEach(it=>this.addUnknownKeyValToInput(rt,it)),utils_1$1.addOutputAttributes(this.outputs,et),this}clearFinalizedInput(et){const nt=utils_1$1.checkForInput(this.inputs,et);utils_1$1.inputCheckUncleanFinalized(et,nt);for(const rt of Object.keys(nt))["witnessUtxo","nonWitnessUtxo","finalScriptSig","finalScriptWitness","unknownKeyVals"].includes(rt)||delete nt[rt];return this}combine(...et){const nt=combiner_1.combine([this].concat(et));return Object.assign(this,nt),this}getTransaction(){return this.globalMap.unsignedTx.toBuffer()}};psbt.Psbt=Psbt$1;var bip371={},psbtutils={};Object.defineProperty(psbtutils,"__esModule",{value:!0});psbtutils.signatureBlocksAction=psbtutils.checkInputForSig=psbtutils.pubkeyInScript=psbtutils.pubkeyPositionInScript=psbtutils.witnessStackToScriptWitness=psbtutils.isP2TR=psbtutils.isP2SHScript=psbtutils.isP2WSHScript=psbtutils.isP2WPKH=psbtutils.isP2PKH=psbtutils.isP2PK=psbtutils.isP2MS=void 0;const varuint$1=varint,bscript$1=script,transaction_1$2=transaction,crypto_1=crypto$2,payments$1=payments$3;function isPaymentFactory(tt){return et=>{try{return tt({output:et}),!0}catch{return!1}}}psbtutils.isP2MS=isPaymentFactory(payments$1.p2ms);psbtutils.isP2PK=isPaymentFactory(payments$1.p2pk);psbtutils.isP2PKH=isPaymentFactory(payments$1.p2pkh);psbtutils.isP2WPKH=isPaymentFactory(payments$1.p2wpkh);psbtutils.isP2WSHScript=isPaymentFactory(payments$1.p2wsh);psbtutils.isP2SHScript=isPaymentFactory(payments$1.p2sh);psbtutils.isP2TR=isPaymentFactory(payments$1.p2tr);function witnessStackToScriptWitness(tt){let et=Buffer.allocUnsafe(0);function nt(at){et=Buffer.concat([et,Buffer.from(at)])}function rt(at){const st=et.length,lt=varuint$1.encodingLength(at);et=Buffer.concat([et,Buffer.allocUnsafe(lt)]),varuint$1.encode(at,et,st)}function it(at){rt(at.length),nt(at)}function ot(at){rt(at.length),at.forEach(it)}return ot(tt),et}psbtutils.witnessStackToScriptWitness=witnessStackToScriptWitness;function pubkeyPositionInScript(tt,et){const nt=(0,crypto_1.hash160)(tt),rt=tt.slice(1,33),it=bscript$1.decompile(et);if(it===null)throw new Error("Unknown script error");return it.findIndex(ot=>typeof ot=="number"?!1:ot.equals(tt)||ot.equals(nt)||ot.equals(rt))}psbtutils.pubkeyPositionInScript=pubkeyPositionInScript;function pubkeyInScript(tt,et){return pubkeyPositionInScript(tt,et)!==-1}psbtutils.pubkeyInScript=pubkeyInScript;function checkInputForSig(tt,et){return extractPartialSigs(tt).some(rt=>signatureBlocksAction(rt,bscript$1.signature.decode,et))}psbtutils.checkInputForSig=checkInputForSig;function signatureBlocksAction(tt,et,nt){const{hashType:rt}=et(tt),it=[];switch(rt&transaction_1$2.Transaction.SIGHASH_ANYONECANPAY&&it.push("addInput"),rt&31){case transaction_1$2.Transaction.SIGHASH_ALL:break;case transaction_1$2.Transaction.SIGHASH_SINGLE:case transaction_1$2.Transaction.SIGHASH_NONE:it.push("addOutput"),it.push("setInputSequence");break}return it.indexOf(nt)===-1}psbtutils.signatureBlocksAction=signatureBlocksAction;function extractPartialSigs(tt){let et=[];if((tt.partialSig||[]).length===0){if(!tt.finalScriptSig&&!tt.finalScriptWitness)return[];et=getPsigsFromInputFinalScripts(tt)}else et=tt.partialSig;return et.map(nt=>nt.signature)}function getPsigsFromInputFinalScripts(tt){const et=tt.finalScriptSig?bscript$1.decompile(tt.finalScriptSig)||[]:[],nt=tt.finalScriptWitness?bscript$1.decompile(tt.finalScriptWitness)||[]:[];return et.concat(nt).filter(rt=>Buffer.isBuffer(rt)&&bscript$1.isCanonicalScriptSignature(rt)).map(rt=>({signature:rt}))}Object.defineProperty(bip371,"__esModule",{value:!0});bip371.checkTaprootInputForSigs=bip371.tapTreeFromList=bip371.tapTreeToList=bip371.tweakInternalPubKey=bip371.checkTaprootOutputFields=bip371.checkTaprootInputFields=bip371.isTaprootOutput=bip371.isTaprootInput=bip371.serializeTaprootSignature=bip371.tapScriptFinalizer=bip371.toXOnly=void 0;const types_1=types$6,transaction_1$1=transaction,psbtutils_1$1=psbtutils,bip341_1$1=bip341,payments_1=payments$3,psbtutils_2=psbtutils,toXOnly=tt=>tt.length===32?tt:tt.slice(1,33);bip371.toXOnly=toXOnly;function tapScriptFinalizer(tt,et,nt){const rt=findTapLeafToFinalize(et,tt,nt);try{const ot=sortSignatures(et,rt).concat(rt.script).concat(rt.controlBlock);return{finalScriptWitness:(0,psbtutils_1$1.witnessStackToScriptWitness)(ot)}}catch(it){throw new Error(`Can not finalize taproot input #${tt}: ${it}`)}}bip371.tapScriptFinalizer=tapScriptFinalizer;function serializeTaprootSignature(tt,et){const nt=et?Buffer.from([et]):Buffer.from([]);return Buffer.concat([tt,nt])}bip371.serializeTaprootSignature=serializeTaprootSignature;function isTaprootInput(tt){return tt&&!!(tt.tapInternalKey||tt.tapMerkleRoot||tt.tapLeafScript&&tt.tapLeafScript.length||tt.tapBip32Derivation&&tt.tapBip32Derivation.length||tt.witnessUtxo&&(0,psbtutils_1$1.isP2TR)(tt.witnessUtxo.script))}bip371.isTaprootInput=isTaprootInput;function isTaprootOutput(tt,et){return tt&&!!(tt.tapInternalKey||tt.tapTree||tt.tapBip32Derivation&&tt.tapBip32Derivation.length||et&&(0,psbtutils_1$1.isP2TR)(et))}bip371.isTaprootOutput=isTaprootOutput;function checkTaprootInputFields(tt,et,nt){checkMixedTaprootAndNonTaprootInputFields(tt,et,nt),checkIfTapLeafInTree(tt,et,nt)}bip371.checkTaprootInputFields=checkTaprootInputFields;function checkTaprootOutputFields(tt,et,nt){checkMixedTaprootAndNonTaprootOutputFields(tt,et,nt),checkTaprootScriptPubkey(tt,et)}bip371.checkTaprootOutputFields=checkTaprootOutputFields;function checkTaprootScriptPubkey(tt,et){if(!et.tapTree&&!et.tapInternalKey)return;const nt=et.tapInternalKey||tt.tapInternalKey,rt=et.tapTree||tt.tapTree;if(nt){const{script:it}=tt,ot=getTaprootScripPubkey(nt,rt);if(it&&!it.equals(ot))throw new Error("Error adding output. Script or address missmatch.")}}function getTaprootScripPubkey(tt,et){const nt=et&&tapTreeFromList(et.leaves),{output:rt}=(0,payments_1.p2tr)({internalPubkey:tt,scriptTree:nt});return rt}function tweakInternalPubKey(tt,et){const nt=et.tapInternalKey,rt=nt&&(0,bip341_1$1.tweakKey)(nt,et.tapMerkleRoot);if(!rt)throw new Error(`Cannot tweak tap internal key for input #${tt}. Public key: ${nt&&nt.toString("hex")}`);return rt.x}bip371.tweakInternalPubKey=tweakInternalPubKey;function tapTreeToList(tt){if(!(0,types_1.isTaptree)(tt))throw new Error("Cannot convert taptree to tapleaf list. Expecting a tapree structure.");return _tapTreeToList(tt)}bip371.tapTreeToList=tapTreeToList;function tapTreeFromList(tt=[]){return tt.length===1&&tt[0].depth===0?{output:tt[0].script,version:tt[0].leafVersion}:instertLeavesInTree(tt)}bip371.tapTreeFromList=tapTreeFromList;function checkTaprootInputForSigs(tt,et){return extractTaprootSigs(tt).some(rt=>(0,psbtutils_2.signatureBlocksAction)(rt,decodeSchnorrSignature,et))}bip371.checkTaprootInputForSigs=checkTaprootInputForSigs;function decodeSchnorrSignature(tt){return{signature:tt.slice(0,64),hashType:tt.slice(64)[0]||transaction_1$1.Transaction.SIGHASH_DEFAULT}}function extractTaprootSigs(tt){const et=[];if(tt.tapKeySig&&et.push(tt.tapKeySig),tt.tapScriptSig&&et.push(...tt.tapScriptSig.map(nt=>nt.signature)),!et.length){const nt=getTapKeySigFromWithness(tt.finalScriptWitness);nt&&et.push(nt)}return et}function getTapKeySigFromWithness(tt){if(!tt)return;const et=tt.slice(2);if(et.length===64||et.length===65)return et}function _tapTreeToList(tt,et=[],nt=0){if(nt>bip341_1$1.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");return tt?(0,types_1.isTapleaf)(tt)?(et.push({depth:nt,leafVersion:tt.version||bip341_1$1.LEAF_VERSION_TAPSCRIPT,script:tt.output}),et):(tt[0]&&_tapTreeToList(tt[0],et,nt+1),tt[1]&&_tapTreeToList(tt[1],et,nt+1),et):[]}function instertLeavesInTree(tt){let et;for(const nt of tt)if(et=instertLeafInTree(nt,et),!et)throw new Error("No room left to insert tapleaf in tree");return et}function instertLeafInTree(tt,et,nt=0){if(nt>bip341_1$1.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");if(tt.depth===nt)return et?void 0:{output:tt.script,version:tt.leafVersion};if((0,types_1.isTapleaf)(et))return;const rt=instertLeafInTree(tt,et&&et[0],nt+1);if(rt)return[rt,et&&et[1]];const it=instertLeafInTree(tt,et&&et[1],nt+1);if(it)return[et&&et[0],it]}function checkMixedTaprootAndNonTaprootInputFields(tt,et,nt){const rt=isTaprootInput(tt)&&hasNonTaprootFields(et),it=hasNonTaprootFields(tt)&&isTaprootInput(et),ot=tt===et&&isTaprootInput(et)&&hasNonTaprootFields(et);if(rt||it||ot)throw new Error(`Invalid arguments for Psbt.${nt}. Cannot use both taproot and non-taproot fields.`)}function checkMixedTaprootAndNonTaprootOutputFields(tt,et,nt){const rt=isTaprootOutput(tt)&&hasNonTaprootFields(et),it=hasNonTaprootFields(tt)&&isTaprootOutput(et),ot=tt===et&&isTaprootOutput(et)&&hasNonTaprootFields(et);if(rt||it||ot)throw new Error(`Invalid arguments for Psbt.${nt}. Cannot use both taproot and non-taproot fields.`)}function checkIfTapLeafInTree(tt,et,nt){if(et.tapMerkleRoot){const rt=(et.tapLeafScript||[]).every(ot=>isTapLeafInTree(ot,et.tapMerkleRoot)),it=(tt.tapLeafScript||[]).every(ot=>isTapLeafInTree(ot,et.tapMerkleRoot));if(!rt||!it)throw new Error(`Invalid arguments for Psbt.${nt}. Tapleaf not part of taptree.`)}else if(tt.tapMerkleRoot&&!(et.tapLeafScript||[]).every(it=>isTapLeafInTree(it,tt.tapMerkleRoot)))throw new Error(`Invalid arguments for Psbt.${nt}. Tapleaf not part of taptree.`)}function isTapLeafInTree(tt,et){if(!et)return!0;const nt=(0,bip341_1$1.tapleafHash)({output:tt.script,version:tt.leafVersion});return(0,bip341_1$1.rootHashFromPath)(tt.controlBlock,nt).equals(et)}function sortSignatures(tt,et){const nt=(0,bip341_1$1.tapleafHash)({output:et.script,version:et.leafVersion});return(tt.tapScriptSig||[]).filter(rt=>rt.leafHash.equals(nt)).map(rt=>addPubkeyPositionInScript(et.script,rt)).sort((rt,it)=>it.positionInScript-rt.positionInScript).map(rt=>rt.signature)}function addPubkeyPositionInScript(tt,et){return Object.assign({positionInScript:(0,psbtutils_1$1.pubkeyPositionInScript)(et.pubkey,tt)},et)}function findTapLeafToFinalize(tt,et,nt){if(!tt.tapScriptSig||!tt.tapScriptSig.length)throw new Error(`Can not finalize taproot input #${et}. No tapleaf script signature provided.`);const rt=(tt.tapLeafScript||[]).sort((it,ot)=>it.controlBlock.length-ot.controlBlock.length).find(it=>canFinalizeLeaf(it,tt.tapScriptSig,nt));if(!rt)throw new Error(`Can not finalize taproot input #${et}. Signature for tapleaf script not found.`);return rt}function canFinalizeLeaf(tt,et,nt){const rt=(0,bip341_1$1.tapleafHash)({output:tt.script,version:tt.leafVersion});return(!nt||nt.equals(rt))&&et.find(ot=>ot.leafHash.equals(rt))!==void 0}function hasNonTaprootFields(tt){return tt&&!!(tt.redeemScript||tt.witnessScript||tt.bip32Derivation&&tt.bip32Derivation.length)}Object.defineProperty(psbt$1,"__esModule",{value:!0});psbt$1.Psbt=void 0;const bip174_1=psbt,varuint=varint,utils_1=utils$1,address_1=address,bufferutils_1=bufferutils,networks_1=networks$1,payments=payments$3,bip341_1=bip341,bscript=script,transaction_1=transaction,bip371_1=bip371,psbtutils_1=psbtutils,DEFAULT_OPTS={network:networks_1.bitcoin,maximumFeeRate:5e3};class Psbt{static fromBase64(et,nt={}){const rt=Buffer.from(et,"base64");return this.fromBuffer(rt,nt)}static fromHex(et,nt={}){const rt=Buffer.from(et,"hex");return this.fromBuffer(rt,nt)}static fromBuffer(et,nt={}){const rt=bip174_1.Psbt.fromBuffer(et,transactionFromBuffer),it=new Psbt(nt,rt);return checkTxForDupeIns(it.__CACHE.__TX,it.__CACHE),it}constructor(et={},nt=new bip174_1.Psbt(new PsbtTransaction)){this.data=nt,this.opts=Object.assign({},DEFAULT_OPTS,et),this.__CACHE={__NON_WITNESS_UTXO_TX_CACHE:[],__NON_WITNESS_UTXO_BUF_CACHE:[],__TX_IN_CACHE:{},__TX:this.data.globalMap.unsignedTx.tx,__UNSAFE_SIGN_NONSEGWIT:!1},this.data.inputs.length===0&&this.setVersion(2);const rt=(it,ot,at,st)=>Object.defineProperty(it,ot,{enumerable:at,writable:st});rt(this,"__CACHE",!1,!0),rt(this,"opts",!1,!0)}get inputCount(){return this.data.inputs.length}get version(){return this.__CACHE.__TX.version}set version(et){this.setVersion(et)}get locktime(){return this.__CACHE.__TX.locktime}set locktime(et){this.setLocktime(et)}get txInputs(){return this.__CACHE.__TX.ins.map(et=>({hash:(0,bufferutils_1.cloneBuffer)(et.hash),index:et.index,sequence:et.sequence}))}get txOutputs(){return this.__CACHE.__TX.outs.map(et=>{let nt;try{nt=(0,address_1.fromOutputScript)(et.script,this.opts.network)}catch{}return{script:(0,bufferutils_1.cloneBuffer)(et.script),value:et.value,address:nt}})}combine(...et){return this.data.combine(...et.map(nt=>nt.data)),this}clone(){const et=Psbt.fromBuffer(this.data.toBuffer());return et.opts=JSON.parse(JSON.stringify(this.opts)),et}setMaximumFeeRate(et){check32Bit(et),this.opts.maximumFeeRate=et}setVersion(et){check32Bit(et),checkInputsForPartialSig(this.data.inputs,"setVersion");const nt=this.__CACHE;return nt.__TX.version=et,nt.__EXTRACTED_TX=void 0,this}setLocktime(et){check32Bit(et),checkInputsForPartialSig(this.data.inputs,"setLocktime");const nt=this.__CACHE;return nt.__TX.locktime=et,nt.__EXTRACTED_TX=void 0,this}setInputSequence(et,nt){check32Bit(nt),checkInputsForPartialSig(this.data.inputs,"setInputSequence");const rt=this.__CACHE;if(rt.__TX.ins.length<=et)throw new Error("Input index too high");return rt.__TX.ins[et].sequence=nt,rt.__EXTRACTED_TX=void 0,this}addInputs(et){return et.forEach(nt=>this.addInput(nt)),this}addInput(et){if(arguments.length>1||!et||et.hash===void 0||et.index===void 0)throw new Error("Invalid arguments for Psbt.addInput. Requires single object with at least [hash] and [index]");(0,bip371_1.checkTaprootInputFields)(et,et,"addInput"),checkInputsForPartialSig(this.data.inputs,"addInput"),et.witnessScript&&checkInvalidP2WSH(et.witnessScript);const nt=this.__CACHE;this.data.addInput(et);const rt=nt.__TX.ins[nt.__TX.ins.length-1];checkTxInputCache(nt,rt);const it=this.data.inputs.length-1,ot=this.data.inputs[it];return ot.nonWitnessUtxo&&addNonWitnessTxCache(this.__CACHE,ot,it),nt.__FEE=void 0,nt.__FEE_RATE=void 0,nt.__EXTRACTED_TX=void 0,this}addOutputs(et){return et.forEach(nt=>this.addOutput(nt)),this}addOutput(et){if(arguments.length>1||!et||et.value===void 0||et.address===void 0&&et.script===void 0)throw new Error("Invalid arguments for Psbt.addOutput. Requires single object with at least [script or address] and [value]");checkInputsForPartialSig(this.data.inputs,"addOutput");const{address:nt}=et;if(typeof nt=="string"){const{network:it}=this.opts,ot=(0,address_1.toOutputScript)(nt,it);et=Object.assign(et,{script:ot})}(0,bip371_1.checkTaprootOutputFields)(et,et,"addOutput");const rt=this.__CACHE;return this.data.addOutput(et),rt.__FEE=void 0,rt.__FEE_RATE=void 0,rt.__EXTRACTED_TX=void 0,this}extractTransaction(et){if(!this.data.inputs.every(isFinalized))throw new Error("Not finalized");const nt=this.__CACHE;if(et||checkFees(this,nt,this.opts),nt.__EXTRACTED_TX)return nt.__EXTRACTED_TX;const rt=nt.__TX.clone();return inputFinalizeGetAmts(this.data.inputs,rt,nt,!0),rt}getFeeRate(){return getTxCacheValue("__FEE_RATE","fee rate",this.data.inputs,this.__CACHE)}getFee(){return getTxCacheValue("__FEE","fee",this.data.inputs,this.__CACHE)}finalizeAllInputs(){return(0,utils_1.checkForInput)(this.data.inputs,0),range$4(this.data.inputs.length).forEach(et=>this.finalizeInput(et)),this}finalizeInput(et,nt){const rt=(0,utils_1.checkForInput)(this.data.inputs,et);return(0,bip371_1.isTaprootInput)(rt)?this._finalizeTaprootInput(et,rt,void 0,nt):this._finalizeInput(et,rt,nt)}finalizeTaprootInput(et,nt,rt=bip371_1.tapScriptFinalizer){const it=(0,utils_1.checkForInput)(this.data.inputs,et);if((0,bip371_1.isTaprootInput)(it))return this._finalizeTaprootInput(et,it,nt,rt);throw new Error(`Cannot finalize input #${et}. Not Taproot.`)}_finalizeInput(et,nt,rt=getFinalScripts){const{script:it,isP2SH:ot,isP2WSH:at,isSegwit:st}=getScriptFromInput(et,nt,this.__CACHE);if(!it)throw new Error(`No script found for input #${et}`);checkPartialSigSighashes(nt);const{finalScriptSig:lt,finalScriptWitness:ct}=rt(et,nt,it,st,ot,at);if(lt&&this.data.updateInput(et,{finalScriptSig:lt}),ct&&this.data.updateInput(et,{finalScriptWitness:ct}),!lt&&!ct)throw new Error(`Unknown error finalizing input #${et}`);return this.data.clearFinalizedInput(et),this}_finalizeTaprootInput(et,nt,rt,it=bip371_1.tapScriptFinalizer){if(!nt.witnessUtxo)throw new Error(`Cannot finalize input #${et}. Missing withness utxo.`);if(nt.tapKeySig){const ot=payments.p2tr({output:nt.witnessUtxo.script,signature:nt.tapKeySig}),at=(0,psbtutils_1.witnessStackToScriptWitness)(ot.witness);this.data.updateInput(et,{finalScriptWitness:at})}else{const{finalScriptWitness:ot}=it(et,nt,rt);this.data.updateInput(et,{finalScriptWitness:ot})}return this.data.clearFinalizedInput(et),this}getInputType(et){const nt=(0,utils_1.checkForInput)(this.data.inputs,et),rt=getScriptFromUtxo(et,nt,this.__CACHE),it=getMeaningfulScript(rt,et,"input",nt.redeemScript||redeemFromFinalScriptSig(nt.finalScriptSig),nt.witnessScript||redeemFromFinalWitnessScript(nt.finalScriptWitness)),ot=it.type==="raw"?"":it.type+"-",at=classifyScript(it.meaningfulScript);return ot+at}inputHasPubkey(et,nt){const rt=(0,utils_1.checkForInput)(this.data.inputs,et);return pubkeyInInput(nt,rt,et,this.__CACHE)}inputHasHDKey(et,nt){const rt=(0,utils_1.checkForInput)(this.data.inputs,et),it=bip32DerivationIsMine(nt);return!!rt.bip32Derivation&&rt.bip32Derivation.some(it)}outputHasPubkey(et,nt){const rt=(0,utils_1.checkForOutput)(this.data.outputs,et);return pubkeyInOutput(nt,rt,et,this.__CACHE)}outputHasHDKey(et,nt){const rt=(0,utils_1.checkForOutput)(this.data.outputs,et),it=bip32DerivationIsMine(nt);return!!rt.bip32Derivation&&rt.bip32Derivation.some(it)}validateSignaturesOfAllInputs(et){return(0,utils_1.checkForInput)(this.data.inputs,0),range$4(this.data.inputs.length).map(rt=>this.validateSignaturesOfInput(rt,et)).reduce((rt,it)=>it===!0&&rt,!0)}validateSignaturesOfInput(et,nt,rt){const it=this.data.inputs[et];return(0,bip371_1.isTaprootInput)(it)?this.validateSignaturesOfTaprootInput(et,nt,rt):this._validateSignaturesOfInput(et,nt,rt)}_validateSignaturesOfInput(et,nt,rt){const it=this.data.inputs[et],ot=(it||{}).partialSig;if(!it||!ot||ot.length<1)throw new Error("No signatures to validate");if(typeof nt!="function")throw new Error("Need validator function to validate signatures");const at=rt?ot.filter(ht=>ht.pubkey.equals(rt)):ot;if(at.length<1)throw new Error("No signatures for this pubkey");const st=[];let lt,ct,ut;for(const ht of at){const dt=bscript.signature.decode(ht.signature),{hash:pt,script:mt}=ut!==dt.hashType?getHashForSig(et,Object.assign({},it,{sighashType:dt.hashType}),this.__CACHE,!0):{hash:lt,script:ct};ut=dt.hashType,lt=pt,ct=mt,checkScriptForPubkey(ht.pubkey,mt,"verify"),st.push(nt(ht.pubkey,pt,dt.signature))}return st.every(ht=>ht===!0)}validateSignaturesOfTaprootInput(et,nt,rt){const it=this.data.inputs[et],ot=(it||{}).tapKeySig,at=(it||{}).tapScriptSig;if(!it&&!ot&&!(at&&!at.length))throw new Error("No signatures to validate");if(typeof nt!="function")throw new Error("Need validator function to validate signatures");rt=rt&&(0,bip371_1.toXOnly)(rt);const st=rt?getTaprootHashesForSig(et,it,this.data.inputs,rt,this.__CACHE):getAllTaprootHashesForSig(et,it,this.data.inputs,this.__CACHE);if(!st.length)throw new Error("No signatures for this pubkey");const lt=st.find(ut=>!ut.leafHash);let ct=0;if(ot&<){if(!nt(lt.pubkey,lt.hash,trimTaprootSig(ot)))return!1;ct++}if(at)for(const ut of at){const ht=st.find(dt=>ut.pubkey.equals(dt.pubkey));if(ht){if(!nt(ut.pubkey,ht.hash,trimTaprootSig(ut.signature)))return!1;ct++}}return ct>0}signAllInputsHD(et,nt=[transaction_1.Transaction.SIGHASH_ALL]){if(!et||!et.publicKey||!et.fingerprint)throw new Error("Need HDSigner to sign input");const rt=[];for(const it of range$4(this.data.inputs.length))try{this.signInputHD(it,et,nt),rt.push(!0)}catch{rt.push(!1)}if(rt.every(it=>it===!1))throw new Error("No inputs were signed");return this}signAllInputsHDAsync(et,nt=[transaction_1.Transaction.SIGHASH_ALL]){return new Promise((rt,it)=>{if(!et||!et.publicKey||!et.fingerprint)return it(new Error("Need HDSigner to sign input"));const ot=[],at=[];for(const st of range$4(this.data.inputs.length))at.push(this.signInputHDAsync(st,et,nt).then(()=>{ot.push(!0)},()=>{ot.push(!1)}));return Promise.all(at).then(()=>{if(ot.every(st=>st===!1))return it(new Error("No inputs were signed"));rt()})})}signInputHD(et,nt,rt=[transaction_1.Transaction.SIGHASH_ALL]){if(!nt||!nt.publicKey||!nt.fingerprint)throw new Error("Need HDSigner to sign input");return getSignersFromHD(et,this.data.inputs,nt).forEach(ot=>this.signInput(et,ot,rt)),this}signInputHDAsync(et,nt,rt=[transaction_1.Transaction.SIGHASH_ALL]){return new Promise((it,ot)=>{if(!nt||!nt.publicKey||!nt.fingerprint)return ot(new Error("Need HDSigner to sign input"));const st=getSignersFromHD(et,this.data.inputs,nt).map(lt=>this.signInputAsync(et,lt,rt));return Promise.all(st).then(()=>{it()}).catch(ot)})}signAllInputs(et,nt){if(!et||!et.publicKey)throw new Error("Need Signer to sign input");const rt=[];for(const it of range$4(this.data.inputs.length))try{this.signInput(it,et,nt),rt.push(!0)}catch{rt.push(!1)}if(rt.every(it=>it===!1))throw new Error("No inputs were signed");return this}signAllInputsAsync(et,nt){return new Promise((rt,it)=>{if(!et||!et.publicKey)return it(new Error("Need Signer to sign input"));const ot=[],at=[];for(const[st]of this.data.inputs.entries())at.push(this.signInputAsync(st,et,nt).then(()=>{ot.push(!0)},()=>{ot.push(!1)}));return Promise.all(at).then(()=>{if(ot.every(st=>st===!1))return it(new Error("No inputs were signed"));rt()})})}signInput(et,nt,rt){if(!nt||!nt.publicKey)throw new Error("Need Signer to sign input");const it=(0,utils_1.checkForInput)(this.data.inputs,et);return(0,bip371_1.isTaprootInput)(it)?this._signTaprootInput(et,it,nt,void 0,rt):this._signInput(et,nt,rt)}signTaprootInput(et,nt,rt,it){if(!nt||!nt.publicKey)throw new Error("Need Signer to sign input");const ot=(0,utils_1.checkForInput)(this.data.inputs,et);if((0,bip371_1.isTaprootInput)(ot))return this._signTaprootInput(et,ot,nt,rt,it);throw new Error(`Input #${et} is not of type Taproot.`)}_signInput(et,nt,rt=[transaction_1.Transaction.SIGHASH_ALL]){const{hash:it,sighashType:ot}=getHashAndSighashType(this.data.inputs,et,nt.publicKey,this.__CACHE,rt),at=[{pubkey:nt.publicKey,signature:bscript.signature.encode(nt.sign(it),ot)}];return this.data.updateInput(et,{partialSig:at}),this}_signTaprootInput(et,nt,rt,it,ot=[transaction_1.Transaction.SIGHASH_DEFAULT]){const at=this.checkTaprootHashesForSig(et,nt,rt,it,ot),st=at.filter(ct=>!ct.leafHash).map(ct=>(0,bip371_1.serializeTaprootSignature)(rt.signSchnorr(ct.hash),nt.sighashType))[0],lt=at.filter(ct=>!!ct.leafHash).map(ct=>({pubkey:(0,bip371_1.toXOnly)(rt.publicKey),signature:(0,bip371_1.serializeTaprootSignature)(rt.signSchnorr(ct.hash),nt.sighashType),leafHash:ct.leafHash}));return st&&this.data.updateInput(et,{tapKeySig:st}),lt.length&&this.data.updateInput(et,{tapScriptSig:lt}),this}signInputAsync(et,nt,rt){return Promise.resolve().then(()=>{if(!nt||!nt.publicKey)throw new Error("Need Signer to sign input");const it=(0,utils_1.checkForInput)(this.data.inputs,et);return(0,bip371_1.isTaprootInput)(it)?this._signTaprootInputAsync(et,it,nt,void 0,rt):this._signInputAsync(et,nt,rt)})}signTaprootInputAsync(et,nt,rt,it){return Promise.resolve().then(()=>{if(!nt||!nt.publicKey)throw new Error("Need Signer to sign input");const ot=(0,utils_1.checkForInput)(this.data.inputs,et);if((0,bip371_1.isTaprootInput)(ot))return this._signTaprootInputAsync(et,ot,nt,rt,it);throw new Error(`Input #${et} is not of type Taproot.`)})}_signInputAsync(et,nt,rt=[transaction_1.Transaction.SIGHASH_ALL]){const{hash:it,sighashType:ot}=getHashAndSighashType(this.data.inputs,et,nt.publicKey,this.__CACHE,rt);return Promise.resolve(nt.sign(it)).then(at=>{const st=[{pubkey:nt.publicKey,signature:bscript.signature.encode(at,ot)}];this.data.updateInput(et,{partialSig:st})})}async _signTaprootInputAsync(et,nt,rt,it,ot=[transaction_1.Transaction.SIGHASH_DEFAULT]){const at=this.checkTaprootHashesForSig(et,nt,rt,it,ot),st=[],lt=at.filter(ut=>!ut.leafHash)[0];if(lt){const ut=Promise.resolve(rt.signSchnorr(lt.hash)).then(ht=>({tapKeySig:(0,bip371_1.serializeTaprootSignature)(ht,nt.sighashType)}));st.push(ut)}const ct=at.filter(ut=>!!ut.leafHash);if(ct.length){const ut=ct.map(ht=>Promise.resolve(rt.signSchnorr(ht.hash)).then(dt=>({tapScriptSig:[{pubkey:(0,bip371_1.toXOnly)(rt.publicKey),signature:(0,bip371_1.serializeTaprootSignature)(dt,nt.sighashType),leafHash:ht.leafHash}]})));st.push(...ut)}return Promise.all(st).then(ut=>{ut.forEach(ht=>this.data.updateInput(et,ht))})}checkTaprootHashesForSig(et,nt,rt,it,ot){if(typeof rt.signSchnorr!="function")throw new Error(`Need Schnorr Signer to sign taproot input #${et}.`);const at=getTaprootHashesForSig(et,nt,this.data.inputs,rt.publicKey,this.__CACHE,it,ot);if(!at||!at.length)throw new Error(`Can not sign for input #${et} with the key ${rt.publicKey.toString("hex")}`);return at}toBuffer(){return checkCache(this.__CACHE),this.data.toBuffer()}toHex(){return checkCache(this.__CACHE),this.data.toHex()}toBase64(){return checkCache(this.__CACHE),this.data.toBase64()}updateGlobal(et){return this.data.updateGlobal(et),this}updateInput(et,nt){return nt.witnessScript&&checkInvalidP2WSH(nt.witnessScript),(0,bip371_1.checkTaprootInputFields)(this.data.inputs[et],nt,"updateInput"),this.data.updateInput(et,nt),nt.nonWitnessUtxo&&addNonWitnessTxCache(this.__CACHE,this.data.inputs[et],et),this}updateOutput(et,nt){const rt=this.data.outputs[et];return(0,bip371_1.checkTaprootOutputFields)(rt,nt,"updateOutput"),this.data.updateOutput(et,nt),this}addUnknownKeyValToGlobal(et){return this.data.addUnknownKeyValToGlobal(et),this}addUnknownKeyValToInput(et,nt){return this.data.addUnknownKeyValToInput(et,nt),this}addUnknownKeyValToOutput(et,nt){return this.data.addUnknownKeyValToOutput(et,nt),this}clearFinalizedInput(et){return this.data.clearFinalizedInput(et),this}}psbt$1.Psbt=Psbt;const transactionFromBuffer=tt=>new PsbtTransaction(tt);class PsbtTransaction{constructor(et=Buffer.from([2,0,0,0,0,0,0,0,0,0])){this.tx=transaction_1.Transaction.fromBuffer(et),checkTxEmpty(this.tx),Object.defineProperty(this,"tx",{enumerable:!1,writable:!0})}getInputOutputCounts(){return{inputCount:this.tx.ins.length,outputCount:this.tx.outs.length}}addInput(et){if(et.hash===void 0||et.index===void 0||!Buffer.isBuffer(et.hash)&&typeof et.hash!="string"||typeof et.index!="number")throw new Error("Error adding input.");const nt=typeof et.hash=="string"?(0,bufferutils_1.reverseBuffer)(Buffer.from(et.hash,"hex")):et.hash;this.tx.addInput(nt,et.index,et.sequence)}addOutput(et){if(et.script===void 0||et.value===void 0||!Buffer.isBuffer(et.script)||typeof et.value!="number")throw new Error("Error adding output.");this.tx.addOutput(et.script,et.value)}toBuffer(){return this.tx.toBuffer()}}function canFinalize(tt,et,nt){switch(nt){case"pubkey":case"pubkeyhash":case"witnesspubkeyhash":return hasSigs(1,tt.partialSig);case"multisig":const rt=payments.p2ms({output:et});return hasSigs(rt.m,tt.partialSig,rt.pubkeys);default:return!1}}function checkCache(tt){if(tt.__UNSAFE_SIGN_NONSEGWIT!==!1)throw new Error("Not BIP174 compliant, can not export")}function hasSigs(tt,et,nt){if(!et)return!1;let rt;if(nt?rt=nt.map(it=>{const ot=compressPubkey(it);return et.find(at=>at.pubkey.equals(ot))}).filter(it=>!!it):rt=et,rt.length>tt)throw new Error("Too many signatures");return rt.length===tt}function isFinalized(tt){return!!tt.finalScriptSig||!!tt.finalScriptWitness}function bip32DerivationIsMine(tt){return et=>!(!et.masterFingerprint.equals(tt.fingerprint)||!tt.derivePath(et.path).publicKey.equals(et.pubkey))}function check32Bit(tt){if(typeof tt!="number"||tt!==Math.floor(tt)||tt>4294967295||tt<0)throw new Error("Invalid 32 bit integer")}function checkFees(tt,et,nt){const rt=et.__FEE_RATE||tt.getFeeRate(),it=et.__EXTRACTED_TX.virtualSize(),ot=rt*it;if(rt>=nt.maximumFeeRate)throw new Error(`Warning: You are paying around ${(ot/1e8).toFixed(8)} in fees, which is ${rt} satoshi per byte for a transaction with a VSize of ${it} bytes (segwit counted as 0.25 byte per byte). Use setMaximumFeeRate method to raise your threshold, or pass true to the first arg of extractTransaction.`)}function checkInputsForPartialSig(tt,et){tt.forEach(nt=>{if((0,bip371_1.isTaprootInput)(nt)?(0,bip371_1.checkTaprootInputForSigs)(nt,et):(0,psbtutils_1.checkInputForSig)(nt,et))throw new Error("Can not modify transaction, signatures exist.")})}function checkPartialSigSighashes(tt){if(!tt.sighashType||!tt.partialSig)return;const{partialSig:et,sighashType:nt}=tt;et.forEach(rt=>{const{hashType:it}=bscript.signature.decode(rt.signature);if(nt!==it)throw new Error("Signature sighash does not match input sighash type")})}function checkScriptForPubkey(tt,et,nt){if(!(0,psbtutils_1.pubkeyInScript)(tt,et))throw new Error(`Can not ${nt} for this input with the key ${tt.toString("hex")}`)}function checkTxEmpty(tt){if(!tt.ins.every(nt=>nt.script&&nt.script.length===0&&nt.witness&&nt.witness.length===0))throw new Error("Format Error: Transaction ScriptSigs are not empty")}function checkTxForDupeIns(tt,et){tt.ins.forEach(nt=>{checkTxInputCache(et,nt)})}function checkTxInputCache(tt,et){const nt=(0,bufferutils_1.reverseBuffer)(Buffer.from(et.hash)).toString("hex")+":"+et.index;if(tt.__TX_IN_CACHE[nt])throw new Error("Duplicate input detected.");tt.__TX_IN_CACHE[nt]=1}function scriptCheckerFactory(tt,et){return(nt,rt,it,ot)=>{const at=tt({redeem:{output:it}}).output;if(!rt.equals(at))throw new Error(`${et} for ${ot} #${nt} doesn't match the scriptPubKey in the prevout`)}}const checkRedeemScript=scriptCheckerFactory(payments.p2sh,"Redeem script"),checkWitnessScript=scriptCheckerFactory(payments.p2wsh,"Witness script");function getTxCacheValue(tt,et,nt,rt){if(!nt.every(isFinalized))throw new Error(`PSBT must be finalized to calculate ${et}`);if(tt==="__FEE_RATE"&&rt.__FEE_RATE)return rt.__FEE_RATE;if(tt==="__FEE"&&rt.__FEE)return rt.__FEE;let it,ot=!0;if(rt.__EXTRACTED_TX?(it=rt.__EXTRACTED_TX,ot=!1):it=rt.__TX.clone(),inputFinalizeGetAmts(nt,it,rt,ot),tt==="__FEE_RATE")return rt.__FEE_RATE;if(tt==="__FEE")return rt.__FEE}function getFinalScripts(tt,et,nt,rt,it,ot){const at=classifyScript(nt);if(!canFinalize(et,nt,at))throw new Error(`Can not finalize input #${tt}`);return prepareFinalScripts(nt,at,et.partialSig,rt,it,ot)}function prepareFinalScripts(tt,et,nt,rt,it,ot){let at,st;const lt=getPayment(tt,et,nt),ct=ot?payments.p2wsh({redeem:lt}):null,ut=it?payments.p2sh({redeem:ct||lt}):null;return rt?(ct?st=(0,psbtutils_1.witnessStackToScriptWitness)(ct.witness):st=(0,psbtutils_1.witnessStackToScriptWitness)(lt.witness),ut&&(at=ut.input)):ut?at=ut.input:at=lt.input,{finalScriptSig:at,finalScriptWitness:st}}function getHashAndSighashType(tt,et,nt,rt,it){const ot=(0,utils_1.checkForInput)(tt,et),{hash:at,sighashType:st,script:lt}=getHashForSig(et,ot,rt,!1,it);return checkScriptForPubkey(nt,lt,"sign"),{hash:at,sighashType:st}}function getHashForSig(tt,et,nt,rt,it){const ot=nt.__TX,at=et.sighashType||transaction_1.Transaction.SIGHASH_ALL;checkSighashTypeAllowed(at,it);let st,lt;if(et.nonWitnessUtxo){const ht=nonWitnessUtxoTxFromCache(nt,et,tt),dt=ot.ins[tt].hash,pt=ht.getHash();if(!dt.equals(pt))throw new Error(`Non-witness UTXO hash for input #${tt} doesn't match the hash specified in the prevout`);const mt=ot.ins[tt].index;lt=ht.outs[mt]}else if(et.witnessUtxo)lt=et.witnessUtxo;else throw new Error("Need a Utxo input item for signing");const{meaningfulScript:ct,type:ut}=getMeaningfulScript(lt.script,tt,"input",et.redeemScript,et.witnessScript);if(["p2sh-p2wsh","p2wsh"].indexOf(ut)>=0)st=ot.hashForWitnessV0(tt,ct,lt.value,at);else if((0,psbtutils_1.isP2WPKH)(ct)){const ht=payments.p2pkh({hash:ct.slice(2)}).output;st=ot.hashForWitnessV0(tt,ht,lt.value,at)}else{if(et.nonWitnessUtxo===void 0&&nt.__UNSAFE_SIGN_NONSEGWIT===!1)throw new Error(`Input #${tt} has witnessUtxo but non-segwit script: ${ct.toString("hex")}`);!rt&&nt.__UNSAFE_SIGN_NONSEGWIT!==!1&&console.warn(`Warning: Signing non-segwit inputs without the full parent transaction means there is a chance that a miner could feed you incorrect information to trick you into paying large fees. This behavior is the same as Psbt's predecesor (TransactionBuilder - now removed) when signing non-segwit scripts. You are not able to export this Psbt with toBuffer|toBase64|toHex since it is not BIP174 compliant. +`,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var payments$3={},embed={},script={},bip66$1={};Object.defineProperty(bip66$1,"__esModule",{value:!0});bip66$1.encode=bip66$1.decode=bip66$1.check=void 0;function check$d(tt){if(tt.length<8||tt.length>72||tt[0]!==48||tt[1]!==tt.length-2||tt[2]!==2)return!1;const et=tt[3];if(et===0||5+et>=tt.length||tt[4+et]!==2)return!1;const nt=tt[5+et];return!(nt===0||6+et+nt!==tt.length||tt[4]&128||et>1&&tt[4]===0&&!(tt[5]&128)||tt[et+6]&128||nt>1&&tt[et+6]===0&&!(tt[et+7]&128))}bip66$1.check=check$d;function decode$m(tt){if(tt.length<8)throw new Error("DER sequence length is too short");if(tt.length>72)throw new Error("DER sequence length is too long");if(tt[0]!==48)throw new Error("Expected DER sequence");if(tt[1]!==tt.length-2)throw new Error("DER sequence length is invalid");if(tt[2]!==2)throw new Error("Expected DER integer");const et=tt[3];if(et===0)throw new Error("R length is zero");if(5+et>=tt.length)throw new Error("R length is too long");if(tt[4+et]!==2)throw new Error("Expected DER integer (2)");const nt=tt[5+et];if(nt===0)throw new Error("S length is zero");if(6+et+nt!==tt.length)throw new Error("S length is invalid");if(tt[4]&128)throw new Error("R value is negative");if(et>1&&tt[4]===0&&!(tt[5]&128))throw new Error("R value excessively padded");if(tt[et+6]&128)throw new Error("S value is negative");if(nt>1&&tt[et+6]===0&&!(tt[et+7]&128))throw new Error("S value excessively padded");return{r:tt.slice(4,4+et),s:tt.slice(6+et)}}bip66$1.decode=decode$m;function encode$n(tt,et){const nt=tt.length,rt=et.length;if(nt===0)throw new Error("R length is zero");if(rt===0)throw new Error("S length is zero");if(nt>33)throw new Error("R length is too long");if(rt>33)throw new Error("S length is too long");if(tt[0]&128)throw new Error("R value is negative");if(et[0]&128)throw new Error("S value is negative");if(nt>1&&tt[0]===0&&!(tt[1]&128))throw new Error("R value excessively padded");if(rt>1&&et[0]===0&&!(et[1]&128))throw new Error("S value excessively padded");const it=Buffer.allocUnsafe(6+nt+rt);return it[0]=48,it[1]=it.length-2,it[2]=2,it[3]=tt.length,tt.copy(it,4),it[4+nt]=2,it[5+nt]=et.length,et.copy(it,6+nt),it}bip66$1.encode=encode$n;var ops={};Object.defineProperty(ops,"__esModule",{value:!0});ops.REVERSE_OPS=ops.OPS=void 0;const OPS$8={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_LEFT:128,OP_RIGHT:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP3:178,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_CHECKSIGADD:186,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255};ops.OPS=OPS$8;const REVERSE_OPS={};ops.REVERSE_OPS=REVERSE_OPS;for(const tt of Object.keys(OPS$8)){const et=OPS$8[tt];REVERSE_OPS[et]=tt}var push_data={};Object.defineProperty(push_data,"__esModule",{value:!0});push_data.decode=push_data.encode=push_data.encodingLength=void 0;const ops_1=ops;function encodingLength$2(tt){return tttt.length)return null;rt=tt.readUInt8(et+1),it=2}else if(nt===ops_1.OPS.OP_PUSHDATA2){if(et+3>tt.length)return null;rt=tt.readUInt16LE(et+1),it=3}else{if(et+5>tt.length)return null;if(nt!==ops_1.OPS.OP_PUSHDATA4)throw new Error("Unexpected opcode");rt=tt.readUInt32LE(et+1),it=5}return{opcode:nt,number:rt,size:it}}push_data.decode=decode$l;var script_number={};Object.defineProperty(script_number,"__esModule",{value:!0});script_number.encode=script_number.decode=void 0;function decode$k(tt,et,nt){et=et||4,nt=nt===void 0?!0:nt;const rt=tt.length;if(rt===0)return 0;if(rt>et)throw new TypeError("Script number overflow");if(nt&&!(tt[rt-1]&127)&&(rt<=1||!(tt[rt-2]&128)))throw new Error("Non-minimally encoded script number");if(rt===5){const ot=tt.readUInt32LE(0),at=tt.readUInt8(4);return at&128?-((at&-129)*4294967296+ot):at*4294967296+ot}let it=0;for(let ot=0;ot2147483647?5:tt>8388607?4:tt>32767?3:tt>127?2:tt>0?1:0}function encode$l(tt){let et=Math.abs(tt);const nt=scriptNumSize(et),rt=Buffer.allocUnsafe(nt),it=tt<0;for(let ot=0;ot>=8;return rt[nt-1]&128?rt.writeUInt8(it?128:0,nt-1):it&&(rt[nt-1]|=128),rt}script_number.encode=encode$l;var script_signature={},types$6={},types$5={Array:function(tt){return tt!=null&&tt.constructor===Array},Boolean:function(tt){return typeof tt=="boolean"},Function:function(tt){return typeof tt=="function"},Nil:function(tt){return tt==null},Number:function(tt){return typeof tt=="number"},Object:function(tt){return typeof tt=="object"},String:function(tt){return typeof tt=="string"},"":function(){return!0}};types$5.Null=types$5.Nil;for(var typeName$1 in types$5)types$5[typeName$1].toJSON=(function(tt){return tt}).bind(null,typeName$1);var native$1=types$5,native=native$1;function getTypeName(tt){return tt.name||tt.toString().match(/function (.*?)\s*\(/)[1]}function getValueTypeName$1(tt){return native.Nil(tt)?"":getTypeName(tt.constructor)}function getValue$2(tt){return native.Function(tt)?"":native.String(tt)?JSON.stringify(tt):tt&&native.Object(tt)?"":tt}function captureStackTrace(tt,et){Error.captureStackTrace&&Error.captureStackTrace(tt,et)}function tfJSON$1(tt){return native.Function(tt)?tt.toJSON?tt.toJSON():getTypeName(tt):native.Array(tt)?"Array":tt&&native.Object(tt)?"Object":tt!==void 0?tt:""}function tfErrorString(tt,et,nt){var rt=getValue$2(et);return"Expected "+tfJSON$1(tt)+", got"+(nt!==""?" "+nt:"")+(rt!==""?" "+rt:"")}function TfTypeError$1(tt,et,nt){nt=nt||getValueTypeName$1(et),this.message=tfErrorString(tt,et,nt),captureStackTrace(this,TfTypeError$1),this.__type=tt,this.__value=et,this.__valueTypeName=nt}TfTypeError$1.prototype=Object.create(Error.prototype);TfTypeError$1.prototype.constructor=TfTypeError$1;function tfPropertyErrorString(tt,et,nt,rt,it){var ot='" of type ';return et==="key"&&(ot='" with key type '),tfErrorString('property "'+tfJSON$1(nt)+ot+tfJSON$1(tt),rt,it)}function TfPropertyTypeError$1(tt,et,nt,rt,it){tt?(it=it||getValueTypeName$1(rt),this.message=tfPropertyErrorString(tt,nt,et,rt,it)):this.message='Unexpected property "'+et+'"',captureStackTrace(this,TfTypeError$1),this.__label=nt,this.__property=et,this.__type=tt,this.__value=rt,this.__valueTypeName=it}TfPropertyTypeError$1.prototype=Object.create(Error.prototype);TfPropertyTypeError$1.prototype.constructor=TfTypeError$1;function tfCustomError(tt,et){return new TfTypeError$1(tt,{},et)}function tfSubError$1(tt,et,nt){return tt instanceof TfPropertyTypeError$1?(et=et+"."+tt.__property,tt=new TfPropertyTypeError$1(tt.__type,et,tt.__label,tt.__value,tt.__valueTypeName)):tt instanceof TfTypeError$1&&(tt=new TfPropertyTypeError$1(tt.__type,et,nt,tt.__value,tt.__valueTypeName)),captureStackTrace(tt),tt}var errors={TfTypeError:TfTypeError$1,TfPropertyTypeError:TfPropertyTypeError$1,tfCustomError,tfSubError:tfSubError$1,tfJSON:tfJSON$1,getValueTypeName:getValueTypeName$1},extra,hasRequiredExtra;function requireExtra(){if(hasRequiredExtra)return extra;hasRequiredExtra=1;var tt=native$1,et=errors;function nt(Et){return Buffer.isBuffer(Et)}function rt(Et){return typeof Et=="string"&&/^([0-9a-f]{2})+$/i.test(Et)}function it(Et,At){var Tt=Et.toJSON();function Mt(Lt){if(!Et(Lt))return!1;if(Lt.length===At)return!0;throw et.tfCustomError(Tt+"(Length: "+At+")",Tt+"(Length: "+Lt.length+")")}return Mt.toJSON=function(){return Tt},Mt}var ot=it.bind(null,tt.Array),at=it.bind(null,nt),st=it.bind(null,rt),lt=it.bind(null,tt.String);function ct(Et,At,Tt){Tt=Tt||tt.Number;function Mt(Lt,jt){return Tt(Lt,jt)&&Lt>Et&&Lt>24===Et}function pt(Et){return Et<<16>>16===Et}function mt(Et){return(Et|0)===Et}function gt(Et){return typeof Et=="number"&&Et>=-ut&&Et<=ut&&Math.floor(Et)===Et}function yt(Et){return(Et&255)===Et}function bt(Et){return(Et&65535)===Et}function wt(Et){return Et>>>0===Et}function vt(Et){return typeof Et=="number"&&Et>=0&&Et<=ut&&Math.floor(Et)===Et}var kt={ArrayN:ot,Buffer:nt,BufferN:at,Finite:ht,Hex:rt,HexN:st,Int8:dt,Int16:pt,Int32:mt,Int53:gt,Range:ct,StringN:lt,UInt8:yt,UInt16:bt,UInt32:wt,UInt53:vt};for(var St in kt)kt[St].toJSON=(function(Et){return Et}).bind(null,St);return extra=kt,extra}var ERRORS=errors,NATIVE=native$1,tfJSON=ERRORS.tfJSON,TfTypeError=ERRORS.TfTypeError,TfPropertyTypeError=ERRORS.TfPropertyTypeError,tfSubError=ERRORS.tfSubError,getValueTypeName=ERRORS.getValueTypeName,TYPES={arrayOf:function(et,nt){et=compile(et),nt=nt||{};function rt(it,ot){return!NATIVE.Array(it)||NATIVE.Nil(it)||nt.minLength!==void 0&&it.lengthnt.maxLength||nt.length!==void 0&&it.length!==nt.length?!1:it.every(function(at,st){try{return typeforce$4(et,at,ot)}catch(lt){throw tfSubError(lt,st)}})}return rt.toJSON=function(){var it="["+tfJSON(et)+"]";return nt.length!==void 0?it+="{"+nt.length+"}":(nt.minLength!==void 0||nt.maxLength!==void 0)&&(it+="{"+(nt.minLength===void 0?0:nt.minLength)+","+(nt.maxLength===void 0?1/0:nt.maxLength)+"}"),it},rt},maybe:function tt(et){et=compile(et);function nt(rt,it){return NATIVE.Nil(rt)||et(rt,it,tt)}return nt.toJSON=function(){return"?"+tfJSON(et)},nt},map:function(et,nt){et=compile(et),nt&&(nt=compile(nt));function rt(it,ot){if(!NATIVE.Object(it)||NATIVE.Nil(it))return!1;for(var at in it){try{nt&&typeforce$4(nt,at,ot)}catch(lt){throw tfSubError(lt,at,"key")}try{var st=it[at];typeforce$4(et,st,ot)}catch(lt){throw tfSubError(lt,at)}}return!0}return nt?rt.toJSON=function(){return"{"+tfJSON(nt)+": "+tfJSON(et)+"}"}:rt.toJSON=function(){return"{"+tfJSON(et)+"}"},rt},object:function(et){var nt={};for(var rt in et)nt[rt]=compile(et[rt]);function it(ot,at){if(!NATIVE.Object(ot)||NATIVE.Nil(ot))return!1;var st;try{for(st in nt){var lt=nt[st],ct=ot[st];typeforce$4(lt,ct,at)}}catch(ut){throw tfSubError(ut,st)}if(at){for(st in ot)if(!nt[st])throw new TfPropertyTypeError(void 0,st)}return!0}return it.toJSON=function(){return tfJSON(nt)},it},anyOf:function(){var et=[].slice.call(arguments).map(compile);function nt(rt,it){return et.some(function(ot){try{return typeforce$4(ot,rt,it)}catch{return!1}})}return nt.toJSON=function(){return et.map(tfJSON).join("|")},nt},allOf:function(){var et=[].slice.call(arguments).map(compile);function nt(rt,it){return et.every(function(ot){try{return typeforce$4(ot,rt,it)}catch{return!1}})}return nt.toJSON=function(){return et.map(tfJSON).join(" & ")},nt},quacksLike:function(et){function nt(rt){return et===getValueTypeName(rt)}return nt.toJSON=function(){return et},nt},tuple:function(){var et=[].slice.call(arguments).map(compile);function nt(rt,it){return NATIVE.Nil(rt)||NATIVE.Nil(rt.length)||it&&rt.length!==et.length?!1:et.every(function(ot,at){try{return typeforce$4(ot,rt[at],it)}catch(st){throw tfSubError(st,at)}})}return nt.toJSON=function(){return"("+et.map(tfJSON).join(", ")+")"},nt},value:function(et){function nt(rt){return rt===et}return nt.toJSON=function(){return et},nt}};TYPES.oneOf=TYPES.anyOf;function compile(tt){if(NATIVE.String(tt))return tt[0]==="?"?TYPES.maybe(tt.slice(1)):NATIVE[tt]||TYPES.quacksLike(tt);if(tt&&NATIVE.Object(tt)){if(NATIVE.Array(tt)){if(tt.length!==1)throw new TypeError("Expected compile() parameter of type Array of length 1");return TYPES.arrayOf(tt[0])}return TYPES.object(tt)}else if(NATIVE.Function(tt))return tt;return TYPES.value(tt)}function typeforce$4(tt,et,nt,rt){if(NATIVE.Function(tt)){if(tt(et,nt))return!0;throw new TfTypeError(rt||tt,et)}return typeforce$4(compile(tt),et,nt)}for(var typeName in NATIVE)typeforce$4[typeName]=NATIVE[typeName];for(typeName in TYPES)typeforce$4[typeName]=TYPES[typeName];var EXTRA=requireExtra();for(typeName in EXTRA)typeforce$4[typeName]=EXTRA[typeName];typeforce$4.compile=compile;typeforce$4.TfTypeError=TfTypeError;typeforce$4.TfPropertyTypeError=TfPropertyTypeError;var typeforce_1=typeforce$4;(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.oneOf=tt.Null=tt.BufferN=tt.Function=tt.UInt32=tt.UInt8=tt.tuple=tt.maybe=tt.Hex=tt.Buffer=tt.String=tt.Boolean=tt.Array=tt.Number=tt.Hash256bit=tt.Hash160bit=tt.Buffer256bit=tt.isTaptree=tt.isTapleaf=tt.TAPLEAF_VERSION_MASK=tt.Network=tt.ECPoint=tt.Satoshi=tt.Signer=tt.BIP32Path=tt.UInt31=tt.isPoint=tt.typeforce=void 0;const et=buffer$2;tt.typeforce=typeforce_1;const nt=et.Buffer.alloc(32,0),rt=et.Buffer.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex");function it(pt){if(!et.Buffer.isBuffer(pt)||pt.length<33)return!1;const mt=pt[0],gt=pt.slice(1,33);if(gt.compare(nt)===0||gt.compare(rt)>=0)return!1;if((mt===2||mt===3)&&pt.length===33)return!0;const yt=pt.slice(33);return yt.compare(nt)===0||yt.compare(rt)>=0?!1:mt===4&&pt.length===65}tt.isPoint=it;const ot=Math.pow(2,31)-1;function at(pt){return tt.typeforce.UInt32(pt)&&pt<=ot}tt.UInt31=at;function st(pt){return tt.typeforce.String(pt)&&!!pt.match(/^(m\/)?(\d+'?\/)*\d+'?$/)}tt.BIP32Path=st,st.toJSON=()=>"BIP32 derivation path";function lt(pt){return(tt.typeforce.Buffer(pt.publicKey)||typeof pt.getPublicKey=="function")&&typeof pt.sign=="function"}tt.Signer=lt;const ct=21*1e14;function ut(pt){return tt.typeforce.UInt53(pt)&&pt<=ct}tt.Satoshi=ut,tt.ECPoint=tt.typeforce.quacksLike("Point"),tt.Network=tt.typeforce.compile({messagePrefix:tt.typeforce.oneOf(tt.typeforce.Buffer,tt.typeforce.String),bip32:{public:tt.typeforce.UInt32,private:tt.typeforce.UInt32},pubKeyHash:tt.typeforce.UInt8,scriptHash:tt.typeforce.UInt8,wif:tt.typeforce.UInt8}),tt.TAPLEAF_VERSION_MASK=254;function ht(pt){return!pt||!("output"in pt)||!et.Buffer.isBuffer(pt.output)?!1:pt.version!==void 0?(pt.version&tt.TAPLEAF_VERSION_MASK)===pt.version:!0}tt.isTapleaf=ht;function dt(pt){return(0,tt.Array)(pt)?pt.length!==2?!1:pt.every(mt=>dt(mt)):ht(pt)}tt.isTaptree=dt,tt.Buffer256bit=tt.typeforce.BufferN(32),tt.Hash160bit=tt.typeforce.BufferN(20),tt.Hash256bit=tt.typeforce.BufferN(32),tt.Number=tt.typeforce.Number,tt.Array=tt.typeforce.Array,tt.Boolean=tt.typeforce.Boolean,tt.String=tt.typeforce.String,tt.Buffer=tt.typeforce.Buffer,tt.Hex=tt.typeforce.Hex,tt.maybe=tt.typeforce.maybe,tt.tuple=tt.typeforce.tuple,tt.UInt8=tt.typeforce.UInt8,tt.UInt32=tt.typeforce.UInt32,tt.Function=tt.typeforce.Function,tt.BufferN=tt.typeforce.BufferN,tt.Null=tt.typeforce.Null,tt.oneOf=tt.typeforce.oneOf})(types$6);Object.defineProperty(script_signature,"__esModule",{value:!0});script_signature.encode=script_signature.decode=void 0;const bip66=bip66$1,types$4=types$6,{typeforce:typeforce$3}=types$4,ZERO$1=Buffer.alloc(1,0);function toDER(tt){let et=0;for(;tt[et]===0;)++et;return et===tt.length?ZERO$1:(tt=tt.slice(et),tt[0]&128?Buffer.concat([ZERO$1,tt],1+tt.length):tt)}function fromDER(tt){tt[0]===0&&(tt=tt.slice(1));const et=Buffer.alloc(32,0),nt=Math.max(0,32-tt.length);return tt.copy(et,nt),et}function decode$j(tt){const et=tt.readUInt8(tt.length-1),nt=et&-129;if(nt<=0||nt>=4)throw new Error("Invalid hashType "+et);const rt=bip66.decode(tt.slice(0,-1)),it=fromDER(rt.r),ot=fromDER(rt.s);return{signature:Buffer.concat([it,ot],64),hashType:et}}script_signature.decode=decode$j;function encode$k(tt,et){typeforce$3({signature:types$4.BufferN(64),hashType:types$4.UInt8},{signature:tt,hashType:et});const nt=et&-129;if(nt<=0||nt>=4)throw new Error("Invalid hashType "+et);const rt=Buffer.allocUnsafe(1);rt.writeUInt8(et,0);const it=toDER(tt.slice(0,32)),ot=toDER(tt.slice(32,64));return Buffer.concat([bip66.encode(it,ot),rt])}script_signature.encode=encode$k;(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.signature=tt.number=tt.isCanonicalScriptSignature=tt.isDefinedHashType=tt.isCanonicalPubKey=tt.toStack=tt.fromASM=tt.toASM=tt.decompile=tt.compile=tt.countNonPushOnlyOPs=tt.isPushOnly=tt.OPS=void 0;const et=bip66$1,nt=ops;Object.defineProperty(tt,"OPS",{enumerable:!0,get:function(){return nt.OPS}});const rt=push_data,it=script_number,ot=script_signature,at=types$6,{typeforce:st}=at,lt=nt.OPS.OP_RESERVED;function ct(Mt){return at.Number(Mt)&&(Mt===nt.OPS.OP_0||Mt>=nt.OPS.OP_1&&Mt<=nt.OPS.OP_16||Mt===nt.OPS.OP_1NEGATE)}function ut(Mt){return at.Buffer(Mt)||ct(Mt)}function ht(Mt){return at.Array(Mt)&&Mt.every(ut)}tt.isPushOnly=ht;function dt(Mt){return Mt.length-Mt.filter(ut).length}tt.countNonPushOnlyOPs=dt;function pt(Mt){if(Mt.length===0)return nt.OPS.OP_0;if(Mt.length===1){if(Mt[0]>=1&&Mt[0]<=16)return lt+Mt[0];if(Mt[0]===129)return nt.OPS.OP_1NEGATE}}function mt(Mt){return Buffer.isBuffer(Mt)}function gt(Mt){return at.Array(Mt)}function yt(Mt){return Buffer.isBuffer(Mt)}function bt(Mt){if(mt(Mt))return Mt;st(at.Array,Mt);const Lt=Mt.reduce(($t,xt)=>yt(xt)?xt.length===1&&pt(xt)!==void 0?$t+1:$t+rt.encodingLength(xt.length)+xt.length:$t+1,0),jt=Buffer.allocUnsafe(Lt);let Rt=0;if(Mt.forEach($t=>{if(yt($t)){const xt=pt($t);if(xt!==void 0){jt.writeUInt8(xt,Rt),Rt+=1;return}Rt+=rt.encode(jt,$t.length,Rt),$t.copy(jt,Rt),Rt+=$t.length}else jt.writeUInt8($t,Rt),Rt+=1}),Rt!==jt.length)throw new Error("Could not decode chunks");return jt}tt.compile=bt;function wt(Mt){if(gt(Mt))return Mt;st(at.Buffer,Mt);const Lt=[];let jt=0;for(;jtnt.OPS.OP_0&&Rt<=nt.OPS.OP_PUSHDATA4){const $t=rt.decode(Mt,jt);if($t===null||(jt+=$t.size,jt+$t.number>Mt.length))return null;const xt=Mt.slice(jt,jt+$t.number);jt+=$t.number;const It=pt(xt);It!==void 0?Lt.push(It):Lt.push(xt)}else Lt.push(Rt),jt+=1}return Lt}tt.decompile=wt;function vt(Mt){return mt(Mt)&&(Mt=wt(Mt)),Mt.map(Lt=>{if(yt(Lt)){const jt=pt(Lt);if(jt===void 0)return Lt.toString("hex");Lt=jt}return nt.REVERSE_OPS[Lt]}).join(" ")}tt.toASM=vt;function kt(Mt){return st(at.String,Mt),bt(Mt.split(" ").map(Lt=>nt.OPS[Lt]!==void 0?nt.OPS[Lt]:(st(at.Hex,Lt),Buffer.from(Lt,"hex"))))}tt.fromASM=kt;function St(Mt){return Mt=wt(Mt),st(ht,Mt),Mt.map(Lt=>yt(Lt)?Lt:Lt===nt.OPS.OP_0?Buffer.allocUnsafe(0):it.encode(Lt-lt))}tt.toStack=St;function Et(Mt){return at.isPoint(Mt)}tt.isCanonicalPubKey=Et;function At(Mt){const Lt=Mt&-129;return Lt>0&&Lt<4}tt.isDefinedHashType=At;function Tt(Mt){return!Buffer.isBuffer(Mt)||!At(Mt[Mt.length-1])?!1:et.check(Mt.slice(0,-1))}tt.isCanonicalScriptSignature=Tt,tt.number=it,tt.signature=ot})(script);var lazy$8={};Object.defineProperty(lazy$8,"__esModule",{value:!0});lazy$8.value=lazy$8.prop=void 0;function prop(tt,et,nt){Object.defineProperty(tt,et,{configurable:!0,enumerable:!0,get(){const rt=nt.call(this);return this[et]=rt,rt},set(rt){Object.defineProperty(this,et,{configurable:!0,enumerable:!0,value:rt,writable:!0})}})}lazy$8.prop=prop;function value$1(tt){let et;return()=>(et!==void 0||(et=tt()),et)}lazy$8.value=value$1;Object.defineProperty(embed,"__esModule",{value:!0});embed.p2data=void 0;const networks_1$8=networks$1,bscript$b=script,types_1$9=types$6,lazy$7=lazy$8,OPS$7=bscript$b.OPS;function stacksEqual$4(tt,et){return tt.length!==et.length?!1:tt.every((nt,rt)=>nt.equals(et[rt]))}function p2data(tt,et){if(!tt.data&&!tt.output)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$9.typeforce)({network:types_1$9.typeforce.maybe(types_1$9.typeforce.Object),output:types_1$9.typeforce.maybe(types_1$9.typeforce.Buffer),data:types_1$9.typeforce.maybe(types_1$9.typeforce.arrayOf(types_1$9.typeforce.Buffer))},tt);const rt={name:"embed",network:tt.network||networks_1$8.bitcoin};if(lazy$7.prop(rt,"output",()=>{if(tt.data)return bscript$b.compile([OPS$7.OP_RETURN].concat(tt.data))}),lazy$7.prop(rt,"data",()=>{if(tt.output)return bscript$b.decompile(tt.output).slice(1)}),et.validate&&tt.output){const it=bscript$b.decompile(tt.output);if(it[0]!==OPS$7.OP_RETURN)throw new TypeError("Output is invalid");if(!it.slice(1).every(types_1$9.typeforce.Buffer))throw new TypeError("Output is invalid");if(tt.data&&!stacksEqual$4(tt.data,rt.data))throw new TypeError("Data mismatch")}return Object.assign(rt,tt)}embed.p2data=p2data;var p2ms$1={};Object.defineProperty(p2ms$1,"__esModule",{value:!0});p2ms$1.p2ms=void 0;const networks_1$7=networks$1,bscript$a=script,types_1$8=types$6,lazy$6=lazy$8,OPS$6=bscript$a.OPS,OP_INT_BASE=OPS$6.OP_RESERVED;function stacksEqual$3(tt,et){return tt.length!==et.length?!1:tt.every((nt,rt)=>nt.equals(et[rt]))}function p2ms(tt,et){if(!tt.input&&!tt.output&&!(tt.pubkeys&&tt.m!==void 0)&&!tt.signatures)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{});function nt(lt){return bscript$a.isCanonicalScriptSignature(lt)||(et.allowIncomplete&<===OPS$6.OP_0)!==void 0}(0,types_1$8.typeforce)({network:types_1$8.typeforce.maybe(types_1$8.typeforce.Object),m:types_1$8.typeforce.maybe(types_1$8.typeforce.Number),n:types_1$8.typeforce.maybe(types_1$8.typeforce.Number),output:types_1$8.typeforce.maybe(types_1$8.typeforce.Buffer),pubkeys:types_1$8.typeforce.maybe(types_1$8.typeforce.arrayOf(types_1$8.isPoint)),signatures:types_1$8.typeforce.maybe(types_1$8.typeforce.arrayOf(nt)),input:types_1$8.typeforce.maybe(types_1$8.typeforce.Buffer)},tt);const it={network:tt.network||networks_1$7.bitcoin};let ot=[],at=!1;function st(lt){at||(at=!0,ot=bscript$a.decompile(lt),it.m=ot[0]-OP_INT_BASE,it.n=ot[ot.length-2]-OP_INT_BASE,it.pubkeys=ot.slice(1,-2))}if(lazy$6.prop(it,"output",()=>{if(tt.m&&it.n&&tt.pubkeys)return bscript$a.compile([].concat(OP_INT_BASE+tt.m,tt.pubkeys,OP_INT_BASE+it.n,OPS$6.OP_CHECKMULTISIG))}),lazy$6.prop(it,"m",()=>{if(it.output)return st(it.output),it.m}),lazy$6.prop(it,"n",()=>{if(it.pubkeys)return it.pubkeys.length}),lazy$6.prop(it,"pubkeys",()=>{if(tt.output)return st(tt.output),it.pubkeys}),lazy$6.prop(it,"signatures",()=>{if(tt.input)return bscript$a.decompile(tt.input).slice(1)}),lazy$6.prop(it,"input",()=>{if(tt.signatures)return bscript$a.compile([OPS$6.OP_0].concat(tt.signatures))}),lazy$6.prop(it,"witness",()=>{if(it.input)return[]}),lazy$6.prop(it,"name",()=>{if(!(!it.m||!it.n))return`p2ms(${it.m} of ${it.n})`}),et.validate){if(tt.output){if(st(tt.output),!types_1$8.typeforce.Number(ot[0]))throw new TypeError("Output is invalid");if(!types_1$8.typeforce.Number(ot[ot.length-2]))throw new TypeError("Output is invalid");if(ot[ot.length-1]!==OPS$6.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(it.m<=0||it.n>16||it.m>it.n||it.n!==ot.length-3)throw new TypeError("Output is invalid");if(!it.pubkeys.every(lt=>(0,types_1$8.isPoint)(lt)))throw new TypeError("Output is invalid");if(tt.m!==void 0&&tt.m!==it.m)throw new TypeError("m mismatch");if(tt.n!==void 0&&tt.n!==it.n)throw new TypeError("n mismatch");if(tt.pubkeys&&!stacksEqual$3(tt.pubkeys,it.pubkeys))throw new TypeError("Pubkeys mismatch")}if(tt.pubkeys){if(tt.n!==void 0&&tt.n!==tt.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(it.n=tt.pubkeys.length,it.nit.m)throw new TypeError("Too many signatures provided")}if(tt.input){if(tt.input[0]!==OPS$6.OP_0)throw new TypeError("Input is invalid");if(it.signatures.length===0||!it.signatures.every(nt))throw new TypeError("Input has invalid signature(s)");if(tt.signatures&&!stacksEqual$3(tt.signatures,it.signatures))throw new TypeError("Signature mismatch");if(tt.m!==void 0&&tt.m!==tt.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(it,tt)}p2ms$1.p2ms=p2ms;var p2pk$1={};Object.defineProperty(p2pk$1,"__esModule",{value:!0});p2pk$1.p2pk=void 0;const networks_1$6=networks$1,bscript$9=script,types_1$7=types$6,lazy$5=lazy$8,OPS$5=bscript$9.OPS;function p2pk(tt,et){if(!tt.input&&!tt.output&&!tt.pubkey&&!tt.input&&!tt.signature)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$7.typeforce)({network:types_1$7.typeforce.maybe(types_1$7.typeforce.Object),output:types_1$7.typeforce.maybe(types_1$7.typeforce.Buffer),pubkey:types_1$7.typeforce.maybe(types_1$7.isPoint),signature:types_1$7.typeforce.maybe(bscript$9.isCanonicalScriptSignature),input:types_1$7.typeforce.maybe(types_1$7.typeforce.Buffer)},tt);const nt=lazy$5.value(()=>bscript$9.decompile(tt.input)),it={name:"p2pk",network:tt.network||networks_1$6.bitcoin};if(lazy$5.prop(it,"output",()=>{if(tt.pubkey)return bscript$9.compile([tt.pubkey,OPS$5.OP_CHECKSIG])}),lazy$5.prop(it,"pubkey",()=>{if(tt.output)return tt.output.slice(1,-1)}),lazy$5.prop(it,"signature",()=>{if(tt.input)return nt()[0]}),lazy$5.prop(it,"input",()=>{if(tt.signature)return bscript$9.compile([tt.signature])}),lazy$5.prop(it,"witness",()=>{if(it.input)return[]}),et.validate){if(tt.output){if(tt.output[tt.output.length-1]!==OPS$5.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!(0,types_1$7.isPoint)(it.pubkey))throw new TypeError("Output pubkey is invalid");if(tt.pubkey&&!tt.pubkey.equals(it.pubkey))throw new TypeError("Pubkey mismatch")}if(tt.signature&&tt.input&&!tt.input.equals(it.input))throw new TypeError("Signature mismatch");if(tt.input){if(nt().length!==1)throw new TypeError("Input is invalid");if(!bscript$9.isCanonicalScriptSignature(it.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(it,tt)}p2pk$1.p2pk=p2pk;var p2pkh$1={},crypto$2={},ripemd160={},_sha2={},_assert={};Object.defineProperty(_assert,"__esModule",{value:!0});_assert.output=_assert.exists=_assert.hash=_assert.bytes=_assert.bool=_assert.number=void 0;function number$4(tt){if(!Number.isSafeInteger(tt)||tt<0)throw new Error(`Wrong positive integer: ${tt}`)}_assert.number=number$4;function bool$1(tt){if(typeof tt!="boolean")throw new Error(`Expected boolean, not ${tt}`)}_assert.bool=bool$1;function bytes(tt,...et){if(!(tt instanceof Uint8Array))throw new Error("Expected Uint8Array");if(et.length>0&&!et.includes(tt.length))throw new Error(`Expected Uint8Array of length ${et}, not of length=${tt.length}`)}_assert.bytes=bytes;function hash(tt){if(typeof tt!="function"||typeof tt.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");number$4(tt.outputLen),number$4(tt.blockLen)}_assert.hash=hash;function exists(tt,et=!0){if(tt.destroyed)throw new Error("Hash instance has been destroyed");if(et&&tt.finished)throw new Error("Hash#digest() has already been called")}_assert.exists=exists;function output(tt,et){bytes(tt);const nt=et.outputLen;if(tt.lengthEt instanceof Uint8Array,rt=Et=>new Uint8Array(Et.buffer,Et.byteOffset,Et.byteLength);tt.u8=rt;const it=Et=>new Uint32Array(Et.buffer,Et.byteOffset,Math.floor(Et.byteLength/4));tt.u32=it;const ot=Et=>new DataView(Et.buffer,Et.byteOffset,Et.byteLength);tt.createView=ot;const at=(Et,At)=>Et<<32-At|Et>>>At;if(tt.rotr=at,tt.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,!tt.isLE)throw new Error("Non little-endian hardware is not supported");const st=Array.from({length:256},(Et,At)=>At.toString(16).padStart(2,"0"));function lt(Et){if(!nt(Et))throw new Error("Uint8Array expected");let At="";for(let Tt=0;Tt{};tt.nextTick=ut;async function ht(Et,At,Tt){let Mt=Date.now();for(let Lt=0;Lt=0&&jtMt+Lt.length,0));let Tt=0;return Et.forEach(Mt=>{if(!nt(Mt))throw new Error("Uint8Array expected");At.set(Mt,Tt),Tt+=Mt.length}),At}tt.concatBytes=mt;class gt{clone(){return this._cloneInto()}}tt.Hash=gt;const yt=Et=>Object.prototype.toString.call(Et)==="[object Object]"&&Et.constructor===Object;function bt(Et,At){if(At!==void 0&&(typeof At!="object"||!yt(At)))throw new Error("Options should be object or undefined");return Object.assign(Et,At)}tt.checkOpts=bt;function wt(Et){const At=Mt=>Et().update(pt(Mt)).digest(),Tt=Et();return At.outputLen=Tt.outputLen,At.blockLen=Tt.blockLen,At.create=()=>Et(),At}tt.wrapConstructor=wt;function vt(Et){const At=(Mt,Lt)=>Et(Lt).update(pt(Mt)).digest(),Tt=Et({});return At.outputLen=Tt.outputLen,At.blockLen=Tt.blockLen,At.create=Mt=>Et(Mt),At}tt.wrapConstructorWithOpts=vt;function kt(Et){const At=(Mt,Lt)=>Et(Lt).update(pt(Mt)).digest(),Tt=Et({});return At.outputLen=Tt.outputLen,At.blockLen=Tt.blockLen,At.create=Mt=>Et(Mt),At}tt.wrapXOFConstructorWithOpts=kt;function St(Et=32){if(et.crypto&&typeof et.crypto.getRandomValues=="function")return et.crypto.getRandomValues(new Uint8Array(Et));throw new Error("crypto.getRandomValues must be defined")}tt.randomBytes=St})(utils$2);Object.defineProperty(_sha2,"__esModule",{value:!0});_sha2.SHA2=void 0;const _assert_js_1=_assert,utils_js_1$3=utils$2;function setBigUint64(tt,et,nt,rt){if(typeof tt.setBigUint64=="function")return tt.setBigUint64(et,nt,rt);const it=BigInt(32),ot=BigInt(4294967295),at=Number(nt>>it&ot),st=Number(nt&ot),lt=rt?4:0,ct=rt?0:4;tt.setUint32(et+lt,at,rt),tt.setUint32(et+ct,st,rt)}class SHA2 extends utils_js_1$3.Hash{constructor(et,nt,rt,it){super(),this.blockLen=et,this.outputLen=nt,this.padOffset=rt,this.isLE=it,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(et),this.view=(0,utils_js_1$3.createView)(this.buffer)}update(et){_assert_js_1.default.exists(this);const{view:nt,buffer:rt,blockLen:it}=this;et=(0,utils_js_1$3.toBytes)(et);const ot=et.length;for(let at=0;atit-at&&(this.process(rt,0),at=0);for(let ht=at;htut.length)throw new Error("_sha2: outputLen bigger than state");for(let ht=0;htet),Pi=Id.map(tt=>(9*tt+5)%16);let idxL=[Id],idxR=[Pi];for(let tt=0;tt<4;tt++)for(let et of[idxL,idxR])et.push(et[tt].map(nt=>Rho[nt]));const shifts=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(tt=>new Uint8Array(tt)),shiftsL=idxL.map((tt,et)=>tt.map(nt=>shifts[et][nt])),shiftsR=idxR.map((tt,et)=>tt.map(nt=>shifts[et][nt])),Kl=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Kr=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),rotl$1=(tt,et)=>tt<>>32-et;function f$2(tt,et,nt,rt){return tt===0?et^nt^rt:tt===1?et&nt|~et&rt:tt===2?(et|~nt)^rt:tt===3?et&rt|nt&~rt:et^(nt|~rt)}const BUF=new Uint32Array(16);class RIPEMD160 extends _sha2_js_1$2.SHA2{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:et,h1:nt,h2:rt,h3:it,h4:ot}=this;return[et,nt,rt,it,ot]}set(et,nt,rt,it,ot){this.h0=et|0,this.h1=nt|0,this.h2=rt|0,this.h3=it|0,this.h4=ot|0}process(et,nt){for(let pt=0;pt<16;pt++,nt+=4)BUF[pt]=et.getUint32(nt,!0);let rt=this.h0|0,it=rt,ot=this.h1|0,at=ot,st=this.h2|0,lt=st,ct=this.h3|0,ut=ct,ht=this.h4|0,dt=ht;for(let pt=0;pt<5;pt++){const mt=4-pt,gt=Kl[pt],yt=Kr[pt],bt=idxL[pt],wt=idxR[pt],vt=shiftsL[pt],kt=shiftsR[pt];for(let St=0;St<16;St++){const Et=rotl$1(rt+f$2(pt,ot,st,ct)+BUF[bt[St]]+gt,vt[St])+ht|0;rt=ht,ht=ct,ct=rotl$1(st,10)|0,st=ot,ot=Et}for(let St=0;St<16;St++){const Et=rotl$1(it+f$2(mt,at,lt,ut)+BUF[wt[St]]+yt,kt[St])+dt|0;it=dt,dt=ut,ut=rotl$1(lt,10)|0,lt=at,at=Et}}this.set(this.h1+st+ut|0,this.h2+ct+dt|0,this.h3+ht+it|0,this.h4+rt+at|0,this.h0+ot+lt|0)}roundClean(){BUF.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}ripemd160.RIPEMD160=RIPEMD160;ripemd160.ripemd160=(0,utils_js_1$2.wrapConstructor)(()=>new RIPEMD160);var sha1={};Object.defineProperty(sha1,"__esModule",{value:!0});sha1.sha1=void 0;const _sha2_js_1$1=_sha2,utils_js_1$1=utils$2,rotl=(tt,et)=>tt<>>32-et>>>0,Chi$1=(tt,et,nt)=>tt&et^~tt&nt,Maj$1=(tt,et,nt)=>tt&et^tt&nt^et&nt,IV$1=new Uint32Array([1732584193,4023233417,2562383102,271733878,3285377520]),SHA1_W=new Uint32Array(80);class SHA1 extends _sha2_js_1$1.SHA2{constructor(){super(64,20,8,!1),this.A=IV$1[0]|0,this.B=IV$1[1]|0,this.C=IV$1[2]|0,this.D=IV$1[3]|0,this.E=IV$1[4]|0}get(){const{A:et,B:nt,C:rt,D:it,E:ot}=this;return[et,nt,rt,it,ot]}set(et,nt,rt,it,ot){this.A=et|0,this.B=nt|0,this.C=rt|0,this.D=it|0,this.E=ot|0}process(et,nt){for(let lt=0;lt<16;lt++,nt+=4)SHA1_W[lt]=et.getUint32(nt,!1);for(let lt=16;lt<80;lt++)SHA1_W[lt]=rotl(SHA1_W[lt-3]^SHA1_W[lt-8]^SHA1_W[lt-14]^SHA1_W[lt-16],1);let{A:rt,B:it,C:ot,D:at,E:st}=this;for(let lt=0;lt<80;lt++){let ct,ut;lt<20?(ct=Chi$1(it,ot,at),ut=1518500249):lt<40?(ct=it^ot^at,ut=1859775393):lt<60?(ct=Maj$1(it,ot,at),ut=2400959708):(ct=it^ot^at,ut=3395469782);const ht=rotl(rt,5)+ct+st+ut+SHA1_W[lt]|0;st=at,at=ot,ot=rotl(it,30),it=rt,rt=ht}rt=rt+this.A|0,it=it+this.B|0,ot=ot+this.C|0,at=at+this.D|0,st=st+this.E|0,this.set(rt,it,ot,at,st)}roundClean(){SHA1_W.fill(0)}destroy(){this.set(0,0,0,0,0),this.buffer.fill(0)}}sha1.sha1=(0,utils_js_1$1.wrapConstructor)(()=>new SHA1);var sha256$2={};Object.defineProperty(sha256$2,"__esModule",{value:!0});sha256$2.sha224=sha256$2.sha256=void 0;const _sha2_js_1=_sha2,utils_js_1=utils$2,Chi=(tt,et,nt)=>tt&et^~tt&nt,Maj=(tt,et,nt)=>tt&et^tt&nt^et&nt,SHA256_K=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),IV=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),SHA256_W=new Uint32Array(64);class SHA256 extends _sha2_js_1.SHA2{constructor(){super(64,32,8,!1),this.A=IV[0]|0,this.B=IV[1]|0,this.C=IV[2]|0,this.D=IV[3]|0,this.E=IV[4]|0,this.F=IV[5]|0,this.G=IV[6]|0,this.H=IV[7]|0}get(){const{A:et,B:nt,C:rt,D:it,E:ot,F:at,G:st,H:lt}=this;return[et,nt,rt,it,ot,at,st,lt]}set(et,nt,rt,it,ot,at,st,lt){this.A=et|0,this.B=nt|0,this.C=rt|0,this.D=it|0,this.E=ot|0,this.F=at|0,this.G=st|0,this.H=lt|0}process(et,nt){for(let ht=0;ht<16;ht++,nt+=4)SHA256_W[ht]=et.getUint32(nt,!1);for(let ht=16;ht<64;ht++){const dt=SHA256_W[ht-15],pt=SHA256_W[ht-2],mt=(0,utils_js_1.rotr)(dt,7)^(0,utils_js_1.rotr)(dt,18)^dt>>>3,gt=(0,utils_js_1.rotr)(pt,17)^(0,utils_js_1.rotr)(pt,19)^pt>>>10;SHA256_W[ht]=gt+SHA256_W[ht-7]+mt+SHA256_W[ht-16]|0}let{A:rt,B:it,C:ot,D:at,E:st,F:lt,G:ct,H:ut}=this;for(let ht=0;ht<64;ht++){const dt=(0,utils_js_1.rotr)(st,6)^(0,utils_js_1.rotr)(st,11)^(0,utils_js_1.rotr)(st,25),pt=ut+dt+Chi(st,lt,ct)+SHA256_K[ht]+SHA256_W[ht]|0,gt=((0,utils_js_1.rotr)(rt,2)^(0,utils_js_1.rotr)(rt,13)^(0,utils_js_1.rotr)(rt,22))+Maj(rt,it,ot)|0;ut=ct,ct=lt,lt=st,st=at+pt|0,at=ot,ot=it,it=rt,rt=pt+gt|0}rt=rt+this.A|0,it=it+this.B|0,ot=ot+this.C|0,at=at+this.D|0,st=st+this.E|0,lt=lt+this.F|0,ct=ct+this.G|0,ut=ut+this.H|0,this.set(rt,it,ot,at,st,lt,ct,ut)}roundClean(){SHA256_W.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class SHA224 extends SHA256{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}sha256$2.sha256=(0,utils_js_1.wrapConstructor)(()=>new SHA256);sha256$2.sha224=(0,utils_js_1.wrapConstructor)(()=>new SHA224);(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.taggedHash=tt.TAGGED_HASH_PREFIXES=tt.TAGS=tt.hash256=tt.hash160=tt.sha256=tt.sha1=tt.ripemd160=void 0;const et=ripemd160,nt=sha1,rt=sha256$2;function it(ut){return Buffer.from((0,et.ripemd160)(Uint8Array.from(ut)))}tt.ripemd160=it;function ot(ut){return Buffer.from((0,nt.sha1)(Uint8Array.from(ut)))}tt.sha1=ot;function at(ut){return Buffer.from((0,rt.sha256)(Uint8Array.from(ut)))}tt.sha256=at;function st(ut){return Buffer.from((0,et.ripemd160)((0,rt.sha256)(Uint8Array.from(ut))))}tt.hash160=st;function lt(ut){return Buffer.from((0,rt.sha256)((0,rt.sha256)(Uint8Array.from(ut))))}tt.hash256=lt,tt.TAGS=["BIP0340/challenge","BIP0340/aux","BIP0340/nonce","TapLeaf","TapBranch","TapSighash","TapTweak","KeyAgg list","KeyAgg coefficient"],tt.TAGGED_HASH_PREFIXES={"BIP0340/challenge":Buffer.from([123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124,123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124]),"BIP0340/aux":Buffer.from([241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144,241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144]),"BIP0340/nonce":Buffer.from([7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47,7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47]),TapLeaf:Buffer.from([174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238,174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238]),TapBranch:Buffer.from([25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21,25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21]),TapSighash:Buffer.from([244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49,244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49]),TapTweak:Buffer.from([232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233,232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233]),"KeyAgg list":Buffer.from([72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240,72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240]),"KeyAgg coefficient":Buffer.from([191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129,191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129])};function ct(ut,ht){return at(Buffer.concat([tt.TAGGED_HASH_PREFIXES[ut],ht]))}tt.taggedHash=ct})(crypto$2);function base$1(tt){if(tt.length>=255)throw new TypeError("Alphabet too long");for(var et=new Uint8Array(256),nt=0;nt>>0,vt=new Uint8Array(wt);yt!==bt;){for(var kt=pt[yt],St=0,Et=wt-1;(kt!==0||St>>0,vt[Et]=kt%at>>>0,kt=kt/at>>>0;if(kt!==0)throw new Error("Non-zero carry");gt=St,yt++}for(var At=wt-gt;At!==wt&&vt[At]===0;)At++;for(var Tt=st.repeat(mt);At>>0,wt=new Uint8Array(bt);pt[mt];){var vt=et[pt.charCodeAt(mt)];if(vt===255)return;for(var kt=0,St=bt-1;(vt!==0||kt>>0,wt[St]=vt%256>>>0,vt=vt/256>>>0;if(vt!==0)throw new Error("Non-zero carry");yt=kt,mt++}for(var Et=bt-yt;Et!==bt&&wt[Et]===0;)Et++;for(var At=new Uint8Array(gt+(bt-Et)),Tt=gt;Et!==bt;)At[Tt++]=wt[Et++];return At}function dt(pt){var mt=ht(pt);if(mt)return mt;throw new Error("Non-base"+at+" character")}return{encode:ut,decodeUnsafe:ht,decode:dt}}var src=base$1;const basex=src,ALPHABET$1="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var bs58=basex(ALPHABET$1),base58=bs58,base=function(tt){function et(ot){var at=Uint8Array.from(ot),st=tt(at),lt=at.length+4,ct=new Uint8Array(lt);return ct.set(at,0),ct.set(st.subarray(0,4),at.length),base58.encode(ct,lt)}function nt(ot){var at=ot.slice(0,-4),st=ot.slice(-4),lt=tt(at);if(!(st[0]^lt[0]|st[1]^lt[1]|st[2]^lt[2]|st[3]^lt[3]))return at}function rt(ot){var at=base58.decodeUnsafe(ot);if(at)return nt(at)}function it(ot){var at=base58.decode(ot),st=nt(at);if(!st)throw new Error("Invalid checksum");return st}return{encode:et,decode:it,decodeUnsafe:rt}},{sha256:sha256$1}=sha256$2,bs58checkBase=base;function sha256x2(tt){return sha256$1(sha256$1(tt))}var bs58check$3=bs58checkBase(sha256x2);Object.defineProperty(p2pkh$1,"__esModule",{value:!0});p2pkh$1.p2pkh=void 0;const bcrypto$5=crypto$2,networks_1$5=networks$1,bscript$8=script,types_1$6=types$6,lazy$4=lazy$8,bs58check$2=bs58check$3,OPS$4=bscript$8.OPS;function p2pkh(tt,et){if(!tt.address&&!tt.hash&&!tt.output&&!tt.pubkey&&!tt.input)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$6.typeforce)({network:types_1$6.typeforce.maybe(types_1$6.typeforce.Object),address:types_1$6.typeforce.maybe(types_1$6.typeforce.String),hash:types_1$6.typeforce.maybe(types_1$6.typeforce.BufferN(20)),output:types_1$6.typeforce.maybe(types_1$6.typeforce.BufferN(25)),pubkey:types_1$6.typeforce.maybe(types_1$6.isPoint),signature:types_1$6.typeforce.maybe(bscript$8.isCanonicalScriptSignature),input:types_1$6.typeforce.maybe(types_1$6.typeforce.Buffer)},tt);const nt=lazy$4.value(()=>{const at=Buffer.from(bs58check$2.decode(tt.address)),st=at.readUInt8(0),lt=at.slice(1);return{version:st,hash:lt}}),rt=lazy$4.value(()=>bscript$8.decompile(tt.input)),it=tt.network||networks_1$5.bitcoin,ot={name:"p2pkh",network:it};if(lazy$4.prop(ot,"address",()=>{if(!ot.hash)return;const at=Buffer.allocUnsafe(21);return at.writeUInt8(it.pubKeyHash,0),ot.hash.copy(at,1),bs58check$2.encode(at)}),lazy$4.prop(ot,"hash",()=>{if(tt.output)return tt.output.slice(3,23);if(tt.address)return nt().hash;if(tt.pubkey||ot.pubkey)return bcrypto$5.hash160(tt.pubkey||ot.pubkey)}),lazy$4.prop(ot,"output",()=>{if(ot.hash)return bscript$8.compile([OPS$4.OP_DUP,OPS$4.OP_HASH160,ot.hash,OPS$4.OP_EQUALVERIFY,OPS$4.OP_CHECKSIG])}),lazy$4.prop(ot,"pubkey",()=>{if(tt.input)return rt()[1]}),lazy$4.prop(ot,"signature",()=>{if(tt.input)return rt()[0]}),lazy$4.prop(ot,"input",()=>{if(tt.pubkey&&tt.signature)return bscript$8.compile([tt.signature,tt.pubkey])}),lazy$4.prop(ot,"witness",()=>{if(ot.input)return[]}),et.validate){let at=Buffer.from([]);if(tt.address){if(nt().version!==it.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(nt().hash.length!==20)throw new TypeError("Invalid address");at=nt().hash}if(tt.hash){if(at.length>0&&!at.equals(tt.hash))throw new TypeError("Hash mismatch");at=tt.hash}if(tt.output){if(tt.output.length!==25||tt.output[0]!==OPS$4.OP_DUP||tt.output[1]!==OPS$4.OP_HASH160||tt.output[2]!==20||tt.output[23]!==OPS$4.OP_EQUALVERIFY||tt.output[24]!==OPS$4.OP_CHECKSIG)throw new TypeError("Output is invalid");const st=tt.output.slice(3,23);if(at.length>0&&!at.equals(st))throw new TypeError("Hash mismatch");at=st}if(tt.pubkey){const st=bcrypto$5.hash160(tt.pubkey);if(at.length>0&&!at.equals(st))throw new TypeError("Hash mismatch");at=st}if(tt.input){const st=rt();if(st.length!==2)throw new TypeError("Input is invalid");if(!bscript$8.isCanonicalScriptSignature(st[0]))throw new TypeError("Input has invalid signature");if(!(0,types_1$6.isPoint)(st[1]))throw new TypeError("Input has invalid pubkey");if(tt.signature&&!tt.signature.equals(st[0]))throw new TypeError("Signature mismatch");if(tt.pubkey&&!tt.pubkey.equals(st[1]))throw new TypeError("Pubkey mismatch");const lt=bcrypto$5.hash160(st[1]);if(at.length>0&&!at.equals(lt))throw new TypeError("Hash mismatch")}}return Object.assign(ot,tt)}p2pkh$1.p2pkh=p2pkh;var p2sh$1={};Object.defineProperty(p2sh$1,"__esModule",{value:!0});p2sh$1.p2sh=void 0;const bcrypto$4=crypto$2,networks_1$4=networks$1,bscript$7=script,types_1$5=types$6,lazy$3=lazy$8,bs58check$1=bs58check$3,OPS$3=bscript$7.OPS;function stacksEqual$2(tt,et){return tt.length!==et.length?!1:tt.every((nt,rt)=>nt.equals(et[rt]))}function p2sh(tt,et){if(!tt.address&&!tt.hash&&!tt.output&&!tt.redeem&&!tt.input)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$5.typeforce)({network:types_1$5.typeforce.maybe(types_1$5.typeforce.Object),address:types_1$5.typeforce.maybe(types_1$5.typeforce.String),hash:types_1$5.typeforce.maybe(types_1$5.typeforce.BufferN(20)),output:types_1$5.typeforce.maybe(types_1$5.typeforce.BufferN(23)),redeem:types_1$5.typeforce.maybe({network:types_1$5.typeforce.maybe(types_1$5.typeforce.Object),output:types_1$5.typeforce.maybe(types_1$5.typeforce.Buffer),input:types_1$5.typeforce.maybe(types_1$5.typeforce.Buffer),witness:types_1$5.typeforce.maybe(types_1$5.typeforce.arrayOf(types_1$5.typeforce.Buffer))}),input:types_1$5.typeforce.maybe(types_1$5.typeforce.Buffer),witness:types_1$5.typeforce.maybe(types_1$5.typeforce.arrayOf(types_1$5.typeforce.Buffer))},tt);let nt=tt.network;nt||(nt=tt.redeem&&tt.redeem.network||networks_1$4.bitcoin);const rt={network:nt},it=lazy$3.value(()=>{const st=Buffer.from(bs58check$1.decode(tt.address)),lt=st.readUInt8(0),ct=st.slice(1);return{version:lt,hash:ct}}),ot=lazy$3.value(()=>bscript$7.decompile(tt.input)),at=lazy$3.value(()=>{const st=ot(),lt=st[st.length-1];return{network:nt,output:lt===OPS$3.OP_FALSE?Buffer.from([]):lt,input:bscript$7.compile(st.slice(0,-1)),witness:tt.witness||[]}});if(lazy$3.prop(rt,"address",()=>{if(!rt.hash)return;const st=Buffer.allocUnsafe(21);return st.writeUInt8(rt.network.scriptHash,0),rt.hash.copy(st,1),bs58check$1.encode(st)}),lazy$3.prop(rt,"hash",()=>{if(tt.output)return tt.output.slice(2,22);if(tt.address)return it().hash;if(rt.redeem&&rt.redeem.output)return bcrypto$4.hash160(rt.redeem.output)}),lazy$3.prop(rt,"output",()=>{if(rt.hash)return bscript$7.compile([OPS$3.OP_HASH160,rt.hash,OPS$3.OP_EQUAL])}),lazy$3.prop(rt,"redeem",()=>{if(tt.input)return at()}),lazy$3.prop(rt,"input",()=>{if(!(!tt.redeem||!tt.redeem.input||!tt.redeem.output))return bscript$7.compile([].concat(bscript$7.decompile(tt.redeem.input),tt.redeem.output))}),lazy$3.prop(rt,"witness",()=>{if(rt.redeem&&rt.redeem.witness)return rt.redeem.witness;if(rt.input)return[]}),lazy$3.prop(rt,"name",()=>{const st=["p2sh"];return rt.redeem!==void 0&&rt.redeem.name!==void 0&&st.push(rt.redeem.name),st.join("-")}),et.validate){let st=Buffer.from([]);if(tt.address){if(it().version!==nt.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(it().hash.length!==20)throw new TypeError("Invalid address");st=it().hash}if(tt.hash){if(st.length>0&&!st.equals(tt.hash))throw new TypeError("Hash mismatch");st=tt.hash}if(tt.output){if(tt.output.length!==23||tt.output[0]!==OPS$3.OP_HASH160||tt.output[1]!==20||tt.output[22]!==OPS$3.OP_EQUAL)throw new TypeError("Output is invalid");const ct=tt.output.slice(2,22);if(st.length>0&&!st.equals(ct))throw new TypeError("Hash mismatch");st=ct}const lt=ct=>{if(ct.output){const ut=bscript$7.decompile(ct.output);if(!ut||ut.length<1)throw new TypeError("Redeem.output too short");if(ct.output.byteLength>520)throw new TypeError("Redeem.output unspendable if larger than 520 bytes");if(bscript$7.countNonPushOnlyOPs(ut)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const ht=bcrypto$4.hash160(ct.output);if(st.length>0&&!st.equals(ht))throw new TypeError("Hash mismatch");st=ht}if(ct.input){const ut=ct.input.length>0,ht=ct.witness&&ct.witness.length>0;if(!ut&&!ht)throw new TypeError("Empty input");if(ut&&ht)throw new TypeError("Input and witness provided");if(ut){const dt=bscript$7.decompile(ct.input);if(!bscript$7.isPushOnly(dt))throw new TypeError("Non push-only scriptSig")}}};if(tt.input){const ct=ot();if(!ct||ct.length<1)throw new TypeError("Input too short");if(!Buffer.isBuffer(at().output))throw new TypeError("Input is invalid");lt(at())}if(tt.redeem){if(tt.redeem.network&&tt.redeem.network!==nt)throw new TypeError("Network mismatch");if(tt.input){const ct=at();if(tt.redeem.output&&!tt.redeem.output.equals(ct.output))throw new TypeError("Redeem.output mismatch");if(tt.redeem.input&&!tt.redeem.input.equals(ct.input))throw new TypeError("Redeem.input mismatch")}lt(tt.redeem)}if(tt.witness&&tt.redeem&&tt.redeem.witness&&!stacksEqual$2(tt.redeem.witness,tt.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(rt,tt)}p2sh$1.p2sh=p2sh;var p2wpkh$1={},dist$1={};Object.defineProperty(dist$1,"__esModule",{value:!0});dist$1.bech32m=dist$1.bech32=void 0;const ALPHABET="qpzry9x8gf2tvdw0s3jn54khce6mua7l",ALPHABET_MAP={};for(let tt=0;tt>25;return(tt&33554431)<<5^-(et>>0&1)&996825010^-(et>>1&1)&642813549^-(et>>2&1)&513874426^-(et>>3&1)&1027748829^-(et>>4&1)&705979059}function prefixChk(tt){let et=1;for(let nt=0;nt126)return"Invalid prefix ("+tt+")";et=polymodStep(et)^rt>>5}et=polymodStep(et);for(let nt=0;nt=nt;)ot-=nt,st.push(it>>ot&at);if(rt)ot>0&&st.push(it<=et)return"Excess padding";if(it<lt)throw new TypeError("Exceeds length limit");at=at.toLowerCase();let ct=prefixChk(at);if(typeof ct=="string")throw new Error(ct);let ut=at+"1";for(let ht=0;ht>5)throw new Error("Non 5-bit word");ct=polymodStep(ct)^dt,ut+=ALPHABET.charAt(dt)}for(let ht=0;ht<6;++ht)ct=polymodStep(ct);ct^=et;for(let ht=0;ht<6;++ht){const dt=ct>>(5-ht)*5&31;ut+=ALPHABET.charAt(dt)}return ut}function rt(at,st){if(st=st||90,at.length<8)return at+" too short";if(at.length>st)return"Exceeds length limit";const lt=at.toLowerCase(),ct=at.toUpperCase();if(at!==lt&&at!==ct)return"Mixed-case string "+at;at=lt;const ut=at.lastIndexOf("1");if(ut===-1)return"No separator character for "+at;if(ut===0)return"Missing prefix for "+at;const ht=at.slice(0,ut),dt=at.slice(ut+1);if(dt.length<6)return"Data too short";let pt=prefixChk(ht);if(typeof pt=="string")return pt;const mt=[];for(let gt=0;gt=dt.length)&&mt.push(bt)}return pt!==et?"Invalid checksum for "+at:{prefix:ht,words:mt}}function it(at,st){const lt=rt(at,st);if(typeof lt=="object")return lt}function ot(at,st){const lt=rt(at,st);if(typeof lt=="object")return lt;throw new Error(lt)}return{decodeUnsafe:it,decode:ot,encode:nt,toWords,fromWordsUnsafe,fromWords}}dist$1.bech32=getLibraryFromEncoding("bech32");dist$1.bech32m=getLibraryFromEncoding("bech32m");Object.defineProperty(p2wpkh$1,"__esModule",{value:!0});p2wpkh$1.p2wpkh=void 0;const bcrypto$3=crypto$2,networks_1$3=networks$1,bscript$6=script,types_1$4=types$6,lazy$2=lazy$8,bech32_1$3=dist$1,OPS$2=bscript$6.OPS,EMPTY_BUFFER$2=Buffer.alloc(0);function p2wpkh(tt,et){if(!tt.address&&!tt.hash&&!tt.output&&!tt.pubkey&&!tt.witness)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$4.typeforce)({address:types_1$4.typeforce.maybe(types_1$4.typeforce.String),hash:types_1$4.typeforce.maybe(types_1$4.typeforce.BufferN(20)),input:types_1$4.typeforce.maybe(types_1$4.typeforce.BufferN(0)),network:types_1$4.typeforce.maybe(types_1$4.typeforce.Object),output:types_1$4.typeforce.maybe(types_1$4.typeforce.BufferN(22)),pubkey:types_1$4.typeforce.maybe(types_1$4.isPoint),signature:types_1$4.typeforce.maybe(bscript$6.isCanonicalScriptSignature),witness:types_1$4.typeforce.maybe(types_1$4.typeforce.arrayOf(types_1$4.typeforce.Buffer))},tt);const nt=lazy$2.value(()=>{const ot=bech32_1$3.bech32.decode(tt.address),at=ot.words.shift(),st=bech32_1$3.bech32.fromWords(ot.words);return{version:at,prefix:ot.prefix,data:Buffer.from(st)}}),rt=tt.network||networks_1$3.bitcoin,it={name:"p2wpkh",network:rt};if(lazy$2.prop(it,"address",()=>{if(!it.hash)return;const ot=bech32_1$3.bech32.toWords(it.hash);return ot.unshift(0),bech32_1$3.bech32.encode(rt.bech32,ot)}),lazy$2.prop(it,"hash",()=>{if(tt.output)return tt.output.slice(2,22);if(tt.address)return nt().data;if(tt.pubkey||it.pubkey)return bcrypto$3.hash160(tt.pubkey||it.pubkey)}),lazy$2.prop(it,"output",()=>{if(it.hash)return bscript$6.compile([OPS$2.OP_0,it.hash])}),lazy$2.prop(it,"pubkey",()=>{if(tt.pubkey)return tt.pubkey;if(tt.witness)return tt.witness[1]}),lazy$2.prop(it,"signature",()=>{if(tt.witness)return tt.witness[0]}),lazy$2.prop(it,"input",()=>{if(it.witness)return EMPTY_BUFFER$2}),lazy$2.prop(it,"witness",()=>{if(tt.pubkey&&tt.signature)return[tt.signature,tt.pubkey]}),et.validate){let ot=Buffer.from([]);if(tt.address){if(rt&&rt.bech32!==nt().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(nt().version!==0)throw new TypeError("Invalid address version");if(nt().data.length!==20)throw new TypeError("Invalid address data");ot=nt().data}if(tt.hash){if(ot.length>0&&!ot.equals(tt.hash))throw new TypeError("Hash mismatch");ot=tt.hash}if(tt.output){if(tt.output.length!==22||tt.output[0]!==OPS$2.OP_0||tt.output[1]!==20)throw new TypeError("Output is invalid");if(ot.length>0&&!ot.equals(tt.output.slice(2)))throw new TypeError("Hash mismatch");ot=tt.output.slice(2)}if(tt.pubkey){const at=bcrypto$3.hash160(tt.pubkey);if(ot.length>0&&!ot.equals(at))throw new TypeError("Hash mismatch");if(ot=at,!(0,types_1$4.isPoint)(tt.pubkey)||tt.pubkey.length!==33)throw new TypeError("Invalid pubkey for p2wpkh")}if(tt.witness){if(tt.witness.length!==2)throw new TypeError("Witness is invalid");if(!bscript$6.isCanonicalScriptSignature(tt.witness[0]))throw new TypeError("Witness has invalid signature");if(!(0,types_1$4.isPoint)(tt.witness[1])||tt.witness[1].length!==33)throw new TypeError("Witness has invalid pubkey");if(tt.signature&&!tt.signature.equals(tt.witness[0]))throw new TypeError("Signature mismatch");if(tt.pubkey&&!tt.pubkey.equals(tt.witness[1]))throw new TypeError("Pubkey mismatch");const at=bcrypto$3.hash160(tt.witness[1]);if(ot.length>0&&!ot.equals(at))throw new TypeError("Hash mismatch")}}return Object.assign(it,tt)}p2wpkh$1.p2wpkh=p2wpkh;var p2wsh$1={};Object.defineProperty(p2wsh$1,"__esModule",{value:!0});p2wsh$1.p2wsh=void 0;const bcrypto$2=crypto$2,networks_1$2=networks$1,bscript$5=script,types_1$3=types$6,lazy$1=lazy$8,bech32_1$2=dist$1,OPS$1=bscript$5.OPS,EMPTY_BUFFER$1=Buffer.alloc(0);function stacksEqual$1(tt,et){return tt.length!==et.length?!1:tt.every((nt,rt)=>nt.equals(et[rt]))}function chunkHasUncompressedPubkey(tt){return!!(Buffer.isBuffer(tt)&&tt.length===65&&tt[0]===4&&(0,types_1$3.isPoint)(tt))}function p2wsh(tt,et){if(!tt.address&&!tt.hash&&!tt.output&&!tt.redeem&&!tt.witness)throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$3.typeforce)({network:types_1$3.typeforce.maybe(types_1$3.typeforce.Object),address:types_1$3.typeforce.maybe(types_1$3.typeforce.String),hash:types_1$3.typeforce.maybe(types_1$3.typeforce.BufferN(32)),output:types_1$3.typeforce.maybe(types_1$3.typeforce.BufferN(34)),redeem:types_1$3.typeforce.maybe({input:types_1$3.typeforce.maybe(types_1$3.typeforce.Buffer),network:types_1$3.typeforce.maybe(types_1$3.typeforce.Object),output:types_1$3.typeforce.maybe(types_1$3.typeforce.Buffer),witness:types_1$3.typeforce.maybe(types_1$3.typeforce.arrayOf(types_1$3.typeforce.Buffer))}),input:types_1$3.typeforce.maybe(types_1$3.typeforce.BufferN(0)),witness:types_1$3.typeforce.maybe(types_1$3.typeforce.arrayOf(types_1$3.typeforce.Buffer))},tt);const nt=lazy$1.value(()=>{const at=bech32_1$2.bech32.decode(tt.address),st=at.words.shift(),lt=bech32_1$2.bech32.fromWords(at.words);return{version:st,prefix:at.prefix,data:Buffer.from(lt)}}),rt=lazy$1.value(()=>bscript$5.decompile(tt.redeem.input));let it=tt.network;it||(it=tt.redeem&&tt.redeem.network||networks_1$2.bitcoin);const ot={network:it};if(lazy$1.prop(ot,"address",()=>{if(!ot.hash)return;const at=bech32_1$2.bech32.toWords(ot.hash);return at.unshift(0),bech32_1$2.bech32.encode(it.bech32,at)}),lazy$1.prop(ot,"hash",()=>{if(tt.output)return tt.output.slice(2);if(tt.address)return nt().data;if(ot.redeem&&ot.redeem.output)return bcrypto$2.sha256(ot.redeem.output)}),lazy$1.prop(ot,"output",()=>{if(ot.hash)return bscript$5.compile([OPS$1.OP_0,ot.hash])}),lazy$1.prop(ot,"redeem",()=>{if(tt.witness)return{output:tt.witness[tt.witness.length-1],input:EMPTY_BUFFER$1,witness:tt.witness.slice(0,-1)}}),lazy$1.prop(ot,"input",()=>{if(ot.witness)return EMPTY_BUFFER$1}),lazy$1.prop(ot,"witness",()=>{if(tt.redeem&&tt.redeem.input&&tt.redeem.input.length>0&&tt.redeem.output&&tt.redeem.output.length>0){const at=bscript$5.toStack(rt());return ot.redeem=Object.assign({witness:at},tt.redeem),ot.redeem.input=EMPTY_BUFFER$1,[].concat(at,tt.redeem.output)}if(tt.redeem&&tt.redeem.output&&tt.redeem.witness)return[].concat(tt.redeem.witness,tt.redeem.output)}),lazy$1.prop(ot,"name",()=>{const at=["p2wsh"];return ot.redeem!==void 0&&ot.redeem.name!==void 0&&at.push(ot.redeem.name),at.join("-")}),et.validate){let at=Buffer.from([]);if(tt.address){if(nt().prefix!==it.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(nt().version!==0)throw new TypeError("Invalid address version");if(nt().data.length!==32)throw new TypeError("Invalid address data");at=nt().data}if(tt.hash){if(at.length>0&&!at.equals(tt.hash))throw new TypeError("Hash mismatch");at=tt.hash}if(tt.output){if(tt.output.length!==34||tt.output[0]!==OPS$1.OP_0||tt.output[1]!==32)throw new TypeError("Output is invalid");const st=tt.output.slice(2);if(at.length>0&&!at.equals(st))throw new TypeError("Hash mismatch");at=st}if(tt.redeem){if(tt.redeem.network&&tt.redeem.network!==it)throw new TypeError("Network mismatch");if(tt.redeem.input&&tt.redeem.input.length>0&&tt.redeem.witness&&tt.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(tt.redeem.output){const st=bscript$5.decompile(tt.redeem.output);if(!st||st.length<1)throw new TypeError("Redeem.output is invalid");if(tt.redeem.output.byteLength>3600)throw new TypeError("Redeem.output unspendable if larger than 3600 bytes");if(bscript$5.countNonPushOnlyOPs(st)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const lt=bcrypto$2.sha256(tt.redeem.output);if(at.length>0&&!at.equals(lt))throw new TypeError("Hash mismatch");at=lt}if(tt.redeem.input&&!bscript$5.isPushOnly(rt()))throw new TypeError("Non push-only scriptSig");if(tt.witness&&tt.redeem.witness&&!stacksEqual$1(tt.witness,tt.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch");if(tt.redeem.input&&rt().some(chunkHasUncompressedPubkey)||tt.redeem.output&&(bscript$5.decompile(tt.redeem.output)||[]).some(chunkHasUncompressedPubkey))throw new TypeError("redeem.input or redeem.output contains uncompressed pubkey")}if(tt.witness&&tt.witness.length>0){const st=tt.witness[tt.witness.length-1];if(tt.redeem&&tt.redeem.output&&!tt.redeem.output.equals(st))throw new TypeError("Witness and redeem.output mismatch");if(tt.witness.some(chunkHasUncompressedPubkey)||(bscript$5.decompile(st)||[]).some(chunkHasUncompressedPubkey))throw new TypeError("Witness contains uncompressed pubkey")}}return Object.assign(ot,tt)}p2wsh$1.p2wsh=p2wsh;var p2tr$1={},ecc_lib={};Object.defineProperty(ecc_lib,"__esModule",{value:!0});ecc_lib.getEccLib=ecc_lib.initEccLib=void 0;const _ECCLIB_CACHE={};function initEccLib(tt){tt?tt!==_ECCLIB_CACHE.eccLib&&(verifyEcc(tt),_ECCLIB_CACHE.eccLib=tt):_ECCLIB_CACHE.eccLib=tt}ecc_lib.initEccLib=initEccLib;function getEccLib(){if(!_ECCLIB_CACHE.eccLib)throw new Error("No ECC Library provided. You must call initEccLib() with a valid TinySecp256k1Interface instance");return _ECCLIB_CACHE.eccLib}ecc_lib.getEccLib=getEccLib;const h$3=tt=>Buffer.from(tt,"hex");function verifyEcc(tt){assert$2(typeof tt.isXOnlyPoint=="function"),assert$2(tt.isXOnlyPoint(h$3("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),assert$2(tt.isXOnlyPoint(h$3("fffffffffffffffffffffffffffffffffffffffffffffffffffffffeeffffc2e"))),assert$2(tt.isXOnlyPoint(h$3("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9"))),assert$2(tt.isXOnlyPoint(h$3("0000000000000000000000000000000000000000000000000000000000000001"))),assert$2(!tt.isXOnlyPoint(h$3("0000000000000000000000000000000000000000000000000000000000000000"))),assert$2(!tt.isXOnlyPoint(h$3("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"))),assert$2(typeof tt.xOnlyPointAddTweak=="function"),tweakAddVectors.forEach(et=>{const nt=tt.xOnlyPointAddTweak(h$3(et.pubkey),h$3(et.tweak));et.result===null?assert$2(nt===null):(assert$2(nt!==null),assert$2(nt.parity===et.parity),assert$2(Buffer.from(nt.xOnlyPubkey).equals(h$3(et.result))))})}function assert$2(tt){if(!tt)throw new Error("ecc library invalid")}const tweakAddVectors=[{pubkey:"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",tweak:"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140",parity:-1,result:null},{pubkey:"1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b",tweak:"a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac",parity:1,result:"e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf"},{pubkey:"2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991",tweak:"823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47",parity:0,result:"9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c"}];var bip341={},bufferutils={},Buffer$2=safeBufferExports.Buffer,MAX_SAFE_INTEGER$4=9007199254740991;function checkUInt53$1(tt){if(tt<0||tt>MAX_SAFE_INTEGER$4||tt%1!==0)throw new RangeError("value out of range")}function encode$j(tt,et,nt){if(checkUInt53$1(tt),et||(et=Buffer$2.allocUnsafe(encodingLength$1(tt))),!Buffer$2.isBuffer(et))throw new TypeError("buffer must be a Buffer instance");return nt||(nt=0),tt<253?(et.writeUInt8(tt,nt),encode$j.bytes=1):tt<=65535?(et.writeUInt8(253,nt),et.writeUInt16LE(tt,nt+1),encode$j.bytes=3):tt<=4294967295?(et.writeUInt8(254,nt),et.writeUInt32LE(tt,nt+1),encode$j.bytes=5):(et.writeUInt8(255,nt),et.writeUInt32LE(tt>>>0,nt+1),et.writeUInt32LE(tt/4294967296|0,nt+5),encode$j.bytes=9),et}function decode$i(tt,et){if(!Buffer$2.isBuffer(tt))throw new TypeError("buffer must be a Buffer instance");et||(et=0);var nt=tt.readUInt8(et);if(nt<253)return decode$i.bytes=1,nt;if(nt===253)return decode$i.bytes=3,tt.readUInt16LE(et+1);if(nt===254)return decode$i.bytes=5,tt.readUInt32LE(et+1);decode$i.bytes=9;var rt=tt.readUInt32LE(et+1),it=tt.readUInt32LE(et+5),ot=it*4294967296+rt;return checkUInt53$1(ot),ot}function encodingLength$1(tt){return checkUInt53$1(tt),tt<253?1:tt<=65535?3:tt<=4294967295?5:9}var varuintBitcoin={encode:encode$j,decode:decode$i,encodingLength:encodingLength$1};Object.defineProperty(bufferutils,"__esModule",{value:!0});bufferutils.BufferReader=bufferutils.BufferWriter=bufferutils.cloneBuffer=bufferutils.reverseBuffer=bufferutils.writeUInt64LE=bufferutils.readUInt64LE=bufferutils.varuint=void 0;const types$3=types$6,{typeforce:typeforce$2}=types$3,varuint$7=varuintBitcoin;bufferutils.varuint=varuint$7;function verifuint$1(tt,et){if(typeof tt!="number")throw new Error("cannot write a non-number as a number");if(tt<0)throw new Error("specified a negative value for writing an unsigned value");if(tt>et)throw new Error("RangeError: value out of range");if(Math.floor(tt)!==tt)throw new Error("value has a fractional component")}function readUInt64LE$1(tt,et){const nt=tt.readUInt32LE(et);let rt=tt.readUInt32LE(et+4);return rt*=4294967296,verifuint$1(rt+nt,9007199254740991),rt+nt}bufferutils.readUInt64LE=readUInt64LE$1;function writeUInt64LE$1(tt,et,nt){return verifuint$1(et,9007199254740991),tt.writeInt32LE(et&-1,nt),tt.writeUInt32LE(Math.floor(et/4294967296),nt+4),nt+8}bufferutils.writeUInt64LE=writeUInt64LE$1;function reverseBuffer$1(tt){if(tt.length<1)return tt;let et=tt.length-1,nt=0;for(let rt=0;rtthis.writeVarSlice(nt))}end(){if(this.buffer.length===this.offset)return this.buffer;throw new Error(`buffer size ${this.buffer.length}, offset ${this.offset}`)}}bufferutils.BufferWriter=BufferWriter;class BufferReader{constructor(et,nt=0){this.buffer=et,this.offset=nt,typeforce$2(types$3.tuple(types$3.Buffer,types$3.UInt32),[et,nt])}readUInt8(){const et=this.buffer.readUInt8(this.offset);return this.offset++,et}readInt32(){const et=this.buffer.readInt32LE(this.offset);return this.offset+=4,et}readUInt32(){const et=this.buffer.readUInt32LE(this.offset);return this.offset+=4,et}readUInt64(){const et=readUInt64LE$1(this.buffer,this.offset);return this.offset+=8,et}readVarInt(){const et=varuint$7.decode(this.buffer,this.offset);return this.offset+=varuint$7.decode.bytes,et}readSlice(et){if(this.buffer.length"left"in gt&&"right"in gt;function st(gt,yt){if(gt.length<33)throw new TypeError(`The control-block length is too small. Got ${gt.length}, expected min 33.`);const bt=(gt.length-33)/32;let wt=yt;for(let vt=0;vtvt.hash.compare(kt.hash));const[bt,wt]=yt;return{hash:pt(bt.hash,wt.hash),left:bt,right:wt}}tt.toHashTree=lt;function ct(gt,yt){if(at(gt)){const bt=ct(gt.left,yt);if(bt!==void 0)return[...bt,gt.right.hash];const wt=ct(gt.right,yt);if(wt!==void 0)return[...wt,gt.left.hash]}else if(gt.hash.equals(yt))return[]}tt.findScriptPath=ct;function ut(gt){const yt=gt.version||tt.LEAF_VERSION_TAPSCRIPT;return rt.taggedHash("TapLeaf",et.Buffer.concat([et.Buffer.from([yt]),mt(gt.output)]))}tt.tapleafHash=ut;function ht(gt,yt){return rt.taggedHash("TapTweak",et.Buffer.concat(yt?[gt,yt]:[gt]))}tt.tapTweakHash=ht;function dt(gt,yt){if(!et.Buffer.isBuffer(gt)||gt.length!==32||yt&&yt.length!==32)return null;const bt=ht(gt,yt),wt=(0,nt.getEccLib)().xOnlyPointAddTweak(gt,bt);return!wt||wt.xOnlyPubkey===null?null:{parity:wt.parity,x:et.Buffer.from(wt.xOnlyPubkey)}}tt.tweakKey=dt;function pt(gt,yt){return rt.taggedHash("TapBranch",et.Buffer.concat([gt,yt]))}function mt(gt){const yt=it.varuint.encodingLength(gt.length),bt=et.Buffer.allocUnsafe(yt);return it.varuint.encode(gt.length,bt),et.Buffer.concat([bt,gt])}})(bip341);Object.defineProperty(p2tr$1,"__esModule",{value:!0});p2tr$1.p2tr=void 0;const buffer_1=buffer$2,networks_1$1=networks$1,bscript$4=script,types_1$2=types$6,ecc_lib_1=ecc_lib,bip341_1$2=bip341,lazy=lazy$8,bech32_1$1=dist$1,OPS=bscript$4.OPS,TAPROOT_WITNESS_VERSION=1,ANNEX_PREFIX=80;function p2tr(tt,et){if(!tt.address&&!tt.output&&!tt.pubkey&&!tt.internalPubkey&&!(tt.witness&&tt.witness.length>1))throw new TypeError("Not enough data");et=Object.assign({validate:!0},et||{}),(0,types_1$2.typeforce)({address:types_1$2.typeforce.maybe(types_1$2.typeforce.String),input:types_1$2.typeforce.maybe(types_1$2.typeforce.BufferN(0)),network:types_1$2.typeforce.maybe(types_1$2.typeforce.Object),output:types_1$2.typeforce.maybe(types_1$2.typeforce.BufferN(34)),internalPubkey:types_1$2.typeforce.maybe(types_1$2.typeforce.BufferN(32)),hash:types_1$2.typeforce.maybe(types_1$2.typeforce.BufferN(32)),pubkey:types_1$2.typeforce.maybe(types_1$2.typeforce.BufferN(32)),signature:types_1$2.typeforce.maybe(types_1$2.typeforce.anyOf(types_1$2.typeforce.BufferN(64),types_1$2.typeforce.BufferN(65))),witness:types_1$2.typeforce.maybe(types_1$2.typeforce.arrayOf(types_1$2.typeforce.Buffer)),scriptTree:types_1$2.typeforce.maybe(types_1$2.isTaptree),redeem:types_1$2.typeforce.maybe({output:types_1$2.typeforce.maybe(types_1$2.typeforce.Buffer),redeemVersion:types_1$2.typeforce.maybe(types_1$2.typeforce.Number),witness:types_1$2.typeforce.maybe(types_1$2.typeforce.arrayOf(types_1$2.typeforce.Buffer))}),redeemVersion:types_1$2.typeforce.maybe(types_1$2.typeforce.Number)},tt);const nt=lazy.value(()=>{const st=bech32_1$1.bech32m.decode(tt.address),lt=st.words.shift(),ct=bech32_1$1.bech32m.fromWords(st.words);return{version:lt,prefix:st.prefix,data:buffer_1.Buffer.from(ct)}}),rt=lazy.value(()=>{if(!(!tt.witness||!tt.witness.length))return tt.witness.length>=2&&tt.witness[tt.witness.length-1][0]===ANNEX_PREFIX?tt.witness.slice(0,-1):tt.witness.slice()}),it=lazy.value(()=>{if(tt.scriptTree)return(0,bip341_1$2.toHashTree)(tt.scriptTree);if(tt.hash)return{hash:tt.hash}}),ot=tt.network||networks_1$1.bitcoin,at={name:"p2tr",network:ot};if(lazy.prop(at,"address",()=>{if(!at.pubkey)return;const st=bech32_1$1.bech32m.toWords(at.pubkey);return st.unshift(TAPROOT_WITNESS_VERSION),bech32_1$1.bech32m.encode(ot.bech32,st)}),lazy.prop(at,"hash",()=>{const st=it();if(st)return st.hash;const lt=rt();if(lt&<.length>1){const ct=lt[lt.length-1],ut=ct[0]&types_1$2.TAPLEAF_VERSION_MASK,ht=lt[lt.length-2],dt=(0,bip341_1$2.tapleafHash)({output:ht,version:ut});return(0,bip341_1$2.rootHashFromPath)(ct,dt)}return null}),lazy.prop(at,"output",()=>{if(at.pubkey)return bscript$4.compile([OPS.OP_1,at.pubkey])}),lazy.prop(at,"redeemVersion",()=>tt.redeemVersion?tt.redeemVersion:tt.redeem&&tt.redeem.redeemVersion!==void 0&&tt.redeem.redeemVersion!==null?tt.redeem.redeemVersion:bip341_1$2.LEAF_VERSION_TAPSCRIPT),lazy.prop(at,"redeem",()=>{const st=rt();if(!(!st||st.length<2))return{output:st[st.length-2],witness:st.slice(0,-2),redeemVersion:st[st.length-1][0]&types_1$2.TAPLEAF_VERSION_MASK}}),lazy.prop(at,"pubkey",()=>{if(tt.pubkey)return tt.pubkey;if(tt.output)return tt.output.slice(2);if(tt.address)return nt().data;if(at.internalPubkey){const st=(0,bip341_1$2.tweakKey)(at.internalPubkey,at.hash);if(st)return st.x}}),lazy.prop(at,"internalPubkey",()=>{if(tt.internalPubkey)return tt.internalPubkey;const st=rt();if(st&&st.length>1)return st[st.length-1].slice(1,33)}),lazy.prop(at,"signature",()=>{if(tt.signature)return tt.signature;const st=rt();if(!(!st||st.length!==1))return st[0]}),lazy.prop(at,"witness",()=>{if(tt.witness)return tt.witness;const st=it();if(st&&tt.redeem&&tt.redeem.output&&tt.internalPubkey){const lt=(0,bip341_1$2.tapleafHash)({output:tt.redeem.output,version:at.redeemVersion}),ct=(0,bip341_1$2.findScriptPath)(st,lt);if(!ct)return;const ut=(0,bip341_1$2.tweakKey)(tt.internalPubkey,st.hash);if(!ut)return;const ht=buffer_1.Buffer.concat([buffer_1.Buffer.from([at.redeemVersion|ut.parity]),tt.internalPubkey].concat(ct));return[tt.redeem.output,ht]}if(tt.signature)return[tt.signature]}),et.validate){let st=buffer_1.Buffer.from([]);if(tt.address){if(ot&&ot.bech32!==nt().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(nt().version!==TAPROOT_WITNESS_VERSION)throw new TypeError("Invalid address version");if(nt().data.length!==32)throw new TypeError("Invalid address data");st=nt().data}if(tt.pubkey){if(st.length>0&&!st.equals(tt.pubkey))throw new TypeError("Pubkey mismatch");st=tt.pubkey}if(tt.output){if(tt.output.length!==34||tt.output[0]!==OPS.OP_1||tt.output[1]!==32)throw new TypeError("Output is invalid");if(st.length>0&&!st.equals(tt.output.slice(2)))throw new TypeError("Pubkey mismatch");st=tt.output.slice(2)}if(tt.internalPubkey){const ut=(0,bip341_1$2.tweakKey)(tt.internalPubkey,at.hash);if(st.length>0&&!st.equals(ut.x))throw new TypeError("Pubkey mismatch");st=ut.x}if(st&&st.length&&!(0,ecc_lib_1.getEccLib)().isXOnlyPoint(st))throw new TypeError("Invalid pubkey for p2tr");const lt=it();if(tt.hash&<&&!tt.hash.equals(lt.hash))throw new TypeError("Hash mismatch");if(tt.redeem&&tt.redeem.output&<){const ut=(0,bip341_1$2.tapleafHash)({output:tt.redeem.output,version:at.redeemVersion});if(!(0,bip341_1$2.findScriptPath)(lt,ut))throw new TypeError("Redeem script not in tree")}const ct=rt();if(tt.redeem&&at.redeem){if(tt.redeem.redeemVersion&&tt.redeem.redeemVersion!==at.redeem.redeemVersion)throw new TypeError("Redeem.redeemVersion and witness mismatch");if(tt.redeem.output){if(bscript$4.decompile(tt.redeem.output).length===0)throw new TypeError("Redeem.output is invalid");if(at.redeem.output&&!tt.redeem.output.equals(at.redeem.output))throw new TypeError("Redeem.output and witness mismatch")}if(tt.redeem.witness&&at.redeem.witness&&!stacksEqual(tt.redeem.witness,at.redeem.witness))throw new TypeError("Redeem.witness and witness mismatch")}if(ct&&ct.length)if(ct.length===1){if(tt.signature&&!tt.signature.equals(ct[0]))throw new TypeError("Signature mismatch")}else{const ut=ct[ct.length-1];if(ut.length<33)throw new TypeError(`The control-block length is too small. Got ${ut.length}, expected min 33.`);if((ut.length-33)%32!==0)throw new TypeError(`The control-block length of ${ut.length} is incorrect!`);const ht=(ut.length-33)/32;if(ht>128)throw new TypeError(`The script path is too long. Got ${ht}, expected max 128.`);const dt=ut.slice(1,33);if(tt.internalPubkey&&!tt.internalPubkey.equals(dt))throw new TypeError("Internal pubkey mismatch");if(!(0,ecc_lib_1.getEccLib)().isXOnlyPoint(dt))throw new TypeError("Invalid internalPubkey for p2tr witness");const pt=ut[0]&types_1$2.TAPLEAF_VERSION_MASK,mt=ct[ct.length-2],gt=(0,bip341_1$2.tapleafHash)({output:mt,version:pt}),yt=(0,bip341_1$2.rootHashFromPath)(ut,gt),bt=(0,bip341_1$2.tweakKey)(dt,yt);if(!bt)throw new TypeError("Invalid outputKey for p2tr witness");if(st.length&&!st.equals(bt.x))throw new TypeError("Pubkey mismatch for p2tr witness");if(bt.parity!==(ut[0]&1))throw new Error("Incorrect parity")}}return Object.assign(at,tt)}p2tr$1.p2tr=p2tr;function stacksEqual(tt,et){return tt.length!==et.length?!1:tt.every((nt,rt)=>nt.equals(et[rt]))}(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.p2tr=tt.p2wsh=tt.p2wpkh=tt.p2sh=tt.p2pkh=tt.p2pk=tt.p2ms=tt.embed=void 0;const et=embed;Object.defineProperty(tt,"embed",{enumerable:!0,get:function(){return et.p2data}});const nt=p2ms$1;Object.defineProperty(tt,"p2ms",{enumerable:!0,get:function(){return nt.p2ms}});const rt=p2pk$1;Object.defineProperty(tt,"p2pk",{enumerable:!0,get:function(){return rt.p2pk}});const it=p2pkh$1;Object.defineProperty(tt,"p2pkh",{enumerable:!0,get:function(){return it.p2pkh}});const ot=p2sh$1;Object.defineProperty(tt,"p2sh",{enumerable:!0,get:function(){return ot.p2sh}});const at=p2wpkh$1;Object.defineProperty(tt,"p2wpkh",{enumerable:!0,get:function(){return at.p2wpkh}});const st=p2wsh$1;Object.defineProperty(tt,"p2wsh",{enumerable:!0,get:function(){return st.p2wsh}});const lt=p2tr$1;Object.defineProperty(tt,"p2tr",{enumerable:!0,get:function(){return lt.p2tr}})})(payments$3);Object.defineProperty(address,"__esModule",{value:!0});address.toOutputScript=address.fromOutputScript=address.toBech32=address.toBase58Check=address.fromBech32=address.fromBase58Check=void 0;const networks=networks$1,payments$2=payments$3,bscript$3=script,types_1$1=types$6,bech32_1=dist$1,bs58check=bs58check$3,FUTURE_SEGWIT_MAX_SIZE=40,FUTURE_SEGWIT_MIN_SIZE=2,FUTURE_SEGWIT_MAX_VERSION=16,FUTURE_SEGWIT_MIN_VERSION=2,FUTURE_SEGWIT_VERSION_DIFF=80,FUTURE_SEGWIT_VERSION_WARNING="WARNING: Sending to a future segwit version address can lead to loss of funds. End users MUST be warned carefully in the GUI and asked if they wish to proceed with caution. Wallets should verify the segwit version from the output of fromBech32, then decide when it is safe to use which version of segwit.";function _toFutureSegwitAddress(tt,et){const nt=tt.slice(2);if(nt.lengthFUTURE_SEGWIT_MAX_SIZE)throw new TypeError("Invalid program length for segwit address");const rt=tt[0]-FUTURE_SEGWIT_VERSION_DIFF;if(rtFUTURE_SEGWIT_MAX_VERSION)throw new TypeError("Invalid version for segwit address");if(tt[1]!==nt.length)throw new TypeError("Invalid script for segwit address");return console.warn(FUTURE_SEGWIT_VERSION_WARNING),toBech32(nt,rt,et.bech32)}function fromBase58Check(tt){const et=Buffer.from(bs58check.decode(tt));if(et.length<21)throw new TypeError(tt+" is too short");if(et.length>21)throw new TypeError(tt+" is too long");const nt=et.readUint8(0),rt=et.slice(1);return{version:nt,hash:rt}}address.fromBase58Check=fromBase58Check;function fromBech32(tt){let et,nt;try{et=bech32_1.bech32.decode(tt)}catch{}if(et){if(nt=et.words[0],nt!==0)throw new TypeError(tt+" uses wrong encoding")}else if(et=bech32_1.bech32m.decode(tt),nt=et.words[0],nt===0)throw new TypeError(tt+" uses wrong encoding");const rt=bech32_1.bech32.fromWords(et.words.slice(1));return{version:nt,prefix:et.prefix,data:Buffer.from(rt)}}address.fromBech32=fromBech32;function toBase58Check(tt,et){(0,types_1$1.typeforce)((0,types_1$1.tuple)(types_1$1.Hash160bit,types_1$1.UInt8),arguments);const nt=Buffer.allocUnsafe(21);return nt.writeUInt8(et,0),tt.copy(nt,1),bs58check.encode(nt)}address.toBase58Check=toBase58Check;function toBech32(tt,et,nt){const rt=bech32_1.bech32.toWords(tt);return rt.unshift(et),et===0?bech32_1.bech32.encode(nt,rt):bech32_1.bech32m.encode(nt,rt)}address.toBech32=toBech32;function fromOutputScript(tt,et){et=et||networks.bitcoin;try{return payments$2.p2pkh({output:tt,network:et}).address}catch{}try{return payments$2.p2sh({output:tt,network:et}).address}catch{}try{return payments$2.p2wpkh({output:tt,network:et}).address}catch{}try{return payments$2.p2wsh({output:tt,network:et}).address}catch{}try{return payments$2.p2tr({output:tt,network:et}).address}catch{}try{return _toFutureSegwitAddress(tt,et)}catch{}throw new Error(bscript$3.toASM(tt)+" has no matching Address")}address.fromOutputScript=fromOutputScript;function toOutputScript(tt,et){et=et||networks.bitcoin;let nt,rt;try{nt=fromBase58Check(tt)}catch{}if(nt){if(nt.version===et.pubKeyHash)return payments$2.p2pkh({hash:nt.hash}).output;if(nt.version===et.scriptHash)return payments$2.p2sh({hash:nt.hash}).output}else{try{rt=fromBech32(tt)}catch{}if(rt){if(rt.prefix!==et.bech32)throw new Error(tt+" has an invalid prefix");if(rt.version===0){if(rt.data.length===20)return payments$2.p2wpkh({hash:rt.data}).output;if(rt.data.length===32)return payments$2.p2wsh({hash:rt.data}).output}else if(rt.version===1){if(rt.data.length===32)return payments$2.p2tr({pubkey:rt.data}).output}else if(rt.version>=FUTURE_SEGWIT_MIN_VERSION&&rt.version<=FUTURE_SEGWIT_MAX_VERSION&&rt.data.length>=FUTURE_SEGWIT_MIN_SIZE&&rt.data.length<=FUTURE_SEGWIT_MAX_SIZE)return console.warn(FUTURE_SEGWIT_VERSION_WARNING),bscript$3.compile([rt.version+FUTURE_SEGWIT_VERSION_DIFF,rt.data])}}throw new Error(tt+" has no matching Script")}address.toOutputScript=toOutputScript;var block={},merkle={};Object.defineProperty(merkle,"__esModule",{value:!0});merkle.fastMerkleRoot=void 0;function fastMerkleRoot(tt,et){if(!Array.isArray(tt))throw TypeError("Expected values Array");if(typeof et!="function")throw TypeError("Expected digest Function");let nt=tt.length;const rt=tt.concat();for(;nt>1;){let it=0;for(let ot=0;otnt+varSliceSize(rt),0)}const EMPTY_BUFFER=Buffer.allocUnsafe(0),EMPTY_WITNESS=[],ZERO=Buffer.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),ONE$1=Buffer.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),VALUE_UINT64_MAX=Buffer.from("ffffffffffffffff","hex"),BLANK_OUTPUT={script:EMPTY_BUFFER,valueBuffer:VALUE_UINT64_MAX};function isOutput(tt){return tt.value!==void 0}class Transaction{constructor(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}static fromBuffer(et,nt){const rt=new bufferutils_1$2.BufferReader(et),it=new Transaction;it.version=rt.readInt32();const ot=rt.readUInt8(),at=rt.readUInt8();let st=!1;ot===Transaction.ADVANCED_TRANSACTION_MARKER&&at===Transaction.ADVANCED_TRANSACTION_FLAG?st=!0:rt.offset-=2;const lt=rt.readVarInt();for(let ut=0;utet.witness.length!==0)}weight(){const et=this.byteLength(!1),nt=this.byteLength(!0);return et*3+nt}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(et=!0){const nt=et&&this.hasWitnesses();return(nt?10:8)+bufferutils_1$2.varuint.encodingLength(this.ins.length)+bufferutils_1$2.varuint.encodingLength(this.outs.length)+this.ins.reduce((rt,it)=>rt+40+varSliceSize(it.script),0)+this.outs.reduce((rt,it)=>rt+8+varSliceSize(it.script),0)+(nt?this.ins.reduce((rt,it)=>rt+vectorSize(it.witness),0):0)}clone(){const et=new Transaction;return et.version=this.version,et.locktime=this.locktime,et.ins=this.ins.map(nt=>({hash:nt.hash,index:nt.index,script:nt.script,sequence:nt.sequence,witness:nt.witness})),et.outs=this.outs.map(nt=>({script:nt.script,value:nt.value})),et}hashForSignature(et,nt,rt){if(typeforce$1(types$2.tuple(types$2.UInt32,types$2.Buffer,types$2.Number),arguments),et>=this.ins.length)return ONE$1;const it=bscript$2.compile(bscript$2.decompile(nt).filter(st=>st!==script_1.OPS.OP_CODESEPARATOR)),ot=this.clone();if((rt&31)===Transaction.SIGHASH_NONE)ot.outs=[],ot.ins.forEach((st,lt)=>{lt!==et&&(st.sequence=0)});else if((rt&31)===Transaction.SIGHASH_SINGLE){if(et>=this.outs.length)return ONE$1;ot.outs.length=et+1;for(let st=0;st{lt!==et&&(st.sequence=0)})}rt&Transaction.SIGHASH_ANYONECANPAY?(ot.ins=[ot.ins[et]],ot.ins[0].script=it):(ot.ins.forEach(st=>{st.script=EMPTY_BUFFER}),ot.ins[et].script=it);const at=Buffer.allocUnsafe(ot.byteLength(!1)+4);return at.writeInt32LE(rt,at.length-4),ot.__toBuffer(at,0,!1),bcrypto$1.hash256(at)}hashForWitnessV1(et,nt,rt,it,ot,at){if(typeforce$1(types$2.tuple(types$2.UInt32,typeforce$1.arrayOf(types$2.Buffer),typeforce$1.arrayOf(types$2.Satoshi),types$2.UInt32),arguments),rt.length!==this.ins.length||nt.length!==this.ins.length)throw new Error("Must supply prevout script and value for all inputs");const st=it===Transaction.SIGHASH_DEFAULT?Transaction.SIGHASH_ALL:it&Transaction.SIGHASH_OUTPUT_MASK,ct=(it&Transaction.SIGHASH_INPUT_MASK)===Transaction.SIGHASH_ANYONECANPAY,ut=st===Transaction.SIGHASH_NONE,ht=st===Transaction.SIGHASH_SINGLE;let dt=EMPTY_BUFFER,pt=EMPTY_BUFFER,mt=EMPTY_BUFFER,gt=EMPTY_BUFFER,yt=EMPTY_BUFFER;if(!ct){let kt=bufferutils_1$2.BufferWriter.withCapacity(36*this.ins.length);this.ins.forEach(St=>{kt.writeSlice(St.hash),kt.writeUInt32(St.index)}),dt=bcrypto$1.sha256(kt.end()),kt=bufferutils_1$2.BufferWriter.withCapacity(8*this.ins.length),rt.forEach(St=>kt.writeUInt64(St)),pt=bcrypto$1.sha256(kt.end()),kt=bufferutils_1$2.BufferWriter.withCapacity(nt.map(varSliceSize).reduce((St,Et)=>St+Et)),nt.forEach(St=>kt.writeVarSlice(St)),mt=bcrypto$1.sha256(kt.end()),kt=bufferutils_1$2.BufferWriter.withCapacity(4*this.ins.length),this.ins.forEach(St=>kt.writeUInt32(St.sequence)),gt=bcrypto$1.sha256(kt.end())}if(ut||ht){if(ht&&et8+varSliceSize(Et.script)).reduce((Et,At)=>Et+At),St=bufferutils_1$2.BufferWriter.withCapacity(kt);this.outs.forEach(Et=>{St.writeUInt64(Et.value),St.writeVarSlice(Et.script)}),yt=bcrypto$1.sha256(St.end())}const bt=(ot?2:0)+(at?1:0),wt=174-(ct?49:0)-(ut?32:0)+(at?32:0)+(ot?37:0),vt=bufferutils_1$2.BufferWriter.withCapacity(wt);if(vt.writeUInt8(it),vt.writeInt32(this.version),vt.writeUInt32(this.locktime),vt.writeSlice(dt),vt.writeSlice(pt),vt.writeSlice(mt),vt.writeSlice(gt),ut||ht||vt.writeSlice(yt),vt.writeUInt8(bt),ct){const kt=this.ins[et];vt.writeSlice(kt.hash),vt.writeUInt32(kt.index),vt.writeUInt64(rt[et]),vt.writeVarSlice(nt[et]),vt.writeUInt32(kt.sequence)}else vt.writeUInt32(et);if(at){const kt=bufferutils_1$2.BufferWriter.withCapacity(varSliceSize(at));kt.writeVarSlice(at),vt.writeSlice(bcrypto$1.sha256(kt.end()))}return ht&&vt.writeSlice(yt),ot&&(vt.writeSlice(ot),vt.writeUInt8(0),vt.writeUInt32(4294967295)),bcrypto$1.taggedHash("TapSighash",Buffer.concat([Buffer.from([0]),vt.end()]))}hashForWitnessV0(et,nt,rt,it){typeforce$1(types$2.tuple(types$2.UInt32,types$2.Buffer,types$2.Satoshi,types$2.UInt32),arguments);let ot=Buffer.from([]),at,st=ZERO,lt=ZERO,ct=ZERO;if(it&Transaction.SIGHASH_ANYONECANPAY||(ot=Buffer.allocUnsafe(36*this.ins.length),at=new bufferutils_1$2.BufferWriter(ot,0),this.ins.forEach(ht=>{at.writeSlice(ht.hash),at.writeUInt32(ht.index)}),lt=bcrypto$1.hash256(ot)),!(it&Transaction.SIGHASH_ANYONECANPAY)&&(it&31)!==Transaction.SIGHASH_SINGLE&&(it&31)!==Transaction.SIGHASH_NONE&&(ot=Buffer.allocUnsafe(4*this.ins.length),at=new bufferutils_1$2.BufferWriter(ot,0),this.ins.forEach(ht=>{at.writeUInt32(ht.sequence)}),ct=bcrypto$1.hash256(ot)),(it&31)!==Transaction.SIGHASH_SINGLE&&(it&31)!==Transaction.SIGHASH_NONE){const ht=this.outs.reduce((dt,pt)=>dt+8+varSliceSize(pt.script),0);ot=Buffer.allocUnsafe(ht),at=new bufferutils_1$2.BufferWriter(ot,0),this.outs.forEach(dt=>{at.writeUInt64(dt.value),at.writeVarSlice(dt.script)}),st=bcrypto$1.hash256(ot)}else if((it&31)===Transaction.SIGHASH_SINGLE&&et{it.writeSlice(at.hash),it.writeUInt32(at.index),it.writeVarSlice(at.script),it.writeUInt32(at.sequence)}),it.writeVarInt(this.outs.length),this.outs.forEach(at=>{isOutput(at)?it.writeUInt64(at.value):it.writeSlice(at.valueBuffer),it.writeVarSlice(at.script)}),ot&&this.ins.forEach(at=>{it.writeVector(at.witness)}),it.writeUInt32(this.locktime),nt!==void 0?et.slice(nt,it.offset):et}}transaction.Transaction=Transaction;Transaction.DEFAULT_SEQUENCE=4294967295;Transaction.SIGHASH_DEFAULT=0;Transaction.SIGHASH_ALL=1;Transaction.SIGHASH_NONE=2;Transaction.SIGHASH_SINGLE=3;Transaction.SIGHASH_ANYONECANPAY=128;Transaction.SIGHASH_OUTPUT_MASK=3;Transaction.SIGHASH_INPUT_MASK=128;Transaction.ADVANCED_TRANSACTION_MARKER=0;Transaction.ADVANCED_TRANSACTION_FLAG=1;Object.defineProperty(block,"__esModule",{value:!0});block.Block=void 0;const bufferutils_1$1=bufferutils,bcrypto=crypto$2,merkle_1=merkle,transaction_1$3=transaction,types$1=types$6,{typeforce}=types$1,errorMerkleNoTxes=new TypeError("Cannot compute merkle root for zero transactions"),errorWitnessNotSegwit=new TypeError("Cannot compute witness commit for non-segwit block");let Block$1=class Hm{constructor(){this.version=1,this.prevHash=void 0,this.merkleRoot=void 0,this.timestamp=0,this.witnessCommit=void 0,this.bits=0,this.nonce=0,this.transactions=void 0}static fromBuffer(et){if(et.length<80)throw new Error("Buffer too small (< 80 bytes)");const nt=new bufferutils_1$1.BufferReader(et),rt=new Hm;if(rt.version=nt.readInt32(),rt.prevHash=nt.readSlice(32),rt.merkleRoot=nt.readSlice(32),rt.timestamp=nt.readUInt32(),rt.bits=nt.readUInt32(),rt.nonce=nt.readUInt32(),et.length===80)return rt;const it=()=>{const st=transaction_1$3.Transaction.fromBuffer(nt.buffer.slice(nt.offset),!0);return nt.offset+=st.byteLength(),st},ot=nt.readVarInt();rt.transactions=[];for(let st=0;st>24)-3,rt=et&8388607,it=Buffer.alloc(32,0);return it.writeUIntBE(rt,29-nt,3),it}static calculateMerkleRoot(et,nt){if(typeforce([{getHash:types$1.Function}],et),et.length===0)throw errorMerkleNoTxes;if(nt&&!txesHaveWitnessCommit(et))throw errorWitnessNotSegwit;const rt=et.map(ot=>ot.getHash(nt)),it=(0,merkle_1.fastMerkleRoot)(rt,bcrypto.hash256);return nt?bcrypto.hash256(Buffer.concat([it,et[0].ins[0].witness[0]])):it}getWitnessCommit(){if(!txesHaveWitnessCommit(this.transactions))return null;const et=this.transactions[0].outs.filter(rt=>rt.script.slice(0,6).equals(Buffer.from("6a24aa21a9ed","hex"))).map(rt=>rt.script.slice(6,38));if(et.length===0)return null;const nt=et[et.length-1];return nt instanceof Buffer&&nt.length===32?nt:null}hasWitnessCommit(){return this.witnessCommit instanceof Buffer&&this.witnessCommit.length===32||this.getWitnessCommit()!==null}hasWitness(){return anyTxHasWitness(this.transactions)}weight(){const et=this.byteLength(!1,!1),nt=this.byteLength(!1,!0);return et*3+nt}byteLength(et,nt=!0){return et||!this.transactions?80:80+bufferutils_1$1.varuint.encodingLength(this.transactions.length)+this.transactions.reduce((rt,it)=>rt+it.byteLength(nt),0)}getHash(){return bcrypto.hash256(this.toBuffer(!0))}getId(){return(0,bufferutils_1$1.reverseBuffer)(this.getHash()).toString("hex")}getUTCDate(){const et=new Date(0);return et.setUTCSeconds(this.timestamp),et}toBuffer(et){const nt=Buffer.allocUnsafe(this.byteLength(et)),rt=new bufferutils_1$1.BufferWriter(nt);return rt.writeInt32(this.version),rt.writeSlice(this.prevHash),rt.writeSlice(this.merkleRoot),rt.writeUInt32(this.timestamp),rt.writeUInt32(this.bits),rt.writeUInt32(this.nonce),et||!this.transactions||(bufferutils_1$1.varuint.encode(this.transactions.length,nt,rt.offset),rt.offset+=bufferutils_1$1.varuint.encode.bytes,this.transactions.forEach(it=>{const ot=it.byteLength();it.toBuffer(nt,rt.offset),rt.offset+=ot})),nt}toHex(et){return this.toBuffer(et).toString("hex")}checkTxRoots(){const et=this.hasWitnessCommit();return!et&&this.hasWitness()?!1:this.__checkMerkleRoot()&&(et?this.__checkWitnessCommit():!0)}checkProofOfWork(){const et=(0,bufferutils_1$1.reverseBuffer)(this.getHash()),nt=Hm.calculateTarget(this.bits);return et.compare(nt)<=0}__checkMerkleRoot(){if(!this.transactions)throw errorMerkleNoTxes;const et=Hm.calculateMerkleRoot(this.transactions);return this.merkleRoot.compare(et)===0}__checkWitnessCommit(){if(!this.transactions)throw errorMerkleNoTxes;if(!this.hasWitnessCommit())throw errorWitnessNotSegwit;const et=Hm.calculateMerkleRoot(this.transactions,!0);return this.witnessCommit.compare(et)===0}};block.Block=Block$1;function txesHaveWitnessCommit(tt){return tt instanceof Array&&tt[0]&&tt[0].ins&&tt[0].ins instanceof Array&&tt[0].ins[0]&&tt[0].ins[0].witness&&tt[0].ins[0].witness instanceof Array&&tt[0].ins[0].witness.length>0}function anyTxHasWitness(tt){return tt instanceof Array&&tt.some(et=>typeof et=="object"&&et.ins instanceof Array&&et.ins.some(nt=>typeof nt=="object"&&nt.witness instanceof Array&&nt.witness.length>0))}var psbt$1={},psbt={},combiner={},parser$2={},fromBuffer={},converter={},typeFields={};(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),function(et){et[et.UNSIGNED_TX=0]="UNSIGNED_TX",et[et.GLOBAL_XPUB=1]="GLOBAL_XPUB"}(tt.GlobalTypes||(tt.GlobalTypes={})),tt.GLOBAL_TYPE_NAMES=["unsignedTx","globalXpub"],function(et){et[et.NON_WITNESS_UTXO=0]="NON_WITNESS_UTXO",et[et.WITNESS_UTXO=1]="WITNESS_UTXO",et[et.PARTIAL_SIG=2]="PARTIAL_SIG",et[et.SIGHASH_TYPE=3]="SIGHASH_TYPE",et[et.REDEEM_SCRIPT=4]="REDEEM_SCRIPT",et[et.WITNESS_SCRIPT=5]="WITNESS_SCRIPT",et[et.BIP32_DERIVATION=6]="BIP32_DERIVATION",et[et.FINAL_SCRIPTSIG=7]="FINAL_SCRIPTSIG",et[et.FINAL_SCRIPTWITNESS=8]="FINAL_SCRIPTWITNESS",et[et.POR_COMMITMENT=9]="POR_COMMITMENT",et[et.TAP_KEY_SIG=19]="TAP_KEY_SIG",et[et.TAP_SCRIPT_SIG=20]="TAP_SCRIPT_SIG",et[et.TAP_LEAF_SCRIPT=21]="TAP_LEAF_SCRIPT",et[et.TAP_BIP32_DERIVATION=22]="TAP_BIP32_DERIVATION",et[et.TAP_INTERNAL_KEY=23]="TAP_INTERNAL_KEY",et[et.TAP_MERKLE_ROOT=24]="TAP_MERKLE_ROOT"}(tt.InputTypes||(tt.InputTypes={})),tt.INPUT_TYPE_NAMES=["nonWitnessUtxo","witnessUtxo","partialSig","sighashType","redeemScript","witnessScript","bip32Derivation","finalScriptSig","finalScriptWitness","porCommitment","tapKeySig","tapScriptSig","tapLeafScript","tapBip32Derivation","tapInternalKey","tapMerkleRoot"],function(et){et[et.REDEEM_SCRIPT=0]="REDEEM_SCRIPT",et[et.WITNESS_SCRIPT=1]="WITNESS_SCRIPT",et[et.BIP32_DERIVATION=2]="BIP32_DERIVATION",et[et.TAP_INTERNAL_KEY=5]="TAP_INTERNAL_KEY",et[et.TAP_TREE=6]="TAP_TREE",et[et.TAP_BIP32_DERIVATION=7]="TAP_BIP32_DERIVATION"}(tt.OutputTypes||(tt.OutputTypes={})),tt.OUTPUT_TYPE_NAMES=["redeemScript","witnessScript","bip32Derivation","tapInternalKey","tapTree","tapBip32Derivation"]})(typeFields);var globalXpub$1={};Object.defineProperty(globalXpub$1,"__esModule",{value:!0});const typeFields_1$g=typeFields,range$6=tt=>[...Array(tt).keys()];function decode$h(tt){if(tt.key[0]!==typeFields_1$g.GlobalTypes.GLOBAL_XPUB)throw new Error("Decode Error: could not decode globalXpub with key 0x"+tt.key.toString("hex"));if(tt.key.length!==79||![2,3].includes(tt.key[46]))throw new Error("Decode Error: globalXpub has invalid extended pubkey in key 0x"+tt.key.toString("hex"));if(tt.value.length/4%1!==0)throw new Error("Decode Error: Global GLOBAL_XPUB value length should be multiple of 4");const et=tt.key.slice(1),nt={masterFingerprint:tt.value.slice(0,4),extendedPubkey:et,path:"m"};for(const rt of range$6(tt.value.length/4-1)){const it=tt.value.readUInt32LE(rt*4+4),ot=!!(it&2147483648),at=it&2147483647;nt.path+="/"+at.toString(10)+(ot?"'":"")}return nt}globalXpub$1.decode=decode$h;function encode$i(tt){const et=Buffer.from([typeFields_1$g.GlobalTypes.GLOBAL_XPUB]),nt=Buffer.concat([et,tt.extendedPubkey]),rt=tt.path.split("/"),it=Buffer.allocUnsafe(rt.length*4);tt.masterFingerprint.copy(it,0);let ot=4;return rt.slice(1).forEach(at=>{const st=at.slice(-1)==="'";let lt=2147483647&parseInt(st?at.slice(0,-1):at,10);st&&(lt+=2147483648),it.writeUInt32LE(lt,ot),ot+=4}),{key:nt,value:it}}globalXpub$1.encode=encode$i;globalXpub$1.expected="{ masterFingerprint: Buffer; extendedPubkey: Buffer; path: string; }";function check$c(tt){const et=tt.extendedPubkey,nt=tt.masterFingerprint,rt=tt.path;return Buffer.isBuffer(et)&&et.length===78&&[2,3].indexOf(et[45])>-1&&Buffer.isBuffer(nt)&&nt.length===4&&typeof rt=="string"&&!!rt.match(/^m(\/\d+'?)*$/)}globalXpub$1.check=check$c;function canAddToArray$3(tt,et,nt){const rt=et.extendedPubkey.toString("hex");return nt.has(rt)?!1:(nt.add(rt),tt.filter(it=>it.extendedPubkey.equals(et.extendedPubkey)).length===0)}globalXpub$1.canAddToArray=canAddToArray$3;var unsignedTx$1={};Object.defineProperty(unsignedTx$1,"__esModule",{value:!0});const typeFields_1$f=typeFields;function encode$h(tt){return{key:Buffer.from([typeFields_1$f.GlobalTypes.UNSIGNED_TX]),value:tt.toBuffer()}}unsignedTx$1.encode=encode$h;var finalScriptSig$1={};Object.defineProperty(finalScriptSig$1,"__esModule",{value:!0});const typeFields_1$e=typeFields;function decode$g(tt){if(tt.key[0]!==typeFields_1$e.InputTypes.FINAL_SCRIPTSIG)throw new Error("Decode Error: could not decode finalScriptSig with key 0x"+tt.key.toString("hex"));return tt.value}finalScriptSig$1.decode=decode$g;function encode$g(tt){return{key:Buffer.from([typeFields_1$e.InputTypes.FINAL_SCRIPTSIG]),value:tt}}finalScriptSig$1.encode=encode$g;finalScriptSig$1.expected="Buffer";function check$b(tt){return Buffer.isBuffer(tt)}finalScriptSig$1.check=check$b;function canAdd$8(tt,et){return!!tt&&!!et&&tt.finalScriptSig===void 0}finalScriptSig$1.canAdd=canAdd$8;var finalScriptWitness$1={};Object.defineProperty(finalScriptWitness$1,"__esModule",{value:!0});const typeFields_1$d=typeFields;function decode$f(tt){if(tt.key[0]!==typeFields_1$d.InputTypes.FINAL_SCRIPTWITNESS)throw new Error("Decode Error: could not decode finalScriptWitness with key 0x"+tt.key.toString("hex"));return tt.value}finalScriptWitness$1.decode=decode$f;function encode$f(tt){return{key:Buffer.from([typeFields_1$d.InputTypes.FINAL_SCRIPTWITNESS]),value:tt}}finalScriptWitness$1.encode=encode$f;finalScriptWitness$1.expected="Buffer";function check$a(tt){return Buffer.isBuffer(tt)}finalScriptWitness$1.check=check$a;function canAdd$7(tt,et){return!!tt&&!!et&&tt.finalScriptWitness===void 0}finalScriptWitness$1.canAdd=canAdd$7;var nonWitnessUtxo$1={};Object.defineProperty(nonWitnessUtxo$1,"__esModule",{value:!0});const typeFields_1$c=typeFields;function decode$e(tt){if(tt.key[0]!==typeFields_1$c.InputTypes.NON_WITNESS_UTXO)throw new Error("Decode Error: could not decode nonWitnessUtxo with key 0x"+tt.key.toString("hex"));return tt.value}nonWitnessUtxo$1.decode=decode$e;function encode$e(tt){return{key:Buffer.from([typeFields_1$c.InputTypes.NON_WITNESS_UTXO]),value:tt}}nonWitnessUtxo$1.encode=encode$e;nonWitnessUtxo$1.expected="Buffer";function check$9(tt){return Buffer.isBuffer(tt)}nonWitnessUtxo$1.check=check$9;function canAdd$6(tt,et){return!!tt&&!!et&&tt.nonWitnessUtxo===void 0}nonWitnessUtxo$1.canAdd=canAdd$6;var partialSig$1={};Object.defineProperty(partialSig$1,"__esModule",{value:!0});const typeFields_1$b=typeFields;function decode$d(tt){if(tt.key[0]!==typeFields_1$b.InputTypes.PARTIAL_SIG)throw new Error("Decode Error: could not decode partialSig with key 0x"+tt.key.toString("hex"));if(!(tt.key.length===34||tt.key.length===66)||![2,3,4].includes(tt.key[1]))throw new Error("Decode Error: partialSig has invalid pubkey in key 0x"+tt.key.toString("hex"));return{pubkey:tt.key.slice(1),signature:tt.value}}partialSig$1.decode=decode$d;function encode$d(tt){const et=Buffer.from([typeFields_1$b.InputTypes.PARTIAL_SIG]);return{key:Buffer.concat([et,tt.pubkey]),value:tt.signature}}partialSig$1.encode=encode$d;partialSig$1.expected="{ pubkey: Buffer; signature: Buffer; }";function check$8(tt){return Buffer.isBuffer(tt.pubkey)&&Buffer.isBuffer(tt.signature)&&[33,65].includes(tt.pubkey.length)&&[2,3,4].includes(tt.pubkey[0])&&isDerSigWithSighash(tt.signature)}partialSig$1.check=check$8;function isDerSigWithSighash(tt){if(!Buffer.isBuffer(tt)||tt.length<9||tt[0]!==48||tt.length!==tt[1]+3||tt[2]!==2)return!1;const et=tt[3];if(et>33||et<1||tt[3+et+1]!==2)return!1;const nt=tt[3+et+2];return!(nt>33||nt<1||tt.length!==3+et+2+nt+2)}function canAddToArray$2(tt,et,nt){const rt=et.pubkey.toString("hex");return nt.has(rt)?!1:(nt.add(rt),tt.filter(it=>it.pubkey.equals(et.pubkey)).length===0)}partialSig$1.canAddToArray=canAddToArray$2;var porCommitment$1={};Object.defineProperty(porCommitment$1,"__esModule",{value:!0});const typeFields_1$a=typeFields;function decode$c(tt){if(tt.key[0]!==typeFields_1$a.InputTypes.POR_COMMITMENT)throw new Error("Decode Error: could not decode porCommitment with key 0x"+tt.key.toString("hex"));return tt.value.toString("utf8")}porCommitment$1.decode=decode$c;function encode$c(tt){return{key:Buffer.from([typeFields_1$a.InputTypes.POR_COMMITMENT]),value:Buffer.from(tt,"utf8")}}porCommitment$1.encode=encode$c;porCommitment$1.expected="string";function check$7(tt){return typeof tt=="string"}porCommitment$1.check=check$7;function canAdd$5(tt,et){return!!tt&&!!et&&tt.porCommitment===void 0}porCommitment$1.canAdd=canAdd$5;var sighashType$1={};Object.defineProperty(sighashType$1,"__esModule",{value:!0});const typeFields_1$9=typeFields;function decode$b(tt){if(tt.key[0]!==typeFields_1$9.InputTypes.SIGHASH_TYPE)throw new Error("Decode Error: could not decode sighashType with key 0x"+tt.key.toString("hex"));return tt.value.readUInt32LE(0)}sighashType$1.decode=decode$b;function encode$b(tt){const et=Buffer.from([typeFields_1$9.InputTypes.SIGHASH_TYPE]),nt=Buffer.allocUnsafe(4);return nt.writeUInt32LE(tt,0),{key:et,value:nt}}sighashType$1.encode=encode$b;sighashType$1.expected="number";function check$6(tt){return typeof tt=="number"}sighashType$1.check=check$6;function canAdd$4(tt,et){return!!tt&&!!et&&tt.sighashType===void 0}sighashType$1.canAdd=canAdd$4;var tapKeySig$1={};Object.defineProperty(tapKeySig$1,"__esModule",{value:!0});const typeFields_1$8=typeFields;function decode$a(tt){if(tt.key[0]!==typeFields_1$8.InputTypes.TAP_KEY_SIG||tt.key.length!==1)throw new Error("Decode Error: could not decode tapKeySig with key 0x"+tt.key.toString("hex"));if(!check$5(tt.value))throw new Error("Decode Error: tapKeySig not a valid 64-65-byte BIP340 signature");return tt.value}tapKeySig$1.decode=decode$a;function encode$a(tt){return{key:Buffer.from([typeFields_1$8.InputTypes.TAP_KEY_SIG]),value:tt}}tapKeySig$1.encode=encode$a;tapKeySig$1.expected="Buffer";function check$5(tt){return Buffer.isBuffer(tt)&&(tt.length===64||tt.length===65)}tapKeySig$1.check=check$5;function canAdd$3(tt,et){return!!tt&&!!et&&tt.tapKeySig===void 0}tapKeySig$1.canAdd=canAdd$3;var tapLeafScript$1={};Object.defineProperty(tapLeafScript$1,"__esModule",{value:!0});const typeFields_1$7=typeFields;function decode$9(tt){if(tt.key[0]!==typeFields_1$7.InputTypes.TAP_LEAF_SCRIPT)throw new Error("Decode Error: could not decode tapLeafScript with key 0x"+tt.key.toString("hex"));if((tt.key.length-2)%32!==0)throw new Error("Decode Error: tapLeafScript has invalid control block in key 0x"+tt.key.toString("hex"));const et=tt.value[tt.value.length-1];if((tt.key[1]&254)!==et)throw new Error("Decode Error: tapLeafScript bad leaf version in key 0x"+tt.key.toString("hex"));const nt=tt.value.slice(0,-1);return{controlBlock:tt.key.slice(1),script:nt,leafVersion:et}}tapLeafScript$1.decode=decode$9;function encode$9(tt){const et=Buffer.from([typeFields_1$7.InputTypes.TAP_LEAF_SCRIPT]),nt=Buffer.from([tt.leafVersion]);return{key:Buffer.concat([et,tt.controlBlock]),value:Buffer.concat([tt.script,nt])}}tapLeafScript$1.encode=encode$9;tapLeafScript$1.expected="{ controlBlock: Buffer; leafVersion: number, script: Buffer; }";function check$4(tt){return Buffer.isBuffer(tt.controlBlock)&&(tt.controlBlock.length-1)%32===0&&(tt.controlBlock[0]&254)===tt.leafVersion&&Buffer.isBuffer(tt.script)}tapLeafScript$1.check=check$4;function canAddToArray$1(tt,et,nt){const rt=et.controlBlock.toString("hex");return nt.has(rt)?!1:(nt.add(rt),tt.filter(it=>it.controlBlock.equals(et.controlBlock)).length===0)}tapLeafScript$1.canAddToArray=canAddToArray$1;var tapMerkleRoot$1={};Object.defineProperty(tapMerkleRoot$1,"__esModule",{value:!0});const typeFields_1$6=typeFields;function decode$8(tt){if(tt.key[0]!==typeFields_1$6.InputTypes.TAP_MERKLE_ROOT||tt.key.length!==1)throw new Error("Decode Error: could not decode tapMerkleRoot with key 0x"+tt.key.toString("hex"));if(!check$3(tt.value))throw new Error("Decode Error: tapMerkleRoot not a 32-byte hash");return tt.value}tapMerkleRoot$1.decode=decode$8;function encode$8(tt){return{key:Buffer.from([typeFields_1$6.InputTypes.TAP_MERKLE_ROOT]),value:tt}}tapMerkleRoot$1.encode=encode$8;tapMerkleRoot$1.expected="Buffer";function check$3(tt){return Buffer.isBuffer(tt)&&tt.length===32}tapMerkleRoot$1.check=check$3;function canAdd$2(tt,et){return!!tt&&!!et&&tt.tapMerkleRoot===void 0}tapMerkleRoot$1.canAdd=canAdd$2;var tapScriptSig$1={};Object.defineProperty(tapScriptSig$1,"__esModule",{value:!0});const typeFields_1$5=typeFields;function decode$7(tt){if(tt.key[0]!==typeFields_1$5.InputTypes.TAP_SCRIPT_SIG)throw new Error("Decode Error: could not decode tapScriptSig with key 0x"+tt.key.toString("hex"));if(tt.key.length!==65)throw new Error("Decode Error: tapScriptSig has invalid key 0x"+tt.key.toString("hex"));if(tt.value.length!==64&&tt.value.length!==65)throw new Error("Decode Error: tapScriptSig has invalid signature in key 0x"+tt.key.toString("hex"));const et=tt.key.slice(1,33),nt=tt.key.slice(33);return{pubkey:et,leafHash:nt,signature:tt.value}}tapScriptSig$1.decode=decode$7;function encode$7(tt){const et=Buffer.from([typeFields_1$5.InputTypes.TAP_SCRIPT_SIG]);return{key:Buffer.concat([et,tt.pubkey,tt.leafHash]),value:tt.signature}}tapScriptSig$1.encode=encode$7;tapScriptSig$1.expected="{ pubkey: Buffer; leafHash: Buffer; signature: Buffer; }";function check$2(tt){return Buffer.isBuffer(tt.pubkey)&&Buffer.isBuffer(tt.leafHash)&&Buffer.isBuffer(tt.signature)&&tt.pubkey.length===32&&tt.leafHash.length===32&&(tt.signature.length===64||tt.signature.length===65)}tapScriptSig$1.check=check$2;function canAddToArray(tt,et,nt){const rt=et.pubkey.toString("hex")+et.leafHash.toString("hex");return nt.has(rt)?!1:(nt.add(rt),tt.filter(it=>it.pubkey.equals(et.pubkey)&&it.leafHash.equals(et.leafHash)).length===0)}tapScriptSig$1.canAddToArray=canAddToArray;var witnessUtxo$1={},tools={},varint={};Object.defineProperty(varint,"__esModule",{value:!0});const MAX_SAFE_INTEGER$3=9007199254740991;function checkUInt53(tt){if(tt<0||tt>MAX_SAFE_INTEGER$3||tt%1!==0)throw new RangeError("value out of range")}function encode$6(tt,et,nt){if(checkUInt53(tt),et||(et=Buffer.allocUnsafe(encodingLength(tt))),!Buffer.isBuffer(et))throw new TypeError("buffer must be a Buffer instance");return nt||(nt=0),tt<253?(et.writeUInt8(tt,nt),Object.assign(encode$6,{bytes:1})):tt<=65535?(et.writeUInt8(253,nt),et.writeUInt16LE(tt,nt+1),Object.assign(encode$6,{bytes:3})):tt<=4294967295?(et.writeUInt8(254,nt),et.writeUInt32LE(tt,nt+1),Object.assign(encode$6,{bytes:5})):(et.writeUInt8(255,nt),et.writeUInt32LE(tt>>>0,nt+1),et.writeUInt32LE(tt/4294967296|0,nt+5),Object.assign(encode$6,{bytes:9})),et}varint.encode=encode$6;function decode$6(tt,et){if(!Buffer.isBuffer(tt))throw new TypeError("buffer must be a Buffer instance");et||(et=0);const nt=tt.readUInt8(et);if(nt<253)return Object.assign(decode$6,{bytes:1}),nt;if(nt===253)return Object.assign(decode$6,{bytes:3}),tt.readUInt16LE(et+1);if(nt===254)return Object.assign(decode$6,{bytes:5}),tt.readUInt32LE(et+1);{Object.assign(decode$6,{bytes:9});const rt=tt.readUInt32LE(et+1),ot=tt.readUInt32LE(et+5)*4294967296+rt;return checkUInt53(ot),ot}}varint.decode=decode$6;function encodingLength(tt){return checkUInt53(tt),tt<253?1:tt<=65535?3:tt<=4294967295?5:9}varint.encodingLength=encodingLength;Object.defineProperty(tools,"__esModule",{value:!0});const varuint$6=varint;tools.range=tt=>[...Array(tt).keys()];function reverseBuffer(tt){if(tt.length<1)return tt;let et=tt.length-1,nt=0;for(let rt=0;rtet)throw new Error("RangeError: value out of range");if(Math.floor(tt)!==tt)throw new Error("value has a fractional component")}function readUInt64LE(tt,et){const nt=tt.readUInt32LE(et);let rt=tt.readUInt32LE(et+4);return rt*=4294967296,verifuint(rt+nt,9007199254740991),rt+nt}tools.readUInt64LE=readUInt64LE;function writeUInt64LE(tt,et,nt){return verifuint(et,9007199254740991),tt.writeInt32LE(et&-1,nt),tt.writeUInt32LE(Math.floor(et/4294967296),nt+4),nt+8}tools.writeUInt64LE=writeUInt64LE;Object.defineProperty(witnessUtxo$1,"__esModule",{value:!0});const typeFields_1$4=typeFields,tools_1$2=tools,varuint$5=varint;function decode$5(tt){if(tt.key[0]!==typeFields_1$4.InputTypes.WITNESS_UTXO)throw new Error("Decode Error: could not decode witnessUtxo with key 0x"+tt.key.toString("hex"));const et=tools_1$2.readUInt64LE(tt.value,0);let nt=8;const rt=varuint$5.decode(tt.value,nt);nt+=varuint$5.encodingLength(rt);const it=tt.value.slice(nt);if(it.length!==rt)throw new Error("Decode Error: WITNESS_UTXO script is not proper length");return{script:it,value:et}}witnessUtxo$1.decode=decode$5;function encode$5(tt){const{script:et,value:nt}=tt,rt=varuint$5.encodingLength(et.length),it=Buffer.allocUnsafe(8+rt+et.length);return tools_1$2.writeUInt64LE(it,nt,0),varuint$5.encode(et.length,it,8),et.copy(it,8+rt),{key:Buffer.from([typeFields_1$4.InputTypes.WITNESS_UTXO]),value:it}}witnessUtxo$1.encode=encode$5;witnessUtxo$1.expected="{ script: Buffer; value: number; }";function check$1(tt){return Buffer.isBuffer(tt.script)&&typeof tt.value=="number"}witnessUtxo$1.check=check$1;function canAdd$1(tt,et){return!!tt&&!!et&&tt.witnessUtxo===void 0}witnessUtxo$1.canAdd=canAdd$1;var tapTree$1={};Object.defineProperty(tapTree$1,"__esModule",{value:!0});const typeFields_1$3=typeFields,varuint$4=varint;function decode$4(tt){if(tt.key[0]!==typeFields_1$3.OutputTypes.TAP_TREE||tt.key.length!==1)throw new Error("Decode Error: could not decode tapTree with key 0x"+tt.key.toString("hex"));let et=0;const nt=[];for(;et[Buffer.of(rt.depth,rt.leafVersion),varuint$4.encode(rt.script.length),rt.script]));return{key:et,value:Buffer.concat(nt)}}tapTree$1.encode=encode$4;tapTree$1.expected="{ leaves: [{ depth: number; leafVersion: number, script: Buffer; }] }";function check(tt){return Array.isArray(tt.leaves)&&tt.leaves.every(et=>et.depth>=0&&et.depth<=128&&(et.leafVersion&254)===et.leafVersion&&Buffer.isBuffer(et.script))}tapTree$1.check=check;function canAdd(tt,et){return!!tt&&!!et&&tt.tapTree===void 0}tapTree$1.canAdd=canAdd;var bip32Derivation$2={};Object.defineProperty(bip32Derivation$2,"__esModule",{value:!0});const range$5=tt=>[...Array(tt).keys()],isValidDERKey=tt=>tt.length===33&&[2,3].includes(tt[0])||tt.length===65&&tt[0]===4;function makeConverter$4(tt,et=isValidDERKey){function nt(st){if(st.key[0]!==tt)throw new Error("Decode Error: could not decode bip32Derivation with key 0x"+st.key.toString("hex"));const lt=st.key.slice(1);if(!et(lt))throw new Error("Decode Error: bip32Derivation has invalid pubkey in key 0x"+st.key.toString("hex"));if(st.value.length/4%1!==0)throw new Error("Decode Error: Input BIP32_DERIVATION value length should be multiple of 4");const ct={masterFingerprint:st.value.slice(0,4),pubkey:lt,path:"m"};for(const ut of range$5(st.value.length/4-1)){const ht=st.value.readUInt32LE(ut*4+4),dt=!!(ht&2147483648),pt=ht&2147483647;ct.path+="/"+pt.toString(10)+(dt?"'":"")}return ct}function rt(st){const lt=Buffer.from([tt]),ct=Buffer.concat([lt,st.pubkey]),ut=st.path.split("/"),ht=Buffer.allocUnsafe(ut.length*4);st.masterFingerprint.copy(ht,0);let dt=4;return ut.slice(1).forEach(pt=>{const mt=pt.slice(-1)==="'";let gt=2147483647&parseInt(mt?pt.slice(0,-1):pt,10);mt&&(gt+=2147483648),ht.writeUInt32LE(gt,dt),dt+=4}),{key:ct,value:ht}}const it="{ masterFingerprint: Buffer; pubkey: Buffer; path: string; }";function ot(st){return Buffer.isBuffer(st.pubkey)&&Buffer.isBuffer(st.masterFingerprint)&&typeof st.path=="string"&&et(st.pubkey)&&st.masterFingerprint.length===4}function at(st,lt,ct){const ut=lt.pubkey.toString("hex");return ct.has(ut)?!1:(ct.add(ut),st.filter(ht=>ht.pubkey.equals(lt.pubkey)).length===0)}return{decode:nt,encode:rt,check:ot,expected:it,canAddToArray:at}}bip32Derivation$2.makeConverter=makeConverter$4;var checkPubkey$1={};Object.defineProperty(checkPubkey$1,"__esModule",{value:!0});function makeChecker(tt){return et;function et(nt){let rt;if(tt.includes(nt.key[0])&&(rt=nt.key.slice(1),!(rt.length===33||rt.length===65)||![2,3,4].includes(rt[0])))throw new Error("Format Error: invalid pubkey in key 0x"+nt.key.toString("hex"));return rt}}checkPubkey$1.makeChecker=makeChecker;var redeemScript$1={};Object.defineProperty(redeemScript$1,"__esModule",{value:!0});function makeConverter$3(tt){function et(at){if(at.key[0]!==tt)throw new Error("Decode Error: could not decode redeemScript with key 0x"+at.key.toString("hex"));return at.value}function nt(at){return{key:Buffer.from([tt]),value:at}}const rt="Buffer";function it(at){return Buffer.isBuffer(at)}function ot(at,st){return!!at&&!!st&&at.redeemScript===void 0}return{decode:et,encode:nt,check:it,expected:rt,canAdd:ot}}redeemScript$1.makeConverter=makeConverter$3;var tapBip32Derivation$1={};Object.defineProperty(tapBip32Derivation$1,"__esModule",{value:!0});const varuint$3=varint,bip32Derivation$1=bip32Derivation$2,isValidBIP340Key=tt=>tt.length===32;function makeConverter$2(tt){const et=bip32Derivation$1.makeConverter(tt,isValidBIP340Key);function nt(at){const st=varuint$3.decode(at.value),lt=varuint$3.encodingLength(st),ct=et.decode({key:at.key,value:at.value.slice(lt+st*32)}),ut=new Array(st);for(let ht=0,dt=lt;htBuffer.isBuffer(st)&&st.length===32)&&et.check(at)}return{decode:nt,encode:rt,check:ot,expected:it,canAddToArray:et.canAddToArray}}tapBip32Derivation$1.makeConverter=makeConverter$2;var tapInternalKey$1={};Object.defineProperty(tapInternalKey$1,"__esModule",{value:!0});function makeConverter$1(tt){function et(at){if(at.key[0]!==tt||at.key.length!==1)throw new Error("Decode Error: could not decode tapInternalKey with key 0x"+at.key.toString("hex"));if(at.value.length!==32)throw new Error("Decode Error: tapInternalKey not a 32-byte x-only pubkey");return at.value}function nt(at){return{key:Buffer.from([tt]),value:at}}const rt="Buffer";function it(at){return Buffer.isBuffer(at)&&at.length===32}function ot(at,st){return!!at&&!!st&&at.tapInternalKey===void 0}return{decode:et,encode:nt,check:it,expected:rt,canAdd:ot}}tapInternalKey$1.makeConverter=makeConverter$1;var witnessScript$1={};Object.defineProperty(witnessScript$1,"__esModule",{value:!0});function makeConverter(tt){function et(at){if(at.key[0]!==tt)throw new Error("Decode Error: could not decode witnessScript with key 0x"+at.key.toString("hex"));return at.value}function nt(at){return{key:Buffer.from([tt]),value:at}}const rt="Buffer";function it(at){return Buffer.isBuffer(at)}function ot(at,st){return!!at&&!!st&&at.witnessScript===void 0}return{decode:et,encode:nt,check:it,expected:rt,canAdd:ot}}witnessScript$1.makeConverter=makeConverter;Object.defineProperty(converter,"__esModule",{value:!0});const typeFields_1$2=typeFields,globalXpub=globalXpub$1,unsignedTx=unsignedTx$1,finalScriptSig=finalScriptSig$1,finalScriptWitness=finalScriptWitness$1,nonWitnessUtxo=nonWitnessUtxo$1,partialSig=partialSig$1,porCommitment=porCommitment$1,sighashType=sighashType$1,tapKeySig=tapKeySig$1,tapLeafScript=tapLeafScript$1,tapMerkleRoot=tapMerkleRoot$1,tapScriptSig=tapScriptSig$1,witnessUtxo=witnessUtxo$1,tapTree=tapTree$1,bip32Derivation=bip32Derivation$2,checkPubkey=checkPubkey$1,redeemScript=redeemScript$1,tapBip32Derivation=tapBip32Derivation$1,tapInternalKey=tapInternalKey$1,witnessScript=witnessScript$1,globals={unsignedTx,globalXpub,checkPubkey:checkPubkey.makeChecker([])};converter.globals=globals;const inputs={nonWitnessUtxo,partialSig,sighashType,finalScriptSig,finalScriptWitness,porCommitment,witnessUtxo,bip32Derivation:bip32Derivation.makeConverter(typeFields_1$2.InputTypes.BIP32_DERIVATION),redeemScript:redeemScript.makeConverter(typeFields_1$2.InputTypes.REDEEM_SCRIPT),witnessScript:witnessScript.makeConverter(typeFields_1$2.InputTypes.WITNESS_SCRIPT),checkPubkey:checkPubkey.makeChecker([typeFields_1$2.InputTypes.PARTIAL_SIG,typeFields_1$2.InputTypes.BIP32_DERIVATION]),tapKeySig,tapScriptSig,tapLeafScript,tapBip32Derivation:tapBip32Derivation.makeConverter(typeFields_1$2.InputTypes.TAP_BIP32_DERIVATION),tapInternalKey:tapInternalKey.makeConverter(typeFields_1$2.InputTypes.TAP_INTERNAL_KEY),tapMerkleRoot};converter.inputs=inputs;const outputs={bip32Derivation:bip32Derivation.makeConverter(typeFields_1$2.OutputTypes.BIP32_DERIVATION),redeemScript:redeemScript.makeConverter(typeFields_1$2.OutputTypes.REDEEM_SCRIPT),witnessScript:witnessScript.makeConverter(typeFields_1$2.OutputTypes.WITNESS_SCRIPT),checkPubkey:checkPubkey.makeChecker([typeFields_1$2.OutputTypes.BIP32_DERIVATION]),tapBip32Derivation:tapBip32Derivation.makeConverter(typeFields_1$2.OutputTypes.TAP_BIP32_DERIVATION),tapTree,tapInternalKey:tapInternalKey.makeConverter(typeFields_1$2.OutputTypes.TAP_INTERNAL_KEY)};converter.outputs=outputs;Object.defineProperty(fromBuffer,"__esModule",{value:!0});const convert$3=converter,tools_1$1=tools,varuint$2=varint,typeFields_1$1=typeFields;function psbtFromBuffer(tt,et){let nt=0;function rt(){const yt=varuint$2.decode(tt,nt);nt+=varuint$2.encodingLength(yt);const bt=tt.slice(nt,nt+yt);return nt+=yt,bt}function it(){const yt=tt.readUInt32BE(nt);return nt+=4,yt}function ot(){const yt=tt.readUInt8(nt);return nt+=1,yt}function at(){const yt=rt(),bt=rt();return{key:yt,value:bt}}function st(){if(nt>=tt.length)throw new Error("Format Error: Unexpected End of PSBT");const yt=tt.readUInt8(nt)===0;return yt&&nt++,yt}if(it()!==1886610036)throw new Error("Format Error: Invalid Magic Number");if(ot()!==255)throw new Error("Format Error: Magic Number must be followed by 0xff separator");const lt=[],ct={};for(;!st();){const yt=at(),bt=yt.key.toString("hex");if(ct[bt])throw new Error("Format Error: Keys must be unique for global keymap: key "+bt);ct[bt]=1,lt.push(yt)}const ut=lt.filter(yt=>yt.key[0]===typeFields_1$1.GlobalTypes.UNSIGNED_TX);if(ut.length!==1)throw new Error("Format Error: Only one UNSIGNED_TX allowed");const ht=et(ut[0].value),{inputCount:dt,outputCount:pt}=ht.getInputOutputCounts(),mt=[],gt=[];for(const yt of tools_1$1.range(dt)){const bt={},wt=[];for(;!st();){const vt=at(),kt=vt.key.toString("hex");if(bt[kt])throw new Error("Format Error: Keys must be unique for each input: input index "+yt+" key "+kt);bt[kt]=1,wt.push(vt)}mt.push(wt)}for(const yt of tools_1$1.range(pt)){const bt={},wt=[];for(;!st();){const vt=at(),kt=vt.key.toString("hex");if(bt[kt])throw new Error("Format Error: Keys must be unique for each output: output index "+yt+" key "+kt);bt[kt]=1,wt.push(vt)}gt.push(wt)}return psbtFromKeyVals(ht,{globalMapKeyVals:lt,inputKeyVals:mt,outputKeyVals:gt})}fromBuffer.psbtFromBuffer=psbtFromBuffer;function checkKeyBuffer(tt,et,nt){if(!et.equals(Buffer.from([nt])))throw new Error(`Format Error: Invalid ${tt} key: ${et.toString("hex")}`)}fromBuffer.checkKeyBuffer=checkKeyBuffer;function psbtFromKeyVals(tt,{globalMapKeyVals:et,inputKeyVals:nt,outputKeyVals:rt}){const it={unsignedTx:tt};let ot=0;for(const ut of et)switch(ut.key[0]){case typeFields_1$1.GlobalTypes.UNSIGNED_TX:if(checkKeyBuffer("global",ut.key,typeFields_1$1.GlobalTypes.UNSIGNED_TX),ot>0)throw new Error("Format Error: GlobalMap has multiple UNSIGNED_TX");ot++;break;case typeFields_1$1.GlobalTypes.GLOBAL_XPUB:it.globalXpub===void 0&&(it.globalXpub=[]),it.globalXpub.push(convert$3.globals.globalXpub.decode(ut));break;default:it.unknownKeyVals||(it.unknownKeyVals=[]),it.unknownKeyVals.push(ut)}const at=nt.length,st=rt.length,lt=[],ct=[];for(const ut of tools_1$1.range(at)){const ht={};for(const dt of nt[ut])switch(convert$3.inputs.checkPubkey(dt),dt.key[0]){case typeFields_1$1.InputTypes.NON_WITNESS_UTXO:if(checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.NON_WITNESS_UTXO),ht.nonWitnessUtxo!==void 0)throw new Error("Format Error: Input has multiple NON_WITNESS_UTXO");ht.nonWitnessUtxo=convert$3.inputs.nonWitnessUtxo.decode(dt);break;case typeFields_1$1.InputTypes.WITNESS_UTXO:if(checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.WITNESS_UTXO),ht.witnessUtxo!==void 0)throw new Error("Format Error: Input has multiple WITNESS_UTXO");ht.witnessUtxo=convert$3.inputs.witnessUtxo.decode(dt);break;case typeFields_1$1.InputTypes.PARTIAL_SIG:ht.partialSig===void 0&&(ht.partialSig=[]),ht.partialSig.push(convert$3.inputs.partialSig.decode(dt));break;case typeFields_1$1.InputTypes.SIGHASH_TYPE:if(checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.SIGHASH_TYPE),ht.sighashType!==void 0)throw new Error("Format Error: Input has multiple SIGHASH_TYPE");ht.sighashType=convert$3.inputs.sighashType.decode(dt);break;case typeFields_1$1.InputTypes.REDEEM_SCRIPT:if(checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.REDEEM_SCRIPT),ht.redeemScript!==void 0)throw new Error("Format Error: Input has multiple REDEEM_SCRIPT");ht.redeemScript=convert$3.inputs.redeemScript.decode(dt);break;case typeFields_1$1.InputTypes.WITNESS_SCRIPT:if(checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.WITNESS_SCRIPT),ht.witnessScript!==void 0)throw new Error("Format Error: Input has multiple WITNESS_SCRIPT");ht.witnessScript=convert$3.inputs.witnessScript.decode(dt);break;case typeFields_1$1.InputTypes.BIP32_DERIVATION:ht.bip32Derivation===void 0&&(ht.bip32Derivation=[]),ht.bip32Derivation.push(convert$3.inputs.bip32Derivation.decode(dt));break;case typeFields_1$1.InputTypes.FINAL_SCRIPTSIG:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.FINAL_SCRIPTSIG),ht.finalScriptSig=convert$3.inputs.finalScriptSig.decode(dt);break;case typeFields_1$1.InputTypes.FINAL_SCRIPTWITNESS:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.FINAL_SCRIPTWITNESS),ht.finalScriptWitness=convert$3.inputs.finalScriptWitness.decode(dt);break;case typeFields_1$1.InputTypes.POR_COMMITMENT:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.POR_COMMITMENT),ht.porCommitment=convert$3.inputs.porCommitment.decode(dt);break;case typeFields_1$1.InputTypes.TAP_KEY_SIG:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.TAP_KEY_SIG),ht.tapKeySig=convert$3.inputs.tapKeySig.decode(dt);break;case typeFields_1$1.InputTypes.TAP_SCRIPT_SIG:ht.tapScriptSig===void 0&&(ht.tapScriptSig=[]),ht.tapScriptSig.push(convert$3.inputs.tapScriptSig.decode(dt));break;case typeFields_1$1.InputTypes.TAP_LEAF_SCRIPT:ht.tapLeafScript===void 0&&(ht.tapLeafScript=[]),ht.tapLeafScript.push(convert$3.inputs.tapLeafScript.decode(dt));break;case typeFields_1$1.InputTypes.TAP_BIP32_DERIVATION:ht.tapBip32Derivation===void 0&&(ht.tapBip32Derivation=[]),ht.tapBip32Derivation.push(convert$3.inputs.tapBip32Derivation.decode(dt));break;case typeFields_1$1.InputTypes.TAP_INTERNAL_KEY:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.TAP_INTERNAL_KEY),ht.tapInternalKey=convert$3.inputs.tapInternalKey.decode(dt);break;case typeFields_1$1.InputTypes.TAP_MERKLE_ROOT:checkKeyBuffer("input",dt.key,typeFields_1$1.InputTypes.TAP_MERKLE_ROOT),ht.tapMerkleRoot=convert$3.inputs.tapMerkleRoot.decode(dt);break;default:ht.unknownKeyVals||(ht.unknownKeyVals=[]),ht.unknownKeyVals.push(dt)}lt.push(ht)}for(const ut of tools_1$1.range(st)){const ht={};for(const dt of rt[ut])switch(convert$3.outputs.checkPubkey(dt),dt.key[0]){case typeFields_1$1.OutputTypes.REDEEM_SCRIPT:if(checkKeyBuffer("output",dt.key,typeFields_1$1.OutputTypes.REDEEM_SCRIPT),ht.redeemScript!==void 0)throw new Error("Format Error: Output has multiple REDEEM_SCRIPT");ht.redeemScript=convert$3.outputs.redeemScript.decode(dt);break;case typeFields_1$1.OutputTypes.WITNESS_SCRIPT:if(checkKeyBuffer("output",dt.key,typeFields_1$1.OutputTypes.WITNESS_SCRIPT),ht.witnessScript!==void 0)throw new Error("Format Error: Output has multiple WITNESS_SCRIPT");ht.witnessScript=convert$3.outputs.witnessScript.decode(dt);break;case typeFields_1$1.OutputTypes.BIP32_DERIVATION:ht.bip32Derivation===void 0&&(ht.bip32Derivation=[]),ht.bip32Derivation.push(convert$3.outputs.bip32Derivation.decode(dt));break;case typeFields_1$1.OutputTypes.TAP_INTERNAL_KEY:checkKeyBuffer("output",dt.key,typeFields_1$1.OutputTypes.TAP_INTERNAL_KEY),ht.tapInternalKey=convert$3.outputs.tapInternalKey.decode(dt);break;case typeFields_1$1.OutputTypes.TAP_TREE:checkKeyBuffer("output",dt.key,typeFields_1$1.OutputTypes.TAP_TREE),ht.tapTree=convert$3.outputs.tapTree.decode(dt);break;case typeFields_1$1.OutputTypes.TAP_BIP32_DERIVATION:ht.tapBip32Derivation===void 0&&(ht.tapBip32Derivation=[]),ht.tapBip32Derivation.push(convert$3.outputs.tapBip32Derivation.decode(dt));break;default:ht.unknownKeyVals||(ht.unknownKeyVals=[]),ht.unknownKeyVals.push(dt)}ct.push(ht)}return{globalMap:it,inputs:lt,outputs:ct}}fromBuffer.psbtFromKeyVals=psbtFromKeyVals;var toBuffer={};Object.defineProperty(toBuffer,"__esModule",{value:!0});const convert$2=converter,tools_1=tools;function psbtToBuffer({globalMap:tt,inputs:et,outputs:nt}){const{globalKeyVals:rt,inputKeyVals:it,outputKeyVals:ot}=psbtToKeyVals({globalMap:tt,inputs:et,outputs:nt}),at=tools_1.keyValsToBuffer(rt),st=ht=>ht.length===0?[Buffer.from([0])]:ht.map(tools_1.keyValsToBuffer),lt=st(it),ct=st(ot),ut=Buffer.allocUnsafe(5);return ut.writeUIntBE(482972169471,0,5),Buffer.concat([ut,at].concat(lt,ct))}toBuffer.psbtToBuffer=psbtToBuffer;const sortKeyVals=(tt,et)=>tt.key.compare(et.key);function keyValsFromMap(tt,et){const nt=new Set,rt=Object.entries(tt).reduce((ot,[at,st])=>{if(at==="unknownKeyVals")return ot;const lt=et[at];if(lt===void 0)return ot;const ct=(Array.isArray(st)?st:[st]).map(lt.encode);return ct.map(ht=>ht.key.toString("hex")).forEach(ht=>{if(nt.has(ht))throw new Error("Serialize Error: Duplicate key: "+ht);nt.add(ht)}),ot.concat(ct)},[]),it=tt.unknownKeyVals?tt.unknownKeyVals.filter(ot=>!nt.has(ot.key.toString("hex"))):[];return rt.concat(it).sort(sortKeyVals)}function psbtToKeyVals({globalMap:tt,inputs:et,outputs:nt}){return{globalKeyVals:keyValsFromMap(tt,convert$2.globals),inputKeyVals:et.map(rt=>keyValsFromMap(rt,convert$2.inputs)),outputKeyVals:nt.map(rt=>keyValsFromMap(rt,convert$2.outputs))}}toBuffer.psbtToKeyVals=psbtToKeyVals;(function(tt){function et(nt){for(var rt in nt)tt.hasOwnProperty(rt)||(tt[rt]=nt[rt])}Object.defineProperty(tt,"__esModule",{value:!0}),et(fromBuffer),et(toBuffer)})(parser$2);Object.defineProperty(combiner,"__esModule",{value:!0});const parser_1$1=parser$2;function combine(tt){const et=tt[0],nt=parser_1$1.psbtToKeyVals(et),rt=tt.slice(1);if(rt.length===0)throw new Error("Combine: Nothing to combine");const it=getTx(et);if(it===void 0)throw new Error("Combine: Self missing transaction");const ot=getKeySet(nt.globalKeyVals),at=nt.inputKeyVals.map(getKeySet),st=nt.outputKeyVals.map(getKeySet);for(const lt of rt){const ct=getTx(lt);if(ct===void 0||!ct.toBuffer().equals(it.toBuffer()))throw new Error("Combine: One of the Psbts does not have the same transaction.");const ut=parser_1$1.psbtToKeyVals(lt);getKeySet(ut.globalKeyVals).forEach(keyPusher(ot,nt.globalKeyVals,ut.globalKeyVals)),ut.inputKeyVals.map(getKeySet).forEach((mt,gt)=>mt.forEach(keyPusher(at[gt],nt.inputKeyVals[gt],ut.inputKeyVals[gt]))),ut.outputKeyVals.map(getKeySet).forEach((mt,gt)=>mt.forEach(keyPusher(st[gt],nt.outputKeyVals[gt],ut.outputKeyVals[gt])))}return parser_1$1.psbtFromKeyVals(it,{globalMapKeyVals:nt.globalKeyVals,inputKeyVals:nt.inputKeyVals,outputKeyVals:nt.outputKeyVals})}combiner.combine=combine;function keyPusher(tt,et,nt){return rt=>{if(tt.has(rt))return;const it=nt.filter(ot=>ot.key.toString("hex")===rt)[0];et.push(it),tt.add(rt)}}function getTx(tt){return tt.globalMap.unsignedTx}function getKeySet(tt){const et=new Set;return tt.forEach(nt=>{const rt=nt.key.toString("hex");if(et.has(rt))throw new Error("Combine: KeyValue Map keys should be unique");et.add(rt)}),et}var utils$1={};(function(tt){Object.defineProperty(tt,"__esModule",{value:!0});const et=converter;function nt(pt,mt){const gt=pt[mt];if(gt===void 0)throw new Error(`No input #${mt}`);return gt}tt.checkForInput=nt;function rt(pt,mt){const gt=pt[mt];if(gt===void 0)throw new Error(`No output #${mt}`);return gt}tt.checkForOutput=rt;function it(pt,mt,gt){if(pt.key[0]yt.key.equals(pt.key)).length!==0)throw new Error(`Duplicate Key: ${pt.key.toString("hex")}`)}tt.checkHasKey=it;function ot(pt){let mt=0;return Object.keys(pt).forEach(gt=>{Number(isNaN(Number(gt)))&&mt++}),mt}tt.getEnumLength=ot;function at(pt,mt){let gt=!1;if(mt.nonWitnessUtxo||mt.witnessUtxo){const yt=!!mt.redeemScript,bt=!!mt.witnessScript,wt=!yt||!!mt.finalScriptSig,vt=!bt||!!mt.finalScriptWitness,kt=!!mt.finalScriptSig||!!mt.finalScriptWitness;gt=wt&&vt&&kt}if(gt===!1)throw new Error(`Input #${pt} has too much or too little data to clean`)}tt.inputCheckUncleanFinalized=at;function st(pt,mt,gt,yt){throw new Error(`Data for ${pt} key ${mt} is incorrect: Expected ${gt} and got ${JSON.stringify(yt)}`)}function lt(pt){return(mt,gt)=>{for(const yt of Object.keys(mt)){const bt=mt[yt],{canAdd:wt,canAddToArray:vt,check:kt,expected:St}=et[pt+"s"][yt]||{},Et=!!vt;if(kt)if(Et){if(!Array.isArray(bt)||gt[yt]&&!Array.isArray(gt[yt]))throw new Error(`Key type ${yt} must be an array`);bt.every(kt)||st(pt,yt,St,bt);const At=gt[yt]||[],Tt=new Set;if(!bt.every(Mt=>vt(At,Mt,Tt)))throw new Error("Can not add duplicate data to array");gt[yt]=At.concat(bt)}else{if(kt(bt)||st(pt,yt,St,bt),!wt(gt,bt))throw new Error(`Can not add duplicate data to ${pt}`);gt[yt]=bt}}}}tt.updateGlobal=lt("global"),tt.updateInput=lt("input"),tt.updateOutput=lt("output");function ct(pt,mt){const gt=pt.length-1,yt=nt(pt,gt);tt.updateInput(mt,yt)}tt.addInputAttributes=ct;function ut(pt,mt){const gt=pt.length-1,yt=rt(pt,gt);tt.updateOutput(mt,yt)}tt.addOutputAttributes=ut;function ht(pt,mt){if(!Buffer.isBuffer(mt)||mt.length<4)throw new Error("Set Version: Invalid Transaction");return mt.writeUInt32LE(pt,0),mt}tt.defaultVersionSetter=ht;function dt(pt,mt){if(!Buffer.isBuffer(mt)||mt.length<4)throw new Error("Set Locktime: Invalid Transaction");return mt.writeUInt32LE(pt,mt.length-4),mt}tt.defaultLocktimeSetter=dt})(utils$1);Object.defineProperty(psbt,"__esModule",{value:!0});const combiner_1=combiner,parser_1=parser$2,typeFields_1=typeFields,utils_1$1=utils$1;let Psbt$1=class{constructor(et){this.inputs=[],this.outputs=[],this.globalMap={unsignedTx:et}}static fromBase64(et,nt){const rt=Buffer.from(et,"base64");return this.fromBuffer(rt,nt)}static fromHex(et,nt){const rt=Buffer.from(et,"hex");return this.fromBuffer(rt,nt)}static fromBuffer(et,nt){const rt=parser_1.psbtFromBuffer(et,nt),it=new this(rt.globalMap.unsignedTx);return Object.assign(it,rt),it}toBase64(){return this.toBuffer().toString("base64")}toHex(){return this.toBuffer().toString("hex")}toBuffer(){return parser_1.psbtToBuffer(this)}updateGlobal(et){return utils_1$1.updateGlobal(et,this.globalMap),this}updateInput(et,nt){const rt=utils_1$1.checkForInput(this.inputs,et);return utils_1$1.updateInput(nt,rt),this}updateOutput(et,nt){const rt=utils_1$1.checkForOutput(this.outputs,et);return utils_1$1.updateOutput(nt,rt),this}addUnknownKeyValToGlobal(et){return utils_1$1.checkHasKey(et,this.globalMap.unknownKeyVals,utils_1$1.getEnumLength(typeFields_1.GlobalTypes)),this.globalMap.unknownKeyVals||(this.globalMap.unknownKeyVals=[]),this.globalMap.unknownKeyVals.push(et),this}addUnknownKeyValToInput(et,nt){const rt=utils_1$1.checkForInput(this.inputs,et);return utils_1$1.checkHasKey(nt,rt.unknownKeyVals,utils_1$1.getEnumLength(typeFields_1.InputTypes)),rt.unknownKeyVals||(rt.unknownKeyVals=[]),rt.unknownKeyVals.push(nt),this}addUnknownKeyValToOutput(et,nt){const rt=utils_1$1.checkForOutput(this.outputs,et);return utils_1$1.checkHasKey(nt,rt.unknownKeyVals,utils_1$1.getEnumLength(typeFields_1.OutputTypes)),rt.unknownKeyVals||(rt.unknownKeyVals=[]),rt.unknownKeyVals.push(nt),this}addInput(et){this.globalMap.unsignedTx.addInput(et),this.inputs.push({unknownKeyVals:[]});const nt=et.unknownKeyVals||[],rt=this.inputs.length-1;if(!Array.isArray(nt))throw new Error("unknownKeyVals must be an Array");return nt.forEach(it=>this.addUnknownKeyValToInput(rt,it)),utils_1$1.addInputAttributes(this.inputs,et),this}addOutput(et){this.globalMap.unsignedTx.addOutput(et),this.outputs.push({unknownKeyVals:[]});const nt=et.unknownKeyVals||[],rt=this.outputs.length-1;if(!Array.isArray(nt))throw new Error("unknownKeyVals must be an Array");return nt.forEach(it=>this.addUnknownKeyValToInput(rt,it)),utils_1$1.addOutputAttributes(this.outputs,et),this}clearFinalizedInput(et){const nt=utils_1$1.checkForInput(this.inputs,et);utils_1$1.inputCheckUncleanFinalized(et,nt);for(const rt of Object.keys(nt))["witnessUtxo","nonWitnessUtxo","finalScriptSig","finalScriptWitness","unknownKeyVals"].includes(rt)||delete nt[rt];return this}combine(...et){const nt=combiner_1.combine([this].concat(et));return Object.assign(this,nt),this}getTransaction(){return this.globalMap.unsignedTx.toBuffer()}};psbt.Psbt=Psbt$1;var bip371={},psbtutils={};Object.defineProperty(psbtutils,"__esModule",{value:!0});psbtutils.signatureBlocksAction=psbtutils.checkInputForSig=psbtutils.pubkeyInScript=psbtutils.pubkeyPositionInScript=psbtutils.witnessStackToScriptWitness=psbtutils.isP2TR=psbtutils.isP2SHScript=psbtutils.isP2WSHScript=psbtutils.isP2WPKH=psbtutils.isP2PKH=psbtutils.isP2PK=psbtutils.isP2MS=void 0;const varuint$1=varint,bscript$1=script,transaction_1$2=transaction,crypto_1=crypto$2,payments$1=payments$3;function isPaymentFactory(tt){return et=>{try{return tt({output:et}),!0}catch{return!1}}}psbtutils.isP2MS=isPaymentFactory(payments$1.p2ms);psbtutils.isP2PK=isPaymentFactory(payments$1.p2pk);psbtutils.isP2PKH=isPaymentFactory(payments$1.p2pkh);psbtutils.isP2WPKH=isPaymentFactory(payments$1.p2wpkh);psbtutils.isP2WSHScript=isPaymentFactory(payments$1.p2wsh);psbtutils.isP2SHScript=isPaymentFactory(payments$1.p2sh);psbtutils.isP2TR=isPaymentFactory(payments$1.p2tr);function witnessStackToScriptWitness(tt){let et=Buffer.allocUnsafe(0);function nt(at){et=Buffer.concat([et,Buffer.from(at)])}function rt(at){const st=et.length,lt=varuint$1.encodingLength(at);et=Buffer.concat([et,Buffer.allocUnsafe(lt)]),varuint$1.encode(at,et,st)}function it(at){rt(at.length),nt(at)}function ot(at){rt(at.length),at.forEach(it)}return ot(tt),et}psbtutils.witnessStackToScriptWitness=witnessStackToScriptWitness;function pubkeyPositionInScript(tt,et){const nt=(0,crypto_1.hash160)(tt),rt=tt.slice(1,33),it=bscript$1.decompile(et);if(it===null)throw new Error("Unknown script error");return it.findIndex(ot=>typeof ot=="number"?!1:ot.equals(tt)||ot.equals(nt)||ot.equals(rt))}psbtutils.pubkeyPositionInScript=pubkeyPositionInScript;function pubkeyInScript(tt,et){return pubkeyPositionInScript(tt,et)!==-1}psbtutils.pubkeyInScript=pubkeyInScript;function checkInputForSig(tt,et){return extractPartialSigs(tt).some(rt=>signatureBlocksAction(rt,bscript$1.signature.decode,et))}psbtutils.checkInputForSig=checkInputForSig;function signatureBlocksAction(tt,et,nt){const{hashType:rt}=et(tt),it=[];switch(rt&transaction_1$2.Transaction.SIGHASH_ANYONECANPAY&&it.push("addInput"),rt&31){case transaction_1$2.Transaction.SIGHASH_ALL:break;case transaction_1$2.Transaction.SIGHASH_SINGLE:case transaction_1$2.Transaction.SIGHASH_NONE:it.push("addOutput"),it.push("setInputSequence");break}return it.indexOf(nt)===-1}psbtutils.signatureBlocksAction=signatureBlocksAction;function extractPartialSigs(tt){let et=[];if((tt.partialSig||[]).length===0){if(!tt.finalScriptSig&&!tt.finalScriptWitness)return[];et=getPsigsFromInputFinalScripts(tt)}else et=tt.partialSig;return et.map(nt=>nt.signature)}function getPsigsFromInputFinalScripts(tt){const et=tt.finalScriptSig?bscript$1.decompile(tt.finalScriptSig)||[]:[],nt=tt.finalScriptWitness?bscript$1.decompile(tt.finalScriptWitness)||[]:[];return et.concat(nt).filter(rt=>Buffer.isBuffer(rt)&&bscript$1.isCanonicalScriptSignature(rt)).map(rt=>({signature:rt}))}Object.defineProperty(bip371,"__esModule",{value:!0});bip371.checkTaprootInputForSigs=bip371.tapTreeFromList=bip371.tapTreeToList=bip371.tweakInternalPubKey=bip371.checkTaprootOutputFields=bip371.checkTaprootInputFields=bip371.isTaprootOutput=bip371.isTaprootInput=bip371.serializeTaprootSignature=bip371.tapScriptFinalizer=bip371.toXOnly=void 0;const types_1=types$6,transaction_1$1=transaction,psbtutils_1$1=psbtutils,bip341_1$1=bip341,payments_1=payments$3,psbtutils_2=psbtutils,toXOnly=tt=>tt.length===32?tt:tt.slice(1,33);bip371.toXOnly=toXOnly;function tapScriptFinalizer(tt,et,nt){const rt=findTapLeafToFinalize(et,tt,nt);try{const ot=sortSignatures(et,rt).concat(rt.script).concat(rt.controlBlock);return{finalScriptWitness:(0,psbtutils_1$1.witnessStackToScriptWitness)(ot)}}catch(it){throw new Error(`Can not finalize taproot input #${tt}: ${it}`)}}bip371.tapScriptFinalizer=tapScriptFinalizer;function serializeTaprootSignature(tt,et){const nt=et?Buffer.from([et]):Buffer.from([]);return Buffer.concat([tt,nt])}bip371.serializeTaprootSignature=serializeTaprootSignature;function isTaprootInput(tt){return tt&&!!(tt.tapInternalKey||tt.tapMerkleRoot||tt.tapLeafScript&&tt.tapLeafScript.length||tt.tapBip32Derivation&&tt.tapBip32Derivation.length||tt.witnessUtxo&&(0,psbtutils_1$1.isP2TR)(tt.witnessUtxo.script))}bip371.isTaprootInput=isTaprootInput;function isTaprootOutput(tt,et){return tt&&!!(tt.tapInternalKey||tt.tapTree||tt.tapBip32Derivation&&tt.tapBip32Derivation.length||et&&(0,psbtutils_1$1.isP2TR)(et))}bip371.isTaprootOutput=isTaprootOutput;function checkTaprootInputFields(tt,et,nt){checkMixedTaprootAndNonTaprootInputFields(tt,et,nt),checkIfTapLeafInTree(tt,et,nt)}bip371.checkTaprootInputFields=checkTaprootInputFields;function checkTaprootOutputFields(tt,et,nt){checkMixedTaprootAndNonTaprootOutputFields(tt,et,nt),checkTaprootScriptPubkey(tt,et)}bip371.checkTaprootOutputFields=checkTaprootOutputFields;function checkTaprootScriptPubkey(tt,et){if(!et.tapTree&&!et.tapInternalKey)return;const nt=et.tapInternalKey||tt.tapInternalKey,rt=et.tapTree||tt.tapTree;if(nt){const{script:it}=tt,ot=getTaprootScripPubkey(nt,rt);if(it&&!it.equals(ot))throw new Error("Error adding output. Script or address missmatch.")}}function getTaprootScripPubkey(tt,et){const nt=et&&tapTreeFromList(et.leaves),{output:rt}=(0,payments_1.p2tr)({internalPubkey:tt,scriptTree:nt});return rt}function tweakInternalPubKey(tt,et){const nt=et.tapInternalKey,rt=nt&&(0,bip341_1$1.tweakKey)(nt,et.tapMerkleRoot);if(!rt)throw new Error(`Cannot tweak tap internal key for input #${tt}. Public key: ${nt&&nt.toString("hex")}`);return rt.x}bip371.tweakInternalPubKey=tweakInternalPubKey;function tapTreeToList(tt){if(!(0,types_1.isTaptree)(tt))throw new Error("Cannot convert taptree to tapleaf list. Expecting a tapree structure.");return _tapTreeToList(tt)}bip371.tapTreeToList=tapTreeToList;function tapTreeFromList(tt=[]){return tt.length===1&&tt[0].depth===0?{output:tt[0].script,version:tt[0].leafVersion}:instertLeavesInTree(tt)}bip371.tapTreeFromList=tapTreeFromList;function checkTaprootInputForSigs(tt,et){return extractTaprootSigs(tt).some(rt=>(0,psbtutils_2.signatureBlocksAction)(rt,decodeSchnorrSignature,et))}bip371.checkTaprootInputForSigs=checkTaprootInputForSigs;function decodeSchnorrSignature(tt){return{signature:tt.slice(0,64),hashType:tt.slice(64)[0]||transaction_1$1.Transaction.SIGHASH_DEFAULT}}function extractTaprootSigs(tt){const et=[];if(tt.tapKeySig&&et.push(tt.tapKeySig),tt.tapScriptSig&&et.push(...tt.tapScriptSig.map(nt=>nt.signature)),!et.length){const nt=getTapKeySigFromWithness(tt.finalScriptWitness);nt&&et.push(nt)}return et}function getTapKeySigFromWithness(tt){if(!tt)return;const et=tt.slice(2);if(et.length===64||et.length===65)return et}function _tapTreeToList(tt,et=[],nt=0){if(nt>bip341_1$1.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");return tt?(0,types_1.isTapleaf)(tt)?(et.push({depth:nt,leafVersion:tt.version||bip341_1$1.LEAF_VERSION_TAPSCRIPT,script:tt.output}),et):(tt[0]&&_tapTreeToList(tt[0],et,nt+1),tt[1]&&_tapTreeToList(tt[1],et,nt+1),et):[]}function instertLeavesInTree(tt){let et;for(const nt of tt)if(et=instertLeafInTree(nt,et),!et)throw new Error("No room left to insert tapleaf in tree");return et}function instertLeafInTree(tt,et,nt=0){if(nt>bip341_1$1.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");if(tt.depth===nt)return et?void 0:{output:tt.script,version:tt.leafVersion};if((0,types_1.isTapleaf)(et))return;const rt=instertLeafInTree(tt,et&&et[0],nt+1);if(rt)return[rt,et&&et[1]];const it=instertLeafInTree(tt,et&&et[1],nt+1);if(it)return[et&&et[0],it]}function checkMixedTaprootAndNonTaprootInputFields(tt,et,nt){const rt=isTaprootInput(tt)&&hasNonTaprootFields(et),it=hasNonTaprootFields(tt)&&isTaprootInput(et),ot=tt===et&&isTaprootInput(et)&&hasNonTaprootFields(et);if(rt||it||ot)throw new Error(`Invalid arguments for Psbt.${nt}. Cannot use both taproot and non-taproot fields.`)}function checkMixedTaprootAndNonTaprootOutputFields(tt,et,nt){const rt=isTaprootOutput(tt)&&hasNonTaprootFields(et),it=hasNonTaprootFields(tt)&&isTaprootOutput(et),ot=tt===et&&isTaprootOutput(et)&&hasNonTaprootFields(et);if(rt||it||ot)throw new Error(`Invalid arguments for Psbt.${nt}. Cannot use both taproot and non-taproot fields.`)}function checkIfTapLeafInTree(tt,et,nt){if(et.tapMerkleRoot){const rt=(et.tapLeafScript||[]).every(ot=>isTapLeafInTree(ot,et.tapMerkleRoot)),it=(tt.tapLeafScript||[]).every(ot=>isTapLeafInTree(ot,et.tapMerkleRoot));if(!rt||!it)throw new Error(`Invalid arguments for Psbt.${nt}. Tapleaf not part of taptree.`)}else if(tt.tapMerkleRoot&&!(et.tapLeafScript||[]).every(it=>isTapLeafInTree(it,tt.tapMerkleRoot)))throw new Error(`Invalid arguments for Psbt.${nt}. Tapleaf not part of taptree.`)}function isTapLeafInTree(tt,et){if(!et)return!0;const nt=(0,bip341_1$1.tapleafHash)({output:tt.script,version:tt.leafVersion});return(0,bip341_1$1.rootHashFromPath)(tt.controlBlock,nt).equals(et)}function sortSignatures(tt,et){const nt=(0,bip341_1$1.tapleafHash)({output:et.script,version:et.leafVersion});return(tt.tapScriptSig||[]).filter(rt=>rt.leafHash.equals(nt)).map(rt=>addPubkeyPositionInScript(et.script,rt)).sort((rt,it)=>it.positionInScript-rt.positionInScript).map(rt=>rt.signature)}function addPubkeyPositionInScript(tt,et){return Object.assign({positionInScript:(0,psbtutils_1$1.pubkeyPositionInScript)(et.pubkey,tt)},et)}function findTapLeafToFinalize(tt,et,nt){if(!tt.tapScriptSig||!tt.tapScriptSig.length)throw new Error(`Can not finalize taproot input #${et}. No tapleaf script signature provided.`);const rt=(tt.tapLeafScript||[]).sort((it,ot)=>it.controlBlock.length-ot.controlBlock.length).find(it=>canFinalizeLeaf(it,tt.tapScriptSig,nt));if(!rt)throw new Error(`Can not finalize taproot input #${et}. Signature for tapleaf script not found.`);return rt}function canFinalizeLeaf(tt,et,nt){const rt=(0,bip341_1$1.tapleafHash)({output:tt.script,version:tt.leafVersion});return(!nt||nt.equals(rt))&&et.find(ot=>ot.leafHash.equals(rt))!==void 0}function hasNonTaprootFields(tt){return tt&&!!(tt.redeemScript||tt.witnessScript||tt.bip32Derivation&&tt.bip32Derivation.length)}Object.defineProperty(psbt$1,"__esModule",{value:!0});psbt$1.Psbt=void 0;const bip174_1=psbt,varuint=varint,utils_1=utils$1,address_1=address,bufferutils_1=bufferutils,networks_1=networks$1,payments=payments$3,bip341_1=bip341,bscript=script,transaction_1=transaction,bip371_1=bip371,psbtutils_1=psbtutils,DEFAULT_OPTS={network:networks_1.bitcoin,maximumFeeRate:5e3};class Psbt{static fromBase64(et,nt={}){const rt=Buffer.from(et,"base64");return this.fromBuffer(rt,nt)}static fromHex(et,nt={}){const rt=Buffer.from(et,"hex");return this.fromBuffer(rt,nt)}static fromBuffer(et,nt={}){const rt=bip174_1.Psbt.fromBuffer(et,transactionFromBuffer),it=new Psbt(nt,rt);return checkTxForDupeIns(it.__CACHE.__TX,it.__CACHE),it}constructor(et={},nt=new bip174_1.Psbt(new PsbtTransaction)){this.data=nt,this.opts=Object.assign({},DEFAULT_OPTS,et),this.__CACHE={__NON_WITNESS_UTXO_TX_CACHE:[],__NON_WITNESS_UTXO_BUF_CACHE:[],__TX_IN_CACHE:{},__TX:this.data.globalMap.unsignedTx.tx,__UNSAFE_SIGN_NONSEGWIT:!1},this.data.inputs.length===0&&this.setVersion(2);const rt=(it,ot,at,st)=>Object.defineProperty(it,ot,{enumerable:at,writable:st});rt(this,"__CACHE",!1,!0),rt(this,"opts",!1,!0)}get inputCount(){return this.data.inputs.length}get version(){return this.__CACHE.__TX.version}set version(et){this.setVersion(et)}get locktime(){return this.__CACHE.__TX.locktime}set locktime(et){this.setLocktime(et)}get txInputs(){return this.__CACHE.__TX.ins.map(et=>({hash:(0,bufferutils_1.cloneBuffer)(et.hash),index:et.index,sequence:et.sequence}))}get txOutputs(){return this.__CACHE.__TX.outs.map(et=>{let nt;try{nt=(0,address_1.fromOutputScript)(et.script,this.opts.network)}catch{}return{script:(0,bufferutils_1.cloneBuffer)(et.script),value:et.value,address:nt}})}combine(...et){return this.data.combine(...et.map(nt=>nt.data)),this}clone(){const et=Psbt.fromBuffer(this.data.toBuffer());return et.opts=JSON.parse(JSON.stringify(this.opts)),et}setMaximumFeeRate(et){check32Bit(et),this.opts.maximumFeeRate=et}setVersion(et){check32Bit(et),checkInputsForPartialSig(this.data.inputs,"setVersion");const nt=this.__CACHE;return nt.__TX.version=et,nt.__EXTRACTED_TX=void 0,this}setLocktime(et){check32Bit(et),checkInputsForPartialSig(this.data.inputs,"setLocktime");const nt=this.__CACHE;return nt.__TX.locktime=et,nt.__EXTRACTED_TX=void 0,this}setInputSequence(et,nt){check32Bit(nt),checkInputsForPartialSig(this.data.inputs,"setInputSequence");const rt=this.__CACHE;if(rt.__TX.ins.length<=et)throw new Error("Input index too high");return rt.__TX.ins[et].sequence=nt,rt.__EXTRACTED_TX=void 0,this}addInputs(et){return et.forEach(nt=>this.addInput(nt)),this}addInput(et){if(arguments.length>1||!et||et.hash===void 0||et.index===void 0)throw new Error("Invalid arguments for Psbt.addInput. Requires single object with at least [hash] and [index]");(0,bip371_1.checkTaprootInputFields)(et,et,"addInput"),checkInputsForPartialSig(this.data.inputs,"addInput"),et.witnessScript&&checkInvalidP2WSH(et.witnessScript);const nt=this.__CACHE;this.data.addInput(et);const rt=nt.__TX.ins[nt.__TX.ins.length-1];checkTxInputCache(nt,rt);const it=this.data.inputs.length-1,ot=this.data.inputs[it];return ot.nonWitnessUtxo&&addNonWitnessTxCache(this.__CACHE,ot,it),nt.__FEE=void 0,nt.__FEE_RATE=void 0,nt.__EXTRACTED_TX=void 0,this}addOutputs(et){return et.forEach(nt=>this.addOutput(nt)),this}addOutput(et){if(arguments.length>1||!et||et.value===void 0||et.address===void 0&&et.script===void 0)throw new Error("Invalid arguments for Psbt.addOutput. Requires single object with at least [script or address] and [value]");checkInputsForPartialSig(this.data.inputs,"addOutput");const{address:nt}=et;if(typeof nt=="string"){const{network:it}=this.opts,ot=(0,address_1.toOutputScript)(nt,it);et=Object.assign(et,{script:ot})}(0,bip371_1.checkTaprootOutputFields)(et,et,"addOutput");const rt=this.__CACHE;return this.data.addOutput(et),rt.__FEE=void 0,rt.__FEE_RATE=void 0,rt.__EXTRACTED_TX=void 0,this}extractTransaction(et){if(!this.data.inputs.every(isFinalized))throw new Error("Not finalized");const nt=this.__CACHE;if(et||checkFees(this,nt,this.opts),nt.__EXTRACTED_TX)return nt.__EXTRACTED_TX;const rt=nt.__TX.clone();return inputFinalizeGetAmts(this.data.inputs,rt,nt,!0),rt}getFeeRate(){return getTxCacheValue("__FEE_RATE","fee rate",this.data.inputs,this.__CACHE)}getFee(){return getTxCacheValue("__FEE","fee",this.data.inputs,this.__CACHE)}finalizeAllInputs(){return(0,utils_1.checkForInput)(this.data.inputs,0),range$4(this.data.inputs.length).forEach(et=>this.finalizeInput(et)),this}finalizeInput(et,nt){const rt=(0,utils_1.checkForInput)(this.data.inputs,et);return(0,bip371_1.isTaprootInput)(rt)?this._finalizeTaprootInput(et,rt,void 0,nt):this._finalizeInput(et,rt,nt)}finalizeTaprootInput(et,nt,rt=bip371_1.tapScriptFinalizer){const it=(0,utils_1.checkForInput)(this.data.inputs,et);if((0,bip371_1.isTaprootInput)(it))return this._finalizeTaprootInput(et,it,nt,rt);throw new Error(`Cannot finalize input #${et}. Not Taproot.`)}_finalizeInput(et,nt,rt=getFinalScripts){const{script:it,isP2SH:ot,isP2WSH:at,isSegwit:st}=getScriptFromInput(et,nt,this.__CACHE);if(!it)throw new Error(`No script found for input #${et}`);checkPartialSigSighashes(nt);const{finalScriptSig:lt,finalScriptWitness:ct}=rt(et,nt,it,st,ot,at);if(lt&&this.data.updateInput(et,{finalScriptSig:lt}),ct&&this.data.updateInput(et,{finalScriptWitness:ct}),!lt&&!ct)throw new Error(`Unknown error finalizing input #${et}`);return this.data.clearFinalizedInput(et),this}_finalizeTaprootInput(et,nt,rt,it=bip371_1.tapScriptFinalizer){if(!nt.witnessUtxo)throw new Error(`Cannot finalize input #${et}. Missing withness utxo.`);if(nt.tapKeySig){const ot=payments.p2tr({output:nt.witnessUtxo.script,signature:nt.tapKeySig}),at=(0,psbtutils_1.witnessStackToScriptWitness)(ot.witness);this.data.updateInput(et,{finalScriptWitness:at})}else{const{finalScriptWitness:ot}=it(et,nt,rt);this.data.updateInput(et,{finalScriptWitness:ot})}return this.data.clearFinalizedInput(et),this}getInputType(et){const nt=(0,utils_1.checkForInput)(this.data.inputs,et),rt=getScriptFromUtxo(et,nt,this.__CACHE),it=getMeaningfulScript(rt,et,"input",nt.redeemScript||redeemFromFinalScriptSig(nt.finalScriptSig),nt.witnessScript||redeemFromFinalWitnessScript(nt.finalScriptWitness)),ot=it.type==="raw"?"":it.type+"-",at=classifyScript(it.meaningfulScript);return ot+at}inputHasPubkey(et,nt){const rt=(0,utils_1.checkForInput)(this.data.inputs,et);return pubkeyInInput(nt,rt,et,this.__CACHE)}inputHasHDKey(et,nt){const rt=(0,utils_1.checkForInput)(this.data.inputs,et),it=bip32DerivationIsMine(nt);return!!rt.bip32Derivation&&rt.bip32Derivation.some(it)}outputHasPubkey(et,nt){const rt=(0,utils_1.checkForOutput)(this.data.outputs,et);return pubkeyInOutput(nt,rt,et,this.__CACHE)}outputHasHDKey(et,nt){const rt=(0,utils_1.checkForOutput)(this.data.outputs,et),it=bip32DerivationIsMine(nt);return!!rt.bip32Derivation&&rt.bip32Derivation.some(it)}validateSignaturesOfAllInputs(et){return(0,utils_1.checkForInput)(this.data.inputs,0),range$4(this.data.inputs.length).map(rt=>this.validateSignaturesOfInput(rt,et)).reduce((rt,it)=>it===!0&&rt,!0)}validateSignaturesOfInput(et,nt,rt){const it=this.data.inputs[et];return(0,bip371_1.isTaprootInput)(it)?this.validateSignaturesOfTaprootInput(et,nt,rt):this._validateSignaturesOfInput(et,nt,rt)}_validateSignaturesOfInput(et,nt,rt){const it=this.data.inputs[et],ot=(it||{}).partialSig;if(!it||!ot||ot.length<1)throw new Error("No signatures to validate");if(typeof nt!="function")throw new Error("Need validator function to validate signatures");const at=rt?ot.filter(ht=>ht.pubkey.equals(rt)):ot;if(at.length<1)throw new Error("No signatures for this pubkey");const st=[];let lt,ct,ut;for(const ht of at){const dt=bscript.signature.decode(ht.signature),{hash:pt,script:mt}=ut!==dt.hashType?getHashForSig(et,Object.assign({},it,{sighashType:dt.hashType}),this.__CACHE,!0):{hash:lt,script:ct};ut=dt.hashType,lt=pt,ct=mt,checkScriptForPubkey(ht.pubkey,mt,"verify"),st.push(nt(ht.pubkey,pt,dt.signature))}return st.every(ht=>ht===!0)}validateSignaturesOfTaprootInput(et,nt,rt){const it=this.data.inputs[et],ot=(it||{}).tapKeySig,at=(it||{}).tapScriptSig;if(!it&&!ot&&!(at&&!at.length))throw new Error("No signatures to validate");if(typeof nt!="function")throw new Error("Need validator function to validate signatures");rt=rt&&(0,bip371_1.toXOnly)(rt);const st=rt?getTaprootHashesForSig(et,it,this.data.inputs,rt,this.__CACHE):getAllTaprootHashesForSig(et,it,this.data.inputs,this.__CACHE);if(!st.length)throw new Error("No signatures for this pubkey");const lt=st.find(ut=>!ut.leafHash);let ct=0;if(ot&<){if(!nt(lt.pubkey,lt.hash,trimTaprootSig(ot)))return!1;ct++}if(at)for(const ut of at){const ht=st.find(dt=>ut.pubkey.equals(dt.pubkey));if(ht){if(!nt(ut.pubkey,ht.hash,trimTaprootSig(ut.signature)))return!1;ct++}}return ct>0}signAllInputsHD(et,nt=[transaction_1.Transaction.SIGHASH_ALL]){if(!et||!et.publicKey||!et.fingerprint)throw new Error("Need HDSigner to sign input");const rt=[];for(const it of range$4(this.data.inputs.length))try{this.signInputHD(it,et,nt),rt.push(!0)}catch{rt.push(!1)}if(rt.every(it=>it===!1))throw new Error("No inputs were signed");return this}signAllInputsHDAsync(et,nt=[transaction_1.Transaction.SIGHASH_ALL]){return new Promise((rt,it)=>{if(!et||!et.publicKey||!et.fingerprint)return it(new Error("Need HDSigner to sign input"));const ot=[],at=[];for(const st of range$4(this.data.inputs.length))at.push(this.signInputHDAsync(st,et,nt).then(()=>{ot.push(!0)},()=>{ot.push(!1)}));return Promise.all(at).then(()=>{if(ot.every(st=>st===!1))return it(new Error("No inputs were signed"));rt()})})}signInputHD(et,nt,rt=[transaction_1.Transaction.SIGHASH_ALL]){if(!nt||!nt.publicKey||!nt.fingerprint)throw new Error("Need HDSigner to sign input");return getSignersFromHD(et,this.data.inputs,nt).forEach(ot=>this.signInput(et,ot,rt)),this}signInputHDAsync(et,nt,rt=[transaction_1.Transaction.SIGHASH_ALL]){return new Promise((it,ot)=>{if(!nt||!nt.publicKey||!nt.fingerprint)return ot(new Error("Need HDSigner to sign input"));const st=getSignersFromHD(et,this.data.inputs,nt).map(lt=>this.signInputAsync(et,lt,rt));return Promise.all(st).then(()=>{it()}).catch(ot)})}signAllInputs(et,nt){if(!et||!et.publicKey)throw new Error("Need Signer to sign input");const rt=[];for(const it of range$4(this.data.inputs.length))try{this.signInput(it,et,nt),rt.push(!0)}catch{rt.push(!1)}if(rt.every(it=>it===!1))throw new Error("No inputs were signed");return this}signAllInputsAsync(et,nt){return new Promise((rt,it)=>{if(!et||!et.publicKey)return it(new Error("Need Signer to sign input"));const ot=[],at=[];for(const[st]of this.data.inputs.entries())at.push(this.signInputAsync(st,et,nt).then(()=>{ot.push(!0)},()=>{ot.push(!1)}));return Promise.all(at).then(()=>{if(ot.every(st=>st===!1))return it(new Error("No inputs were signed"));rt()})})}signInput(et,nt,rt){if(!nt||!nt.publicKey)throw new Error("Need Signer to sign input");const it=(0,utils_1.checkForInput)(this.data.inputs,et);return(0,bip371_1.isTaprootInput)(it)?this._signTaprootInput(et,it,nt,void 0,rt):this._signInput(et,nt,rt)}signTaprootInput(et,nt,rt,it){if(!nt||!nt.publicKey)throw new Error("Need Signer to sign input");const ot=(0,utils_1.checkForInput)(this.data.inputs,et);if((0,bip371_1.isTaprootInput)(ot))return this._signTaprootInput(et,ot,nt,rt,it);throw new Error(`Input #${et} is not of type Taproot.`)}_signInput(et,nt,rt=[transaction_1.Transaction.SIGHASH_ALL]){const{hash:it,sighashType:ot}=getHashAndSighashType(this.data.inputs,et,nt.publicKey,this.__CACHE,rt),at=[{pubkey:nt.publicKey,signature:bscript.signature.encode(nt.sign(it),ot)}];return this.data.updateInput(et,{partialSig:at}),this}_signTaprootInput(et,nt,rt,it,ot=[transaction_1.Transaction.SIGHASH_DEFAULT]){const at=this.checkTaprootHashesForSig(et,nt,rt,it,ot),st=at.filter(ct=>!ct.leafHash).map(ct=>(0,bip371_1.serializeTaprootSignature)(rt.signSchnorr(ct.hash),nt.sighashType))[0],lt=at.filter(ct=>!!ct.leafHash).map(ct=>({pubkey:(0,bip371_1.toXOnly)(rt.publicKey),signature:(0,bip371_1.serializeTaprootSignature)(rt.signSchnorr(ct.hash),nt.sighashType),leafHash:ct.leafHash}));return st&&this.data.updateInput(et,{tapKeySig:st}),lt.length&&this.data.updateInput(et,{tapScriptSig:lt}),this}signInputAsync(et,nt,rt){return Promise.resolve().then(()=>{if(!nt||!nt.publicKey)throw new Error("Need Signer to sign input");const it=(0,utils_1.checkForInput)(this.data.inputs,et);return(0,bip371_1.isTaprootInput)(it)?this._signTaprootInputAsync(et,it,nt,void 0,rt):this._signInputAsync(et,nt,rt)})}signTaprootInputAsync(et,nt,rt,it){return Promise.resolve().then(()=>{if(!nt||!nt.publicKey)throw new Error("Need Signer to sign input");const ot=(0,utils_1.checkForInput)(this.data.inputs,et);if((0,bip371_1.isTaprootInput)(ot))return this._signTaprootInputAsync(et,ot,nt,rt,it);throw new Error(`Input #${et} is not of type Taproot.`)})}_signInputAsync(et,nt,rt=[transaction_1.Transaction.SIGHASH_ALL]){const{hash:it,sighashType:ot}=getHashAndSighashType(this.data.inputs,et,nt.publicKey,this.__CACHE,rt);return Promise.resolve(nt.sign(it)).then(at=>{const st=[{pubkey:nt.publicKey,signature:bscript.signature.encode(at,ot)}];this.data.updateInput(et,{partialSig:st})})}async _signTaprootInputAsync(et,nt,rt,it,ot=[transaction_1.Transaction.SIGHASH_DEFAULT]){const at=this.checkTaprootHashesForSig(et,nt,rt,it,ot),st=[],lt=at.filter(ut=>!ut.leafHash)[0];if(lt){const ut=Promise.resolve(rt.signSchnorr(lt.hash)).then(ht=>({tapKeySig:(0,bip371_1.serializeTaprootSignature)(ht,nt.sighashType)}));st.push(ut)}const ct=at.filter(ut=>!!ut.leafHash);if(ct.length){const ut=ct.map(ht=>Promise.resolve(rt.signSchnorr(ht.hash)).then(dt=>({tapScriptSig:[{pubkey:(0,bip371_1.toXOnly)(rt.publicKey),signature:(0,bip371_1.serializeTaprootSignature)(dt,nt.sighashType),leafHash:ht.leafHash}]})));st.push(...ut)}return Promise.all(st).then(ut=>{ut.forEach(ht=>this.data.updateInput(et,ht))})}checkTaprootHashesForSig(et,nt,rt,it,ot){if(typeof rt.signSchnorr!="function")throw new Error(`Need Schnorr Signer to sign taproot input #${et}.`);const at=getTaprootHashesForSig(et,nt,this.data.inputs,rt.publicKey,this.__CACHE,it,ot);if(!at||!at.length)throw new Error(`Can not sign for input #${et} with the key ${rt.publicKey.toString("hex")}`);return at}toBuffer(){return checkCache(this.__CACHE),this.data.toBuffer()}toHex(){return checkCache(this.__CACHE),this.data.toHex()}toBase64(){return checkCache(this.__CACHE),this.data.toBase64()}updateGlobal(et){return this.data.updateGlobal(et),this}updateInput(et,nt){return nt.witnessScript&&checkInvalidP2WSH(nt.witnessScript),(0,bip371_1.checkTaprootInputFields)(this.data.inputs[et],nt,"updateInput"),this.data.updateInput(et,nt),nt.nonWitnessUtxo&&addNonWitnessTxCache(this.__CACHE,this.data.inputs[et],et),this}updateOutput(et,nt){const rt=this.data.outputs[et];return(0,bip371_1.checkTaprootOutputFields)(rt,nt,"updateOutput"),this.data.updateOutput(et,nt),this}addUnknownKeyValToGlobal(et){return this.data.addUnknownKeyValToGlobal(et),this}addUnknownKeyValToInput(et,nt){return this.data.addUnknownKeyValToInput(et,nt),this}addUnknownKeyValToOutput(et,nt){return this.data.addUnknownKeyValToOutput(et,nt),this}clearFinalizedInput(et){return this.data.clearFinalizedInput(et),this}}psbt$1.Psbt=Psbt;const transactionFromBuffer=tt=>new PsbtTransaction(tt);class PsbtTransaction{constructor(et=Buffer.from([2,0,0,0,0,0,0,0,0,0])){this.tx=transaction_1.Transaction.fromBuffer(et),checkTxEmpty(this.tx),Object.defineProperty(this,"tx",{enumerable:!1,writable:!0})}getInputOutputCounts(){return{inputCount:this.tx.ins.length,outputCount:this.tx.outs.length}}addInput(et){if(et.hash===void 0||et.index===void 0||!Buffer.isBuffer(et.hash)&&typeof et.hash!="string"||typeof et.index!="number")throw new Error("Error adding input.");const nt=typeof et.hash=="string"?(0,bufferutils_1.reverseBuffer)(Buffer.from(et.hash,"hex")):et.hash;this.tx.addInput(nt,et.index,et.sequence)}addOutput(et){if(et.script===void 0||et.value===void 0||!Buffer.isBuffer(et.script)||typeof et.value!="number")throw new Error("Error adding output.");this.tx.addOutput(et.script,et.value)}toBuffer(){return this.tx.toBuffer()}}function canFinalize(tt,et,nt){switch(nt){case"pubkey":case"pubkeyhash":case"witnesspubkeyhash":return hasSigs(1,tt.partialSig);case"multisig":const rt=payments.p2ms({output:et});return hasSigs(rt.m,tt.partialSig,rt.pubkeys);default:return!1}}function checkCache(tt){if(tt.__UNSAFE_SIGN_NONSEGWIT!==!1)throw new Error("Not BIP174 compliant, can not export")}function hasSigs(tt,et,nt){if(!et)return!1;let rt;if(nt?rt=nt.map(it=>{const ot=compressPubkey(it);return et.find(at=>at.pubkey.equals(ot))}).filter(it=>!!it):rt=et,rt.length>tt)throw new Error("Too many signatures");return rt.length===tt}function isFinalized(tt){return!!tt.finalScriptSig||!!tt.finalScriptWitness}function bip32DerivationIsMine(tt){return et=>!(!et.masterFingerprint.equals(tt.fingerprint)||!tt.derivePath(et.path).publicKey.equals(et.pubkey))}function check32Bit(tt){if(typeof tt!="number"||tt!==Math.floor(tt)||tt>4294967295||tt<0)throw new Error("Invalid 32 bit integer")}function checkFees(tt,et,nt){const rt=et.__FEE_RATE||tt.getFeeRate(),it=et.__EXTRACTED_TX.virtualSize(),ot=rt*it;if(rt>=nt.maximumFeeRate)throw new Error(`Warning: You are paying around ${(ot/1e8).toFixed(8)} in fees, which is ${rt} satoshi per byte for a transaction with a VSize of ${it} bytes (segwit counted as 0.25 byte per byte). Use setMaximumFeeRate method to raise your threshold, or pass true to the first arg of extractTransaction.`)}function checkInputsForPartialSig(tt,et){tt.forEach(nt=>{if((0,bip371_1.isTaprootInput)(nt)?(0,bip371_1.checkTaprootInputForSigs)(nt,et):(0,psbtutils_1.checkInputForSig)(nt,et))throw new Error("Can not modify transaction, signatures exist.")})}function checkPartialSigSighashes(tt){if(!tt.sighashType||!tt.partialSig)return;const{partialSig:et,sighashType:nt}=tt;et.forEach(rt=>{const{hashType:it}=bscript.signature.decode(rt.signature);if(nt!==it)throw new Error("Signature sighash does not match input sighash type")})}function checkScriptForPubkey(tt,et,nt){if(!(0,psbtutils_1.pubkeyInScript)(tt,et))throw new Error(`Can not ${nt} for this input with the key ${tt.toString("hex")}`)}function checkTxEmpty(tt){if(!tt.ins.every(nt=>nt.script&&nt.script.length===0&&nt.witness&&nt.witness.length===0))throw new Error("Format Error: Transaction ScriptSigs are not empty")}function checkTxForDupeIns(tt,et){tt.ins.forEach(nt=>{checkTxInputCache(et,nt)})}function checkTxInputCache(tt,et){const nt=(0,bufferutils_1.reverseBuffer)(Buffer.from(et.hash)).toString("hex")+":"+et.index;if(tt.__TX_IN_CACHE[nt])throw new Error("Duplicate input detected.");tt.__TX_IN_CACHE[nt]=1}function scriptCheckerFactory(tt,et){return(nt,rt,it,ot)=>{const at=tt({redeem:{output:it}}).output;if(!rt.equals(at))throw new Error(`${et} for ${ot} #${nt} doesn't match the scriptPubKey in the prevout`)}}const checkRedeemScript=scriptCheckerFactory(payments.p2sh,"Redeem script"),checkWitnessScript=scriptCheckerFactory(payments.p2wsh,"Witness script");function getTxCacheValue(tt,et,nt,rt){if(!nt.every(isFinalized))throw new Error(`PSBT must be finalized to calculate ${et}`);if(tt==="__FEE_RATE"&&rt.__FEE_RATE)return rt.__FEE_RATE;if(tt==="__FEE"&&rt.__FEE)return rt.__FEE;let it,ot=!0;if(rt.__EXTRACTED_TX?(it=rt.__EXTRACTED_TX,ot=!1):it=rt.__TX.clone(),inputFinalizeGetAmts(nt,it,rt,ot),tt==="__FEE_RATE")return rt.__FEE_RATE;if(tt==="__FEE")return rt.__FEE}function getFinalScripts(tt,et,nt,rt,it,ot){const at=classifyScript(nt);if(!canFinalize(et,nt,at))throw new Error(`Can not finalize input #${tt}`);return prepareFinalScripts(nt,at,et.partialSig,rt,it,ot)}function prepareFinalScripts(tt,et,nt,rt,it,ot){let at,st;const lt=getPayment(tt,et,nt),ct=ot?payments.p2wsh({redeem:lt}):null,ut=it?payments.p2sh({redeem:ct||lt}):null;return rt?(ct?st=(0,psbtutils_1.witnessStackToScriptWitness)(ct.witness):st=(0,psbtutils_1.witnessStackToScriptWitness)(lt.witness),ut&&(at=ut.input)):ut?at=ut.input:at=lt.input,{finalScriptSig:at,finalScriptWitness:st}}function getHashAndSighashType(tt,et,nt,rt,it){const ot=(0,utils_1.checkForInput)(tt,et),{hash:at,sighashType:st,script:lt}=getHashForSig(et,ot,rt,!1,it);return checkScriptForPubkey(nt,lt,"sign"),{hash:at,sighashType:st}}function getHashForSig(tt,et,nt,rt,it){const ot=nt.__TX,at=et.sighashType||transaction_1.Transaction.SIGHASH_ALL;checkSighashTypeAllowed(at,it);let st,lt;if(et.nonWitnessUtxo){const ht=nonWitnessUtxoTxFromCache(nt,et,tt),dt=ot.ins[tt].hash,pt=ht.getHash();if(!dt.equals(pt))throw new Error(`Non-witness UTXO hash for input #${tt} doesn't match the hash specified in the prevout`);const mt=ot.ins[tt].index;lt=ht.outs[mt]}else if(et.witnessUtxo)lt=et.witnessUtxo;else throw new Error("Need a Utxo input item for signing");const{meaningfulScript:ct,type:ut}=getMeaningfulScript(lt.script,tt,"input",et.redeemScript,et.witnessScript);if(["p2sh-p2wsh","p2wsh"].indexOf(ut)>=0)st=ot.hashForWitnessV0(tt,ct,lt.value,at);else if((0,psbtutils_1.isP2WPKH)(ct)){const ht=payments.p2pkh({hash:ct.slice(2)}).output;st=ot.hashForWitnessV0(tt,ht,lt.value,at)}else{if(et.nonWitnessUtxo===void 0&&nt.__UNSAFE_SIGN_NONSEGWIT===!1)throw new Error(`Input #${tt} has witnessUtxo but non-segwit script: ${ct.toString("hex")}`);!rt&&nt.__UNSAFE_SIGN_NONSEGWIT!==!1&&console.warn(`Warning: Signing non-segwit inputs without the full parent transaction means there is a chance that a miner could feed you incorrect information to trick you into paying large fees. This behavior is the same as Psbt's predecesor (TransactionBuilder - now removed) when signing non-segwit scripts. You are not able to export this Psbt with toBuffer|toBase64|toHex since it is not BIP174 compliant. ********************* PROCEED WITH CAUTION! -*********************`),st=ot.hashForSignature(tt,ct,at)}return{script:ct,sighashType:at,hash:st}}function getAllTaprootHashesForSig(tt,et,nt,rt){const it=[];if(et.tapInternalKey){const at=getPrevoutTaprootKey(tt,et,rt);at&&it.push(at)}if(et.tapScriptSig){const at=et.tapScriptSig.map(st=>st.pubkey);it.push(...at)}return it.map(at=>getTaprootHashesForSig(tt,et,nt,at,rt)).flat()}function getPrevoutTaprootKey(tt,et,nt){const{script:rt}=getScriptAndAmountFromUtxo(tt,et,nt);return(0,psbtutils_1.isP2TR)(rt)?rt.subarray(2,34):null}function trimTaprootSig(tt){return tt.length===64?tt:tt.subarray(0,64)}function getTaprootHashesForSig(tt,et,nt,rt,it,ot,at){const st=it.__TX,lt=et.sighashType||transaction_1.Transaction.SIGHASH_DEFAULT;checkSighashTypeAllowed(lt,at);const ct=nt.map((mt,gt)=>getScriptAndAmountFromUtxo(gt,mt,it)),ut=ct.map(mt=>mt.script),ht=ct.map(mt=>mt.value),dt=[];if(et.tapInternalKey&&!ot){const mt=getPrevoutTaprootKey(tt,et,it)||Buffer.from([]);if((0,bip371_1.toXOnly)(rt).equals(mt)){const gt=st.hashForWitnessV1(tt,ut,ht,lt);dt.push({pubkey:rt,hash:gt})}}const pt=(et.tapLeafScript||[]).filter(mt=>(0,psbtutils_1.pubkeyInScript)(rt,mt.script)).map(mt=>{const gt=(0,bip341_1.tapleafHash)({output:mt.script,version:mt.leafVersion});return Object.assign({hash:gt},mt)}).filter(mt=>!ot||ot.equals(mt.hash)).map(mt=>{const gt=st.hashForWitnessV1(tt,ut,ht,transaction_1.Transaction.SIGHASH_DEFAULT,mt.hash);return{pubkey:rt,hash:gt,leafHash:mt.hash}});return dt.concat(pt)}function checkSighashTypeAllowed(tt,et){if(et&&et.indexOf(tt)<0){const nt=sighashTypeToString(tt);throw new Error(`Sighash type is not allowed. Retry the sign method passing the sighashTypes array of whitelisted types. Sighash type: ${nt}`)}}function getPayment(tt,et,nt){let rt;switch(et){case"multisig":const it=getSortedSigs(tt,nt);rt=payments.p2ms({output:tt,signatures:it});break;case"pubkey":rt=payments.p2pk({output:tt,signature:nt[0].signature});break;case"pubkeyhash":rt=payments.p2pkh({output:tt,pubkey:nt[0].pubkey,signature:nt[0].signature});break;case"witnesspubkeyhash":rt=payments.p2wpkh({output:tt,pubkey:nt[0].pubkey,signature:nt[0].signature});break}return rt}function getScriptFromInput(tt,et,nt){const rt=nt.__TX,it={script:null,isSegwit:!1,isP2SH:!1,isP2WSH:!1};if(it.isP2SH=!!et.redeemScript,it.isP2WSH=!!et.witnessScript,et.witnessScript)it.script=et.witnessScript;else if(et.redeemScript)it.script=et.redeemScript;else if(et.nonWitnessUtxo){const ot=nonWitnessUtxoTxFromCache(nt,et,tt),at=rt.ins[tt].index;it.script=ot.outs[at].script}else et.witnessUtxo&&(it.script=et.witnessUtxo.script);return(et.witnessScript||(0,psbtutils_1.isP2WPKH)(it.script))&&(it.isSegwit=!0),it}function getSignersFromHD(tt,et,nt){const rt=(0,utils_1.checkForInput)(et,tt);if(!rt.bip32Derivation||rt.bip32Derivation.length===0)throw new Error("Need bip32Derivation to sign with HD");const it=rt.bip32Derivation.map(at=>{if(at.masterFingerprint.equals(nt.fingerprint))return at}).filter(at=>!!at);if(it.length===0)throw new Error("Need one bip32Derivation masterFingerprint to match the HDSigner fingerprint");return it.map(at=>{const st=nt.derivePath(at.path);if(!at.pubkey.equals(st.publicKey))throw new Error("pubkey did not match bip32Derivation");return st})}function getSortedSigs(tt,et){return payments.p2ms({output:tt}).pubkeys.map(rt=>(et.filter(it=>it.pubkey.equals(rt))[0]||{}).signature).filter(rt=>!!rt)}function scriptWitnessToWitnessStack(tt){let et=0;function nt(at){return et+=at,tt.slice(et-at,et)}function rt(){const at=varuint.decode(tt,et);return et+=varuint.decode.bytes,at}function it(){return nt(rt())}function ot(){const at=rt(),st=[];for(let lt=0;lt{if(rt&<.finalScriptSig&&(et.ins[ct].script=lt.finalScriptSig),rt&<.finalScriptWitness&&(et.ins[ct].witness=scriptWitnessToWitnessStack(lt.finalScriptWitness)),lt.witnessUtxo)it+=lt.witnessUtxo.value;else if(lt.nonWitnessUtxo){const ut=nonWitnessUtxoTxFromCache(nt,lt,ct),ht=et.ins[ct].index,dt=ut.outs[ht];it+=dt.value}});const ot=et.outs.reduce((lt,ct)=>lt+ct.value,0),at=it-ot;if(at<0)throw new Error("Outputs are spending more than Inputs");const st=et.virtualSize();nt.__FEE=at,nt.__EXTRACTED_TX=et,nt.__FEE_RATE=Math.floor(at/st)}function nonWitnessUtxoTxFromCache(tt,et,nt){const rt=tt.__NON_WITNESS_UTXO_TX_CACHE;return rt[nt]||addNonWitnessTxCache(tt,et,nt),rt[nt]}function getScriptFromUtxo(tt,et,nt){const{script:rt}=getScriptAndAmountFromUtxo(tt,et,nt);return rt}function getScriptAndAmountFromUtxo(tt,et,nt){if(et.witnessUtxo!==void 0)return{script:et.witnessUtxo.script,value:et.witnessUtxo.value};if(et.nonWitnessUtxo!==void 0){const it=nonWitnessUtxoTxFromCache(nt,et,tt).outs[nt.__TX.ins[tt].index];return{script:it.script,value:it.value}}else throw new Error("Can't find pubkey in input without Utxo data")}function pubkeyInInput(tt,et,nt,rt){const it=getScriptFromUtxo(nt,et,rt),{meaningfulScript:ot}=getMeaningfulScript(it,nt,"input",et.redeemScript,et.witnessScript);return(0,psbtutils_1.pubkeyInScript)(tt,ot)}function pubkeyInOutput(tt,et,nt,rt){const it=rt.__TX.outs[nt].script,{meaningfulScript:ot}=getMeaningfulScript(it,nt,"output",et.redeemScript,et.witnessScript);return(0,psbtutils_1.pubkeyInScript)(tt,ot)}function redeemFromFinalScriptSig(tt){if(!tt)return;const et=bscript.decompile(tt);if(!et)return;const nt=et[et.length-1];if(!(!Buffer.isBuffer(nt)||isPubkeyLike(nt)||isSigLike(nt)||!bscript.decompile(nt)))return nt}function redeemFromFinalWitnessScript(tt){if(!tt)return;const et=scriptWitnessToWitnessStack(tt),nt=et[et.length-1];if(!(isPubkeyLike(nt)||!bscript.decompile(nt)))return nt}function compressPubkey(tt){if(tt.length===65){const et=tt[64]&1,nt=tt.slice(0,33);return nt[0]=2|et,nt}return tt.slice()}function isPubkeyLike(tt){return tt.length===33&&bscript.isCanonicalPubKey(tt)}function isSigLike(tt){return bscript.isCanonicalScriptSignature(tt)}function getMeaningfulScript(tt,et,nt,rt,it){const ot=(0,psbtutils_1.isP2SHScript)(tt),at=ot&&rt&&(0,psbtutils_1.isP2WSHScript)(rt),st=(0,psbtutils_1.isP2WSHScript)(tt);if(ot&&rt===void 0)throw new Error("scriptPubkey is P2SH but redeemScript missing");if((st||at)&&it===void 0)throw new Error("scriptPubkey or redeemScript is P2WSH but witnessScript missing");let lt;return at?(lt=it,checkRedeemScript(et,tt,rt,nt),checkWitnessScript(et,rt,it,nt),checkInvalidP2WSH(lt)):st?(lt=it,checkWitnessScript(et,tt,it,nt),checkInvalidP2WSH(lt)):ot?(lt=rt,checkRedeemScript(et,tt,rt,nt)):lt=tt,{meaningfulScript:lt,type:at?"p2sh-p2wsh":ot?"p2sh":st?"p2wsh":"raw"}}function checkInvalidP2WSH(tt){if((0,psbtutils_1.isP2WPKH)(tt)||(0,psbtutils_1.isP2SHScript)(tt))throw new Error("P2WPKH or P2SH can not be contained within P2WSH")}function classifyScript(tt){return(0,psbtutils_1.isP2WPKH)(tt)?"witnesspubkeyhash":(0,psbtutils_1.isP2PKH)(tt)?"pubkeyhash":(0,psbtutils_1.isP2MS)(tt)?"multisig":(0,psbtutils_1.isP2PK)(tt)?"pubkey":"nonstandard"}function range$4(tt){return[...Array(tt).keys()]}(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.initEccLib=tt.Transaction=tt.opcodes=tt.Psbt=tt.Block=tt.script=tt.payments=tt.networks=tt.crypto=tt.address=void 0;const et=address;tt.address=et;const nt=crypto$2;tt.crypto=nt;const rt=networks$1;tt.networks=rt;const it=payments$3;tt.payments=it;const ot=script;tt.script=ot;var at=block;Object.defineProperty(tt,"Block",{enumerable:!0,get:function(){return at.Block}});var st=psbt$1;Object.defineProperty(tt,"Psbt",{enumerable:!0,get:function(){return st.Psbt}});var lt=ops;Object.defineProperty(tt,"opcodes",{enumerable:!0,get:function(){return lt.OPS}});var ct=transaction;Object.defineProperty(tt,"Transaction",{enumerable:!0,get:function(){return ct.Transaction}});var ut=ecc_lib;Object.defineProperty(tt,"initEccLib",{enumerable:!0,get:function(){return ut.initEccLib}})})(src$1);function listCacheClear$1(){this.__data__=[],this.size=0}var _listCacheClear=listCacheClear$1;function eq$4(tt,et){return tt===et||tt!==tt&&et!==et}var eq_1=eq$4,eq$3=eq_1;function assocIndexOf$4(tt,et){for(var nt=tt.length;nt--;)if(eq$3(tt[nt][0],et))return nt;return-1}var _assocIndexOf=assocIndexOf$4,assocIndexOf$3=_assocIndexOf,arrayProto=Array.prototype,splice=arrayProto.splice;function listCacheDelete$1(tt){var et=this.__data__,nt=assocIndexOf$3(et,tt);if(nt<0)return!1;var rt=et.length-1;return nt==rt?et.pop():splice.call(et,nt,1),--this.size,!0}var _listCacheDelete=listCacheDelete$1,assocIndexOf$2=_assocIndexOf;function listCacheGet$1(tt){var et=this.__data__,nt=assocIndexOf$2(et,tt);return nt<0?void 0:et[nt][1]}var _listCacheGet=listCacheGet$1,assocIndexOf$1=_assocIndexOf;function listCacheHas$1(tt){return assocIndexOf$1(this.__data__,tt)>-1}var _listCacheHas=listCacheHas$1,assocIndexOf=_assocIndexOf;function listCacheSet$1(tt,et){var nt=this.__data__,rt=assocIndexOf(nt,tt);return rt<0?(++this.size,nt.push([tt,et])):nt[rt][1]=et,this}var _listCacheSet=listCacheSet$1,listCacheClear=_listCacheClear,listCacheDelete=_listCacheDelete,listCacheGet=_listCacheGet,listCacheHas=_listCacheHas,listCacheSet=_listCacheSet;function ListCache$4(tt){var et=-1,nt=tt==null?0:tt.length;for(this.clear();++et-1&&tt%1==0&&tt-1&&tt%1==0&&tt<=MAX_SAFE_INTEGER$1}var isLength_1=isLength$3,baseGetTag$5=_baseGetTag,isLength$2=isLength_1,isObjectLike$7=isObjectLike_1,argsTag$2="[object Arguments]",arrayTag$2="[object Array]",boolTag$4="[object Boolean]",dateTag$3="[object Date]",errorTag$2="[object Error]",funcTag$1="[object Function]",mapTag$5="[object Map]",numberTag$4="[object Number]",objectTag$3="[object Object]",regexpTag$3="[object RegExp]",setTag$5="[object Set]",stringTag$4="[object String]",weakMapTag$2="[object WeakMap]",arrayBufferTag$3="[object ArrayBuffer]",dataViewTag$4="[object DataView]",float32Tag$2="[object Float32Array]",float64Tag$2="[object Float64Array]",int8Tag$2="[object Int8Array]",int16Tag$2="[object Int16Array]",int32Tag$2="[object Int32Array]",uint8Tag$2="[object Uint8Array]",uint8ClampedTag$2="[object Uint8ClampedArray]",uint16Tag$2="[object Uint16Array]",uint32Tag$2="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag$2]=typedArrayTags[float64Tag$2]=typedArrayTags[int8Tag$2]=typedArrayTags[int16Tag$2]=typedArrayTags[int32Tag$2]=typedArrayTags[uint8Tag$2]=typedArrayTags[uint8ClampedTag$2]=typedArrayTags[uint16Tag$2]=typedArrayTags[uint32Tag$2]=!0;typedArrayTags[argsTag$2]=typedArrayTags[arrayTag$2]=typedArrayTags[arrayBufferTag$3]=typedArrayTags[boolTag$4]=typedArrayTags[dataViewTag$4]=typedArrayTags[dateTag$3]=typedArrayTags[errorTag$2]=typedArrayTags[funcTag$1]=typedArrayTags[mapTag$5]=typedArrayTags[numberTag$4]=typedArrayTags[objectTag$3]=typedArrayTags[regexpTag$3]=typedArrayTags[setTag$5]=typedArrayTags[stringTag$4]=typedArrayTags[weakMapTag$2]=!1;function baseIsTypedArray$1(tt){return isObjectLike$7(tt)&&isLength$2(tt.length)&&!!typedArrayTags[baseGetTag$5(tt)]}var _baseIsTypedArray=baseIsTypedArray$1;function baseUnary$4(tt){return function(et){return tt(et)}}var _baseUnary=baseUnary$4,_nodeUtil={exports:{}};_nodeUtil.exports;(function(tt,et){var nt=_freeGlobal,rt=et&&!et.nodeType&&et,it=rt&&!0&&tt&&!tt.nodeType&&tt,ot=it&&it.exports===rt,at=ot&&nt.process,st=function(){try{var lt=it&&it.require&&it.require("util").types;return lt||at&&at.binding&&at.binding("util")}catch{}}();tt.exports=st})(_nodeUtil,_nodeUtil.exports);var _nodeUtilExports=_nodeUtil.exports,baseIsTypedArray=_baseIsTypedArray,baseUnary$3=_baseUnary,nodeUtil$2=_nodeUtilExports,nodeIsTypedArray=nodeUtil$2&&nodeUtil$2.isTypedArray,isTypedArray$4=nodeIsTypedArray?baseUnary$3(nodeIsTypedArray):baseIsTypedArray,isTypedArray_1=isTypedArray$4,baseTimes=_baseTimes,isArguments$2=isArguments_1,isArray$h=isArray_1,isBuffer$2=isBufferExports,isIndex$2=_isIndex,isTypedArray$3=isTypedArray_1,objectProto$7=Object.prototype,hasOwnProperty$6=objectProto$7.hasOwnProperty;function arrayLikeKeys$2(tt,et){var nt=isArray$h(tt),rt=!nt&&isArguments$2(tt),it=!nt&&!rt&&isBuffer$2(tt),ot=!nt&&!rt&&!it&&isTypedArray$3(tt),at=nt||rt||it||ot,st=at?baseTimes(tt.length,String):[],lt=st.length;for(var ct in tt)(et||hasOwnProperty$6.call(tt,ct))&&!(at&&(ct=="length"||it&&(ct=="offset"||ct=="parent")||ot&&(ct=="buffer"||ct=="byteLength"||ct=="byteOffset")||isIndex$2(ct,lt)))&&st.push(ct);return st}var _arrayLikeKeys=arrayLikeKeys$2,objectProto$6=Object.prototype;function isPrototype$3(tt){var et=tt&&tt.constructor,nt=typeof et=="function"&&et.prototype||objectProto$6;return tt===nt}var _isPrototype=isPrototype$3;function overArg$2(tt,et){return function(nt){return tt(et(nt))}}var _overArg=overArg$2,overArg$1=_overArg,nativeKeys$1=overArg$1(Object.keys,Object),_nativeKeys=nativeKeys$1,isPrototype$2=_isPrototype,nativeKeys=_nativeKeys,objectProto$5=Object.prototype,hasOwnProperty$5=objectProto$5.hasOwnProperty;function baseKeys$1(tt){if(!isPrototype$2(tt))return nativeKeys(tt);var et=[];for(var nt in Object(tt))hasOwnProperty$5.call(tt,nt)&&nt!="constructor"&&et.push(nt);return et}var _baseKeys=baseKeys$1,isFunction$3=isFunction_1,isLength$1=isLength_1;function isArrayLike$6(tt){return tt!=null&&isLength$1(tt.length)&&!isFunction$3(tt)}var isArrayLike_1=isArrayLike$6,arrayLikeKeys$1=_arrayLikeKeys,baseKeys=_baseKeys,isArrayLike$5=isArrayLike_1;function keys$9(tt){return isArrayLike$5(tt)?arrayLikeKeys$1(tt):baseKeys(tt)}var keys_1=keys$9,copyObject$3=_copyObject,keys$8=keys_1;function baseAssign$1(tt,et){return tt&©Object$3(et,keys$8(et),tt)}var _baseAssign=baseAssign$1;function nativeKeysIn$1(tt){var et=[];if(tt!=null)for(var nt in Object(tt))et.push(nt);return et}var _nativeKeysIn=nativeKeysIn$1,isObject$a=isObject_1,isPrototype$1=_isPrototype,nativeKeysIn=_nativeKeysIn,objectProto$4=Object.prototype,hasOwnProperty$4=objectProto$4.hasOwnProperty;function baseKeysIn$1(tt){if(!isObject$a(tt))return nativeKeysIn(tt);var et=isPrototype$1(tt),nt=[];for(var rt in tt)rt=="constructor"&&(et||!hasOwnProperty$4.call(tt,rt))||nt.push(rt);return nt}var _baseKeysIn=baseKeysIn$1,arrayLikeKeys=_arrayLikeKeys,baseKeysIn=_baseKeysIn,isArrayLike$4=isArrayLike_1;function keysIn$3(tt){return isArrayLike$4(tt)?arrayLikeKeys(tt,!0):baseKeysIn(tt)}var keysIn_1=keysIn$3,copyObject$2=_copyObject,keysIn$2=keysIn_1;function baseAssignIn$1(tt,et){return tt&©Object$2(et,keysIn$2(et),tt)}var _baseAssignIn=baseAssignIn$1,_cloneBuffer={exports:{}};_cloneBuffer.exports;(function(tt,et){var nt=_root,rt=et&&!et.nodeType&&et,it=rt&&!0&&tt&&!tt.nodeType&&tt,ot=it&&it.exports===rt,at=ot?nt.Buffer:void 0,st=at?at.allocUnsafe:void 0;function lt(ct,ut){if(ut)return ct.slice();var ht=ct.length,dt=st?st(ht):new ct.constructor(ht);return ct.copy(dt),dt}tt.exports=lt})(_cloneBuffer,_cloneBuffer.exports);var _cloneBufferExports=_cloneBuffer.exports;function copyArray$2(tt,et){var nt=-1,rt=tt.length;for(et||(et=Array(rt));++ntwordsToBuffer(tt,!0).toString("hex"),16:tt=>wordsToBuffer(tt,!0).toString("hex"),13:tt=>wordsToBuffer(tt,!0).toString("utf8"),19:tt=>wordsToBuffer(tt,!0).toString("hex"),23:tt=>wordsToBuffer(tt,!0).toString("hex"),6:wordsToIntBE,24:wordsToIntBE,9:fallbackAddressParser,3:routingInfoParser,5:featureBitsParser},unknownTagName="unknownTag";function unknownEncoder(tt){return tt.words=bech32.decode(tt.words,Number.MAX_SAFE_INTEGER).words,tt}function getUnknownParser(tt){return et=>({tagCode:parseInt(tt),words:bech32.encode("unknown",et,Number.MAX_SAFE_INTEGER)})}function wordsToIntBE(tt){return tt.reverse().reduce((et,nt,rt)=>et+nt*Math.pow(32,rt),0)}function intBEToWords(tt,et){const nt=[];if(et===void 0&&(et=5),tt=Math.floor(tt),tt===0)return[0];for(;tt>0;)nt.push(tt&Math.pow(2,et)-1),tt=Math.floor(tt/Math.pow(2,et));return nt.reverse()}function sha256(tt){return createHash("sha256").update(tt).digest()}function convert$1(tt,et,nt){let rt=0,it=0;const ot=(1<=nt;)it-=nt,at.push(rt>>it&ot);return it>0&&at.push(rt<0;)nt=st.slice(0,33).toString("hex"),rt=st.slice(33,41).toString("hex"),it=parseInt(st.slice(41,45).toString("hex"),16),ot=parseInt(st.slice(45,49).toString("hex"),16),at=parseInt(st.slice(49,51).toString("hex"),16),st=st.slice(51),et.push({pubkey:nt,short_channel_id:rt,fee_base_msat:it,fee_proportional_millionths:ot,cltv_expiry_delta:at});return et}function featureBitsParser(tt){const et=tt.slice().reverse().map(rt=>[!!(rt&1),!!(rt&2),!!(rt&4),!!(rt&8),!!(rt&16)]).reduce((rt,it)=>rt.concat(it),[]);for(;et.length{nt[rt]={required:et[it*2],supported:et[it*2+1]}}),et.length>FEATUREBIT_ORDER.length*2){const rt=et.slice(FEATUREBIT_ORDER.length*2);nt.extra_bits={start_bit:FEATUREBIT_ORDER.length*2,bits:rt,has_required:rt.reduce((it,ot,at)=>at%2!==0?it||!1:it||ot,!1)}}else nt.extra_bits={start_bit:FEATUREBIT_ORDER.length*2,bits:[],has_required:!1};return nt}function featureBitsEncoder(tt){let et=tt.word_length,nt=[];for(FEATUREBIT_ORDER.forEach(rt=>{nt.push(!!(tt[rt]||{}).required),nt.push(!!(tt[rt]||{}).supported)});nt[nt.length-1]===!1;)nt.pop();for(;nt.length%5!==0;)nt.push(!1);if(tt.extra_bits&&Array.isArray(tt.extra_bits.bits)&&tt.extra_bits.bits.length>0){for(;nt.lengthet)throw new Error("word_length is too small to contain all featureBits");return et===void 0&&(et=Math.ceil(nt.length/5)),new Array(et).fill(0).map((rt,it)=>nt[it*5+4]<<4|nt[it*5+3]<<3|nt[it*5+2]<<2|nt[it*5+1]<<1|nt[it*5]<<0).reverse()}function routingInfoEncoder(tt){let et=Buffer$1.from([]);return tt.forEach(nt=>{et=Buffer$1.concat([et,hexToBuffer(nt.pubkey)]),et=Buffer$1.concat([et,hexToBuffer(nt.short_channel_id)]),et=Buffer$1.concat([et,Buffer$1.from([0,0,0].concat(intBEToWords(nt.fee_base_msat,8)).slice(-4))]),et=Buffer$1.concat([et,Buffer$1.from([0,0,0].concat(intBEToWords(nt.fee_proportional_millionths,8)).slice(-4))]),et=Buffer$1.concat([et,Buffer$1.from([0].concat(intBEToWords(nt.cltv_expiry_delta,8)).slice(-2))])}),hexToWord(et)}function purposeCommitEncoder(tt){let et;if(tt!==void 0&&(typeof tt=="string"||tt instanceof String))tt.match(/^([a-zA-Z0-9]{2})*$/)?et=Buffer$1.from(tt,"hex"):et=sha256(Buffer$1.from(tt,"utf8"));else throw new Error("purpose or purpose commit must be a string or hex string");return bech32.toWords(et)}function tagsItems(tt,et){const nt=tt.filter(it=>it.tagName===et);return nt.length>0?nt[0].data:null}function tagsContainItem(tt,et){return tagsItems(tt,et)!==null}function orderKeys(tt,et){const nt={};if(Object.keys(tt).sort().forEach(rt=>{nt[rt]=tt[rt]}),et===!0){const rt="__tagsObject_cache";Object.defineProperty(nt,"tagsObject",{get(){return this[rt]||Object.defineProperty(this,rt,{value:getTagsObject(this.tags)}),this[rt]}})}return nt}function satToHrp(tt){if(!tt.toString().match(/^\d+$/))throw new Error("satoshis must be an integer");const et=new BN(tt,10);return millisatToHrp(et.mul(new BN(1e3,10)))}function millisatToHrp(tt){if(!tt.toString().match(/^\d+$/))throw new Error("millisatoshis must be an integer");const et=new BN(tt,10),nt=et.toString(10),rt=nt.length;let it,ot;return rt>11&&/0{11}$/.test(nt)?(it="",ot=et.div(MILLISATS_PER_BTC).toString(10)):rt>8&&/0{8}$/.test(nt)?(it="m",ot=et.div(MILLISATS_PER_MILLIBTC).toString(10)):rt>5&&/0{5}$/.test(nt)?(it="u",ot=et.div(MILLISATS_PER_MICROBTC).toString(10)):rt>2&&/0{2}$/.test(nt)?(it="n",ot=et.div(MILLISATS_PER_NANOBTC).toString(10)):(it="p",ot=et.mul(PICOBTC_PER_MILLISATS).toString(10)),ot+it}function hrpToSat(tt,et){const nt=hrpToMillisat(tt,!1);if(!nt.mod(new BN(1e3,10)).eq(new BN(0,10)))throw new Error("Amount is outside of valid range");const rt=nt.div(new BN(1e3,10));return et?rt.toString():rt}function hrpToMillisat(tt,et){let nt,rt;if(tt.slice(-1).match(/^[munp]$/))nt=tt.slice(-1),rt=tt.slice(0,-1);else{if(tt.slice(-1).match(/^[^munp0-9]$/))throw new Error("Not a valid multiplier for the amount");rt=tt}if(!rt.match(/^\d+$/))throw new Error("Not a valid human readable amount");const it=new BN(rt,10),ot=nt?it.mul(MILLISATS_PER_BTC).div(DIVISORS[nt]):it.mul(MILLISATS_PER_BTC);if(nt==="p"&&!it.mod(new BN(10,10)).eq(new BN(0,10))||ot.gt(MAX_MILLISATS))throw new Error("Amount is outside of valid range");return et?ot.toString():ot}function sign$3(tt,et){const nt=cloneDeep(tt),rt=hexToBuffer(et);if(nt.complete&&nt.paymentRequest)return nt;if(rt===void 0||rt.length!==32||!secp256k1.privateKeyVerify(rt))throw new Error("privateKey must be a 32 byte Buffer and valid private key");let it,ot;if(tagsContainItem(nt.tags,TAGNAMES[19])&&(ot=hexToBuffer(tagsItems(nt.tags,TAGNAMES[19]))),nt.payeeNodeKey&&(it=hexToBuffer(nt.payeeNodeKey)),it&&ot&&!ot.equals(it))throw new Error("payee node key tag and payeeNodeKey attribute must match");it=ot||it;const at=Buffer$1.from(secp256k1.publicKeyCreate(rt));if(it&&!at.equals(it))throw new Error("The private key given is not the private key of the node public key given");const st=bech32.decode(nt.wordsTemp,Number.MAX_SAFE_INTEGER).words,lt=Buffer$1.concat([Buffer$1.from(nt.prefix,"utf8"),wordsToBuffer(st)]),ct=sha256(lt),ut=secp256k1.ecdsaSign(ct,rt);ut.signature=Buffer$1.from(ut.signature);const ht=hexToWord(ut.signature.toString("hex")+"0"+ut.recid);return nt.payeeNodeKey=at.toString("hex"),nt.signature=ut.signature.toString("hex"),nt.recoveryFlag=ut.recid,nt.wordsTemp=bech32.encode("temp",st.concat(ht),Number.MAX_SAFE_INTEGER),nt.complete=!0,nt.paymentRequest=bech32.encode(nt.prefix,st.concat(ht),Number.MAX_SAFE_INTEGER),orderKeys(nt)}function encode$3(tt,et){const nt=cloneDeep(tt);et===void 0&&(et=!0);const rt=!(nt.signature===void 0||nt.recoveryFlag===void 0);let it;if(nt.network===void 0&&!rt)nt.network=DEFAULTNETWORK,it=DEFAULTNETWORK;else{if(nt.network===void 0&&rt)throw new Error("Need network for proper payment request reconstruction");if(!nt.network.bech32||nt.network.pubKeyHash===void 0||nt.network.scriptHash===void 0||!Array.isArray(nt.network.validWitnessVersions))throw new Error("Invalid network");it=nt.network}if(nt.timestamp===void 0&&!rt)nt.timestamp=Math.floor(new Date().getTime()/1e3);else if(nt.timestamp===void 0&&rt)throw new Error("Need timestamp for proper payment request reconstruction");if(nt.tags===void 0)throw new Error("Payment Requests need tags array");if(!tagsContainItem(nt.tags,TAGNAMES[1]))throw new Error("Lightning Payment Request needs a payment hash");if(tagsContainItem(nt.tags,TAGNAMES[16]))if(tagsContainItem(nt.tags,TAGNAMES[5])){const vt=tagsItems(nt.tags,TAGNAMES[5]);if(!vt.payment_secret||!vt.payment_secret.supported&&!vt.payment_secret.required)throw new Error("Payment request requires feature bits with at least payment secret support flagged if payment secret is included")}else if(et)nt.tags.push({tagName:TAGNAMES[5],data:DEFAULTFEATUREBITS});else throw new Error("Payment request requires feature bits with at least payment secret support flagged if payment secret is included");if(!tagsContainItem(nt.tags,TAGNAMES[13])&&!tagsContainItem(nt.tags,TAGNAMES[23]))if(et)nt.tags.push({tagName:TAGNAMES[13],data:DEFAULTDESCRIPTION});else throw new Error("Payment request requires description or purpose commit hash");if(tagsContainItem(nt.tags,TAGNAMES[13])&&Buffer$1.from(tagsItems(nt.tags,TAGNAMES[13]),"utf8").length>639)throw new Error("Description is too long: Max length 639 bytes");!tagsContainItem(nt.tags,TAGNAMES[6])&&!rt&&et&&nt.tags.push({tagName:TAGNAMES[6],data:DEFAULTEXPIRETIME}),!tagsContainItem(nt.tags,TAGNAMES[24])&&!rt&&et&&nt.tags.push({tagName:TAGNAMES[24],data:DEFAULTCLTVEXPIRY});let ot,at;if(tagsContainItem(nt.tags,TAGNAMES[19])&&(at=hexToBuffer(tagsItems(nt.tags,TAGNAMES[19]))),nt.payeeNodeKey&&(ot=hexToBuffer(nt.payeeNodeKey)),ot&&at&&!at.equals(ot))throw new Error("payeeNodeKey and tag payee node key do not match");ot=ot||at,ot&&(nt.payeeNodeKey=ot.toString("hex"));let st,lt,ct;if(tagsContainItem(nt.tags,TAGNAMES[9])){const vt=tagsItems(nt.tags,TAGNAMES[9]);if(ct=vt.address,lt=vt.addressHash,st=vt.code,lt===void 0||st===void 0){let kt,St;try{kt=bitcoinjsAddress.fromBech32(ct),lt=kt.data,st=kt.version}catch{try{St=bitcoinjsAddress.fromBase58Check(ct),St.version===it.pubKeyHash?st=17:St.version===it.scriptHash&&(st=18),lt=St.hash}catch{throw new Error("Fallback address type is unknown")}}if(kt&&!(kt.version in it.validWitnessVersions))throw new Error("Fallback address witness version is unknown");if(kt&&kt.prefix!==it.bech32)throw new Error("Fallback address network type does not match payment request network type");if(St&&St.version!==it.pubKeyHash&&St.version!==it.scriptHash)throw new Error("Fallback address version (base58) is unknown or the network type is incorrect");vt.addressHash=lt.toString("hex"),vt.code=st}}tagsContainItem(nt.tags,TAGNAMES[3])&&tagsItems(nt.tags,TAGNAMES[3]).forEach(kt=>{if(kt.pubkey===void 0||kt.short_channel_id===void 0||kt.fee_base_msat===void 0||kt.fee_proportional_millionths===void 0||kt.cltv_expiry_delta===void 0)throw new Error("Routing info is incomplete");if(!secp256k1.publicKeyVerify(hexToBuffer(kt.pubkey)))throw new Error("Routing info pubkey is not a valid pubkey");const St=hexToBuffer(kt.short_channel_id);if(!(St instanceof Buffer$1)||St.length!==8)throw new Error("Routing info short channel id must be 8 bytes");if(typeof kt.fee_base_msat!="number"||Math.floor(kt.fee_base_msat)!==kt.fee_base_msat)throw new Error("Routing info fee base msat is not an integer");if(typeof kt.fee_proportional_millionths!="number"||Math.floor(kt.fee_proportional_millionths)!==kt.fee_proportional_millionths)throw new Error("Routing info fee proportional millionths is not an integer");if(typeof kt.cltv_expiry_delta!="number"||Math.floor(kt.cltv_expiry_delta)!==kt.cltv_expiry_delta)throw new Error("Routing info cltv expiry delta is not an integer")});let ut="ln";ut+=it.bech32;let ht;if(nt.millisatoshis&&nt.satoshis){if(ht=millisatToHrp(new BN(nt.millisatoshis,10)),satToHrp(new BN(nt.satoshis,10))!==ht)throw new Error("satoshis and millisatoshis do not match")}else nt.millisatoshis?ht=millisatToHrp(new BN(nt.millisatoshis,10)):nt.satoshis?ht=satToHrp(new BN(nt.satoshis,10)):ht="";ut+=ht;const dt=intBEToWords(nt.timestamp);for(;dt.length<7;)dt.unshift(0);const pt=nt.tags;let mt=[];pt.forEach(vt=>{const kt=Object.keys(TAGENCODERS);if(rt&&kt.push(unknownTagName),kt.indexOf(vt.tagName)===-1)throw new Error("Unknown tag key: "+vt.tagName);let St;if(vt.tagName!==unknownTagName){mt.push(TAGCODES[vt.tagName]);const Tt=TAGENCODERS[vt.tagName];St=Tt(vt.data)}else{const Tt=unknownEncoder(vt.data);mt.push(Tt.tagCode),St=Tt.words}mt=mt.concat([0].concat(intBEToWords(St.length)).slice(-2)),mt=mt.concat(St)});let gt=dt.concat(mt);const yt=Buffer$1.concat([Buffer$1.from(ut,"utf8"),Buffer$1.from(convert$1(gt,5,8))]),bt=sha256(yt);let wt;if(rt)if(ot){const vt=Buffer$1.from(secp256k1.ecdsaRecover(Buffer$1.from(nt.signature,"hex"),nt.recoveryFlag,bt,!0));if(ot&&!ot.equals(vt))throw new Error("Signature, message, and recoveryID did not produce the same pubkey as payeeNodeKey");wt=hexToWord(nt.signature+"0"+nt.recoveryFlag)}else throw new Error("Reconstruction with signature and recoveryID requires payeeNodeKey to verify correctness of input data.");return wt&&(gt=gt.concat(wt)),tagsContainItem(nt.tags,TAGNAMES[6])&&(nt.timeExpireDate=nt.timestamp+tagsItems(nt.tags,TAGNAMES[6]),nt.timeExpireDateString=new Date(nt.timeExpireDate*1e3).toISOString()),nt.timestampString=new Date(nt.timestamp*1e3).toISOString(),nt.complete=!!wt,nt.paymentRequest=nt.complete?bech32.encode(ut,gt,Number.MAX_SAFE_INTEGER):"",nt.prefix=ut,nt.wordsTemp=bech32.encode("temp",gt,Number.MAX_SAFE_INTEGER),orderKeys(nt)}function decode$3(tt,et){if(typeof tt!="string")throw new Error("Lightning Payment Request must be string");if(tt.slice(0,2).toLowerCase()!=="ln")throw new Error("Not a proper lightning payment request");const nt=bech32.decode(tt,Number.MAX_SAFE_INTEGER);tt=tt.toLowerCase();const rt=nt.prefix;let it=nt.words;const ot=it.slice(-104),at=it.slice(0,-104);it=it.slice(0,-104);let st=wordsToBuffer(ot,!0);const lt=st.slice(-1)[0];if(st=st.slice(0,-1),!(lt in[0,1,2,3])||st.length!==64)throw new Error("Signature is missing or incorrect");let ct=rt.match(/^ln(\S+?)(\d*)([a-zA-Z]?)$/);if(ct&&!ct[2]&&(ct=rt.match(/^ln(\S+)$/)),!ct)throw new Error("Not a proper lightning payment request");const ut=ct[1];let ht;if(et){if(et.bech32===void 0||et.pubKeyHash===void 0||et.scriptHash===void 0||!Array.isArray(et.validWitnessVersions))throw new Error("Invalid network");ht=et}else switch(ut){case DEFAULTNETWORK.bech32:ht=DEFAULTNETWORK;break;case TESTNETWORK.bech32:ht=TESTNETWORK;break;case REGTESTNETWORK.bech32:ht=REGTESTNETWORK;break;case SIMNETWORK.bech32:ht=SIMNETWORK;break}if(!ht||ht.bech32!==ut)throw new Error("Unknown coin bech32 prefix");const dt=ct[2];let pt,mt,gt;if(dt){const $t=ct[3];try{pt=parseInt(hrpToSat(dt+$t,!0))}catch{pt=null,gt=!0}mt=hrpToMillisat(dt+$t,!0)}else pt=null,mt=null;const yt=wordsToIntBE(it.slice(0,7)),bt=new Date(yt*1e3).toISOString();it=it.slice(7);const wt=[];let vt,kt,St,Tt;for(;it.length>0;){const $t=it[0].toString();vt=TAGNAMES[$t]||unknownTagName,kt=TAGPARSERS[$t]||getUnknownParser($t),it=it.slice(1),St=wordsToIntBE(it.slice(0,2)),it=it.slice(2),Tt=it.slice(0,St),it=it.slice(St),wt.push({tagName:vt,data:kt(Tt,ht)})}let At,Et;tagsContainItem(wt,TAGNAMES[6])&&(At=yt+tagsItems(wt,TAGNAMES[6]),Et=new Date(At*1e3).toISOString());const Mt=Buffer$1.concat([Buffer$1.from(rt,"utf8"),Buffer$1.from(convert$1(at,5,8))]),Lt=sha256(Mt),jt=Buffer$1.from(secp256k1.ecdsaRecover(st,lt,Lt,!0));if(tagsContainItem(wt,TAGNAMES[19])&&tagsItems(wt,TAGNAMES[19])!==jt.toString("hex"))throw new Error("Lightning Payment Request signature pubkey does not match payee pubkey");let Rt={paymentRequest:tt,complete:!0,prefix:rt,wordsTemp:bech32.encode("temp",at.concat(ot),Number.MAX_SAFE_INTEGER),network:ht,satoshis:pt,millisatoshis:mt,timestamp:yt,timestampString:bt,payeeNodeKey:jt.toString("hex"),signature:st.toString("hex"),recoveryFlag:lt,tags:wt};return gt&&delete Rt.satoshis,At&&(Rt=Object.assign(Rt,{timeExpireDate:At,timeExpireDateString:Et})),orderKeys(Rt,!0)}function getTagsObject(tt){const et={};return tt.forEach(nt=>{nt.tagName===unknownTagName?(et.unknownTags||(et.unknownTags=[]),et.unknownTags.push(nt.data)):et[nt.tagName]=nt.data}),et}var payreq={encode:encode$3,decode:decode$3,sign:sign$3,satToHrp,millisatToHrp,hrpToSat,hrpToMillisat};(function(tt){var et=commonjsGlobal&&commonjsGlobal.__importDefault||function(ut){return ut&&ut.__esModule?ut:{default:ut}};Object.defineProperty(tt,"__esModule",{value:!0}),tt.getIdFromRequest=tt.decode=tt.isHex=tt.stringToBytes=tt.isValue=tt.utf8Encoder=void 0;const nt=et(payreq),rt=et(assert_1);let it;typeof window<"u"&&window&&window.TextEncoder?it=window.TextEncoder:it=util$1.TextEncoder,tt.utf8Encoder=new it;const ot=ut=>ut!=null;tt.isValue=ot;const at=ut=>(0,tt.isValue)(ut)?tt.utf8Encoder.encode(ut):ut;tt.stringToBytes=at;function st(ut){return Buffer.from(ut,"hex").toString("hex")===ut}tt.isHex=st;function lt(ut){let ht;return ut.indexOf("lnsb")===0&&(ht={bech32:"sb"}),nt.default.decode(ut,ht)}tt.decode=lt;function ct(ut){const dt=lt(ut).tags.find(mt=>mt.tagName==="payment_hash");(0,rt.default)(dt&&dt.data,"Could not find payment hash on invoice request");const pt=dt==null?void 0:dt.data.toString();if(!pt||!pt.length)throw new Error("Could not get payment hash from payment request");return pt}tt.getIdFromRequest=ct})(helpers);var hasRequiredLsat;function requireLsat(){if(hasRequiredLsat)return lsat$1;hasRequiredLsat=1;var tt=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(dt,pt,mt,gt){gt===void 0&&(gt=mt);var yt=Object.getOwnPropertyDescriptor(pt,mt);(!yt||("get"in yt?!pt.__esModule:yt.writable||yt.configurable))&&(yt={enumerable:!0,get:function(){return pt[mt]}}),Object.defineProperty(dt,gt,yt)}:function(dt,pt,mt,gt){gt===void 0&&(gt=mt),dt[gt]=pt[mt]}),et=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(dt,pt){Object.defineProperty(dt,"default",{enumerable:!0,value:pt})}:function(dt,pt){dt.default=pt}),nt=commonjsGlobal&&commonjsGlobal.__importStar||function(dt){if(dt&&dt.__esModule)return dt;var pt={};if(dt!=null)for(var mt in dt)mt!=="default"&&Object.prototype.hasOwnProperty.call(dt,mt)&&tt(pt,dt,mt);return et(pt,dt),pt},rt=commonjsGlobal&&commonjsGlobal.__importDefault||function(dt){return dt&&dt.__esModule?dt:{default:dt}};Object.defineProperty(lsat$1,"__esModule",{value:!0}),lsat$1.Lsat=lsat$1.parseChallengePart=void 0;const it=assert_1,ot=bufio,at=rt(requireCryptoBrowserify()),st=nt(macaroon$1),lt=requireDist(),ct=helpers;function ut(dt){let pt;const mt=dt.indexOf("=");it(mt>-1,'Incorrectly encoded challenge. Missing "=" separator.');const gt=dt.length-1-mt;return pt=dt.slice(-gt),it(pt.length,"Incorrectly encoded macaroon challenge"),it(pt[0]==='"'&&pt[pt.length-1]==='"',"Incorectly encoded challenge, challenges must be enclosed in double quotes."),pt=pt.slice(1,pt.length-1),pt}lsat$1.parseChallengePart=ut;class ht extends ot.Struct{constructor(pt){super(pt),this.id="",this.validUntil=0,this.invoice="",this.baseMacaroon="",this.paymentHash=Buffer.alloc(32).toString("hex"),this.timeCreated=Date.now(),this.paymentPreimage=null,this.amountPaid=0,this.routingFeePaid=0,this.invoiceAmount=0,pt&&this.fromOptions(pt)}fromOptions(pt){it(typeof pt.baseMacaroon=="string","Require serialized macaroon"),this.baseMacaroon=pt.baseMacaroon,it(typeof pt.id=="string","Require string id"),this.id=pt.id,it(typeof pt.paymentHash=="string","Require paymentHash"),this.paymentHash=pt.paymentHash;const mt=this.getExpirationFromMacaroon(pt.baseMacaroon);return mt&&(this.validUntil=mt),pt.invoice&&this.addInvoice(pt.invoice),pt.timeCreated&&(this.timeCreated=pt.timeCreated),pt.paymentPreimage&&(this.paymentPreimage=pt.paymentPreimage),pt.amountPaid&&(this.amountPaid=pt.amountPaid),pt.routingFeePaid&&(this.routingFeePaid=pt.routingFeePaid),this}isExpired(){return this.validUntil===0?!1:this.validUntilwt.tagName==="payment_hash");it(yt,"Could not find payment hash on invoice request");const bt=yt==null?void 0:yt.data;it(bt===this.paymentHash,"paymentHash from invoice did not match LSAT"),this.invoiceAmount=gt||0,this.invoice=pt}catch(mt){throw new Error(`Problem adding invoice data to LSAT: ${mt.message}`)}}static fromMacaroon(pt,mt){it(typeof pt=="string","Requires a raw macaroon string for macaroon to generate LSAT");let gt,yt;try{yt=(0,lt.decodeIdentifierFromMacaroon)(pt),gt=lt.Identifier.fromString(yt)}catch(vt){throw new Error(`Unexpected encoding for macaroon identifier: ${vt.message}`)}const bt={id:yt,baseMacaroon:pt,paymentHash:gt.paymentHash.toString("hex")},wt=new this(bt);return mt&&wt.addInvoice(mt),wt}static fromToken(pt,mt){it(pt.includes(this.type),"Token must include LSAT prefix"),pt=pt.slice(this.type.length).trim();const[gt,yt]=pt.split(":"),bt=ht.fromMacaroon(gt,mt);return yt&&bt.setPreimage(yt),bt}static fromChallenge(pt){const mt="macaroon=",gt="invoice=";let yt;yt=pt.split(","),yt.length<2&&(yt=pt.split(" ")),it(yt.length>=2,"Expected at least two challenges in the LSAT: invoice and macaroon");let bt="",wt="";for(const St of yt){if(!bt.length&&St.indexOf(mt)>-1)try{bt=ut(St)}catch(Tt){throw new Error(`Problem parsing macaroon challenge: ${Tt.message}`)}if(!wt.length&&St.indexOf(gt)>-1)try{wt=ut(St)}catch(Tt){throw new Error(`Problem parsing macaroon challenge: ${Tt.message}`)}if(wt.length&&bt.length)break}it(wt.length&&bt.length,"Expected WWW-Authenticate challenge with macaroon and invoice data");const vt=(0,ct.getIdFromRequest)(wt),kt=(0,lt.decodeIdentifierFromMacaroon)(bt);return new this({id:kt,baseMacaroon:bt,paymentHash:vt,invoice:wt})}static fromHeader(pt){const mt=pt.slice(this.type.length).trim();return it(pt.length!==mt.length,'header missing token type prefix "LSAT"'),ht.fromChallenge(mt)}}return lsat$1.Lsat=ht,ht.type="LSAT",lsat$1}var types={},lsat={};Object.defineProperty(lsat,"__esModule",{value:!0});var satisfier={};Object.defineProperty(satisfier,"__esModule",{value:!0});(function(tt){var et=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(rt,it,ot,at){at===void 0&&(at=ot);var st=Object.getOwnPropertyDescriptor(it,ot);(!st||("get"in st?!it.__esModule:st.writable||st.configurable))&&(st={enumerable:!0,get:function(){return it[ot]}}),Object.defineProperty(rt,at,st)}:function(rt,it,ot,at){at===void 0&&(at=ot),rt[at]=it[ot]}),nt=commonjsGlobal&&commonjsGlobal.__exportStar||function(rt,it){for(var ot in rt)ot!=="default"&&!Object.prototype.hasOwnProperty.call(it,ot)&&et(it,rt,ot)};Object.defineProperty(tt,"__esModule",{value:!0}),nt(lsat,tt),nt(satisfier,tt)})(types);var satisfiers={},hasRequiredSatisfiers;function requireSatisfiers(){if(hasRequiredSatisfiers)return satisfiers;hasRequiredSatisfiers=1,Object.defineProperty(satisfiers,"__esModule",{value:!0}),satisfiers.createCapabilitiesSatisfier=satisfiers.createServicesSatisfier=satisfiers.expirationSatisfier=void 0;const tt=requireDist();satisfiers.expirationSatisfier={condition:"expiration",satisfyPrevious:(rt,it)=>rt.condition!=="expiration"||it.condition!=="expiration"?!1:!(rt.value!(rt.condition!=="expiration"||rt.value{if(typeof rt!="string")throw new tt.InvalidServicesError;return{condition:tt.SERVICES_CAVEAT_CONDITION,satisfyPrevious:(it,ot)=>{const at=(0,tt.decodeServicesCaveat)(it.value.toString()),st=(0,tt.decodeServicesCaveat)(ot.value.toString());if(!Array.isArray(at)||!Array.isArray(st))throw new tt.InvalidServicesError;let lt=new Map;lt=at.reduce((ct,ut)=>ct.set(ut.name,ut.tier),lt);for(const ct of st)if(!lt.has(ct.name)||lt.get(ct.name)>ct.tier)return!1;return!0},satisfyFinal:it=>{const ot=(0,tt.decodeServicesCaveat)(it.value.toString());if(!Array.isArray(ot))throw new tt.InvalidServicesError;for(const at of ot)if(at.name===rt)return!0;return!1}}};satisfiers.createServicesSatisfier=et;const nt=(rt,it)=>{if(typeof it!="string")throw new tt.InvalidCapabilitiesError;if(typeof rt!="string")throw new tt.InvalidCapabilitiesError;return{condition:rt+tt.SERVICE_CAPABILITIES_SUFFIX,satisfyPrevious:(ot,at)=>{const st=(0,tt.decodeCapabilitiesValue)(ot.value.toString()),lt=(0,tt.decodeCapabilitiesValue)(at.value.toString());if(!Array.isArray(st)||!Array.isArray(lt))throw new tt.InvalidServicesError;let ct=new Set;ct=st.reduce((ut,ht)=>ut.add(ht),ct);for(const ut of lt)if(!ct.has(ut))return!1;return!0},satisfyFinal:ot=>{const at=(0,tt.decodeCapabilitiesValue)(ot.value.toString());if(!Array.isArray(at))throw new tt.InvalidServicesError;for(const st of at)if(st===it)return!0;return!1}}};return satisfiers.createCapabilitiesSatisfier=nt,satisfiers}var macaroon={},base64={},__extends$1=commonjsGlobal&&commonjsGlobal.__extends||function(){var tt=function(et,nt){return tt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(rt,it){rt.__proto__=it}||function(rt,it){for(var ot in it)it.hasOwnProperty(ot)&&(rt[ot]=it[ot])},tt(et,nt)};return function(et,nt){tt(et,nt);function rt(){this.constructor=et}et.prototype=nt===null?Object.create(nt):(rt.prototype=nt.prototype,new rt)}}();Object.defineProperty(base64,"__esModule",{value:!0});var INVALID_BYTE=256,Coder=function(){function tt(et){et===void 0&&(et="="),this._paddingCharacter=et}return tt.prototype.encodedLength=function(et){return this._paddingCharacter?(et+2)/3*4|0:(et*8+5)/6|0},tt.prototype.encode=function(et){for(var nt="",rt=0;rt>>3*6&63),nt+=this._encodeByte(it>>>2*6&63),nt+=this._encodeByte(it>>>1*6&63),nt+=this._encodeByte(it>>>0*6&63)}var ot=et.length-rt;if(ot>0){var it=et[rt]<<16|(ot===2?et[rt+1]<<8:0);nt+=this._encodeByte(it>>>3*6&63),nt+=this._encodeByte(it>>>2*6&63),ot===2?nt+=this._encodeByte(it>>>1*6&63):nt+=this._paddingCharacter||"",nt+=this._paddingCharacter||""}return nt},tt.prototype.maxDecodedLength=function(et){return this._paddingCharacter?et/4*3|0:(et*6+7)/8|0},tt.prototype.decodedLength=function(et){return this.maxDecodedLength(et.length-this._getPaddingLength(et))},tt.prototype.decode=function(et){if(et.length===0)return new Uint8Array(0);for(var nt=this._getPaddingLength(et),rt=et.length-nt,it=new Uint8Array(this.maxDecodedLength(rt)),ot=0,at=0,st=0,lt=0,ct=0,ut=0,ht=0;at>>4,it[ot++]=ct<<4|ut>>>2,it[ot++]=ut<<6|ht,st|=lt&INVALID_BYTE,st|=ct&INVALID_BYTE,st|=ut&INVALID_BYTE,st|=ht&INVALID_BYTE;if(at>>4,st|=lt&INVALID_BYTE,st|=ct&INVALID_BYTE),at>>2,st|=ut&INVALID_BYTE),at>>8&0-65-26+97,nt+=51-et>>>8&26-97-52+48,nt+=61-et>>>8&52-48-62+43,nt+=62-et>>>8&62-43-63+47,String.fromCharCode(nt)},tt.prototype._decodeChar=function(et){var nt=INVALID_BYTE;return nt+=(42-et&et-44)>>>8&-INVALID_BYTE+et-43+62,nt+=(46-et&et-48)>>>8&-INVALID_BYTE+et-47+63,nt+=(47-et&et-58)>>>8&-INVALID_BYTE+et-48+52,nt+=(64-et&et-91)>>>8&-INVALID_BYTE+et-65+0,nt+=(96-et&et-123)>>>8&-INVALID_BYTE+et-97+26,nt},tt.prototype._getPaddingLength=function(et){var nt=0;if(this._paddingCharacter){for(var rt=et.length-1;rt>=0&&et[rt]===this._paddingCharacter;rt--)nt++;if(et.length<4||nt>2)throw new Error("Base64Coder: incorrect padding")}return nt},tt}();base64.Coder=Coder;var stdCoder=new Coder;function encode$2(tt){return stdCoder.encode(tt)}base64.encode=encode$2;function decode$2(tt){return stdCoder.decode(tt)}base64.decode=decode$2;var URLSafeCoder=function(tt){__extends$1(et,tt);function et(){return tt!==null&&tt.apply(this,arguments)||this}return et.prototype._encodeByte=function(nt){var rt=nt;return rt+=65,rt+=25-nt>>>8&0-65-26+97,rt+=51-nt>>>8&26-97-52+48,rt+=61-nt>>>8&52-48-62+45,rt+=62-nt>>>8&62-45-63+95,String.fromCharCode(rt)},et.prototype._decodeChar=function(nt){var rt=INVALID_BYTE;return rt+=(44-nt&nt-46)>>>8&-INVALID_BYTE+nt-45+62,rt+=(94-nt&nt-96)>>>8&-INVALID_BYTE+nt-95+63,rt+=(47-nt&nt-58)>>>8&-INVALID_BYTE+nt-48+52,rt+=(64-nt&nt-91)>>>8&-INVALID_BYTE+nt-65+0,rt+=(96-nt&nt-123)>>>8&-INVALID_BYTE+nt-97+26,rt},et}(Coder);base64.URLSafeCoder=URLSafeCoder;var urlSafeCoder=new URLSafeCoder;function encodeURLSafe(tt){return urlSafeCoder.encode(tt)}base64.encodeURLSafe=encodeURLSafe;function decodeURLSafe(tt){return urlSafeCoder.decode(tt)}base64.decodeURLSafe=decodeURLSafe;base64.encodedLength=function(tt){return stdCoder.encodedLength(tt)};base64.maxDecodedLength=function(tt){return stdCoder.maxDecodedLength(tt)};base64.decodedLength=function(tt){return stdCoder.decodedLength(tt)};var __createBinding$1=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(tt,et,nt,rt){rt===void 0&&(rt=nt);var it=Object.getOwnPropertyDescriptor(et,nt);(!it||("get"in it?!et.__esModule:it.writable||it.configurable))&&(it={enumerable:!0,get:function(){return et[nt]}}),Object.defineProperty(tt,rt,it)}:function(tt,et,nt,rt){rt===void 0&&(rt=nt),tt[rt]=et[nt]}),__setModuleDefault$1=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(tt,et){Object.defineProperty(tt,"default",{enumerable:!0,value:et})}:function(tt,et){tt.default=et}),__importStar$1=commonjsGlobal&&commonjsGlobal.__importStar||function(tt){if(tt&&tt.__esModule)return tt;var et={};if(tt!=null)for(var nt in tt)nt!=="default"&&Object.prototype.hasOwnProperty.call(tt,nt)&&__createBinding$1(et,tt,nt);return __setModuleDefault$1(et,tt),et};Object.defineProperty(macaroon,"__esModule",{value:!0});macaroon.getRawMacaroon=macaroon.verifyMacaroonCaveats=macaroon.getCaveatsFromMacaroon=void 0;const caveat_1=caveat,helpers_1=helpers,Macaroon=__importStar$1(macaroon$1),base64_1=base64;function getCaveatsFromMacaroon(tt){var et;const nt=Macaroon.importMacaroon(tt),rt=[],it=(et=nt._exportAsJSONObjectV2())===null||et===void 0?void 0:et.c;if(it)for(const ot of it){if(!ot.i)continue;const at=caveat_1.Caveat.decode(ot.i);rt.push(at)}return rt}macaroon.getCaveatsFromMacaroon=getCaveatsFromMacaroon;function verifyMacaroonCaveats(tt,et,nt,rt={}){try{const it=Macaroon.importMacaroon(tt),ot=(0,helpers_1.stringToBytes)(et);it.verify(ot,()=>null);const at=getCaveatsFromMacaroon(tt);return nt&&!Array.isArray(nt)&&(nt=[nt]),!at.length&&(!nt||!nt.length)?!0:(0,caveat_1.verifyCaveats)(at,nt,rt)}catch{return!1}}macaroon.verifyMacaroonCaveats=verifyMacaroonCaveats;function getRawMacaroon(tt,et=!1){const nt=tt._exportBinaryV2();return et?(0,base64_1.encodeURLSafe)(nt):(0,base64_1.encode)(nt)}macaroon.getRawMacaroon=getRawMacaroon;var service={};(function(tt){var et=commonjsGlobal&&commonjsGlobal.__importDefault||function(dt){return dt&&dt.__esModule?dt:{default:dt}};Object.defineProperty(tt,"__esModule",{value:!0}),tt.decodeCapabilitiesValue=tt.createNewCapabilitiesCaveat=tt.SERVICE_CAPABILITIES_SUFFIX=tt.encodeServicesCaveatValue=tt.decodeServicesCaveat=tt.SERVICES_CAVEAT_CONDITION=tt.Service=tt.InvalidCapabilitiesError=tt.InvalidServicesError=tt.NoServicesError=void 0;const nt=et(bufio),rt=caveat;class it extends Error{constructor(...pt){super(...pt),this.name="NoServicesError",this.message="no services found",Error.captureStackTrace&&Error.captureStackTrace(this,it)}}tt.NoServicesError=it;class ot extends Error{constructor(pt){super(pt),this.name="InvalidServicesError",pt||(this.message='service must be of the form "name:tier"'),Error.captureStackTrace&&Error.captureStackTrace(this,ot)}}tt.InvalidServicesError=ot;class at extends Error{constructor(pt){super(pt),this.name="InvalidCapabilitiesError",pt||(this.message="capabilities must be a string or array of strings"),Error.captureStackTrace&&Error.captureStackTrace(this,ot)}}tt.InvalidCapabilitiesError=at;class st extends nt.default.Struct{constructor(pt){super(pt),this.name=pt.name,this.tier=pt.tier}}tt.Service=st,tt.SERVICES_CAVEAT_CONDITION="services";const lt=dt=>{if(!dt.length)throw new it;const pt=[],mt=dt.split(",");for(const gt of mt){const[yt,bt]=gt.split(":");if(!yt||!bt)throw new ot;if(isNaN(+bt))throw new ot("tier must be a number");if(!isNaN(+yt))throw new ot("service name must be a string");pt.push(new st({name:yt,tier:+bt}))}return pt};tt.decodeServicesCaveat=lt;const ct=dt=>{if(!dt.length)throw new it;let pt="";for(let mt=0;mt{let mt;if(!pt)mt="";else if(Array.isArray(pt))mt=pt.join(",");else{if(typeof pt!="string")throw new at;mt=pt}return new rt.Caveat({condition:dt+tt.SERVICE_CAPABILITIES_SUFFIX,value:mt,comp:"="})};tt.createNewCapabilitiesCaveat=ut;const ht=dt=>{if(typeof dt!="string")throw new at;return dt.toString().split(",").map(pt=>pt.trim())};tt.decodeCapabilitiesValue=ht})(service);var hasRequiredDist;function requireDist(){return hasRequiredDist||(hasRequiredDist=1,function(tt){var et=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(rt,it,ot,at){at===void 0&&(at=ot);var st=Object.getOwnPropertyDescriptor(it,ot);(!st||("get"in st?!it.__esModule:st.writable||st.configurable))&&(st={enumerable:!0,get:function(){return it[ot]}}),Object.defineProperty(rt,at,st)}:function(rt,it,ot,at){at===void 0&&(at=ot),rt[at]=it[ot]}),nt=commonjsGlobal&&commonjsGlobal.__exportStar||function(rt,it){for(var ot in rt)ot!=="default"&&!Object.prototype.hasOwnProperty.call(it,ot)&&et(it,rt,ot)};Object.defineProperty(tt,"__esModule",{value:!0}),nt(identifier,tt),nt(caveat,tt),nt(requireLsat(),tt),nt(types,tt),nt(requireSatisfiers(),tt),nt(macaroon,tt),nt(service,tt)}(dist$2)),dist$2}var distExports$1=requireDist();const ActionsMapper={searching:"GET",adding_node:"POST",teachme:"POST",ask_question:"POST",sentiments:"GET"},getLSat=async(tt,et)=>{try{const nt=new URL(`${API_URL}/${tt}`),rt=new URLSearchParams(et);et&&rt.forEach((ct,ut)=>{nt.searchParams.append(ut,ct)});const it=await fetch(nt,{method:ActionsMapper[tt]??"GET"}),ot=await it.json(),at=["teachme","ask_question","sentiments"].includes(tt)?distExports$1.Lsat.fromHeader(it.headers.get("www-authenticate")||""):distExports$1.Lsat.fromHeader(ot.headers),st=await distExports$2.saveLsat(at.invoice,at.baseMacaroon,"knowledge-graph.sphinx.chat");return st.success===!1&&await distExports$2.topup(),at.setPreimage(st.lsat.split(":")[1]),at.toToken()}catch(nt){return console.warn(nt),null}},defaultData$9={isAdmin:!1,pubKey:""},useUserStore=react(tt=>({...defaultData$9,setIsAdmin:et=>tt({isAdmin:et}),setPubKey:et=>tt({pubKey:et})})),executeIfTetsRunning=tt=>{isE2E&&tt()};function executeIfProd(tt){return isDevelopment||isE2E?null:tt()}function addToGlobalForE2e(tt,et){executeIfTetsRunning(()=>{window.e2e||(window.e2e={}),window.e2e[et]=tt})}const E2E=()=>{const tt=useUserStore();return reactExports.useEffect(()=>{isE2E&&(console.log({isE2E}),addToGlobalForE2e(tt,"userStore"))},[tt]),jsxRuntimeExports.jsx("div",{id:"e2e-check"})},E2ETests=reactExports.memo(()=>isE2E?jsxRuntimeExports.jsx(E2E,{}):null);function timeToMilliseconds(tt){const[et,nt,rt]=tt.split(":").map(Number);return Number((et*60*60*1e3+nt*60*1e3+rt*1e3).toFixed(6))}/** +*********************`),st=ot.hashForSignature(tt,ct,at)}return{script:ct,sighashType:at,hash:st}}function getAllTaprootHashesForSig(tt,et,nt,rt){const it=[];if(et.tapInternalKey){const at=getPrevoutTaprootKey(tt,et,rt);at&&it.push(at)}if(et.tapScriptSig){const at=et.tapScriptSig.map(st=>st.pubkey);it.push(...at)}return it.map(at=>getTaprootHashesForSig(tt,et,nt,at,rt)).flat()}function getPrevoutTaprootKey(tt,et,nt){const{script:rt}=getScriptAndAmountFromUtxo(tt,et,nt);return(0,psbtutils_1.isP2TR)(rt)?rt.subarray(2,34):null}function trimTaprootSig(tt){return tt.length===64?tt:tt.subarray(0,64)}function getTaprootHashesForSig(tt,et,nt,rt,it,ot,at){const st=it.__TX,lt=et.sighashType||transaction_1.Transaction.SIGHASH_DEFAULT;checkSighashTypeAllowed(lt,at);const ct=nt.map((mt,gt)=>getScriptAndAmountFromUtxo(gt,mt,it)),ut=ct.map(mt=>mt.script),ht=ct.map(mt=>mt.value),dt=[];if(et.tapInternalKey&&!ot){const mt=getPrevoutTaprootKey(tt,et,it)||Buffer.from([]);if((0,bip371_1.toXOnly)(rt).equals(mt)){const gt=st.hashForWitnessV1(tt,ut,ht,lt);dt.push({pubkey:rt,hash:gt})}}const pt=(et.tapLeafScript||[]).filter(mt=>(0,psbtutils_1.pubkeyInScript)(rt,mt.script)).map(mt=>{const gt=(0,bip341_1.tapleafHash)({output:mt.script,version:mt.leafVersion});return Object.assign({hash:gt},mt)}).filter(mt=>!ot||ot.equals(mt.hash)).map(mt=>{const gt=st.hashForWitnessV1(tt,ut,ht,transaction_1.Transaction.SIGHASH_DEFAULT,mt.hash);return{pubkey:rt,hash:gt,leafHash:mt.hash}});return dt.concat(pt)}function checkSighashTypeAllowed(tt,et){if(et&&et.indexOf(tt)<0){const nt=sighashTypeToString(tt);throw new Error(`Sighash type is not allowed. Retry the sign method passing the sighashTypes array of whitelisted types. Sighash type: ${nt}`)}}function getPayment(tt,et,nt){let rt;switch(et){case"multisig":const it=getSortedSigs(tt,nt);rt=payments.p2ms({output:tt,signatures:it});break;case"pubkey":rt=payments.p2pk({output:tt,signature:nt[0].signature});break;case"pubkeyhash":rt=payments.p2pkh({output:tt,pubkey:nt[0].pubkey,signature:nt[0].signature});break;case"witnesspubkeyhash":rt=payments.p2wpkh({output:tt,pubkey:nt[0].pubkey,signature:nt[0].signature});break}return rt}function getScriptFromInput(tt,et,nt){const rt=nt.__TX,it={script:null,isSegwit:!1,isP2SH:!1,isP2WSH:!1};if(it.isP2SH=!!et.redeemScript,it.isP2WSH=!!et.witnessScript,et.witnessScript)it.script=et.witnessScript;else if(et.redeemScript)it.script=et.redeemScript;else if(et.nonWitnessUtxo){const ot=nonWitnessUtxoTxFromCache(nt,et,tt),at=rt.ins[tt].index;it.script=ot.outs[at].script}else et.witnessUtxo&&(it.script=et.witnessUtxo.script);return(et.witnessScript||(0,psbtutils_1.isP2WPKH)(it.script))&&(it.isSegwit=!0),it}function getSignersFromHD(tt,et,nt){const rt=(0,utils_1.checkForInput)(et,tt);if(!rt.bip32Derivation||rt.bip32Derivation.length===0)throw new Error("Need bip32Derivation to sign with HD");const it=rt.bip32Derivation.map(at=>{if(at.masterFingerprint.equals(nt.fingerprint))return at}).filter(at=>!!at);if(it.length===0)throw new Error("Need one bip32Derivation masterFingerprint to match the HDSigner fingerprint");return it.map(at=>{const st=nt.derivePath(at.path);if(!at.pubkey.equals(st.publicKey))throw new Error("pubkey did not match bip32Derivation");return st})}function getSortedSigs(tt,et){return payments.p2ms({output:tt}).pubkeys.map(rt=>(et.filter(it=>it.pubkey.equals(rt))[0]||{}).signature).filter(rt=>!!rt)}function scriptWitnessToWitnessStack(tt){let et=0;function nt(at){return et+=at,tt.slice(et-at,et)}function rt(){const at=varuint.decode(tt,et);return et+=varuint.decode.bytes,at}function it(){return nt(rt())}function ot(){const at=rt(),st=[];for(let lt=0;lt{if(rt&<.finalScriptSig&&(et.ins[ct].script=lt.finalScriptSig),rt&<.finalScriptWitness&&(et.ins[ct].witness=scriptWitnessToWitnessStack(lt.finalScriptWitness)),lt.witnessUtxo)it+=lt.witnessUtxo.value;else if(lt.nonWitnessUtxo){const ut=nonWitnessUtxoTxFromCache(nt,lt,ct),ht=et.ins[ct].index,dt=ut.outs[ht];it+=dt.value}});const ot=et.outs.reduce((lt,ct)=>lt+ct.value,0),at=it-ot;if(at<0)throw new Error("Outputs are spending more than Inputs");const st=et.virtualSize();nt.__FEE=at,nt.__EXTRACTED_TX=et,nt.__FEE_RATE=Math.floor(at/st)}function nonWitnessUtxoTxFromCache(tt,et,nt){const rt=tt.__NON_WITNESS_UTXO_TX_CACHE;return rt[nt]||addNonWitnessTxCache(tt,et,nt),rt[nt]}function getScriptFromUtxo(tt,et,nt){const{script:rt}=getScriptAndAmountFromUtxo(tt,et,nt);return rt}function getScriptAndAmountFromUtxo(tt,et,nt){if(et.witnessUtxo!==void 0)return{script:et.witnessUtxo.script,value:et.witnessUtxo.value};if(et.nonWitnessUtxo!==void 0){const it=nonWitnessUtxoTxFromCache(nt,et,tt).outs[nt.__TX.ins[tt].index];return{script:it.script,value:it.value}}else throw new Error("Can't find pubkey in input without Utxo data")}function pubkeyInInput(tt,et,nt,rt){const it=getScriptFromUtxo(nt,et,rt),{meaningfulScript:ot}=getMeaningfulScript(it,nt,"input",et.redeemScript,et.witnessScript);return(0,psbtutils_1.pubkeyInScript)(tt,ot)}function pubkeyInOutput(tt,et,nt,rt){const it=rt.__TX.outs[nt].script,{meaningfulScript:ot}=getMeaningfulScript(it,nt,"output",et.redeemScript,et.witnessScript);return(0,psbtutils_1.pubkeyInScript)(tt,ot)}function redeemFromFinalScriptSig(tt){if(!tt)return;const et=bscript.decompile(tt);if(!et)return;const nt=et[et.length-1];if(!(!Buffer.isBuffer(nt)||isPubkeyLike(nt)||isSigLike(nt)||!bscript.decompile(nt)))return nt}function redeemFromFinalWitnessScript(tt){if(!tt)return;const et=scriptWitnessToWitnessStack(tt),nt=et[et.length-1];if(!(isPubkeyLike(nt)||!bscript.decompile(nt)))return nt}function compressPubkey(tt){if(tt.length===65){const et=tt[64]&1,nt=tt.slice(0,33);return nt[0]=2|et,nt}return tt.slice()}function isPubkeyLike(tt){return tt.length===33&&bscript.isCanonicalPubKey(tt)}function isSigLike(tt){return bscript.isCanonicalScriptSignature(tt)}function getMeaningfulScript(tt,et,nt,rt,it){const ot=(0,psbtutils_1.isP2SHScript)(tt),at=ot&&rt&&(0,psbtutils_1.isP2WSHScript)(rt),st=(0,psbtutils_1.isP2WSHScript)(tt);if(ot&&rt===void 0)throw new Error("scriptPubkey is P2SH but redeemScript missing");if((st||at)&&it===void 0)throw new Error("scriptPubkey or redeemScript is P2WSH but witnessScript missing");let lt;return at?(lt=it,checkRedeemScript(et,tt,rt,nt),checkWitnessScript(et,rt,it,nt),checkInvalidP2WSH(lt)):st?(lt=it,checkWitnessScript(et,tt,it,nt),checkInvalidP2WSH(lt)):ot?(lt=rt,checkRedeemScript(et,tt,rt,nt)):lt=tt,{meaningfulScript:lt,type:at?"p2sh-p2wsh":ot?"p2sh":st?"p2wsh":"raw"}}function checkInvalidP2WSH(tt){if((0,psbtutils_1.isP2WPKH)(tt)||(0,psbtutils_1.isP2SHScript)(tt))throw new Error("P2WPKH or P2SH can not be contained within P2WSH")}function classifyScript(tt){return(0,psbtutils_1.isP2WPKH)(tt)?"witnesspubkeyhash":(0,psbtutils_1.isP2PKH)(tt)?"pubkeyhash":(0,psbtutils_1.isP2MS)(tt)?"multisig":(0,psbtutils_1.isP2PK)(tt)?"pubkey":"nonstandard"}function range$4(tt){return[...Array(tt).keys()]}(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.initEccLib=tt.Transaction=tt.opcodes=tt.Psbt=tt.Block=tt.script=tt.payments=tt.networks=tt.crypto=tt.address=void 0;const et=address;tt.address=et;const nt=crypto$2;tt.crypto=nt;const rt=networks$1;tt.networks=rt;const it=payments$3;tt.payments=it;const ot=script;tt.script=ot;var at=block;Object.defineProperty(tt,"Block",{enumerable:!0,get:function(){return at.Block}});var st=psbt$1;Object.defineProperty(tt,"Psbt",{enumerable:!0,get:function(){return st.Psbt}});var lt=ops;Object.defineProperty(tt,"opcodes",{enumerable:!0,get:function(){return lt.OPS}});var ct=transaction;Object.defineProperty(tt,"Transaction",{enumerable:!0,get:function(){return ct.Transaction}});var ut=ecc_lib;Object.defineProperty(tt,"initEccLib",{enumerable:!0,get:function(){return ut.initEccLib}})})(src$1);function listCacheClear$1(){this.__data__=[],this.size=0}var _listCacheClear=listCacheClear$1;function eq$4(tt,et){return tt===et||tt!==tt&&et!==et}var eq_1=eq$4,eq$3=eq_1;function assocIndexOf$4(tt,et){for(var nt=tt.length;nt--;)if(eq$3(tt[nt][0],et))return nt;return-1}var _assocIndexOf=assocIndexOf$4,assocIndexOf$3=_assocIndexOf,arrayProto=Array.prototype,splice=arrayProto.splice;function listCacheDelete$1(tt){var et=this.__data__,nt=assocIndexOf$3(et,tt);if(nt<0)return!1;var rt=et.length-1;return nt==rt?et.pop():splice.call(et,nt,1),--this.size,!0}var _listCacheDelete=listCacheDelete$1,assocIndexOf$2=_assocIndexOf;function listCacheGet$1(tt){var et=this.__data__,nt=assocIndexOf$2(et,tt);return nt<0?void 0:et[nt][1]}var _listCacheGet=listCacheGet$1,assocIndexOf$1=_assocIndexOf;function listCacheHas$1(tt){return assocIndexOf$1(this.__data__,tt)>-1}var _listCacheHas=listCacheHas$1,assocIndexOf=_assocIndexOf;function listCacheSet$1(tt,et){var nt=this.__data__,rt=assocIndexOf(nt,tt);return rt<0?(++this.size,nt.push([tt,et])):nt[rt][1]=et,this}var _listCacheSet=listCacheSet$1,listCacheClear=_listCacheClear,listCacheDelete=_listCacheDelete,listCacheGet=_listCacheGet,listCacheHas=_listCacheHas,listCacheSet=_listCacheSet;function ListCache$4(tt){var et=-1,nt=tt==null?0:tt.length;for(this.clear();++et-1&&tt%1==0&&tt-1&&tt%1==0&&tt<=MAX_SAFE_INTEGER$1}var isLength_1=isLength$3,baseGetTag$5=_baseGetTag,isLength$2=isLength_1,isObjectLike$7=isObjectLike_1,argsTag$2="[object Arguments]",arrayTag$2="[object Array]",boolTag$4="[object Boolean]",dateTag$3="[object Date]",errorTag$2="[object Error]",funcTag$1="[object Function]",mapTag$5="[object Map]",numberTag$4="[object Number]",objectTag$3="[object Object]",regexpTag$3="[object RegExp]",setTag$5="[object Set]",stringTag$4="[object String]",weakMapTag$2="[object WeakMap]",arrayBufferTag$3="[object ArrayBuffer]",dataViewTag$4="[object DataView]",float32Tag$2="[object Float32Array]",float64Tag$2="[object Float64Array]",int8Tag$2="[object Int8Array]",int16Tag$2="[object Int16Array]",int32Tag$2="[object Int32Array]",uint8Tag$2="[object Uint8Array]",uint8ClampedTag$2="[object Uint8ClampedArray]",uint16Tag$2="[object Uint16Array]",uint32Tag$2="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag$2]=typedArrayTags[float64Tag$2]=typedArrayTags[int8Tag$2]=typedArrayTags[int16Tag$2]=typedArrayTags[int32Tag$2]=typedArrayTags[uint8Tag$2]=typedArrayTags[uint8ClampedTag$2]=typedArrayTags[uint16Tag$2]=typedArrayTags[uint32Tag$2]=!0;typedArrayTags[argsTag$2]=typedArrayTags[arrayTag$2]=typedArrayTags[arrayBufferTag$3]=typedArrayTags[boolTag$4]=typedArrayTags[dataViewTag$4]=typedArrayTags[dateTag$3]=typedArrayTags[errorTag$2]=typedArrayTags[funcTag$1]=typedArrayTags[mapTag$5]=typedArrayTags[numberTag$4]=typedArrayTags[objectTag$3]=typedArrayTags[regexpTag$3]=typedArrayTags[setTag$5]=typedArrayTags[stringTag$4]=typedArrayTags[weakMapTag$2]=!1;function baseIsTypedArray$1(tt){return isObjectLike$7(tt)&&isLength$2(tt.length)&&!!typedArrayTags[baseGetTag$5(tt)]}var _baseIsTypedArray=baseIsTypedArray$1;function baseUnary$4(tt){return function(et){return tt(et)}}var _baseUnary=baseUnary$4,_nodeUtil={exports:{}};_nodeUtil.exports;(function(tt,et){var nt=_freeGlobal,rt=et&&!et.nodeType&&et,it=rt&&!0&&tt&&!tt.nodeType&&tt,ot=it&&it.exports===rt,at=ot&&nt.process,st=function(){try{var lt=it&&it.require&&it.require("util").types;return lt||at&&at.binding&&at.binding("util")}catch{}}();tt.exports=st})(_nodeUtil,_nodeUtil.exports);var _nodeUtilExports=_nodeUtil.exports,baseIsTypedArray=_baseIsTypedArray,baseUnary$3=_baseUnary,nodeUtil$2=_nodeUtilExports,nodeIsTypedArray=nodeUtil$2&&nodeUtil$2.isTypedArray,isTypedArray$4=nodeIsTypedArray?baseUnary$3(nodeIsTypedArray):baseIsTypedArray,isTypedArray_1=isTypedArray$4,baseTimes=_baseTimes,isArguments$2=isArguments_1,isArray$h=isArray_1,isBuffer$2=isBufferExports,isIndex$2=_isIndex,isTypedArray$3=isTypedArray_1,objectProto$7=Object.prototype,hasOwnProperty$6=objectProto$7.hasOwnProperty;function arrayLikeKeys$2(tt,et){var nt=isArray$h(tt),rt=!nt&&isArguments$2(tt),it=!nt&&!rt&&isBuffer$2(tt),ot=!nt&&!rt&&!it&&isTypedArray$3(tt),at=nt||rt||it||ot,st=at?baseTimes(tt.length,String):[],lt=st.length;for(var ct in tt)(et||hasOwnProperty$6.call(tt,ct))&&!(at&&(ct=="length"||it&&(ct=="offset"||ct=="parent")||ot&&(ct=="buffer"||ct=="byteLength"||ct=="byteOffset")||isIndex$2(ct,lt)))&&st.push(ct);return st}var _arrayLikeKeys=arrayLikeKeys$2,objectProto$6=Object.prototype;function isPrototype$3(tt){var et=tt&&tt.constructor,nt=typeof et=="function"&&et.prototype||objectProto$6;return tt===nt}var _isPrototype=isPrototype$3;function overArg$2(tt,et){return function(nt){return tt(et(nt))}}var _overArg=overArg$2,overArg$1=_overArg,nativeKeys$1=overArg$1(Object.keys,Object),_nativeKeys=nativeKeys$1,isPrototype$2=_isPrototype,nativeKeys=_nativeKeys,objectProto$5=Object.prototype,hasOwnProperty$5=objectProto$5.hasOwnProperty;function baseKeys$1(tt){if(!isPrototype$2(tt))return nativeKeys(tt);var et=[];for(var nt in Object(tt))hasOwnProperty$5.call(tt,nt)&&nt!="constructor"&&et.push(nt);return et}var _baseKeys=baseKeys$1,isFunction$3=isFunction_1,isLength$1=isLength_1;function isArrayLike$6(tt){return tt!=null&&isLength$1(tt.length)&&!isFunction$3(tt)}var isArrayLike_1=isArrayLike$6,arrayLikeKeys$1=_arrayLikeKeys,baseKeys=_baseKeys,isArrayLike$5=isArrayLike_1;function keys$9(tt){return isArrayLike$5(tt)?arrayLikeKeys$1(tt):baseKeys(tt)}var keys_1=keys$9,copyObject$3=_copyObject,keys$8=keys_1;function baseAssign$1(tt,et){return tt&©Object$3(et,keys$8(et),tt)}var _baseAssign=baseAssign$1;function nativeKeysIn$1(tt){var et=[];if(tt!=null)for(var nt in Object(tt))et.push(nt);return et}var _nativeKeysIn=nativeKeysIn$1,isObject$a=isObject_1,isPrototype$1=_isPrototype,nativeKeysIn=_nativeKeysIn,objectProto$4=Object.prototype,hasOwnProperty$4=objectProto$4.hasOwnProperty;function baseKeysIn$1(tt){if(!isObject$a(tt))return nativeKeysIn(tt);var et=isPrototype$1(tt),nt=[];for(var rt in tt)rt=="constructor"&&(et||!hasOwnProperty$4.call(tt,rt))||nt.push(rt);return nt}var _baseKeysIn=baseKeysIn$1,arrayLikeKeys=_arrayLikeKeys,baseKeysIn=_baseKeysIn,isArrayLike$4=isArrayLike_1;function keysIn$3(tt){return isArrayLike$4(tt)?arrayLikeKeys(tt,!0):baseKeysIn(tt)}var keysIn_1=keysIn$3,copyObject$2=_copyObject,keysIn$2=keysIn_1;function baseAssignIn$1(tt,et){return tt&©Object$2(et,keysIn$2(et),tt)}var _baseAssignIn=baseAssignIn$1,_cloneBuffer={exports:{}};_cloneBuffer.exports;(function(tt,et){var nt=_root,rt=et&&!et.nodeType&&et,it=rt&&!0&&tt&&!tt.nodeType&&tt,ot=it&&it.exports===rt,at=ot?nt.Buffer:void 0,st=at?at.allocUnsafe:void 0;function lt(ct,ut){if(ut)return ct.slice();var ht=ct.length,dt=st?st(ht):new ct.constructor(ht);return ct.copy(dt),dt}tt.exports=lt})(_cloneBuffer,_cloneBuffer.exports);var _cloneBufferExports=_cloneBuffer.exports;function copyArray$2(tt,et){var nt=-1,rt=tt.length;for(et||(et=Array(rt));++ntwordsToBuffer(tt,!0).toString("hex"),16:tt=>wordsToBuffer(tt,!0).toString("hex"),13:tt=>wordsToBuffer(tt,!0).toString("utf8"),19:tt=>wordsToBuffer(tt,!0).toString("hex"),23:tt=>wordsToBuffer(tt,!0).toString("hex"),6:wordsToIntBE,24:wordsToIntBE,9:fallbackAddressParser,3:routingInfoParser,5:featureBitsParser},unknownTagName="unknownTag";function unknownEncoder(tt){return tt.words=bech32.decode(tt.words,Number.MAX_SAFE_INTEGER).words,tt}function getUnknownParser(tt){return et=>({tagCode:parseInt(tt),words:bech32.encode("unknown",et,Number.MAX_SAFE_INTEGER)})}function wordsToIntBE(tt){return tt.reverse().reduce((et,nt,rt)=>et+nt*Math.pow(32,rt),0)}function intBEToWords(tt,et){const nt=[];if(et===void 0&&(et=5),tt=Math.floor(tt),tt===0)return[0];for(;tt>0;)nt.push(tt&Math.pow(2,et)-1),tt=Math.floor(tt/Math.pow(2,et));return nt.reverse()}function sha256(tt){return createHash("sha256").update(tt).digest()}function convert$1(tt,et,nt){let rt=0,it=0;const ot=(1<=nt;)it-=nt,at.push(rt>>it&ot);return it>0&&at.push(rt<0;)nt=st.slice(0,33).toString("hex"),rt=st.slice(33,41).toString("hex"),it=parseInt(st.slice(41,45).toString("hex"),16),ot=parseInt(st.slice(45,49).toString("hex"),16),at=parseInt(st.slice(49,51).toString("hex"),16),st=st.slice(51),et.push({pubkey:nt,short_channel_id:rt,fee_base_msat:it,fee_proportional_millionths:ot,cltv_expiry_delta:at});return et}function featureBitsParser(tt){const et=tt.slice().reverse().map(rt=>[!!(rt&1),!!(rt&2),!!(rt&4),!!(rt&8),!!(rt&16)]).reduce((rt,it)=>rt.concat(it),[]);for(;et.length{nt[rt]={required:et[it*2],supported:et[it*2+1]}}),et.length>FEATUREBIT_ORDER.length*2){const rt=et.slice(FEATUREBIT_ORDER.length*2);nt.extra_bits={start_bit:FEATUREBIT_ORDER.length*2,bits:rt,has_required:rt.reduce((it,ot,at)=>at%2!==0?it||!1:it||ot,!1)}}else nt.extra_bits={start_bit:FEATUREBIT_ORDER.length*2,bits:[],has_required:!1};return nt}function featureBitsEncoder(tt){let et=tt.word_length,nt=[];for(FEATUREBIT_ORDER.forEach(rt=>{nt.push(!!(tt[rt]||{}).required),nt.push(!!(tt[rt]||{}).supported)});nt[nt.length-1]===!1;)nt.pop();for(;nt.length%5!==0;)nt.push(!1);if(tt.extra_bits&&Array.isArray(tt.extra_bits.bits)&&tt.extra_bits.bits.length>0){for(;nt.lengthet)throw new Error("word_length is too small to contain all featureBits");return et===void 0&&(et=Math.ceil(nt.length/5)),new Array(et).fill(0).map((rt,it)=>nt[it*5+4]<<4|nt[it*5+3]<<3|nt[it*5+2]<<2|nt[it*5+1]<<1|nt[it*5]<<0).reverse()}function routingInfoEncoder(tt){let et=Buffer$1.from([]);return tt.forEach(nt=>{et=Buffer$1.concat([et,hexToBuffer(nt.pubkey)]),et=Buffer$1.concat([et,hexToBuffer(nt.short_channel_id)]),et=Buffer$1.concat([et,Buffer$1.from([0,0,0].concat(intBEToWords(nt.fee_base_msat,8)).slice(-4))]),et=Buffer$1.concat([et,Buffer$1.from([0,0,0].concat(intBEToWords(nt.fee_proportional_millionths,8)).slice(-4))]),et=Buffer$1.concat([et,Buffer$1.from([0].concat(intBEToWords(nt.cltv_expiry_delta,8)).slice(-2))])}),hexToWord(et)}function purposeCommitEncoder(tt){let et;if(tt!==void 0&&(typeof tt=="string"||tt instanceof String))tt.match(/^([a-zA-Z0-9]{2})*$/)?et=Buffer$1.from(tt,"hex"):et=sha256(Buffer$1.from(tt,"utf8"));else throw new Error("purpose or purpose commit must be a string or hex string");return bech32.toWords(et)}function tagsItems(tt,et){const nt=tt.filter(it=>it.tagName===et);return nt.length>0?nt[0].data:null}function tagsContainItem(tt,et){return tagsItems(tt,et)!==null}function orderKeys(tt,et){const nt={};if(Object.keys(tt).sort().forEach(rt=>{nt[rt]=tt[rt]}),et===!0){const rt="__tagsObject_cache";Object.defineProperty(nt,"tagsObject",{get(){return this[rt]||Object.defineProperty(this,rt,{value:getTagsObject(this.tags)}),this[rt]}})}return nt}function satToHrp(tt){if(!tt.toString().match(/^\d+$/))throw new Error("satoshis must be an integer");const et=new BN(tt,10);return millisatToHrp(et.mul(new BN(1e3,10)))}function millisatToHrp(tt){if(!tt.toString().match(/^\d+$/))throw new Error("millisatoshis must be an integer");const et=new BN(tt,10),nt=et.toString(10),rt=nt.length;let it,ot;return rt>11&&/0{11}$/.test(nt)?(it="",ot=et.div(MILLISATS_PER_BTC).toString(10)):rt>8&&/0{8}$/.test(nt)?(it="m",ot=et.div(MILLISATS_PER_MILLIBTC).toString(10)):rt>5&&/0{5}$/.test(nt)?(it="u",ot=et.div(MILLISATS_PER_MICROBTC).toString(10)):rt>2&&/0{2}$/.test(nt)?(it="n",ot=et.div(MILLISATS_PER_NANOBTC).toString(10)):(it="p",ot=et.mul(PICOBTC_PER_MILLISATS).toString(10)),ot+it}function hrpToSat(tt,et){const nt=hrpToMillisat(tt,!1);if(!nt.mod(new BN(1e3,10)).eq(new BN(0,10)))throw new Error("Amount is outside of valid range");const rt=nt.div(new BN(1e3,10));return et?rt.toString():rt}function hrpToMillisat(tt,et){let nt,rt;if(tt.slice(-1).match(/^[munp]$/))nt=tt.slice(-1),rt=tt.slice(0,-1);else{if(tt.slice(-1).match(/^[^munp0-9]$/))throw new Error("Not a valid multiplier for the amount");rt=tt}if(!rt.match(/^\d+$/))throw new Error("Not a valid human readable amount");const it=new BN(rt,10),ot=nt?it.mul(MILLISATS_PER_BTC).div(DIVISORS[nt]):it.mul(MILLISATS_PER_BTC);if(nt==="p"&&!it.mod(new BN(10,10)).eq(new BN(0,10))||ot.gt(MAX_MILLISATS))throw new Error("Amount is outside of valid range");return et?ot.toString():ot}function sign$3(tt,et){const nt=cloneDeep(tt),rt=hexToBuffer(et);if(nt.complete&&nt.paymentRequest)return nt;if(rt===void 0||rt.length!==32||!secp256k1.privateKeyVerify(rt))throw new Error("privateKey must be a 32 byte Buffer and valid private key");let it,ot;if(tagsContainItem(nt.tags,TAGNAMES[19])&&(ot=hexToBuffer(tagsItems(nt.tags,TAGNAMES[19]))),nt.payeeNodeKey&&(it=hexToBuffer(nt.payeeNodeKey)),it&&ot&&!ot.equals(it))throw new Error("payee node key tag and payeeNodeKey attribute must match");it=ot||it;const at=Buffer$1.from(secp256k1.publicKeyCreate(rt));if(it&&!at.equals(it))throw new Error("The private key given is not the private key of the node public key given");const st=bech32.decode(nt.wordsTemp,Number.MAX_SAFE_INTEGER).words,lt=Buffer$1.concat([Buffer$1.from(nt.prefix,"utf8"),wordsToBuffer(st)]),ct=sha256(lt),ut=secp256k1.ecdsaSign(ct,rt);ut.signature=Buffer$1.from(ut.signature);const ht=hexToWord(ut.signature.toString("hex")+"0"+ut.recid);return nt.payeeNodeKey=at.toString("hex"),nt.signature=ut.signature.toString("hex"),nt.recoveryFlag=ut.recid,nt.wordsTemp=bech32.encode("temp",st.concat(ht),Number.MAX_SAFE_INTEGER),nt.complete=!0,nt.paymentRequest=bech32.encode(nt.prefix,st.concat(ht),Number.MAX_SAFE_INTEGER),orderKeys(nt)}function encode$3(tt,et){const nt=cloneDeep(tt);et===void 0&&(et=!0);const rt=!(nt.signature===void 0||nt.recoveryFlag===void 0);let it;if(nt.network===void 0&&!rt)nt.network=DEFAULTNETWORK,it=DEFAULTNETWORK;else{if(nt.network===void 0&&rt)throw new Error("Need network for proper payment request reconstruction");if(!nt.network.bech32||nt.network.pubKeyHash===void 0||nt.network.scriptHash===void 0||!Array.isArray(nt.network.validWitnessVersions))throw new Error("Invalid network");it=nt.network}if(nt.timestamp===void 0&&!rt)nt.timestamp=Math.floor(new Date().getTime()/1e3);else if(nt.timestamp===void 0&&rt)throw new Error("Need timestamp for proper payment request reconstruction");if(nt.tags===void 0)throw new Error("Payment Requests need tags array");if(!tagsContainItem(nt.tags,TAGNAMES[1]))throw new Error("Lightning Payment Request needs a payment hash");if(tagsContainItem(nt.tags,TAGNAMES[16]))if(tagsContainItem(nt.tags,TAGNAMES[5])){const vt=tagsItems(nt.tags,TAGNAMES[5]);if(!vt.payment_secret||!vt.payment_secret.supported&&!vt.payment_secret.required)throw new Error("Payment request requires feature bits with at least payment secret support flagged if payment secret is included")}else if(et)nt.tags.push({tagName:TAGNAMES[5],data:DEFAULTFEATUREBITS});else throw new Error("Payment request requires feature bits with at least payment secret support flagged if payment secret is included");if(!tagsContainItem(nt.tags,TAGNAMES[13])&&!tagsContainItem(nt.tags,TAGNAMES[23]))if(et)nt.tags.push({tagName:TAGNAMES[13],data:DEFAULTDESCRIPTION});else throw new Error("Payment request requires description or purpose commit hash");if(tagsContainItem(nt.tags,TAGNAMES[13])&&Buffer$1.from(tagsItems(nt.tags,TAGNAMES[13]),"utf8").length>639)throw new Error("Description is too long: Max length 639 bytes");!tagsContainItem(nt.tags,TAGNAMES[6])&&!rt&&et&&nt.tags.push({tagName:TAGNAMES[6],data:DEFAULTEXPIRETIME}),!tagsContainItem(nt.tags,TAGNAMES[24])&&!rt&&et&&nt.tags.push({tagName:TAGNAMES[24],data:DEFAULTCLTVEXPIRY});let ot,at;if(tagsContainItem(nt.tags,TAGNAMES[19])&&(at=hexToBuffer(tagsItems(nt.tags,TAGNAMES[19]))),nt.payeeNodeKey&&(ot=hexToBuffer(nt.payeeNodeKey)),ot&&at&&!at.equals(ot))throw new Error("payeeNodeKey and tag payee node key do not match");ot=ot||at,ot&&(nt.payeeNodeKey=ot.toString("hex"));let st,lt,ct;if(tagsContainItem(nt.tags,TAGNAMES[9])){const vt=tagsItems(nt.tags,TAGNAMES[9]);if(ct=vt.address,lt=vt.addressHash,st=vt.code,lt===void 0||st===void 0){let kt,St;try{kt=bitcoinjsAddress.fromBech32(ct),lt=kt.data,st=kt.version}catch{try{St=bitcoinjsAddress.fromBase58Check(ct),St.version===it.pubKeyHash?st=17:St.version===it.scriptHash&&(st=18),lt=St.hash}catch{throw new Error("Fallback address type is unknown")}}if(kt&&!(kt.version in it.validWitnessVersions))throw new Error("Fallback address witness version is unknown");if(kt&&kt.prefix!==it.bech32)throw new Error("Fallback address network type does not match payment request network type");if(St&&St.version!==it.pubKeyHash&&St.version!==it.scriptHash)throw new Error("Fallback address version (base58) is unknown or the network type is incorrect");vt.addressHash=lt.toString("hex"),vt.code=st}}tagsContainItem(nt.tags,TAGNAMES[3])&&tagsItems(nt.tags,TAGNAMES[3]).forEach(kt=>{if(kt.pubkey===void 0||kt.short_channel_id===void 0||kt.fee_base_msat===void 0||kt.fee_proportional_millionths===void 0||kt.cltv_expiry_delta===void 0)throw new Error("Routing info is incomplete");if(!secp256k1.publicKeyVerify(hexToBuffer(kt.pubkey)))throw new Error("Routing info pubkey is not a valid pubkey");const St=hexToBuffer(kt.short_channel_id);if(!(St instanceof Buffer$1)||St.length!==8)throw new Error("Routing info short channel id must be 8 bytes");if(typeof kt.fee_base_msat!="number"||Math.floor(kt.fee_base_msat)!==kt.fee_base_msat)throw new Error("Routing info fee base msat is not an integer");if(typeof kt.fee_proportional_millionths!="number"||Math.floor(kt.fee_proportional_millionths)!==kt.fee_proportional_millionths)throw new Error("Routing info fee proportional millionths is not an integer");if(typeof kt.cltv_expiry_delta!="number"||Math.floor(kt.cltv_expiry_delta)!==kt.cltv_expiry_delta)throw new Error("Routing info cltv expiry delta is not an integer")});let ut="ln";ut+=it.bech32;let ht;if(nt.millisatoshis&&nt.satoshis){if(ht=millisatToHrp(new BN(nt.millisatoshis,10)),satToHrp(new BN(nt.satoshis,10))!==ht)throw new Error("satoshis and millisatoshis do not match")}else nt.millisatoshis?ht=millisatToHrp(new BN(nt.millisatoshis,10)):nt.satoshis?ht=satToHrp(new BN(nt.satoshis,10)):ht="";ut+=ht;const dt=intBEToWords(nt.timestamp);for(;dt.length<7;)dt.unshift(0);const pt=nt.tags;let mt=[];pt.forEach(vt=>{const kt=Object.keys(TAGENCODERS);if(rt&&kt.push(unknownTagName),kt.indexOf(vt.tagName)===-1)throw new Error("Unknown tag key: "+vt.tagName);let St;if(vt.tagName!==unknownTagName){mt.push(TAGCODES[vt.tagName]);const Et=TAGENCODERS[vt.tagName];St=Et(vt.data)}else{const Et=unknownEncoder(vt.data);mt.push(Et.tagCode),St=Et.words}mt=mt.concat([0].concat(intBEToWords(St.length)).slice(-2)),mt=mt.concat(St)});let gt=dt.concat(mt);const yt=Buffer$1.concat([Buffer$1.from(ut,"utf8"),Buffer$1.from(convert$1(gt,5,8))]),bt=sha256(yt);let wt;if(rt)if(ot){const vt=Buffer$1.from(secp256k1.ecdsaRecover(Buffer$1.from(nt.signature,"hex"),nt.recoveryFlag,bt,!0));if(ot&&!ot.equals(vt))throw new Error("Signature, message, and recoveryID did not produce the same pubkey as payeeNodeKey");wt=hexToWord(nt.signature+"0"+nt.recoveryFlag)}else throw new Error("Reconstruction with signature and recoveryID requires payeeNodeKey to verify correctness of input data.");return wt&&(gt=gt.concat(wt)),tagsContainItem(nt.tags,TAGNAMES[6])&&(nt.timeExpireDate=nt.timestamp+tagsItems(nt.tags,TAGNAMES[6]),nt.timeExpireDateString=new Date(nt.timeExpireDate*1e3).toISOString()),nt.timestampString=new Date(nt.timestamp*1e3).toISOString(),nt.complete=!!wt,nt.paymentRequest=nt.complete?bech32.encode(ut,gt,Number.MAX_SAFE_INTEGER):"",nt.prefix=ut,nt.wordsTemp=bech32.encode("temp",gt,Number.MAX_SAFE_INTEGER),orderKeys(nt)}function decode$3(tt,et){if(typeof tt!="string")throw new Error("Lightning Payment Request must be string");if(tt.slice(0,2).toLowerCase()!=="ln")throw new Error("Not a proper lightning payment request");const nt=bech32.decode(tt,Number.MAX_SAFE_INTEGER);tt=tt.toLowerCase();const rt=nt.prefix;let it=nt.words;const ot=it.slice(-104),at=it.slice(0,-104);it=it.slice(0,-104);let st=wordsToBuffer(ot,!0);const lt=st.slice(-1)[0];if(st=st.slice(0,-1),!(lt in[0,1,2,3])||st.length!==64)throw new Error("Signature is missing or incorrect");let ct=rt.match(/^ln(\S+?)(\d*)([a-zA-Z]?)$/);if(ct&&!ct[2]&&(ct=rt.match(/^ln(\S+)$/)),!ct)throw new Error("Not a proper lightning payment request");const ut=ct[1];let ht;if(et){if(et.bech32===void 0||et.pubKeyHash===void 0||et.scriptHash===void 0||!Array.isArray(et.validWitnessVersions))throw new Error("Invalid network");ht=et}else switch(ut){case DEFAULTNETWORK.bech32:ht=DEFAULTNETWORK;break;case TESTNETWORK.bech32:ht=TESTNETWORK;break;case REGTESTNETWORK.bech32:ht=REGTESTNETWORK;break;case SIMNETWORK.bech32:ht=SIMNETWORK;break}if(!ht||ht.bech32!==ut)throw new Error("Unknown coin bech32 prefix");const dt=ct[2];let pt,mt,gt;if(dt){const $t=ct[3];try{pt=parseInt(hrpToSat(dt+$t,!0))}catch{pt=null,gt=!0}mt=hrpToMillisat(dt+$t,!0)}else pt=null,mt=null;const yt=wordsToIntBE(it.slice(0,7)),bt=new Date(yt*1e3).toISOString();it=it.slice(7);const wt=[];let vt,kt,St,Et;for(;it.length>0;){const $t=it[0].toString();vt=TAGNAMES[$t]||unknownTagName,kt=TAGPARSERS[$t]||getUnknownParser($t),it=it.slice(1),St=wordsToIntBE(it.slice(0,2)),it=it.slice(2),Et=it.slice(0,St),it=it.slice(St),wt.push({tagName:vt,data:kt(Et,ht)})}let At,Tt;tagsContainItem(wt,TAGNAMES[6])&&(At=yt+tagsItems(wt,TAGNAMES[6]),Tt=new Date(At*1e3).toISOString());const Mt=Buffer$1.concat([Buffer$1.from(rt,"utf8"),Buffer$1.from(convert$1(at,5,8))]),Lt=sha256(Mt),jt=Buffer$1.from(secp256k1.ecdsaRecover(st,lt,Lt,!0));if(tagsContainItem(wt,TAGNAMES[19])&&tagsItems(wt,TAGNAMES[19])!==jt.toString("hex"))throw new Error("Lightning Payment Request signature pubkey does not match payee pubkey");let Rt={paymentRequest:tt,complete:!0,prefix:rt,wordsTemp:bech32.encode("temp",at.concat(ot),Number.MAX_SAFE_INTEGER),network:ht,satoshis:pt,millisatoshis:mt,timestamp:yt,timestampString:bt,payeeNodeKey:jt.toString("hex"),signature:st.toString("hex"),recoveryFlag:lt,tags:wt};return gt&&delete Rt.satoshis,At&&(Rt=Object.assign(Rt,{timeExpireDate:At,timeExpireDateString:Tt})),orderKeys(Rt,!0)}function getTagsObject(tt){const et={};return tt.forEach(nt=>{nt.tagName===unknownTagName?(et.unknownTags||(et.unknownTags=[]),et.unknownTags.push(nt.data)):et[nt.tagName]=nt.data}),et}var payreq={encode:encode$3,decode:decode$3,sign:sign$3,satToHrp,millisatToHrp,hrpToSat,hrpToMillisat};(function(tt){var et=commonjsGlobal&&commonjsGlobal.__importDefault||function(ut){return ut&&ut.__esModule?ut:{default:ut}};Object.defineProperty(tt,"__esModule",{value:!0}),tt.getIdFromRequest=tt.decode=tt.isHex=tt.stringToBytes=tt.isValue=tt.utf8Encoder=void 0;const nt=et(payreq),rt=et(assert_1);let it;typeof window<"u"&&window&&window.TextEncoder?it=window.TextEncoder:it=util$1.TextEncoder,tt.utf8Encoder=new it;const ot=ut=>ut!=null;tt.isValue=ot;const at=ut=>(0,tt.isValue)(ut)?tt.utf8Encoder.encode(ut):ut;tt.stringToBytes=at;function st(ut){return Buffer.from(ut,"hex").toString("hex")===ut}tt.isHex=st;function lt(ut){let ht;return ut.indexOf("lnsb")===0&&(ht={bech32:"sb"}),nt.default.decode(ut,ht)}tt.decode=lt;function ct(ut){const dt=lt(ut).tags.find(mt=>mt.tagName==="payment_hash");(0,rt.default)(dt&&dt.data,"Could not find payment hash on invoice request");const pt=dt==null?void 0:dt.data.toString();if(!pt||!pt.length)throw new Error("Could not get payment hash from payment request");return pt}tt.getIdFromRequest=ct})(helpers);var hasRequiredLsat;function requireLsat(){if(hasRequiredLsat)return lsat$1;hasRequiredLsat=1;var tt=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(dt,pt,mt,gt){gt===void 0&&(gt=mt);var yt=Object.getOwnPropertyDescriptor(pt,mt);(!yt||("get"in yt?!pt.__esModule:yt.writable||yt.configurable))&&(yt={enumerable:!0,get:function(){return pt[mt]}}),Object.defineProperty(dt,gt,yt)}:function(dt,pt,mt,gt){gt===void 0&&(gt=mt),dt[gt]=pt[mt]}),et=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(dt,pt){Object.defineProperty(dt,"default",{enumerable:!0,value:pt})}:function(dt,pt){dt.default=pt}),nt=commonjsGlobal&&commonjsGlobal.__importStar||function(dt){if(dt&&dt.__esModule)return dt;var pt={};if(dt!=null)for(var mt in dt)mt!=="default"&&Object.prototype.hasOwnProperty.call(dt,mt)&&tt(pt,dt,mt);return et(pt,dt),pt},rt=commonjsGlobal&&commonjsGlobal.__importDefault||function(dt){return dt&&dt.__esModule?dt:{default:dt}};Object.defineProperty(lsat$1,"__esModule",{value:!0}),lsat$1.Lsat=lsat$1.parseChallengePart=void 0;const it=assert_1,ot=bufio,at=rt(requireCryptoBrowserify()),st=nt(macaroon$1),lt=requireDist(),ct=helpers;function ut(dt){let pt;const mt=dt.indexOf("=");it(mt>-1,'Incorrectly encoded challenge. Missing "=" separator.');const gt=dt.length-1-mt;return pt=dt.slice(-gt),it(pt.length,"Incorrectly encoded macaroon challenge"),it(pt[0]==='"'&&pt[pt.length-1]==='"',"Incorectly encoded challenge, challenges must be enclosed in double quotes."),pt=pt.slice(1,pt.length-1),pt}lsat$1.parseChallengePart=ut;class ht extends ot.Struct{constructor(pt){super(pt),this.id="",this.validUntil=0,this.invoice="",this.baseMacaroon="",this.paymentHash=Buffer.alloc(32).toString("hex"),this.timeCreated=Date.now(),this.paymentPreimage=null,this.amountPaid=0,this.routingFeePaid=0,this.invoiceAmount=0,pt&&this.fromOptions(pt)}fromOptions(pt){it(typeof pt.baseMacaroon=="string","Require serialized macaroon"),this.baseMacaroon=pt.baseMacaroon,it(typeof pt.id=="string","Require string id"),this.id=pt.id,it(typeof pt.paymentHash=="string","Require paymentHash"),this.paymentHash=pt.paymentHash;const mt=this.getExpirationFromMacaroon(pt.baseMacaroon);return mt&&(this.validUntil=mt),pt.invoice&&this.addInvoice(pt.invoice),pt.timeCreated&&(this.timeCreated=pt.timeCreated),pt.paymentPreimage&&(this.paymentPreimage=pt.paymentPreimage),pt.amountPaid&&(this.amountPaid=pt.amountPaid),pt.routingFeePaid&&(this.routingFeePaid=pt.routingFeePaid),this}isExpired(){return this.validUntil===0?!1:this.validUntilwt.tagName==="payment_hash");it(yt,"Could not find payment hash on invoice request");const bt=yt==null?void 0:yt.data;it(bt===this.paymentHash,"paymentHash from invoice did not match LSAT"),this.invoiceAmount=gt||0,this.invoice=pt}catch(mt){throw new Error(`Problem adding invoice data to LSAT: ${mt.message}`)}}static fromMacaroon(pt,mt){it(typeof pt=="string","Requires a raw macaroon string for macaroon to generate LSAT");let gt,yt;try{yt=(0,lt.decodeIdentifierFromMacaroon)(pt),gt=lt.Identifier.fromString(yt)}catch(vt){throw new Error(`Unexpected encoding for macaroon identifier: ${vt.message}`)}const bt={id:yt,baseMacaroon:pt,paymentHash:gt.paymentHash.toString("hex")},wt=new this(bt);return mt&&wt.addInvoice(mt),wt}static fromToken(pt,mt){it(pt.includes(this.type),"Token must include LSAT prefix"),pt=pt.slice(this.type.length).trim();const[gt,yt]=pt.split(":"),bt=ht.fromMacaroon(gt,mt);return yt&&bt.setPreimage(yt),bt}static fromChallenge(pt){const mt="macaroon=",gt="invoice=";let yt;yt=pt.split(","),yt.length<2&&(yt=pt.split(" ")),it(yt.length>=2,"Expected at least two challenges in the LSAT: invoice and macaroon");let bt="",wt="";for(const St of yt){if(!bt.length&&St.indexOf(mt)>-1)try{bt=ut(St)}catch(Et){throw new Error(`Problem parsing macaroon challenge: ${Et.message}`)}if(!wt.length&&St.indexOf(gt)>-1)try{wt=ut(St)}catch(Et){throw new Error(`Problem parsing macaroon challenge: ${Et.message}`)}if(wt.length&&bt.length)break}it(wt.length&&bt.length,"Expected WWW-Authenticate challenge with macaroon and invoice data");const vt=(0,ct.getIdFromRequest)(wt),kt=(0,lt.decodeIdentifierFromMacaroon)(bt);return new this({id:kt,baseMacaroon:bt,paymentHash:vt,invoice:wt})}static fromHeader(pt){const mt=pt.slice(this.type.length).trim();return it(pt.length!==mt.length,'header missing token type prefix "LSAT"'),ht.fromChallenge(mt)}}return lsat$1.Lsat=ht,ht.type="LSAT",lsat$1}var types={},lsat={};Object.defineProperty(lsat,"__esModule",{value:!0});var satisfier={};Object.defineProperty(satisfier,"__esModule",{value:!0});(function(tt){var et=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(rt,it,ot,at){at===void 0&&(at=ot);var st=Object.getOwnPropertyDescriptor(it,ot);(!st||("get"in st?!it.__esModule:st.writable||st.configurable))&&(st={enumerable:!0,get:function(){return it[ot]}}),Object.defineProperty(rt,at,st)}:function(rt,it,ot,at){at===void 0&&(at=ot),rt[at]=it[ot]}),nt=commonjsGlobal&&commonjsGlobal.__exportStar||function(rt,it){for(var ot in rt)ot!=="default"&&!Object.prototype.hasOwnProperty.call(it,ot)&&et(it,rt,ot)};Object.defineProperty(tt,"__esModule",{value:!0}),nt(lsat,tt),nt(satisfier,tt)})(types);var satisfiers={},hasRequiredSatisfiers;function requireSatisfiers(){if(hasRequiredSatisfiers)return satisfiers;hasRequiredSatisfiers=1,Object.defineProperty(satisfiers,"__esModule",{value:!0}),satisfiers.createCapabilitiesSatisfier=satisfiers.createServicesSatisfier=satisfiers.expirationSatisfier=void 0;const tt=requireDist();satisfiers.expirationSatisfier={condition:"expiration",satisfyPrevious:(rt,it)=>rt.condition!=="expiration"||it.condition!=="expiration"?!1:!(rt.value!(rt.condition!=="expiration"||rt.value{if(typeof rt!="string")throw new tt.InvalidServicesError;return{condition:tt.SERVICES_CAVEAT_CONDITION,satisfyPrevious:(it,ot)=>{const at=(0,tt.decodeServicesCaveat)(it.value.toString()),st=(0,tt.decodeServicesCaveat)(ot.value.toString());if(!Array.isArray(at)||!Array.isArray(st))throw new tt.InvalidServicesError;let lt=new Map;lt=at.reduce((ct,ut)=>ct.set(ut.name,ut.tier),lt);for(const ct of st)if(!lt.has(ct.name)||lt.get(ct.name)>ct.tier)return!1;return!0},satisfyFinal:it=>{const ot=(0,tt.decodeServicesCaveat)(it.value.toString());if(!Array.isArray(ot))throw new tt.InvalidServicesError;for(const at of ot)if(at.name===rt)return!0;return!1}}};satisfiers.createServicesSatisfier=et;const nt=(rt,it)=>{if(typeof it!="string")throw new tt.InvalidCapabilitiesError;if(typeof rt!="string")throw new tt.InvalidCapabilitiesError;return{condition:rt+tt.SERVICE_CAPABILITIES_SUFFIX,satisfyPrevious:(ot,at)=>{const st=(0,tt.decodeCapabilitiesValue)(ot.value.toString()),lt=(0,tt.decodeCapabilitiesValue)(at.value.toString());if(!Array.isArray(st)||!Array.isArray(lt))throw new tt.InvalidServicesError;let ct=new Set;ct=st.reduce((ut,ht)=>ut.add(ht),ct);for(const ut of lt)if(!ct.has(ut))return!1;return!0},satisfyFinal:ot=>{const at=(0,tt.decodeCapabilitiesValue)(ot.value.toString());if(!Array.isArray(at))throw new tt.InvalidServicesError;for(const st of at)if(st===it)return!0;return!1}}};return satisfiers.createCapabilitiesSatisfier=nt,satisfiers}var macaroon={},base64={},__extends$1=commonjsGlobal&&commonjsGlobal.__extends||function(){var tt=function(et,nt){return tt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(rt,it){rt.__proto__=it}||function(rt,it){for(var ot in it)it.hasOwnProperty(ot)&&(rt[ot]=it[ot])},tt(et,nt)};return function(et,nt){tt(et,nt);function rt(){this.constructor=et}et.prototype=nt===null?Object.create(nt):(rt.prototype=nt.prototype,new rt)}}();Object.defineProperty(base64,"__esModule",{value:!0});var INVALID_BYTE=256,Coder=function(){function tt(et){et===void 0&&(et="="),this._paddingCharacter=et}return tt.prototype.encodedLength=function(et){return this._paddingCharacter?(et+2)/3*4|0:(et*8+5)/6|0},tt.prototype.encode=function(et){for(var nt="",rt=0;rt>>3*6&63),nt+=this._encodeByte(it>>>2*6&63),nt+=this._encodeByte(it>>>1*6&63),nt+=this._encodeByte(it>>>0*6&63)}var ot=et.length-rt;if(ot>0){var it=et[rt]<<16|(ot===2?et[rt+1]<<8:0);nt+=this._encodeByte(it>>>3*6&63),nt+=this._encodeByte(it>>>2*6&63),ot===2?nt+=this._encodeByte(it>>>1*6&63):nt+=this._paddingCharacter||"",nt+=this._paddingCharacter||""}return nt},tt.prototype.maxDecodedLength=function(et){return this._paddingCharacter?et/4*3|0:(et*6+7)/8|0},tt.prototype.decodedLength=function(et){return this.maxDecodedLength(et.length-this._getPaddingLength(et))},tt.prototype.decode=function(et){if(et.length===0)return new Uint8Array(0);for(var nt=this._getPaddingLength(et),rt=et.length-nt,it=new Uint8Array(this.maxDecodedLength(rt)),ot=0,at=0,st=0,lt=0,ct=0,ut=0,ht=0;at>>4,it[ot++]=ct<<4|ut>>>2,it[ot++]=ut<<6|ht,st|=lt&INVALID_BYTE,st|=ct&INVALID_BYTE,st|=ut&INVALID_BYTE,st|=ht&INVALID_BYTE;if(at>>4,st|=lt&INVALID_BYTE,st|=ct&INVALID_BYTE),at>>2,st|=ut&INVALID_BYTE),at>>8&0-65-26+97,nt+=51-et>>>8&26-97-52+48,nt+=61-et>>>8&52-48-62+43,nt+=62-et>>>8&62-43-63+47,String.fromCharCode(nt)},tt.prototype._decodeChar=function(et){var nt=INVALID_BYTE;return nt+=(42-et&et-44)>>>8&-INVALID_BYTE+et-43+62,nt+=(46-et&et-48)>>>8&-INVALID_BYTE+et-47+63,nt+=(47-et&et-58)>>>8&-INVALID_BYTE+et-48+52,nt+=(64-et&et-91)>>>8&-INVALID_BYTE+et-65+0,nt+=(96-et&et-123)>>>8&-INVALID_BYTE+et-97+26,nt},tt.prototype._getPaddingLength=function(et){var nt=0;if(this._paddingCharacter){for(var rt=et.length-1;rt>=0&&et[rt]===this._paddingCharacter;rt--)nt++;if(et.length<4||nt>2)throw new Error("Base64Coder: incorrect padding")}return nt},tt}();base64.Coder=Coder;var stdCoder=new Coder;function encode$2(tt){return stdCoder.encode(tt)}base64.encode=encode$2;function decode$2(tt){return stdCoder.decode(tt)}base64.decode=decode$2;var URLSafeCoder=function(tt){__extends$1(et,tt);function et(){return tt!==null&&tt.apply(this,arguments)||this}return et.prototype._encodeByte=function(nt){var rt=nt;return rt+=65,rt+=25-nt>>>8&0-65-26+97,rt+=51-nt>>>8&26-97-52+48,rt+=61-nt>>>8&52-48-62+45,rt+=62-nt>>>8&62-45-63+95,String.fromCharCode(rt)},et.prototype._decodeChar=function(nt){var rt=INVALID_BYTE;return rt+=(44-nt&nt-46)>>>8&-INVALID_BYTE+nt-45+62,rt+=(94-nt&nt-96)>>>8&-INVALID_BYTE+nt-95+63,rt+=(47-nt&nt-58)>>>8&-INVALID_BYTE+nt-48+52,rt+=(64-nt&nt-91)>>>8&-INVALID_BYTE+nt-65+0,rt+=(96-nt&nt-123)>>>8&-INVALID_BYTE+nt-97+26,rt},et}(Coder);base64.URLSafeCoder=URLSafeCoder;var urlSafeCoder=new URLSafeCoder;function encodeURLSafe(tt){return urlSafeCoder.encode(tt)}base64.encodeURLSafe=encodeURLSafe;function decodeURLSafe(tt){return urlSafeCoder.decode(tt)}base64.decodeURLSafe=decodeURLSafe;base64.encodedLength=function(tt){return stdCoder.encodedLength(tt)};base64.maxDecodedLength=function(tt){return stdCoder.maxDecodedLength(tt)};base64.decodedLength=function(tt){return stdCoder.decodedLength(tt)};var __createBinding$1=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(tt,et,nt,rt){rt===void 0&&(rt=nt);var it=Object.getOwnPropertyDescriptor(et,nt);(!it||("get"in it?!et.__esModule:it.writable||it.configurable))&&(it={enumerable:!0,get:function(){return et[nt]}}),Object.defineProperty(tt,rt,it)}:function(tt,et,nt,rt){rt===void 0&&(rt=nt),tt[rt]=et[nt]}),__setModuleDefault$1=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(tt,et){Object.defineProperty(tt,"default",{enumerable:!0,value:et})}:function(tt,et){tt.default=et}),__importStar$1=commonjsGlobal&&commonjsGlobal.__importStar||function(tt){if(tt&&tt.__esModule)return tt;var et={};if(tt!=null)for(var nt in tt)nt!=="default"&&Object.prototype.hasOwnProperty.call(tt,nt)&&__createBinding$1(et,tt,nt);return __setModuleDefault$1(et,tt),et};Object.defineProperty(macaroon,"__esModule",{value:!0});macaroon.getRawMacaroon=macaroon.verifyMacaroonCaveats=macaroon.getCaveatsFromMacaroon=void 0;const caveat_1=caveat,helpers_1=helpers,Macaroon=__importStar$1(macaroon$1),base64_1=base64;function getCaveatsFromMacaroon(tt){var et;const nt=Macaroon.importMacaroon(tt),rt=[],it=(et=nt._exportAsJSONObjectV2())===null||et===void 0?void 0:et.c;if(it)for(const ot of it){if(!ot.i)continue;const at=caveat_1.Caveat.decode(ot.i);rt.push(at)}return rt}macaroon.getCaveatsFromMacaroon=getCaveatsFromMacaroon;function verifyMacaroonCaveats(tt,et,nt,rt={}){try{const it=Macaroon.importMacaroon(tt),ot=(0,helpers_1.stringToBytes)(et);it.verify(ot,()=>null);const at=getCaveatsFromMacaroon(tt);return nt&&!Array.isArray(nt)&&(nt=[nt]),!at.length&&(!nt||!nt.length)?!0:(0,caveat_1.verifyCaveats)(at,nt,rt)}catch{return!1}}macaroon.verifyMacaroonCaveats=verifyMacaroonCaveats;function getRawMacaroon(tt,et=!1){const nt=tt._exportBinaryV2();return et?(0,base64_1.encodeURLSafe)(nt):(0,base64_1.encode)(nt)}macaroon.getRawMacaroon=getRawMacaroon;var service={};(function(tt){var et=commonjsGlobal&&commonjsGlobal.__importDefault||function(dt){return dt&&dt.__esModule?dt:{default:dt}};Object.defineProperty(tt,"__esModule",{value:!0}),tt.decodeCapabilitiesValue=tt.createNewCapabilitiesCaveat=tt.SERVICE_CAPABILITIES_SUFFIX=tt.encodeServicesCaveatValue=tt.decodeServicesCaveat=tt.SERVICES_CAVEAT_CONDITION=tt.Service=tt.InvalidCapabilitiesError=tt.InvalidServicesError=tt.NoServicesError=void 0;const nt=et(bufio),rt=caveat;class it extends Error{constructor(...pt){super(...pt),this.name="NoServicesError",this.message="no services found",Error.captureStackTrace&&Error.captureStackTrace(this,it)}}tt.NoServicesError=it;class ot extends Error{constructor(pt){super(pt),this.name="InvalidServicesError",pt||(this.message='service must be of the form "name:tier"'),Error.captureStackTrace&&Error.captureStackTrace(this,ot)}}tt.InvalidServicesError=ot;class at extends Error{constructor(pt){super(pt),this.name="InvalidCapabilitiesError",pt||(this.message="capabilities must be a string or array of strings"),Error.captureStackTrace&&Error.captureStackTrace(this,ot)}}tt.InvalidCapabilitiesError=at;class st extends nt.default.Struct{constructor(pt){super(pt),this.name=pt.name,this.tier=pt.tier}}tt.Service=st,tt.SERVICES_CAVEAT_CONDITION="services";const lt=dt=>{if(!dt.length)throw new it;const pt=[],mt=dt.split(",");for(const gt of mt){const[yt,bt]=gt.split(":");if(!yt||!bt)throw new ot;if(isNaN(+bt))throw new ot("tier must be a number");if(!isNaN(+yt))throw new ot("service name must be a string");pt.push(new st({name:yt,tier:+bt}))}return pt};tt.decodeServicesCaveat=lt;const ct=dt=>{if(!dt.length)throw new it;let pt="";for(let mt=0;mt{let mt;if(!pt)mt="";else if(Array.isArray(pt))mt=pt.join(",");else{if(typeof pt!="string")throw new at;mt=pt}return new rt.Caveat({condition:dt+tt.SERVICE_CAPABILITIES_SUFFIX,value:mt,comp:"="})};tt.createNewCapabilitiesCaveat=ut;const ht=dt=>{if(typeof dt!="string")throw new at;return dt.toString().split(",").map(pt=>pt.trim())};tt.decodeCapabilitiesValue=ht})(service);var hasRequiredDist;function requireDist(){return hasRequiredDist||(hasRequiredDist=1,function(tt){var et=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(rt,it,ot,at){at===void 0&&(at=ot);var st=Object.getOwnPropertyDescriptor(it,ot);(!st||("get"in st?!it.__esModule:st.writable||st.configurable))&&(st={enumerable:!0,get:function(){return it[ot]}}),Object.defineProperty(rt,at,st)}:function(rt,it,ot,at){at===void 0&&(at=ot),rt[at]=it[ot]}),nt=commonjsGlobal&&commonjsGlobal.__exportStar||function(rt,it){for(var ot in rt)ot!=="default"&&!Object.prototype.hasOwnProperty.call(it,ot)&&et(it,rt,ot)};Object.defineProperty(tt,"__esModule",{value:!0}),nt(identifier,tt),nt(caveat,tt),nt(requireLsat(),tt),nt(types,tt),nt(requireSatisfiers(),tt),nt(macaroon,tt),nt(service,tt)}(dist$2)),dist$2}var distExports$1=requireDist();const ActionsMapper={searching:"GET",adding_node:"POST",teachme:"POST",ask_question:"POST",sentiments:"GET"},getLSat=async(tt,et)=>{try{const nt=new URL(`${API_URL}/${tt}`),rt=new URLSearchParams(et);et&&rt.forEach((ct,ut)=>{nt.searchParams.append(ut,ct)});const it=await fetch(nt,{method:ActionsMapper[tt]??"GET"}),ot=await it.json(),at=["teachme","ask_question","sentiments"].includes(tt)?distExports$1.Lsat.fromHeader(it.headers.get("www-authenticate")||""):distExports$1.Lsat.fromHeader(ot.headers),st=await distExports$2.saveLsat(at.invoice,at.baseMacaroon,"knowledge-graph.sphinx.chat");return st.success===!1&&await distExports$2.topup(),at.setPreimage(st.lsat.split(":")[1]),at.toToken()}catch(nt){return console.warn(nt),null}},defaultData$9={isAdmin:!1,pubKey:""},useUserStore=react(tt=>({...defaultData$9,setIsAdmin:et=>tt({isAdmin:et}),setPubKey:et=>tt({pubKey:et})})),executeIfTetsRunning=tt=>{isE2E&&tt()};function executeIfProd(tt){return isDevelopment||isE2E?null:tt()}function addToGlobalForE2e(tt,et){executeIfTetsRunning(()=>{window.e2e||(window.e2e={}),window.e2e[et]=tt})}const E2E=()=>{const tt=useUserStore();return reactExports.useEffect(()=>{isE2E&&(console.log({isE2E}),addToGlobalForE2e(tt,"userStore"))},[tt]),jsxRuntimeExports.jsx("div",{id:"e2e-check"})},E2ETests=reactExports.memo(()=>isE2E?jsxRuntimeExports.jsx(E2E,{}):null);function timeToMilliseconds(tt){const[et,nt,rt]=tt.split(":").map(Number);return Number((et*60*60*1e3+nt*60*1e3+rt*1e3).toFixed(6))}/** * @license * Copyright 2010-2022 Three.js Authors * SPDX-License-Identifier: MIT - */const REVISION="143",MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},CullFaceNone=0,CullFaceBack=1,CullFaceFront=2,CullFaceFrontBack=3,BasicShadowMap=0,PCFShadowMap=1,PCFSoftShadowMap=2,VSMShadowMap=3,FrontSide=0,BackSide=1,DoubleSide=2,FlatShading=1,SmoothShading=2,NoBlending=0,NormalBlending=1,AdditiveBlending=2,SubtractiveBlending=3,MultiplyBlending=4,CustomBlending=5,AddEquation=100,SubtractEquation=101,ReverseSubtractEquation=102,MinEquation=103,MaxEquation=104,ZeroFactor=200,OneFactor=201,SrcColorFactor=202,OneMinusSrcColorFactor=203,SrcAlphaFactor=204,OneMinusSrcAlphaFactor=205,DstAlphaFactor=206,OneMinusDstAlphaFactor=207,DstColorFactor=208,OneMinusDstColorFactor=209,SrcAlphaSaturateFactor=210,NeverDepth=0,AlwaysDepth=1,LessDepth=2,LessEqualDepth=3,EqualDepth=4,GreaterEqualDepth=5,GreaterDepth=6,NotEqualDepth=7,MultiplyOperation=0,MixOperation=1,AddOperation=2,NoToneMapping=0,LinearToneMapping=1,ReinhardToneMapping=2,CineonToneMapping=3,ACESFilmicToneMapping=4,CustomToneMapping=5,UVMapping=300,CubeReflectionMapping=301,CubeRefractionMapping=302,EquirectangularReflectionMapping=303,EquirectangularRefractionMapping=304,CubeUVReflectionMapping=306,RepeatWrapping=1e3,ClampToEdgeWrapping=1001,MirroredRepeatWrapping=1002,NearestFilter=1003,NearestMipmapNearestFilter=1004,NearestMipMapNearestFilter=1004,NearestMipmapLinearFilter=1005,NearestMipMapLinearFilter=1005,LinearFilter=1006,LinearMipmapNearestFilter=1007,LinearMipMapNearestFilter=1007,LinearMipmapLinearFilter=1008,LinearMipMapLinearFilter=1008,UnsignedByteType=1009,ByteType=1010,ShortType=1011,UnsignedShortType=1012,IntType=1013,UnsignedIntType=1014,FloatType=1015,HalfFloatType=1016,UnsignedShort4444Type=1017,UnsignedShort5551Type=1018,UnsignedInt248Type=1020,AlphaFormat=1021,RGBFormat=1022,RGBAFormat=1023,LuminanceFormat=1024,LuminanceAlphaFormat=1025,DepthFormat=1026,DepthStencilFormat=1027,RedFormat=1028,RedIntegerFormat=1029,RGFormat=1030,RGIntegerFormat=1031,RGBAIntegerFormat=1033,RGB_S3TC_DXT1_Format=33776,RGBA_S3TC_DXT1_Format=33777,RGBA_S3TC_DXT3_Format=33778,RGBA_S3TC_DXT5_Format=33779,RGB_PVRTC_4BPPV1_Format=35840,RGB_PVRTC_2BPPV1_Format=35841,RGBA_PVRTC_4BPPV1_Format=35842,RGBA_PVRTC_2BPPV1_Format=35843,RGB_ETC1_Format=36196,RGB_ETC2_Format=37492,RGBA_ETC2_EAC_Format=37496,RGBA_ASTC_4x4_Format=37808,RGBA_ASTC_5x4_Format=37809,RGBA_ASTC_5x5_Format=37810,RGBA_ASTC_6x5_Format=37811,RGBA_ASTC_6x6_Format=37812,RGBA_ASTC_8x5_Format=37813,RGBA_ASTC_8x6_Format=37814,RGBA_ASTC_8x8_Format=37815,RGBA_ASTC_10x5_Format=37816,RGBA_ASTC_10x6_Format=37817,RGBA_ASTC_10x8_Format=37818,RGBA_ASTC_10x10_Format=37819,RGBA_ASTC_12x10_Format=37820,RGBA_ASTC_12x12_Format=37821,RGBA_BPTC_Format=36492,LoopOnce=2200,LoopRepeat=2201,LoopPingPong=2202,InterpolateDiscrete=2300,InterpolateLinear=2301,InterpolateSmooth=2302,ZeroCurvatureEnding=2400,ZeroSlopeEnding=2401,WrapAroundEnding=2402,NormalAnimationBlendMode=2500,AdditiveAnimationBlendMode=2501,TrianglesDrawMode=0,TriangleStripDrawMode=1,TriangleFanDrawMode=2,LinearEncoding=3e3,sRGBEncoding=3001,BasicDepthPacking=3200,RGBADepthPacking=3201,TangentSpaceNormalMap=0,ObjectSpaceNormalMap=1,NoColorSpace$1="",SRGBColorSpace$1="srgb",LinearSRGBColorSpace$1="srgb-linear",ZeroStencilOp=0,KeepStencilOp=7680,ReplaceStencilOp=7681,IncrementStencilOp=7682,DecrementStencilOp=7683,IncrementWrapStencilOp=34055,DecrementWrapStencilOp=34056,InvertStencilOp=5386,NeverStencilFunc=512,LessStencilFunc=513,EqualStencilFunc=514,LessEqualStencilFunc=515,GreaterStencilFunc=516,NotEqualStencilFunc=517,GreaterEqualStencilFunc=518,AlwaysStencilFunc=519,StaticDrawUsage=35044,DynamicDrawUsage=35048,StreamDrawUsage=35040,StaticReadUsage=35045,DynamicReadUsage=35049,StreamReadUsage=35041,StaticCopyUsage=35046,DynamicCopyUsage=35050,StreamCopyUsage=35042,GLSL1="100",GLSL3="300 es",_SRGBAFormat=1035;let EventDispatcher$1=class{addEventListener(et,nt){this._listeners===void 0&&(this._listeners={});const rt=this._listeners;rt[et]===void 0&&(rt[et]=[]),rt[et].indexOf(nt)===-1&&rt[et].push(nt)}hasEventListener(et,nt){if(this._listeners===void 0)return!1;const rt=this._listeners;return rt[et]!==void 0&&rt[et].indexOf(nt)!==-1}removeEventListener(et,nt){if(this._listeners===void 0)return;const it=this._listeners[et];if(it!==void 0){const ot=it.indexOf(nt);ot!==-1&&it.splice(ot,1)}}dispatchEvent(et){if(this._listeners===void 0)return;const rt=this._listeners[et.type];if(rt!==void 0){et.target=this;const it=rt.slice(0);for(let ot=0,at=it.length;ot>8&255]+_lut$1[tt>>16&255]+_lut$1[tt>>24&255]+"-"+_lut$1[et&255]+_lut$1[et>>8&255]+"-"+_lut$1[et>>16&15|64]+_lut$1[et>>24&255]+"-"+_lut$1[nt&63|128]+_lut$1[nt>>8&255]+"-"+_lut$1[nt>>16&255]+_lut$1[nt>>24&255]+_lut$1[rt&255]+_lut$1[rt>>8&255]+_lut$1[rt>>16&255]+_lut$1[rt>>24&255]).toLowerCase()}function clamp$4(tt,et,nt){return Math.max(et,Math.min(nt,tt))}function euclideanModulo(tt,et){return(tt%et+et)%et}function mapLinear(tt,et,nt,rt,it){return rt+(tt-et)*(it-rt)/(nt-et)}function inverseLerp(tt,et,nt){return tt!==et?(nt-tt)/(et-tt):0}function lerp(tt,et,nt){return(1-nt)*tt+nt*et}function damp$1(tt,et,nt,rt){return lerp(tt,et,1-Math.exp(-nt*rt))}function pingpong(tt,et=1){return et-Math.abs(euclideanModulo(tt,et*2)-et)}function smoothstep(tt,et,nt){return tt<=et?0:tt>=nt?1:(tt=(tt-et)/(nt-et),tt*tt*(3-2*tt))}function smootherstep(tt,et,nt){return tt<=et?0:tt>=nt?1:(tt=(tt-et)/(nt-et),tt*tt*tt*(tt*(tt*6-15)+10))}function randInt(tt,et){return tt+Math.floor(Math.random()*(et-tt+1))}function randFloat(tt,et){return tt+Math.random()*(et-tt)}function randFloatSpread(tt){return tt*(.5-Math.random())}function seededRandom(tt){tt!==void 0&&(_seed=tt);let et=_seed+=1831565813;return et=Math.imul(et^et>>>15,et|1),et^=et+Math.imul(et^et>>>7,et|61),((et^et>>>14)>>>0)/4294967296}function degToRad(tt){return tt*DEG2RAD$1}function radToDeg(tt){return tt*RAD2DEG}function isPowerOfTwo(tt){return(tt&tt-1)===0&&tt!==0}function ceilPowerOfTwo(tt){return Math.pow(2,Math.ceil(Math.log(tt)/Math.LN2))}function floorPowerOfTwo(tt){return Math.pow(2,Math.floor(Math.log(tt)/Math.LN2))}function setQuaternionFromProperEuler(tt,et,nt,rt,it){const ot=Math.cos,at=Math.sin,st=ot(nt/2),lt=at(nt/2),ct=ot((et+rt)/2),ut=at((et+rt)/2),ht=ot((et-rt)/2),dt=at((et-rt)/2),pt=ot((rt-et)/2),mt=at((rt-et)/2);switch(it){case"XYX":tt.set(st*ut,lt*ht,lt*dt,st*ct);break;case"YZY":tt.set(lt*dt,st*ut,lt*ht,st*ct);break;case"ZXZ":tt.set(lt*ht,lt*dt,st*ut,st*ct);break;case"XZX":tt.set(st*ut,lt*mt,lt*pt,st*ct);break;case"YXY":tt.set(lt*pt,st*ut,lt*mt,st*ct);break;case"ZYZ":tt.set(lt*mt,lt*pt,st*ut,st*ct);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+it)}}function denormalize$1(tt,et){switch(et.constructor){case Float32Array:return tt;case Uint16Array:return tt/65535;case Uint8Array:return tt/255;case Int16Array:return Math.max(tt/32767,-1);case Int8Array:return Math.max(tt/127,-1);default:throw new Error("Invalid component type.")}}function normalize$2(tt,et){switch(et.constructor){case Float32Array:return tt;case Uint16Array:return Math.round(tt*65535);case Uint8Array:return Math.round(tt*255);case Int16Array:return Math.round(tt*32767);case Int8Array:return Math.round(tt*127);default:throw new Error("Invalid component type.")}}var MathUtils=Object.freeze({__proto__:null,DEG2RAD:DEG2RAD$1,RAD2DEG,generateUUID:generateUUID$1,clamp:clamp$4,euclideanModulo,mapLinear,inverseLerp,lerp,damp:damp$1,pingpong,smoothstep,smootherstep,randInt,randFloat,randFloatSpread,seededRandom,degToRad,radToDeg,isPowerOfTwo,ceilPowerOfTwo,floorPowerOfTwo,setQuaternionFromProperEuler,normalize:normalize$2,denormalize:denormalize$1});class Vector2{constructor(et=0,nt=0){Vector2.prototype.isVector2=!0,this.x=et,this.y=nt}get width(){return this.x}set width(et){this.x=et}get height(){return this.y}set height(et){this.y=et}set(et,nt){return this.x=et,this.y=nt,this}setScalar(et){return this.x=et,this.y=et,this}setX(et){return this.x=et,this}setY(et){return this.y=et,this}setComponent(et,nt){switch(et){case 0:this.x=nt;break;case 1:this.y=nt;break;default:throw new Error("index is out of range: "+et)}return this}getComponent(et){switch(et){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+et)}}clone(){return new this.constructor(this.x,this.y)}copy(et){return this.x=et.x,this.y=et.y,this}add(et){return this.x+=et.x,this.y+=et.y,this}addScalar(et){return this.x+=et,this.y+=et,this}addVectors(et,nt){return this.x=et.x+nt.x,this.y=et.y+nt.y,this}addScaledVector(et,nt){return this.x+=et.x*nt,this.y+=et.y*nt,this}sub(et){return this.x-=et.x,this.y-=et.y,this}subScalar(et){return this.x-=et,this.y-=et,this}subVectors(et,nt){return this.x=et.x-nt.x,this.y=et.y-nt.y,this}multiply(et){return this.x*=et.x,this.y*=et.y,this}multiplyScalar(et){return this.x*=et,this.y*=et,this}divide(et){return this.x/=et.x,this.y/=et.y,this}divideScalar(et){return this.multiplyScalar(1/et)}applyMatrix3(et){const nt=this.x,rt=this.y,it=et.elements;return this.x=it[0]*nt+it[3]*rt+it[6],this.y=it[1]*nt+it[4]*rt+it[7],this}min(et){return this.x=Math.min(this.x,et.x),this.y=Math.min(this.y,et.y),this}max(et){return this.x=Math.max(this.x,et.x),this.y=Math.max(this.y,et.y),this}clamp(et,nt){return this.x=Math.max(et.x,Math.min(nt.x,this.x)),this.y=Math.max(et.y,Math.min(nt.y,this.y)),this}clampScalar(et,nt){return this.x=Math.max(et,Math.min(nt,this.x)),this.y=Math.max(et,Math.min(nt,this.y)),this}clampLength(et,nt){const rt=this.length();return this.divideScalar(rt||1).multiplyScalar(Math.max(et,Math.min(nt,rt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(et){return this.x*et.x+this.y*et.y}cross(et){return this.x*et.y-this.y*et.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(et){return Math.sqrt(this.distanceToSquared(et))}distanceToSquared(et){const nt=this.x-et.x,rt=this.y-et.y;return nt*nt+rt*rt}manhattanDistanceTo(et){return Math.abs(this.x-et.x)+Math.abs(this.y-et.y)}setLength(et){return this.normalize().multiplyScalar(et)}lerp(et,nt){return this.x+=(et.x-this.x)*nt,this.y+=(et.y-this.y)*nt,this}lerpVectors(et,nt,rt){return this.x=et.x+(nt.x-et.x)*rt,this.y=et.y+(nt.y-et.y)*rt,this}equals(et){return et.x===this.x&&et.y===this.y}fromArray(et,nt=0){return this.x=et[nt],this.y=et[nt+1],this}toArray(et=[],nt=0){return et[nt]=this.x,et[nt+1]=this.y,et}fromBufferAttribute(et,nt){return this.x=et.getX(nt),this.y=et.getY(nt),this}rotateAround(et,nt){const rt=Math.cos(nt),it=Math.sin(nt),ot=this.x-et.x,at=this.y-et.y;return this.x=ot*rt-at*it+et.x,this.y=ot*it+at*rt+et.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Matrix3{constructor(){Matrix3.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(et,nt,rt,it,ot,at,st,lt,ct){const ut=this.elements;return ut[0]=et,ut[1]=it,ut[2]=st,ut[3]=nt,ut[4]=ot,ut[5]=lt,ut[6]=rt,ut[7]=at,ut[8]=ct,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(et){const nt=this.elements,rt=et.elements;return nt[0]=rt[0],nt[1]=rt[1],nt[2]=rt[2],nt[3]=rt[3],nt[4]=rt[4],nt[5]=rt[5],nt[6]=rt[6],nt[7]=rt[7],nt[8]=rt[8],this}extractBasis(et,nt,rt){return et.setFromMatrix3Column(this,0),nt.setFromMatrix3Column(this,1),rt.setFromMatrix3Column(this,2),this}setFromMatrix4(et){const nt=et.elements;return this.set(nt[0],nt[4],nt[8],nt[1],nt[5],nt[9],nt[2],nt[6],nt[10]),this}multiply(et){return this.multiplyMatrices(this,et)}premultiply(et){return this.multiplyMatrices(et,this)}multiplyMatrices(et,nt){const rt=et.elements,it=nt.elements,ot=this.elements,at=rt[0],st=rt[3],lt=rt[6],ct=rt[1],ut=rt[4],ht=rt[7],dt=rt[2],pt=rt[5],mt=rt[8],gt=it[0],yt=it[3],bt=it[6],wt=it[1],vt=it[4],kt=it[7],St=it[2],Tt=it[5],At=it[8];return ot[0]=at*gt+st*wt+lt*St,ot[3]=at*yt+st*vt+lt*Tt,ot[6]=at*bt+st*kt+lt*At,ot[1]=ct*gt+ut*wt+ht*St,ot[4]=ct*yt+ut*vt+ht*Tt,ot[7]=ct*bt+ut*kt+ht*At,ot[2]=dt*gt+pt*wt+mt*St,ot[5]=dt*yt+pt*vt+mt*Tt,ot[8]=dt*bt+pt*kt+mt*At,this}multiplyScalar(et){const nt=this.elements;return nt[0]*=et,nt[3]*=et,nt[6]*=et,nt[1]*=et,nt[4]*=et,nt[7]*=et,nt[2]*=et,nt[5]*=et,nt[8]*=et,this}determinant(){const et=this.elements,nt=et[0],rt=et[1],it=et[2],ot=et[3],at=et[4],st=et[5],lt=et[6],ct=et[7],ut=et[8];return nt*at*ut-nt*st*ct-rt*ot*ut+rt*st*lt+it*ot*ct-it*at*lt}invert(){const et=this.elements,nt=et[0],rt=et[1],it=et[2],ot=et[3],at=et[4],st=et[5],lt=et[6],ct=et[7],ut=et[8],ht=ut*at-st*ct,dt=st*lt-ut*ot,pt=ct*ot-at*lt,mt=nt*ht+rt*dt+it*pt;if(mt===0)return this.set(0,0,0,0,0,0,0,0,0);const gt=1/mt;return et[0]=ht*gt,et[1]=(it*ct-ut*rt)*gt,et[2]=(st*rt-it*at)*gt,et[3]=dt*gt,et[4]=(ut*nt-it*lt)*gt,et[5]=(it*ot-st*nt)*gt,et[6]=pt*gt,et[7]=(rt*lt-ct*nt)*gt,et[8]=(at*nt-rt*ot)*gt,this}transpose(){let et;const nt=this.elements;return et=nt[1],nt[1]=nt[3],nt[3]=et,et=nt[2],nt[2]=nt[6],nt[6]=et,et=nt[5],nt[5]=nt[7],nt[7]=et,this}getNormalMatrix(et){return this.setFromMatrix4(et).invert().transpose()}transposeIntoArray(et){const nt=this.elements;return et[0]=nt[0],et[1]=nt[3],et[2]=nt[6],et[3]=nt[1],et[4]=nt[4],et[5]=nt[7],et[6]=nt[2],et[7]=nt[5],et[8]=nt[8],this}setUvTransform(et,nt,rt,it,ot,at,st){const lt=Math.cos(ot),ct=Math.sin(ot);return this.set(rt*lt,rt*ct,-rt*(lt*at+ct*st)+at+et,-it*ct,it*lt,-it*(-ct*at+lt*st)+st+nt,0,0,1),this}scale(et,nt){const rt=this.elements;return rt[0]*=et,rt[3]*=et,rt[6]*=et,rt[1]*=nt,rt[4]*=nt,rt[7]*=nt,this}rotate(et){const nt=Math.cos(et),rt=Math.sin(et),it=this.elements,ot=it[0],at=it[3],st=it[6],lt=it[1],ct=it[4],ut=it[7];return it[0]=nt*ot+rt*lt,it[3]=nt*at+rt*ct,it[6]=nt*st+rt*ut,it[1]=-rt*ot+nt*lt,it[4]=-rt*at+nt*ct,it[7]=-rt*st+nt*ut,this}translate(et,nt){const rt=this.elements;return rt[0]+=et*rt[2],rt[3]+=et*rt[5],rt[6]+=et*rt[8],rt[1]+=nt*rt[2],rt[4]+=nt*rt[5],rt[7]+=nt*rt[8],this}equals(et){const nt=this.elements,rt=et.elements;for(let it=0;it<9;it++)if(nt[it]!==rt[it])return!1;return!0}fromArray(et,nt=0){for(let rt=0;rt<9;rt++)this.elements[rt]=et[rt+nt];return this}toArray(et=[],nt=0){const rt=this.elements;return et[nt]=rt[0],et[nt+1]=rt[1],et[nt+2]=rt[2],et[nt+3]=rt[3],et[nt+4]=rt[4],et[nt+5]=rt[5],et[nt+6]=rt[6],et[nt+7]=rt[7],et[nt+8]=rt[8],et}clone(){return new this.constructor().fromArray(this.elements)}}function arrayNeedsUint32(tt){for(let et=tt.length-1;et>=0;--et)if(tt[et]>65535)return!0;return!1}const TYPED_ARRAYS={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function getTypedArray(tt,et){return new TYPED_ARRAYS[tt](et)}function createElementNS(tt){return document.createElementNS("http://www.w3.org/1999/xhtml",tt)}function SRGBToLinear(tt){return tt<.04045?tt*.0773993808:Math.pow(tt*.9478672986+.0521327014,2.4)}function LinearToSRGB(tt){return tt<.0031308?tt*12.92:1.055*Math.pow(tt,.41666)-.055}const FN={[SRGBColorSpace$1]:{[LinearSRGBColorSpace$1]:SRGBToLinear},[LinearSRGBColorSpace$1]:{[SRGBColorSpace$1]:LinearToSRGB}},ColorManagement={legacyMode:!0,get workingColorSpace(){return LinearSRGBColorSpace$1},set workingColorSpace(tt){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(tt,et,nt){if(this.legacyMode||et===nt||!et||!nt)return tt;if(FN[et]&&FN[et][nt]!==void 0){const rt=FN[et][nt];return tt.r=rt(tt.r),tt.g=rt(tt.g),tt.b=rt(tt.b),tt}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(tt,et){return this.convert(tt,this.workingColorSpace,et)},toWorkingColorSpace:function(tt,et){return this.convert(tt,et,this.workingColorSpace)}},_colorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},_rgb={r:0,g:0,b:0},_hslA={h:0,s:0,l:0},_hslB={h:0,s:0,l:0};function hue2rgb(tt,et,nt){return nt<0&&(nt+=1),nt>1&&(nt-=1),nt<1/6?tt+(et-tt)*6*nt:nt<1/2?et:nt<2/3?tt+(et-tt)*6*(2/3-nt):tt}function toComponents(tt,et){return et.r=tt.r,et.g=tt.g,et.b=tt.b,et}let Color$1=class{constructor(et,nt,rt){return this.isColor=!0,this.r=1,this.g=1,this.b=1,nt===void 0&&rt===void 0?this.set(et):this.setRGB(et,nt,rt)}set(et){return et&&et.isColor?this.copy(et):typeof et=="number"?this.setHex(et):typeof et=="string"&&this.setStyle(et),this}setScalar(et){return this.r=et,this.g=et,this.b=et,this}setHex(et,nt=SRGBColorSpace$1){return et=Math.floor(et),this.r=(et>>16&255)/255,this.g=(et>>8&255)/255,this.b=(et&255)/255,ColorManagement.toWorkingColorSpace(this,nt),this}setRGB(et,nt,rt,it=LinearSRGBColorSpace$1){return this.r=et,this.g=nt,this.b=rt,ColorManagement.toWorkingColorSpace(this,it),this}setHSL(et,nt,rt,it=LinearSRGBColorSpace$1){if(et=euclideanModulo(et,1),nt=clamp$4(nt,0,1),rt=clamp$4(rt,0,1),nt===0)this.r=this.g=this.b=rt;else{const ot=rt<=.5?rt*(1+nt):rt+nt-rt*nt,at=2*rt-ot;this.r=hue2rgb(at,ot,et+1/3),this.g=hue2rgb(at,ot,et),this.b=hue2rgb(at,ot,et-1/3)}return ColorManagement.toWorkingColorSpace(this,it),this}setStyle(et,nt=SRGBColorSpace$1){function rt(ot){ot!==void 0&&parseFloat(ot)<1&&console.warn("THREE.Color: Alpha component of "+et+" will be ignored.")}let it;if(it=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(et)){let ot;const at=it[1],st=it[2];switch(at){case"rgb":case"rgba":if(ot=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(st))return this.r=Math.min(255,parseInt(ot[1],10))/255,this.g=Math.min(255,parseInt(ot[2],10))/255,this.b=Math.min(255,parseInt(ot[3],10))/255,ColorManagement.toWorkingColorSpace(this,nt),rt(ot[4]),this;if(ot=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(st))return this.r=Math.min(100,parseInt(ot[1],10))/100,this.g=Math.min(100,parseInt(ot[2],10))/100,this.b=Math.min(100,parseInt(ot[3],10))/100,ColorManagement.toWorkingColorSpace(this,nt),rt(ot[4]),this;break;case"hsl":case"hsla":if(ot=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(st)){const lt=parseFloat(ot[1])/360,ct=parseInt(ot[2],10)/100,ut=parseInt(ot[3],10)/100;return rt(ot[4]),this.setHSL(lt,ct,ut,nt)}break}}else if(it=/^\#([A-Fa-f\d]+)$/.exec(et)){const ot=it[1],at=ot.length;if(at===3)return this.r=parseInt(ot.charAt(0)+ot.charAt(0),16)/255,this.g=parseInt(ot.charAt(1)+ot.charAt(1),16)/255,this.b=parseInt(ot.charAt(2)+ot.charAt(2),16)/255,ColorManagement.toWorkingColorSpace(this,nt),this;if(at===6)return this.r=parseInt(ot.charAt(0)+ot.charAt(1),16)/255,this.g=parseInt(ot.charAt(2)+ot.charAt(3),16)/255,this.b=parseInt(ot.charAt(4)+ot.charAt(5),16)/255,ColorManagement.toWorkingColorSpace(this,nt),this}return et&&et.length>0?this.setColorName(et,nt):this}setColorName(et,nt=SRGBColorSpace$1){const rt=_colorKeywords[et.toLowerCase()];return rt!==void 0?this.setHex(rt,nt):console.warn("THREE.Color: Unknown color "+et),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(et){return this.r=et.r,this.g=et.g,this.b=et.b,this}copySRGBToLinear(et){return this.r=SRGBToLinear(et.r),this.g=SRGBToLinear(et.g),this.b=SRGBToLinear(et.b),this}copyLinearToSRGB(et){return this.r=LinearToSRGB(et.r),this.g=LinearToSRGB(et.g),this.b=LinearToSRGB(et.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(et=SRGBColorSpace$1){return ColorManagement.fromWorkingColorSpace(toComponents(this,_rgb),et),clamp$4(_rgb.r*255,0,255)<<16^clamp$4(_rgb.g*255,0,255)<<8^clamp$4(_rgb.b*255,0,255)<<0}getHexString(et=SRGBColorSpace$1){return("000000"+this.getHex(et).toString(16)).slice(-6)}getHSL(et,nt=LinearSRGBColorSpace$1){ColorManagement.fromWorkingColorSpace(toComponents(this,_rgb),nt);const rt=_rgb.r,it=_rgb.g,ot=_rgb.b,at=Math.max(rt,it,ot),st=Math.min(rt,it,ot);let lt,ct;const ut=(st+at)/2;if(st===at)lt=0,ct=0;else{const ht=at-st;switch(ct=ut<=.5?ht/(at+st):ht/(2-at-st),at){case rt:lt=(it-ot)/ht+(it"u")return et.src;let nt;if(et instanceof HTMLCanvasElement)nt=et;else{_canvas===void 0&&(_canvas=createElementNS("canvas")),_canvas.width=et.width,_canvas.height=et.height;const rt=_canvas.getContext("2d");et instanceof ImageData?rt.putImageData(et,0,0):rt.drawImage(et,0,0,et.width,et.height),nt=_canvas}return nt.width>2048||nt.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",et),nt.toDataURL("image/jpeg",.6)):nt.toDataURL("image/png")}static sRGBToLinear(et){if(typeof HTMLImageElement<"u"&&et instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&et instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&et instanceof ImageBitmap){const nt=createElementNS("canvas");nt.width=et.width,nt.height=et.height;const rt=nt.getContext("2d");rt.drawImage(et,0,0,et.width,et.height);const it=rt.getImageData(0,0,et.width,et.height),ot=it.data;for(let at=0;at1)switch(this.wrapS){case RepeatWrapping:et.x=et.x-Math.floor(et.x);break;case ClampToEdgeWrapping:et.x=et.x<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(et.x)%2)===1?et.x=Math.ceil(et.x)-et.x:et.x=et.x-Math.floor(et.x);break}if(et.y<0||et.y>1)switch(this.wrapT){case RepeatWrapping:et.y=et.y-Math.floor(et.y);break;case ClampToEdgeWrapping:et.y=et.y<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(et.y)%2)===1?et.y=Math.ceil(et.y)-et.y:et.y=et.y-Math.floor(et.y);break}return this.flipY&&(et.y=1-et.y),et}set needsUpdate(et){et===!0&&(this.version++,this.source.needsUpdate=!0)}}Texture.DEFAULT_IMAGE=null;Texture.DEFAULT_MAPPING=UVMapping;class Vector4{constructor(et=0,nt=0,rt=0,it=1){Vector4.prototype.isVector4=!0,this.x=et,this.y=nt,this.z=rt,this.w=it}get width(){return this.z}set width(et){this.z=et}get height(){return this.w}set height(et){this.w=et}set(et,nt,rt,it){return this.x=et,this.y=nt,this.z=rt,this.w=it,this}setScalar(et){return this.x=et,this.y=et,this.z=et,this.w=et,this}setX(et){return this.x=et,this}setY(et){return this.y=et,this}setZ(et){return this.z=et,this}setW(et){return this.w=et,this}setComponent(et,nt){switch(et){case 0:this.x=nt;break;case 1:this.y=nt;break;case 2:this.z=nt;break;case 3:this.w=nt;break;default:throw new Error("index is out of range: "+et)}return this}getComponent(et){switch(et){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+et)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(et){return this.x=et.x,this.y=et.y,this.z=et.z,this.w=et.w!==void 0?et.w:1,this}add(et){return this.x+=et.x,this.y+=et.y,this.z+=et.z,this.w+=et.w,this}addScalar(et){return this.x+=et,this.y+=et,this.z+=et,this.w+=et,this}addVectors(et,nt){return this.x=et.x+nt.x,this.y=et.y+nt.y,this.z=et.z+nt.z,this.w=et.w+nt.w,this}addScaledVector(et,nt){return this.x+=et.x*nt,this.y+=et.y*nt,this.z+=et.z*nt,this.w+=et.w*nt,this}sub(et){return this.x-=et.x,this.y-=et.y,this.z-=et.z,this.w-=et.w,this}subScalar(et){return this.x-=et,this.y-=et,this.z-=et,this.w-=et,this}subVectors(et,nt){return this.x=et.x-nt.x,this.y=et.y-nt.y,this.z=et.z-nt.z,this.w=et.w-nt.w,this}multiply(et){return this.x*=et.x,this.y*=et.y,this.z*=et.z,this.w*=et.w,this}multiplyScalar(et){return this.x*=et,this.y*=et,this.z*=et,this.w*=et,this}applyMatrix4(et){const nt=this.x,rt=this.y,it=this.z,ot=this.w,at=et.elements;return this.x=at[0]*nt+at[4]*rt+at[8]*it+at[12]*ot,this.y=at[1]*nt+at[5]*rt+at[9]*it+at[13]*ot,this.z=at[2]*nt+at[6]*rt+at[10]*it+at[14]*ot,this.w=at[3]*nt+at[7]*rt+at[11]*it+at[15]*ot,this}divideScalar(et){return this.multiplyScalar(1/et)}setAxisAngleFromQuaternion(et){this.w=2*Math.acos(et.w);const nt=Math.sqrt(1-et.w*et.w);return nt<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=et.x/nt,this.y=et.y/nt,this.z=et.z/nt),this}setAxisAngleFromRotationMatrix(et){let nt,rt,it,ot;const lt=et.elements,ct=lt[0],ut=lt[4],ht=lt[8],dt=lt[1],pt=lt[5],mt=lt[9],gt=lt[2],yt=lt[6],bt=lt[10];if(Math.abs(ut-dt)<.01&&Math.abs(ht-gt)<.01&&Math.abs(mt-yt)<.01){if(Math.abs(ut+dt)<.1&&Math.abs(ht+gt)<.1&&Math.abs(mt+yt)<.1&&Math.abs(ct+pt+bt-3)<.1)return this.set(1,0,0,0),this;nt=Math.PI;const vt=(ct+1)/2,kt=(pt+1)/2,St=(bt+1)/2,Tt=(ut+dt)/4,At=(ht+gt)/4,Et=(mt+yt)/4;return vt>kt&&vt>St?vt<.01?(rt=0,it=.707106781,ot=.707106781):(rt=Math.sqrt(vt),it=Tt/rt,ot=At/rt):kt>St?kt<.01?(rt=.707106781,it=0,ot=.707106781):(it=Math.sqrt(kt),rt=Tt/it,ot=Et/it):St<.01?(rt=.707106781,it=.707106781,ot=0):(ot=Math.sqrt(St),rt=At/ot,it=Et/ot),this.set(rt,it,ot,nt),this}let wt=Math.sqrt((yt-mt)*(yt-mt)+(ht-gt)*(ht-gt)+(dt-ut)*(dt-ut));return Math.abs(wt)<.001&&(wt=1),this.x=(yt-mt)/wt,this.y=(ht-gt)/wt,this.z=(dt-ut)/wt,this.w=Math.acos((ct+pt+bt-1)/2),this}min(et){return this.x=Math.min(this.x,et.x),this.y=Math.min(this.y,et.y),this.z=Math.min(this.z,et.z),this.w=Math.min(this.w,et.w),this}max(et){return this.x=Math.max(this.x,et.x),this.y=Math.max(this.y,et.y),this.z=Math.max(this.z,et.z),this.w=Math.max(this.w,et.w),this}clamp(et,nt){return this.x=Math.max(et.x,Math.min(nt.x,this.x)),this.y=Math.max(et.y,Math.min(nt.y,this.y)),this.z=Math.max(et.z,Math.min(nt.z,this.z)),this.w=Math.max(et.w,Math.min(nt.w,this.w)),this}clampScalar(et,nt){return this.x=Math.max(et,Math.min(nt,this.x)),this.y=Math.max(et,Math.min(nt,this.y)),this.z=Math.max(et,Math.min(nt,this.z)),this.w=Math.max(et,Math.min(nt,this.w)),this}clampLength(et,nt){const rt=this.length();return this.divideScalar(rt||1).multiplyScalar(Math.max(et,Math.min(nt,rt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(et){return this.x*et.x+this.y*et.y+this.z*et.z+this.w*et.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(et){return this.normalize().multiplyScalar(et)}lerp(et,nt){return this.x+=(et.x-this.x)*nt,this.y+=(et.y-this.y)*nt,this.z+=(et.z-this.z)*nt,this.w+=(et.w-this.w)*nt,this}lerpVectors(et,nt,rt){return this.x=et.x+(nt.x-et.x)*rt,this.y=et.y+(nt.y-et.y)*rt,this.z=et.z+(nt.z-et.z)*rt,this.w=et.w+(nt.w-et.w)*rt,this}equals(et){return et.x===this.x&&et.y===this.y&&et.z===this.z&&et.w===this.w}fromArray(et,nt=0){return this.x=et[nt],this.y=et[nt+1],this.z=et[nt+2],this.w=et[nt+3],this}toArray(et=[],nt=0){return et[nt]=this.x,et[nt+1]=this.y,et[nt+2]=this.z,et[nt+3]=this.w,et}fromBufferAttribute(et,nt){return this.x=et.getX(nt),this.y=et.getY(nt),this.z=et.getZ(nt),this.w=et.getW(nt),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class WebGLRenderTarget extends EventDispatcher$1{constructor(et,nt,rt={}){super(),this.isWebGLRenderTarget=!0,this.width=et,this.height=nt,this.depth=1,this.scissor=new Vector4(0,0,et,nt),this.scissorTest=!1,this.viewport=new Vector4(0,0,et,nt);const it={width:et,height:nt,depth:1};this.texture=new Texture(it,rt.mapping,rt.wrapS,rt.wrapT,rt.magFilter,rt.minFilter,rt.format,rt.type,rt.anisotropy,rt.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=rt.generateMipmaps!==void 0?rt.generateMipmaps:!1,this.texture.internalFormat=rt.internalFormat!==void 0?rt.internalFormat:null,this.texture.minFilter=rt.minFilter!==void 0?rt.minFilter:LinearFilter,this.depthBuffer=rt.depthBuffer!==void 0?rt.depthBuffer:!0,this.stencilBuffer=rt.stencilBuffer!==void 0?rt.stencilBuffer:!1,this.depthTexture=rt.depthTexture!==void 0?rt.depthTexture:null,this.samples=rt.samples!==void 0?rt.samples:0}setSize(et,nt,rt=1){(this.width!==et||this.height!==nt||this.depth!==rt)&&(this.width=et,this.height=nt,this.depth=rt,this.texture.image.width=et,this.texture.image.height=nt,this.texture.image.depth=rt,this.dispose()),this.viewport.set(0,0,et,nt),this.scissor.set(0,0,et,nt)}clone(){return new this.constructor().copy(this)}copy(et){this.width=et.width,this.height=et.height,this.depth=et.depth,this.viewport.copy(et.viewport),this.texture=et.texture.clone(),this.texture.isRenderTargetTexture=!0;const nt=Object.assign({},et.texture.image);return this.texture.source=new Source$1(nt),this.depthBuffer=et.depthBuffer,this.stencilBuffer=et.stencilBuffer,et.depthTexture!==null&&(this.depthTexture=et.depthTexture.clone()),this.samples=et.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class DataArrayTexture extends Texture{constructor(et=null,nt=1,rt=1,it=1){super(null),this.isDataArrayTexture=!0,this.image={data:et,width:nt,height:rt,depth:it},this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.wrapR=ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class WebGLArrayRenderTarget extends WebGLRenderTarget{constructor(et,nt,rt){super(et,nt),this.isWebGLArrayRenderTarget=!0,this.depth=rt,this.texture=new DataArrayTexture(null,et,nt,rt),this.texture.isRenderTargetTexture=!0}}class Data3DTexture extends Texture{constructor(et=null,nt=1,rt=1,it=1){super(null),this.isData3DTexture=!0,this.image={data:et,width:nt,height:rt,depth:it},this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.wrapR=ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class WebGL3DRenderTarget extends WebGLRenderTarget{constructor(et,nt,rt){super(et,nt),this.isWebGL3DRenderTarget=!0,this.depth=rt,this.texture=new Data3DTexture(null,et,nt,rt),this.texture.isRenderTargetTexture=!0}}class WebGLMultipleRenderTargets extends WebGLRenderTarget{constructor(et,nt,rt,it={}){super(et,nt,it),this.isWebGLMultipleRenderTargets=!0;const ot=this.texture;this.texture=[];for(let at=0;at=0?1:-1,vt=1-bt*bt;if(vt>Number.EPSILON){const St=Math.sqrt(vt),Tt=Math.atan2(St,bt*wt);yt=Math.sin(yt*Tt)/St,st=Math.sin(st*Tt)/St}const kt=st*wt;if(lt=lt*yt+dt*kt,ct=ct*yt+pt*kt,ut=ut*yt+mt*kt,ht=ht*yt+gt*kt,yt===1-st){const St=1/Math.sqrt(lt*lt+ct*ct+ut*ut+ht*ht);lt*=St,ct*=St,ut*=St,ht*=St}}et[nt]=lt,et[nt+1]=ct,et[nt+2]=ut,et[nt+3]=ht}static multiplyQuaternionsFlat(et,nt,rt,it,ot,at){const st=rt[it],lt=rt[it+1],ct=rt[it+2],ut=rt[it+3],ht=ot[at],dt=ot[at+1],pt=ot[at+2],mt=ot[at+3];return et[nt]=st*mt+ut*ht+lt*pt-ct*dt,et[nt+1]=lt*mt+ut*dt+ct*ht-st*pt,et[nt+2]=ct*mt+ut*pt+st*dt-lt*ht,et[nt+3]=ut*mt-st*ht-lt*dt-ct*pt,et}get x(){return this._x}set x(et){this._x=et,this._onChangeCallback()}get y(){return this._y}set y(et){this._y=et,this._onChangeCallback()}get z(){return this._z}set z(et){this._z=et,this._onChangeCallback()}get w(){return this._w}set w(et){this._w=et,this._onChangeCallback()}set(et,nt,rt,it){return this._x=et,this._y=nt,this._z=rt,this._w=it,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(et){return this._x=et.x,this._y=et.y,this._z=et.z,this._w=et.w,this._onChangeCallback(),this}setFromEuler(et,nt){if(!(et&&et.isEuler))throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const rt=et._x,it=et._y,ot=et._z,at=et._order,st=Math.cos,lt=Math.sin,ct=st(rt/2),ut=st(it/2),ht=st(ot/2),dt=lt(rt/2),pt=lt(it/2),mt=lt(ot/2);switch(at){case"XYZ":this._x=dt*ut*ht+ct*pt*mt,this._y=ct*pt*ht-dt*ut*mt,this._z=ct*ut*mt+dt*pt*ht,this._w=ct*ut*ht-dt*pt*mt;break;case"YXZ":this._x=dt*ut*ht+ct*pt*mt,this._y=ct*pt*ht-dt*ut*mt,this._z=ct*ut*mt-dt*pt*ht,this._w=ct*ut*ht+dt*pt*mt;break;case"ZXY":this._x=dt*ut*ht-ct*pt*mt,this._y=ct*pt*ht+dt*ut*mt,this._z=ct*ut*mt+dt*pt*ht,this._w=ct*ut*ht-dt*pt*mt;break;case"ZYX":this._x=dt*ut*ht-ct*pt*mt,this._y=ct*pt*ht+dt*ut*mt,this._z=ct*ut*mt-dt*pt*ht,this._w=ct*ut*ht+dt*pt*mt;break;case"YZX":this._x=dt*ut*ht+ct*pt*mt,this._y=ct*pt*ht+dt*ut*mt,this._z=ct*ut*mt-dt*pt*ht,this._w=ct*ut*ht-dt*pt*mt;break;case"XZY":this._x=dt*ut*ht-ct*pt*mt,this._y=ct*pt*ht-dt*ut*mt,this._z=ct*ut*mt+dt*pt*ht,this._w=ct*ut*ht+dt*pt*mt;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+at)}return nt!==!1&&this._onChangeCallback(),this}setFromAxisAngle(et,nt){const rt=nt/2,it=Math.sin(rt);return this._x=et.x*it,this._y=et.y*it,this._z=et.z*it,this._w=Math.cos(rt),this._onChangeCallback(),this}setFromRotationMatrix(et){const nt=et.elements,rt=nt[0],it=nt[4],ot=nt[8],at=nt[1],st=nt[5],lt=nt[9],ct=nt[2],ut=nt[6],ht=nt[10],dt=rt+st+ht;if(dt>0){const pt=.5/Math.sqrt(dt+1);this._w=.25/pt,this._x=(ut-lt)*pt,this._y=(ot-ct)*pt,this._z=(at-it)*pt}else if(rt>st&&rt>ht){const pt=2*Math.sqrt(1+rt-st-ht);this._w=(ut-lt)/pt,this._x=.25*pt,this._y=(it+at)/pt,this._z=(ot+ct)/pt}else if(st>ht){const pt=2*Math.sqrt(1+st-rt-ht);this._w=(ot-ct)/pt,this._x=(it+at)/pt,this._y=.25*pt,this._z=(lt+ut)/pt}else{const pt=2*Math.sqrt(1+ht-rt-st);this._w=(at-it)/pt,this._x=(ot+ct)/pt,this._y=(lt+ut)/pt,this._z=.25*pt}return this._onChangeCallback(),this}setFromUnitVectors(et,nt){let rt=et.dot(nt)+1;return rtMath.abs(et.z)?(this._x=-et.y,this._y=et.x,this._z=0,this._w=rt):(this._x=0,this._y=-et.z,this._z=et.y,this._w=rt)):(this._x=et.y*nt.z-et.z*nt.y,this._y=et.z*nt.x-et.x*nt.z,this._z=et.x*nt.y-et.y*nt.x,this._w=rt),this.normalize()}angleTo(et){return 2*Math.acos(Math.abs(clamp$4(this.dot(et),-1,1)))}rotateTowards(et,nt){const rt=this.angleTo(et);if(rt===0)return this;const it=Math.min(1,nt/rt);return this.slerp(et,it),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(et){return this._x*et._x+this._y*et._y+this._z*et._z+this._w*et._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let et=this.length();return et===0?(this._x=0,this._y=0,this._z=0,this._w=1):(et=1/et,this._x=this._x*et,this._y=this._y*et,this._z=this._z*et,this._w=this._w*et),this._onChangeCallback(),this}multiply(et){return this.multiplyQuaternions(this,et)}premultiply(et){return this.multiplyQuaternions(et,this)}multiplyQuaternions(et,nt){const rt=et._x,it=et._y,ot=et._z,at=et._w,st=nt._x,lt=nt._y,ct=nt._z,ut=nt._w;return this._x=rt*ut+at*st+it*ct-ot*lt,this._y=it*ut+at*lt+ot*st-rt*ct,this._z=ot*ut+at*ct+rt*lt-it*st,this._w=at*ut-rt*st-it*lt-ot*ct,this._onChangeCallback(),this}slerp(et,nt){if(nt===0)return this;if(nt===1)return this.copy(et);const rt=this._x,it=this._y,ot=this._z,at=this._w;let st=at*et._w+rt*et._x+it*et._y+ot*et._z;if(st<0?(this._w=-et._w,this._x=-et._x,this._y=-et._y,this._z=-et._z,st=-st):this.copy(et),st>=1)return this._w=at,this._x=rt,this._y=it,this._z=ot,this;const lt=1-st*st;if(lt<=Number.EPSILON){const pt=1-nt;return this._w=pt*at+nt*this._w,this._x=pt*rt+nt*this._x,this._y=pt*it+nt*this._y,this._z=pt*ot+nt*this._z,this.normalize(),this._onChangeCallback(),this}const ct=Math.sqrt(lt),ut=Math.atan2(ct,st),ht=Math.sin((1-nt)*ut)/ct,dt=Math.sin(nt*ut)/ct;return this._w=at*ht+this._w*dt,this._x=rt*ht+this._x*dt,this._y=it*ht+this._y*dt,this._z=ot*ht+this._z*dt,this._onChangeCallback(),this}slerpQuaternions(et,nt,rt){return this.copy(et).slerp(nt,rt)}random(){const et=Math.random(),nt=Math.sqrt(1-et),rt=Math.sqrt(et),it=2*Math.PI*Math.random(),ot=2*Math.PI*Math.random();return this.set(nt*Math.cos(it),rt*Math.sin(ot),rt*Math.cos(ot),nt*Math.sin(it))}equals(et){return et._x===this._x&&et._y===this._y&&et._z===this._z&&et._w===this._w}fromArray(et,nt=0){return this._x=et[nt],this._y=et[nt+1],this._z=et[nt+2],this._w=et[nt+3],this._onChangeCallback(),this}toArray(et=[],nt=0){return et[nt]=this._x,et[nt+1]=this._y,et[nt+2]=this._z,et[nt+3]=this._w,et}fromBufferAttribute(et,nt){return this._x=et.getX(nt),this._y=et.getY(nt),this._z=et.getZ(nt),this._w=et.getW(nt),this}_onChange(et){return this._onChangeCallback=et,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Vector3{constructor(et=0,nt=0,rt=0){Vector3.prototype.isVector3=!0,this.x=et,this.y=nt,this.z=rt}set(et,nt,rt){return rt===void 0&&(rt=this.z),this.x=et,this.y=nt,this.z=rt,this}setScalar(et){return this.x=et,this.y=et,this.z=et,this}setX(et){return this.x=et,this}setY(et){return this.y=et,this}setZ(et){return this.z=et,this}setComponent(et,nt){switch(et){case 0:this.x=nt;break;case 1:this.y=nt;break;case 2:this.z=nt;break;default:throw new Error("index is out of range: "+et)}return this}getComponent(et){switch(et){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+et)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(et){return this.x=et.x,this.y=et.y,this.z=et.z,this}add(et){return this.x+=et.x,this.y+=et.y,this.z+=et.z,this}addScalar(et){return this.x+=et,this.y+=et,this.z+=et,this}addVectors(et,nt){return this.x=et.x+nt.x,this.y=et.y+nt.y,this.z=et.z+nt.z,this}addScaledVector(et,nt){return this.x+=et.x*nt,this.y+=et.y*nt,this.z+=et.z*nt,this}sub(et){return this.x-=et.x,this.y-=et.y,this.z-=et.z,this}subScalar(et){return this.x-=et,this.y-=et,this.z-=et,this}subVectors(et,nt){return this.x=et.x-nt.x,this.y=et.y-nt.y,this.z=et.z-nt.z,this}multiply(et){return this.x*=et.x,this.y*=et.y,this.z*=et.z,this}multiplyScalar(et){return this.x*=et,this.y*=et,this.z*=et,this}multiplyVectors(et,nt){return this.x=et.x*nt.x,this.y=et.y*nt.y,this.z=et.z*nt.z,this}applyEuler(et){return this.applyQuaternion(_quaternion$4.setFromEuler(et))}applyAxisAngle(et,nt){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(et,nt))}applyMatrix3(et){const nt=this.x,rt=this.y,it=this.z,ot=et.elements;return this.x=ot[0]*nt+ot[3]*rt+ot[6]*it,this.y=ot[1]*nt+ot[4]*rt+ot[7]*it,this.z=ot[2]*nt+ot[5]*rt+ot[8]*it,this}applyNormalMatrix(et){return this.applyMatrix3(et).normalize()}applyMatrix4(et){const nt=this.x,rt=this.y,it=this.z,ot=et.elements,at=1/(ot[3]*nt+ot[7]*rt+ot[11]*it+ot[15]);return this.x=(ot[0]*nt+ot[4]*rt+ot[8]*it+ot[12])*at,this.y=(ot[1]*nt+ot[5]*rt+ot[9]*it+ot[13])*at,this.z=(ot[2]*nt+ot[6]*rt+ot[10]*it+ot[14])*at,this}applyQuaternion(et){const nt=this.x,rt=this.y,it=this.z,ot=et.x,at=et.y,st=et.z,lt=et.w,ct=lt*nt+at*it-st*rt,ut=lt*rt+st*nt-ot*it,ht=lt*it+ot*rt-at*nt,dt=-ot*nt-at*rt-st*it;return this.x=ct*lt+dt*-ot+ut*-st-ht*-at,this.y=ut*lt+dt*-at+ht*-ot-ct*-st,this.z=ht*lt+dt*-st+ct*-at-ut*-ot,this}project(et){return this.applyMatrix4(et.matrixWorldInverse).applyMatrix4(et.projectionMatrix)}unproject(et){return this.applyMatrix4(et.projectionMatrixInverse).applyMatrix4(et.matrixWorld)}transformDirection(et){const nt=this.x,rt=this.y,it=this.z,ot=et.elements;return this.x=ot[0]*nt+ot[4]*rt+ot[8]*it,this.y=ot[1]*nt+ot[5]*rt+ot[9]*it,this.z=ot[2]*nt+ot[6]*rt+ot[10]*it,this.normalize()}divide(et){return this.x/=et.x,this.y/=et.y,this.z/=et.z,this}divideScalar(et){return this.multiplyScalar(1/et)}min(et){return this.x=Math.min(this.x,et.x),this.y=Math.min(this.y,et.y),this.z=Math.min(this.z,et.z),this}max(et){return this.x=Math.max(this.x,et.x),this.y=Math.max(this.y,et.y),this.z=Math.max(this.z,et.z),this}clamp(et,nt){return this.x=Math.max(et.x,Math.min(nt.x,this.x)),this.y=Math.max(et.y,Math.min(nt.y,this.y)),this.z=Math.max(et.z,Math.min(nt.z,this.z)),this}clampScalar(et,nt){return this.x=Math.max(et,Math.min(nt,this.x)),this.y=Math.max(et,Math.min(nt,this.y)),this.z=Math.max(et,Math.min(nt,this.z)),this}clampLength(et,nt){const rt=this.length();return this.divideScalar(rt||1).multiplyScalar(Math.max(et,Math.min(nt,rt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(et){return this.x*et.x+this.y*et.y+this.z*et.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(et){return this.normalize().multiplyScalar(et)}lerp(et,nt){return this.x+=(et.x-this.x)*nt,this.y+=(et.y-this.y)*nt,this.z+=(et.z-this.z)*nt,this}lerpVectors(et,nt,rt){return this.x=et.x+(nt.x-et.x)*rt,this.y=et.y+(nt.y-et.y)*rt,this.z=et.z+(nt.z-et.z)*rt,this}cross(et){return this.crossVectors(this,et)}crossVectors(et,nt){const rt=et.x,it=et.y,ot=et.z,at=nt.x,st=nt.y,lt=nt.z;return this.x=it*lt-ot*st,this.y=ot*at-rt*lt,this.z=rt*st-it*at,this}projectOnVector(et){const nt=et.lengthSq();if(nt===0)return this.set(0,0,0);const rt=et.dot(this)/nt;return this.copy(et).multiplyScalar(rt)}projectOnPlane(et){return _vector$c.copy(this).projectOnVector(et),this.sub(_vector$c)}reflect(et){return this.sub(_vector$c.copy(et).multiplyScalar(2*this.dot(et)))}angleTo(et){const nt=Math.sqrt(this.lengthSq()*et.lengthSq());if(nt===0)return Math.PI/2;const rt=this.dot(et)/nt;return Math.acos(clamp$4(rt,-1,1))}distanceTo(et){return Math.sqrt(this.distanceToSquared(et))}distanceToSquared(et){const nt=this.x-et.x,rt=this.y-et.y,it=this.z-et.z;return nt*nt+rt*rt+it*it}manhattanDistanceTo(et){return Math.abs(this.x-et.x)+Math.abs(this.y-et.y)+Math.abs(this.z-et.z)}setFromSpherical(et){return this.setFromSphericalCoords(et.radius,et.phi,et.theta)}setFromSphericalCoords(et,nt,rt){const it=Math.sin(nt)*et;return this.x=it*Math.sin(rt),this.y=Math.cos(nt)*et,this.z=it*Math.cos(rt),this}setFromCylindrical(et){return this.setFromCylindricalCoords(et.radius,et.theta,et.y)}setFromCylindricalCoords(et,nt,rt){return this.x=et*Math.sin(nt),this.y=rt,this.z=et*Math.cos(nt),this}setFromMatrixPosition(et){const nt=et.elements;return this.x=nt[12],this.y=nt[13],this.z=nt[14],this}setFromMatrixScale(et){const nt=this.setFromMatrixColumn(et,0).length(),rt=this.setFromMatrixColumn(et,1).length(),it=this.setFromMatrixColumn(et,2).length();return this.x=nt,this.y=rt,this.z=it,this}setFromMatrixColumn(et,nt){return this.fromArray(et.elements,nt*4)}setFromMatrix3Column(et,nt){return this.fromArray(et.elements,nt*3)}setFromEuler(et){return this.x=et._x,this.y=et._y,this.z=et._z,this}equals(et){return et.x===this.x&&et.y===this.y&&et.z===this.z}fromArray(et,nt=0){return this.x=et[nt],this.y=et[nt+1],this.z=et[nt+2],this}toArray(et=[],nt=0){return et[nt]=this.x,et[nt+1]=this.y,et[nt+2]=this.z,et}fromBufferAttribute(et,nt){return this.x=et.getX(nt),this.y=et.getY(nt),this.z=et.getZ(nt),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const et=(Math.random()-.5)*2,nt=Math.random()*Math.PI*2,rt=Math.sqrt(1-et**2);return this.x=rt*Math.cos(nt),this.y=rt*Math.sin(nt),this.z=et,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _vector$c=new Vector3,_quaternion$4=new Quaternion;class Box3{constructor(et=new Vector3(1/0,1/0,1/0),nt=new Vector3(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=et,this.max=nt}set(et,nt){return this.min.copy(et),this.max.copy(nt),this}setFromArray(et){let nt=1/0,rt=1/0,it=1/0,ot=-1/0,at=-1/0,st=-1/0;for(let lt=0,ct=et.length;ltot&&(ot=ut),ht>at&&(at=ht),dt>st&&(st=dt)}return this.min.set(nt,rt,it),this.max.set(ot,at,st),this}setFromBufferAttribute(et){let nt=1/0,rt=1/0,it=1/0,ot=-1/0,at=-1/0,st=-1/0;for(let lt=0,ct=et.count;ltot&&(ot=ut),ht>at&&(at=ht),dt>st&&(st=dt)}return this.min.set(nt,rt,it),this.max.set(ot,at,st),this}setFromPoints(et){this.makeEmpty();for(let nt=0,rt=et.length;ntthis.max.x||et.ythis.max.y||et.zthis.max.z)}containsBox(et){return this.min.x<=et.min.x&&et.max.x<=this.max.x&&this.min.y<=et.min.y&&et.max.y<=this.max.y&&this.min.z<=et.min.z&&et.max.z<=this.max.z}getParameter(et,nt){return nt.set((et.x-this.min.x)/(this.max.x-this.min.x),(et.y-this.min.y)/(this.max.y-this.min.y),(et.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(et){return!(et.max.xthis.max.x||et.max.ythis.max.y||et.max.zthis.max.z)}intersectsSphere(et){return this.clampPoint(et.center,_vector$b),_vector$b.distanceToSquared(et.center)<=et.radius*et.radius}intersectsPlane(et){let nt,rt;return et.normal.x>0?(nt=et.normal.x*this.min.x,rt=et.normal.x*this.max.x):(nt=et.normal.x*this.max.x,rt=et.normal.x*this.min.x),et.normal.y>0?(nt+=et.normal.y*this.min.y,rt+=et.normal.y*this.max.y):(nt+=et.normal.y*this.max.y,rt+=et.normal.y*this.min.y),et.normal.z>0?(nt+=et.normal.z*this.min.z,rt+=et.normal.z*this.max.z):(nt+=et.normal.z*this.max.z,rt+=et.normal.z*this.min.z),nt<=-et.constant&&rt>=-et.constant}intersectsTriangle(et){if(this.isEmpty())return!1;this.getCenter(_center),_extents.subVectors(this.max,_center),_v0$2.subVectors(et.a,_center),_v1$7.subVectors(et.b,_center),_v2$3.subVectors(et.c,_center),_f0.subVectors(_v1$7,_v0$2),_f1.subVectors(_v2$3,_v1$7),_f2.subVectors(_v0$2,_v2$3);let nt=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];return!satForAxes(nt,_v0$2,_v1$7,_v2$3,_extents)||(nt=[1,0,0,0,1,0,0,0,1],!satForAxes(nt,_v0$2,_v1$7,_v2$3,_extents))?!1:(_triangleNormal.crossVectors(_f0,_f1),nt=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z],satForAxes(nt,_v0$2,_v1$7,_v2$3,_extents))}clampPoint(et,nt){return nt.copy(et).clamp(this.min,this.max)}distanceToPoint(et){return _vector$b.copy(et).clamp(this.min,this.max).sub(et).length()}getBoundingSphere(et){return this.getCenter(et.center),et.radius=this.getSize(_vector$b).length()*.5,et}intersect(et){return this.min.max(et.min),this.max.min(et.max),this.isEmpty()&&this.makeEmpty(),this}union(et){return this.min.min(et.min),this.max.max(et.max),this}applyMatrix4(et){return this.isEmpty()?this:(_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(et),_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(et),_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(et),_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(et),_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(et),_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(et),_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(et),_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(et),this.setFromPoints(_points),this)}translate(et){return this.min.add(et),this.max.add(et),this}equals(et){return et.min.equals(this.min)&&et.max.equals(this.max)}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],_vector$b=new Vector3,_box$3=new Box3,_v0$2=new Vector3,_v1$7=new Vector3,_v2$3=new Vector3,_f0=new Vector3,_f1=new Vector3,_f2=new Vector3,_center=new Vector3,_extents=new Vector3,_triangleNormal=new Vector3,_testAxis=new Vector3;function satForAxes(tt,et,nt,rt,it){for(let ot=0,at=tt.length-3;ot<=at;ot+=3){_testAxis.fromArray(tt,ot);const st=it.x*Math.abs(_testAxis.x)+it.y*Math.abs(_testAxis.y)+it.z*Math.abs(_testAxis.z),lt=et.dot(_testAxis),ct=nt.dot(_testAxis),ut=rt.dot(_testAxis);if(Math.max(-Math.max(lt,ct,ut),Math.min(lt,ct,ut))>st)return!1}return!0}const _box$2=new Box3,_v1$6=new Vector3,_toFarthestPoint=new Vector3,_toPoint=new Vector3;class Sphere{constructor(et=new Vector3,nt=-1){this.center=et,this.radius=nt}set(et,nt){return this.center.copy(et),this.radius=nt,this}setFromPoints(et,nt){const rt=this.center;nt!==void 0?rt.copy(nt):_box$2.setFromPoints(et).getCenter(rt);let it=0;for(let ot=0,at=et.length;otthis.radius*this.radius&&(nt.sub(this.center).normalize(),nt.multiplyScalar(this.radius).add(this.center)),nt}getBoundingBox(et){return this.isEmpty()?(et.makeEmpty(),et):(et.set(this.center,this.center),et.expandByScalar(this.radius),et)}applyMatrix4(et){return this.center.applyMatrix4(et),this.radius=this.radius*et.getMaxScaleOnAxis(),this}translate(et){return this.center.add(et),this}expandByPoint(et){_toPoint.subVectors(et,this.center);const nt=_toPoint.lengthSq();if(nt>this.radius*this.radius){const rt=Math.sqrt(nt),it=(rt-this.radius)*.5;this.center.add(_toPoint.multiplyScalar(it/rt)),this.radius+=it}return this}union(et){return this.center.equals(et.center)===!0?_toFarthestPoint.set(0,0,1).multiplyScalar(et.radius):_toFarthestPoint.subVectors(et.center,this.center).normalize().multiplyScalar(et.radius),this.expandByPoint(_v1$6.copy(et.center).add(_toFarthestPoint)),this.expandByPoint(_v1$6.copy(et.center).sub(_toFarthestPoint)),this}equals(et){return et.center.equals(this.center)&&et.radius===this.radius}clone(){return new this.constructor().copy(this)}}const _vector$a=new Vector3,_segCenter=new Vector3,_segDir=new Vector3,_diff=new Vector3,_edge1=new Vector3,_edge2=new Vector3,_normal$1=new Vector3;class Ray{constructor(et=new Vector3,nt=new Vector3(0,0,-1)){this.origin=et,this.direction=nt}set(et,nt){return this.origin.copy(et),this.direction.copy(nt),this}copy(et){return this.origin.copy(et.origin),this.direction.copy(et.direction),this}at(et,nt){return nt.copy(this.direction).multiplyScalar(et).add(this.origin)}lookAt(et){return this.direction.copy(et).sub(this.origin).normalize(),this}recast(et){return this.origin.copy(this.at(et,_vector$a)),this}closestPointToPoint(et,nt){nt.subVectors(et,this.origin);const rt=nt.dot(this.direction);return rt<0?nt.copy(this.origin):nt.copy(this.direction).multiplyScalar(rt).add(this.origin)}distanceToPoint(et){return Math.sqrt(this.distanceSqToPoint(et))}distanceSqToPoint(et){const nt=_vector$a.subVectors(et,this.origin).dot(this.direction);return nt<0?this.origin.distanceToSquared(et):(_vector$a.copy(this.direction).multiplyScalar(nt).add(this.origin),_vector$a.distanceToSquared(et))}distanceSqToSegment(et,nt,rt,it){_segCenter.copy(et).add(nt).multiplyScalar(.5),_segDir.copy(nt).sub(et).normalize(),_diff.copy(this.origin).sub(_segCenter);const ot=et.distanceTo(nt)*.5,at=-this.direction.dot(_segDir),st=_diff.dot(this.direction),lt=-_diff.dot(_segDir),ct=_diff.lengthSq(),ut=Math.abs(1-at*at);let ht,dt,pt,mt;if(ut>0)if(ht=at*lt-st,dt=at*st-lt,mt=ot*ut,ht>=0)if(dt>=-mt)if(dt<=mt){const gt=1/ut;ht*=gt,dt*=gt,pt=ht*(ht+at*dt+2*st)+dt*(at*ht+dt+2*lt)+ct}else dt=ot,ht=Math.max(0,-(at*dt+st)),pt=-ht*ht+dt*(dt+2*lt)+ct;else dt=-ot,ht=Math.max(0,-(at*dt+st)),pt=-ht*ht+dt*(dt+2*lt)+ct;else dt<=-mt?(ht=Math.max(0,-(-at*ot+st)),dt=ht>0?-ot:Math.min(Math.max(-ot,-lt),ot),pt=-ht*ht+dt*(dt+2*lt)+ct):dt<=mt?(ht=0,dt=Math.min(Math.max(-ot,-lt),ot),pt=dt*(dt+2*lt)+ct):(ht=Math.max(0,-(at*ot+st)),dt=ht>0?ot:Math.min(Math.max(-ot,-lt),ot),pt=-ht*ht+dt*(dt+2*lt)+ct);else dt=at>0?-ot:ot,ht=Math.max(0,-(at*dt+st)),pt=-ht*ht+dt*(dt+2*lt)+ct;return rt&&rt.copy(this.direction).multiplyScalar(ht).add(this.origin),it&&it.copy(_segDir).multiplyScalar(dt).add(_segCenter),pt}intersectSphere(et,nt){_vector$a.subVectors(et.center,this.origin);const rt=_vector$a.dot(this.direction),it=_vector$a.dot(_vector$a)-rt*rt,ot=et.radius*et.radius;if(it>ot)return null;const at=Math.sqrt(ot-it),st=rt-at,lt=rt+at;return st<0&<<0?null:st<0?this.at(lt,nt):this.at(st,nt)}intersectsSphere(et){return this.distanceSqToPoint(et.center)<=et.radius*et.radius}distanceToPlane(et){const nt=et.normal.dot(this.direction);if(nt===0)return et.distanceToPoint(this.origin)===0?0:null;const rt=-(this.origin.dot(et.normal)+et.constant)/nt;return rt>=0?rt:null}intersectPlane(et,nt){const rt=this.distanceToPlane(et);return rt===null?null:this.at(rt,nt)}intersectsPlane(et){const nt=et.distanceToPoint(this.origin);return nt===0||et.normal.dot(this.direction)*nt<0}intersectBox(et,nt){let rt,it,ot,at,st,lt;const ct=1/this.direction.x,ut=1/this.direction.y,ht=1/this.direction.z,dt=this.origin;return ct>=0?(rt=(et.min.x-dt.x)*ct,it=(et.max.x-dt.x)*ct):(rt=(et.max.x-dt.x)*ct,it=(et.min.x-dt.x)*ct),ut>=0?(ot=(et.min.y-dt.y)*ut,at=(et.max.y-dt.y)*ut):(ot=(et.max.y-dt.y)*ut,at=(et.min.y-dt.y)*ut),rt>at||ot>it||((ot>rt||rt!==rt)&&(rt=ot),(at=0?(st=(et.min.z-dt.z)*ht,lt=(et.max.z-dt.z)*ht):(st=(et.max.z-dt.z)*ht,lt=(et.min.z-dt.z)*ht),rt>lt||st>it)||((st>rt||rt!==rt)&&(rt=st),(lt=0?rt:it,nt)}intersectsBox(et){return this.intersectBox(et,_vector$a)!==null}intersectTriangle(et,nt,rt,it,ot){_edge1.subVectors(nt,et),_edge2.subVectors(rt,et),_normal$1.crossVectors(_edge1,_edge2);let at=this.direction.dot(_normal$1),st;if(at>0){if(it)return null;st=1}else if(at<0)st=-1,at=-at;else return null;_diff.subVectors(this.origin,et);const lt=st*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(lt<0)return null;const ct=st*this.direction.dot(_edge1.cross(_diff));if(ct<0||lt+ct>at)return null;const ut=-st*_diff.dot(_normal$1);return ut<0?null:this.at(ut/at,ot)}applyMatrix4(et){return this.origin.applyMatrix4(et),this.direction.transformDirection(et),this}equals(et){return et.origin.equals(this.origin)&&et.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class Matrix4{constructor(){Matrix4.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt,pt,mt,gt,yt){const bt=this.elements;return bt[0]=et,bt[4]=nt,bt[8]=rt,bt[12]=it,bt[1]=ot,bt[5]=at,bt[9]=st,bt[13]=lt,bt[2]=ct,bt[6]=ut,bt[10]=ht,bt[14]=dt,bt[3]=pt,bt[7]=mt,bt[11]=gt,bt[15]=yt,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Matrix4().fromArray(this.elements)}copy(et){const nt=this.elements,rt=et.elements;return nt[0]=rt[0],nt[1]=rt[1],nt[2]=rt[2],nt[3]=rt[3],nt[4]=rt[4],nt[5]=rt[5],nt[6]=rt[6],nt[7]=rt[7],nt[8]=rt[8],nt[9]=rt[9],nt[10]=rt[10],nt[11]=rt[11],nt[12]=rt[12],nt[13]=rt[13],nt[14]=rt[14],nt[15]=rt[15],this}copyPosition(et){const nt=this.elements,rt=et.elements;return nt[12]=rt[12],nt[13]=rt[13],nt[14]=rt[14],this}setFromMatrix3(et){const nt=et.elements;return this.set(nt[0],nt[3],nt[6],0,nt[1],nt[4],nt[7],0,nt[2],nt[5],nt[8],0,0,0,0,1),this}extractBasis(et,nt,rt){return et.setFromMatrixColumn(this,0),nt.setFromMatrixColumn(this,1),rt.setFromMatrixColumn(this,2),this}makeBasis(et,nt,rt){return this.set(et.x,nt.x,rt.x,0,et.y,nt.y,rt.y,0,et.z,nt.z,rt.z,0,0,0,0,1),this}extractRotation(et){const nt=this.elements,rt=et.elements,it=1/_v1$5.setFromMatrixColumn(et,0).length(),ot=1/_v1$5.setFromMatrixColumn(et,1).length(),at=1/_v1$5.setFromMatrixColumn(et,2).length();return nt[0]=rt[0]*it,nt[1]=rt[1]*it,nt[2]=rt[2]*it,nt[3]=0,nt[4]=rt[4]*ot,nt[5]=rt[5]*ot,nt[6]=rt[6]*ot,nt[7]=0,nt[8]=rt[8]*at,nt[9]=rt[9]*at,nt[10]=rt[10]*at,nt[11]=0,nt[12]=0,nt[13]=0,nt[14]=0,nt[15]=1,this}makeRotationFromEuler(et){const nt=this.elements,rt=et.x,it=et.y,ot=et.z,at=Math.cos(rt),st=Math.sin(rt),lt=Math.cos(it),ct=Math.sin(it),ut=Math.cos(ot),ht=Math.sin(ot);if(et.order==="XYZ"){const dt=at*ut,pt=at*ht,mt=st*ut,gt=st*ht;nt[0]=lt*ut,nt[4]=-lt*ht,nt[8]=ct,nt[1]=pt+mt*ct,nt[5]=dt-gt*ct,nt[9]=-st*lt,nt[2]=gt-dt*ct,nt[6]=mt+pt*ct,nt[10]=at*lt}else if(et.order==="YXZ"){const dt=lt*ut,pt=lt*ht,mt=ct*ut,gt=ct*ht;nt[0]=dt+gt*st,nt[4]=mt*st-pt,nt[8]=at*ct,nt[1]=at*ht,nt[5]=at*ut,nt[9]=-st,nt[2]=pt*st-mt,nt[6]=gt+dt*st,nt[10]=at*lt}else if(et.order==="ZXY"){const dt=lt*ut,pt=lt*ht,mt=ct*ut,gt=ct*ht;nt[0]=dt-gt*st,nt[4]=-at*ht,nt[8]=mt+pt*st,nt[1]=pt+mt*st,nt[5]=at*ut,nt[9]=gt-dt*st,nt[2]=-at*ct,nt[6]=st,nt[10]=at*lt}else if(et.order==="ZYX"){const dt=at*ut,pt=at*ht,mt=st*ut,gt=st*ht;nt[0]=lt*ut,nt[4]=mt*ct-pt,nt[8]=dt*ct+gt,nt[1]=lt*ht,nt[5]=gt*ct+dt,nt[9]=pt*ct-mt,nt[2]=-ct,nt[6]=st*lt,nt[10]=at*lt}else if(et.order==="YZX"){const dt=at*lt,pt=at*ct,mt=st*lt,gt=st*ct;nt[0]=lt*ut,nt[4]=gt-dt*ht,nt[8]=mt*ht+pt,nt[1]=ht,nt[5]=at*ut,nt[9]=-st*ut,nt[2]=-ct*ut,nt[6]=pt*ht+mt,nt[10]=dt-gt*ht}else if(et.order==="XZY"){const dt=at*lt,pt=at*ct,mt=st*lt,gt=st*ct;nt[0]=lt*ut,nt[4]=-ht,nt[8]=ct*ut,nt[1]=dt*ht+gt,nt[5]=at*ut,nt[9]=pt*ht-mt,nt[2]=mt*ht-pt,nt[6]=st*ut,nt[10]=gt*ht+dt}return nt[3]=0,nt[7]=0,nt[11]=0,nt[12]=0,nt[13]=0,nt[14]=0,nt[15]=1,this}makeRotationFromQuaternion(et){return this.compose(_zero,et,_one)}lookAt(et,nt,rt){const it=this.elements;return _z.subVectors(et,nt),_z.lengthSq()===0&&(_z.z=1),_z.normalize(),_x.crossVectors(rt,_z),_x.lengthSq()===0&&(Math.abs(rt.z)===1?_z.x+=1e-4:_z.z+=1e-4,_z.normalize(),_x.crossVectors(rt,_z)),_x.normalize(),_y.crossVectors(_z,_x),it[0]=_x.x,it[4]=_y.x,it[8]=_z.x,it[1]=_x.y,it[5]=_y.y,it[9]=_z.y,it[2]=_x.z,it[6]=_y.z,it[10]=_z.z,this}multiply(et){return this.multiplyMatrices(this,et)}premultiply(et){return this.multiplyMatrices(et,this)}multiplyMatrices(et,nt){const rt=et.elements,it=nt.elements,ot=this.elements,at=rt[0],st=rt[4],lt=rt[8],ct=rt[12],ut=rt[1],ht=rt[5],dt=rt[9],pt=rt[13],mt=rt[2],gt=rt[6],yt=rt[10],bt=rt[14],wt=rt[3],vt=rt[7],kt=rt[11],St=rt[15],Tt=it[0],At=it[4],Et=it[8],Mt=it[12],Lt=it[1],jt=it[5],Rt=it[9],$t=it[13],xt=it[2],It=it[6],Ot=it[10],zt=it[14],Ut=it[3],Wt=it[7],Ft=it[11],Nt=it[15];return ot[0]=at*Tt+st*Lt+lt*xt+ct*Ut,ot[4]=at*At+st*jt+lt*It+ct*Wt,ot[8]=at*Et+st*Rt+lt*Ot+ct*Ft,ot[12]=at*Mt+st*$t+lt*zt+ct*Nt,ot[1]=ut*Tt+ht*Lt+dt*xt+pt*Ut,ot[5]=ut*At+ht*jt+dt*It+pt*Wt,ot[9]=ut*Et+ht*Rt+dt*Ot+pt*Ft,ot[13]=ut*Mt+ht*$t+dt*zt+pt*Nt,ot[2]=mt*Tt+gt*Lt+yt*xt+bt*Ut,ot[6]=mt*At+gt*jt+yt*It+bt*Wt,ot[10]=mt*Et+gt*Rt+yt*Ot+bt*Ft,ot[14]=mt*Mt+gt*$t+yt*zt+bt*Nt,ot[3]=wt*Tt+vt*Lt+kt*xt+St*Ut,ot[7]=wt*At+vt*jt+kt*It+St*Wt,ot[11]=wt*Et+vt*Rt+kt*Ot+St*Ft,ot[15]=wt*Mt+vt*$t+kt*zt+St*Nt,this}multiplyScalar(et){const nt=this.elements;return nt[0]*=et,nt[4]*=et,nt[8]*=et,nt[12]*=et,nt[1]*=et,nt[5]*=et,nt[9]*=et,nt[13]*=et,nt[2]*=et,nt[6]*=et,nt[10]*=et,nt[14]*=et,nt[3]*=et,nt[7]*=et,nt[11]*=et,nt[15]*=et,this}determinant(){const et=this.elements,nt=et[0],rt=et[4],it=et[8],ot=et[12],at=et[1],st=et[5],lt=et[9],ct=et[13],ut=et[2],ht=et[6],dt=et[10],pt=et[14],mt=et[3],gt=et[7],yt=et[11],bt=et[15];return mt*(+ot*lt*ht-it*ct*ht-ot*st*dt+rt*ct*dt+it*st*pt-rt*lt*pt)+gt*(+nt*lt*pt-nt*ct*dt+ot*at*dt-it*at*pt+it*ct*ut-ot*lt*ut)+yt*(+nt*ct*ht-nt*st*pt-ot*at*ht+rt*at*pt+ot*st*ut-rt*ct*ut)+bt*(-it*st*ut-nt*lt*ht+nt*st*dt+it*at*ht-rt*at*dt+rt*lt*ut)}transpose(){const et=this.elements;let nt;return nt=et[1],et[1]=et[4],et[4]=nt,nt=et[2],et[2]=et[8],et[8]=nt,nt=et[6],et[6]=et[9],et[9]=nt,nt=et[3],et[3]=et[12],et[12]=nt,nt=et[7],et[7]=et[13],et[13]=nt,nt=et[11],et[11]=et[14],et[14]=nt,this}setPosition(et,nt,rt){const it=this.elements;return et.isVector3?(it[12]=et.x,it[13]=et.y,it[14]=et.z):(it[12]=et,it[13]=nt,it[14]=rt),this}invert(){const et=this.elements,nt=et[0],rt=et[1],it=et[2],ot=et[3],at=et[4],st=et[5],lt=et[6],ct=et[7],ut=et[8],ht=et[9],dt=et[10],pt=et[11],mt=et[12],gt=et[13],yt=et[14],bt=et[15],wt=ht*yt*ct-gt*dt*ct+gt*lt*pt-st*yt*pt-ht*lt*bt+st*dt*bt,vt=mt*dt*ct-ut*yt*ct-mt*lt*pt+at*yt*pt+ut*lt*bt-at*dt*bt,kt=ut*gt*ct-mt*ht*ct+mt*st*pt-at*gt*pt-ut*st*bt+at*ht*bt,St=mt*ht*lt-ut*gt*lt-mt*st*dt+at*gt*dt+ut*st*yt-at*ht*yt,Tt=nt*wt+rt*vt+it*kt+ot*St;if(Tt===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const At=1/Tt;return et[0]=wt*At,et[1]=(gt*dt*ot-ht*yt*ot-gt*it*pt+rt*yt*pt+ht*it*bt-rt*dt*bt)*At,et[2]=(st*yt*ot-gt*lt*ot+gt*it*ct-rt*yt*ct-st*it*bt+rt*lt*bt)*At,et[3]=(ht*lt*ot-st*dt*ot-ht*it*ct+rt*dt*ct+st*it*pt-rt*lt*pt)*At,et[4]=vt*At,et[5]=(ut*yt*ot-mt*dt*ot+mt*it*pt-nt*yt*pt-ut*it*bt+nt*dt*bt)*At,et[6]=(mt*lt*ot-at*yt*ot-mt*it*ct+nt*yt*ct+at*it*bt-nt*lt*bt)*At,et[7]=(at*dt*ot-ut*lt*ot+ut*it*ct-nt*dt*ct-at*it*pt+nt*lt*pt)*At,et[8]=kt*At,et[9]=(mt*ht*ot-ut*gt*ot-mt*rt*pt+nt*gt*pt+ut*rt*bt-nt*ht*bt)*At,et[10]=(at*gt*ot-mt*st*ot+mt*rt*ct-nt*gt*ct-at*rt*bt+nt*st*bt)*At,et[11]=(ut*st*ot-at*ht*ot-ut*rt*ct+nt*ht*ct+at*rt*pt-nt*st*pt)*At,et[12]=St*At,et[13]=(ut*gt*it-mt*ht*it+mt*rt*dt-nt*gt*dt-ut*rt*yt+nt*ht*yt)*At,et[14]=(mt*st*it-at*gt*it-mt*rt*lt+nt*gt*lt+at*rt*yt-nt*st*yt)*At,et[15]=(at*ht*it-ut*st*it+ut*rt*lt-nt*ht*lt-at*rt*dt+nt*st*dt)*At,this}scale(et){const nt=this.elements,rt=et.x,it=et.y,ot=et.z;return nt[0]*=rt,nt[4]*=it,nt[8]*=ot,nt[1]*=rt,nt[5]*=it,nt[9]*=ot,nt[2]*=rt,nt[6]*=it,nt[10]*=ot,nt[3]*=rt,nt[7]*=it,nt[11]*=ot,this}getMaxScaleOnAxis(){const et=this.elements,nt=et[0]*et[0]+et[1]*et[1]+et[2]*et[2],rt=et[4]*et[4]+et[5]*et[5]+et[6]*et[6],it=et[8]*et[8]+et[9]*et[9]+et[10]*et[10];return Math.sqrt(Math.max(nt,rt,it))}makeTranslation(et,nt,rt){return this.set(1,0,0,et,0,1,0,nt,0,0,1,rt,0,0,0,1),this}makeRotationX(et){const nt=Math.cos(et),rt=Math.sin(et);return this.set(1,0,0,0,0,nt,-rt,0,0,rt,nt,0,0,0,0,1),this}makeRotationY(et){const nt=Math.cos(et),rt=Math.sin(et);return this.set(nt,0,rt,0,0,1,0,0,-rt,0,nt,0,0,0,0,1),this}makeRotationZ(et){const nt=Math.cos(et),rt=Math.sin(et);return this.set(nt,-rt,0,0,rt,nt,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(et,nt){const rt=Math.cos(nt),it=Math.sin(nt),ot=1-rt,at=et.x,st=et.y,lt=et.z,ct=ot*at,ut=ot*st;return this.set(ct*at+rt,ct*st-it*lt,ct*lt+it*st,0,ct*st+it*lt,ut*st+rt,ut*lt-it*at,0,ct*lt-it*st,ut*lt+it*at,ot*lt*lt+rt,0,0,0,0,1),this}makeScale(et,nt,rt){return this.set(et,0,0,0,0,nt,0,0,0,0,rt,0,0,0,0,1),this}makeShear(et,nt,rt,it,ot,at){return this.set(1,rt,ot,0,et,1,at,0,nt,it,1,0,0,0,0,1),this}compose(et,nt,rt){const it=this.elements,ot=nt._x,at=nt._y,st=nt._z,lt=nt._w,ct=ot+ot,ut=at+at,ht=st+st,dt=ot*ct,pt=ot*ut,mt=ot*ht,gt=at*ut,yt=at*ht,bt=st*ht,wt=lt*ct,vt=lt*ut,kt=lt*ht,St=rt.x,Tt=rt.y,At=rt.z;return it[0]=(1-(gt+bt))*St,it[1]=(pt+kt)*St,it[2]=(mt-vt)*St,it[3]=0,it[4]=(pt-kt)*Tt,it[5]=(1-(dt+bt))*Tt,it[6]=(yt+wt)*Tt,it[7]=0,it[8]=(mt+vt)*At,it[9]=(yt-wt)*At,it[10]=(1-(dt+gt))*At,it[11]=0,it[12]=et.x,it[13]=et.y,it[14]=et.z,it[15]=1,this}decompose(et,nt,rt){const it=this.elements;let ot=_v1$5.set(it[0],it[1],it[2]).length();const at=_v1$5.set(it[4],it[5],it[6]).length(),st=_v1$5.set(it[8],it[9],it[10]).length();this.determinant()<0&&(ot=-ot),et.x=it[12],et.y=it[13],et.z=it[14],_m1$2.copy(this);const ct=1/ot,ut=1/at,ht=1/st;return _m1$2.elements[0]*=ct,_m1$2.elements[1]*=ct,_m1$2.elements[2]*=ct,_m1$2.elements[4]*=ut,_m1$2.elements[5]*=ut,_m1$2.elements[6]*=ut,_m1$2.elements[8]*=ht,_m1$2.elements[9]*=ht,_m1$2.elements[10]*=ht,nt.setFromRotationMatrix(_m1$2),rt.x=ot,rt.y=at,rt.z=st,this}makePerspective(et,nt,rt,it,ot,at){const st=this.elements,lt=2*ot/(nt-et),ct=2*ot/(rt-it),ut=(nt+et)/(nt-et),ht=(rt+it)/(rt-it),dt=-(at+ot)/(at-ot),pt=-2*at*ot/(at-ot);return st[0]=lt,st[4]=0,st[8]=ut,st[12]=0,st[1]=0,st[5]=ct,st[9]=ht,st[13]=0,st[2]=0,st[6]=0,st[10]=dt,st[14]=pt,st[3]=0,st[7]=0,st[11]=-1,st[15]=0,this}makeOrthographic(et,nt,rt,it,ot,at){const st=this.elements,lt=1/(nt-et),ct=1/(rt-it),ut=1/(at-ot),ht=(nt+et)*lt,dt=(rt+it)*ct,pt=(at+ot)*ut;return st[0]=2*lt,st[4]=0,st[8]=0,st[12]=-ht,st[1]=0,st[5]=2*ct,st[9]=0,st[13]=-dt,st[2]=0,st[6]=0,st[10]=-2*ut,st[14]=-pt,st[3]=0,st[7]=0,st[11]=0,st[15]=1,this}equals(et){const nt=this.elements,rt=et.elements;for(let it=0;it<16;it++)if(nt[it]!==rt[it])return!1;return!0}fromArray(et,nt=0){for(let rt=0;rt<16;rt++)this.elements[rt]=et[rt+nt];return this}toArray(et=[],nt=0){const rt=this.elements;return et[nt]=rt[0],et[nt+1]=rt[1],et[nt+2]=rt[2],et[nt+3]=rt[3],et[nt+4]=rt[4],et[nt+5]=rt[5],et[nt+6]=rt[6],et[nt+7]=rt[7],et[nt+8]=rt[8],et[nt+9]=rt[9],et[nt+10]=rt[10],et[nt+11]=rt[11],et[nt+12]=rt[12],et[nt+13]=rt[13],et[nt+14]=rt[14],et[nt+15]=rt[15],et}}const _v1$5=new Vector3,_m1$2=new Matrix4,_zero=new Vector3(0,0,0),_one=new Vector3(1,1,1),_x=new Vector3,_y=new Vector3,_z=new Vector3,_matrix$1=new Matrix4,_quaternion$3=new Quaternion;class Euler{constructor(et=0,nt=0,rt=0,it=Euler.DefaultOrder){this.isEuler=!0,this._x=et,this._y=nt,this._z=rt,this._order=it}get x(){return this._x}set x(et){this._x=et,this._onChangeCallback()}get y(){return this._y}set y(et){this._y=et,this._onChangeCallback()}get z(){return this._z}set z(et){this._z=et,this._onChangeCallback()}get order(){return this._order}set order(et){this._order=et,this._onChangeCallback()}set(et,nt,rt,it=this._order){return this._x=et,this._y=nt,this._z=rt,this._order=it,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(et){return this._x=et._x,this._y=et._y,this._z=et._z,this._order=et._order,this._onChangeCallback(),this}setFromRotationMatrix(et,nt=this._order,rt=!0){const it=et.elements,ot=it[0],at=it[4],st=it[8],lt=it[1],ct=it[5],ut=it[9],ht=it[2],dt=it[6],pt=it[10];switch(nt){case"XYZ":this._y=Math.asin(clamp$4(st,-1,1)),Math.abs(st)<.9999999?(this._x=Math.atan2(-ut,pt),this._z=Math.atan2(-at,ot)):(this._x=Math.atan2(dt,ct),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp$4(ut,-1,1)),Math.abs(ut)<.9999999?(this._y=Math.atan2(st,pt),this._z=Math.atan2(lt,ct)):(this._y=Math.atan2(-ht,ot),this._z=0);break;case"ZXY":this._x=Math.asin(clamp$4(dt,-1,1)),Math.abs(dt)<.9999999?(this._y=Math.atan2(-ht,pt),this._z=Math.atan2(-at,ct)):(this._y=0,this._z=Math.atan2(lt,ot));break;case"ZYX":this._y=Math.asin(-clamp$4(ht,-1,1)),Math.abs(ht)<.9999999?(this._x=Math.atan2(dt,pt),this._z=Math.atan2(lt,ot)):(this._x=0,this._z=Math.atan2(-at,ct));break;case"YZX":this._z=Math.asin(clamp$4(lt,-1,1)),Math.abs(lt)<.9999999?(this._x=Math.atan2(-ut,ct),this._y=Math.atan2(-ht,ot)):(this._x=0,this._y=Math.atan2(st,pt));break;case"XZY":this._z=Math.asin(-clamp$4(at,-1,1)),Math.abs(at)<.9999999?(this._x=Math.atan2(dt,ct),this._y=Math.atan2(st,ot)):(this._x=Math.atan2(-ut,pt),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+nt)}return this._order=nt,rt===!0&&this._onChangeCallback(),this}setFromQuaternion(et,nt,rt){return _matrix$1.makeRotationFromQuaternion(et),this.setFromRotationMatrix(_matrix$1,nt,rt)}setFromVector3(et,nt=this._order){return this.set(et.x,et.y,et.z,nt)}reorder(et){return _quaternion$3.setFromEuler(this),this.setFromQuaternion(_quaternion$3,et)}equals(et){return et._x===this._x&&et._y===this._y&&et._z===this._z&&et._order===this._order}fromArray(et){return this._x=et[0],this._y=et[1],this._z=et[2],et[3]!==void 0&&(this._order=et[3]),this._onChangeCallback(),this}toArray(et=[],nt=0){return et[nt]=this._x,et[nt+1]=this._y,et[nt+2]=this._z,et[nt+3]=this._order,et}_onChange(et){return this._onChangeCallback=et,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}toVector3(){console.error("THREE.Euler: .toVector3() has been removed. Use Vector3.setFromEuler() instead")}}Euler.DefaultOrder="XYZ";Euler.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class Layers{constructor(){this.mask=1}set(et){this.mask=(1<>>0}enable(et){this.mask|=1<1){for(let nt=0;nt1){for(let rt=0;rt0){it.children=[];for(let st=0;st0){it.animations=[];for(let st=0;st0&&(rt.geometries=st),lt.length>0&&(rt.materials=lt),ct.length>0&&(rt.textures=ct),ut.length>0&&(rt.images=ut),ht.length>0&&(rt.shapes=ht),dt.length>0&&(rt.skeletons=dt),pt.length>0&&(rt.animations=pt),mt.length>0&&(rt.nodes=mt)}return rt.object=it,rt;function at(st){const lt=[];for(const ct in st){const ut=st[ct];delete ut.metadata,lt.push(ut)}return lt}}clone(et){return new this.constructor().copy(this,et)}copy(et,nt=!0){if(this.name=et.name,this.up.copy(et.up),this.position.copy(et.position),this.rotation.order=et.rotation.order,this.quaternion.copy(et.quaternion),this.scale.copy(et.scale),this.matrix.copy(et.matrix),this.matrixWorld.copy(et.matrixWorld),this.matrixAutoUpdate=et.matrixAutoUpdate,this.matrixWorldNeedsUpdate=et.matrixWorldNeedsUpdate,this.layers.mask=et.layers.mask,this.visible=et.visible,this.castShadow=et.castShadow,this.receiveShadow=et.receiveShadow,this.frustumCulled=et.frustumCulled,this.renderOrder=et.renderOrder,this.userData=JSON.parse(JSON.stringify(et.userData)),nt===!0)for(let rt=0;rt0?it.multiplyScalar(1/Math.sqrt(ot)):it.set(0,0,0)}static getBarycoord(et,nt,rt,it,ot){_v0$1.subVectors(it,nt),_v1$3.subVectors(rt,nt),_v2$2.subVectors(et,nt);const at=_v0$1.dot(_v0$1),st=_v0$1.dot(_v1$3),lt=_v0$1.dot(_v2$2),ct=_v1$3.dot(_v1$3),ut=_v1$3.dot(_v2$2),ht=at*ct-st*st;if(ht===0)return ot.set(-2,-1,-1);const dt=1/ht,pt=(ct*lt-st*ut)*dt,mt=(at*ut-st*lt)*dt;return ot.set(1-pt-mt,mt,pt)}static containsPoint(et,nt,rt,it){return this.getBarycoord(et,nt,rt,it,_v3$1),_v3$1.x>=0&&_v3$1.y>=0&&_v3$1.x+_v3$1.y<=1}static getUV(et,nt,rt,it,ot,at,st,lt){return this.getBarycoord(et,nt,rt,it,_v3$1),lt.set(0,0),lt.addScaledVector(ot,_v3$1.x),lt.addScaledVector(at,_v3$1.y),lt.addScaledVector(st,_v3$1.z),lt}static isFrontFacing(et,nt,rt,it){return _v0$1.subVectors(rt,nt),_v1$3.subVectors(et,nt),_v0$1.cross(_v1$3).dot(it)<0}set(et,nt,rt){return this.a.copy(et),this.b.copy(nt),this.c.copy(rt),this}setFromPointsAndIndices(et,nt,rt,it){return this.a.copy(et[nt]),this.b.copy(et[rt]),this.c.copy(et[it]),this}setFromAttributeAndIndices(et,nt,rt,it){return this.a.fromBufferAttribute(et,nt),this.b.fromBufferAttribute(et,rt),this.c.fromBufferAttribute(et,it),this}clone(){return new this.constructor().copy(this)}copy(et){return this.a.copy(et.a),this.b.copy(et.b),this.c.copy(et.c),this}getArea(){return _v0$1.subVectors(this.c,this.b),_v1$3.subVectors(this.a,this.b),_v0$1.cross(_v1$3).length()*.5}getMidpoint(et){return et.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(et){return Triangle.getNormal(this.a,this.b,this.c,et)}getPlane(et){return et.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(et,nt){return Triangle.getBarycoord(et,this.a,this.b,this.c,nt)}getUV(et,nt,rt,it,ot){return Triangle.getUV(et,this.a,this.b,this.c,nt,rt,it,ot)}containsPoint(et){return Triangle.containsPoint(et,this.a,this.b,this.c)}isFrontFacing(et){return Triangle.isFrontFacing(this.a,this.b,this.c,et)}intersectsBox(et){return et.intersectsTriangle(this)}closestPointToPoint(et,nt){const rt=this.a,it=this.b,ot=this.c;let at,st;_vab.subVectors(it,rt),_vac.subVectors(ot,rt),_vap.subVectors(et,rt);const lt=_vab.dot(_vap),ct=_vac.dot(_vap);if(lt<=0&&ct<=0)return nt.copy(rt);_vbp.subVectors(et,it);const ut=_vab.dot(_vbp),ht=_vac.dot(_vbp);if(ut>=0&&ht<=ut)return nt.copy(it);const dt=lt*ht-ut*ct;if(dt<=0&<>=0&&ut<=0)return at=lt/(lt-ut),nt.copy(rt).addScaledVector(_vab,at);_vcp.subVectors(et,ot);const pt=_vab.dot(_vcp),mt=_vac.dot(_vcp);if(mt>=0&&pt<=mt)return nt.copy(ot);const gt=pt*ct-lt*mt;if(gt<=0&&ct>=0&&mt<=0)return st=ct/(ct-mt),nt.copy(rt).addScaledVector(_vac,st);const yt=ut*mt-pt*ht;if(yt<=0&&ht-ut>=0&&pt-mt>=0)return _vbc.subVectors(ot,it),st=(ht-ut)/(ht-ut+(pt-mt)),nt.copy(it).addScaledVector(_vbc,st);const bt=1/(yt+gt+dt);return at=gt*bt,st=dt*bt,nt.copy(rt).addScaledVector(_vab,at).addScaledVector(_vac,st)}equals(et){return et.a.equals(this.a)&&et.b.equals(this.b)&&et.c.equals(this.c)}}let materialId=0;class Material extends EventDispatcher$1{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:materialId++}),this.uuid=generateUUID$1(),this.name="",this.type="Material",this.blending=NormalBlending,this.side=FrontSide,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=SrcAlphaFactor,this.blendDst=OneMinusSrcAlphaFactor,this.blendEquation=AddEquation,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=LessEqualDepth,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=AlwaysStencilFunc,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=KeepStencilOp,this.stencilZFail=KeepStencilOp,this.stencilZPass=KeepStencilOp,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(et){this._alphaTest>0!=et>0&&this.version++,this._alphaTest=et}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(et){if(et!==void 0)for(const nt in et){const rt=et[nt];if(rt===void 0){console.warn("THREE.Material: '"+nt+"' parameter is undefined.");continue}if(nt==="shading"){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=rt===FlatShading;continue}const it=this[nt];if(it===void 0){console.warn("THREE."+this.type+": '"+nt+"' is not a property of this material.");continue}it&&it.isColor?it.set(rt):it&&it.isVector3&&rt&&rt.isVector3?it.copy(rt):this[nt]=rt}}toJSON(et){const nt=et===void 0||typeof et=="string";nt&&(et={textures:{},images:{}});const rt={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};rt.uuid=this.uuid,rt.type=this.type,this.name!==""&&(rt.name=this.name),this.color&&this.color.isColor&&(rt.color=this.color.getHex()),this.roughness!==void 0&&(rt.roughness=this.roughness),this.metalness!==void 0&&(rt.metalness=this.metalness),this.sheen!==void 0&&(rt.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(rt.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(rt.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(rt.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(rt.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(rt.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(rt.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(rt.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(rt.shininess=this.shininess),this.clearcoat!==void 0&&(rt.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(rt.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(rt.clearcoatMap=this.clearcoatMap.toJSON(et).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(rt.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(et).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(rt.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(et).uuid,rt.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(rt.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(rt.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(rt.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(rt.iridescenceMap=this.iridescenceMap.toJSON(et).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(rt.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(et).uuid),this.map&&this.map.isTexture&&(rt.map=this.map.toJSON(et).uuid),this.matcap&&this.matcap.isTexture&&(rt.matcap=this.matcap.toJSON(et).uuid),this.alphaMap&&this.alphaMap.isTexture&&(rt.alphaMap=this.alphaMap.toJSON(et).uuid),this.lightMap&&this.lightMap.isTexture&&(rt.lightMap=this.lightMap.toJSON(et).uuid,rt.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(rt.aoMap=this.aoMap.toJSON(et).uuid,rt.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(rt.bumpMap=this.bumpMap.toJSON(et).uuid,rt.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(rt.normalMap=this.normalMap.toJSON(et).uuid,rt.normalMapType=this.normalMapType,rt.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(rt.displacementMap=this.displacementMap.toJSON(et).uuid,rt.displacementScale=this.displacementScale,rt.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(rt.roughnessMap=this.roughnessMap.toJSON(et).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(rt.metalnessMap=this.metalnessMap.toJSON(et).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(rt.emissiveMap=this.emissiveMap.toJSON(et).uuid),this.specularMap&&this.specularMap.isTexture&&(rt.specularMap=this.specularMap.toJSON(et).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(rt.specularIntensityMap=this.specularIntensityMap.toJSON(et).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(rt.specularColorMap=this.specularColorMap.toJSON(et).uuid),this.envMap&&this.envMap.isTexture&&(rt.envMap=this.envMap.toJSON(et).uuid,this.combine!==void 0&&(rt.combine=this.combine)),this.envMapIntensity!==void 0&&(rt.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(rt.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(rt.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(rt.gradientMap=this.gradientMap.toJSON(et).uuid),this.transmission!==void 0&&(rt.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(rt.transmissionMap=this.transmissionMap.toJSON(et).uuid),this.thickness!==void 0&&(rt.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(rt.thicknessMap=this.thicknessMap.toJSON(et).uuid),this.attenuationDistance!==void 0&&(rt.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(rt.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(rt.size=this.size),this.shadowSide!==null&&(rt.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(rt.sizeAttenuation=this.sizeAttenuation),this.blending!==NormalBlending&&(rt.blending=this.blending),this.side!==FrontSide&&(rt.side=this.side),this.vertexColors&&(rt.vertexColors=!0),this.opacity<1&&(rt.opacity=this.opacity),this.transparent===!0&&(rt.transparent=this.transparent),rt.depthFunc=this.depthFunc,rt.depthTest=this.depthTest,rt.depthWrite=this.depthWrite,rt.colorWrite=this.colorWrite,rt.stencilWrite=this.stencilWrite,rt.stencilWriteMask=this.stencilWriteMask,rt.stencilFunc=this.stencilFunc,rt.stencilRef=this.stencilRef,rt.stencilFuncMask=this.stencilFuncMask,rt.stencilFail=this.stencilFail,rt.stencilZFail=this.stencilZFail,rt.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(rt.rotation=this.rotation),this.polygonOffset===!0&&(rt.polygonOffset=!0),this.polygonOffsetFactor!==0&&(rt.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(rt.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(rt.linewidth=this.linewidth),this.dashSize!==void 0&&(rt.dashSize=this.dashSize),this.gapSize!==void 0&&(rt.gapSize=this.gapSize),this.scale!==void 0&&(rt.scale=this.scale),this.dithering===!0&&(rt.dithering=!0),this.alphaTest>0&&(rt.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(rt.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(rt.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(rt.wireframe=this.wireframe),this.wireframeLinewidth>1&&(rt.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(rt.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(rt.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(rt.flatShading=this.flatShading),this.visible===!1&&(rt.visible=!1),this.toneMapped===!1&&(rt.toneMapped=!1),this.fog===!1&&(rt.fog=!1),JSON.stringify(this.userData)!=="{}"&&(rt.userData=this.userData);function it(ot){const at=[];for(const st in ot){const lt=ot[st];delete lt.metadata,at.push(lt)}return at}if(nt){const ot=it(et.textures),at=it(et.images);ot.length>0&&(rt.textures=ot),at.length>0&&(rt.images=at)}return rt}clone(){return new this.constructor().copy(this)}copy(et){this.name=et.name,this.blending=et.blending,this.side=et.side,this.vertexColors=et.vertexColors,this.opacity=et.opacity,this.transparent=et.transparent,this.blendSrc=et.blendSrc,this.blendDst=et.blendDst,this.blendEquation=et.blendEquation,this.blendSrcAlpha=et.blendSrcAlpha,this.blendDstAlpha=et.blendDstAlpha,this.blendEquationAlpha=et.blendEquationAlpha,this.depthFunc=et.depthFunc,this.depthTest=et.depthTest,this.depthWrite=et.depthWrite,this.stencilWriteMask=et.stencilWriteMask,this.stencilFunc=et.stencilFunc,this.stencilRef=et.stencilRef,this.stencilFuncMask=et.stencilFuncMask,this.stencilFail=et.stencilFail,this.stencilZFail=et.stencilZFail,this.stencilZPass=et.stencilZPass,this.stencilWrite=et.stencilWrite;const nt=et.clippingPlanes;let rt=null;if(nt!==null){const it=nt.length;rt=new Array(it);for(let ot=0;ot!==it;++ot)rt[ot]=nt[ot].clone()}return this.clippingPlanes=rt,this.clipIntersection=et.clipIntersection,this.clipShadows=et.clipShadows,this.shadowSide=et.shadowSide,this.colorWrite=et.colorWrite,this.precision=et.precision,this.polygonOffset=et.polygonOffset,this.polygonOffsetFactor=et.polygonOffsetFactor,this.polygonOffsetUnits=et.polygonOffsetUnits,this.dithering=et.dithering,this.alphaTest=et.alphaTest,this.alphaToCoverage=et.alphaToCoverage,this.premultipliedAlpha=et.premultipliedAlpha,this.visible=et.visible,this.toneMapped=et.toneMapped,this.userData=JSON.parse(JSON.stringify(et.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(et){et===!0&&this.version++}}class MeshBasicMaterial extends Material{constructor(et){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Color$1(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(et)}copy(et){return super.copy(et),this.color.copy(et.color),this.map=et.map,this.lightMap=et.lightMap,this.lightMapIntensity=et.lightMapIntensity,this.aoMap=et.aoMap,this.aoMapIntensity=et.aoMapIntensity,this.specularMap=et.specularMap,this.alphaMap=et.alphaMap,this.envMap=et.envMap,this.combine=et.combine,this.reflectivity=et.reflectivity,this.refractionRatio=et.refractionRatio,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this.wireframeLinecap=et.wireframeLinecap,this.wireframeLinejoin=et.wireframeLinejoin,this.fog=et.fog,this}}const _vector$9=new Vector3,_vector2$1=new Vector2;class BufferAttribute{constructor(et,nt,rt){if(Array.isArray(et))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=et,this.itemSize=nt,this.count=et!==void 0?et.length/nt:0,this.normalized=rt===!0,this.usage=StaticDrawUsage,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(et){et===!0&&this.version++}setUsage(et){return this.usage=et,this}copy(et){return this.name=et.name,this.array=new et.array.constructor(et.array),this.itemSize=et.itemSize,this.count=et.count,this.normalized=et.normalized,this.usage=et.usage,this}copyAt(et,nt,rt){et*=this.itemSize,rt*=nt.itemSize;for(let it=0,ot=this.itemSize;it0&&(et.userData=this.userData),this.parameters!==void 0){const lt=this.parameters;for(const ct in lt)lt[ct]!==void 0&&(et[ct]=lt[ct]);return et}et.data={attributes:{}};const nt=this.index;nt!==null&&(et.data.index={type:nt.array.constructor.name,array:Array.prototype.slice.call(nt.array)});const rt=this.attributes;for(const lt in rt){const ct=rt[lt];et.data.attributes[lt]=ct.toJSON(et.data)}const it={};let ot=!1;for(const lt in this.morphAttributes){const ct=this.morphAttributes[lt],ut=[];for(let ht=0,dt=ct.length;ht0&&(it[lt]=ut,ot=!0)}ot&&(et.data.morphAttributes=it,et.data.morphTargetsRelative=this.morphTargetsRelative);const at=this.groups;at.length>0&&(et.data.groups=JSON.parse(JSON.stringify(at)));const st=this.boundingSphere;return st!==null&&(et.data.boundingSphere={center:st.center.toArray(),radius:st.radius}),et}clone(){return new this.constructor().copy(this)}copy(et){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const nt={};this.name=et.name;const rt=et.index;rt!==null&&this.setIndex(rt.clone(nt));const it=et.attributes;for(const ct in it){const ut=it[ct];this.setAttribute(ct,ut.clone(nt))}const ot=et.morphAttributes;for(const ct in ot){const ut=[],ht=ot[ct];for(let dt=0,pt=ht.length;dt0){const it=nt[rt[0]];if(it!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let ot=0,at=it.length;otnt.far?null:{distance:ct,point:_intersectionPointWorld.clone(),object:tt}}function checkBufferGeometryIntersection(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht){_vA$1.fromBufferAttribute(it,ct),_vB$1.fromBufferAttribute(it,ut),_vC$1.fromBufferAttribute(it,ht);const dt=tt.morphTargetInfluences;if(ot&&dt){_morphA.set(0,0,0),_morphB.set(0,0,0),_morphC.set(0,0,0);for(let mt=0,gt=ot.length;mt0?1:-1,ut.push(Wt.x,Wt.y,Wt.z),ht.push(Ct/At),ht.push(1-Ft/Et),zt+=1}}for(let Ft=0;Ft>8&255]+_lut$1[tt>>16&255]+_lut$1[tt>>24&255]+"-"+_lut$1[et&255]+_lut$1[et>>8&255]+"-"+_lut$1[et>>16&15|64]+_lut$1[et>>24&255]+"-"+_lut$1[nt&63|128]+_lut$1[nt>>8&255]+"-"+_lut$1[nt>>16&255]+_lut$1[nt>>24&255]+_lut$1[rt&255]+_lut$1[rt>>8&255]+_lut$1[rt>>16&255]+_lut$1[rt>>24&255]).toLowerCase()}function clamp$4(tt,et,nt){return Math.max(et,Math.min(nt,tt))}function euclideanModulo(tt,et){return(tt%et+et)%et}function mapLinear(tt,et,nt,rt,it){return rt+(tt-et)*(it-rt)/(nt-et)}function inverseLerp(tt,et,nt){return tt!==et?(nt-tt)/(et-tt):0}function lerp(tt,et,nt){return(1-nt)*tt+nt*et}function damp$1(tt,et,nt,rt){return lerp(tt,et,1-Math.exp(-nt*rt))}function pingpong(tt,et=1){return et-Math.abs(euclideanModulo(tt,et*2)-et)}function smoothstep(tt,et,nt){return tt<=et?0:tt>=nt?1:(tt=(tt-et)/(nt-et),tt*tt*(3-2*tt))}function smootherstep(tt,et,nt){return tt<=et?0:tt>=nt?1:(tt=(tt-et)/(nt-et),tt*tt*tt*(tt*(tt*6-15)+10))}function randInt(tt,et){return tt+Math.floor(Math.random()*(et-tt+1))}function randFloat(tt,et){return tt+Math.random()*(et-tt)}function randFloatSpread(tt){return tt*(.5-Math.random())}function seededRandom(tt){tt!==void 0&&(_seed=tt);let et=_seed+=1831565813;return et=Math.imul(et^et>>>15,et|1),et^=et+Math.imul(et^et>>>7,et|61),((et^et>>>14)>>>0)/4294967296}function degToRad(tt){return tt*DEG2RAD$1}function radToDeg(tt){return tt*RAD2DEG}function isPowerOfTwo(tt){return(tt&tt-1)===0&&tt!==0}function ceilPowerOfTwo(tt){return Math.pow(2,Math.ceil(Math.log(tt)/Math.LN2))}function floorPowerOfTwo(tt){return Math.pow(2,Math.floor(Math.log(tt)/Math.LN2))}function setQuaternionFromProperEuler(tt,et,nt,rt,it){const ot=Math.cos,at=Math.sin,st=ot(nt/2),lt=at(nt/2),ct=ot((et+rt)/2),ut=at((et+rt)/2),ht=ot((et-rt)/2),dt=at((et-rt)/2),pt=ot((rt-et)/2),mt=at((rt-et)/2);switch(it){case"XYX":tt.set(st*ut,lt*ht,lt*dt,st*ct);break;case"YZY":tt.set(lt*dt,st*ut,lt*ht,st*ct);break;case"ZXZ":tt.set(lt*ht,lt*dt,st*ut,st*ct);break;case"XZX":tt.set(st*ut,lt*mt,lt*pt,st*ct);break;case"YXY":tt.set(lt*pt,st*ut,lt*mt,st*ct);break;case"ZYZ":tt.set(lt*mt,lt*pt,st*ut,st*ct);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+it)}}function denormalize$1(tt,et){switch(et.constructor){case Float32Array:return tt;case Uint16Array:return tt/65535;case Uint8Array:return tt/255;case Int16Array:return Math.max(tt/32767,-1);case Int8Array:return Math.max(tt/127,-1);default:throw new Error("Invalid component type.")}}function normalize$2(tt,et){switch(et.constructor){case Float32Array:return tt;case Uint16Array:return Math.round(tt*65535);case Uint8Array:return Math.round(tt*255);case Int16Array:return Math.round(tt*32767);case Int8Array:return Math.round(tt*127);default:throw new Error("Invalid component type.")}}var MathUtils=Object.freeze({__proto__:null,DEG2RAD:DEG2RAD$1,RAD2DEG,generateUUID:generateUUID$1,clamp:clamp$4,euclideanModulo,mapLinear,inverseLerp,lerp,damp:damp$1,pingpong,smoothstep,smootherstep,randInt,randFloat,randFloatSpread,seededRandom,degToRad,radToDeg,isPowerOfTwo,ceilPowerOfTwo,floorPowerOfTwo,setQuaternionFromProperEuler,normalize:normalize$2,denormalize:denormalize$1});class Vector2{constructor(et=0,nt=0){Vector2.prototype.isVector2=!0,this.x=et,this.y=nt}get width(){return this.x}set width(et){this.x=et}get height(){return this.y}set height(et){this.y=et}set(et,nt){return this.x=et,this.y=nt,this}setScalar(et){return this.x=et,this.y=et,this}setX(et){return this.x=et,this}setY(et){return this.y=et,this}setComponent(et,nt){switch(et){case 0:this.x=nt;break;case 1:this.y=nt;break;default:throw new Error("index is out of range: "+et)}return this}getComponent(et){switch(et){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+et)}}clone(){return new this.constructor(this.x,this.y)}copy(et){return this.x=et.x,this.y=et.y,this}add(et){return this.x+=et.x,this.y+=et.y,this}addScalar(et){return this.x+=et,this.y+=et,this}addVectors(et,nt){return this.x=et.x+nt.x,this.y=et.y+nt.y,this}addScaledVector(et,nt){return this.x+=et.x*nt,this.y+=et.y*nt,this}sub(et){return this.x-=et.x,this.y-=et.y,this}subScalar(et){return this.x-=et,this.y-=et,this}subVectors(et,nt){return this.x=et.x-nt.x,this.y=et.y-nt.y,this}multiply(et){return this.x*=et.x,this.y*=et.y,this}multiplyScalar(et){return this.x*=et,this.y*=et,this}divide(et){return this.x/=et.x,this.y/=et.y,this}divideScalar(et){return this.multiplyScalar(1/et)}applyMatrix3(et){const nt=this.x,rt=this.y,it=et.elements;return this.x=it[0]*nt+it[3]*rt+it[6],this.y=it[1]*nt+it[4]*rt+it[7],this}min(et){return this.x=Math.min(this.x,et.x),this.y=Math.min(this.y,et.y),this}max(et){return this.x=Math.max(this.x,et.x),this.y=Math.max(this.y,et.y),this}clamp(et,nt){return this.x=Math.max(et.x,Math.min(nt.x,this.x)),this.y=Math.max(et.y,Math.min(nt.y,this.y)),this}clampScalar(et,nt){return this.x=Math.max(et,Math.min(nt,this.x)),this.y=Math.max(et,Math.min(nt,this.y)),this}clampLength(et,nt){const rt=this.length();return this.divideScalar(rt||1).multiplyScalar(Math.max(et,Math.min(nt,rt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(et){return this.x*et.x+this.y*et.y}cross(et){return this.x*et.y-this.y*et.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(et){return Math.sqrt(this.distanceToSquared(et))}distanceToSquared(et){const nt=this.x-et.x,rt=this.y-et.y;return nt*nt+rt*rt}manhattanDistanceTo(et){return Math.abs(this.x-et.x)+Math.abs(this.y-et.y)}setLength(et){return this.normalize().multiplyScalar(et)}lerp(et,nt){return this.x+=(et.x-this.x)*nt,this.y+=(et.y-this.y)*nt,this}lerpVectors(et,nt,rt){return this.x=et.x+(nt.x-et.x)*rt,this.y=et.y+(nt.y-et.y)*rt,this}equals(et){return et.x===this.x&&et.y===this.y}fromArray(et,nt=0){return this.x=et[nt],this.y=et[nt+1],this}toArray(et=[],nt=0){return et[nt]=this.x,et[nt+1]=this.y,et}fromBufferAttribute(et,nt){return this.x=et.getX(nt),this.y=et.getY(nt),this}rotateAround(et,nt){const rt=Math.cos(nt),it=Math.sin(nt),ot=this.x-et.x,at=this.y-et.y;return this.x=ot*rt-at*it+et.x,this.y=ot*it+at*rt+et.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Matrix3{constructor(){Matrix3.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(et,nt,rt,it,ot,at,st,lt,ct){const ut=this.elements;return ut[0]=et,ut[1]=it,ut[2]=st,ut[3]=nt,ut[4]=ot,ut[5]=lt,ut[6]=rt,ut[7]=at,ut[8]=ct,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(et){const nt=this.elements,rt=et.elements;return nt[0]=rt[0],nt[1]=rt[1],nt[2]=rt[2],nt[3]=rt[3],nt[4]=rt[4],nt[5]=rt[5],nt[6]=rt[6],nt[7]=rt[7],nt[8]=rt[8],this}extractBasis(et,nt,rt){return et.setFromMatrix3Column(this,0),nt.setFromMatrix3Column(this,1),rt.setFromMatrix3Column(this,2),this}setFromMatrix4(et){const nt=et.elements;return this.set(nt[0],nt[4],nt[8],nt[1],nt[5],nt[9],nt[2],nt[6],nt[10]),this}multiply(et){return this.multiplyMatrices(this,et)}premultiply(et){return this.multiplyMatrices(et,this)}multiplyMatrices(et,nt){const rt=et.elements,it=nt.elements,ot=this.elements,at=rt[0],st=rt[3],lt=rt[6],ct=rt[1],ut=rt[4],ht=rt[7],dt=rt[2],pt=rt[5],mt=rt[8],gt=it[0],yt=it[3],bt=it[6],wt=it[1],vt=it[4],kt=it[7],St=it[2],Et=it[5],At=it[8];return ot[0]=at*gt+st*wt+lt*St,ot[3]=at*yt+st*vt+lt*Et,ot[6]=at*bt+st*kt+lt*At,ot[1]=ct*gt+ut*wt+ht*St,ot[4]=ct*yt+ut*vt+ht*Et,ot[7]=ct*bt+ut*kt+ht*At,ot[2]=dt*gt+pt*wt+mt*St,ot[5]=dt*yt+pt*vt+mt*Et,ot[8]=dt*bt+pt*kt+mt*At,this}multiplyScalar(et){const nt=this.elements;return nt[0]*=et,nt[3]*=et,nt[6]*=et,nt[1]*=et,nt[4]*=et,nt[7]*=et,nt[2]*=et,nt[5]*=et,nt[8]*=et,this}determinant(){const et=this.elements,nt=et[0],rt=et[1],it=et[2],ot=et[3],at=et[4],st=et[5],lt=et[6],ct=et[7],ut=et[8];return nt*at*ut-nt*st*ct-rt*ot*ut+rt*st*lt+it*ot*ct-it*at*lt}invert(){const et=this.elements,nt=et[0],rt=et[1],it=et[2],ot=et[3],at=et[4],st=et[5],lt=et[6],ct=et[7],ut=et[8],ht=ut*at-st*ct,dt=st*lt-ut*ot,pt=ct*ot-at*lt,mt=nt*ht+rt*dt+it*pt;if(mt===0)return this.set(0,0,0,0,0,0,0,0,0);const gt=1/mt;return et[0]=ht*gt,et[1]=(it*ct-ut*rt)*gt,et[2]=(st*rt-it*at)*gt,et[3]=dt*gt,et[4]=(ut*nt-it*lt)*gt,et[5]=(it*ot-st*nt)*gt,et[6]=pt*gt,et[7]=(rt*lt-ct*nt)*gt,et[8]=(at*nt-rt*ot)*gt,this}transpose(){let et;const nt=this.elements;return et=nt[1],nt[1]=nt[3],nt[3]=et,et=nt[2],nt[2]=nt[6],nt[6]=et,et=nt[5],nt[5]=nt[7],nt[7]=et,this}getNormalMatrix(et){return this.setFromMatrix4(et).invert().transpose()}transposeIntoArray(et){const nt=this.elements;return et[0]=nt[0],et[1]=nt[3],et[2]=nt[6],et[3]=nt[1],et[4]=nt[4],et[5]=nt[7],et[6]=nt[2],et[7]=nt[5],et[8]=nt[8],this}setUvTransform(et,nt,rt,it,ot,at,st){const lt=Math.cos(ot),ct=Math.sin(ot);return this.set(rt*lt,rt*ct,-rt*(lt*at+ct*st)+at+et,-it*ct,it*lt,-it*(-ct*at+lt*st)+st+nt,0,0,1),this}scale(et,nt){const rt=this.elements;return rt[0]*=et,rt[3]*=et,rt[6]*=et,rt[1]*=nt,rt[4]*=nt,rt[7]*=nt,this}rotate(et){const nt=Math.cos(et),rt=Math.sin(et),it=this.elements,ot=it[0],at=it[3],st=it[6],lt=it[1],ct=it[4],ut=it[7];return it[0]=nt*ot+rt*lt,it[3]=nt*at+rt*ct,it[6]=nt*st+rt*ut,it[1]=-rt*ot+nt*lt,it[4]=-rt*at+nt*ct,it[7]=-rt*st+nt*ut,this}translate(et,nt){const rt=this.elements;return rt[0]+=et*rt[2],rt[3]+=et*rt[5],rt[6]+=et*rt[8],rt[1]+=nt*rt[2],rt[4]+=nt*rt[5],rt[7]+=nt*rt[8],this}equals(et){const nt=this.elements,rt=et.elements;for(let it=0;it<9;it++)if(nt[it]!==rt[it])return!1;return!0}fromArray(et,nt=0){for(let rt=0;rt<9;rt++)this.elements[rt]=et[rt+nt];return this}toArray(et=[],nt=0){const rt=this.elements;return et[nt]=rt[0],et[nt+1]=rt[1],et[nt+2]=rt[2],et[nt+3]=rt[3],et[nt+4]=rt[4],et[nt+5]=rt[5],et[nt+6]=rt[6],et[nt+7]=rt[7],et[nt+8]=rt[8],et}clone(){return new this.constructor().fromArray(this.elements)}}function arrayNeedsUint32(tt){for(let et=tt.length-1;et>=0;--et)if(tt[et]>65535)return!0;return!1}const TYPED_ARRAYS={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function getTypedArray(tt,et){return new TYPED_ARRAYS[tt](et)}function createElementNS(tt){return document.createElementNS("http://www.w3.org/1999/xhtml",tt)}function SRGBToLinear(tt){return tt<.04045?tt*.0773993808:Math.pow(tt*.9478672986+.0521327014,2.4)}function LinearToSRGB(tt){return tt<.0031308?tt*12.92:1.055*Math.pow(tt,.41666)-.055}const FN={[SRGBColorSpace$1]:{[LinearSRGBColorSpace$1]:SRGBToLinear},[LinearSRGBColorSpace$1]:{[SRGBColorSpace$1]:LinearToSRGB}},ColorManagement={legacyMode:!0,get workingColorSpace(){return LinearSRGBColorSpace$1},set workingColorSpace(tt){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(tt,et,nt){if(this.legacyMode||et===nt||!et||!nt)return tt;if(FN[et]&&FN[et][nt]!==void 0){const rt=FN[et][nt];return tt.r=rt(tt.r),tt.g=rt(tt.g),tt.b=rt(tt.b),tt}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(tt,et){return this.convert(tt,this.workingColorSpace,et)},toWorkingColorSpace:function(tt,et){return this.convert(tt,et,this.workingColorSpace)}},_colorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},_rgb={r:0,g:0,b:0},_hslA={h:0,s:0,l:0},_hslB={h:0,s:0,l:0};function hue2rgb(tt,et,nt){return nt<0&&(nt+=1),nt>1&&(nt-=1),nt<1/6?tt+(et-tt)*6*nt:nt<1/2?et:nt<2/3?tt+(et-tt)*6*(2/3-nt):tt}function toComponents(tt,et){return et.r=tt.r,et.g=tt.g,et.b=tt.b,et}let Color$1=class{constructor(et,nt,rt){return this.isColor=!0,this.r=1,this.g=1,this.b=1,nt===void 0&&rt===void 0?this.set(et):this.setRGB(et,nt,rt)}set(et){return et&&et.isColor?this.copy(et):typeof et=="number"?this.setHex(et):typeof et=="string"&&this.setStyle(et),this}setScalar(et){return this.r=et,this.g=et,this.b=et,this}setHex(et,nt=SRGBColorSpace$1){return et=Math.floor(et),this.r=(et>>16&255)/255,this.g=(et>>8&255)/255,this.b=(et&255)/255,ColorManagement.toWorkingColorSpace(this,nt),this}setRGB(et,nt,rt,it=LinearSRGBColorSpace$1){return this.r=et,this.g=nt,this.b=rt,ColorManagement.toWorkingColorSpace(this,it),this}setHSL(et,nt,rt,it=LinearSRGBColorSpace$1){if(et=euclideanModulo(et,1),nt=clamp$4(nt,0,1),rt=clamp$4(rt,0,1),nt===0)this.r=this.g=this.b=rt;else{const ot=rt<=.5?rt*(1+nt):rt+nt-rt*nt,at=2*rt-ot;this.r=hue2rgb(at,ot,et+1/3),this.g=hue2rgb(at,ot,et),this.b=hue2rgb(at,ot,et-1/3)}return ColorManagement.toWorkingColorSpace(this,it),this}setStyle(et,nt=SRGBColorSpace$1){function rt(ot){ot!==void 0&&parseFloat(ot)<1&&console.warn("THREE.Color: Alpha component of "+et+" will be ignored.")}let it;if(it=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(et)){let ot;const at=it[1],st=it[2];switch(at){case"rgb":case"rgba":if(ot=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(st))return this.r=Math.min(255,parseInt(ot[1],10))/255,this.g=Math.min(255,parseInt(ot[2],10))/255,this.b=Math.min(255,parseInt(ot[3],10))/255,ColorManagement.toWorkingColorSpace(this,nt),rt(ot[4]),this;if(ot=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(st))return this.r=Math.min(100,parseInt(ot[1],10))/100,this.g=Math.min(100,parseInt(ot[2],10))/100,this.b=Math.min(100,parseInt(ot[3],10))/100,ColorManagement.toWorkingColorSpace(this,nt),rt(ot[4]),this;break;case"hsl":case"hsla":if(ot=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(st)){const lt=parseFloat(ot[1])/360,ct=parseInt(ot[2],10)/100,ut=parseInt(ot[3],10)/100;return rt(ot[4]),this.setHSL(lt,ct,ut,nt)}break}}else if(it=/^\#([A-Fa-f\d]+)$/.exec(et)){const ot=it[1],at=ot.length;if(at===3)return this.r=parseInt(ot.charAt(0)+ot.charAt(0),16)/255,this.g=parseInt(ot.charAt(1)+ot.charAt(1),16)/255,this.b=parseInt(ot.charAt(2)+ot.charAt(2),16)/255,ColorManagement.toWorkingColorSpace(this,nt),this;if(at===6)return this.r=parseInt(ot.charAt(0)+ot.charAt(1),16)/255,this.g=parseInt(ot.charAt(2)+ot.charAt(3),16)/255,this.b=parseInt(ot.charAt(4)+ot.charAt(5),16)/255,ColorManagement.toWorkingColorSpace(this,nt),this}return et&&et.length>0?this.setColorName(et,nt):this}setColorName(et,nt=SRGBColorSpace$1){const rt=_colorKeywords[et.toLowerCase()];return rt!==void 0?this.setHex(rt,nt):console.warn("THREE.Color: Unknown color "+et),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(et){return this.r=et.r,this.g=et.g,this.b=et.b,this}copySRGBToLinear(et){return this.r=SRGBToLinear(et.r),this.g=SRGBToLinear(et.g),this.b=SRGBToLinear(et.b),this}copyLinearToSRGB(et){return this.r=LinearToSRGB(et.r),this.g=LinearToSRGB(et.g),this.b=LinearToSRGB(et.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(et=SRGBColorSpace$1){return ColorManagement.fromWorkingColorSpace(toComponents(this,_rgb),et),clamp$4(_rgb.r*255,0,255)<<16^clamp$4(_rgb.g*255,0,255)<<8^clamp$4(_rgb.b*255,0,255)<<0}getHexString(et=SRGBColorSpace$1){return("000000"+this.getHex(et).toString(16)).slice(-6)}getHSL(et,nt=LinearSRGBColorSpace$1){ColorManagement.fromWorkingColorSpace(toComponents(this,_rgb),nt);const rt=_rgb.r,it=_rgb.g,ot=_rgb.b,at=Math.max(rt,it,ot),st=Math.min(rt,it,ot);let lt,ct;const ut=(st+at)/2;if(st===at)lt=0,ct=0;else{const ht=at-st;switch(ct=ut<=.5?ht/(at+st):ht/(2-at-st),at){case rt:lt=(it-ot)/ht+(it"u")return et.src;let nt;if(et instanceof HTMLCanvasElement)nt=et;else{_canvas===void 0&&(_canvas=createElementNS("canvas")),_canvas.width=et.width,_canvas.height=et.height;const rt=_canvas.getContext("2d");et instanceof ImageData?rt.putImageData(et,0,0):rt.drawImage(et,0,0,et.width,et.height),nt=_canvas}return nt.width>2048||nt.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",et),nt.toDataURL("image/jpeg",.6)):nt.toDataURL("image/png")}static sRGBToLinear(et){if(typeof HTMLImageElement<"u"&&et instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&et instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&et instanceof ImageBitmap){const nt=createElementNS("canvas");nt.width=et.width,nt.height=et.height;const rt=nt.getContext("2d");rt.drawImage(et,0,0,et.width,et.height);const it=rt.getImageData(0,0,et.width,et.height),ot=it.data;for(let at=0;at1)switch(this.wrapS){case RepeatWrapping:et.x=et.x-Math.floor(et.x);break;case ClampToEdgeWrapping:et.x=et.x<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(et.x)%2)===1?et.x=Math.ceil(et.x)-et.x:et.x=et.x-Math.floor(et.x);break}if(et.y<0||et.y>1)switch(this.wrapT){case RepeatWrapping:et.y=et.y-Math.floor(et.y);break;case ClampToEdgeWrapping:et.y=et.y<0?0:1;break;case MirroredRepeatWrapping:Math.abs(Math.floor(et.y)%2)===1?et.y=Math.ceil(et.y)-et.y:et.y=et.y-Math.floor(et.y);break}return this.flipY&&(et.y=1-et.y),et}set needsUpdate(et){et===!0&&(this.version++,this.source.needsUpdate=!0)}}Texture.DEFAULT_IMAGE=null;Texture.DEFAULT_MAPPING=UVMapping;class Vector4{constructor(et=0,nt=0,rt=0,it=1){Vector4.prototype.isVector4=!0,this.x=et,this.y=nt,this.z=rt,this.w=it}get width(){return this.z}set width(et){this.z=et}get height(){return this.w}set height(et){this.w=et}set(et,nt,rt,it){return this.x=et,this.y=nt,this.z=rt,this.w=it,this}setScalar(et){return this.x=et,this.y=et,this.z=et,this.w=et,this}setX(et){return this.x=et,this}setY(et){return this.y=et,this}setZ(et){return this.z=et,this}setW(et){return this.w=et,this}setComponent(et,nt){switch(et){case 0:this.x=nt;break;case 1:this.y=nt;break;case 2:this.z=nt;break;case 3:this.w=nt;break;default:throw new Error("index is out of range: "+et)}return this}getComponent(et){switch(et){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+et)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(et){return this.x=et.x,this.y=et.y,this.z=et.z,this.w=et.w!==void 0?et.w:1,this}add(et){return this.x+=et.x,this.y+=et.y,this.z+=et.z,this.w+=et.w,this}addScalar(et){return this.x+=et,this.y+=et,this.z+=et,this.w+=et,this}addVectors(et,nt){return this.x=et.x+nt.x,this.y=et.y+nt.y,this.z=et.z+nt.z,this.w=et.w+nt.w,this}addScaledVector(et,nt){return this.x+=et.x*nt,this.y+=et.y*nt,this.z+=et.z*nt,this.w+=et.w*nt,this}sub(et){return this.x-=et.x,this.y-=et.y,this.z-=et.z,this.w-=et.w,this}subScalar(et){return this.x-=et,this.y-=et,this.z-=et,this.w-=et,this}subVectors(et,nt){return this.x=et.x-nt.x,this.y=et.y-nt.y,this.z=et.z-nt.z,this.w=et.w-nt.w,this}multiply(et){return this.x*=et.x,this.y*=et.y,this.z*=et.z,this.w*=et.w,this}multiplyScalar(et){return this.x*=et,this.y*=et,this.z*=et,this.w*=et,this}applyMatrix4(et){const nt=this.x,rt=this.y,it=this.z,ot=this.w,at=et.elements;return this.x=at[0]*nt+at[4]*rt+at[8]*it+at[12]*ot,this.y=at[1]*nt+at[5]*rt+at[9]*it+at[13]*ot,this.z=at[2]*nt+at[6]*rt+at[10]*it+at[14]*ot,this.w=at[3]*nt+at[7]*rt+at[11]*it+at[15]*ot,this}divideScalar(et){return this.multiplyScalar(1/et)}setAxisAngleFromQuaternion(et){this.w=2*Math.acos(et.w);const nt=Math.sqrt(1-et.w*et.w);return nt<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=et.x/nt,this.y=et.y/nt,this.z=et.z/nt),this}setAxisAngleFromRotationMatrix(et){let nt,rt,it,ot;const lt=et.elements,ct=lt[0],ut=lt[4],ht=lt[8],dt=lt[1],pt=lt[5],mt=lt[9],gt=lt[2],yt=lt[6],bt=lt[10];if(Math.abs(ut-dt)<.01&&Math.abs(ht-gt)<.01&&Math.abs(mt-yt)<.01){if(Math.abs(ut+dt)<.1&&Math.abs(ht+gt)<.1&&Math.abs(mt+yt)<.1&&Math.abs(ct+pt+bt-3)<.1)return this.set(1,0,0,0),this;nt=Math.PI;const vt=(ct+1)/2,kt=(pt+1)/2,St=(bt+1)/2,Et=(ut+dt)/4,At=(ht+gt)/4,Tt=(mt+yt)/4;return vt>kt&&vt>St?vt<.01?(rt=0,it=.707106781,ot=.707106781):(rt=Math.sqrt(vt),it=Et/rt,ot=At/rt):kt>St?kt<.01?(rt=.707106781,it=0,ot=.707106781):(it=Math.sqrt(kt),rt=Et/it,ot=Tt/it):St<.01?(rt=.707106781,it=.707106781,ot=0):(ot=Math.sqrt(St),rt=At/ot,it=Tt/ot),this.set(rt,it,ot,nt),this}let wt=Math.sqrt((yt-mt)*(yt-mt)+(ht-gt)*(ht-gt)+(dt-ut)*(dt-ut));return Math.abs(wt)<.001&&(wt=1),this.x=(yt-mt)/wt,this.y=(ht-gt)/wt,this.z=(dt-ut)/wt,this.w=Math.acos((ct+pt+bt-1)/2),this}min(et){return this.x=Math.min(this.x,et.x),this.y=Math.min(this.y,et.y),this.z=Math.min(this.z,et.z),this.w=Math.min(this.w,et.w),this}max(et){return this.x=Math.max(this.x,et.x),this.y=Math.max(this.y,et.y),this.z=Math.max(this.z,et.z),this.w=Math.max(this.w,et.w),this}clamp(et,nt){return this.x=Math.max(et.x,Math.min(nt.x,this.x)),this.y=Math.max(et.y,Math.min(nt.y,this.y)),this.z=Math.max(et.z,Math.min(nt.z,this.z)),this.w=Math.max(et.w,Math.min(nt.w,this.w)),this}clampScalar(et,nt){return this.x=Math.max(et,Math.min(nt,this.x)),this.y=Math.max(et,Math.min(nt,this.y)),this.z=Math.max(et,Math.min(nt,this.z)),this.w=Math.max(et,Math.min(nt,this.w)),this}clampLength(et,nt){const rt=this.length();return this.divideScalar(rt||1).multiplyScalar(Math.max(et,Math.min(nt,rt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(et){return this.x*et.x+this.y*et.y+this.z*et.z+this.w*et.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(et){return this.normalize().multiplyScalar(et)}lerp(et,nt){return this.x+=(et.x-this.x)*nt,this.y+=(et.y-this.y)*nt,this.z+=(et.z-this.z)*nt,this.w+=(et.w-this.w)*nt,this}lerpVectors(et,nt,rt){return this.x=et.x+(nt.x-et.x)*rt,this.y=et.y+(nt.y-et.y)*rt,this.z=et.z+(nt.z-et.z)*rt,this.w=et.w+(nt.w-et.w)*rt,this}equals(et){return et.x===this.x&&et.y===this.y&&et.z===this.z&&et.w===this.w}fromArray(et,nt=0){return this.x=et[nt],this.y=et[nt+1],this.z=et[nt+2],this.w=et[nt+3],this}toArray(et=[],nt=0){return et[nt]=this.x,et[nt+1]=this.y,et[nt+2]=this.z,et[nt+3]=this.w,et}fromBufferAttribute(et,nt){return this.x=et.getX(nt),this.y=et.getY(nt),this.z=et.getZ(nt),this.w=et.getW(nt),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class WebGLRenderTarget extends EventDispatcher$1{constructor(et,nt,rt={}){super(),this.isWebGLRenderTarget=!0,this.width=et,this.height=nt,this.depth=1,this.scissor=new Vector4(0,0,et,nt),this.scissorTest=!1,this.viewport=new Vector4(0,0,et,nt);const it={width:et,height:nt,depth:1};this.texture=new Texture(it,rt.mapping,rt.wrapS,rt.wrapT,rt.magFilter,rt.minFilter,rt.format,rt.type,rt.anisotropy,rt.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=rt.generateMipmaps!==void 0?rt.generateMipmaps:!1,this.texture.internalFormat=rt.internalFormat!==void 0?rt.internalFormat:null,this.texture.minFilter=rt.minFilter!==void 0?rt.minFilter:LinearFilter,this.depthBuffer=rt.depthBuffer!==void 0?rt.depthBuffer:!0,this.stencilBuffer=rt.stencilBuffer!==void 0?rt.stencilBuffer:!1,this.depthTexture=rt.depthTexture!==void 0?rt.depthTexture:null,this.samples=rt.samples!==void 0?rt.samples:0}setSize(et,nt,rt=1){(this.width!==et||this.height!==nt||this.depth!==rt)&&(this.width=et,this.height=nt,this.depth=rt,this.texture.image.width=et,this.texture.image.height=nt,this.texture.image.depth=rt,this.dispose()),this.viewport.set(0,0,et,nt),this.scissor.set(0,0,et,nt)}clone(){return new this.constructor().copy(this)}copy(et){this.width=et.width,this.height=et.height,this.depth=et.depth,this.viewport.copy(et.viewport),this.texture=et.texture.clone(),this.texture.isRenderTargetTexture=!0;const nt=Object.assign({},et.texture.image);return this.texture.source=new Source$1(nt),this.depthBuffer=et.depthBuffer,this.stencilBuffer=et.stencilBuffer,et.depthTexture!==null&&(this.depthTexture=et.depthTexture.clone()),this.samples=et.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class DataArrayTexture extends Texture{constructor(et=null,nt=1,rt=1,it=1){super(null),this.isDataArrayTexture=!0,this.image={data:et,width:nt,height:rt,depth:it},this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.wrapR=ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class WebGLArrayRenderTarget extends WebGLRenderTarget{constructor(et,nt,rt){super(et,nt),this.isWebGLArrayRenderTarget=!0,this.depth=rt,this.texture=new DataArrayTexture(null,et,nt,rt),this.texture.isRenderTargetTexture=!0}}class Data3DTexture extends Texture{constructor(et=null,nt=1,rt=1,it=1){super(null),this.isData3DTexture=!0,this.image={data:et,width:nt,height:rt,depth:it},this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.wrapR=ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class WebGL3DRenderTarget extends WebGLRenderTarget{constructor(et,nt,rt){super(et,nt),this.isWebGL3DRenderTarget=!0,this.depth=rt,this.texture=new Data3DTexture(null,et,nt,rt),this.texture.isRenderTargetTexture=!0}}class WebGLMultipleRenderTargets extends WebGLRenderTarget{constructor(et,nt,rt,it={}){super(et,nt,it),this.isWebGLMultipleRenderTargets=!0;const ot=this.texture;this.texture=[];for(let at=0;at=0?1:-1,vt=1-bt*bt;if(vt>Number.EPSILON){const St=Math.sqrt(vt),Et=Math.atan2(St,bt*wt);yt=Math.sin(yt*Et)/St,st=Math.sin(st*Et)/St}const kt=st*wt;if(lt=lt*yt+dt*kt,ct=ct*yt+pt*kt,ut=ut*yt+mt*kt,ht=ht*yt+gt*kt,yt===1-st){const St=1/Math.sqrt(lt*lt+ct*ct+ut*ut+ht*ht);lt*=St,ct*=St,ut*=St,ht*=St}}et[nt]=lt,et[nt+1]=ct,et[nt+2]=ut,et[nt+3]=ht}static multiplyQuaternionsFlat(et,nt,rt,it,ot,at){const st=rt[it],lt=rt[it+1],ct=rt[it+2],ut=rt[it+3],ht=ot[at],dt=ot[at+1],pt=ot[at+2],mt=ot[at+3];return et[nt]=st*mt+ut*ht+lt*pt-ct*dt,et[nt+1]=lt*mt+ut*dt+ct*ht-st*pt,et[nt+2]=ct*mt+ut*pt+st*dt-lt*ht,et[nt+3]=ut*mt-st*ht-lt*dt-ct*pt,et}get x(){return this._x}set x(et){this._x=et,this._onChangeCallback()}get y(){return this._y}set y(et){this._y=et,this._onChangeCallback()}get z(){return this._z}set z(et){this._z=et,this._onChangeCallback()}get w(){return this._w}set w(et){this._w=et,this._onChangeCallback()}set(et,nt,rt,it){return this._x=et,this._y=nt,this._z=rt,this._w=it,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(et){return this._x=et.x,this._y=et.y,this._z=et.z,this._w=et.w,this._onChangeCallback(),this}setFromEuler(et,nt){if(!(et&&et.isEuler))throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const rt=et._x,it=et._y,ot=et._z,at=et._order,st=Math.cos,lt=Math.sin,ct=st(rt/2),ut=st(it/2),ht=st(ot/2),dt=lt(rt/2),pt=lt(it/2),mt=lt(ot/2);switch(at){case"XYZ":this._x=dt*ut*ht+ct*pt*mt,this._y=ct*pt*ht-dt*ut*mt,this._z=ct*ut*mt+dt*pt*ht,this._w=ct*ut*ht-dt*pt*mt;break;case"YXZ":this._x=dt*ut*ht+ct*pt*mt,this._y=ct*pt*ht-dt*ut*mt,this._z=ct*ut*mt-dt*pt*ht,this._w=ct*ut*ht+dt*pt*mt;break;case"ZXY":this._x=dt*ut*ht-ct*pt*mt,this._y=ct*pt*ht+dt*ut*mt,this._z=ct*ut*mt+dt*pt*ht,this._w=ct*ut*ht-dt*pt*mt;break;case"ZYX":this._x=dt*ut*ht-ct*pt*mt,this._y=ct*pt*ht+dt*ut*mt,this._z=ct*ut*mt-dt*pt*ht,this._w=ct*ut*ht+dt*pt*mt;break;case"YZX":this._x=dt*ut*ht+ct*pt*mt,this._y=ct*pt*ht+dt*ut*mt,this._z=ct*ut*mt-dt*pt*ht,this._w=ct*ut*ht-dt*pt*mt;break;case"XZY":this._x=dt*ut*ht-ct*pt*mt,this._y=ct*pt*ht-dt*ut*mt,this._z=ct*ut*mt+dt*pt*ht,this._w=ct*ut*ht+dt*pt*mt;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+at)}return nt!==!1&&this._onChangeCallback(),this}setFromAxisAngle(et,nt){const rt=nt/2,it=Math.sin(rt);return this._x=et.x*it,this._y=et.y*it,this._z=et.z*it,this._w=Math.cos(rt),this._onChangeCallback(),this}setFromRotationMatrix(et){const nt=et.elements,rt=nt[0],it=nt[4],ot=nt[8],at=nt[1],st=nt[5],lt=nt[9],ct=nt[2],ut=nt[6],ht=nt[10],dt=rt+st+ht;if(dt>0){const pt=.5/Math.sqrt(dt+1);this._w=.25/pt,this._x=(ut-lt)*pt,this._y=(ot-ct)*pt,this._z=(at-it)*pt}else if(rt>st&&rt>ht){const pt=2*Math.sqrt(1+rt-st-ht);this._w=(ut-lt)/pt,this._x=.25*pt,this._y=(it+at)/pt,this._z=(ot+ct)/pt}else if(st>ht){const pt=2*Math.sqrt(1+st-rt-ht);this._w=(ot-ct)/pt,this._x=(it+at)/pt,this._y=.25*pt,this._z=(lt+ut)/pt}else{const pt=2*Math.sqrt(1+ht-rt-st);this._w=(at-it)/pt,this._x=(ot+ct)/pt,this._y=(lt+ut)/pt,this._z=.25*pt}return this._onChangeCallback(),this}setFromUnitVectors(et,nt){let rt=et.dot(nt)+1;return rtMath.abs(et.z)?(this._x=-et.y,this._y=et.x,this._z=0,this._w=rt):(this._x=0,this._y=-et.z,this._z=et.y,this._w=rt)):(this._x=et.y*nt.z-et.z*nt.y,this._y=et.z*nt.x-et.x*nt.z,this._z=et.x*nt.y-et.y*nt.x,this._w=rt),this.normalize()}angleTo(et){return 2*Math.acos(Math.abs(clamp$4(this.dot(et),-1,1)))}rotateTowards(et,nt){const rt=this.angleTo(et);if(rt===0)return this;const it=Math.min(1,nt/rt);return this.slerp(et,it),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(et){return this._x*et._x+this._y*et._y+this._z*et._z+this._w*et._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let et=this.length();return et===0?(this._x=0,this._y=0,this._z=0,this._w=1):(et=1/et,this._x=this._x*et,this._y=this._y*et,this._z=this._z*et,this._w=this._w*et),this._onChangeCallback(),this}multiply(et){return this.multiplyQuaternions(this,et)}premultiply(et){return this.multiplyQuaternions(et,this)}multiplyQuaternions(et,nt){const rt=et._x,it=et._y,ot=et._z,at=et._w,st=nt._x,lt=nt._y,ct=nt._z,ut=nt._w;return this._x=rt*ut+at*st+it*ct-ot*lt,this._y=it*ut+at*lt+ot*st-rt*ct,this._z=ot*ut+at*ct+rt*lt-it*st,this._w=at*ut-rt*st-it*lt-ot*ct,this._onChangeCallback(),this}slerp(et,nt){if(nt===0)return this;if(nt===1)return this.copy(et);const rt=this._x,it=this._y,ot=this._z,at=this._w;let st=at*et._w+rt*et._x+it*et._y+ot*et._z;if(st<0?(this._w=-et._w,this._x=-et._x,this._y=-et._y,this._z=-et._z,st=-st):this.copy(et),st>=1)return this._w=at,this._x=rt,this._y=it,this._z=ot,this;const lt=1-st*st;if(lt<=Number.EPSILON){const pt=1-nt;return this._w=pt*at+nt*this._w,this._x=pt*rt+nt*this._x,this._y=pt*it+nt*this._y,this._z=pt*ot+nt*this._z,this.normalize(),this._onChangeCallback(),this}const ct=Math.sqrt(lt),ut=Math.atan2(ct,st),ht=Math.sin((1-nt)*ut)/ct,dt=Math.sin(nt*ut)/ct;return this._w=at*ht+this._w*dt,this._x=rt*ht+this._x*dt,this._y=it*ht+this._y*dt,this._z=ot*ht+this._z*dt,this._onChangeCallback(),this}slerpQuaternions(et,nt,rt){return this.copy(et).slerp(nt,rt)}random(){const et=Math.random(),nt=Math.sqrt(1-et),rt=Math.sqrt(et),it=2*Math.PI*Math.random(),ot=2*Math.PI*Math.random();return this.set(nt*Math.cos(it),rt*Math.sin(ot),rt*Math.cos(ot),nt*Math.sin(it))}equals(et){return et._x===this._x&&et._y===this._y&&et._z===this._z&&et._w===this._w}fromArray(et,nt=0){return this._x=et[nt],this._y=et[nt+1],this._z=et[nt+2],this._w=et[nt+3],this._onChangeCallback(),this}toArray(et=[],nt=0){return et[nt]=this._x,et[nt+1]=this._y,et[nt+2]=this._z,et[nt+3]=this._w,et}fromBufferAttribute(et,nt){return this._x=et.getX(nt),this._y=et.getY(nt),this._z=et.getZ(nt),this._w=et.getW(nt),this}_onChange(et){return this._onChangeCallback=et,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Vector3{constructor(et=0,nt=0,rt=0){Vector3.prototype.isVector3=!0,this.x=et,this.y=nt,this.z=rt}set(et,nt,rt){return rt===void 0&&(rt=this.z),this.x=et,this.y=nt,this.z=rt,this}setScalar(et){return this.x=et,this.y=et,this.z=et,this}setX(et){return this.x=et,this}setY(et){return this.y=et,this}setZ(et){return this.z=et,this}setComponent(et,nt){switch(et){case 0:this.x=nt;break;case 1:this.y=nt;break;case 2:this.z=nt;break;default:throw new Error("index is out of range: "+et)}return this}getComponent(et){switch(et){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+et)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(et){return this.x=et.x,this.y=et.y,this.z=et.z,this}add(et){return this.x+=et.x,this.y+=et.y,this.z+=et.z,this}addScalar(et){return this.x+=et,this.y+=et,this.z+=et,this}addVectors(et,nt){return this.x=et.x+nt.x,this.y=et.y+nt.y,this.z=et.z+nt.z,this}addScaledVector(et,nt){return this.x+=et.x*nt,this.y+=et.y*nt,this.z+=et.z*nt,this}sub(et){return this.x-=et.x,this.y-=et.y,this.z-=et.z,this}subScalar(et){return this.x-=et,this.y-=et,this.z-=et,this}subVectors(et,nt){return this.x=et.x-nt.x,this.y=et.y-nt.y,this.z=et.z-nt.z,this}multiply(et){return this.x*=et.x,this.y*=et.y,this.z*=et.z,this}multiplyScalar(et){return this.x*=et,this.y*=et,this.z*=et,this}multiplyVectors(et,nt){return this.x=et.x*nt.x,this.y=et.y*nt.y,this.z=et.z*nt.z,this}applyEuler(et){return this.applyQuaternion(_quaternion$4.setFromEuler(et))}applyAxisAngle(et,nt){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(et,nt))}applyMatrix3(et){const nt=this.x,rt=this.y,it=this.z,ot=et.elements;return this.x=ot[0]*nt+ot[3]*rt+ot[6]*it,this.y=ot[1]*nt+ot[4]*rt+ot[7]*it,this.z=ot[2]*nt+ot[5]*rt+ot[8]*it,this}applyNormalMatrix(et){return this.applyMatrix3(et).normalize()}applyMatrix4(et){const nt=this.x,rt=this.y,it=this.z,ot=et.elements,at=1/(ot[3]*nt+ot[7]*rt+ot[11]*it+ot[15]);return this.x=(ot[0]*nt+ot[4]*rt+ot[8]*it+ot[12])*at,this.y=(ot[1]*nt+ot[5]*rt+ot[9]*it+ot[13])*at,this.z=(ot[2]*nt+ot[6]*rt+ot[10]*it+ot[14])*at,this}applyQuaternion(et){const nt=this.x,rt=this.y,it=this.z,ot=et.x,at=et.y,st=et.z,lt=et.w,ct=lt*nt+at*it-st*rt,ut=lt*rt+st*nt-ot*it,ht=lt*it+ot*rt-at*nt,dt=-ot*nt-at*rt-st*it;return this.x=ct*lt+dt*-ot+ut*-st-ht*-at,this.y=ut*lt+dt*-at+ht*-ot-ct*-st,this.z=ht*lt+dt*-st+ct*-at-ut*-ot,this}project(et){return this.applyMatrix4(et.matrixWorldInverse).applyMatrix4(et.projectionMatrix)}unproject(et){return this.applyMatrix4(et.projectionMatrixInverse).applyMatrix4(et.matrixWorld)}transformDirection(et){const nt=this.x,rt=this.y,it=this.z,ot=et.elements;return this.x=ot[0]*nt+ot[4]*rt+ot[8]*it,this.y=ot[1]*nt+ot[5]*rt+ot[9]*it,this.z=ot[2]*nt+ot[6]*rt+ot[10]*it,this.normalize()}divide(et){return this.x/=et.x,this.y/=et.y,this.z/=et.z,this}divideScalar(et){return this.multiplyScalar(1/et)}min(et){return this.x=Math.min(this.x,et.x),this.y=Math.min(this.y,et.y),this.z=Math.min(this.z,et.z),this}max(et){return this.x=Math.max(this.x,et.x),this.y=Math.max(this.y,et.y),this.z=Math.max(this.z,et.z),this}clamp(et,nt){return this.x=Math.max(et.x,Math.min(nt.x,this.x)),this.y=Math.max(et.y,Math.min(nt.y,this.y)),this.z=Math.max(et.z,Math.min(nt.z,this.z)),this}clampScalar(et,nt){return this.x=Math.max(et,Math.min(nt,this.x)),this.y=Math.max(et,Math.min(nt,this.y)),this.z=Math.max(et,Math.min(nt,this.z)),this}clampLength(et,nt){const rt=this.length();return this.divideScalar(rt||1).multiplyScalar(Math.max(et,Math.min(nt,rt)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(et){return this.x*et.x+this.y*et.y+this.z*et.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(et){return this.normalize().multiplyScalar(et)}lerp(et,nt){return this.x+=(et.x-this.x)*nt,this.y+=(et.y-this.y)*nt,this.z+=(et.z-this.z)*nt,this}lerpVectors(et,nt,rt){return this.x=et.x+(nt.x-et.x)*rt,this.y=et.y+(nt.y-et.y)*rt,this.z=et.z+(nt.z-et.z)*rt,this}cross(et){return this.crossVectors(this,et)}crossVectors(et,nt){const rt=et.x,it=et.y,ot=et.z,at=nt.x,st=nt.y,lt=nt.z;return this.x=it*lt-ot*st,this.y=ot*at-rt*lt,this.z=rt*st-it*at,this}projectOnVector(et){const nt=et.lengthSq();if(nt===0)return this.set(0,0,0);const rt=et.dot(this)/nt;return this.copy(et).multiplyScalar(rt)}projectOnPlane(et){return _vector$c.copy(this).projectOnVector(et),this.sub(_vector$c)}reflect(et){return this.sub(_vector$c.copy(et).multiplyScalar(2*this.dot(et)))}angleTo(et){const nt=Math.sqrt(this.lengthSq()*et.lengthSq());if(nt===0)return Math.PI/2;const rt=this.dot(et)/nt;return Math.acos(clamp$4(rt,-1,1))}distanceTo(et){return Math.sqrt(this.distanceToSquared(et))}distanceToSquared(et){const nt=this.x-et.x,rt=this.y-et.y,it=this.z-et.z;return nt*nt+rt*rt+it*it}manhattanDistanceTo(et){return Math.abs(this.x-et.x)+Math.abs(this.y-et.y)+Math.abs(this.z-et.z)}setFromSpherical(et){return this.setFromSphericalCoords(et.radius,et.phi,et.theta)}setFromSphericalCoords(et,nt,rt){const it=Math.sin(nt)*et;return this.x=it*Math.sin(rt),this.y=Math.cos(nt)*et,this.z=it*Math.cos(rt),this}setFromCylindrical(et){return this.setFromCylindricalCoords(et.radius,et.theta,et.y)}setFromCylindricalCoords(et,nt,rt){return this.x=et*Math.sin(nt),this.y=rt,this.z=et*Math.cos(nt),this}setFromMatrixPosition(et){const nt=et.elements;return this.x=nt[12],this.y=nt[13],this.z=nt[14],this}setFromMatrixScale(et){const nt=this.setFromMatrixColumn(et,0).length(),rt=this.setFromMatrixColumn(et,1).length(),it=this.setFromMatrixColumn(et,2).length();return this.x=nt,this.y=rt,this.z=it,this}setFromMatrixColumn(et,nt){return this.fromArray(et.elements,nt*4)}setFromMatrix3Column(et,nt){return this.fromArray(et.elements,nt*3)}setFromEuler(et){return this.x=et._x,this.y=et._y,this.z=et._z,this}equals(et){return et.x===this.x&&et.y===this.y&&et.z===this.z}fromArray(et,nt=0){return this.x=et[nt],this.y=et[nt+1],this.z=et[nt+2],this}toArray(et=[],nt=0){return et[nt]=this.x,et[nt+1]=this.y,et[nt+2]=this.z,et}fromBufferAttribute(et,nt){return this.x=et.getX(nt),this.y=et.getY(nt),this.z=et.getZ(nt),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const et=(Math.random()-.5)*2,nt=Math.random()*Math.PI*2,rt=Math.sqrt(1-et**2);return this.x=rt*Math.cos(nt),this.y=rt*Math.sin(nt),this.z=et,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _vector$c=new Vector3,_quaternion$4=new Quaternion;class Box3{constructor(et=new Vector3(1/0,1/0,1/0),nt=new Vector3(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=et,this.max=nt}set(et,nt){return this.min.copy(et),this.max.copy(nt),this}setFromArray(et){let nt=1/0,rt=1/0,it=1/0,ot=-1/0,at=-1/0,st=-1/0;for(let lt=0,ct=et.length;ltot&&(ot=ut),ht>at&&(at=ht),dt>st&&(st=dt)}return this.min.set(nt,rt,it),this.max.set(ot,at,st),this}setFromBufferAttribute(et){let nt=1/0,rt=1/0,it=1/0,ot=-1/0,at=-1/0,st=-1/0;for(let lt=0,ct=et.count;ltot&&(ot=ut),ht>at&&(at=ht),dt>st&&(st=dt)}return this.min.set(nt,rt,it),this.max.set(ot,at,st),this}setFromPoints(et){this.makeEmpty();for(let nt=0,rt=et.length;ntthis.max.x||et.ythis.max.y||et.zthis.max.z)}containsBox(et){return this.min.x<=et.min.x&&et.max.x<=this.max.x&&this.min.y<=et.min.y&&et.max.y<=this.max.y&&this.min.z<=et.min.z&&et.max.z<=this.max.z}getParameter(et,nt){return nt.set((et.x-this.min.x)/(this.max.x-this.min.x),(et.y-this.min.y)/(this.max.y-this.min.y),(et.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(et){return!(et.max.xthis.max.x||et.max.ythis.max.y||et.max.zthis.max.z)}intersectsSphere(et){return this.clampPoint(et.center,_vector$b),_vector$b.distanceToSquared(et.center)<=et.radius*et.radius}intersectsPlane(et){let nt,rt;return et.normal.x>0?(nt=et.normal.x*this.min.x,rt=et.normal.x*this.max.x):(nt=et.normal.x*this.max.x,rt=et.normal.x*this.min.x),et.normal.y>0?(nt+=et.normal.y*this.min.y,rt+=et.normal.y*this.max.y):(nt+=et.normal.y*this.max.y,rt+=et.normal.y*this.min.y),et.normal.z>0?(nt+=et.normal.z*this.min.z,rt+=et.normal.z*this.max.z):(nt+=et.normal.z*this.max.z,rt+=et.normal.z*this.min.z),nt<=-et.constant&&rt>=-et.constant}intersectsTriangle(et){if(this.isEmpty())return!1;this.getCenter(_center),_extents.subVectors(this.max,_center),_v0$2.subVectors(et.a,_center),_v1$7.subVectors(et.b,_center),_v2$3.subVectors(et.c,_center),_f0.subVectors(_v1$7,_v0$2),_f1.subVectors(_v2$3,_v1$7),_f2.subVectors(_v0$2,_v2$3);let nt=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];return!satForAxes(nt,_v0$2,_v1$7,_v2$3,_extents)||(nt=[1,0,0,0,1,0,0,0,1],!satForAxes(nt,_v0$2,_v1$7,_v2$3,_extents))?!1:(_triangleNormal.crossVectors(_f0,_f1),nt=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z],satForAxes(nt,_v0$2,_v1$7,_v2$3,_extents))}clampPoint(et,nt){return nt.copy(et).clamp(this.min,this.max)}distanceToPoint(et){return _vector$b.copy(et).clamp(this.min,this.max).sub(et).length()}getBoundingSphere(et){return this.getCenter(et.center),et.radius=this.getSize(_vector$b).length()*.5,et}intersect(et){return this.min.max(et.min),this.max.min(et.max),this.isEmpty()&&this.makeEmpty(),this}union(et){return this.min.min(et.min),this.max.max(et.max),this}applyMatrix4(et){return this.isEmpty()?this:(_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(et),_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(et),_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(et),_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(et),_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(et),_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(et),_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(et),_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(et),this.setFromPoints(_points),this)}translate(et){return this.min.add(et),this.max.add(et),this}equals(et){return et.min.equals(this.min)&&et.max.equals(this.max)}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],_vector$b=new Vector3,_box$3=new Box3,_v0$2=new Vector3,_v1$7=new Vector3,_v2$3=new Vector3,_f0=new Vector3,_f1=new Vector3,_f2=new Vector3,_center=new Vector3,_extents=new Vector3,_triangleNormal=new Vector3,_testAxis=new Vector3;function satForAxes(tt,et,nt,rt,it){for(let ot=0,at=tt.length-3;ot<=at;ot+=3){_testAxis.fromArray(tt,ot);const st=it.x*Math.abs(_testAxis.x)+it.y*Math.abs(_testAxis.y)+it.z*Math.abs(_testAxis.z),lt=et.dot(_testAxis),ct=nt.dot(_testAxis),ut=rt.dot(_testAxis);if(Math.max(-Math.max(lt,ct,ut),Math.min(lt,ct,ut))>st)return!1}return!0}const _box$2=new Box3,_v1$6=new Vector3,_toFarthestPoint=new Vector3,_toPoint=new Vector3;class Sphere{constructor(et=new Vector3,nt=-1){this.center=et,this.radius=nt}set(et,nt){return this.center.copy(et),this.radius=nt,this}setFromPoints(et,nt){const rt=this.center;nt!==void 0?rt.copy(nt):_box$2.setFromPoints(et).getCenter(rt);let it=0;for(let ot=0,at=et.length;otthis.radius*this.radius&&(nt.sub(this.center).normalize(),nt.multiplyScalar(this.radius).add(this.center)),nt}getBoundingBox(et){return this.isEmpty()?(et.makeEmpty(),et):(et.set(this.center,this.center),et.expandByScalar(this.radius),et)}applyMatrix4(et){return this.center.applyMatrix4(et),this.radius=this.radius*et.getMaxScaleOnAxis(),this}translate(et){return this.center.add(et),this}expandByPoint(et){_toPoint.subVectors(et,this.center);const nt=_toPoint.lengthSq();if(nt>this.radius*this.radius){const rt=Math.sqrt(nt),it=(rt-this.radius)*.5;this.center.add(_toPoint.multiplyScalar(it/rt)),this.radius+=it}return this}union(et){return this.center.equals(et.center)===!0?_toFarthestPoint.set(0,0,1).multiplyScalar(et.radius):_toFarthestPoint.subVectors(et.center,this.center).normalize().multiplyScalar(et.radius),this.expandByPoint(_v1$6.copy(et.center).add(_toFarthestPoint)),this.expandByPoint(_v1$6.copy(et.center).sub(_toFarthestPoint)),this}equals(et){return et.center.equals(this.center)&&et.radius===this.radius}clone(){return new this.constructor().copy(this)}}const _vector$a=new Vector3,_segCenter=new Vector3,_segDir=new Vector3,_diff=new Vector3,_edge1=new Vector3,_edge2=new Vector3,_normal$1=new Vector3;class Ray{constructor(et=new Vector3,nt=new Vector3(0,0,-1)){this.origin=et,this.direction=nt}set(et,nt){return this.origin.copy(et),this.direction.copy(nt),this}copy(et){return this.origin.copy(et.origin),this.direction.copy(et.direction),this}at(et,nt){return nt.copy(this.direction).multiplyScalar(et).add(this.origin)}lookAt(et){return this.direction.copy(et).sub(this.origin).normalize(),this}recast(et){return this.origin.copy(this.at(et,_vector$a)),this}closestPointToPoint(et,nt){nt.subVectors(et,this.origin);const rt=nt.dot(this.direction);return rt<0?nt.copy(this.origin):nt.copy(this.direction).multiplyScalar(rt).add(this.origin)}distanceToPoint(et){return Math.sqrt(this.distanceSqToPoint(et))}distanceSqToPoint(et){const nt=_vector$a.subVectors(et,this.origin).dot(this.direction);return nt<0?this.origin.distanceToSquared(et):(_vector$a.copy(this.direction).multiplyScalar(nt).add(this.origin),_vector$a.distanceToSquared(et))}distanceSqToSegment(et,nt,rt,it){_segCenter.copy(et).add(nt).multiplyScalar(.5),_segDir.copy(nt).sub(et).normalize(),_diff.copy(this.origin).sub(_segCenter);const ot=et.distanceTo(nt)*.5,at=-this.direction.dot(_segDir),st=_diff.dot(this.direction),lt=-_diff.dot(_segDir),ct=_diff.lengthSq(),ut=Math.abs(1-at*at);let ht,dt,pt,mt;if(ut>0)if(ht=at*lt-st,dt=at*st-lt,mt=ot*ut,ht>=0)if(dt>=-mt)if(dt<=mt){const gt=1/ut;ht*=gt,dt*=gt,pt=ht*(ht+at*dt+2*st)+dt*(at*ht+dt+2*lt)+ct}else dt=ot,ht=Math.max(0,-(at*dt+st)),pt=-ht*ht+dt*(dt+2*lt)+ct;else dt=-ot,ht=Math.max(0,-(at*dt+st)),pt=-ht*ht+dt*(dt+2*lt)+ct;else dt<=-mt?(ht=Math.max(0,-(-at*ot+st)),dt=ht>0?-ot:Math.min(Math.max(-ot,-lt),ot),pt=-ht*ht+dt*(dt+2*lt)+ct):dt<=mt?(ht=0,dt=Math.min(Math.max(-ot,-lt),ot),pt=dt*(dt+2*lt)+ct):(ht=Math.max(0,-(at*ot+st)),dt=ht>0?ot:Math.min(Math.max(-ot,-lt),ot),pt=-ht*ht+dt*(dt+2*lt)+ct);else dt=at>0?-ot:ot,ht=Math.max(0,-(at*dt+st)),pt=-ht*ht+dt*(dt+2*lt)+ct;return rt&&rt.copy(this.direction).multiplyScalar(ht).add(this.origin),it&&it.copy(_segDir).multiplyScalar(dt).add(_segCenter),pt}intersectSphere(et,nt){_vector$a.subVectors(et.center,this.origin);const rt=_vector$a.dot(this.direction),it=_vector$a.dot(_vector$a)-rt*rt,ot=et.radius*et.radius;if(it>ot)return null;const at=Math.sqrt(ot-it),st=rt-at,lt=rt+at;return st<0&<<0?null:st<0?this.at(lt,nt):this.at(st,nt)}intersectsSphere(et){return this.distanceSqToPoint(et.center)<=et.radius*et.radius}distanceToPlane(et){const nt=et.normal.dot(this.direction);if(nt===0)return et.distanceToPoint(this.origin)===0?0:null;const rt=-(this.origin.dot(et.normal)+et.constant)/nt;return rt>=0?rt:null}intersectPlane(et,nt){const rt=this.distanceToPlane(et);return rt===null?null:this.at(rt,nt)}intersectsPlane(et){const nt=et.distanceToPoint(this.origin);return nt===0||et.normal.dot(this.direction)*nt<0}intersectBox(et,nt){let rt,it,ot,at,st,lt;const ct=1/this.direction.x,ut=1/this.direction.y,ht=1/this.direction.z,dt=this.origin;return ct>=0?(rt=(et.min.x-dt.x)*ct,it=(et.max.x-dt.x)*ct):(rt=(et.max.x-dt.x)*ct,it=(et.min.x-dt.x)*ct),ut>=0?(ot=(et.min.y-dt.y)*ut,at=(et.max.y-dt.y)*ut):(ot=(et.max.y-dt.y)*ut,at=(et.min.y-dt.y)*ut),rt>at||ot>it||((ot>rt||rt!==rt)&&(rt=ot),(at=0?(st=(et.min.z-dt.z)*ht,lt=(et.max.z-dt.z)*ht):(st=(et.max.z-dt.z)*ht,lt=(et.min.z-dt.z)*ht),rt>lt||st>it)||((st>rt||rt!==rt)&&(rt=st),(lt=0?rt:it,nt)}intersectsBox(et){return this.intersectBox(et,_vector$a)!==null}intersectTriangle(et,nt,rt,it,ot){_edge1.subVectors(nt,et),_edge2.subVectors(rt,et),_normal$1.crossVectors(_edge1,_edge2);let at=this.direction.dot(_normal$1),st;if(at>0){if(it)return null;st=1}else if(at<0)st=-1,at=-at;else return null;_diff.subVectors(this.origin,et);const lt=st*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(lt<0)return null;const ct=st*this.direction.dot(_edge1.cross(_diff));if(ct<0||lt+ct>at)return null;const ut=-st*_diff.dot(_normal$1);return ut<0?null:this.at(ut/at,ot)}applyMatrix4(et){return this.origin.applyMatrix4(et),this.direction.transformDirection(et),this}equals(et){return et.origin.equals(this.origin)&&et.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class Matrix4{constructor(){Matrix4.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt,pt,mt,gt,yt){const bt=this.elements;return bt[0]=et,bt[4]=nt,bt[8]=rt,bt[12]=it,bt[1]=ot,bt[5]=at,bt[9]=st,bt[13]=lt,bt[2]=ct,bt[6]=ut,bt[10]=ht,bt[14]=dt,bt[3]=pt,bt[7]=mt,bt[11]=gt,bt[15]=yt,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Matrix4().fromArray(this.elements)}copy(et){const nt=this.elements,rt=et.elements;return nt[0]=rt[0],nt[1]=rt[1],nt[2]=rt[2],nt[3]=rt[3],nt[4]=rt[4],nt[5]=rt[5],nt[6]=rt[6],nt[7]=rt[7],nt[8]=rt[8],nt[9]=rt[9],nt[10]=rt[10],nt[11]=rt[11],nt[12]=rt[12],nt[13]=rt[13],nt[14]=rt[14],nt[15]=rt[15],this}copyPosition(et){const nt=this.elements,rt=et.elements;return nt[12]=rt[12],nt[13]=rt[13],nt[14]=rt[14],this}setFromMatrix3(et){const nt=et.elements;return this.set(nt[0],nt[3],nt[6],0,nt[1],nt[4],nt[7],0,nt[2],nt[5],nt[8],0,0,0,0,1),this}extractBasis(et,nt,rt){return et.setFromMatrixColumn(this,0),nt.setFromMatrixColumn(this,1),rt.setFromMatrixColumn(this,2),this}makeBasis(et,nt,rt){return this.set(et.x,nt.x,rt.x,0,et.y,nt.y,rt.y,0,et.z,nt.z,rt.z,0,0,0,0,1),this}extractRotation(et){const nt=this.elements,rt=et.elements,it=1/_v1$5.setFromMatrixColumn(et,0).length(),ot=1/_v1$5.setFromMatrixColumn(et,1).length(),at=1/_v1$5.setFromMatrixColumn(et,2).length();return nt[0]=rt[0]*it,nt[1]=rt[1]*it,nt[2]=rt[2]*it,nt[3]=0,nt[4]=rt[4]*ot,nt[5]=rt[5]*ot,nt[6]=rt[6]*ot,nt[7]=0,nt[8]=rt[8]*at,nt[9]=rt[9]*at,nt[10]=rt[10]*at,nt[11]=0,nt[12]=0,nt[13]=0,nt[14]=0,nt[15]=1,this}makeRotationFromEuler(et){const nt=this.elements,rt=et.x,it=et.y,ot=et.z,at=Math.cos(rt),st=Math.sin(rt),lt=Math.cos(it),ct=Math.sin(it),ut=Math.cos(ot),ht=Math.sin(ot);if(et.order==="XYZ"){const dt=at*ut,pt=at*ht,mt=st*ut,gt=st*ht;nt[0]=lt*ut,nt[4]=-lt*ht,nt[8]=ct,nt[1]=pt+mt*ct,nt[5]=dt-gt*ct,nt[9]=-st*lt,nt[2]=gt-dt*ct,nt[6]=mt+pt*ct,nt[10]=at*lt}else if(et.order==="YXZ"){const dt=lt*ut,pt=lt*ht,mt=ct*ut,gt=ct*ht;nt[0]=dt+gt*st,nt[4]=mt*st-pt,nt[8]=at*ct,nt[1]=at*ht,nt[5]=at*ut,nt[9]=-st,nt[2]=pt*st-mt,nt[6]=gt+dt*st,nt[10]=at*lt}else if(et.order==="ZXY"){const dt=lt*ut,pt=lt*ht,mt=ct*ut,gt=ct*ht;nt[0]=dt-gt*st,nt[4]=-at*ht,nt[8]=mt+pt*st,nt[1]=pt+mt*st,nt[5]=at*ut,nt[9]=gt-dt*st,nt[2]=-at*ct,nt[6]=st,nt[10]=at*lt}else if(et.order==="ZYX"){const dt=at*ut,pt=at*ht,mt=st*ut,gt=st*ht;nt[0]=lt*ut,nt[4]=mt*ct-pt,nt[8]=dt*ct+gt,nt[1]=lt*ht,nt[5]=gt*ct+dt,nt[9]=pt*ct-mt,nt[2]=-ct,nt[6]=st*lt,nt[10]=at*lt}else if(et.order==="YZX"){const dt=at*lt,pt=at*ct,mt=st*lt,gt=st*ct;nt[0]=lt*ut,nt[4]=gt-dt*ht,nt[8]=mt*ht+pt,nt[1]=ht,nt[5]=at*ut,nt[9]=-st*ut,nt[2]=-ct*ut,nt[6]=pt*ht+mt,nt[10]=dt-gt*ht}else if(et.order==="XZY"){const dt=at*lt,pt=at*ct,mt=st*lt,gt=st*ct;nt[0]=lt*ut,nt[4]=-ht,nt[8]=ct*ut,nt[1]=dt*ht+gt,nt[5]=at*ut,nt[9]=pt*ht-mt,nt[2]=mt*ht-pt,nt[6]=st*ut,nt[10]=gt*ht+dt}return nt[3]=0,nt[7]=0,nt[11]=0,nt[12]=0,nt[13]=0,nt[14]=0,nt[15]=1,this}makeRotationFromQuaternion(et){return this.compose(_zero,et,_one)}lookAt(et,nt,rt){const it=this.elements;return _z.subVectors(et,nt),_z.lengthSq()===0&&(_z.z=1),_z.normalize(),_x.crossVectors(rt,_z),_x.lengthSq()===0&&(Math.abs(rt.z)===1?_z.x+=1e-4:_z.z+=1e-4,_z.normalize(),_x.crossVectors(rt,_z)),_x.normalize(),_y.crossVectors(_z,_x),it[0]=_x.x,it[4]=_y.x,it[8]=_z.x,it[1]=_x.y,it[5]=_y.y,it[9]=_z.y,it[2]=_x.z,it[6]=_y.z,it[10]=_z.z,this}multiply(et){return this.multiplyMatrices(this,et)}premultiply(et){return this.multiplyMatrices(et,this)}multiplyMatrices(et,nt){const rt=et.elements,it=nt.elements,ot=this.elements,at=rt[0],st=rt[4],lt=rt[8],ct=rt[12],ut=rt[1],ht=rt[5],dt=rt[9],pt=rt[13],mt=rt[2],gt=rt[6],yt=rt[10],bt=rt[14],wt=rt[3],vt=rt[7],kt=rt[11],St=rt[15],Et=it[0],At=it[4],Tt=it[8],Mt=it[12],Lt=it[1],jt=it[5],Rt=it[9],$t=it[13],xt=it[2],It=it[6],Ot=it[10],zt=it[14],Ut=it[3],Wt=it[7],Ft=it[11],Nt=it[15];return ot[0]=at*Et+st*Lt+lt*xt+ct*Ut,ot[4]=at*At+st*jt+lt*It+ct*Wt,ot[8]=at*Tt+st*Rt+lt*Ot+ct*Ft,ot[12]=at*Mt+st*$t+lt*zt+ct*Nt,ot[1]=ut*Et+ht*Lt+dt*xt+pt*Ut,ot[5]=ut*At+ht*jt+dt*It+pt*Wt,ot[9]=ut*Tt+ht*Rt+dt*Ot+pt*Ft,ot[13]=ut*Mt+ht*$t+dt*zt+pt*Nt,ot[2]=mt*Et+gt*Lt+yt*xt+bt*Ut,ot[6]=mt*At+gt*jt+yt*It+bt*Wt,ot[10]=mt*Tt+gt*Rt+yt*Ot+bt*Ft,ot[14]=mt*Mt+gt*$t+yt*zt+bt*Nt,ot[3]=wt*Et+vt*Lt+kt*xt+St*Ut,ot[7]=wt*At+vt*jt+kt*It+St*Wt,ot[11]=wt*Tt+vt*Rt+kt*Ot+St*Ft,ot[15]=wt*Mt+vt*$t+kt*zt+St*Nt,this}multiplyScalar(et){const nt=this.elements;return nt[0]*=et,nt[4]*=et,nt[8]*=et,nt[12]*=et,nt[1]*=et,nt[5]*=et,nt[9]*=et,nt[13]*=et,nt[2]*=et,nt[6]*=et,nt[10]*=et,nt[14]*=et,nt[3]*=et,nt[7]*=et,nt[11]*=et,nt[15]*=et,this}determinant(){const et=this.elements,nt=et[0],rt=et[4],it=et[8],ot=et[12],at=et[1],st=et[5],lt=et[9],ct=et[13],ut=et[2],ht=et[6],dt=et[10],pt=et[14],mt=et[3],gt=et[7],yt=et[11],bt=et[15];return mt*(+ot*lt*ht-it*ct*ht-ot*st*dt+rt*ct*dt+it*st*pt-rt*lt*pt)+gt*(+nt*lt*pt-nt*ct*dt+ot*at*dt-it*at*pt+it*ct*ut-ot*lt*ut)+yt*(+nt*ct*ht-nt*st*pt-ot*at*ht+rt*at*pt+ot*st*ut-rt*ct*ut)+bt*(-it*st*ut-nt*lt*ht+nt*st*dt+it*at*ht-rt*at*dt+rt*lt*ut)}transpose(){const et=this.elements;let nt;return nt=et[1],et[1]=et[4],et[4]=nt,nt=et[2],et[2]=et[8],et[8]=nt,nt=et[6],et[6]=et[9],et[9]=nt,nt=et[3],et[3]=et[12],et[12]=nt,nt=et[7],et[7]=et[13],et[13]=nt,nt=et[11],et[11]=et[14],et[14]=nt,this}setPosition(et,nt,rt){const it=this.elements;return et.isVector3?(it[12]=et.x,it[13]=et.y,it[14]=et.z):(it[12]=et,it[13]=nt,it[14]=rt),this}invert(){const et=this.elements,nt=et[0],rt=et[1],it=et[2],ot=et[3],at=et[4],st=et[5],lt=et[6],ct=et[7],ut=et[8],ht=et[9],dt=et[10],pt=et[11],mt=et[12],gt=et[13],yt=et[14],bt=et[15],wt=ht*yt*ct-gt*dt*ct+gt*lt*pt-st*yt*pt-ht*lt*bt+st*dt*bt,vt=mt*dt*ct-ut*yt*ct-mt*lt*pt+at*yt*pt+ut*lt*bt-at*dt*bt,kt=ut*gt*ct-mt*ht*ct+mt*st*pt-at*gt*pt-ut*st*bt+at*ht*bt,St=mt*ht*lt-ut*gt*lt-mt*st*dt+at*gt*dt+ut*st*yt-at*ht*yt,Et=nt*wt+rt*vt+it*kt+ot*St;if(Et===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const At=1/Et;return et[0]=wt*At,et[1]=(gt*dt*ot-ht*yt*ot-gt*it*pt+rt*yt*pt+ht*it*bt-rt*dt*bt)*At,et[2]=(st*yt*ot-gt*lt*ot+gt*it*ct-rt*yt*ct-st*it*bt+rt*lt*bt)*At,et[3]=(ht*lt*ot-st*dt*ot-ht*it*ct+rt*dt*ct+st*it*pt-rt*lt*pt)*At,et[4]=vt*At,et[5]=(ut*yt*ot-mt*dt*ot+mt*it*pt-nt*yt*pt-ut*it*bt+nt*dt*bt)*At,et[6]=(mt*lt*ot-at*yt*ot-mt*it*ct+nt*yt*ct+at*it*bt-nt*lt*bt)*At,et[7]=(at*dt*ot-ut*lt*ot+ut*it*ct-nt*dt*ct-at*it*pt+nt*lt*pt)*At,et[8]=kt*At,et[9]=(mt*ht*ot-ut*gt*ot-mt*rt*pt+nt*gt*pt+ut*rt*bt-nt*ht*bt)*At,et[10]=(at*gt*ot-mt*st*ot+mt*rt*ct-nt*gt*ct-at*rt*bt+nt*st*bt)*At,et[11]=(ut*st*ot-at*ht*ot-ut*rt*ct+nt*ht*ct+at*rt*pt-nt*st*pt)*At,et[12]=St*At,et[13]=(ut*gt*it-mt*ht*it+mt*rt*dt-nt*gt*dt-ut*rt*yt+nt*ht*yt)*At,et[14]=(mt*st*it-at*gt*it-mt*rt*lt+nt*gt*lt+at*rt*yt-nt*st*yt)*At,et[15]=(at*ht*it-ut*st*it+ut*rt*lt-nt*ht*lt-at*rt*dt+nt*st*dt)*At,this}scale(et){const nt=this.elements,rt=et.x,it=et.y,ot=et.z;return nt[0]*=rt,nt[4]*=it,nt[8]*=ot,nt[1]*=rt,nt[5]*=it,nt[9]*=ot,nt[2]*=rt,nt[6]*=it,nt[10]*=ot,nt[3]*=rt,nt[7]*=it,nt[11]*=ot,this}getMaxScaleOnAxis(){const et=this.elements,nt=et[0]*et[0]+et[1]*et[1]+et[2]*et[2],rt=et[4]*et[4]+et[5]*et[5]+et[6]*et[6],it=et[8]*et[8]+et[9]*et[9]+et[10]*et[10];return Math.sqrt(Math.max(nt,rt,it))}makeTranslation(et,nt,rt){return this.set(1,0,0,et,0,1,0,nt,0,0,1,rt,0,0,0,1),this}makeRotationX(et){const nt=Math.cos(et),rt=Math.sin(et);return this.set(1,0,0,0,0,nt,-rt,0,0,rt,nt,0,0,0,0,1),this}makeRotationY(et){const nt=Math.cos(et),rt=Math.sin(et);return this.set(nt,0,rt,0,0,1,0,0,-rt,0,nt,0,0,0,0,1),this}makeRotationZ(et){const nt=Math.cos(et),rt=Math.sin(et);return this.set(nt,-rt,0,0,rt,nt,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(et,nt){const rt=Math.cos(nt),it=Math.sin(nt),ot=1-rt,at=et.x,st=et.y,lt=et.z,ct=ot*at,ut=ot*st;return this.set(ct*at+rt,ct*st-it*lt,ct*lt+it*st,0,ct*st+it*lt,ut*st+rt,ut*lt-it*at,0,ct*lt-it*st,ut*lt+it*at,ot*lt*lt+rt,0,0,0,0,1),this}makeScale(et,nt,rt){return this.set(et,0,0,0,0,nt,0,0,0,0,rt,0,0,0,0,1),this}makeShear(et,nt,rt,it,ot,at){return this.set(1,rt,ot,0,et,1,at,0,nt,it,1,0,0,0,0,1),this}compose(et,nt,rt){const it=this.elements,ot=nt._x,at=nt._y,st=nt._z,lt=nt._w,ct=ot+ot,ut=at+at,ht=st+st,dt=ot*ct,pt=ot*ut,mt=ot*ht,gt=at*ut,yt=at*ht,bt=st*ht,wt=lt*ct,vt=lt*ut,kt=lt*ht,St=rt.x,Et=rt.y,At=rt.z;return it[0]=(1-(gt+bt))*St,it[1]=(pt+kt)*St,it[2]=(mt-vt)*St,it[3]=0,it[4]=(pt-kt)*Et,it[5]=(1-(dt+bt))*Et,it[6]=(yt+wt)*Et,it[7]=0,it[8]=(mt+vt)*At,it[9]=(yt-wt)*At,it[10]=(1-(dt+gt))*At,it[11]=0,it[12]=et.x,it[13]=et.y,it[14]=et.z,it[15]=1,this}decompose(et,nt,rt){const it=this.elements;let ot=_v1$5.set(it[0],it[1],it[2]).length();const at=_v1$5.set(it[4],it[5],it[6]).length(),st=_v1$5.set(it[8],it[9],it[10]).length();this.determinant()<0&&(ot=-ot),et.x=it[12],et.y=it[13],et.z=it[14],_m1$2.copy(this);const ct=1/ot,ut=1/at,ht=1/st;return _m1$2.elements[0]*=ct,_m1$2.elements[1]*=ct,_m1$2.elements[2]*=ct,_m1$2.elements[4]*=ut,_m1$2.elements[5]*=ut,_m1$2.elements[6]*=ut,_m1$2.elements[8]*=ht,_m1$2.elements[9]*=ht,_m1$2.elements[10]*=ht,nt.setFromRotationMatrix(_m1$2),rt.x=ot,rt.y=at,rt.z=st,this}makePerspective(et,nt,rt,it,ot,at){const st=this.elements,lt=2*ot/(nt-et),ct=2*ot/(rt-it),ut=(nt+et)/(nt-et),ht=(rt+it)/(rt-it),dt=-(at+ot)/(at-ot),pt=-2*at*ot/(at-ot);return st[0]=lt,st[4]=0,st[8]=ut,st[12]=0,st[1]=0,st[5]=ct,st[9]=ht,st[13]=0,st[2]=0,st[6]=0,st[10]=dt,st[14]=pt,st[3]=0,st[7]=0,st[11]=-1,st[15]=0,this}makeOrthographic(et,nt,rt,it,ot,at){const st=this.elements,lt=1/(nt-et),ct=1/(rt-it),ut=1/(at-ot),ht=(nt+et)*lt,dt=(rt+it)*ct,pt=(at+ot)*ut;return st[0]=2*lt,st[4]=0,st[8]=0,st[12]=-ht,st[1]=0,st[5]=2*ct,st[9]=0,st[13]=-dt,st[2]=0,st[6]=0,st[10]=-2*ut,st[14]=-pt,st[3]=0,st[7]=0,st[11]=0,st[15]=1,this}equals(et){const nt=this.elements,rt=et.elements;for(let it=0;it<16;it++)if(nt[it]!==rt[it])return!1;return!0}fromArray(et,nt=0){for(let rt=0;rt<16;rt++)this.elements[rt]=et[rt+nt];return this}toArray(et=[],nt=0){const rt=this.elements;return et[nt]=rt[0],et[nt+1]=rt[1],et[nt+2]=rt[2],et[nt+3]=rt[3],et[nt+4]=rt[4],et[nt+5]=rt[5],et[nt+6]=rt[6],et[nt+7]=rt[7],et[nt+8]=rt[8],et[nt+9]=rt[9],et[nt+10]=rt[10],et[nt+11]=rt[11],et[nt+12]=rt[12],et[nt+13]=rt[13],et[nt+14]=rt[14],et[nt+15]=rt[15],et}}const _v1$5=new Vector3,_m1$2=new Matrix4,_zero=new Vector3(0,0,0),_one=new Vector3(1,1,1),_x=new Vector3,_y=new Vector3,_z=new Vector3,_matrix$1=new Matrix4,_quaternion$3=new Quaternion;class Euler{constructor(et=0,nt=0,rt=0,it=Euler.DefaultOrder){this.isEuler=!0,this._x=et,this._y=nt,this._z=rt,this._order=it}get x(){return this._x}set x(et){this._x=et,this._onChangeCallback()}get y(){return this._y}set y(et){this._y=et,this._onChangeCallback()}get z(){return this._z}set z(et){this._z=et,this._onChangeCallback()}get order(){return this._order}set order(et){this._order=et,this._onChangeCallback()}set(et,nt,rt,it=this._order){return this._x=et,this._y=nt,this._z=rt,this._order=it,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(et){return this._x=et._x,this._y=et._y,this._z=et._z,this._order=et._order,this._onChangeCallback(),this}setFromRotationMatrix(et,nt=this._order,rt=!0){const it=et.elements,ot=it[0],at=it[4],st=it[8],lt=it[1],ct=it[5],ut=it[9],ht=it[2],dt=it[6],pt=it[10];switch(nt){case"XYZ":this._y=Math.asin(clamp$4(st,-1,1)),Math.abs(st)<.9999999?(this._x=Math.atan2(-ut,pt),this._z=Math.atan2(-at,ot)):(this._x=Math.atan2(dt,ct),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp$4(ut,-1,1)),Math.abs(ut)<.9999999?(this._y=Math.atan2(st,pt),this._z=Math.atan2(lt,ct)):(this._y=Math.atan2(-ht,ot),this._z=0);break;case"ZXY":this._x=Math.asin(clamp$4(dt,-1,1)),Math.abs(dt)<.9999999?(this._y=Math.atan2(-ht,pt),this._z=Math.atan2(-at,ct)):(this._y=0,this._z=Math.atan2(lt,ot));break;case"ZYX":this._y=Math.asin(-clamp$4(ht,-1,1)),Math.abs(ht)<.9999999?(this._x=Math.atan2(dt,pt),this._z=Math.atan2(lt,ot)):(this._x=0,this._z=Math.atan2(-at,ct));break;case"YZX":this._z=Math.asin(clamp$4(lt,-1,1)),Math.abs(lt)<.9999999?(this._x=Math.atan2(-ut,ct),this._y=Math.atan2(-ht,ot)):(this._x=0,this._y=Math.atan2(st,pt));break;case"XZY":this._z=Math.asin(-clamp$4(at,-1,1)),Math.abs(at)<.9999999?(this._x=Math.atan2(dt,ct),this._y=Math.atan2(st,ot)):(this._x=Math.atan2(-ut,pt),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+nt)}return this._order=nt,rt===!0&&this._onChangeCallback(),this}setFromQuaternion(et,nt,rt){return _matrix$1.makeRotationFromQuaternion(et),this.setFromRotationMatrix(_matrix$1,nt,rt)}setFromVector3(et,nt=this._order){return this.set(et.x,et.y,et.z,nt)}reorder(et){return _quaternion$3.setFromEuler(this),this.setFromQuaternion(_quaternion$3,et)}equals(et){return et._x===this._x&&et._y===this._y&&et._z===this._z&&et._order===this._order}fromArray(et){return this._x=et[0],this._y=et[1],this._z=et[2],et[3]!==void 0&&(this._order=et[3]),this._onChangeCallback(),this}toArray(et=[],nt=0){return et[nt]=this._x,et[nt+1]=this._y,et[nt+2]=this._z,et[nt+3]=this._order,et}_onChange(et){return this._onChangeCallback=et,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}toVector3(){console.error("THREE.Euler: .toVector3() has been removed. Use Vector3.setFromEuler() instead")}}Euler.DefaultOrder="XYZ";Euler.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class Layers{constructor(){this.mask=1}set(et){this.mask=(1<>>0}enable(et){this.mask|=1<1){for(let nt=0;nt1){for(let rt=0;rt0){it.children=[];for(let st=0;st0){it.animations=[];for(let st=0;st0&&(rt.geometries=st),lt.length>0&&(rt.materials=lt),ct.length>0&&(rt.textures=ct),ut.length>0&&(rt.images=ut),ht.length>0&&(rt.shapes=ht),dt.length>0&&(rt.skeletons=dt),pt.length>0&&(rt.animations=pt),mt.length>0&&(rt.nodes=mt)}return rt.object=it,rt;function at(st){const lt=[];for(const ct in st){const ut=st[ct];delete ut.metadata,lt.push(ut)}return lt}}clone(et){return new this.constructor().copy(this,et)}copy(et,nt=!0){if(this.name=et.name,this.up.copy(et.up),this.position.copy(et.position),this.rotation.order=et.rotation.order,this.quaternion.copy(et.quaternion),this.scale.copy(et.scale),this.matrix.copy(et.matrix),this.matrixWorld.copy(et.matrixWorld),this.matrixAutoUpdate=et.matrixAutoUpdate,this.matrixWorldNeedsUpdate=et.matrixWorldNeedsUpdate,this.layers.mask=et.layers.mask,this.visible=et.visible,this.castShadow=et.castShadow,this.receiveShadow=et.receiveShadow,this.frustumCulled=et.frustumCulled,this.renderOrder=et.renderOrder,this.userData=JSON.parse(JSON.stringify(et.userData)),nt===!0)for(let rt=0;rt0?it.multiplyScalar(1/Math.sqrt(ot)):it.set(0,0,0)}static getBarycoord(et,nt,rt,it,ot){_v0$1.subVectors(it,nt),_v1$3.subVectors(rt,nt),_v2$2.subVectors(et,nt);const at=_v0$1.dot(_v0$1),st=_v0$1.dot(_v1$3),lt=_v0$1.dot(_v2$2),ct=_v1$3.dot(_v1$3),ut=_v1$3.dot(_v2$2),ht=at*ct-st*st;if(ht===0)return ot.set(-2,-1,-1);const dt=1/ht,pt=(ct*lt-st*ut)*dt,mt=(at*ut-st*lt)*dt;return ot.set(1-pt-mt,mt,pt)}static containsPoint(et,nt,rt,it){return this.getBarycoord(et,nt,rt,it,_v3$1),_v3$1.x>=0&&_v3$1.y>=0&&_v3$1.x+_v3$1.y<=1}static getUV(et,nt,rt,it,ot,at,st,lt){return this.getBarycoord(et,nt,rt,it,_v3$1),lt.set(0,0),lt.addScaledVector(ot,_v3$1.x),lt.addScaledVector(at,_v3$1.y),lt.addScaledVector(st,_v3$1.z),lt}static isFrontFacing(et,nt,rt,it){return _v0$1.subVectors(rt,nt),_v1$3.subVectors(et,nt),_v0$1.cross(_v1$3).dot(it)<0}set(et,nt,rt){return this.a.copy(et),this.b.copy(nt),this.c.copy(rt),this}setFromPointsAndIndices(et,nt,rt,it){return this.a.copy(et[nt]),this.b.copy(et[rt]),this.c.copy(et[it]),this}setFromAttributeAndIndices(et,nt,rt,it){return this.a.fromBufferAttribute(et,nt),this.b.fromBufferAttribute(et,rt),this.c.fromBufferAttribute(et,it),this}clone(){return new this.constructor().copy(this)}copy(et){return this.a.copy(et.a),this.b.copy(et.b),this.c.copy(et.c),this}getArea(){return _v0$1.subVectors(this.c,this.b),_v1$3.subVectors(this.a,this.b),_v0$1.cross(_v1$3).length()*.5}getMidpoint(et){return et.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(et){return Triangle.getNormal(this.a,this.b,this.c,et)}getPlane(et){return et.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(et,nt){return Triangle.getBarycoord(et,this.a,this.b,this.c,nt)}getUV(et,nt,rt,it,ot){return Triangle.getUV(et,this.a,this.b,this.c,nt,rt,it,ot)}containsPoint(et){return Triangle.containsPoint(et,this.a,this.b,this.c)}isFrontFacing(et){return Triangle.isFrontFacing(this.a,this.b,this.c,et)}intersectsBox(et){return et.intersectsTriangle(this)}closestPointToPoint(et,nt){const rt=this.a,it=this.b,ot=this.c;let at,st;_vab.subVectors(it,rt),_vac.subVectors(ot,rt),_vap.subVectors(et,rt);const lt=_vab.dot(_vap),ct=_vac.dot(_vap);if(lt<=0&&ct<=0)return nt.copy(rt);_vbp.subVectors(et,it);const ut=_vab.dot(_vbp),ht=_vac.dot(_vbp);if(ut>=0&&ht<=ut)return nt.copy(it);const dt=lt*ht-ut*ct;if(dt<=0&<>=0&&ut<=0)return at=lt/(lt-ut),nt.copy(rt).addScaledVector(_vab,at);_vcp.subVectors(et,ot);const pt=_vab.dot(_vcp),mt=_vac.dot(_vcp);if(mt>=0&&pt<=mt)return nt.copy(ot);const gt=pt*ct-lt*mt;if(gt<=0&&ct>=0&&mt<=0)return st=ct/(ct-mt),nt.copy(rt).addScaledVector(_vac,st);const yt=ut*mt-pt*ht;if(yt<=0&&ht-ut>=0&&pt-mt>=0)return _vbc.subVectors(ot,it),st=(ht-ut)/(ht-ut+(pt-mt)),nt.copy(it).addScaledVector(_vbc,st);const bt=1/(yt+gt+dt);return at=gt*bt,st=dt*bt,nt.copy(rt).addScaledVector(_vab,at).addScaledVector(_vac,st)}equals(et){return et.a.equals(this.a)&&et.b.equals(this.b)&&et.c.equals(this.c)}}let materialId=0;class Material extends EventDispatcher$1{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:materialId++}),this.uuid=generateUUID$1(),this.name="",this.type="Material",this.blending=NormalBlending,this.side=FrontSide,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=SrcAlphaFactor,this.blendDst=OneMinusSrcAlphaFactor,this.blendEquation=AddEquation,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=LessEqualDepth,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=AlwaysStencilFunc,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=KeepStencilOp,this.stencilZFail=KeepStencilOp,this.stencilZPass=KeepStencilOp,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(et){this._alphaTest>0!=et>0&&this.version++,this._alphaTest=et}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(et){if(et!==void 0)for(const nt in et){const rt=et[nt];if(rt===void 0){console.warn("THREE.Material: '"+nt+"' parameter is undefined.");continue}if(nt==="shading"){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=rt===FlatShading;continue}const it=this[nt];if(it===void 0){console.warn("THREE."+this.type+": '"+nt+"' is not a property of this material.");continue}it&&it.isColor?it.set(rt):it&&it.isVector3&&rt&&rt.isVector3?it.copy(rt):this[nt]=rt}}toJSON(et){const nt=et===void 0||typeof et=="string";nt&&(et={textures:{},images:{}});const rt={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};rt.uuid=this.uuid,rt.type=this.type,this.name!==""&&(rt.name=this.name),this.color&&this.color.isColor&&(rt.color=this.color.getHex()),this.roughness!==void 0&&(rt.roughness=this.roughness),this.metalness!==void 0&&(rt.metalness=this.metalness),this.sheen!==void 0&&(rt.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(rt.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(rt.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(rt.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(rt.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(rt.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(rt.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(rt.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(rt.shininess=this.shininess),this.clearcoat!==void 0&&(rt.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(rt.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(rt.clearcoatMap=this.clearcoatMap.toJSON(et).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(rt.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(et).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(rt.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(et).uuid,rt.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(rt.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(rt.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(rt.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(rt.iridescenceMap=this.iridescenceMap.toJSON(et).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(rt.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(et).uuid),this.map&&this.map.isTexture&&(rt.map=this.map.toJSON(et).uuid),this.matcap&&this.matcap.isTexture&&(rt.matcap=this.matcap.toJSON(et).uuid),this.alphaMap&&this.alphaMap.isTexture&&(rt.alphaMap=this.alphaMap.toJSON(et).uuid),this.lightMap&&this.lightMap.isTexture&&(rt.lightMap=this.lightMap.toJSON(et).uuid,rt.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(rt.aoMap=this.aoMap.toJSON(et).uuid,rt.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(rt.bumpMap=this.bumpMap.toJSON(et).uuid,rt.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(rt.normalMap=this.normalMap.toJSON(et).uuid,rt.normalMapType=this.normalMapType,rt.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(rt.displacementMap=this.displacementMap.toJSON(et).uuid,rt.displacementScale=this.displacementScale,rt.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(rt.roughnessMap=this.roughnessMap.toJSON(et).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(rt.metalnessMap=this.metalnessMap.toJSON(et).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(rt.emissiveMap=this.emissiveMap.toJSON(et).uuid),this.specularMap&&this.specularMap.isTexture&&(rt.specularMap=this.specularMap.toJSON(et).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(rt.specularIntensityMap=this.specularIntensityMap.toJSON(et).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(rt.specularColorMap=this.specularColorMap.toJSON(et).uuid),this.envMap&&this.envMap.isTexture&&(rt.envMap=this.envMap.toJSON(et).uuid,this.combine!==void 0&&(rt.combine=this.combine)),this.envMapIntensity!==void 0&&(rt.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(rt.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(rt.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(rt.gradientMap=this.gradientMap.toJSON(et).uuid),this.transmission!==void 0&&(rt.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(rt.transmissionMap=this.transmissionMap.toJSON(et).uuid),this.thickness!==void 0&&(rt.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(rt.thicknessMap=this.thicknessMap.toJSON(et).uuid),this.attenuationDistance!==void 0&&(rt.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(rt.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(rt.size=this.size),this.shadowSide!==null&&(rt.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(rt.sizeAttenuation=this.sizeAttenuation),this.blending!==NormalBlending&&(rt.blending=this.blending),this.side!==FrontSide&&(rt.side=this.side),this.vertexColors&&(rt.vertexColors=!0),this.opacity<1&&(rt.opacity=this.opacity),this.transparent===!0&&(rt.transparent=this.transparent),rt.depthFunc=this.depthFunc,rt.depthTest=this.depthTest,rt.depthWrite=this.depthWrite,rt.colorWrite=this.colorWrite,rt.stencilWrite=this.stencilWrite,rt.stencilWriteMask=this.stencilWriteMask,rt.stencilFunc=this.stencilFunc,rt.stencilRef=this.stencilRef,rt.stencilFuncMask=this.stencilFuncMask,rt.stencilFail=this.stencilFail,rt.stencilZFail=this.stencilZFail,rt.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(rt.rotation=this.rotation),this.polygonOffset===!0&&(rt.polygonOffset=!0),this.polygonOffsetFactor!==0&&(rt.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(rt.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(rt.linewidth=this.linewidth),this.dashSize!==void 0&&(rt.dashSize=this.dashSize),this.gapSize!==void 0&&(rt.gapSize=this.gapSize),this.scale!==void 0&&(rt.scale=this.scale),this.dithering===!0&&(rt.dithering=!0),this.alphaTest>0&&(rt.alphaTest=this.alphaTest),this.alphaToCoverage===!0&&(rt.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(rt.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(rt.wireframe=this.wireframe),this.wireframeLinewidth>1&&(rt.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(rt.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(rt.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(rt.flatShading=this.flatShading),this.visible===!1&&(rt.visible=!1),this.toneMapped===!1&&(rt.toneMapped=!1),this.fog===!1&&(rt.fog=!1),JSON.stringify(this.userData)!=="{}"&&(rt.userData=this.userData);function it(ot){const at=[];for(const st in ot){const lt=ot[st];delete lt.metadata,at.push(lt)}return at}if(nt){const ot=it(et.textures),at=it(et.images);ot.length>0&&(rt.textures=ot),at.length>0&&(rt.images=at)}return rt}clone(){return new this.constructor().copy(this)}copy(et){this.name=et.name,this.blending=et.blending,this.side=et.side,this.vertexColors=et.vertexColors,this.opacity=et.opacity,this.transparent=et.transparent,this.blendSrc=et.blendSrc,this.blendDst=et.blendDst,this.blendEquation=et.blendEquation,this.blendSrcAlpha=et.blendSrcAlpha,this.blendDstAlpha=et.blendDstAlpha,this.blendEquationAlpha=et.blendEquationAlpha,this.depthFunc=et.depthFunc,this.depthTest=et.depthTest,this.depthWrite=et.depthWrite,this.stencilWriteMask=et.stencilWriteMask,this.stencilFunc=et.stencilFunc,this.stencilRef=et.stencilRef,this.stencilFuncMask=et.stencilFuncMask,this.stencilFail=et.stencilFail,this.stencilZFail=et.stencilZFail,this.stencilZPass=et.stencilZPass,this.stencilWrite=et.stencilWrite;const nt=et.clippingPlanes;let rt=null;if(nt!==null){const it=nt.length;rt=new Array(it);for(let ot=0;ot!==it;++ot)rt[ot]=nt[ot].clone()}return this.clippingPlanes=rt,this.clipIntersection=et.clipIntersection,this.clipShadows=et.clipShadows,this.shadowSide=et.shadowSide,this.colorWrite=et.colorWrite,this.precision=et.precision,this.polygonOffset=et.polygonOffset,this.polygonOffsetFactor=et.polygonOffsetFactor,this.polygonOffsetUnits=et.polygonOffsetUnits,this.dithering=et.dithering,this.alphaTest=et.alphaTest,this.alphaToCoverage=et.alphaToCoverage,this.premultipliedAlpha=et.premultipliedAlpha,this.visible=et.visible,this.toneMapped=et.toneMapped,this.userData=JSON.parse(JSON.stringify(et.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(et){et===!0&&this.version++}}class MeshBasicMaterial extends Material{constructor(et){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Color$1(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(et)}copy(et){return super.copy(et),this.color.copy(et.color),this.map=et.map,this.lightMap=et.lightMap,this.lightMapIntensity=et.lightMapIntensity,this.aoMap=et.aoMap,this.aoMapIntensity=et.aoMapIntensity,this.specularMap=et.specularMap,this.alphaMap=et.alphaMap,this.envMap=et.envMap,this.combine=et.combine,this.reflectivity=et.reflectivity,this.refractionRatio=et.refractionRatio,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this.wireframeLinecap=et.wireframeLinecap,this.wireframeLinejoin=et.wireframeLinejoin,this.fog=et.fog,this}}const _vector$9=new Vector3,_vector2$1=new Vector2;class BufferAttribute{constructor(et,nt,rt){if(Array.isArray(et))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=et,this.itemSize=nt,this.count=et!==void 0?et.length/nt:0,this.normalized=rt===!0,this.usage=StaticDrawUsage,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(et){et===!0&&this.version++}setUsage(et){return this.usage=et,this}copy(et){return this.name=et.name,this.array=new et.array.constructor(et.array),this.itemSize=et.itemSize,this.count=et.count,this.normalized=et.normalized,this.usage=et.usage,this}copyAt(et,nt,rt){et*=this.itemSize,rt*=nt.itemSize;for(let it=0,ot=this.itemSize;it0&&(et.userData=this.userData),this.parameters!==void 0){const lt=this.parameters;for(const ct in lt)lt[ct]!==void 0&&(et[ct]=lt[ct]);return et}et.data={attributes:{}};const nt=this.index;nt!==null&&(et.data.index={type:nt.array.constructor.name,array:Array.prototype.slice.call(nt.array)});const rt=this.attributes;for(const lt in rt){const ct=rt[lt];et.data.attributes[lt]=ct.toJSON(et.data)}const it={};let ot=!1;for(const lt in this.morphAttributes){const ct=this.morphAttributes[lt],ut=[];for(let ht=0,dt=ct.length;ht0&&(it[lt]=ut,ot=!0)}ot&&(et.data.morphAttributes=it,et.data.morphTargetsRelative=this.morphTargetsRelative);const at=this.groups;at.length>0&&(et.data.groups=JSON.parse(JSON.stringify(at)));const st=this.boundingSphere;return st!==null&&(et.data.boundingSphere={center:st.center.toArray(),radius:st.radius}),et}clone(){return new this.constructor().copy(this)}copy(et){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const nt={};this.name=et.name;const rt=et.index;rt!==null&&this.setIndex(rt.clone(nt));const it=et.attributes;for(const ct in it){const ut=it[ct];this.setAttribute(ct,ut.clone(nt))}const ot=et.morphAttributes;for(const ct in ot){const ut=[],ht=ot[ct];for(let dt=0,pt=ht.length;dt0){const it=nt[rt[0]];if(it!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let ot=0,at=it.length;otnt.far?null:{distance:ct,point:_intersectionPointWorld.clone(),object:tt}}function checkBufferGeometryIntersection(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht){_vA$1.fromBufferAttribute(it,ct),_vB$1.fromBufferAttribute(it,ut),_vC$1.fromBufferAttribute(it,ht);const dt=tt.morphTargetInfluences;if(ot&&dt){_morphA.set(0,0,0),_morphB.set(0,0,0),_morphC.set(0,0,0);for(let mt=0,gt=ot.length;mt0?1:-1,ut.push(Wt.x,Wt.y,Wt.z),ht.push(Ct/At),ht.push(1-Ft/Tt),zt+=1}}for(let Ft=0;Ft1?null:nt.copy(rt).multiplyScalar(ot).add(et.start)}intersectsLine(et){const nt=this.distanceToPoint(et.start),rt=this.distanceToPoint(et.end);return nt<0&&rt>0||rt<0&&nt>0}intersectsBox(et){return et.intersectsPlane(this)}intersectsSphere(et){return et.intersectsPlane(this)}coplanarPoint(et){return et.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(et,nt){const rt=nt||_normalMatrix.getNormalMatrix(et),it=this.coplanarPoint(_vector1).applyMatrix4(et),ot=this.normal.applyMatrix3(rt).normalize();return this.constant=-it.dot(ot),this}translate(et){return this.constant-=et.dot(this.normal),this}equals(et){return et.normal.equals(this.normal)&&et.constant===this.constant}clone(){return new this.constructor().copy(this)}}const _sphere$2=new Sphere,_vector$7=new Vector3;class Frustum{constructor(et=new Plane,nt=new Plane,rt=new Plane,it=new Plane,ot=new Plane,at=new Plane){this.planes=[et,nt,rt,it,ot,at]}set(et,nt,rt,it,ot,at){const st=this.planes;return st[0].copy(et),st[1].copy(nt),st[2].copy(rt),st[3].copy(it),st[4].copy(ot),st[5].copy(at),this}copy(et){const nt=this.planes;for(let rt=0;rt<6;rt++)nt[rt].copy(et.planes[rt]);return this}setFromProjectionMatrix(et){const nt=this.planes,rt=et.elements,it=rt[0],ot=rt[1],at=rt[2],st=rt[3],lt=rt[4],ct=rt[5],ut=rt[6],ht=rt[7],dt=rt[8],pt=rt[9],mt=rt[10],gt=rt[11],yt=rt[12],bt=rt[13],wt=rt[14],vt=rt[15];return nt[0].setComponents(st-it,ht-lt,gt-dt,vt-yt).normalize(),nt[1].setComponents(st+it,ht+lt,gt+dt,vt+yt).normalize(),nt[2].setComponents(st+ot,ht+ct,gt+pt,vt+bt).normalize(),nt[3].setComponents(st-ot,ht-ct,gt-pt,vt-bt).normalize(),nt[4].setComponents(st-at,ht-ut,gt-mt,vt-wt).normalize(),nt[5].setComponents(st+at,ht+ut,gt+mt,vt+wt).normalize(),this}intersectsObject(et){const nt=et.geometry;return nt.boundingSphere===null&&nt.computeBoundingSphere(),_sphere$2.copy(nt.boundingSphere).applyMatrix4(et.matrixWorld),this.intersectsSphere(_sphere$2)}intersectsSprite(et){return _sphere$2.center.set(0,0,0),_sphere$2.radius=.7071067811865476,_sphere$2.applyMatrix4(et.matrixWorld),this.intersectsSphere(_sphere$2)}intersectsSphere(et){const nt=this.planes,rt=et.center,it=-et.radius;for(let ot=0;ot<6;ot++)if(nt[ot].distanceToPoint(rt)0?et.max.x:et.min.x,_vector$7.y=it.normal.y>0?et.max.y:et.min.y,_vector$7.z=it.normal.z>0?et.max.z:et.min.z,it.distanceToPoint(_vector$7)<0)return!1}return!0}containsPoint(et){const nt=this.planes;for(let rt=0;rt<6;rt++)if(nt[rt].distanceToPoint(et)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function WebGLAnimation(){let tt=null,et=!1,nt=null,rt=null;function it(ot,at){nt(ot,at),rt=tt.requestAnimationFrame(it)}return{start:function(){et!==!0&&nt!==null&&(rt=tt.requestAnimationFrame(it),et=!0)},stop:function(){tt.cancelAnimationFrame(rt),et=!1},setAnimationLoop:function(ot){nt=ot},setContext:function(ot){tt=ot}}}function WebGLAttributes(tt,et){const nt=et.isWebGL2,rt=new WeakMap;function it(ct,ut){const ht=ct.array,dt=ct.usage,pt=tt.createBuffer();tt.bindBuffer(ut,pt),tt.bufferData(ut,ht,dt),ct.onUploadCallback();let mt;if(ht instanceof Float32Array)mt=5126;else if(ht instanceof Uint16Array)if(ct.isFloat16BufferAttribute)if(nt)mt=5131;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else mt=5123;else if(ht instanceof Int16Array)mt=5122;else if(ht instanceof Uint32Array)mt=5125;else if(ht instanceof Int32Array)mt=5124;else if(ht instanceof Int8Array)mt=5120;else if(ht instanceof Uint8Array)mt=5121;else if(ht instanceof Uint8ClampedArray)mt=5121;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+ht);return{buffer:pt,type:mt,bytesPerElement:ht.BYTES_PER_ELEMENT,version:ct.version}}function ot(ct,ut,ht){const dt=ut.array,pt=ut.updateRange;tt.bindBuffer(ht,ct),pt.count===-1?tt.bufferSubData(ht,0,dt):(nt?tt.bufferSubData(ht,pt.offset*dt.BYTES_PER_ELEMENT,dt,pt.offset,pt.count):tt.bufferSubData(ht,pt.offset*dt.BYTES_PER_ELEMENT,dt.subarray(pt.offset,pt.offset+pt.count)),pt.count=-1)}function at(ct){return ct.isInterleavedBufferAttribute&&(ct=ct.data),rt.get(ct)}function st(ct){ct.isInterleavedBufferAttribute&&(ct=ct.data);const ut=rt.get(ct);ut&&(tt.deleteBuffer(ut.buffer),rt.delete(ct))}function lt(ct,ut){if(ct.isGLBufferAttribute){const dt=rt.get(ct);(!dt||dt.version1?null:nt.copy(rt).multiplyScalar(ot).add(et.start)}intersectsLine(et){const nt=this.distanceToPoint(et.start),rt=this.distanceToPoint(et.end);return nt<0&&rt>0||rt<0&&nt>0}intersectsBox(et){return et.intersectsPlane(this)}intersectsSphere(et){return et.intersectsPlane(this)}coplanarPoint(et){return et.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(et,nt){const rt=nt||_normalMatrix.getNormalMatrix(et),it=this.coplanarPoint(_vector1).applyMatrix4(et),ot=this.normal.applyMatrix3(rt).normalize();return this.constant=-it.dot(ot),this}translate(et){return this.constant-=et.dot(this.normal),this}equals(et){return et.normal.equals(this.normal)&&et.constant===this.constant}clone(){return new this.constructor().copy(this)}}const _sphere$2=new Sphere,_vector$7=new Vector3;class Frustum{constructor(et=new Plane,nt=new Plane,rt=new Plane,it=new Plane,ot=new Plane,at=new Plane){this.planes=[et,nt,rt,it,ot,at]}set(et,nt,rt,it,ot,at){const st=this.planes;return st[0].copy(et),st[1].copy(nt),st[2].copy(rt),st[3].copy(it),st[4].copy(ot),st[5].copy(at),this}copy(et){const nt=this.planes;for(let rt=0;rt<6;rt++)nt[rt].copy(et.planes[rt]);return this}setFromProjectionMatrix(et){const nt=this.planes,rt=et.elements,it=rt[0],ot=rt[1],at=rt[2],st=rt[3],lt=rt[4],ct=rt[5],ut=rt[6],ht=rt[7],dt=rt[8],pt=rt[9],mt=rt[10],gt=rt[11],yt=rt[12],bt=rt[13],wt=rt[14],vt=rt[15];return nt[0].setComponents(st-it,ht-lt,gt-dt,vt-yt).normalize(),nt[1].setComponents(st+it,ht+lt,gt+dt,vt+yt).normalize(),nt[2].setComponents(st+ot,ht+ct,gt+pt,vt+bt).normalize(),nt[3].setComponents(st-ot,ht-ct,gt-pt,vt-bt).normalize(),nt[4].setComponents(st-at,ht-ut,gt-mt,vt-wt).normalize(),nt[5].setComponents(st+at,ht+ut,gt+mt,vt+wt).normalize(),this}intersectsObject(et){const nt=et.geometry;return nt.boundingSphere===null&&nt.computeBoundingSphere(),_sphere$2.copy(nt.boundingSphere).applyMatrix4(et.matrixWorld),this.intersectsSphere(_sphere$2)}intersectsSprite(et){return _sphere$2.center.set(0,0,0),_sphere$2.radius=.7071067811865476,_sphere$2.applyMatrix4(et.matrixWorld),this.intersectsSphere(_sphere$2)}intersectsSphere(et){const nt=this.planes,rt=et.center,it=-et.radius;for(let ot=0;ot<6;ot++)if(nt[ot].distanceToPoint(rt)0?et.max.x:et.min.x,_vector$7.y=it.normal.y>0?et.max.y:et.min.y,_vector$7.z=it.normal.z>0?et.max.z:et.min.z,it.distanceToPoint(_vector$7)<0)return!1}return!0}containsPoint(et){const nt=this.planes;for(let rt=0;rt<6;rt++)if(nt[rt].distanceToPoint(et)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function WebGLAnimation(){let tt=null,et=!1,nt=null,rt=null;function it(ot,at){nt(ot,at),rt=tt.requestAnimationFrame(it)}return{start:function(){et!==!0&&nt!==null&&(rt=tt.requestAnimationFrame(it),et=!0)},stop:function(){tt.cancelAnimationFrame(rt),et=!1},setAnimationLoop:function(ot){nt=ot},setContext:function(ot){tt=ot}}}function WebGLAttributes(tt,et){const nt=et.isWebGL2,rt=new WeakMap;function it(ct,ut){const ht=ct.array,dt=ct.usage,pt=tt.createBuffer();tt.bindBuffer(ut,pt),tt.bufferData(ut,ht,dt),ct.onUploadCallback();let mt;if(ht instanceof Float32Array)mt=5126;else if(ht instanceof Uint16Array)if(ct.isFloat16BufferAttribute)if(nt)mt=5131;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else mt=5123;else if(ht instanceof Int16Array)mt=5122;else if(ht instanceof Uint32Array)mt=5125;else if(ht instanceof Int32Array)mt=5124;else if(ht instanceof Int8Array)mt=5120;else if(ht instanceof Uint8Array)mt=5121;else if(ht instanceof Uint8ClampedArray)mt=5121;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+ht);return{buffer:pt,type:mt,bytesPerElement:ht.BYTES_PER_ELEMENT,version:ct.version}}function ot(ct,ut,ht){const dt=ut.array,pt=ut.updateRange;tt.bindBuffer(ht,ct),pt.count===-1?tt.bufferSubData(ht,0,dt):(nt?tt.bufferSubData(ht,pt.offset*dt.BYTES_PER_ELEMENT,dt,pt.offset,pt.count):tt.bufferSubData(ht,pt.offset*dt.BYTES_PER_ELEMENT,dt.subarray(pt.offset,pt.offset+pt.count)),pt.count=-1)}function at(ct){return ct.isInterleavedBufferAttribute&&(ct=ct.data),rt.get(ct)}function st(ct){ct.isInterleavedBufferAttribute&&(ct=ct.data);const ut=rt.get(ct);ut&&(tt.deleteBuffer(ut.buffer),rt.delete(ct))}function lt(ct,ut){if(ct.isGLBufferAttribute){const dt=rt.get(ct);(!dt||dt.version #include #include -}`,ShaderChunk={alphamap_fragment,alphamap_pars_fragment,alphatest_fragment,alphatest_pars_fragment,aomap_fragment,aomap_pars_fragment,begin_vertex,beginnormal_vertex,bsdfs,iridescence_fragment,bumpmap_pars_fragment,clipping_planes_fragment,clipping_planes_pars_fragment,clipping_planes_pars_vertex,clipping_planes_vertex,color_fragment,color_pars_fragment,color_pars_vertex,color_vertex,common,cube_uv_reflection_fragment,defaultnormal_vertex,displacementmap_pars_vertex,displacementmap_vertex,emissivemap_fragment,emissivemap_pars_fragment,encodings_fragment,encodings_pars_fragment,envmap_fragment,envmap_common_pars_fragment,envmap_pars_fragment,envmap_pars_vertex,envmap_physical_pars_fragment,envmap_vertex,fog_vertex,fog_pars_vertex,fog_fragment,fog_pars_fragment,gradientmap_pars_fragment,lightmap_fragment,lightmap_pars_fragment,lights_lambert_vertex,lights_pars_begin,lights_toon_fragment,lights_toon_pars_fragment,lights_phong_fragment,lights_phong_pars_fragment,lights_physical_fragment,lights_physical_pars_fragment,lights_fragment_begin,lights_fragment_maps,lights_fragment_end,logdepthbuf_fragment,logdepthbuf_pars_fragment,logdepthbuf_pars_vertex,logdepthbuf_vertex,map_fragment,map_pars_fragment,map_particle_fragment,map_particle_pars_fragment,metalnessmap_fragment,metalnessmap_pars_fragment,morphcolor_vertex,morphnormal_vertex,morphtarget_pars_vertex,morphtarget_vertex,normal_fragment_begin,normal_fragment_maps,normal_pars_fragment,normal_pars_vertex,normal_vertex,normalmap_pars_fragment,clearcoat_normal_fragment_begin,clearcoat_normal_fragment_maps,clearcoat_pars_fragment,iridescence_pars_fragment,output_fragment,packing,premultiplied_alpha_fragment,project_vertex,dithering_fragment,dithering_pars_fragment,roughnessmap_fragment,roughnessmap_pars_fragment,shadowmap_pars_fragment,shadowmap_pars_vertex,shadowmap_vertex,shadowmask_pars_fragment,skinbase_vertex,skinning_pars_vertex,skinning_vertex,skinnormal_vertex,specularmap_fragment,specularmap_pars_fragment,tonemapping_fragment,tonemapping_pars_fragment,transmission_fragment,transmission_pars_fragment,uv_pars_fragment,uv_pars_vertex,uv_vertex,uv2_pars_fragment,uv2_pars_vertex,uv2_vertex,worldpos_vertex,background_vert:vertex$g,background_frag:fragment$g,cube_vert:vertex$f,cube_frag:fragment$f,depth_vert:vertex$e,depth_frag:fragment$e,distanceRGBA_vert:vertex$d,distanceRGBA_frag:fragment$d,equirect_vert:vertex$c,equirect_frag:fragment$c,linedashed_vert:vertex$b,linedashed_frag:fragment$b,meshbasic_vert:vertex$a,meshbasic_frag:fragment$a,meshlambert_vert:vertex$9,meshlambert_frag:fragment$9,meshmatcap_vert:vertex$8,meshmatcap_frag:fragment$8,meshnormal_vert:vertex$7,meshnormal_frag:fragment$7,meshphong_vert:vertex$6,meshphong_frag:fragment$6,meshphysical_vert:vertex$5,meshphysical_frag:fragment$5,meshtoon_vert:vertex$4,meshtoon_frag:fragment$4,points_vert:vertex$3,points_frag:fragment$3,shadow_vert:vertex$2,shadow_frag:fragment$2,sprite_vert:vertex$1,sprite_frag:fragment$1},UniformsLib={common:{diffuse:{value:new Color$1(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Matrix3},uv2Transform:{value:new Matrix3},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color$1(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color$1(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color$1(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Matrix3}}},ShaderLib={basic:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.fog]),vertexShader:ShaderChunk.meshbasic_vert,fragmentShader:ShaderChunk.meshbasic_frag},lambert:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$1(0)}}]),vertexShader:ShaderChunk.meshlambert_vert,fragmentShader:ShaderChunk.meshlambert_frag},phong:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$1(0)},specular:{value:new Color$1(1118481)},shininess:{value:30}}]),vertexShader:ShaderChunk.meshphong_vert,fragmentShader:ShaderChunk.meshphong_frag},standard:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.roughnessmap,UniformsLib.metalnessmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$1(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag},toon:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.gradientmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$1(0)}}]),vertexShader:ShaderChunk.meshtoon_vert,fragmentShader:ShaderChunk.meshtoon_frag},matcap:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,{matcap:{value:null}}]),vertexShader:ShaderChunk.meshmatcap_vert,fragmentShader:ShaderChunk.meshmatcap_frag},points:{uniforms:mergeUniforms([UniformsLib.points,UniformsLib.fog]),vertexShader:ShaderChunk.points_vert,fragmentShader:ShaderChunk.points_frag},dashed:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ShaderChunk.linedashed_vert,fragmentShader:ShaderChunk.linedashed_frag},depth:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap]),vertexShader:ShaderChunk.depth_vert,fragmentShader:ShaderChunk.depth_frag},normal:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.meshnormal_vert,fragmentShader:ShaderChunk.meshnormal_frag},sprite:{uniforms:mergeUniforms([UniformsLib.sprite,UniformsLib.fog]),vertexShader:ShaderChunk.sprite_vert,fragmentShader:ShaderChunk.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null}},vertexShader:ShaderChunk.background_vert,fragmentShader:ShaderChunk.background_frag},cube:{uniforms:mergeUniforms([UniformsLib.envmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.cube_vert,fragmentShader:ShaderChunk.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ShaderChunk.equirect_vert,fragmentShader:ShaderChunk.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:ShaderChunk.distanceRGBA_vert,fragmentShader:ShaderChunk.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([UniformsLib.lights,UniformsLib.fog,{color:{value:new Color$1(0)},opacity:{value:1}}]),vertexShader:ShaderChunk.shadow_vert,fragmentShader:ShaderChunk.shadow_frag}};ShaderLib.physical={uniforms:mergeUniforms([ShaderLib.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new Color$1(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Color$1(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Color$1(1,1,1)},specularColorMap:{value:null}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag};function WebGLBackground(tt,et,nt,rt,it,ot){const at=new Color$1(0);let st=it===!0?0:1,lt,ct,ut=null,ht=0,dt=null;function pt(gt,yt){let bt=!1,wt=yt.isScene===!0?yt.background:null;wt&&wt.isTexture&&(wt=et.get(wt));const vt=tt.xr,kt=vt.getSession&&vt.getSession();kt&&kt.environmentBlendMode==="additive"&&(wt=null),wt===null?mt(at,st):wt&&wt.isColor&&(mt(wt,1),bt=!0),(tt.autoClear||bt)&&tt.clear(tt.autoClearColor,tt.autoClearDepth,tt.autoClearStencil),wt&&(wt.isCubeTexture||wt.mapping===CubeUVReflectionMapping)?(ct===void 0&&(ct=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(ShaderLib.cube.uniforms),vertexShader:ShaderLib.cube.vertexShader,fragmentShader:ShaderLib.cube.fragmentShader,side:BackSide,depthTest:!1,depthWrite:!1,fog:!1})),ct.geometry.deleteAttribute("normal"),ct.geometry.deleteAttribute("uv"),ct.onBeforeRender=function(St,Tt,At){this.matrixWorld.copyPosition(At.matrixWorld)},Object.defineProperty(ct.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),rt.update(ct)),ct.material.uniforms.envMap.value=wt,ct.material.uniforms.flipEnvMap.value=wt.isCubeTexture&&wt.isRenderTargetTexture===!1?-1:1,(ut!==wt||ht!==wt.version||dt!==tt.toneMapping)&&(ct.material.needsUpdate=!0,ut=wt,ht=wt.version,dt=tt.toneMapping),ct.layers.enableAll(),gt.unshift(ct,ct.geometry,ct.material,0,0,null)):wt&&wt.isTexture&&(lt===void 0&&(lt=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib.background.uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib.background.fragmentShader,side:FrontSide,depthTest:!1,depthWrite:!1,fog:!1})),lt.geometry.deleteAttribute("normal"),Object.defineProperty(lt.material,"map",{get:function(){return this.uniforms.t2D.value}}),rt.update(lt)),lt.material.uniforms.t2D.value=wt,wt.matrixAutoUpdate===!0&&wt.updateMatrix(),lt.material.uniforms.uvTransform.value.copy(wt.matrix),(ut!==wt||ht!==wt.version||dt!==tt.toneMapping)&&(lt.material.needsUpdate=!0,ut=wt,ht=wt.version,dt=tt.toneMapping),lt.layers.enableAll(),gt.unshift(lt,lt.geometry,lt.material,0,0,null))}function mt(gt,yt){nt.buffers.color.setClear(gt.r,gt.g,gt.b,yt,ot)}return{getClearColor:function(){return at},setClearColor:function(gt,yt=1){at.set(gt),st=yt,mt(at,st)},getClearAlpha:function(){return st},setClearAlpha:function(gt){st=gt,mt(at,st)},render:pt}}function WebGLBindingStates(tt,et,nt,rt){const it=tt.getParameter(34921),ot=rt.isWebGL2?null:et.get("OES_vertex_array_object"),at=rt.isWebGL2||ot!==null,st={},lt=yt(null);let ct=lt,ut=!1;function ht(xt,It,Ot,zt,Ut){let Wt=!1;if(at){const Ft=gt(zt,Ot,It);ct!==Ft&&(ct=Ft,pt(ct.object)),Wt=bt(xt,zt,Ot,Ut),Wt&&wt(xt,zt,Ot,Ut)}else{const Ft=It.wireframe===!0;(ct.geometry!==zt.id||ct.program!==Ot.id||ct.wireframe!==Ft)&&(ct.geometry=zt.id,ct.program=Ot.id,ct.wireframe=Ft,Wt=!0)}Ut!==null&&nt.update(Ut,34963),(Wt||ut)&&(ut=!1,Et(xt,It,Ot,zt),Ut!==null&&tt.bindBuffer(34963,nt.get(Ut).buffer))}function dt(){return rt.isWebGL2?tt.createVertexArray():ot.createVertexArrayOES()}function pt(xt){return rt.isWebGL2?tt.bindVertexArray(xt):ot.bindVertexArrayOES(xt)}function mt(xt){return rt.isWebGL2?tt.deleteVertexArray(xt):ot.deleteVertexArrayOES(xt)}function gt(xt,It,Ot){const zt=Ot.wireframe===!0;let Ut=st[xt.id];Ut===void 0&&(Ut={},st[xt.id]=Ut);let Wt=Ut[It.id];Wt===void 0&&(Wt={},Ut[It.id]=Wt);let Ft=Wt[zt];return Ft===void 0&&(Ft=yt(dt()),Wt[zt]=Ft),Ft}function yt(xt){const It=[],Ot=[],zt=[];for(let Ut=0;Ut=0){const Jt=Ut[Ct];let nn=Wt[Ct];if(nn===void 0&&(Ct==="instanceMatrix"&&xt.instanceMatrix&&(nn=xt.instanceMatrix),Ct==="instanceColor"&&xt.instanceColor&&(nn=xt.instanceColor)),Jt===void 0||Jt.attribute!==nn||nn&&Jt.data!==nn.data)return!0;Ft++}return ct.attributesNum!==Ft||ct.index!==zt}function wt(xt,It,Ot,zt){const Ut={},Wt=It.attributes;let Ft=0;const Nt=Ot.getAttributes();for(const Ct in Nt)if(Nt[Ct].location>=0){let Jt=Wt[Ct];Jt===void 0&&(Ct==="instanceMatrix"&&xt.instanceMatrix&&(Jt=xt.instanceMatrix),Ct==="instanceColor"&&xt.instanceColor&&(Jt=xt.instanceColor));const nn={};nn.attribute=Jt,Jt&&Jt.data&&(nn.data=Jt.data),Ut[Ct]=nn,Ft++}ct.attributes=Ut,ct.attributesNum=Ft,ct.index=zt}function vt(){const xt=ct.newAttributes;for(let It=0,Ot=xt.length;It=0){let Ht=Ut[Nt];if(Ht===void 0&&(Nt==="instanceMatrix"&&xt.instanceMatrix&&(Ht=xt.instanceMatrix),Nt==="instanceColor"&&xt.instanceColor&&(Ht=xt.instanceColor)),Ht!==void 0){const Jt=Ht.normalized,nn=Ht.itemSize,Yt=nt.get(Ht);if(Yt===void 0)continue;const fn=Yt.buffer,cn=Yt.type,_n=Yt.bytesPerElement;if(Ht.isInterleavedBufferAttribute){const En=Ht.data,an=En.stride,en=Ht.offset;if(En.isInstancedInterleavedBuffer){for(let Tn=0;Tn0&&tt.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";At="mediump"}return At==="mediump"&&tt.getShaderPrecisionFormat(35633,36337).precision>0&&tt.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const at=typeof WebGL2RenderingContext<"u"&&tt instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext<"u"&&tt instanceof WebGL2ComputeRenderingContext;let st=nt.precision!==void 0?nt.precision:"highp";const lt=ot(st);lt!==st&&(console.warn("THREE.WebGLRenderer:",st,"not supported, using",lt,"instead."),st=lt);const ct=at||et.has("WEBGL_draw_buffers"),ut=nt.logarithmicDepthBuffer===!0,ht=tt.getParameter(34930),dt=tt.getParameter(35660),pt=tt.getParameter(3379),mt=tt.getParameter(34076),gt=tt.getParameter(34921),yt=tt.getParameter(36347),bt=tt.getParameter(36348),wt=tt.getParameter(36349),vt=dt>0,kt=at||et.has("OES_texture_float"),St=vt&&kt,Tt=at?tt.getParameter(36183):0;return{isWebGL2:at,drawBuffers:ct,getMaxAnisotropy:it,getMaxPrecision:ot,precision:st,logarithmicDepthBuffer:ut,maxTextures:ht,maxVertexTextures:dt,maxTextureSize:pt,maxCubemapSize:mt,maxAttributes:gt,maxVertexUniforms:yt,maxVaryings:bt,maxFragmentUniforms:wt,vertexTextures:vt,floatFragmentTextures:kt,floatVertexTextures:St,maxSamples:Tt}}function WebGLClipping(tt){const et=this;let nt=null,rt=0,it=!1,ot=!1;const at=new Plane,st=new Matrix3,lt={value:null,needsUpdate:!1};this.uniform=lt,this.numPlanes=0,this.numIntersection=0,this.init=function(ht,dt,pt){const mt=ht.length!==0||dt||rt!==0||it;return it=dt,nt=ut(ht,pt,0),rt=ht.length,mt},this.beginShadows=function(){ot=!0,ut(null)},this.endShadows=function(){ot=!1,ct()},this.setState=function(ht,dt,pt){const mt=ht.clippingPlanes,gt=ht.clipIntersection,yt=ht.clipShadows,bt=tt.get(ht);if(!it||mt===null||mt.length===0||ot&&!yt)ot?ut(null):ct();else{const wt=ot?0:rt,vt=wt*4;let kt=bt.clippingState||null;lt.value=kt,kt=ut(mt,dt,vt,pt);for(let St=0;St!==vt;++St)kt[St]=nt[St];bt.clippingState=kt,this.numIntersection=gt?this.numPlanes:0,this.numPlanes+=wt}};function ct(){lt.value!==nt&&(lt.value=nt,lt.needsUpdate=rt>0),et.numPlanes=rt,et.numIntersection=0}function ut(ht,dt,pt,mt){const gt=ht!==null?ht.length:0;let yt=null;if(gt!==0){if(yt=lt.value,mt!==!0||yt===null){const bt=pt+gt*4,wt=dt.matrixWorldInverse;st.getNormalMatrix(wt),(yt===null||yt.length0){const ct=new WebGLCubeRenderTarget(lt.height/2);return ct.fromEquirectangularTexture(tt,at),et.set(at,ct),at.addEventListener("dispose",it),nt(ct.texture,at.mapping)}else return null}}return at}function it(at){const st=at.target;st.removeEventListener("dispose",it);const lt=et.get(st);lt!==void 0&&(et.delete(st),lt.dispose())}function ot(){et=new WeakMap}return{get:rt,dispose:ot}}class OrthographicCamera extends Camera{constructor(et=-1,nt=1,rt=1,it=-1,ot=.1,at=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=et,this.right=nt,this.top=rt,this.bottom=it,this.near=ot,this.far=at,this.updateProjectionMatrix()}copy(et,nt){return super.copy(et,nt),this.left=et.left,this.right=et.right,this.top=et.top,this.bottom=et.bottom,this.near=et.near,this.far=et.far,this.zoom=et.zoom,this.view=et.view===null?null:Object.assign({},et.view),this}setViewOffset(et,nt,rt,it,ot,at){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=et,this.view.fullHeight=nt,this.view.offsetX=rt,this.view.offsetY=it,this.view.width=ot,this.view.height=at,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const et=(this.right-this.left)/(2*this.zoom),nt=(this.top-this.bottom)/(2*this.zoom),rt=(this.right+this.left)/2,it=(this.top+this.bottom)/2;let ot=rt-et,at=rt+et,st=it+nt,lt=it-nt;if(this.view!==null&&this.view.enabled){const ct=(this.right-this.left)/this.view.fullWidth/this.zoom,ut=(this.top-this.bottom)/this.view.fullHeight/this.zoom;ot+=ct*this.view.offsetX,at=ot+ct*this.view.width,st-=ut*this.view.offsetY,lt=st-ut*this.view.height}this.projectionMatrix.makeOrthographic(ot,at,st,lt,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(et){const nt=super.toJSON(et);return nt.object.zoom=this.zoom,nt.object.left=this.left,nt.object.right=this.right,nt.object.top=this.top,nt.object.bottom=this.bottom,nt.object.near=this.near,nt.object.far=this.far,this.view!==null&&(nt.object.view=Object.assign({},this.view)),nt}}const LOD_MIN=4,EXTRA_LOD_SIGMA=[.125,.215,.35,.446,.526,.582],MAX_SAMPLES=20,_flatCamera=new OrthographicCamera,_clearColor=new Color$1;let _oldTarget=null;const PHI=(1+Math.sqrt(5))/2,INV_PHI=1/PHI,_axisDirections=[new Vector3(1,1,1),new Vector3(-1,1,1),new Vector3(1,1,-1),new Vector3(-1,1,-1),new Vector3(0,PHI,INV_PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(INV_PHI,0,PHI),new Vector3(-INV_PHI,0,PHI),new Vector3(PHI,INV_PHI,0),new Vector3(-PHI,INV_PHI,0)];class PMREMGenerator{constructor(et){this._renderer=et,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(et,nt=0,rt=.1,it=100){_oldTarget=this._renderer.getRenderTarget(),this._setSize(256);const ot=this._allocateTargets();return ot.depthBuffer=!0,this._sceneToCubeUV(et,rt,it,ot),nt>0&&this._blur(ot,0,0,nt),this._applyPMREM(ot),this._cleanup(ot),ot}fromEquirectangular(et,nt=null){return this._fromTexture(et,nt)}fromCubemap(et,nt=null){return this._fromTexture(et,nt)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(et){this._lodMax=Math.floor(Math.log2(et)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let et=0;et2?vt:0,vt,vt),ut.setRenderTarget(it),gt&&ut.render(mt,st),ut.render(et,st)}mt.geometry.dispose(),mt.material.dispose(),ut.toneMapping=dt,ut.autoClear=ht,et.background=yt}_textureToCubeUV(et,nt){const rt=this._renderer,it=et.mapping===CubeReflectionMapping||et.mapping===CubeRefractionMapping;it?(this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial()),this._cubemapMaterial.uniforms.flipEnvMap.value=et.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial());const ot=it?this._cubemapMaterial:this._equirectMaterial,at=new Mesh(this._lodPlanes[0],ot),st=ot.uniforms;st.envMap.value=et;const lt=this._cubeSize;_setViewport(nt,0,0,3*lt,2*lt),rt.setRenderTarget(nt),rt.render(at,_flatCamera)}_applyPMREM(et){const nt=this._renderer,rt=nt.autoClear;nt.autoClear=!1;for(let it=1;itMAX_SAMPLES&&console.warn(`sigmaRadians, ${ot}, is too large and will clip, as it requested ${yt} samples when the maximum is set to ${MAX_SAMPLES}`);const bt=[];let wt=0;for(let At=0;Atvt-LOD_MIN?it-vt+LOD_MIN:0),Tt=4*(this._cubeSize-kt);_setViewport(nt,St,Tt,3*kt,2*kt),lt.setRenderTarget(nt),lt.render(ht,_flatCamera)}}function _createPlanes(tt){const et=[],nt=[],rt=[];let it=tt;const ot=tt-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let at=0;attt-LOD_MIN?lt=EXTRA_LOD_SIGMA[at-tt+LOD_MIN-1]:at===0&&(lt=0),rt.push(lt);const ct=1/(st-2),ut=-ct,ht=1+ct,dt=[ut,ut,ht,ut,ht,ht,ut,ut,ht,ht,ut,ht],pt=6,mt=6,gt=3,yt=2,bt=1,wt=new Float32Array(gt*mt*pt),vt=new Float32Array(yt*mt*pt),kt=new Float32Array(bt*mt*pt);for(let Tt=0;Tt2?0:-1,Mt=[At,Et,0,At+2/3,Et,0,At+2/3,Et+1,0,At,Et,0,At+2/3,Et+1,0,At,Et+1,0];wt.set(Mt,gt*mt*Tt),vt.set(dt,yt*mt*Tt);const Lt=[Tt,Tt,Tt,Tt,Tt,Tt];kt.set(Lt,bt*mt*Tt)}const St=new BufferGeometry;St.setAttribute("position",new BufferAttribute(wt,gt)),St.setAttribute("uv",new BufferAttribute(vt,yt)),St.setAttribute("faceIndex",new BufferAttribute(kt,bt)),et.push(St),it>LOD_MIN&&it--}return{lodPlanes:et,sizeLods:nt,sigmas:rt}}function _createRenderTarget(tt,et,nt){const rt=new WebGLRenderTarget(tt,et,nt);return rt.texture.mapping=CubeUVReflectionMapping,rt.texture.name="PMREM.cubeUv",rt.scissorTest=!0,rt}function _setViewport(tt,et,nt,rt,it){tt.viewport.set(et,nt,rt,it),tt.scissor.set(et,nt,rt,it)}function _getBlurShader(tt,et,nt){const rt=new Float32Array(MAX_SAMPLES),it=new Vector3(0,1,0);return new ShaderMaterial({name:"SphericalGaussianBlur",defines:{n:MAX_SAMPLES,CUBEUV_TEXEL_WIDTH:1/et,CUBEUV_TEXEL_HEIGHT:1/nt,CUBEUV_MAX_MIP:`${tt}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:rt},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:it}},vertexShader:_getCommonVertexShader(),fragmentShader:` +}`,ShaderChunk={alphamap_fragment,alphamap_pars_fragment,alphatest_fragment,alphatest_pars_fragment,aomap_fragment,aomap_pars_fragment,begin_vertex,beginnormal_vertex,bsdfs,iridescence_fragment,bumpmap_pars_fragment,clipping_planes_fragment,clipping_planes_pars_fragment,clipping_planes_pars_vertex,clipping_planes_vertex,color_fragment,color_pars_fragment,color_pars_vertex,color_vertex,common,cube_uv_reflection_fragment,defaultnormal_vertex,displacementmap_pars_vertex,displacementmap_vertex,emissivemap_fragment,emissivemap_pars_fragment,encodings_fragment,encodings_pars_fragment,envmap_fragment,envmap_common_pars_fragment,envmap_pars_fragment,envmap_pars_vertex,envmap_physical_pars_fragment,envmap_vertex,fog_vertex,fog_pars_vertex,fog_fragment,fog_pars_fragment,gradientmap_pars_fragment,lightmap_fragment,lightmap_pars_fragment,lights_lambert_vertex,lights_pars_begin,lights_toon_fragment,lights_toon_pars_fragment,lights_phong_fragment,lights_phong_pars_fragment,lights_physical_fragment,lights_physical_pars_fragment,lights_fragment_begin,lights_fragment_maps,lights_fragment_end,logdepthbuf_fragment,logdepthbuf_pars_fragment,logdepthbuf_pars_vertex,logdepthbuf_vertex,map_fragment,map_pars_fragment,map_particle_fragment,map_particle_pars_fragment,metalnessmap_fragment,metalnessmap_pars_fragment,morphcolor_vertex,morphnormal_vertex,morphtarget_pars_vertex,morphtarget_vertex,normal_fragment_begin,normal_fragment_maps,normal_pars_fragment,normal_pars_vertex,normal_vertex,normalmap_pars_fragment,clearcoat_normal_fragment_begin,clearcoat_normal_fragment_maps,clearcoat_pars_fragment,iridescence_pars_fragment,output_fragment,packing,premultiplied_alpha_fragment,project_vertex,dithering_fragment,dithering_pars_fragment,roughnessmap_fragment,roughnessmap_pars_fragment,shadowmap_pars_fragment,shadowmap_pars_vertex,shadowmap_vertex,shadowmask_pars_fragment,skinbase_vertex,skinning_pars_vertex,skinning_vertex,skinnormal_vertex,specularmap_fragment,specularmap_pars_fragment,tonemapping_fragment,tonemapping_pars_fragment,transmission_fragment,transmission_pars_fragment,uv_pars_fragment,uv_pars_vertex,uv_vertex,uv2_pars_fragment,uv2_pars_vertex,uv2_vertex,worldpos_vertex,background_vert:vertex$g,background_frag:fragment$g,cube_vert:vertex$f,cube_frag:fragment$f,depth_vert:vertex$e,depth_frag:fragment$e,distanceRGBA_vert:vertex$d,distanceRGBA_frag:fragment$d,equirect_vert:vertex$c,equirect_frag:fragment$c,linedashed_vert:vertex$b,linedashed_frag:fragment$b,meshbasic_vert:vertex$a,meshbasic_frag:fragment$a,meshlambert_vert:vertex$9,meshlambert_frag:fragment$9,meshmatcap_vert:vertex$8,meshmatcap_frag:fragment$8,meshnormal_vert:vertex$7,meshnormal_frag:fragment$7,meshphong_vert:vertex$6,meshphong_frag:fragment$6,meshphysical_vert:vertex$5,meshphysical_frag:fragment$5,meshtoon_vert:vertex$4,meshtoon_frag:fragment$4,points_vert:vertex$3,points_frag:fragment$3,shadow_vert:vertex$2,shadow_frag:fragment$2,sprite_vert:vertex$1,sprite_frag:fragment$1},UniformsLib={common:{diffuse:{value:new Color$1(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Matrix3},uv2Transform:{value:new Matrix3},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color$1(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color$1(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color$1(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Matrix3}}},ShaderLib={basic:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.fog]),vertexShader:ShaderChunk.meshbasic_vert,fragmentShader:ShaderChunk.meshbasic_frag},lambert:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$1(0)}}]),vertexShader:ShaderChunk.meshlambert_vert,fragmentShader:ShaderChunk.meshlambert_frag},phong:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.specularmap,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$1(0)},specular:{value:new Color$1(1118481)},shininess:{value:30}}]),vertexShader:ShaderChunk.meshphong_vert,fragmentShader:ShaderChunk.meshphong_frag},standard:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.envmap,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.roughnessmap,UniformsLib.metalnessmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$1(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag},toon:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.aomap,UniformsLib.lightmap,UniformsLib.emissivemap,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.gradientmap,UniformsLib.fog,UniformsLib.lights,{emissive:{value:new Color$1(0)}}]),vertexShader:ShaderChunk.meshtoon_vert,fragmentShader:ShaderChunk.meshtoon_frag},matcap:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,UniformsLib.fog,{matcap:{value:null}}]),vertexShader:ShaderChunk.meshmatcap_vert,fragmentShader:ShaderChunk.meshmatcap_frag},points:{uniforms:mergeUniforms([UniformsLib.points,UniformsLib.fog]),vertexShader:ShaderChunk.points_vert,fragmentShader:ShaderChunk.points_frag},dashed:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:ShaderChunk.linedashed_vert,fragmentShader:ShaderChunk.linedashed_frag},depth:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap]),vertexShader:ShaderChunk.depth_vert,fragmentShader:ShaderChunk.depth_frag},normal:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.bumpmap,UniformsLib.normalmap,UniformsLib.displacementmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.meshnormal_vert,fragmentShader:ShaderChunk.meshnormal_frag},sprite:{uniforms:mergeUniforms([UniformsLib.sprite,UniformsLib.fog]),vertexShader:ShaderChunk.sprite_vert,fragmentShader:ShaderChunk.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null}},vertexShader:ShaderChunk.background_vert,fragmentShader:ShaderChunk.background_frag},cube:{uniforms:mergeUniforms([UniformsLib.envmap,{opacity:{value:1}}]),vertexShader:ShaderChunk.cube_vert,fragmentShader:ShaderChunk.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:ShaderChunk.equirect_vert,fragmentShader:ShaderChunk.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([UniformsLib.common,UniformsLib.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:ShaderChunk.distanceRGBA_vert,fragmentShader:ShaderChunk.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([UniformsLib.lights,UniformsLib.fog,{color:{value:new Color$1(0)},opacity:{value:1}}]),vertexShader:ShaderChunk.shadow_vert,fragmentShader:ShaderChunk.shadow_frag}};ShaderLib.physical={uniforms:mergeUniforms([ShaderLib.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new Color$1(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Color$1(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Color$1(1,1,1)},specularColorMap:{value:null}}]),vertexShader:ShaderChunk.meshphysical_vert,fragmentShader:ShaderChunk.meshphysical_frag};function WebGLBackground(tt,et,nt,rt,it,ot){const at=new Color$1(0);let st=it===!0?0:1,lt,ct,ut=null,ht=0,dt=null;function pt(gt,yt){let bt=!1,wt=yt.isScene===!0?yt.background:null;wt&&wt.isTexture&&(wt=et.get(wt));const vt=tt.xr,kt=vt.getSession&&vt.getSession();kt&&kt.environmentBlendMode==="additive"&&(wt=null),wt===null?mt(at,st):wt&&wt.isColor&&(mt(wt,1),bt=!0),(tt.autoClear||bt)&&tt.clear(tt.autoClearColor,tt.autoClearDepth,tt.autoClearStencil),wt&&(wt.isCubeTexture||wt.mapping===CubeUVReflectionMapping)?(ct===void 0&&(ct=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(ShaderLib.cube.uniforms),vertexShader:ShaderLib.cube.vertexShader,fragmentShader:ShaderLib.cube.fragmentShader,side:BackSide,depthTest:!1,depthWrite:!1,fog:!1})),ct.geometry.deleteAttribute("normal"),ct.geometry.deleteAttribute("uv"),ct.onBeforeRender=function(St,Et,At){this.matrixWorld.copyPosition(At.matrixWorld)},Object.defineProperty(ct.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),rt.update(ct)),ct.material.uniforms.envMap.value=wt,ct.material.uniforms.flipEnvMap.value=wt.isCubeTexture&&wt.isRenderTargetTexture===!1?-1:1,(ut!==wt||ht!==wt.version||dt!==tt.toneMapping)&&(ct.material.needsUpdate=!0,ut=wt,ht=wt.version,dt=tt.toneMapping),ct.layers.enableAll(),gt.unshift(ct,ct.geometry,ct.material,0,0,null)):wt&&wt.isTexture&&(lt===void 0&&(lt=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(ShaderLib.background.uniforms),vertexShader:ShaderLib.background.vertexShader,fragmentShader:ShaderLib.background.fragmentShader,side:FrontSide,depthTest:!1,depthWrite:!1,fog:!1})),lt.geometry.deleteAttribute("normal"),Object.defineProperty(lt.material,"map",{get:function(){return this.uniforms.t2D.value}}),rt.update(lt)),lt.material.uniforms.t2D.value=wt,wt.matrixAutoUpdate===!0&&wt.updateMatrix(),lt.material.uniforms.uvTransform.value.copy(wt.matrix),(ut!==wt||ht!==wt.version||dt!==tt.toneMapping)&&(lt.material.needsUpdate=!0,ut=wt,ht=wt.version,dt=tt.toneMapping),lt.layers.enableAll(),gt.unshift(lt,lt.geometry,lt.material,0,0,null))}function mt(gt,yt){nt.buffers.color.setClear(gt.r,gt.g,gt.b,yt,ot)}return{getClearColor:function(){return at},setClearColor:function(gt,yt=1){at.set(gt),st=yt,mt(at,st)},getClearAlpha:function(){return st},setClearAlpha:function(gt){st=gt,mt(at,st)},render:pt}}function WebGLBindingStates(tt,et,nt,rt){const it=tt.getParameter(34921),ot=rt.isWebGL2?null:et.get("OES_vertex_array_object"),at=rt.isWebGL2||ot!==null,st={},lt=yt(null);let ct=lt,ut=!1;function ht(xt,It,Ot,zt,Ut){let Wt=!1;if(at){const Ft=gt(zt,Ot,It);ct!==Ft&&(ct=Ft,pt(ct.object)),Wt=bt(xt,zt,Ot,Ut),Wt&&wt(xt,zt,Ot,Ut)}else{const Ft=It.wireframe===!0;(ct.geometry!==zt.id||ct.program!==Ot.id||ct.wireframe!==Ft)&&(ct.geometry=zt.id,ct.program=Ot.id,ct.wireframe=Ft,Wt=!0)}Ut!==null&&nt.update(Ut,34963),(Wt||ut)&&(ut=!1,Tt(xt,It,Ot,zt),Ut!==null&&tt.bindBuffer(34963,nt.get(Ut).buffer))}function dt(){return rt.isWebGL2?tt.createVertexArray():ot.createVertexArrayOES()}function pt(xt){return rt.isWebGL2?tt.bindVertexArray(xt):ot.bindVertexArrayOES(xt)}function mt(xt){return rt.isWebGL2?tt.deleteVertexArray(xt):ot.deleteVertexArrayOES(xt)}function gt(xt,It,Ot){const zt=Ot.wireframe===!0;let Ut=st[xt.id];Ut===void 0&&(Ut={},st[xt.id]=Ut);let Wt=Ut[It.id];Wt===void 0&&(Wt={},Ut[It.id]=Wt);let Ft=Wt[zt];return Ft===void 0&&(Ft=yt(dt()),Wt[zt]=Ft),Ft}function yt(xt){const It=[],Ot=[],zt=[];for(let Ut=0;Ut=0){const Jt=Ut[Ct];let nn=Wt[Ct];if(nn===void 0&&(Ct==="instanceMatrix"&&xt.instanceMatrix&&(nn=xt.instanceMatrix),Ct==="instanceColor"&&xt.instanceColor&&(nn=xt.instanceColor)),Jt===void 0||Jt.attribute!==nn||nn&&Jt.data!==nn.data)return!0;Ft++}return ct.attributesNum!==Ft||ct.index!==zt}function wt(xt,It,Ot,zt){const Ut={},Wt=It.attributes;let Ft=0;const Nt=Ot.getAttributes();for(const Ct in Nt)if(Nt[Ct].location>=0){let Jt=Wt[Ct];Jt===void 0&&(Ct==="instanceMatrix"&&xt.instanceMatrix&&(Jt=xt.instanceMatrix),Ct==="instanceColor"&&xt.instanceColor&&(Jt=xt.instanceColor));const nn={};nn.attribute=Jt,Jt&&Jt.data&&(nn.data=Jt.data),Ut[Ct]=nn,Ft++}ct.attributes=Ut,ct.attributesNum=Ft,ct.index=zt}function vt(){const xt=ct.newAttributes;for(let It=0,Ot=xt.length;It=0){let Ht=Ut[Nt];if(Ht===void 0&&(Nt==="instanceMatrix"&&xt.instanceMatrix&&(Ht=xt.instanceMatrix),Nt==="instanceColor"&&xt.instanceColor&&(Ht=xt.instanceColor)),Ht!==void 0){const Jt=Ht.normalized,nn=Ht.itemSize,Yt=nt.get(Ht);if(Yt===void 0)continue;const fn=Yt.buffer,cn=Yt.type,_n=Yt.bytesPerElement;if(Ht.isInterleavedBufferAttribute){const En=Ht.data,an=En.stride,en=Ht.offset;if(En.isInstancedInterleavedBuffer){for(let Tn=0;Tn0&&tt.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";At="mediump"}return At==="mediump"&&tt.getShaderPrecisionFormat(35633,36337).precision>0&&tt.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const at=typeof WebGL2RenderingContext<"u"&&tt instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext<"u"&&tt instanceof WebGL2ComputeRenderingContext;let st=nt.precision!==void 0?nt.precision:"highp";const lt=ot(st);lt!==st&&(console.warn("THREE.WebGLRenderer:",st,"not supported, using",lt,"instead."),st=lt);const ct=at||et.has("WEBGL_draw_buffers"),ut=nt.logarithmicDepthBuffer===!0,ht=tt.getParameter(34930),dt=tt.getParameter(35660),pt=tt.getParameter(3379),mt=tt.getParameter(34076),gt=tt.getParameter(34921),yt=tt.getParameter(36347),bt=tt.getParameter(36348),wt=tt.getParameter(36349),vt=dt>0,kt=at||et.has("OES_texture_float"),St=vt&&kt,Et=at?tt.getParameter(36183):0;return{isWebGL2:at,drawBuffers:ct,getMaxAnisotropy:it,getMaxPrecision:ot,precision:st,logarithmicDepthBuffer:ut,maxTextures:ht,maxVertexTextures:dt,maxTextureSize:pt,maxCubemapSize:mt,maxAttributes:gt,maxVertexUniforms:yt,maxVaryings:bt,maxFragmentUniforms:wt,vertexTextures:vt,floatFragmentTextures:kt,floatVertexTextures:St,maxSamples:Et}}function WebGLClipping(tt){const et=this;let nt=null,rt=0,it=!1,ot=!1;const at=new Plane,st=new Matrix3,lt={value:null,needsUpdate:!1};this.uniform=lt,this.numPlanes=0,this.numIntersection=0,this.init=function(ht,dt,pt){const mt=ht.length!==0||dt||rt!==0||it;return it=dt,nt=ut(ht,pt,0),rt=ht.length,mt},this.beginShadows=function(){ot=!0,ut(null)},this.endShadows=function(){ot=!1,ct()},this.setState=function(ht,dt,pt){const mt=ht.clippingPlanes,gt=ht.clipIntersection,yt=ht.clipShadows,bt=tt.get(ht);if(!it||mt===null||mt.length===0||ot&&!yt)ot?ut(null):ct();else{const wt=ot?0:rt,vt=wt*4;let kt=bt.clippingState||null;lt.value=kt,kt=ut(mt,dt,vt,pt);for(let St=0;St!==vt;++St)kt[St]=nt[St];bt.clippingState=kt,this.numIntersection=gt?this.numPlanes:0,this.numPlanes+=wt}};function ct(){lt.value!==nt&&(lt.value=nt,lt.needsUpdate=rt>0),et.numPlanes=rt,et.numIntersection=0}function ut(ht,dt,pt,mt){const gt=ht!==null?ht.length:0;let yt=null;if(gt!==0){if(yt=lt.value,mt!==!0||yt===null){const bt=pt+gt*4,wt=dt.matrixWorldInverse;st.getNormalMatrix(wt),(yt===null||yt.length0){const ct=new WebGLCubeRenderTarget(lt.height/2);return ct.fromEquirectangularTexture(tt,at),et.set(at,ct),at.addEventListener("dispose",it),nt(ct.texture,at.mapping)}else return null}}return at}function it(at){const st=at.target;st.removeEventListener("dispose",it);const lt=et.get(st);lt!==void 0&&(et.delete(st),lt.dispose())}function ot(){et=new WeakMap}return{get:rt,dispose:ot}}class OrthographicCamera extends Camera{constructor(et=-1,nt=1,rt=1,it=-1,ot=.1,at=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=et,this.right=nt,this.top=rt,this.bottom=it,this.near=ot,this.far=at,this.updateProjectionMatrix()}copy(et,nt){return super.copy(et,nt),this.left=et.left,this.right=et.right,this.top=et.top,this.bottom=et.bottom,this.near=et.near,this.far=et.far,this.zoom=et.zoom,this.view=et.view===null?null:Object.assign({},et.view),this}setViewOffset(et,nt,rt,it,ot,at){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=et,this.view.fullHeight=nt,this.view.offsetX=rt,this.view.offsetY=it,this.view.width=ot,this.view.height=at,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const et=(this.right-this.left)/(2*this.zoom),nt=(this.top-this.bottom)/(2*this.zoom),rt=(this.right+this.left)/2,it=(this.top+this.bottom)/2;let ot=rt-et,at=rt+et,st=it+nt,lt=it-nt;if(this.view!==null&&this.view.enabled){const ct=(this.right-this.left)/this.view.fullWidth/this.zoom,ut=(this.top-this.bottom)/this.view.fullHeight/this.zoom;ot+=ct*this.view.offsetX,at=ot+ct*this.view.width,st-=ut*this.view.offsetY,lt=st-ut*this.view.height}this.projectionMatrix.makeOrthographic(ot,at,st,lt,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(et){const nt=super.toJSON(et);return nt.object.zoom=this.zoom,nt.object.left=this.left,nt.object.right=this.right,nt.object.top=this.top,nt.object.bottom=this.bottom,nt.object.near=this.near,nt.object.far=this.far,this.view!==null&&(nt.object.view=Object.assign({},this.view)),nt}}const LOD_MIN=4,EXTRA_LOD_SIGMA=[.125,.215,.35,.446,.526,.582],MAX_SAMPLES=20,_flatCamera=new OrthographicCamera,_clearColor=new Color$1;let _oldTarget=null;const PHI=(1+Math.sqrt(5))/2,INV_PHI=1/PHI,_axisDirections=[new Vector3(1,1,1),new Vector3(-1,1,1),new Vector3(1,1,-1),new Vector3(-1,1,-1),new Vector3(0,PHI,INV_PHI),new Vector3(0,PHI,-INV_PHI),new Vector3(INV_PHI,0,PHI),new Vector3(-INV_PHI,0,PHI),new Vector3(PHI,INV_PHI,0),new Vector3(-PHI,INV_PHI,0)];class PMREMGenerator{constructor(et){this._renderer=et,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(et,nt=0,rt=.1,it=100){_oldTarget=this._renderer.getRenderTarget(),this._setSize(256);const ot=this._allocateTargets();return ot.depthBuffer=!0,this._sceneToCubeUV(et,rt,it,ot),nt>0&&this._blur(ot,0,0,nt),this._applyPMREM(ot),this._cleanup(ot),ot}fromEquirectangular(et,nt=null){return this._fromTexture(et,nt)}fromCubemap(et,nt=null){return this._fromTexture(et,nt)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(et){this._lodMax=Math.floor(Math.log2(et)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let et=0;et2?vt:0,vt,vt),ut.setRenderTarget(it),gt&&ut.render(mt,st),ut.render(et,st)}mt.geometry.dispose(),mt.material.dispose(),ut.toneMapping=dt,ut.autoClear=ht,et.background=yt}_textureToCubeUV(et,nt){const rt=this._renderer,it=et.mapping===CubeReflectionMapping||et.mapping===CubeRefractionMapping;it?(this._cubemapMaterial===null&&(this._cubemapMaterial=_getCubemapMaterial()),this._cubemapMaterial.uniforms.flipEnvMap.value=et.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=_getEquirectMaterial());const ot=it?this._cubemapMaterial:this._equirectMaterial,at=new Mesh(this._lodPlanes[0],ot),st=ot.uniforms;st.envMap.value=et;const lt=this._cubeSize;_setViewport(nt,0,0,3*lt,2*lt),rt.setRenderTarget(nt),rt.render(at,_flatCamera)}_applyPMREM(et){const nt=this._renderer,rt=nt.autoClear;nt.autoClear=!1;for(let it=1;itMAX_SAMPLES&&console.warn(`sigmaRadians, ${ot}, is too large and will clip, as it requested ${yt} samples when the maximum is set to ${MAX_SAMPLES}`);const bt=[];let wt=0;for(let At=0;Atvt-LOD_MIN?it-vt+LOD_MIN:0),Et=4*(this._cubeSize-kt);_setViewport(nt,St,Et,3*kt,2*kt),lt.setRenderTarget(nt),lt.render(ht,_flatCamera)}}function _createPlanes(tt){const et=[],nt=[],rt=[];let it=tt;const ot=tt-LOD_MIN+1+EXTRA_LOD_SIGMA.length;for(let at=0;attt-LOD_MIN?lt=EXTRA_LOD_SIGMA[at-tt+LOD_MIN-1]:at===0&&(lt=0),rt.push(lt);const ct=1/(st-2),ut=-ct,ht=1+ct,dt=[ut,ut,ht,ut,ht,ht,ut,ut,ht,ht,ut,ht],pt=6,mt=6,gt=3,yt=2,bt=1,wt=new Float32Array(gt*mt*pt),vt=new Float32Array(yt*mt*pt),kt=new Float32Array(bt*mt*pt);for(let Et=0;Et2?0:-1,Mt=[At,Tt,0,At+2/3,Tt,0,At+2/3,Tt+1,0,At,Tt,0,At+2/3,Tt+1,0,At,Tt+1,0];wt.set(Mt,gt*mt*Et),vt.set(dt,yt*mt*Et);const Lt=[Et,Et,Et,Et,Et,Et];kt.set(Lt,bt*mt*Et)}const St=new BufferGeometry;St.setAttribute("position",new BufferAttribute(wt,gt)),St.setAttribute("uv",new BufferAttribute(vt,yt)),St.setAttribute("faceIndex",new BufferAttribute(kt,bt)),et.push(St),it>LOD_MIN&&it--}return{lodPlanes:et,sizeLods:nt,sigmas:rt}}function _createRenderTarget(tt,et,nt){const rt=new WebGLRenderTarget(tt,et,nt);return rt.texture.mapping=CubeUVReflectionMapping,rt.texture.name="PMREM.cubeUv",rt.scissorTest=!0,rt}function _setViewport(tt,et,nt,rt,it){tt.viewport.set(et,nt,rt,it),tt.scissor.set(et,nt,rt,it)}function _getBlurShader(tt,et,nt){const rt=new Float32Array(MAX_SAMPLES),it=new Vector3(0,1,0);return new ShaderMaterial({name:"SphericalGaussianBlur",defines:{n:MAX_SAMPLES,CUBEUV_TEXEL_WIDTH:1/et,CUBEUV_TEXEL_HEIGHT:1/nt,CUBEUV_MAX_MIP:`${tt}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:rt},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:it}},vertexShader:_getCommonVertexShader(),fragmentShader:` precision mediump float; precision mediump int; @@ -3624,7 +3624,7 @@ void main() { gl_Position = vec4( position, 1.0 ); } - `}function WebGLCubeUVMaps(tt){let et=new WeakMap,nt=null;function rt(st){if(st&&st.isTexture){const lt=st.mapping,ct=lt===EquirectangularReflectionMapping||lt===EquirectangularRefractionMapping,ut=lt===CubeReflectionMapping||lt===CubeRefractionMapping;if(ct||ut)if(st.isRenderTargetTexture&&st.needsPMREMUpdate===!0){st.needsPMREMUpdate=!1;let ht=et.get(st);return nt===null&&(nt=new PMREMGenerator(tt)),ht=ct?nt.fromEquirectangular(st,ht):nt.fromCubemap(st,ht),et.set(st,ht),ht.texture}else{if(et.has(st))return et.get(st).texture;{const ht=st.image;if(ct&&ht&&ht.height>0||ut&&ht&&it(ht)){nt===null&&(nt=new PMREMGenerator(tt));const dt=ct?nt.fromEquirectangular(st):nt.fromCubemap(st);return et.set(st,dt),st.addEventListener("dispose",ot),dt.texture}else return null}}}return st}function it(st){let lt=0;const ct=6;for(let ut=0;utet.maxTextureSize&&(Rt=Math.ceil(jt/et.maxTextureSize),jt=et.maxTextureSize);const $t=new Float32Array(jt*Rt*4*yt),xt=new DataArrayTexture($t,jt,Rt,yt);xt.type=FloatType,xt.needsUpdate=!0;const It=Lt*4;for(let zt=0;zt0)return tt;const it=et*nt;let ot=arrayCacheF32[it];if(ot===void 0&&(ot=new Float32Array(it),arrayCacheF32[it]=ot),et!==0){rt.toArray(ot,0);for(let at=1,st=0;at!==et;++at)st+=nt,tt[at].toArray(ot,st)}return ot}function arraysEqual(tt,et){if(tt.length!==et.length)return!1;for(let nt=0,rt=tt.length;nt0||ut&&ht&&it(ht)){nt===null&&(nt=new PMREMGenerator(tt));const dt=ct?nt.fromEquirectangular(st):nt.fromCubemap(st);return et.set(st,dt),st.addEventListener("dispose",ot),dt.texture}else return null}}}return st}function it(st){let lt=0;const ct=6;for(let ut=0;utet.maxTextureSize&&(Rt=Math.ceil(jt/et.maxTextureSize),jt=et.maxTextureSize);const $t=new Float32Array(jt*Rt*4*yt),xt=new DataArrayTexture($t,jt,Rt,yt);xt.type=FloatType,xt.needsUpdate=!0;const It=Lt*4;for(let zt=0;zt0)return tt;const it=et*nt;let ot=arrayCacheF32[it];if(ot===void 0&&(ot=new Float32Array(it),arrayCacheF32[it]=ot),et!==0){rt.toArray(ot,0);for(let at=1,st=0;at!==et;++at)st+=nt,tt[at].toArray(ot,st)}return ot}function arraysEqual(tt,et){if(tt.length!==et.length)return!1;for(let nt=0,rt=tt.length;nt":" "} ${st}: ${nt[at]}`)}return rt.join(` `)}function getEncodingComponents(tt){switch(tt){case LinearEncoding:return["Linear","( value )"];case sRGBEncoding:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",tt),["Linear","( value )"]}}function getShaderErrors(tt,et,nt){const rt=tt.getShaderParameter(et,35713),it=tt.getShaderInfoLog(et).trim();if(rt&&it==="")return"";const ot=/ERROR: 0:(\d+)/.exec(it);if(ot){const at=parseInt(ot[1]);return nt.toUpperCase()+` @@ -3650,11 +3650,11 @@ precision `+tt.precision+" int;";return tt.precision==="highp"?et+=` `)+` `+yt,bt=["#define varying in",nt.glslVersion===GLSL3?"":"layout(location = 0) out highp vec4 pc_fragColor;",nt.glslVersion===GLSL3?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` `)+` -`+bt);const vt=wt+yt+at,kt=wt+bt+st,St=WebGLShader(it,35633,vt),Tt=WebGLShader(it,35632,kt);if(it.attachShader(gt,St),it.attachShader(gt,Tt),nt.index0AttributeName!==void 0?it.bindAttribLocation(gt,0,nt.index0AttributeName):nt.morphTargets===!0&&it.bindAttribLocation(gt,0,"position"),it.linkProgram(gt),tt.debug.checkShaderErrors){const Mt=it.getProgramInfoLog(gt).trim(),Lt=it.getShaderInfoLog(St).trim(),jt=it.getShaderInfoLog(Tt).trim();let Rt=!0,$t=!0;if(it.getProgramParameter(gt,35714)===!1){Rt=!1;const xt=getShaderErrors(it,St,"vertex"),It=getShaderErrors(it,Tt,"fragment");console.error("THREE.WebGLProgram: Shader Error "+it.getError()+" - VALIDATE_STATUS "+it.getProgramParameter(gt,35715)+` +`+bt);const vt=wt+yt+at,kt=wt+bt+st,St=WebGLShader(it,35633,vt),Et=WebGLShader(it,35632,kt);if(it.attachShader(gt,St),it.attachShader(gt,Et),nt.index0AttributeName!==void 0?it.bindAttribLocation(gt,0,nt.index0AttributeName):nt.morphTargets===!0&&it.bindAttribLocation(gt,0,"position"),it.linkProgram(gt),tt.debug.checkShaderErrors){const Mt=it.getProgramInfoLog(gt).trim(),Lt=it.getShaderInfoLog(St).trim(),jt=it.getShaderInfoLog(Et).trim();let Rt=!0,$t=!0;if(it.getProgramParameter(gt,35714)===!1){Rt=!1;const xt=getShaderErrors(it,St,"vertex"),It=getShaderErrors(it,Et,"fragment");console.error("THREE.WebGLProgram: Shader Error "+it.getError()+" - VALIDATE_STATUS "+it.getProgramParameter(gt,35715)+` Program Info Log: `+Mt+` `+xt+` -`+It)}else Mt!==""?console.warn("THREE.WebGLProgram: Program Info Log:",Mt):(Lt===""||jt==="")&&($t=!1);$t&&(this.diagnostics={runnable:Rt,programLog:Mt,vertexShader:{log:Lt,prefix:yt},fragmentShader:{log:jt,prefix:bt}})}it.deleteShader(St),it.deleteShader(Tt);let At;this.getUniforms=function(){return At===void 0&&(At=new WebGLUniforms(it,gt)),At};let Et;return this.getAttributes=function(){return Et===void 0&&(Et=fetchAttributeLocations(it,gt)),Et},this.destroy=function(){rt.releaseStatesOfProgram(this),it.deleteProgram(gt),this.program=void 0},this.name=nt.shaderName,this.id=programIdCount++,this.cacheKey=et,this.usedTimes=1,this.program=gt,this.vertexShader=St,this.fragmentShader=Tt,this}let _id=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(et){const nt=et.vertexShader,rt=et.fragmentShader,it=this._getShaderStage(nt),ot=this._getShaderStage(rt),at=this._getShaderCacheForMaterial(et);return at.has(it)===!1&&(at.add(it),it.usedTimes++),at.has(ot)===!1&&(at.add(ot),ot.usedTimes++),this}remove(et){const nt=this.materialCache.get(et);for(const rt of nt)rt.usedTimes--,rt.usedTimes===0&&this.shaderCache.delete(rt.code);return this.materialCache.delete(et),this}getVertexShaderID(et){return this._getShaderStage(et.vertexShader).id}getFragmentShaderID(et){return this._getShaderStage(et.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(et){const nt=this.materialCache;return nt.has(et)===!1&&nt.set(et,new Set),nt.get(et)}_getShaderStage(et){const nt=this.shaderCache;if(nt.has(et)===!1){const rt=new WebGLShaderStage(et);nt.set(et,rt)}return nt.get(et)}}class WebGLShaderStage{constructor(et){this.id=_id++,this.code=et,this.usedTimes=0}}function WebGLPrograms(tt,et,nt,rt,it,ot,at){const st=new Layers,lt=new WebGLShaderCache,ct=[],ut=it.isWebGL2,ht=it.logarithmicDepthBuffer,dt=it.vertexTextures;let pt=it.precision;const mt={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function gt(Et,Mt,Lt,jt,Rt){const $t=jt.fog,xt=Rt.geometry,It=Et.isMeshStandardMaterial?jt.environment:null,Ot=(Et.isMeshStandardMaterial?nt:et).get(Et.envMap||It),zt=Ot&&Ot.mapping===CubeUVReflectionMapping?Ot.image.height:null,Ut=mt[Et.type];Et.precision!==null&&(pt=it.getMaxPrecision(Et.precision),pt!==Et.precision&&console.warn("THREE.WebGLProgram.getParameters:",Et.precision,"not supported, using",pt,"instead."));const Wt=xt.morphAttributes.position||xt.morphAttributes.normal||xt.morphAttributes.color,Ft=Wt!==void 0?Wt.length:0;let Nt=0;xt.morphAttributes.position!==void 0&&(Nt=1),xt.morphAttributes.normal!==void 0&&(Nt=2),xt.morphAttributes.color!==void 0&&(Nt=3);let Ct,Ht,Jt,nn;if(Ut){const an=ShaderLib[Ut];Ct=an.vertexShader,Ht=an.fragmentShader}else Ct=Et.vertexShader,Ht=Et.fragmentShader,lt.update(Et),Jt=lt.getVertexShaderID(Et),nn=lt.getFragmentShaderID(Et);const Yt=tt.getRenderTarget(),fn=Et.alphaTest>0,cn=Et.clearcoat>0,_n=Et.iridescence>0;return{isWebGL2:ut,shaderID:Ut,shaderName:Et.type,vertexShader:Ct,fragmentShader:Ht,defines:Et.defines,customVertexShaderID:Jt,customFragmentShaderID:nn,isRawShaderMaterial:Et.isRawShaderMaterial===!0,glslVersion:Et.glslVersion,precision:pt,instancing:Rt.isInstancedMesh===!0,instancingColor:Rt.isInstancedMesh===!0&&Rt.instanceColor!==null,supportsVertexTextures:dt,outputEncoding:Yt===null?tt.outputEncoding:Yt.isXRRenderTarget===!0?Yt.texture.encoding:LinearEncoding,map:!!Et.map,matcap:!!Et.matcap,envMap:!!Ot,envMapMode:Ot&&Ot.mapping,envMapCubeUVHeight:zt,lightMap:!!Et.lightMap,aoMap:!!Et.aoMap,emissiveMap:!!Et.emissiveMap,bumpMap:!!Et.bumpMap,normalMap:!!Et.normalMap,objectSpaceNormalMap:Et.normalMapType===ObjectSpaceNormalMap,tangentSpaceNormalMap:Et.normalMapType===TangentSpaceNormalMap,decodeVideoTexture:!!Et.map&&Et.map.isVideoTexture===!0&&Et.map.encoding===sRGBEncoding,clearcoat:cn,clearcoatMap:cn&&!!Et.clearcoatMap,clearcoatRoughnessMap:cn&&!!Et.clearcoatRoughnessMap,clearcoatNormalMap:cn&&!!Et.clearcoatNormalMap,iridescence:_n,iridescenceMap:_n&&!!Et.iridescenceMap,iridescenceThicknessMap:_n&&!!Et.iridescenceThicknessMap,displacementMap:!!Et.displacementMap,roughnessMap:!!Et.roughnessMap,metalnessMap:!!Et.metalnessMap,specularMap:!!Et.specularMap,specularIntensityMap:!!Et.specularIntensityMap,specularColorMap:!!Et.specularColorMap,opaque:Et.transparent===!1&&Et.blending===NormalBlending,alphaMap:!!Et.alphaMap,alphaTest:fn,gradientMap:!!Et.gradientMap,sheen:Et.sheen>0,sheenColorMap:!!Et.sheenColorMap,sheenRoughnessMap:!!Et.sheenRoughnessMap,transmission:Et.transmission>0,transmissionMap:!!Et.transmissionMap,thicknessMap:!!Et.thicknessMap,combine:Et.combine,vertexTangents:!!Et.normalMap&&!!xt.attributes.tangent,vertexColors:Et.vertexColors,vertexAlphas:Et.vertexColors===!0&&!!xt.attributes.color&&xt.attributes.color.itemSize===4,vertexUvs:!!Et.map||!!Et.bumpMap||!!Et.normalMap||!!Et.specularMap||!!Et.alphaMap||!!Et.emissiveMap||!!Et.roughnessMap||!!Et.metalnessMap||!!Et.clearcoatMap||!!Et.clearcoatRoughnessMap||!!Et.clearcoatNormalMap||!!Et.iridescenceMap||!!Et.iridescenceThicknessMap||!!Et.displacementMap||!!Et.transmissionMap||!!Et.thicknessMap||!!Et.specularIntensityMap||!!Et.specularColorMap||!!Et.sheenColorMap||!!Et.sheenRoughnessMap,uvsVertexOnly:!(Et.map||Et.bumpMap||Et.normalMap||Et.specularMap||Et.alphaMap||Et.emissiveMap||Et.roughnessMap||Et.metalnessMap||Et.clearcoatNormalMap||Et.iridescenceMap||Et.iridescenceThicknessMap||Et.transmission>0||Et.transmissionMap||Et.thicknessMap||Et.specularIntensityMap||Et.specularColorMap||Et.sheen>0||Et.sheenColorMap||Et.sheenRoughnessMap)&&!!Et.displacementMap,fog:!!$t,useFog:Et.fog===!0,fogExp2:$t&&$t.isFogExp2,flatShading:!!Et.flatShading,sizeAttenuation:Et.sizeAttenuation,logarithmicDepthBuffer:ht,skinning:Rt.isSkinnedMesh===!0,morphTargets:xt.morphAttributes.position!==void 0,morphNormals:xt.morphAttributes.normal!==void 0,morphColors:xt.morphAttributes.color!==void 0,morphTargetsCount:Ft,morphTextureStride:Nt,numDirLights:Mt.directional.length,numPointLights:Mt.point.length,numSpotLights:Mt.spot.length,numRectAreaLights:Mt.rectArea.length,numHemiLights:Mt.hemi.length,numDirLightShadows:Mt.directionalShadowMap.length,numPointLightShadows:Mt.pointShadowMap.length,numSpotLightShadows:Mt.spotShadowMap.length,numClippingPlanes:at.numPlanes,numClipIntersection:at.numIntersection,dithering:Et.dithering,shadowMapEnabled:tt.shadowMap.enabled&&Lt.length>0,shadowMapType:tt.shadowMap.type,toneMapping:Et.toneMapped?tt.toneMapping:NoToneMapping,physicallyCorrectLights:tt.physicallyCorrectLights,premultipliedAlpha:Et.premultipliedAlpha,doubleSided:Et.side===DoubleSide,flipSided:Et.side===BackSide,useDepthPacking:!!Et.depthPacking,depthPacking:Et.depthPacking||0,index0AttributeName:Et.index0AttributeName,extensionDerivatives:Et.extensions&&Et.extensions.derivatives,extensionFragDepth:Et.extensions&&Et.extensions.fragDepth,extensionDrawBuffers:Et.extensions&&Et.extensions.drawBuffers,extensionShaderTextureLOD:Et.extensions&&Et.extensions.shaderTextureLOD,rendererExtensionFragDepth:ut||rt.has("EXT_frag_depth"),rendererExtensionDrawBuffers:ut||rt.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:ut||rt.has("EXT_shader_texture_lod"),customProgramCacheKey:Et.customProgramCacheKey()}}function yt(Et){const Mt=[];if(Et.shaderID?Mt.push(Et.shaderID):(Mt.push(Et.customVertexShaderID),Mt.push(Et.customFragmentShaderID)),Et.defines!==void 0)for(const Lt in Et.defines)Mt.push(Lt),Mt.push(Et.defines[Lt]);return Et.isRawShaderMaterial===!1&&(bt(Mt,Et),wt(Mt,Et),Mt.push(tt.outputEncoding)),Mt.push(Et.customProgramCacheKey),Mt.join()}function bt(Et,Mt){Et.push(Mt.precision),Et.push(Mt.outputEncoding),Et.push(Mt.envMapMode),Et.push(Mt.envMapCubeUVHeight),Et.push(Mt.combine),Et.push(Mt.vertexUvs),Et.push(Mt.fogExp2),Et.push(Mt.sizeAttenuation),Et.push(Mt.morphTargetsCount),Et.push(Mt.morphAttributeCount),Et.push(Mt.numDirLights),Et.push(Mt.numPointLights),Et.push(Mt.numSpotLights),Et.push(Mt.numHemiLights),Et.push(Mt.numRectAreaLights),Et.push(Mt.numDirLightShadows),Et.push(Mt.numPointLightShadows),Et.push(Mt.numSpotLightShadows),Et.push(Mt.shadowMapType),Et.push(Mt.toneMapping),Et.push(Mt.numClippingPlanes),Et.push(Mt.numClipIntersection),Et.push(Mt.depthPacking)}function wt(Et,Mt){st.disableAll(),Mt.isWebGL2&&st.enable(0),Mt.supportsVertexTextures&&st.enable(1),Mt.instancing&&st.enable(2),Mt.instancingColor&&st.enable(3),Mt.map&&st.enable(4),Mt.matcap&&st.enable(5),Mt.envMap&&st.enable(6),Mt.lightMap&&st.enable(7),Mt.aoMap&&st.enable(8),Mt.emissiveMap&&st.enable(9),Mt.bumpMap&&st.enable(10),Mt.normalMap&&st.enable(11),Mt.objectSpaceNormalMap&&st.enable(12),Mt.tangentSpaceNormalMap&&st.enable(13),Mt.clearcoat&&st.enable(14),Mt.clearcoatMap&&st.enable(15),Mt.clearcoatRoughnessMap&&st.enable(16),Mt.clearcoatNormalMap&&st.enable(17),Mt.iridescence&&st.enable(18),Mt.iridescenceMap&&st.enable(19),Mt.iridescenceThicknessMap&&st.enable(20),Mt.displacementMap&&st.enable(21),Mt.specularMap&&st.enable(22),Mt.roughnessMap&&st.enable(23),Mt.metalnessMap&&st.enable(24),Mt.gradientMap&&st.enable(25),Mt.alphaMap&&st.enable(26),Mt.alphaTest&&st.enable(27),Mt.vertexColors&&st.enable(28),Mt.vertexAlphas&&st.enable(29),Mt.vertexUvs&&st.enable(30),Mt.vertexTangents&&st.enable(31),Mt.uvsVertexOnly&&st.enable(32),Mt.fog&&st.enable(33),Et.push(st.mask),st.disableAll(),Mt.useFog&&st.enable(0),Mt.flatShading&&st.enable(1),Mt.logarithmicDepthBuffer&&st.enable(2),Mt.skinning&&st.enable(3),Mt.morphTargets&&st.enable(4),Mt.morphNormals&&st.enable(5),Mt.morphColors&&st.enable(6),Mt.premultipliedAlpha&&st.enable(7),Mt.shadowMapEnabled&&st.enable(8),Mt.physicallyCorrectLights&&st.enable(9),Mt.doubleSided&&st.enable(10),Mt.flipSided&&st.enable(11),Mt.useDepthPacking&&st.enable(12),Mt.dithering&&st.enable(13),Mt.specularIntensityMap&&st.enable(14),Mt.specularColorMap&&st.enable(15),Mt.transmission&&st.enable(16),Mt.transmissionMap&&st.enable(17),Mt.thicknessMap&&st.enable(18),Mt.sheen&&st.enable(19),Mt.sheenColorMap&&st.enable(20),Mt.sheenRoughnessMap&&st.enable(21),Mt.decodeVideoTexture&&st.enable(22),Mt.opaque&&st.enable(23),Et.push(st.mask)}function vt(Et){const Mt=mt[Et.type];let Lt;if(Mt){const jt=ShaderLib[Mt];Lt=UniformsUtils.clone(jt.uniforms)}else Lt=Et.uniforms;return Lt}function kt(Et,Mt){let Lt;for(let jt=0,Rt=ct.length;jt0?rt.push(bt):pt.transparent===!0?it.push(bt):nt.push(bt)}function lt(ht,dt,pt,mt,gt,yt){const bt=at(ht,dt,pt,mt,gt,yt);pt.transmission>0?rt.unshift(bt):pt.transparent===!0?it.unshift(bt):nt.unshift(bt)}function ct(ht,dt){nt.length>1&&nt.sort(ht||painterSortStable),rt.length>1&&rt.sort(dt||reversePainterSortStable),it.length>1&&it.sort(dt||reversePainterSortStable)}function ut(){for(let ht=et,dt=tt.length;ht=tt.get(rt).length?(ot=new WebGLRenderList,tt.get(rt).push(ot)):ot=tt.get(rt)[it],ot}function nt(){tt=new WeakMap}return{get:et,dispose:nt}}function UniformsCache(){const tt={};return{get:function(et){if(tt[et.id]!==void 0)return tt[et.id];let nt;switch(et.type){case"DirectionalLight":nt={direction:new Vector3,color:new Color$1};break;case"SpotLight":nt={position:new Vector3,direction:new Vector3,color:new Color$1,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":nt={position:new Vector3,color:new Color$1,distance:0,decay:0};break;case"HemisphereLight":nt={direction:new Vector3,skyColor:new Color$1,groundColor:new Color$1};break;case"RectAreaLight":nt={color:new Color$1,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break}return tt[et.id]=nt,nt}}}function ShadowUniformsCache(){const tt={};return{get:function(et){if(tt[et.id]!==void 0)return tt[et.id];let nt;switch(et.type){case"DirectionalLight":nt={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"SpotLight":nt={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":nt={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3};break}return tt[et.id]=nt,nt}}}let nextVersion=0;function shadowCastingLightsFirst(tt,et){return(et.castShadow?1:0)-(tt.castShadow?1:0)}function WebGLLights(tt,et){const nt=new UniformsCache,rt=ShadowUniformsCache(),it={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let ut=0;ut<9;ut++)it.probe.push(new Vector3);const ot=new Vector3,at=new Matrix4,st=new Matrix4;function lt(ut,ht){let dt=0,pt=0,mt=0;for(let Mt=0;Mt<9;Mt++)it.probe[Mt].set(0,0,0);let gt=0,yt=0,bt=0,wt=0,vt=0,kt=0,St=0,Tt=0;ut.sort(shadowCastingLightsFirst);const At=ht!==!0?Math.PI:1;for(let Mt=0,Lt=ut.length;Mt0&&(et.isWebGL2||tt.has("OES_texture_float_linear")===!0?(it.rectAreaLTC1=UniformsLib.LTC_FLOAT_1,it.rectAreaLTC2=UniformsLib.LTC_FLOAT_2):tt.has("OES_texture_half_float_linear")===!0?(it.rectAreaLTC1=UniformsLib.LTC_HALF_1,it.rectAreaLTC2=UniformsLib.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),it.ambient[0]=dt,it.ambient[1]=pt,it.ambient[2]=mt;const Et=it.hash;(Et.directionalLength!==gt||Et.pointLength!==yt||Et.spotLength!==bt||Et.rectAreaLength!==wt||Et.hemiLength!==vt||Et.numDirectionalShadows!==kt||Et.numPointShadows!==St||Et.numSpotShadows!==Tt)&&(it.directional.length=gt,it.spot.length=bt,it.rectArea.length=wt,it.point.length=yt,it.hemi.length=vt,it.directionalShadow.length=kt,it.directionalShadowMap.length=kt,it.pointShadow.length=St,it.pointShadowMap.length=St,it.spotShadow.length=Tt,it.spotShadowMap.length=Tt,it.directionalShadowMatrix.length=kt,it.pointShadowMatrix.length=St,it.spotShadowMatrix.length=Tt,Et.directionalLength=gt,Et.pointLength=yt,Et.spotLength=bt,Et.rectAreaLength=wt,Et.hemiLength=vt,Et.numDirectionalShadows=kt,Et.numPointShadows=St,Et.numSpotShadows=Tt,it.version=nextVersion++)}function ct(ut,ht){let dt=0,pt=0,mt=0,gt=0,yt=0;const bt=ht.matrixWorldInverse;for(let wt=0,vt=ut.length;wt=nt.get(ot).length?(st=new WebGLRenderState(tt,et),nt.get(ot).push(st)):st=nt.get(ot)[at],st}function it(){nt=new WeakMap}return{get:rt,dispose:it}}class MeshDepthMaterial extends Material{constructor(et){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=BasicDepthPacking,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(et)}copy(et){return super.copy(et),this.depthPacking=et.depthPacking,this.map=et.map,this.alphaMap=et.alphaMap,this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this}}class MeshDistanceMaterial extends Material{constructor(et){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new Vector3,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(et)}copy(et){return super.copy(et),this.referencePosition.copy(et.referencePosition),this.nearDistance=et.nearDistance,this.farDistance=et.farDistance,this.map=et.map,this.alphaMap=et.alphaMap,this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this}}const vertex=`void main() { +`+It)}else Mt!==""?console.warn("THREE.WebGLProgram: Program Info Log:",Mt):(Lt===""||jt==="")&&($t=!1);$t&&(this.diagnostics={runnable:Rt,programLog:Mt,vertexShader:{log:Lt,prefix:yt},fragmentShader:{log:jt,prefix:bt}})}it.deleteShader(St),it.deleteShader(Et);let At;this.getUniforms=function(){return At===void 0&&(At=new WebGLUniforms(it,gt)),At};let Tt;return this.getAttributes=function(){return Tt===void 0&&(Tt=fetchAttributeLocations(it,gt)),Tt},this.destroy=function(){rt.releaseStatesOfProgram(this),it.deleteProgram(gt),this.program=void 0},this.name=nt.shaderName,this.id=programIdCount++,this.cacheKey=et,this.usedTimes=1,this.program=gt,this.vertexShader=St,this.fragmentShader=Et,this}let _id=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(et){const nt=et.vertexShader,rt=et.fragmentShader,it=this._getShaderStage(nt),ot=this._getShaderStage(rt),at=this._getShaderCacheForMaterial(et);return at.has(it)===!1&&(at.add(it),it.usedTimes++),at.has(ot)===!1&&(at.add(ot),ot.usedTimes++),this}remove(et){const nt=this.materialCache.get(et);for(const rt of nt)rt.usedTimes--,rt.usedTimes===0&&this.shaderCache.delete(rt.code);return this.materialCache.delete(et),this}getVertexShaderID(et){return this._getShaderStage(et.vertexShader).id}getFragmentShaderID(et){return this._getShaderStage(et.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(et){const nt=this.materialCache;return nt.has(et)===!1&&nt.set(et,new Set),nt.get(et)}_getShaderStage(et){const nt=this.shaderCache;if(nt.has(et)===!1){const rt=new WebGLShaderStage(et);nt.set(et,rt)}return nt.get(et)}}class WebGLShaderStage{constructor(et){this.id=_id++,this.code=et,this.usedTimes=0}}function WebGLPrograms(tt,et,nt,rt,it,ot,at){const st=new Layers,lt=new WebGLShaderCache,ct=[],ut=it.isWebGL2,ht=it.logarithmicDepthBuffer,dt=it.vertexTextures;let pt=it.precision;const mt={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function gt(Tt,Mt,Lt,jt,Rt){const $t=jt.fog,xt=Rt.geometry,It=Tt.isMeshStandardMaterial?jt.environment:null,Ot=(Tt.isMeshStandardMaterial?nt:et).get(Tt.envMap||It),zt=Ot&&Ot.mapping===CubeUVReflectionMapping?Ot.image.height:null,Ut=mt[Tt.type];Tt.precision!==null&&(pt=it.getMaxPrecision(Tt.precision),pt!==Tt.precision&&console.warn("THREE.WebGLProgram.getParameters:",Tt.precision,"not supported, using",pt,"instead."));const Wt=xt.morphAttributes.position||xt.morphAttributes.normal||xt.morphAttributes.color,Ft=Wt!==void 0?Wt.length:0;let Nt=0;xt.morphAttributes.position!==void 0&&(Nt=1),xt.morphAttributes.normal!==void 0&&(Nt=2),xt.morphAttributes.color!==void 0&&(Nt=3);let Ct,Ht,Jt,nn;if(Ut){const an=ShaderLib[Ut];Ct=an.vertexShader,Ht=an.fragmentShader}else Ct=Tt.vertexShader,Ht=Tt.fragmentShader,lt.update(Tt),Jt=lt.getVertexShaderID(Tt),nn=lt.getFragmentShaderID(Tt);const Yt=tt.getRenderTarget(),fn=Tt.alphaTest>0,cn=Tt.clearcoat>0,_n=Tt.iridescence>0;return{isWebGL2:ut,shaderID:Ut,shaderName:Tt.type,vertexShader:Ct,fragmentShader:Ht,defines:Tt.defines,customVertexShaderID:Jt,customFragmentShaderID:nn,isRawShaderMaterial:Tt.isRawShaderMaterial===!0,glslVersion:Tt.glslVersion,precision:pt,instancing:Rt.isInstancedMesh===!0,instancingColor:Rt.isInstancedMesh===!0&&Rt.instanceColor!==null,supportsVertexTextures:dt,outputEncoding:Yt===null?tt.outputEncoding:Yt.isXRRenderTarget===!0?Yt.texture.encoding:LinearEncoding,map:!!Tt.map,matcap:!!Tt.matcap,envMap:!!Ot,envMapMode:Ot&&Ot.mapping,envMapCubeUVHeight:zt,lightMap:!!Tt.lightMap,aoMap:!!Tt.aoMap,emissiveMap:!!Tt.emissiveMap,bumpMap:!!Tt.bumpMap,normalMap:!!Tt.normalMap,objectSpaceNormalMap:Tt.normalMapType===ObjectSpaceNormalMap,tangentSpaceNormalMap:Tt.normalMapType===TangentSpaceNormalMap,decodeVideoTexture:!!Tt.map&&Tt.map.isVideoTexture===!0&&Tt.map.encoding===sRGBEncoding,clearcoat:cn,clearcoatMap:cn&&!!Tt.clearcoatMap,clearcoatRoughnessMap:cn&&!!Tt.clearcoatRoughnessMap,clearcoatNormalMap:cn&&!!Tt.clearcoatNormalMap,iridescence:_n,iridescenceMap:_n&&!!Tt.iridescenceMap,iridescenceThicknessMap:_n&&!!Tt.iridescenceThicknessMap,displacementMap:!!Tt.displacementMap,roughnessMap:!!Tt.roughnessMap,metalnessMap:!!Tt.metalnessMap,specularMap:!!Tt.specularMap,specularIntensityMap:!!Tt.specularIntensityMap,specularColorMap:!!Tt.specularColorMap,opaque:Tt.transparent===!1&&Tt.blending===NormalBlending,alphaMap:!!Tt.alphaMap,alphaTest:fn,gradientMap:!!Tt.gradientMap,sheen:Tt.sheen>0,sheenColorMap:!!Tt.sheenColorMap,sheenRoughnessMap:!!Tt.sheenRoughnessMap,transmission:Tt.transmission>0,transmissionMap:!!Tt.transmissionMap,thicknessMap:!!Tt.thicknessMap,combine:Tt.combine,vertexTangents:!!Tt.normalMap&&!!xt.attributes.tangent,vertexColors:Tt.vertexColors,vertexAlphas:Tt.vertexColors===!0&&!!xt.attributes.color&&xt.attributes.color.itemSize===4,vertexUvs:!!Tt.map||!!Tt.bumpMap||!!Tt.normalMap||!!Tt.specularMap||!!Tt.alphaMap||!!Tt.emissiveMap||!!Tt.roughnessMap||!!Tt.metalnessMap||!!Tt.clearcoatMap||!!Tt.clearcoatRoughnessMap||!!Tt.clearcoatNormalMap||!!Tt.iridescenceMap||!!Tt.iridescenceThicknessMap||!!Tt.displacementMap||!!Tt.transmissionMap||!!Tt.thicknessMap||!!Tt.specularIntensityMap||!!Tt.specularColorMap||!!Tt.sheenColorMap||!!Tt.sheenRoughnessMap,uvsVertexOnly:!(Tt.map||Tt.bumpMap||Tt.normalMap||Tt.specularMap||Tt.alphaMap||Tt.emissiveMap||Tt.roughnessMap||Tt.metalnessMap||Tt.clearcoatNormalMap||Tt.iridescenceMap||Tt.iridescenceThicknessMap||Tt.transmission>0||Tt.transmissionMap||Tt.thicknessMap||Tt.specularIntensityMap||Tt.specularColorMap||Tt.sheen>0||Tt.sheenColorMap||Tt.sheenRoughnessMap)&&!!Tt.displacementMap,fog:!!$t,useFog:Tt.fog===!0,fogExp2:$t&&$t.isFogExp2,flatShading:!!Tt.flatShading,sizeAttenuation:Tt.sizeAttenuation,logarithmicDepthBuffer:ht,skinning:Rt.isSkinnedMesh===!0,morphTargets:xt.morphAttributes.position!==void 0,morphNormals:xt.morphAttributes.normal!==void 0,morphColors:xt.morphAttributes.color!==void 0,morphTargetsCount:Ft,morphTextureStride:Nt,numDirLights:Mt.directional.length,numPointLights:Mt.point.length,numSpotLights:Mt.spot.length,numRectAreaLights:Mt.rectArea.length,numHemiLights:Mt.hemi.length,numDirLightShadows:Mt.directionalShadowMap.length,numPointLightShadows:Mt.pointShadowMap.length,numSpotLightShadows:Mt.spotShadowMap.length,numClippingPlanes:at.numPlanes,numClipIntersection:at.numIntersection,dithering:Tt.dithering,shadowMapEnabled:tt.shadowMap.enabled&&Lt.length>0,shadowMapType:tt.shadowMap.type,toneMapping:Tt.toneMapped?tt.toneMapping:NoToneMapping,physicallyCorrectLights:tt.physicallyCorrectLights,premultipliedAlpha:Tt.premultipliedAlpha,doubleSided:Tt.side===DoubleSide,flipSided:Tt.side===BackSide,useDepthPacking:!!Tt.depthPacking,depthPacking:Tt.depthPacking||0,index0AttributeName:Tt.index0AttributeName,extensionDerivatives:Tt.extensions&&Tt.extensions.derivatives,extensionFragDepth:Tt.extensions&&Tt.extensions.fragDepth,extensionDrawBuffers:Tt.extensions&&Tt.extensions.drawBuffers,extensionShaderTextureLOD:Tt.extensions&&Tt.extensions.shaderTextureLOD,rendererExtensionFragDepth:ut||rt.has("EXT_frag_depth"),rendererExtensionDrawBuffers:ut||rt.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:ut||rt.has("EXT_shader_texture_lod"),customProgramCacheKey:Tt.customProgramCacheKey()}}function yt(Tt){const Mt=[];if(Tt.shaderID?Mt.push(Tt.shaderID):(Mt.push(Tt.customVertexShaderID),Mt.push(Tt.customFragmentShaderID)),Tt.defines!==void 0)for(const Lt in Tt.defines)Mt.push(Lt),Mt.push(Tt.defines[Lt]);return Tt.isRawShaderMaterial===!1&&(bt(Mt,Tt),wt(Mt,Tt),Mt.push(tt.outputEncoding)),Mt.push(Tt.customProgramCacheKey),Mt.join()}function bt(Tt,Mt){Tt.push(Mt.precision),Tt.push(Mt.outputEncoding),Tt.push(Mt.envMapMode),Tt.push(Mt.envMapCubeUVHeight),Tt.push(Mt.combine),Tt.push(Mt.vertexUvs),Tt.push(Mt.fogExp2),Tt.push(Mt.sizeAttenuation),Tt.push(Mt.morphTargetsCount),Tt.push(Mt.morphAttributeCount),Tt.push(Mt.numDirLights),Tt.push(Mt.numPointLights),Tt.push(Mt.numSpotLights),Tt.push(Mt.numHemiLights),Tt.push(Mt.numRectAreaLights),Tt.push(Mt.numDirLightShadows),Tt.push(Mt.numPointLightShadows),Tt.push(Mt.numSpotLightShadows),Tt.push(Mt.shadowMapType),Tt.push(Mt.toneMapping),Tt.push(Mt.numClippingPlanes),Tt.push(Mt.numClipIntersection),Tt.push(Mt.depthPacking)}function wt(Tt,Mt){st.disableAll(),Mt.isWebGL2&&st.enable(0),Mt.supportsVertexTextures&&st.enable(1),Mt.instancing&&st.enable(2),Mt.instancingColor&&st.enable(3),Mt.map&&st.enable(4),Mt.matcap&&st.enable(5),Mt.envMap&&st.enable(6),Mt.lightMap&&st.enable(7),Mt.aoMap&&st.enable(8),Mt.emissiveMap&&st.enable(9),Mt.bumpMap&&st.enable(10),Mt.normalMap&&st.enable(11),Mt.objectSpaceNormalMap&&st.enable(12),Mt.tangentSpaceNormalMap&&st.enable(13),Mt.clearcoat&&st.enable(14),Mt.clearcoatMap&&st.enable(15),Mt.clearcoatRoughnessMap&&st.enable(16),Mt.clearcoatNormalMap&&st.enable(17),Mt.iridescence&&st.enable(18),Mt.iridescenceMap&&st.enable(19),Mt.iridescenceThicknessMap&&st.enable(20),Mt.displacementMap&&st.enable(21),Mt.specularMap&&st.enable(22),Mt.roughnessMap&&st.enable(23),Mt.metalnessMap&&st.enable(24),Mt.gradientMap&&st.enable(25),Mt.alphaMap&&st.enable(26),Mt.alphaTest&&st.enable(27),Mt.vertexColors&&st.enable(28),Mt.vertexAlphas&&st.enable(29),Mt.vertexUvs&&st.enable(30),Mt.vertexTangents&&st.enable(31),Mt.uvsVertexOnly&&st.enable(32),Mt.fog&&st.enable(33),Tt.push(st.mask),st.disableAll(),Mt.useFog&&st.enable(0),Mt.flatShading&&st.enable(1),Mt.logarithmicDepthBuffer&&st.enable(2),Mt.skinning&&st.enable(3),Mt.morphTargets&&st.enable(4),Mt.morphNormals&&st.enable(5),Mt.morphColors&&st.enable(6),Mt.premultipliedAlpha&&st.enable(7),Mt.shadowMapEnabled&&st.enable(8),Mt.physicallyCorrectLights&&st.enable(9),Mt.doubleSided&&st.enable(10),Mt.flipSided&&st.enable(11),Mt.useDepthPacking&&st.enable(12),Mt.dithering&&st.enable(13),Mt.specularIntensityMap&&st.enable(14),Mt.specularColorMap&&st.enable(15),Mt.transmission&&st.enable(16),Mt.transmissionMap&&st.enable(17),Mt.thicknessMap&&st.enable(18),Mt.sheen&&st.enable(19),Mt.sheenColorMap&&st.enable(20),Mt.sheenRoughnessMap&&st.enable(21),Mt.decodeVideoTexture&&st.enable(22),Mt.opaque&&st.enable(23),Tt.push(st.mask)}function vt(Tt){const Mt=mt[Tt.type];let Lt;if(Mt){const jt=ShaderLib[Mt];Lt=UniformsUtils.clone(jt.uniforms)}else Lt=Tt.uniforms;return Lt}function kt(Tt,Mt){let Lt;for(let jt=0,Rt=ct.length;jt0?rt.push(bt):pt.transparent===!0?it.push(bt):nt.push(bt)}function lt(ht,dt,pt,mt,gt,yt){const bt=at(ht,dt,pt,mt,gt,yt);pt.transmission>0?rt.unshift(bt):pt.transparent===!0?it.unshift(bt):nt.unshift(bt)}function ct(ht,dt){nt.length>1&&nt.sort(ht||painterSortStable),rt.length>1&&rt.sort(dt||reversePainterSortStable),it.length>1&&it.sort(dt||reversePainterSortStable)}function ut(){for(let ht=et,dt=tt.length;ht=tt.get(rt).length?(ot=new WebGLRenderList,tt.get(rt).push(ot)):ot=tt.get(rt)[it],ot}function nt(){tt=new WeakMap}return{get:et,dispose:nt}}function UniformsCache(){const tt={};return{get:function(et){if(tt[et.id]!==void 0)return tt[et.id];let nt;switch(et.type){case"DirectionalLight":nt={direction:new Vector3,color:new Color$1};break;case"SpotLight":nt={position:new Vector3,direction:new Vector3,color:new Color$1,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":nt={position:new Vector3,color:new Color$1,distance:0,decay:0};break;case"HemisphereLight":nt={direction:new Vector3,skyColor:new Color$1,groundColor:new Color$1};break;case"RectAreaLight":nt={color:new Color$1,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break}return tt[et.id]=nt,nt}}}function ShadowUniformsCache(){const tt={};return{get:function(et){if(tt[et.id]!==void 0)return tt[et.id];let nt;switch(et.type){case"DirectionalLight":nt={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"SpotLight":nt={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":nt={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3};break}return tt[et.id]=nt,nt}}}let nextVersion=0;function shadowCastingLightsFirst(tt,et){return(et.castShadow?1:0)-(tt.castShadow?1:0)}function WebGLLights(tt,et){const nt=new UniformsCache,rt=ShadowUniformsCache(),it={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let ut=0;ut<9;ut++)it.probe.push(new Vector3);const ot=new Vector3,at=new Matrix4,st=new Matrix4;function lt(ut,ht){let dt=0,pt=0,mt=0;for(let Mt=0;Mt<9;Mt++)it.probe[Mt].set(0,0,0);let gt=0,yt=0,bt=0,wt=0,vt=0,kt=0,St=0,Et=0;ut.sort(shadowCastingLightsFirst);const At=ht!==!0?Math.PI:1;for(let Mt=0,Lt=ut.length;Mt0&&(et.isWebGL2||tt.has("OES_texture_float_linear")===!0?(it.rectAreaLTC1=UniformsLib.LTC_FLOAT_1,it.rectAreaLTC2=UniformsLib.LTC_FLOAT_2):tt.has("OES_texture_half_float_linear")===!0?(it.rectAreaLTC1=UniformsLib.LTC_HALF_1,it.rectAreaLTC2=UniformsLib.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),it.ambient[0]=dt,it.ambient[1]=pt,it.ambient[2]=mt;const Tt=it.hash;(Tt.directionalLength!==gt||Tt.pointLength!==yt||Tt.spotLength!==bt||Tt.rectAreaLength!==wt||Tt.hemiLength!==vt||Tt.numDirectionalShadows!==kt||Tt.numPointShadows!==St||Tt.numSpotShadows!==Et)&&(it.directional.length=gt,it.spot.length=bt,it.rectArea.length=wt,it.point.length=yt,it.hemi.length=vt,it.directionalShadow.length=kt,it.directionalShadowMap.length=kt,it.pointShadow.length=St,it.pointShadowMap.length=St,it.spotShadow.length=Et,it.spotShadowMap.length=Et,it.directionalShadowMatrix.length=kt,it.pointShadowMatrix.length=St,it.spotShadowMatrix.length=Et,Tt.directionalLength=gt,Tt.pointLength=yt,Tt.spotLength=bt,Tt.rectAreaLength=wt,Tt.hemiLength=vt,Tt.numDirectionalShadows=kt,Tt.numPointShadows=St,Tt.numSpotShadows=Et,it.version=nextVersion++)}function ct(ut,ht){let dt=0,pt=0,mt=0,gt=0,yt=0;const bt=ht.matrixWorldInverse;for(let wt=0,vt=ut.length;wt=nt.get(ot).length?(st=new WebGLRenderState(tt,et),nt.get(ot).push(st)):st=nt.get(ot)[at],st}function it(){nt=new WeakMap}return{get:rt,dispose:it}}class MeshDepthMaterial extends Material{constructor(et){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=BasicDepthPacking,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(et)}copy(et){return super.copy(et),this.depthPacking=et.depthPacking,this.map=et.map,this.alphaMap=et.alphaMap,this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this}}class MeshDistanceMaterial extends Material{constructor(et){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new Vector3,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(et)}copy(et){return super.copy(et),this.referencePosition.copy(et.referencePosition),this.nearDistance=et.nearDistance,this.farDistance=et.farDistance,this.map=et.map,this.alphaMap=et.alphaMap,this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this}}const vertex=`void main() { gl_Position = vec4( position, 1.0 ); }`,fragment$h=`uniform sampler2D shadow_pass; uniform vec2 resolution; @@ -3682,7 +3682,7 @@ void main() { squared_mean = squared_mean / samples; float std_dev = sqrt( squared_mean - mean * mean ); gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function WebGLShadowMap(tt,et,nt){let rt=new Frustum;const it=new Vector2,ot=new Vector2,at=new Vector4,st=new MeshDepthMaterial({depthPacking:RGBADepthPacking}),lt=new MeshDistanceMaterial,ct={},ut=nt.maxTextureSize,ht={0:BackSide,1:FrontSide,2:DoubleSide},dt=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment$h}),pt=dt.clone();pt.defines.HORIZONTAL_PASS=1;const mt=new BufferGeometry;mt.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const gt=new Mesh(mt,dt),yt=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=PCFShadowMap,this.render=function(kt,St,Tt){if(yt.enabled===!1||yt.autoUpdate===!1&&yt.needsUpdate===!1||kt.length===0)return;const At=tt.getRenderTarget(),Et=tt.getActiveCubeFace(),Mt=tt.getActiveMipmapLevel(),Lt=tt.state;Lt.setBlending(NoBlending),Lt.buffers.color.setClear(1,1,1,1),Lt.buffers.depth.setTest(!0),Lt.setScissorTest(!1);for(let jt=0,Rt=kt.length;jtut||it.y>ut)&&(it.x>ut&&(ot.x=Math.floor(ut/It.x),it.x=ot.x*It.x,xt.mapSize.x=ot.x),it.y>ut&&(ot.y=Math.floor(ut/It.y),it.y=ot.y*It.y,xt.mapSize.y=ot.y)),xt.map===null){const zt=this.type!==VSMShadowMap?{minFilter:NearestFilter,magFilter:NearestFilter}:{};xt.map=new WebGLRenderTarget(it.x,it.y,zt),xt.map.texture.name=$t.name+".shadowMap",xt.camera.updateProjectionMatrix()}tt.setRenderTarget(xt.map),tt.clear();const Ot=xt.getViewportCount();for(let zt=0;zt0){const Rt=Lt.uuid,$t=St.uuid;let xt=ct[Rt];xt===void 0&&(xt={},ct[Rt]=xt);let It=xt[$t];It===void 0&&(It=Lt.clone(),xt[$t]=It),Lt=It}return Lt.visible=St.visible,Lt.wireframe=St.wireframe,Mt===VSMShadowMap?Lt.side=St.shadowSide!==null?St.shadowSide:St.side:Lt.side=St.shadowSide!==null?St.shadowSide:ht[St.side],Lt.alphaMap=St.alphaMap,Lt.alphaTest=St.alphaTest,Lt.clipShadows=St.clipShadows,Lt.clippingPlanes=St.clippingPlanes,Lt.clipIntersection=St.clipIntersection,Lt.displacementMap=St.displacementMap,Lt.displacementScale=St.displacementScale,Lt.displacementBias=St.displacementBias,Lt.wireframeLinewidth=St.wireframeLinewidth,Lt.linewidth=St.linewidth,Tt.isPointLight===!0&&Lt.isMeshDistanceMaterial===!0&&(Lt.referencePosition.setFromMatrixPosition(Tt.matrixWorld),Lt.nearDistance=At,Lt.farDistance=Et),Lt}function vt(kt,St,Tt,At,Et){if(kt.visible===!1)return;if(kt.layers.test(St.layers)&&(kt.isMesh||kt.isLine||kt.isPoints)&&(kt.castShadow||kt.receiveShadow&&Et===VSMShadowMap)&&(!kt.frustumCulled||rt.intersectsObject(kt))){kt.modelViewMatrix.multiplyMatrices(Tt.matrixWorldInverse,kt.matrixWorld);const jt=et.update(kt),Rt=kt.material;if(Array.isArray(Rt)){const $t=jt.groups;for(let xt=0,It=$t.length;xt=1):Ut.indexOf("OpenGL ES")!==-1&&(zt=parseFloat(/^OpenGL ES (\d)/.exec(Ut)[1]),Ot=zt>=2);let Wt=null,Ft={};const Nt=tt.getParameter(3088),Ct=tt.getParameter(2978),Ht=new Vector4().fromArray(Nt),Jt=new Vector4().fromArray(Ct);function nn(Wn,Zn,Vn){const pr=new Uint8Array(4),fr=tt.createTexture();tt.bindTexture(Wn,fr),tt.texParameteri(Wn,10241,9728),tt.texParameteri(Wn,10240,9728);for(let Er=0;ErMn||un.height>Mn)&&(Nn=Mn/Math.max(un.width,un.height)),Nn<1||rn===!0)if(typeof HTMLImageElement<"u"&&un instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&un instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&un instanceof ImageBitmap){const hn=rn?floorPowerOfTwo:Math.floor,Qt=hn(Nn*un.width),Zt=hn(Nn*un.height);gt===void 0&&(gt=wt(Qt,Zt));const wn=Sn?wt(Qt,Zt):gt;return wn.width=Qt,wn.height=Zt,wn.getContext("2d").drawImage(un,0,0,Qt,Zt),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+un.width+"x"+un.height+") to ("+Qt+"x"+Zt+")."),wn}else return"data"in un&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+un.width+"x"+un.height+")."),un;return un}function kt(un){return isPowerOfTwo(un.width)&&isPowerOfTwo(un.height)}function St(un){return st?!1:un.wrapS!==ClampToEdgeWrapping||un.wrapT!==ClampToEdgeWrapping||un.minFilter!==NearestFilter&&un.minFilter!==LinearFilter}function Tt(un,rn){return un.generateMipmaps&&rn&&un.minFilter!==NearestFilter&&un.minFilter!==LinearFilter}function At(un){tt.generateMipmap(un)}function Et(un,rn,Sn,Mn,Nn=!1){if(st===!1)return rn;if(un!==null){if(tt[un]!==void 0)return tt[un];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+un+"'")}let hn=rn;return rn===6403&&(Sn===5126&&(hn=33326),Sn===5131&&(hn=33325),Sn===5121&&(hn=33321)),rn===33319&&(Sn===5126&&(hn=33328),Sn===5131&&(hn=33327),Sn===5121&&(hn=33323)),rn===6408&&(Sn===5126&&(hn=34836),Sn===5131&&(hn=34842),Sn===5121&&(hn=Mn===sRGBEncoding&&Nn===!1?35907:32856),Sn===32819&&(hn=32854),Sn===32820&&(hn=32855)),(hn===33325||hn===33326||hn===33327||hn===33328||hn===34842||hn===34836)&&et.get("EXT_color_buffer_float"),hn}function Mt(un,rn,Sn){return Tt(un,Sn)===!0||un.isFramebufferTexture&&un.minFilter!==NearestFilter&&un.minFilter!==LinearFilter?Math.log2(Math.max(rn.width,rn.height))+1:un.mipmaps!==void 0&&un.mipmaps.length>0?un.mipmaps.length:un.isCompressedTexture&&Array.isArray(un.image)?rn.mipmaps.length:1}function Lt(un){return un===NearestFilter||un===NearestMipmapNearestFilter||un===NearestMipmapLinearFilter?9728:9729}function jt(un){const rn=un.target;rn.removeEventListener("dispose",jt),$t(rn),rn.isVideoTexture&&mt.delete(rn)}function Rt(un){const rn=un.target;rn.removeEventListener("dispose",Rt),It(rn)}function $t(un){const rn=rt.get(un);if(rn.__webglInit===void 0)return;const Sn=un.source,Mn=yt.get(Sn);if(Mn){const Nn=Mn[rn.__cacheKey];Nn.usedTimes--,Nn.usedTimes===0&&xt(un),Object.keys(Mn).length===0&&yt.delete(Sn)}rt.remove(un)}function xt(un){const rn=rt.get(un);tt.deleteTexture(rn.__webglTexture);const Sn=un.source,Mn=yt.get(Sn);delete Mn[rn.__cacheKey],at.memory.textures--}function It(un){const rn=un.texture,Sn=rt.get(un),Mn=rt.get(rn);if(Mn.__webglTexture!==void 0&&(tt.deleteTexture(Mn.__webglTexture),at.memory.textures--),un.depthTexture&&un.depthTexture.dispose(),un.isWebGLCubeRenderTarget)for(let Nn=0;Nn<6;Nn++)tt.deleteFramebuffer(Sn.__webglFramebuffer[Nn]),Sn.__webglDepthbuffer&&tt.deleteRenderbuffer(Sn.__webglDepthbuffer[Nn]);else{if(tt.deleteFramebuffer(Sn.__webglFramebuffer),Sn.__webglDepthbuffer&&tt.deleteRenderbuffer(Sn.__webglDepthbuffer),Sn.__webglMultisampledFramebuffer&&tt.deleteFramebuffer(Sn.__webglMultisampledFramebuffer),Sn.__webglColorRenderbuffer)for(let Nn=0;Nn=lt&&console.warn("THREE.WebGLTextures: Trying to use "+un+" texture units while this GPU supports only "+lt),Ot+=1,un}function Wt(un){const rn=[];return rn.push(un.wrapS),rn.push(un.wrapT),rn.push(un.magFilter),rn.push(un.minFilter),rn.push(un.anisotropy),rn.push(un.internalFormat),rn.push(un.format),rn.push(un.type),rn.push(un.generateMipmaps),rn.push(un.premultiplyAlpha),rn.push(un.flipY),rn.push(un.unpackAlignment),rn.push(un.encoding),rn.join()}function Ft(un,rn){const Sn=rt.get(un);if(un.isVideoTexture&&Cn(un),un.isRenderTargetTexture===!1&&un.version>0&&Sn.__version!==un.version){const Mn=un.image;if(Mn===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Mn.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{cn(Sn,un,rn);return}}nt.activeTexture(33984+rn),nt.bindTexture(3553,Sn.__webglTexture)}function Nt(un,rn){const Sn=rt.get(un);if(un.version>0&&Sn.__version!==un.version){cn(Sn,un,rn);return}nt.activeTexture(33984+rn),nt.bindTexture(35866,Sn.__webglTexture)}function Ct(un,rn){const Sn=rt.get(un);if(un.version>0&&Sn.__version!==un.version){cn(Sn,un,rn);return}nt.activeTexture(33984+rn),nt.bindTexture(32879,Sn.__webglTexture)}function Ht(un,rn){const Sn=rt.get(un);if(un.version>0&&Sn.__version!==un.version){_n(Sn,un,rn);return}nt.activeTexture(33984+rn),nt.bindTexture(34067,Sn.__webglTexture)}const Jt={[RepeatWrapping]:10497,[ClampToEdgeWrapping]:33071,[MirroredRepeatWrapping]:33648},nn={[NearestFilter]:9728,[NearestMipmapNearestFilter]:9984,[NearestMipmapLinearFilter]:9986,[LinearFilter]:9729,[LinearMipmapNearestFilter]:9985,[LinearMipmapLinearFilter]:9987};function Yt(un,rn,Sn){if(Sn?(tt.texParameteri(un,10242,Jt[rn.wrapS]),tt.texParameteri(un,10243,Jt[rn.wrapT]),(un===32879||un===35866)&&tt.texParameteri(un,32882,Jt[rn.wrapR]),tt.texParameteri(un,10240,nn[rn.magFilter]),tt.texParameteri(un,10241,nn[rn.minFilter])):(tt.texParameteri(un,10242,33071),tt.texParameteri(un,10243,33071),(un===32879||un===35866)&&tt.texParameteri(un,32882,33071),(rn.wrapS!==ClampToEdgeWrapping||rn.wrapT!==ClampToEdgeWrapping)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),tt.texParameteri(un,10240,Lt(rn.magFilter)),tt.texParameteri(un,10241,Lt(rn.minFilter)),rn.minFilter!==NearestFilter&&rn.minFilter!==LinearFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),et.has("EXT_texture_filter_anisotropic")===!0){const Mn=et.get("EXT_texture_filter_anisotropic");if(rn.type===FloatType&&et.has("OES_texture_float_linear")===!1||st===!1&&rn.type===HalfFloatType&&et.has("OES_texture_half_float_linear")===!1)return;(rn.anisotropy>1||rt.get(rn).__currentAnisotropy)&&(tt.texParameterf(un,Mn.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(rn.anisotropy,it.getMaxAnisotropy())),rt.get(rn).__currentAnisotropy=rn.anisotropy)}}function fn(un,rn){let Sn=!1;un.__webglInit===void 0&&(un.__webglInit=!0,rn.addEventListener("dispose",jt));const Mn=rn.source;let Nn=yt.get(Mn);Nn===void 0&&(Nn={},yt.set(Mn,Nn));const hn=Wt(rn);if(hn!==un.__cacheKey){Nn[hn]===void 0&&(Nn[hn]={texture:tt.createTexture(),usedTimes:0},at.memory.textures++,Sn=!0),Nn[hn].usedTimes++;const Qt=Nn[un.__cacheKey];Qt!==void 0&&(Nn[un.__cacheKey].usedTimes--,Qt.usedTimes===0&&xt(rn)),un.__cacheKey=hn,un.__webglTexture=Nn[hn].texture}return Sn}function cn(un,rn,Sn){let Mn=3553;rn.isDataArrayTexture&&(Mn=35866),rn.isData3DTexture&&(Mn=32879);const Nn=fn(un,rn),hn=rn.source;if(nt.activeTexture(33984+Sn),nt.bindTexture(Mn,un.__webglTexture),hn.version!==hn.__currentVersion||Nn===!0){tt.pixelStorei(37440,rn.flipY),tt.pixelStorei(37441,rn.premultiplyAlpha),tt.pixelStorei(3317,rn.unpackAlignment),tt.pixelStorei(37443,0);const Qt=St(rn)&&kt(rn.image)===!1;let Zt=vt(rn.image,Qt,!1,ut);Zt=$n(rn,Zt);const wn=kt(Zt)||st,On=ot.convert(rn.format,rn.encoding);let jn=ot.convert(rn.type),Un=Et(rn.internalFormat,On,jn,rn.encoding,rn.isVideoTexture);Yt(Mn,rn,wn);let tr;const qn=rn.mipmaps,Xn=st&&rn.isVideoTexture!==!0,Wn=hn.__currentVersion===void 0||Nn===!0,Zn=Mt(rn,Zt,wn);if(rn.isDepthTexture)Un=6402,st?rn.type===FloatType?Un=36012:rn.type===UnsignedIntType?Un=33190:rn.type===UnsignedInt248Type?Un=35056:Un=33189:rn.type===FloatType&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),rn.format===DepthFormat&&Un===6402&&rn.type!==UnsignedShortType&&rn.type!==UnsignedIntType&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),rn.type=UnsignedIntType,jn=ot.convert(rn.type)),rn.format===DepthStencilFormat&&Un===6402&&(Un=34041,rn.type!==UnsignedInt248Type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),rn.type=UnsignedInt248Type,jn=ot.convert(rn.type))),Wn&&(Xn?nt.texStorage2D(3553,1,Un,Zt.width,Zt.height):nt.texImage2D(3553,0,Un,Zt.width,Zt.height,0,On,jn,null));else if(rn.isDataTexture)if(qn.length>0&&wn){Xn&&Wn&&nt.texStorage2D(3553,Zn,Un,qn[0].width,qn[0].height);for(let Vn=0,pr=qn.length;Vn>=1,pr>>=1}}else if(qn.length>0&&wn){Xn&&Wn&&nt.texStorage2D(3553,Zn,Un,qn[0].width,qn[0].height);for(let Vn=0,pr=qn.length;Vn0&&Wn++,nt.texStorage2D(34067,Wn,tr,Zt[0].width,Zt[0].height));for(let Vn=0;Vn<6;Vn++)if(Qt){qn?nt.texSubImage2D(34069+Vn,0,0,0,Zt[Vn].width,Zt[Vn].height,jn,Un,Zt[Vn].data):nt.texImage2D(34069+Vn,0,tr,Zt[Vn].width,Zt[Vn].height,0,jn,Un,Zt[Vn].data);for(let pr=0;pr0&&gn(un)===!1){const Zt=hn?rn:[rn];Sn.__webglMultisampledFramebuffer=tt.createFramebuffer(),Sn.__webglColorRenderbuffer=[],nt.bindFramebuffer(36160,Sn.__webglMultisampledFramebuffer);for(let wn=0;wn0&&gn(un)===!1){const rn=un.isWebGLMultipleRenderTargets?un.texture:[un.texture],Sn=un.width,Mn=un.height;let Nn=16384;const hn=[],Qt=un.stencilBuffer?33306:36096,Zt=rt.get(un),wn=un.isWebGLMultipleRenderTargets===!0;if(wn)for(let On=0;On0&&et.has("WEBGL_multisampled_render_to_texture")===!0&&rn.__useRenderToTexture!==!1}function Cn(un){const rn=at.render.frame;mt.get(un)!==rn&&(mt.set(un,rn),un.update())}function $n(un,rn){const Sn=un.encoding,Mn=un.format,Nn=un.type;return un.isCompressedTexture===!0||un.isVideoTexture===!0||un.format===_SRGBAFormat||Sn!==LinearEncoding&&(Sn===sRGBEncoding?st===!1?et.has("EXT_sRGB")===!0&&Mn===RGBAFormat?(un.format=_SRGBAFormat,un.minFilter=LinearFilter,un.generateMipmaps=!1):rn=ImageUtils.sRGBToLinear(rn):(Mn!==RGBAFormat||Nn!==UnsignedByteType)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",Sn)),rn}this.allocateTextureUnit=Ut,this.resetTextureUnits=zt,this.setTexture2D=Ft,this.setTexture2DArray=Nt,this.setTexture3D=Ct,this.setTextureCube=Ht,this.rebindTextures=Rn,this.setupRenderTarget=An,this.updateRenderTargetMipmap=yn,this.updateMultisampleRenderTarget=kn,this.setupDepthRenderbuffer=Tn,this.setupFrameBufferTexture=En,this.useMultisampledRTT=gn}function WebGLUtils(tt,et,nt){const rt=nt.isWebGL2;function it(ot,at=null){let st;if(ot===UnsignedByteType)return 5121;if(ot===UnsignedShort4444Type)return 32819;if(ot===UnsignedShort5551Type)return 32820;if(ot===ByteType)return 5120;if(ot===ShortType)return 5122;if(ot===UnsignedShortType)return 5123;if(ot===IntType)return 5124;if(ot===UnsignedIntType)return 5125;if(ot===FloatType)return 5126;if(ot===HalfFloatType)return rt?5131:(st=et.get("OES_texture_half_float"),st!==null?st.HALF_FLOAT_OES:null);if(ot===AlphaFormat)return 6406;if(ot===RGBAFormat)return 6408;if(ot===LuminanceFormat)return 6409;if(ot===LuminanceAlphaFormat)return 6410;if(ot===DepthFormat)return 6402;if(ot===DepthStencilFormat)return 34041;if(ot===RedFormat)return 6403;if(ot===RGBFormat)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(ot===_SRGBAFormat)return st=et.get("EXT_sRGB"),st!==null?st.SRGB_ALPHA_EXT:null;if(ot===RedIntegerFormat)return 36244;if(ot===RGFormat)return 33319;if(ot===RGIntegerFormat)return 33320;if(ot===RGBAIntegerFormat)return 36249;if(ot===RGB_S3TC_DXT1_Format||ot===RGBA_S3TC_DXT1_Format||ot===RGBA_S3TC_DXT3_Format||ot===RGBA_S3TC_DXT5_Format)if(at===sRGBEncoding)if(st=et.get("WEBGL_compressed_texture_s3tc_srgb"),st!==null){if(ot===RGB_S3TC_DXT1_Format)return st.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(ot===RGBA_S3TC_DXT1_Format)return st.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(ot===RGBA_S3TC_DXT3_Format)return st.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(ot===RGBA_S3TC_DXT5_Format)return st.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(st=et.get("WEBGL_compressed_texture_s3tc"),st!==null){if(ot===RGB_S3TC_DXT1_Format)return st.COMPRESSED_RGB_S3TC_DXT1_EXT;if(ot===RGBA_S3TC_DXT1_Format)return st.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(ot===RGBA_S3TC_DXT3_Format)return st.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(ot===RGBA_S3TC_DXT5_Format)return st.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(ot===RGB_PVRTC_4BPPV1_Format||ot===RGB_PVRTC_2BPPV1_Format||ot===RGBA_PVRTC_4BPPV1_Format||ot===RGBA_PVRTC_2BPPV1_Format)if(st=et.get("WEBGL_compressed_texture_pvrtc"),st!==null){if(ot===RGB_PVRTC_4BPPV1_Format)return st.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(ot===RGB_PVRTC_2BPPV1_Format)return st.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(ot===RGBA_PVRTC_4BPPV1_Format)return st.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(ot===RGBA_PVRTC_2BPPV1_Format)return st.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(ot===RGB_ETC1_Format)return st=et.get("WEBGL_compressed_texture_etc1"),st!==null?st.COMPRESSED_RGB_ETC1_WEBGL:null;if(ot===RGB_ETC2_Format||ot===RGBA_ETC2_EAC_Format)if(st=et.get("WEBGL_compressed_texture_etc"),st!==null){if(ot===RGB_ETC2_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ETC2:st.COMPRESSED_RGB8_ETC2;if(ot===RGBA_ETC2_EAC_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:st.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(ot===RGBA_ASTC_4x4_Format||ot===RGBA_ASTC_5x4_Format||ot===RGBA_ASTC_5x5_Format||ot===RGBA_ASTC_6x5_Format||ot===RGBA_ASTC_6x6_Format||ot===RGBA_ASTC_8x5_Format||ot===RGBA_ASTC_8x6_Format||ot===RGBA_ASTC_8x8_Format||ot===RGBA_ASTC_10x5_Format||ot===RGBA_ASTC_10x6_Format||ot===RGBA_ASTC_10x8_Format||ot===RGBA_ASTC_10x10_Format||ot===RGBA_ASTC_12x10_Format||ot===RGBA_ASTC_12x12_Format)if(st=et.get("WEBGL_compressed_texture_astc"),st!==null){if(ot===RGBA_ASTC_4x4_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:st.COMPRESSED_RGBA_ASTC_4x4_KHR;if(ot===RGBA_ASTC_5x4_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:st.COMPRESSED_RGBA_ASTC_5x4_KHR;if(ot===RGBA_ASTC_5x5_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:st.COMPRESSED_RGBA_ASTC_5x5_KHR;if(ot===RGBA_ASTC_6x5_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:st.COMPRESSED_RGBA_ASTC_6x5_KHR;if(ot===RGBA_ASTC_6x6_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:st.COMPRESSED_RGBA_ASTC_6x6_KHR;if(ot===RGBA_ASTC_8x5_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:st.COMPRESSED_RGBA_ASTC_8x5_KHR;if(ot===RGBA_ASTC_8x6_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:st.COMPRESSED_RGBA_ASTC_8x6_KHR;if(ot===RGBA_ASTC_8x8_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:st.COMPRESSED_RGBA_ASTC_8x8_KHR;if(ot===RGBA_ASTC_10x5_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:st.COMPRESSED_RGBA_ASTC_10x5_KHR;if(ot===RGBA_ASTC_10x6_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:st.COMPRESSED_RGBA_ASTC_10x6_KHR;if(ot===RGBA_ASTC_10x8_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:st.COMPRESSED_RGBA_ASTC_10x8_KHR;if(ot===RGBA_ASTC_10x10_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:st.COMPRESSED_RGBA_ASTC_10x10_KHR;if(ot===RGBA_ASTC_12x10_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:st.COMPRESSED_RGBA_ASTC_12x10_KHR;if(ot===RGBA_ASTC_12x12_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:st.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(ot===RGBA_BPTC_Format)if(st=et.get("EXT_texture_compression_bptc"),st!==null){if(ot===RGBA_BPTC_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:st.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;return ot===UnsignedInt248Type?rt?34042:(st=et.get("WEBGL_depth_texture"),st!==null?st.UNSIGNED_INT_24_8_WEBGL:null):tt[ot]!==void 0?tt[ot]:null}return{convert:it}}class ArrayCamera extends PerspectiveCamera{constructor(et=[]){super(),this.isArrayCamera=!0,this.cameras=et}}class Group extends Object3D{constructor(){super(),this.isGroup=!0,this.type="Group"}}const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Vector3),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Vector3),this._grip}dispatchEvent(et){return this._targetRay!==null&&this._targetRay.dispatchEvent(et),this._grip!==null&&this._grip.dispatchEvent(et),this._hand!==null&&this._hand.dispatchEvent(et),this}disconnect(et){return this.dispatchEvent({type:"disconnected",data:et}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(et,nt,rt){let it=null,ot=null,at=null;const st=this._targetRay,lt=this._grip,ct=this._hand;if(et&&nt.session.visibilityState!=="visible-blurred"){if(ct&&et.hand){at=!0;for(const gt of et.hand.values()){const yt=nt.getJointPose(gt,rt);if(ct.joints[gt.jointName]===void 0){const wt=new Group;wt.matrixAutoUpdate=!1,wt.visible=!1,ct.joints[gt.jointName]=wt,ct.add(wt)}const bt=ct.joints[gt.jointName];yt!==null&&(bt.matrix.fromArray(yt.transform.matrix),bt.matrix.decompose(bt.position,bt.rotation,bt.scale),bt.jointRadius=yt.radius),bt.visible=yt!==null}const ut=ct.joints["index-finger-tip"],ht=ct.joints["thumb-tip"],dt=ut.position.distanceTo(ht.position),pt=.02,mt=.005;ct.inputState.pinching&&dt>pt+mt?(ct.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:et.handedness,target:this})):!ct.inputState.pinching&&dt<=pt-mt&&(ct.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:et.handedness,target:this}))}else lt!==null&&et.gripSpace&&(ot=nt.getPose(et.gripSpace,rt),ot!==null&&(lt.matrix.fromArray(ot.transform.matrix),lt.matrix.decompose(lt.position,lt.rotation,lt.scale),ot.linearVelocity?(lt.hasLinearVelocity=!0,lt.linearVelocity.copy(ot.linearVelocity)):lt.hasLinearVelocity=!1,ot.angularVelocity?(lt.hasAngularVelocity=!0,lt.angularVelocity.copy(ot.angularVelocity)):lt.hasAngularVelocity=!1));st!==null&&(it=nt.getPose(et.targetRaySpace,rt),it===null&&ot!==null&&(it=ot),it!==null&&(st.matrix.fromArray(it.transform.matrix),st.matrix.decompose(st.position,st.rotation,st.scale),it.linearVelocity?(st.hasLinearVelocity=!0,st.linearVelocity.copy(it.linearVelocity)):st.hasLinearVelocity=!1,it.angularVelocity?(st.hasAngularVelocity=!0,st.angularVelocity.copy(it.angularVelocity)):st.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent)))}return st!==null&&(st.visible=it!==null),lt!==null&&(lt.visible=ot!==null),ct!==null&&(ct.visible=at!==null),this}}class DepthTexture extends Texture{constructor(et,nt,rt,it,ot,at,st,lt,ct,ut){if(ut=ut!==void 0?ut:DepthFormat,ut!==DepthFormat&&ut!==DepthStencilFormat)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");rt===void 0&&ut===DepthFormat&&(rt=UnsignedIntType),rt===void 0&&ut===DepthStencilFormat&&(rt=UnsignedInt248Type),super(null,it,ot,at,st,lt,ut,rt,ct),this.isDepthTexture=!0,this.image={width:et,height:nt},this.magFilter=st!==void 0?st:NearestFilter,this.minFilter=lt!==void 0?lt:NearestFilter,this.flipY=!1,this.generateMipmaps=!1}}class WebXRManager extends EventDispatcher$1{constructor(et,nt){super();const rt=this;let it=null,ot=1,at=null,st="local-floor",lt=null,ct=null,ut=null,ht=null,dt=null,pt=null;const mt=nt.getContextAttributes();let gt=null,yt=null;const bt=[],wt=[],vt=new PerspectiveCamera;vt.layers.enable(1),vt.viewport=new Vector4;const kt=new PerspectiveCamera;kt.layers.enable(2),kt.viewport=new Vector4;const St=[vt,kt],Tt=new ArrayCamera;Tt.layers.enable(1),Tt.layers.enable(2);let At=null,Et=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Wt){let Ft=bt[Wt];return Ft===void 0&&(Ft=new WebXRController,bt[Wt]=Ft),Ft.getTargetRaySpace()},this.getControllerGrip=function(Wt){let Ft=bt[Wt];return Ft===void 0&&(Ft=new WebXRController,bt[Wt]=Ft),Ft.getGripSpace()},this.getHand=function(Wt){let Ft=bt[Wt];return Ft===void 0&&(Ft=new WebXRController,bt[Wt]=Ft),Ft.getHandSpace()};function Mt(Wt){const Ft=wt.indexOf(Wt.inputSource);if(Ft===-1)return;const Nt=bt[Ft];Nt!==void 0&&Nt.dispatchEvent({type:Wt.type,data:Wt.inputSource})}function Lt(){it.removeEventListener("select",Mt),it.removeEventListener("selectstart",Mt),it.removeEventListener("selectend",Mt),it.removeEventListener("squeeze",Mt),it.removeEventListener("squeezestart",Mt),it.removeEventListener("squeezeend",Mt),it.removeEventListener("end",Lt),it.removeEventListener("inputsourceschange",jt);for(let Wt=0;Wt=0&&(wt[Ct]=null,bt[Ct].dispatchEvent({type:"disconnected",data:Nt}))}for(let Ft=0;Ft=wt.length){wt.push(Nt),Ct=Jt;break}else if(wt[Jt]===null){wt[Jt]=Nt,Ct=Jt;break}if(Ct===-1)break}const Ht=bt[Ct];Ht&&Ht.dispatchEvent({type:"connected",data:Nt})}}const Rt=new Vector3,$t=new Vector3;function xt(Wt,Ft,Nt){Rt.setFromMatrixPosition(Ft.matrixWorld),$t.setFromMatrixPosition(Nt.matrixWorld);const Ct=Rt.distanceTo($t),Ht=Ft.projectionMatrix.elements,Jt=Nt.projectionMatrix.elements,nn=Ht[14]/(Ht[10]-1),Yt=Ht[14]/(Ht[10]+1),fn=(Ht[9]+1)/Ht[5],cn=(Ht[9]-1)/Ht[5],_n=(Ht[8]-1)/Ht[0],En=(Jt[8]+1)/Jt[0],an=nn*_n,en=nn*En,Tn=Ct/(-_n+En),Rn=Tn*-_n;Ft.matrixWorld.decompose(Wt.position,Wt.quaternion,Wt.scale),Wt.translateX(Rn),Wt.translateZ(Tn),Wt.matrixWorld.compose(Wt.position,Wt.quaternion,Wt.scale),Wt.matrixWorldInverse.copy(Wt.matrixWorld).invert();const An=nn+Tn,yn=Yt+Tn,kn=an-Rn,dn=en+(Ct-Rn),gn=fn*Yt/yn*An,Cn=cn*Yt/yn*An;Wt.projectionMatrix.makePerspective(kn,dn,gn,Cn,An,yn)}function It(Wt,Ft){Ft===null?Wt.matrixWorld.copy(Wt.matrix):Wt.matrixWorld.multiplyMatrices(Ft.matrixWorld,Wt.matrix),Wt.matrixWorldInverse.copy(Wt.matrixWorld).invert()}this.updateCamera=function(Wt){if(it===null)return;Tt.near=kt.near=vt.near=Wt.near,Tt.far=kt.far=vt.far=Wt.far,(At!==Tt.near||Et!==Tt.far)&&(it.updateRenderState({depthNear:Tt.near,depthFar:Tt.far}),At=Tt.near,Et=Tt.far);const Ft=Wt.parent,Nt=Tt.cameras;It(Tt,Ft);for(let Ht=0;Ht0&&(gt.alphaTest.value=yt.alphaTest);const bt=et.get(yt).envMap;if(bt&&(gt.envMap.value=bt,gt.flipEnvMap.value=bt.isCubeTexture&&bt.isRenderTargetTexture===!1?-1:1,gt.reflectivity.value=yt.reflectivity,gt.ior.value=yt.ior,gt.refractionRatio.value=yt.refractionRatio),yt.lightMap){gt.lightMap.value=yt.lightMap;const kt=tt.physicallyCorrectLights!==!0?Math.PI:1;gt.lightMapIntensity.value=yt.lightMapIntensity*kt}yt.aoMap&&(gt.aoMap.value=yt.aoMap,gt.aoMapIntensity.value=yt.aoMapIntensity);let wt;yt.map?wt=yt.map:yt.specularMap?wt=yt.specularMap:yt.displacementMap?wt=yt.displacementMap:yt.normalMap?wt=yt.normalMap:yt.bumpMap?wt=yt.bumpMap:yt.roughnessMap?wt=yt.roughnessMap:yt.metalnessMap?wt=yt.metalnessMap:yt.alphaMap?wt=yt.alphaMap:yt.emissiveMap?wt=yt.emissiveMap:yt.clearcoatMap?wt=yt.clearcoatMap:yt.clearcoatNormalMap?wt=yt.clearcoatNormalMap:yt.clearcoatRoughnessMap?wt=yt.clearcoatRoughnessMap:yt.iridescenceMap?wt=yt.iridescenceMap:yt.iridescenceThicknessMap?wt=yt.iridescenceThicknessMap:yt.specularIntensityMap?wt=yt.specularIntensityMap:yt.specularColorMap?wt=yt.specularColorMap:yt.transmissionMap?wt=yt.transmissionMap:yt.thicknessMap?wt=yt.thicknessMap:yt.sheenColorMap?wt=yt.sheenColorMap:yt.sheenRoughnessMap&&(wt=yt.sheenRoughnessMap),wt!==void 0&&(wt.isWebGLRenderTarget&&(wt=wt.texture),wt.matrixAutoUpdate===!0&&wt.updateMatrix(),gt.uvTransform.value.copy(wt.matrix));let vt;yt.aoMap?vt=yt.aoMap:yt.lightMap&&(vt=yt.lightMap),vt!==void 0&&(vt.isWebGLRenderTarget&&(vt=vt.texture),vt.matrixAutoUpdate===!0&&vt.updateMatrix(),gt.uv2Transform.value.copy(vt.matrix))}function ot(gt,yt){gt.diffuse.value.copy(yt.color),gt.opacity.value=yt.opacity}function at(gt,yt){gt.dashSize.value=yt.dashSize,gt.totalSize.value=yt.dashSize+yt.gapSize,gt.scale.value=yt.scale}function st(gt,yt,bt,wt){gt.diffuse.value.copy(yt.color),gt.opacity.value=yt.opacity,gt.size.value=yt.size*bt,gt.scale.value=wt*.5,yt.map&&(gt.map.value=yt.map),yt.alphaMap&&(gt.alphaMap.value=yt.alphaMap),yt.alphaTest>0&&(gt.alphaTest.value=yt.alphaTest);let vt;yt.map?vt=yt.map:yt.alphaMap&&(vt=yt.alphaMap),vt!==void 0&&(vt.matrixAutoUpdate===!0&&vt.updateMatrix(),gt.uvTransform.value.copy(vt.matrix))}function lt(gt,yt){gt.diffuse.value.copy(yt.color),gt.opacity.value=yt.opacity,gt.rotation.value=yt.rotation,yt.map&&(gt.map.value=yt.map),yt.alphaMap&&(gt.alphaMap.value=yt.alphaMap),yt.alphaTest>0&&(gt.alphaTest.value=yt.alphaTest);let bt;yt.map?bt=yt.map:yt.alphaMap&&(bt=yt.alphaMap),bt!==void 0&&(bt.matrixAutoUpdate===!0&&bt.updateMatrix(),gt.uvTransform.value.copy(bt.matrix))}function ct(gt,yt){gt.specular.value.copy(yt.specular),gt.shininess.value=Math.max(yt.shininess,1e-4)}function ut(gt,yt){yt.gradientMap&&(gt.gradientMap.value=yt.gradientMap)}function ht(gt,yt){gt.roughness.value=yt.roughness,gt.metalness.value=yt.metalness,yt.roughnessMap&&(gt.roughnessMap.value=yt.roughnessMap),yt.metalnessMap&&(gt.metalnessMap.value=yt.metalnessMap),et.get(yt).envMap&&(gt.envMapIntensity.value=yt.envMapIntensity)}function dt(gt,yt,bt){gt.ior.value=yt.ior,yt.sheen>0&&(gt.sheenColor.value.copy(yt.sheenColor).multiplyScalar(yt.sheen),gt.sheenRoughness.value=yt.sheenRoughness,yt.sheenColorMap&&(gt.sheenColorMap.value=yt.sheenColorMap),yt.sheenRoughnessMap&&(gt.sheenRoughnessMap.value=yt.sheenRoughnessMap)),yt.clearcoat>0&&(gt.clearcoat.value=yt.clearcoat,gt.clearcoatRoughness.value=yt.clearcoatRoughness,yt.clearcoatMap&&(gt.clearcoatMap.value=yt.clearcoatMap),yt.clearcoatRoughnessMap&&(gt.clearcoatRoughnessMap.value=yt.clearcoatRoughnessMap),yt.clearcoatNormalMap&&(gt.clearcoatNormalScale.value.copy(yt.clearcoatNormalScale),gt.clearcoatNormalMap.value=yt.clearcoatNormalMap,yt.side===BackSide&>.clearcoatNormalScale.value.negate())),yt.iridescence>0&&(gt.iridescence.value=yt.iridescence,gt.iridescenceIOR.value=yt.iridescenceIOR,gt.iridescenceThicknessMinimum.value=yt.iridescenceThicknessRange[0],gt.iridescenceThicknessMaximum.value=yt.iridescenceThicknessRange[1],yt.iridescenceMap&&(gt.iridescenceMap.value=yt.iridescenceMap),yt.iridescenceThicknessMap&&(gt.iridescenceThicknessMap.value=yt.iridescenceThicknessMap)),yt.transmission>0&&(gt.transmission.value=yt.transmission,gt.transmissionSamplerMap.value=bt.texture,gt.transmissionSamplerSize.value.set(bt.width,bt.height),yt.transmissionMap&&(gt.transmissionMap.value=yt.transmissionMap),gt.thickness.value=yt.thickness,yt.thicknessMap&&(gt.thicknessMap.value=yt.thicknessMap),gt.attenuationDistance.value=yt.attenuationDistance,gt.attenuationColor.value.copy(yt.attenuationColor)),gt.specularIntensity.value=yt.specularIntensity,gt.specularColor.value.copy(yt.specularColor),yt.specularIntensityMap&&(gt.specularIntensityMap.value=yt.specularIntensityMap),yt.specularColorMap&&(gt.specularColorMap.value=yt.specularColorMap)}function pt(gt,yt){yt.matcap&&(gt.matcap.value=yt.matcap)}function mt(gt,yt){gt.referencePosition.value.copy(yt.referencePosition),gt.nearDistance.value=yt.nearDistance,gt.farDistance.value=yt.farDistance}return{refreshFogUniforms:nt,refreshMaterialUniforms:rt}}function WebGLUniformsGroups(tt,et,nt,rt){let it={},ot={},at=[];const st=nt.isWebGL2?tt.getParameter(35375):0;function lt(wt,vt){const kt=vt.program;rt.uniformBlockBinding(wt,kt)}function ct(wt,vt){let kt=it[wt.id];kt===void 0&&(mt(wt),kt=ut(wt),it[wt.id]=kt,wt.addEventListener("dispose",yt));const St=vt.program;rt.updateUBOMapping(wt,St);const Tt=et.render.frame;ot[wt.id]!==Tt&&(dt(wt),ot[wt.id]=Tt)}function ut(wt){const vt=ht();wt.__bindingPointIndex=vt;const kt=tt.createBuffer(),St=wt.__size,Tt=wt.usage;return tt.bindBuffer(35345,kt),tt.bufferData(35345,St,Tt),tt.bindBuffer(35345,null),tt.bindBufferBase(35345,vt,kt),kt}function ht(){for(let wt=0;wt0){Tt=kt%St;const jt=St-Tt;Tt!==0&&jt-Lt.boundary<0&&(kt+=St-Tt,Mt.__offset=kt)}kt+=Lt.storage}return Tt=kt%St,Tt>0&&(kt+=St-Tt),wt.__size=kt,wt.__cache={},this}function gt(wt){const vt=wt.value,kt={boundary:0,storage:0};return typeof vt=="number"?(kt.boundary=4,kt.storage=4):vt.isVector2?(kt.boundary=8,kt.storage=8):vt.isVector3||vt.isColor?(kt.boundary=16,kt.storage=12):vt.isVector4?(kt.boundary=16,kt.storage=16):vt.isMatrix3?(kt.boundary=48,kt.storage=48):vt.isMatrix4?(kt.boundary=64,kt.storage=64):vt.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",vt),kt}function yt(wt){const vt=wt.target;vt.removeEventListener("dispose",yt);const kt=at.indexOf(vt.__bindingPointIndex);at.splice(kt,1),tt.deleteBuffer(it[vt.id]),delete it[vt.id],delete ot[vt.id]}function bt(){for(const wt in it)tt.deleteBuffer(it[wt]);at=[],it={},ot={}}return{bind:lt,update:ct,dispose:bt}}function createCanvasElement(){const tt=createElementNS("canvas");return tt.style.display="block",tt}function WebGLRenderer(tt={}){this.isWebGLRenderer=!0;const et=tt.canvas!==void 0?tt.canvas:createCanvasElement(),nt=tt.context!==void 0?tt.context:null,rt=tt.depth!==void 0?tt.depth:!0,it=tt.stencil!==void 0?tt.stencil:!0,ot=tt.antialias!==void 0?tt.antialias:!1,at=tt.premultipliedAlpha!==void 0?tt.premultipliedAlpha:!0,st=tt.preserveDrawingBuffer!==void 0?tt.preserveDrawingBuffer:!1,lt=tt.powerPreference!==void 0?tt.powerPreference:"default",ct=tt.failIfMajorPerformanceCaveat!==void 0?tt.failIfMajorPerformanceCaveat:!1;let ut;nt!==null?ut=nt.getContextAttributes().alpha:ut=tt.alpha!==void 0?tt.alpha:!1;let ht=null,dt=null;const pt=[],mt=[];this.domElement=et,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=LinearEncoding,this.physicallyCorrectLights=!1,this.toneMapping=NoToneMapping,this.toneMappingExposure=1,Object.defineProperties(this,{gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}});const gt=this;let yt=!1,bt=0,wt=0,vt=null,kt=-1,St=null;const Tt=new Vector4,At=new Vector4;let Et=null,Mt=et.width,Lt=et.height,jt=1,Rt=null,$t=null;const xt=new Vector4(0,0,Mt,Lt),It=new Vector4(0,0,Mt,Lt);let Ot=!1;const zt=new Frustum;let Ut=!1,Wt=!1,Ft=null;const Nt=new Matrix4,Ct=new Vector2,Ht=new Vector3,Jt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function nn(){return vt===null?jt:1}let Yt=nt;function fn(sn,Xt){for(let xn=0;xn0?dt=mt[mt.length-1]:dt=null,pt.pop(),pt.length>0?ht=pt[pt.length-1]:ht=null};function Rr(sn,Xt,xn,Dn){if(sn.visible===!1)return;if(sn.layers.test(Xt.layers)){if(sn.isGroup)xn=sn.renderOrder;else if(sn.isLOD)sn.autoUpdate===!0&&sn.update(Xt);else if(sn.isLight)dt.pushLight(sn),sn.castShadow&&dt.pushShadow(sn);else if(sn.isSprite){if(!sn.frustumCulled||zt.intersectsSprite(sn)){Dn&&Ht.setFromMatrixPosition(sn.matrixWorld).applyMatrix4(Nt);const nr=dn.update(sn),lr=sn.material;lr.visible&&ht.push(sn,nr,lr,xn,Ht.z,null)}}else if((sn.isMesh||sn.isLine||sn.isPoints)&&(sn.isSkinnedMesh&&sn.skeleton.frame!==an.render.frame&&(sn.skeleton.update(),sn.skeleton.frame=an.render.frame),!sn.frustumCulled||zt.intersectsObject(sn))){Dn&&Ht.setFromMatrixPosition(sn.matrixWorld).applyMatrix4(Nt);const nr=dn.update(sn),lr=sn.material;if(Array.isArray(lr)){const cr=nr.groups;for(let Hr=0,_r=cr.length;Hr<_r;Hr++){const jr=cr[Hr],Gr=lr[jr.materialIndex];Gr&&Gr.visible&&ht.push(sn,nr,Gr,xn,Ht.z,jr)}}else lr.visible&&ht.push(sn,nr,lr,xn,Ht.z,null)}}const Kn=sn.children;for(let nr=0,lr=Kn.length;nr0&&Vr(Fn,Xt,xn),Dn&&En.viewport(Tt.copy(Dn)),Fn.length>0&&Fr(Fn,Xt,xn),Kn.length>0&&Fr(Kn,Xt,xn),nr.length>0&&Fr(nr,Xt,xn),En.buffers.depth.setTest(!0),En.buffers.depth.setMask(!0),En.buffers.color.setMask(!0),En.setPolygonOffset(!1)}function Vr(sn,Xt,xn){const Dn=_n.isWebGL2;Ft===null&&(Ft=new WebGLRenderTarget(1,1,{generateMipmaps:!0,type:cn.has("EXT_color_buffer_half_float")?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:Dn&&ot===!0?4:0})),gt.getDrawingBufferSize(Ct),Dn?Ft.setSize(Ct.x,Ct.y):Ft.setSize(floorPowerOfTwo(Ct.x),floorPowerOfTwo(Ct.y));const Fn=gt.getRenderTarget();gt.setRenderTarget(Ft),gt.clear();const Kn=gt.toneMapping;gt.toneMapping=NoToneMapping,Fr(sn,Xt,xn),gt.toneMapping=Kn,Tn.updateMultisampleRenderTarget(Ft),Tn.updateRenderTargetMipmap(Ft),gt.setRenderTarget(Fn)}function Fr(sn,Xt,xn){const Dn=Xt.isScene===!0?Xt.overrideMaterial:null;for(let Fn=0,Kn=sn.length;Fn0&&Tn.useMultisampledRTT(sn)===!1?Fn=en.get(sn).__webglMultisampledFramebuffer:Fn=Hr,Tt.copy(sn.viewport),At.copy(sn.scissor),Et=sn.scissorTest}else Tt.copy(xt).multiplyScalar(jt).floor(),At.copy(It).multiplyScalar(jt).floor(),Et=Ot;if(En.bindFramebuffer(36160,Fn)&&_n.drawBuffers&&Dn&&En.drawBuffers(sn,Fn),En.viewport(Tt),En.scissor(At),En.setScissorTest(Et),Kn){const cr=en.get(sn.texture);Yt.framebufferTexture2D(36160,36064,34069+Xt,cr.__webglTexture,xn)}else if(nr){const cr=en.get(sn.texture),Hr=Xt||0;Yt.framebufferTextureLayer(36160,36064,cr.__webglTexture,xn||0,Hr)}kt=-1},this.readRenderTargetPixels=function(sn,Xt,xn,Dn,Fn,Kn,nr){if(!(sn&&sn.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let lr=en.get(sn).__webglFramebuffer;if(sn.isWebGLCubeRenderTarget&&nr!==void 0&&(lr=lr[nr]),lr){En.bindFramebuffer(36160,lr);try{const cr=sn.texture,Hr=cr.format,_r=cr.type;if(Hr!==RGBAFormat&&Zt.convert(Hr)!==Yt.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const jr=_r===HalfFloatType&&(cn.has("EXT_color_buffer_half_float")||_n.isWebGL2&&cn.has("EXT_color_buffer_float"));if(_r!==UnsignedByteType&&Zt.convert(_r)!==Yt.getParameter(35738)&&!(_r===FloatType&&(_n.isWebGL2||cn.has("OES_texture_float")||cn.has("WEBGL_color_buffer_float")))&&!jr){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}Xt>=0&&Xt<=sn.width-Dn&&xn>=0&&xn<=sn.height-Fn&&Yt.readPixels(Xt,xn,Dn,Fn,Zt.convert(Hr),Zt.convert(_r),Kn)}finally{const cr=vt!==null?en.get(vt).__webglFramebuffer:null;En.bindFramebuffer(36160,cr)}}},this.copyFramebufferToTexture=function(sn,Xt,xn=0){const Dn=Math.pow(2,-xn),Fn=Math.floor(Xt.image.width*Dn),Kn=Math.floor(Xt.image.height*Dn);Tn.setTexture2D(Xt,0),Yt.copyTexSubImage2D(3553,xn,0,0,sn.x,sn.y,Fn,Kn),En.unbindTexture()},this.copyTextureToTexture=function(sn,Xt,xn,Dn=0){const Fn=Xt.image.width,Kn=Xt.image.height,nr=Zt.convert(xn.format),lr=Zt.convert(xn.type);Tn.setTexture2D(xn,0),Yt.pixelStorei(37440,xn.flipY),Yt.pixelStorei(37441,xn.premultiplyAlpha),Yt.pixelStorei(3317,xn.unpackAlignment),Xt.isDataTexture?Yt.texSubImage2D(3553,Dn,sn.x,sn.y,Fn,Kn,nr,lr,Xt.image.data):Xt.isCompressedTexture?Yt.compressedTexSubImage2D(3553,Dn,sn.x,sn.y,Xt.mipmaps[0].width,Xt.mipmaps[0].height,nr,Xt.mipmaps[0].data):Yt.texSubImage2D(3553,Dn,sn.x,sn.y,nr,lr,Xt.image),Dn===0&&xn.generateMipmaps&&Yt.generateMipmap(3553),En.unbindTexture()},this.copyTextureToTexture3D=function(sn,Xt,xn,Dn,Fn=0){if(gt.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Kn=sn.max.x-sn.min.x+1,nr=sn.max.y-sn.min.y+1,lr=sn.max.z-sn.min.z+1,cr=Zt.convert(Dn.format),Hr=Zt.convert(Dn.type);let _r;if(Dn.isData3DTexture)Tn.setTexture3D(Dn,0),_r=32879;else if(Dn.isDataArrayTexture)Tn.setTexture2DArray(Dn,0),_r=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}Yt.pixelStorei(37440,Dn.flipY),Yt.pixelStorei(37441,Dn.premultiplyAlpha),Yt.pixelStorei(3317,Dn.unpackAlignment);const jr=Yt.getParameter(3314),Gr=Yt.getParameter(32878),eo=Yt.getParameter(3316),Qr=Yt.getParameter(3315),_i=Yt.getParameter(32877),wr=xn.isCompressedTexture?xn.mipmaps[0]:xn.image;Yt.pixelStorei(3314,wr.width),Yt.pixelStorei(32878,wr.height),Yt.pixelStorei(3316,sn.min.x),Yt.pixelStorei(3315,sn.min.y),Yt.pixelStorei(32877,sn.min.z),xn.isDataTexture||xn.isData3DTexture?Yt.texSubImage3D(_r,Fn,Xt.x,Xt.y,Xt.z,Kn,nr,lr,cr,Hr,wr.data):xn.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Yt.compressedTexSubImage3D(_r,Fn,Xt.x,Xt.y,Xt.z,Kn,nr,lr,cr,wr.data)):Yt.texSubImage3D(_r,Fn,Xt.x,Xt.y,Xt.z,Kn,nr,lr,cr,Hr,wr),Yt.pixelStorei(3314,jr),Yt.pixelStorei(32878,Gr),Yt.pixelStorei(3316,eo),Yt.pixelStorei(3315,Qr),Yt.pixelStorei(32877,_i),Fn===0&&Dn.generateMipmaps&&Yt.generateMipmap(_r),En.unbindTexture()},this.initTexture=function(sn){sn.isCubeTexture?Tn.setTextureCube(sn,0):sn.isData3DTexture?Tn.setTexture3D(sn,0):sn.isDataArrayTexture?Tn.setTexture2DArray(sn,0):Tn.setTexture2D(sn,0),En.unbindTexture()},this.resetState=function(){bt=0,wt=0,vt=null,En.reset(),wn.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}class WebGL1Renderer extends WebGLRenderer{}WebGL1Renderer.prototype.isWebGL1Renderer=!0;class FogExp2{constructor(et,nt=25e-5){this.isFogExp2=!0,this.name="",this.color=new Color$1(et),this.density=nt}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Fog{constructor(et,nt=1,rt=1e3){this.isFog=!0,this.name="",this.color=new Color$1(et),this.near=nt,this.far=rt}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(et,nt){return super.copy(et,nt),et.background!==null&&(this.background=et.background.clone()),et.environment!==null&&(this.environment=et.environment.clone()),et.fog!==null&&(this.fog=et.fog.clone()),et.overrideMaterial!==null&&(this.overrideMaterial=et.overrideMaterial.clone()),this.autoUpdate=et.autoUpdate,this.matrixAutoUpdate=et.matrixAutoUpdate,this}toJSON(et){const nt=super.toJSON(et);return this.fog!==null&&(nt.object.fog=this.fog.toJSON()),nt}}class InterleavedBuffer{constructor(et,nt){this.isInterleavedBuffer=!0,this.array=et,this.stride=nt,this.count=et!==void 0?et.length/nt:0,this.usage=StaticDrawUsage,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=generateUUID$1()}onUploadCallback(){}set needsUpdate(et){et===!0&&this.version++}setUsage(et){return this.usage=et,this}copy(et){return this.array=new et.array.constructor(et.array),this.count=et.count,this.stride=et.stride,this.usage=et.usage,this}copyAt(et,nt,rt){et*=this.stride,rt*=nt.stride;for(let it=0,ot=this.stride;itet.far||nt.push({distance:lt,point:_intersectPoint.clone(),uv:Triangle.getUV(_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(et,nt){return super.copy(et,nt),et.center!==void 0&&this.center.copy(et.center),this.material=et.material,this}}function transformVertex(tt,et,nt,rt,it,ot){_alignedPosition.subVectors(tt,nt).addScalar(.5).multiply(rt),it!==void 0?(_rotatedPosition.x=ot*_alignedPosition.x-it*_alignedPosition.y,_rotatedPosition.y=it*_alignedPosition.x+ot*_alignedPosition.y):_rotatedPosition.copy(_alignedPosition),tt.copy(et),tt.x+=_rotatedPosition.x,tt.y+=_rotatedPosition.y,tt.applyMatrix4(_viewWorldMatrix)}const _v1$2=new Vector3,_v2$1=new Vector3;class LOD extends Object3D{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(et){super.copy(et,!1);const nt=et.levels;for(let rt=0,it=nt.length;rt0){let rt,it;for(rt=1,it=nt.length;rt0){_v1$2.setFromMatrixPosition(this.matrixWorld);const it=et.ray.origin.distanceTo(_v1$2);this.getObjectForDistance(it).raycast(et,nt)}}update(et){const nt=this.levels;if(nt.length>1){_v1$2.setFromMatrixPosition(et.matrixWorld),_v2$1.setFromMatrixPosition(this.matrixWorld);const rt=_v1$2.distanceTo(_v2$1)/et.zoom;nt[0].object.visible=!0;let it,ot;for(it=1,ot=nt.length;it=nt[it].distance;it++)nt[it-1].object.visible=!1,nt[it].object.visible=!0;for(this._currentLevel=it-1;itlt)continue;dt.applyMatrix4(this.matrixWorld);const Et=et.ray.origin.distanceTo(dt);Etet.far||nt.push({distance:Et,point:ht.clone().applyMatrix4(this.matrixWorld),index:vt,face:null,faceIndex:null,object:this})}}else{const bt=Math.max(0,at.start),wt=Math.min(yt.count,at.start+at.count);for(let vt=bt,kt=wt-1;vtlt)continue;dt.applyMatrix4(this.matrixWorld);const Tt=et.ray.origin.distanceTo(dt);Ttet.far||nt.push({distance:Tt,point:ht.clone().applyMatrix4(this.matrixWorld),index:vt,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const nt=this.geometry.morphAttributes,rt=Object.keys(nt);if(rt.length>0){const it=nt[rt[0]];if(it!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let ot=0,at=it.length;ot0){const it=nt[rt[0]];if(it!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let ot=0,at=it.length;otit.far)return;ot.push({distance:ct,distanceToRay:Math.sqrt(st),point:lt,index:et,face:null,object:at})}}class VideoTexture extends Texture{constructor(et,nt,rt,it,ot,at,st,lt,ct){super(et,nt,rt,it,ot,at,st,lt,ct),this.isVideoTexture=!0,this.minFilter=at!==void 0?at:LinearFilter,this.magFilter=ot!==void 0?ot:LinearFilter,this.generateMipmaps=!1;const ut=this;function ht(){ut.needsUpdate=!0,et.requestVideoFrameCallback(ht)}"requestVideoFrameCallback"in et&&et.requestVideoFrameCallback(ht)}clone(){return new this.constructor(this.image).copy(this)}update(){const et=this.image;"requestVideoFrameCallback"in et===!1&&et.readyState>=et.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class FramebufferTexture extends Texture{constructor(et,nt,rt){super({width:et,height:nt}),this.isFramebufferTexture=!0,this.format=rt,this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.generateMipmaps=!1,this.needsUpdate=!0}}class CompressedTexture extends Texture{constructor(et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt){super(null,at,st,lt,ct,ut,it,ot,ht,dt),this.isCompressedTexture=!0,this.image={width:nt,height:rt},this.mipmaps=et,this.flipY=!1,this.generateMipmaps=!1}}class CanvasTexture extends Texture{constructor(et,nt,rt,it,ot,at,st,lt,ct){super(et,nt,rt,it,ot,at,st,lt,ct),this.isCanvasTexture=!0,this.needsUpdate=!0}}let Curve$1=class{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(et,nt){const rt=this.getUtoTmapping(et);return this.getPoint(rt,nt)}getPoints(et=5){const nt=[];for(let rt=0;rt<=et;rt++)nt.push(this.getPoint(rt/et));return nt}getSpacedPoints(et=5){const nt=[];for(let rt=0;rt<=et;rt++)nt.push(this.getPointAt(rt/et));return nt}getLength(){const et=this.getLengths();return et[et.length-1]}getLengths(et=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===et+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const nt=[];let rt,it=this.getPoint(0),ot=0;nt.push(0);for(let at=1;at<=et;at++)rt=this.getPoint(at/et),ot+=rt.distanceTo(it),nt.push(ot),it=rt;return this.cacheArcLengths=nt,nt}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(et,nt){const rt=this.getLengths();let it=0;const ot=rt.length;let at;nt?at=nt:at=et*rt[ot-1];let st=0,lt=ot-1,ct;for(;st<=lt;)if(it=Math.floor(st+(lt-st)/2),ct=rt[it]-at,ct<0)st=it+1;else if(ct>0)lt=it-1;else{lt=it;break}if(it=lt,rt[it]===at)return it/(ot-1);const ut=rt[it],dt=rt[it+1]-ut,pt=(at-ut)/dt;return(it+pt)/(ot-1)}getTangent(et,nt){let it=et-1e-4,ot=et+1e-4;it<0&&(it=0),ot>1&&(ot=1);const at=this.getPoint(it),st=this.getPoint(ot),lt=nt||(at.isVector2?new Vector2:new Vector3);return lt.copy(st).sub(at).normalize(),lt}getTangentAt(et,nt){const rt=this.getUtoTmapping(et);return this.getTangent(rt,nt)}computeFrenetFrames(et,nt){const rt=new Vector3,it=[],ot=[],at=[],st=new Vector3,lt=new Matrix4;for(let pt=0;pt<=et;pt++){const mt=pt/et;it[pt]=this.getTangentAt(mt,new Vector3)}ot[0]=new Vector3,at[0]=new Vector3;let ct=Number.MAX_VALUE;const ut=Math.abs(it[0].x),ht=Math.abs(it[0].y),dt=Math.abs(it[0].z);ut<=ct&&(ct=ut,rt.set(1,0,0)),ht<=ct&&(ct=ht,rt.set(0,1,0)),dt<=ct&&rt.set(0,0,1),st.crossVectors(it[0],rt).normalize(),ot[0].crossVectors(it[0],st),at[0].crossVectors(it[0],ot[0]);for(let pt=1;pt<=et;pt++){if(ot[pt]=ot[pt-1].clone(),at[pt]=at[pt-1].clone(),st.crossVectors(it[pt-1],it[pt]),st.length()>Number.EPSILON){st.normalize();const mt=Math.acos(clamp$4(it[pt-1].dot(it[pt]),-1,1));ot[pt].applyMatrix4(lt.makeRotationAxis(st,mt))}at[pt].crossVectors(it[pt],ot[pt])}if(nt===!0){let pt=Math.acos(clamp$4(ot[0].dot(ot[et]),-1,1));pt/=et,it[0].dot(st.crossVectors(ot[0],ot[et]))>0&&(pt=-pt);for(let mt=1;mt<=et;mt++)ot[mt].applyMatrix4(lt.makeRotationAxis(it[mt],pt*mt)),at[mt].crossVectors(it[mt],ot[mt])}return{tangents:it,normals:ot,binormals:at}}clone(){return new this.constructor().copy(this)}copy(et){return this.arcLengthDivisions=et.arcLengthDivisions,this}toJSON(){const et={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return et.arcLengthDivisions=this.arcLengthDivisions,et.type=this.type,et}fromJSON(et){return this.arcLengthDivisions=et.arcLengthDivisions,this}};class EllipseCurve extends Curve$1{constructor(et=0,nt=0,rt=1,it=1,ot=0,at=Math.PI*2,st=!1,lt=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=et,this.aY=nt,this.xRadius=rt,this.yRadius=it,this.aStartAngle=ot,this.aEndAngle=at,this.aClockwise=st,this.aRotation=lt}getPoint(et,nt){const rt=nt||new Vector2,it=Math.PI*2;let ot=this.aEndAngle-this.aStartAngle;const at=Math.abs(ot)it;)ot-=it;ot0?0:(Math.floor(Math.abs(st)/ot)+1)*ot:lt===0&&st===ot-1&&(st=ot-2,lt=1);let ct,ut;this.closed||st>0?ct=it[(st-1)%ot]:(tmp.subVectors(it[0],it[1]).add(it[0]),ct=tmp);const ht=it[st%ot],dt=it[(st+1)%ot];if(this.closed||st+2it.length-2?it.length-1:at+1],ht=it[at>it.length-3?it.length-1:at+2];return rt.set(CatmullRom(st,lt.x,ct.x,ut.x,ht.x),CatmullRom(st,lt.y,ct.y,ut.y,ht.y)),rt}copy(et){super.copy(et),this.points=[];for(let nt=0,rt=et.points.length;nt=rt){const at=it[ot]-rt,st=this.curves[ot],lt=st.getLength(),ct=lt===0?0:1-at/lt;return st.getPointAt(ct,nt)}ot++}return null}getLength(){const et=this.getCurveLengths();return et[et.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const et=[];let nt=0;for(let rt=0,it=this.curves.length;rt1&&!nt[nt.length-1].equals(nt[0])&&nt.push(nt[0]),nt}copy(et){super.copy(et),this.curves=[];for(let nt=0,rt=et.curves.length;nt0){const ht=ct.getPoint(0);ht.equals(this.currentPoint)||this.lineTo(ht.x,ht.y)}this.curves.push(ct);const ut=ct.getPoint(1);return this.currentPoint.copy(ut),this}copy(et){return super.copy(et),this.currentPoint.copy(et.currentPoint),this}toJSON(){const et=super.toJSON();return et.currentPoint=this.currentPoint.toArray(),et}fromJSON(et){return super.fromJSON(et),this.currentPoint.fromArray(et.currentPoint),this}};class LatheGeometry extends BufferGeometry{constructor(et=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],nt=12,rt=0,it=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:et,segments:nt,phiStart:rt,phiLength:it},nt=Math.floor(nt),it=clamp$4(it,0,Math.PI*2);const ot=[],at=[],st=[],lt=[],ct=[],ut=1/nt,ht=new Vector3,dt=new Vector2,pt=new Vector3,mt=new Vector3,gt=new Vector3;let yt=0,bt=0;for(let wt=0;wt<=et.length-1;wt++)switch(wt){case 0:yt=et[wt+1].x-et[wt].x,bt=et[wt+1].y-et[wt].y,pt.x=bt*1,pt.y=-yt,pt.z=bt*0,gt.copy(pt),pt.normalize(),lt.push(pt.x,pt.y,pt.z);break;case et.length-1:lt.push(gt.x,gt.y,gt.z);break;default:yt=et[wt+1].x-et[wt].x,bt=et[wt+1].y-et[wt].y,pt.x=bt*1,pt.y=-yt,pt.z=bt*0,mt.copy(pt),pt.x+=gt.x,pt.y+=gt.y,pt.z+=gt.z,pt.normalize(),lt.push(pt.x,pt.y,pt.z),gt.copy(mt)}for(let wt=0;wt<=nt;wt++){const vt=rt+wt*ut*it,kt=Math.sin(vt),St=Math.cos(vt);for(let Tt=0;Tt<=et.length-1;Tt++){ht.x=et[Tt].x*kt,ht.y=et[Tt].y,ht.z=et[Tt].x*St,at.push(ht.x,ht.y,ht.z),dt.x=wt/nt,dt.y=Tt/(et.length-1),st.push(dt.x,dt.y);const At=lt[3*Tt+0]*kt,Et=lt[3*Tt+1],Mt=lt[3*Tt+0]*St;ct.push(At,Et,Mt)}}for(let wt=0;wt0&&vt(!0),nt>0&&vt(!1)),this.setIndex(ut),this.setAttribute("position",new Float32BufferAttribute(ht,3)),this.setAttribute("normal",new Float32BufferAttribute(dt,3)),this.setAttribute("uv",new Float32BufferAttribute(pt,2));function wt(){const kt=new Vector3,St=new Vector3;let Tt=0;const At=(nt-et)/rt;for(let Et=0;Et<=ot;Et++){const Mt=[],Lt=Et/ot,jt=Lt*(nt-et)+et;for(let Rt=0;Rt<=it;Rt++){const $t=Rt/it,xt=$t*lt+st,It=Math.sin(xt),Ot=Math.cos(xt);St.x=jt*It,St.y=-Lt*rt+yt,St.z=jt*Ot,ht.push(St.x,St.y,St.z),kt.set(It,At,Ot).normalize(),dt.push(kt.x,kt.y,kt.z),pt.push($t,1-Lt),Mt.push(mt++)}gt.push(Mt)}for(let Et=0;Et.9&&At<.1&&(vt<.2&&(at[wt+0]+=1),kt<.2&&(at[wt+2]+=1),St<.2&&(at[wt+4]+=1))}}function dt(wt){ot.push(wt.x,wt.y,wt.z)}function pt(wt,vt){const kt=wt*3;vt.x=et[kt+0],vt.y=et[kt+1],vt.z=et[kt+2]}function mt(){const wt=new Vector3,vt=new Vector3,kt=new Vector3,St=new Vector3,Tt=new Vector2,At=new Vector2,Et=new Vector2;for(let Mt=0,Lt=0;Mt80*nt){st=ct=tt[0],lt=ut=tt[1];for(let mt=nt;mtct&&(ct=ht),dt>ut&&(ut=dt);pt=Math.max(ct-st,ut-lt),pt=pt!==0?1/pt:0}return earcutLinked(ot,at,nt,st,lt,pt),at}};function linkedList(tt,et,nt,rt,it){let ot,at;if(it===signedArea(tt,et,nt,rt)>0)for(ot=et;ot=et;ot-=rt)at=insertNode(ot,tt[ot],tt[ot+1],at);return at&&equals(at,at.next)&&(removeNode(at),at=at.next),at}function filterPoints(tt,et){if(!tt)return tt;et||(et=tt);let nt=tt,rt;do if(rt=!1,!nt.steiner&&(equals(nt,nt.next)||area(nt.prev,nt,nt.next)===0)){if(removeNode(nt),nt=et=nt.prev,nt===nt.next)break;rt=!0}else nt=nt.next;while(rt||nt!==et);return et}function earcutLinked(tt,et,nt,rt,it,ot,at){if(!tt)return;!at&&ot&&indexCurve(tt,rt,it,ot);let st=tt,lt,ct;for(;tt.prev!==tt.next;){if(lt=tt.prev,ct=tt.next,ot?isEarHashed(tt,rt,it,ot):isEar(tt)){et.push(lt.i/nt),et.push(tt.i/nt),et.push(ct.i/nt),removeNode(tt),tt=ct.next,st=ct.next;continue}if(tt=ct,tt===st){at?at===1?(tt=cureLocalIntersections(filterPoints(tt),et,nt),earcutLinked(tt,et,nt,rt,it,ot,2)):at===2&&splitEarcut(tt,et,nt,rt,it,ot):earcutLinked(filterPoints(tt),et,nt,rt,it,ot,1);break}}}function isEar(tt){const et=tt.prev,nt=tt,rt=tt.next;if(area(et,nt,rt)>=0)return!1;let it=tt.next.next;for(;it!==tt.prev;){if(pointInTriangle(et.x,et.y,nt.x,nt.y,rt.x,rt.y,it.x,it.y)&&area(it.prev,it,it.next)>=0)return!1;it=it.next}return!0}function isEarHashed(tt,et,nt,rt){const it=tt.prev,ot=tt,at=tt.next;if(area(it,ot,at)>=0)return!1;const st=it.xot.x?it.x>at.x?it.x:at.x:ot.x>at.x?ot.x:at.x,ut=it.y>ot.y?it.y>at.y?it.y:at.y:ot.y>at.y?ot.y:at.y,ht=zOrder(st,lt,et,nt,rt),dt=zOrder(ct,ut,et,nt,rt);let pt=tt.prevZ,mt=tt.nextZ;for(;pt&&pt.z>=ht&&mt&&mt.z<=dt;){if(pt!==tt.prev&&pt!==tt.next&&pointInTriangle(it.x,it.y,ot.x,ot.y,at.x,at.y,pt.x,pt.y)&&area(pt.prev,pt,pt.next)>=0||(pt=pt.prevZ,mt!==tt.prev&&mt!==tt.next&&pointInTriangle(it.x,it.y,ot.x,ot.y,at.x,at.y,mt.x,mt.y)&&area(mt.prev,mt,mt.next)>=0))return!1;mt=mt.nextZ}for(;pt&&pt.z>=ht;){if(pt!==tt.prev&&pt!==tt.next&&pointInTriangle(it.x,it.y,ot.x,ot.y,at.x,at.y,pt.x,pt.y)&&area(pt.prev,pt,pt.next)>=0)return!1;pt=pt.prevZ}for(;mt&&mt.z<=dt;){if(mt!==tt.prev&&mt!==tt.next&&pointInTriangle(it.x,it.y,ot.x,ot.y,at.x,at.y,mt.x,mt.y)&&area(mt.prev,mt,mt.next)>=0)return!1;mt=mt.nextZ}return!0}function cureLocalIntersections(tt,et,nt){let rt=tt;do{const it=rt.prev,ot=rt.next.next;!equals(it,ot)&&intersects(it,rt,rt.next,ot)&&locallyInside(it,ot)&&locallyInside(ot,it)&&(et.push(it.i/nt),et.push(rt.i/nt),et.push(ot.i/nt),removeNode(rt),removeNode(rt.next),rt=tt=ot),rt=rt.next}while(rt!==tt);return filterPoints(rt)}function splitEarcut(tt,et,nt,rt,it,ot){let at=tt;do{let st=at.next.next;for(;st!==at.prev;){if(at.i!==st.i&&isValidDiagonal(at,st)){let lt=splitPolygon(at,st);at=filterPoints(at,at.next),lt=filterPoints(lt,lt.next),earcutLinked(at,et,nt,rt,it,ot),earcutLinked(lt,et,nt,rt,it,ot);return}st=st.next}at=at.next}while(at!==tt)}function eliminateHoles(tt,et,nt,rt){const it=[];let ot,at,st,lt,ct;for(ot=0,at=et.length;ot=nt.next.y&&nt.next.y!==nt.y){const dt=nt.x+(it-nt.y)*(nt.next.x-nt.x)/(nt.next.y-nt.y);if(dt<=rt&&dt>ot){if(ot=dt,dt===rt){if(it===nt.y)return nt;if(it===nt.next.y)return nt.next}at=nt.x=nt.x&&nt.x>=lt&&rt!==nt.x&&pointInTriangle(itat.x||nt.x===at.x&§orContainsSector(at,nt)))&&(at=nt,ut=ht)),nt=nt.next;while(nt!==st);return at}function sectorContainsSector(tt,et){return area(tt.prev,tt,et.prev)<0&&area(et.next,tt,tt.next)<0}function indexCurve(tt,et,nt,rt){let it=tt;do it.z===null&&(it.z=zOrder(it.x,it.y,et,nt,rt)),it.prevZ=it.prev,it.nextZ=it.next,it=it.next;while(it!==tt);it.prevZ.nextZ=null,it.prevZ=null,sortLinked(it)}function sortLinked(tt){let et,nt,rt,it,ot,at,st,lt,ct=1;do{for(nt=tt,tt=null,ot=null,at=0;nt;){for(at++,rt=nt,st=0,et=0;et0||lt>0&&rt;)st!==0&&(lt===0||!rt||nt.z<=rt.z)?(it=nt,nt=nt.nextZ,st--):(it=rt,rt=rt.nextZ,lt--),ot?ot.nextZ=it:tt=it,it.prevZ=ot,ot=it;nt=rt}ot.nextZ=null,ct*=2}while(at>1);return tt}function zOrder(tt,et,nt,rt,it){return tt=32767*(tt-nt)*it,et=32767*(et-rt)*it,tt=(tt|tt<<8)&16711935,tt=(tt|tt<<4)&252645135,tt=(tt|tt<<2)&858993459,tt=(tt|tt<<1)&1431655765,et=(et|et<<8)&16711935,et=(et|et<<4)&252645135,et=(et|et<<2)&858993459,et=(et|et<<1)&1431655765,tt|et<<1}function getLeftmost(tt){let et=tt,nt=tt;do(et.x=0&&(tt-at)*(rt-st)-(nt-at)*(et-st)>=0&&(nt-at)*(ot-st)-(it-at)*(rt-st)>=0}function isValidDiagonal(tt,et){return tt.next.i!==et.i&&tt.prev.i!==et.i&&!intersectsPolygon(tt,et)&&(locallyInside(tt,et)&&locallyInside(et,tt)&&middleInside(tt,et)&&(area(tt.prev,tt,et.prev)||area(tt,et.prev,et))||equals(tt,et)&&area(tt.prev,tt,tt.next)>0&&area(et.prev,et,et.next)>0)}function area(tt,et,nt){return(et.y-tt.y)*(nt.x-et.x)-(et.x-tt.x)*(nt.y-et.y)}function equals(tt,et){return tt.x===et.x&&tt.y===et.y}function intersects(tt,et,nt,rt){const it=sign$2(area(tt,et,nt)),ot=sign$2(area(tt,et,rt)),at=sign$2(area(nt,rt,tt)),st=sign$2(area(nt,rt,et));return!!(it!==ot&&at!==st||it===0&&onSegment(tt,nt,et)||ot===0&&onSegment(tt,rt,et)||at===0&&onSegment(nt,tt,rt)||st===0&&onSegment(nt,et,rt))}function onSegment(tt,et,nt){return et.x<=Math.max(tt.x,nt.x)&&et.x>=Math.min(tt.x,nt.x)&&et.y<=Math.max(tt.y,nt.y)&&et.y>=Math.min(tt.y,nt.y)}function sign$2(tt){return tt>0?1:tt<0?-1:0}function intersectsPolygon(tt,et){let nt=tt;do{if(nt.i!==tt.i&&nt.next.i!==tt.i&&nt.i!==et.i&&nt.next.i!==et.i&&intersects(nt,nt.next,tt,et))return!0;nt=nt.next}while(nt!==tt);return!1}function locallyInside(tt,et){return area(tt.prev,tt,tt.next)<0?area(tt,et,tt.next)>=0&&area(tt,tt.prev,et)>=0:area(tt,et,tt.prev)<0||area(tt,tt.next,et)<0}function middleInside(tt,et){let nt=tt,rt=!1;const it=(tt.x+et.x)/2,ot=(tt.y+et.y)/2;do nt.y>ot!=nt.next.y>ot&&nt.next.y!==nt.y&&it<(nt.next.x-nt.x)*(ot-nt.y)/(nt.next.y-nt.y)+nt.x&&(rt=!rt),nt=nt.next;while(nt!==tt);return rt}function splitPolygon(tt,et){const nt=new Node(tt.i,tt.x,tt.y),rt=new Node(et.i,et.x,et.y),it=tt.next,ot=et.prev;return tt.next=et,et.prev=tt,nt.next=it,it.prev=nt,rt.next=nt,nt.prev=rt,ot.next=rt,rt.prev=ot,rt}function insertNode(tt,et,nt,rt){const it=new Node(tt,et,nt);return rt?(it.next=rt.next,it.prev=rt,rt.next.prev=it,rt.next=it):(it.prev=it,it.next=it),it}function removeNode(tt){tt.next.prev=tt.prev,tt.prev.next=tt.next,tt.prevZ&&(tt.prevZ.nextZ=tt.nextZ),tt.nextZ&&(tt.nextZ.prevZ=tt.prevZ)}function Node(tt,et,nt){this.i=tt,this.x=et,this.y=nt,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(tt,et,nt,rt){let it=0;for(let ot=et,at=nt-rt;ot2&&tt[et-1].equals(tt[0])&&tt.pop()}function addContour(tt,et){for(let nt=0;ntNumber.EPSILON){const Sn=Math.sqrt(un),Mn=Math.sqrt(Cn*Cn+$n*$n),Nn=Tn.x-gn/Sn,hn=Tn.y+dn/Sn,Qt=Rn.x-$n/Mn,Zt=Rn.y+Cn/Mn,wn=((Qt-Nn)*$n-(Zt-hn)*Cn)/(dn*$n-gn*Cn);An=Nn+dn*wn-en.x,yn=hn+gn*wn-en.y;const On=An*An+yn*yn;if(On<=2)return new Vector2(An,yn);kn=Math.sqrt(On/2)}else{let Sn=!1;dn>Number.EPSILON?Cn>Number.EPSILON&&(Sn=!0):dn<-Number.EPSILON?Cn<-Number.EPSILON&&(Sn=!0):Math.sign(gn)===Math.sign($n)&&(Sn=!0),Sn?(An=-gn,yn=dn,kn=Math.sqrt(un)):(An=dn,yn=gn,kn=Math.sqrt(un/2))}return new Vector2(An/kn,yn/kn)}const Wt=[];for(let en=0,Tn=xt.length,Rn=Tn-1,An=en+1;en=0;en--){const Tn=en/yt,Rn=pt*Math.cos(Tn*Math.PI/2),An=mt*Math.sin(Tn*Math.PI/2)+gt;for(let yn=0,kn=xt.length;yn=0;){const An=Rn;let yn=Rn-1;yn<0&&(yn=en.length-1);for(let kn=0,dn=ut+yt*2;kn0)&&pt.push(vt,kt,Tt),(bt!==rt-1||lt0!=et>0&&this.version++,this._sheen=et}get clearcoat(){return this._clearcoat}set clearcoat(et){this._clearcoat>0!=et>0&&this.version++,this._clearcoat=et}get iridescence(){return this._iridescence}set iridescence(et){this._iridescence>0!=et>0&&this.version++,this._iridescence=et}get transmission(){return this._transmission}set transmission(et){this._transmission>0!=et>0&&this.version++,this._transmission=et}copy(et){return super.copy(et),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=et.clearcoat,this.clearcoatMap=et.clearcoatMap,this.clearcoatRoughness=et.clearcoatRoughness,this.clearcoatRoughnessMap=et.clearcoatRoughnessMap,this.clearcoatNormalMap=et.clearcoatNormalMap,this.clearcoatNormalScale.copy(et.clearcoatNormalScale),this.ior=et.ior,this.iridescence=et.iridescence,this.iridescenceMap=et.iridescenceMap,this.iridescenceIOR=et.iridescenceIOR,this.iridescenceThicknessRange=[...et.iridescenceThicknessRange],this.iridescenceThicknessMap=et.iridescenceThicknessMap,this.sheen=et.sheen,this.sheenColor.copy(et.sheenColor),this.sheenColorMap=et.sheenColorMap,this.sheenRoughness=et.sheenRoughness,this.sheenRoughnessMap=et.sheenRoughnessMap,this.transmission=et.transmission,this.transmissionMap=et.transmissionMap,this.thickness=et.thickness,this.thicknessMap=et.thicknessMap,this.attenuationDistance=et.attenuationDistance,this.attenuationColor.copy(et.attenuationColor),this.specularIntensity=et.specularIntensity,this.specularIntensityMap=et.specularIntensityMap,this.specularColor.copy(et.specularColor),this.specularColorMap=et.specularColorMap,this}}class MeshPhongMaterial extends Material{constructor(et){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Color$1(16777215),this.specular=new Color$1(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(et)}copy(et){return super.copy(et),this.color.copy(et.color),this.specular.copy(et.specular),this.shininess=et.shininess,this.map=et.map,this.lightMap=et.lightMap,this.lightMapIntensity=et.lightMapIntensity,this.aoMap=et.aoMap,this.aoMapIntensity=et.aoMapIntensity,this.emissive.copy(et.emissive),this.emissiveMap=et.emissiveMap,this.emissiveIntensity=et.emissiveIntensity,this.bumpMap=et.bumpMap,this.bumpScale=et.bumpScale,this.normalMap=et.normalMap,this.normalMapType=et.normalMapType,this.normalScale.copy(et.normalScale),this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this.specularMap=et.specularMap,this.alphaMap=et.alphaMap,this.envMap=et.envMap,this.combine=et.combine,this.reflectivity=et.reflectivity,this.refractionRatio=et.refractionRatio,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this.wireframeLinecap=et.wireframeLinecap,this.wireframeLinejoin=et.wireframeLinejoin,this.flatShading=et.flatShading,this.fog=et.fog,this}}class MeshToonMaterial extends Material{constructor(et){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Color$1(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(et)}copy(et){return super.copy(et),this.color.copy(et.color),this.map=et.map,this.gradientMap=et.gradientMap,this.lightMap=et.lightMap,this.lightMapIntensity=et.lightMapIntensity,this.aoMap=et.aoMap,this.aoMapIntensity=et.aoMapIntensity,this.emissive.copy(et.emissive),this.emissiveMap=et.emissiveMap,this.emissiveIntensity=et.emissiveIntensity,this.bumpMap=et.bumpMap,this.bumpScale=et.bumpScale,this.normalMap=et.normalMap,this.normalMapType=et.normalMapType,this.normalScale.copy(et.normalScale),this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this.alphaMap=et.alphaMap,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this.wireframeLinecap=et.wireframeLinecap,this.wireframeLinejoin=et.wireframeLinejoin,this.fog=et.fog,this}}class MeshNormalMaterial extends Material{constructor(et){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(et)}copy(et){return super.copy(et),this.bumpMap=et.bumpMap,this.bumpScale=et.bumpScale,this.normalMap=et.normalMap,this.normalMapType=et.normalMapType,this.normalScale.copy(et.normalScale),this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this.flatShading=et.flatShading,this}}class MeshLambertMaterial extends Material{constructor(et){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Color$1(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(et)}copy(et){return super.copy(et),this.color.copy(et.color),this.map=et.map,this.lightMap=et.lightMap,this.lightMapIntensity=et.lightMapIntensity,this.aoMap=et.aoMap,this.aoMapIntensity=et.aoMapIntensity,this.emissive.copy(et.emissive),this.emissiveMap=et.emissiveMap,this.emissiveIntensity=et.emissiveIntensity,this.specularMap=et.specularMap,this.alphaMap=et.alphaMap,this.envMap=et.envMap,this.combine=et.combine,this.reflectivity=et.reflectivity,this.refractionRatio=et.refractionRatio,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this.wireframeLinecap=et.wireframeLinecap,this.wireframeLinejoin=et.wireframeLinejoin,this.fog=et.fog,this}}class MeshMatcapMaterial extends Material{constructor(et){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Color$1(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(et)}copy(et){return super.copy(et),this.defines={MATCAP:""},this.color.copy(et.color),this.matcap=et.matcap,this.map=et.map,this.bumpMap=et.bumpMap,this.bumpScale=et.bumpScale,this.normalMap=et.normalMap,this.normalMapType=et.normalMapType,this.normalScale.copy(et.normalScale),this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this.alphaMap=et.alphaMap,this.flatShading=et.flatShading,this.fog=et.fog,this}}class LineDashedMaterial extends LineBasicMaterial{constructor(et){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(et)}copy(et){return super.copy(et),this.scale=et.scale,this.dashSize=et.dashSize,this.gapSize=et.gapSize,this}}function arraySlice(tt,et,nt){return isTypedArray$2(tt)?new tt.constructor(tt.subarray(et,nt!==void 0?nt:tt.length)):tt.slice(et,nt)}function convertArray(tt,et,nt){return!tt||!nt&&tt.constructor===et?tt:typeof et.BYTES_PER_ELEMENT=="number"?new et(tt):Array.prototype.slice.call(tt)}function isTypedArray$2(tt){return ArrayBuffer.isView(tt)&&!(tt instanceof DataView)}function getKeyframeOrder(tt){function et(it,ot){return tt[it]-tt[ot]}const nt=tt.length,rt=new Array(nt);for(let it=0;it!==nt;++it)rt[it]=it;return rt.sort(et),rt}function sortedArray(tt,et,nt){const rt=tt.length,it=new tt.constructor(rt);for(let ot=0,at=0;at!==rt;++ot){const st=nt[ot]*et;for(let lt=0;lt!==et;++lt)it[at++]=tt[st+lt]}return it}function flattenJSON(tt,et,nt,rt){let it=1,ot=tt[0];for(;ot!==void 0&&ot[rt]===void 0;)ot=tt[it++];if(ot===void 0)return;let at=ot[rt];if(at!==void 0)if(Array.isArray(at))do at=ot[rt],at!==void 0&&(et.push(ot.time),nt.push.apply(nt,at)),ot=tt[it++];while(ot!==void 0);else if(at.toArray!==void 0)do at=ot[rt],at!==void 0&&(et.push(ot.time),at.toArray(nt,nt.length)),ot=tt[it++];while(ot!==void 0);else do at=ot[rt],at!==void 0&&(et.push(ot.time),nt.push(at)),ot=tt[it++];while(ot!==void 0)}function subclip(tt,et,nt,rt,it=30){const ot=tt.clone();ot.name=et;const at=[];for(let lt=0;lt=rt)){ht.push(ct.times[pt]);for(let gt=0;gtot.tracks[lt].times[0]&&(st=ot.tracks[lt].times[0]);for(let lt=0;lt=st.times[mt]){const bt=mt*ht+ut,wt=bt+ht-ut;gt=arraySlice(st.values,bt,wt)}else{const bt=st.createInterpolant(),wt=ut,vt=ht-ut;bt.evaluate(ot),gt=arraySlice(bt.resultBuffer,wt,vt)}lt==="quaternion"&&new Quaternion().fromArray(gt).normalize().conjugate().toArray(gt);const yt=ct.times.length;for(let bt=0;bt=ot)){const st=nt[1];et=ot)break t}at=rt,rt=0;break n}break e}for(;rt>>1;etnt;)--at;if(++at,ot!==0||at!==it){ot>=at&&(at=Math.max(at,1),ot=at-1);const st=this.getValueSize();this.times=arraySlice(rt,ot,at),this.values=arraySlice(this.values,ot*st,at*st)}return this}validate(){let et=!0;const nt=this.getValueSize();nt-Math.floor(nt)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),et=!1);const rt=this.times,it=this.values,ot=rt.length;ot===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),et=!1);let at=null;for(let st=0;st!==ot;st++){const lt=rt[st];if(typeof lt=="number"&&isNaN(lt)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,st,lt),et=!1;break}if(at!==null&&at>lt){console.error("THREE.KeyframeTrack: Out of order keys.",this,st,lt,at),et=!1;break}at=lt}if(it!==void 0&&isTypedArray$2(it))for(let st=0,lt=it.length;st!==lt;++st){const ct=it[st];if(isNaN(ct)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,st,ct),et=!1;break}}return et}optimize(){const et=arraySlice(this.times),nt=arraySlice(this.values),rt=this.getValueSize(),it=this.getInterpolation()===InterpolateSmooth,ot=et.length-1;let at=1;for(let st=1;st0){et[at]=et[ot];for(let st=ot*rt,lt=at*rt,ct=0;ct!==rt;++ct)nt[lt+ct]=nt[st+ct];++at}return at!==et.length?(this.times=arraySlice(et,0,at),this.values=arraySlice(nt,0,at*rt)):(this.times=et,this.values=nt),this}clone(){const et=arraySlice(this.times,0),nt=arraySlice(this.values,0),rt=this.constructor,it=new rt(this.name,et,nt);return it.createInterpolant=this.createInterpolant,it}}KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{}BooleanKeyframeTrack.prototype.ValueTypeName="bool";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(et,nt,rt,it){super(et,nt,rt,it)}interpolate_(et,nt,rt,it){const ot=this.resultBuffer,at=this.sampleValues,st=this.valueSize,lt=(rt-nt)/(it-nt);let ct=et*st;for(let ut=ct+st;ct!==ut;ct+=4)Quaternion.slerpFlat(ot,0,at,ct-st,at,ct,lt);return ot}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(et){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),et)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion";QuaternionKeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{}StringKeyframeTrack.prototype.ValueTypeName="string";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(et,nt=-1,rt,it=NormalAnimationBlendMode){this.name=et,this.tracks=rt,this.duration=nt,this.blendMode=it,this.uuid=generateUUID$1(),this.duration<0&&this.resetDuration()}static parse(et){const nt=[],rt=et.tracks,it=1/(et.fps||1);for(let at=0,st=rt.length;at!==st;++at)nt.push(parseKeyframeTrack(rt[at]).scale(it));const ot=new this(et.name,et.duration,nt,et.blendMode);return ot.uuid=et.uuid,ot}static toJSON(et){const nt=[],rt=et.tracks,it={name:et.name,duration:et.duration,tracks:nt,uuid:et.uuid,blendMode:et.blendMode};for(let ot=0,at=rt.length;ot!==at;++ot)nt.push(KeyframeTrack.toJSON(rt[ot]));return it}static CreateFromMorphTargetSequence(et,nt,rt,it){const ot=nt.length,at=[];for(let st=0;st1){const ht=ut[1];let dt=it[ht];dt||(it[ht]=dt=[]),dt.push(ct)}}const at=[];for(const st in it)at.push(this.CreateFromMorphTargetSequence(st,it[st],nt,rt));return at}static parseAnimation(et,nt){if(!et)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const rt=function(ht,dt,pt,mt,gt){if(pt.length!==0){const yt=[],bt=[];flattenJSON(pt,yt,bt,mt),yt.length!==0&>.push(new ht(dt,yt,bt))}},it=[],ot=et.name||"default",at=et.fps||30,st=et.blendMode;let lt=et.length||-1;const ct=et.hierarchy||[];for(let ht=0;ht{nt&&nt(ot),this.manager.itemEnd(et)},0),ot;if(loading[et]!==void 0){loading[et].push({onLoad:nt,onProgress:rt,onError:it});return}loading[et]=[],loading[et].push({onLoad:nt,onProgress:rt,onError:it});const at=new Request(et,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),st=this.mimeType,lt=this.responseType;fetch(at).then(ct=>{if(ct.status===200||ct.status===0){if(ct.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||ct.body===void 0||ct.body.getReader===void 0)return ct;const ut=loading[et],ht=ct.body.getReader(),dt=ct.headers.get("Content-Length"),pt=dt?parseInt(dt):0,mt=pt!==0;let gt=0;const yt=new ReadableStream({start(bt){wt();function wt(){ht.read().then(({done:vt,value:kt})=>{if(vt)bt.close();else{gt+=kt.byteLength;const St=new ProgressEvent("progress",{lengthComputable:mt,loaded:gt,total:pt});for(let Tt=0,At=ut.length;Tt{switch(lt){case"arraybuffer":return ct.arrayBuffer();case"blob":return ct.blob();case"document":return ct.text().then(ut=>new DOMParser().parseFromString(ut,st));case"json":return ct.json();default:if(st===void 0)return ct.text();{const ht=/charset="?([^;"\s]*)"?/i.exec(st),dt=ht&&ht[1]?ht[1].toLowerCase():void 0,pt=new TextDecoder(dt);return ct.arrayBuffer().then(mt=>pt.decode(mt))}}}).then(ct=>{Cache.add(et,ct);const ut=loading[et];delete loading[et];for(let ht=0,dt=ut.length;ht{const ut=loading[et];if(ut===void 0)throw this.manager.itemError(et),ct;delete loading[et];for(let ht=0,dt=ut.length;ht{this.manager.itemEnd(et)}),this.manager.itemStart(et)}setResponseType(et){return this.responseType=et,this}setMimeType(et){return this.mimeType=et,this}}class AnimationLoader extends Loader$2{constructor(et){super(et)}load(et,nt,rt,it){const ot=this,at=new FileLoader(this.manager);at.setPath(this.path),at.setRequestHeader(this.requestHeader),at.setWithCredentials(this.withCredentials),at.load(et,function(st){try{nt(ot.parse(JSON.parse(st)))}catch(lt){it?it(lt):console.error(lt),ot.manager.itemError(et)}},rt,it)}parse(et){const nt=[];for(let rt=0;rt0:it.vertexColors=et.vertexColors),et.uniforms!==void 0)for(const ot in et.uniforms){const at=et.uniforms[ot];switch(it.uniforms[ot]={},at.type){case"t":it.uniforms[ot].value=rt(at.value);break;case"c":it.uniforms[ot].value=new Color$1().setHex(at.value);break;case"v2":it.uniforms[ot].value=new Vector2().fromArray(at.value);break;case"v3":it.uniforms[ot].value=new Vector3().fromArray(at.value);break;case"v4":it.uniforms[ot].value=new Vector4().fromArray(at.value);break;case"m3":it.uniforms[ot].value=new Matrix3().fromArray(at.value);break;case"m4":it.uniforms[ot].value=new Matrix4().fromArray(at.value);break;default:it.uniforms[ot].value=at.value}}if(et.defines!==void 0&&(it.defines=et.defines),et.vertexShader!==void 0&&(it.vertexShader=et.vertexShader),et.fragmentShader!==void 0&&(it.fragmentShader=et.fragmentShader),et.extensions!==void 0)for(const ot in et.extensions)it.extensions[ot]=et.extensions[ot];if(et.shading!==void 0&&(it.flatShading=et.shading===1),et.size!==void 0&&(it.size=et.size),et.sizeAttenuation!==void 0&&(it.sizeAttenuation=et.sizeAttenuation),et.map!==void 0&&(it.map=rt(et.map)),et.matcap!==void 0&&(it.matcap=rt(et.matcap)),et.alphaMap!==void 0&&(it.alphaMap=rt(et.alphaMap)),et.bumpMap!==void 0&&(it.bumpMap=rt(et.bumpMap)),et.bumpScale!==void 0&&(it.bumpScale=et.bumpScale),et.normalMap!==void 0&&(it.normalMap=rt(et.normalMap)),et.normalMapType!==void 0&&(it.normalMapType=et.normalMapType),et.normalScale!==void 0){let ot=et.normalScale;Array.isArray(ot)===!1&&(ot=[ot,ot]),it.normalScale=new Vector2().fromArray(ot)}return et.displacementMap!==void 0&&(it.displacementMap=rt(et.displacementMap)),et.displacementScale!==void 0&&(it.displacementScale=et.displacementScale),et.displacementBias!==void 0&&(it.displacementBias=et.displacementBias),et.roughnessMap!==void 0&&(it.roughnessMap=rt(et.roughnessMap)),et.metalnessMap!==void 0&&(it.metalnessMap=rt(et.metalnessMap)),et.emissiveMap!==void 0&&(it.emissiveMap=rt(et.emissiveMap)),et.emissiveIntensity!==void 0&&(it.emissiveIntensity=et.emissiveIntensity),et.specularMap!==void 0&&(it.specularMap=rt(et.specularMap)),et.specularIntensityMap!==void 0&&(it.specularIntensityMap=rt(et.specularIntensityMap)),et.specularColorMap!==void 0&&(it.specularColorMap=rt(et.specularColorMap)),et.envMap!==void 0&&(it.envMap=rt(et.envMap)),et.envMapIntensity!==void 0&&(it.envMapIntensity=et.envMapIntensity),et.reflectivity!==void 0&&(it.reflectivity=et.reflectivity),et.refractionRatio!==void 0&&(it.refractionRatio=et.refractionRatio),et.lightMap!==void 0&&(it.lightMap=rt(et.lightMap)),et.lightMapIntensity!==void 0&&(it.lightMapIntensity=et.lightMapIntensity),et.aoMap!==void 0&&(it.aoMap=rt(et.aoMap)),et.aoMapIntensity!==void 0&&(it.aoMapIntensity=et.aoMapIntensity),et.gradientMap!==void 0&&(it.gradientMap=rt(et.gradientMap)),et.clearcoatMap!==void 0&&(it.clearcoatMap=rt(et.clearcoatMap)),et.clearcoatRoughnessMap!==void 0&&(it.clearcoatRoughnessMap=rt(et.clearcoatRoughnessMap)),et.clearcoatNormalMap!==void 0&&(it.clearcoatNormalMap=rt(et.clearcoatNormalMap)),et.clearcoatNormalScale!==void 0&&(it.clearcoatNormalScale=new Vector2().fromArray(et.clearcoatNormalScale)),et.iridescenceMap!==void 0&&(it.iridescenceMap=rt(et.iridescenceMap)),et.iridescenceThicknessMap!==void 0&&(it.iridescenceThicknessMap=rt(et.iridescenceThicknessMap)),et.transmissionMap!==void 0&&(it.transmissionMap=rt(et.transmissionMap)),et.thicknessMap!==void 0&&(it.thicknessMap=rt(et.thicknessMap)),et.sheenColorMap!==void 0&&(it.sheenColorMap=rt(et.sheenColorMap)),et.sheenRoughnessMap!==void 0&&(it.sheenRoughnessMap=rt(et.sheenRoughnessMap)),it}setTextures(et){return this.textures=et,this}static createMaterialFromType(et){const nt={ShadowMaterial,SpriteMaterial,RawShaderMaterial,ShaderMaterial,PointsMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshPhongMaterial,MeshToonMaterial,MeshNormalMaterial,MeshLambertMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshBasicMaterial,MeshMatcapMaterial,LineDashedMaterial,LineBasicMaterial,Material};return new nt[et]}}class LoaderUtils{static decodeText(et){if(typeof TextDecoder<"u")return new TextDecoder().decode(et);let nt="";for(let rt=0,it=et.length;rt0){const lt=new LoadingManager(nt);ot=new ImageLoader(lt),ot.setCrossOrigin(this.crossOrigin);for(let ct=0,ut=et.length;ct0){it=new ImageLoader(this.manager),it.setCrossOrigin(this.crossOrigin);for(let at=0,st=et.length;at"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(et){return this.options=et,this}load(et,nt,rt,it){et===void 0&&(et=""),this.path!==void 0&&(et=this.path+et),et=this.manager.resolveURL(et);const ot=this,at=Cache.get(et);if(at!==void 0)return ot.manager.itemStart(et),setTimeout(function(){nt&&nt(at),ot.manager.itemEnd(et)},0),at;const st={};st.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",st.headers=this.requestHeader,fetch(et,st).then(function(lt){return lt.blob()}).then(function(lt){return createImageBitmap(lt,Object.assign(ot.options,{colorSpaceConversion:"none"}))}).then(function(lt){Cache.add(et,lt),nt&&nt(lt),ot.manager.itemEnd(et)}).catch(function(lt){it&&it(lt),ot.manager.itemError(et),ot.manager.itemEnd(et)}),ot.manager.itemStart(et)}}let _context$1;const AudioContext={getContext:function(){return _context$1===void 0&&(_context$1=new(window.AudioContext||window.webkitAudioContext)),_context$1},setContext:function(tt){_context$1=tt}};class AudioLoader extends Loader$2{constructor(et){super(et)}load(et,nt,rt,it){const ot=this,at=new FileLoader(this.manager);at.setResponseType("arraybuffer"),at.setPath(this.path),at.setRequestHeader(this.requestHeader),at.setWithCredentials(this.withCredentials),at.load(et,function(st){try{const lt=st.slice(0);AudioContext.getContext().decodeAudioData(lt,function(ut){nt(ut)})}catch(lt){it?it(lt):console.error(lt),ot.manager.itemError(et)}},rt,it)}}class HemisphereLightProbe extends LightProbe{constructor(et,nt,rt=1){super(void 0,rt),this.isHemisphereLightProbe=!0;const it=new Color$1().set(et),ot=new Color$1().set(nt),at=new Vector3(it.r,it.g,it.b),st=new Vector3(ot.r,ot.g,ot.b),lt=Math.sqrt(Math.PI),ct=lt*Math.sqrt(.75);this.sh.coefficients[0].copy(at).add(st).multiplyScalar(lt),this.sh.coefficients[1].copy(at).sub(st).multiplyScalar(ct)}}class AmbientLightProbe extends LightProbe{constructor(et,nt=1){super(void 0,nt),this.isAmbientLightProbe=!0;const rt=new Color$1().set(et);this.sh.coefficients[0].set(rt.r,rt.g,rt.b).multiplyScalar(2*Math.sqrt(Math.PI))}}const _eyeRight=new Matrix4,_eyeLeft=new Matrix4,_projectionMatrix=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new PerspectiveCamera,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new PerspectiveCamera,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(et){const nt=this._cache;if(nt.focus!==et.focus||nt.fov!==et.fov||nt.aspect!==et.aspect*this.aspect||nt.near!==et.near||nt.far!==et.far||nt.zoom!==et.zoom||nt.eyeSep!==this.eyeSep){nt.focus=et.focus,nt.fov=et.fov,nt.aspect=et.aspect*this.aspect,nt.near=et.near,nt.far=et.far,nt.zoom=et.zoom,nt.eyeSep=this.eyeSep,_projectionMatrix.copy(et.projectionMatrix);const it=nt.eyeSep/2,ot=it*nt.near/nt.focus,at=nt.near*Math.tan(DEG2RAD$1*nt.fov*.5)/nt.zoom;let st,lt;_eyeLeft.elements[12]=-it,_eyeRight.elements[12]=it,st=-at*nt.aspect+ot,lt=at*nt.aspect+ot,_projectionMatrix.elements[0]=2*nt.near/(lt-st),_projectionMatrix.elements[8]=(lt+st)/(lt-st),this.cameraL.projectionMatrix.copy(_projectionMatrix),st=-at*nt.aspect-ot,lt=at*nt.aspect-ot,_projectionMatrix.elements[0]=2*nt.near/(lt-st),_projectionMatrix.elements[8]=(lt+st)/(lt-st),this.cameraR.projectionMatrix.copy(_projectionMatrix)}this.cameraL.matrixWorld.copy(et.matrixWorld).multiply(_eyeLeft),this.cameraR.matrixWorld.copy(et.matrixWorld).multiply(_eyeRight)}}let Clock$1=class{constructor(et=!0){this.autoStart=et,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=now$5(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let et=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const nt=now$5();et=(nt-this.oldTime)/1e3,this.oldTime=nt,this.elapsedTime+=et}return et}};function now$5(){return(typeof performance>"u"?Date:performance).now()}const _position$1=new Vector3,_quaternion$1=new Quaternion,_scale$1=new Vector3,_orientation$1=new Vector3;class AudioListener extends Object3D{constructor(){super(),this.type="AudioListener",this.context=AudioContext.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Clock$1}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(et){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=et,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(et){return this.gain.gain.setTargetAtTime(et,this.context.currentTime,.01),this}updateMatrixWorld(et){super.updateMatrixWorld(et);const nt=this.context.listener,rt=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1),_orientation$1.set(0,0,-1).applyQuaternion(_quaternion$1),nt.positionX){const it=this.context.currentTime+this.timeDelta;nt.positionX.linearRampToValueAtTime(_position$1.x,it),nt.positionY.linearRampToValueAtTime(_position$1.y,it),nt.positionZ.linearRampToValueAtTime(_position$1.z,it),nt.forwardX.linearRampToValueAtTime(_orientation$1.x,it),nt.forwardY.linearRampToValueAtTime(_orientation$1.y,it),nt.forwardZ.linearRampToValueAtTime(_orientation$1.z,it),nt.upX.linearRampToValueAtTime(rt.x,it),nt.upY.linearRampToValueAtTime(rt.y,it),nt.upZ.linearRampToValueAtTime(rt.z,it)}else nt.setPosition(_position$1.x,_position$1.y,_position$1.z),nt.setOrientation(_orientation$1.x,_orientation$1.y,_orientation$1.z,rt.x,rt.y,rt.z)}}let Audio$1=class extends Object3D{constructor(et){super(),this.type="Audio",this.listener=et,this.context=et.context,this.gain=this.context.createGain(),this.gain.connect(et.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(et){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=et,this.connect(),this}setMediaElementSource(et){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(et),this.connect(),this}setMediaStreamSource(et){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(et),this.connect(),this}setBuffer(et){return this.buffer=et,this.sourceType="buffer",this.autoplay&&this.play(),this}play(et=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+et;const nt=this.context.createBufferSource();return nt.buffer=this.buffer,nt.loop=this.loop,nt.loopStart=this.loopStart,nt.loopEnd=this.loopEnd,nt.onended=this.onEnded.bind(this),nt.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=nt,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let et=1,nt=this.filters.length;et0){this.source.disconnect(this.filters[0]);for(let et=1,nt=this.filters.length;et0&&this._mixBufferRegionAdditive(rt,it,this._addIndex*nt,1,nt);for(let lt=nt,ct=nt+nt;lt!==ct;++lt)if(rt[lt]!==rt[lt+nt]){st.setValue(rt,it);break}}saveOriginalState(){const et=this.binding,nt=this.buffer,rt=this.valueSize,it=rt*this._origIndex;et.getValue(nt,it);for(let ot=rt,at=it;ot!==at;++ot)nt[ot]=nt[it+ot%rt];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const et=this.valueSize*3;this.binding.setValue(this.buffer,et)}_setAdditiveIdentityNumeric(){const et=this._addIndex*this.valueSize,nt=et+this.valueSize;for(let rt=et;rt=.5)for(let at=0;at!==ot;++at)et[nt+at]=et[rt+at]}_slerp(et,nt,rt,it){Quaternion.slerpFlat(et,nt,et,nt,et,rt,it)}_slerpAdditive(et,nt,rt,it,ot){const at=this._workIndex*ot;Quaternion.multiplyQuaternionsFlat(et,at,et,nt,et,rt),Quaternion.slerpFlat(et,nt,et,nt,et,at,it)}_lerp(et,nt,rt,it,ot){const at=1-it;for(let st=0;st!==ot;++st){const lt=nt+st;et[lt]=et[lt]*at+et[rt+st]*it}}_lerpAdditive(et,nt,rt,it,ot){for(let at=0;at!==ot;++at){const st=nt+at;et[st]=et[st]+et[rt+at]*it}}}const _RESERVED_CHARS_RE="\\[\\]\\.:\\/",_reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g"),_wordChar="[^"+_RESERVED_CHARS_RE+"]",_wordCharOrDot="[^"+_RESERVED_CHARS_RE.replace("\\.","")+"]",_directoryRe=/((?:WC+[\/:])*)/.source.replace("WC",_wordChar),_nodeRe=/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot),_objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_wordChar),_propertyRe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_wordChar),_trackRe=new RegExp("^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$"),_supportedObjectNames=["material","materials","bones"];class Composite{constructor(et,nt,rt){const it=rt||PropertyBinding.parseTrackName(nt);this._targetGroup=et,this._bindings=et.subscribe_(nt,it)}getValue(et,nt){this.bind();const rt=this._targetGroup.nCachedObjects_,it=this._bindings[rt];it!==void 0&&it.getValue(et,nt)}setValue(et,nt){const rt=this._bindings;for(let it=this._targetGroup.nCachedObjects_,ot=rt.length;it!==ot;++it)rt[it].setValue(et,nt)}bind(){const et=this._bindings;for(let nt=this._targetGroup.nCachedObjects_,rt=et.length;nt!==rt;++nt)et[nt].bind()}unbind(){const et=this._bindings;for(let nt=this._targetGroup.nCachedObjects_,rt=et.length;nt!==rt;++nt)et[nt].unbind()}}class PropertyBinding{constructor(et,nt,rt){this.path=nt,this.parsedPath=rt||PropertyBinding.parseTrackName(nt),this.node=PropertyBinding.findNode(et,this.parsedPath.nodeName)||et,this.rootNode=et,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(et,nt,rt){return et&&et.isAnimationObjectGroup?new PropertyBinding.Composite(et,nt,rt):new PropertyBinding(et,nt,rt)}static sanitizeNodeName(et){return et.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(et){const nt=_trackRe.exec(et);if(nt===null)throw new Error("PropertyBinding: Cannot parse trackName: "+et);const rt={nodeName:nt[2],objectName:nt[3],objectIndex:nt[4],propertyName:nt[5],propertyIndex:nt[6]},it=rt.nodeName&&rt.nodeName.lastIndexOf(".");if(it!==void 0&&it!==-1){const ot=rt.nodeName.substring(it+1);_supportedObjectNames.indexOf(ot)!==-1&&(rt.nodeName=rt.nodeName.substring(0,it),rt.objectName=ot)}if(rt.propertyName===null||rt.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+et);return rt}static findNode(et,nt){if(nt===void 0||nt===""||nt==="."||nt===-1||nt===et.name||nt===et.uuid)return et;if(et.skeleton){const rt=et.skeleton.getBoneByName(nt);if(rt!==void 0)return rt}if(et.children){const rt=function(ot){for(let at=0;at=ot){const ht=ot++,dt=et[ht];nt[dt.uuid]=ut,et[ut]=dt,nt[ct]=ht,et[ht]=lt;for(let pt=0,mt=it;pt!==mt;++pt){const gt=rt[pt],yt=gt[ht],bt=gt[ut];gt[ut]=yt,gt[ht]=bt}}}this.nCachedObjects_=ot}uncache(){const et=this._objects,nt=this._indicesByUUID,rt=this._bindings,it=rt.length;let ot=this.nCachedObjects_,at=et.length;for(let st=0,lt=arguments.length;st!==lt;++st){const ct=arguments[st],ut=ct.uuid,ht=nt[ut];if(ht!==void 0)if(delete nt[ut],ht0&&(nt[pt.uuid]=ht),et[ht]=pt,et.pop();for(let mt=0,gt=it;mt!==gt;++mt){const yt=rt[mt];yt[ht]=yt[dt],yt.pop()}}}this.nCachedObjects_=ot}subscribe_(et,nt){const rt=this._bindingsIndicesByPath;let it=rt[et];const ot=this._bindings;if(it!==void 0)return ot[it];const at=this._paths,st=this._parsedPaths,lt=this._objects,ct=lt.length,ut=this.nCachedObjects_,ht=new Array(ct);it=ot.length,rt[et]=it,at.push(et),st.push(nt),ot.push(ht);for(let dt=ut,pt=lt.length;dt!==pt;++dt){const mt=lt[dt];ht[dt]=new PropertyBinding(mt,et,nt)}return ht}unsubscribe_(et){const nt=this._bindingsIndicesByPath,rt=nt[et];if(rt!==void 0){const it=this._paths,ot=this._parsedPaths,at=this._bindings,st=at.length-1,lt=at[st],ct=et[st];nt[ct]=rt,at[rt]=lt,at.pop(),ot[rt]=ot[st],ot.pop(),it[rt]=it[st],it.pop()}}}class AnimationAction{constructor(et,nt,rt=null,it=nt.blendMode){this._mixer=et,this._clip=nt,this._localRoot=rt,this.blendMode=it;const ot=nt.tracks,at=ot.length,st=new Array(at),lt={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let ct=0;ct!==at;++ct){const ut=ot[ct].createInterpolant(null);st[ct]=ut,ut.settings=lt}this._interpolantSettings=lt,this._interpolants=st,this._propertyBindings=new Array(at),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=LoopRepeat,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(et){return this._startTime=et,this}setLoop(et,nt){return this.loop=et,this.repetitions=nt,this}setEffectiveWeight(et){return this.weight=et,this._effectiveWeight=this.enabled?et:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(et){return this._scheduleFading(et,0,1)}fadeOut(et){return this._scheduleFading(et,1,0)}crossFadeFrom(et,nt,rt){if(et.fadeOut(nt),this.fadeIn(nt),rt){const it=this._clip.duration,ot=et._clip.duration,at=ot/it,st=it/ot;et.warp(1,at,nt),this.warp(st,1,nt)}return this}crossFadeTo(et,nt,rt){return et.crossFadeFrom(this,nt,rt)}stopFading(){const et=this._weightInterpolant;return et!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(et)),this}setEffectiveTimeScale(et){return this.timeScale=et,this._effectiveTimeScale=this.paused?0:et,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(et){return this.timeScale=this._clip.duration/et,this.stopWarping()}syncWith(et){return this.time=et.time,this.timeScale=et.timeScale,this.stopWarping()}halt(et){return this.warp(this._effectiveTimeScale,0,et)}warp(et,nt,rt){const it=this._mixer,ot=it.time,at=this.timeScale;let st=this._timeScaleInterpolant;st===null&&(st=it._lendControlInterpolant(),this._timeScaleInterpolant=st);const lt=st.parameterPositions,ct=st.sampleValues;return lt[0]=ot,lt[1]=ot+rt,ct[0]=et/at,ct[1]=nt/at,this}stopWarping(){const et=this._timeScaleInterpolant;return et!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(et)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(et,nt,rt,it){if(!this.enabled){this._updateWeight(et);return}const ot=this._startTime;if(ot!==null){const lt=(et-ot)*rt;if(lt<0||rt===0)return;this._startTime=null,nt=rt*lt}nt*=this._updateTimeScale(et);const at=this._updateTime(nt),st=this._updateWeight(et);if(st>0){const lt=this._interpolants,ct=this._propertyBindings;switch(this.blendMode){case AdditiveAnimationBlendMode:for(let ut=0,ht=lt.length;ut!==ht;++ut)lt[ut].evaluate(at),ct[ut].accumulateAdditive(st);break;case NormalAnimationBlendMode:default:for(let ut=0,ht=lt.length;ut!==ht;++ut)lt[ut].evaluate(at),ct[ut].accumulate(it,st)}}}_updateWeight(et){let nt=0;if(this.enabled){nt=this.weight;const rt=this._weightInterpolant;if(rt!==null){const it=rt.evaluate(et)[0];nt*=it,et>rt.parameterPositions[1]&&(this.stopFading(),it===0&&(this.enabled=!1))}}return this._effectiveWeight=nt,nt}_updateTimeScale(et){let nt=0;if(!this.paused){nt=this.timeScale;const rt=this._timeScaleInterpolant;if(rt!==null){const it=rt.evaluate(et)[0];nt*=it,et>rt.parameterPositions[1]&&(this.stopWarping(),nt===0?this.paused=!0:this.timeScale=nt)}}return this._effectiveTimeScale=nt,nt}_updateTime(et){const nt=this._clip.duration,rt=this.loop;let it=this.time+et,ot=this._loopCount;const at=rt===LoopPingPong;if(et===0)return ot===-1?it:at&&(ot&1)===1?nt-it:it;if(rt===LoopOnce){ot===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(it>=nt)it=nt;else if(it<0)it=0;else{this.time=it;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=it,this._mixer.dispatchEvent({type:"finished",action:this,direction:et<0?-1:1})}}else{if(ot===-1&&(et>=0?(ot=0,this._setEndings(!0,this.repetitions===0,at)):this._setEndings(this.repetitions===0,!0,at)),it>=nt||it<0){const st=Math.floor(it/nt);it-=nt*st,ot+=Math.abs(st);const lt=this.repetitions-ot;if(lt<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,it=et>0?nt:0,this.time=it,this._mixer.dispatchEvent({type:"finished",action:this,direction:et>0?1:-1});else{if(lt===1){const ct=et<0;this._setEndings(ct,!ct,at)}else this._setEndings(!1,!1,at);this._loopCount=ot,this.time=it,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:st})}}else this.time=it;if(at&&(ot&1)===1)return nt-it}return it}_setEndings(et,nt,rt){const it=this._interpolantSettings;rt?(it.endingStart=ZeroSlopeEnding,it.endingEnd=ZeroSlopeEnding):(et?it.endingStart=this.zeroSlopeAtStart?ZeroSlopeEnding:ZeroCurvatureEnding:it.endingStart=WrapAroundEnding,nt?it.endingEnd=this.zeroSlopeAtEnd?ZeroSlopeEnding:ZeroCurvatureEnding:it.endingEnd=WrapAroundEnding)}_scheduleFading(et,nt,rt){const it=this._mixer,ot=it.time;let at=this._weightInterpolant;at===null&&(at=it._lendControlInterpolant(),this._weightInterpolant=at);const st=at.parameterPositions,lt=at.sampleValues;return st[0]=ot,lt[0]=nt,st[1]=ot+et,lt[1]=rt,this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher$1{constructor(et){super(),this._root=et,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(et,nt){const rt=et._localRoot||this._root,it=et._clip.tracks,ot=it.length,at=et._propertyBindings,st=et._interpolants,lt=rt.uuid,ct=this._bindingsByRootAndName;let ut=ct[lt];ut===void 0&&(ut={},ct[lt]=ut);for(let ht=0;ht!==ot;++ht){const dt=it[ht],pt=dt.name;let mt=ut[pt];if(mt!==void 0)++mt.referenceCount,at[ht]=mt;else{if(mt=at[ht],mt!==void 0){mt._cacheIndex===null&&(++mt.referenceCount,this._addInactiveBinding(mt,lt,pt));continue}const gt=nt&&nt._propertyBindings[ht].binding.parsedPath;mt=new PropertyMixer(PropertyBinding.create(rt,pt,gt),dt.ValueTypeName,dt.getValueSize()),++mt.referenceCount,this._addInactiveBinding(mt,lt,pt),at[ht]=mt}st[ht].resultBuffer=mt.buffer}}_activateAction(et){if(!this._isActiveAction(et)){if(et._cacheIndex===null){const rt=(et._localRoot||this._root).uuid,it=et._clip.uuid,ot=this._actionsByClip[it];this._bindAction(et,ot&&ot.knownActions[0]),this._addInactiveAction(et,it,rt)}const nt=et._propertyBindings;for(let rt=0,it=nt.length;rt!==it;++rt){const ot=nt[rt];ot.useCount++===0&&(this._lendBinding(ot),ot.saveOriginalState())}this._lendAction(et)}}_deactivateAction(et){if(this._isActiveAction(et)){const nt=et._propertyBindings;for(let rt=0,it=nt.length;rt!==it;++rt){const ot=nt[rt];--ot.useCount===0&&(ot.restoreOriginalState(),this._takeBackBinding(ot))}this._takeBackAction(et)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const et=this;this.stats={actions:{get total(){return et._actions.length},get inUse(){return et._nActiveActions}},bindings:{get total(){return et._bindings.length},get inUse(){return et._nActiveBindings}},controlInterpolants:{get total(){return et._controlInterpolants.length},get inUse(){return et._nActiveControlInterpolants}}}}_isActiveAction(et){const nt=et._cacheIndex;return nt!==null&&nt=0;--rt)et[rt].stop();return this}update(et){et*=this.timeScale;const nt=this._actions,rt=this._nActiveActions,it=this.time+=et,ot=Math.sign(et),at=this._accuIndex^=1;for(let ct=0;ct!==rt;++ct)nt[ct]._update(it,et,ot,at);const st=this._bindings,lt=this._nActiveBindings;for(let ct=0;ct!==lt;++ct)st[ct].apply(at);return this}setTime(et){this.time=0;for(let nt=0;ntthis.max.x||et.ythis.max.y)}containsBox(et){return this.min.x<=et.min.x&&et.max.x<=this.max.x&&this.min.y<=et.min.y&&et.max.y<=this.max.y}getParameter(et,nt){return nt.set((et.x-this.min.x)/(this.max.x-this.min.x),(et.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(et){return!(et.max.xthis.max.x||et.max.ythis.max.y)}clampPoint(et,nt){return nt.copy(et).clamp(this.min,this.max)}distanceToPoint(et){return _vector$4.copy(et).clamp(this.min,this.max).sub(et).length()}intersect(et){return this.min.max(et.min),this.max.min(et.max),this}union(et){return this.min.min(et.min),this.max.max(et.max),this}translate(et){return this.min.add(et),this.max.add(et),this}equals(et){return et.min.equals(this.min)&&et.max.equals(this.max)}}const _startP=new Vector3,_startEnd=new Vector3;class Line3{constructor(et=new Vector3,nt=new Vector3){this.start=et,this.end=nt}set(et,nt){return this.start.copy(et),this.end.copy(nt),this}copy(et){return this.start.copy(et.start),this.end.copy(et.end),this}getCenter(et){return et.addVectors(this.start,this.end).multiplyScalar(.5)}delta(et){return et.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(et,nt){return this.delta(nt).multiplyScalar(et).add(this.start)}closestPointToPointParameter(et,nt){_startP.subVectors(et,this.start),_startEnd.subVectors(this.end,this.start);const rt=_startEnd.dot(_startEnd);let ot=_startEnd.dot(_startP)/rt;return nt&&(ot=clamp$4(ot,0,1)),ot}closestPointToPoint(et,nt,rt){const it=this.closestPointToPointParameter(et,nt);return this.delta(rt).multiplyScalar(it).add(this.start)}applyMatrix4(et){return this.start.applyMatrix4(et),this.end.applyMatrix4(et),this}equals(et){return et.start.equals(this.start)&&et.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const _vector$3=new Vector3;class SpotLightHelper extends Object3D{constructor(et,nt){super(),this.light=et,this.light.updateMatrixWorld(),this.matrix=et.matrixWorld,this.matrixAutoUpdate=!1,this.color=nt;const rt=new BufferGeometry,it=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let at=0,st=1,lt=32;at.99999)this.quaternion.set(0,0,0,1);else if(et.y<-.99999)this.quaternion.set(1,0,0,0);else{_axis.set(et.z,0,-et.x).normalize();const nt=Math.acos(et.y);this.quaternion.setFromAxisAngle(_axis,nt)}}setLength(et,nt=et*.2,rt=nt*.2){this.line.scale.set(1,Math.max(1e-4,et-nt),1),this.line.updateMatrix(),this.cone.scale.set(rt,nt,rt),this.cone.position.y=et,this.cone.updateMatrix()}setColor(et){this.line.material.color.set(et),this.cone.material.color.set(et)}copy(et){return super.copy(et,!1),this.line.copy(et.line),this.cone.copy(et.cone),this}}class AxesHelper extends LineSegments{constructor(et=1){const nt=[0,0,0,et,0,0,0,0,0,0,et,0,0,0,0,0,0,et],rt=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],it=new BufferGeometry;it.setAttribute("position",new Float32BufferAttribute(nt,3)),it.setAttribute("color",new Float32BufferAttribute(rt,3));const ot=new LineBasicMaterial({vertexColors:!0,toneMapped:!1});super(it,ot),this.type="AxesHelper"}setColors(et,nt,rt){const it=new Color$1,ot=this.geometry.attributes.color.array;return it.set(et),it.toArray(ot,0),it.toArray(ot,3),it.set(nt),it.toArray(ot,6),it.toArray(ot,9),it.set(rt),it.toArray(ot,12),it.toArray(ot,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath",this.color=new Color$1,this.subPaths=[],this.currentPath=null}moveTo(et,nt){return this.currentPath=new Path$1,this.subPaths.push(this.currentPath),this.currentPath.moveTo(et,nt),this}lineTo(et,nt){return this.currentPath.lineTo(et,nt),this}quadraticCurveTo(et,nt,rt,it){return this.currentPath.quadraticCurveTo(et,nt,rt,it),this}bezierCurveTo(et,nt,rt,it,ot,at){return this.currentPath.bezierCurveTo(et,nt,rt,it,ot,at),this}splineThru(et){return this.currentPath.splineThru(et),this}toShapes(et,nt){function rt(wt){const vt=[];for(let kt=0,St=wt.length;ktNumber.EPSILON){if(jt<0&&(Et=vt[At],Lt=-Lt,Mt=vt[Tt],jt=-jt),wt.yMt.y)continue;if(wt.y===Et.y){if(wt.x===Et.x)return!0}else{const Rt=jt*(wt.x-Et.x)-Lt*(wt.y-Et.y);if(Rt===0)return!0;if(Rt<0)continue;St=!St}}else{if(wt.y!==Et.y)continue;if(Mt.x<=wt.x&&wt.x<=Et.x||Et.x<=wt.x&&wt.x<=Mt.x)return!0}}return St}const ot=ShapeUtils.isClockWise,at=this.subPaths;if(at.length===0)return[];if(nt===!0)return rt(at);let st,lt,ct;const ut=[];if(at.length===1)return lt=at[0],ct=new Shape,ct.curves=lt.curves,ut.push(ct),ut;let ht=!ot(at[0].getPoints());ht=et?!ht:ht;const dt=[],pt=[];let mt=[],gt=0,yt;pt[gt]=void 0,mt[gt]=[];for(let wt=0,vt=at.length;wt1){let wt=!1,vt=0;for(let kt=0,St=pt.length;kt0&&wt===!1&&(mt=dt)}let bt;for(let wt=0,vt=pt.length;wt>-ct-14,rt[lt|256]=1024>>-ct-14|32768,it[lt]=-ct-1,it[lt|256]=-ct-1):ct<=15?(rt[lt]=ct+15<<10,rt[lt|256]=ct+15<<10|32768,it[lt]=13,it[lt|256]=13):ct<128?(rt[lt]=31744,rt[lt|256]=64512,it[lt]=24,it[lt|256]=24):(rt[lt]=31744,rt[lt|256]=64512,it[lt]=13,it[lt|256]=13)}const ot=new Uint32Array(2048),at=new Uint32Array(64),st=new Uint32Array(64);for(let lt=1;lt<1024;++lt){let ct=lt<<13,ut=0;for(;!(ct&8388608);)ct<<=1,ut-=8388608;ct&=-8388609,ut+=947912704,ot[lt]=ct|ut}for(let lt=1024;lt<2048;++lt)ot[lt]=939524096+(lt-1024<<13);for(let lt=1;lt<31;++lt)at[lt]=lt<<23;at[31]=1199570944,at[32]=2147483648;for(let lt=33;lt<63;++lt)at[lt]=2147483648+(lt-32<<23);at[63]=3347054592;for(let lt=1;lt<64;++lt)lt!==32&&(st[lt]=1024);return{floatView:et,uint32View:nt,baseTable:rt,shiftTable:it,mantissaTable:ot,exponentTable:at,offsetTable:st}}function toHalfFloat(tt){Math.abs(tt)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),tt=clamp$4(tt,-65504,65504),_tables.floatView[0]=tt;const et=_tables.uint32View[0],nt=et>>23&511;return _tables.baseTable[nt]+((et&8388607)>>_tables.shiftTable[nt])}function fromHalfFloat(tt){const et=tt>>10;return _tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[et]+(tt&1023)]+_tables.exponentTable[et],_tables.floatView[0]}var DataUtils=Object.freeze({__proto__:null,toHalfFloat,fromHalfFloat});class ParametricGeometry extends BufferGeometry{constructor(){console.error("THREE.ParametricGeometry has been moved to /examples/jsm/geometries/ParametricGeometry.js"),super()}}class TextGeometry extends BufferGeometry{constructor(){console.error("THREE.TextGeometry has been moved to /examples/jsm/geometries/TextGeometry.js"),super()}}function FontLoader(){console.error("THREE.FontLoader has been moved to /examples/jsm/loaders/FontLoader.js")}function Font(){console.error("THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js")}function ImmediateRenderObject(){console.error("THREE.ImmediateRenderObject has been removed.")}class WebGLMultisampleRenderTarget extends WebGLRenderTarget{constructor(et,nt,rt){console.error('THREE.WebGLMultisampleRenderTarget has been removed. Use a normal render target and set the "samples" property to greater 0 to enable multisampling.'),super(et,nt,rt),this.samples=4}}class DataTexture2DArray extends DataArrayTexture{constructor(et,nt,rt,it){console.warn("THREE.DataTexture2DArray has been renamed to DataArrayTexture."),super(et,nt,rt,it)}}class DataTexture3D extends Data3DTexture{constructor(et,nt,rt,it){console.warn("THREE.DataTexture3D has been renamed to Data3DTexture."),super(et,nt,rt,it)}}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:REVISION}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=REVISION);const THREE$1=Object.freeze(Object.defineProperty({__proto__:null,ACESFilmicToneMapping,AddEquation,AddOperation,AdditiveAnimationBlendMode,AdditiveBlending,AlphaFormat,AlwaysDepth,AlwaysStencilFunc,AmbientLight,AmbientLightProbe,AnimationClip,AnimationLoader,AnimationMixer,AnimationObjectGroup,AnimationUtils,ArcCurve,ArrayCamera,ArrowHelper,Audio:Audio$1,AudioAnalyser,AudioContext,AudioListener,AudioLoader,AxesHelper,BackSide,BasicDepthPacking,BasicShadowMap,Bone,BooleanKeyframeTrack,Box2,Box3,Box3Helper,BoxBufferGeometry:BoxGeometry,BoxGeometry,BoxHelper,BufferAttribute,BufferGeometry,BufferGeometryLoader,ByteType,Cache,Camera,CameraHelper,CanvasTexture,CapsuleBufferGeometry:CapsuleGeometry,CapsuleGeometry,CatmullRomCurve3,CineonToneMapping,CircleBufferGeometry:CircleGeometry,CircleGeometry,ClampToEdgeWrapping,Clock:Clock$1,Color:Color$1,ColorKeyframeTrack,ColorManagement,CompressedTexture,CompressedTextureLoader,ConeBufferGeometry:ConeGeometry,ConeGeometry,CubeCamera,CubeReflectionMapping,CubeRefractionMapping,CubeTexture,CubeTextureLoader,CubeUVReflectionMapping,CubicBezierCurve,CubicBezierCurve3,CubicInterpolant,CullFaceBack,CullFaceFront,CullFaceFrontBack,CullFaceNone,Curve:Curve$1,CurvePath,CustomBlending,CustomToneMapping,CylinderBufferGeometry:CylinderGeometry,CylinderGeometry,Cylindrical,Data3DTexture,DataArrayTexture,DataTexture,DataTexture2DArray,DataTexture3D,DataTextureLoader,DataUtils,DecrementStencilOp,DecrementWrapStencilOp,DefaultLoadingManager,DepthFormat,DepthStencilFormat,DepthTexture,DirectionalLight,DirectionalLightHelper,DiscreteInterpolant,DodecahedronBufferGeometry:DodecahedronGeometry,DodecahedronGeometry,DoubleSide,DstAlphaFactor,DstColorFactor,DynamicCopyUsage,DynamicDrawUsage,DynamicReadUsage,EdgesGeometry,EllipseCurve,EqualDepth,EqualStencilFunc,EquirectangularReflectionMapping,EquirectangularRefractionMapping,Euler,EventDispatcher:EventDispatcher$1,ExtrudeBufferGeometry:ExtrudeGeometry,ExtrudeGeometry,FileLoader,FlatShading,Float16BufferAttribute,Float32BufferAttribute,Float64BufferAttribute,FloatType,Fog,FogExp2,Font,FontLoader,FramebufferTexture,FrontSide,Frustum,GLBufferAttribute,GLSL1,GLSL3,GreaterDepth,GreaterEqualDepth,GreaterEqualStencilFunc,GreaterStencilFunc,GridHelper,Group,HalfFloatType,HemisphereLight,HemisphereLightHelper,HemisphereLightProbe,IcosahedronBufferGeometry:IcosahedronGeometry,IcosahedronGeometry,ImageBitmapLoader,ImageLoader,ImageUtils,ImmediateRenderObject,IncrementStencilOp,IncrementWrapStencilOp,InstancedBufferAttribute,InstancedBufferGeometry,InstancedInterleavedBuffer,InstancedMesh,Int16BufferAttribute,Int32BufferAttribute,Int8BufferAttribute,IntType,InterleavedBuffer,InterleavedBufferAttribute,Interpolant,InterpolateDiscrete,InterpolateLinear,InterpolateSmooth,InvertStencilOp,KeepStencilOp,KeyframeTrack,LOD,LatheBufferGeometry:LatheGeometry,LatheGeometry,Layers,LessDepth,LessEqualDepth,LessEqualStencilFunc,LessStencilFunc,Light,LightProbe,Line:Line$2,Line3,LineBasicMaterial,LineCurve,LineCurve3,LineDashedMaterial,LineLoop,LineSegments,LinearEncoding,LinearFilter,LinearInterpolant,LinearMipMapLinearFilter,LinearMipMapNearestFilter,LinearMipmapLinearFilter,LinearMipmapNearestFilter,LinearSRGBColorSpace:LinearSRGBColorSpace$1,LinearToneMapping,Loader:Loader$2,LoaderUtils,LoadingManager,LoopOnce,LoopPingPong,LoopRepeat,LuminanceAlphaFormat,LuminanceFormat,MOUSE,Material,MaterialLoader,MathUtils,Matrix3,Matrix4,MaxEquation,Mesh,MeshBasicMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshLambertMaterial,MeshMatcapMaterial,MeshNormalMaterial,MeshPhongMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshToonMaterial,MinEquation,MirroredRepeatWrapping,MixOperation,MultiplyBlending,MultiplyOperation,NearestFilter,NearestMipMapLinearFilter,NearestMipMapNearestFilter,NearestMipmapLinearFilter,NearestMipmapNearestFilter,NeverDepth,NeverStencilFunc,NoBlending,NoColorSpace:NoColorSpace$1,NoToneMapping,NormalAnimationBlendMode,NormalBlending,NotEqualDepth,NotEqualStencilFunc,NumberKeyframeTrack,Object3D,ObjectLoader,ObjectSpaceNormalMap,OctahedronBufferGeometry:OctahedronGeometry,OctahedronGeometry,OneFactor,OneMinusDstAlphaFactor,OneMinusDstColorFactor,OneMinusSrcAlphaFactor,OneMinusSrcColorFactor,OrthographicCamera,PCFShadowMap,PCFSoftShadowMap,PMREMGenerator,ParametricGeometry,Path:Path$1,PerspectiveCamera,Plane,PlaneBufferGeometry:PlaneGeometry,PlaneGeometry,PlaneHelper,PointLight,PointLightHelper,Points,PointsMaterial,PolarGridHelper,PolyhedronBufferGeometry:PolyhedronGeometry,PolyhedronGeometry,PositionalAudio,PropertyBinding,PropertyMixer,QuadraticBezierCurve,QuadraticBezierCurve3,Quaternion,QuaternionKeyframeTrack,QuaternionLinearInterpolant,REVISION,RGBADepthPacking,RGBAFormat,RGBAIntegerFormat,RGBA_ASTC_10x10_Format,RGBA_ASTC_10x5_Format,RGBA_ASTC_10x6_Format,RGBA_ASTC_10x8_Format,RGBA_ASTC_12x10_Format,RGBA_ASTC_12x12_Format,RGBA_ASTC_4x4_Format,RGBA_ASTC_5x4_Format,RGBA_ASTC_5x5_Format,RGBA_ASTC_6x5_Format,RGBA_ASTC_6x6_Format,RGBA_ASTC_8x5_Format,RGBA_ASTC_8x6_Format,RGBA_ASTC_8x8_Format,RGBA_BPTC_Format,RGBA_ETC2_EAC_Format,RGBA_PVRTC_2BPPV1_Format,RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format,RGBA_S3TC_DXT3_Format,RGBA_S3TC_DXT5_Format,RGBFormat,RGB_ETC1_Format,RGB_ETC2_Format,RGB_PVRTC_2BPPV1_Format,RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format,RGFormat,RGIntegerFormat,RawShaderMaterial,Ray,Raycaster,RectAreaLight,RedFormat,RedIntegerFormat,ReinhardToneMapping,RepeatWrapping,ReplaceStencilOp,ReverseSubtractEquation,RingBufferGeometry:RingGeometry,RingGeometry,SRGBColorSpace:SRGBColorSpace$1,Scene,ShaderChunk,ShaderLib,ShaderMaterial,ShadowMaterial,Shape,ShapeBufferGeometry:ShapeGeometry,ShapeGeometry,ShapePath,ShapeUtils,ShortType,Skeleton,SkeletonHelper,SkinnedMesh,SmoothShading,Source:Source$1,Sphere,SphereBufferGeometry:SphereGeometry,SphereGeometry,Spherical,SphericalHarmonics3,SplineCurve,SpotLight,SpotLightHelper,Sprite,SpriteMaterial,SrcAlphaFactor,SrcAlphaSaturateFactor,SrcColorFactor,StaticCopyUsage,StaticDrawUsage,StaticReadUsage,StereoCamera,StreamCopyUsage,StreamDrawUsage,StreamReadUsage,StringKeyframeTrack,SubtractEquation,SubtractiveBlending,TOUCH,TangentSpaceNormalMap,TetrahedronBufferGeometry:TetrahedronGeometry,TetrahedronGeometry,TextGeometry,Texture,TextureLoader,TorusBufferGeometry:TorusGeometry,TorusGeometry,TorusKnotBufferGeometry:TorusKnotGeometry,TorusKnotGeometry,Triangle,TriangleFanDrawMode,TriangleStripDrawMode,TrianglesDrawMode,TubeBufferGeometry:TubeGeometry,TubeGeometry,UVMapping,Uint16BufferAttribute,Uint32BufferAttribute,Uint8BufferAttribute,Uint8ClampedBufferAttribute,Uniform,UniformsGroup,UniformsLib,UniformsUtils,UnsignedByteType,UnsignedInt248Type,UnsignedIntType,UnsignedShort4444Type,UnsignedShort5551Type,UnsignedShortType,VSMShadowMap,Vector2,Vector3,Vector4,VectorKeyframeTrack,VideoTexture,WebGL1Renderer,WebGL3DRenderTarget,WebGLArrayRenderTarget,WebGLCubeRenderTarget,WebGLMultipleRenderTargets,WebGLMultisampleRenderTarget,WebGLRenderTarget,WebGLRenderer,WebGLUtils,WireframeGeometry,WrapAroundEnding,ZeroCurvatureEnding,ZeroFactor,ZeroSlopeEnding,ZeroStencilOp,_SRGBAFormat,sRGBEncoding},Symbol.toStringTag,{value:"Module"})),variableVector3$1=new Vector3(0,0,0),outlineEffectColor=16777215,nodesAreRelatives=(tt,et)=>{var ot,at;if(!(tt!=null&&tt.ref_id)||!(et!=null&&et.ref_id))return!1;let nt=!1;const rt=tt.guests,it=et.guests;return((ot=tt.children)!=null&&ot.includes(et.ref_id)||(at=et.children)!=null&&at.includes(tt.ref_id))&&(nt=!0),(rt!=null&&rt.find(st=>st.ref_id===et.ref_id)||it!=null&&it.find(st=>st.ref_id===tt.ref_id))&&(nt=!0),nt},mock={exact:[{boost:0,date:1672152975,description:"The credit card debt and job growth in the US economy",episode_title:"Café ₿: #Bitcoin Holiday Hangout & @StatusMoneyUSA a #BTC Credit Card",guests:[{name:" BITVOLT7",profile_picture:"https://pbs.twimg.com/profile_images/1532194001511714818/O8nSTKcx_400x400.png",ref_id:"2b9913b7-393c-4125-9aeb-4a8bf32bfa44",twitter_handle:"BITVOLT7"},{name:" samcallah",profile_picture:"https://pbs.twimg.com/profile_images/1502454836981166082/cQG0YQxc_400x400.jpg",ref_id:"a3dbdb56-e228-4382-98bc-d4495ff6dfbd",twitter_handle:"samcallah"},{name:" taodejing2",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"4914799b-a230-4bee-95c9-cf3ac44b6b70",twitter_handle:"TyonClubhouse"},{name:" MrHodl",profile_picture:"https://pbs.twimg.com/profile_images/1607490976670519296/vhLAojMR_400x400.jpg",ref_id:"01d6ee68-c0ef-4ead-b2b7-7eb04694519e",twitter_handle:"MrHodl"},{name:" TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"57beb381-b9e8-4dd1-82f6-4e544a63146b",twitter_handle:"TomerStrolight"},{name:" VailshireCap",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"73c15965-ddad-4e32-9746-da92f5d24134",twitter_handle:"VailshireCap"},{name:"bergealex4",profile_picture:"https://pbs.twimg.com/profile_images/1273374628577247233/tYigkAZH_400x400.jpg",ref_id:"da4bb8ab-540d-4f88-a2a6-f3a3941c5b74",twitter_handle:"bergealex4"},{name:" LukeMikic21",profile_picture:"https://pbs.twimg.com/profile_images/1604626418708742147/gWyVLeqa_400x400.jpg",ref_id:"0a907108-f59f-420f-9986-79b0f060f690",twitter_handle:"LukeMikic21"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" majdmaksad",profile_picture:"https://pbs.twimg.com/profile_images/1483883774471516167/zvEjiCTO_400x400.jpg",ref_id:"1a63c59d-a760-4f8b-bba9-ddfd3cff9f33",twitter_handle:"majdmaksad"}],hosts:[{name:" PeterAnsel9",profile_picture:"https://pbs.twimg.com/profile_images/1607979298153197568/JqAbDyi__400x400.jpg",ref_id:"6cb2b160-fa27-4fac-9ccf-77886ba01521",twitter_handle:"PeterAnsel9"},{name:" NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"c61e3ff9-f540-4343-bc26-1c3a4b537b78",twitter_handle:"NeilJacobs"},{name:" nathanfast",profile_picture:"https://pbs.twimg.com/profile_images/1545758157103697920/RyLn465N_400x400.jpg",ref_id:"739d907e-cbc6-4a05-9246-45c7c5d2a853",twitter_handle:"nathanfast"},{name:"TYonClubhouse",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"cc057990-16d0-4588-83c7-1eb9734eb994",twitter_handle:"tyonclubhouse"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b27dcf88-bdfb-4433-b0fe-c9040dbf392f/11aa5648-d416-46f3-a66a-0750e9d71ccd.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"ada07186-c3fc-4b5e-b9c7-3ce54e1b94c7",show_title:"Swan.com",text:"I do want to ask you quickly about, you mentioned the credit card debt that is soaring and savings rates going down. It is a small percentage of the overall kind of US household net worth, which I believe is about well over 100 trillion, maybe 140,000,000,000,000. When housing prices were high. But it does seem like this 1 trillion or whatever of credit card debt, while it's serious, is still a fairly small percentage of overall US. Household net worth. And I was wondering if you could comment on that. Yeah, that's a great point, Terrence. And you got to think in terms of the strata of economics, right? So people who are generally wealthy and then sort of the middle class, which has been decimated, and then the poorer classes, this is obviously affecting really harshly the poorer classes, right. Inflation just crushes people in the lower classes, financially speaking. They have minimum wage jobs. We've talked about this many times on here, but you cannot survive on one minimum wage job. So maybe they have two or three. And then as the economy tightens, they're starting to get fired from some of these. The cost of goods and services is rapidly increasing. So they can't even afford their basic groceries. They may not be able to afford gas to drive to work. All of these things, they just get worse and worse. So it does affect the lower economic classes. Disproportionately that's what drives me nuts, right. That's what makes Bitcoin so beautiful, is those are the same classes who can benefit most strongly from Bitcoin, from a fair type of money instead of the unjust system that we have. So, yeah, it's affecting them. Now. I will say, though, that the wealth effect is real, too, and that affects the upper classes. Disproportionately why? Because wealthier people own more assets, right? They own houses, they own stocks, they own bonds, they own art, they own whatever. And the valuations of those kind of things have also come down dramatically. So we're actually seeing that across the board, which is sort of interesting. And you don't always see this. You only see this in like real recessions where the poor people are buying less of their normal goods and services, the consumer staples, and the wealthier people are actually buying less of their garbage that they buy diamond rings and pearls and boats and wealthy person things, yachts, those kind of sales are all significantly down as well. So it's affecting everybody, but it affects everybody. Disproportionately that makes a lot of sense. Yeah. Thank you for that breakdown. I wanted to ask you and Sam about job growth because Nick Temeros from the Wall Street Journal, the so called Fed whisperer who seems to have inside info sometimes on what the Fed is about to do, he said that incorrectly, that we've never seen a period like this where we've had so much job growth. This is part ways wrong. There is no job growth, but so little demand for any type of housing. Talking about the housing slump, and I posted in the Nest something from gaming grandpa La Urban Nerd at La Urban Nerd, who replied the job growth is a mirage will become very clear in the next few months. And then they posted, the alleged job growth and all these downward revisions, they seem to be all happening in a downward direction where they're off by over a million, 1.1 million jobs that never existed. And the Philadelphia Fed recently admitted that US jobs were overstated by at least 1.1 million. Sam Callahan had pointed this out to us at Swan, our great economist and researcher, and I was hoping both of you could comment on this. I've never been called an economist before. Oh, sorry. Hey, I mentioned it as a compliment. Yeah. No, I have been under the belief that the labor market is not as strong as being portrayed by government officials and Fed officials for a long time. And it's because of the methodology of how these things are calculated. The payrolls number uses these really large adjustments that are basically pulled out of thin air with, as we're seeing now, large backward revisions. And the Philly Fed themselves did a report. I think that's what's showing in the nest that a lot of these jobs in those payrolls weren't actually there. Right? So they were basically over a million that were set in the headline that were there are not there now. What is this, like, six months later? Eight months later? And that's usually what happens, but nobody really thinks about that, or nobody goes back and checks up on these revisions. But it's basically painting this picture that the labor force is stronger than it is. And we know that a lot of it is what Dr. Jeff was saying, how this is, like people thinking on second jobs. We know that the jolts, like the job openings that they always talk about, it's a lot of people basically being poached from other jobs, so there isn't any new jobs being created. It's people getting poached. And there's a lot of these, like, fake job postings where they put out, like, thousands of job openings. And then this one researcher went through them and applied to all of them and heard back from a very, very tiny percentage of them at all. And so that's the kind of numbers that are used in how these things are calculated. And you have to dig into the methodology, how they're calculated. Then they always point to the unemployment rate being low. But the US. Unemployment rate is low today, not because there's an actual increase of number of people working, but because the labor force itself is shrinking since COVID There's 3.5 million people that are no longer in the workforce. A lot of that is from early retirements as well as just regular retirements. Baby boomers retiring. And so that's a sign of a tight labor market and structurally tight labor market. There's not a lot of workers out there, and the Fed doesn't like that. The Fed wants to see the labor market gets some more slack into it. They want the unemployment rate to go up, but it's kind of hard to do that. When there's just not that many people actually in the active workforce. So there's like a misunderstanding of why the unemployment rate is even low. At 50 year lows is what you often hear. And so personally, I think that has the potential for a trapdoor effect where people think the labor market is stronger than it is until it's not. And oftentimes unemployment rate is reflected where it doesn't just creep up, it kind of spikes a little bit. And so that's what I think I expect to happen in Q one of 2023. We see actually more layoffs start to happen because of the Fed's overtightening and all these other factors. But yeah, that's kind of my summary of the labor market. I think it's a circus. There's a lot of the sharad being pushed out by the Fed officials and it's not as strong as people think. ",timestamp:"01:37:18-01:44:39",topics:["US economy","credit card debt","job growth","US labour market"],type:"twitter_space",weight:127.51501043433724},{boost:0,date:1672152975,description:"Dr. Jeff Ross, of Vailshire Capital, gives his Bitcoin and overall marco outlook for 2023",episode_title:"Café ₿: #Bitcoin Holiday Hangout & @StatusMoneyUSA a #BTC Credit Card",guests:[{name:" BITVOLT7",profile_picture:"https://pbs.twimg.com/profile_images/1532194001511714818/O8nSTKcx_400x400.png",ref_id:"2b9913b7-393c-4125-9aeb-4a8bf32bfa44",twitter_handle:"BITVOLT7"},{name:" samcallah",profile_picture:"https://pbs.twimg.com/profile_images/1502454836981166082/cQG0YQxc_400x400.jpg",ref_id:"a3dbdb56-e228-4382-98bc-d4495ff6dfbd",twitter_handle:"samcallah"},{name:" taodejing2",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"4914799b-a230-4bee-95c9-cf3ac44b6b70",twitter_handle:"TyonClubhouse"},{name:" MrHodl",profile_picture:"https://pbs.twimg.com/profile_images/1607490976670519296/vhLAojMR_400x400.jpg",ref_id:"01d6ee68-c0ef-4ead-b2b7-7eb04694519e",twitter_handle:"MrHodl"},{name:" TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"57beb381-b9e8-4dd1-82f6-4e544a63146b",twitter_handle:"TomerStrolight"},{name:" VailshireCap",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"73c15965-ddad-4e32-9746-da92f5d24134",twitter_handle:"VailshireCap"},{name:"bergealex4",profile_picture:"https://pbs.twimg.com/profile_images/1273374628577247233/tYigkAZH_400x400.jpg",ref_id:"da4bb8ab-540d-4f88-a2a6-f3a3941c5b74",twitter_handle:"bergealex4"},{name:" LukeMikic21",profile_picture:"https://pbs.twimg.com/profile_images/1604626418708742147/gWyVLeqa_400x400.jpg",ref_id:"0a907108-f59f-420f-9986-79b0f060f690",twitter_handle:"LukeMikic21"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" majdmaksad",profile_picture:"https://pbs.twimg.com/profile_images/1483883774471516167/zvEjiCTO_400x400.jpg",ref_id:"1a63c59d-a760-4f8b-bba9-ddfd3cff9f33",twitter_handle:"majdmaksad"}],hosts:[{name:" PeterAnsel9",profile_picture:"https://pbs.twimg.com/profile_images/1607979298153197568/JqAbDyi__400x400.jpg",ref_id:"6cb2b160-fa27-4fac-9ccf-77886ba01521",twitter_handle:"PeterAnsel9"},{name:" NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"c61e3ff9-f540-4343-bc26-1c3a4b537b78",twitter_handle:"NeilJacobs"},{name:" nathanfast",profile_picture:"https://pbs.twimg.com/profile_images/1545758157103697920/RyLn465N_400x400.jpg",ref_id:"739d907e-cbc6-4a05-9246-45c7c5d2a853",twitter_handle:"nathanfast"},{name:"TYonClubhouse",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"cc057990-16d0-4588-83c7-1eb9734eb994",twitter_handle:"tyonclubhouse"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/515f3625-8d91-439b-8d44-968fe6ab16de/19ec29f4-268c-4015-aa6e-245563dbc49d.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"2a0fb607-c735-4b09-809a-3c74cc61de97",show_title:"Swan.com",text:"have Dr. Jeff Ross from Valshire Capital. Welcome. I was hoping you could give us your usual sort of breakdown on the state of the markets and what you're seeing, how was the Christmas sales and so forth. Thank you. Yeah. Hey, Terrence, thanks for having me up. And hey, everybody. It's fun to hear you all. I hope you all had a great Christmas or just happy holidays and have had some good time off. It's been good for me. Been refreshing hanging out with family a bit here. I think the main thing, I spent a lot of time over the longer weekend kind of just looking from 30,000ft up at what's going on, kind of with macro and what's happening with bitcoin in particular. 2022 was kind of a rough year. It was a confusing year for a lot of people. I think that the setup still remains pretty rough. I think retail sales are just showing a continuously weakening consumer. Interestingly, consumer confidence is rising. I think it's because consumers think that inflation, or at least high inflation, isn't going to last forever, so they're getting more confident. But savings rates are near all time lows right now. Credit card usage is near all time highs. People are basically maxing out their credit cards. They're draining their savings. That bodes poorly. A lot of companies, if you've been paying attention to any earnings reports, most major companies are preparing for recession. They just say, yeah, it's inevitable, it's coming. So we have to kind of prepare for this. Companies that have lots of merchandise, they're having a really hard time selling it. Again, that's not good from a consumer perspective. And if you understand that the GDP in the US. 70% of the GDP, approximately 70%, is based on the consumer, based on consumption. So weak consumer just means a weak economy. So we still have the same setup we've had going for a while, right? We have a slowing economy, we have some disinflation, and we have a hawkish Fed, and we have those three factors that is just always historically poor for risk assets. So until something changes, you still got to be prepared for more downside. I said I was looking at the 30,000 foot view, so I'm really bearish at the moment, but I will tell you that I think we're moving along in bitcoin. I tweeted this out on Christmas a couple of days ago. As far as the four year kind of cycle goes for bitcoin, I think we're moving out of the year of widespread panic and disillusionment. That happened in 2018 and it happened again, I think, this last year in 2022. And I think we're moving into and we're probably already there in disinterest. What does disinterest mean? It basically means there's nobody really left who cares other than the hardcore bitcoiners, right? It's just us left. We have our little rooms, we keep each other motivated. We're encouraging each other. We're still dollar cost averaging. It's basically us left. The traders don't care anymore. There's no volatility in the space anymore. Most of the garbage crypto exchanges have gotten liquidated. There may be a few more to come still. I think there probably will be. I think we're going to see some bitcoin miners still go out of business before this is over. It's going to get worse before it gets better. But that period of disinterest is when new bull markets start. So I'm actually really encouraged the best businesses for bitcoin typically start during those periods of widespread panic and disillusionment. Basically when everybody else is panicking, that's when people, the creative people, get the best ideas for how they can make something better for the next go around. So that's what I'm looking at. I'm actually really encouraged that we're getting really close to a bottom. I think we still have more pain to come, but it's in the short term, in the next couple of quarters, I think, at the latest. And then I'm really encouraged. I was telling the people over at Bitcoin magazine, I think there's a really good chance we've hit a bottom in the price of bitcoin before the bitcoin covers in Miami. And then it's basically just up from there. So I think, by the way, I think the bull market will start out slowly again because we're still in this period of disinterest. I think most people won't believe it when we start, but it's setting the stage for 2024, and 2025 being just absolutely fantastic year. So I hope people are dollar costs averaging with me. If not, if you're a trader, that's fine too, but don't try to pick a bottom. That's very hard to do. But I'm very excited for people and my friends who are dollar costs averaging right now because I think finally we're going to have better days ahead by the end of 2023. I love that. Yeah. I think during this period of disinterest, there's also just people are not taking crypto and altcoins seriously because they've obviously failed and there's all this fraud with FTX and so forth. So it's a time for bitcoiners, the ones that are left to get to know each other even better and learn from each other and just go deeper, right, and maybe upsell ourselves or just increase our conviction. And like you said, this is a time when a lot of great ideas will come and creative people will people be more creative and hopefully come up with some new projects and ideas and startups that can really move the needle. I do want to ask you quickly about, you mentioned the credit card debt that is soaring and savings rates going down. It is a small percentage of the overall kind of US household net worth, which I believe is about well over 100 trillion, maybe 140,000,000,000,000. When housing prices were high. But it does seem like this 1 trillion or whatever of credit card debt, while it's serious, is still a fairly small percentage of overall US. Household net worth. And I was wondering if you could comment on that. Yeah, that's a great point, Terrence. And you got to think in terms of the strata of economics, right? So people who are generally wealthy and then sort of the middle class, which has been decimated, and then the poorer classes, this is obviously affecting really harshly the poorer classes, right. Inflation just crushes people in the lower classes, financially speaking. They have minimum wage jobs. We've talked about this many times on here, but you cannot survive on one minimum wage job. So maybe they have two or three. And then as the economy tightens, they're starting to get fired from some of these. The cost of goods and services is rapidly increasing. So they can't even afford their basic groceries. They may not be able to afford gas to drive to work. All of these things, they just get worse and worse. So it does affect the lower economic classes. Disproportionately that's what drives me nuts, right. That's what makes Bitcoin so beautiful, is those are the same classes who can benefit most strongly from Bitcoin, from a fair type of money instead of the unjust system that we have. So, yeah, it's affecting them. Now. I will say, though, that the wealth effect is real, too, and that affects the upper classes. Disproportionately why? Because wealthier people own more assets, right? They own houses, they own stocks, they own bonds, they own art, they own whatever. And the valuations of those kind of things have also come down dramatically. So we're actually seeing that across the board, which is sort of interesting. And you don't always see this. You only see this in like real recessions where the poor people are buying less of their normal goods and services, the consumer staples, and the wealthier people are actually buying less of their garbage that they buy diamond rings and pearls and boats and wealthy person things, yachts, those kind of sales are all significantly down as well. So it's affecting everybody, but it affects everybody. Disproportionately that makes a lot of sense. Yeah. Thank you for that breakdown. ",timestamp:"01:31:53-01:39:57",topics:["Jeff Ross","Bitcoin macro outlook","poor outlook for risk assets","hawkish US Fed","Disinflation","shitcoin failures"],type:"twitter_space",weight:122.72901871778198},{boost:0,date:1672152975,description:"Bitcoin regulations in America",episode_title:"Café ₿: #Bitcoin Holiday Hangout & @StatusMoneyUSA a #BTC Credit Card",guests:[{name:" BITVOLT7",profile_picture:"https://pbs.twimg.com/profile_images/1532194001511714818/O8nSTKcx_400x400.png",ref_id:"2b9913b7-393c-4125-9aeb-4a8bf32bfa44",twitter_handle:"BITVOLT7"},{name:" samcallah",profile_picture:"https://pbs.twimg.com/profile_images/1502454836981166082/cQG0YQxc_400x400.jpg",ref_id:"a3dbdb56-e228-4382-98bc-d4495ff6dfbd",twitter_handle:"samcallah"},{name:" taodejing2",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"4914799b-a230-4bee-95c9-cf3ac44b6b70",twitter_handle:"TyonClubhouse"},{name:" MrHodl",profile_picture:"https://pbs.twimg.com/profile_images/1607490976670519296/vhLAojMR_400x400.jpg",ref_id:"01d6ee68-c0ef-4ead-b2b7-7eb04694519e",twitter_handle:"MrHodl"},{name:" TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"57beb381-b9e8-4dd1-82f6-4e544a63146b",twitter_handle:"TomerStrolight"},{name:" VailshireCap",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"73c15965-ddad-4e32-9746-da92f5d24134",twitter_handle:"VailshireCap"},{name:"bergealex4",profile_picture:"https://pbs.twimg.com/profile_images/1273374628577247233/tYigkAZH_400x400.jpg",ref_id:"da4bb8ab-540d-4f88-a2a6-f3a3941c5b74",twitter_handle:"bergealex4"},{name:" LukeMikic21",profile_picture:"https://pbs.twimg.com/profile_images/1604626418708742147/gWyVLeqa_400x400.jpg",ref_id:"0a907108-f59f-420f-9986-79b0f060f690",twitter_handle:"LukeMikic21"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" majdmaksad",profile_picture:"https://pbs.twimg.com/profile_images/1483883774471516167/zvEjiCTO_400x400.jpg",ref_id:"1a63c59d-a760-4f8b-bba9-ddfd3cff9f33",twitter_handle:"majdmaksad"}],hosts:[{name:" PeterAnsel9",profile_picture:"https://pbs.twimg.com/profile_images/1607979298153197568/JqAbDyi__400x400.jpg",ref_id:"6cb2b160-fa27-4fac-9ccf-77886ba01521",twitter_handle:"PeterAnsel9"},{name:" NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"c61e3ff9-f540-4343-bc26-1c3a4b537b78",twitter_handle:"NeilJacobs"},{name:" nathanfast",profile_picture:"https://pbs.twimg.com/profile_images/1545758157103697920/RyLn465N_400x400.jpg",ref_id:"739d907e-cbc6-4a05-9246-45c7c5d2a853",twitter_handle:"nathanfast"},{name:"TYonClubhouse",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"cc057990-16d0-4588-83c7-1eb9734eb994",twitter_handle:"tyonclubhouse"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b27dcf88-bdfb-4433-b0fe-c9040dbf392f/11aa5648-d416-46f3-a66a-0750e9d71ccd.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"2969a789-41bf-4e23-8ab8-31a76c5a5754",show_title:"Swan.com",text:"very quickly, just before perhaps we could give the mic to Luke. But I just want to quickly echo what Sam was saying and it just pinned at the top. The report from Pierre Rashard and I think Jill Burnett at Block, where I think they've done a very fantastic job of dispelling a lot of the fun around the security budget and actually sort of introducing, perhaps not introducing, for everyone. But bringing back to the front a different way to discuss that, wherein, when we're discussing minors, we're really discussing finality and not security. And I think when you considered that under this optic, you can look at it in very different ways. That makes sense. Luke, go ahead. Yeah. To the discussion about America losing the war and really burdensome regulation being pushed for in America. What odds do you guys put on, say, like a Texas or even a shitcoin in Miami actually succeeding and forming their own independent state? I shared something in the nest. I think it was the former Russian president put out some very interesting and provocative predictions for the year 2030. But he talked about the possibility, probably a very small possibility, of a Texas forming like an allied state with Mexico. Obviously that's madness and probably won't happen in a long time, but what odds do you guys genuinely put on like a Texas succeeding from the US. If the US Tries to attack bitcoin? Yeah. The balkanization of the US. Has been discussed a lot about in Bitcoin circles. Tone Vase swears by it and thinks by 2030, 2035, you'll see the Balkanization. And I've put some thought into it. And if you think about it, what is one of the glue that is keeping a lot of these states together, even though ideologically they're radically different? Right. Like, people in California want a certain type of government. People in Texas want a certain type of government. People in Florida want a certain type of government. People in New York want a certain type of government. The glue that's keeping it together is the common currency. It's the US. Dollar. Right. So what happens if and Parker Lewis has touched upon this before in the past? What happens if all of a sudden state like Florida, Wyoming, starts putting bitcoin on its balance sheet and starts to realize that it doesn't need those federal dollars anymore, basically becoming self sufficient in a sense? Right. It's a very interesting question. And now think about how the marijuana industry has been treated in the United States, right? On a federal level, marijuana is illegal, right? But on a state level, it's thriving, right? California, Colorado, Oregon, washington State. So you can kind of see it in that direction. I think on a federal level, they're extremely hostile to bitcoin, obviously, because they get a tremendous amount of power from being able to control the monetary policy it funds themselves and also this world police type of outlook, right. The ability for the US government to place sanctions on entire countries through the office of foreign asset Control, that gives them a tremendous amount of power. Bitcoin is a threat to that. So obviously, I don't think on the federal level, I think on the federal level, bitcoin could be the last to be really accepted. But on a state level, that's a whole different conversation. I think states like Texas that get a tremendous amount of economic opportunity from the bitcoin mining industry, I think they're going to try to protect it tooth and nail. It's very similar to how the marijuana industry played out. I think that's what's going to happen perhaps on a state level. And I think that as soon as a state that brave state starts to put bitcoin on their balance sheet, man, in my opinion, that's game over. Like it's done right now. Hold on, Nico. You don't think the federal government is not going to enforce the constitution and not allow that to happen with military? I mean, that's like seceding, dude. That's a big deal. I think that things are going to get so crazy, and I think that we're all feeling it right now. I think that we're all feeling the fourth turning vibes. The corruption, the theft is so blatant, so in your face. The $1.7 trillion optimus bill, bro, I'm not going to get into any of the political stuff in there, but they had $65 million just into the research of fish, bro, there was a point in the bill. I'm not kidding. This is 100% real. There was $120,000 being dedicated to researching whether thanos the fictional character from the Avengers movies, whether he could really snap his fingers or not. Right? I couldn't agree with you more. There's a bill about a bee crossing on a fucking highway, but $3.5 million dedicated to bees? The theft is so blatant, bro, it's in your face, right? And it goes to are we at the very dying ends of an empire, the American empire, right? Empires usually last 300 years. We're about that point. It's so blatant. It's so corrupt. It's so in your face. And I don't know, man, if I'm a state like Texas, if I'm a state like Florida, ideologically I'm very different. And I'm seeing this and all of a sudden I have an alternative. I have an option to opt out of that entirely. I don't know why you wouldn't take that. Right? And then that goes to the other theory that. Ex former president of Russia said that you could potentially see an American civil war. I don't want to talk about that because war is terrible. War is hell. Of course we'd want to avoid that, but, I mean, if the momentum of history is going in that direction, so be it. But I don't know what's going to happen. On a macro level, I think predicting that it's, like, almost impossible. But what I can tell you, and I think what makes me, as an individual extremely optimistic, is that if my wealth is in bitcoin, my family's future, my future is protected because I can go where I'm treated best. If it means picking up and leaving and taking everything with me, I can only by writing down twelve words or 24 words. And I think that by itself is going to radically change the world. Because what I think governments are doing today is I think that they have a lot of their citizens hostage, and then they force their citizens to use money that steals from them. And perhaps in the United States, it's not quite noticeable because the inflation rate is only two to 4%. It got all the way up to 7%. But if you live in Argentina, where that inflation rate is 92%, man, bitcoin isn't a speculation for you. Bitcoin is survival. Those people already understand what it means to live in a country where their government currency fails, right? So that's what I'm bullish on, man. I'm bullish on individuals. I'm bullish on Central and Latin America. I'm bullish on what's going on over there in the United States. We shall see. I'm going to fight like hell. I love my country. I'm a first generation immigrant. I love not what the American government stands for, but what the original vision of America stood for. And I love it, and I'm going to fight for it. I'm going to stay here to the very bitter end. But, you know, if it comes to being thrown in a gulag because I'm writing twelve words or taking, like, uprooting my my life and my family's life and moving to El Salvador, then so be it. Obviously, I don't want to do that. I want to fight. And I want to win the race of adoption, get the ideals of bitcoin into the mainstream consciousness of America so that we could avoid that fucking war altogether. And I think that's what I try to do every single day. And that's what swan tries to do every single day. And that's what all bitcoiners try to do every single day. We fight this. We fight this information war, this psychological warfare that's happening every single day. It's trench warfare on the battlegrounds of the internet, man. And I think we're going to win. I think bitcoin's incentives are going to be any type of coercion that they try to jump, that they try to throw at us. Anyways, I'm sorry for ranting a little bit it's just a very passionate topic for me. ",timestamp:"01:05:44-01:15:03",topics:["Bitcoin regulation","bitcoin attack"],type:"twitter_space",weight:79.79824311351389},{boost:0,date:1672152975,description:"Discussion on Dmitry Medvedev's 2023 global predictions, the US losing the Bitcoin regulation war and Texas succeeding from the union due to bitcoin",episode_title:"Café ₿: #Bitcoin Holiday Hangout & @StatusMoneyUSA a #BTC Credit Card",guests:[{name:" BITVOLT7",profile_picture:"https://pbs.twimg.com/profile_images/1532194001511714818/O8nSTKcx_400x400.png",ref_id:"2b9913b7-393c-4125-9aeb-4a8bf32bfa44",twitter_handle:"BITVOLT7"},{name:" samcallah",profile_picture:"https://pbs.twimg.com/profile_images/1502454836981166082/cQG0YQxc_400x400.jpg",ref_id:"a3dbdb56-e228-4382-98bc-d4495ff6dfbd",twitter_handle:"samcallah"},{name:" taodejing2",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"4914799b-a230-4bee-95c9-cf3ac44b6b70",twitter_handle:"TyonClubhouse"},{name:" MrHodl",profile_picture:"https://pbs.twimg.com/profile_images/1607490976670519296/vhLAojMR_400x400.jpg",ref_id:"01d6ee68-c0ef-4ead-b2b7-7eb04694519e",twitter_handle:"MrHodl"},{name:" TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"57beb381-b9e8-4dd1-82f6-4e544a63146b",twitter_handle:"TomerStrolight"},{name:" VailshireCap",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"73c15965-ddad-4e32-9746-da92f5d24134",twitter_handle:"VailshireCap"},{name:"bergealex4",profile_picture:"https://pbs.twimg.com/profile_images/1273374628577247233/tYigkAZH_400x400.jpg",ref_id:"da4bb8ab-540d-4f88-a2a6-f3a3941c5b74",twitter_handle:"bergealex4"},{name:" LukeMikic21",profile_picture:"https://pbs.twimg.com/profile_images/1604626418708742147/gWyVLeqa_400x400.jpg",ref_id:"0a907108-f59f-420f-9986-79b0f060f690",twitter_handle:"LukeMikic21"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" majdmaksad",profile_picture:"https://pbs.twimg.com/profile_images/1483883774471516167/zvEjiCTO_400x400.jpg",ref_id:"1a63c59d-a760-4f8b-bba9-ddfd3cff9f33",twitter_handle:"majdmaksad"}],hosts:[{name:" PeterAnsel9",profile_picture:"https://pbs.twimg.com/profile_images/1607979298153197568/JqAbDyi__400x400.jpg",ref_id:"6cb2b160-fa27-4fac-9ccf-77886ba01521",twitter_handle:"PeterAnsel9"},{name:" NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"c61e3ff9-f540-4343-bc26-1c3a4b537b78",twitter_handle:"NeilJacobs"},{name:" nathanfast",profile_picture:"https://pbs.twimg.com/profile_images/1545758157103697920/RyLn465N_400x400.jpg",ref_id:"739d907e-cbc6-4a05-9246-45c7c5d2a853",twitter_handle:"nathanfast"},{name:"TYonClubhouse",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"cc057990-16d0-4588-83c7-1eb9734eb994",twitter_handle:"tyonclubhouse"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/515f3625-8d91-439b-8d44-968fe6ab16de/19ec29f4-268c-4015-aa6e-245563dbc49d.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"12445bad-9deb-4bff-ba8a-e8a490b00cc5",show_title:"Swan.com",text:"Luke, go ahead. Yeah. To the discussion about America losing the war and really burdensome regulation being pushed for in America. What odds do you guys put on, say, like a Texas or even a shitcoin in Miami actually succeeding and forming their own independent state? I shared something in the nest. I think it was the former Russian president put out some very interesting and provocative predictions for the year 2030. But he talked about the possibility, probably a very small possibility, of a Texas forming like an allied state with Mexico. Obviously that's madness and probably won't happen in a long time, but what odds do you guys genuinely put on like a Texas succeeding from the US. If the US Tries to attack bitcoin? Yeah. The balkanization of the US. Has been discussed a lot about in Bitcoin circles. Tone Vase swears by it and thinks by 2030, 2035, you'll see the Balkanization. And I've put some thought into it. And if you think about it, what is one of the glue that is keeping a lot of these states together, even though ideologically they're radically different? Right. Like, people in California want a certain type of government. People in Texas want a certain type of government. People in Florida want a certain type of government. People in New York want a certain type of government. The glue that's keeping it together is the common currency. It's the US. Dollar. Right. So what happens if and Parker Lewis has touched upon this before in the past? What happens if all of a sudden state like Florida, Wyoming, starts putting bitcoin on its balance sheet and starts to realize that it doesn't need those federal dollars anymore, basically becoming self sufficient in a sense? Right. It's a very interesting question. And now think about how the marijuana industry has been treated in the United States, right? On a federal level, marijuana is illegal, right? But on a state level, it's thriving, right? California, Colorado, Oregon, washington State. So you can kind of see it in that direction. I think on a federal level, they're extremely hostile to bitcoin, obviously, because they get a tremendous amount of power from being able to control the monetary policy it funds themselves and also this world police type of outlook, right. The ability for the US government to place sanctions on entire countries through the office of foreign asset Control, that gives them a tremendous amount of power. Bitcoin is a threat to that. So obviously, I don't think on the federal level, I think on the federal level, bitcoin could be the last to be really accepted. But on a state level, that's a whole different conversation. I think states like Texas that get a tremendous amount of economic opportunity from the bitcoin mining industry, I think they're going to try to protect it tooth and nail. It's very similar to how the marijuana industry played out. I think that's what's going to happen perhaps on a state level. And I think that as soon as a state that brave state starts to put bitcoin on their balance sheet, man, in my opinion, that's game over. Like it's done right now. Hold on, Nico. You don't think the federal government is not going to enforce the constitution and not allow that to happen with military? I mean, that's like seceding, dude. That's a big deal. I think that things are going to get so crazy, and I think that we're all feeling it right now. I think that we're all feeling the fourth turning vibes. The corruption, the theft is so blatant, so in your face. The $1.7 trillion optimus bill, bro, I'm not going to get into any of the political stuff in there, but they had $65 million just into the research of fish, bro, there was a point in the bill. I'm not kidding. This is 100% real. There was $120,000 being dedicated to researching whether thanos the fictional character from the Avengers movies, whether he could really snap his fingers or not. Right? I couldn't agree with you more. There's a bill about a bee crossing on a fucking highway, but $3.5 million dedicated to bees? The theft is so blatant, bro, it's in your face, right? And it goes to are we at the very dying ends of an empire, the American empire, right? Empires usually last 300 years. We're about that point. It's so blatant. It's so corrupt. It's so in your face. And I don't know, man, if I'm a state like Texas, if I'm a state like Florida, ideologically I'm very different. And I'm seeing this and all of a sudden I have an alternative. I have an option to opt out of that entirely. I don't know why you wouldn't take that. Right? And then that goes to the other theory that. Ex former president of Russia said that you could potentially see an American civil war. I don't want to talk about that because war is terrible. War is hell. Of course we'd want to avoid that, but, I mean, if the momentum of history is going in that direction, so be it. But I don't know what's going to happen. On a macro level, I think predicting that it's, like, almost impossible. But what I can tell you, and I think what makes me, as an individual extremely optimistic, is that if my wealth is in bitcoin, my family's future, my future is protected because I can go where I'm treated best. If it means picking up and leaving and taking everything with me, I can only by writing down twelve words or 24 words. And I think that by itself is going to radically change the world. Because what I think governments are doing today is I think that they have a lot of their citizens hostage, and then they force their citizens to use money that steals from them. And perhaps in the United States, it's not quite noticeable because the inflation rate is only two to 4%. It got all the way up to 7%. But if you live in Argentina, where that inflation rate is 92%, man, bitcoin isn't a speculation for you. Bitcoin is survival. Those people already understand what it means to live in a country where their government currency fails, right? So that's what I'm bullish on, man. I'm bullish on individuals. I'm bullish on Central and Latin America. I'm bullish on what's going on over there in the United States. We shall see. I'm going to fight like hell. I love my country. I'm a first generation immigrant. I love not what the American government stands for, but what the original vision of America stood for. And I love it, and I'm going to fight for it. I'm going to stay here to the very bitter end. But, you know, if it comes to being thrown in a gulag because I'm writing twelve words or taking, like, uprooting my my life and my family's life and moving to El Salvador, then so be it. Obviously, I don't want to do that. I want to fight. And I want to win the race of adoption, get the ideals of bitcoin into the mainstream consciousness of America so that we could avoid that fucking war altogether. And I think that's what I try to do every single day. And that's what swan tries to do every single day. And that's what all bitcoiners try to do every single day. We fight this. We fight this information war, this psychological warfare that's happening every single day. It's trench warfare on the battlegrounds of the internet, man. And I think we're going to win. I think bitcoin's incentives are going to be any type of coercion that they try to jump, that they try to throw at us. Anyways, I'm sorry for ranting a little bit it's just a very passionate topic for me. I love your quote unquote rants. I think to me they just come across passionate and well thought out. I am. Thanks, Terry. Just to go back and answer League's question maybe a little bit differently, I think this session, it would be very hostile. Like, that's a totally different ball game. It would be on the brink of civil war. We're also intertwined and the whole country depends on, say, Texas and Florida for different resources. That's just not going to happen without some kind of military response. But in the Constitution, there is the 10th Amendment right that powers not delegated to the United States by the Constitution are reserved to the states respectively, or to the people. And so I always said the migration of hash rate was bullish to go to America because I called it the disunited king of hash rate because they're strong state government and to avoid tyranny and the ineffective central planning, every state is free to enact its own policies that work for its own populations. And so unless the government banned, outright banned bitcoin a commodity, I don't see how they could stop states from adding it to their balance sheets or the Treasuries just saying, hey, we're going to buy a little bit of bitcoin unless there was some federal ban on bitcoin. And so there's a difference between suspicion and just purchasing bitcoin right now because there's no kind of federal law preventing them from doing that. And they have states rights and that's protected by the Constitution, the 10th Amendment. So that's how I kind of see that scenario. ",timestamp:"01:06:40-01:16:49",topics:["Dmitry Medvedev","balkanization of the us","Bitcoin regulation","Texas secession"],type:"twitter_space",weight:76.08473176624994},{boost:0,date:1671644776,description:"The BCV foundation and Bitcoin education in Nigeria",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b18df9d2-d034-4e1f-bcd1-d70b30fe9059/506355bc-c119-4f18-bf0b-abe9be8c17d6.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"0330ada0-fbc0-4f8f-a560-a6c059a72907",show_title:"Geyser 🌊",text:"So, yeah, tell us a bit about your project and I'm sure more and more people will join up. All right. I'm just handle that because I'm just like handling the accounts where I really know about this project because I'm a beneficiary of the project. So they have been going around in communities in Nigeria and some other places, and they've been giving out pamphlets, teaching people about Bitcoin and how we can help them secure financial power or financial freedom yet. So basically I got about 100,000 from them after the education. And also I've been keeping in touch with these people and they offered me because I really don't have anything doing. So they offered me to get this job to just handle the account. And I'm still learning about the project. But basically what they do is they just teach people. We just tell people about it's more like we're going to like the grassroots. I don't know if you're with me. We're going to the grassroots to really uneducated places, to just teach people, like traders and random people on the streets. We're just teaching them and telling them stuff about bitcoin, because I think it starts from there, because education is a big problem. There's this gap, there's this space between the educator and the uneducated ones that the uneducators also never really get the chance to understand what this is all about. They just keep suffering and suffering and they don't really know how to really get out of the circle or the matrix of just being suppressed financially. Right. So that's basically what it's all about. So they've been doing a great job. They've been going around. And I'm a beneficiary, so it's more like my testimony, right? Yeah. I'm just saying that to the space, basically wait, I'm sure if it worked, but basically they're receiving donations of Geyser. And the main purpose of the initiative is essentially reaching out to rural communities, doing basic education about bitcoin. And there's also an element of mining, is that right? Not really, but solar. Really? Solar power. About renewable energy. Because Nigeria has power issues. Has power issues, especially in the local communities, the grassroots, like I said. That'S incredible. So we just try to help people with small solar power generators that they used to. And we have some people that mine bitcoin in very small scale. They have this really small miners, so they use our solar power generators. Got you. So I can see here you guys are focused on six African communities in three countries. Ghana, Kenya, Nigeria. Yes. And you guys are an NGO dedicated to promoting, expanding bitcoin across the world. Yes. Focusing on education, school and rural areas. Yes. Yes. So this is an incredible project. You guys are calling it bits and stats and help educate school students and other individuals. So how do you guys do that? And what's your experience so far? Like, how has it been received? It has been really good because when schools were still in session, because now schools are on holidays now, vacation. Right. When schools were still in session, like secondary school education, we used to go around and teach, like, school children in classes. We just take minutes of their time because in schools they have recess and different times and other stuff like that. So we just go around and we try to teach and we hand out pamphlets, like I said. But we haven't really given out bitcoin to this secondary school students because most of them don't really, like, possess phones and other things like that. So we just basically teach them how it works. But then we go around and trade as people that sell stuff, people that just, like, randomly work on things, like outside. We just try to teach them on the streets, we just walk around. Have you tried using different tools like machancura to use SMS to send people? I just learnt about machancura last month and it's really innovative, but I haven't really done anything and I haven't really connected with people. So I think we should do more of that. We would have to connect with people because we had one representative in Ghana for the Afro Bitcoin conference some weeks back. It's just a tool that you can start using. I recommend you just playing with it, and it really just means that you can use your feature phone and some of the old phones to receive. Satoshi is pretty straightforward. Okay, that's great. Yes, I saw some stuff about it, so I'll definitely play around with it. And I can't people around too, since. That'S how you really learn, right? You learn and practice with really feeling it. Yes. That's cool. Yeah. Thank you for the awesome initiative, for the opportunity. Also really appreciate of ",timestamp:"00:10:34-00:16:46",topics:["Bitcoin education","Nigeria","Bitcoin mining","BCV foundation","Geyser"],type:"twitter_space",weight:62.68289275364415},{boost:0,date:1671644776,description:"The introduction to Bitcoin in Nigeria and how it's gradually taking it's place",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/885fe09b-bb21-49a5-8667-3c73ed36918f/196dc1e8-c7a4-4dc7-902f-d00107aefb42.mp3",node_type:"clip",pub_key:"0372cd0c8469f2034336a243e018d4d60e07efef8e7d10417807da1173bd5b002f",ref_id:"83ce1420-66d3-41e6-b987-b35fe2cf019f",show_title:"Geyser 🌊",text:"All right. Hello. Good evening. Hey, good evening. Yeah, how's it going? It's going great. Thanks, guys, for the opportunity to speak. Yes, I'm grateful. Fantastic. Yeah. I mean, not many people today. We've had better turnouts. I think it was a bit of a last minute call, but I wasn't. Even expecting I just saw a notification and I came up. Awesome. Yeah, it's cool, man. So, yeah, tell us a bit about your project and I'm sure more and more people will join up. All right. I'm just handle that because I'm just like handling the accounts where I really know about this project because I'm a beneficiary of the project. So they have been going around in communities in Nigeria and some other places, and they've been giving out pamphlets, teaching people about Bitcoin and how we can help them secure financial power or financial freedom yet. So basically I got about 100,000 from them after the education. And also I've been keeping in touch with these people and they offered me because I really don't have anything doing. So they offered me to get this job to just handle the account. And I'm still learning about the project. But basically what they do is they just teach people. We just tell people about it's more like we're going to like the grassroots. I don't know if you're with me. We're going to the grassroots to really uneducated places, to just teach people, like traders and random people on the streets. We're just teaching them and telling them stuff about bitcoin, because I think it starts from there, because education is a big problem. There's this gap, there's this space between the educator and the uneducated ones that the uneducators also never really get the chance to understand what this is all about. They just keep suffering and suffering and they don't really know how to really get out of the circle or the matrix of just being suppressed financially. Right. So that's basically what it's all about. So they've been doing a great job. They've been going around. And I'm a beneficiary, so it's more like my testimony, right? Yeah. I'm just saying that to the space, basically wait, I'm sure if it worked, but basically they're receiving donations of Geyser. And the main purpose of the initiative is essentially reaching out to rural communities, doing basic education about bitcoin. And there's also an element of mining, is that right? Not really, but solar. Really? Solar power. About renewable energy. Because Nigeria has power issues. Has power issues, especially in the local communities, the grassroots, like I said. That'S incredible. So we just try to help people with small solar power generators that they used to. And we have some people that mine bitcoin in very small scale. They have this really small miners, so they use our solar power generators. Got you. So I can see here you guys are focused on six African communities in three countries. Ghana, Kenya, Nigeria. Yes. And you guys are an NGO dedicated to promoting, expanding bitcoin across the world. Yes. Focusing on education, school and rural areas. Yes. Yes. So this is an incredible project. You guys are calling it bits and stats and help educate school students and other individuals. So how do you guys do that? And what's your experience so far? Like, how has it been received? It has been really good because when schools were still in session, because now schools are on holidays now, vacation. Right. When schools were still in session, like secondary school education, we used to go around and teach, like, school children in classes. We just take minutes of their time because in schools they have recess and different times and other stuff like that. So we just go around and we try to teach and we hand out pamphlets, like I said. But we haven't really given out bitcoin to this secondary school students because most of them don't really, like, possess phones and other things like that. So we just basically teach them how it works. But then we go around and trade as people that sell stuff, people that just, like, randomly work on things, like outside. We just try to teach them on the streets, we just walk around. Have you tried using different tools like machancura to use SMS to send people? I just learnt about machancura last month and it's really innovative, but I haven't really done anything and I haven't really connected with people. So I think we should do more of that. We would have to connect with people because we had one representative in Ghana for the Afro Bitcoin conference some weeks back. It's just a tool that you can start using. I recommend you just playing with it, and it really just means that you can use your feature phone and some of the old phones to receive. Satoshi is pretty straightforward. Okay, that's great. Yes, I saw some stuff about it, so I'll definitely play around with it. And I can't people around too, since. That'S how you really learn, right? You learn and practice with really feeling it. Yes. That's cool. Yeah. Thank you for the awesome initiative, ",timestamp:"00:09:59-00:16:41",topics:["Nigeria","Bitcoin adoption"],type:"twitter_space",weight:61.64845435071934},{boost:0,date:null,description:"Greg Foss' Thoughts on countries interested in joining the BRICS forum",episode_title:"Café ₿: #Bitcoin News & Trusted P2P Reviews w/ @Apollosats",guests:[{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:"@FossGregfoss",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"09913e9b-38dc-4465-9d4d-ae0c9ba9eeca",twitter_handle:"Fuckkkk"},{name:"@w_s_bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"b178b239-3b18-4a16-9d43-c5d15ba6f7f4",twitter_handle:"w_s_bitcoin"},{name:"@NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"4b6997e1-ce0b-4a1d-90e7-dbaccef4b783",twitter_handle:"NeilJacobs"},{name:"@brandon_gentile",profile_picture:"https://pbs.twimg.com/profile_images/1561369452284895236/-8WgdwEm_400x400.jpg",ref_id:"f940c5e8-4808-4197-a38f-3f19d311a7ad",twitter_handle:"brandon_gentile"},{name:"@apollosats",profile_picture:"https://pbs.twimg.com/profile_images/1576946734927794176/2ail9FoU_400x400.jpg",ref_id:"74f4280f-5fdb-4bbc-aee2-a2ed32d64372",twitter_handle:"apollosats"},{name:"@StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"6e652629-38ec-49d8-9f5c-3ba28f80c799",twitter_handle:"StackchainSig"},{name:"@TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"7af639f8-8c5c-4ce1-a43b-e8560ed40e2b",twitter_handle:"TomerStrolight"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7cf57bdb-c905-46e3-a7e5-4c0bfd4f8d04/71c08fae-cce8-4600-ab9e-758420e78dcf.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"639d4f31-2190-4fc2-a0dc-57cf53c3d97b",show_title:"Swan.com",text:"a question. I got a question coming in. Wicked. Yeah, go ahead. This is coming in from text greg, I don't know how much longer we've got you for. That's why I wanted to get this to you before. I didn't mean to cut you off. But this comes from Sholey, and his question is, foss, I'm interested in your take on countries wanting to join the BRICS and move away from the US dollar for trade. Apparently this was a tweet from Kim.com, so please don't shoot me for the source, but apparently Russia has announced that twelve more countries are interested in joining the BRICS. What do you think about all this? Yeah, well, it's not hard to see the playbook, right? When you have your US dollar controlled reserve asset of the world, which is US treasuries, when that gets frozen and you need to call on it and you can't so I'm talking about Putin here. You look for alternatives. Now, Marty Ben here's a shout out to my friend Marty. He had an amazing publication on Friday, okay, calling the same thing, but says it won't be gold backed oil trades, it'll eventually be bitcoin backed oil trades. And that makes sense from my perspective of digital energy versus natural resource energy. And why sell valuable natural resource energy for US dollar fee when ultimately, rather than selling it for gold, which is a far better store of value than US dollars or US treasuries, but you could sell it for digital energy. As an engineer, I'm not a physicist, so there's some physicists that hate the fact that sailor, and maybe me, at times refer to bitcoin as digital energy. But I don't care. Understand? It's selling natural resource energy for digital energy is just about the smartest thing you can do in a closed loop energy frame. Okay? So one more shout out, I'll step down or try and shut up. So thank you, wicked for great input, Terence. Great input, aunt. Great input. And a shout out to one of your listeners that just reached out to me via DM. We want to talk some more about the big utilities in the US. Becoming bitcoin miners. It's the most logical step in the world. The energy guys know it. The ESG guys, they already have their heads shoved firmly up their ass, so they're not going to hear it. But people who manage the grid and manage energy understand that bitcoin and bitcoin mining is the perfect regulator, okay? With a switch, you can turn power up or power down your bitcoin miners, and you create incremental cash flow to defease capital expenditures, to building things like, oh, nuclear power plants. Because normally a nuclear power plant has a 20 year return on investment profile. And if you insert bitcoin mining in there, you can reduce that return on investment profile by at least one half, okay? And that's a meaningful adjustment to the capex that's required for building a core nuclear generator. So small nuclear modular reactors, big core nuclear reactors, it's what's going to really solve the energy crisis, people. And bitcoin is going to help with that. So don't overthink things. ",timestamp:"01:11:11-01:14:33",topics:["BRICS forum"],type:"twitter_space",weight:25.360525131225586},{boost:0,date:0,description:"What will Bitcoin look like in a scenario of global adoption? ",episode_title:"Café ₿: #Bitcoin Fix the Money, Fix the World",guests:[{name:"OrangePild",profile_picture:"https://pbs.twimg.com/profile_images/1608905201334845441/SHUsfTBW_400x400.jpg",ref_id:"1c33ba0e-3e6b-41f6-aed4-5217aa534521",twitter_handle:"OrangePild"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Dr. Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"51a969bb-dbf7-4d20-b128-74dcc5f560f6",twitter_handle:"VailshireCap"},{name:"Jason Brett",profile_picture:"https://pbs.twimg.com/profile_images/1591476397847060482/bNapBM4Y_400x400.jpg",ref_id:"750a85f9-59f2-4627-817c-a437b65ee45e",twitter_handle:"RegulatoryJason"},{name:"Tatum Turn Up",profile_picture:"https://pbs.twimg.com/profile_images/1600036563429343233/PXP0gxRj_400x400.jpg",ref_id:"31824d8a-a2a6-434e-8d10-f0be1c2f8389",twitter_handle:"tatumturnup"},{name:"Stackchain ⛓ Signal",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"b0242af7-0d94-4551-ba25-a8b216b82fce",twitter_handle:"StackchainSig"},{name:"Ross",profile_picture:"https://pbs.twimg.com/profile_images/1602431687564357632/57oH7beH_400x400.jpg",ref_id:"cdb90285-daa9-4dd2-b96a-78dd5e8ba468",twitter_handle:"theyoungrossco"},{name:"BTC Sessions",profile_picture:"https://pbs.twimg.com/profile_images/1602307254937866240/CKiRrFui_400x400.jpg",ref_id:"e207ef16-44d1-40c4-929a-ea2736f60a94",twitter_handle:"BTCsessions"},{name:"TC",profile_picture:"https://pbs.twimg.com/profile_images/1607590332925095937/6CTv4688_400x400.jpg",ref_id:"083ddb42-c4a0-4360-8de3-6178e3b659ec",twitter_handle:"Meditation_Man"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"}],hosts:[{name:"Swan.com",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"995b79e6-02fe-4395-8aa7-fdc000584e71",twitter_handle:"SwanBitcoin"},{name:"PB23 😎 Pacific Bitcoin Festival",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"9dd05f7c-4891-440c-aa61-677a92e70a0f",twitter_handle:"pacificbitcoin"},{name:"NICO⚡️",profile_picture:"https://pbs.twimg.com/profile_images/1513692277515997188/t5Ja3SFr_400x400.jpg",ref_id:"ccd52021-88cc-4e7d-9822-6eed5a169ca9",twitter_handle:"nico_lechuga"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/84e104dc-230e-40a7-9ec0-16c5a0d6873b/e7948dc4-eff7-4d6e-8ed2-80f524a8c494.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"1171938e-b754-45ff-958d-ca89aa3ab235",show_title:"Swan.com",text:"Ross, you have your hands up. Thanks to ross, you have your hands up, and then we're going to wrap it up. Yeah, thanks for letting me speak. I want to ask a question to the experts here that have been around longer than me. My reason for asking the question is actually someone in my twitter feed asked the question. They said, construct a sentence that would really piss off a bitcoiner. And I constructed one so well that I would like to know the answer to my own question. So, what I wrote is, assuming 10 billion people in the world and an absolute global adoption of Bitcoin, if every single person in the world wanted to make a single layer, one transaction just multiplying out 2500 to 3000 transactions per block times, hours, years, et cetera. It would take somewhere between 60 and 70 ish years for one person, for each person in the world to make a single transaction on layer one. So with that and the ultimate vision of bitcoin being the kind of global reserve asset and understanding, there's more layers like lightning and possibly even layer three, et cetera, that will come in time, what do you guys see as the, I guess, endgame of the landscape of what bitcoin would look like in a global adoption scenario? Let me ask you something. So most transactions right now are through debit cards, credit cards, electronic transfers. What layer do you think that is in the traditional? Well, I would say it's layer three at least, if not higher. It's layer three. Right. So how long has that system been around? Like 50 years, give or take? Exactly. It's been around for 60 years. Bitcoin's roughly a decade and a half old. Decade and change. Right. I think lightning is a great solution, but I still think that it needs a lot of work. I think there's so many awesome projects that are being worked on, and I think that we will find a solution to the problem that you're talking about. And that was a very big component of the block size for us. Right. We must, and I'm aware of that history too. But the thing is, even with a. Smaller block size, it still can't like every blockchain is too slow for global layer one transactions per person. Eventually. I think that's where layer two is going to come in. There's been speculation that the blocks are going to be filled. That's been said for the last five years or so. That still hasn't been the case. There's been times where the men pool gets cleared out. So I mean, like, I don't know, man. I think Tomer actually was talking about this yesterday. I think that it could potentially be a problem in the future. But I think where we are now, we have much bigger, clear and present dangers in front of us. And I think that's what Jason was really talking about today from the regulatory perspective. And I think that's really where my worry is. That that's really where my concern is in terms of scaling. Yes, I agree. I think that what's the Lightning Network capacity right now? It's $89 million. That's not a large amount in a global sense. Obviously there needs to be more. But if you look back and see how far we've come, I remember when the Lightning Network first became a thing, people were like, no, this isn't going to work. Right? And the fact that we've come from zero dollars to eighty nine million dollars lighting network capacity, I think is a massive deal and I think it's just going to continue to get bigger and better. Maybe that's the optimist to me. I have no idea. I don't know if Dr. Ross, Neil or Tomer, Jason, any of you guys want to chime in on that? TC yeah, I mean, my answer can be slightly adapted from the one you were referencing that I made yesterday. It's like we will cross that bridge and the bridges that lead to it as we come to them. There's so many different ways that we can scale this technology as demand increases for utilizing it. And what tends to be the surprising thing is many ways, just do nothing and let people figure out how to use it more efficiently. There were all these people who were clamoring for bigger blocks through a hard fork and we kept the blocks small and people figured out how to cram a lot more transactions. So that now the calculus that you're doing is, oh, there's 2500 to 3000 transactions per block, not 1000 transactions per block, which is what we were seeing beforehand. And there's so many different things that will be developed in cryptography. In fact, the fact that Schnor's signatures exist right now with cross signature aggregation can make transactions so much smaller. And of course there's all these other layers. So give a time. Like all technologies that you've seen before, they look like they're not going to work for the whole world. Early on. I don't know how old you are, but if you were here for the early days of the Internet, you could barely get a JPEG through the thing in. 15 minutes. And so it looked like it wouldn't scale. And I remember a couple of decades ago there being some fun about the Internet, that there's only so many addresses that would go around and so wouldn't the Internet fail in a few years time as more and more people came on? And of course, we've engineered a way around all these things. So I think especially when you're dealing with technology that's immaterial in its nature, that's non physical, that's purely digital, there are so many different ways to scale it that it won't end up being a concern. There will be many concerns along the way, but they will all be solved and surmounted. ",timestamp:"02:02:51-02:08:46",topics:["Bitcoin Adoption","Hyperbitcoinization"],type:"twitter_space",weight:25.169692039489746},{boost:0,date:1671644776,description:"Crowdfunding for different Bitcoin communities using Geyser",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b18df9d2-d034-4e1f-bcd1-d70b30fe9059/506355bc-c119-4f18-bf0b-abe9be8c17d6.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"70cd556c-8349-4f80-b276-4c0056b46536",show_title:"Geyser 🌊",text:"so we have people in Africa and I think possibly Asia. But yeah, we have again, we have I think in around three days, we had 30 new projects being created on Geyser using this Lightning address feature, which is pretty big deal. We have you really need six clicks to create a project on Geyser. It's pretty seamless. And we had quite a lot of educators create projects on Geyser. We had Bitcoin community in Honduras, bitcoin in Hausa, Nigeria, and also we just heard from BCB based in Ghana as well, bitcoin, Essex, UK, and Orange Pill Yosemite, which is in California. So really featuring four different continents. These are micro communities. These are little micro communities that are focused on meetups focus on orange Peel in the community, raising funds for supporting education initiatives that are pretty small scale but nonetheless importance. Again, Bitcoin is a grassroots movement, and so what these creators are doing is that they're setting up these super micro, grassroot level initiatives to get support from the community and create their own community on Geyser. Again, Geyser is, yes, a crowdfunding platform, but it's really a place where people can come together to support common causes and support getting shit done. You have an idea and you get some people together, some people throw in new ideas, some people throw some money, some people throw resources. And so gather should be seen a little bit more widely and we will soon have more features to enable these types of feedback loops and conversations. ",timestamp:"00:17:16-00:19:06",topics:["Bitcoin","crowdfunding","Geyser"],type:"twitter_space",weight:55.39905291682817},{boost:0,date:null,description:"About ApolloSats: P2P reviews for Bitcoin related products and services",episode_title:"Café ₿: #Bitcoin News & Trusted P2P Reviews w/ @Apollosats",guests:[{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:"@FossGregfoss",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"09913e9b-38dc-4465-9d4d-ae0c9ba9eeca",twitter_handle:"Fuckkkk"},{name:"@w_s_bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"b178b239-3b18-4a16-9d43-c5d15ba6f7f4",twitter_handle:"w_s_bitcoin"},{name:"@NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"4b6997e1-ce0b-4a1d-90e7-dbaccef4b783",twitter_handle:"NeilJacobs"},{name:"@brandon_gentile",profile_picture:"https://pbs.twimg.com/profile_images/1561369452284895236/-8WgdwEm_400x400.jpg",ref_id:"f940c5e8-4808-4197-a38f-3f19d311a7ad",twitter_handle:"brandon_gentile"},{name:"@apollosats",profile_picture:"https://pbs.twimg.com/profile_images/1576946734927794176/2ail9FoU_400x400.jpg",ref_id:"74f4280f-5fdb-4bbc-aee2-a2ed32d64372",twitter_handle:"apollosats"},{name:"@StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"6e652629-38ec-49d8-9f5c-3ba28f80c799",twitter_handle:"StackchainSig"},{name:"@TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"7af639f8-8c5c-4ce1-a43b-e8560ed40e2b",twitter_handle:"TomerStrolight"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7cf57bdb-c905-46e3-a7e5-4c0bfd4f8d04/71c08fae-cce8-4600-ab9e-758420e78dcf.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"7c3d3625-4308-437e-80bb-38fb8b2a678c",show_title:"Swan.com",text:"want to welcome up Apollo and Julian from Apollo. So, Apollo, just a really quick intro. If I understand it right, they're building the first review site, leveraging sets, and you log in with lightning. So basically, you get to review the products you love, find companies you trust, and earn bitcoin. Julian, good morning. Welcome. Talk to us about what you're doing and why are you doing it, and then maybe we can open it up for some questions, if you like. Sounds good, Alex. Yeah, thanks so much for having me, and, yeah, I really enjoyed the conversation this morning. Sorry to interrupt the crucible, but I think it's actually a pretty great segue into talking about what we do at Apollo, which is finding the truth right, through the contest of ideas and context of information. So, yeah, you gave a really great intro. Basically, we are a marketplace for user reviews of bitcoin products and services, and the idea is pretty simple. We wanted to build somewhere for bitcoin is to educate other bitcoinrs about not only what products and services exist in the space, but also how to compare them and what basis. And we felt that that was kind of missing in the space and probably needed to just help adoption, which is the mission we started the company on the basis of, hey, we want to do whatever we can to help bitcoin adoption. It's the most important thing we could be spending our time on. And in the process of doing that, and I can talk a little bit more about that. Of what we learned from one of the biggest challenges to work on bitcoin adoption, we realized that we kind of needed something like this, which was we needed somewhere that we could send new bitcoiners who just wanted to start the process of going down the rabbit hole. So, yes, pause there, but happy to take any questions. I love it. That is the mission. I agree. What I'm excited about is I'm starting to see a lot more of this kind of direction where people are recognizing that is the mission increasing adoption as much which is possible. Let's go ahead and open it up. If anybody up here on the panel has questions for Jillian, go ahead. And if you're in the audience and you have questions about what these guys are doing and how it works and all that kind of stuff, you can request to come up. You can ask questions in Telegram if you like. Tmecafetcoinclub, I've got a question. So to use this service, I'm assuming you have to run your own Lightning network node, is that right? You don't have to, no. So you can sign up in a few different ways. You can just sign up with an email address or with your Twitter account, or you can log in with Light. But for now, on the infrastructure side is pretty straightforward. Like we just kind of run our own we're not running a node yet ourselves, but we just have our kind of own internal Sachs ledger, maintaining everybody's account balances. And we will send SATS to whatever address that users have on their end. Got it. Cool. So you can hook it up with like a Wallet of Satoshi account or whatever, something like that, you're saying? Yeah, exactly. So Wallet of Satoshi or Zebony account, I mean, a lot of people are using kind of Lightning addresses, like ball toll addresses for the first time, which is really cool to see. But yeah, whatever Lightning address you have spin line up, send it to us and we'll send you Sat. How do you know the reviews are legit reviews and not just someone trying to accumulate Sat? Yeah, it's a great question, to be honest. And it's the best one we're focused on that happen from day one. And there are a couple of answers, right? Like one is in the longer term, what we're building is a marketplace that run like a market, right? And the idea is it's a market for information. So we want the best, most reliable reviews to organically surface to the top and the way that that is going to happen. And what we're building is that there is a system of incentives between these two sides of the marketplace, right? Reviewers on the one hand and readers of reviews on the other. That allows for that. Right. So how can that happen? Well, basically reviews after they're written and we publish them, and I'll talk a little bit about the moderation that we do before we actually publish, but after they're published, they can be uploaded and kind of similar to stack and use, if you guys are familiar with that. Basically every upvote is actually, in effect a transaction, right? So you have users sending SATS from their account to the author of a review to upload that review. So the idea is people vote with SATS on what is most helpful, most reliable. And so if the market works effectively, then the best reviews, most helpful reviews are going to rise to the top. That's what we're kind of building for the longer run. Now, obviously in the short run, we need to do some things to bootstrap that market and also put up some guardrails to obviously make sure that people aren't gaming the system, which certainly they are trying to do already. Right? So we have a few things that we do upfront to filter for spam and other kind of obvious bad actors that are going to come in and just try and publish a bunch of reviews and earn as many stats as possible. But you end up again. So if you got a follow up, yeah, I got a couple of other ones if no one else wants to go. So is it going to be bitcoin only companies because I see or bitcoin only things because I see Anthony Pompeano's newsletters on here, clearly like he's a controversial person. So I'm just curious if you guys are how you decide what companies get to go on here or newsletters or whatever. Yeah, so short answer is yes, bitcoin only. Like that's the mission. It's bitcoin adoption. And specifically it's like we want to educate bitcoin is and help bitcoin is educate each other. And so the mission is bitcoin only. The products are almost entirely bitcoin only, except where I would say for a couple of instances, right? One is where there's some just overlap between bitcoin only products and crypto stuff. Like there are exchanges that we want people to review that obviously have bitcoin and crypto and maybe some newsletters or other content pieces or wallets or whatever the case may be. It's obviously relevant for us to let people educate each other on those products, even if they're not bitcoin only. So that's one instance of where they overlap. When it comes to things. Julian, don't you think that's a little conflicting, just a little bit? I mean, first you say bitcoin only, but it's bitcoin only except when it's not coin only. I know there's a lot of bitcoinners are going to take issue with that. And if what you're trying to do is increase bitcoin adoption, giving any kind of platform for something that's distracting people into bullshit is maybe that's I just know there's a lot of bitcoin is going to have an issue with that. And I know right now, Julian, I see like the Pump newsletter has an awful rating on your site. So I'm assuming mostly bitcoiners are the only ones kind of going on here right now. But what happens when he or a bunch of crypto people find this site, right? Then it just becomes a review site. Yeah, well, so a couple of things, right? One is at the moment, because we're so early, we're running a bunch of little experiments, right? So we don't really know how this is going to play out. So we've got the pop newsletter on there. We put the bankless newsletter on there too. Right. And part of that was to see how are people going to respond. And pretty much all of our users right now are bitcoin only users from what we can tell. And the results have been whether it's for those newsletters or for like Coinbase or other crypto exchanges. Right. Many of the reviews coming through, a lot of them are kind of nuanced and are actually bitcoin is telling. Other bitcoin is like, hey, this is an exchange that if you really have to use it as your first place to buy bitcoin, you can do that. But get your coins off exchanges, find an alternative. Like people are writing reviews, for example, of Coinbase saying like, hey, don't use this platform, go and use Swamp instead. And the reason why I think it actually is important to have all of this information at people's disposal is because people have these questions, they are going to find out coinbase is going to be top of mind for them. So we want to build somewhere where people can, I guess, do a bit of self directed learning, learn from bitcoin is who have been through these on ramps, have been through these experiences and are going to be able to answer the questions that I think people are going to inevitably have. Does that answer the question? No, but I'll let Neil go. Well, yeah, and that's kind of like a shameless plug. But are you going to be adding bitcoin merch and apparel companies? Because I would love my company to be on it. Sure, yeah. We're taking recommendations on constantly on categories, products and it's to some degree like demand driven. Obviously we're not going to put anything that people just request up there, but yeah, shoot me a note and we'll add it to the list of things to consider. Sure, I'll dare so. I just want to reiterate, I mean, I'm not going to beat a dead horse, but I would suggest to you, Jillian, to consider that you don't have non bitcoin things on there. And the reason why I say that is you use the term get on the mission and that's start or you use the term the mission, I say get on the mission. But this concept of on being on the mission, of bitcoin adoption is starting to permeate through the interwebs a little bit. And I would just suggest be careful about that because like anything that you're doing to give a platform to something that's going to draw people off mission, what I call being on the mission and what I think a lot of other bitcoinners agree is on the mission I think is going to be looked at in the long term. I think you're going to see that that was a mistake. When you say things like, well, we're doing a bunch of experiments. Like what it sounds like to a bitcoin? Or is you're experimenting to figure out where you're going to make the most money? This is very fiat mindset, in my opinion. It's very much like opens you wide open to being sponsored by shitcoins. And that's not a good place to be, man. Yeah, I see you're right there. That we absolutely do need to stay focused. And we will. And I guess to that end, we have some principles that we're sure very firmly aligned with. One is we know that ultimately whatever we are doing is in service of that mission of increasing Bitcoin adoption. And so we're open to feedback and changing what we list, how the incentives work, everything else along the way, and we certainly will be. The other thing too is we're just not going to do certain things that you might ordinarily see with some other types of companies in this category. Right. So we're not going to be running ads, we're not going to be taking sponsorships from companies. There's not going to be any pay to play or like affiliate linking or anything like that. Really what we're building is okay, let me ask you a question then. The way the system works, if I'm understanding it correctly, is people boost with SATS, who gets the stats? If you write a great review and other users are sending you stats because they find it helpful, all of those stats go to you. Okay, but then how do you make money? Well, right now we don't. Right. We're a startup. What's the business model? How do you intend to make money? Well, so there are a couple of potential ways we can. Right. So what we're trying to do is build this marketplace that is a meeting place for potential users of products, people who have used them, and then the companies themselves. And so we want to be able to mediate a really great high signal conversation between these three sides of the marketplace. And so we think that that's going to generate a lot of value not just for users of people who review them, but also the companies themselves. I get the concept, but what I'm asking you is how do you make money on that sort of triumvirate of people talking to each other and creating this marketplace of ideas? Yeah. So one way that we could is partnering with companies directly in a transparent way. So if Swan or anybody else is talking to users on our platform and we're providing this meeting place for great quality conversation, then we can have companies that could potentially use that. Okay, so this is my point. This is what I'm getting at. What if that company that comes to you and offers you that sweet, juicy, lucrative deal, what if it's Sam Bankman Freed, and he's like, hey Julian, I'm going to give you $100 million if you help us out here. Well, the short answer is like, we're just not going to do that because it would so obviously undermine the integrity of the platform that it just wouldn't be I appreciate the hypothetical, but it would just be so contrary to what we're trying to do that it's just not something that is realistic for us. All right, cool. I hope time proves that out. Okay, we're very close to the end of the show. We've got time for maybe one or two more questions. We'll give you some time to make some closing comments, Jillian, and then we'll move to wrap. Go ahead. Wicked. Yeah, kind of. In summary and you can correct me if I'm wrong here, but it sounds like you might allow reviews to be written about companies that are crypto friendly or crypto curious. But in the long run, you don't plan to ever partner with those companies, and you plan to stick with only bitcoin, only companies that you may generate revenue from in the future. Is that correct? That's right. Yeah. We are a bitcoin only company for bitcoiners and bitcoin only companies. And to the extent that there's going to be any information on crypto products on our website, it is specifically for the purpose of steering bitcoins away from them. And so that will be borne out both by the content we produce and have on the platform. And also, I'm assuming, from what other bitcoin is going to help other bitcoin learn about as well. I would just, like, make one last thought. I mean, this is your company, obviously you run it the way you like, but the whole steering away thing, you're actually just giving them a platform that potentially will cause them to lose a lot of money. And my observation is that when people get burned, they figure that shit out on their own. They don't need to be led down these pathways where they might go look at this stuff. That's just my opinion. Let's go with simplest and then we're going to give you a few minutes to make closing thoughts, Jillian, and then we'll wrap. Go ahead, simplest. Hey, thanks so much. Yeah, a quick question because I'm just aware of the dynamics of how you keep these sort of platforms, these review platforms, honest. And I've always kind of wondered, like with Yelp and everything, just how they do that. And in your case, and regarding the point that Alex is making about the crypto so called curious companies is how do you prevent down the road? Like, if those companies become aware once you grow big enough to really be having an impact in the market, what if they use their armies of whatever to be coming in and just giving themselves glowing ratings? And like, I understand you have some measures in place, but when that becomes overwhelming and if there's a few of those companies or a number of them, how do you prevent them from providing millions of five star reviews to themselves, so to speak? Yeah, that's a really great question and so there are a couple of different ways that we can address that in the short term and then longer run it's going to be more of an engineering challenge, but it's certainly on our minds, right. In the kind of short to medium term, what we're going to do is implement basically a cost to posting. So right now we're kind of bootstrapping the marketplace by rewarding people just for posting reviews and sending them sentence of doing that. We want to get to the point where people are actually willing to pay a small fee to actually write and post their reviews and so on. Like a small scale. We think that's going to disincentivize people just costlessly attacking us with that information right at a small scale. But your question about how do we disincentivize or just prevent large scale attacks like that, then things get a little bit more sophisticated. But there's a really interesting concept called a web of trust, which is a way of basically preventing this kind of class of civil attacks on information platforms. Won't go into the details, but essentially you can implement a range of preventative measures where you can make the cost of posting scale exponentially. For people who are posting a lot in a short space of time. You can do a whole bunch of things where we can identify sophisticated attackers and impose basically a big enough cost so that it's not actually economical for them to engage in that behavior. ",timestamp:"01:48:01-02:07:24",topics:["ApolloSats","P2P reviews"],type:"twitter_space",weight:21.470260620117188},{boost:0,date:null,description:"The Bitcoin Village project in Nigeria",episode_title:"The Orange Sun ☀️ #Bitcoin News and Talk",guests:[{name:"Portland Hodl",profile_picture:"https://pbs.twimg.com/profile_images/1562306406526492672/LiqmI9NS_400x400.jpg",ref_id:"530aba21-392f-4156-9e91-4fc5c76fced1",twitter_handle:"PortlandHODL"},{name:"Miykael Woodward",profile_picture:"https://pbs.twimg.com/profile_images/1473433558475689985/CM0o3oWu_400x400.jpg",ref_id:"6fe02a78-4f07-47e7-8e64-b278a3167835",twitter_handle:"MiykaelWoodward"},{name:"Okin Mobi",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"bbd18918-7758-4bdb-b9a5-641bf92748a6",twitter_handle:"OKIN_17"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"Funsho Jimoh",profile_picture:"https://pbs.twimg.com/profile_images/1600143435775856641/uqgmtT23_400x400.jpg",ref_id:"a237ffb0-792b-484e-b12f-65a2b679eaf1",twitter_handle:"fnicencool"},{name:"prince ogbonna",profile_picture:"https://pbs.twimg.com/profile_images/1595693872637681664/TeWJzTut_400x400.jpg",ref_id:"0b0c70b1-23b1-4d98-b259-6dbb67b7481d",twitter_handle:"princejoj0"},{name:"The Bitcoin Village",profile_picture:"https://pbs.twimg.com/profile_images/1544318244789649410/kQ2G1MCE_400x400.jpg",ref_id:"d894aca4-36f6-4821-a00b-a4e860b19502",twitter_handle:"VillageBitcoin"},{name:"Masterguantai",profile_picture:"https://pbs.twimg.com/profile_images/1521025685078302720/w9dZwehS_400x400.jpg",ref_id:"29baf525-42eb-41a6-98f9-a0d6b4480af0",twitter_handle:"MasterGuantai"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/bef977d0-8a6a-441b-a8cb-58baebe2bfd7/b9ec2918-1059-48ac-b5ee-69018c42a07c.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"6cbed027-125f-454c-b03a-865df0b60d36",show_title:"Satoshi’s Journal",text:"intent of the village was, of course, first and foremost to have a school that we could educate that village about Bitcoin and then bring the plebs along as we build it so that they can see the proof of work. And using Satoshi's Journal, the media company, as the videographer, so to speak, as the media, we can bring that to you live from Nigeria. So it's actually a really cool way to be able to have the pleb, see what we're doing in real life, and then along the way, if donations want to be donated, so be it. And we're already seeing that, so we will document the whole thing all the way up from the foundation to final erection, to the ribbon cutting, to the first graduates of Lightning Development Academy, to you name it. It's going to be basically old, and I plan on when we die, we hope that there's many, many more schools built like this, and we plan on building more because we know that in the future, we will be, with the help of the plebs, educating the future businessmen and women of the world. And we're living a small snippet of a Bitcoin standard, and if we can instill education in this village in the form of what money is and what Bitcoin is, bitcoin being the best money ever known by man, we are basically allowing them to have a bright future. And I've told Olu and our team that we don't know what's going to happen in the future with what we're doing, but I'm confident that what we're doing and what all you guys are doing as plebs in your respective areas on an individual basis, you can move a mountain, so to speak. So don't ever underestimate what you can do as an individual. Yeah, so that's ",timestamp:"02:48:50-02:51:13",topics:["The Bitcoin Village","Nigeria","Bitcoin Adoption"],type:"twitter_space",weight:19.850265502929688},{boost:0,date:null,description:"Immutability of the Bitcoin consensus code ",episode_title:"Café ₿: Sovereign Computing w/ Matt & Aiden, Start9",guests:[{name:"Andrew",profile_picture:"https://pbs.twimg.com/profile_images/1465763053014859786/xYFN2czJ_400x400.jpg",ref_id:"ae4b13f8-0ee7-480a-b47a-82b967ad7a79",twitter_handle:"AP_ArchPublic"},{name:"Matt Hill",profile_picture:"https://pbs.twimg.com/profile_images/1347317316057321474/ieMjzK3x_400x400.jpg",ref_id:"3576ad28-a04d-4388-865b-3ec5114c4f9f",twitter_handle:"_MattHill_"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Aiden McClelland",profile_picture:"https://pbs.twimg.com/profile_images/1470160097225498624/0BjKB_2W_400x400.jpg",ref_id:"04ddd9d4-9329-4e6c-aaa3-d65ea4a9342a",twitter_handle:"_dr_bonez"},{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Lisa",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"e6f0c6e3-3237-4b13-878f-bb740cd32f8d",twitter_handle:"lisa_hough_"},{name:"Isabelle",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"c8df253f-47b3-465e-878e-8405c01c090d",twitter_handle:"isabelfoxenduke"},{name:"Tone",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"5729ac07-51d6-4268-b585-62680c846acb",twitter_handle:"ToneVays"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Derek",profile_picture:"https://pbs.twimg.com/profile_images/1598322677827207169/Cw0A3oOP_400x400.jpg",ref_id:"f441b996-7eeb-4210-b24c-fa011161709d",twitter_handle:"derekmross"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ec4a941-250c-4e1d-8d2a-6c506c3ba4b2/4bd8010d-b2fd-41b4-8041-8a953ef06492.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"2a3ee0fe-bcfc-412d-b1ee-2ba7f72528bd",show_title:"Swan.com",text:"something that's probably important to bring up for people who are brand new and they're listening to this and they're new to bitcoin. They're trying to figure all this stuff out. Bitcoin is always say, well, you can't change bitcoin it's mutable. Like there's no small group of people controlling it. You can't change it. Right? I think that deserves a bit of explanation, because some people are going to be listening to this, going, look, you just changed it. Does somebody want to take a shot of this? Tom or go ahead, please. Yeah. The consensus rules of bitcoin remain completely unchanged. This reference client offers new interface features and spending preferences that make certain things that were harder to do before easier to do, or certain things that were toggled off before toggled on by default now. And that's what happens in 90% of these releases of bitcoin core. It's like support for having multiple wallet files, support for enabling, replaced by fee transactions by default. This feature, which I haven't really looked into, that I guess allows you to spend the entire contents of a wallet without change or something. I'm not sure what this feature does yet. So these are new features that keep coming out from time to time, and occasionally some API call. Again, nothing to do with the consensus algorithm will get retired or replaced by something else so that it works better, or bugs are resolved where interface issues happen. But the actual operation of bitcoin itself remains unchanged, which is why only three or 4% of people are running this new release right now. And there's no incompatibility there's no one getting all this. Block was okay for version 24, but it wasn't okay for version 23, or vice versa. The same rules apply, the same spending rules for each transaction. The same consensus rules for each block remain completely unchanged. Any attempt to change those things is known as a soft fork or a hard fork. Hard forks don't happen in bitcoin, so they're soft forks. And these are very infrequent things. And if there was one in the works, everyone here would know about it. They're widely discussed, and they must be adopted by all minors, and they generally also need to be supported by all clients or an overwhelming majority of clients. Soft forks are somewhat backwards. They are backwards compatible, so that even if not everybody upgrades, everyone will remain in perfect consensus that the state of the chain is valid. But the miners almost can check for the new rules that come with software. So I'll kind of stop there because I'm already maybe over complicating a little bit of what your question was. I thought that was a pretty good explanation. I like to keep it even dumber, but I think that was pretty good for me. I always go back to the monopoly board analogy because I think they're just easy. Maybe I could offer one other little explanation that I hope will keep it easy but paint a big picture for people. Bitcoin core is the piece of software known as the satoshi client, and it's a piece of software that was first launched, that bitcoin launched on, and it does everything that bitcoin does. It allows someone to mine, it allows someone to create a wallet. It allows them to secure the wallet. It allows them to create transactions and receive transactions to that wallet. It does everything that the bitcoin ecosystem does. It's the reference client. And so it is bitcoin, and it establishes the peer to peer network. Like, if you run it, it connects it's the note, it creates a copy of the blockchain, it stores a copy of the blockchain. It does everything that you've ever heard that bitcoin does. And it is a very tight piece of software. But as it ages, the open source developers who work on it make it easier to use. Initially, there were only like a few buttons you can press and only a few things you can do. And over the years, they've added user interface improvements and additional commands that don't break the consensus algorithm that make it easier to do things. And that's really why new versions, for the most part keep coming out, that there are ideas that the community feels make it easier to use, better to use, more secure to use. And so those features are added to bitcoin core. Right, okay. But I think what people wonder is, if you can make changes to it, how can we be sure that it's not going to be changed for evil purposes against the best, it's not in the best interests of the common man, it's not going to benefit some small group of people over everybody else. How do we know that that's going to happen tomorrow? Yeah, the first point that I was making is changes to the consensus code of, like, what it takes to spend bitcoin or how many bitcoin can get generated or what makes a valid block are not changes that can be made in bitcoin core without complete consensus of the entire community. All the miners and all the use. Words that have nothing to do with Vicky. Try to use words that people are going to understand everything you just said. If I was brand new, I wouldn't understand a damn thing you just said. Right. Changes to bitcoin core don't change the rules of bitcoin, if that's what you want to say. Like, if someone tried to change the rules of bitcoin in bitcoin core, what would quickly happen is there would be a split in the network. It would be what's called a hard fork. And then people that splits the monopoly board into right, okay. People would have to if you want to do that, anybody can change that. But if you want to do that, you're creating a new monopoly board and saying, come play with me. And what ends up happening is nobody comes to play with you and then your monopoly game dies. Right. That's what's happened historically, yes. Perfect example is like bitcoin cash, right? They changed the rules, it made a different version of bitcoin, and now that version of bitcoin is worth like one half of 1% of what bitcoin is worth. BCH and BSV have basically been both deplatformed off the exchanges at this point. And they're just dying. They're just like these. They're making their last little twitches as they perish. ",timestamp:"00:48:29-00:55:14",topics:["Bitcoin core update","Satoshi client"],type:"twitter_space",weight:18.508241653442383},{boost:0,date:null,description:"UTXO and release of Bitcoin version 24.0 features",episode_title:"Café ₿: Sovereign Computing w/ Matt & Aiden, Start9",guests:[{name:"Andrew",profile_picture:"https://pbs.twimg.com/profile_images/1465763053014859786/xYFN2czJ_400x400.jpg",ref_id:"ae4b13f8-0ee7-480a-b47a-82b967ad7a79",twitter_handle:"AP_ArchPublic"},{name:"Matt Hill",profile_picture:"https://pbs.twimg.com/profile_images/1347317316057321474/ieMjzK3x_400x400.jpg",ref_id:"3576ad28-a04d-4388-865b-3ec5114c4f9f",twitter_handle:"_MattHill_"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Aiden McClelland",profile_picture:"https://pbs.twimg.com/profile_images/1470160097225498624/0BjKB_2W_400x400.jpg",ref_id:"04ddd9d4-9329-4e6c-aaa3-d65ea4a9342a",twitter_handle:"_dr_bonez"},{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Lisa",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"e6f0c6e3-3237-4b13-878f-bb740cd32f8d",twitter_handle:"lisa_hough_"},{name:"Isabelle",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"c8df253f-47b3-465e-878e-8405c01c090d",twitter_handle:"isabelfoxenduke"},{name:"Tone",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"5729ac07-51d6-4268-b585-62680c846acb",twitter_handle:"ToneVays"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Derek",profile_picture:"https://pbs.twimg.com/profile_images/1598322677827207169/Cw0A3oOP_400x400.jpg",ref_id:"f441b996-7eeb-4210-b24c-fa011161709d",twitter_handle:"derekmross"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ec4a941-250c-4e1d-8d2a-6c506c3ba4b2/4bd8010d-b2fd-41b4-8041-8a953ef06492.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"48de736c-df85-48ea-9856-e9b608a6025e",show_title:"Swan.com",text:"I was just going to echo back to some of the points that Tomar was making about utxels and stuff. Did you guys see that, the release of bitcoin cord 24.0? It has some really great features into it that allow users to sort of, like, spend all UTXOs. So when you're sending a transaction, you don't generate change, which I think it's really cool. It's a really cool feature for privacy. It's kind of like, explain that. What does that mean? You know how Sparrow gives you the ability to sort of create, like, if you're going to send bitcoin or receive bitcoin, you can create, like, new addresses in order to sort of get past the common input ownership heuristic of chain analysis. Use English. Use words that explain it, like you're explaining it to a five year old. Okay, so essentially what this code is allowing you to do is you can. Empty out a wallet. You know, when you send out a transaction, you're actually sending all of the amount of all the BTC you have. In that wallet address. You're sending it out, and then you're receiving a UTXO back from the receiving address, from the address you said, like, change. So in other words, if I'm buying something and let's say I've got one UTXO or one address that is in the denomination of a $10 bill, for example, I go and buy let's call it a cheeseburger for $5, I get $5 and change. And the problem with the $5 and change is that that's trackable, right? Yes, 100%. Yeah. And they're also including a change output randomization, which is kind of like what Monero does, but not really. It's a way to sort of, like, generate random amounts so that anybody watching the chain can't really tell which UTXO belongs to you. And they do it in a very technical way, but yeah, man, I'm super excited about it because this is increasing the level of privacy that you can achieve just with bitcoin core. These are small tweaks to the privacy enhancements of bitcoin. And these are all backwards compatible, right? Like, if people don't want to adopt this, they don't have to kind of thing. Yes. Ant, do you have any comments? Full RBF equals one. Oh, yeah, let's get that. Bitcoin core version 24. There's already 3.8, maybe 4% of total public bitcoin nodes running. It interesting across the world. ",timestamp:"00:45:21-00:48:27",topics:["UTXOs feature","Bitcoin core v24.0"],type:"twitter_space",weight:18.260805130004883},{boost:0,date:1671644776,description:"The Orange Pill app and it's piggybank feature",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b18df9d2-d034-4e1f-bcd1-d70b30fe9059/506355bc-c119-4f18-bf0b-abe9be8c17d6.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"fed2b741-e9a2-4858-bee8-faa259806d3e",show_title:"Geyser 🌊",text:"orange Fill up. Do you want to come up and tell us a bit about your project? Let me add it to the spaces too. Did you get the invite? I'd love to hear about what your features releases are up to. So Builders feature orangeville app. We have Lightning Piggybank, which is essentially an electronic cash piggy bank for children that accepts bitcoin sent over lightning. So this is a pretty small project, but it's a pretty sweet thing, actually. So let me add this to the it's pretty incredible, actually. I need to show you guys. I need to show you this. Imagine a piggy bank, but instead of an actual pig, it's like a cardboard box with a Geyser satoshi. Yes, we did. What's up, mate? I cannot do from the desk, though. You cannot talk? I'm not on desktop. Oh, no. You can't talk from desktop? No, it's got to be mobile. Yeah. It'S painful. Yeah, we got to talk to you. Yeah, exactly. But yeah, just to finish up this thought, there you have this really cool piggy bank which has this, like essentially this counter, this wallet counter of how many Satoshi the project has, which is really cool. And this person is just raising money connecting their Geyser project onto their Lightning Piggy Bank, which is fucking cool. I mean, this looks like a little DIY type of fun project that a father did for his son or something super cool. But let's go back to you, Matteo. Let's talk about orangeville app. Why not? What's up with you? Yeah, for sure. Orange. Bill app is a mobile app. We use Geolocation, which is the only approximate to connect you with nearby users, nearby pledge, and soon we'll let you find events. So meet up, conference, whatever. Actually, it could be anything because the user can create events straight from the App and then put the address. And then you'll be able to invite people there nearby to the event. So it doesn't have to be a meetup. It could be like a soccer game or picnic on the beach or anything. That's pretty cool. Hopefully it comes out January or February. Definitely February. And then we're going to launch the search feature, which will allow you to search for people all over the world. So if you're traveling and you're going to Ghana, you'll be able to look for clubs in the App there in Ghana. And then you can chat them up and say, hey, I'm coming to Ghana next week or next month or whatever, and I'd like to meet with you. I don't know anybody in Ghana. And of course, you can also search by gender for dating, age, profession. Right? We got to do yeah, I'm sure it's going to be like 95% guys, though. It's not can you confirm that? No, it's not. I don't have the number precisely because some users, they don't put a picture. And I know there's one woman that I talk to, obviously I talk to everybody on the app and you wouldn't know she's a woman, but it's a woman. But I think it's about 10% women and 90% men, which it looks it doesn't look good. But Tinder, which is the biggest dating app on planet, the ratio meant to women, it's 97% men, 3% women. No way. I know, it's crazy. Wow. But there's so much there's so many. Better than they are. Yeah, we're doing better than Tinder. Yeah. The point is that when you have, I don't know, hundreds of millions of user, it works even if you have one or 2%. But yeah. So with the search, you'll be able to search, obviously only if the other users have disclosed those information. So age, gender, profession, which is going to I think the profession looking for Profession is going to kickstart the Bitcoin secular economy, right? Because imagining you can look plumber in Oxford and then you can paint that because obviously if it's in the app, it's a bitcoin max. Right. So that's going to be very exciting. ",timestamp:"00:19:33-00:24:59",topics:["Orange pill app","Geyser","piggybank","piggybank"],type:"twitter_space",weight:42.97230338635478},{boost:0,date:null,description:"The solutions to main challenges facing the ranching industry in Nigeria ",episode_title:"The Orange Sun 🌞 Let's talk #Bitcoin & Cattle Ranching/Sustainability",guests:[{name:"Texas Slim",profile_picture:"https://pbs.twimg.com/profile_images/1589784780970795011/02jf0fqp_400x400.jpg",ref_id:"b4448c8e-9238-4aba-bd25-efb329ea5a72",twitter_handle:"modernTman"},{name:"Lucas",profile_picture:"https://pbs.twimg.com/profile_images/1596345084966014976/maviSGq3_400x400.jpg",ref_id:"e3adb591-b29f-435b-bd34-210f2dbcedaa",twitter_handle:"impossiblyso"},{name:"Firebust",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"0fb6c7f3-a673-4fe5-9599-8165800a2ff0",twitter_handle:"FireBursts"},{name:"Hamza Yusuf",profile_picture:"https://pbs.twimg.com/profile_images/1318064165030940672/sakbSOvT_400x400.jpg",ref_id:"03a74669-b653-4c57-8799-a312cb041089",twitter_handle:"Hamzayu28849293"},{name:"Adenekan's Father",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"b8259997-2ef0-4e6e-8d58-a69b5eda550a",twitter_handle:"AdenekanFatai4"},{name:"Adenekan",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"ca6a563e-0e84-4811-be82-a3b3cd12d399",twitter_handle:"AdenekanFatai4"},{name:"Heritage",profile_picture:"https://pbs.twimg.com/profile_images/1510397558652350469/jYOl00tU_400x400.jpg",ref_id:"98a6d9df-3c39-49ec-8a39-074e61af4ece",twitter_handle:"herrytheeagle"},{name:"Enoch",profile_picture:"https://pbs.twimg.com/profile_images/1596235105663533056/5mRUbLm3_400x400.jpg",ref_id:"4f8af040-3d0c-49c1-806e-aef89d8693fb",twitter_handle:"KazEnoch"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/a91f79fd-d85f-4440-b012-4bdafdc83341/f1d1c5b5-b8c9-44ed-a217-f75b398376d5.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"754762ac-7680-4b80-9ff4-f314ae65d146",show_title:"Satoshi’s Journal",text:"Good morning, everyone. Such an insightful, interesting topic we have today. Like when she said we don't have all the time to dictate it so that we respect our guest time. But Ariel, thank you, sir, for being with us. I mean, it's no small thing that you're here. We know what your time means to us and all that. Thank you. It's such an honor to have you here. I'll just go right into it. I may not be able to exhaust my questions and I planned on, but just to make some few comments here, that bitcoin builds communities. And I think that is what Texas Lime has been trying to point out. It's all about community building and we can achieve that. But the pain point for catering is in interior that quickly. I heard from identity is one, security is a big issue. And that's because one of the reason is that we're not doing ranching here. Okay? We're not doing ranching here. The farmers get to the railroads, get to move around and all that. We don't have a ranching system. But a ranching system is so important where they are set out, places where that is, well, knowledge that these cows can feed on, the advantage is big. The advantages, less risks of diseases, we can have less risk. And also when these cattle are moving and moving, they don't get the right yield in terms of adding weight and pounds and all that. So that's a challenge I think we can sort out. And how do we sort that out? I mean, I know we're having a big project where we can begin to have a bitcoin only ranching system built in Nigeria that will technique one, security two, it will help us foster bitcoin education easily. And also we begin to have the fattest and the biggest cows and the most healthiest cows that Nigerian can produce. I think satoshi journal, we can do that. We can push that. I know we have a big project, but for now let me just quickly drop so that we can respect that. Yes, this time. Thank you so much. Yeah, no problem. And last but not least, lucas, do you have a question or comment? Oh, I'm glad we had time. I'm sorry to come late to the conversation, but I work with towns in New Mexico and Colorado trying to get them to adopt bitcoin to begin a. Localized currency based on their water system. And I grew up on a farm ranch, and to me. Giving rural areas starts with like, valuing water and watersheds. More yeah, I totally drive with that. And I highly recommend that you follow Texas, slim and a dennett and anyone else on this panel if you want to partner up and see if you guys can help further what you're trying to do. It's right in line with what Texas and slim is doing ",timestamp:"01:59:32-02:02:45",topics:["Bitcoin ranching system","ranching"],type:"twitter_space",weight:17.55785369873047},{boost:0,date:1671644776,description:"The Bridge2Bitcoin project",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b18df9d2-d034-4e1f-bcd1-d70b30fe9059/506355bc-c119-4f18-bf0b-abe9be8c17d6.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"c11fe5dc-bed6-408f-ae1b-650580184f3e",show_title:"Geyser 🌊",text:"love to hear from Bridge to Bitcoin, because I know you guys, I don't know if you've created it or if you're well, it's a Bitcoin asset project, right? Let's talk about that. Welcome. Hey, Mick. How are you? This is Christopher from bridge to bitcoin. Hi guys. How is everyone this evening? Good to be here. Great to join you guys in your space. So thanks for setting this up. Mick, apologies for joining late. So apologies if I go over ground that you've already talked about out. Oh, no, don't worry. Sorry for tagging you last minute. No worries. Thanks for tagging. It's been great to speak with Connet. And also I just want to bring it back. Well, actually, I'll start off by saying congratulations on getting 30 projects listed this week on Geyser. That's fantastic. That's really great. And just to resonate with what Connett was saying in terms of things get built in a bear market, I think it's fantastic. And you guys are really promoting it. So thank you for everything that you and the Geyser team are doing, helping people, or Bitcoin is build in this bear market. Because for me, for the rest of the team, it's really important that we build foundations now so we're ready as the ball comes out. It's fantastic to see. So for those who don't know about bridge, for those who don't know about bridge to bitcoin, we onboard merchants to accept bitcoin payments. And we received a grant from Geyser early this year. I'm ashamed to say we haven't yet, and it's been on our to do list for weeks, months, to put up a project, a crowdfunding project on Geyser. And we should really do that soon. But, yeah, we'll get that. It's definitely on our to do list. So we hope to do that soon, especially now, as you say, Nick, the ease of putting up a lightning address. And that makes it so easy, as Joe Nakamoto tweeted about earlier this week. So we shall definitely get on to that. But I just want to go back on what I heard Mateo from Orange Pellet talking about, because he dropped off the call now. I think he has. That's a shame. But I really resonate with what he was saying in terms of how. For. Us, onboarding merchants is one of the cornerstones of Bitcoin success, certainly from my perspective, and making the user interface really easy is really important. I sort of resonate with what Mate was saying in that I think most people are currently not fussed about decentralization, they're not fussed about privacy. We as Bitcoin as are, we get it, we've been down the rabbit hole. But most of the society, they want convenience, they want ease. And that's unfortunately why I think CBDCs are going to hit hard, because people won't do their homework, they won't do their research, people are going to welcome it with open arms, unfortunately. So for me, merchant adoption is really important and introducing that in a way that's really easy. So the way we do that for Bridget to Bitcoin, ironically, it's not Bitcoin that we're selling merchants. For us, it's about creating additional revenue for them by saying, oh, hi, guys. Hi, merchants. What we're going to do is we're going to create a new customer base for you called Bitcoinners, and they're going to come and spend their currency for at your shop service and it's going to create additional revenue. And so for me, it's a slow orange bill, because what happens is a lot of these merchants get bitcoin is coming and using their services or buying their products, and we as Bitcoin as we're fantastic customers. We're so enthusiastic. We travel miles, we buy stuff from all over the globe, we get it shipped over, because you as a Bitcoin business, we want to support you. But if you're new to Bitcoin as a merchant, you kind of get overwhelmed quite quickly with how much attention you get by accepting Bitcoin. And it's great, because what that happens, and what we've evidently seen is that those new merchants suddenly get this influx of bitcoiners and it leads them down the rabbit hole without us having to do anything. Because bitcoin is they make an impression because we're such happy people, especially in these economic times where everyone's feeling the pinch, we will go that extra mile, literally, to spend our bitcoin, to spend our SATS, and replace them. And we're happy about it. We're more than happy, we're enthusiastic. We're the best customers you could ever have. That's amazing. For me, it's kind of a cornerstone of how we can it's sort of a Trojan horse. Trojan horse orange pill. So we're going around to regular businesses so who don't even know about bitcoin, and that's what we're planning on next year. We're going to trade shows. We're just to speak to regular people. We've got no idea about bitcoin, and we're going to talk to them about this fantastic payment processing network called the lightning network. And bitcoin normally is quite late on in the conversation, actually, because as everyone, I think, on the call knows, the processing fees on the lightning network are next to zero. They're really cheap compared to what our fiat counterparts are charging. Plus we've got instant settlement, all those fantastic things. So we talk about it's really interesting. We talk about the payment rails. That lightning network is a payment rail and how better than it and eventually we get to the bitcoin piece. But, yeah, for me, it's about making their businesses more profitable, having additional revenue, and it's fantastic because you literally see them fall down the rabbit hole. So we had that recently with a small chain of pubs, just two pubs that we onboarded last month, I think it was last month or the month before. So this landlord, he owned two pubs and he was not a bitcoiner, and he was not interested in bitcoin. But when James, my partner, said, right, we can bring extra customers to your pub, they're called bitcoin as, and they will spend their currency, but it will create additional revenue, he was like, fine, okay, I'm not interested in bitcoin, but I am interested in additional revenue. So if they're going to come and spend their currency and I can give it to my local currency, great, because it's good for my business, I said, fantastic. ",timestamp:"00:51:38-00:58:00",topics:["Bridge2Bitcoin","Bitcoin payments"],type:"twitter_space",weight:35.60085180856705},{boost:0,date:1671735703,description:"Tips for building a bitcoin community",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Pysh, Booth, BTC Ben & the Plebs! 🍻😂",guests:[{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"},{name:"Brian",profile_picture:"https://pbs.twimg.com/profile_images/1589300685182570500/cTffQlpJ_400x400.jpg",ref_id:"b167b1cd-bbce-4839-a03c-194f006f954d",twitter_handle:"BrianTheDrumer"},{name:"BTC Ben",profile_picture:"https://pbs.twimg.com/profile_images/1348015880664473610/S-uDNLlZ_400x400.jpg",ref_id:"2c95b3dd-e3a2-4cf0-a49e-a8915d2bfcd5",twitter_handle:"bensemchee"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"78672de6-3c5f-4d95-8fd9-f2b512fa7a04",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/dbc5dd26-2307-4f64-a377-105e2a277d9c/be3d47a7-2fcd-4de8-8f22-71851953d022.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"d65c7fdb-df02-4bef-a6e6-8d214f6284d4",show_title:"PUBLORD",text:"will be here, too, of course. Yeah. I'm planning on setting up on the Tribe relay. Like when I get up. I'm going to get a laptop next week before I head was just talking about it. Honestly. Brian, DM me a list of like, some of the top speakers you think would be able to explain it because look at us, we're a bunch of regards, as they say, explain it to us like we're five and wear masks in a swimming pool. Like that kind of level. Yeah. Let's talk offline, brother, because I want to hear more about this wearing masks in your cart. All right. Sounds good, Bobby. I'm heading out with Brian as well. Always a blast. I appreciate the invite. I thoroughly enjoyed the Noster talk, to be quite honest with you. BTC sessions. Have a wonderful bonanza tomorrow. Looks awesome. Yellow, I really came here today just to kind of be around you and just love this group. I love you, Preston. Man thanks again for stopping Preston. Good, deep Preston. Happy holidays. Thanks for all you do for the space. Preston. Oh, yeah, man, my pleasure. And I'm honored to be a part of this movement with everybody else. Okay. Let that putt with Preston fish sink in. Preston. Just let it sink in. Oh, wait, yeah. Preston, before you go, because listen, I had an idea for you guys, because, listen, I like to go skiing in Colorado every year. And there's a place there go to Breckenridge or Keystone, but they've got this one little area where they had Lindsey Vaughn do a run, okay? And this for the kids for the most part, even though the adults can't hit it either. But they've got I don't know how many hundreds of meters it is, but they've got to run at a time there, and you get to try to test yourself against a time. So what I'm thinking is pressing you go solo on that course early, all right? You put your score up there, and then anyone who beats it, you get some SAS. Preston puts up the initial score, and you get SAS if you beat it. Just saying. I'm there. On a serious note, I am going to this Jackson Hole event in 1 March to I don't know if it's the second or the 3 March, but I'll be out there for that if anybody's in that area. All right, guys, see you. Thanks for the have a good one, man. Take care. Okay. BTC session. Ben, sorry, one question. Just say one quick thing. Just because BT session is in and probably I wanted to get your support on it as well. I'm trying to start a small bitcoin community in South London. And I'll put in your chat and mentioned earlier, I just wondered if I could get support from you guys because of BT sessions just turned up just now. I just wondered if I could get some maybe some help on some talking points as well, because I'm just trying to build something that's very I wanted to be very simple conversational. It's the first one, but I want to build on it. It's free. And I'm going to get some sponsors from some beer companies so we can do free beer as a kind of a pool. But it's going to be my pub that I run. I put it in a chat. So I just wanted some help, really. It doesn't have to be big. It's not going to be nothing like the Harvey party right now, but I'm planning on being there as well, so maybe I can get some people to come along for that as well. Sounds awesome, man. What kind of people are you expecting? Is there going to be some experienced bitcoiners? Is there going to be a mix of newbies what's the demographic you're looking at first? It's yeah, mix. I mean, I've got an old far who's written about 20 books about my favorite football team, which is Crystal Palace, but he's got a few properties and stuff and he wants to invest in Bitcoin. And I said to him it's exactly the same thing I said. It's like if I tried to explain to you how a car works, the fact that he knows how a car works, you still need to learn how to drive it. I can tell you all the benefits of how good a car is against a horse, but you still need to learn to drive. You wouldn't give a car to a ten year old and all this sort of stuff. There's an education that still needs to be learned. So we got to start small and then build up because he's got property, he writes books and stuff. I've got mathematician coming, a C plus plus, programmer coming, people I know, and obviously there is some shit coinners who want to come along and learn. But obviously you look at the meeting, I put it in the chat, it is Bitcoin. And I've called it Bring the chat. As in BTC. That's the breakdown of BTC. But obviously it's Bitcoin and it's the first one, so it's kind of build from there. But it is a case of break them in gently and I don't want to be fun. It's not about let's overload them with too much tech. But I kind of want to go with if we want to go down the economic rule road, then we'll go down the economic rule if we want to get to understand how Bitcoin works. But it's a case of it will evolve because of I can do as many I could do one a week, I could do one a month. It's about that engagement and just making it fun and free. That's the main thing. I think that's great. What I would say is maybe if you're doing a couple each month, then you could look at it as there's always going to be kind of like a beginner night, and then there will always be like the secondary. One will be maybe more in depth topics that will be of interest to the people that have been there for a while and have leveled up or the ones that are coming in already with a good base knowledge. And then that way you various things, I could actually split it. So we do the first one and then we work out how to split it on the technical to the beginner type side of things. And then I could do alternative nights based on maybe work it that way. Because probably knows that I love these spaces and I love learning myself and I want to share what I learn. And I think the best way to learn is to share your knowledge. The more I want to share it, the more I have to learn myself to make sure that what I'm saying is correct. And that's why I love these spaces so much, because I'm addicted to him. London I would just posit one thing. And this is cool that you're here asking these questions when Ben is here, because if anyone wants to learn anything about Wallace in general, see reviews and learn how to do things, you go to BTC sessions on YouTube, you can learn so much. However, there's a different level when you can do it sort of in person and you see it happening. And Ben. We did Halloween in Charlotte, North Carolina. And what was really cool, and I was mentioning this earlier on the space, and people don't understand, even if you've been here a year, you forget how far advanced you are when it comes to not only understanding Bitcoin and what it means, but the technology behind it. So if you can set up London, just a simple thing where you just show somebody how to download a wallet, either moon wallet, whatever wasabi wallet, and send them some SATS, dude, they are blown away and they'll be new to the space. But I'll tell you what, that changes lives when they see that. When you do that, that is like putting a couple shovels about 3ft down into the ground to start that rabbit hole journey. When they see that you just sent them value outside of the Swiss system, it was pretty cool to see. And yeah, when I saw that, I forgot, man. Sometimes it's like when you used to believe in Santa Claus, man. Used to believe in Santa Claus. Then you got older. But when you see people that do Lightning Network for the first time, you believe in Santa Claus again yourself. You see that spark of joy in their eye. Wait, you don't believe in capitals? What are you talking about? I was going to say Santiago. I think he pulled it back. ",timestamp:"02:14:38-02:24:14",topics:["bitcoin community"],type:"twitter_space",weight:36.0744936342072},{boost:0,date:1671735703,description:"What bitcoin represent vs what Nodster network represent?",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Pysh, Booth, BTC Ben & the Plebs! 🍻😂",guests:[{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"},{name:"Brian",profile_picture:"https://pbs.twimg.com/profile_images/1589300685182570500/cTffQlpJ_400x400.jpg",ref_id:"b167b1cd-bbce-4839-a03c-194f006f954d",twitter_handle:"BrianTheDrumer"},{name:"BTC Ben",profile_picture:"https://pbs.twimg.com/profile_images/1348015880664473610/S-uDNLlZ_400x400.jpg",ref_id:"2c95b3dd-e3a2-4cf0-a49e-a8915d2bfcd5",twitter_handle:"bensemchee"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"78672de6-3c5f-4d95-8fd9-f2b512fa7a04",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/dbc5dd26-2307-4f64-a377-105e2a277d9c/be3d47a7-2fcd-4de8-8f22-71851953d022.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"fbefee4e-b2e3-4635-88ac-800d3482e9f8",show_title:"PUBLORD",text:"on Craig's recommendation. I went to Jack.com. Was not what I thought it was going to be. Thank you, Craig. I had an education. Look, we'll talk about the notes a lot of times. All the fact Preston jumped in, I wanted to just have a few more words. I know he's got a busy schedule, but preston, you're coming to the end of 2022 investor podcast, one of the best ones we have any tweaks to next year. Guests are looking forward to have not really just doing the same thing in reference to the Noster conversation there. The thing that's such a game changer for folks is if you want to run your own relay and host your own data, you can do it. And the barrier to entry to do it is really low. In fact, that's what I've been doing while I'm here talking to you guys is I'm setting up my own relay to host my own data and to make sure fucking go that nobody can mess with it. And so when you look at what this protocol represents, when we look at Bitcoin, it represents it's like equal sign free and open money, free and open markets. When you look at Noster, it's similar to Bitcoin in the regard that equals sign free and open speech around the world. Nobody can shut it down. Right. That's what it represents. Now, we are in the very, very early days of this, and so whether we can pull it off or not at scale, I don't know. It sure seems like we can. When you have guys like Jack Dorsey in there, like every minute of the day working on the protocol and working on I don't know if he's working on clients or if he's just working on the protocol, but he's in there. And that guy wouldn't be in there if he didn't find a whole lot of promise behind the rudimentary building block of an event. That is where it all starts, with this protocol and everybody's just building around it. It's pretty exciting. Hey, Preston, are you able to limit who can see your data that you host by only letting people that you trade public keys with access it or something like that? Is that a concept? Yeah. And Brian, correct me if I'm wrong, because you seem to be pretty well versed in all this, but from what I understand, as I'm literally trying to set this thing up, I'm struggling a lot setting this up because this is not my area of expertise, but I have an appreciation for what it represents. I'm trying to learn along the way. But my understanding is you can host, you can relay whatever accounts you want, as many as you want or as little as you want, and people can connect to it. And you can allow that connection or not allow that connection, but it's creating this web of interaction between these encrypted messages that are of very small size, and they're just being passed around from relay to relay. Jim, are you basically asking, is there a way of blocking people? I guess it's more my thinking was more if you're going to host data, so maybe you want some of it open to anybody so you have a permission set on that data where anybody can just log on with a public key. You don't know if they're a bot or anything else, and they can see your stuff. But then maybe there's other stuff you only want your followers to see or something like that. I don't know. Maybe testify. Just let me know. There's a new version of Domas just got released. Is that relevant? I'm sorry. We ",timestamp:"01:35:32-01:39:29",topics:["Nodster network"],type:"twitter_space",weight:35.643925540367206},{boost:0,date:0,description:"The Genesis crypto lending fraud",episode_title:"The Orange Sun ☀️ #Bitcoin News and Talk",guests:[{name:"Portland Hodl",profile_picture:"https://pbs.twimg.com/profile_images/1562306406526492672/LiqmI9NS_400x400.jpg",ref_id:"530aba21-392f-4156-9e91-4fc5c76fced1",twitter_handle:"PortlandHODL"},{name:"Miykael Woodward",profile_picture:"https://pbs.twimg.com/profile_images/1473433558475689985/CM0o3oWu_400x400.jpg",ref_id:"6fe02a78-4f07-47e7-8e64-b278a3167835",twitter_handle:"MiykaelWoodward"},{name:"Okin Mobi",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"bbd18918-7758-4bdb-b9a5-641bf92748a6",twitter_handle:"OKIN_17"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"Funsho Jimoh",profile_picture:"https://pbs.twimg.com/profile_images/1600143435775856641/uqgmtT23_400x400.jpg",ref_id:"a237ffb0-792b-484e-b12f-65a2b679eaf1",twitter_handle:"fnicencool"},{name:"prince ogbonna",profile_picture:"https://pbs.twimg.com/profile_images/1595693872637681664/TeWJzTut_400x400.jpg",ref_id:"0b0c70b1-23b1-4d98-b259-6dbb67b7481d",twitter_handle:"princejoj0"},{name:"The Bitcoin Village",profile_picture:"https://pbs.twimg.com/profile_images/1544318244789649410/kQ2G1MCE_400x400.jpg",ref_id:"d894aca4-36f6-4821-a00b-a4e860b19502",twitter_handle:"VillageBitcoin"},{name:"Masterguantai",profile_picture:"https://pbs.twimg.com/profile_images/1521025685078302720/w9dZwehS_400x400.jpg",ref_id:"29baf525-42eb-41a6-98f9-a0d6b4480af0",twitter_handle:"MasterGuantai"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://s3.amazonaws.com/stakwork-uploads/uploads/customers/2707/media_to_local/a99c4b03-009f-4027-a9c7-3c249a0cf9b7/a99c4b03-009f-4027-a9c7-3c249a0cf9b7.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"663836ff-8d5a-4037-a62f-72568fff46f1",show_title:"Satoshi’s Journal",text:"that's very interesting. But Genesis future is more uncertain because the business is heavily focused on lending out customer crypto and has already engaged restructuring advisers. The crypto lender is part of DCG, the conglomerate controlled by Barry Silbert. SEC officials said the possibility of a DCG or Genesis bankruptcy had no bearing on deciding whether to pursue a charge. It is the latest in a series of recent crypto enforcement actions led by Gensler after the collapse of FTX Bankman Freed's crypto exchange late last year, Genzler was roundly criticized on social media and by lawmakers for the SEC's failure to impose safeguards on the nascent crypto industry. Gentler's SEC and Commodity Futures Trading Commission, chaired by Roston Benham, are the two regulators that oversee crypto activity in the US. Both agencies filed complaints against Bankman Freed, but the SEC has of late revved up the pace and the scope of enforcement actions. The SEC brought a similar action against now bankrupt crypto lender BlockFi and settled last year. Earlier this month, Coinbase settled with New York State regulators over historically inadequate know your customer protocols. Since Bankman Freed was indicted on federal fraud charges in December, the SEC has filed five crypto related enforcement actions. So the SEC is finally getting some stuff done. They have been criticized, and it's really great to see them finally do their job. And hopefully they'll essentially what I see happening is, of course, the Winkleboss twins are pissed because they are like a little cornered animal. And you know what happens when you corner an animal? They'll fight you back, but they're fighting back. And they're in a corner because they're trying to get their customers paid back. But they're having a little war with Barry Sober, and Barry Sobert is not paying them back. So now you got basically a pending, they're probably going to go and sue Barry Sobert and then now you have the SEC charge them with those charges. So once again it's just going to show you this is all inevitable. They should have all known better but I think it just they're not idiots. They should have known better but I think that they do idiotic stuff because there's already been a precedence by which people that do bad stuff, they end up just getting bailed out anyways or they just get out of it with a little slap on their hand. And we saw that many times in our history. And it's sad because basically these crypto exchanges are going to be probably let off with a small little slap on the hand but at the expense of millions and millions of dollars from their customers who they basically took advantage of. They were not good stewards of their customers money and they were using that customer's money to borrow against, to buy more assets and just become over leveraged. So we don't know what the balance sheets of Barry Silbert's DCG company is and we don't know the balance sheets of Gemini but yes, who knows, they may be worse than what we think and this could cause further cascading of crypto in general. The unfortunate part about this is that as we all know, crypto and bitcoin are two separate things. Bitcoin is not competing against any of those cryptocurrencies that are on exchanges of which there's 20,000 plus and that's still defined. But essentially as those cryptocurrencies as they get rug pulled and litigated against, so to speak, bitcoin is going to go down with them. But when it's all said and done, bitcoin just keeps doing what it's supposed to be doing every ten minutes, just block by block verifies transactions, validate transactions and it could give the rats ass about what's happening around it. Nevertheless, the cascading effect of the shit coins caused bitcoin to go down. So who knows, there might be some further damage, so to speak. Damage is not the right word. There can be some further lowering of the price of bitcoin just because of the shit coins getting finally rug pulled by regulation. It was highly necessary and I'm glad that they're finally doing something. It'll be interesting to see what the SEC does as far as new laws and regulation that come out of this. And it will also be interesting to see if the Winklevoss twins have the liquidity to be able to sustain multiple litigations and perhaps even further degradation of the value of what's on their balance sheet. I think another thing that's interesting we all know about Binance, it'd be interesting to see what their balance sheets look like if they're as bad as we think they are. According to Binat's CEO, in a stone cold manner, he told them that they're good to go and they have the liquidity to sustain even a further drop. But that was a huge liquidation. They went under anyways. We're seeing it all. Rugpool and Bitcoin will stand on the end, we all know that. And it'll be interesting just to see if everything pans out. Just another game, theoretically, in bitcoin. ",timestamp:"00:41:05-00:48:14",topics:["crypto lending fraud","DCG","SCC","Winklevoss"],type:"twitter_space",weight:14.263422012329102},{boost:0,date:null,description:"Decentralization of bitcoin and holding ",episode_title:"Café ₿: Thanksgiving Special 🦃 w/ the Café Bitcoin Crew",guests:[{name:"Rob Hamilton",profile_picture:"https://pbs.twimg.com/profile_images/1524033110630969351/wTUr8S36_400x400.jpg",ref_id:"94b18625-4778-4cfe-9c78-823704d1c1b1",twitter_handle:"Rob1Ham"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:"DJ Satoshi",profile_picture:"https://pbs.twimg.com/profile_images/915987644043030528/5nh3JQSz_400x400.jpg",ref_id:"02ae35cb-3728-441f-84c5-a8db5d9150b4",twitter_handle:"satoshi__tomiie"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Shaeroden",profile_picture:"https://pbs.twimg.com/profile_images/1560742113410678789/cHZ2tUjU_400x400.jpg",ref_id:"0da06a5c-038f-4737-9af7-17bed3712e68",twitter_handle:"Shaeroden"},{name:"Andres",profile_picture:"https://pbs.twimg.com/profile_images/1401952614795943950/aL2h3Wb4_400x400.jpg",ref_id:"db4abfe9-e3bb-4ffa-9783-ce67f5b20270",twitter_handle:"andresvbr9"},{name:"Peter Ansel",profile_picture:"https://pbs.twimg.com/profile_images/1374726811221954565/R7ttqYMI_400x400.jpg",ref_id:"2d418514-e03c-414d-8ed1-10c894aacb6e",twitter_handle:"peteransell"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/c25e3b3c-b5ef-435e-9e7d-9e406089e7b1/572908d4-f2cc-4c7b-980c-8359d2c8000d.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"2acb23ed-c7ca-4f51-abb6-bfcc0a87316a",show_title:"Swan.com",text:"I'm amazed you fell for like well, I don't know if they fell for the Rogers thing, because I think Roger believed what he was saying, but it's like, who's Roger to understand how an exchange works, right? Because I don't know. I was friends with Roger. I was talking to I know, but I was friends with him. I was talking to him all the time back then. I was working with the guy, and even I was like, but I worked a bit instant, so I had to work directly with Mount Cox back then. And it was such a shit show because I had all my funds on Cox, too. But after that experience, I was like, okay, I'm never using Cox again. These guys are a train wreck, dude. You guys got to understand that Brad was raised not only Mormon, but Canadian, which is a double whammy of gullibility. That's true. The truth is right there. Take that with some extra maple syrup today. Wow. Good one. It's amazing you're not a bee catcher, Brad. Well, Brad's also smart. He's just really nice. So he keeps being like, oh, I guess it's true. Maybe Roger does know things I don't. That's the one thing, though, I knew the entire time, was that Bitcoin was the thing to pay attention to, and you always wanted more Bitcoin, and that decentralization was the most important thing about why this asset is valuable in the first place. And sacrificing any form, any sort of decentralization, invalidates the investment case for bitcoin. So if you're going to make the blocks bigger so that people can't run nodes as easier or set a precedent that some centralized cartel of businesses or devs even, can just change the parameters of either the code or the monetary policy, that completely invalidates the sound money properties of the asset. Which is why I never fell for bitcoin cash or ethereum or any of these things, because decentralization is the most important thing. So that also is what I focused on the whole time. It's like, this is only important because of decentralization. And you have to maximize decentralization even at the expense of pumping mentals, as Richard Hart would like to say, or Fomonomics or whatever you want to call it. Like the ethereum people sacrifice their ceremony properties for ponzi. Nomics, they actually made a centralized change in the code with the IP one five nine to try to actually make the stock to flow meme of ethereum better than the stock to flow meme of bitcoin. And it's the stupidest thing, and I'm so glad, is that when they became Brad, is that when they became ultrasound money? Because I have to tell you, I've talked to many ultrasound technicians and none of them are using ethereum. So I don't think it caught on. Hey, Brad, I think the real lesson that I've learned from you, because I love when we get in clubhouse and we just rib you, it's a good time. But I think the real lesson of Brad is you can make some of the dumbest, stupidest fucking mistakes for a decade and you still come out just fine. You have a core bitcoin position. Yeah, it's good. Literally, you have to do this thing where if you're not a conservative person who's able to just safely rationally hold bitcoin and not get distracted, you know, auto diagnosed me with what was it? Activity bias. Auto. Yeah. So this is probably worth going over for anybody in the room, but everyone has activity bias. It's not just Brad. Brad just has maybe more pronounced activity bias than others. Hyperactivity bias. Yeah. So this comes from evolutionary biology, essentially, which is that, like, let's imagine you're a small mammal on the grasslands and the grass blows, but it's above your head, you can't see what's behind it. Nine times out of ten, it's going to be the wind that's moving the grass. One time out of ten, it's going to be something that's going to eat you. And so it behooves you to run away to have a strong bias towards action. Which is why all organisms on earth have a strong bias towards action. Right. Cause one out of ten times you get totally eaten by a predator. So in markets, though, this works against us because you want to have a strong bias against action, and it's very difficult to just sit still like this is the quote I posted from Jesse Livermore's book, which, again, go read reminisces of a stock operator, this bear market. It's a very instructive book. It was written in the early 19 hundreds. And interestingly enough, a lot of what was going on, like pre collapse of 1929, is very similar to what's going on in cryptocurrency today, like the bucket shops and everything. It's really an interesting parallel. But basically you want to have a strong bias against action in investing terms. And so huddling at its most simple basic level is just getting a bitcoin position and then saying no every single day to selling that bitcoin position. That's it. And then if you want to sort of judo your activity bias, right, make it work for you, you go from huddling, which is mainly a passive activity, to stacking SATS, which is an active activity. So what do you do when the price is down? You stack SATS, right? And this is a way that you could actually hijack your own activity bias for something beneficial, but you don't want to use your activity bias to trade chick coins to sell in and out of your position, generate taxable events. You want to sit on your ass and do nothing. And that's the hardest thing to do. I love it. This episode of Cafe Bitcoin has been legendary and epic in that this will be the one remembered as when American hotel compared Brad Mills to a small furry mammal in the grass trying to avoid being eaten by predators. I thought it was the wind. You blow us canadian and not a Mormon. Yeah, not anymore. One of the things that you said, the thing that you just said was great and all, but most of us don't have the ability to control our activity bias. So I think most people, like some less so than others, they're going to come in and they're going to try to trade. They're going to go search YouTube about crypto and they're going to find, like, you know, people who think they're smart, who are actually just drinking koolaid themselves. And there's a lot of people in that category, like, sure, there's bitboy and people like that who are just grifters that are getting paid to show garbage, but then there's like, people who are unbiased, they're not getting paid to show garbage. They actually are good at technical analysis and trend following things like that, but they drink the Kool Aid of Defy and crypto and NFPs and they start giving smart sounding advice to new entrants and then they just create a whole class of people that are going to just go repeat all the mistakes that all the early bitcoiners made with their activity bias. So the thing is I think we really should push the idea of for new market participants and even people in here that maybe got ripped off on Luna or Celsius or FTX or any of these things we've all kind of had those types of experiences in the past. The way you get forward from it. I think honestly if you can't do what Hauddle said and actually control your activity bias and recognize that and just sit patient just buy and hold and dollar cost average and maybe had your risk at the top or something like that is create an internal bitcoin maxi personality like this is what the allship owners should do they should drink the bitcoin Koolaid like Jekyll and Hyde style have a bitcoin maxi personality inside of them. Even if they think bitcoin Maxis are cringe and stupid and boomers and don't understand utility, blah blah blah, every shift corner should have a bitcoin Maxi inside of them. Wait that doesn't sound right. Okay, so every shit corner should have a bitcoin maxi inside of them that controls their bitcoin, the private keys to the bitcoin and that bitcoin maxi personality needs to sign up with Casa or Unchained or somebody to do multi stig to protect the other personality. The FOMO sapien activity bias personality from going out and gambling away all their money. Yolo betting on some ICO buying a JPEG because Gary vee told them it's going to get them into his bedroom or something like that there needs to be like everybody should have a bitcoin max inside them. I'm just calling it that's what they got to do. And let the bitcoin maximize personality. Manage your bitcoin and segregate your portfolio so that you're protecting yourself from your Dgen side and if everybody did that they'd be like me because I made all these mistakes and then I'm still here and bitcoin changed my life. So most people are going to shit coin they should just do it in a way that protects themselves from what inevitably is going to happen. ",timestamp:"01:43:16-01:52:28",topics:["ultrasound money","Ethereum","bitcoin maxi"],type:"twitter_space",weight:13.933148503303528},{boost:0,date:1671644776,description:"Some of the importance of Bitcoin Creator spaces and how it helps Bitcoiners",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/885fe09b-bb21-49a5-8667-3c73ed36918f/196dc1e8-c7a4-4dc7-902f-d00107aefb42.mp3",node_type:"clip",pub_key:"0372cd0c8469f2034336a243e018d4d60e07efef8e7d10417807da1173bd5b002f",ref_id:"c80659ad-87eb-488c-be5d-00ac386a2b15",show_title:"Geyser 🌊",text:"Did you get the invite? I'd love to hear about what your features releases are up to. So Builders feature orangeville app. We have Lightning Piggybank, which is essentially an electronic cash piggy bank for children that accepts bitcoin sent over lightning. So this is a pretty small project, but it's a pretty sweet thing, actually. So let me add this to the it's pretty incredible, actually. I need to show you guys. I need to show you this. Imagine a piggy bank, but instead of an actual pig, it's like a cardboard box with a Geyser satoshi. Yes, we did. What's up, mate? I cannot do from the desk, though. You cannot talk? I'm not on desktop. Oh, no. You can't talk from desktop? No, it's got to be mobile. Yeah. It'S painful. Yeah, we got to talk to you. Yeah, exactly. But yeah, just to finish up this thought, there you have this really cool piggy bank which has this, like essentially this counter, this wallet counter of how many Satoshi the project has, which is really cool. And this person is just raising money connecting their Geyser project onto their Lightning Piggy Bank, which is fucking cool. I mean, this looks like a little DIY type of fun project that a father did for his son or something super cool. But let's go back to you, Matteo. Let's talk about orangeville app. Why not? What's up with you? Yeah, for sure. Orange. Bill app is a mobile app. We use Geolocation, which is the only approximate to connect you with nearby users, nearby pledge, and soon we'll let you find events. So meet up, conference, whatever. Actually, it could be anything because the user can create events straight from the App and then put the address. And then you'll be able to invite people there nearby to the event. So it doesn't have to be a meetup. It could be like a soccer game or picnic on the beach or anything. That's pretty cool. Hopefully it comes out January or February. Definitely February. And then we're going to launch the search feature, which will allow you to search for people all over the world. So if you're traveling and you're going to Ghana, you'll be able to look for clubs in the App there in Ghana. And then you can chat them up and say, hey, I'm coming to Ghana next week or next month or whatever, and I'd like to meet with you. I don't know anybody in Ghana. And of course, you can also search by gender for dating, age, profession. Right? We got to do yeah, I'm sure it's going to be like 95% guys, though. It's not can you confirm that? No, it's not. I don't have the number precisely because some users, they don't put a picture. And I know there's one woman that I talk to, obviously I talk to everybody on the app and you wouldn't know she's a woman, but it's a woman. But I think it's about 10% women and 90% men, which it looks it doesn't look good. But Tinder, which is the biggest dating app on planet, the ratio meant to women, it's 97% men, 3% women. No way. I know, it's crazy. Wow. But there's so much there's so many. Better than they are. Yeah, we're doing better than Tinder. Yeah. The point is that when you have, I don't know, hundreds of millions of user, it works even if you have one or 2%. But yeah. So with the search, you'll be able to search, obviously only if the other users have disclosed those information. So age, gender, profession, which is going to I think the profession looking for Profession is going to kickstart the Bitcoin secular economy, right? Because imagining you can look plumber in Oxford and then you can paint that because obviously if it's in the app, it's a bitcoin max. Right. So that's going to be very exciting. The Meetups is really the first iteration of the social movements, right? It's a social network that Bitcoin is creating that you are enabling through the IRL meetups. But that's really the first iteration. Well, the Meetup is every meet up is not necessary. You can search for plumber and connect with the guy or girl, whatever, and then it's like you found the plumber online instead of on the app. And, you know, he's already a player because he's on the app and he's paying to be in the app. So we filed through all that kind of stuff. So Profession, I think, is going to be a big game changer for Bitcoin ecosystem. And then location again, travel, or if you just move to a place or whatever, and then obviously user name. So if you want to connect with some specific plan. So the search yeah, it's going to be amazing. So when's the search coming out? I think we're launching the search on a limited version of Search. We can only search by username probably this week or next week. And then we're going to expand it like, we're going to expand it ideally in January. Right now we're focusing 100% on Android because obviously, especially in some part of the part of the world, most labs have an Android. And so we need to be on Android ASAP, which will come in January. But yeah, searches come in ASAP. I think January, February, like Q One, 2023, we're going to launch pretty much everything. And then after that, we're going to launch the Orange Pages. So Orange Pages, it's in the name, right? We have partnered with oh, nice. Yeah, we partnered with BTC Map, and they have all the merchants that accept bitcoin. We got the API, and so you'll be able to look grocery store or airstalls, whatever you need right through the app on a map. So one place to find all these people, all these merchants and businesses and friends and girlfriend and boyfriend and events and meets up. So it's one stop. For all on Top Shopify. All the Bitcoin connections in real life in the offline. Right. The goal is to foster as many in real life connection as possible because I think that's how you win the battle when we meet him in real life is 100 times more powerful than meeting sending a DM or an email or a zoom call, right? Yeah. Right. So where does Geyser come in here? You guys are launching a project, right? We are. So what's the idea? Like, what's the idea behind the project? Yeah, probably today, maybe tomorrow. We're going to launch the campaign on Geyser. If you get a membership, orange fill up is a membership based up. Why? Because first, we don't want to do advertising. Everybody hates advertising, I think, especially the clubs. Second, we don't want to do any tracking of data, any data monetization, any of that. Third, we don't want spammers and scammers and bots and people that they just don't care about Bitcoin. So the app is membership based. If you go through the app, unfortunately, you have to pay with Fiat because Apple doesn't let us take payment in SATS, but we also have membership in SATS that you can buy on our website, which is Theorangeprop.com. Actually, it's my domain. It's also bitcoin is social. Just put it yesterday and then on Geyser. Nice. Yeah, I know. It was available. That's amazing. $10 on Geyser. That's going to be worth millions ",timestamp:"00:19:42-00:29:28",topics:["Bitcoin Creator space"],type:"twitter_space",weight:33.67529732328345},{boost:0,date:null,description:"Problems with the beef industry in the United States",episode_title:"The Orange Sun 🌞 Let's talk #Bitcoin & Cattle Ranching/Sustainability",guests:[{name:"Texas Slim",profile_picture:"https://pbs.twimg.com/profile_images/1589784780970795011/02jf0fqp_400x400.jpg",ref_id:"b4448c8e-9238-4aba-bd25-efb329ea5a72",twitter_handle:"modernTman"},{name:"Lucas",profile_picture:"https://pbs.twimg.com/profile_images/1596345084966014976/maviSGq3_400x400.jpg",ref_id:"e3adb591-b29f-435b-bd34-210f2dbcedaa",twitter_handle:"impossiblyso"},{name:"Firebust",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"0fb6c7f3-a673-4fe5-9599-8165800a2ff0",twitter_handle:"FireBursts"},{name:"Hamza Yusuf",profile_picture:"https://pbs.twimg.com/profile_images/1318064165030940672/sakbSOvT_400x400.jpg",ref_id:"03a74669-b653-4c57-8799-a312cb041089",twitter_handle:"Hamzayu28849293"},{name:"Adenekan's Father",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"b8259997-2ef0-4e6e-8d58-a69b5eda550a",twitter_handle:"AdenekanFatai4"},{name:"Adenekan",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"ca6a563e-0e84-4811-be82-a3b3cd12d399",twitter_handle:"AdenekanFatai4"},{name:"Heritage",profile_picture:"https://pbs.twimg.com/profile_images/1510397558652350469/jYOl00tU_400x400.jpg",ref_id:"98a6d9df-3c39-49ec-8a39-074e61af4ece",twitter_handle:"herrytheeagle"},{name:"Enoch",profile_picture:"https://pbs.twimg.com/profile_images/1596235105663533056/5mRUbLm3_400x400.jpg",ref_id:"4f8af040-3d0c-49c1-806e-aef89d8693fb",twitter_handle:"KazEnoch"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/a91f79fd-d85f-4440-b012-4bdafdc83341/f1d1c5b5-b8c9-44ed-a217-f75b398376d5.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"d8a44c3b-6219-49d5-9a35-4b2ca5972d7c",show_title:"Satoshi’s Journal",text:"at this time I wanted to get the perspective of Texas Lim and Dennekin and Hansa, I'm sorry if I'm mispronouncing your name, but Texas Limb, could you just briefly tell us what the problem is with the beef industry in the United States relative to the commercialization thereof? And then I also want to just hear the same thing from Adenikan to see if they have similar problems as we do here in the US. Please go ahead there. Texas Lim. Yeah, you brought up earlier basically the multinational processors in the United States and whenever we say processors, okay, that's the same as, you know, in Nigeria then using the butcher. So let's make sure everybody has that perspective and understanding. We have processors and butchers are basically the same thing. They're the ones that harvest the animal, they're the ones that cut the animal up and in the United States they also control the distribution. What has happened in the United States throughout the my lifetime. Basically. I'll use Texas as an example. We had a processor butcher in every county across the state of Texas. That was 254 butcher processors. They were called microprocessing centers. They're called abortoires butchers, whatever you want to say, but they're the ones that harvest the animal. Well, in my lifetime now, those 254 processing centers are no more. And what we have is for multinational processing, basically corporations, they're not basically housed in the United States. Three of them are from Brazil, South America. And what they do is they control the butchering, the processing of the cows. They also control the distribution. The distribution is a global market in which United States consumers do not have access to. The beef has grown in the United States, the beef is harvested. In the United States, the beef is shipped overseas to the highest bidder. This happens across many different countries. In Australia, they're up against the same thing. A lot of their beef is shipped across seas to the highest bidder. Same thing in Africa. Africa's beef is not basically being consumed by the African people in a way. Or basically the distribution is not controlled by the butcher processors. I'm not for sure exactly on the same level, and it can speak to that. But in the United States, we've always said that we have to feed the world. Well, we never did feed the world. What we did was we created distribution centers across the world to a lot of the highest bidders. And what we did in the United States is we quit feeding our communities. We took the most powerful food sources and we shipped them overseas to where the American people are suffering. And one of the biggest bottlenecks to our basically beef in the United States are these multiprocessing centers, the multinationals JBS Cargill, national and Tyson. And so they have a lot of poll across the globe. Nigerian beef is also sold on that same global brokerage market, same as Australia, same as South America, same as so many small countries that basically do not have access to sound money. And basically all of that energy is stolen and shipped to the highest bidders. Eliminating any form of distribution to local communities. That is what we have to get back to. That's what the Beef Initiative is accomplishing right now. We're building out nodes across the United States where we're back to feeding our communities first, and then we distribute across the nation. And we do it by ourselves. We do not have to have permission from the multinational processing centers. We have our opening up our own processing centers. And therefore we control the distribution. And that's kind of a good long and short of it as far as what we are up against. As I say, the biggest threat to the American rancher at this time is the multinational processing centers, which takes away basically the power to steward the animal to its right age and age and weight and basically how they do that is they do not give access to processing centers in a timely manner. And a lot of times you will have to basically schedule kill dates within the cattle industry in the United States a year and basically 18 months out. That is hard to do as a rancher in the United States, because you quit being a rancher and what you become is basically a babysitter of that cow all the way until it's going to be harvested and the money is made by the distribution in the processor, not the cattle rancher. Whenever you do not have access to that processing center, you lose out probably two thirds of what your margins could be in the United States. And therefore, if you have access to a decentralized processing center, as you do through the beef initiative, let's say you sell a cow, if you're having to use one of the multinational processings, you'll make maybe $400 profit off that cow. If you're able to take that cow all the way to the consumer themselves, in which the beef initiative gives people market access to be able to do that, $400 basically turns into anything between probably 25 and $3,500 margin. So you can understand how much control of the margins profits that the distribution, the multinationals have taken away from the American rancher. I have to say that it's probably the same in a lot of similarities across the globe, because if you control the butchery, the processing, you control the cow in a way that has been taken away from the rancher. And I think that's amazing, the parallel, because the fact that money has been controlled since the advent of money by central authorities so as to have power over the people, it's the same thing. Cattle industry and in farming is the powers that be. If they can control the land and they can basically monopolize the farming and ranching, then they can control the people to a certain extent. That's the reason why we have to get onto a decentralized money and onto decentralized farming. And that's essentially what the beef initiative ",timestamp:"00:53:50-01:00:33",topics:["Beef processing centers","Beef distribution","butchering"],type:"twitter_space",weight:13.423835754394531},{boost:0,date:null,description:"Changing the narrative about Stackchain and Bitcoin",episode_title:"Café ₿: Sovereign Computing w/ Matt & Aiden, Start9",guests:[{name:"Andrew",profile_picture:"https://pbs.twimg.com/profile_images/1465763053014859786/xYFN2czJ_400x400.jpg",ref_id:"ae4b13f8-0ee7-480a-b47a-82b967ad7a79",twitter_handle:"AP_ArchPublic"},{name:"Matt Hill",profile_picture:"https://pbs.twimg.com/profile_images/1347317316057321474/ieMjzK3x_400x400.jpg",ref_id:"3576ad28-a04d-4388-865b-3ec5114c4f9f",twitter_handle:"_MattHill_"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Aiden McClelland",profile_picture:"https://pbs.twimg.com/profile_images/1470160097225498624/0BjKB_2W_400x400.jpg",ref_id:"04ddd9d4-9329-4e6c-aaa3-d65ea4a9342a",twitter_handle:"_dr_bonez"},{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Lisa",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"e6f0c6e3-3237-4b13-878f-bb740cd32f8d",twitter_handle:"lisa_hough_"},{name:"Isabelle",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"c8df253f-47b3-465e-878e-8405c01c090d",twitter_handle:"isabelfoxenduke"},{name:"Tone",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"5729ac07-51d6-4268-b585-62680c846acb",twitter_handle:"ToneVays"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Derek",profile_picture:"https://pbs.twimg.com/profile_images/1598322677827207169/Cw0A3oOP_400x400.jpg",ref_id:"f441b996-7eeb-4210-b24c-fa011161709d",twitter_handle:"derekmross"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ec4a941-250c-4e1d-8d2a-6c506c3ba4b2/4bd8010d-b2fd-41b4-8041-8a953ef06492.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"d72f67b3-c42f-43cf-8e01-47065fe8e638",show_title:"Swan.com",text:"Good morning. Good morning. Alex is getting him up here, but what's up, Derek? What's up, Hand? Good morning, sir. Morning. I've seen you down on the trenches, Derek, defending the stock chain. Oh, absolutely. There's a lot of defending going on last evening. It was fun though. We made progress. He seems to be changing his stance. Yeah, it was great. It was actually one of our best shows we've done in a while. Tell us a little bit about it. Well, yesterday during Cafe Bitcoin, brad Mills had tweeted out that Stack Chain was a shit coin and then proceeded to run with that narrative throughout the day and different polls and post comments. Whatnot? Peter and Greg Foss and others called him out during the show. But throughout the day he continued to talk about Stack Chain in that way. We thought that it was kind of a lack of information available, right? And we had hoped that once he saw what Stack Chain was, our community project, what it was all about, what we were doing, that he would change his tune. So we invited him to our evening spaces and for 2 hours we talked Stack Chain about basically all of our accomplishments and different things that we've done over the past four months. And he changed his tune. He is not sure about our massive Twitter thread, the actual Stack Chain itself, but he understands and understood every other aspect of our community from lightning nodes to support, to donations across the world, to bitcoin communities, to having fun and stacking stats. It's an interesting progression. What did he not get about the long Twitter thread? He took back his initial statement too because he was talking a lot of crap yesterday. I mean, he got a first hand experience of that Stack Chain energy all day. He was basically calling everyone in Stock Chain shit coin and calling Stack Chain a shit coin and so doing like polls and all kinds of stuff. And so Stack Chainers weren't too happy about that. I'll tell you what though, him talking about it was great for Stack Chain because it spread awareness that a lot of his followers had no clue what Stack Chain was. We had new Stackers come in last night and do stack joins and get new blocks. So. Hey, fudd is great for stack chain. Apparently it spreads awareness. It's like bitcoin. It's funny, it's like the ECB, the more they shit talk bitcoin, the more relevant bitcoin becomes. Absolutely. They don't even talking about bitcoin. What's that like? Yeah, like they're huge. Bitcoin is so small, what are they. Even doing talking about bitcoin? No, that's the point though, if they are talking about it, that means it is relevant regardless of whether they're trying. You see what I'm saying? Oh, I see. All right, I'll be right back, I'm going to grab my coffee. Do what you want. I am pretty surprised that he stayed in there for the whole two and a half hours and just kind of listened to what everyone had to say. I thought that was actually pretty decent of him. Absolutely. Especially in the beginning he was getting attacked a little bit, everyone's defensive of our community, so I think that he had a fixed skin and he stayed around and he learned his final conclusion was basically like oh, Stack Chain similar to the community that I have over on Clubhouse. I was like, well yeah, we're literally just friends buying bitcoin together and having fucking fun. He compared it to the original Pleb movement, which I wasn't really understanding that comparison, but it was an interesting conversation for sure. That poll that he did was pretty funny. Most people are like what is Stock chain, right? And then Lauren's response in that thread was the absolute best. She did another poll. How many of these people voting are shitcoiners or followers or shit winners? Really funny. Yeah, I wasn't triggered at all. Alex. Mowing bare action coming in. No talking about bitcoin at Thanksgiving. Marin yeah. Alex my mom sent me another text yesterday. I don't know what her vendetta is about bitcoin, but I can't talk about it at Thanksgiving now. I have online friends that are bitcoiners that she's coming at and text messages. We added my mom, just as a joke to one of the stack chain, like, back end chats. And it's really funny. She has no idea what's going on in there, so now she has a lot to say about that. So one of two things is either is going to happen, it's either slowly going to sink in that she's maybe a little off base, or she's going to double. Triple down. Yeah, she's tripling down right now. Oh, that's too funny. That's an interesting phenomenon. That was well documented, I thought, in that article was talking about the other day. What was it called? Why people struggle with bitcoin by Nick Beard. You guys should go check that out. I thought it was really well written talks about people who just can't, for whatever reason, they just can't. They tend to double down. Down, triple. I have yet to see somebody who's tripled down, so to speak, come around. Have you guys seen examples of that? A triple down person would be somebody like a Rubini or a chef or a monger or you guys understand what I'm saying? They go from, yeah, I don't think this thing is a thing to just full on attacking it's immoral. It's going to destroy society in the environment, et cetera. Those people are married to their beliefs, and you're not going to change them at least anytime in the near future. So that's like an ideologue, right? It doesn't matter what the facts are. They're going to believe what they're going to believe. And a lot of that, I think, is tied to their survival in some ways. Back to that saying you can't convince somebody of anything if it directly contradicts what they use to make a living or whatever. ",timestamp:"00:04:20-00:11:57",topics:["Stackchain"],type:"twitter_space",weight:13.423835754394531},{boost:0,date:1670706053,description:"Stacks is trying to reinvent the wheel - Bitcoin Maxi",episode_title:"Bear Market Buidl — Major #Bitcoin developments! #Stacks #Sidechains",guests:[{name:"@GriffdenNFT",profile_picture:"https://pbs.twimg.com/profile_images/1604377729062895617/R4pSEdH4_400x400.png",ref_id:"dafdf7ec-28c0-43d3-a0d9-b2d266f38738",twitter_handle:"GriffdenNFT"},{name:"@Chad_333",profile_picture:"https://pbs.twimg.com/profile_images/1592310541732970496/o1tbw9Eo_400x400.jpg",ref_id:"484c7695-6a4e-4141-9585-1109bf23f8cf",twitter_handle:"Chad_333"},{name:"@jackbinswitch",profile_picture:"https://pbs.twimg.com/profile_images/1601214177439260672/O0SpU5B1_400x400.jpg",ref_id:"9685e7f3-3e0c-4b84-9fd9-b8a1d96f6ae9",twitter_handle:"jackbinswitch"},{name:"@jimdotbtc",profile_picture:"https://pbs.twimg.com/profile_images/1593210347825119237/L_SNThWQ_400x400.png",ref_id:"5dcf5545-fad6-44ee-ae56-360c5efe1151",twitter_handle:"jimdotbtc"}],hosts:[{name:"@BigRpic",profile_picture:"https://pbs.twimg.com/profile_images/1604962150388219904/WqiCye-r_400x400.jpg",ref_id:"726f0c95-9d94-4d44-a056-8ad3c9e3ddd5",twitter_handle:"BigRpic"},{name:"@CarlsonDoc",profile_picture:"https://pbs.twimg.com/profile_images/1597382056308350977/1NPexynZ_400x400.png",ref_id:"e34fa2b2-a58e-4461-81a0-d10c1058dfc2",twitter_handle:"CarlsonDoc"},{name:"@STXLDN",profile_picture:"https://pbs.twimg.com/profile_images/1533793338931007488/o3laQDCp_400x400.jpg",ref_id:"5c3bc906-3aed-44f9-851a-94804c6fe5ca",twitter_handle:"STXLDN"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99046513-2614-4eae-9de4-5781ba4b330a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/fc3bebcb-8271-433e-8d81-84dd06f3b022/aec527bc-539d-4d3b-9bad-db4af9e1a1ba.mp3",node_type:"clip",pub_key:"03c7a7f42d94fdfc7a655515c1421cd1d20db090a1c24150201de0b1dc6a30b0ee",ref_id:"3cced3da-246a-4df7-884c-689661de7d66",show_title:"STX:LDN",text:"conversation in one Twitter spaces where somebody had actually said something about I think their analogy was like, oh, so Stacks is trying to reinvent the wheel and you don't need to reinvent the wheel. Everyone's heard that argument comes from the max before. I mean, I think people repeat what they hear and it's like, ultimately I'm a bitcoin Maxi. What really shocked me when I got to the Bitcoin conference was that it's like, oh, I'm like out. I like, really helped back in 2013, I think 2012, actually, dash and I went to our first bitcoin. I've got a photo on Facebook. We went to a Bitcoin London conference because we'd made our minds that we were going to get this ATM. It took quite a long time to kind of sort it out, but yeah, I think with 2012, we went to the Bitcoin conference and it was just such a small space and then to walk in. I'd never been to the Bitcoin conference in Miami before. I was really lucky enough to get invited by the Stack conference to go and talk. So while I was there, I thought, well, I'll buy a ticket for the Bitcoin conference. It was like $1,000 or something, and I was out of there within an hour. And I was quite depressed because I was like, I'm not part of that gang. And I felt like walking in there being like, hey, look, we've come. And actually it was like, oh, I'm kind of out. And I do think that there's there's just forces at work here, unfortunately, which are kind of corporate forces, which are setting the tone and just slowing things down. But, you know, I know we're all impatient, but ultimately time will tell. And I'm sure that the open source, decentralized nature of Stacks means it will be an unstoppable juggernaut, just as Bitcoin was. But there's literally people trying to slow it down, trying to play the advantage while we're small to keep us silent. And part of that is kind of brainwashing people. There are several things at work, and it's cool that you brought it up, Jim. The first thing is, we're the early adopters. We're the earliest adopters of early adopters on a macro time frame. If you look at how long, if you look at the scope of what's actually happening here, this is a move to it. Like, we talk about the industrial age, you talk about the Bronze Age, you talk about the no, we're at an epoch of time in human history with this information age or whatever you want to call it. And as we are right now, if you were looking at a chart, we're just barely making ripples in this macro time frame. What we do now is going to reverberate for several generations after us. And the thing is, when you were talking about one of the things that Stacks has to address is everybody knows what Bitcoin is. But then the second you hear anything else and you see the three letters, whether it's sol or STX or whatever it is, stacks just gets put in that category of, oh, that's just another coin to address that. You have to assume the audience has a basic understanding of crypto, has a basic understanding of why crypto matters, has all of these different things. So a lot of I think what we're fighting against right now are headwinds that won't exist in 20 years. Getting rid of the crypto element, that's the way it gets important, is once people don't even associate the word crypto with what they're doing. And one of the things that I'm working on, hopefully for next year is we've got a comedy festival in Brighton, and we're working with experts to see if we can come up with an entire ticketing solution in time. This is I think it's in February 2024. And so if we can come up with an X verse wallet that holds a ticket and a kind of process for the stewards, reading those tickets and letting people into the venue. We can onboard 20,000 people. That's a long weekend. It's a Thursday to a Sunday and we have three large venues. We get about 20 to 25,000 people through in those four days and they will all have an expert wallet. That's what we're trying. That's what I'm hoping for. Luckily, my wife is the producer of the festival, so she's witnessed a decade of me going through this stuff. So she's trusting me that I can kind of say, I think I can pull this off now. I've spoken about it for years, obviously since 2015. Like we were talking about, Alice is like, yeah, Straightaway is going right, this is going to replace all tickets. Do it now. Within two weeks, we'll just be all on the blockchain. But here we are several years later. But now it's actually a possibility with stacks and with experts. We had to have mobile. That was the frustration a year ago. We were like, yeah, this is ideal. We were even trying to do a fat boy slim gig where I was asking for guest list for it, which is a big live show he was doing. But I was like, Give me some guest list. I will stand at the gate with my laptop and figure out how to get people through. You don't worry about that. I'll make sure the right people get in because I was just like, let's just at least do something because we can do this. But now that they're on mobile, hopefully we've got a year or more than a year to kind of pull together a solution where suddenly we get 20,000 tickets into people's walls. And what some people don't sometimes appreciate is that the whole beauty of crypto with this pseudonymous network is that a payment network is a communication network. They're the same thing. And so the minute you've got tickets in someone's wallet, well, you can now communicate with them. You've got like a reach to them. You don't know they've not given you any information. You don't know who they are. But you've got a communication channel. So now they've got a ticket. You can now say, okay, well, now your ticket. Maybe we can maybe if we've got time to get there, it's like, now your ticket can be staked after the event. The ticket is an NFT and now you can stake your ticket and that's earning you money off your next year's tickets. And these are all non crypto people. And that, I think, is, I guess, our key because ultimately that's all I found within crypto is just walls. It's amazing to have these bridges. It's amazing that this stuff is going on, but it's still just a real battle. And actually what's going to really change things is when we can get those applications out there that are onboarding masses of non crypto people who just have a phone, and now they have an app on their phone and that app is connected to Stacks, and they don't even need to know about the connection to Stacks. They just have an app on their phone that holds their tickets and gets promotions out to them and they just show it to someone. When they turn up at a venue, it gives them a QR code in the when we get there, I think that's when we can really onboard the message. ",timestamp:"00:48:55-00:55:58",topics:["Bitcoin Maxi"],type:"twitter_space",weight:24.555915094150443},{boost:0,date:1672099200,description:"Controversies about energy sources in the world",episode_title:"Blockware Intelligence Podcast: 2022 Highlights",guests:[{name:"Michael",profile_picture:"https://pbs.twimg.com/profile_images/1558687629599657990/vf-bU14b_400x400.jpg",ref_id:"c7b4faa1-db77-4459-b03f-0e41e15efae7",twitter_handle:"MichaelHawaii"},{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Joe Consorti",profile_picture:"https://pbs.twimg.com/profile_images/1596902707511664640/GYGWVDts_400x400.jpg",ref_id:"8d2024b2-03bb-454d-9bd6-bb121904b76a",twitter_handle:"JoeConsorti"},{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"James Lavish",profile_picture:"https://pbs.twimg.com/profile_images/1466279082157502464/flD6cWI3_400x400.jpg",ref_id:"cf06ab2d-2ff3-4d7b-bef6-b996ae68517a",twitter_handle:"jameslavish"},{name:"Adam O",profile_picture:"https://pbs.twimg.com/profile_images/1395896857990160391/tJpgS2_p_400x400.jpg",ref_id:"95af0dd3-1e27-41b9-a36b-8a2c44438e85",twitter_handle:"denverbitcoin"},{name:"Jack Mallers",profile_picture:"https://pbs.twimg.com/profile_images/1599778945699909632/O0qc9ykA_400x400.jpg",ref_id:"d2e4aac5-e5e1-42fc-8f08-b3a77c076a64",twitter_handle:"jackmallers"},{name:"Lyn Alden",profile_picture:"https://pbs.twimg.com/profile_images/1521181379677073414/bm4LcJTr_400x400.jpg",ref_id:"903381dd-4b8a-4b59-8ecd-3281ae3ba297",twitter_handle:"LynAldenContact"},{name:"Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1508157904913899522/3l7ctauV_400x400.jpg",ref_id:"283edea0-55cf-4245-95df-8d6d3dcb1851",twitter_handle:"DylanLeClair_"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Stacy Herbert",profile_picture:"https://pbs.twimg.com/profile_images/1546484196750905346/5WYPz-bc_400x400.jpg",ref_id:"7477463b-1f3a-4b83-94c3-9d5a63b576c0",twitter_handle:"Stacyherbert"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"}],hosts:[{name:"Blockware Intelligence",profile_picture:"https://pbs.twimg.com/profile_images/953108582110781441/irB2GVXn_400x400.jpg",ref_id:"0ff00f04-2450-4699-b6a3-0467e29cddde",twitter_handle:"BlockwareTeam"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ea2cf2ae-76de-4185-818c-384b3b06228b.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=WxGMeufy8jw",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"144eff69-fd7a-48da-b92f-bb5b13e0b4f7",show_title:"Blockware Intelligence",text:"a mismatch between perceptions and reality about where some of the technology is in terms of different energy sources, right? So something, you know, like three quarters of global energy comes from hydrocarbons and then the rest, you know, hydro and nuclear are big chunks, and only something like 5% is wind and solar. But as wind and solar have kind of been pushed to be larger and larger parts of the grid, and there are certainly applications where they're useful, there's very hot and dry regions of the world. Rooftop solar can give you kind of more autonomy from the local grid if you have, say, rooftop solar and a battery backup, for example. But as they've kind of put policies ahead of technology and you kind of like obfuscate the cost, overstate the strengths and get that into the grid, it's kind of caused some issues. There's also a challenge where there's not a lot of investment in the grid itself, right? So, for example, California keeps having their electrical grid parts, electrical grid, face rolling. Brownouts you can imagine if you were to say ten x the number of electrical vehicles that are drawing power from that grid instead of through the gasoline distribution system we have. If that starts going over the grid, that's more stress on the grid. You need more copper, you need more redundancy, you need more cables bringing that around. And so I think the short term way out of this is frankly, there needs to be more supply of hydrocarbons, natural gas, oil and coal because that's what the world is currently short of, especially in certain locations. Longer term, I'd like to see a nuclear renaissance. Combination of smaller reactors and a better regulatory environment could really make nuclear come back. I mean, decades ago, it was actually pretty cheap and quick to build a nuclear plant, as there have been a handful of accidents, which even if you add up all those accidents, even if you take the worst case, scenario of not just immediate death, which is very few, but if you kind of take the high end estimates for environmental damage and what that could have caused kind of in the region, it's like it killed fewer people than coal kills, like every year, for example, through particulates in the air. But nuclear got that kind of increasing regulatory burden and that now makes it almost impossible in many places in the world to build a new nuclear facility. And of course, you want safe operations. So, for example, part of why Chernobyl was so bad is they didn't even have the shield. That now is standard practice among the nuclear facilities. Obviously, there's really bad ways to build a nuclear facility, but the modern ways and back then, even the responsible ways can build safe nuclear. And so I'd like to see that combination of they've developed small modular reactors that's been a bit like a push lately. And if there were kind of easing regulatory environment, I think that nuclear can at least solve a lot of the baseload grid power. And then longer term there's interesting things like ocean thermal energy that I think is under explored. There are other ways to get baseload power, but the general thing you need is that you need to have nature do as much of the storage and concentration as possible because the more that you have to replicate with machines, the less efficient and energy dense that's going to be. And so I think that's the big theme that a lot of people are missing in the energy space. ",timestamp:"00:49:04-00:52:35",topics:["energy sources"],type:"youtube",weight:37.306806397580786},{boost:0,date:1672099200,description:"Institutional adoption lowering Bitcoin's volatility",episode_title:"Blockware Intelligence Podcast: 2022 Highlights",guests:[{name:"Michael",profile_picture:"https://pbs.twimg.com/profile_images/1558687629599657990/vf-bU14b_400x400.jpg",ref_id:"c7b4faa1-db77-4459-b03f-0e41e15efae7",twitter_handle:"MichaelHawaii"},{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Joe Consorti",profile_picture:"https://pbs.twimg.com/profile_images/1596902707511664640/GYGWVDts_400x400.jpg",ref_id:"8d2024b2-03bb-454d-9bd6-bb121904b76a",twitter_handle:"JoeConsorti"},{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"James Lavish",profile_picture:"https://pbs.twimg.com/profile_images/1466279082157502464/flD6cWI3_400x400.jpg",ref_id:"cf06ab2d-2ff3-4d7b-bef6-b996ae68517a",twitter_handle:"jameslavish"},{name:"Adam O",profile_picture:"https://pbs.twimg.com/profile_images/1395896857990160391/tJpgS2_p_400x400.jpg",ref_id:"95af0dd3-1e27-41b9-a36b-8a2c44438e85",twitter_handle:"denverbitcoin"},{name:"Jack Mallers",profile_picture:"https://pbs.twimg.com/profile_images/1599778945699909632/O0qc9ykA_400x400.jpg",ref_id:"d2e4aac5-e5e1-42fc-8f08-b3a77c076a64",twitter_handle:"jackmallers"},{name:"Lyn Alden",profile_picture:"https://pbs.twimg.com/profile_images/1521181379677073414/bm4LcJTr_400x400.jpg",ref_id:"903381dd-4b8a-4b59-8ecd-3281ae3ba297",twitter_handle:"LynAldenContact"},{name:"Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1508157904913899522/3l7ctauV_400x400.jpg",ref_id:"283edea0-55cf-4245-95df-8d6d3dcb1851",twitter_handle:"DylanLeClair_"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Stacy Herbert",profile_picture:"https://pbs.twimg.com/profile_images/1546484196750905346/5WYPz-bc_400x400.jpg",ref_id:"7477463b-1f3a-4b83-94c3-9d5a63b576c0",twitter_handle:"Stacyherbert"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"}],hosts:[{name:"Blockware Intelligence",profile_picture:"https://pbs.twimg.com/profile_images/953108582110781441/irB2GVXn_400x400.jpg",ref_id:"0ff00f04-2450-4699-b6a3-0467e29cddde",twitter_handle:"BlockwareTeam"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ea2cf2ae-76de-4185-818c-384b3b06228b.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=WxGMeufy8jw",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"9f9305dd-fff2-4bb3-9e3f-698a55090999",show_title:"Blockware Intelligence",text:"Look, the people who are interested in this space, in the institutions, they're from the technology side. They look at this as technology. The technology analysts are the ones who are the ones who are analyzing it, the ones who understand cryptography and cryptocurrency implications and how it all fits into the space. But once that kind of bleeds over and really moves into the financial world and people start looking at this as digital money, I think that's where it starts to differentiate itself. But the big break will be when people understand that it's a store of value. Now, how do we get there? Right? So the question is, what is it going to take for bitcoin to be, in particular, to be seen as a store of value? And I think it's going to take the asset to have enough market value and liquidity that the volatility dampens and it's going to happen in steps, right? So it's going to take a few very large institutional investors to start buying Bitcoin, right, and not just buying it, but then also announcing that they bought it, right? So you've got what, you've got five firms, we talked about this before, we got five firms that control $30 trillion of investment assets in the world. So if you figure that there's about $700 trillion in total investment assets, $730,000,000,000,000 in investment assets, that's a lot. 30 trillion out of 700, $720. But five of those firms, you got BlackRock, Vanguard, Fidelity, State Street and Morgan Stanley. And if any of those firms start announcing that they've really taken this and considered a separate asset and we know that, we talked about Fidelity, we know that they're doing something. BlackRock, of course, is doing something. But when Vanguard comes out, when Morgan Stanley comes out and says, we are putting this in our portfolios, that's going to be a big deal. And once they do that and they start buying it, then you're going to get a lot of other investment managers that feel like they've got to do this. So it. Takes time, but we'll come back to that in a second. But once they start buying this and they decide they want to have a 1% position in this, well then bitcoin 1% position in all assets, right? So if you look at all portfolios across all asset classes, between bonds, investment bonds, corporate bonds, sovereign bonds, you've got stocks, you've got real estate, you've got art and collectibles, and you've got gold and silver and metals. But if you put all of that in a basket in one big portfolio and you say that 1% of that has to be the separate asset class, well then you're already at $350,000,000 bitcoin. $350,000 bitcoin. Sorry, don't want to get it right. Too excited. But $350,000 bitcoin. Okay. Now you're talking about a $7 trillion asset, right? You get that up to 2% and you're talking about over a $10 trillion, $14 trillion asset. Now you, now you really do have the ability to put money in this and not see that same volatility. It's just not going to move the same way as it does here as such a small asset. I mean, we're not even half a trillion dollars anymore. But once you have that, then I think that it takes off. And I don't know where that breaking point is, but it's somewhere before that store value recognition that it just becomes completely uncorrelated. So maybe somewhere between 100 and $200,000 bitcoin where it just, it rips up and it just complete completely decorates to the rest of the market. ",timestamp:"00:27:01-00:31:15",topics:["Institutional Bitcoin adoption","Bitcoin volatility","bitcoin"],type:"youtube",weight:37.30680637726857},{boost:0,date:null,description:"Discussion on how do you sell the value proposition of Bitcoin to small investors circa late 2022",episode_title:"TOXIC HAPPY HOUR! #Bitcoin is Easy Like Sunday Morning! 🍻😂",guests:[{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:" TC",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"dac0717a-a743-40d4-a89f-7523f071bbb0",twitter_handle:"publordhodl"},{name:" kann b",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"1170bde7-7f3c-4c4f-a158-5c48a98fe92b",twitter_handle:"publordhodl"},{name:" Dallas Rushing",profile_picture:"https://pbs.twimg.com/profile_images/1602759767029604352/hzuwh5ZB_400x400.jpg",ref_id:"13fed037-77ce-48eb-9544-25e7abff9395",twitter_handle:"dallasirushing"},{name:" Lisa Hough",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"5e154adf-d8bd-4adf-a23b-47a51c183163",twitter_handle:"lisa_hough_"},{name:" Collectooor of sats",profile_picture:"https://pbs.twimg.com/profile_images/1594362077132587009/cNAE2FU5_400x400.jpg",ref_id:"c84d0e47-7eeb-419b-a36e-5055b96044f0",twitter_handle:"hoardingsats"},{name:" Gold Leader",profile_picture:"https://pbs.twimg.com/profile_images/1594152783011250176/lHMHv3gB_400x400.jpg",ref_id:"96c4f802-25ff-4a81-b91f-cae5562bf4a3",twitter_handle:"GoldLeader89"}],hosts:[{name:"Publordhodl",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"5e189a7b-56c3-40ae-834e-4e2ccee3a9ad",twitter_handle:"Publordhodl"},{name:" Anders_",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"15bdd6b9-bdfd-492d-b7bf-c5a56ecadc50",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/4e00853b-49e3-4b46-bd13-bf7f2aa25905/56f0089c-a7f2-4b1b-8576-a3e4ddb9791f.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"28845fb4-d3b9-4615-af36-f3f3862d93f7",show_title:"PUBLORD",text:"I'm just going to ask a general question here. Again, thanks, guys, for having me up. First of all, so how do you sell to someone? Again, I'm really small investor, like maybe 20 grand that I'm putting in. But how do you sell to anyone at this point who's looking at the price today and going, you know what, I got in at 30. If you did, and it's now at 17, where where do you at all try to convince someone at that point to put any more money in based on on what you see? Again, you can look historically at where it's gone to and where it's gone up to, but I'm constantly trying to talk to people and trying to orange pill them, for lack of a better term. And I cannot at all find the vernacular to try to convince someone because it seems so nefarious in terms of what's happening. Again, this is really common. You guys have or I'll buy at 16 and throw another ten grand in or 20 grand or whatever it is, but when it drops another 50% down to 10,000, how do you hold all the words you hear about, you know, diamond hands and can you hear me? It's so difficult. And again, I'm just a 58 or 52 year old guy who's trying to, you know, take some of his savings and, you know, make some money out of it, but it's anyone to hear me. Yeah, you're good. TC, can you hear TC or no, sorry. Did you hear TC was trying not a great answer for you, but I. Don'T think you can hear me. I put money in in 2020 when COVID hit into an ETF following an index, and I've made more money in that ETF index than I did in any of my Bitcoin. I'll have an answer for you here in a second. I got my own views on this, but TC yeah, you had your hand up. I don't know if you can even hear me, though. Wait, let me check. Conn, can you hear TC right now speaking? No, I can't. I'm going to go out and come back. Okay. If you drop and come back, I. Got a good answer for you. Yeah, jump out and come back. I can go for an hour on this one, but you go first. I know, man. It's a great question. It's an absolute great question. It's the question. And what it is, is it's the portal through this threshold where you leave behind the purely speculative, fiat minded way of analyzing everything, and you start your journey understanding Bitcoin. You heard him say it about the investment part. I was making more money. He's new. We'll talk. Man, I hope he comes back here soon, but Jesus, that is the question. Yeah, you're right. I guess I'll just start off by saying this is the problem with focusing on the price, because the price is actually distracting you and it's giving you bad information. Much like everything in markets today, in the legacy fiat system, the signals are all distorted. They're all warped. And during the bull market, we see everything warped in the overvalued direction. And in the bear market, you see things destroyed. And through a lens of just looking at percentage gains or losses, all you're determining is which direction the market moved. And that doesn't tell you anything when it comes to Bitcoin. As far as what Bitcoin is, the momentum that Bitcoin has in the world, it's one of the things that greases the wheels for all the legacy financial, media and governments to continue to fudge bitcoin because they've got such an easy sell to people when they say, hey, look, this thing's down 70%. How could it possibly be good? How could it possibly be healthy? Elizabeth Warren says, oh, how are you going to let people put themselves at risk owning this kind of horrible asset? It's such a narrow, small minded way to look at the whole thing. When you actually start understanding bitcoin, and you realize that right now, at the depths of the bear market, bitcoin is absolutely alive and kicking, and it has got amazing momentum, and there is so many people building and investing and adopting and adapting to bitcoin. There's major, major industries today. We stopped even, like, making a big deal out of it. You remember back in 2020 where every little insurance company or bank that even sniffed at bitcoin, it was like a huge story. Oh, my god, so and so is looking at it's happening so frequently now. We don't even pay attention to it anymore. The world is plowing towards a bitcoin reality here. And what's beautiful about it is that anybody who really wants to use Bitcoin as a way to preserve their wealth and improve their future, you have such an opportunity, especially during the bear market, to arbitrage the lack of knowledge that people have on average and to see through the fed and realize how healthy and alive and strong and growing stronger bitcoin is. And at that point, you realize how absolutely inaccurate the price is as a signal. And if anything, you're just able to arbitrage that knowledge gap. You realize that you're looking at something that's basically better than it was a year ago when it was 70% higher and it's on sale and you go from there. This is so on point. Look, Ben, this is the journey that everyone takes. Everyone takes a journey for the most part. You come in for number, go up technology, dude, I was there. And in fact, I got to look at the exact date of my first I'm almost at the five year anniversary because it was in mid December, mid December 2017. And yeah, you guys can thank me. I think I got into the market like three weeks before you. Dude, me and you are the exact same era. Bitcoin was at 17 five with my first purchase, not that I was going to buy a whole god amp coin, and it spiked up to almost 20. And you're right, I spent 2018, man. I was catching those knives all the way down. And the more I learned about bitcoin and what it represented, the more I understood it. But I'll tell you what, man. Yeah, go ahead. Sorry, just one more thing I wanted to add is the other thing that really dissuades people or points them in the wrong direction is they think about how many dollars they're putting into bitcoin, and what they need to really realize is how much capital and how much monetary energy they are removing from the fiat legacy system. That is one of the key perspectives that if you don't have that perspective, you don't realize what you're actually doing. You're not investing in bitcoin. You're not speculating on bitcoin's price. You're literally removing your capital and your monetary energy that you've accrued from a system that is so riddled with risk and uncertainty, and you're moving it into a brand new system. It's not controlled by any of these governments or central banks and allows you as a sovereign individual to hold your own wealth and remove it from that giant house of cards. That's I think equally as important a concept to understand. Yeah. And this goes into and con saying, well, what do you tell a friend? Or how do you explain to somebody what this means? And believe it or not, man, it's different things to different people and different cultures, okay? And what I mean is this. If you're in Venezuela or you're in Turkey watching your currency go through hyperinflation, guess where you want some of your life value, all the work that you did, you probably want a little bit in bitcoin. Let's say you're in some war torn country, you're trying to cross borders. Guess what, man? You're going to get jacked up for cash. You're going to be standing at an ATM hoping to get, like, €400 out before you leave, okay? The value in bitcoin is immense. And in the US. Oh, my god. What about in the US. What could you guys possibly see in bitcoin? And I've talked to many people like this. You want to talk about orange filling? There's one guy talking to I just don't get it. What is the use case? I said, well, listen, you're pretty well off this guy's, like, in his 60s, everything. And I just mentioned to him, can you name one thing? Just name one thing that you own that can't be confiscated by the government or bank. Name one thing you own and you can see the wheels turning. He's thinking of the two homes. He's looking at the credit cards that will be shut down, and I'll get back to that in a second. He's looking at the cars, okay? He's got a boat. And he goes, I got nothing. I said, well, that's why bitcoin is something you should at least be interested in. I'm not telling him, sell everything you own and buy bitcoin. I'm saying you just may want to have some exposure to this. And you want to talk about the volatility or the price. We talk about this quite a bit, man. In Canada, some truckers got ten grand in a bank account, and he's got a $10,000 line of credit that was shut down overnight. I'd rather have an asset class that can take can take a hit. Okay? Maybe it goes down 70%, but it's what the best bitcoiners around are. The ones that start at the top and when those prices are dropping, man, I was giddy as a schoolgirl when it went from 20 and we're down under six and then five and then four. I'm realizing, my God, this is what an amazing opportunity just to have this exposure. But TCI, I like what you said, man. It's more about you're not moving fiat. You're gaining. You're transferring the value of your work. You're taking chips off the table. You're removing your chips from the casino. Look, you're talking about insolvency. Jump out there and came back in and heard everything everyone said. Yeah, you were talking about insolvency. Hold on 1 second. Con again, when I hear someone like you guys talk, I'm always assuming that your dollar cost overall price right now is much lower than, let's say, $17,000, right? Pub, you just said that you bought in law. So if you told me right now, if you wanted to, you know what my average cost has been? Like 3000. So you're already that's nothing to do with it, dude. That's nothing to do with it. I don't think you can hear me. For some reason. You can't here. I'm going to leave and come back. Yeah, go ahead, TC. Leave. I'll bring you finish and then I'll just jump. Stay up here, man. Stay up here because we may have some questions for you. Go ahead. I want to be able to be here because, again, what I keep on trying to wrap my head around is, okay, so again, I'm I'm in. I'm down 50, 60%, to be honest, and I'm trying to decide, okay, so that was money that I didn't, you know, I don't need right now, but I have other money that I want to now possibly invest. And as you said, catching the knives on the way down. I got you. If you can hear me, I got you. Dude, can you hear me? I'm not going to get some Black Swan event or some can you hear. TC when he jumps in? Can you hear him? No, I can't. It just says host there. I'm not seeing anything. So again, I'm going to just back out again and come back in and listen, you guys, you're helping. So just let you know that. Let me go. I got a whole another one that's pretty simple to understand, which is basically, man, there are people who are millionaires in Lebanon who, after a bank bail in, it doesn't matter how much you have in the bank, you can't access it. They'll give you $100 and say, come back next week if you want more. We're watching Canada, trying to figure out how they're going to just strengthen their authoritarian ability to wield the banking system to punish people who don't politically align with them. We're seeing in China the use of the banking system to control people's movement. We're seeing the same things happening in Iran where there's a huge protest underway and the government is using the banking system to punish people who are protesting. We have rules coming into place in Europe where you're no longer going to be able to do any cash transaction above, I think, €10,000. There are similar things in the United States where every single transaction above $600, you have to account for and disclose and fill out paperwork. If you don't see what's happening here, you're blind. You're in denial. We're marching towards a world of infinitely more capital controls than what we currently have. And in this context, the price of bitcoin is irrelevant, other than how many stats can you get for every dollar that you're moving out of that other system, period? It has nothing to do with the price, because real bitcoiners are not interested in what the price is going to be tomorrow or next month or next year. I mean, I'm not even tripping what's the price going to be in 2030? I'm looking at a little kid that I intend on handing down most, if not all of it to decades from now. This is about preservation of your ability to have choices, because what happens when crisis hits, whether it's in your own life, your own little personal sphere, or if it's strife in your nation or in the world at large, what matters is what choices you have, and that's what your money and your capital represent. It's your ability to actually do something in a situation that you don't want to be in. Can you acquire food for your family? Can you put a roof over your family's head? Can you acquire transportation to remove your family from a bad situation? I'll tell you, with all these capital controls coming in, the ordinary person on the street is quickly losing. Optionality in the future. The future is becoming more and more certain that you're going to have less choices than you have today. That's what this is about. The price is irrelevant except for how many facts you can get for each dollar you're moving out of that fiat system. That's the point here. DC. Listen, what's nice is we got a good plan, because when they try to make you eat the bugs, I know of a few guys that are still selling stakes for bitcoin. Air Texas Swim. I wish he was around. There's going to be a circular side economy, a black market economy for bitcoin, for sure. This is great, man. Hey, you got, like, anyone whose handle is Fording SAS collector or what's ",timestamp:"01:12:05-01:28:25",topics:["Bitcoin value proposition","New Bitcoin investors","Bitcoin price volatility"],type:"twitter_space",weight:13.165740966796875},{boost:0,date:null,description:"The Nigerian butcher enterprise ",episode_title:"The Orange Sun 🌞 Let's talk #Bitcoin & Cattle Ranching/Sustainability",guests:[{name:"Texas Slim",profile_picture:"https://pbs.twimg.com/profile_images/1589784780970795011/02jf0fqp_400x400.jpg",ref_id:"b4448c8e-9238-4aba-bd25-efb329ea5a72",twitter_handle:"modernTman"},{name:"Lucas",profile_picture:"https://pbs.twimg.com/profile_images/1596345084966014976/maviSGq3_400x400.jpg",ref_id:"e3adb591-b29f-435b-bd34-210f2dbcedaa",twitter_handle:"impossiblyso"},{name:"Firebust",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"0fb6c7f3-a673-4fe5-9599-8165800a2ff0",twitter_handle:"FireBursts"},{name:"Hamza Yusuf",profile_picture:"https://pbs.twimg.com/profile_images/1318064165030940672/sakbSOvT_400x400.jpg",ref_id:"03a74669-b653-4c57-8799-a312cb041089",twitter_handle:"Hamzayu28849293"},{name:"Adenekan's Father",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"b8259997-2ef0-4e6e-8d58-a69b5eda550a",twitter_handle:"AdenekanFatai4"},{name:"Adenekan",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"ca6a563e-0e84-4811-be82-a3b3cd12d399",twitter_handle:"AdenekanFatai4"},{name:"Heritage",profile_picture:"https://pbs.twimg.com/profile_images/1510397558652350469/jYOl00tU_400x400.jpg",ref_id:"98a6d9df-3c39-49ec-8a39-074e61af4ece",twitter_handle:"herrytheeagle"},{name:"Enoch",profile_picture:"https://pbs.twimg.com/profile_images/1596235105663533056/5mRUbLm3_400x400.jpg",ref_id:"4f8af040-3d0c-49c1-806e-aef89d8693fb",twitter_handle:"KazEnoch"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/a91f79fd-d85f-4440-b012-4bdafdc83341/f1d1c5b5-b8c9-44ed-a217-f75b398376d5.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"da54483f-f9f4-4c4b-9320-6ba317e64b44",show_title:"Satoshi’s Journal",text:"Thank you, Jeremy. I'm so glad to do this. Thank you, Texasleam. That was a fantastic one, OG. Or should I say big omi. I already have multiple questions from what you said because Katie Ranchon is a big business in Nigeria. That's the number one business of the number one man leading the federal republic of Nigeria, the president of the federal Republic of Nigeria. And the person of General Mohammedu Buhari loves caterbranching. We could call him a herdman. He loves cataracting so much that there is a big discussion about re energizing the grazing routes in Nigeria. Whether that's good or bad, it's a tough conversation. This is a conversation that causes opera in Nigeria. Good and bad people die. Machetes are used, guns are used. It's a billion dollar empire in Nigeria. But the stats are not really open because of so many underlying tone. So I don't think this conversation will end here. Looking forward to something bigger, most likely, maybe at a conference, inviting our top executive of the government and so on and so forth. It's something we've been trying to solve. I'm so glad I missed identity here. So let me use the opportunity to say a big welcome to a highly respected man, of course, the father of our regular listener here, Adenica, is the leader of the Nigeria butcher association and the leader of the Paraguay Butcher enterprise. If you understand the butcher's business in Nigeria, you would know that it's not a small game at all. You must have butchers most likely around every market. And if you're not eating beef in Nigeria, you're most likely eating fish. And I think beef is the biggest protein in Nigeria that people really go for, whether it is ram, whether it is cow or cali or whatever it is you want to call it. It's a big business. I eat beef all the time. And I also have beef with the altcoin. Mr. Adelekon, once again, is the Nigeria Butcher's Association leader. One of the leaders and the leader of paracoli butcher's enterprise is also the array, bobani atundda Liquid of Bagura land. Please join us to welcome this respectable Nigerian, Mr. Adeniko. Thank you, Mr. Denikon. You're welcome to the microphone, sir. Eric, bobanizi going to come? Is your daddy going to come as a speaker or you're going to do most of this speaking for him? Yeah, he's going to join as a speaker also because I would like us to just hear from his experience and we should learn a lot. Okay. Please send Mr. Adenikan. Oh, I'm sorry. Okay, I'm biting him now. I'm so sorry. I forgot to bite him up for some reason. I thought it was going to be with Adenikin, but Adenikin, I just invited him Upani. It's a big title. From my understanding. Maybe I'm going to ask him what's that title means. For my understanding, Bob Banigi means elevate the king. Or should I say give the king some worthy respect. Give the king some worthy respect. So when they say you are the Arab, Bobani, you are like the king elevator the king. Should I say positive image? Because anybody that means respect, value, something like that. I read Bobani. That's a fantastic title. I sent your dad an invite, Dennekin, but if it's not working, your dad may have to just request to speak because I don't think the invite to Texas slim worked. So, Mr. Dennekin, if you could kindly click the there you go. No, that's not you. Hansa yusuf bhagudo. That's not him trying to invite him up. Maybe it'll work with you. I've already tried to invite him up several times. So just give us a few seconds, and we'll get Mr. Denikin up here. And in the interim, what I was saying earlier, though, is the similarities between bitcoin and farming and ranchers are uncanny. Farmers and ranchers are such that they are super sovereign. They know the land, they know how to work it. They know how to get it to the point where, on a selfsustainable manner, it could actually regeneratively, produce what it needs to produce, and they use their intellect to get the land to do what it naturally does, and then they use the animals to do what they naturally do. And when you get those two things in synchronization, the land and the animals, you have a beautiful thing. Unfortunately, due to the commercialization of food and the industry around food, that whole cycle has been screwed up. Okay, so there he is. Let me let him know. Jeremy, real quick, before I just accepted Mr. Identical, the Arab bobani of boogeland. But quickly. I also accepted Amaza Yusuf. But I want to ask AMA Yuzu a question before I push him back to a listener mode and maybe bring him back later. Please, quickly, tell me your name, what you do, and why you requested to speak, because your name sounds like you're from the north, and you may be a butcher or you may be into categorization. Real quick. I invited also he's a fellow member, and we are doing something with Texas. So he's a full animal and has been a friend since secondary school days. So you can just let him speak and just introduce himself. Oh, okay. All right. We're going to do that much later. So, first of all, we have in the building we don't need about anymore. Good morning, sir. Can you speak to us so we hear from you? Mr. Dennett, you may have to click on the bottom left hand corner. On your screen, there's a mic button. You have to unmike that. It's a little purple button, because right now you're on mute if you're trying to talk. Yeah. Can you hear me now? Yes, sir. Welcome to the I was happy to be on this platform because there is a lot of challenges in doing category in Nigeria. There's more challenges. I think you have more to make a mistake. I think we have to orientate us about the challenges. It's not easy. I do have a past five years now. I've been in the business so long. So what is coming up that I'm here, and I think it's a kind of opportunity for us to move up. I appreciate it. Thank you very much. Mr. So what Mr. Adele just said clearly is you guys should orientate everybody here. Basically us and the orientation team on, I think maybe how bitcoin can be of value to them. However, there's a lot of challenges that the butcher and khaki ranching industry is going through. But he's very appreciative of the invite and he's been on this Johnny for 35 years and he's glad to be here. Thank you very much. ",timestamp:"00:22:56-00:32:14",topics:["Butchers sovereignty"],type:"twitter_space",weight:13.040050506591797},{boost:0,date:1672099200,description:" Natalie Brunell's thoughs around SBF's unethical fraud",episode_title:"Blockware Intelligence Podcast: 2022 Highlights",guests:[{name:"Michael",profile_picture:"https://pbs.twimg.com/profile_images/1558687629599657990/vf-bU14b_400x400.jpg",ref_id:"c7b4faa1-db77-4459-b03f-0e41e15efae7",twitter_handle:"MichaelHawaii"},{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Joe Consorti",profile_picture:"https://pbs.twimg.com/profile_images/1596902707511664640/GYGWVDts_400x400.jpg",ref_id:"8d2024b2-03bb-454d-9bd6-bb121904b76a",twitter_handle:"JoeConsorti"},{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"James Lavish",profile_picture:"https://pbs.twimg.com/profile_images/1466279082157502464/flD6cWI3_400x400.jpg",ref_id:"cf06ab2d-2ff3-4d7b-bef6-b996ae68517a",twitter_handle:"jameslavish"},{name:"Adam O",profile_picture:"https://pbs.twimg.com/profile_images/1395896857990160391/tJpgS2_p_400x400.jpg",ref_id:"95af0dd3-1e27-41b9-a36b-8a2c44438e85",twitter_handle:"denverbitcoin"},{name:"Jack Mallers",profile_picture:"https://pbs.twimg.com/profile_images/1599778945699909632/O0qc9ykA_400x400.jpg",ref_id:"d2e4aac5-e5e1-42fc-8f08-b3a77c076a64",twitter_handle:"jackmallers"},{name:"Lyn Alden",profile_picture:"https://pbs.twimg.com/profile_images/1521181379677073414/bm4LcJTr_400x400.jpg",ref_id:"903381dd-4b8a-4b59-8ecd-3281ae3ba297",twitter_handle:"LynAldenContact"},{name:"Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1508157904913899522/3l7ctauV_400x400.jpg",ref_id:"283edea0-55cf-4245-95df-8d6d3dcb1851",twitter_handle:"DylanLeClair_"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Stacy Herbert",profile_picture:"https://pbs.twimg.com/profile_images/1546484196750905346/5WYPz-bc_400x400.jpg",ref_id:"7477463b-1f3a-4b83-94c3-9d5a63b576c0",twitter_handle:"Stacyherbert"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"}],hosts:[{name:"Blockware Intelligence",profile_picture:"https://pbs.twimg.com/profile_images/953108582110781441/irB2GVXn_400x400.jpg",ref_id:"0ff00f04-2450-4699-b6a3-0467e29cddde",twitter_handle:"BlockwareTeam"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ea2cf2ae-76de-4185-818c-384b3b06228b.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=WxGMeufy8jw",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"d98bc278-4c35-4325-992c-78437ccf3569",show_title:"Blockware Intelligence",text:"I'm curious, what are your thoughts on the whole SBF debacle? Is he just going to be in the Bahamas forever, or do you think he might get arrested at some point? And also, why do you think the media isn't necessarily painting him as this obvious villain? Yeah, I'm really disappointed by everything that's happened with SPF. And it's sad that bitcoin looks bad in this whole thing, especially for people who don't understand the space. But it's neutral. It did nothing wrong. It was just cross collateralized. And people like SBF create these paper versions of Bitcoin, and that's so unethical. So my reaction is, I hope that the DOJ I hope that the SEC, I hope that law enforcement agencies go after him and bring him in and formally charge him. Because in my opinion, what he did was fraudulent. It was a Ponzi scheme. It was to enrich himself. I mean, the fact that he was basically loaning money, using an air token as collateral loaning money to himself, that people affiliated with him, including his parents, may have purchased expensive properties, this is wrong. This is not what this revolution of Bitcoin and removing the power of money from the state. This is not what this is about. It's not about enriching a small group of individuals who think that they have the right decisions on how the future should be created. It's wrong. And he duped so many smart people, which is amazing to me, these massive institutions, from the VCs to these celebrities who had a ton of money. You would think that they would all do their due diligence to make sure that they're not just, like, putting their money into a group of Silicon Valley former Ivy League nerds who are going to basically wash trade it. With themselves to pump up the value and take out loans and to become their own bank and take out credit lines and then trade it and pay off politicians and then lose all the money. I mean, this is ridiculous. And they did it all offshore for a reason because everything that they did is inherently illegal. And so I hope that it's a huge lesson. I hope that in the end, I think it actually strengthens Bitcoin and what bitcoin is all about and bitcoin's value proposition. But in the meantime, I just hope that these policy makers actually hold them accountable and take the time to learn about why this happened and how the fact that he's sort of, as of right now, getting a little bit of a pass, like Representative Maxine Waters, I think, tweeted at him something that was equivalent to, oh, please talk to us, Sam. Thank you for explaining the things that have been going wrong. It's like, no, hold this guy accountable. This is the Bernie Madoff of crypto right now and everybody's just sort of approaching him on eggshells and I don't understand that. So I think that charges will come down. I saw that Caroline Ellison was spotted in New York. I'm sure she's working with an attorney who wants to get her some sort of a plea deal. The only way that that will happen is if she divulges a ton of information. So I think it's going to be a couple of people pitted against each other. Caroline versus SBF, and we're going to learn more in the coming days. And I don't buy any of the crap he's been selling to the media. He knew what he was doing. He just thought he would get away with it, to be able to complete his mission and plan of whatever he wants to do with all that money. But it was wrong. He was using customer funds and he should be in jail, I think. Yeah. I mean, it's pretty insane how it got so big and how so many big names, whether it's like Tom Brady or Sequoia, were just full fledged behind FTX and SPF. It's pretty wild. The ",timestamp:"00:56:24-01:00:18",topics:["Natalie Brunell","SBF"],type:"youtube",weight:36.019356007815745},{boost:0,date:1672207217,description:"Receiving geyser donations directly to your wallet and tipping creators with Mash",episode_title:'The Orange 🌞 Reading/Discussion "The Book of Satoshi" & Bitcoin News',guests:[{name:"CouncilmannJamm",profile_picture:"https://pbs.twimg.com/profile_images/1251040014152024066/dD3b2eA4_400x400.jpg",ref_id:"6c989c2c-d24d-49a2-8eb1-1d2f1c47f347",twitter_handle:"jamm_councilman"},{name:"thotsnplayerz",profile_picture:"https://pbs.twimg.com/profile_images/1608733749663109120/wwYEZgF2_400x400.jpg",ref_id:"66bbe365-9e85-4c34-9d51-39d8b49937b7",twitter_handle:"thotsnplayerz"},{name:"Will Schoellkopf",profile_picture:"https://pbs.twimg.com/profile_images/1487515153302130691/t5sDMzZW_400x400.jpg",ref_id:"461e2245-1672-4fa1-94f5-7aaf1afa531f",twitter_handle:"realBitcoinDog"},{name:"OKIN_17",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"dbcdeab8-4824-43f7-aeb8-2b9eda6cbbad",twitter_handle:"OKIN_17"}],hosts:[{name:"SatoshisJournal",profile_picture:"https://pbs.twimg.com/profile_images/1518661993103859712/y_QefqVZ_400x400.jpg",ref_id:"63fac069-bfe9-49ae-b52c-1d1f226b3275",twitter_handle:"SatoshisJournal"},{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"50023cce-8a6f-4974-ad3b-fd7a9c0abf19",twitter_handle:"ToxiKat27"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/ecefba20-39fd-4974-8388-066857965b2a/cf486c39-08f9-4ada-9b72-7a297ad74d74.mp3",node_type:"clip",pub_key:"",ref_id:"b8080ee6-90b2-4f75-8c69-79510c82aa08",show_title:"Satoshi’s Journal",text:"The next little piece in here is to talk about make your Geyser donations flow to your own wallet. So a bit more than a week ago, geyser, for those that don't know who Geyser is or what it is, geyser is a company or website that allows you to earn Satoshi's for whatever you're trying to earn them for. So if you are trying to earn Satoshi's for a book, to write a book, you can put your project on there. There's a vetting system you have to go through. We're probably going to put the Bitcoin village on there. We haven't done it yet, but if anyone wants to donate to the Bitcoin village, that's yet another place they can go to if and when we get onto the Geyser fund. But you can find a bunch of other different donations for different things that are happening in bitcoin. So anyways, this article says a bit more than a week ago, guys are rolled out. A very neat feature that I missed. So here it is. You can now, as a project creator, receive donations directly to your own wallet through a lightning address. This allows you to receive the funds straight to the wallet of your choice, ideally on custodial, without them ever sitting on geyser's node. So that is pretty cool and I didn't know about that until I read this article. The next thing is mash. For those that don't know what Mash is, mash is a company that allows you to integrate their software into your website and allow such things as tips to happen. We just integrated it into our website. So if you go to our website and I have yet to unveil it because I'm trying to come up with a way to best unveil it, but essentially, if you go to our website now, there's a little button on the bottom right? You click it, it'll allow you to create a Mash account. And then once you create a Mash account, you can tip our website and the tips that are on our website are going to go to our content creators. So if people find value with the content of our content creators, they can click the button, they can send a tip of whatever value they want. All those tips accumulate on a wallet that we have associated with our Getmash account and then we will disperse those to our content creators how we deem fit. It's pretty cool feature. So Mash, basically it says here Mash got a small lifting to better suit creators and what they want to do with their content. Mash is a service that allows content creators to monetize what they create in a user friendly way. It just got easier to use with more customization available Ie themes. Mash button placement, push button placement, cherry on top what previously required copy pasting multiple snippets to make the Mash magic work on a custom website now requires only one code snippet. Cool. So that's pretty cool. I didn't set up the Mash on our website, but whoever did probably would relate with this feature. And there's a few more things. Looks like Albie got an extension for developers. Looks like there's some Sat streaming in the Pod verse and a bunch of other things. This is a long article, so I'm not going to read it all, but I highly recommend you check it out on ",timestamp:"00:14:17-00:18:05",topics:["Geyser Fund","crowdfunding","Mash"],type:"twitter_space",weight:37.03219712996155},{boost:0,date:1672207217,description:"Making payments on the Lightning Network",episode_title:'The Orange 🌞 Reading/Discussion "The Book of Satoshi" & Bitcoin News',guests:[{name:"CouncilmannJamm",profile_picture:"https://pbs.twimg.com/profile_images/1251040014152024066/dD3b2eA4_400x400.jpg",ref_id:"6c989c2c-d24d-49a2-8eb1-1d2f1c47f347",twitter_handle:"jamm_councilman"},{name:"thotsnplayerz",profile_picture:"https://pbs.twimg.com/profile_images/1608733749663109120/wwYEZgF2_400x400.jpg",ref_id:"66bbe365-9e85-4c34-9d51-39d8b49937b7",twitter_handle:"thotsnplayerz"},{name:"Will Schoellkopf",profile_picture:"https://pbs.twimg.com/profile_images/1487515153302130691/t5sDMzZW_400x400.jpg",ref_id:"461e2245-1672-4fa1-94f5-7aaf1afa531f",twitter_handle:"realBitcoinDog"},{name:"OKIN_17",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"dbcdeab8-4824-43f7-aeb8-2b9eda6cbbad",twitter_handle:"OKIN_17"}],hosts:[{name:"SatoshisJournal",profile_picture:"https://pbs.twimg.com/profile_images/1518661993103859712/y_QefqVZ_400x400.jpg",ref_id:"63fac069-bfe9-49ae-b52c-1d1f226b3275",twitter_handle:"SatoshisJournal"},{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"50023cce-8a6f-4974-ad3b-fd7a9c0abf19",twitter_handle:"ToxiKat27"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/ecefba20-39fd-4974-8388-066857965b2a/cf486c39-08f9-4ada-9b72-7a297ad74d74.mp3",node_type:"clip",pub_key:"",ref_id:"9f2d3be4-e7df-4b86-981c-466bde0d92ad",show_title:"Satoshi’s Journal",text:"Today I found a really good article. It's basically, I've never heard of this, but it's called the Twitter handle is at all end markets. So, like at Lightning network markets, but it's spelled with an all and an end and then markets. And I guess they post a newsletter. And what's cool is that they basically track what's happening in Lightning. So I'm going to really quickly go over some of the things that are happening in Lightning that I didn't know what was happening. So this one covers the week of the 19th to the 25th, and if you want to follow along, you click the article. Second one to the left on the nest. So it looks like some guy, his. Name is Renee Aaron. He's been working on connecting vending machines to Lightning. So that's pretty cool to do. So he designed a small, easily pluggable module that comes with its own screen and can be used by the vending machine to generate a Lightning invoice and display it as a QR code. The product is currently being tested by a bunch of merchants in Europe, but given its plug and playiness and the benefits of using Lightning in this type of machines. I'd say I'm quite bullish on this. That is pretty awesome. I mean, anything that you can plug into, anything that you need to pay, especially Lightning, that just helps with even more people getting used to using everyday things with bitcoin. So in this case, you can go to an arcade room, arcade game place, and there's a Lightning network module that allows you to scan a QR code and pay instead of having to put quarters and then play your game. So someday that will probably be just commonplace. Probably every machine that can have the ability to be have payments will have Lightning network. And for those that are new, lightning network is a second layered on top of bitcoin that allows instant and basically free transactions. And there's a common misconception amongst normies that think that bitcoin is slow, but when they're talking about that, they're talking about the first layer. And because of the first layer, transactions are completed about every ten minutes. That's why people think it's slow. But even relatively speaking, that's faster than a lot of other things in this world that we use for payments. And one thing is credit cards. Although credit cards can be swiped and allow payment to be done instantly, when you go to the store, that payment is still not instant because it hasn't been quote, unquote, validate or verified 30 days. 30 days later. 30 days later you get a credit card statement and then that's quote unquote finality versus in ten minutes on the bitcoin layer, one network, you have finality in ten minutes. Now, when you go on to the second layer with Lightning, you have basically finality in seconds and for free. Another problem, of course, with Visa, Mastercard and other credit cards is the exorbitant fees you have to pay. So it's an amazing thing what's being done, and the rest of the rule hasn't come to their awakening on it. ",timestamp:"00:10:27-00:14:17",topics:["Lightning Network"],type:"twitter_space",weight:37.03219711188569},{boost:0,date:null,description:"Related news and updates on Start9 operating system",episode_title:"Café ₿: Sovereign Computing w/ Matt & Aiden, Start9",guests:[{name:"Andrew",profile_picture:"https://pbs.twimg.com/profile_images/1465763053014859786/xYFN2czJ_400x400.jpg",ref_id:"ae4b13f8-0ee7-480a-b47a-82b967ad7a79",twitter_handle:"AP_ArchPublic"},{name:"Matt Hill",profile_picture:"https://pbs.twimg.com/profile_images/1347317316057321474/ieMjzK3x_400x400.jpg",ref_id:"3576ad28-a04d-4388-865b-3ec5114c4f9f",twitter_handle:"_MattHill_"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Aiden McClelland",profile_picture:"https://pbs.twimg.com/profile_images/1470160097225498624/0BjKB_2W_400x400.jpg",ref_id:"04ddd9d4-9329-4e6c-aaa3-d65ea4a9342a",twitter_handle:"_dr_bonez"},{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Lisa",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"e6f0c6e3-3237-4b13-878f-bb740cd32f8d",twitter_handle:"lisa_hough_"},{name:"Isabelle",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"c8df253f-47b3-465e-878e-8405c01c090d",twitter_handle:"isabelfoxenduke"},{name:"Tone",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"5729ac07-51d6-4268-b585-62680c846acb",twitter_handle:"ToneVays"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Derek",profile_picture:"https://pbs.twimg.com/profile_images/1598322677827207169/Cw0A3oOP_400x400.jpg",ref_id:"f441b996-7eeb-4210-b24c-fa011161709d",twitter_handle:"derekmross"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ec4a941-250c-4e1d-8d2a-6c506c3ba4b2/4bd8010d-b2fd-41b4-8041-8a953ef06492.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"0fe0af9b-421e-43ab-800d-7354379ea21f",show_title:"Swan.com",text:"Yeah, I should mention the embassy pro. As I said earlier, our business model is selling computers. We just launched a new one. It begins shipping next week. We've been preselling it for months. It required version 00:33 in order to run, which is why it hasn't shipped yet. So 33 is now done, so it will be shipping next week. These are very powerful mini PCs, 32 gigs of Ram. It's got a very powerful processor and two terabyte NVMe drive. So your disk storage is going to be very fast. And when it comes to running Bitcoin and Lightning and Electrs and then anything else under the sun, you might want to self host. It really is nice to have this sort of like device that's not a Raspberry Pi, right? Raspberry Pi is cool, but ultimately if you want to do this right and you want to have a good time doing it and not run into resource ceilings constantly, then you're going to need a more powerful device. So if you don't already have a mini PC or laptop or desktop that is adequately powered from a CPU Ram and storage standpoint and you want to run a server and you want to do it right, you're going to have to buy something. We actually have an incredible deal. Right. So the device that we are selling, if you were to go online and price out an Intel Nook, say, which is like the goto kind of mini PC solution, if you were to go build an Intel Nook to the exact specification that we sell the Embassy Pro, it would be a few hundred dollars more expensive. So we are not like this luxury overpriced product. We are actually undercutting the computer hardware market for a comparable device. So if you do need to buy something, come buy it from us. Because again, we're not gouging the price. In fact we're undercutting the price. And two, this is how we survive and how we're going to continue to build what we're building, which we hope you all can agree is a good purpose. So do business with us if you can. The Embassy Pro is the best headless server on the market for the best price on the market. And now we can get into whatever you want. And you also mentioned a moment earlier about people like the Federation model, about people running servers for their friends. And that's a lot of what we are thinking about as we put together this product, as we put together the Embassy Pro, that we are trying to get a more powerful product so that people can support more users on the device. Uncle Jim. Right. The Uncle Jim model. And we think it is a little. Bit. We have an ideal in our head that everybody on the planet will be running their own servers and connecting peer to peer. But we also know that that's not reality. As you mentioned earlier, it's not how humans work. And so we are acknowledging that. And while we will hold that as an ideal, this strategy for expansion is actually to go after families, organizations, content creators who have followers, to get them on board with the idea of self hosting and then gradually push to the edges. Right? So the Embassy Pro 33 and our entire roadmap for the next couple of years is really oriented around, do you get this, do you understand what's happening? Do you want to protect yourself and those who trust you? This is the best and easiest way that has ever existed for you to do that. We want to be that solution because we know that once, say, I use the church a lot because quite frankly, churches are going to be very quick to adopt this technology. We've actually had multiple conversations with heads of churches who are looking to do this because churches have been sort of under attack recently from this perspective. We know that when the pastor of a church sets up a private server, you know, in the back office and tells everyone in the congregation like, hey, we're not going to use Discord anymore, we're not going to use Telegram anymore, we're going to use our own private chat server. And in order to do that, all you have to do is go to Church of Christ.com, sign in with an email and password and chat with the members of the congregation. As in, there's no difference to what you are accustomed to. It's exactly the same experience from the congregation member perspective. They're having the same experience differences. Now it's just private and there's no intermediary. Scooping all your info churches, but it's a trusted intermediary. Exactly. But now the people in the audience understand this and they're like, wow, I want to do that for my family. So the head of family or whoever the most technical person in the family is, is now going to go get a device, put it in the home and be like, hey family, we're going to have private family talks, we're going to share pictures with each other in. A way that it doesn't in the future. Every tribe and every family is going to have its own CTO. Yeah, but we're trying to make that job really easy. Right? We're trying to take the job of system administrator, which is traditionally very hard job, highly paid job. We're trying to turn it into a Gui, a graphical user interface that a college intern could do. Right. Anybody? You're making the user interface very simple or the experience very simple. Okay, so question, you're basically building an operating system. Yes. That seems like a really hard thing to do. Why not just use Linux or something like that? We do use linux. Linux? Linux is a very unfortunately a very small part of an operating system. The basis of what we've built. We use Linux, we use docker, we use all of these tools that already exist in our open source. We're not shying away from any of the intellectual capital that has been built in the open source community over the many years. But there's a lot that has to be built for the user experience that we want. Okay, so in other words this is like a Linux stack but you guys are designing it in a way so it's super easy for people to use and it's focused on decentralizing stuff. Yes, but almost every Linux distro out there. When you say I'm running Linux, you're running probably one of two desktop environments like Gnome or KDE and we don't have any of that. We had to start pretty low in the stack in order to be able to design the experience towards a server device as opposed to a client device. So a lot of it is different than what you'd expect out of something like Ubuntu or ",timestamp:"01:49:29-01:56:20",topics:["Embassy Pro","Data protection solution","Start9 operating system"],type:"twitter_space",weight:12.334749221801758},{boost:0,date:1668866400,description:"Listener question: Is there counterparty risk to USDC given banks exposure to the stablecoin?",episode_title:"FTX Is Worse Than Enron w/ Lawrence Lepard, Caitlin Long, Dylan LeClair, and Dr. Jeff Ross",guests:[{name:" Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1307109108127019008/rPNj47yJ_400x400.jpg",ref_id:"4f4f53c7-5a3a-46df-b334-9951fe38dc96",twitter_handle:"realjeffreyross"},{name:" Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1599858581611941922/XxvPPWAt_400x400.jpg",ref_id:"c1d20e9f-7362-47be-a3a0-5b9c004cd58e",twitter_handle:"DylanLeClair_"},{name:"Sam Rule",profile_picture:"https://pbs.twimg.com/profile_images/1522271013026729987/RQZOdzjq_400x400.jpg",ref_id:"09214ea0-d8ff-47cb-84fe-08e8517768e5",twitter_handle:"samjrule"},{name:" Caitlin Long",profile_picture:"https://pbs.twimg.com/profile_images/1362592672150528003/iYZ84uXB_400x400.jpg",ref_id:"c0244641-6347-4b82-b2a9-0ee38b600c08",twitter_handle:"CaitlinLong_"},{name:" Lawrence Lepard",profile_picture:"https://pbs.twimg.com/profile_images/1114275000889032704/mOUsG1XC_400x400.png",ref_id:"bafa8935-8957-4a9f-aaaa-e45fb46615d4",twitter_handle:"LawrenceLepard"}],hosts:[{name:"q_liketheletter",profile_picture:"https://pbs.twimg.com/profile_images/1560683048680665088/4MrHM_UY_400x400.jpg",ref_id:"3303023d-a793-432c-8020-9151bd237523",twitter_handle:"q_liketheletter"},{name:" phjlljp",profile_picture:"https://pbs.twimg.com/profile_images/1601641645572767745/2Obq9UgK_400x400.jpg",ref_id:"2e5ffdd9-fea5-4daf-85e5-27015890442f",twitter_handle:"phjlljp"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/1583c7c4-f4f2-4e52-8f27-a1eaeb6289fd.jpg",keyword:!0,link:"https://traffic.libsyn.com/secure/bitcoinmagazine/22.11.18_FTX_Worse_Than_ENRON_Moon_and_Crowd_Health.mp3?dest-id=1210361",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"8b94fbcf-e349-4b2f-8425-66287345b9ae",show_title:"Bitcoin Magazine Podcast",text:"also wonder a little bit with the risk with these banks. Like, yes, a lot of crypto companies use these banks, but these banks also interact with USDC, and USDC interacts with a lot of other counterparties. And so, like, is there some level of counterparty risk or credit risk that USDC faces with some of these financial institutions as well? And what does that mean? And I've also kind of been scratching my head a little bit about why all of these just have stopped processing US. DC. On Salona. And I don't think I've ever seen an example before of a stable coin kind of dying on a specific protocol and what that even means. Either of you have thoughts on that? Yeah, anybody else? Yes? I'm not sure. I think it's more so just like it was more of an FTX thing. I don't know the long history of stable coins. On Salana, but I do know that they were one of the first ones to kind of have like coinbase. You could do each base withdrawals, but FTX had all the rap soul tokens. Maybe it's just like finance and everyone else just kind of sticking a fork in them. I'm not really sure. Well, I guess what I'm asking is I'm guessing that USDC on Solana would follow the same minting and burning processes as USDC on any other protocol and that it's circle at the end of the day that has some process for ensuring that a fraudulent party couldn't just MIT a bunch of USDC and injected into the system. And so whatever the risk is there with Salana, does that also extend to Tron for example, or some of these other parties and I just don't know enough about how these stable coins actually interrupt with the banking system trying to get an understanding of that risk. Yeah, I think the scary thing is and I was listening to that Larry, you were saying something about that Mark guy and he's like a known short seller with the banks. And Caitlyn, your point about firing from the hip on rumors is totally true in finance and crypto. It's no different from the legacy system. But if there is somewhat of just because of the rumors or because of the potential for a fraud case, we don't know. This is more so to speculation than anything. But if there's like, you know, I mean these are fractional reserve banks, right? So if there is a kind of a run right, and like the crypto, native companies don't really have many places to go, but just, you know, I think these things are non zero probability. That could get pretty hairy for an ecosystem that doesn't really have any options. Well, that's what Ryan Selkus has been talking about. Yeah, sorry, go ahead. No, I think that's just one of the things I'm looking at is like, OK, you have not only like the companies, but you have some stable coins on these rails and the Send network and hearing some I got some McBurnie's in my ear and my DMs that are saying like certain counterparties as of yesterday, not too well known, just some very small scale institutional players have alerted their clients that they're no longer accepting sen like Sen Silvergate exchange network wires out of an abundance of caution and stuff like that. Just kind of flares my kind of senses up a little bit, kind of ring some alarm bells when you see like, an institution, say, hey, we're no longer accepting this crypto exchange network wire out of an abundance of caution. And the stock's down 50% month over month and 10% day every day. Are you referring to Falcon act? That was true, yeah, they sent it out to clients. So Falcon X is not small. I mean, Falcon X is one of the biggest institutional custodians. I don't know exactly how they describe their platform, but they're big. Again, I just careful here. Yeah, but that may be rumor, it may be true. But one thing to caution everybody. There are laws in the United States against a bank run. There are actually laws against that. I would just encourage everybody take a deep breath. It may or may not be true. There are so many rumors floating around this sector right now. And maybe this is where those of us who have the proverbial gray hair can think back to the times that we've been through. The various financial crises, the bond market correction, the Long Term Capital Management collapse in 1997, you know, the tech stock bubble bursting in 2001, and then of course, the mortgage bubble bursting. And seven into eight and nine through the great financial crisis, the rumors fly. And it's not until afterwards that you see where the real truth was. The sad thing about this sector is that there's definitely things move fast, right? And so the rumor mill can move things a lot faster than they otherwise might. So I would just caution everybody, especially when it comes to the banks, just definitely ",timestamp:"00:28:12-00:33:48",topics:["counterparty risk of USDC","USDC on Solana","Circle","stablecoins","SEN network","falconx"],type:"podcast",weight:15.743046803788744},{boost:0,date:1672207217,description:"Improvements made to the Bitcoin node",episode_title:'The Orange 🌞 Reading/Discussion "The Book of Satoshi" & Bitcoin News',guests:[{name:"CouncilmannJamm",profile_picture:"https://pbs.twimg.com/profile_images/1251040014152024066/dD3b2eA4_400x400.jpg",ref_id:"6c989c2c-d24d-49a2-8eb1-1d2f1c47f347",twitter_handle:"jamm_councilman"},{name:"thotsnplayerz",profile_picture:"https://pbs.twimg.com/profile_images/1608733749663109120/wwYEZgF2_400x400.jpg",ref_id:"66bbe365-9e85-4c34-9d51-39d8b49937b7",twitter_handle:"thotsnplayerz"},{name:"Will Schoellkopf",profile_picture:"https://pbs.twimg.com/profile_images/1487515153302130691/t5sDMzZW_400x400.jpg",ref_id:"461e2245-1672-4fa1-94f5-7aaf1afa531f",twitter_handle:"realBitcoinDog"},{name:"OKIN_17",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"dbcdeab8-4824-43f7-aeb8-2b9eda6cbbad",twitter_handle:"OKIN_17"}],hosts:[{name:"SatoshisJournal",profile_picture:"https://pbs.twimg.com/profile_images/1518661993103859712/y_QefqVZ_400x400.jpg",ref_id:"63fac069-bfe9-49ae-b52c-1d1f226b3275",twitter_handle:"SatoshisJournal"},{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"50023cce-8a6f-4974-ad3b-fd7a9c0abf19",twitter_handle:"ToxiKat27"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/ecefba20-39fd-4974-8388-066857965b2a/cf486c39-08f9-4ada-9b72-7a297ad74d74.mp3",node_type:"clip",pub_key:"",ref_id:"51926635-4d2a-47d0-9e11-62c173898631",show_title:"Satoshi’s Journal",text:"like I said, I've been listening to that bitcoin explained podcast, digging into it lately, just plowing through all of it, because that's what I love about the podcast so far, is that the episodes are only like 30, 40 minutes long. They're all these long two hour, three hour drawing out conversations about bitcoin. They really just get to the point and get to the meat and potatoes, so to speak, of whatever they're talking about. And the most recent episode I listen to was about bitcoin core. Update 21. So this was like two years ago almost already now. And it's cool to see what Satoshi was talking about and what the nodes did then to the improvements that we've made since then and then where the mindset was then, and then where we are now, and the things that we've done with Taproot and everything else. It's really cool to see that transition and be able to look back and see the inner workings. Like I said, these guys go into the real deep nitty gritty how the nodes communicate with one another, why they communicate with one another in certain ways, and how they used to communicate with each other in which there were basically ways for people to attack you, essentially. Or act maliciously against your node because of the way that the original protocol used to work and how they've improved upon it to where those options are no longer viable. And you really get to see that bitcoin core developers really do have an adversarial mindset when it comes to the meticulous choices of what bits they choose, why they choose them, and why they do integrate them overall. Yeah, I think that's one of the most powerful things about bitcoin is it's very slow in its evolution. Well, it's exactly like how evolution is happening on earth. I mean, it doesn't happen overnight and it happens very slowly. And in many ways, it actually requires a consensus of nature to be able to make that evolution. And so, like bitcoin, you're not just going to make a change overnight. When these developers are developing, they first have to do a bit, then that bit has to be talked about by the developers. And then before you can even integrate it, there's a long, drawn out process, vetting process that I'm not even aware of, but they're very meticulous, like Tk said, to implement any changes into bitcoin. And these changes would be like soft forks. That wouldn't be hard forks, they would just be little tiny changes that could be done. And of course, you then have to update those have to get updated, minors have to get updated, and they have to have the consensus to accept those updates. It's just not like an easy process. It's a long, arduous process to finally get to the point where you can actually implement it. That's how I understand it, anyways. And because of that, it's a beautiful thing because bitcoin is like actually think about it this way. One of the oldest creatures on Earth is a crocodile. A crocodile from millions of years ago till now has evolved, but for the most part, it's still the same, but it's become more resilient. And the tiny, small changes that has happened to that crocodile have made it that much more resilient. So that's the same thing with bitcoin. It just gets hardened and hardened and hardened and hardened after many, many years. And so hundreds of years from now. Bitcoin is going to be a hardened freaking crocodile, so to speak. Anyways, that might have been a dumb ",timestamp:"00:32:45-00:36:44",topics:["Bitcoin improvement"],type:"twitter_space",weight:35.70854341455261},{boost:0,date:1670706053,description:"On-chain game for stack",episode_title:"Bear Market Buidl — Major #Bitcoin developments! #Stacks #Sidechains",guests:[{name:"@GriffdenNFT",profile_picture:"https://pbs.twimg.com/profile_images/1604377729062895617/R4pSEdH4_400x400.png",ref_id:"dafdf7ec-28c0-43d3-a0d9-b2d266f38738",twitter_handle:"GriffdenNFT"},{name:"@Chad_333",profile_picture:"https://pbs.twimg.com/profile_images/1592310541732970496/o1tbw9Eo_400x400.jpg",ref_id:"484c7695-6a4e-4141-9585-1109bf23f8cf",twitter_handle:"Chad_333"},{name:"@jackbinswitch",profile_picture:"https://pbs.twimg.com/profile_images/1601214177439260672/O0SpU5B1_400x400.jpg",ref_id:"9685e7f3-3e0c-4b84-9fd9-b8a1d96f6ae9",twitter_handle:"jackbinswitch"},{name:"@jimdotbtc",profile_picture:"https://pbs.twimg.com/profile_images/1593210347825119237/L_SNThWQ_400x400.png",ref_id:"5dcf5545-fad6-44ee-ae56-360c5efe1151",twitter_handle:"jimdotbtc"}],hosts:[{name:"@BigRpic",profile_picture:"https://pbs.twimg.com/profile_images/1604962150388219904/WqiCye-r_400x400.jpg",ref_id:"726f0c95-9d94-4d44-a056-8ad3c9e3ddd5",twitter_handle:"BigRpic"},{name:"@CarlsonDoc",profile_picture:"https://pbs.twimg.com/profile_images/1597382056308350977/1NPexynZ_400x400.png",ref_id:"e34fa2b2-a58e-4461-81a0-d10c1058dfc2",twitter_handle:"CarlsonDoc"},{name:"@STXLDN",profile_picture:"https://pbs.twimg.com/profile_images/1533793338931007488/o3laQDCp_400x400.jpg",ref_id:"5c3bc906-3aed-44f9-851a-94804c6fe5ca",twitter_handle:"STXLDN"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99046513-2614-4eae-9de4-5781ba4b330a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/fc3bebcb-8271-433e-8d81-84dd06f3b022/aec527bc-539d-4d3b-9bad-db4af9e1a1ba.mp3",node_type:"clip",pub_key:"03c7a7f42d94fdfc7a655515c1421cd1d20db090a1c24150201de0b1dc6a30b0ee",ref_id:"09e8e827-fd7b-4800-8633-9f4fe7416210",show_title:"STX:LDN",text:"I'm just going to pop in and just thank you for those kind words, Jack. You've been an awesome peer alongside everybody else in there. To have a more Stacks native user and a big voice for Stacks is great to have in the group. You have some amazing questions. I've learned a lot just from you being curious and sharing those curiosities with our mentors and I can echo everything you said. I think that it's such a fantastic opportunity, especially for someone like me who has minimal real world business experience, to be able to go in and learn the Lean Startup method from all of our mentors. Did I get rugged? Sorry. No, you're here. I thought I got rugged. Okay, just making sure. Thank you. And for anyone who's interested in building in Stacks and wants to open your network and meet some great people, possibly or some great team members, I could highly recommend the Web three pre accelerator startup Lab. And I'm really excited to see everybody start to get their ideas formed and just this great experience. And of course, being kind of brought into the Sachs community in this way, it gives me a lot of exposure to small, big, all types of people in this community. So I guess I could talk a bit about what we're doing. My team and I have pretty much landed on our idea. We have to speak to a few mentors here soon to make sure we can get some legal clarity before we continue on because it is going to be on chain gambling and that's a really important part, I believe, to build an investment ready startup. We have to have all those things in line before we go forward into the stacks. Accelerator, hopefully. And we're currently just building out one simple game. It's going to be an on chain digital coin flipping game with 50 50 odds playing against the house. We have many ways that we want to expand upon that, but if we see some success with this project and building more on chain games for Stacks, that is our grand vision. And we would love to also open up our platform to other builders or other people who want to build on chain gambling games but might not have the resources, whether it be a dev or the marketing sense. So it's really going to be a bit more than just the fungible flip game. But one thing we learned in the Pre accelerator is go for that one killer feature and shoot for something simple and something that was maybe done on another chain. So I had just remembered this game I had played on Salana about a year ago called Djen Coin Flip and that's where I drew the inspiration for our game from. And yeah, it's looking like it's going to turn out to be a success. The reason I thought this would be a good application for Stacks is I come from the NFT trading world where we're all degenerates mainly, and I look to that as being one of the bigger consumers, consumer groups, I should say, in web three, kind of like the Degenerate Gamblers or Speculators. And I truly haven't seen a ton of degenerate outlets for users on Stacks. So we want to be able to build out some of those fun games or gambling s games for Stacks users. We're mainly shooting for more non traditional gambling games, as I've noticed, that's blown up in the online gambling world over the past couple of years. But we really think that transparency is important when you're online gambling and we're going to be able to provide that through smart contracts on Stacks, of course. ",timestamp:"00:20:15-00:24:50",topics:["On-chain game"],type:"twitter_space",weight:22.50741216002476},{boost:0,date:1633737600,description:"Public mempools versus private mempools ",episode_title:"Understanding Miner Extractable Value On Ethereum",guests:[{name:"Nathan Worsley",profile_picture:"https://pbs.twimg.com/profile_images/1576238702908637186/xzcScTyV_400x400.jpg",ref_id:"20529242-4546-475a-af1a-125b83aedd81",twitter_handle:"NathanWorsley_"},{name:"Robert Miller",profile_picture:"https://pbs.twimg.com/profile_images/1595788538938695680/w6i5Q6s4_400x400.jpg",ref_id:"292cfadd-7e67-4e34-876b-99804d416e20",twitter_handle:"robertjmiller_"},{name:"Jordan Frankfurt",profile_picture:"https://pbs.twimg.com/profile_images/1544902585462788097/bGe0hNIi_400x400.png",ref_id:"149db25a-26b1-4f69-8c9e-ec87e08ab8c8",twitter_handle:"jordanfrankfurt"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=6IxaLCPm6_E",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"330a0238-1acc-47fe-b809-48cc986a0b21",show_title:"Compass Mining",text:"I'll rise to the challenge. Jordan, at flush spots, we like to point out the places in which our projects fall short so people can hold us accountable and I hope those of you on the panel do and the community abroad. So I think private mempos could be something that is very centralizing for the network overall. And I think it also turns the network into something more opaque. For better or for worse, the public mempool is that it is public and so everyone can sort of see transactions passing through. They have the same information that it has a level of transparency to it somewhat. There are kind of nuances over there, but you don't know what's going on with your transaction when it goes to flashpots protect you assume that we are a good actor. You assume that we're passing your transaction on without doing anything. And this is a repeated game where you see the game update, right? So you pass a transaction to us, you see the state of the chain, you see if you're a front run or not. You can choose to not use this if you don't want, but there are trust assumptions baked into that and it is a more centralized vector that has less transparency over the outcomes. I think, to be clear for the listeners, I'm not shitting on flashbacks. Protect I think it's a really cool thing. We are planning on integrating it into uniflop. Oh, some alpha. Yeah, we are actively working on utilizing this service. So we're big fans of flashbacks. Maybe I could give a little bit of color to some theoretical problems with having completely private mempools as Robert touched on. I think this is very important. Anyone running a full note or mining doesn't actually have access to the entire MEMP pool. They only have access to a small part of the men pool. The mempool is being shared around everywhere, but each person only can see a small piece of it. And the mempool is like communicating information that traders are using to capture mev. But that's not the only kind of information it's communicating. It's also communicating information about load on the network and it's communicating information about appropriate prices to set the transactions. And if you start to close off all of the menpoles, then that information is no longer being communicated around the network and you have to find other ways of communicating it. And also another point that Robert touched on as well is this issue of censorship. When the mental is open and everything is being shared around the network, you have some assurances about whether you're being censored or not, whether something is happening to your transaction. Maybe it's getting delayed and someone's doing some kind of private statistical extraction that you don't know about. If you have confidence that your transaction is going everywhere around the mempool to all these different nodes, and you can see that, then you can have some proof that that's not happening. That's not to say that I don't like the idea of private MEMP pools, but this is like maybe an argument that you could make sure sorry, go ahead. One thing that just crossed my mind, as you're saying that is a proliferation of private or at least like secondary mental mechanisms or gossip mechanisms would be essentially allowing users more choice in their privacy of the transactions. We see them, like the Quinn, things like Clover and Dandelion as mechanisms for providing users with better safety and defense against Eclipse attacks or whatever their Node. And maybe that's one point in favor of a proliferation of transaction relay mechanisms. ",timestamp:"00:45:01-00:48:33",topics:["Public Mempool","Private Mempool"],type:"youtube",weight:12.134265304355546},{boost:0,date:1670706053,description:"Deep Lake finance: built for stacks",episode_title:"Bear Market Buidl — Major #Bitcoin developments! #Stacks #Sidechains",guests:[{name:"@GriffdenNFT",profile_picture:"https://pbs.twimg.com/profile_images/1604377729062895617/R4pSEdH4_400x400.png",ref_id:"dafdf7ec-28c0-43d3-a0d9-b2d266f38738",twitter_handle:"GriffdenNFT"},{name:"@Chad_333",profile_picture:"https://pbs.twimg.com/profile_images/1592310541732970496/o1tbw9Eo_400x400.jpg",ref_id:"484c7695-6a4e-4141-9585-1109bf23f8cf",twitter_handle:"Chad_333"},{name:"@jackbinswitch",profile_picture:"https://pbs.twimg.com/profile_images/1601214177439260672/O0SpU5B1_400x400.jpg",ref_id:"9685e7f3-3e0c-4b84-9fd9-b8a1d96f6ae9",twitter_handle:"jackbinswitch"},{name:"@jimdotbtc",profile_picture:"https://pbs.twimg.com/profile_images/1593210347825119237/L_SNThWQ_400x400.png",ref_id:"5dcf5545-fad6-44ee-ae56-360c5efe1151",twitter_handle:"jimdotbtc"}],hosts:[{name:"@BigRpic",profile_picture:"https://pbs.twimg.com/profile_images/1604962150388219904/WqiCye-r_400x400.jpg",ref_id:"726f0c95-9d94-4d44-a056-8ad3c9e3ddd5",twitter_handle:"BigRpic"},{name:"@CarlsonDoc",profile_picture:"https://pbs.twimg.com/profile_images/1597382056308350977/1NPexynZ_400x400.png",ref_id:"e34fa2b2-a58e-4461-81a0-d10c1058dfc2",twitter_handle:"CarlsonDoc"},{name:"@STXLDN",profile_picture:"https://pbs.twimg.com/profile_images/1533793338931007488/o3laQDCp_400x400.jpg",ref_id:"5c3bc906-3aed-44f9-851a-94804c6fe5ca",twitter_handle:"STXLDN"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99046513-2614-4eae-9de4-5781ba4b330a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/fc3bebcb-8271-433e-8d81-84dd06f3b022/aec527bc-539d-4d3b-9bad-db4af9e1a1ba.mp3",node_type:"clip",pub_key:"03c7a7f42d94fdfc7a655515c1421cd1d20db090a1c24150201de0b1dc6a30b0ee",ref_id:"a3fe7197-5948-404f-a8b0-f04bb130db27",show_title:"STX:LDN",text:"can you tell me? I'm friends with Rafa, and as I understand it, he's co founder on Deep Lake. What are they actually doing? How does it work? Well, I can't tell you from a technical standpoint, but I can tell you from a Djen trader standpoint, deep Lake Finances is a way for people to trade perpetual futures instead of using a centralized exchange like BitMEX or what have you. It's a D Five protocol that allows you to do that. Really, the ultimate thing is the way it's being built is whatever kind of liquidity providers you want to have, you'll be able to make these pairs on this platform and trade their futures so the applications go bigger than just Bitcoin and Stacks or whatever. The applications for something like that can be scaled up tremendously, but just that in and of itself. So there's a huge need in the market for such an app. Hey? Well, yeah, I think right now there's a huge need for a lot. Right? I mean, you don't know what you don't know, but something like that. Absolutely. 100%. Just from a trader standpoint, which before I, when I learned about crypto, the next thing I learned was trading crypto from a trader standpoint, a decentralized exchange that I can trade futures on and not have to risk leaving my coins in a centralized exchange, especially status posts, FTX and all of this other nonsense we've watched. That's massive. That's absolutely massive. The audience for that is enormous. Well, that's great. I'm so happy for RAF coming up with this and putting his team together. It's really impressive. I had no idea what it really meant by a perpetual and when you say futures market, well, yeah, I understand that and that's great. That's just great. Yeah, it's awesome. Right? A lot of tech people don't like to think about it this way, but I think about it this way because this is just what I've seen. What's being built in Web Three started on the back of traders period when the news and when everyone in the real world and everyone was just insisting bitcoin itself was a scam and it was tulips and it was this, it was that, and the other traders were out there with their skin in the game, day one. And the liquidity that we've provided to these various chains, sometimes more liquidity than we cared to, but the liquidity we've provided has built this market. And I think that that natural progression is still there because it's still such a young market. Like I said, this is what we're seeing happen right now. The fruits that come to all this labor are going to take generations to ultimately come to fruition. But yeah, traders bring eyeballs, traders bring liquidity. And having apps like that on any chain are really going to bring the investment, bring the capital, bring the interest. It's going to do just like it did with me when I discovered crypto. The giant green candles makes people be like, hey, what's going on over there? I'm going to check this out. Or with NFTs, they come for the pictures and they leave with the understanding of the evils of Fiat. Right? I mean, this is what we're doing. So, yeah, having something like that being built right now, is just huge for Sax. 100%. Yeah. I didn't know what Rafa was trying to put together. And when they published that landing page for Deep Lake, I thought, well, that's interesting. I just didn't know what they meant by perpetuals. And when you talk about futures oh, of course, right. Makes a lot of sense. One thing I do know is I don't believe Rafa is the co founder of Deep Lake, but he is partnering with them for whatever project he is building. Is that right? Rafa is not the co founder of Deep Lake. No. I just dropped an article in a link if you want to check it out. It's a small dive about what they're working on. The guy who started, a guy named Abdel Harass. Really just cool dude, really smart guy. But yeah, there's a little article down there below if you want to check it out. Absolutely amazing tech. Thank you. ",timestamp:"01:02:21-01:08:24",topics:["Deep Lake finance","stacks"],type:"twitter_space",weight:21.730685924323048},{boost:0,date:1671735703,description:"Steps to onboarding a new bitcoiner",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Pysh, Booth, BTC Ben & the Plebs! 🍻😂",guests:[{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"},{name:"Brian",profile_picture:"https://pbs.twimg.com/profile_images/1589300685182570500/cTffQlpJ_400x400.jpg",ref_id:"b167b1cd-bbce-4839-a03c-194f006f954d",twitter_handle:"BrianTheDrumer"},{name:"BTC Ben",profile_picture:"https://pbs.twimg.com/profile_images/1348015880664473610/S-uDNLlZ_400x400.jpg",ref_id:"2c95b3dd-e3a2-4cf0-a49e-a8915d2bfcd5",twitter_handle:"bensemchee"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"78672de6-3c5f-4d95-8fd9-f2b512fa7a04",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/dbc5dd26-2307-4f64-a377-105e2a277d9c/be3d47a7-2fcd-4de8-8f22-71851953d022.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"4491ca29-82ab-4599-8d39-039653b35aa3",show_title:"PUBLORD",text:"No, I just did that last night. I literally sent a text to it. I got this guy that I onboarded this year. A few months ago, he's bought a little bit of Bitcoin. He's got like maybe a couple of $100 worth on cash app. And last night, he was finally asking me, he was asking a question. I was like, oh, shit. I left before I could teach you how to use wallet. So literally, I spent 45 minutes writing this text, basically explaining exactly in detail and taking pictures, like how to download, like, blue wallet, create a wallet, save his keys, told him to write them down, and then how to copy and paste the address and explain private keys. And it took a while, but I sent it. And at the bottom, it's like, congratulations. Like, you now own value that nobody can take for you. And I know that when he finishes that, he's a little older guy and he doesn't really know much about tech, he's going to feel really accomplished when he gets that done. And that's such a good feeling. It's like you do forget like Pablo was saying, you get down the rabbit hole, and you forget there are still people at the Tilt, like, they haven't even crossed in yet. And pulling them across even just a little bit and planting that seed, it's an amazing it's an amazing part. I love hearing all this stuff. You're absolutely right. That feeling of that person kind of having and you just know that there's going to be many more AHA moments throughout their bitcoin journey. But witnessing some of those first ones are pretty incredible. And especially this past month or so, I've had an influx and this gets me so bullish. I've had an influx of people booking me for one on ones saying, I've never self custody before, and now is the time, because this year has scared the hell out of me. So SBF has gifted us with a whole new generation of self sovereign hoddlers that are getting their shit off exchanges. I had a session earlier this week with a dude, probably 20s, early 30s, something like that, and his mom, and they were both taking self custody for the first time, and they were doing it on cold cards. His mom learned how to air gap in a transaction, which is incredible, and she did very well. That's amazing. Yeah. And she understood what was happening. As I was saying, like, oh, well, you just need when I was explaining the SD card, I was like, yeah, you bring it over. All you're doing is you're giving a signature like you would on using your credit card. You're signing the transaction. You're giving permission to send only the transaction that's in front of you. And she's like, okay, that makes sense. And she got it. I've been through a ton of these sessions this month, and it's just every time the people are like, this is really not that bad. Like, once you kind of understand what you're doing, it's just getting over the hurdle of saying, okay, I'm going to spend some time to learn this. But once they do, they're like, oh, my God. I don't know why I was so afraid. It's such an amazing feeling. If I did this where I'm doing on the 18th, would any of you be happy to dial in and answer questions? We kind of did, like, a Twitter space for it, maybe I'd be happy to join the space that you're talking about setting up. Also, I'm a fan of the idea of doing a split night. Like, one more for the beginners and one for the people who are kind of well into their journey and just want to connect on more up to date things. You could have sections to the night I've seen people do where, okay, from this time to this time is beginners, and then from this time to this time is advanced. And then you can also encourage the advanced folks to show up for the beginner section so that you have hands on deck to assist individuals as they set up the first wall. Very good. That's a great idea right there. I'll go one further and you have different sections. You can have, like, an upstairs for advanced, downstairs for beginners. Because I'll tell you what, when I saw BTC session in action, trying to explain Bitcoin from zero to now, you are running your own node in 20 minutes. One of the most impressive things you'll ever see. Let me tell you something. Ben knows his stuff. And it was PowerPoint after PowerPoint after PowerPoint, and my eyes were glazed over. I was learning a lot, man. But then he brought it home, beginning to end. Yeah. You got to break it down in small bites. I think that's exactly what I want to do. I want to try and make it, like, fun. We're going to have a laugh and joke. We can make it really typical, but I don't really want to bamboozle people as well. At the same time, I kind of want to build the community like we do on this space. This is a great thing I love about your space, probably, is that we can talk about some random stuff sometimes, but it's just because we're all on the same wavelength. This is why I love hanging out. You know what I mean? It's just hanging out with mates. Yeah. This is where we sort of begin, man. I've always started with just simple questions between each other. But it's tough, man. I mean, to come into this. First off, you're not going to drag anybody 26 miles to a marathon. So the ones that you try to orange pill that you wish, guess what? They better have a good foundational. Understanding that the money system is broken to begin with after that, that's just the beginning, man. That's just beginning. Going down this rabbit hole. Okay, now you think I understood what? I never heard the term Austrian economics until I found bitcoin. What do you mean, Austrian economics? What the hell is going on here? You don't understand that stuff, man. You just go down there, you start learning about the debatement of currency and the Fed, how this all began. Yeah, that's hard to put into one weekend, let alone one day. The money system is broken. You all we know. And the prophecy is coming true tomorrow. It's like Saturday. Easy. It's easy. Educator, sir. ",timestamp:"02:24:15-02:31:42",topics:["bitcoin self custody","bitcoin education"],type:"twitter_space",weight:28.510520965677095},{boost:0,date:1671735703,description:"Possibility of block mining on the hash rate",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Pysh, Booth, BTC Ben & the Plebs! 🍻😂",guests:[{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"},{name:"Brian",profile_picture:"https://pbs.twimg.com/profile_images/1589300685182570500/cTffQlpJ_400x400.jpg",ref_id:"b167b1cd-bbce-4839-a03c-194f006f954d",twitter_handle:"BrianTheDrumer"},{name:"BTC Ben",profile_picture:"https://pbs.twimg.com/profile_images/1348015880664473610/S-uDNLlZ_400x400.jpg",ref_id:"2c95b3dd-e3a2-4cf0-a49e-a8915d2bfcd5",twitter_handle:"bensemchee"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"78672de6-3c5f-4d95-8fd9-f2b512fa7a04",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/dbc5dd26-2307-4f64-a377-105e2a277d9c/be3d47a7-2fcd-4de8-8f22-71851953d022.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"c09cfdab-f18f-45ad-9542-bd095f3ef52a",show_title:"PUBLORD",text:"Well said, DC. Just real quick, I see bitcoin blue. We respect the hands here. I didn't know if you're going to change topics. Did I ever tell you my Easter egg analogy? Easter egg analogy for that? Yeah, I've heard it. Tell it again, though. I like it. Yeah, so it's pretty cool. At a club here, they had different age groups for an Easter egg hunt, and what they did like kids. They had like five and under in one area. Then they had like kids that were six to eight and then like nine to eleven, but they had three different Easter egg hunts going on. All right, so those little kids, look, they're not going to really surf too deep, so they literally would just leave the eggs open on the ground. I mean literally on the ground next to the tree, whatever, progressively got a little bit harder. So the other kids sort of hit them. You can only see a little bit of the egg. They would find them. And for the older kids, of course, man, you got to stuff very deep. So the difficulty adjusting to me is, guess what? There's a certain number of eggs we got to find every hour. You got little kids looking for hard eggs to find. Guess what, man? It's going to take a while. So what do they do? Difficulty adjustment. We're going to take you guys and we're going to put you we're going to take you from the hard part, and once in a while, we got to shift you back down to where everything is out in the open. We're going to give you some of the easy eggs to find, and over the course of everything, that's going to average out to our ten minute block time. I love it. And it's a great metaphor. It's amazing how something like that is like the missing ingredient to a system that can actually regulate itself over a long period of time. It's like truly mind boggling when you consider the computing power that's on Bitcoin today versus when it started. Satoshi ran that shit for like a week before he found Howl, who started running it, or however long it was, how Hal joined. And now there was two people with computers running this code. And today it's just like, absurd. The number of machines that are just computing as fast as they possibly can. Here's the same issuance timing. Here's some fed. TC what guarantees that the next block will be guessed correctly? Nothing. So essentially, there is a possibility for the block. The next block never gets mine. It's true, but we've never seen that happen so far. And the thing about it is, again, humans don't do so well with big numbers. You look at the total hash rate, and it's like over 200 x a hash overhead. That's over 200 million trillion guesses per second. You're saying I'm thinking of a number and you got a million trillion people no, 200 million trillion people standing in front of you all guessing. Wait a minute. 200 million trillion. Is that the omnibus, the next spending bill for the government? Oh, yeah, definitely no. TC it's amazing the foresight that Satoshi had, because in some of his writings you could see that he was saying that, I know in the future, because of Moore's Law, like, computing power is going to increase and blah, blah, blah, blah, blah. And so he's like, oh, it is necessary for this network, for its longevity, to have a way to, like, self regulate. And it's just the level of fucking, like, genius you have to have in order to foresee all this shit and write the code that makes it work. It's just fucking unbelievable. I was telling my friend that the difficulty adjustment is like, what makes it work? It's one of the things that makes it work. But to me, it's like, if it wasn't there, bitcoin wouldn't function the way it does, right? It wouldn't. It's a perfect balance. And where we saw it, really, the first time I saw it unleashed was when China took all those miners offline. And I forget the percentage that came offline. It was 50%. Oh, man. And it worked. It was just beautiful to watch unfold. Because when that adjusted, guess what, TikTok neck block. There's no stopping bitcoin. You can break it down even more, and it's even more beautiful. It's like the hash rate started to come offline. Blocks start to come in slower. Then no more than two weeks later, this adjustment occurs and re incentivizes whoever's still hashing gives them a bonus. They were sitting on the sideline, an incentive to start doing that activity. Dude, I know this first hand. I FOMOD into mining. Last summer, June, July 21, I saw the hash rate plummet. I realized that the difficulty adjustment had crashed, and it was easier to find blocks today than it was a couple of months ago. Let's fucking go. And that's what's really incredible about it, is the resulting incentives that come from those changes while simultaneously stabilizing a system that's having absolute volatile changes. How do you kill something like that? Where the human incentives are, the greed is just, like, ever present. If the fucking hash rate drops, everyone's going to foAmal into mining. Like the small people, like everybody in their house. And it's just so beautifully. It's so elegant, because in a way, it's harnessing forces and variables that are so hard to human psychologies. Like game theory. Whoever came up with bitcoin, whoever Satoshi is, bro, I'll get on your knees and suck your dick. That's the level of fucking, like, why does this shit keep coming up in this room, man? I swear to God. First breakfast because it sucks. The happy hour, bro. I think the longest I've ever had to wait for a confirm that I knew was going to be next block was like, 84 minutes, and the shortest I've gotten I've gotten them were like, literally by the time I go to check, it's confirmed, like, within, like, 20 seconds. So it's crazy how the variance can be. Yeah, bitcoin is beautiful. I said it. Bitcoin ",timestamp:"00:21:59-00:29:16",topics:["block mining","hash rate"],type:"twitter_space",weight:28.510520950548525},{boost:0,date:0,description:"More thoughts, questions and answers on Nation States and the Information age",episode_title:"The Sovereign Individual - The End of Egalitarian Economics",guests:[{name:"chriskapilla",profile_picture:"https://pbs.twimg.com/profile_images/1362817539135463427/2AXUeFLV_400x400.jpg",ref_id:"9d495790-93f2-4d6c-b770-b2885f66859d",twitter_handle:"chriskapilla"},{name:"remydenton",profile_picture:"",ref_id:"5c5beb0c-c214-4f23-b79a-e71bf9368f2d",twitter_handle:""},{name:"JackRonaldi",profile_picture:"https://pbs.twimg.com/profile_images/1583261828628496384/IazkwYjk_400x400.jpg",ref_id:"01621476-f040-49dd-8160-4035228faf78",twitter_handle:"JackRonaldi"},{name:"AlistairZ80Aftw",profile_picture:"https://pbs.twimg.com/profile_images/1362882489895841795/gH2zix3l_400x400.jpg",ref_id:"3dcba197-47ca-40c0-857d-73cec4325801",twitter_handle:"AlistairZ80Aftw"},{name:"mattonbtc",profile_picture:"https://pbs.twimg.com/profile_images/1549459254280687618/jzdHJou3_400x400.jpg",ref_id:"998167d3-e036-4ef1-9a05-4f062903f0c5",twitter_handle:"mattonbtc"},{name:"wai_wairua",profile_picture:"https://pbs.twimg.com/profile_images/1536570699761848320/T10Owc60_400x400.jpg",ref_id:"c4d4ff36-73fa-4471-91ba-de0f99a49e99",twitter_handle:"wai_wairua"},{name:"UltraSolomon",profile_picture:"https://pbs.twimg.com/profile_images/1468332451055427601/YVgUuUHc_400x400.jpg",ref_id:"6371d519-cc98-4bf4-9f82-be17b1ea532a",twitter_handle:"UltraSolomon"}],hosts:[{name:"BTC_Venetians",profile_picture:"https://pbs.twimg.com/profile_images/1557482467539521537/Kel-eVww_400x400.jpg",ref_id:"a6313ca9-3869-4477-88ad-30172957edcf",twitter_handle:"BTC_Venetians"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/75ec86b1-cb6d-467f-a66e-5e642e5c126a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/c8cc9ec1-061d-4f53-a24b-ee43a56c7715/e650057e-2369-4e75-8119-4975a1fc4cac.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"af7832e4-45e7-44e6-a91c-04652f9ce4fa",show_title:"Bitcoin Venetians Book Club",text:"let's move on to my favorite question that I came up with, which was, let's imagine that the nation state doesn't survive and it's a bunch of small sovereignties. I guess where I'm always confused is, as a bigger entity, you're more powerful. So if we split up into a bunch of smaller ones, like, what's to prevent, like, some Genghis Khan coming around and conquering the small, weaker sovereignties, small sovereignties. I guess part of it is the wealth being unconfiscatable, the wealth being situated online rather than in terms of physical resources, in terms of information, and in terms of Internet native money. I find this very interesting. Like, it's kind of the Jason P. Lowry form of address. And I challenge that. Because if you have one country with nukes or greater violence in one country without, and this is physical violence, not informational violence. And the authors having talked about infrastructure being a key component of wealth, it does strike me that the physical you can't just ignore the physical component and a lot of the debates. The nature of violence is shifting, and it's easier to defend your wealth than ever before and much more costly to attack that wealth. And so therefore, the cost of violence is changing and favoring the individual. And I understand that. But at the same time, I just don't think you can ever discount an army moving onto your front doorstep and taking your culture and your home and your roads and everything else. I think I'd have a very similar critique of Jason Larry, whose name was previously banned in the book club, but we'll let you off as you've been away. But I guess the question is maybe the relevant question isn't if there was a large country with big armies, couldn't they just bulldoze everything? But would such a nation be one of the ones that collapsed? Would it be sustainable if it could no longer use extractive techniques against its own population to fund that war? I sometimes wonder if we'll see, like, I don't know, I got to find the right phrase, like cyber Vikings. I wonder if all of the kind of plundering of, like, other small sovereignties would be technological purely rather than physical. Yeah, I think maybe the violence will go into both domains. And I think we already kind of see that with hackers attacking people, especially, like, in the ethereum and rest of the crypto space where people are a bit more careless and there's a lot of security vulnerabilities you keep seeing like hacks tens of millions of dollars stolen all the time. But I think on the physical versus digital violence, I don't know, I think it'd be a calculus for even if it's a smaller attacker and smaller sovereignty, it would be a calculus. Like, let's say we're all on bitcoin and it's sound money. What if we came off of sound money and we funded a big war effort and we could steal people's maybe not their digital welcome bitcoin because you can't crack that security. But I think money at the end of the day is like a means to an end, not an end itself. And the means that it is the end that it's a means to is in the physical world mostly, at least for the time being. And if you can appropriate all of that wealth physically doesn't really matter in my opinion, or it doesn't matter as much what the ledger of bitcoin says if you have the physical wealth. And I mean, I guess a relevant factor is that is the armies these days are less and less human based and more and more technologically based in terms of drones and remote fighting and things like that. So you don't even have the hearts and minds issue that you may have had in the past in persuading people to go to war and give up their lives for this fictitious entity of the nation. I know we've had this discussion quite a few times. Yeah. And I'm just wondering if you follow the trend of the book and you say I mean, we've seen it already, these hyper wealth concentrations where we've already got single people who are more wealthy than entire nations. Significantly more. In some cases and whether or not they will have private armies and then able to fund those armies to then kind of perhaps do what they want. So there is countercases to be made against this claim that things will be defendable in the informational age. But I'm not wanting to get too dystopian. I still think that it is a powerful force for positive, and it's quite hard to weigh. It's very hard to weigh what force will mean more and how it gets discounted. Talking about a nation state funding its military, how much of that defunding through perhaps bitcoin, how much of that will actually have an effect. It's really hard to quantify. ",timestamp:"01:02:09-01:08:19",topics:["Economies of Scale","Nation States","Information Age"],type:"twitter_space",weight:10.800045251846313},{boost:0,date:null,description:"Hosting family thanksgiving and discussing bitcoin",episode_title:"Café ₿: Thanksgiving Special 🦃 w/ the Café Bitcoin Crew",guests:[{name:"Rob Hamilton",profile_picture:"https://pbs.twimg.com/profile_images/1524033110630969351/wTUr8S36_400x400.jpg",ref_id:"94b18625-4778-4cfe-9c78-823704d1c1b1",twitter_handle:"Rob1Ham"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:"DJ Satoshi",profile_picture:"https://pbs.twimg.com/profile_images/915987644043030528/5nh3JQSz_400x400.jpg",ref_id:"02ae35cb-3728-441f-84c5-a8db5d9150b4",twitter_handle:"satoshi__tomiie"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Shaeroden",profile_picture:"https://pbs.twimg.com/profile_images/1560742113410678789/cHZ2tUjU_400x400.jpg",ref_id:"0da06a5c-038f-4737-9af7-17bed3712e68",twitter_handle:"Shaeroden"},{name:"Andres",profile_picture:"https://pbs.twimg.com/profile_images/1401952614795943950/aL2h3Wb4_400x400.jpg",ref_id:"db4abfe9-e3bb-4ffa-9783-ce67f5b20270",twitter_handle:"andresvbr9"},{name:"Peter Ansel",profile_picture:"https://pbs.twimg.com/profile_images/1374726811221954565/R7ttqYMI_400x400.jpg",ref_id:"2d418514-e03c-414d-8ed1-10c894aacb6e",twitter_handle:"peteransell"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/c25e3b3c-b5ef-435e-9e7d-9e406089e7b1/572908d4-f2cc-4c7b-980c-8359d2c8000d.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"5faa3765-8f15-41c7-8c8e-6136a0e67b5f",show_title:"Swan.com",text:"Hey, I appreciate what American Huddle said. I don't know if it's a funny story, but it's a few years now that I've been hosting my family's thanksgiving. And I'll tell you that flips everything on its head when you're the host, I tend to find that there's a lot less of that kind of reactionary stuff in your direction. I don't know if people are just minding their manners more because you're serving them a feast, but it goes a little easier. And a couple of days ago, my mother in law rolls into town. Last year, I was talking her up about bitcoin. I sent a small amount to a blue wallet on her phone, got her set up, and first thing she says to me when she shows up, she says, did you see what happened to bitcoin? And that's when last night I thought it was funny. I sat her down in front of YouTube, and I played her this one time, and then it crashed. Video from YouTube, and she kind of had a blank stare after that thing played. I hope you guys know what video I'm talking about. The guy who says, this one time, bitcoin went from way up to $36 and then it crashed down to $20. Yeah. Anyways, find that video if you haven't seen it, but you fill in the blanks. I think that one ended at the cycle that peaked at around 1200. So you kind of fill in the blanks of then it went to 20 and crashed down to three, and then it went to 69 and it crashed down to 15. And you kind of help them fire off a couple of brain cells and put two and two together and realize sort of the bigger picture and the fact that they have the time frame of a mosquito and the way they're thinking about it. So for me, that was gratifying to kind of actually see a little light bulb go off in my mother in law's eyes last night when I was showing her that. So yeah, I don't know, maybe that works for somebody else. I've never actually heard that one. Jacob found it. No, he's going to play it right now. Oh, epic. Right now. Role. This one time bitcoin went from way to it crashed down to another time bitcoin went from way to $29. And then it crashed $3. And then another time bitcoin went all the way to $213. And then it crashed all the way to $70. And then another time bitcoin went all the way to $1,100. And then it crashed all the way to $239. So the moral of the story is don't buy bitcoin because you know it's going to crash again. He did a follow up tweet too. Then like the next bull market, he also said nothing. That video is so priceless because I'm pretty sure he's serious. I keep going back and forth between it's sarcasm or he's actually serious. But either way you got to watch it, Alex, because just the expression on the guys face. And then he's a bitcoin on Twitter. I didn't know his name. What's his name? Let me give his last name. 1 second. Yeah, I mean, I played that for my mother in law last night and then continued it. It went all the way up to 20,000 and it crashed down to 3000. You kind of have to help people because they still don't realize they hear that word crash and all they think is bad, bad, bad. You kind of have to put two and two together for them. But yes. Anyways, maybe that will help anybody with their relatives. You're welcome. That's hilarious. Shout out to Q in the audience. Going to throw you an invite. We need to remove somebody. Jacob, you be the bad guy. Take me off. Take me off. I'm handling my kids. And then also Brad Mills. What we're doing today, guys, is we're just telling funny or interesting thanksgiving or otherwise bitcoin stories. It's been pretty light, pretty chill and fun. I think it's worth noting. I think it's worth noting too, when you're talking with family and bitcoin, especially over. Time because you're going to be right. With time, you're going to be right. The bear markets, people poke funny or whatever, that's fine. But given enough time, you're going to come out looking so smart and so intelligent. I think that's where the stay humble part comes in. And you kind of have to be a little graceful with being right, at least around family, in my opinion. Sometimes when you're on Twitter, it's fun to be like, yeah, what's up, bitch? You were wrong, motherfucker. But like, I don't really say that's, like my aunt or something. The problem is if your family finds your Twitter and then they know how you're thinking anyway, so you can, like, try and be so polite. But then, like, three days before you showed up to Thanksgiving, you were like, bro, when I see these pores, I'm going to be just thinking, fuck you in my head. So just don't tweet stuff like that. You know what I mean? Don't be one to yourself. Maybe share that with your wife. We're all learning here. Hey, Q, tell us some funny or interesting bitcoin stories, man. I told you so. I've gotten this week have been actually kind of hilarious, I will say. Just the overall response and naivety of normaland versus especially those of us who I think very much understand the difference between bitcoin and crypto. The conversations I keep hearing is like, oh, shit, bitcoin is going to go to zero now because Sam is like, not going to be a thing that FTX is going under. It's really funny, at least to me, because at this point, I'm just like, you're right. You're absolutely right. We're not going to make it. And then I love my favorite thing is it's always people who are very bullish on the tech industry as a whole. And so it's just a very simple, how's your SaaS portfolio doing? How's that Facebook stock treating you? Everything's kind of gone to shit. So I don't know. It's pour yourself a nice heavy glass of whiskey, put your legs on the table and just let's see who bled the least, not who made the most, if you will. But I don't know. Painkillers are fun right now. I just wanted to say to the Swan family, thank you very much for everyone who hit me up after Pacific Bitcoin. Like, I am successful surgery and fully recovering right now. My Achilles. That's awesome too. I have this one uncles who will not stop calling bitcoin bitcoin, and they've been calling it bitcoin to my face since 2015. And I'm like, did you guys all miss the part where I became the richest person in the family or no, a ",timestamp:"01:05:22-01:13:51",topics:["family thanksgiving","bitcoin crash","bitcoin discuss"],type:"twitter_space",weight:10.792905569076538},{boost:0,date:1637366400,description:"The narrative around nuclear energy is getting louder and more encouraging for Bitcoin mining communities",episode_title:"Securing Bitcoin With Nuclear Energy",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"},{name:"Eric McErlain",profile_picture:"https://pbs.twimg.com/profile_images/1252969137/Screen_shot_2011-02-23_at_10.59.21_PM_400x400.png",ref_id:"4815365d-44d0-4b06-9d9e-32070158d03c",twitter_handle:"atomiceric"},{name:"Puru Goyal",profile_picture:"https://pbs.twimg.com/profile_images/1590742805613203456/QAtYq_C__400x400.jpg",ref_id:"c24af059-b38b-4ce5-9547-9192c9eff579",twitter_handle:"purugyl"}],hosts:[{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"},{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=YBaA17NODlA",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"34c231bc-7fcf-4f55-a124-d67b008399a0",show_title:"Compass Mining",text:"to have you continue that train of thought, elaborate more on where nuclear stands now compared to maybe where it did a decade ago. Well, the Fukushima event definitely derailed the deployment of generation four reactors and put that on delay for a while. So it seems like we're finally just starting to get back around to that. But I agree with you. The narrative around nuclear has gone for a complete flip just in the last few months, and it's reinvigorating and very encouraging to see that level of public participation and growth and notoriety growing and getting better and leaning less away from outdated, basically, flood. For nuclear relies on the old technology and basically problems that have been solved or in the process of being solved. My interest has been mostly in the advanced reactors, in the small modular reactors like the little little guys like the 1, because I've gotten really obsessed with the small the SMR action plan here in Canada where we are planning to basically upgrade remote communities from diesel generation to nuclear power. And some of these communities, the electricity prices out there are outrageous. It's pretty lucky for the communities that can get diesel barged in. But some communities that need to get their fuel shipped in, they're paying as much as ninety cents a kilowatt hour, sometimes even more. And that all gets subsidized so that it equalizes with the on grid prices. So that's a lot of money that could be spent for better investments if we could get a more stable long term energy supply in there that doesn't need to be constantly refueled. But the reason that I see Bitcoin mining being a super good amplification for that is that it just completely eliminates the demand risk of making these investments before the current situation is there's a lot of hesitancy to build large generation projects in far remote communities because there isn't a customer base to recoup that investment. But now we can deploy in excess and deploy a customer right alongside the reactor that will scoop up everything and then be perfectly aligned to the generation profile and they can be scaled and adjusted as needed. Depends on how communities grow there's. A lot of this is going to be used for remote conventional mining applications so they can incorporate bitcoin mining as a way to just better economize the reactors that they plan to use for their operations. And this is going to be a complete game changer for these communities that they've been energy impoverished for generations. And some of the stories that you hear about remote communities in Canada, especially indigenous ones, it's hard to hear and you want to come up with a solution to fix it. But the conventional problem has just been throw money at it and all that does is it just seems to just go down a hole and it invites corruption and it never goes to places that it needs to. These people need water resources, they need better food and just fixing the energy will have a cascade effect and resolve all of that. Yeah, no I agree 100% with all of that and it's crazy to watch people sort of in these conversations realize the location independence and almost unlimited demand for energy from bitcoin miners and how that resource can be deployed to very quickly and easily expand like energy infrastructure for nuclear or other energy sources. It's just insane and almost unprecedented. Before we dig into that though, I did want to know if peru if you had anything to add on to that with regards to the inflection point, a flip in public perception, nuclear skills poised for massive growth, like real growth infrastructure wise and popularity growth as well. Yeah, I think that makes sense to me. Also, one more thing I want to point out is a lot of the reactors that we see online today have been built out to 1970s and we haven't seen growth in reactor build out since then. And I think it's important to understand the energy market that we are currently living in to figure out why nuclear hasn't made a push so far. Nuclear accidents have definitely changed the world public perception over time and they do not help for sure because it's such a political thing. But apart from that, if you look at the energy build out that's happened especially in the United States, and if you look at the generations have been brought online then you'll see a period between 2000 and 2005 where there was a massive build out of natural gas power plants all around the United States. I think combined my numbers might be slightly off but I think in those five, six years combined there was around 200 gigawatts of natural gas power plants just built in the United States. And what led from there was just cheap natural gas prices. And nuclear has found really tough and not just nuclear, even coal power plants have found it really difficult to exist in a market environment like this where natural gas is certainly so cheap. So it just depends on like the build up that happens and now, I think the opportunity for special advanced nuclear reactors would come probably, I think, in 2030 to 2040s. That's the time frame where a lot of these existing power plants that we have currently are going to retire, especially, I mean, any predictions on energy markets generally are wrong, but I don't want to say that, but I'm looking at the trends. I think a lot of the existing plans are going to retire in 2030. And that's where I also wrote this on a Twitter thread where I feel that's exactly the opportunity which a lot of these private companies in the advanced nuclear reactor space are trying to fight for. So that's another important factor, aside from the accidents over time which have changed public perception. Got ",timestamp:"00:15:37-00:21:49",topics:["Nuclear Energy Narrative","Bitcoin Mining"],type:"youtube",weight:10.626491553126828},{boost:0,date:1633737600,description:"Miner extractable value on Bitcoin",episode_title:"Understanding Miner Extractable Value On Ethereum",guests:[{name:"Nathan Worsley",profile_picture:"https://pbs.twimg.com/profile_images/1576238702908637186/xzcScTyV_400x400.jpg",ref_id:"20529242-4546-475a-af1a-125b83aedd81",twitter_handle:"NathanWorsley_"},{name:"Robert Miller",profile_picture:"https://pbs.twimg.com/profile_images/1595788538938695680/w6i5Q6s4_400x400.jpg",ref_id:"292cfadd-7e67-4e34-876b-99804d416e20",twitter_handle:"robertjmiller_"},{name:"Jordan Frankfurt",profile_picture:"https://pbs.twimg.com/profile_images/1544902585462788097/bGe0hNIi_400x400.png",ref_id:"149db25a-26b1-4f69-8c9e-ec87e08ab8c8",twitter_handle:"jordanfrankfurt"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=6IxaLCPm6_E",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"03c6b2f5-685e-4921-a230-e14e5679f792",show_title:"Compass Mining",text:"on some level the answer is very simple in terms of comparative me v opportunities and strategies and development on Ethereum other chains versus bitcoin. On another level, maybe the answer is a little bit more intricate. But my question is basically in context of everything we've described and explained and understood so far in this conversation about Me V. Like why basically are there this many opportunities and this much development attention to minor and maximum extractable value on the bitcoin chain as opposed to a theorem and other chains? And maybe to add a little bit more interesting content to that answer, like if or when would anything like that change for Bitcoin? Maybe as a preface or to set up some of your answers, I know we're seeing an increasing amount of developer attention paid to covenant contracts, bills for bitcoin and Lightning and if those reach a pretty high level of sophistication there could be some interesting opportunities for MVP on bitcoin. Right now there just really isn't that much. So I'm curious to know your guys'insights on why that is and what, if anything, would sort of be a catalyst to kind of change that situation for bitcoin miners. Nathan, maybe you go first and then everybody else can jump in. Yeah, sure. I think it's just simply a function of the size of D five currently on bitcoin and that if we see that start to change, then we'll see the me the situation starts to change on bitcoin. Really like the incentives and the opportunity from me v not entirely, but mostly being generated by DFI and the DFI economy is just bigger than Ethereum at the moment. We are seeing people starting to make inroads into bitcoin with D five development and as that becomes bigger, I think these problems will become more pertinent bitcoin. I've been philosophically, it takes a very conservative approach to a lot of these issues. So they've pushed off a little bit of the default development down the road a little bit and I guess using Ethereum more as a testing ground to see how these issues have worked out. Yes, for sure. Robert, go ahead. Anybody? I think Nathan hit the spoke to it very well, I think. I would also note that there's more mev on bitcoin than I think bitcoin is like to acknowledge. In particular, there's a lot of griefing vectors that you can make money if you assume that you are a counterparty in a channel and a minor in the lightning network. So you just grief. Your counterparty take a lot of their money and I think most of that payment ends up going into a minor. There's like a bunch of different vectors for that as possible. There's a good article on this by a lightning developer, Lisa Nicole on Twitter. And then I think that there's some mev in bitcoin that just isn't really being exercised by miners right now. And there's some sort of theoretical mev that you could imagine too. So I kind of think of if there's giant arbitrage opportunities between centralized exchanges and you really wanted to be the first person to make a deposit at one centralized exchange, everybody is sold. You need to get new bitcoin on boarded there. You could imagine a minor exercising their control over yeah, this is the one. You could imagine a minor exercising their control over transaction ordering to be the only party that deposits at that centralized exchange and thus is able to capture the arbitrage. Something like that. Yeah, no, that makes sense. I actually forgot about this article at Austin Bit Devs a bit ago. They mentioned this for anyone watching who's interested in lightning and also mud, which I guess the Venn diagram there might be pretty small, but it's a great read. She explains some pretty interesting concepts. Yeah, Jordan, curious to know your insight too. You and I personally offline talk a lot about bitcoin and ethereum compared to ecosystems. MVP on bitcoin pretty small. What, if anything, would change that? Yeah, I think actually, Robert, the clockwork paper that you wrote had there's a section of it that gave me, I think, a decent or a better generalized framework for thinking about MVP opportunities. And it's just that, like, every MVP opportunity is like highly context dependent. And when you have a chain like ethereum where there is more context, like there's more state that can be manipulated, you therefore will have more MEB opportunities. So in the state, or in the case of bitcoin where you're primarily just managing transfers and just etxo's everywhere, there's a much simpler state surface on the chain than there is on ethereum. And ethereum is like orders of magnitude more complex and therefore creative people can find more interesting things to do to manipulate. So that state surface might change. For bitcoin. With ethereum, there's obviously certain changes that are happening with like, channel disputes and we'll see if there are more in the future. I'm sure that people are going to keep building on bitcoin and maybe someday we'll see some cool new opportunities arise. Maybe we should build it. Jordan. I mean, there's already plans, right, for AMM on bitcoin. I think Jack Dorsey said he's going to build it. So, I mean, as soon as that AMM is this, there's instantly mere available on Bitcoin, you can't have the AMM without having mev. It goes back all the way to that FHIR network or something like that back in 2015 that Matt Carello tried to build was that relay network. Those are also I always see them as infrastructure for maintaining mev, so it certainly exists. And James Preswich and Hustle and one other author have a paper back in 2019 talking about bitcoin mev and how that would lead to chain instability, which, Robert, I know you and I had a few Twitter DMs about. That subject like, what would it look like for transaction fees to become such a bounty for miners to start looking at reorganizing that network? Which would be pretty interesting. ",timestamp:"00:21:48-00:27:58",topics:["Bitcoin Miner Extractable Value","Lightning Miner Extractable Value"],type:"youtube",weight:10.626491547282228},{boost:0,date:null,description:"Experimenting with the Raspberry Pi",episode_title:"Reverse Proxy - #Bitcoin Nodes - NGINX is the Answer!🦾",guests:[{name:"Pedro",profile_picture:"https://pbs.twimg.com/profile_images/1395874649876140035/z-IycTAj_400x400.jpg",ref_id:"78acd8b7-3097-40c3-b626-245bc911dc49",twitter_handle:"pedromvpg"},{name:"Machankura",profile_picture:"https://pbs.twimg.com/profile_images/1536075376409059331/0zddZFmE_400x400.jpg",ref_id:"855f2d8f-2230-475d-b5c1-dcaace579de4",twitter_handle:"Machankura8333"},{name:"DJ Satoshi",profile_picture:"https://pbs.twimg.com/profile_images/915987644043030528/5nh3JQSz_400x400.jpg",ref_id:"02ae35cb-3728-441f-84c5-a8db5d9150b4",twitter_handle:"satoshi__tomiie"},{name:"Portland.HODL",profile_picture:"https://pbs.twimg.com/profile_images/1562306406526492672/LiqmI9NS_400x400.jpg",ref_id:"aaa58ce5-7907-4c3a-9881-839cd012c456",twitter_handle:"PortlandHODL"},{name:"anonsats",profile_picture:"https://pbs.twimg.com/profile_images/1601204123818401792/iQ85pwvS_400x400.jpg",ref_id:"f3bf3677-9864-4fe3-a8b0-976a67be45cd",twitter_handle:"anonsats"},{name:"₿rettInThe13%",profile_picture:"https://pbs.twimg.com/profile_images/1593104719311929345/tTSjoS2n_400x400.jpg",ref_id:"0ad02828-02ee-465b-87c6-96e559905ed8",twitter_handle:"brettinthewoods"},{name:"EasySats",profile_picture:"https://pbs.twimg.com/profile_images/1593330030905540618/ZHqVPhTM_400x400.jpg",ref_id:"d6d16cf5-4a9b-4517-897d-5cf98467ed1a",twitter_handle:"EasySats_"}],hosts:[{name:"okin@8333.mobi",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"7af60fa9-1611-4029-b691-aa1481f99062",twitter_handle:"OKIN_17"},{name:"Dread",profile_picture:"https://pbs.twimg.com/profile_images/1532557131819491328/vvs1cD-7_400x400.jpg",ref_id:"e61af76b-8fbd-4719-b753-0a70edd22fa8",twitter_handle:"PoleVaultDream"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/30180c4d-27f9-4215-81e0-6a22b16aba43.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/e464bf90-24b2-48ec-b50a-e51c45412a19/00d3308d-b0b8-452b-a4bb-6025a731c457.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"896a10a9-621e-4f5e-a8d7-d4504dffd923",show_title:"okin@8333.mobi ⚡️ 🏰",text:"Dell laptop, right? You can install NGINX on that, and then you can forward traffic through that Dell laptop into a Raspberry Pi that's running another node for you. You can do literally whatever. You can create this mangled net of whatever you want and point anything to anything internally. It typically works. There are a couple of caveats, but overall yeah, you don't even have to have it running on the same machine. Just the traffic has to initially hit NGINX first. That's the only requirement that it goes through NGINX first so that it can get routed. Blessings, blessings. I'm just going to have so much fun. Wow. Do it. Well, the Dell laptop is currently not a laptop anymore. That is an embassy node. As Dread said, once you use the X 86 hardware, it literally you put another OS on it. So it's running. I don't think it has any access to terminal anymore. But I do have my 20, my 2011 2010 MacBook Pro. So that one I'll probably do it. On, and you can still SSH into it and you know, you I mean, you still have root access to your machine, so you could do whatever you want. Yeah, you still do that's true experiment? Yeah. Go for it. Portland. Oh, I was going to say, as a note, we kind of mentioned earlier that Ram was one of the biggest factors as part of the IBD. So the initial block download. So when your device downloads the Bitcoin Core client, then you got to sync it up. My experimentation on specifically the Raspberry Pi is that the Raspberry Pi is not memory limited, it's processing power limited. And that is due to the Secpk basically message the elliptic curve cryptography that is happening, the processor literally cannot handle that amount of processing quickly. Like it takes forever. And I did this by doing the Perf tools in Linux and basically watched for which functions it was calling the most often. And the two of them were basically some square operations for that encryption library and some multiplication operations that were just getting ran again and again and again. And that's why on these Raspberry PiS it makes sense that they typically with the initial block download, it does really good until you kind of hit like 2017 or block right around like 500,000 or so. And then Seguit comes in and you start getting actually like complex transactions in there. And that is because it's spending so much time processing all these encrypted messages and validating that they're all valid. And where that goes is x 86 hardware is so much faster at doing these operations and that's why even installing bitcoin core and downloading these initial block downloads over on these x 86 machines that aren't as small as the raspberry pi. But it's so much more performant is because of the fact that these machines are so much better at handling these kind of operations quickly and efficiently. The Raspberry Pi just sits there and churns and churns and churns. And that's why even towards the very last part of the IBD nowadays, usually like the last like 10%, it is just excruciating while this little pie is just churning numbers all the time. And whether you have 4GB or 8GB, I found does not matter one bit. Both still take a long time. Two to four is a difference, I will note that. But four to eight, there's no difference at all. That's interesting. I had a different result because testing all the embassies we've had to down, I've done like 20 IBDs in the last month, and I have a Raspberry Pi for four gig and a Raspberry Pi for eight gig with the exact same config set up on the embassy. And the four gig took usually between seven to 14 days to finish. To your point, excruciatingly slow for the last 5%, but the eight gig actually did it in 72 hours, sometimes a little bit less in some cases. I'm not sure that's because we cranked up the cores in the bitcoin.com, but it definitely moves faster than the four gig for us. I would like to look into this because my theory was based on one thing as well. So I looked at the memory usage and both for me, this is just bitcoin core. I'm not running a suite on top, right? So I'm just running bitcoin core. Both Raspberry PiS basically tapped out at about 2.7 to 2.8gb of memory usage. So that was kind of like I double checked and that's why I ran the perf tools, is to verify that what's actually going on under the hood here. And I verified same SD card in both of them. So they both have the same transfer speed. The memory isn't being used. So my thought is like, tell me if I'm wrong here, but if it's only using 2.7 gigs and both are taken like you said, it was roughly about two weeks to complete on both the four and the eight gigabyte, and it's not using the extra Ram. That's why the results are roughly the same, I believe, but those are my thoughts there. Even if you get eight, it's not going to touch that amount of memory. Have you measured the memory usage when you're doing these IBDs? Not going to remember. I remember they were both being maxed out on the processing power, but the memory usage, I don't remember if it was using more than 2.7. I didn't check it. But the one thing that I was going to ask you is, did you tinker with the bitcoin.com any at all? Did you try to change any of the settings? There no okay. On my actual production node I do, but on this, for this experiment, no, I did not. And I actually have a nice little write up on my Twitter where I also compared this to the IBD on some X 86 architectures as well as the IBD on different types of devices, HDD, SSDs and 2.5 inch 5400 rpm laptop drives. This was just like a barrage of different tests I was running on these to see, like, okay, where is the Achilles heel in the initial block download? And one thing you noted thread that I think points to my theory being maybe more correct. And again, anybody come up and tell me if there's a reason why this is wrong? You mentioned that the Raspberry Pi processor was at 100%. That's the bottleneck at that point, right? That means the car is floored, it can't go any faster. And those Raspberry PiS between the four and the eight gigabyte are basically the same frequency. So I don't know unless there's some other little bottleneck or something that I could be missing that the limitation at that point is literally how many cycles does it take to complete this total download? And that is if you're running at 100% CPU, which is the case. That's why I experimented with this, is that, yeah, the CPU, it's bound to that. That's as fast as it can go because it's using all of the resources of the brain to do it. Yeah. I would need someone smarter than me to tell you what resources are being used to make it go faster in each case. But what I can tell you is that in the conf, I would tinker if I were you. I tinker with the RPC threads, the threads that are used to handle and also tinker with the work queue to service the RPC calls. I think those two settings and the configuration might boost even though the processing power is maxed out. I'm not sure how it goes faster, but it seems to handle the heavier blocks better. It's almost the same speed for the first four years of IBD. But after that, it seems like if you increase the work beyond the queue, the work queue and the threads, it seems to speed up on the bigger blocks. ",timestamp:"01:47:37-01:55:51",topics:["Raspberry Pi"],type:"twitter_space",weight:10.239102840423584},{boost:0,date:1671735703,description:"What is Difficulty Adjustments?",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Pysh, Booth, BTC Ben & the Plebs! 🍻😂",guests:[{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"},{name:"Brian",profile_picture:"https://pbs.twimg.com/profile_images/1589300685182570500/cTffQlpJ_400x400.jpg",ref_id:"b167b1cd-bbce-4839-a03c-194f006f954d",twitter_handle:"BrianTheDrumer"},{name:"BTC Ben",profile_picture:"https://pbs.twimg.com/profile_images/1348015880664473610/S-uDNLlZ_400x400.jpg",ref_id:"2c95b3dd-e3a2-4cf0-a49e-a8915d2bfcd5",twitter_handle:"bensemchee"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"78672de6-3c5f-4d95-8fd9-f2b512fa7a04",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/dbc5dd26-2307-4f64-a377-105e2a277d9c/be3d47a7-2fcd-4de8-8f22-71851953d022.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"17d338d5-a11d-405f-bbc1-257b4e145723",show_title:"PUBLORD",text:"I tried something new out. I just put out the first little sort of educational thread from the time chain calendar account. It's the last one on the next at the top. It's only four posts really short. It's just a little explanation of the difficulty adjustment. I'm just floating it out there. I want to see if anybody appreciates that, if it's useful to anyone. I want to start basically sort of attempting to describe the most important aspects of bitcoin in these very small bitesized chunks that people can hopefully wrap their head around and then put those things together and have a better understanding of things like city showers. He might appreciate it. He might need to update his mental model of what the difficulty adjustment is. Difficulty adjustments means, for example, instead of just talking bitcoin, like, do something with a bitcoin. I'm just setting up my new hosting service in Europe, which is going to provide self custodonial virtual private servers with the preinstalled BTC pay server, whoever is interested to I'm still not going to announce the official link to the website because I'm working on It hosted service for self custody. So it means like no. Is that not an oxymoron? No, it's no KYC. Because me, as a hosting provider, I'm just dealing with infrastructure. I'm not holding the code. Yeah, but if you're providing the infrastructure, how is it well, that's really stupid of you to say that. If you were like an It guy, you would understand. That's funny. I'm speaking English. It is my native tongue. Try again. City show. Here's the thing, my man. Go ahead, hit the little mute button. I muted you for a second there. You can unmute yourself. Well, that's the thing about custody behavior. Like in these democratic spaces where everyone can vote their opinion, there is always our it's not democratic. We're having a party. We love to talk bitcoin, we love to meet new friends. Same thing. But the warm welcoming from the Pub Lord was like really unnecessary. Whoa. It wasn't Puppy. It was TC. Man, puppy has been quiet. This is TC. I like to mute people when it gets out of hand. Sometimes it's as simple as just something absurd has been said. I haven't said a word yet today, but what's up, Pubby? How are you doing? I'm doing good, man. We're off to another rousing start like we were yesterday. Yeah, goers. I really do want to know truthfully. Please. How is you hosting a service, self custody, for anyone? Because you own the root privileges to that server. So it means you are the only person who is in charge of that instance. So whatever happens with that instance is up to you. I'm not managing how do I know you don't have the root credentials? Well, it means like, if you're running a route and you can check out the ch root group, you can only see that you are the only user in that. Right, but if you set it up, how do I know you don't have the same credentials? I don't have the credentials because when you spin up the template of the OS, for example, Linux instance, or whatsoever, you are the only person who can access the server and manage it on the root level. Wait, so you're creating software that other people host themselves? No, the software has been already created by the community. Of course it's open source. You can check it out. Go on to Btcpaserver.org. I know. BTC pay server. I'm familiar with BTC pay server. Yeah, to promote a bitcoin and to teach people how they can manage their own funds. What part are you hosting? That's the only part I'm trying to understand. I'm just hosting the machine like CPU Ram and the storage space. That's it? Yeah. So how is it self custody? Well, self custody is because you're going to have a ledger wallet being connected with the BTC based server. So you're going to think, no, run away. Anybody that's in public, in the audience, listening, don't do that. That's a bad idea. Why not? Because you're trusting a third party, and that goes against the whole self custody thing that PC is trying to point out. Well, if you're going to host your own BTC based server on your computer, on your home network, if you think that's really smart from the security perspective, I'll go ahead, my friend. Once when you wake up with some Chinese IP address on your Zix or router because your telcos are not updating their boxes and you lose your so I have to trust you. No, you're trusting the tier three data center level of security and their architecture behind. Okay, so I have to trust someone, though. Well, are you not trusting, satoshi Nakamoto, that there is no American government, there are no private keys, like of the majority of the bitcoin network? Maybe the feds? Do you think they have the master key to shah 256? Do you really think that the banks have allowed bitcoin to exist and to convert? Bitcoin needs permission from the bank, okay? I mean, you can swap pictures of a hotel. The banks have to give permission, or the government has to give permission to bitcoin. Is bitcoin asking permission? Well, you can exchange and swap the pictures of hot ladies with your friends. No one forbids them. All right? This guy is not serious. Puppy. I don't know what to say. There it is again. Why is it two days in a row, man? They just come in from everywhere now. Wait, what about here's the advantage of toju you know what the funny thing is? You're treating bitcoin as I treat the IPV four layer, or IPV six, with SSL encryption only. It's a better way to encrypt it, and it's another layer on the network. You're just talking about the network infrastructure, and you make belief like value. Oh, we believe in God. We believe in bitcoin. Well, it's okay now. It's 16 grand bitcoin to the moon. 100,000, 1 million. It's a perceived value. I'm not against it. I'm just saying I'm dealing with bitcoin as a technology. You brought the server, man. Listen, what you're offering up is centralized, dude. I would rather centralize. You said yourself I have to trust the data center provider and their equipment and their good faith, and that is completely against the tenets of bitcoin. Don't you get it? Do we need to draw it up on a little board so you can get it? No. You can take your computer and you can put it in the living room. Or you can take your computer and put it in, like, your basement. Or you can take your computer and put it in your neighbor's house. Or you can take your computer and put it in a cloud or so you could just do either of those and just keep your fucking seat phrase in a place that no one's going to find. The stamped like titanium. And then that's your fucking bitcoin. You don't need to fucking put it anywhere else other than a place where you have it. I'm saying you can run a lightning note and you don't have to use the same bitcoin address to receive the funds, but still, you're going to have to allow the technology and instruments of trade to exist somewhere. I say only that's better if you have a root privileges on your own box. Are you new to bitcoin? Are you an It guy that just found out about Bitcoin, like, a year ago? Don't be ridiculous. Come on. Oh, so you're Satoshi's son. Okay, I get it. No, I'm a Commodore 64 guy and like, Cube Basic, literally before the 90s, so you can speak whatever you want to enter. A piece of shit. You sound like someone that gets very technically well versed, but it has no idea of bitcoin and how it works and the philosophy behind it. I know that only if you want to receive the bitcoin for your services. Downloadable digital products. I'm not saying about the physical goods because it's stupid. ",timestamp:"00:07:11-00:16:55",topics:["Difficulty Adjustments","bitcoin payment"],type:"twitter_space",weight:25.58466473425889},{boost:0,date:null,description:"Governments attack on Bitcoin and anonymity",episode_title:"Café ₿: #Bitcoin News & Trusted P2P Reviews w/ @Apollosats",guests:[{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:"@FossGregfoss",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"09913e9b-38dc-4465-9d4d-ae0c9ba9eeca",twitter_handle:"Fuckkkk"},{name:"@w_s_bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"b178b239-3b18-4a16-9d43-c5d15ba6f7f4",twitter_handle:"w_s_bitcoin"},{name:"@NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"4b6997e1-ce0b-4a1d-90e7-dbaccef4b783",twitter_handle:"NeilJacobs"},{name:"@brandon_gentile",profile_picture:"https://pbs.twimg.com/profile_images/1561369452284895236/-8WgdwEm_400x400.jpg",ref_id:"f940c5e8-4808-4197-a38f-3f19d311a7ad",twitter_handle:"brandon_gentile"},{name:"@apollosats",profile_picture:"https://pbs.twimg.com/profile_images/1576946734927794176/2ail9FoU_400x400.jpg",ref_id:"74f4280f-5fdb-4bbc-aee2-a2ed32d64372",twitter_handle:"apollosats"},{name:"@StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"6e652629-38ec-49d8-9f5c-3ba28f80c799",twitter_handle:"StackchainSig"},{name:"@TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"7af639f8-8c5c-4ce1-a43b-e8560ed40e2b",twitter_handle:"TomerStrolight"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7cf57bdb-c905-46e3-a7e5-4c0bfd4f8d04/71c08fae-cce8-4600-ab9e-758420e78dcf.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"75ac478b-3dfa-45a8-9fa0-cebaacccfc05",show_title:"Swan.com",text:"if you're from anywhere in the world, the same logic applies. It's starting in the EU. But don't be surprised when the same type of Draconian laws and the rules that they're trying to implement around Bitcoin spread around the rest of the world. Because the legacy system is losing, right? They've already lost. They just haven't realized it yet. And so once they start to realize it, we all want them to surrender and to adopt this new standard which will bring about peace and prosperity to the entire world. But it's very likely they won't, and they'll go down kicking and screaming, and when they do, they're going to try to claw back as much power as possible that they've lost. And in an attempt to do so, they're going to make it very difficult for you to acquire bitcoin, most likely. So it's kind of now or never. Like, you don't have much longer to build your stack and take it into self custody, at least not to do it easily. It's a exit. Lagarde talked about this, Madame Lazard, where she was like, there can be no exit, basically, because if there's an exit, they can escape or control the lizard people system. It just feels a lot like the Drowning Man, you know, grasping anything they can and that will end up being just keeps feeling like that. What cracks me about this is that a lot of this kind of stuff was basically in the yea zone two years ago. Like, all this was, like total conspiracy tinfoil hat shit. But as it turns out, it's all real. Those conspiracy theorist guys were right. You know, what happens over time is that overturn window shifts little by little. And the stuff that people used to say, wow, that's crazy. You know who says it's crazy? The lizard people. Because they want you to think that the people who are calling them out for their crazy are crazy. That's called gas lighting. Doesn't help when you keep calling them lizard people. But no, I totally agree. I do that on purpose because I know it triggers the fuck out of people, and I don't care. How does Europe get there in the first place? Just what platitudes over principles? First principles? I guess just in the last decade or two of energy policies. I mean, my gosh. Neil Jacobs, you've been very quiet this morning. You have anything? Thoughts? No. Stage camper. Hey, guys. He is there? No, I had to shut my door. I had to shut my door in my office. What's up? What's going on in your world, Neil? Nothing, just listening in, keeping up with all the bitcoin news. I find it really interesting that there was that Reuters story about prosecutors at the Justice Department saying that they have enough evidence to criminally charge Czech. Yeah. So you haven't seen this? I heard a rumor. I didn't see it. Tell us what you tell us. Well, basically, they've been investigating finance since 2018. So this isn't a new thing, just that they violated certain anti money laundering laws. And there's a lot of conspiracies, obviously, on Twitter of why it was leaked. Now, apparently the prosecutors at the Justice Department are kind of split on whether they should file criminal charges or not, and there's prosecutors who think there's plenty of evidence to do so. So maybe there's some disgruntled prosecutors who wanted to get the message out. And there's a Reuters story on it. I could find it and pin it. This is binance us only. Correct? I don't know if it goes back, it doesn't have to be by 2018? I don't think so, because I don't think Finance US existed in 2018. Yeah, that's just it. That's what a lot of people a lot of people may assume that for the US to have jurisdictional authority over an entity, it has to be a United States company. That's not true. As far as the US is concerned, us regulators have been doing this for a while. They basically said, if what you're doing interfaces with US citizens, we have jurisdiction. Right. Even if you're in another country. Now, again, the question becomes, well, how do you enforce extra jurisdictional authority? Well, the US figured out how to do it because they weaponized the US dollar to do it, and that's the reason they were able to get away with nonsense. So when other countries try to do it, can they do it? I don't know. That ultimately comes down to cooperation. Right? So if one country goes to another and says, hey, you have a guy we think is a criminal, hand him over, that's called an extradition agreement. They have to agree to do that where the US has just gotten so used to beating up the whole world with the US dollar stick, you don't comply, we're just going to turn off your US dollar payment rails and then you're screwed. So I pinned the Reuters article at the top if anyone wants to read it, find out a little more details. Yeah, it's fascinating. The question to me becomes, are they going to be able to find him? That's a good point. I just heard a lot of people saying, oh, they're thinking about charging him, why not SBF? It's like this investigation has been going on for four years, so you could say the timing is curious, for sure. I don't know if there's some conspiracy here. I don't know, man. I learned a long time ago, I used to second guess my suspicions. And then I learned from Jim Rickards, there's no such thing as a coincidence. At least that's what they're taught. Like intel officers respect the coincidence. Because if there's a coincidence, there's a chance there's something there. And then the other side of that is growing up in the hood, I suspect everything. Brandon knows what I'm talking about. It's not necessarily a bad thing. It's a crucible, baby. It's crucible 100%. If you put it in the crucible and you love on fire and you burn it and you purify it and it turns out it was bullshit, great. But if it turns out it was something, well, then, hey, sometimes people don't like it. When I talk about stuff that's getting into that yeastone window. I get taddled on. I feel a separate spaces eventually, alex is that what you're saying? No, it's not what I'm saying. Cory gives me pretty wide latitude. I mean, he mentions to me when I get tattled on, but he doesn't tell me to stop talking about what I'm talking about. You do a job threading the needle. Well, okay, so here's where I draw the line. I don't want to hurt Bitcoin and I don't want to hurt Swan. So if there's something that's potentially going to be damaging to bitcoin or Swan, I probably won't go there. But as you well know, there's lots of stuff that in that gray zone. Over the target, sir. See, that's what I'm saying. If it's over the target, then why not? To me, that's fair game. Because this is what I think. This is just my opinion. Some of you may think I'm crazy and not like this, and that's okay. I think the lizard people already look at it like they're at war. It's just we haven't figured that out yet, and they're not playing by the same rules. Until we accept that as reality, we're going to be on the back foot the entire time. Well, you're spot on in my opinion, because Greg touched on this earlier, right? It's we are what the 300 billion market cap. It's a rounding error, and we're that small subset of society. I rate transient minority that's feeling that way and understand that so few people get that. I think we get that. And then, like you said, the lizard people get that. But eventually, as we know, bitcoin changes you. And more and more people, as they come into the space, as we've all seen as bitcoins all changed us, they start thinking more like us. And it's the number responsibility go up technologies, as Vesky says. So people start coming into our thinking and into exactly what you're saying. Alex well, it's not really even our thinking, I don't think being responsible is like a tribal thing. It's just good for humanity, full stop. There's nothing wrong with that. Correct? Rob Salt. And good morning. I suppose you have something to add to this. Yeah, what I was wondering is the conversation seems to constantly get brought up of how anonymous are we on bitcoin and they're going to be coming after it and this and that, and I just think to myself, how many options are there to be anonymous on bitcoin? Is that really even a thing? Because last time I checked this ledger system, it's both a big net positive and a huge net negative as well. So the ledger system, it's almost like the perfect way to be having money of the future that is governed money. It's like being sovereign. It's not going to be the first ten years of adoption in bitcoin. Seems being sovereign is going to be about 50 years down the line when we're in a hyper bikinize world. If that does happen, a game theory out in my mind, it's almost going to be used against bitcoiners, it seems like, in the very beginning. And I think they're starting to realize that that this ledger. So it's like the best thing, if you want to really onboard bitcoin and you want bitcoin to get adopted, the best thing you can do is get rich in a legal way. I'm just being dead point blank serious about it. There's so much I hate, man. I got my .2 bitcoin in cold storage and I got it non KYC. It's like, no, the best way to get this to adopt is to become a multimillionaire, get rich and do it in a legal way and pay your taxes on it, be smart about it. There's ways to build corporations, there's ways to do things in a smart and efficient way, but more bitcoinners need to get filthy fucking rich. And I hate to be like the guy, the bearer of bad news, but that just is what needs to happen for it to get adopted, it seems like. Because this whole non KYC stuff, I don't think it's going to cut it. I think it's going to get used against them. So I don't know, it's kind of what my it might. Sure it might. But the question becomes, how enforceable is it? That's really the argument. I don't think there's a question that there are tools you can use for privacy in bitcoin. It's so what rob said, like, will the privacy be used against people? I don't know. The exchanges that we bought our bitcoin from, I know there's going to be some select few that were in very early from mining and things like that. But for the majority of the exchanges you bought the bitcoin from whether it's cash app, whether it's swan, whether it's coinbase, wherever it's from, if they come to your exchange and they say, hey, we are now legally requiring and they probably already have done this. Someone can correct me if I'm wrong and say we need their Social Security number of every single person that has bought Bitcoin from your exchange. Yeah, sure, Rob, but I mean, that's the beginning of a pathway that potentially leads into the mist and disappears. Like, you're right, KYC exchanges. And you know what? The exchanges have been warned for a long time that eventually they're going to have to give up their customer lists. Right? But when I'm talking about privacy tools in Bitcoin, what I'm saying is there are ways to break all of those links and the question then becomes, if you choose to break those links, what then happens on the other side of that? We could go ahead and then we'll go TC yeah, so a couple of points here I agree with Rob. Like, I think, first of all, if you're trying to come in into Bitcoin in size, non KYC is not an option. I mean, go try and buy a million dollars with a Bitcoin. Non KYC ain't going to happen. And even if you're able to find a buyer, a peer to peer or seller, rather peer to peer seller, you're still trying to leave the legacy system with a million dollars. You don't think they're going to fucking know when you take that million dollars out of the system and then transfer it. That's just crazy talk. And then number two, in terms of privacy, this is something I used to be pretty worried about, but I'm honestly not worried about it at all anymore. I'm very bullish on Fedramps. We have yet to see if they actually play out and work the way that we're being told they're going to work. But if they do, we're talking about fucking perfect privacy. We're talking about us setting up the Cafe Fediment, which we obviously will do, right? I mean, Alex will be a guardian, aunt's going to be a guardian, so we're going to have trusted second parties. These are people that we know we've met in person because we went to Pacific Bitcoin. They're trusted second parties. Guardian setting up a guardian system, multistic system, protecting all of our Bitcoin. And then guess what we can do inside of that mint. We can fucking transact with each other with perfect privacy and nobody can see when we pass SATS back and forth, which, by the way, will be instant and free because you know how we do on Cafe Bitcoin. I'm not worried about the privacy aspect of it at all. I think the tools are going to be coming soon and I'm hopeful that they're going to work as advertised. And anyone who's going to try to track what we're doing are going to find themselves kind of at a loss once these tools come online and we have these second layers that allow us to basically fucking put the big old middle finger up to one. We got about four minutes to finish up on this topic and they're going to be introducing a featured guest here. So let's TC, what are you thinking? Okay, I'll just keep it to the one point. I was going to make two points, but my point is really, I disagree wholeheartedly with what Rob is saying. The public nature of the bitcoin blockchain is an absolute feature and it's not a bug and it's not a problem. Part of the reason that this system actually works for a new global monetary system is the fact that anybody can audit it. The fact that if I do a transaction with you and we don't know each other and you're on the other side of the planet, you have just as much visibility over that as I do. These are absolutely essential, non negotiable features of bitcoin. And that being said, you have to keep in mind, too, that there's a real distinction between the information that's outside of bitcoin and the information that's actually inside bitcoin. There's no names or addresses or phone numbers or email addresses or photos of your face on the bitcoin network. You have to keep in mind that there's a really clear distinction between what's on chain and what's outside of that. And then the last thing I'll say is that just even if somebody knows what you have or what transactions you make, there's a big leap between that and what any potential consequences might be, both from the point of view of laws and regulations and anything you may or may not have done wrong. And then exactly what Alex said, which is the enforceability of all of this. So I think, Rob, you did a great job scaring a bunch of people. I wanted to kind of counter that and remind people that this is not a problem or a bug or something broken. Just to be clear, I said people need to get wealthy in a legal way so they can legally own large amounts of people need to take their money that they earn and they need to save it in the right format so that it actually is theirs and it actually has some purchasing power in the future. This is not about everybody needs to be a millionaire right now. That's not the right message. Yeah, I would like more bitcoinner to be millions. I definitely stand by exactly with what I said. More bitcoinners do need to be millionaires. That'd be a great thing. More bitcoinners do need to own businesses in a legal way. That'd be a great thing. Less bitcoiners need to be sitting there with non KYC bitcoin and being excited about it. Even if bitcoin goes to 10 million, a lot of bitcoinners still won't be rich. And they'll think they're rich in their mind because they have 0.1 bitcoin non KYC fiat. This is such a Fiat mindframe. This is garbage, dude. Where are you talking about? Decent? Okay, let me say it in a nicer way. What are you saying to a person that works hard? Maybe they have two jobs and they're just paying their bills and they're just getting by and they are diligently stacking SATS and saving, and you come to them and say they need to be a millionaire. What does that do for them? What's the actual point there? Okay, you guys are talking past each other. You're both right. Relax. I understand both of your points of view. I get it. There's a place for both of you in the world. You're both correct. Let's leave it at that. There's no point in we don't have time to cage match. Like, if we had another 20 minutes in the show, I'd be like, Go for it. But we need to move on here. We could go yeah, I'm just going to wrap a bow on this. We're all going to be Fiat Millionaires at some point in the future. It's not a matter of if, but when. Right? But the thing is, that million dollars is going to buy you a fucking gallon of milk because it won't matter anymore. You've all seen that cartoon where it's, like, showing the different stages, like, decade over decade of bitcoin, and it's like Fiat Millionaire on the left and then bitcoin on the right. And as each decade progresses, the millionaire gets poorer and poorer until the end, when they're living in a beat down house with broken windows and shit. And then that bitcoin on the right is living in the castle at the end. I mean, that's basically where we're headed. Fiat on the left and bitcoin on the right. With Fiat, a million dollars is constantly getting devalued, debased, and eventually will be worth fucking nothing. So I'm going to be millionaires eventually, I won't get a million bucks and instantly turn it into bitcoin today. Yeah, exactly. I love that. Meme, like, at the end of it, it's like I heard he's a bitcoiner there's another one with a bubble. It's a bubble. It's a bubble. It's a bubble. And in the end, he's like living in a dome with a whole beautiful existence inside. It's a bubble. Yes, it is a bubble. ",timestamp:"01:26:29-01:46:21",topics:["Anonymity"],type:"twitter_space",weight:10.214787483215332},{boost:0,date:1671644776,description:"Thoughts on how Bitcoin may evolve over the coming years and would have a high price",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/885fe09b-bb21-49a5-8667-3c73ed36918f/196dc1e8-c7a4-4dc7-902f-d00107aefb42.mp3",node_type:"clip",pub_key:"0372cd0c8469f2034336a243e018d4d60e07efef8e7d10417807da1173bd5b002f",ref_id:"ee9d0400-3d38-46f6-9741-f99864e86ed4",show_title:"Geyser 🌊",text:"is Christopher from bridge to bitcoin. Hi guys. How is everyone this evening? Good to be here. Great to join you guys in your space. So thanks for setting this up. Mick, apologies for joining late. So apologies if I go over ground that you've already talked about out. Oh, no, don't worry. Sorry for tagging you last minute. No worries. Thanks for tagging. It's been great to speak with Connet. And also I just want to bring it back. Well, actually, I'll start off by saying congratulations on getting 30 projects listed this week on Geyser. That's fantastic. That's really great. And just to resonate with what Connett was saying in terms of things get built in a bear market, I think it's fantastic. And you guys are really promoting it. So thank you for everything that you and the Geyser team are doing, helping people, or Bitcoin is build in this bear market. Because for me, for the rest of the team, it's really important that we build foundations now so we're ready as the ball comes out. It's fantastic to see. So for those who don't know about bridge, for those who don't know about bridge to bitcoin, we onboard merchants to accept bitcoin payments. And we received a grant from Geyser early this year. I'm ashamed to say we haven't yet, and it's been on our to do list for weeks, months, to put up a project, a crowdfunding project on Geyser. And we should really do that soon. But, yeah, we'll get that. It's definitely on our to do list. So we hope to do that soon, especially now, as you say, Nick, the ease of putting up a lightning address. And that makes it so easy, as Joe Nakamoto tweeted about earlier this week. So we shall definitely get on to that. But I just want to go back on what I heard Mateo from Orange Pellet talking about, because he dropped off the call now. I think he has. That's a shame. But I really resonate with what he was saying in terms of how. For. Us, onboarding merchants is one of the cornerstones of Bitcoin success, certainly from my perspective, and making the user interface really easy is really important. I sort of resonate with what Mate was saying in that I think most people are currently not fussed about decentralization, they're not fussed about privacy. We as Bitcoin as are, we get it, we've been down the rabbit hole. But most of the society, they want convenience, they want ease. And that's unfortunately why I think CBDCs are going to hit hard, because people won't do their homework, they won't do their research, people are going to welcome it with open arms, unfortunately. So for me, merchant adoption is really important and introducing that in a way that's really easy. So the way we do that for Bridget to Bitcoin, ironically, it's not Bitcoin that we're selling merchants. For us, it's about creating additional revenue for them by saying, oh, hi, guys. Hi, merchants. What we're going to do is we're going to create a new customer base for you called Bitcoinners, and they're going to come and spend their currency for at your shop service and it's going to create additional revenue. And so for me, it's a slow orange bill, because what happens is a lot of these merchants get bitcoin is coming and using their services or buying their products, and we as Bitcoin as we're fantastic customers. We're so enthusiastic. We travel miles, we buy stuff from all over the globe, we get it shipped over, because you as a Bitcoin business, we want to support you. But if you're new to Bitcoin as a merchant, you kind of get overwhelmed quite quickly with how much attention you get by accepting Bitcoin. And it's great, because what that happens, and what we've evidently seen is that those new merchants suddenly get this influx of bitcoiners and it leads them down the rabbit hole without us having to do anything. Because bitcoin is they make an impression because we're such happy people, especially in these economic times where everyone's feeling the pinch, we will go that extra mile, literally, to spend our bitcoin, to spend our SATS, and replace them. And we're happy about it. We're more than happy, we're enthusiastic. We're the best customers you could ever have. That's amazing. For me, it's kind of a cornerstone of how we can it's sort of a Trojan horse. Trojan horse orange pill. So we're going around to regular businesses so who don't even know about bitcoin, and that's what we're planning on next year. We're going to trade shows. We're just to speak to regular people. We've got no idea about bitcoin, and we're going to talk to them about this fantastic payment processing network called the lightning network. And bitcoin normally is quite late on in the conversation, actually, because as everyone, I think, on the call knows, the processing fees on the lightning network are next to zero. They're really cheap compared to what our fiat counterparts are charging. Plus we've got instant settlement, all those fantastic things. So we talk about it's really interesting. We talk about the payment rails. That lightning network is a payment rail and how better than it and eventually we get to the bitcoin piece. But, yeah, for me, it's about making their businesses more profitable, having additional revenue, and it's fantastic because you literally see them fall down the rabbit hole. So we had that recently with a small chain of pubs, just two pubs that we onboarded last month, I think it was last month or the month before. So this landlord, he owned two pubs and he was not a bitcoiner, and he was not interested in bitcoin. But when James, my partner, said, right, we can bring extra customers to your pub, they're called bitcoin as, and they will spend their currency, but it will create additional revenue, he was like, fine, okay, I'm not interested in bitcoin, but I am interested in additional revenue. So if they're going to come and spend their currency and I can give it to my local currency, great, because it's good for my business, I said, fantastic. Do you set them up with the bdcpa server or what is it that you guys do? We look at the plethora of solutions that are currently in the market, depending on how that particular business is structured. Depends on which solution we sign, post them towards. Generally, the smaller the business, the more options they have. As the business gets bigger and more complicated, it sort of narrows it down quite quickly. So as a one man band, as a mum and pop shop, with just maybe one or two employees, you could literally just have a wallet satoshi, especially if you're just a guy who runs a food truck, all you need is a wallet. Satoshi really, isn't it? Just sat that on your phone because it's you. But as the business gets bigger, it gets more complicated, because you might be looking at multiple employees, multistate. You might have a board of directors who want to have multistake and so on. Yeah, I was also thinking for, like, exchanging back from Landing to Fiat, how would you guys recommend they do that? So in the UK and Europe, you can use a service called Coin Corner, and we'll help you get set up with that. Outside of Europe, we're speaking to IBEX, so we love the IBEX team. IBEX are looking at coming over to Europe, so fingers crossed that hopefully they'll have that flipping service, as I call it, hopefully in 2023 at some point. So I think that we'll see more of this, because for us, what our push is, especially when we're going to the likes of Coin Corner and IBACs, what we're saying is it's really important for merchants at the moment, in these early days, that there is this ability for new businesses to flip into their local currency. But having said that, coming back to my story about the pub for this landlord, not interested in Bitcoin at all, and we said, that's fine from my perspective, I don't mind that because they're adding to the liquidity of the lightning network and the liquidity of Bitcoin because they're a new merchant. That's absolutely fine. That's great. Another business that gets bitcoin. That's fantastic. So we set him up in his first pub, put in place his point of sale devices, made sure his admin console was all set up and everything was fine. And then two weeks later, we went to his second pub. And bear in mind, we hadn't spoken to this landlord during those two weeks. So we set him up in his first pub so that all his transactions, all his sales that he was receiving, flipped instantly into the local currency. So he wasn't holding Bitcoin on his books or balance sheet. Not interested in bitcoin. Two weeks later, we go to his second pub to do the same again, put in place the hardware devices, set up his console, make sure he's happy with anything. He came up to us completely unprompted, and he said to myself and my colleague James, he said, Kristen James, at this pub, I'd like to hold the Bitcoin. I don't want to flip it into the local currency. And we said nothing. Bear in mind, two weeks beforehand, not interested in Bitcoin and just wanted Fiat currency. We said nothing to him in those two weeks. For me, that's a really good example of how Bitcoin is coming into the past have set him off on that rabbit hole journey. And for whatever reason, Bitcoin is coming in, as I say, being enthusiastic. He's obviously either spoken to Bitcoinrs or he's read up and he's realized that there's value. And that's why I say it's a really soft orange pill and it's really valuable because we're not having to orange pill individuals. It's almost an organic process and it's quite controversial, but I think that the way we orange pill individuals is wrong in so much. It's really resource heavy and it's quite cultish, isn't it? We come across as cultish very quickly. We meet new coiners or complete newbies, but this merchant adoption is a really soft orange pill Trojan horse. And that's why I say when we speak to the likes of IBEX, what we say is having that ability to flip, to offer that service, is really important to get our foot into the door for merchants currently. And then what we're finding is merchants are going, actually, I get bitcoin now, now I want some bitcoin. And so it's really interesting, I was just leaping that back to what Mate was saying in terms of how we need to make the interface easy and effectively smooth and almost non threatening, because the services we provide run alongside the current systems that merchants have. So at the moment, we're not replacing anything. So we come in and go, this is a bolt on for your service, for your product, for your shop. We literally bolt it on and it provides you additional revenue. And the same for Ecommerce, it's a plug in that just bolts on, you don't have to change anything, swap anything out, it's just an additional service that you can have to create additional revenue for your business. So, yeah, completely agree with Mateo. If we need to get the UX and the UI really smooth, make it really non threatening, really simple. So, yeah, I'd love for more projects to help with that, that would be fantastic. And then hopefully what we're seeing is they fall deeper and deeper down the rabbit hole really quickly and they turn into bitcoin really quickly. But. Yeah. Thanks, Mick. Thanks for everything that guys are doing. I'm loving oh my God, thank you, Chris. I'm loving the building that's going on. And we've also launched another business, actually, me and the team, and we take on a couple of other people and we're probably going to put this on Geyser as well. But we've launched and you've seen that, we've given you a cardmaker, laser Eyes cards. So if anyone on the basis is listening, check out Laserrise cards, send Twitter handle. They're essentially Bolt cards, but they're completely blank in terms of the electronics in them. And you can do what you like with them, so you can link them to your own node and your own wallet, or you can use a custodial service like Coin Corner, but there are risks, of course, because they're an exchange and so on. Get money off exchanges, yada, yada, yada. I won't go on about that. But you can do what you like with them. But the unique selling point is that you can have whatever images you like on your cards. And we've got a gallery on our website and they're called laser eyes cards because we put places on them. And the idea is when you tap on to make your payment, so they contact us, pick on debit cards, NFC cards. When you tap on the point of sale device, your eyes turn to laser. So we literally give you laser eyes. So we hope to be adding that to your crowdfunding project platform on guys as soon because we have a couple more products in the pipeline and we. Think, yeah, ",timestamp:"00:51:49-01:04:53",topics:["Bitcoin evolution"],type:"twitter_space",weight:24.426984779829223},{boost:0,date:1665946635,description:"Hodl, Ben and Evan's review of TABConf",episode_title:"TABConf Mixtape Vol 2: Sound Bites from TABConf",guests:[{name:"Michael",profile_picture:"https://pbs.twimg.com/profile_images/1558687629599657990/vf-bU14b_400x400.jpg",ref_id:"c7b4faa1-db77-4459-b03f-0e41e15efae7",twitter_handle:"MichaelHawaii"},{name:"Ben",profile_picture:"https://pbs.twimg.com/profile_images/1580596905721171969/0NnLeJWA_400x400.jpg",ref_id:"da0132b9-0d19-43e6-bc1a-9c7818c79ba4",twitter_handle:"benshapiro"},{name:"brandon",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"8a27da7a-c05c-44da-8247-3c5f68bc3164",twitter_handle:"ThrillerBitcoin"},{name:"shane",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"2e5ce678-7d04-4a48-8bd1-281329ea9424",twitter_handle:"ThrillerBitcoin"},{name:"exfrog",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"d0dc102c-404e-4753-9290-9a3fe27fe2ee",twitter_handle:"ThrillerBitcoin"},{name:"josh",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"34eb29e3-da86-485f-b20a-059f7d41f6ad",twitter_handle:"ThrillerBitcoin"},{name:"autumn",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"3224f2ec-3e77-485f-88b8-6930e19f8ac6",twitter_handle:"ThrillerBitcoin"},{name:"buck",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"00a55ec0-9b1a-482a-893a-345d350a33a0",twitter_handle:"ThrillerBitcoin"},{name:"stephen",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"9dc56711-eacc-4691-821e-fe2a26855ea9",twitter_handle:"ThrillerBitcoin"},{name:"hodl",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"b012eda0-b78c-46e7-ab46-6a7139584fc7",twitter_handle:"ThrillerBitcoin"},{name:"evan",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"9a8418e9-8976-425c-95ce-ed2fe307e380",twitter_handle:"ThrillerBitcoin"},{name:"muzz",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"444b8330-caa1-4bcf-8144-7d9110ae2242",twitter_handle:"ThrillerBitcoin"},{name:"thomas",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"e2140e58-314d-4425-bc97-20f52f951866",twitter_handle:"ThrillerBitcoin"},{name:"justin",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"2ce04090-b9b1-4e84-a87f-9c9dc9ececec",twitter_handle:"ThrillerBitcoin"},{name:"stakamoto",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"8b249d9b-8521-4e0e-bf24-2d8b8721d26b",twitter_handle:"ThrillerBitcoin"}],hosts:[{name:"ThrillerX",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"231d171e-06a4-4294-9cf2-6640e27429ea",twitter_handle:"ThrillerBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4240c90e-0086-4ece-bfe5-84a282c5059e.jpg",keyword:!0,link:"https://2.gum.fm/op3.dev/e/pdst.fm/e/dts.podtrac.com/redirect.mp3/media.transistor.fm/82539eb6/c2b4aa1b.mp3",node_type:"clip",pub_key:"",ref_id:"821f7b5c-c6ad-422b-b4e1-ed34f915e4af",show_title:"Thriller Bitcoin",text:"a lot of fun. I very much appreciate you. Anything cool that you've seen here, like as far as the talks, because you're a bitcoin or, you know, all these things, what do you think has been like the most, most memorable thing that you've seen? Well, I mean, that's one of the unfortunate things is because I'm responsible for all five rooms, I only ever get to spend like moments making sure that the room is good before I have to go to the next room. So I got to see a bunch of like a little bit of a bunch of talks that I really wish I could have sat there and engaged in. The coolest thing I've seen so far was probably Andrew Polestra's codex thing, like making a paper computer at the end of yesterday's event in the Socratic village. It's a really neat, complicated thing. There were, like, 20 to 30 people in there with scissors, cutting out these things, putting them together that help you code and decode without a computer. It was really neat and very engaging, and it was like I don't often see events have engaging workshops that actually are well attended, like people who will sit down and focus and learn a thing for 3 hours. That's kind of what sets Tabcomp apart from every other conference I've done is people are actually here to do the thing, not just watch someone talk and then watch someone else talk. Yeah. Do you think there's room for both at the conferences? I think there very much is, and I think that's one of the things that this year at Tabcomp was kind of missing compared to last year is there's no real beginner track if you're not ready to dive into command line stuff. There's not really a whole lot, but the next gen village is doing a good job of getting, like, the younger kids involved and having content for that. I think we have too many conferences that project to the lowest common denominator that have the same speakers come giving kind of the same talks to the same audience a lot. And events like Tabcomp and BTC Plus are kind of not that they're really more about learning and doing and doing it in an environment of your peers and friends. Yeah, that's cool. Thanks for coming on the pod, man. Appreciate it. I appreciate everything you do, by the way. You too. I really love hanging out with you, man. Paul, do you want to be on my podcast? Sure. 40. What do you like about tapcom this year? It's just like last year, but more Tabcomp is, like, getting, like, a semester of Bitcoin education. Four days? Yeah. In four days. Does it feel like every day has gotten better? I feel like every day has gotten relatively better than the day past. It's almost like it's like steps. Yeah, I didn't know about that. I run out of room in my brain, so at some point I'm stopped learning. But, yeah, I've gone to so many good talks and learn so much from so many different angles. There's a really interesting theme this year about how lightning is totally broken. Really? Okay, tell me more. Macarola did a talk on lightning is broken, but we can fix it. And there's a lot of terrible news about problems with lightning. And there are things that these are problems that have been pretty well known that we basically need to work on and improve to make, basically, lightning. Right now, you basically want to trust your channel partner. There are things that your channel partner can do to make your life miserable. There's attacks that we know about that just don't happen a lot. Because it's a small community. But as we become like a big deal, either we're basically only going to have to make channel relationships, business relationships and just formalize that kind of way, or we're going to find more cipher punk ways to do this in kind of a bitcoin ethos because we'd like to be able to open up anonymous channels but it's just a little bit dangerous. So it's kind of this long to do list and it really kind of depends on who you talk to after that talk of how bummed they are versus how kind of exciting. You're kind of bumming me out right now. It's like it's sounding like it's a major thing, but if you think about it from an engineer perspective, right, any engineer, you start out a project, you have 100% problems, nothing works, right? And then you start fixing one problem at a time and you make it a little bit better. And maybe at some point you're 75%, you ship it, and then you keep on fixing problems and maybe new problems you didn't know about come up. You try to fix those. So from an engineering perspective, these are all things that we believe we can find, we hope we can find good solutions for. And everybody I talk to that is working on it is excited to work on these problems and wants to think deeply about them. So it's kind of an exciting talk to like, hey, let's not let's not hide. Let's not pretend like everything's perfect right now. Let's engage with the issues that we have. Like, lightning works really great right now for for what we're doing. It could just it could be a lot better, and we need to be aware of how it could be better and not just pretend that it's perfect right now. Yeah. What's the most memorable thing you've seen? Is it Ben Carmen? I love seeing Ben Carmen. I think Ben Carmen is the most memorable thing I've seen. This is such a beautiful site. I'm actually excited he's going to do, like, live coding. Oh, really? You're going to watch it? Yeah, I've hung out with him a million times, but I've never actually sat there and watched him code before. So he's going to be coding in like an hour. So I'm going to watch that. I actually got to watch Epic Coludus live. Yeah. That was awesome, right? Dude, everybody keeps bringing this up and this recording. Yeah, actually. I didn't know I would like it that much, but something happened to me, like in the middle of yesterday where I was like, maybe my head was starting to fill up with ideas. I was like, I want to sit down and start building something, I think something I'm going to try to talk to the organizers about. There's a lot of after parties. The last talk happens at 05:00 p.m.. People go to dinner. Then there's an after party, then there's another after party, but I'd like to have a quiet room to go after the last talk and just people are there with laptops building stuff because I don't like the idea that I'm still, like, two days away from having my laptop open and really coded. Speaking of Evan, I've been recording everybody for this mix tape that I'm doing, and everybody keeps saying your thing is, like, the most memorable thing here. What do you have to say about that? Well, first, I'm flattered, but I think there's much more epic things I've seen. I got a demo of Stratum V Two that's going to be super impactful, super important for decentralizing mining. So I think that's near the top of the list for me. Also really cool to see tony, Giorgio's, Ellen, spoit. Ellen. Ellen spoit has so much potential. The workshop was awesome. I was able to execute that attack that we saw last week on LNG nodes 15.1 and under. That was pretty awesome to compare. Yeah. Tony walked us through, like, hands on. We could do it on our own laptops. We set up a virtual lightning network, and we would steal funds from one of the nodes on that lightning network. Dude, that was sick. Do you see how many nervous people I saw some BCS in the room. They look nervous. Oh, yeah. I mean, listen, the thing is, we need to be doing these things now. Stuff like the Ellen Depog. We need to get that out of the way now before it becomes, like, a headline on New York Times, Financial Times next time that happens. Right. And, yeah, we need tools like L and Spoid to, like, you know, see how things hold up and find where things break. So I'm looking forward to more exploits being released. I think it's an excellent foundation, and I hope more people try to break Ln and contribute to Ellen spoiled. Do you think Ben's going to break Ln? I'm not breaking. Or is it going to help? I'm helping lightning, making lightning more private. Carmen, how's your tab comp? It's been great. Best tab comp ever. Better than last year, I think. So we got more people here. Workshops have been really good. Talks have been really good. More of my friends are here. You're here. Thank you, Ben. Yeah, it's been really good. I've had a lot of fun. It's got out of the attacking lightning panel. That was phenomenal. So Paul was saying yeah, it was really good. Probably going to have to turn off my lightning note eventually. This is terrifying. Really? Not really, but how do we fix it? Just talk about it? Well, talking doesn't actually do anything. We have to write code. But a lot of it's, like, research as well. It's like, we just know there's problems and we have ideas of solutions, but not like, oh, this is a real fix. It's like, oh, this is an approximation of a fix. So we're just still a lot of research to do by always smart people, hopefully to figure out better mitigations and solutions to these problems. But I'm not going to be able to do it. But smarter people than me are working on it, thankfully. Thank you guys for coming on the pod. I appreciate you all. ",timestamp:"00:50:17-01:00:04",topics:["TABConf","Bitcoin community"],type:"podcast",weight:9.932519761232543},{boost:0,date:null,description:"Introducing the Start9 sovereign computing model",episode_title:"Café ₿: Sovereign Computing w/ Matt & Aiden, Start9",guests:[{name:"Andrew",profile_picture:"https://pbs.twimg.com/profile_images/1465763053014859786/xYFN2czJ_400x400.jpg",ref_id:"ae4b13f8-0ee7-480a-b47a-82b967ad7a79",twitter_handle:"AP_ArchPublic"},{name:"Matt Hill",profile_picture:"https://pbs.twimg.com/profile_images/1347317316057321474/ieMjzK3x_400x400.jpg",ref_id:"3576ad28-a04d-4388-865b-3ec5114c4f9f",twitter_handle:"_MattHill_"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Aiden McClelland",profile_picture:"https://pbs.twimg.com/profile_images/1470160097225498624/0BjKB_2W_400x400.jpg",ref_id:"04ddd9d4-9329-4e6c-aaa3-d65ea4a9342a",twitter_handle:"_dr_bonez"},{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Lisa",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"e6f0c6e3-3237-4b13-878f-bb740cd32f8d",twitter_handle:"lisa_hough_"},{name:"Isabelle",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"c8df253f-47b3-465e-878e-8405c01c090d",twitter_handle:"isabelfoxenduke"},{name:"Tone",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"5729ac07-51d6-4268-b585-62680c846acb",twitter_handle:"ToneVays"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Derek",profile_picture:"https://pbs.twimg.com/profile_images/1598322677827207169/Cw0A3oOP_400x400.jpg",ref_id:"f441b996-7eeb-4210-b24c-fa011161709d",twitter_handle:"derekmross"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ec4a941-250c-4e1d-8d2a-6c506c3ba4b2/4bd8010d-b2fd-41b4-8041-8a953ef06492.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"700e8ab8-7cc3-476c-87ea-524081f2322c",show_title:"Swan.com",text:"right, Matt. Well, thanks for joining us. Very excited to be talking to you guys about what you're doing. I know there's a bunch of swans who have ordered stuff from you guys, and it's pretty fascinating. So for those people who don't know what Star Nine is, if you don't mind, would you give, like, a five minute summary on what start Nine is, what are you guys doing? Why are you doing it? And then we'll start opening it up to whatever it is you guys are working on, and then we can do some Q and A, if you like. Yeah, sounds good. So we are, in the broadest sense, a computer company. And our goal as a company is to make self hosting software, open source software, accessible to everyone. And that might sound really boring right out of the gate, right? But when you understand what that means, and you understand that in the current model of computing, that basically your cell phone and your laptop, all these things that you call computers or devices, are really functioning as remote controls that are operating somebody else's computer somewhere else. And oftentimes the computer that you're operating most of the time, in fact, is owned and controlled by one of the Big Ten tech giants. Other times, it is just a small cloud computer that is hosted by the app that you happen to be using in that moment. So, for example, there might be a Notetaking app on your phone that is plugging into a server somewhere that is owned by two founders in a room running that server. And so every piece of information that you write in that Notepad, every time you use it, those signals are flowing through their servers. All the data is stored on their servers. And this scales all the way up to whenever you use Twitter, for instance, or Facebook or Google. Every piece of information is flowing through their servers. So all your communications are intermediated. You are never talking to somebody directly. You are always talking to somebody through a messenger. And that messenger very often has full access to everything you're saying, when you're saying it, et cetera. And secondly, all the data that is produced in those interactions, whether it's you storing a photo or you sending a message to somebody, all that data is likewise stored forever on those third party servers. And sort of how it's always been. When I say always, I mean since the second computing revolution, the cloud computing revolution took off about 20 years ago, give or take. This is just how it is and we've gotten very used to it and it's been very convenient of course has led to many conveniences and superpowers that people have to get more done in a day. But I forget who says this definitely Lornal Arcos in Red Rising but I'm sure somebody in the real world has said it as well. The bill comes due at the end of the meal so the bill is coming due. This wasn't free. It comes at enormous unforeseen costs that are just now starting to be felt and will continue to rise. And so we recognize this as a company, as individuals and we set out to kind of do something about it. And our solution to this is the solution to this which is a disintermediated computing paradigm where human beings and their computers are interacting with each other and those computers are interacting with other computers without the involvement of trusted central third parties. That doesn't mean it's PeerToPeer. It just means federation is okay too. Meaning I can run a server and people who trust me, who are close to me in my life can use my server to interact with each other. It's okay to trust people that you know and who have earned it. So we envision a computing paradigm where people are either communicating PeerToPeer or at least utilizing the servers of people that they trust. You know, members of families, the organization that you belong to, whatever it is. And in order to make that possible, for that computing paradigm to be possible at all it requires people to run their own servers. And I don't mean a server sitting in a bunker somewhere that you don't control. I mean a physical server that you have physical access to. It requires that. And secondly it requires you to be able to use that server. So it's not enough to just buy a Raspberry Pi and install Linux. The vast majority of people in the world are incapable or at least don't have the time and energy and patience to use that thing properly and in perpetuity. These things require enormous amounts of technical acumen. They require time, they require ongoing maintenance forever. It's not a set up and forget type of thing. And so what we have set out to do is provide the tools, namely in the form of an operating system that enables a totally non technical individual to set up and administer a physical personal server for the purpose. Of installing and running almost any variety of self hosted open source software under the sun and converting their computing life to a private one that excludes any trusted third parties. And we try to do this without compromise. It's an ongoing series of trade offs but we are really taking a purist approach to this and trying to do without compromise ultimately resulting in you. When you say without compromise what do you mean by that? I mean that to make anything functional. There's always this trade off between user experience, like making something super easy and convenient, and the principle underlying your purpose, which is to enforce privacy censorship resistance. It's the age old issue of security is basically it's the exact opposite of convenience, right? Like you always have this battle going on between the two things where you're trying to protect your stuff, it just makes it less convenient. And finding the balance there is pretty tough. It's a hard it's a hard computer science problem. It is. And under certain paradigms of computing, like once you have accepted the cloud computing paradigm, this intermediated custodial computing paradigm, you're sort of bound to fail at the privacy and censorship resistance principles because it's. Not really you can't do it with that. You can't without an enormous injection of trust and oversight, which itself just raises costs and ultimately corrupts. Right? So the stance is that we got away with this for a while because it was young and new. It's like in a man. I don't know. There are also massive, massive honey pots for hackers, right? Like when you have these centralized databases full of everybody's information. How many times have we heard this story over the last ten years where even huge credit rating agencies that have hundreds of millions of people, hundreds of millions of records on people get hacked and everybody's information gets stolen and it's big problem. Yeah. The four costs that we talk about with the current computing paradigm are privacy, invasion of privacy, censorship, the security vulnerability that you just mentioned, which is that anything that is worth hacking will eventually be hacked. Period. That's an axiom. And lastly is cost because in order to try to preserve the things that consumers want, like privacy and censorship resistance, the costs forever rise because there's more and more middlemen, right? Security is just more and more layers. And so what's happening here is these tech giants and to be honest, some of the smaller software as a service providers as well, like I mentioned, the tiny little note taking app that's on your phone or something, their costs are rising. It is not a good business to be a service provider of information and data. That is a bad thesis. It was the thesis in Silicon Valley for the last few decades. It's what their bread and butter was, was this idea of, you know, give away some free software product and then just become an indispensable middle man, like to sit right in the middle of everyone's stuff and make them totally dependent on you and then eventually, someday we'll figure out how to see them. Which is the problem. It's what the problem we're facing with everything today. You're seeing it used as a method of control over the masses. A great example of this is Apple and the Apple Store, right? They're threatening to remove Twitter from the Apple store. You need their permission. They are the gatekeepers with the power. That is correct. Apple, as Quick Anecdote canceled our original app, right? Originally, we wrote an Android and iOS app that you would use to connect to your embassy. That is how you administered. Your server was through a native app for these platforms. And Apple shut us down. They told us that we can no longer release additional updates. They provided very little information or guidance. We appealed through multiple boards, and eventually they just said, you're out. And our response to that, I wrote up a huge blog post about this and posted it from my Twitter account and from the start, Nine Twitter account a couple of days ago, if anyone wants to read it. But our response was the proper one, which is what you do when any central authority, whether it's Apple or in a nation state, becomes sort of domineering in your life. You can't punch back. That's their game, right? You're not going to win through you're not going to beat politics with politics. You're not going to beat, you know, business through trying to compete with Apple, you have to opt out, right? This is the most powerful tool available to a club. It's the most powerful tool available to all of us is to simply stop feeding the beast, stop using the things that they offer. Don't fight them for better offerings. You don't go to Apple and say, hey, I want better privacy. Just stop using them. And when I say just, that's actually really hard, right? Like, it's not easy to go on strike and to opt out of these highly convenient systems that we've become largely dependent on. But that's our job. That's what we're doing in Star Nines. We are trying to give people the tools that enable them to opt out of these massive big data surveillance systems. And the good news is that it's not all or nothing. You don't have to, like, take the full plunge. It's not like this huge daunting thing. You just need to take that first step and then gradually, over the course of years, even move your digital life on to systems that you control or that someone in your family controls. And by doing this, not only will you be protecting yourself with minimal convenience loss, by the way, because what we have done is not some crazy, esoteric, inconvenient thing. It's for anyone who has and uses an embassy. You'll know, like, it's not that bad, and it's going to get better and better and better by the month. We're moving very fast and making it very convenient. But not only are you protecting yourself with minimal loss of convenience, but you are almost indirectly fighting back, right? It's a consequence. You're doing something that's in your own best selfish interest while simultaneously benefiting the world by starving out the beasts that are suffocating it. And that's a very powerful idea. In fact, we think it's so powerful that it's bound to happen. I do think that there are scenarios where we go through an enormous period of history where something like this does not come about, but so long as we and others and quite frankly, the whole Bitcoin space keeps pushing for these opt out abilities, which is what Bitcoin is, by the way. Bitcoin is this huge opt out technology for opting out of the fiat monetary system and it's a huge one. And we're just taking that same idea and be like, yo, opt out ",timestamp:"01:17:40-01:30:45",topics:["Start9 computing model","Cloud computing revolution","Computing paradigms","Opt-out technology"],type:"twitter_space",weight:9.312597274780273},{boost:0,date:1670878744,description:"Thoughts on Binance and CZ",episode_title:"Escaping $ Debasement With #Bitcoin",guests:[{name:"Joe Consorti",profile_picture:"https://pbs.twimg.com/profile_images/1596902707511664640/GYGWVDts_400x400.jpg",ref_id:"8d2024b2-03bb-454d-9bd6-bb121904b76a",twitter_handle:"JoeConsorti"},{name:"Nik Bhatia",profile_picture:"https://pbs.twimg.com/profile_images/1496241412580397058/s7jy5g3a_400x400.jpg",ref_id:"d76f4499-ccf6-4153-9bc1-257a580aa079",twitter_handle:"timevalueofbtc"},{name:"Sam Callahan",profile_picture:"https://pbs.twimg.com/profile_images/1592532728775409667/0DayEP2Q_400x400.jpg",ref_id:"5a044a91-8dee-421c-86dd-8c734dc9bc32",twitter_handle:"CallahanMusic_"},{name:"Brian De Mint",profile_picture:"https://pbs.twimg.com/profile_images/1546297674512470016/oEVF8rJQ_400x400.jpg",ref_id:"064e04f7-8320-4854-8325-0cc19cd7ff55",twitter_handle:"BrianTheMint"},{name:"Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1508157904913899522/3l7ctauV_400x400.jpg",ref_id:"283edea0-55cf-4245-95df-8d6d3dcb1851",twitter_handle:"DylanLeClair_"},{name:"@coryklippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"21aca21d-9a96-40a9-a8b8-a523ae6591c3",twitter_handle:"coryklippsten"},{name:"Matt C",profile_picture:"",ref_id:"337e3256-0602-4baf-a4b7-ca6d0655c569",twitter_handle:""}],hosts:[{name:"Bitcoin Magazine",profile_picture:"https://pbs.twimg.com/profile_images/1444022922377576453/AzvXYXGr_400x400.jpg",ref_id:"0e7b904e-5161-4aa8-9f0b-65bee6050ddd",twitter_handle:"BitcoinMagazine"},{name:"Chris Alaimo",profile_picture:"https://pbs.twimg.com/profile_images/1579209742370672646/rck7M_MR_400x400.jpg",ref_id:"3a1bd698-9d67-40e4-ba6d-3e2262b385ca",twitter_handle:"ChrisAlaimo6"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f3a55dda-3dd5-4f62-99c1-bab3a88c27c1.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/80ab6951-8961-4aad-a458-a397ed6fd3cf/88c750f6-7569-4f69-947c-d61a398c358c.mp3",node_type:"clip",pub_key:"02814a5050f43a36bb052c7a3f22f0e86700abe037a44d99b45e0cb424d9398cbf",ref_id:"ea039879-1342-42d9-92e1-1fd4b6561488",show_title:"Bitcoin Magazine",text:"You'Ve been all over the scams in 2022 and even before that. But I've posted a little bit today, and some people have said this is valuable. Some people have said you're just a paranoid floodster. But I've been posting a little bit today about finance BNB. If you take a peek at BNB and bitcoin terms to basically add all time highs, ten X in the span of week in 2021, and just for instance, right, like, I like to evaluate things in bitcoin terms in this industry, whether it's private valuations, public valuations, crypto tokens, right? And B. And B is worth 2.8 million bitcoin, which is certainly fascinating, right, given that it's a centralized fork of ethereum that finance spun up from nothing. They've arbitrarily halted the BNB chain multiple times. So thoughts on thoughts on CZ? Obviously, he's the main character now, which we've seen in crypto doesn't usually end well, I guess. Just give me your preliminary thoughts. Yeah, I mean, it won't end well eventually, one way or another. We don't know if it'll be some cataclysm or some kind of like, slow bleed just chipping away at regulation. And at the end of the day, the assets that are trading on this platform, finance aren't worth anything. So the trading infrastructure itself that only trades worthless assets isn't worth anything either. And I think that basically makes crypto trading platforms inherent value pretty much zero, other than whoever is still playing greater fool crypto gambling games on their platforms. So as long as that continues, maybe they can continue to extract value. But I don't think you can actually end up going public or monetizing this thing with some kind of exit through this sort of offshore distributed type thing. It's just easy getting rich basically, as long as you possibly can and trying to keep the window open as long as possible. I 100% agree with you on BNB. Obviously, this is company script. It's you know, he can pause the validators at any time. I think he, you know, if he wants to replace one of these guys on the, on the zoom calls at any moment, he can do it really easily. And there aren't that many of them, and they collude and cooperate, obviously, so nothing decentralized about that. Yeah, it's just weird. People betting on B and B is just kind of being long CZ and jumping on trades that he's also long. Kind of just betting on this guy to be smarter than the other people betting on him to be. The smartest guy in the room. Which is the same trade that 100 crypto funds NVCs have had on Sam bank and Creed for the last couple of years, which is just basically belong anything Sam's involved in. Because Even if it's a total scam and even if it's total bullshit. He's so smart that if you just pile into the same trade and ape him, then you'll probably do well. Right? And that's what so many of these people did. It was kind of like the new version of the GBTC ARB trade, which everybody piled into in 2000 and 22,021 and then got burned and led to this next brainless move of just going along salana and salana ecosystem crap. And, you know, it's just not a lot of independent thought. And nor would you expect there to be much, because when it comes to crypto, folks like these are people that have chosen to spend their life's work on something worthless. So I'm not sure why you would have high expectations for them. So, Matt, I see you have your hand up. Corey, I just want to add one thing to the combo and then would love to hear your thoughts on Matt. I can't confirm this, but heard from an extremely reliable source over the weekend, just kind of on your GBTC thread a little bit and waiting for confirmation on this. Decided. I haven't posted this officially on Twitter, but hearing from the extremely reliable source, heard that Alameda was actually very much involved in the GBTC trade of Genesis. Posted to Genesis, borrow more, lever up long the GBTC discount premium with leverage essentially, apparently, according to the source, who will remain nameless, but definitely very much in the know in terms of all of this happening in the industry. Very connected person. Told me that DCG executives were actually going around and this is in 2000 and 22,021 were actually going around and pitching these three Arrows capital and now meters of the world and everyone else to go do this trade, this leveraged circle jerk with DCG entities of buying the bitcoin or sending dollars to DCG. I can be a source for that. This was active and very heavily promoted. Everybody was doing it back in 2021. Buy a bunch of bitcoin or even just send cash and they would just convert it into bitcoin for you. And then remember, it used to be a one year lock up. And then when they started really wanting to push it, they changed it to a six month lock up. And that's when the flood really came. And this is where all the BlockFi yield was coming from because it doesn't matter what asset it was like, let's say that you could get, you know, essentially like risk free 20 or 30% on this GBTC premium. You can double that out a bunch of different ways. Even if it started to drop a little bit, even if your expectation was six or eight, you could still pay like 10% on stables and consider three or 4% to be like customer acquisition costs, like marketing costs, and still have some left over to pay some yield on that. But at the end of the day, all this is is something that is illegal in traditional finance, which is funding institutional trading and leverage with retail deposits. It's not something that you can do. It's not something you can get away with. So it's funny Sam Bankman Freed even tweeted out in the wake of the Celsius collapse in June that Instow to Instow loans are fine because both are sophisticated, but retail lending to Enstow is shady. Well, at the same time, of course, doing exactly that in a slightly murkier way. Yeah, I think it's interesting to see the pattern. And maybe this is just trying to frame a lot of these industry participants under the same light, and maybe CZ or other actors are more legitimate. But it's interesting, the same kind of like position of strength kind of shoot down on some industry players say this is a poor risk model. It's like position of weakness and act really, really strong. Right? We've seen this happen over and over and over again. And in the reality, none of these guys were all that sophisticated and they were just levered to the tips in various ways and various carry trades that blew up in their face. The other funny thing was this thread that came out yesterday or the day before, and obviously I think it was Rom he's like crypto CFA or something like that, and I retweeted him and tweeted a couple of his things out over the last week. But basically just sniffing out and putting together that Alameda was probably made money at first when the only people on FTX were relatively unsophisticated or small fish, basically. And then when the big guys came, the smarter guys that were way smarter than people with 18 months of junior experience at James Street, or someone who looks and talks like Caroline and everybody on math or whatever, like when real shops came and started trading on FTX, they just started ripping Alameda's face off. And I verified with multiple funds that they were duplicating. The strategy that I tweeted out about, basically just at closing, there was some kind of like rebalancing or refunding of these leverage tokens that existed on FTT. And one guy made 50 X on his money in a year or something like that, and lots of other people were on that trade. I guess at least a few people have pointed to CMS Holdings as having really ripped the face off of Alameda for the last few years, basically doing this, and lots of other people learned how to do it too. It just really wasn't that complicated. So I think that thesis of this guy basically wasn't nearly as smart as people thought. Not some kind of like super genius, obviously just losing money. And the reason that he started getting into retail. As long as people were dumb enough to go along with this theory of FTX equity is valuable and FTT token is valuable. And all this other stuff the move into retail, like sponsoring the arenas and buying blockfolio and sponsoring Pomp and all this other stuff was really just to try to get into a position where they could take fees off of people. Because this is Ben Hunt. Excellent theory. Talking about this a lot too, in the last few days that you want to be in the flows, right? You don't want to be in directional bets at some point. So it's just like this houdini escape attempt to try somehow to get into the retail business where low end people will eat fees and build this big financial institution that's kind of more retail focused since they obviously couldn't make money trading. ",timestamp:"00:08:42-00:19:36",topics:["Binance BNB","Changpeng Zhao","Alameda Research","bnb"],type:"twitter_space",weight:17.912974381160645},{boost:0,date:null,description:"Brad Mills explains his stance that Stackchain is a shitcoin",episode_title:"Café ₿: Bitcoin Lightning ⚡️ Q&A w/ Bobby & Paul From Voltage!",guests:[{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:" Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"560cf9ee-2844-4ced-bbfd-d0ec639b2177",twitter_handle:"CitizenBitcoin"},{name:" Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1307109108127019008/rPNj47yJ_400x400.jpg",ref_id:"4f4f53c7-5a3a-46df-b334-9951fe38dc96",twitter_handle:"realjeffreyross"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" q_liketheletter",profile_picture:"https://pbs.twimg.com/profile_images/1560683048680665088/4MrHM_UY_400x400.jpg",ref_id:"d82c0d30-d0d3-4947-a358-d28f1cd5292e",twitter_handle:"q_liketheletter"},{name:" iBobbyShell",profile_picture:"https://pbs.twimg.com/profile_images/1583132979571920896/1Std3_ya_400x400.jpg",ref_id:"2f9bd0a3-1215-4a89-9dc6-d64f170961af",twitter_handle:"iBobbyShell"},{name:" Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"ac43b4f0-9056-4a6b-9d30-4a6250405ade",twitter_handle:"ToneVays"},{name:" sonofsats",profile_picture:"https://pbs.twimg.com/profile_images/1593080311000211456/Dr_NQ9Iw_400x400.jpg",ref_id:"d584f070-a66a-4b53-b15a-8142f8daea66",twitter_handle:"sonofsats"},{name:" futurepaul",profile_picture:"https://pbs.twimg.com/profile_images/1508452962917666821/1QheRD09_400x400.jpg",ref_id:"fcb50ec8-2669-47da-87b9-1702affb30c9",twitter_handle:"futurepaul"},{name:" Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"a2ba4e1e-aab7-43b0-90d7-d3c6a9738ad0",twitter_handle:"FossGregfoss"},{name:" Brad Mills",profile_picture:"https://pbs.twimg.com/profile_images/1541955880752750592/XJqwIn2E_400x400.jpg",ref_id:"9a49201c-3b03-4a83-bcb8-d92dbf3d55b6",twitter_handle:"bradmillscan"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ad62f26-289d-4eba-af0b-0da68515cbb6/c5c6ea3d-df5a-464d-9b41-a6bf3a0372a9.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"929def08-6b32-4313-a296-eaa1e5ee8d1b",show_title:"Swan.com",text:"Alex, can I ask Brad a quick question? Of course, go ahead. Hey, Brad. Stack chain is just the gamification of turning Kuckbucks into SATS. And the only reward is people get more SATS. So I'm curious, why did you post that stack chain was a shit coin this morning? Oh, my God. Here we go. Shot fired. Bread went off the stage. He's requesting come back up to defend himself. It should be interesting. The reality is that there are lots of detractors of stock chain. For various reasons. It is something that can. Oh, my God. What's up, Brad? How can you declare it? How come you posted as a shit coin? Do you not understand what we're doing over there? 3 million cookbooks converted hold on. 3 million cookbooks converted in four months by $500. I spent a lot of time in the Djen pits of shitcoinery, and this feels like a shit coiny thing to me. So that's why I said that, because the shit coins do stuff like that. Which means you're buying right now, right? Buying bitcoin. I'm always buying bitcoin. None at all. Good burn, Alex. What? Buying bitcoin? No, I'm not buying can we just back up? What exactly is stock chain? Sorry, I'm sort of be the idiot on the panel. Here we go. Look, this is what it is. It's a bunch of clubs decided we're going to stack some bitcoin and play a fun game on Twitter and post memes and kind of replicate what a blockchain is while they stack bitcoin and compete for blocks in a big long Twitter thread and kind of meme about it. But to me, I was a big fan of like, the Lightning Trust torch and all those things like the state chain torch and things like that. I loved that stuff. I thought that was cool because it served the purpose. It was like a political message. The lightning torch was similar, but the Lightning torch was like almost a political message because we were sending the lightning torch proving to the shit pointers, like to Roger Fur and all the BCRs that lightning wasn't vapourware and that you were sending it across borders. People were kind of like making a political statement. Like somebody received it in Iran and then sent it back over to someone else in another country. And it was kind of like a political statement that I could get behind. But the stock chain culture, I think, to me looks more like a little bit useless and a waste of energy. It looks like we could be doing better things with our time. And as an outsider looking in on it, that isn't part of bitcoin culture. It does look like a bunch of weird people, like, bragging about pumping the price of bitcoin even though they're only buying like, $5. It just feels okay, hold on. Brad, Brad, Brad. It's fasci. OK, as a proud stock chainer, I think you need to do more. Okay? I would happy to talk to you offline because it actually is a very noble cause. Nothing more than a bunch of clubs, but that's exactly what it is. Okay? Okay. And I just want to end with this. I have a proud stock chainer. I think I've done it four times. That being said, it is the total antithesis of shit coinery. Okay? It actually is a disciplined and find the stock chain tip. Sort of teaches you how the blockchain works indirectly. Just my opinion from a 60 year old fuck. Okay, this actually is a cool thing. Because there's at least a dozen swans who are stack chainers, including Corey Clifton and oh, by the way, Michael Sailors. A stack chainer. Everybody's a shit owner now. No, I'm on the other side of it. I think Brad has way too much free time in his hands. I guess he needs to find. It. I didn't get in on the premiere of the Fact chain, so maybe that's why I'm salty. For those of you who missed it, you got to go back and listen to the podcast recording of this show for the Thanksgiving special was so goddamn funny. There was one part where American Hall was comparing Brad Mills to a small furry mammal in the grass. It's great. I'll leave it at that. You got to go check it out. It's hilarious. So, Brad, I think some of your concerns are probably valid. It does look a little odd from the outside, but honestly, it's just a bunch of plebs having fun stacking SATS in the bear market. That's really what it comes down to. Ant is also correct. There probably is our $3 million cuckbuck mark. He said asterisks. And that's probably correct because there are some people who play this game and squash or they create fake receipts or whatever, but they're losers because they didn't get a stack stats by doing that. And then the other thing is that in effect, it actually increases the difficulty adjustment because the block height goes up. There's another dollar added once that happens. So somebody else is purchasing more Sass and it's really just a fun way. To shift the gamification of stacking. That's really what it is. And a way for people to talk shit about each other while doing it, which makes it fun. I don't know something about it. It's all good. I'm a fan of both of yours. I'm a fan. And if we are all thinking alike, then somebody isn't thinking right. Quoting General George Patton. If all bitcoiners are thinking alike, then somebody isn't thinking. So thank you for your input, Brad and everybody, I'm signing off. I'll listen to voltage. Thanks, guys. Don't worry. Normally I'm not aligned with the things that you say, but I think stacking is pretty dumb. I'm just going to take this one. That's for a back ended compliment. Brad. That change. Awesome. Well, I just followed Brad because. Nice. Alright, Brad, I just want to say we all love you, man. Let's keep ",timestamp:"01:23:39-01:30:26",topics:["Brad Mills","Stackchain is a shitcoin","what is a stackchain"],type:"twitter_space",weight:9.22888708114624},{boost:0,date:null,description:"Tone Vays gives his analysis about what is needed for a final Bitcoin capitulation and the return to a bull market",episode_title:"Café ₿: Bitcoin Lightning ⚡️ Q&A w/ Bobby & Paul From Voltage!",guests:[{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:" Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"560cf9ee-2844-4ced-bbfd-d0ec639b2177",twitter_handle:"CitizenBitcoin"},{name:" Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1307109108127019008/rPNj47yJ_400x400.jpg",ref_id:"4f4f53c7-5a3a-46df-b334-9951fe38dc96",twitter_handle:"realjeffreyross"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" q_liketheletter",profile_picture:"https://pbs.twimg.com/profile_images/1560683048680665088/4MrHM_UY_400x400.jpg",ref_id:"d82c0d30-d0d3-4947-a358-d28f1cd5292e",twitter_handle:"q_liketheletter"},{name:" iBobbyShell",profile_picture:"https://pbs.twimg.com/profile_images/1583132979571920896/1Std3_ya_400x400.jpg",ref_id:"2f9bd0a3-1215-4a89-9dc6-d64f170961af",twitter_handle:"iBobbyShell"},{name:" Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"ac43b4f0-9056-4a6b-9d30-4a6250405ade",twitter_handle:"ToneVays"},{name:" sonofsats",profile_picture:"https://pbs.twimg.com/profile_images/1593080311000211456/Dr_NQ9Iw_400x400.jpg",ref_id:"d584f070-a66a-4b53-b15a-8142f8daea66",twitter_handle:"sonofsats"},{name:" futurepaul",profile_picture:"https://pbs.twimg.com/profile_images/1508452962917666821/1QheRD09_400x400.jpg",ref_id:"fcb50ec8-2669-47da-87b9-1702affb30c9",twitter_handle:"futurepaul"},{name:" Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"a2ba4e1e-aab7-43b0-90d7-d3c6a9738ad0",twitter_handle:"FossGregfoss"},{name:" Brad Mills",profile_picture:"https://pbs.twimg.com/profile_images/1541955880752750592/XJqwIn2E_400x400.jpg",ref_id:"9a49201c-3b03-4a83-bcb8-d92dbf3d55b6",twitter_handle:"bradmillscan"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ad62f26-289d-4eba-af0b-0da68515cbb6/c5c6ea3d-df5a-464d-9b41-a6bf3a0372a9.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"332af4b9-782f-40e4-878c-45bb9d7edcdc",show_title:"Swan.com",text:"Yeah, for sure. Shout out to Tone Vays throwing you an invite to come up. Brady Swenson in the audience throwing you invites. Guys, Tone Vays had a well, there was an article regarding Tone Vays in a strategy session he did on YouTube talking about what we need to see before he's convinced we've got capitulation. We're moving up again. Hey, good morning. How's it going, Tom? Morning, guys. So would you mind just taking two minutes? And when I say two minutes, I'm serious about two minutes. Because sometimes you can go for like a 20 minutes rant. Alright, five minutes. You want to tell us what you're thinking in terms of what we need to see in prices, et cetera, what we need to hold before we know we're back into a bull market. There's a lot of speculation that we're hitting the bottom. There's a lot of market indicators popping up that people are saying mean at the bottom. I don't know if at the bottom. What do you think, Tom? Yes. I have to go and check the price of bitcoin real quick because it just woke up in time for spaces. Lucifer, back up to 16, I'll tell you. 16,370? Yeah. Well, we're back to 16 four after flirting with 1601 more time. So I am one of the view that if you get too many chances to buy the perfect low, it's not the low unless you get so many chances to buy the low that everyone gets bored and thinks bitcoin is never going up again. So at the moment we've had too many chances to buy the perfect low of 1600 or a little bit under. And that makes me so right now I am leaning towards the direction of one more capitulation. How long can it go? Hard to say. 1413, but it's the structure of the capitulation, right? 15 and a half, like we did a few weeks ago. And if we were already at $20,000, I would be full on full market right now. That's it. That was the low. Kind of like what happened with COLVID, but right now it feels more like 2015, where we crashed into the sub 200 low and then we spent like five months, six months flirting between 203 hundred, maybe got to 350. And then once again, like after January we crashed the below 200, and then again in August we crashed to below 200. So now it feels more like 2015 again, like we spent so much time at the low. And it wasn't even the low. So people A, got bored and then B, got hit with one more capitulation. So for me to call a bull market right now, I would need a clean, higher high, which means we go up to 21 22 $23,000 range, and then on the way back, don't go below 19 and reverse at 19 and start to push towards 21 22 again. So that's what it would take for me right now to consider a bull market or, you know, a quick drop to below 14 followed by a swift rebound back to 18. That would also get me super bullish. Got it. That was a great summary. So shout out to Jeff Ross in the audience throwing you an invite. If you want to come up and give us your five minutes on what's going on in the markets, you're welcome too. For those of us who are aggressively stacking this low or this correction, you're telling me that we still have a chance that this might last a little while longer? Yeah, it feels like it. But keep stacking because time wise, this can't last too much longer. I can't see this. I'm already a little bit like, wow, this thing lasted far too long. But I guess as late as March, there is no way we're going to be sitting at these lows with less than twelve months to go to the having. With everyone having their countdown in days when it's less than 365 on their wall, I just can't see it. I love it. Personally. I've been super aggressively stacking this entire time, and I know many others are. There's some new data out from Glass Node that says entities owning less than one bitcoin of collectively accumulated 1.5 billion so added 96,200 bitcoin to their holdings since the FTX collapsed, all time high balance increase. And then entities owning less than ten bitcoin have added over 3 billion worth in the last month. Yeah, those are my two favorite metrics. Wallets that have accumulated over one bitcoin has just crossed 950,000. Let's hope that's 1 million leading into before the having, right? Like in the next three months, by the end of Q one, I would love to see that metric break 1 million wallets that have stacked more than one bitcoin. And the other metric, well, double metric, how many bitcoins are entering the Lightning network and how many bitcoins are entering the liquid network? That one is super small because once bitcoin enters those networks, it doesn't really leave. There's no reason for it to leave. It's better there in both of those networks because it's there because it solves a problem. And that problem requires bitcoin liquidity to come off on shape. Not the solution. I should say not that problem. Yeah. But it's also a way to mark sort of network growth. So we talk about this thing called the Network of Fact where and Lawrence LaPard says that like one of the only things that would concern him is if the bitcoin network started getting weaker, meaning less users, less lightning growth, all that other kind of stuff. That's an interesting point, because as long as bitcoin keeps getting stronger, it's already the super dominant. It's the only proof of work network really worth talking about at this point. And that's exciting because that just means it's just getting stronger all the time, regardless of price. Jeff ",timestamp:"00:16:01-00:22:44",topics:["Tone Vays analysis","Bitcoin capitulation","Bitcoin bull market signals","Lightning and Liquid networks"],type:"twitter_space",weight:9.22888708114624},{boost:0,date:1637366400,description:"Nuclear Reactors are safe - salt cooled reactors with TRISO nuclear fuel particles",episode_title:"Securing Bitcoin With Nuclear Energy",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"},{name:"Eric McErlain",profile_picture:"https://pbs.twimg.com/profile_images/1252969137/Screen_shot_2011-02-23_at_10.59.21_PM_400x400.png",ref_id:"4815365d-44d0-4b06-9d9e-32070158d03c",twitter_handle:"atomiceric"},{name:"Puru Goyal",profile_picture:"https://pbs.twimg.com/profile_images/1590742805613203456/QAtYq_C__400x400.jpg",ref_id:"c24af059-b38b-4ce5-9547-9192c9eff579",twitter_handle:"purugyl"}],hosts:[{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"},{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=YBaA17NODlA",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"d1295013-33f3-431f-99a0-baa6d83500ad",show_title:"Compass Mining",text:"I think Eric said pretty much everything I had to add. I think apart from the safety case, I think it's a really heavy regulated industry which not a lot of people understand. You can't just make a reactor in your backyard and put it online. It doesn't happen that easily. Right. So there's a lot of regulatory compliance that goes into it. And especially if you work in the industry, you realize, which I had not a huge amount of appreciation for, which I've realized over the last four years that licensing of reactors not super easy now. So that's another drag on the industry which has been happening. But I mean, part of it is required because of just how the technology is. And like Eric was saying, it's like we pay the price for it. But apart from that, I feel like we just have to point out how cool nuclear technology really is. Like, if you are really serious about climate crisis and everything else that you see in the mainstream media and you're not pro nuclear, you're just kidding yourself because the energy mat just doesn't add up. So I feel like apart from validating the safety cases for the advanced reactors specially, which have really improved over the build up that we've seen over the 1970s, which were mostly pressurized like auto reactors. So a lot of the reactors that we are probably going to see over the next decade or so would be sold reactors which will have these trip particle fuels, which if you look at it, I think they're pretty much the most robust fuel on the planet today. So I would ask anyone to go Google tripod fuel and look up what they actually are and realize how cool that technology really is and how badly we need it. Because that small amount of particle which is the size of a golf ball, can produce power as much as a coal plant or natural plant can. So that's just really powerful, right? I mean, nuclear reactors are safe today. Like the build up that we're seeing, we'll probably see in the licensing that I've been part of the technologies out there. It's just a matter of building it. And I think it just depends on the economic incentives. If the incentives are right there, then people are going to go out there and build it. And the opportunity I was talking about is going to show up sometime over the next decade where a lot of these private companies which have been involved in the space for a while now. I kind of like relate this to the space race for these private companies, which was happening in the early 2000s, where companies like SpaceX and Blue Origin were just starting out and not a lot of people had heard about SpaceX for the first ten years, right? Like we just started hearing about when they start launching rockets, but they had a massive amount of failure going into those rocket launches. And I think it's similar with these private nuclear companies of today where they're slowly and privately building out these technology options for us. I think we'll start to hear more of those in the next five years or so and it's just going to happen. And I think the public sentiment will drive from that because people will soon realize that if you want to be serious about climate change, then you have to be on the side of nuclear. I think it's very similar to like even with Bitcoin, I feel like that's just the sentiment. I think there's just the economic incentives are going to be such that it'll just drive adoption naturally. I'm with you there, ",timestamp:"00:35:08-00:38:18",topics:["Nuclear Reactors Technology","TRISO Particle Nuclear Fuel"],type:"youtube",weight:9.170270925405587},{boost:0,date:null,description:"Relationship of Year-on-Year change of Bitcoin Hashrate, the Bitcoin Economy and The Energy Industry",episode_title:"Café ₿: #Bitcoin News & Trusted P2P Reviews w/ @Apollosats",guests:[{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:"@FossGregfoss",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"09913e9b-38dc-4465-9d4d-ae0c9ba9eeca",twitter_handle:"Fuckkkk"},{name:"@w_s_bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"b178b239-3b18-4a16-9d43-c5d15ba6f7f4",twitter_handle:"w_s_bitcoin"},{name:"@NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"4b6997e1-ce0b-4a1d-90e7-dbaccef4b783",twitter_handle:"NeilJacobs"},{name:"@brandon_gentile",profile_picture:"https://pbs.twimg.com/profile_images/1561369452284895236/-8WgdwEm_400x400.jpg",ref_id:"f940c5e8-4808-4197-a38f-3f19d311a7ad",twitter_handle:"brandon_gentile"},{name:"@apollosats",profile_picture:"https://pbs.twimg.com/profile_images/1576946734927794176/2ail9FoU_400x400.jpg",ref_id:"74f4280f-5fdb-4bbc-aee2-a2ed32d64372",twitter_handle:"apollosats"},{name:"@StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"6e652629-38ec-49d8-9f5c-3ba28f80c799",twitter_handle:"StackchainSig"},{name:"@TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"7af639f8-8c5c-4ce1-a43b-e8560ed40e2b",twitter_handle:"TomerStrolight"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7cf57bdb-c905-46e3-a7e5-4c0bfd4f8d04/71c08fae-cce8-4600-ab9e-758420e78dcf.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"2b1c8514-7d10-4e83-9006-9974ec31d35a",show_title:"Swan.com",text:"I appreciate it. I wasn't going to do, like, anti who's holding bitcoin rant and who's mining bitcoin rant? Whenever we could ask that question. I wanted to look at these kind of hash rate numbers year over year and just going back to late 2018, and this isn't like exact science. I just basically picked the first dates that I could find in January for that year. So just take it with a grain of salt. But January 8, in 2018, hash rate was around 16 X A hash. January 9, wow. 2019, it was floating around 45 X A hash, which was like 181% increase. I believe January 20 was around 100 X A hash, which would have been like 122% increase over the previous year of 45. And then January 21 was 150 x a hash about which was, you know, about a 50% increase. So where are we going to be in January 2020? Oh, I guess that was 2021. January 2022, I didn't get that one, so I'm missing that one. But January 2023, you know, I don't know where we're going to be for there, but I mean, right now, today, it's 260. The problem is they're not making money, right? So there's an overhashing, arguably, miners bought a lot of rigs last year. They were overfunded, and they thought number would go up, and now they're hashing like, there's no tomorrow and selling every bitcoin. They mine pretty much immediately because they're losing money left and right in the bear market. So you could easily see rigs going offline soon and the hash rate coming down to match the price better. So here's the interesting thing, because I agree with you. I did just go grab January 2022, and it looked like that it was floating around basically, like 175, 190 x A hash. If the year before was like 150, it's like even less as far as is like, the increase. You're going from like 181% to 120% down to 50, and then like, a little bit less. But now it's like up to 260. So I know it's like a lot of numbers. If you're not looking at it, like, I am right here to kind of hear it I hope I'm relaying it correctly for everyone to understand. I feel like we already had a massive correction in the amount of X A hash, and now it feels like it's going back up. Well, exactly. And if you pull this up over like this same time frame, like go back to like I just pulled it up to like 2016 now, and I can see all this hash rate. And you can see it like goes from like this little line there's like this kind of upward, you know, trajectory. And then right around May 2021, you know, of course there was like a big drop. Like it it gets, you know, June, July, July it drops. June, it drops way down to like 87 from and this was in 2021, so May 2021, it had been cranking along. It was like 179 X A hash doing great. Then all of a sudden it dropped huge, down 87 X A hash per second. And then from there you can see it's almost like a bunch of miners turned off. And then here goes a bunch of new ones. Bump bump, bum bum bum bum, boom boom boom. And it goes all the way up. And here we are, 260 something. Yes, I show this article, I've been showing it a lot recently on this show, and I know a lot of you still haven't fucking read it, so I put it up in the nest for those who still haven't checked it out, because it is really fucking interesting. And it's exactly what we talk about every single time we talk about this. It's this bitcoin energy gravity idea that Joe Burnett came up with. But it's a really simple and beautiful idea. It's this idea that when bitcoin is flying high and the prices is surging, it becomes very profitable to mine. So new investors, instead of just aping into bitcoin, what they do instead is they ape into mine. Charts are bullshit. I'm sorry. Because you can't tell what's going on right now when bitcoin dropped from 69 to ten because they're using this log ten bullshit scale. Like, I like the chart idea. It's just that execution is atrocious because they should just show what happens when you go from linearly, what happens when you go from 69 to 17 in terms because I can't tell because it's all gobbled up by this bullshit. Learn how to read log charts and then get back to me. But anyways, what I was saying is like, no, it's bullshit. Log chart. This is exactly what can be used. It's exactly what plan B used to fool everybody into bullshit. I'm sorry, it's bullshit. Get a better chart. The plan B thing is a completely different problem. But yeah, no, all this is saying this is saying something that's fundamental to bitcoin. And honestly, I don't think you can argue against it because this is what happens with capital in the bitcoin ecosystem. At least now that it's been fully capitalized is like when the price is flying high and it's cheaper to mine a bitcoin than to buy it outright, then what you get is you get investment in miners, and that naturally stifles aping into bitcoin. It naturally stifles investment in actual just buying bitcoin spot. And so then you get half rate increase, and then once the price starts falling and it gets to a certain point and it actually becomes more expensive to mine than to buy spot bitcoin, then that flips. And then instead of investing in miners or keeping miners on, you just start buying spot. So it's this dance that goes back and forth. And that's why he's called this bitcoin energy gravity, because it's basically when the price flies too quickly up too high, then there's this natural gravity that brings it back down, which is the flip from investing in spot into cash rate instead, because it becomes cheaper just to set up miners and mine bitcoin than to buy the spot itself. Right? If it costs five grand to mine a bitcoin, you're not going to buy bitcoin. You're going to buy miners and mine in bitcoin for five grand to pop. You know what I'm saying? But if all of a sudden it costs 20 grand to mine a bitcoin and you're not going to invest in miners anymore, you're going to just buy the spot bitcoin instead if you want to invest in bitcoin. So that's kind of like that's the natural back and forth that we see playing out over and over again. So one thing that I think could get us to a peda hash very quickly is if we do get this next run in price, that's like crazy, right? And this is not concerning retail. Retail, they all buy bitcoin spot. This is concerning more like institutional grade investment, which we've been seeing a lot going into mining this past cycle. But I think this will kind of continue this back and forth dynamic between supporting further hash rate and then just buying spot bitcoin. All it comes down to is, what's the cheapest way we can get bitcoin? That's really it. Yeah, I agree with that. It's good evidence for what I think people know from first principles. You have a volatile asset. So when the price goes up and it's cheaper to mine bitcoin instead of buying it, people are going to buy bitcoin. And then because it's volatile and because there's a lot of opium, they're going to overbuy and over invest, and then bitcoin will crash at some point because it's so volatile. And then you're going to overhash and miners will go bankrupt, and then the hash rate comes back down and then go back up. But, yeah, it's good evidence for that. He could have explained it in plain English the way you just did, by the way. I don't know why I'm a big fan of plain English bullshit terms. Doesn't he explain it in the article? Did you click into the article? Are you just reading the tweet? No, I'm just saying, like energy, gravity. BS. He could just say like, when the price goes up, you have overhauling and people over invest when the price goes down. You don't need these kind of terms necessarily. There's a certain segment of the population who's not interested in these things unless it has new terminology because they feel like they're smarter, because they're reading new words. That's true. Fair enough. It's marketing. And gravity is one of these fundamental things that everyone feels like is such an important thing in the universe. And it is. We wouldn't be here without gravity. So, I mean, why not name this? See the meaning, man. It always comes back to the same shit. All these different areas. Terminology, analogies are great because they make it easy for people to understand. But at the end of the day, to me, all I know is these motherfuckers will never stop printing. Ever. They've done it my whole life. I came up with a new term recently. So instead of looking at bitcoin year over year growth, I think we should now start looking at it. Epoch over epoch growth. EOE. There is a tweet from bitcoin magazine. It's a billboard in Kansas City. So there's this huge billboard. It's got a US dollar bill on it that says BTC in the middle. It's really funny, but it says, $1 from 2010 will buy you forty two cents of goods today. Do you know why? I think it's fantastic. Human race needs to wake the fuck up. I don't know who's next. Foster tomer. I've spoken already. Let Greg go. Well, good morning, guys. Greg. I'm doing well, guys. Nice conversation. Can I just interesting conversation. Remember, there are a ton of equity investors who cannot buy spot bitcoin. So they buy bitcoin miners as a proxy for bitcoin spot exposure. So in a perfect world with efficient markets, your argument would make 100% sense. But in the absence of equity buyers who cannot buy bitcoin spot and buy bitcoin for miners for what's called beta exposure, that's why the price of bitcoin miners went up into unrealistic levels on a valuation basis relative to the price of spot bitcoin. Okay? So then think of when investors have unit price bias. Mom and pop retail, oh, I can buy a stock of a bitcoin miner at $4 a share rather than buying bitcoin for 40,000. They don't understand that you can't buy a partial bitcoin. They just have unit price bias. So there's that coming into the equation. And then remember, bitcoin mining is a shit business. Okay? Describe to me any other business where you don't control your energy input costs and you don't control your output revenue. Both are set by markets outside of your control. So you want to be a publicly traded bitcoin miner. That's a shit business. Okay? So any bitcoin miner that does not control the cost of their energy is not a great business. And then back to Alex's comment. You're totally right. You can't stop printing. Why? Because it's pure mathematics. The debt spiral is funded by printing more fiat. Fiat is the error term in the debt spiral. So don't overthink things, but try and explain supply and demand where you have a $350,000,000,000 asset, where the Bitcoin publicly traded bitcoin miners at the top of their market cap at the top of their market caps weren't even measured more than $50 billion. Remember that. I'm curious. Like, got to see your hand. But, Greg, I want to ask you a question. I asked this question, I think, to Tone or somebody else the other day, but okay, for these people who cannot buy Bitcoin, the actual layer, one base layer asset, they have to buy a derivative or a security. Do you think MicroStrategy is a better proxy for bitcoin than any other securitized bitcoin product? So, having spent a dinner with Michael Sailor in La and having owned his MicroStrategy at times over common stock, at times over the past, I believe MicroStrategy today is an exceptional buy. Why? Not because of their bitcoin holdings, but because of Mr. Sailor's vision and where lightning and payment rails are going. But I can't talk too much out of school about that. I will just tell you. The capital structure of MicroStrategy is so hedged and wedged with capital structure arbitrage players convert ARB players, to be exact, where they bought almost zero coupon bonds. Some of them had a nominal coupon on them in order to play the optionality of the MicroStrategy stock, because that's all convert ARB desks do, is get optionality out of a convertible ARB excuse me, a convertible bond and play the ball game and play put Call parody on options markets using a convertible bond. That's what they did there. So that capital structure is a little Bit. It's extremely levered to the convert ARB equity desks and convert ARB desks on Wall Street at a price of under $200. I did the math recently. Yes, I did buy some MicroStrategy stock after having the pleasure of sitting down with the CEO face to face. But I don't own it because it owns Bitcoin. I own it because of a vision of a CEO who I really like. Okay, I'm not going to tell other people how to buy Bitcoin, but I'll just tell you if you're buying Bitcoin using other derivatives rather than buying spot Bitcoin, go and get your fucking investment policy guidelines changed, please. So that you can actually invest efficiently on behalf of your unitholders, rather than with one hand tied behind your back because you're too fancy to buy spot bitcoin, but you're going to buy all these other derivatives that's absolutely atrocious risk management. Oh, guess what? That reflects probably 90% of the pension funds and money managers in America and Canada. You know what? Let's apply Kui bono to that, though. Why are those entities precluded from buying underlying assets? You might ask yourself that question. Because the market is so manipulated. Alex, that's not what I think. I mean, Greg can probably back. No, it's more it takes time, gentlemen and ladies. It takes time to change an investment policy. Why are those policies like that in the first place? Greg, I'll tell you why. Because they are staffed by people that are septogenarians. Like, I know Warren and Charlie Munger aren't septogenarians, they're octogenarians and whatever 90 year old people are. But at the end of the day, they're fucking they're from past times, right? They're trying to COVID their ass. They're all invested in bank stocks and everything that bitcoin is going to disintermediate. So God forbid they should buy the spot. But yeah, we'll buy these Bitcoin buyers. Do you think it has anything to do, anything at all to do with the fact that Wall Street can't make a profit if pension fund is buying an underlying asset versus a Securitized product? Yeah, 100%. Yeah, that's not a bad thing. Greg, have you also in the past talked about how these funds are dumping grounds for crappy wall? That was Max Kaiser. Max Kaiser went on Tucker and completely explained how all that works. That was my true. Yeah. Now don't forget, look, there are structured products that make sense. There are all sorts of things that when you get the alchemist, when I say alchemists, these are the structured product derivatives guys that turn a single B structure into AAA structure like they did on The Big Short and that's bullshit. But there are actually a lot of good structured products that make things more efficient for a large fund. Now, I'm talking a large fund that cannot buy. Remember, if you're a really large fund and you have to own at least 1% of your fund in something in order to justify allocating an analyst time to that particular investment, if you're a trillion dollar fund, 1% of a trillion dollars restricts you to basically large cap everything. Which means you'll never be able to get into small cap anything unless you can do it through a structured product. So understand that there's different ways of skinning that fish, but it's the difference between big money and mom and pop retail money, okay? And you can't apply a blanket solution to everything and then I just want to start by or end by saying this, look, log scale is log scale. Don't confuse it for what it is, but don't say that people are trying to terence, this is not a shout out or a shot at you. It's just saying as long as people understand they're looking at a log scale, they shouldn't call it. It's just a part of mathematics. And log scales mean a ton to the mathematicians. They may not mean a ton to the mom and pop retail crowd. So just, guys, if you break everything down to first principles, mathematics. You break things down into what's a good business and a bad business. I don't know if I'd want to be a bitcoin miner where you have no control over your business, but then you were able to sell stock to the public at an inflated price and feel good about yourself. Look at Argo Blockchain right now. They are living the nightmare of taking capital at the wrong price and deploying it wrongly. And, yes, you're right. There's a lot of hash that will come off of the system. Why? Guys are running rigs because they're trying to generate cash flow. It doesn't mean they're trying to generate a profit. They're trying to generate cash flow. There's a big difference. People understand that difference. Yeah, the thing you said about any business where you can't control your input costs or your price of sale, I had not heard it put quite that way before, but that makes a lot of damn sense. I was like, oh, damn. Yeah, you're kind of right. Which leads me to the next thing. Those businesses might only make sense if they're actually power producers. Amen, brother. Amen. And that's where the world's going. When you see Duke Energy mining bitcoin and stabilizing the grid, you'll understand that bitcoin and its beauty have arrived in capitalist America right now. It was just a precursor and a fucking horror film because it was sold to unsophisticated investors at the wrong price by people that were CEOs of mining companies because they did it in their parents basement. Very simple. Yeah. So when you see announcements like ExxonMobil rolling out this flared gas project where they believe it's going to reduce their greenhouse gas emissions by, like, 63%, they're rolling it out across four countries where they're taking this flared gas. My understanding is they're not actually giving a crap about the bitcoin, just trying to reduce emissions so it looks good on their books. Alexand, respectfully, that's not the energy producers we're thinking about here. We're thinking about the electricity distributors. We're thinking about Shameless promotion of a business I'm involved in. We own peaker plants that are on call. They are not running 95% of the time, but we have capital costs. Don't you think it would be wise for us to figure out how to explain this concept? I've heard the word before, but I'm not sure I understand what it means. It's a peaker plant. Okay. The grid is inherently unstable because the grid and the demand for electricity fluctuates during the day. Right? The biggest electricity draw on a grid is when people get home from work and they turn on their stoves. Electric stoves. They turn up their heat. Electric heat. They turn on their hair dryers because they're going out at night. Anyway, the point is, the grid is set up for maximum demand. But there's not always maximum demand going on in the grid. But it's an ancient technology that needs you to be able to supply that power so that the grid does not black out when everybody goes to maximum demand. So in a given day, if you have 100 megawatt demand or peak demand, 100 megawatt, I'm talking about a micro grid here that's set up for the 06:00 P.m. Draw versus during the day, the true demand from the grid might be half of that, meaning 50 MW. So you have power producers that are primed to provide 100 MW, but only 50 MW is being used during the day or in the middle of the night. So what are you supposed to do with that? You're probably supposed to mine bitcoin to defray your capital costs of building these plants. Now, I talked about a peaker plant. This is a plant that is on call so that when you have a draw because of really exceptionally cold weather or really hot weather in the summertime when everyone's turning on their air conditioners and you have rolling blackouts, that's when the peaker plants come on. But a regular utility is always load balancing during the day just because that's the draw on the grid. So you'll have the Duke energies of the world that are baseload providers, not peakers baseload providers that are going to be mining energy because it helps to stabilize their grid. Why? Because you want demand for when your turbines are turning and no one has demand for it. Well, in Canada, we pay Americans to take that electricity from us. We don't sell it to them cheaply. Alex. We pay you lucky people to take our electricity. How messed up is that versus us mining bitcoin with that excess power capacity, and that is a fact. One of our nuclear generators sells not cells, gives power to the northern peninsula in Michigan, and doesn't just give it to them, we pay them money to take it as well. Well, if that's a good business model, you've rewritten fucking capitalism. Okay? So start mining bitcoin Canada, and get your fucking asses and gear. ",timestamp:"00:35:14-00:58:57",topics:["Bitcoin Hashrate","Bitcoin Economy","Energy Industry"],type:"twitter_space",weight:9.1248779296875},{boost:0,date:null,description:"Discussion on how much information investors and promotors knew about how BlockFi (and others) business's worked",episode_title:"TOXIC HAPPY HOUR! #Bitcoin is Easy Like Sunday Morning! 🍻😂",guests:[{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:" TC",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"dac0717a-a743-40d4-a89f-7523f071bbb0",twitter_handle:"publordhodl"},{name:" kann b",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"1170bde7-7f3c-4c4f-a158-5c48a98fe92b",twitter_handle:"publordhodl"},{name:" Dallas Rushing",profile_picture:"https://pbs.twimg.com/profile_images/1602759767029604352/hzuwh5ZB_400x400.jpg",ref_id:"13fed037-77ce-48eb-9544-25e7abff9395",twitter_handle:"dallasirushing"},{name:" Lisa Hough",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"5e154adf-d8bd-4adf-a23b-47a51c183163",twitter_handle:"lisa_hough_"},{name:" Collectooor of sats",profile_picture:"https://pbs.twimg.com/profile_images/1594362077132587009/cNAE2FU5_400x400.jpg",ref_id:"c84d0e47-7eeb-419b-a36e-5055b96044f0",twitter_handle:"hoardingsats"},{name:" Gold Leader",profile_picture:"https://pbs.twimg.com/profile_images/1594152783011250176/lHMHv3gB_400x400.jpg",ref_id:"96c4f802-25ff-4a81-b91f-cae5562bf4a3",twitter_handle:"GoldLeader89"}],hosts:[{name:"Publordhodl",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"5e189a7b-56c3-40ae-834e-4e2ccee3a9ad",twitter_handle:"Publordhodl"},{name:" Anders_",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"15bdd6b9-bdfd-492d-b7bf-c5a56ecadc50",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/4e00853b-49e3-4b46-bd13-bf7f2aa25905/56f0089c-a7f2-4b1b-8576-a3e4ddb9791f.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"c9e43dce-1fac-4545-be91-7aa8594fa7e6",show_title:"PUBLORD",text:"you're good. I was just going to ask DC or Gold I'm definitely familiar with I would take a decent amount of the details with a lot of these centralized earn yield type of products that all blew up. Do you guys know? Two questions would be one, do you think that investors like Pump or you Scope had full access to know all that they were doing to generate yield on those funds? And if that already has come out definitively, then cool. I just haven't been following that super close and because like I mean with them being a US company, like I figured there'd be access into like seeing exactly what they're doing to earn yield on that even by like investors. Maybe not like super tiny investors, but like if you're there from like if you're a seed guy, like you probably have access to know what they were doing to generate all that yield. Is that can you guys confirm if that was the case? Yeah, I'll take this one. Started proof of keys. Not your keys, not your coin. Listen, here's the problem. Even if McCormick would have said to block by, hey listen, I'm not sure what are you guys doing here? I'd like to have you as a sponsor. Thank you for whatever amount of money you're doing or anyone else that promotes it. Here's what goes on man, for proof of reserves. And it reminds me from the movie The Big Short, all right, if you remember, they go down to the rating agencies saying, what the hell is going on here? What is going on with these bonds? These bonds, you know, are just full of dog shit wrapped in cat shit and then layered with some more dog shit. How are they getting these ratings? And they finally get the lead to admit, listen, if we don't give them the rating. They'll just go down the street to Moody's and get the rating they want. This is exactly the same thing. So we can beat these guys up. Okay? But at the end of the day, there's always going to be another grip, another angle. It's going to be someone else that, oh, yeah, let's start a company. Proof of reserves. All right? We'll get proofofreserves.com, and we'll get all these companies to write us checks. And then when they go out and they want to be sponsored by someone, that person is going to call us, hey, you guys are proofofreserves.com. Does BlockFi have all this stuff? Oh, yeah, man. Yeah. So we're cashing checks from BlockFi and it's proof of reserves.com. We're making a mint until the ponzi blows up. It always blows up. James Ma'am real quick, if I could. Just add one thing on that. I think the question, too, is like, that people should ask is, you're like, okay, this exchange is offering me 6% yield on Bitcoin. You're like, well, where exactly is that yield coming from? Who's paying 6% to borrow Bitcoin? And why would somebody do that? And one of the reasons is that people will borrow Bitcoin to short it, and they'll pay a yield for that. But that 6% is still pretty rich. But I think what a lot of these companies were doing was basically like, for a Bit, you could earn 20% on UST. And so there were companies were probably taking dollar loans against an asset like Bitcoin, and maybe they're paying whatever, 8%, even 10% to borrow those dollars and then trying to go earn 20 over on Terra and then make that gap between the two. And they could pay that out as a yield into Bitcoin. But either way, the problem is, like, all of this sort of set on each other, and a lot of them start to go well, each competitor starts to move it further out on the risk curve, and they're like, well, they're doing it. Maybe we can inch a little bit more, a little bit more. And then by the time a couple of months goes by, everybody looks up and everybody is just, like, waist deep and fucking risk and systemic potential bulbs and stuff. And then there's no way to really unwind that correctly without there being shortfalls and you can't liquidate everything in time. So it's unfortunate that, like, a lot of them felt the need to take on more risk to stay competitive, which ultimately is probably the reason why all of the above kind of blew up. Yeah. James go ahead, man. Let's see your hand up. Hey, good morning, guys. Morning, Dallas. Puppy. Yeah, I just wanted to weigh in on some of the comments regarding I mean, there's a lot that's been said, so I'm going to try and synthesize my thoughts. I'll just start with the Exchange avenue because that's obviously who I work for. There is a palpable kind of steering via the capital stack of the ideas and execution of some of these exchanges. Meaning, like, if you're going to continue to ship coin, your cap table may have some influence on that, which is a real problem. So I just wanted to acknowledge the fact that Lisa, who was just in here, and myself, there are a layer of toxic, extremely, extremely toxic individuals who are working within these what we'll call third generation exchanges that are going to come out of this shitstorm and are extremely adamant about, obviously, for pledge to hold your own keys, but also to provide a level of we'll call it proper fiduciary custody, like a traditional bank does, being bitcoin only for institutionals. So I understand that you should never leave your keys on an exchange, but we're also preparing for governance models where they're not allowed to hold their own keys. So there's a really deep balance and I think that what you're hitting on pubby is important because you can only protect yourself so much reputationally wise in this space. Like TC and Gold said earlier, you should be fucking Ostracized. Like, you really need to understand this is not about this other bullshit, it's about Bitcoin. And there's a huge segment of the market that's going to get captured by an exchange, especially a US regulated exchange, that acts like a real fiduciary for the first time in this space. And they do have proof of reserves and they'll most likely be audited either after IPO or they will give out some kind of information to show their liabilities as well. So it's a complete transition. The fraud and the corruption in this space has just shown everything is getting whittled down and we see it on a regular basis and it's just very exciting to kind of help push that extreme toxicity on some pretty high levels of capital inflow into the space. You made some excellent points there and one I want to highlight was anyone that came in, which is, I know the majority of us, you heard about this thing called Mount Cocks, Mount Cox blowing up. Everybody came in in 2017. You start hearing this thing about not your keys, not your coin. Well, guess what, man, that was being preached. But honestly, aside from a couple of small exchanges, it never really sunk in with many people, all right? Until this year. Until this year, when you started seeing everything unwind, from Luna and Celsius and Voyager, now FTX and Blockbuster, now you're seeing it unwind and you understand what that means. Not your keys, not your coin. And this isn't to say, look, if you're new, yes, practically, you need an exchange to buy your bitcoin. For many people, however, anything else, you're going to do all right with your bitcoin, you can leave it there, not a problem. You just better understand the risk. Here's the assumption you're making that one, they bought the bitcoin. They say they did all right, because it's easily just a number on a balance sheet. That's a good feeling. You log into your account and you see that whole coin you bought. That's great. Your assumption is that they have it. Okay? That's your assumption. And two, that they're going to stay solvent. They're going to stay solvent. It's not going to go away. This is the wild rest, man. And there's a reason, all right? The government obviously is fearful, fearful of an asset class that is decentralized, censorship resistant. Anything they can do that will allow anything conflated with the wild west. They don't care. The more people that lose their money, the more people that lose their money is better for them. Most people are going to find bitcoin or people that are going to stay away from it for the longer time. But I think you have some great points here, man. Yeah, I appreciate it. I just want to make one more quick comment. There are varying. Like, we've sat down on regular basis and formed products and offerings for clients that can help alleviate some of the initial transition. Right. We don't want to hold any of your keys. We don't want to hold any of it. It's a risk to us. We get a withdrawal fee on the way out. We're good with that, man. Have a nice day. Here's your keys. But we do have some smaller options. Like, for example, we can give someone an address on the blockchain to see their funds and literally have them. It's kind of like our pleb level, easy access to verify exactly what's there. But I get it. At the end of the day, the private key is the asset itself. So there's a level of extreme balance between acting as a fiduciary, like a bank, which we're happy to have that bank underneath to provide that further security for people coming in, not having to seek yield from other parts of the business like the exchange, because you have a bank underneath. But it's definitely a really intense issue that's going on right now in particularly, and I'm narrowing this to the we'll call it the institutionalization or the financial end of bitcoin. And obviously we're really excited to help miners out and help all the parts of the bitcoin space. And I couldn't be more happy to be in a community of guys like yourself. Pubby, TC, Dallas, everyone, where this isn't a fucking joke. This is truly something important and I'm ready to lose my job every day going in and speaking the truth. Yeah, here's the hard part, man. You just want to have faith in something. If I could just find faith with one institution in this quote unquote industry. I hate using that term, my God. But like you say, man, we got to slow our heroes. Every month it's another company disappointing us. It's another person that you thought was bitcoin only that is rug pulling shit coining. Whatever. That's the disheartening thing. Dear God, why can't there just be an honest damn company? And you're right. Look, I get it. There's got to be a company that can offer some sort of on exchange solution for clients. Well, you know, develop a company where it's an easy multi safe for someone to handle. I don't know. I don't have all those answers. Until then, I'll just always say my assumption is if I have in self custody, it's not mine. It's zero, it's nothing. It's gone into somebody's pocket. It sucks that we have to be like that, because I know then you get, oh, my God, they're so toxic. Well, guess what? We've seen so many people they're targeting. You get people come in, they came into Celsius, they came into Luna, and they're in the space. Oh, my God. Bitcoin is at what, 20, 30, 40,000, whatever it was at that time, they came in, well, I missed a boat. I got to find this next bitcoin. That's a nickel, because that's my ticket out of here. The system is broken outside. My 401K sucks, so I'm going all in on this thing. That's a nickel. It's going to be $30 next year, and I'll be saved. It's a battle that we love to fight, man. It gives me purpose. Gives me a great purpose in life, is to help people understand what both systems are like, but it's disheartening the number of people that are coming into a space that has genuine intentions to help people and just rug pulling them as well. That's all I have to say ",timestamp:"00:55:59-01:08:18",topics:["yield generating products","investor disclosures","influencer marketing"],type:"twitter_space",weight:8.947233200073242},{boost:0,date:null,description:"Current bitcoin mining energy situation in Kenya",episode_title:"#Bitcoin Kenya 🇰🇪 - meet the Kenya Bitcoin community",guests:[{name:"Noelyne Sumba",profile_picture:"https://pbs.twimg.com/profile_images/1585949523901292545/tWf-IwWO_400x400.jpg",ref_id:"44455b1d-76cf-49df-baa0-cd606652885b",twitter_handle:"noelynesumba"},{name:"Okjodom",profile_picture:"https://pbs.twimg.com/profile_images/1577811376487088128/J2Z4nIgI_400x400.jpg",ref_id:"4c9df92d-3bb5-4d08-9a7e-a9ba15f58f03",twitter_handle:"okjodom"},{name:"Master Guantai",profile_picture:"https://pbs.twimg.com/profile_images/1521025685078302720/w9dZwehS_400x400.jpg",ref_id:"64c326c4-d4a9-4e6c-82fe-0c9bac8a7094",twitter_handle:"MasterGuantai"},{name:"Lorraine Marcel",profile_picture:"https://pbs.twimg.com/profile_images/2361719231/German_sheperd_Puppies_400x400.jpg",ref_id:"ab30679d-7931-4921-a4f8-6fee74e412c8",twitter_handle:"lorrainemarcel1"}],hosts:[{name:"Mary Imasuen",profile_picture:"https://pbs.twimg.com/profile_images/1465290507752558596/lZVbU9np_400x400.jpg",ref_id:"2d8ed8ce-5112-4dfa-9aa2-5fa8b874af68",twitter_handle:"mary_imasuen"},{name:"Lukas Poland",profile_picture:"https://pbs.twimg.com/profile_images/1382603302160932865/RgeQnCXM_400x400.jpg",ref_id:"217a2c5a-1cfd-4840-bbff-eec43da8c52f",twitter_handle:"duczko"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/56bbafde-60ef-4e4b-b930-978429c6a635.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/9f2ebf6e-a880-4579-986c-ff0c9c517559/2cb59251-775d-4691-9c8f-30fb9d7707b9.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"3dff5b59-31e0-4ce9-8add-c8a2ba564259",show_title:"Global Bitcoin Fest",text:"so much for sharing. That sounds like a lot going on. How many people do you usually get to those meetups? Okay, so we have we it changes from 30 to 50. 30 to 50 people. Whoa, that's a lot. But part of it at our class, like the class and then the others are newbies and then we have the speakers and of course just anybody else in the bitcoin community. Okay, do you get swamped with bitcoin or so you manage to. Yeah, they come. But here's the thing, I am not that kind of a person who blocks people from getting to these meetings because at the end of the day, I want them to see why bitcoin and not shit coin. So I don't like tend to block people from coming to our meetups as long as you understand this is about bitcoin and not sheetcoin. So I find it important for them to learn and understand why we are advocating for bitcoin and not the sheet coins that they are probably participating in. And I have students, I can tell you for a fact, I've had students who are actually participating in shit coins. And they come, they listen, they learn, and they're like, okay, I'm just going to drop these and focus on bitcoin. So, yeah, so that's my approach. That's the female approach. Awesome. I guess most of us have been there, at least for sure. I was the shit corner, and I think that's the past many of us walk through. So I feel sympathy for the people in the shitcoin game. As long as they're not the main shillers, I feel sympathy. Exactly. So, Gridless, I'd like to hear a little bit about what you guys are doing with mining. And yes, could you share a little bit about that? Yes. So what we do is we find mini grid developers who are in rural communities who have overbuilt their mini grid capacity. So they have for instance, I'll just talk real numbers. There's a site in Morgana about two and a half hours outside of Nairobi that has a 50 kilowatt mini grid that was built a couple of years ago. The community only needs 30. It during the day, and then at night, between six and 10:00 p.m., the usage goes up another 10. So what that means is throughout 20 hours of the day, there's 20 kw available for use. And it's not being used, it's just being dissipated as heat. And that means that the developer, the mini grid developer isn't getting the full amount of revenue that they could get. And during those other 4 hours between six and ten, there's still 10 kw that are not being used. So what we did is we went, we walked in and we did a deal with them to buy that extra capacity as a buyer of last resort. It's just stranded electricity. And then what we do is we put in six minors in that case, because each of them takes about just over 3 kw. So we put six miners in that location on site and just started mining. The effects of that are pretty interesting in that, first of all, the sustainability of the business for that mini grid developer increases. It means they have full usage all the time. We can curtail our energy use within minutes and we can do it remotely. So it's automated even. And the plan is that we can continue to grow with other mini grids like this. So some of them will be small, 50 kw, like where we are. Others will be larger. 500 kw is the next site that's actually, we're about a third of the way built out with miners on it this week. And it might get even larger than that at some point. But really we focus on these smaller mini grids that don't have any grid connection back to the main national grid. And so it really helps strengthen them as a business. Sometimes I can't promise this at all, always happen, but at least in this case it has. Because they're getting the returns from us and being able to utilize their energy at full capacity, they can lower the cost of the energy for the people in the community. So in this case it dropped from about 1000 shillings per month per family, so household group to around 400 shillings per month. And so it's a sizable decrease in costs for a rural household. And it means that they can go from just first when families get this, they put on Led lights and then the second thing they do is make sure they can charge their phones. And then after that, if they still have some extra disposable income, they might look at buying a television or refrigerator or something like that. But what they can do is slowly, over time, this usually takes five to ten years. That community increases the amount of power they need. And with our set up and the way we've done, our business relationship with the mini grid provider is that we can just decrease the number of miners that are on site and move into a new location. So the community always comes first for power. That community means both households and local businesses. And then we come third. And then if the community and businesses increase, then we decrease. Is that clear? Does that make sense to everybody? Yeah. This sounds like the perfect model to showcase for all the bitcoin haters and energy use. Haters basically empowering local communities through bitcoin mining. What's the model? Do you buy the energy from them? That's right. We go ahead and structure a deal with the mini grid provider. So obviously we get a wholesale rate because we're coming in and buying the stranded electricity that nobody else can buy. But it is still significant enough because we're utilizing that excess energy 24/7, that it makes a significant impact on their business. Who is we? This is what we as gridless. So I should make sure everybody understands this too, that with hydro and possibly geothermal, but we're not doing that yet, that's 24/7. So it's very efficient power. As we look at the models for mining, however, if we look at solar and wind, it has a lot more variability in that the sun doesn't shine at night and the wind doesn't always blow and we can't just go put storage, battery storage in place for those dead times because that increases the expense significantly to install. So mining in those locations is a little different. You can still do it, but your return on investment goes from, you know, twelve to 15 months to maybe three years and and so you have to think a lot more you know, you have to think a lot more creatively about how you solve for solar and wind, but hydro and geothermal are particularly good for this. And how large is the market? How many minute grids are there in Kenya would you estimate that need this service? Yeah, so our estimate in East Africa, most of this Kenya, is there's about 200 stranded energy, renewable energy. Now, not all of that is going to be super useful because some of it's solar and wind. But even within the hydro mini grid space, there's a significant amount. So one of the things we did, we announced at the Africa Bitcoin Conference this last week was the Green Africa Mining Alliance. You can find out about it by going to just Gamma Africa or on Twitter. It's gamma underscore Africa. And the reason we did that is because there is a few other miners in Africa doing either on a small, very small kind of grassroots scale, like Carbon Coin is doing in Nigeria, or larger, like we see with Sebastian and his crew doing it called Big Block Data Center in the Congo. So there are a couple of people doing it in different stages, and we need more of it. Even as Grid list, we can never do all the mini grids that need this, even in East Africa, much less the rest of Africa. So Gamma is really about trying to get more people mining across Africa and creating a place that they can go to understand it, find help, be connected with good mining resources, including the people who sell it so they don't get scammed on buying the actual miners and then understanding what models work. What I'd like to see as well with Gamma is that we provide a body of knowledge and data, real information from the mining sites that can be helpful for policy and regulatory bodies as they start to make the rules around this across the continent so that they're at least coming from a position of information, of knowledge, not of ignorance. So, yes, what I'd like to do in the future is create a way that people can get real information and start their own mining. That's super awesome. Angola seems to have a fairly thriving mining community. Maybe I don't know if you're in contact with them in orland okay, yeah. Thank you. So I'd like to highlight I got to meet Eric in Ghana. Eric, thank you for the Tshirt. I really loved it. So if anyone saw the video that's the Gamma Tshirt Eric is talking about and maybe I'd just like to highlight the importance of what I saw Griddless is doing in Kenya. And so just recently there was news that came out that our solar electricity distributor is about to start billing people, that is, electricity consumers in dollars, Euros, and other foreign currencies. So this is because of the Depreciating Shilling. And of course, it's a bitching shortage of forex in the domestic market. So with this, we have companies like Gridless giving us a solution for cheap energy. And I think it's going to be a game changer for Kenya. For example, just today, I did not have power for a few hours before this space started. And I was worried, I was like, come on, what's happening? And it's been happening in terms of power shortages. So I think gridlock is doing a wonderful job and if Kenya can be able to receive cheap energy, then yes, I understand it's necessary. Thanks Darwin. What I hope we can do too, speaking to that is let me give you a story. So if you guys remember here in Kenya two weeks ago, we had a nationwide power outage for 5 hours and the people on the mini grid didn't lose power, the people that were on the main grid did. And so there's something interesting that's going on that's counterintuitive about national grid connection versus microgrid or mini grid connection. And I think especially for people in rural parts of the country, it becomes really interesting when you can start pushing electrification to the edges, making it less expensive, more available and more reliable than the national grid. And I think that bitcoin mining is the thing that can actually drive that. It's that silver bullet that was missing from it. Most people don't realize this, but any mini grid operator of any type, whether it's hydro or solar or wind, has had a real fight to be sustainable in this country, sorry, not even just in this country, across East Africa. So bitcoin mining as a buyer of last resort that's geographically agnostic, can go anywhere, I think can solve a lot of those issues and increase the connectivity and electrification that's needed in the country. So, ",timestamp:"01:28:52-01:41:46",topics:["bitcoin mining Kenya","bitcoin energy","Gridless Kenya","Kenya National grid"],type:"twitter_space",weight:8.81690502166748},{boost:0,date:0,description:"What is a speedy trial?",episode_title:"Taproot Activation Q&A with Bitcoin Devs - TABConf 2021",guests:[{name:"Andrew Chow",profile_picture:"https://pbs.twimg.com/profile_images/1452266201770496010/44FHCtZM_400x400.jpg",ref_id:"f96d87ca-5060-4021-aeb9-61db03312027",twitter_handle:"andrewrchow"},{name:"Ben Carman",profile_picture:"https://pbs.twimg.com/profile_images/1550704386007089152/pLwUSeff_400x400.jpg",ref_id:"1d1e95ba-b4af-415f-aafe-85c6dd7571b8",twitter_handle:"benthecarman"},{name:"Matt Corallo",profile_picture:"https://pbs.twimg.com/profile_images/697361498587451394/_rX0-O0W_400x400.png",ref_id:"08cb3c45-c0bc-4a60-ae5b-a1283d352c8b",twitter_handle:"TheBlueMatt"},{name:"Pieter Wuille",profile_picture:"https://pbs.twimg.com/profile_images/1264051937172836353/n7gHdLbB_400x400.jpg",ref_id:"40260d2f-3480-47d6-8515-d2e780901273",twitter_handle:"pwuille"},{name:"Vivek Kasarabada",profile_picture:"",ref_id:"60ed22d0-8cf3-410e-8a7c-9c343ae109ca",twitter_handle:""},{name:"Murch",profile_picture:"https://pbs.twimg.com/profile_images/1269477743525130241/-U843Cmt_400x400.png",ref_id:"3e2c1c73-a057-4475-9782-3bb0d3d8cc62",twitter_handle:"murchandamus"},{name:"Andrew Poelstra",profile_picture:"https://pbs.twimg.com/profile_images/1316562683009921024/FSscAYvJ_400x400.jpg",ref_id:"15fb9c53-c988-4af1-bbf0-4832d71b0a01",twitter_handle:"Blockstream"}],hosts:[{name:" TABConf (The Atlanta Bitcoin Conference)",profile_picture:"https://pbs.twimg.com/profile_images/1596233571521499138/YE8Us_Ml_400x400.jpg",ref_id:"eb1b6016-6223-4b2b-9264-2423ce66304f",twitter_handle:"tabconf"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=MrxtqAlRI2U",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"88a4665a-7414-4ccd-96e4-3fb43f93d9bc",show_title:"TABConf (The Atlanta Bitcoin Conference)",text:"For context, maybe we could explain what Speedy Trial is. My understanding is it basically allows you to put a delay between activation and signaling, but there's also a way to back out if things seem to be going wrong. The activation mechanism we have used previously for CSV and SegWit was called Bit nine version bits. Speedy Trial is a modification to this where we have the start time of the first signaling period was really soon after the parameters had been finalized. And this allowed us to then see very quickly if nodes and minors were upgrading and then were starting to signal for Taproom. And one of the other key features in the speedy trial is that we added a minimum activation height. So this allowed us to delay the activation to a height in the future once there was enough signaling and the software cab locked in. So what this allows us to do is we can see whether Taproot would fail really early on and if it would fail, then it would fail quickly and we could try a different deployment method. I'd rather mention the end time. So the end time for the signaling was also fairly short. There was a whole period of about three months, but we activated it in like four weeks. The lock in was after was it. The second or a third signal? It was a third, I think. Anyways, we have a minimum activation height so that in between the the lock in time and the actual activation time, that's when everyone can upgrade. Everyone knows that Tap Rout going to happen and so they can be ready by the time we reach that minimum activation height. And so for Taproot, that minimum activation height is that 709,000, whatever. So here a small call to action. If you're running a full node and you're not running one or 22.0 or a newer version than that, you might want to upgrade when you get home immediately. Go ahead. ",timestamp:"00:05:16-00:07:48",topics:["speedy trial","minimum height activation"],type:"youtube",weight:8.499536991119385},{boost:0,date:1632355200,description:"The overview of the current state of the ASIC Bitcoin mining hardware market",episode_title:"The ASIC Mining Hardware Market",guests:[{name:"Vincent Zhang",profile_picture:"https://pbs.twimg.com/profile_images/1158285609196109825/fuB-e6lm_400x400.jpg",ref_id:"98e7bc98-3a3b-4ddf-9b48-5dcd78973739",twitter_handle:"Whatsminer_MBT"},{name:"Vincent Vuong",profile_picture:"https://pbs.twimg.com/profile_images/1260974518547312640/n47yvbNL_400x400.jpg",ref_id:"8390e230-e36b-4e0d-9f5d-70c6635bf3c2",twitter_handle:"BitcoinVincent"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=qKeUCNXa4Uc",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"198dfd3b-7d1b-422c-b118-48520629af43",show_title:"Compass Mining",text:"kind of want to kick off the general ASIC market conversation with us today with just like a general question on an update or an overview of the current state of the market. Like, if you look at price charts for the assets themselves right now, you see a little bit of selling activity over the past couple of days, maybe a little bit of fear, some dicey news coming from different regulators around the world. But if we focus on the hardware market, like if you were to give sort of a concise update on the state of Bitcoin mining hardware right now, what does the market look like? What are some key data points or movers and shakers jostling for leadership positions? And whatnot in this slice of the market? What things sort of stand out to you? Vincent from Compass I'll toss it back to you and then vincent from what's? Minor also, for sure. I appreciate that. I personally see that. I think in July we saw a lot of people had excess inventory, but we slowly starting to see markets pick back up again, especially with the coin wrapping up. Even with that slight dip down to 42K ish, we haven't seen too much selling and too much decreases in hardware. Typically. I spoke about this on an article with Coin desk where the asics generally don't go down in value as quickly as they go up in value. And we're starting to see that a bunch of public companies are making large announcements about picking up machines for Q two, Q three, Q four of next year. And for me, I think that it's extremely bullish because there's a lot of equipment that is on the secondary markets that these publicly traded companies can't touch. And so that's why it's going to be an interesting little bit. They're basically just purchasing from the manufacturer when sometimes specifically in July and August, the secondary market was cheaper than what was on the threat from the manufacturer. And I think that once people realize that and they realize they need to take advantage of all these areas, it's going to change how people procure their asics. That is interesting. Yeah, we saw a lot of heat on secondary markets there. Vincent, from what's minor? Same question to you. When you look at the ASIC market in general right now, what's the status of the market? What are key things that you see that stand out to you? Yeah, so market so in this year actually changed a lot. So we have to say change a lot. And the first change, so what I can see is actually this change happened since last year, not only this year, but this year, the trend was enhanced. So what I observed is the capital from North America and Europe. So they invested huge since the year 2020. So the big players, they sign agreement, longterm agreement, either with us or with Bitmen, and the procurement plan and quantity is really huge. And so the trend was changed, even enhanced this year, because this year, the investors in China, they were not able to put the Arctic minus in China mining further. So some small players doing mining in China, however, the large data center, all of them are almost closed and the regulation and the policies becoming more strict. So the investors from China, they reduce procurement quantity in big quantity. So we have to say more miners are moving outside of China and we can see that. So more miners are actually purchased by the investors outside of China. This is number one. Number two is that right now the big players, they prefer purchase the minus in advance. For example, as Vincent said just now, big players, they even purchase the supply of the in the year to some 22. Okay. Q. Two. Q two. Q three. Q four. They have the contract with us or with some other purchasers. So they prefer purchase even more than half year earlier than the supply time. And so, however, we are not saying the minus in stock are not able to be sold out. So some small and medium investors, they are trying to access to the minus available immediately. And this is not a small portion. So also big quantity can be traded. And also the Easter miner. So in the month of May and June, so the Easter miner becomes really cheap due to the regulations published in China. However, it's recovered very fast. But what I can see is probably from October, November onwards. So if bitcoin price will not have a significant increase or growth, I think the price of the miners may drop down. And another point is, so right now we can say the vendors like us, ask hardware providers like us. So we will prefer have long term cooperation with big players and investors. Okay, so you can see that right now, the sales policy from asik provider vendors also change a lot comparing with a few years back. It is totally changed and slowly it is not becoming the vendor market. So also it is well balanced right now between the vendor market and the purchase market. Okay, so these are the observations I can share. ",timestamp:"00:07:45-00:15:02",topics:["ASIC","Bitcoin Mining Hardware Market","markets"],type:"youtube",weight:8.467833996035228},{boost:0,date:1671029781,description:"Aftermath of the crypto market crash: Financial standings of DCG and Genesis",episode_title:"Café ₿: GBTC was the Genesis of the Crypto Contagion w/ @samcallah",guests:[{name:"@StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"6e652629-38ec-49d8-9f5c-3ba28f80c799",twitter_handle:"StackchainSig"},{name:"@Meditation_Man",profile_picture:"https://pbs.twimg.com/profile_images/1597303881339314176/kFqDWvq0_400x400.jpg",ref_id:"cf7119ec-50a5-4ba2-a9a6-4a24835f3364",twitter_handle:"Meditation_Man"},{name:"@TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"7af639f8-8c5c-4ce1-a43b-e8560ed40e2b",twitter_handle:"TomerStrolight"},{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:" @samcallah",profile_picture:"https://pbs.twimg.com/profile_images/1502454836981166082/cQG0YQxc_400x400.jpg",ref_id:"ee5d0119-780d-4539-9b84-83025e95c03f",twitter_handle:"samcallah"},{name:"@sonofsats",profile_picture:"https://pbs.twimg.com/profile_images/1593080311000211456/Dr_NQ9Iw_400x400.jpg",ref_id:"07f15eea-1f9a-41bc-b974-ffd370885708",twitter_handle:"sonofsats"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/75d674de-3859-49f5-abcd-927017e3a24f/b763dc91-acba-4530-9c22-88fea8193185.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"7b90a2ff-ac29-43a9-9911-0eec916e3088",show_title:"Swan.com",text:"happens to DCG? What happens now? Are these guys in trouble? What do you think? DCG and Genesis are definitely in a tough spot right now because basically they basically have huge holes in their balance sheets from having exposure to all these blow ups. Genesis had exposure to three AC. Like I just said, they also had maybe the worst trade in history when they traded $1 billion worth of Bitcoin for $1 billion worth of UST with the Luna Foundation, which basically went to zero. So they gave, like, the hardest money in the world for an Elgo stable coin. And so they got crushed on that. They got crushed on three AC, and then they had 175,000,000 trapped on FTX when that collapsed. And so Genesis has a huge hole in its balance sheet as well as DCG, because DCG actually bailed out Genesis after they blew up from three AC. And then DCG has been kind of they have a ton of debt on their balance sheet now after they did that. So essentially, they took on that Three Arrows Capital loan, that $1.1 billion hole on Genesis. They basically just assumed it on their balance sheet. And then they also took out a $575,000,000 loan with Genesis to basically try to buy more GBTC shares themselves to try to prop it up. And if you look at, like, their buys, you can just look at their SEC filings. And when they bought the GBTC shares, they're down about 77% on those GBTC purchases themselves. Basically, the problem is liquidity here, where Genesis needs liquidity to fund withdrawals and pay its creditors. But they don't. They have all these, like, long term investments on their balance sheet. They basically have a ten year loan to DCG. So that's not like a short term that's not liquid. And they also have a lot of GBTC shares which aren't really liquid for Genesis or DCG, because there's a rule where if you are the issuer of a security like Genesis or DCG, you can't sell more than 1% of the outstanding shares for every quarter. And so right now, DCG owns 66 million shares of GBTC. But according to that rule, they can only sell about 6 million or 7 million shares a quarter. And so that's why it's extremely ill liquid right now that they have all this GBTC on their balance sheets. And so basically, they're desperate for cash. And DCG owes Genesis $1.7 billion, and they're both trying to fill that hole. And so, yeah, the question becomes, what happens to DCG? What options do they have? What does it mean for GBTC holders and what does it mean for the price of bitcoin? And there's a lot of options they have. They can sell GBTC shares. But it's like I said, there's a rule about it. And I think they are doing that right now. I think that's why you're seeing the discount widen right now. You're seeing Genesis and DCG probably selling what they can, according to that rule, to try to raise cash. But again, that's not even close to the $1.7 billion hole that's in their balance sheet or just that they owe to Genesis in terms of DCG. And so that's not enough. So what else could they do? Well, DCG could raise funds. It was previously valued at $10 billion. It'd probably be a fraction of that today because that was at the top of the bull market. And so there's still value in DCG. They have a giant venture portfolio, and they can kind of leverage Grayscale itself. So Grayscale still brings in $300 million in fees a year. And so they can leverage that annual revenue to try to raise funds, to try to raise cash, essentially, so they can leverage those future cash flows. And then they have assets like CoinDesk and Foundry. They have those GBTC shares. That's about 10% of the total supply right now. They have those. They can leverage those to raise money. They also have bankruptcy claims at three AC and FTX and elementary Research. You don't know what's in that value there, but there's probably some residual value in those bankruptcy claims. And so they can leverage all those assets to raise capital. But again, that's probably not enough. And then the next thing they could do is they could sell the assets themselves. So there's a rumor that they could sell Coin for $300 million because they have consensus conference, and they actually make like 50 million in annual revenue at Coin. So they can sell that asset. They could sell Grayscale itself to another sponsor, and that would probably bring in like 400 to 500 million. But again, it's still probably not enough for them to fill the hole. And why would they sell Grayscale the trust? Because it would basically put them out of business because that's their big cash cow. And so they would basically sell the trust to raise all this money to try to stay alive. But then why even stay alive? Because you just sold your main cash cow. The next thing they could do is they could restructure the loans. And so they have a bunch of loans with Genesis and you could restructure the loan so that both parties could have more runway. And so it's the best interest, kind of, of both parties to negotiate a deal to allow both parties to avoid bankruptcy. And so you can do a lot of different things. It could raise a little bit of money for the reasons that I just said, and they could give some of that to Genesis to kind of help them pay off their withdrawals and stay alive a little bit. The Genesis creditors could roll their debt into DCG warrants so they can have a senior claim on the cash flow from GBTC. There's a lot of different ways they could kind of negotiate their debts to try to keep themselves alive. And I think that's probably what's happening right now. It's probably quiet. They're trying to figure out how they can kind of manage this and all of these things, like selling off the trust to a different sponsor, that wouldn't affect GBTC holders at all. I mean, that would just change the sponsor and none of that would affect GBTC shareholders. Now, what would affect GBTC shareholders if they seek something called Reg M exemption? And so if the SEC approved this, grayscale would have to apply for Reg M relief, which would allow GBTC shareholders to redeem their shares for the underlying assets at a one to one ratio. And so it basically eliminate the discount to NAV overnight. And so that 45% would disappear. GBTC shareholders would be able to wait. Let me see if I understand this right. You're saying that under Reg M, they would redeem in kind, meaning shareholders would get the bitcoin. Yeah, if the Sac allowed that, they would have to basically approve in kind redemption for shareholders to take custody of the underlying bitcoin. But this would pose a lot of challenges for GBTC shareholders because a lot of it is in those retirement accounts that aren't legally allowed to hold spot bitcoin. But they could redeem at one to one in cash, too. So it wouldn't be the worst thing for them either. They would just get cash, but it wouldn't be a 45% discount. Then it would be a wow, that. Actually seems like a pretty reasonable solution. Yeah, no, it is. It would be the best solution if you're a GBDC shareholder. Right? Yeah, I would definitely say that. I just don't think it's going to happen because Reg M exemption and an ETF approval are pretty much the same thing. I mean, you're basically giving Grayscale the ability to create and redeem shares simultaneously. And so it becomes political, where the SEC would be seen as supportive for the cryptocurrency industry in the wake of the FTX collapse. In other words, screw the TBDC shareholders. Like, screw all you guys. This is important to us politically, so you're just going to have to suck it up. That's messed up. Yeah, exactly. Yeah, that's exactly what's happening. And so they could do that. I just don't think it's going to happen. Now, here's where it gets interesting, is because there's no reason why Grayscale can't offer redemptions today. And if they actually cared about GBTC shareholders, they would allow that. When you say offer redemptions, what do you mean by that? Like, redemptions in kind or what are you talking about? I'm talking about redemptions in kind. So back in 2014, actually, the trust was doing this. So it was allowing the issuance of shares and the redemption of the underlying bitcoin. But then they got a cease and desist letter from the SEC, and this was kind of finished in 2014, where they had to stop doing that. Ever since then, they haven't allowed redemptions because they got a cease and desist. They're like, hey, you're not need cap. You're violating reg. M. You can't do that. And and Grayscale was like, okay, but the key point here is that it's only a violation of Reg M if Grayscale is issuing and redeeming shares at the exact same time. Now, when the premium was there, they were issuing shares like crazy because all these institutional investors were putting on this trade. And Grayscow, can you unpack that? I'm sorry to interrupt you there, but what does that mean at the exact same time? It doesn't make sense to me. What does that mean? So, like I said, an ETF can issue and redeem shares at the same time to keep the trust in NAV. That's what I mean. Right? So that's what I mean by at the same time. They can basically fluctuate and redeem and issue it at the same time. Right. And so after they were doing they got the cease and dislike from the SEC, they were essentially only issuing shares. They weren't redeeming the shares anymore. Hey, Sam. Sam, why does the SEC zero in on that particular issue? To determine that something is an ETF versus not. That's just a rule from the Exchange Act, where it's just only certain securities can do Reg M, essentially, where they issue a redeem. Usually it's like Treasuries and money market funds and things like that. It's just in the laws since the 40s or something. 30s or 40s. What we're trying to zero in on is why. I don't understand that part. We don't have to get yes, it. Doesn'T honestly, yeah, it doesn't seem important. Let's move on. They were issuing shares like crazy when they were putting on a premium trade. So they created 422,000,000 shares from January 2020 to March 2021. Now, once the premium trade disappeared, they haven't issued or created any new shares, so it's stuck at 692,000,000 shares. And so since they aren't issuing shares, they can allow redemptions right now legally. And this would close the NAV to discount almost overnight, because all of these GBTC shareholders, the accredited investors, would be able to basically have a reverse arbitrage where they could sell GBTC or redeem GBTC shares for spot bitcoin underlying in the trust and take that bitcoin and then sell it for dollars and collect the difference in the discount. And so you would see that discount get armed away extremely quickly if DCG or Grayscale just allowed redemptions. And they could do it legally. There's literally it's kind of an administrative thing, basically. If I understand right, they would have to make a filing with the SEC and say, we're no longer issuing shares, we're now redeeming shares. And at that point, they can just go ahead and do it. Yeah, exactly. Honestly, the negative to the sponsor would be that they can't collect the 2% on the value of the underlying asset. It starts to erode their assets under management, so to speak. That's exactly right. That's why they're not doing it, is because as people would redeem the bitcoin, it would be less bitcoin in the trust and that would lower their fee and that's their cash cow. And so the premium trade added bitcoin to the trust and it also added a ton of buy pressure to spot bitcoin, because people would put on this trade and the bitcoin would go in the trust and it would never get sold, it would just sit there. But if they allow it to happen. So they're trying to figure out right now, how do we stay alive without losing the assets under management, which is bitcoin? It's ideal for them to keep the bitcoin in the trust, basically, because, by the way, 2% is a gigantic amount on these assets. Oh, yeah. That's another reason why you can be critical of DCG, because the Toronto ETF is a 1% fee, and then there's another similar Osprey bitcoin trust, that's zero point 49% fee, and there's no reason to have a huge management fee for these trusts. I mean, it's a gigantic cash cow. It's unbelievable in the gold world. If you were to compare it to the largest ETF in the gold world, which is GLD, I think the sponsor collects 15 basis points or something like it's some really small amount. But the point is that if it's worth tens of billions of dollars and it starts to turn into some real. Money yeah, it costs, like, less than $1,000 to set up a trust. And basically all they have to do is collect the bitcoin, but then they just, like, give it to coinbase. So they don't really do anything. They literally just sit there and collect the 2%. Yeah. Depending upon how you manage it, the operational cost of administering one of these things could be like 100 grand plus a month. But, I mean, that's a drop in the well compared to the well collecting. It's unbelievable. Yeah, but you have to understand, like, redemptions. If they allowed redemptions, it would be good for GBTC shareholders, it would be bad for spot bitcoin holders, because, like, I said they would put on this trade where they would redeem GBTC shares for spot bitcoin and then sell the spot bitcoin to collect the difference. Where's the premium pressure in the market right away, basically. Yeah, exactly. They would meet in the middle, so the premium would meet in the middle and the spot would go down. Meet somewhere in the middle, right? Yeah. I mean, the discount would go to NAV, so GBCC holders would love it. But the reason that's happening is because the bitcoin is leaving the trust and theoretically, those institutional credit investors would sell that bitcoin to collect the discount that currently exists. So whereas the premium trade added a ton of buy pressure to spot bitcoin, if they added redemptions, it would actually add a lot of sell pressure to spot bitcoin. That's assuming that they want to hold dollars in the end, though, right? Yeah. That is assuming as the discount. There'S going to be an arbitrage. The bottom line is, if somebody can arbit and collect a spread, they're going to. Right? I mean, that's just going to happen. What is the fiduciary responsibility of the trust? I guess my question is, is there any conflicting fiduciary kinds of responsibilities at this point during whatever this process that you're talking about is going to happen? Yes. I mean, this is why there's been a recent lawsuit that just got filed by Firtree saying that Grayscale basically breached the trust agreement by not allowing shareholders to review relevant documents, as well as not allowing a redemption when there's no legal reason for them not to allow it. And so I'm not a lawyer, but they're getting sued for potential mismanagement or wrongdoing of the trust because they're basically hiding behind this idea that they're going to get approval for BTF, because that would allow the discount to disappear, but then it would also allow the bitcoin not to leave the trust. And so it's their best option. Right. It's the best option for GBC shareholders, but it's also the best option for Grayscale because they would get to keep their AUM, but they keep getting rejected. Right. And the SEC just had a response on December 9 that basically was very like they were just like, this isn't happening, is how I would summarize it. And so Firtree, in that lawsuit, they're saying they keep hiding behind this idea that they're going to get approved from an ETF and that's why they're not allowing redemptions right now, but it's not going well and GBTC shareholders getting hurt for it. Yeah, that seems like a pretty bullshit excuse because we're going to become an ETF, therefore we're not going to I mean, that's pretty bullshit, obviously, to me anyway. And the way they kind of change the trust charter over the years, that's another thing they have a problem with, because shareholders used to have kind of ways they could vote greater than 75% to avoid any kind of, like, liquidation. They. Had some rights before, but as of 2017, Grace Kell basically removed that in the trust. And now it's basically all in their court in terms of what they can do. And so there's a lot of issues around how they change the trust charter and basically give all the power to Grayscale and not to any power to the shareholders. And that's kind of all in this lawsuit that just came out, like, last week. But it's been an ongoing thing for years now. ",timestamp:"01:24:54-01:44:01",topics:["DCG","Genesis"],type:"twitter_space",weight:16.40026499856909},{boost:0,date:1677582e3,description:"The goal of Blockchain Boy",episode_title:"Ep. 514 The Future of Crypto in the Media with Blockchain Boy",guests:[{name:"Lucas Dimos",profile_picture:"https://pbs.twimg.com/profile_images/1092408696838197250/n0-St2nZ_400x400.jpg",ref_id:"9ac17e2f-49bd-4fc5-bfe5-2f380ca63574",twitter_handle:"lucasdimos"},{name:"Blockchain Boy",profile_picture:"https://pbs.twimg.com/profile_images/1602154101642592256/A0OX97CT_400x400.jpg",ref_id:"4b070a6f-bcc8-4708-abaf-cc830709600f",twitter_handle:"BlockchainBoyy"}],hosts:[{name:"Aaron Malone",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"bd103540-8c0a-4ab3-b5cd-24a3f2c43ab2",twitter_handle:"pizzamind"},{name:"Bryce Paul",profile_picture:"https://pbs.twimg.com/profile_images/1182725652794892288/QbDOKHcP_400x400.jpg",ref_id:"0d670dbf-f434-43b6-b454-8e5345d7ee51",twitter_handle:"BrycePaul101"},{name:"Pizza Mind",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"16cb01cf-9f04-45db-a440-47259b02b86a",twitter_handle:"pizzamind"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/93a6fe5b-364c-43f4-9f38-7da3e811460b.jpg",keyword:!0,link:"https://audio1.redcircle.com/episodes/68f31cee-f404-40fe-85d7-a406019e916f/stream.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"2485d5dc-6159-4638-aef1-e645f226a8a1",show_title:"CRYPTO 101",text:"gamble to bet on them. Like anything is. Same thing with Raddix, like I mentioned before. Although anything but salon or cardano I'll just say. That interesting take. All right, yeah. Could you expand on that last point? Anything but solana and cardano. What's the reason? That's half a joke. I don't mind cardano, but I think Salona is pretty centralized. VC garbage. I've been calling it Mid forever, and I felt very vindicated when it finally shit the bed. Fair enough. Well, you are only a couple of years away from really being able to do whatever you want in life, and I mean whatever you want. Your businesses are going to be able to be ran on autopilot. You're going to have more money than you can count in a multitude of different currencies with the way things are. Headed to be able to rent a car in the States. Yeah, well, you can't do that yet. But the point I'm getting at is what are your real dreams and goals? Like, when you're fully empowered to do literally anything you want in this world, what do you want your impact and your legacy to be? That's a great question, and I'm still figuring out what I really want to do with the rest of my life. I just know that I really like building cool things with cool people, and I think I'm always going to do that, no matter whether it's big or small. I think it's just I have to do something. I'm like a shark. Sharks have to keep swimming or they sink. Right? And so it's very similar with me. Maybe I'll have some more time to go live in the country and be away from people for times. But no, I really like empowering people to be their best selves. That's really what makes me the happiest, is, like, I'm a very loving and caring person, and I love to see people do good things and succeed. So I would really love to get into sort of micro loans and sort of entrepreneurship guidance and maybe even ethical VCs, because I don't think a lot of VCs are very ethical. And so I'd love to do something along the lines of that to empower more entrepreneurs to have an effect in their community and environment outside of Web Three, too. I've been doing micro loans on the platform called Kiva for many years, and I think it's super cool and needs a Web Three version. Yeah, I've actually never heard of Kiva. Tell us a little bit more about what micro loans are. And has that been a way that you could generate passive income or anything? No, it's just mostly a tax write off for really rich people. It's not like super well known, but you get to actually empower entrepreneurs in other countries. Oh, there's Jonah. Jonah. I'm on a podcast. Oh, he's bringing stuff. Jonah. What's up, brother? Thanks, bro. No, he's one of my fantastic team members over here. Thanks, bro. I wish I got a coffee delivery in the middle of podcast. That was sick, wasn't it? Look at that. Yeah, look at that. Dude, he hooked me up. I bet there's even an espresso shot in there. That's crazy, man. Fantastic. So where was I? Oh, yeah. So you can empower entrepreneurs from other places around the world who need maybe an $800 loan to get more fertilizer for their crops, to double their yield, or who are opening a small store in their community. And it's a way because charities actually can be actually very damaging ",timestamp:"00:21:17-00:24:30",topics:["Blockchain Boy"],type:"podcast",weight:79.08077270705402},{boost:0,date:1642464e3,description:"Channels jamming and Lightning invoice on the Lightning network",episode_title:"Lightning for Plebs - TABConf 2021",guests:[{name:"ketominer",profile_picture:"https://pbs.twimg.com/profile_images/1245972079528329218/YDUD9N2Q_400x400.jpg",ref_id:"2f8b0b59-6f23-4c89-973c-668cc7666998",twitter_handle:"ketominer"},{name:"Ryan Gentry",profile_picture:"https://pbs.twimg.com/profile_images/1362751223217160203/ekMa_yY-_400x400.jpg",ref_id:"8fe78b55-bc38-40df-9cb5-ffd5c84166a2",twitter_handle:"RyanTheGentry"},{name:"Dread",profile_picture:"https://pbs.twimg.com/profile_images/1532557131819491328/vvs1cD-7_400x400.jpg",ref_id:"e61af76b-8fbd-4719-b753-0a70edd22fa8",twitter_handle:"PoleVaultDream"},{name:"Andre Neves",profile_picture:"https://pbs.twimg.com/profile_images/1604172627550969856/bYCGb7Ev_400x400.jpg",ref_id:"227e071d-f8a6-4137-8078-729fa9eb3a13",twitter_handle:"andreneves"},{name:"Nate G",profile_picture:"https://pbs.twimg.com/profile_images/1542983032507858944/9w_UUx5Z_400x400.jpg",ref_id:"bda29551-f17f-452c-9204-4d6cafdf4f3b",twitter_handle:"natecgriffin"}],hosts:[{name:"TABConf ",profile_picture:"https://pbs.twimg.com/profile_images/1596233571521499138/YE8Us_Ml_400x400.jpg",ref_id:"d2f50d77-ec8d-4554-bc40-387ababbb536",twitter_handle:"tabconf"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=mQOBuXsGZt0",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"cd29b1a1-f94b-4eee-84ce-ddf8a4fcb0c5",show_title:"TABConf (The Atlanta Bitcoin Conference)",text:"let's theorize a little bit. You know, I know, like, one that always, you know, the the Dodge's always point out is the flood and loop attack, right? Which I think is like mostly mitigated by anchor channels. But what are some things that, you know, like, for instance, somebody a country that really doesn't like Bukle and El Salvador. Like, what are some things that you think they could do to try and mess with their infrastructure? What were some things you'd watch out for? Jam all the channels. All of them. Just jam them all. Okay. It's a real thing. Channels have limits in HLCs and in flights. And also there are a couple of ways where you can essentially deploy very small sorry, very small value payments in terms of let me rephrase large volume of payments with very small amounts. And then you can also lock up liquidity on routes by using small number of payments with large amounts. So for making a payment through Ryan and Ryan's node goes offline after the HLC sent, I now have liquidity stuck on one side and I can't do anything until it settles, right, until it cancels or airs out. So imagine someone spending an attacker, spending up hundreds of nodes, deploying some capital to the network, and then using some form of scripting to jam a lot of channels. All of a sudden in El Salvador, you can't make a payment through open node to buy your McDonald's, right. Because channels are jammed or liquidity is not unavailable. So channel jamming is one. I guess spamming and probing is a big one as well. On our nodes at least, we're seeing the numbers vary, but any given month is like 50%, 60% are probing, probing payments and probes are essentially I'm trying to get an estimate of whether this payment will clear and I'm trying to get an estimate of the fee that will cost me. So a lot of wallets do this probing mechanism to find out for users. And so, hey, your payment is 1000 SATS. It's going to cost you ten stats to make this payment and you send that fake payment across once the returns failed back, you now have a very discreet estimate. We're seeing lots of spam in the network, but again, it's in its infancy. What happens if someone is actively trying to spam it? Twenty four seven? I think we have yet to see what it's like. And there's also a vulnerability in the invoices, right? Like if you give an invoice out, like let's say you're asking for tips on Twitter, or you put an invoice out on a post, you're showing your information, right? Like they can see your note at that point. So I feel like, what is it, about twelve that might solve that, but things like that, maybe not. Things that provide more privacy for us. Would be good to be able to remain anonymous as possible while still conducting your transactions. Rendezvous routing. Let's go from your lips to God's ears, man. Yeah, right now a regular lightning invoice can be decoded and you can see. Imagine that I give you an invoice, you pay it and you could decode the invoice and says, that is actually going to me. Right? But if I can give you an invoice where you don't see where the final destination is, that protects your nodes privacy, but you still get paid for it. So that's something that hopefully in the future we can get going. Is rendezvous the same as trampoline? No. Yeah, you give me that. Fight for it. You're going to get in trouble asking that. I think conceptually, high level, they're the same. But this is the type of thing where it's like the differences are so small, but so important that Tbast and Connor would like get into a fistfight or something. Hilarious. Yeah, I think all of those attacks are. The thing that I love about the Bitcoin community is that we're very honest about this type of stuff and we're continually critically thinking about what are the ways in which this could fail, what are the ways and thinking about what are the ways that we can protect ourselves against these adversarial environments. Because absolutely, I know it's like the protocol developers a lot of the time are kind of like, this is ridiculous that you guys are having fun and making friendship channels and stuff. Like, you know, this is going to be an adversarial environment. And I think we are aware, but it just hasn't been the case just yet. And so I think kind of to close here again, this has all been about lighting for Plebs. I'm curious. The Plebnet now, I think is it like 1000 registered nodes. 5000 registered nodes. Holy shit. Thousand nodes. Okay, 1000 registered nodes, 5000 users, which is incredible. ",timestamp:"00:24:02-00:28:52",topics:["Lightning Liquidity","Lightning invoice","Lightning channels jamming"],type:"youtube",weight:8.078713541988659},{boost:0,date:1637366400,description:"Education efforts and safety regulations in the nuclear energy sector",episode_title:"Securing Bitcoin With Nuclear Energy",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"},{name:"Eric McErlain",profile_picture:"https://pbs.twimg.com/profile_images/1252969137/Screen_shot_2011-02-23_at_10.59.21_PM_400x400.png",ref_id:"4815365d-44d0-4b06-9d9e-32070158d03c",twitter_handle:"atomiceric"},{name:"Puru Goyal",profile_picture:"https://pbs.twimg.com/profile_images/1590742805613203456/QAtYq_C__400x400.jpg",ref_id:"c24af059-b38b-4ce5-9547-9192c9eff579",twitter_handle:"purugyl"}],hosts:[{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"},{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=YBaA17NODlA",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"475acbce-5a5c-4881-a93d-7d41edf1ae84",show_title:"Compass Mining",text:"Eric, I wanted to pick up on that note a hint to you next exactly for the reason that I know you work in a lot of the education efforts and dialogue and conversation. And as I'm sure we're all familiar, facts and data don't always win the day, and bitcoin people know that as well as any other industry. I'm just curious if you have any extra color to add on how those conversations are going in terms of education and presenting the tech as it stands, reliability, safety and just general promise. How are those conversations going? Well, I think you're exactly right. A lot of times in our industry, we argue with facts and data in the face of emotion, and it doesn't always work. I think what's important, and I take this line from one of my colleagues in the industry it's no more and fearless. And the more that we talk about what our real record is. And I think we've got a record to be proud of, especially here in the United States, since Three Mile Island, where we've not only done tremendous work in upgrading safety standards and operational standards here in the United States, but we've also done a lot of really important work in terms of regulating ourselves. Coming out of Three Mile Island. We established the Nuclear Regulatory Commission. We used to have the Atomic Energy Commission, which had the dual mission of promoting the industry and guaranteeing its safety. And it was decided by President Carter and Congress that those two missions were incompatible. We needed to break this apart. So we created the Nuclear Regulatory Commission, the Department of Energy to it on the promotional aspect of that. So that was one thing was great. We have a very, very tough regulator. There are two resident inspectors at every plant in the United States. And those guys and women and women have the ability to shut those plants down if they're operating unsafely. It's never happened, but they do have the authority to do so, and people need to know that. It's something that's very important to know. The other thing that's important to know is that also growing out at Three Mile Island, we established something called the Institution of Nuclear Power Operations, which was an internal industry peerreview group where we would all evaluate each other's operational safety together and decide and rank our plants according to how well they matched up against our standards. Column one through column four. And the fact is that within our business, you're known, I mean, number one is the best and number four is the lowest. And if you're a plant manager. You're running a plant. You following the info column force into your career. We do not tolerate that kind of operational pace in our industry and we got to get people up at the very top because the fact of it is that we're held to a different standard than other industries and we're not afraid of that. We've been held to different standards now for a very long time. We're not afraid of that. And we need to tell that story. We need to be very out front about that. A lot of really talented social scientists who look at our industry did some research a couple of years ago and they found that a lot of the public still has what they call existential threat about nuclear power. It's born out of the fact that we're born out of a weapons program. Even the first commercial reactor in the United States was built by the United States Navy under the supervision of Hymen Rica Over. You pile that on top of you can't see radiation. You can't smell it, you can't taste it. It feels like a risk that you can't mitigate when in fact, we know what we can do and we can what we need to do is we need to meet people where they live and we need to address their fears and let them ask any question that they like. We want to let them know that we have safety systems on top of safety systems that guarantee the operations of our plants. We've got to talk about things like the people who seem to support us most in the world or the communities that are closest to our plants. They know the people who work in them. They know how much their communities mean to them and when they go to work every day. They know that they're guaranteeing not only the safety operations of the plant, they're also guaranteeing the continued operation of economic engine for the community that they live in. These plants throw off tens of millions of dollars in property taxes. They provide direct support for education and first responders, public safety, public libraries. I mean, they're really, really very important to the communities that they're based in. So I believe as long as we're upfront about who we are, what we're doing, meeting people where they are and addressing their fears directly, I think we're in a much better place than we were, let's say, 30, 40 years ago. And I was very small and still remember my father telling me about his tour of TMI back in the ",timestamp:"00:24:37-00:29:38",topics:["Nuclear Energy Education","Nuclear Energy Regulations"],type:"youtube",weight:8.023174886839682},{boost:0,date:1596686400,description:"Environmental Issues in Planet",episode_title:"Chat 45 - Bitcoin an Energy Revolution A panel at the VOB Conf",guests:[{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"Phillip Sandner",profile_picture:"https://pbs.twimg.com/profile_images/1043824764161335296/2SW3duCV_400x400.jpg",ref_id:"e1996e82-0354-421c-85d5-f18eebec9506",twitter_handle:"philippsandner"},{name:"Jesse Peltan",profile_picture:"https://pbs.twimg.com/profile_images/1123954968636088326/EAjHUGDE_400x400.png",ref_id:"96309505-caeb-47bb-a1ba-712b97292675",twitter_handle:"JessePeltan"},{name:"Christopher Bendikson",profile_picture:"",ref_id:"d72ead54-7bff-4874-870f-123e665fddfd",twitter_handle:""},{name:"Christian Stoll",profile_picture:"https://pbs.twimg.com/profile_images/3296579573/69ebedb479a9bdb9d536fe887e2d3113_400x400.jpeg",ref_id:"ff74d59c-f846-4b16-a5e5-771fb8139f18",twitter_handle:"Granddragon14"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN6935967461.mp3?updated=1627959014",node_type:"clip",pub_key:"",ref_id:"4fdf8ab1-a3e8-4390-b618-a8a915fa3f68",show_title:"Bitcoin Audible",text:"issues that we have on the planet. Today are how is steel produced, how are metals produced, how is concrete produced, how is electricity produced and how it's farming done. Everything else makes almost no difference. Those are the big issues. If our ground is in any way. It doesn't matter how much energy we use. If our mining and our metal production is done in a clean way, it doesn't matter how many metals we use. The earth is completely full. The cost of the earth is just materials. So if we're looking at the long term sustainability, it's a question of how these couple of processes are done. And so the question of bitcoin's impact on that gets such a small percentage of consumption. The question is more of which way does it incentivize production? Because if you see even a small swing in the way that if bitcoin for example, is able to balance grids and enable them to use higher percentage renewables, then you'll see a higher renewable penetration and you'll see overall lower utilization of fossil fuels than you would in a situation without bitcoin. ",timestamp:"00:29:09-00:30:22",topics:[],type:"podcast",weight:7.965680956840515},{boost:0,date:1672207217,description:"Satoshi Nakamoto on Double Spin, Proof of Work and transaction fees",episode_title:'The Orange 🌞 Reading/Discussion "The Book of Satoshi" & Bitcoin News',guests:[{name:"CouncilmannJamm",profile_picture:"https://pbs.twimg.com/profile_images/1251040014152024066/dD3b2eA4_400x400.jpg",ref_id:"6c989c2c-d24d-49a2-8eb1-1d2f1c47f347",twitter_handle:"jamm_councilman"},{name:"thotsnplayerz",profile_picture:"https://pbs.twimg.com/profile_images/1608733749663109120/wwYEZgF2_400x400.jpg",ref_id:"66bbe365-9e85-4c34-9d51-39d8b49937b7",twitter_handle:"thotsnplayerz"},{name:"Will Schoellkopf",profile_picture:"https://pbs.twimg.com/profile_images/1487515153302130691/t5sDMzZW_400x400.jpg",ref_id:"461e2245-1672-4fa1-94f5-7aaf1afa531f",twitter_handle:"realBitcoinDog"},{name:"OKIN_17",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"dbcdeab8-4824-43f7-aeb8-2b9eda6cbbad",twitter_handle:"OKIN_17"}],hosts:[{name:"SatoshisJournal",profile_picture:"https://pbs.twimg.com/profile_images/1518661993103859712/y_QefqVZ_400x400.jpg",ref_id:"63fac069-bfe9-49ae-b52c-1d1f226b3275",twitter_handle:"SatoshisJournal"},{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"50023cce-8a6f-4974-ad3b-fd7a9c0abf19",twitter_handle:"ToxiKat27"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/ecefba20-39fd-4974-8388-066857965b2a/cf486c39-08f9-4ada-9b72-7a297ad74d74.mp3",node_type:"clip",pub_key:"",ref_id:"bd8acc65-31a6-4d6c-93e2-cb91d3909825",show_title:"Satoshi’s Journal",text:"15. It's entitled more on double spend proof of work and transaction fees. In this exchange, Satoshi provides several clarifications and discusses compensation of miners, ie. Nodes via transaction fees once the entire supply of Bitcoin has been created. So once again, he's asked about that. On Monday, November 7 17th, 2008, at 904, Satoshi Nakamoto wrote I'll try and hurry up and release the source code as soon as possible to serve as a reference to help clear up all these implementation questions. Ray Dillinger, who goes by I Guess Bear, wrote when a coin is spent, the buyer and seller digitally signed a blinded transaction record. Satoshi Nakamoto replies only the buyer signs and there's no blinding. If someone doublespends, then the transaction record can be unblinded, revealing the identity of the cheater. Identities are not used and there is no reliance on recourse. It's all prevention. This is done via a fairly standard cut and choose algorithm where the buyer responds to several challenges with secret shares. Okay, so I'm trying to remember who this person was. I think this is Ray Dillinger that said that. So Ray says this is done via a fairly standard cut and choose algorithm where the buyer responds to several challenges with secret shares. Satoshi says no challenges or secret shares. A basic transaction is just what you see in the figure in section two. A signature of the buyer, satisfying the public key of the previous transaction and a new public key of the seller that must be satisfied to spend the next time. Then Ray Dillinger says they may also. Receive chains as long as the one they're trying to extend while they work, in which the last few links are links that are not common with the chain on which they are working. These they ignore. Satoshi says. Right. If it's equal in length, ties are broken by keeping the earliest one received, and then Ray says, if it contains a double spend, then they create a transaction which is proof of double spending, add it to their Pool A, broadcast it, and continue work. Satoshi responds, there's no need for reporting of proof of double spending like that. If the same chain contains both spends, then the block is invalid and rejected. Same. If a block didn't have enough proof of work, that block is invalid and rejected. There's no need to circulate a report about it. Every node could see that and reject it before laying it. If there are two competing chains, each containing a different version of the same transaction, with one trying to give money to the one person and the other trying to give the same money to someone else, resolving which of the spends is valid is what the whole proof of work chain is about. We're not, quote unquote, on the lookout for double spends to sound the alarm and cast a cheater. We merely adjudicate which one of the spends is valid. Receivers of transactions must wait a few blocks to make sure that resolution has had time to complete. Wouldbe cheaters can try and simultaneously double spend all they want, and all they accomplish is that within a few blocks, one of the spends becomes valid and the other becomes invalid. Any later double spends are immediately rejected once there's already a spend in the main chain. Even if an earlier spend wasn't in the chain yet, if it was already in all the other nodes pools, then the second spend would be turned away by all those nodes that already have the first spend. Then Ray says. If the new chain. Is accepted, then they give up on adding their current link, dump all the transactions from pool l back into pool A along with transactions they've received or created since starting work. Eliminate from pool A those transaction records which are already part of the link in the new chain, and start working again trying to extend the new chain. Satoshi says. Right, they also refresh whenever a new transaction comes in, so Al pretty much contains everything in A all the time. Ray comments CPU intensive digital signature algorithm to sign the chain, including the new block Al. Satoshi responds It's a hash cache style shaw 256 proof of work partial preimage of zero, not a signature. Ray says, Is there a mechanism to make sure that the chain does not consist solely of links added by just three or four fastest nodes? Cause a broadcast transaction record could easily miss those three or four nodes. And if it does, and those nodes continue to dominate the chain, the transaction might never get added. And Satoshi responds, if you're thinking of it as a CPU intensive digital signing, then you may be thinking of a race to finish a long operation first and the fastest always winning. The proof of work is a hash cast style two shot, 256 collision finding. It's a memoryless process where you do millions of hashes a second with a small chance of finding one each time. The three or four fastest nodes dominance would only be proportional to their share of the total CPU power. Anyone's chance of finding a solution at any time is proportional to their CPU power. There will be transaction fees, so nodes will be an incentive to receive and include all the transactions they can. Nodes will eventually be compensated by transaction fees alone when the total coins created hits the predetermined ceiling. So they continue. Ray Dillinger then says, also the work requirement for adding a link to the chain should vary with the numbers of links adding to that chain in the previous week, causing the rate of the coin generation to be strictly controlled. Satoshi says right. Ray says you need coin aggregation for this to scale. There needs to be a provable transaction where someone retires ten single coins and creates a new coin with denomination ten, et cetera. Satoshi says every transaction is one of these section nine combining and splitting value. So I guess he just referred to him a section. So yeah, in that. Exchange they use the word note a lot, but in the context of that it's synonymous with miners, just to make that clear. So a miner of course, is a computer that is specifically used to mine Bitcoin. That's all it can do. And it validates transactions and the node is what? Verifies transactions. So, like on the Bitcoin blockchain, for you to be truly certain that your transaction has gone through a minimum of six, validations is required, meaning that six other nodes have looked at your transaction and deemed it verifiable. And once it's verifiable, you can essentially be confident that you have achieved, not consensus you've achieved, yeah, consensus, your transaction is good to go. And so Portland asked me a trick question the other day. He said, if there are five blocks that have been mined, how many times has your transaction been verified? And it just stumped me, I don't know why, because the thing that came to my head was that minimum six validations, I just was stumped. And he asked me like three times, and I said, I don't know the answer. And he says five. And anyway, so the answer was right in front of me. So every block is basically mined approximately every ten minutes, and in five blocks you can basically equivocate that to five validations of your transaction. The more validations of your transaction, the more set in stone, so to speak. That transaction is. So it's just like if you solve a problem, if I give you a sheet of paper and it says has an equation ten times ten and I give it to you and you have to write the answer on the paper while you put 100. And then I tell you to give that to six other people to make sure that your calculations are right. Those six people check, and they do indeed concur that ten times ten is 100. And since I made the rule, when I get those six confirmations from those six people that you did your math correctly, then that gives me confidence that the calculation is done is correct. And so that's what basically the nodes are doing. When you broadcast a transaction, the nodes are all looking at it, and it takes a minimum of six to basically solidify that into the bitcoin blockchain forever. That'll give you full insurance, full confidence that your transaction is good to go. And all that happens in basically six blocks, which is 60 minutes. And the beautiful thing about that is the fact that that's all being done with computers and no intermediary. Whereas if you were to go and swipe your card at McDonald's to make a transaction, you're doing that first through essential authority, and the verifiability of that transaction doesn't happen. And the finalization of it doesn't happen until basically 30 days when you get your bank statement, and it shows that you have a charge for $10 at McDonald's. So, relatively speaking, bitcoin is way faster than legacy systems. Although you can swipe your credit card fast and think that you have paid for what you think you paid for, there could be an error in the system, and maybe you could get charged falsely for something, or someone could go and double pay for something, or someone could steal your credit card and pay for other things. So that's the problem with legacy system, is there's just so many damn intermediaries, whereas bitcoin, you just freaking do your lightning transaction or your bitcoin on chain transaction, and there's no one in the middle. So it's pretty profound. ",timestamp:"01:07:07-01:19:03",topics:["Satoshi Nakamoto","Double Spin","Proof of Work","transaction fees"],type:"twitter_space",weight:23.245500377568373},{boost:0,date:1672167683,description:"Bitcoin as a superior savings system",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Beer and Plebs! 🍻😂🤌🏻",guests:[{name:"Dr. Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"51a969bb-dbf7-4d20-b128-74dcc5f560f6",twitter_handle:"VailshireCap"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:"Laura Shin",profile_picture:"https://pbs.twimg.com/profile_images/1539462748173746176/hxR80FYT_400x400.png",ref_id:"a56a7b4d-edca-41d5-9d51-33396aa05b96",twitter_handle:"laurashin"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders Jensen",profile_picture:"https://pbs.twimg.com/profile_images/1382039124991954947/Wb9kT7MO_400x400.jpg",ref_id:"af45195e-77a6-463f-ba64-29c6b0437d9c",twitter_handle:"andersjensenorg"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2a1450bc-0649-4dc5-8ec9-1474af1ea1c3.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/f7b6cfcb-7cd4-4401-a3fb-7735bb570c07/2ae49fca-a048-4a34-93b9-247513af5699.mp3",node_type:"clip",pub_key:"",ref_id:"433eb4ba-ba64-468f-9e3c-130fbc948adf",show_title:"Anders_🍆",text:"what. Do you do in your IRA? What can you put your money in that's going to be better? Well, the one I have doesn't have it's limited to some of the access. In fact, once I found bitcoin, those contributions stopped, to be honest with you. And, yeah, whatever they're in, they're in, but they're limited in where they can go, you see? So I'm letting that one ride out. Just another hedge, but everything else now, man, is straight. Bitcoin, brother. What's going on, Clark? Just chilling, man. Putting up some overhead storage in the garage. Take a couple of weeks off at the end of every year to recoup. Kind of feel blessed that I was able to work 50 weeks out of the year. So take these last two off. Yeah, on stage, Craig. Well, Jeff Ben, I don't know who else is going to Miami. ANZ and I, we're starting to spread our wings a little bit this year. We made it up to Charlotte for Halloween. Anderson pacific bitcoin. Now we're rolling into Bitcoin Day in Naples. It's been really cool to see all these other conferences and meetups start and look, I don't even care how small they are to get their foot in the door, but hey, we may have a dinner date with Fosse and Lawrence LaPard. They're going to be down there, man. So we'll hook up with them. And I think we're trying to get James Lavish to go. So when you get some of those quality folks showing up at a smaller type venue, it's really cool, man. You get to just hang out. You meet them offline, just the nicest people in the world. So if you're in the central, southeastern, southwestern Florida area and can make it over to Naples, yeah, we'll be there. Hey, shoot, I'm coming all the way from that west coast. If you're anywhere in the United States or anywhere in this universe, you should be at bitcoin day. It'll be fun. So the problem is, puppy. I think the reason why I haven't been given a feeling of 100% confirmation of our little gig there is probably because, as you said, they're trying to get James Lavish. If he's coming, I don't think there's any room left for us, bro. He'll be on stage with us if we do it. That's right. That's what we'll do. Just like Dr. Jeff came on. Toxic happier in Swan Dome, pacific bitcoin. But he was big timing us after 15 minutes. He just left. He just walked out. And you know why? Because he is part of a documentary. When is that coming out, Dr. Jeff? Well, first of all, I left because you always got to leave early to keep the people wanting for more, right? You can't overstay your welcome. So that's number one. That's the number one. Rule two, that documentary, I don't know when it's coming out. They're doing a good job with it, though. It's pretty sweet, but we'll see. So I think they interviewed a bunch of people at the conference, and I think they're going to try to get it out as a Netflix kind of movie. And I can't remember what they're calling it. It's like, God bless bitcoin or something like that. And just basically what bitcoin is. And I like to talk about sort of the social justice side of bitcoin and how it's meant for the plebs, not for the institutional elites and things like that. I don't know when it's coming out, but I'm guessing sometime maybe this year. I love it. Just like casually. So this documentary about me is going on the biggest network in the world ever called Netflix. No, we're just happy for you, Jeff. I'm looking forward to see it. I know if you're in it, it's going to be high quality work. So a quick shout out on that note to JD down there is Bitcoin Bacon. He does documentaries as well, and he's going to do one on toxicity. I'm honored and looking forward to play a small role in that. And yeah, that's it, I guess. But when it comes to bitcoin, really, the way I look at it is it's my love. If there's anything, bitcoin is love. And ",timestamp:"01:12:02-01:16:37",topics:["Bitcoin Hodling","Pacific Bitcoin Conference"],type:"twitter_space",weight:22.774441499003483},{boost:0,date:null,description:"Bitcoin Timechain: How Difficulty adjustment factors into the Timechain",episode_title:"Café ₿: Bitcoin News, Bitcoin Timechain ⛓Day w/ Ant & TC",guests:[{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:"@Meditation_Man",profile_picture:"https://pbs.twimg.com/profile_images/1597303881339314176/kFqDWvq0_400x400.jpg",ref_id:"cf7119ec-50a5-4ba2-a9a6-4a24835f3364",twitter_handle:"Meditation_Man"},{name:"@TimechainStats",profile_picture:"https://pbs.twimg.com/profile_images/1316207411741569028/LpDkqBMv_400x400.png",ref_id:"48e0e34d-8e04-47c0-972c-96cda708a719",twitter_handle:"TimechainStats"},{name:"@TimechainCaL",profile_picture:"https://pbs.twimg.com/profile_images/1589772501638184961/0qP3C4Wk_400x400.jpg",ref_id:"72d94cc5-b62e-4fe2-8275-837eab35a74a",twitter_handle:"TimechainCaL"}],hosts:[{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"},{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/678e39f2-a92a-4745-b875-02645e38e747/9499bd7b-c204-4ad2-aa5b-d046f95f5a09.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"49fe88a8-79ec-423c-a550-a32eb875f090",show_title:"Swan.com",text:"And so I think the difficulty adjustment is a huge part of this, right? And so I don't know if either one of you guys can extrapolate on how the difficulty adjustment plays into this. Anybody could jump on that. I can comment. We could go for it. Yeah. So basically, depending on how quickly the blocks are coming in or how slowly the issuance of bitcoin is set in stone, or the targeted issuance is set in stone, so we know how many bitcoin should be mined in a given span of time. And so if blocks are coming in too quickly, in other words, if the timestamps are coming in closer than ten minutes, on average than every 2016 blocks, which is roughly two weeks, if they're coming in the way they should be. But if they're coming in quicker than the difficulty goes up, and it gets harder to mine. And the reason why they were coming in quicker in the first place is very likely because there were more miners on the network mining than there were the previous two weeks. And so they were hitting those blocks a little bit faster than they were before. So when the difficulty goes up, then all those new miners that just joined have to compete in a little bit harder fashion to bring in new blocks and you get the issuance back on track. And that's part of I think this is also like a very key point of what makes bitcoin hard money as well, right? Like the fact that we can predict how much bitcoin is going to be mined far, far into the future. We know with a pretty high degree of certainty that on average, for the next year and a half, 900 bitcoin are going to be mined a day, right? It might be like a few bitcoin more, a few bitcoin less, but in terms of any monetary system that we've ever had as humans, I mean, we've never had even anything close to this degree of certainty, right? I mean, it is fucking insane how crazy that is. Right. We have a totally automated system that handles the issuance of Bitcoin and there's really nothing else like it. It's one of the most exquisite engineering solutions ever in my mind. And the fact that it's such small lines of code, it's a beautiful system and once you fully understand or start to understand the way that it works, you'll lose a lot. It smashes a lot of the fudge out of your mind, like minor death spiral, stuff like that. Whenever you start hearing these headlines about price being a certain point and like, miners are going to go off the network and oh my gosh, Bitcoin is going to fail and die, they're not thinking about the difficulty adjustment when they write those types of headlines. Well, maybe they are, but they don't. Yeah. And the other thing that is important to remember is despite few lines of code, there's the whole fact that the code meets the real world through difficulty adjusted proof of work. So it's not just the fact that those in the mining portion of the architecture are having to expend real world energy at a real cost, and that this difficulty adjustment kicks in every two weeks to ensure a balancing effect. No matter how many or how few participants are mining in order to target ten minute average block times. This is where the rubber meets the road. It's code, it's real world participants, it's the boundaries and limitations of the expenditure of real cost and real energy. All these things coming together. And this is why this thing, I think, is so challenging for people who are on the outside just peering at the price and trying to understand what the hell is going on, let alone the whole fog and cloud of crypto and shit coins that just distracts and confuses. This thing is truly, truly special. ",timestamp:"01:14:46-01:19:27",topics:["Bitcoin Timechain","Difficulty adjustment"],type:"twitter_space",weight:7.870050430297852},{boost:0,date:1596671100,description:"Unfair ways Bitcoin mining is assessed;Electricity consumption",episode_title:"Chat_45 - Bitcoin & an Energy Revolution, A panel at the VOB Conf",guests:[{name:"Christian Stoll",profile_picture:"https://pbs.twimg.com/profile_images/3296579573/69ebedb479a9bdb9d536fe887e2d3113_400x400.jpeg",ref_id:"ff74d59c-f846-4b16-a5e5-771fb8139f18",twitter_handle:"Granddragon14"},{name:"Jesse Peltan",profile_picture:"https://pbs.twimg.com/profile_images/1123954968636088326/EAjHUGDE_400x400.png",ref_id:"96309505-caeb-47bb-a1ba-712b97292675",twitter_handle:"JessePeltan"},{name:"Phillip Sandner",profile_picture:"https://pbs.twimg.com/profile_images/1043824764161335296/2SW3duCV_400x400.jpg",ref_id:"e1996e82-0354-421c-85d5-f18eebec9506",twitter_handle:"philippsandner"},{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"Christopher Bendiksen",profile_picture:"https://pbs.twimg.com/profile_images/1362772558882484233/3nS-l35s_400x400.jpg",ref_id:"d99d354e-41d4-4117-9b70-05955a85f9da",twitter_handle:"C_Bendiksen"}],hosts:[{name:"Guy Swann",profile_picture:"https://pbs.twimg.com/profile_images/1401969630634196995/DqOuszMi_400x400.jpg",ref_id:"39c31930-d799-40a0-9a46-193117d03418",twitter_handle:"TheGuySwann"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN6935967461.mp3?updated=1627959014",node_type:"clip",pub_key:"",ref_id:"2b8ef20b-4134-4d6a-bb2f-ee72a42468d2",show_title:"Bitcoin Audible",text:"And I have to interject there too, that there is something important to keep in mind. When you look at different people comparing energy consumption, they very often talk about electricity consumption on a national scale. But that's not energy consumption. The electricity consumption of the country is only a small part of their primary energy consumption. So electricity is only, I think, a small double digit percentage of the total energy that we go through as a species. Sorry, go ahead. But I was going to say, in addition to that, not only is electricity a smaller percentage, electricity is a sizable percentage of total consumption, but for a given country, a huge percentage of most countries, energy use is outsourced. So if you're not a country like the US or China that's manufacturing for the world and you're a country that's importing, you are artificially reporting lower energy consumption numbers because all the products that made that everybody uses those emissions are reported under China or they're reported under the US. But in reality that's still energy consumption. So it's not really a fair comparison to say like bitcoin uses x amount of energy, like electricity versus x whatever small country, when you're only looking at the direct energy consumption in that country and not looking at the fact that they're getting all the resources from other countries that are consuming it elsewhere. Not only that, but you can flip that entire narrative on its head and say like when bitcoin uses more electricity than Chile, that means that even if Chile flipped their entire electricity infrastructure to try to mess with the bitcoin blockchain, they couldn't. Yeah, I mean, energy consumption is a good thing. It's just a matter of how it's consumed and how we produce that. Let me add one more thing. Everybody knows the market cap of gold, right? That's around 9 trillion. And that's 50 times more than bitcoin. And we know it from bitcoin. That by theory, if the bitcoin price is 9000 ethnic and by theory the production foster formed by bitcoin should also be 9000. It's not the case, I know, but by theory it should be the case. So now take gold. Honestly, nobody discusses gold. If gold, if the market is having a market cap of 9 billion and times 50 times more than bitcoin, then in case gold is produced, then what is in theory the production price of gold. That's the market cap of today. So 50 times more resources are being spent second by second, day by day, to somehow get gold out of good to ground. But this is not electricity. That's equipment and machinery and that's kind of, I don't know, all kinds of things which are working in some kind of gold mine. But isn't this also wasted resources to some degree? Nobody discusses this and it's 50 times higher at this point. I remember I remember a paper from Cruze Tomato that are exactly comparing metal mining with crypto mining. Oh, interesting. Okay. It was Nature Sustainability 2018. Bitcoin mining waste, ridiculously dangerous to the environment, like the cyanide that is used to extract the gold. And then if you just go through all of the environmental damage that gold mining does, bitcoin is like a space compared to what goes on in order to get gold out of the ground. And it was funny when gaming was brought up, I was speaking a concert, I think it was decentralized, in Athens Beach back in November and there were a lot of people there that is a stake and other nonsense. And I got into this big argument with someone that kept saying how bitcoin is so bad for the environment and mining can't continue to happen and how proof of stake of currency is the future. So it was a lot younger than me. And I asked him, do you play video games? I haven't played video games since I was about 21, 22. And I asked them do you play video games? And you said yes. And I said, well, how much electricity are you wasting by playing video games? Where is the productivity in that? So if you take all the gaming in the world, everyone that ever plays video games, you combine all that, how much electricity that is using, and please make an argument that that is more productive use of electricity than bitcoin, that is trying to give everyone politically neutral government free money. This is why this entire line of discussion is kind of like a bit of a red herring because the problem is that we don't have a good way to price externalities and if we did, then the price mechanism would take care of the rep. So I think it's partially done and it's partially I agree. I think a lot of it is a red herring and kind of missing the major point, which is the real environmental issues that we have on the planet today are how is steel produced, how are metals produced, how is concrete produced, how is electricity produced and how is farming done? Everything else makes almost no difference. Like those are the big issues. If our farms produce any way, it doesn't matter how much energy we use. If our mining and our metal production is done in a clean way, it doesn't matter how many metals we use. The earth is completely full. Like the cost of the earth is just materials. So if we're looking at the long term sustainability, it's a question of how these couple of processes are done and so the question of bitcoin's impact on that. It's such a small percentage of consumption. The question is more of which way does it incentivize production? Because if you see even a small swing in the way that if bitcoin, for example, is able to balance grids and enable them to use higher percentage renewables, then you'll see a higher renewable penetration and you'll see overall lower utilization of fossil fuels than you would in a situation without bitcoin. ",timestamp:"00:23:49-00:30:20",topics:["Bitcoin mining"],type:"podcast",weight:7.813010811805725},{boost:0,date:1637366400,description:"Bitcoin can act as a baseload for energy, including nuclear energy",episode_title:"Securing Bitcoin With Nuclear Energy",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"},{name:"Eric McErlain",profile_picture:"https://pbs.twimg.com/profile_images/1252969137/Screen_shot_2011-02-23_at_10.59.21_PM_400x400.png",ref_id:"4815365d-44d0-4b06-9d9e-32070158d03c",twitter_handle:"atomiceric"},{name:"Puru Goyal",profile_picture:"https://pbs.twimg.com/profile_images/1590742805613203456/QAtYq_C__400x400.jpg",ref_id:"c24af059-b38b-4ce5-9547-9192c9eff579",twitter_handle:"purugyl"}],hosts:[{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"},{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=YBaA17NODlA",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"42296529-2820-4c4f-be26-e12104e2b723",show_title:"Compass Mining",text:"it's about, like, the base load status of bitcoin mining and how the industry kind of use bitcoin itself. I'm assuming that it's not understood among most nuclear engineers or people working on these plans that bitcoin can act as a base load for energy. I mean, it's becoming a more prevalent talking point in a lot of different industries, especially natural gas. Is there an education initiative that's needed to that process, or do you guys see that it's already happening, that these plants are all across the US. All across canada and elsewhere, are already doing bitcoin as a buyer of last resort for energy? Back to you. Actually, yeah, definitely need some educational input there, I think, from other communities, because I think, like, one thing we need to understand, like, very few people today believe in bitcoin and bitcoin mining, and equally, very few people out there believe in nuclear, and there's a very fine nexus of people who believe in both. Right. So there's a big gap of knowledge in either industries about each other, and I think there's a lot of gaps to be filled there. One last thing I'll add to that point is this is something I've been thinking about for a while. I think sean connell tweeted this out too is like, I think bitcoin mining will serve as a global energy floor because suddenly you have a source, like a demand source, which will take up any energy above a certain price, and it'll just mine until it's profitable. I think it's going to have a massive impact on the energy markets, which people are authorizing right now, where a lot of these commodity prices are going to converge together because suddenly you'll realize that today, if I'm running a power plant and I'm selling my electricity to the grid, why am I doing it? Why don't I just mine bitcoin with it? Why sell it to the grid? Because I'm ten times more profitable just mining bitcoin rather than selling it to the grid. So if you believe in free markets out there and you believe in the economic incentives, then it just makes so much sense to these power providers. Just mine bitcoin because you don't even have to go anywhere. You can just colocate these in your own facilities and the footprint is so small, they're traveling in these mini huts where you can stack up these miners together and just mine on site and that you have a demand for there. So that's why I'm saying I think the grid will have to pay up a premium on top of the bitcoin mining for them to be incentivised to sell to the grid. And that's going to have massive ramifications for the energy market, which will completely change the game, I think, especially for all these advanced new technologies or other renewable technologies in the future. Yeah, peru is exactly right. We already have one example. Talent energy is building 150 megawatt mine as a joint venture with terror at Susquehanna nuclear generating station in Pennsylvania. That's going to be electricity that's flowing directly to their bottom line as bitcoin. When that announcement was made in July, after like a preliminary sort of heads up in an investor call in March, I was shocked that it happened that quickly. I mean, I'd been doing a lot of thinking about that and I didn't think it would happen as quickly as it did. Now that it has, now that they've broken the seal and, you know, as operators get their heads around this and understand that there are a variety of different models that they could use, they can do a straight power purchase agreement, they could do a joint venture. Maybe they do something as simple as taking some of the ample real estate they have inside the wire at these plants and just leasing it back to the mining company and maybe granting them access to office space for them to base. The employees are going to service that site and you can rely on the industry best security in nuclear. Physical security is credible on our planet. I think you're going to see more and more of these again. I talked to an industry executive just a couple of hours ago. He said he's up to his elbows and bitcoin miners coming to him. Okay, so it's happening. I'm doing my best to educate my members. I've held three webinars this year on the opportunity in bitcoin. I've been asked to establish a bitcoin cryptocurrency task force within NEI. We're going to be doing more events like this. So yeah, we understand what the. Opportunity is we're moving as quickly as we can and we're trying to get our people as comfortable as possible with it because we think there's a great future in it. That's insane. It's insanely awesome to hear all of that, especially, you know, building a task force internally to focus on this sort of stuff. Whoever that executives up to his elbows, he'll be, I'm sure, up to his eyeballs before too long or too much longer. But we're sort of at the top of the hour here and we want to wrap up relatively shortly. I wish we had time this conversation to go on for at least a couple more hours. This has been insanely bullish and insightful and like, just hearing you guys, you know, working full time in the nuclear industry, echoing a lot of the same things we talk about in our own niche, twitter circles and communities, we are speaking the same language and thinking along the same lines and it's incredibly, incredibly bullish. ",timestamp:"00:54:47-01:00:12",topics:["Bitcoin Energy Baseload","Bitcoin Mining","Bitcoin Education"],type:"youtube",weight:7.779880290018898},{boost:0,date:1596686400,description:"Impact of [[Electricity Consumption]]",episode_title:"Chat 45 - Bitcoin an Energy Revolution A panel at the VOB Conf",guests:[{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"Phillip Sandner",profile_picture:"https://pbs.twimg.com/profile_images/1043824764161335296/2SW3duCV_400x400.jpg",ref_id:"e1996e82-0354-421c-85d5-f18eebec9506",twitter_handle:"philippsandner"},{name:"Jesse Peltan",profile_picture:"https://pbs.twimg.com/profile_images/1123954968636088326/EAjHUGDE_400x400.png",ref_id:"96309505-caeb-47bb-a1ba-712b97292675",twitter_handle:"JessePeltan"},{name:"Christopher Bendikson",profile_picture:"",ref_id:"d72ead54-7bff-4874-870f-123e665fddfd",twitter_handle:""},{name:"Christian Stoll",profile_picture:"https://pbs.twimg.com/profile_images/3296579573/69ebedb479a9bdb9d536fe887e2d3113_400x400.jpeg",ref_id:"ff74d59c-f846-4b16-a5e5-771fb8139f18",twitter_handle:"Granddragon14"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN6935967461.mp3?updated=1627959014",node_type:"clip",pub_key:"",ref_id:"30641d73-c61d-47f4-bf37-f78566574dc8",show_title:"Bitcoin Audible",text:"kind of an inherent moral question there as well, is that do we get to subjectively put our values on to them? Like in making judgments over whether or not they can make that choice as to whether or not it is their value or not? And obviously, in a decentralized system, where are you going to do to stop it anyway? It's inherently an incredibly difficult thing to control or alter. Yeah, this gets to a very steep level of freedom versus coercion. Domini, to say that you watching a Netflix show is a waste of our common resources. I mean, that's not my difference. Did anybody compute how much electricity costs to watch 90 minutes Netflix movie? Honestly, there's research out there looking into data centers which is directly linked to subjectivity. So I have one student that looks into Amazon currently for the comfort print of Amazon, where you exactly have streaming as one source of electricity consumption. I made an estimate, I think two years ago of the electricity draw just gaming console Iceland in the United States, and it's on the level of 50 kilowatt hours. I like to make a couple of points here. I think that one of the important points to note is that electricity consumption is not in itself a bad thing. So electricity production and consumption is good, that provides value. The negative side is when there are externalities associated with how that is produced. So if we enable more renewables, more sustainable energy sources through bitcoin mining, then it's a net positive. I think the other part that is important to note here is that in the total scale of human energy consumption, bitcoin is nothing. It is completely dwarfed by any industrial process. Aluminum smelting, like concrete production, steel production. Bitcoin is such a small drop in the bucket compared to any of that, that any effects that bitcoin has on a more financial level, like if there's restructuring in the way that business is done, that will be far more significant than any effect of the direct energy consumption of bitcoin. And I have to interject there too, that there is something important to keep in mind. When you look at different people comparing energy consumption, they very often talk about electricity consumption on a national scale. But that's not energy consumption. The electricity consumption of the country is only a small part of their primary energy consumption. So electricity is only, I think, a small double digit percent of the total energy that we go through as a species. Sorry, go ahead. But I was going to say, in addition to that, not only is electricity a smaller percentage, electricity is a sizable percentage of total consumption, but for a given country, a huge percentage of energy use. Of most countries, energy use is outsourced. So if you're not a country like the US. Or China that's manufacturing for the world, and you're a country that's importing, you are artificially reporting lower energy consumption numbers. Because all those products that made that everybody uses, those emissions are reported under China or they're reported under the US. But in reality that's still energy consumption. So it's not ",timestamp:"00:21:14-00:25:05",topics:["electricity consumption"],type:"podcast",weight:7.691150903701782},{boost:0,date:1632355200,description:"Accessibility and the price of manufacturing potential ASIC home miners ",episode_title:"The ASIC Mining Hardware Market",guests:[{name:"Vincent Zhang",profile_picture:"https://pbs.twimg.com/profile_images/1158285609196109825/fuB-e6lm_400x400.jpg",ref_id:"98e7bc98-3a3b-4ddf-9b48-5dcd78973739",twitter_handle:"Whatsminer_MBT"},{name:"Vincent Vuong",profile_picture:"https://pbs.twimg.com/profile_images/1260974518547312640/n47yvbNL_400x400.jpg",ref_id:"8390e230-e36b-4e0d-9f5d-70c6635bf3c2",twitter_handle:"BitcoinVincent"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=qKeUCNXa4Uc",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"8dbb367b-5cba-4f05-a1db-104d0c66b579",show_title:"Compass Mining",text:"shift this exact same conversation into the accessibility and the price of manufacturing of hardware with a slant towards retail or home miners or hosted miners. If Damien doesn't mind throwing up my screen one more time here, I'll share it for you. In the market multiple times over the past, over previous market cycles, we've seen sort of small gimmicky devices that try and make it easier for people to mine at home. This one you see here, featured in a CNBC article with a variety of inputs there on some little plastic power strip is the latest version. We've also seen companies like Coin Mine try and offer products like this. How viable, long term or at all are these types of hardware devices when you're looking at a market filled with like top tier leading hardware, like what's miners manufacturing? And will this ever have sort of any place in the hardware market or are they mostly cyclical gimmicks that catch headlines, maybe sell a few units, but don't really have any profitability or long term lifespan? Curious to know both of your thoughts on these little devices we see popping up all the time. Vincent from what's minor? I'll toss it back to you and then Vincent from Compass, I want to hear your thoughts too. Yeah, so what we can see is in the year 20, 17, 20, 18, so people can easily mine at home because at that point of time the power consumption of the minus is lower and so the current brought by the minus is not so high. However, since 2019, so almost all the minus switched to more than 3000 watts. Okay, like our minus is 3400, 500 watts. So based on the 220 watts power, so the currency of the minor goes to 16 amp. So it is higher than the staff at home appliance at home. So we can see that some investors or some individuals, they have interest to invest because they might have some capital available, cash flow available, they just want to buy some minors and put it at home for mining bitcoin. So no matter this is interest or is kind of the investment, however, there are a lot of people try to do that. So from our point of view, this will not become the mainstream. Okay. Because right now you can see that the mining facility data center are becoming bigger and bigger. So earlier you hardly can see hundred megawatts mining farms. Right now you can see even one gigawatts mining data centers. So all those data centers are hosting the miners, most likely from the big investors. So this will consume, you can say 99% or 95% at least the supply capacity from our site. So the strength of our R and D will not be put to the 5% market. However, right now what we are trying to do is for mining business, one of the most important factor is that the power cost should be lower as much as possible. As lower as possible. So what we are trying to look into is how to reutilize the heat generated by the minus. So if we can reuse those heat generated by the minus, which means, for example, if we can share those hit at the power cost that we paid, which means you reduce the power cost to 20%, right now you have. So that's why we are looking into those areas. So how we can reduce the operation cost of the investors as much as possible. So that's why we spend a lot of time and they invested a lot into water cooling minus and the immersive mining minus. Okay. Because by concentrating more hardware together, so the heat generated by the miners may be reutilized in some of the cases, so it will reduce the cost of the mining. Okay, so this is the area where we are trying to work, because what we can see, at least from my side, I can see that the power cost of individual at home, actually it is not competitive. Okay. This will require the individual. Investors always should upgrade their or minus with the latest power efficiency ones. So otherwise it may not have the good profit level as they expected when the time goes. This is the share from my side. Yeah, it's interesting to see all sorts of creative solutions that homeowners try and make. And over the past year or two, or maybe a little bit more, we've seen, like you mentioned across the board, a crazy push to expand immersion mining tools and heat reuse tools for all sorts of novel and creative use cases. Again, to sort of maximize the amount of utility we can get out of a mining operation and sort of trim costs as well. Vincent, same question to you. Like what sort of utility or place in the market, if any of these sort of, not to be too critical, but kind of gimmicky small machines have when people are trying to look for cheap, affordable ways to start mining? Yeah, for sure. For me, I think that these smaller miners are like, especially retail miners. They're not 100% profit driven, so a lot of them are. They need to find alternative use cases. So a lot of people will run a minor instead of running a heater. Same thing, a little bit louder, but you still can heat your entire force. So by doing that, you kind of get two and one, and you're also mining some big one at the same time. And there's also people that are also interested in doing lottery mining. Lottery mining is basically solo mining with one machine where you have one in a million chance of getting it. But that's way better than winning it's, better odds than winning the lottery at least, right? So there's people that will do that and run their machines at Lost. And then there's people that just want to support the network as well, right? So people that want to just support the network, run a machine and kind of like put their vote in, cast their vote in, and that's totally fine. Not everything in the world is entirely profit driven. And then there's also use cases where sometimes when people have a solar set up in their house, right, the solar curve kind of goes up like this over time, where the peak happens in the middle of the day. In the middle of day is when people aren't at home. And so what you can do is you can start utilizing miners to kind of use that power when it's peaked, when you're not using anything else. And so there are a lot of alternative uses for these kind of small giving miners that allow retail to kind of keep themselves competitive. I think that's the best thing about retail miners is they can take advantage of these, whereas for the large institutional players, it's a lot harder to kind of push that kind of stuff through because there's a lot more involved with regards to the decision making and everything. For me, I think the simplest solution is like a retail investor, and I'm not trying to be a shield or anything, but it would be to purchase from Compass. The whole solution is very simple. Like, you don't have to invest in infrastructure, you don't have to invest in upgrading electrical, and you have to deal with the heat, the noise, the screen. It becomes a lot more simple like that. But there is definitely a larger subclass of people that want to get their hands on a minor and get dirty with it and try to find use cases for it. And I think there is a time and place and everybody in retail has the opportunity to do that, especially right now, when it's profitable for everybody. You can't guarantee that for the future, but as long as you find an alternative view sport, it's doable. ",timestamp:"00:25:59-00:36:02",topics:["ASIC Home Miners"],type:"youtube",weight:7.590939760401884},{boost:0,date:1639872e3,description:"Big States and Small States",episode_title:"PFP016 Remigijus Šimašius, Bullies as Neighbors-on the Foreign Policy of Small Countries (PFS 2008)",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/624262ef-b30f-4114-8061-e310187e6bb4.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=0WAituFO614",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"4369ba7b-c9c8-4bf8-906a-1d8e27b1558b",show_title:"Property and Freedom Society",text:"private privilege for people those days to discuss about imperialism and because it is usually not small stages who act such first ones it's usually big stages who start some kind of ongoing work to what you say when people try to draft the practical institution practically is when we discuss theoretical aspects of prior traditional defense but we see that our reality and general public do not allow is never to defend a country because ",timestamp:"00:01:04-00:06:14",topics:["Big States","Small States","imperialism"],type:"youtube",weight:7.585623406215426},{boost:0,date:null,description:"Bitcoin non-profitable projects and Bitcoin tipping",episode_title:"The Orange Sun 🌞 VISA, MasterCard & #Bitcoin #BOLT12",guests:[{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"~₿ Maxi~",profile_picture:"https://pbs.twimg.com/profile_images/1446241859651637250/i67F3y9p_400x400.jpg",ref_id:"ad997ae7-0726-431a-9f72-82da091c0658",twitter_handle:"fede0891"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"FireBurs†s",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"cda1d3ad-dd80-458b-a5fb-a28861df10a7",twitter_handle:"FireBursts"},{name:"Nikolai Tjongarero",profile_picture:"https://pbs.twimg.com/profile_images/1578458155964682274/_SzDxkAJ_400x400.jpg",ref_id:"821ee040-2267-454e-a59a-92da51568afa",twitter_handle:"BitcoinNaijaShw"},{name:"ブランドン",profile_picture:"https://pbs.twimg.com/profile_images/834861311762649090/N0KAP4zH_400x400.jpg",ref_id:"3d41531d-6a59-4771-81f9-0924b4c02561",twitter_handle:"blario"}],hosts:[{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/94a86a32-91c2-4717-b5cb-b36cef925776/38decc02-c922-4c1d-a605-7cd54c91a01d.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"5e6d5d88-bdb0-4350-8c03-13b0a24d3050",show_title:"Satoshi’s Journal",text:"else was I going to go over? Did I forget anything on charitable stuff that we're working on? Oh, master Gaunte is going to be coming out with a video. I'll give you guys a sneak peek. So we came upon a project, eva Kamani. She came to our space. She's actually going to be working with us out of Kenya. And she brought to my knowledge, a children's. I don't know what they call it, actually. It's not a school. It's like a kid house or children house where they take care of children by providing them food and water and maybe some education. And it's been a while since I read up exactly what they do, but she bought it to my attention. The guy that runs it has been running it for years. I think he has like 30 kids that he takes care of. And when I heard about it, I told her, hey, I want to help them. Master Gaunte is going to go and do a documentary and orange pill them. So we're not just going to give him satoshi orange pill them. So that's an up and coming video. That's the sneak peek. So someday you guys will see a pretty cool video of us orange peeling. And then at the same time, if we can get them to the point where they understand what bitcoin is, this children's home actually could be the first children's home that accepts bitcoin, and they could actually end up making a bunch of more children home. We all know that the value of bitcoin is going to go up. So those first few businesses that start, whether they're a nonprofit or not, the compounding effects of bitcoin over time is such that this one children's home could actually unfold and fund a bunch of others if they use the bitcoin that we donate to them wisely. So that's one of the biggest reasons why if you have a chance and you're so inclined, you can send a few sets. I think the best thing about bitcoin is you can send freaking one satoshi, ten satoshi, 100 satoshi. Anyone can afford to send one satoshi is $0.04, last I checked. I think it's less now. Anyone has the capacity with the lightning wallet to send ten satoshi's, and every satoshi counts. And you can't do that with dollars. You can't send half of a penny to somebody with not even visa. It's not like you can physically get a penny and cut it into multiple pieces. With bitcoin, you can send freaking increments of a penny and increments of a satoshi. I've never sent microsets. Have you ever sent microsets, olu or tk? I've never done it. But my understanding is one satoshi can be actually denominator. You can actually send parts of a satoshi. So from a charitable standpoint, there's no excuse, so to speak, because there's no room for someone saying, well, I can't afford one satoshi, I can't afford a fraction of a satoshi. Every satoshi counts. And in the end, when we get the dollar SAP parity dollar SAP parity, meaning that one bitcoin will someday be worth that 100 million, I think. So that's why literally every set counts. If you can send satoshi to somebody in central South Africa, central America, anywhere, get them orange filled, support them, send them the stats, tell them the importance of saving those stats. I'll tell you an example. It was actually Alexander the Great. Oh, so go ahead, be maxi, because I've been talking long time. Go ahead, it's fine. I was just curious because the first time I heard about what's like a micro, as you said, like micro. My understanding, simple understanding, is that once the toshi can be, you can send transactions via lightning in such a manner where you can send parts of a satoshi. So a satoshi can be divisible into. What they're called, and they're actually not defended by your actual node. That's what makes it so hard to actually defend using such a thing, because the milestones that are in between you and your channel partner within the lightning network, the nodes don't defend those. It's like a weird tracking system they have for the like it's almost like dust limit type stuff. If your partner channel closes it, and for close to your channel, those milliseconds are lost. There's nothing guaranteeing that you get those milliseats back from that other person, from your counterparty, because they really don't like it's, not really. They don't really exist. So this is how we get into this argument of all bitcoin is divisible infinitely. And that's not how it works. You can't just keep dividing bitcoin forever. What ends up happening is you end up just multiplying the supply because then you'll have a smaller denominated unit that's actually going to be worth more because it's smaller and more divisible. Therefore it would be a secondary monetary asset on the network itself. It's a very nuanced topic, but once you get down to integrity of it. So is it more like, let's say sorry, is it more like a theory, some sort like conspiracy theory that some people believe you can, like, you know, create? Like Microsoft like today is very small unit of a sad essentially. Essentially that's what it is. Because bitcoin itself only recognizes the units individually, which is 2.1 quadrillion satoshis. That's all there ever is. Well, with lightning, we have the ability to send fractions of those satoshis which are denominated as millisats. The only thing is when you settle those millisets, that those millisets can't get settled on chain because they don't exist. So you see where we have this dichotomy of when you lose a channel partner. Those milliseconds are just dumb. That's why if your balance is that small at closing time of the deal on the chain, you won't see your balance because there are many sites. They. Only exist within the lightning network. And that's it. They don't exist anywhere else. Yeah, that's what lightning network is going to take over everywhere. Because if your balance is that small, this is very, very small. But of course can be broken in lightning. It's long. You will get any transaction that you do. But with lightning, you can actually still have something still smaller than the smallest partnership. Actually, you can have something so smaller than that. And I think everything will be repricing bitcoin, because everything will not be valuable if one start can be equal to one dollars. Jesus Christ. So if you just have 100 and you have $100, and imagine the inflation that would have messed up with the dollar. In fact, all bitcoin has to be the richest in the world. And that's why it's just 21 million. Try and get some guys, please. Yeah. And I'm sure in the future will get to the point where these millisets won't be as theoretical per se. There's not a conspiracy or anything behind it's possible using lightning and the possibilities of lightning are as much as a developer can develop and make things more possible. So we're seeing developments in lightning all the time. I mean, I just talked about eight companies that are contenders for the I think it's a both for fun competition. Yeah, that one, I bought it like yesterday for the first time. The both twelve that you can they're trying to integrate the onion, like anonymous chat where if a buyer wants to shout and tell them how I'm here or whatever. But I don't know what the issue is because I was listening to someone and they said it was really hard to integrate the bolt twelve. Yeah, no, that twelve is going to be awesome because it allows you to have a static QR code that you don't have to. So right now when you use lightning invoices, they expire and bolt twelve will allow a lightning invoice to be used into perpetuity is how I understand it. And bolt twelve will be we're going to try to get that integrated as soon as possible. It's just a matter of I'm sure some developer has already got it to the point where they're using it and it just hasn't proliferated. But as soon as it becomes basically unleashed in full, then everyone's going to have the ability just to real quickly create a lightning address and post it at their business and that lightning address will last forever. The implications of that are awesome. I mean, that's just one innovation that's happening of many in the future. We don't even know what's going to happen in the future. Open source. So like you can put that on basically any lightning network apps. Yeah, I mean, that's the cool thing about lightning is anybody that develops on lightning, because lightning is an open protocol, anything developed is complimentary of anything else that's developed. So whether you're building an exchange or you're building whatever you want to build on bitcoin or lightning, the open source part of it allows the system or everything on top of it just to get better and be complimentary. So it's freaking awesome, man. I think almost every day I hear something new that's happening. Portland Hodl, he does a space every week and he talks about the bitcoin improvement plan. Yeah, bitcoin improvement proposals. And every week he talks about a new BIP and he explains what that BIP is. So these bitcoinners that are developing on top of bitcoin, they come to the table with a proposal and whether it's implemented or not is a whole different story. But they at least come to the table and they say, hey, we would like to implement this proposal and that's on bitcoin. I don't know if they have a similar thing for lightning. Do they have like a thing for lightning that's like a lightning improvement? They do. I think it is called bulk. I think that's why the bitcoin. Is what you have said. The fact that you can reuse the QR code and look at how interesting that is going to be. I think Bmax was talking about lightning apps, but what about other things like billboard, like your shirts. If you are a walking billboard for Satoshi John, there is a cure code. Boom. Just imagine. Or for any business at all, especially road fines, billboard, books, souvenirs tea cups, frames, just imagine on posters, on stickers, initially on both eleven, we could not use more than one invoice for one transaction. If you try to reuse it, you may be in trouble, you may find yourself in trouble. So that's what is making both twelve very more interesting. Everything that both level does is what both twelve can do and do better. But now you can actually use one QR code on lightning. You don't have to be changing it. You can put it on anything. You can put it on a tattoo. Wow. That'S a really good point. If you were actually to use these static QR codes from both twelve and put them on billboards, put them on shirts. If you're a businessman or woman, you just prominently display them everywhere. People could just literally scan the QR code off the side of your car, off of bill billboard, off the side of your hat. If you do get a tattooed on your shirt, on your skin, I mean jeez, the implications are amazing because people can just send payments to each other using the bolt twelve wherever they put it. ",timestamp:"01:10:47-01:25:10",topics:["Bitcoin Charity","Bitcoin Ttipping"],type:"twitter_space",weight:7.444137096405029},{boost:0,date:1677582e3,description:"What Micro Loans are and the motivation behind them",episode_title:"Ep. 514 The Future of Crypto in the Media with Blockchain Boy",guests:[{name:"Lucas Dimos",profile_picture:"https://pbs.twimg.com/profile_images/1092408696838197250/n0-St2nZ_400x400.jpg",ref_id:"9ac17e2f-49bd-4fc5-bfe5-2f380ca63574",twitter_handle:"lucasdimos"},{name:"Blockchain Boy",profile_picture:"https://pbs.twimg.com/profile_images/1602154101642592256/A0OX97CT_400x400.jpg",ref_id:"4b070a6f-bcc8-4708-abaf-cc830709600f",twitter_handle:"BlockchainBoyy"}],hosts:[{name:"Aaron Malone",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"bd103540-8c0a-4ab3-b5cd-24a3f2c43ab2",twitter_handle:"pizzamind"},{name:"Bryce Paul",profile_picture:"https://pbs.twimg.com/profile_images/1182725652794892288/QbDOKHcP_400x400.jpg",ref_id:"0d670dbf-f434-43b6-b454-8e5345d7ee51",twitter_handle:"BrycePaul101"},{name:"Pizza Mind",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"16cb01cf-9f04-45db-a440-47259b02b86a",twitter_handle:"pizzamind"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/93a6fe5b-364c-43f4-9f38-7da3e811460b.jpg",keyword:!0,link:"https://chrt.fm/track/DD9393/audio1.redcircle.com/episodes/68f31cee-f404-40fe-85d7-a406019e916f/stream.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"e2a347d3-a7ce-4200-836e-0c3df94980ce",show_title:"CRYPTO 101",text:"Look at that. Yeah, look at that. Dude, he hooked me up. I bet there's even an espresso shot in there. That's crazy, man. Fantastic. So where was I? Oh, yeah. So you can empower entrepreneurs from other places around the world who need maybe an $800 loan to get more fertilizer for their crops, to double their yield, or who are opening a small store in their community. And it's a way because charities actually can be actually very damaging for local communities. Like with those Tom shoes. You buy a pair of shoes, they ship a pair to somebody who needs them in Africa or whatever, you're putting the shoemaker out of business. It's ridiculous. And you're hurting the local economy by making them dependent on foreign aid. And I don't believe in that. I don't want to give people what they need. I want to give them the tools to get them where they need to be by themselves. And I think that's really what makes me happiest. And so I want to find ways of doing that, and that's just one way of doing that. Yeah, no, I love it, man. So I kind of want to talk back to Tik tok I was just thinking, I saw the other day there was a potential ban on TikTok that, like, lawmakers are out. What's your take on that? You have a quick take? Well, we can choose who we want to sell our data to, but it's going to be sold anyways, and they just want American companies to own our data and not China. But I mean, they just let that weather balloon get across the entire continent in the United States before shooting it down. So ",timestamp:"00:24:04-00:25:29",topics:["Micro Loans"],type:"podcast",weight:72.76897614568216},{boost:0,date:1637366400,description:"Anticipated Bitcoin mining industry and nuclear energy industry intersections in the near future",episode_title:"Securing Bitcoin With Nuclear Energy",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"},{name:"Eric McErlain",profile_picture:"https://pbs.twimg.com/profile_images/1252969137/Screen_shot_2011-02-23_at_10.59.21_PM_400x400.png",ref_id:"4815365d-44d0-4b06-9d9e-32070158d03c",twitter_handle:"atomiceric"},{name:"Puru Goyal",profile_picture:"https://pbs.twimg.com/profile_images/1590742805613203456/QAtYq_C__400x400.jpg",ref_id:"c24af059-b38b-4ce5-9547-9192c9eff579",twitter_handle:"purugyl"}],hosts:[{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"},{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=YBaA17NODlA",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"27290854-e30c-4f09-aee9-c6ee23a4854d",show_title:"Compass Mining",text:"thing I would want to wrap up with is a little bit of an open ended, forward looking question. Like we've talked about a lot of the dynamics for bitcoin miners and nuclear power producers to work together, a lot of the mainstream perceptions on both of these sectors. If you had to, I guess, pick one or two things in the very near term future that you're expecting to see. I know a couple of you guys have mentioned that some of the recent developments have surprised you or been larger and faster than maybe you expected. Looking forward to the next two years? What's something at the intersection of bitcoin mining and nuclear energy that you are expecting to see you're looking forward to? Whether it's one particular company or maybe a broader trend in adoption, I'm not really sure. I'll leave that up to you, but yeah. Any expectations, Ryan? I'll hand it back to you. Well, in the next few years, I would love to see bitcoin mining be applied in such a way that we could save the Pickering reactor from being shut down, because that is a travesty. That we're going to lose. That and nuclear power in Ontario is one of the biggest reasons why we were able to eliminate a lot of our coal power. And if we lose a reactor, it's going to just go back in the wrong direction because we've got the refurbishing, the Bruce reactor and the Darlington reactor right now, there's no reason why they couldn't go ahead and do the Pickering as well. But I think one of the big concerns is those demand risks. With more renewables coming online and there are intermittent seats, it causes too many surplus generation events and then it creates massive economic liabilities on the reactors and then they get deemed economical and then they get shut down. And so we now have an opportunity to kind of reverse that trend in a way. And make a big gains in the saving reactors and refurbishing them because we could keep it going for another 40 years easily if we just put the time and money into it. Interesting. That's actually fascinating. Peru, I want to ask you to same question. Anything in particular you're expecting over the next short term? Two, three years? Yeah, not two three years, but I feel like by mid 20s what you'll see there's a lot of these small modular reactors that Ryan been talking about for a while too. I think those are going to come online, either demonstration plans or companies are going to start making them because the life cycle of making constructing these plants is much shorter compared to the full scale plants that we've seen in the past and companies are already developing it. And I think, like I talked about, I think it makes so much economic sense to just mine bitcoin with them until the grid providers are offering you prices which are comparable or a premium on top of the bitcoin mining price. Like if I'm running a nuclear advanced technology company today and I understand bitcoin mining and I'm just like trying to get these reactors online as soon as possible and colocating a mid bitcoin mining rig at the same site. And just mining with bitcoin with it until the grid prices reflect a premium which I'm willing to take and provide my power to the grid. I don't want to bet on the timing of this, but I think we'll definitely see this over the deck and I think it's going to be great to see. I think bitcoin mining industry will also evolve over the next few years for sure, based on just how much hash power is going to come online over the next couple of years. I think both industries are going to benefit from this. That's awesome. Eric? Yeah. Same question. You just wrap up on anything you're expecting, I guess. Well, I mean, when you ask me what's going to happen in nuclear next two, three years, I have to remind you we plan 510, 15 and 25 year increments. So that could be tough. So I'm going to say more of the same. I mean, we had those three announcements in July, talent and Terrawolf energy, harbor and Standard power, and then of course Oklahoma and Compass within like ten days of one another. Bang, bang, bang. It just completely changed the way we look at the world. And I think we're going to see more of that. We're going to see more of that. We're going to see it happen more rapidly. From any eyes perspective, we're hoping that one of the introductions that we've brokered will turn into an actual deal. Whether it's a straight power purchase agreement or something more profound like a joint venture between a minor and an operating plant site. We're crossing our fingers that we'll be able to say we helped something like that happen sometime soon, but I would say more of the same. The one thing that I will think that I'm going to project may happen in five to seven years and it builds up something. Peru said. I think you may very well see an announcement about new build for An SMR where the miner is twinned with the construction of the reactor. That they will happen at the same time, or roughly at the same time. So when the reactor goes critical, that miner will be able to take that power immediately. I think that we're going to see that kind of coordination. I would like to see that kind of coordination between advanced reactor manufacturers and mine. How's that? That's awesome. That's perfect. To seeing some agreement from the other gentleman here on the panel with regards to that. That would be beautiful to see. Getting more conversation in the chat. We're a little bit over time now, so unfortunately we do have to wrap up. But I will say for everyone watching, all three of these guys are on Twitter. Relatively active, but definitely must follows. You can find their handles in the description below this video. It's all three of you. Thank you again so much for coming on the stream, chatting with Will and me. It's been a super fun, informative, insightful conversation. Super glad we found time to do this and that's a route for us here at the Compass Livestream. Appreciate y'all watching. Be sure to like and subscribe if you enjoyed the conversation. Helps other miners find this content. This conversation in particular was just outstanding. So, again, thanks to all three of you. Appreciate your time. And that's a wrap. ",timestamp:"01:00:13-01:06:32",topics:["Bitcoin Mining Industry","Nuclear Energy Industry"],type:"youtube",weight:7.335028414441784},{boost:0,date:1670706053,description:"Understanding stacks",episode_title:"Bear Market Buidl — Major #Bitcoin developments! #Stacks #Sidechains",guests:[{name:"@GriffdenNFT",profile_picture:"https://pbs.twimg.com/profile_images/1604377729062895617/R4pSEdH4_400x400.png",ref_id:"dafdf7ec-28c0-43d3-a0d9-b2d266f38738",twitter_handle:"GriffdenNFT"},{name:"@Chad_333",profile_picture:"https://pbs.twimg.com/profile_images/1592310541732970496/o1tbw9Eo_400x400.jpg",ref_id:"484c7695-6a4e-4141-9585-1109bf23f8cf",twitter_handle:"Chad_333"},{name:"@jackbinswitch",profile_picture:"https://pbs.twimg.com/profile_images/1601214177439260672/O0SpU5B1_400x400.jpg",ref_id:"9685e7f3-3e0c-4b84-9fd9-b8a1d96f6ae9",twitter_handle:"jackbinswitch"},{name:"@jimdotbtc",profile_picture:"https://pbs.twimg.com/profile_images/1593210347825119237/L_SNThWQ_400x400.png",ref_id:"5dcf5545-fad6-44ee-ae56-360c5efe1151",twitter_handle:"jimdotbtc"}],hosts:[{name:"@BigRpic",profile_picture:"https://pbs.twimg.com/profile_images/1604962150388219904/WqiCye-r_400x400.jpg",ref_id:"726f0c95-9d94-4d44-a056-8ad3c9e3ddd5",twitter_handle:"BigRpic"},{name:"@CarlsonDoc",profile_picture:"https://pbs.twimg.com/profile_images/1597382056308350977/1NPexynZ_400x400.png",ref_id:"e34fa2b2-a58e-4461-81a0-d10c1058dfc2",twitter_handle:"CarlsonDoc"},{name:"@STXLDN",profile_picture:"https://pbs.twimg.com/profile_images/1533793338931007488/o3laQDCp_400x400.jpg",ref_id:"5c3bc906-3aed-44f9-851a-94804c6fe5ca",twitter_handle:"STXLDN"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99046513-2614-4eae-9de4-5781ba4b330a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/fc3bebcb-8271-433e-8d81-84dd06f3b022/aec527bc-539d-4d3b-9bad-db4af9e1a1ba.mp3",node_type:"clip",pub_key:"03c7a7f42d94fdfc7a655515c1421cd1d20db090a1c24150201de0b1dc6a30b0ee",ref_id:"3008a0a4-d3c8-4d33-aa67-f39e4ce1a87c",show_title:"STX:LDN",text:"Yeah, that's awesome. I definitely agree with the degenerate part, for sure, but no, I'm looking forward to it. Thank you. Yeah, I appreciate that. It sounds really good. Thanks, Chad. Yeah, it's not really what our mentors are maybe pushing us to kind of do, which is more build infrastructure for Stacks, but that's where we can hopefully turn this into a more dev tool for users or creators, I should say builders that want to build on chain gambling games. And yeah, we're really excited about it. Thank you, guys. Yeah, I personally think the more user ability there is like, things to do based on chain I find more appealing than I guess, like, the super techy stuff because hold on 1 second. My daughter just pulled food out the fridge and I'm not even ready to start dinner yet. Yeah. Griffin, you were more of an Ethereal native before you came to Stacks. Kind of like myself, I think it'd be interesting to talk to you about the most striking thing that you notice switching from Eve to kind of get an exposure to this ecosystem, which I find to be completely unique in the crypto space. I hadn't found anything like it thus far. Right. And so when I came here, I'm like, oh, yeah, I'm home. This is where I'm supposed to be. So I think you probably also have some really good perspective where that's concerned. Yeah, I'd love to touch on that. That's a great point, and I'd love to make that clear to you. I missed our conversation the other day. I don't know if you saw my DM on Zoom, but I'd love to catch up one on one sometime too. But coming from Aetherium, I first tried out Stacks maybe three or four months ago, and I guess I truly didn't understand the awesome tech behind it. And as someone who is used to my transactions completing about 30 seconds to a minute, I wasn't super excited to use Stacks. But once I understood that they at the foundation and a hero all understand that's one of the biggest issues users have with Stacks and that they're working on Scaling, then I really realize that this is going to be a viable competitor to the other smart contract blockchains one day. And I'm just happy to be here. Like Trevor had mentioned before, all the noise happens and it's a smaller community. So you guys obviously are a bit more tight knit and respecting to community members, which is something that has dropped significantly in the Ethereum community as it grew. So I really hope that Stacks can find a way to carry on that great culture that it's got right now and be that inviting blockchain that Ethereum and Solana have failed to be as they grew. It's that, like, feels at home type feel. I know exactly what you're saying. Yeah. I mean web three. A big part of web three is community. Right. That's one of the underlying pillars of what it is. And I have faith that this community will be able to grow and maintain its character. I think it's one of the benefits of Stacks, being a community that has been slow to grow. You have guys like Jim and Dash who were here at the very beginning. Right. And so they have such interesting perspective to see how it's shaped so far. Yeah, I think that you cannot have where we're going with being disjointed and just kind of when someone new comes in, they just feel like a mark being ready to be ripped off, right? You need cohesiveness and you need good people trying to go towards a common vision. And the common vision here is having a user owned internet built on Bitcoin, right? That's really what it's all about. And I think that we're off to a damn good start. So I'm excited. I don't worry about us losing our character. I think that the fact that this thing has just been building slowly over the past few years only reinforces the foundation. And that's the thing as well, jack I say this to a lot of people about the build up lap. Because the build up here, if we actually look at things and I know you guys, that Dash and Jim have been here for a lot longer than me, but even I had heard of blockstep when it first came out, and not first came out, I'd say probably a bit later on towards the ICO or the token. So, shall we say. So I'd heard about it and I was a bit dubious because it was kind of like, okay, it's bitcoin not on bitcoin, it's a bit weird. Sounds a bit weird to do another chain. I suppose at that time, maybe I wasn't as experienced. I was just starting out professionally in crypto, so maybe I wasn't that experienced as I am now. But when I first kind of started researching back into it and I've seen stacks and then I started researching and I realized it was block stack, it was like, wow, so this has been here for a long time because I remembered that block stack had been around since even a few years prior to the whole token. So going back and looking at the whole kind of long history of block stack in the game and stacks in its current form, it's been around a lot longer than a lot of stuff, like a hell of a lot of stuff. It actually borders on being around a lot longer than even Ethereum itself. Do you understand what I'm trying to say? It borders on being around longer than the theorem itself. So it's like yeah, I think it's just great to see that at this moment in time with obviously the Stack 2.0 upgrade, we've got 2.1 coming and all of the hard work that the builders that were here before us have done. It just really just seems like it is the right time for this to be out there in the world. And as what Trevor said to Grifton, it's like before the noise comes, isn't it? Like you said, you've got the tight knit community and you've got everybody just building. And because everybody has that focus, as you said, Jack, of the user user on Internet, on bitcoin, nobody's like there's not a million other 29 880,000 different coins and tokens that we're all talking about. I suppose that's one of the key or some of the key elements, but yeah, sorry, Jim, go ahead. I was just going to say, well, thanks for doing this call. It's really been interesting hearing you guys, and thanks for all the big intros, jack it's actually really interesting just even listening to this call and taking myself back to the same sort of point in the last cycle, because I think Dash and I were kind of working with Stacks probably around 2017, possibly a little earlier. I think it was interesting as we we imported one of the we imported the first two way bitcoin ATM into the UK in 2014, and it was just a big, you know, it was a big bet on bitcoin. And, you know, we were, we were thinking about remittance and, you know, the difference it was going to make for, you know, the world's unbanked. That was kind of the initial reason we got into it. And so we met quite a few really interesting people, not being not crypto people prior to that. So we were actually musicians working in the music industry, so it was a steep learning curve. But we met this guy, Mike Cohen, who's one of the core developers on Stacks now. I remember him coming into where we had the ATM, possibly around 2015, and saying he was like, oh, have you heard of ethereum? There's a big thing coming along, it's going to be really exciting. It's got the security of bitcoin in a way, but it operates really quickly, so you can have these things called smart contracts. And, of course, I'm going into my old work in music and thinking how we could set up all these amazing payment mechanisms where a stage manager presses a button to say that the band has finished the gig, and then there's this whole domino effect of payments. And then by the time you get on the bus, you've been paid. That sort of got us thinking. So I really got into a theory briefly, but Mike had already said, this is what we're kind of working on is doing on bitcoin. You know, it can be done on bitcoin, right? And this is just vitalics kind of jump the gun. It's really, really cool, but it should be done properly, it should be done in a different way, and it will happen. And I think he was already involved with Blocksack, and then, yes, probably a year or two later, we started doing this stuff, this at Mining, which didn't really work too well. I think it was a bit of a scrum for just lots of people with lots of ideas and no real central. It just didn't feel like it was really working. And then I think that was running up to the beginning of sort of 20 end of 2020, beginning of 2021, when it felt bit similar like this. You know, things were just about to sort of certainly with Stacks, the main net was about to launch, but there was no one really there. But there were people coming in. It was a really exciting vibe. Lots and lots of community, really great sense of just a handful of you sort of doing this really exciting stuff. And I was just buzzing because for years I've been thinking, this is coming and suddenly it's here and we can make NFTs. And so I'm like, we got to go big. And then dash. And I like, let's get fat, boy slim. It struck me, the last big Whiff and Brighton fat Boy Slim was the last big sort of global superstar that came out of Brighton, which was why Thoughts instantly went to go, let's get Fat Boy Slim on board. But it was just such a funny environment because we started with all these huge names. Fatboy Slim, Cara Delevingne, Orbital, Dave Stewart from the Arithmetic and Chemical X got them all together, all through various we're friends with a lot of people through music anyway, and Chemical let's very good friends with Kara Delevingne. And so we then march these guys into this empty network and it was a hell of a sales pitch, I tell you, because we were saying, this isn't going to be the hype that you're expecting. If you go and do this in a theorem, yes, it will be worth you probably make millions out of it, but this is bitcoin and in ten years time you're going to be revered as Legends for being so ahead of the game for doing this. So we did manage somehow to get them in, but then it was funny because there just was no one there. We were lucky that we sold, I think the Car One sold for 20 or $30,000 worth of stacks, which she gave to her charity. So that was really successful in that. We got some noise out there, but I guess I was thinking things would move a bit quicker. I got kicked out of so many reddit and different groups for going in there and trying to say, hey, this is it. This is the thing everyone's been waiting for. And everyone's just like, shit coin, shit coin to get out. I mean, I just got kicked out so many forums and just everywhere I went, the moderators just kicked me. And I mean, I can't necessarily blame them because at the end of the day, as we've said, there's this huge number of pointless coins and you know, 99.9% of them are just scams. And so you can't blame someone's defense mechanism for that. It's operating correctly, ultimately, to call me a shit coin, but I'm just in there trying to say, research, look into this. This is the way that Vitalics should have done. It kind of unfortunate. They probably had this minibus idea was at the same time or around the same time, but he just wanted to do it properly, which was another thing I was especially at the time, back in 2018, 2017, the Tether thing had been massive. There. Was this whole security thing was just flying around, and it was like, this is the right way to do it. But at the same time, the whole time that Stacks was trying to decentralize to the point where it could start bringing in the audiences, the ethereum mess was just growing. The off bitcoin, blockchain, unmined kind of mess was just growing at a rate of knots. And it's just kind of sad that didn't kind of just have that leap of instead of burning, because they always knew burning was bad, and that's for people who don't know. That's how theorem kind of started. You had to get value in there for people to stake, and mine and all the rest of it, it was burning bitcoin. And so the quicker they got that value locked into ethereum, then they got people going, okay, we've got a network here, and we're all supporting it, we're all invested. And if only you'd had the thought to just do proof of transfer, because we wouldn't have this whole mess, we wouldn't be here now. We'd all just be in that. I don't know what it would have been like, but it'd be a very different world if everything had just had just started from here. But here we are trying to do it. But yes, it feels like a really big battle now, because it was really interesting when we had that Sappy Seals thing a few couple of months ago. I think that was really interesting. It was someone with an enormous following on a theorem doing kind of follower farming or something, just trying to go out and get people to follow on Twitter, and just said, I'm thinking of moving to Stacks and everything. Everyone on Stacks flipped out and go, quick, I'll post on this guy's thing. He's got 100,000 followers a day. But what was really interesting was that was what triggered the BNS rush, because all these people that kind of I've been trying to get my voice into their forums, they suddenly just got introduced by a person who wasn't going to get shut down, and he was even trolling in a way. But suddenly these people, all it took was someone to say, there's something you can do with bitcoin. And then the cleverer of those lot looked into it and then went, holy shit, this is a really cool idea. And then it was a really amazing event, and it does fill me with confidence that we're in the right place, we're doing the right thing. But it is quite a battle going through this and actually getting everyone to kind of get on board. I was shocked by the bitcoin conference when I went out to Miami, went down to the conference on the Friday I was with Drew Falkman, and we went in and we were just instantly taken by just a funny vibe. And we'd been talking about I was going out there with a special work of art that I really wanted to get into the conference and went down there and they were just like, no stacks there's. No stacks. NFTs are allowed in here. But in the center of the conference was a huge array of screens selling Ethereum NFTs. And I was quite shocked, I was quite shocked that it was preferred to put Ethereum NFTs on screens in there and somehow put it under an umbrella of being valid at the Bitcoin event. But that was shut out. And then I got a photo, I think, of which one was it, Miami Coin or New York Coin? It was the closest we got to that conference was about three blocks away and I've got a photo of this truck with just a flatbed lorry with a Miami Coin sign on. And I kind of felt at the time that there was a bit of a bit of a there's like a kind of old boys club already in Bitcoin with these guys from I guess from Block Stream that started all this stuff with side chains and they kind of create they were kind of, in a way, the original Bitcoin accelerator, I guess. But they were going down a route of everything being federated and centralized and so now we've sort of got it from both sides. We've got established businesses who have an inferior way of operating, basically, and a business model that was always going to get swamped by decentralization eventually. Maybe they thought they'd have a bigger head start, I don't know, but now they're definitely not happy about stacks and doing it on. There was a big thing with Adam back and maneuver on Twitter. Manev was being very reasonable and Adam pack just kept going back to pre mine, pre mine and lack of Bitcoin miners, which I couldn't actually disagree with him with the bitcoin mining thing, which sounds like this new upgrade is going to allow decentralized mining, which could in the perfect world, you've got everyone in Bitcoin. Like, again, if I think go back to Vitalic, if he had done what Mane did, I think at that point the small Bitcoin community would have said, it's our job now to mine this smart contract network. So while it's just automatically assigned 1% of what you're holding to mine, we'd just be in this amazing world where this smart network is just accepted as being a good thing, but instead we kind of got to fight for that. But decentralized mining is a massive step towards that because that does allow people, hopefully to mine with very small amounts, which will be that's a game changer because that's when we can just start getting people. That argument then falls away once you've got the centralized mining, that argument goes. The other arguments were just, in my opinion, bullshit, because the whole pre mining thing, it's like, I mean, look at Bitcoin, look at him. And every successful network kind of started that's the process of decentralizing who mines it. In the beginning, it's just kind of got to be done. And it sounded like an argument of a corporation fighting against something that they know is good and know is competitive and know is worthwhile, but they're going to argue it till they're ready in the face that they're going to find some some issues with it. So anyway, yeah, it's been a long journey, but it's really nice hearing you guys tonight and seeing some new people coming on. It does feel like we're just getting into that bit where the markets have kind of got close enough to the bottom that people start kind of moving again and then some people are looking for other change while things are down, they're looking around and some people are coming here and finding this amazing network. And thanks for letting me go on, Jim. Totally, totally. Respect goes out to you, my brother. And it's funny hearing your story as well, especially yourself being from the UK. Because part of the reason why we started up Stacks London, we kind of just started off out of the blue because I've been around in the space for a minute and I've not really seen anybody talking about Stacks since, you know, the old block stack days. So when I, when I really dove in in 2020, I was like, you know, after a couple of months, I was like, well, what's going on? And I'm going to all these events and speaking to all, you know, same people and same networks, and it's like, nobody's talking about Stacks and talk to people about Stacks, they're like, you know what, Stacks? And then now go block stack. And they're like, oh yeah, block stack. You know, we remember block Stack, like. What'S going on over there right now? So it's really weird. And then there's a lot of synonymity as well, with your early story as well, because, I mean, my first real kind of, I would say, dive into learning about bitcoin was around 2013, 2014, and then when I first kind of discovered, let's say, all right, blockchain and what blockchains are and how blockchain operates wasn't until like, a year later and again, coming from a music background, my first thing was, okay, so when you said that bit about people getting paid, I swear that we literally had that same we was in the studio having that same conversation. I think everyone who got in at that time immediately, if your mind operates quite quickly, like a lot of, I think, builders minds do, you do tend to jump instantly to the ultimate solution, which is like, oh, look, here we go. Everyone in the world who has a phone now can transact with anyone else in the world. Great poverty is kind of on its way out, but now later on, you're like, yeah, we're ten years into this game now and it still feels a long way away. Even in terms of just that kind of accessibility for people. That focus really isn't on remittance, I guess it's more on certainly now it's like on people sort of surviving and building businesses and making money. But it would be great once that kind of rush gets in the same way. Like the.com bubble, it's like this massive rush and then afterwards the really useful shit sort of starts happening and hopefully we'll sort of get to that point soon when the real thing that bitcoin has to give humanity can really start working for people. Yeah, definitely. I think that's part of a lot of people's entrance into Stacks as it being stacked rather than Block Stack is that kind of frustration. I think that's where it definitely sits for me, having that frustration that you're watching this thing play out all over again and everybody's heads just in the clouds and you've got all of these new people coming in. Nobody wants to let people or teach people the actual core fundamentals. They just want to, I feel like, a feeling of they want to sell their particular idea. So I feel that a lot of projects have just completely run away with that. And again, not to say that there's not a lot of other great projects out there, let's say Blockchains and the technology and cryptocurrencies themselves do kind of provide that open medium for people to create these ideas and do these things. So that kind of what you said about walking in the room and everybody's like, we don't want to do anything different. That kind of Maxi rooms where we just want to stick with just this. That is an absolute ludicrous idea. I've said this in plenty of Maxi spaces, so if any Maxis decided to jump in there, it's no different than what I say in their spaces. At the end of the day, ",timestamp:"00:24:51-00:48:54",topics:["Stacks","Web 3"],type:"twitter_space",weight:13.500243841282398},{boost:0,date:1632355200,description:"Vincent Zhang and WhatsMiner introduction",episode_title:"The ASIC Mining Hardware Market",guests:[{name:"Vincent Zhang",profile_picture:"https://pbs.twimg.com/profile_images/1158285609196109825/fuB-e6lm_400x400.jpg",ref_id:"98e7bc98-3a3b-4ddf-9b48-5dcd78973739",twitter_handle:"Whatsminer_MBT"},{name:"Vincent Vuong",profile_picture:"https://pbs.twimg.com/profile_images/1260974518547312640/n47yvbNL_400x400.jpg",ref_id:"8390e230-e36b-4e0d-9f5d-70c6635bf3c2",twitter_handle:"BitcoinVincent"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=qKeUCNXa4Uc",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"3cb5fd13-1b10-4dc0-b8e3-f2fc0f1ec406",show_title:"Compass Mining",text:"the two Vincents are going to unload a lot of information, insights and some fun opinions on us. This conversation, I want to give you both a chance to introduce yourselves, give us a little background on sort of how you got into the mining industry and your focus on the ASIC markets. Vincent, from What's Minor, do you mind just introducing yourself and giving us maybe a brief history of What's Minor and what led up to where you are today? Yeah. So I should say good morning. So here it's midnight in China. My name is Vincent. Right now I serve in as a sales director in Watts Minor. So actually there's a small story for myself being in this industry. So before I joined What's Minor, I was working in telecommunication industry. So I worked in DT Corporation for 14 years. I sold a lot of telecommunication equipment to India. However, in the year 2018, I just quit the job, my previous job, and by chance I got joined in What's Minor. And so when I joined what's? Minor? So actually the situation of Microbity What's Minor is not as good as right now we are because though we released the most efficient minus based on 16 nanometer from TSMC, however, we were not able to get a sufficient supply capacity in the year 2018. And of course, everybody knows that the mining profit in the year 2018 is not so good. So due to these reasons, the situation of What's Minor in the year 2018 is not so good. So however, this situation get changed in the year 2019. And so myself is very pleased to join work with Microbity as Sales Director because starting from the year 2019, so we export more business chances outside of China. So we can say after I joined what's minus, our overseas market enhance a lot, probably later via the conversation, so we can share more information about What's Minor and myself. But I'm already in this industry for three years. ",timestamp:"00:01:34-00:05:06",topics:["Vincent Zhang","WhatsMiner","minor"],type:"youtube",weight:7.285317421145426},{boost:0,date:1677582e3,description:"Lucas' real dreams and goals in life",episode_title:"Ep. 514 The Future of Crypto in the Media with Blockchain Boy",guests:[{name:"Lucas Dimos",profile_picture:"https://pbs.twimg.com/profile_images/1092408696838197250/n0-St2nZ_400x400.jpg",ref_id:"9ac17e2f-49bd-4fc5-bfe5-2f380ca63574",twitter_handle:"lucasdimos"},{name:"Blockchain Boy",profile_picture:"https://pbs.twimg.com/profile_images/1602154101642592256/A0OX97CT_400x400.jpg",ref_id:"4b070a6f-bcc8-4708-abaf-cc830709600f",twitter_handle:"BlockchainBoyy"}],hosts:[{name:"Aaron Malone",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"bd103540-8c0a-4ab3-b5cd-24a3f2c43ab2",twitter_handle:"pizzamind"},{name:"Bryce Paul",profile_picture:"https://pbs.twimg.com/profile_images/1182725652794892288/QbDOKHcP_400x400.jpg",ref_id:"0d670dbf-f434-43b6-b454-8e5345d7ee51",twitter_handle:"BrycePaul101"},{name:"Pizza Mind",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"16cb01cf-9f04-45db-a440-47259b02b86a",twitter_handle:"pizzamind"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/93a6fe5b-364c-43f4-9f38-7da3e811460b.jpg",keyword:!0,link:"https://chrt.fm/track/DD9393/audio1.redcircle.com/episodes/68f31cee-f404-40fe-85d7-a406019e916f/stream.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"d266ac59-706d-4b4c-b0ca-d9ea3ae4fc34",show_title:"CRYPTO 101",text:"to be? That's a great question, and I'm still figuring out what I really want to do with the rest of my life. I just know that I really like building cool things with cool people, and I think I'm always going to do that, no matter whether it's big or small. I think it's just I have to do something. I'm like a shark. Sharks have to keep swimming or they sink. Right? And so it's very similar with me. Maybe I'll have some more time to go live in the country and be away from people for times. But no, I really like empowering people to be their best selves. That's really what makes me the happiest, is, like, I'm a very loving and caring person, and I love to see people do good things and succeed. So I would really love to get into sort of micro loans and sort of entrepreneurship guidance and maybe even ethical VCs, because I don't think a lot of VCs are very ethical. And so I'd love to do something along the lines of that to empower more entrepreneurs to have an effect in their community and environment outside of Web Three, too. I've been doing micro loans on the platform called Kiva for many years, and I think it's super cool and needs a Web Three version. Yeah, I've actually never heard of Kiva. Tell us a little bit more about what micro loans are. And has that been a way that you could generate passive income or anything? No, it's just mostly a tax write off for really rich people. It's not like super well known, but you get to actually empower entrepreneurs in other countries. Oh, there's Jonah. Jonah. I'm on a podcast. Oh, he's bringing stuff. Jonah. What's up, brother? Thanks, bro. No, he's one of my fantastic team members over here. Thanks, bro. I wish I got ",timestamp:"00:22:22-00:24:01",topics:["Lucas Dimos"],type:"podcast",weight:71.21921050996978},{boost:0,date:1625958277,description:"How Bitcoin helps increase business competitiveness and change business model",episode_title:"WHY ARE WE BULLISH? Brandon Quittem, Timothy Kim, Shinobi, Steve Barbour ep185",guests:[{name:"Brandon Quittem",profile_picture:"https://pbs.twimg.com/profile_images/1502403738861940736/9J5VuTye_400x400.jpg",ref_id:"65512044-7810-4ece-8156-5519e072cb66",twitter_handle:"Bquittem"},{name:"Shinobi",profile_picture:"https://pbs.twimg.com/profile_images/1526590501742428160/0Y5H2uJK_400x400.jpg",ref_id:"a05dface-33a7-400d-a749-99efe0d96118",twitter_handle:"shinobi602"},{name:"Steve Barbour",profile_picture:"https://pbs.twimg.com/profile_images/1592714173469065216/q8kXPyQI_400x400.jpg",ref_id:"63a731b8-4759-4360-9e9d-d66f884e12d8",twitter_handle:"SGBarbour"},{name:"Timothy Kim",profile_picture:"https://pbs.twimg.com/profile_images/1569681307029934081/2s_nWYo__400x400.jpg",ref_id:"e0323798-c70f-4cc3-96ff-87bab50c2313",twitter_handle:"realtimothykim"}],hosts:[{name:"Ben Perrin",profile_picture:"https://pbs.twimg.com/profile_images/1181715113226596352/ipGVEcYH_400x400.jpg",ref_id:"e6b013ef-178b-4b41-95ee-423148a3dc3a",twitter_handle:"profbenperrin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/37027401/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2021-6-10%252Ffb6d5638-4579-5707-9740-0e586c980ba7.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"fe680ae3-835d-492f-b664-7d645d02a99f",show_title:"BTC Sessions",text:"Can I pivot into why I think why I'm bullish on this episode? Yeah, man, let's do it. As I'm on my fourth shot of Ryan, I'm about to lose any coherency on the same topic. I just love seeing any startups, especially any Bitcoin related, like pro bitcoin related startups do well. One of my favorite follows on Twitter is like, Tahini's Restaurant. Like a little franchise that's like big into bitcoin and you know they're going to kill it because just having bitcoin in your treasury, it makes it so difficult for any other competitor, to any other competitor, they're a restaurant business. Any other competitor that's in a restaurant, that's a tough freaking market to be in. Like the restaurant business, maybe bitcoin mining is like the only harder market because it's so easy to get into. But like, restauranting, it's an easy business. The low barrier to entry, tough margins. But Tahini, I don't know who else who's a direct competitor in their area. I think they're based in Ontario. It's probably a million Sharma places that do like what Tahini does. He's going to fucking kill those guys. They're going to kill all their competition because they might have the exact same profit margin. They might have at the end of the year, 10% profit, just like every other competitor in the area. Sort of like plus or minus a few percent. Some guys in the negative, whatnot, the team is going to kill them. They're going to kill them because they're going to have this bitcoin treasury. And I was saying that locally on a local podcast. And Lloyd, I got this small wheel field business we're getting into motors and stuff. Aside from the bitcoin mining focus that we have, what we're doing is actually not that different than what a lot of oil service companies do. And I said on this podcast locally, I'm like, my competition will have no chance to compete with me if they don't adopt a bitcoin treasury. And they don't even have to build bitcoin mines. All you have to do as any small business owner is convert a little bit of your treasury and your profits into bitcoin and to hoddle it and to speculate properly on it. And you're going to crush your competition, like your feet of competition. So my bullishness that I wanted to bring to this episode is like. I think that small businesses and true entrepreneurs. Not Fiat entrepreneurs. Not the guys just going out and trying to get raising money from these VCs and not really building anything. But actually true entrepreneurs. People going out and starting small businesses. I think we're going to see finally a true economic boom in small businesses that we've seen suppression over for over 100 years. Like over 50 years for sure. Ever since. Like the full on 1971 Fiat standard. But when I showed up on the show, I was driving. I do a lot of driving around Alberta, Saskatchewan, you know, Alberta, well, Sessions, we go through all these small towns. Every small town is fucking same. And I think about it from like, the bitcoin perspective. All these small towns are identical. They have the same franchises. They got the Mr. Lube. They got, like, the petro Canada. They got gas station. They all got franchises. There's no fucking small businesses anywhere. They're all dead. They're dead. Everything's a franchise now, right? Which in and of itself isn't a problem. But the fact is, these people are just licensees of a business model. They're not finding their own supply chains and building a small business. They're going out and becoming a licensee of a big Fiat, like a big corporation that ends up benefiting from the Fiat. ",timestamp:"01:23:33-01:27:13",topics:["business model"],type:"podcast",weight:7.273831367495893},{boost:0,date:null,description:"The future of payments on Bitcoin and on the Lightning Network",episode_title:"The Orange Sun 🌞 VISA, MasterCard & #Bitcoin #BOLT12",guests:[{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"~₿ Maxi~",profile_picture:"https://pbs.twimg.com/profile_images/1446241859651637250/i67F3y9p_400x400.jpg",ref_id:"ad997ae7-0726-431a-9f72-82da091c0658",twitter_handle:"fede0891"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"FireBurs†s",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"cda1d3ad-dd80-458b-a5fb-a28861df10a7",twitter_handle:"FireBursts"},{name:"Nikolai Tjongarero",profile_picture:"https://pbs.twimg.com/profile_images/1578458155964682274/_SzDxkAJ_400x400.jpg",ref_id:"821ee040-2267-454e-a59a-92da51568afa",twitter_handle:"BitcoinNaijaShw"},{name:"ブランドン",profile_picture:"https://pbs.twimg.com/profile_images/834861311762649090/N0KAP4zH_400x400.jpg",ref_id:"3d41531d-6a59-4771-81f9-0924b4c02561",twitter_handle:"blario"}],hosts:[{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/94a86a32-91c2-4717-b5cb-b36cef925776/38decc02-c922-4c1d-a605-7cd54c91a01d.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"1984e7b9-23f1-4ef0-8fcb-deac4ef23cc7",show_title:"Satoshi’s Journal",text:"Yeah, and that's one of the tools we're working at Satoshi Journalist. We've always paid our writers in Satoshi's, but once these QR codes become static through both twelve, we'll have the ability for all content creators to be have their associated lighting address prominently displayed next to their profile. And people want to tip them. They can be tipped. I mean, that's what basically the future is going to be. And of course Twitter is going to do the same thing. I listened to a long interview with Elon Musk when he acquired Twitter and he mentioned that he's going to allow content creators to be paid. And so I bet you he'll probably integrate the Volt twelve static QR code in such a manner where all content creators will have their respective QR code. And if they have good content, then you can send them tips, or if they don't, then you don't send them tips. And then what Olu said, it's going to catch fire because as soon as Mastercard and Visa are undermined by the fact that people can simply send Satoshis to other people instantly and basically for free via a static QR code, you don't need to freaking swipe cards no more. You don't need to freaking do all this stupid legacy system, fiat minded crap. You just get the QR code, have it into perpetuity as long as you want it, and boom, boom, boom. So the implications are huge from a game theory standpoint, although it might not happen right away if Visa and Mastercard aren't watching their back, so to speak, they're going to be like Blockbuster. And then you have a block stream, of course, is working on it. Another interesting angle is just imagine all these card issues, right? They integrate with Lightning because they want to catch up with technology. Don't forget, technology is always ahead of regulation. Regulation will have to catch up to technology. And these other companies that would actually make interoperability with Lightning even more accessible and easy with what they already have in their system, will be the one to accelerate this adoption. But this is how the game theory may even play out more interestingly, once they integrate with both twelve, because of the technology and the potential risk to them not integrating with it, they begin to see more adoption, right? And usually they are used to texting their people, their users. They have so much user base, they have so much merchants, so they just apply a little more fees. That's how to generate revenue on the cards. And now they've given many financial institutions the opportunity to print their own cards, right? So you go to the bank, the bank prints instant card for you. You just take the card and you start swiping once you leave the banking off. Or you just go to the nearest ATM, even, right at the banking.org, and you start swiping. That's my diamond. My daughter, she's just purchasing. My point, she's a bitcoin, a little bitcoin. And the card issuers, their competition will start from the people that can just begin an SME and start to create cards that you can spend lightning on. You do not need Mastercard, Visa card integration. That's where the competition will start from. The competition will not be a bigger company. It will be small companies. You can't you see all these bitcoin companies, they're going to come in droves and just small, small companies. SMEs everywhere will now have the ability to make cars that we just QR code you can actually tap and go. I think it's going to be fantastic. If you can use a platform that will charge you ten times lesser than what Mastercard and Visa is charging you right now, you save a lot of money in one year. And in Nigeria, it will cash fire ease in Africa. It will catch fire ease once people realize, because we are the experiment for the west, for Swift, for Mastercard, for Visa. Go and check their database. Africa is where the number is. Nigeria is number one. South Africa, Kenya. So the market of many of these companies is in Africa. 1.5 billion people will be 3 billion people in the shop field for 30 years. And you have 500 million people. Internet penetration is already more than 100 million people as we speak. You can access Internet with USA. So it's a fantastic thing to have the opportunity to do. Charitable effort. Just imagine the air drop you can do with lightning, static curl code to the entire nation, and you're not even spending much, but you're on boarding lots of people at once, and you're not curing too much fees. You can't do that on chain. You're going to cure too much crazy fees. I've tried it over and over again. But on Lightning, you're giving it away. You can give out a hundred thousand satoshi to 100,000 people. Wow. And you probably wouldn't have spent nothing with one QR code. And repeatedly you can keep paying it. You can do a minus A toshi. This gonna be fantastic, dude. I mean, more and more you talk about it, I get more and more excited. But one thing that's kind of interesting is once Visa Master become obsolete from Bitcoin and lightning, nevertheless, there'll probably be some iterations of the legacy system around. But once we get to the point where those individuals or sorry, those companies go obsolete, since you're in the payment sector, you know, the answer is this probably better than most is. I mean, for them to make money in the future, they'll probably end up running their own lightning node kind of deal and trying to make money through running transactions to their node because they would provide liquidity to the network and that would be one method by which they could make money. There are going to be other ways, but do you foresee them maybe becoming lightning node operators and taking I mean, I don't know how profitable that is, but what do you think about that? I'm not very active in this area. Portland is working right now, so I don't think he can talk. I would have suggested maybe a king can take this part, but I think it's very technical. I may be able to say some terrible part of it. Like I've already said, it's just going to be interesting when I talk, but people may not be able to see it insightfully from the length of somebody who puts together the code and understand how the pipe is supposed to look. I feel that the decentralization of nodes in general will create pipes of money. Our partner used the word pipe the other day when we're having a conversation and I could get it instantly because that was a very glaring example. So the bigger the pipe, the bigger the transactions I can pass through that pipe. I think it would be more interesting here because bitcoin is already everything. There will be proof of stake to a level, but it cannot have power over proof of work. It's just going to be proof of stake basically in the area of, oh, I got a bigger pipe, so bigger transactions come my way. And you can't query that because you don't have that. You know how I mean? I think people will run lightning nodes, but you're going to still have to have enough bitcoin to be able to do that. If you don't, then your transaction capacity will not be as much. Banks will run nodes, community microfinances will run notes. I mean, I think this is going to basically change regulation general, because it's an opportunity for revenue generation for the government. If I look at it from a public private partnership perspective, what I see is many opportunities for taxation for the government. So if the government is wise, you can't you shouldn't bitcoin it gets on now the quicker you can start to accumulate SATS and maybe some bitcoin in some very rare cases, you give people international money transfer patrol license to do legitimate bitcoin transaction in your country. You know how I mean? Because whether you give them or not, it's already happening. It's under your radar, but you can't stop it. Why don't you allow people run nodes? Why don't you expand that economy in general so you can see it, let it be transparent, but it's already decentralized. People would do it with or without you. So a lot of people would be able to run a node, but you know, the space needed for that purpose becomes larger. So I don't know, I think it's going to get like five terabytes in some decades and I don't know if it's going to be cheaper to get the necessary tools you need for that or it's going to be more affordable. Depends on how the world is. But in an imagine world, I want to believe that things will get cheaper because bitcoin will price stuff and in fact, once you have some, you can actually confidently spend and acquire what you want even more better than operating on the fiat monetary experience where things are very difficult. Even when you put the proof of work and you don't get to be paid what you deserve, you get cheated and somebody to come and tax you. They come and tax you for the services they don't offer you. So yeah, a lot of people want to know it depends on how cheaper it is in the future or affordable. But I think I kind of answered it to the best of my knowledge, jeremy, if I didn't. Yeah, no problem. Hey. Good morning, Oakland. ",timestamp:"01:42:06-01:53:40",topics:["Bitcoin Payment","Lightning Network Payment"],type:"twitter_space",weight:7.166842460632324},{boost:0,date:null,description:"The sovereign individual's role in Bitcoin and vice versa",episode_title:"Bitcoin Charlotte Book Club - Sovereign Individual Ch 1-7",guests:[{name:"Bolt",profile_picture:"https://pbs.twimg.com/profile_images/1352721439879786496/wfevZ8bG_400x400.jpg",ref_id:"b165e497-f255-4ce5-9762-30c90dcf776d",twitter_handle:"Bitcoin_CLT"},{name:"Victor",profile_picture:"https://pbs.twimg.com/profile_images/1519726025013350400/GHxSzgA3_400x400.jpg",ref_id:"d91fff8d-e4c6-4aeb-9f32-021e4a4ff9a6",twitter_handle:"victorwong"},{name:"George",profile_picture:"https://pbs.twimg.com/profile_images/1173474608856608768/vEBnPUdm_400x400.jpg",ref_id:"5946bdf6-8feb-43aa-b2ca-46b2944b0572",twitter_handle:"GeorgeNotFound"},{name:"Mark",profile_picture:"https://pbs.twimg.com/profile_images/1511102924310544387/j6E29xq6_400x400.jpg",ref_id:"c8cd0c95-c105-41c4-8fae-9dbfa76d84f2",twitter_handle:"markiplier"}],hosts:[{name:"Jacob Parrish",profile_picture:"https://pbs.twimg.com/profile_images/1552345395195412481/bgjme0Jh_400x400.jpg",ref_id:"476161bc-6773-4695-845f-15fe87affd67",twitter_handle:"Jacobp102"},{name:"Liz",profile_picture:"https://pbs.twimg.com/profile_images/1256650517549211648/cHwvj5o9_400x400.jpg",ref_id:"6538f07d-01e3-43c7-9068-55f3ec737d65",twitter_handle:"LIZ_Y2K"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/fe6bdbce-e91d-43cf-ab33-0e98bffabecc.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/3a4d250d-90a6-417a-a6b4-0f701bdd9e2e/daa90ea7-aa7e-41f5-9fec-7e513ca75667.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"5efbc2c3-e67a-4b16-9c9d-285bdd37e906",show_title:"Bitcoin Charlotte",text:"One of the things that I thought was really cool, which I never thought about with Bitcoin, this kind of goes into violence as well as he or she will even be able to act after death. For the first time, an individual will be capable of carrying on elaborate tasks even if he is biologically dead. It will no longer be possible for either an enemy at war or criminal to completely extinguish the capability of an individual to retaliate by killing him. This is one of the more revolutionary innovations in the logic of violence in the whole history. And so that really gets you to start thinking, what if someone came to get your money and you go, don't kill me, because if you kill me, I have money that will be paid to other people to come find you or your family. That would be pretty scary. Would you come after me then? Let's see. I'm not the best to have in dialogue with myself, so I'm going to just keep on looking around. So I got to page around a page 186, I think. So I had about 40 pages left to reach the desired area, which goes to the chapter eight, which starts with the end of egalitarian economics. But yeah, I think the book really starts to just get exciting for me. So I'm excited to move forward at this point, but it is a tricky one to get through if you're not an avid reader. But I'm getting better at it. Trying to think of some other really good points that I liked about this book. Unions. That was the word I was thinking of before. Unions were a really interesting topic in this book, and I want to find these quotes on some of it that were really cool. But the working so the idea with unions in this was they could use violence to get what they wanted. And that's one of the big turning points, too. It doesn't make much sense for unions to form anymore because companies do not have to be in a central location where they have all this manufacturing going on, and there's a lot of valuable stuff there that they know how to use. The worker simply sees the factories and ransom them back to the owners. The tactic of great simplicity, and one that in most cases, was profitable and fun for those participating. One sit down striker wrote, I'm having a great time. Something new, something different. Lots of grub and music. Maybe someone requested we got bro. So I was listening to the prior unions today, and so they were saying that those don't really exist anymore. Correct, because when I was working my government job, I was part of a union, really, and people would definitely abuse it. You could say something happened, and then the union would come and support you, basically, and you would kind of get whatever you wanted. How did the union have their power? What do you mean? How are they able to demand things? Well, you had someone from the union come and support you if you said this was like this one lady I worked with. She said she was getting harassed at work in our signal shop. So then the union came and like, an attorney, almost like it was an attorney, but someone had the union to take it her side of the story. And then it was kind of funny because we were all in the union. So then they had to get all of our other sides of the story, but they had to support us, too, like any people she was complaining about. I got you. Where was the union from? It was a union. You work for the DLP. I should know that, but I don't remember that's. Okay. How's it been going? Oh, we're just kind of monologuing over here, and I can't remember much of the book. How about you? How's it going? It's all right. Just cooking some steaks and pizza. The union is UFCW local 1994 Montgomery County Employee Union. That is a voice for working America. I'm not familiar. Mark, did the sovereign individual talk about unions? Yeah, quite a bit. We're talking about how violence, the use of violence or union is basically saying, hey, we're not working and we can also run the factory. We run the factory, we know how to do it, and they can hold the factory hostage. But that's basically dying away because things are getting more decentralized with the information age. Right, that makes sense. I listened to the book, actually, and I did it a while ago. I don't exactly what you guys discussed. I found it to be really good. I definitely didn't capture near as much of it as you do when you read it because you get through it a lot faster. The time you're committing to the book is a lot less. But yeah, it's so much to tackle. I mean, you could have long conversations about any small parts if you really dive deep into them. So I don't know if there's any particular subject you guys are talking about, but we have many people in here. But if there's anything interesting anybody wants to talk about. ",timestamp:"00:21:00-00:27:56",topics:["Sovereign individual's role"],type:"twitter_space",weight:7.131711006164551},{boost:0,date:1671720944,description:"@mattyicesensei and @johnmichaeldrew's opinions on Web3",episode_title:"Café ₿: #Bitcoin News & Bitcoin Day w/ @Bitcoindayio",guests:[{name:"@johnmichaeldrew",profile_picture:"https://pbs.twimg.com/profile_images/1512897699942744064/PuRU3K8P_400x400.jpg",ref_id:"6b72ee7f-52ef-4847-96ed-78ea09e3f19b",twitter_handle:"johnmichaeldrew"},{name:"@mattyicesensei",profile_picture:"https://pbs.twimg.com/profile_images/1607138483579101186/0qm0xaCF_400x400.jpg",ref_id:"286abd3b-cecc-4ec5-bf88-2a9fd5393083",twitter_handle:"mattyicesensei"},{name:"@Bitcoindayio",profile_picture:"https://pbs.twimg.com/profile_images/1493098733608837121/tLI-XTwl_400x400.jpg",ref_id:"6a87699e-7a27-4928-89e8-d884f1458bf9",twitter_handle:"Bitcoindayio"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/83744e68-b563-4004-b52a-cfdfff89748f/12c9b9f2-fbce-4784-9404-88a574baa762.mp3",node_type:"clip",pub_key:"",ref_id:"f80dd079-1a9d-4bda-b8dd-81c05d203533",show_title:"Swan.com",text:"Thank you, John. Maddie, I was just wondering, I'm just kind of looking through your stuff, recent stuff. Can you tell me your opinions on web three and products like step in, for example, and just where are you on ethereum? Where are you on crypto? Bitcoin? What do you think about web three in its future? This can be for either of you, actually. Alex, are you going to allow that on this? I was going to ask him. Maddie's very knowledgeable. Maddie's knowledgeable. I'm sure he can answer. But you want us to answer that, Alex? Yeah, we do this thing called the crucible on this show sometimes where sometimes there's hard questions. So I don't mind. Go ahead. Sure. Let me take it from here then. Me personally, I use different platforms, different things. I like to gamble. I like to do different things. So where I'm at with web three, I'm fully bullish web three, I'm fully bullish bitcoin. Bitcoin is my savings. It's where I store most of my wealth. When I like to gamble, I use stuff on ethereum. I play different metaverse games. I do all sorts of stuff. So for me, there's a use case, there's a value there. It's not anywhere near the same value as bitcoin. But, yeah, I have fun with all sorts of stuff. I like to gamble. I like to go to the casino. I like to do all sorts of stuff. So with a small portion of my wealth, I gamble and do that kind of stuff. Does that answer your question? When you say gamble, do you mean literally gaming, or are you talking about purchasing shit coins and then gambling on return? Oh, all of the above. So quite literally, I go, like, for example, if you use a theorem, if you've ever heard of the metaverse, if you go into, say you go into central land, you can literally go to a casino into central land and gamble. So I like to do stuff like that. There's all sorts of different things you can do gamble for returns. But for the most of my wealth, I'm just dollar cost. Averaging and stacking stats, but there's a lot of different fun things you can do out there. Most of it, probably 90% of all of it is scams, ponzi schemes, all sorts of different stuff. But there's definitely things that I find value and personally, aside from bitcoin, although I just think they're different things. Right. You don't store all your wealth and Bakarat casino chips, but you might like to go play and gamble and do different things. So that's the way I like to look at it, if that makes sense. ",timestamp:"01:56:23-01:59:20",topics:["Web3"],type:"twitter_space",weight:16.6951974581924},{boost:0,date:1667347200,description:"The business model of Amboss",episode_title:"Meet the Makers: Anthony & Dolu",guests:[{name:"Anthony Potdevin",profile_picture:"https://pbs.twimg.com/profile_images/1252630766909079555/qf-qI5EZ_400x400.jpg",ref_id:"da0a9fdc-eda1-4e07-8341-2100428065d1",twitter_handle:"thunderhubio"},{name:"Dolu Zerologin",profile_picture:"https://pbs.twimg.com/profile_images/1577320325158682626/igGerO9A_400x400.jpg",ref_id:"4c228a2d-4f9c-4bbd-bf49-d2be3159c6a4",twitter_handle:"Dolu_Web"}],hosts:[{name:"Zapp Ed",profile_picture:"https://pbs.twimg.com/profile_images/1519990234070540288/adGqlFoj_400x400.jpg",ref_id:"bbe7cf1d-cd8d-4d36-926d-76f41b775fbb",twitter_handle:"zapp_ed"},{name:"Moritz",profile_picture:"https://pbs.twimg.com/profile_images/1452933125743460360/5xkRoFj7_400x400.jpg",ref_id:"e23e282d-82b3-4c9d-859c-c1c7f41eef84",twitter_handle:"getAlby"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/965489b4-a414-4fd0-ab8c-55911b1596aa.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=wiIzexAc2gs",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"7ef24d02-66fe-4872-b1f1-ea144bfcaf5c",show_title:"BOLT FUN",text:"model of Ambulance today? Yeah, so this is a very interesting point because a lot of feedback that we get is like you're in this growth phase, don't charge anything. Just try to get as much users as possible. And while I think it is in a way correct, like we should be looking to get as much users and as much feedback as possible for our products having a price for the different products, which at this point the price is very minimal. The space is very small. Like the lightning. Space is very small. And what we charge for our product is also very small. So overall revenue still is very small. So it's more of like a symbolic thing. But what it helps us is see where there is interest or where there is value that people are willing to pay for some services, right? For example, if we were to do a magma our marketplace and have everything free. We wouldn't really know if people are using it because it's useful to them or just because it's free. People love free stuff. If it's free, they will use it even if they don't really need it. If you see enlightening with rebalancing, people rebalance all the time and if it costs them almost nothing, then they just do it because they want to, not really, because it could be something that is useful to them. Right? So adding this price point on top does help us see like, okay, there's interest from the community to further expand this service. They do see value in it. Let's maybe put more focus towards that part. And in terms of business model right now for us, we have ads on our home page. We focus on Bitcoin and Lightning ads and then we have subscriptions that you get some additional perks you can personalize further your node page you can add like a node and then for the more analytics interested people there is time series that they can access like further get further insights into what is happening around nodes or around the Lightning space. In general, for us, it's really about experimenting. So we're trying out all these different revenue models, like figuring out where people see value, where they're willing to give us some stats to improve their experience or have something nicer or more data or something that gets improved for them. Yeah, thanks a lot for sharing this. I think it's very, very encouraging also for new developers in this space to learn from you. And I think people should take the time to experiment and learn as much as possible. And I'm also curious to learn from you Dulo, what experiments or what experience also led to the most recent project zero lock in. Can you share some history on that? ",timestamp:"00:16:35-00:19:57",topics:["Amboss","Lightning ads"],type:"youtube",weight:7.334451631469231},{boost:0,date:null,description:"Bitcoin News for December 20th, 2022",episode_title:"The Orange Sun 🌞 Interview with Nzonda Fotsing Sr. #Bitcoin",guests:[{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"Funsho Jimoh",profile_picture:"https://pbs.twimg.com/profile_images/1600143435775856641/uqgmtT23_400x400.jpg",ref_id:"a237ffb0-792b-484e-b12f-65a2b679eaf1",twitter_handle:"fnicencool"},{name:"Heritage Falodun",profile_picture:"https://pbs.twimg.com/profile_images/1510397558652350469/jYOl00tU_400x400.jpg",ref_id:"b2bcc65a-b060-4dbe-b9ac-a7d64a11d2ac",twitter_handle:"herrytheeagle"},{name:"Nzonda Fotsing Sr",profile_picture:"https://pbs.twimg.com/profile_images/1458565804291670016/XaLi8e6a_400x400.jpg",ref_id:"53fe4486-5ef3-4988-8ada-47c3cb1c2d51",twitter_handle:"BitcoinSophist"},{name:"ROB",profile_picture:"https://pbs.twimg.com/profile_images/1605484577669074946/CkYjFUxH_400x400.jpg",ref_id:"25c5f080-fd07-4b37-9014-7fc05419edce",twitter_handle:"robertlamonta15"}],hosts:[{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/e4a700c7-f311-4270-be71-e2783252be6c/d4cb7ccf-f7e8-4071-a74b-943cc09fd967.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"ed128fbb-3ad8-4d26-921c-495edfda3cbd",show_title:"Satoshi’s Journal",text:"So as soon as she comes up, I will put the focus and landlight on him. But the first thing I have in the nest is I try to let you up top. Tiki. I'm not sure what happened. I'll send you an invite. So, bitcoin sapiens, he's been on a roll these last few weeks. You could tell he's taking some time to think out some really good quotes. And this quote he says, I think I'm here. Yeah. Okay, I'm up. Hey, what's up, tk? Yeah, it's showing on my end. Like, you know how it gets louder when you come to speaker? It got louder. So I assumed that I bumped up to speaker, but then I look and I'm still listening and I have mike. I'm like, what the heck? That was weird. Yeah, I don't know. That is weird. I'm going to share the nest or share the space now. Okay. So bitcoin sapien says, a common misconception is thinking bitcoin is the first iteration of a new tech, when in truth, bitcoin is the final iteration of a dream that took decades to achieve and includes the hard work of incredibly smart people from all around the world. And that's a very good point to make because a lot of people think that bitcoin was the first cryptocurrency and it was the first iteration of an innovation. But bitcoin came upon the hard work of many cryptographers, engineers, scientists, mathematicians, just people in general trying to study how to get a digital money that was totally out of the hands of government. And so up until bitcoin, many people tried many different things. And finally, satoshi nakamoto was able to put together an iteration of all the things that had been done before him or her or them and come up with bitcoin. So I like that quote from bitcoin sapiens. It's a good one. The next thing I have up here was another quote, this one by Jeff Booth. He says, trying to measure a non linear system. The economy, like a linear system, ensures you miss small changes in conditions that lead to critical states, which also means that you might dramatically underestimate the risk. Of said system bitcoin. Yeah, I think a lot of people try to think that economy is a linear system. And they use these linear metrics to try to measure a system that you can't measure on a linear basis. One thing like the CPI, we all know that's also known as the CPI, the Consumer Price Index, is a basket of weighted goods and services that people, that the economists use as a means to try to gauge what inflation is. But that's their linear way of trying to measure something that's not linear. And that's just one metric of many that economists try to use to measure an economy. I mean, it's almost like it's using the wrong tool, basically. If you have a system that has so many variables and it's really what it comes down to. It's such a complex system. How do you measure such a complex system? How do you try to think just in your human body right now? How do you measure all of the complexities that are happening in your body? How are you to measure every freaking neuron that's going in your head right now? Just back and forth, back and forth, exploding, firing off information, the blood going through your veins? How do you measure that? The pumping of your heart, the treble of your voice? You can't measure the human body with linear metrics. The human body is a complex organism. And I implore anybody to try to measure the human body using a linear metric. So that's basically what Jeff Booth is saying. The economy is a living organism that has so many variables, and if you're trying to measure it with a linear system, then you're going to miss a lot of he says, small changes and conditions. I'm thinking you miss big changes. Anyways, that was a cool quote. I liked it. The next thing I got up here is, ",timestamp:"00:05:39-00:11:10",topics:["Bitcoin News"],type:"twitter_space",weight:6.58552348613739},{boost:0,date:null,description:"Interesting predictions from the Sovereign Individual",episode_title:"Bitcoin Charlotte Book Club - Sovereign Individual Ch 1-7",guests:[{name:"Bolt",profile_picture:"https://pbs.twimg.com/profile_images/1352721439879786496/wfevZ8bG_400x400.jpg",ref_id:"b165e497-f255-4ce5-9762-30c90dcf776d",twitter_handle:"Bitcoin_CLT"},{name:"Victor",profile_picture:"https://pbs.twimg.com/profile_images/1519726025013350400/GHxSzgA3_400x400.jpg",ref_id:"d91fff8d-e4c6-4aeb-9f32-021e4a4ff9a6",twitter_handle:"victorwong"},{name:"George",profile_picture:"https://pbs.twimg.com/profile_images/1173474608856608768/vEBnPUdm_400x400.jpg",ref_id:"5946bdf6-8feb-43aa-b2ca-46b2944b0572",twitter_handle:"GeorgeNotFound"},{name:"Mark",profile_picture:"https://pbs.twimg.com/profile_images/1511102924310544387/j6E29xq6_400x400.jpg",ref_id:"c8cd0c95-c105-41c4-8fae-9dbfa76d84f2",twitter_handle:"markiplier"}],hosts:[{name:"Jacob Parrish",profile_picture:"https://pbs.twimg.com/profile_images/1552345395195412481/bgjme0Jh_400x400.jpg",ref_id:"476161bc-6773-4695-845f-15fe87affd67",twitter_handle:"Jacobp102"},{name:"Liz",profile_picture:"https://pbs.twimg.com/profile_images/1256650517549211648/cHwvj5o9_400x400.jpg",ref_id:"6538f07d-01e3-43c7-9068-55f3ec737d65",twitter_handle:"LIZ_Y2K"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/fe6bdbce-e91d-43cf-ab33-0e98bffabecc.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/3a4d250d-90a6-417a-a6b4-0f701bdd9e2e/daa90ea7-aa7e-41f5-9fec-7e513ca75667.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"1ba72c1d-ff22-4572-ad24-8171bfce9de3",show_title:"Bitcoin Charlotte",text:"I guess that is hard for me to get through. But when they talk about what they predicted happened in 2000, I mean, they weren't right on that, correct? Yeah, I think the reality of that is there were some really interesting predictions that were right or close to right. There's plenty of things that weren't right, but anytime you're predicting the future, if you're right at all, it's usually pretty impressive, especially with the way technology is and how things change, it's hard to predict about anything. So I think they made some pretty bold claims that were shown to be pretty true. And I think that's what people get attracted to when you kind of look back on it and say, wow, they're actually right on some of these things, whether it's digital currency or they even reference pandemic and how the state will control people. And there's just so much overlap with the reality we're living through. I definitely find that stuff interesting. I already knew all that stuff before I read it, though, because I've been talking about so much on podcast and things. You're just so smart, bro. Well, a lot of people talk about especially Robert Breedlove. He references the sovereign individual a lot, so if you're listening to his podcast, you're going to know a lot of that stuff. These authors take in a ton of information and I do kind of like how they seem to make the best logical conclusion from the information. There's bias here, of course, but they really analyze all these things. They take in a lot of different authors and they look at what they wrote and what they think is wrong about what other authors wrote and they cite all those things and kind of go through that and a journey with all this. And it is I do like that part of it. It just seems like it takes quite a while to get through some of those points. But mark so what we started with was the gist that I got from this book was those in control of violence. Where violence is incentivized is basically how you can predict what's going to happen in the future and who's going to be in control. Whoever has the best leverage on violence. So they're reading part of the book. They're talking about the state didn't have any really control because there were nights. And the nights because of some of the metal workers and stuff, made certain improvements to the horses and forget about the stirrups and something else to make them just badass soldiers. And one night can take out like 20 guys or something. And so if you had a group of that, you can basically go in, pillage and go anywhere you wanted and do what you wanted and no one else could stop you, not even a state. But they kind of lead you through that, through all those things. And I was wondering if you got that from listening it from it, if it was like they seem to be the theme. The people control it. I'm saying that monopoly on force or something like that. Yeah, I think are you talking about just how technology brings a lot of it continues to show that that monopoly gets weakened and the power to individuals get strengthened. It can go both ways because technology can be used in either direction. I know they talk about that quite a bit. I guess I'm talking about the incentive for violence. So before agriculture, there was all these groups and every day they had to go out and find food and bring it home. They're very busy dealing with that and they couldn't store food for that long. So the incentive to go and take out some other village wasn't that great because they didn't have a lot of stuff and they had to keep themselves alive anyway. So once agriculture wasn't developed, all of a sudden a lot of wealth started to become available, which then made it so there was something to steal. So then you could go then it made sense. Oh, if I become a violent person here, I can get a lot of riches or a lot of food or a lot of whatever. That kind of leads all the way into the nation state to where we're at now, where violence can be incentivized because you can actually take over a lot of stuff. That's what I'm getting at. Which leads to Bitcoin, where we talk about this a lot, where storing your money the proper way with Bitcoin, with cold storage or multisig makes the incentive for someone to come steal it very small because you got to go through so many hoops to make that actually happen. Yeah, I 100% agree with you. The incentives in a fiat based system and basically throughout all of history, except for a few periods of time when gold worked pretty well, of course you could still steal it and you could confiscate it, but at a different time with different ways of doing, forcing people to give things up and stuff. You could secure something physical like that pretty good and that provided people some way to store value and protect their property rights, really, and their wealth. But it obviously has major issues and failures, just the physical realm. And then bitcoin solves that by creating an uncomplicated property. And it seems that they definitely dialed into that some in the sovereign individual that will be a natural evolution of humanity because they've recognized this problem with the incentives, which is basically what you were saying. It's inevitable that those things are going to happen because humans were incentivized to gain that power and to control people either through what they thought was best for the people morally or immorally and then eventually they would abuse that power and that brought us to where we are. I think that makes a lot of sense. I think another thing where they just use their philosophy and all their research and hard work to really dial into some things that are really important that a lot of people don't understand on just human nature. ",timestamp:"00:27:58-00:34:52",topics:["The Sovereign Individual predictions"],type:"twitter_space",weight:6.520025253295898},{boost:0,date:1647576e3,description:"Introduction - How [[Bitcoin UASF]] went down, [[taproot]] lot=true, speedy trial, [[small blocks]]",episode_title:"How Bitcoin UASF went down taproot lot true speedy trial small blocks",guests:[{name:"Luke Dashjr",profile_picture:"",ref_id:"c3b2367f-2863-421b-8b2c-c093423f0eaa",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b79a3eb8-bcd0-4338-b979-d32aef360785.jpg",keyword:!1,link:"https://www.youtube.com/watch?v=rspXF6Gp3-g",node_type:"clip",pub_key:"",ref_id:"b1eabcd8-8d00-4950-b264-f4f2741ca3a7",show_title:"Stephan Livera Podcast",text:"",timestamp:"00:00:00-00:03:40",topics:["bitcoin uasf","taproot","small blocks"],type:"youtube",weight:6.440371671951619},{boost:0,date:1647576e3,description:"[[Small blocks]]",episode_title:"How Bitcoin UASF went down taproot lot true speedy trial small blocks",guests:[{name:"Luke Dashjr",profile_picture:"",ref_id:"c3b2367f-2863-421b-8b2c-c093423f0eaa",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b79a3eb8-bcd0-4338-b979-d32aef360785.jpg",keyword:!1,link:"https://www.youtube.com/watch?v=rspXF6Gp3-g",node_type:"clip",pub_key:"",ref_id:"a61c7685-556b-4886-8908-fd0ead4dc1f2",show_title:"Stephan Livera Podcast",text:"",timestamp:"00:43:55-00:00:00",topics:["small blocks"],type:"youtube",weight:6.440371671951619},{boost:0,date:null,description:"Cory Klippsten and John Ely's words on the Bold Bitcoin credit card and Bitcoin space",episode_title:"Café ₿: Bitcoin Credit Card w/ @BoldBitcoin @John_ely_21m",guests:[{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Wicked",profile_picture:"",ref_id:"fee44016-b05f-4961-a6d8-7dac655cd931",twitter_handle:""},{name:"@BoldBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1559592705231044609/iJrNKxF9_400x400.png",ref_id:"dd4e1c4c-d111-4f01-ad95-18200d50cdb8",twitter_handle:"BoldBitcoin"},{name:"@John_ely_21m",profile_picture:"https://pbs.twimg.com/profile_images/1560444673046585346/VN8n2LtM_400x400.jpg",ref_id:"a24436b1-5992-4711-a4a5-0770546ea80a",twitter_handle:"John_Ely_21m"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7061be6d-b144-4a81-a13b-3d125e3e2812/edf29ab4-2b4b-4fdf-9998-8a9b8e9437c8.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"7fea625e-c79b-402b-bce5-66e4e97d9598",show_title:"Swan.com",text:"going to give you a couple of moments to make some closing comments, but before we do that, I want to welcome up Corey Clips and CEO Swan Bitcoin. Corey, do you have something you want to add? Absolutely, yeah. I just wanted to just give the backstory of how we connected with Bold in the first place. I think it'll be kind of fun for people to hear. I don't know if John even knows the story from Zach, but from like November through February of this year, so this was probably three or four months, we were deeply exploring, mostly me and Jeremy show. Walter had a product who was new to the company. We were really exploring whether to launch a Swan card and what that might look like and what we can do. And we were talking to all the providers and the program managers and digging the interchange fees and all this kind of stuff and basically netted out saying, that's a whole company. It's just way too complicated to do just with, like, a small team inside of a small but growing company like Swan. And so basically it was kind of wanting to kill it, but was still keeping the consideration open. And then I think Zach just reached out and I was like, oh, yeah, that's it. You need a team that's just doing this literally every day. And I'd rather partner with these guys in the future or something like that, but just see a team just go hard after that specific problem and nail it. So then we invested out of both Bitcoin or Ventures and Elzonte Capital and obviously have been rolling out the red carpet for them at our events and things like that. So really psyched to have you guys in the space. And this was illuminating the parts I heard and want to thank you for coming and sharing. That's awesome. Thank you, Corey. Yeah, it was great meeting you in La. You know how to throw a good party. A great party. I'll be there for the festival next year for sure. That's awesome. Just to wrap up. I know Alex wants me to wrap up. So appreciative you guys having me. We're excited at Bold to launch in the US next year. We're an amazing team of bitcoiners building an innovative product to help other bitcoiners and also to attract precoiners to make the Bold move to live on a bitcoin standard. You can follow us at bold bitcoin on Twitter. You can take the 30 seconds to go to get Bold IO to sign up for our waitlist. We certainly got some fun things in store for you. Before we launch, we'll be giving you a few ways to earn some stats and have some fun. And thanks again. My DMs are open. Love to hear what you guys all think. Awesome. John, thanks so much for being here. Very excited about what you guys are doing. I wish you the best. Hope it works out great. We'll probably have you back from time to time, check out where your progress is at and how things are going. Go ahead, Corey. So, I don't know if anybody switched over for a minute, but I just went and toured into the CoinDesk space doing their rundown of the top 40 most influential people in crypto for 2022. And they let me up on stage, and you'll probably hear about it on Twitter later today. That was pretty fun. Oh, God. Here's Tom. Tory. I honestly was really trying to pull punches and not be mean. I mean, these reporters hosting a space about this, they have no idea, but it's like you had literally zero bitcoiners out of 40. The only person that writes about bitcoin that got honored was Nick Carter, and he was honored for attacking toxic bitcoin maximus, and that's why he made the list. So, yeah, it's pretty funny, I bet. I hope it's recorded okay. I think it was recorded, yeah. So it would be toward the end, probably 15 minutes before the end of their space or before, whatever, 09:00 a.m. Pacific was, I think a space spun up already right now talking about it. So I'm going to see if I can find that good stuff. ",timestamp:"02:03:53-02:08:08",topics:["Cory Klippsten","John Ely","Bold Bitcoin credit card"],type:"twitter_space",weight:6.436822414398193},{boost:0,date:1587380431,description:"The availability of foods and other supplies during the covid 19 pandemic",episode_title:"Life in Interesting Times - Part 1",guests:[{name:"Matt Murray",profile_picture:"https://pbs.twimg.com/profile_images/1273726156236140544/SJjI1WD7_400x400.jpg",ref_id:"72ce0a76-8593-4898-9369-f39b4bc3d2d3",twitter_handle:"MattMurray28"},{name:"Louise Reynolds",profile_picture:"https://pbs.twimg.com/profile_images/602592582754050048/RbAMd-Re_400x400.jpg",ref_id:"b4c2b12b-96a1-4d37-ae74-5be0883f3091",twitter_handle:"reynoldslouise"},{name:"Jon Slaughter",profile_picture:"https://pbs.twimg.com/profile_images/1336713360/samantha_test_090_400x400.jpg",ref_id:"a295820c-0098-433a-8cc3-cc13085b85c8",twitter_handle:"jonslaughtermd"}],hosts:[{name:"Kim Howerton",profile_picture:"https://pbs.twimg.com/profile_images/858822375457964032/Of4fbmsT_400x400.jpg",ref_id:"49ab70ff-a8e5-4e0f-855a-49abe8a5b645",twitter_handle:"theketonist"},{name:"Daisy Brackenhall ",profile_picture:"https://pbs.twimg.com/profile_images/858822375457964032/Of4fbmsT_400x400.jpg",ref_id:"d68ff5aa-c521-4199-9a6d-bf2cf077ccaa",twitter_handle:"theketonist"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/a8e3517b-b44d-4270-adaa-57587896b1e7.jpg",keyword:!0,link:"https://traffic.libsyn.com/secure/ketolifesupport/ketolifesupport-0031-life-in-interesting-times_tc.mp3?dest-id=2479037",node_type:"clip",pub_key:"032318b5d36e680f7ce77f01e1e5e848da79bbd8c86018513c77b32a869e080e90",ref_id:"51ef662a-201f-4c3c-b60d-bbc627c74e8e",show_title:"Keto Life Support",text:"You've got a huge apartment. We can see it. We're looking at each other on Zoom. Kim, you have a very small apartment. Don't you have a partner that you have to share it with all the time? How's that going? Yeah, it's very small here and we don't have really any outdoor space, which is kind of a bummer. And, like, it's in some ways awesome. We're getting along super well and everything's really, like, great. And at the same time, like, there's no space. So working from home is more challenging because you don't want to bother the other person and, like, you know, you're like, talking about this whatever topic and, like, I'm sure they could care less. So I think it's trying to be respectful of more of the ears space than anything else, but everything's, you know, I think there's just a certain amount of surrender that has to happen. This is what is and this is what's going on in terms of what you can and can't do. I mean, I realized all of my hobbies involved shopping, things like that, but in terms of availability here, the first week was rough. In terms of shopping, like, meat was sold out in a lot of stores for when I would go in, but within a couple of days to a week, that seemed to shake out. And now the only thing you can't find here are paper towels and toilet paper. You have to get in line before the store opens to be able to get those but everything else, there's a vegetable. There's like a call Monterey Market. There's a market a block away from me. It's like if you put an incredible farmers market in a building, like they get all the produce from all the local farms and things. It's just a couple of blocks, like a block away from me. And that is like superstar. I shouldn't tell people if you're in the Bay Area. No, it's super stocked and full. But they're only letting like a quarter of the people in that their usual occupancy is. So you have to stand in line outside and you can only go in when somebody comes out. And so that's pretty much what's going on here with the social distinguish thing, is causing things to go at a slightly slower pace, but you just kind of put your earbuds in and listen to some music and just wait in line for an hour and you're fine. And so food seems really well handled here in the Bay Area in terms of being able to access we want we don't have any limits. I don't know how I would do with a family of five to only be able to buy like £2 of meat. You'd have to go to the store like every day, which seems to be kind of counter to what you want to do. I'm trying to limit my trips maybe once a week. So there are no limits. It's very state to state here, though, because I hear from a lot of people, like a lot of clients in their state, they're having a lot of supply issues. But you can get your deliveries. I can't. You can still get Whole Foods and you can still get your Amazon deliveries to you. Yes, but so many people are having so much stuff delivered that everything is booked way out. And so, like, you might place an Instacart or Amazon order and instead of coming in a day or two days or whatever day, whatever the appropriate amount of time, it might be weeks. Instacart is supposed to come the same day, but it's like Instacart is a program. You can shop for groceries and they deliver them. There are other similar programs. It used to be you book it in the morning, you get it in the midday. Now you book it in the morning, you get it four days later. And so they're trying to hire staff to catch that up. I just got a notification that a local Whole Foods is actually closing at 01:00 in the afternoon. So all afternoon they can just do deliveries. And so I think that people are shaking out how to make this work. I think that a lot of it is people hoarding buy more than that they need, which is understandable because no one wants to go out. Kim, if you need toilet paper, I didn't hoard, but buying one pack at one of those box stores will last me an entire year. So I can always send you some. We are fine. Because I actually did get up very early the other day and go to get in line at Target before they opened and it worked and we were fine on toilet paper. The bigger issue was paper towels. Those things hardly. I use a lot of paper towels when I cook because especially with chicken or something, I wash my hands. I use paper towels instead of a dish towel because that way I'm just throwing it away, drying off meat. I use paper towels. I use paper towels a lot. I find this toilet paper thing is weird. I can almost understand the initial rush, but why is it still out of people can't still be I said the same thing. I was like the hoarders have hoarded. What is happening? Well, I actually heard that because nobody's going to work. Exactly. Well, they make those gigantic rolls of single ply garbage toilet paper that are at work, but no one's using that toilet paper. Everybody needs residential size roles and they're not told to make that many. So they've got a shift from making commercial grade toilet paper to residential grade toilet paper and plus the panic buying. So there is a shortage of supply. But human nature it's a weird thing to grasp on to, but I think it's just a control issue. Yeah, I think it's something people can control in an uncontrollable environment. And luckily for me, as I said, I'm not a hoarder, but I do keep meat in the freezer and stuff. So at the end of February, we went to Pipers play. Matt's daughter had a play and we had some friends that came into town and we cooked ribs, baby back ribs and wings before we all went to the play. So the very next day I was going to the box store and I got replacement ribs and replacement wings. And this was just at the start of the spread of the disease as well here in the US. So I had those things in the freezer to begin with and restock them when I use them. Yeah, I think there are a lot of services like butcher box and where you can get meat delivered. And I guess so many people started doing that. They are now have a waitlist. But one of the things that is coming out of this time, in the United States anyway, is a lot of people are getting more interested in their food supply chain. And so in California, I'm in Northern California, but even north of me, about 4 hours up towards Oregon, california is really a big state for anybody that doesn't know. So about 4 hours above me there are a bunch of farms and like one of them is called Five Mary's Farm and they sell direct to the public. They said their number of orders to the public have tripled. So people placing orders to be shipped or to be picked up. And a lot of the restaurant supply farms, a lot of farms just are like connected to a farm to table restaurant. And so with the restaurants closing down, a lot of the restaurants have started supplying to homes. And so, you know, one of the silver linings is I think a lot of people might get a lot more intimately acquainted with where their food comes from, start to form relationships with food producers. And so I'm actually going to do a blog post about it this week where you can find in your area or as close to your area as I know about a local food producer who you can order directly from. Kim ",timestamp:"00:36:39-00:44:02",topics:["Covid 19 pandemic","toilet paper","food supplies"],type:"podcast",weight:6.419591903686523},{boost:0,date:1672772445,description:"Bitcoin mining and malicious attacks",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Foss, Max Keiser & the Plebs! 🍻😂",guests:[{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"Max Keiser",profile_picture:"https://pbs.twimg.com/profile_images/1361873587582472195/y57DiTYX_400x400.jpg",ref_id:"743efd07-d194-4c74-8663-45c3b8646b8e",twitter_handle:"Maxkeiser"},{name:"Isabel Foxen Duke",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"58989d4a-4a96-4ffc-8cbe-f233ffb10420",twitter_handle:"isabelfoxenduke"}],hosts:[{name:"Publord",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"5b7b7e22-fe55-4e1c-933d-6544f6600351",twitter_handle:"publordhodl"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7de8e4aa-50a6-4f57-a8ff-6ca16a4f0ae4/76c3395a-4fe5-4802-8d2a-92cca1f1ea0b.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"e4520df5-b812-4247-bd2d-7db10bc5b51f",show_title:"PUBLORD",text:"Brandon gentley here. I don't know how far down the road you guys are going with this, but I just was reading a bunch of stuff over the Christmas holiday just on grid attacks and just stuff that I was only somewhat aware of over the last ten years and seeing some little more high profile ones. But there's a lot more than I had ever thought. There were just minor attacks, thousands of people losing power, things like that, all over America, et cetera. How does bitcoin mining does it, can it? Will it? How does it kind of stabilize just from more malicious attacks? Damn, that's a great question. Cyber warfare? I'm not an expert there, Brennan, so I can't help you with that. I'll just tell you, it's pretty easy to knock out the North American power grid, okay, with some sort of carbon bomb that sprinkles carbon all over the transformers of every single major US. City. I'm not telling you how to do it, and maybe I've got my facts wrong, but I don't know how bitcoin mining helps with that, except to say the following there will be lots of bitcoin miners that are still spinning even if a major North American grid goes down. And that's the beauty of the bitcoin mining network. How could it help, actually, in a pure capitalist way? Well, if you get utilities creating more revenue streams and therefore getting increased revenues and using what's called operating leverage, meaning every single cent of electricity that they get demand for, over and above their fixed cost base creates enormous profits. Well, then the bitcoin miners can increase the revenues of the utilities, which allow them to be able to spend more money to defend their grid against cyber attack. Does that make any sense? Yeah, it does. Greg, I appreciate it. And I'm sure that there's whether it's the Jason Lowry of the world who you've mentioned numerous times kind of going down this type of road thinking about things like that, and then that's just one of those things where I was shocked. I was really blown away, actually, at how much it was happening. And it seems to be happening at the small level where no one notices. And I would imagine that there are some type of, like you said, some capitalistic approaches that either are being done or will be done eventually and just kind of figure out as it's kind of become more prominent, which, like you said, cyber warfare. The biowarfare aspects we know are going to be more of the future and not so much the kinetic side. So yeah. Thanks, Greg. So you're welcome. And you know, what makes me happy is like, smart kids like you are asking these questions. This is what gives me for those of you who don't know, I've met Brandon in in La. And he and Larry LaPard and I, you know, talked about these things. And the world's in good shape when young kids and when I say kids, I mean anyone younger than 35 when young kids are asking these questions and planning for the future. Not everyone's a fan of Jason Lowry. I'm going to see him in Boston in a couple of weeks. I've met him before. Look, the kid has ideas that turn some people off and that's fine. No one else. We can't be groupthink. If everyone's thinking alike, then somebody isn't thinking according to General George Patton, right? So let's keep the lines of communication open for people that might have different ideas or ideology than you have. So the world is in good shape when the kids are asking these questions and not the old men like Max and myself. I don't know the fucking answer. All I know is I want the kids to ask these questions so that when they are my age, they will have solved a lot of the problems that we're now dealing with. Right, Max? Hey, Greg. Yeah, we're going to solve them all. I'm curious your opinion. You have a lot of experience. You're gaining new knowledge over time, like we all are. I personally see a time where no matter what the cost of electricity, individuals randomly all over the world are going to be willing to run miners, especially when they're configured to produce heat for a home if you're going to have to buy heat anyway. And you could run a minor to heat your home and generate SATS for doing it. I even believe some people would be willing to lose money to accumulate SAS. Do you feel similar about the overall worldwide market for mining because of the pools that are out there? The ability for anybody to mine even with just one machine and still gain some SAS, I feel like it's a great opportunity that's never going to go away. Potentially just about your no. Let's take it to one of our power plants in northern Ontario. We are considering adding a greenhouse right next door that will create leafy greens for the indigenous community. So the indigenous communities in Canada have some of the highest tuberculosis rates because they don't get enough sunlight. And if you had a 35 megawatt mining facility, which we do, it's operated by Hut Eight, a publicly traded bitcoin miner. If the heat from that bitcoin mining facility was vented into a greenhouse and used to grow leafy greens for the indigenous communities, do you think that would be a benefit? And so that's just one extension on an industrial size project from exactly what you're saying. Okay, these are secondary and tertiary benefits from the efficient use of energy and its byproducts, which are heat in terms of making life better for various communities around you. So whether it's heating your home or heating a greenhouse to grow leafy greens to allow to combat tuberculosis, lots of these indigenous communities in northern Ontario, there's less than 100 people living in these communities. And if you could put an entire ecosystem to work around a bitcoin mining facility, I'm not going to. I'm not indigenous, and I really don't want to offend any of them if I'm pining on something. But I do think it would make sense to take that heat and heat the school, heat the greenhouse, heat the local tribunal. Every single indigenous community is set up in a similar way. So this is really good stuff as far as I'm concerned. I got to make sure I don't get between the wall and the wallpaper, because I don't know this stuff inside out. But there are people that are studying these projects for the benefit of remote communities everywhere in the world, not just in Canada, but remote communities in Africa, et cetera. So your idea on a home basis, Jim, can be taken to a village in Africa or a remote community in northern Canada for the benefit of all the less privileged. And I got to be careful, not less privileged, just less electricity centric populations. In the case of northern Canada, all of these communities run off of diesel reciprocating engines, diesel fuel, rather than having some sort of electricity solution that incorporates bitcoin mining. So you guys have seen ice road truckers and you've seen their trucking, diesel fuel to northern remote communities. Don't you think the environment would benefit by having a bitcoin mining solution that allowed for an electrification of a remote community running on, let's say, liquefied natural gas rather than diesel fuel? All of these things are possible with bitcoin mining. You never hear any of this from the politicians because, well, first of all, they're not smart enough to think this way. And secondly, they're biased because, you know, oh my God, bitcoin mining is bad. So peel away a layer of the onion and you'll see all the different ways that Bitcoin mining can help remote communities, whether it's your own house or a small village in northern Canada. ",timestamp:"01:07:37-01:16:31",topics:["bitcoin mining attacks","bitcoin mining facility"],type:"twitter_space",weight:22.711352085784924},{boost:0,date:1629691200,description:"[[Bitcoiners]] seeing the signals of the depreciation of [[fiat money]]",episode_title:"WHY ARE WE BULLISH Bitcoin Meme Hub Jan Capek Bitcoin Mechanic Max Hillebrand ep195",guests:[{name:"Max Hillebrand",profile_picture:"https://pbs.twimg.com/profile_images/1311357499514269696/-HQFwyFH_400x400.jpg",ref_id:"9a86cc59-ed01-4757-88f6-e9d9d63067b9",twitter_handle:"HillebrandMax"},{name:"Bitcoin Mechanic",profile_picture:"",ref_id:"faae3a37-0115-4074-af21-7d79c429c7cb",twitter_handle:""},{name:"Jan Capek",profile_picture:"",ref_id:"ec6f8b14-6c4b-42e9-8e86-9aa902c0906d",twitter_handle:""},{name:"Bitcoin Meme Hub",profile_picture:"",ref_id:"dcd5a590-2018-4707-a49b-8142d7b14e33",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/39201536/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-7-23%2F214267789-44100-2-17e9fbafdf841.m4a",node_type:"clip",pub_key:"",ref_id:"b03519b0-5139-4ad4-910a-40f40e332352",show_title:"BTC Sessions",text:"I was like six years old, my parents had we still have a house, small cottage in the mountains and when you bought it, it was actually an old house with all these relics from the beginning of the century. And what I actually discovered there was like a small envelope. When I opened it, there were like the German marks, but these were already the million banknotes. And at that time I was like, wow, this is a lot of money. And then I had this discussion with my dad explaining me that, well actually this was not worth even like you should put it into a stove. They used it for heating because you couldn't buy a bread with that recently. I'm kind of afraid that you just exhausted my reasoning as well with this, but let's wait with them. Back in 2019, I got the purse made from the Venezuelan Bolivars. It was being sold at some conference and I even bought a small backpack for my daughter. So this is really a topic that not too many people realize and I think we are in our own bubble as Bitcoin is that we do like watch for all these things and we're like seeing, I don't think we're seeing like Bitcoin appreciation, but this is the depreciation of all the paper toy money. And then I think Max already hit a few points basically saying that the merchants are greedy and they're like increasing the prices. But the problem is that the merchants also have info. They have to pay whatever transportation for the goods they have to buy, the raw materials if they're actually manufacturing and directly to selling. It all adds up. And I actually had a talk with a friend of mine who has a big machining shop and he produces parts and thousands of pieces on CNC lights. And he said, well, the iron material, which used to be like the cheapest material being used, went up 100% in last month. And when you look at the development of iron ore now, it dropped actually at the end of July. But this is a strong signal that something is already going on and it will be projected into the economy eventually because these are the initial parts of the whole economical chain, the people who are actually manufacturing something. And at the end you have the merchants selling you your airports or whatever. So we are going to see something interesting in a couple of months or years. So I'm kind of scared of that. It ",timestamp:"00:16:17-00:18:55",topics:["bitcoiners","fiat money"],type:"podcast",weight:6.382523059875072},{boost:0,date:1669766400,description:"Konstantin Wünscher narrates how he founded Kollider",episode_title:"Meet the Makers: Konstantin & Arvin",guests:[{name:"Konstantin Wünscher",profile_picture:"https://pbs.twimg.com/profile_images/917464868663582720/PMFCqusG_400x400.jpg",ref_id:"5f027fce-7775-4824-b941-d2f4120d2d0f",twitter_handle:"krychtiukmd"},{name:"Arvin Galoy",profile_picture:"https://pbs.twimg.com/profile_images/1429792764464611329/4VQqlZiM_400x400.jpg",ref_id:"e0eb434a-9219-4c57-b9e4-da6ceeaec040",twitter_handle:"GaloyMoney"}],hosts:[{name:"Zapp Ed",profile_picture:"https://pbs.twimg.com/profile_images/1519990234070540288/adGqlFoj_400x400.jpg",ref_id:"bbe7cf1d-cd8d-4d36-926d-76f41b775fbb",twitter_handle:"zapp_ed"},{name:"Moritz Alby",profile_picture:"https://pbs.twimg.com/profile_images/859727763292512258/kiFpZ2vO_400x400.jpg",ref_id:"e88efbf8-3809-4508-a86a-d7bf9effb574",twitter_handle:"MoritzKaminski"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/965489b4-a414-4fd0-ab8c-55911b1596aa.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=CjwjScc0TYg",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"caca294d-8661-49a2-80a9-32e4e8452c03",show_title:"BOLT FUN",text:"content. What about you? Did you immediately start with Collider or was there also some experimentation in between? Yeah, there was a lot of experimentation. Actually, I remember our first product that we build had nothing to do with trading. It was actually a data labeling service that used Lightning to pay people to label images. Because my background is machine learning and AI, that's what I studied. So even though I came out of this finance job, I thought I got, well, payments, that's pretty cool. Maybe start with customer facing product rather than having to deal with other big trading firms. So basically what we're trying to test is whether people are into micro payments of this. Because the idea was just like this labeling model that was pretty state of the art back then, which basically enabled you to make some sort of very rough outline and then we'll do the rest for you. In terms of labeling was sort of an unsupervised learning technique. But anyway, so we were paying people for like every time they made a label, they would get some SATS and we were just thinking, would people do that? And we kind of realized quite quickly is that these were really very neat things combined. Like people that would label data, they probably wouldn't know about Lightning or it would be not usable to them. And also it was just like people didn't really care about very small amounts. So basically we're just testing whether Michael payments are so popular. I don't know. We did test it and we didn't get any of this. So we kind of scrapped that idea, although I thought it was a cool product. And then we started basically focusing on something that we know more about, which was obviously finance trading and stuff. And then we built a very simple spread betting interface, which was not like an exchange, was just like, you can make it back with someone else about price. And yeah, we did that. And then I don't know why, I think we sort of realized that the problem this is, again, people don't necessarily need to want to do that in a very small again, basically, again, it was focused on very small payments, and people didn't care about very small amounts that much for that application as well, like trading. So if they want to trade, they want to trade size. We kind of come to terms like, in order for this to work, we actually have to build a proper exchange where people can basically trade whatever amounts they want and make it very similar to what already exists in order to kind of ease in the users into this new idea of using lightning rather than just throwing something completely different at him. It was sort of the journey that we went down. But yeah, compared to Arman, it was very like product driven. We were only thinking about products most of the time. We were thinking, how do we get this technology into as many hands as possible? And again, trading is probably one of the most popular things to do in crypto. If there's any application, it's like used very like a lot and then trading. And so we thought, well, that's a good starting point, let's just try to create what already exists. But with Lightning kind of derisk, that's what we narrowed down on and that's how we then build. And yeah, I think this is sort of it. And now we obviously made branch out a little bit away from just trading. I was thinking about more payments and more of the stuff that is probably like what Alan mentioned. Actual sort of problems that you could solve with this technology because trading is obviously it's needed as a backbone but the things that that enables is not necessarily very obvious to people but it can enable other financial sort of instruments or abilities for people. But yeah, so this is what was the journey, very product driven, quite a bit of experimentation with different ideas. ",timestamp:"00:10:10-00:15:01",topics:["Konstantin Wünscher","Kollider"],type:"youtube",weight:9.398438332070137},{boost:0,date:null,description:"Solution for the massive debt growth in third world countries",episode_title:"Gladstein & Sam Callahan - World Bank / IMF & #Bitcoin",guests:[{name:"Sam Callahan",profile_picture:"https://pbs.twimg.com/profile_images/1592532728775409667/0DayEP2Q_400x400.jpg",ref_id:"5a044a91-8dee-421c-86dd-8c734dc9bc32",twitter_handle:"CallahanMusic_"},{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"},{name:"Brady",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"45bbbb01-6163-4b3b-905a-fc67174893d9",twitter_handle:"CitizenBitcoin"}],hosts:[{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/f8be7c60-94a5-41d0-972c-6301cd4ad7f0/4e5bf86b-6193-4f6e-8fa3-933344b2053e.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"f76300e2-dc0d-4960-a1cf-6c7b90ad4cfa",show_title:"Swan.com",text:"Yeah. So it creates these dependence on these international financial institutions. And when these poor countries get into debt, usually they just need to get in more debt. And, you know, the IMF mission statement is to achieve sustainable growth and prosperity for all of its 190 member countries. And the World Bank's mission statement is to, is to reduce poverty and improve living standards by promoting sustainable growth and investment in people. Now, when these poor countries need money, there's really not many places to go. The IMF and World Bank are some of their only options. And if you look at the data, Alex, I'd love, if you just go over, have they achieved their mission, would you say? And can you talk about the amount of growth that's happened in the debt over the last, say, four or five decades for these third world countries? Because it's just insane to me. Yeah, a country I looked at, Bangladesh, had a couple of hundred million dollars in external debt in the early seventy s and now has $100 billion today, for example. So the whole machine has basically made it so that these countries have more debt than they could ever possibly pay back. And again, the debt is denominated in a currency that they cannot print. So the whole system just needs to be disrupted and broken. I think that in the future that if we do end up having a bitcoin standard, that the system would be disrupted and broken, because then you wouldn't have certain countries that could issue with paperwork, the reserve currency. All countries would be on the same standard, and every country would be able to, if it wanted to without needing permission from a great power, they could convert their energy into this reserve currency through mining. And maybe that's not sufficient. Right? And I'm not suggesting that all countries will become equal. You're still going to have huge inequities that result from labor productivity and all kinds of other things. But the point being that even small countries, they won't necessarily have to shape their economy to suit the needs of foreign powers to get foreign hard currency. They could, for example, invest in local electricity production, which is good for the local population anyway, and then use that to mine Bitcoin or to power the local economy. And I think that's a much better kind of choice than selling stuff for other countries that is just going to go to paying it back more debt. So I think there's like a light at the end of the tunnel. Maybe there's a way out. And that's something that I try to be pretty hopeful about. Certainly a lot of people at the African Bitcoin conference think this, and I think it just starts to make sense once you talk to enough people. We should all speak the same monetary language. There should be one standard. It is completely ridiculous that there's 41 central banks in Africa. Each one is its own lording over everybody else. And then there's also the French, who still control a huge chunk of Africa. So in a Bitcoin standard, the power of these institutions to repress people is dramatically diminished. It's not eliminated at all, but it's certainly diminished by a lot. So that keeps me optimistic about the future. Yeah, absolutely. Bitcoin is a light at the end of the tunnel because it's hard to see another way for this to get disrupted, in ",timestamp:"00:59:02-01:02:59",topics:["Debt growth solution"],type:"twitter_space",weight:6.3401312828063965},{boost:0,date:0,description:"Implications of Taproot activation on the protocol",episode_title:"Taproot Activation Q&A with Bitcoin Devs - TABConf 2021",guests:[{name:"Andrew Chow",profile_picture:"https://pbs.twimg.com/profile_images/1452266201770496010/44FHCtZM_400x400.jpg",ref_id:"f96d87ca-5060-4021-aeb9-61db03312027",twitter_handle:"andrewrchow"},{name:"Ben Carman",profile_picture:"https://pbs.twimg.com/profile_images/1550704386007089152/pLwUSeff_400x400.jpg",ref_id:"1d1e95ba-b4af-415f-aafe-85c6dd7571b8",twitter_handle:"benthecarman"},{name:"Matt Corallo",profile_picture:"https://pbs.twimg.com/profile_images/697361498587451394/_rX0-O0W_400x400.png",ref_id:"08cb3c45-c0bc-4a60-ae5b-a1283d352c8b",twitter_handle:"TheBlueMatt"},{name:"Pieter Wuille",profile_picture:"https://pbs.twimg.com/profile_images/1264051937172836353/n7gHdLbB_400x400.jpg",ref_id:"40260d2f-3480-47d6-8515-d2e780901273",twitter_handle:"pwuille"},{name:"Vivek Kasarabada",profile_picture:"",ref_id:"60ed22d0-8cf3-410e-8a7c-9c343ae109ca",twitter_handle:""},{name:"Murch",profile_picture:"https://pbs.twimg.com/profile_images/1269477743525130241/-U843Cmt_400x400.png",ref_id:"3e2c1c73-a057-4475-9782-3bb0d3d8cc62",twitter_handle:"murchandamus"},{name:"Andrew Poelstra",profile_picture:"https://pbs.twimg.com/profile_images/1316562683009921024/FSscAYvJ_400x400.jpg",ref_id:"15fb9c53-c988-4af1-bbf0-4832d71b0a01",twitter_handle:"Blockstream"}],hosts:[{name:" TABConf (The Atlanta Bitcoin Conference)",profile_picture:"https://pbs.twimg.com/profile_images/1596233571521499138/YE8Us_Ml_400x400.jpg",ref_id:"eb1b6016-6223-4b2b-9264-2423ce66304f",twitter_handle:"tabconf"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=MrxtqAlRI2U",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"f9d1d228-19db-4a2d-bfb3-7853fd745ea0",show_title:"TABConf (The Atlanta Bitcoin Conference)",text:"implications does it have for the protocol? What are some things that will be possible day one on activation? And also what are some things that you guys see coming in the future that will take advantage of these changes that aren't really being built yet? It all depends on your wallet. If your question is from the perspective of a wallet developer, well, as soon as Tap root activates, they will be able to make use of the features that Taproot introduces. If you're just using a wallet, well, you are restricted to whatever your wallet can do. So there is no impact as a wallet user. There is no impact on you unless you update to a wallet that can. Make use of these features more generally. So first you'll see transactions that make use of Schneider's signatures. Schneider signatures are slightly smaller than the current ECDSA signatures. So there is a small savings there for the inputs if you are involved in multisig multisig that uses K of K keys. So two of two or three of three can be expressed as a Tweak in the keypath. So when people implement a signature or sorry, a public key aggregation method like for example, music, they'll be able to do keypath spins and multisig wallets will be able to look the same as single SIG underwire. And I know for a fact that a few companies are working on this already because it will be huge savings compared to having an actual multisig script in the transaction to just have a keypad spend. Yeah, go ahead. Good. We'll move on to lightning at the end. Okay. So more generally, I mean, this is the design goal of Taproot that it introduces a new address type that can be used for everything. So before we had separate output types, separate addresses for the simple pay to pubkey pay to pubkey hash style things. And on the one hand and on the other hand, p to SHP to WSH for the more complicated script things Taproot produces allows it to produce a single address that is different from all of the ones before. But it can be used by everything and even better at spending time. In many cases, you cannot distinguish what it was. So this is both an efficiency saving because it's cheaper, it's also privacy saving because you're not revealing to the world what kind of wallet construction you are using. So, for example, right now you can detect like, there's some fairly large multi sigs that are basically only used by one entity. And so you can very trivially detect like, oh, all of these, I don't know, what's the liquid policy now? Like nine of 15, like all of the nine of 15s are liquid, basically. Okay, well, whatever. And so you could hide some of that policy, so you wouldn't necessarily reveal that when you spend the transaction. Another thing that's a little bit down the line, but a cool crypto trick you can do with Taproot is you can produce a ring signature over all. Of the Taproot outputs or all of. Your Taproot outputs above a certain threshold and prove that you are holding a coin of a certain value without revealing which one. Other than that one of the tapered ones. Yeah. So it's generally that kind of fits into a broader category, like Schnorzigs are much simpler mathematically. And so there's a lot of cool tricks you can do like that and other stuff like the signature aggregation and whatnot. And then also with lightning, this is also something that's kind of further down the line. And there's no real concrete I guess AJ has one concrete proposal for it, but eventually we're going to get PTLCs instead of HTLCs. So instead of using a hash, we can use public keys and revealing the private key for it, or revealing a signature, an adapter signature for it. And that allows us to decorate payments across hops, right? So right now, if you go to send an HTLC or you go to send a payment enlightening, it goes through four hops. And all of those four hops see it's payment hash, you know, ABC, and they all see the same payment hash. And so later they could, you know, get together and correlate and say like, hey, I saw a payment hash ABC. It's like, yeah, I saw that too. And you can correlate and tell where that payment maybe came from, where it went to. And with PTLCs, there's an additional blinding factor added at each hop, so they won't see the same data and only kind of their immediate peers will see the same ID. So if you're missing a hop, you won't necessarily be as able to correlate that. So it's one fewer correlation metric. There's obviously other time based correlation metrics that are problematic, but like the on chain stuff, it's one fewer correlation metric where you can group certain types of transactions. There are other issues, but remove one at a time. I'd say the explain like I'm five, is just like standard user wallet is basically the same, and then all the fancy stuff gets cheaper once actually people build up stuff. I think that's a good summary. What will change on activation time for a normal wallet user is absolutely nothing until their wallet starts making use of it. ",timestamp:"00:12:40-00:18:29",topics:["Taproot","Taproot activation"],type:"youtube",weight:6.240247130393982},{boost:0,date:1671634578,description:"How Bitcoin mining will open up more markets",episode_title:"Café ₿: 23’ Macro Outlook w/ Joe Burnett & Mitch from Blockware",guests:[{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:"Joe Burnnet",profile_picture:"https://pbs.twimg.com/profile_images/1601649626754564105/9TubQjRd_400x400.jpg",ref_id:"1c849151-1cca-44db-9a69-665fac5dc6f6",twitter_handle:"IIICapital"},{name:"Mitchell Askew",profile_picture:"https://pbs.twimg.com/profile_images/435841191524204544/mzKR9KCX_400x400.jpeg",ref_id:"fc4ba3ae-eacc-489d-a888-397ba6b1f842",twitter_handle:"mitchell_askew"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/601898b8-8964-48ba-aa92-ab3f1c4ad0bb/75f49b1a-9dce-41fd-8517-77b607c9c154.mp3",node_type:"clip",pub_key:"",ref_id:"6c3edea1-97d0-41d4-a015-0f16417f2ee7",show_title:"Swan.com",text:"Why couldn't it work? I think it's fascinating because if you think about power generation, the power generation and distribution has been hand in hand at the absolute key to prosperity globally ever since we figured out how to leverage rubbing two sticks together and making a fire in a cave. And the fact that they're bringing on six new nuclear reactors, they're embracing Bitcoin mining, and they have these alliances in the chip industry. Wow, man, that's a freaking power move. I mean, more in terms of sorry, go ahead, nuclear, my bad. Well, this isn't just that building new nuclear reactors. There is intention to do that. This is restarting their existing fleet. They've got 30 gigawatts sitting on the sideline right now just waiting to be put back into action. And then on top of that, they do want to get into the small modular reactor game and also build new nuclear assets, nuclear in Japan. And Bitcoin mining is going to be very interesting. What I was getting at, Alex, when I said I don't know if it could work, what I meant is literally backing their currency with the Bitcoin that they're mining. So keeping the Bitcoin and then somehow backing their currency with it. I just don't know how those dynamics work. I mean, they have so much debt that would they technically have to default on that before they make the switch over to a Bitcoin backed currency. Or like I don't even know how that would work because obviously they can't back their currency with Bitcoin and then still expect to be able to pay off their debts if their currency is backed in Bitcoin at that point because you can't print more of it anymore. To me, the simplest way would just be to hyperinflate the currency, switch the currency to a new Bitcoin backed currency and then get to hit the reset switch. So all the debts basically go to zero in real purchasing terms and they can reset the whole currency. This is the idea behind gold. You know, the funny thing about central bankers and gold is if you watch what they say, when they're no longer in charge of the central bank, many of them will admit candidly in interviews that the reason that they hold gold is that it's the emergency reset switch. If the currency ever blows up and collapses, they can use gold to basically declare that currency the old one and this is the new one. And gold is the reset switch. You have to have some trustable reset switch. I'm not saying it needs to be gold, but I can see how it would be a pretty I'm not going to say seamless, but it seems to make a lot of sense to me. Like, okay, you know what's super interesting? Wiremart hyperinflation. I know you guys are probably sick of hearing me talk about wire, but it's fascinating. Do you know how they reset the currency? One dude came along and he introduced a new money, and guess what? The money had as its primary attribute. He said there was a limited quantity. We will never print more than this amount. And instantly the people accepted it. And then what did they do a few years later? Well, yeah, obviously they can renege on those promises, but my point is that confidence is the key to all currency systems, and in context of Japan, I think that would work. Yeah. There's no easier way to convince a populace of a better currency when your current currency is collapsing and failing. So when you are kind of under that pressure and you're getting squeezed from every angle, it's easy to get out by saying, hey, well, look at this new one we have. It's backed by this underlying thing called Bitcoin that can't be printed more of, so we won't print more of it either. And, I mean, who knows if they'll keep that promise, but at least it'll be better than what they have now. And I don't know. Again, looking my only exposure to kind of where the Japanese yen is in terms of its purchasing power is what the price of Bitcoin is in terms of yen. And it doesn't look like it's inflating that much, at least relative to its exchange rate for Bitcoin. So, like, I don't know if they're being squeezed that much at the moment, but obviously it's only a matter of time before all fiats have to squeeze, as we always talk about here, right? Yeah, I don't know. Interesting times ahead, for sure. Nuclear, what's the latest in regard to small modular reactors? SMRs people who don't take two minutes and explain what the heck they are and then tell us what's going on in that space. Yeah, so small modular reactors are basically just smaller versions of a nuclear reactor. Anything less than 300 MW is what fits into this small modular category. There's many different designs. I think 70 are being proposed right now globally. About half of them are just smaller versions of the existing boiled water reactors that most of the global reactor fleet is designed by, based on. But some of them are going to be using new cooling technologies like high temperature gas and liquid metal cooling and solid state cooling, various technologies that have been proven in the past but put on a shelf as they only stuck with one design and just built many of those. But right now in Canada, there are several projects ongoing. There's a 300 megawatt BWRX reactor by GE attachee that just got nearly a billion dollars in financing from the federal government and the province. So there's a lot of money being funneled into these projects. The Go dates are still looking 2027 28 to have these demonstration units operated. And I'm just actively trying to connect the dots and see how we can integrate bitcoin mining into this new future that nuclear power is getting into, because I think it'll be greatly beneficial and open up even more markets than the small modular reactors would be capable of. Because now we can essentially play out the pioneer species idea and drop a nuclear reactor wherever we want, monetize it immediately, and then just start building around it. So it's going to be very exciting. Lots of countries are pursuing different versions of the SMRs. I just happen to be most familiar with what's going on in Canada. It's looking like Argentina might actually be the first country to have a deployable commercial scale SMR outside of besides China, obviously. But that's going to be a very interesting future for Nuclear. And we'll keep you guys updated as things go along. Awesome, obviously. Happy to have you back. Anytime, nuclear, you've got some great stuff, and I'm super fascinated by the SMR industry. ",timestamp:"00:54:19-01:01:51",topics:["Bitcoin mining","Currency hyperinflation"],type:"twitter_space",weight:14.955047728896634},{boost:0,date:1666137600,description:"Tools for managing Lightning nodes",episode_title:"Meet the Makers: Alan & Kwinten",guests:[{name:"Alan Plus",profile_picture:"https://pbs.twimg.com/profile_images/1565235279451103233/XD8pJuIo_400x400.jpg",ref_id:"e362fed6-ec06-4d8a-a052-3137b24f213f",twitter_handle:"alnboltn"},{name:"Kwinten De Backe",profile_picture:"https://pbs.twimg.com/profile_images/917859380699320320/p_v-fjmh_400x400.jpg",ref_id:"be68f240-1f4c-4b27-b4bb-752c90cbe0c3",twitter_handle:"QuintenDeBacke1"}],hosts:[{name:"Moritz Alby",profile_picture:"https://pbs.twimg.com/profile_images/859727763292512258/kiFpZ2vO_400x400.jpg",ref_id:"e88efbf8-3809-4508-a86a-d7bf9effb574",twitter_handle:"MoritzKaminski"},{name:"Zapp Ed",profile_picture:"https://pbs.twimg.com/profile_images/1519990234070540288/adGqlFoj_400x400.jpg",ref_id:"bbe7cf1d-cd8d-4d36-926d-76f41b775fbb",twitter_handle:"zapp_ed"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/965489b4-a414-4fd0-ab8c-55911b1596aa.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=GyA8tHNKmig",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"7e996fc8-37c7-447f-b0e5-c6dbf58015fe",show_title:"BOLT FUN",text:"Now, as we have now, both of you come from the field of node operations. Can you share a bit like the tools that you use and why you use these tools to manage Lightning nodes? Alan, if you want to go first. Well, actually I don't actively manage my node at all, so I manually go in every day and do things, but I don't use any tools. And the reason is because I don't want to compete with other node operators, so I don't want to outcompete them. So my role is really to make sure that everyone else is successful and making money and make sure that the network is decentralized as much as we can do it and everyone has capacity both ways and stuff like that. So I don't want to be like a routing node, so I'm kind of supporting smaller nodes while still growing and stuff like that and for that I don't need automated tools. Can you tell us a bit more? You mentioned just the purpose you want to help smaller nodes, but do you do that under like the Lightning network plus node or how does it work and how do I get support from you if I am a small node operator? So one way I do it is, for example, if there is a swap that is open between smaller nodes and it's failing because somebody fell out of the swap, these liquidity swaps and let's say there are three people and one node is just out because something happened, then I take their place. This happens quite often and my node is quite big. So those other two node operators are typically satisfied with me taking the place because they get more connectivity. And the other thing is I allow anybody to open a channel to us if they want to, even small channels like 50K sets or something like that, which is typically not possible to other big nodes because they don't want small channels. The minimum is usually a million or 2 million nowadays, which could be a bit too much for a beginner because they don't want to risk that much money. And sometimes I do open to people that I chat with and so these are the ways basically I just create liquidity for people or help them organize their own little swaps and stuff. And you do that all really manually or rely on standard tools that are out there? Yes, mostly like 90% of the time. I did try a couple of tools because I wanted to learn. So there are some situations where I use some automation. I also wrote some scripts of my own for setting fees. For example, I experimented with all kinds of different fee structures. Zero fee, very low fee, higher fees, optimal fees, all kinds. And I found that all of those strategies have an advantage and a disadvantage. So there's no optimal perfect strategy. You can make money in different ways really. You just have to find your own niche. And I also found that being a completely zero fee node is not beneficial for other nodes. So unless I want to be like zero fee routing who makes money on being super well connected and selling channels? That's a different story. But I don't want to be a zero fee routing because that's too much competition to other nodes. So setting some small reasonable fee is probably the best way how I can stay out of other people's business. But at the same time it's kind of like the best of two worlds. Like trying to be a good router for others but also not taking their profits. And where do you see does this go to in the future? So it seems for me like you are very much supporting the operations of your platform basically right when someone needs a replacement also then you jump in and help out to create one of these swaps or to complete them. But where does this go to? Do you always think, okay, this is where you want to stay or do you have some ideas where this could lead to? Yeah, I have ideas and I think the future is going to be more and more automation in this swap creation. So for example, I have this idea where I could have a wallet, a brand new wallet that I create or maybe join some existing wallet. Basically when a new user wants to open a channel they would open it through a swap immediately. So they would have two channels immediately on the at the beginning, one incoming, one outgoing. So it would be all the swap creation would be done through an API and transparently for the users. Because this way you don't have to go to a website and you don't have to log in and do all of those things. It's just all done in the background. So yes, this is I think is the future where this is going to be one of the ways how you get incoming liquidity? Yes, I think that's a very interesting topic. We should come to that in a second. ",timestamp:"00:16:30-00:23:25",topics:["Lightning nodes","nodes operators"],type:"youtube",weight:6.396489111901376},{boost:0,date:null,description:"The Bitcoin Village project in Nigeria",episode_title:"The Orange Sun ☀️ #Bitcoin News and Talk",guests:[{name:"Portland Hodl",profile_picture:"https://pbs.twimg.com/profile_images/1562306406526492672/LiqmI9NS_400x400.jpg",ref_id:"530aba21-392f-4156-9e91-4fc5c76fced1",twitter_handle:"PortlandHODL"},{name:"Miykael Woodward",profile_picture:"https://pbs.twimg.com/profile_images/1473433558475689985/CM0o3oWu_400x400.jpg",ref_id:"6fe02a78-4f07-47e7-8e64-b278a3167835",twitter_handle:"MiykaelWoodward"},{name:"Okin Mobi",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"bbd18918-7758-4bdb-b9a5-641bf92748a6",twitter_handle:"OKIN_17"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"Funsho Jimoh",profile_picture:"https://pbs.twimg.com/profile_images/1600143435775856641/uqgmtT23_400x400.jpg",ref_id:"a237ffb0-792b-484e-b12f-65a2b679eaf1",twitter_handle:"fnicencool"},{name:"prince ogbonna",profile_picture:"https://pbs.twimg.com/profile_images/1595693872637681664/TeWJzTut_400x400.jpg",ref_id:"0b0c70b1-23b1-4d98-b259-6dbb67b7481d",twitter_handle:"princejoj0"},{name:"The Bitcoin Village",profile_picture:"https://pbs.twimg.com/profile_images/1544318244789649410/kQ2G1MCE_400x400.jpg",ref_id:"d894aca4-36f6-4821-a00b-a4e860b19502",twitter_handle:"VillageBitcoin"},{name:"Masterguantai",profile_picture:"https://pbs.twimg.com/profile_images/1521025685078302720/w9dZwehS_400x400.jpg",ref_id:"29baf525-42eb-41a6-98f9-a0d6b4480af0",twitter_handle:"MasterGuantai"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/bef977d0-8a6a-441b-a8cb-58baebe2bfd7/b9ec2918-1059-48ac-b5ee-69018c42a07c.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"63cc2dff-cc56-40e2-8c22-93153e7d3255",show_title:"Satoshi’s Journal",text:"It looks like Olu finally got up here. I know he's having some issues. I think he's at the Bitcoin village, so connection is not very good, so give him a chance. Olu, if you can hear me, how's everything going at the Bitcoin village? Yes. I have to hide myself in the heart to be able to talk. Can you guys hear me? I'm in a whole place. Can you hear me? What did you say? You're hiding in, like, a heart, like a small bamboo and tree kind of thing we put together so we can hide our head here when the sun is very construction site. Hello, everybody. Top of the morning. It's been crazy. Bad network, but still we have some level of internet. Anyway, thank you. Jeremy Tk. Towel. Prince Blanca out there. I see Janet. I see amica. Extremely. Daniel, lots of you. Big respect. Thank you. Thank you so much. I'm freaking excited. We're getting donations. $1,500. We're getting donations. It's crazy. Yeah. No, it is, man. Yeah. I can hear you. We can hear you, Olivia. Oh, yeah. Okay. It's so amazing that you have to look. Things happen, right? Nigeria's name is known for multiple things. Apart from our musicians painting the country in a positive color by winning Grammy awards, BT awards, and whiskey. David Bernarboy doing well. Our politicians are denting our name with their corruption and some fraud. Stars are also messing up the name of the country with scam. But bitcoiners are lifting the name of the country up. In many cases, when people do stuff, they associate Nigeria with scam. Unfortunately, it's not about that. The major percentage of people in Nigeria are very good people. And the base coin village is a big example of one of those good projects. Although I have seen and heard people say one or two negative things on Twitter, I smile. I will come here, and I can see the progress. And very soon, they're going to start seeing pictures, and they will see and they will come here. The people who don't have the opportunity, capacity, or one or two things are the people that will miss out. But because it's a monumental structure, you will come here. Maybe if you can't make it in 23, you can make it in 24, 25. The building will be there forever. When we leave this face of earth, when I am no more, when myself and Jeremy are no more, maybe 70 years from now, hopefully we'll leave longer. Because I would like to leave to, like, 100 years when I have teeth no more. And I can just I don't have to be able to pronounce it. I can actually picture that with you notice saying that. Can you say it again how you would be saying that? There are people called land grabbers. Land grabbers. Right. They take money from you every time you're doing construction. They table people. The government has dealt with them, but still that's what they do. So they were at the site yesterday with machetes and everything and sticks and they went to disturb the construction workers. So they called me. I couldn't get to them for a long time. They couldn't get to me for a long time. So when it got to me this morning, I had to step in to the CABAC, which is the paramount ruler, and of course some of the leaders. And we went to the site and we've been waiting for them to show up. They didn't show up because I already got military people on standby to make sure they don't disturb the progress of the work. It's not like they didn't vandalize anything, but they scared the workers away from the site. Anybody that knows Nigeria know this is how these land grabbers come, all because they want to get money. But I stack their money today. I'm ready to give to them. But I'm going to give them a serious warning. The next time they come and do such thing, you're going to be in trouble. So that has been the stress for today. They take money when you're about to do your after your. So what is trying to do is take money. They take money for digging. They take money digging, which is excavation. They take money for your DPC down proof cost. They take money for the first level of blocks. When you get to your decking. They take money when you roof. They take money. Once you put the gates. They take money until you're done with construction. They take money about five times. So if you don't know how to operate with them strategically, they can stress you. And they demand for crazy amount of money. They are called, or more, only length. The Nigerians here can attest taste to that. It's terrible. But I thank God I've been able to douse the tension. And they're requesting for $1,000. I told them that's crazy, I'm going to give you guys $500. So I told them you have to write an undertaking, blah, blah, blah. They refused to say never, blah, blah, blah. I put my phone number, I said I was going to record them, blah, blah, blah. At the end of the day, I gave them $200 first. I said, I'll give you 250. When these guys completely stopped the job today, finished their job today. So at the end of today's work, I'll give you 250. And I said, so let me take pictures with you. Stupidly. They took pictures with me and I recorded them when I was giving them money. Why did I do that? So that when they come another time or when another set comes. Because what they usually do is they come in different sets. So once you give them money, they tell other people, oh, he gave us money. So you can go and act like you didn't know anything about it. So those are the challenges of construction in Nigeria. And I think it's because the Bitcoin village, Nielsen, is already online. So some of them can go online and they can see, okay, this is a big project. As a matter of fact, whether it's big or not, anytime they are doing construction, they look for construction sites and they come and say, oh, we are the community people. And really the community don't like them. They are the thugs on its uneducated parts of the community that's full of disturbance. But the paramount king has given an order and set up like a vigilante group to protect the construction site workers. So that's just an update. There's a lot of work right there. So I wanted to update you all. That's what I went through in case somebody saw me and he took my pictures while I was Qurin. I said, get out of here, get out of here. It's just me trying to let our work be smooth, because they can delay work for like a week if you don't pay them. Like they delayed us yesterday. And every day counts because we need to launch this next year, especially during the conference. That aside, I can't wait to release pictures of updates for you guys. Most likely by I'm looking at next weekend, substantial progress would have been made. And I just want to thank the stock chain as they've been very nice. It's more like the stock chain as they are competing with each other. Somebody puts 100. Somebody puts 500, somebody put 1005. So, Jeremy, what we're going to do is what we have said before, after the orange song, we're going to have our meeting maybe today or much later or maybe by the next meeting, so we can put together a necessary document that is faction as we need and anybody that would need it. Maybe we're going to put it up on the official Twitter of the Bitcoin village and or invite people to private meetings. I don't know where we're going to put that up. Maybe it's a torture on the website so people can see some of the documents that we have all approved by the legacy government, and they can see the quotation from the QS, and they can see how transparent and the amount that the construction is going to cost you. And I know the quotation by the quantity surveyor. So we're going to put up the architectural drawing, the mechanical information, the electrical information, the soil test, the approved building plan from the government. All documents will be put up there with biweekly progress pictures and videos so that this donation can keep coming in, and not just for the donation's sake. Anyway, that's what we have said when it was just you and I working on this. Why do we have to be transparent? I've never, ever taken donations in my life. Public donations like this. And it's amazing. It's really amazing. The budget we had initially shut up tremendously because of inflation. Things are getting expensive day by day. There is blocks, cements and all that. And we really need to let people know we are building this for bitcoinners and even non bitcoinrs that will become bitcoinners. Who wants a bitcoin village and bitcoin development center that people will walk into and be very happy and befitting place that whatever certificates you get out of here would be valid for you and you'll be proud that you came here. Even if it is a developing community, in five years this place is going to be a city because of the fort mainland bridge. If they finish the fort mainland bridge by 2027, which is five years from now, I want to say five years because I know that the government can be very terrible and it might even take seven years. It's going to open up. And the value of properties here might shoot up to as much as $500,000 per plus. So we are properly positioned and we must do things rightly. I'm just so glad that the statuers have turned up for us. Even jeff boots and so many people have commended positively about what we are doing. This is what we plan between ourselves and look at the world embracing us. Even corey of swan give us a light by retreating. I know retreat is not necessary endorsements, but retreating on your timeline is some level of association and we appreciate that. So all bitcoiners follow bitcoin village, advillage bitcoin and trade at this particular and spread the word this that we're doing this on a private property so the governments don't have power over what we're doing. So care less about the naysayers and we will continue to be as transparent as possible. It's been myself and Jeremy putting our heart and money to this all the time and myself on the ground doing the work. But now we have you guys bitcoin as a family and I really want to thank phil for making this possible. Our teammates will involve the stock chainers and anthony of stock chain. Great guy. And all the stock chains and tao will give us more like an open attestation. Tao attested to our proof of work openly, without an iota of doubt. And I've never heard tao say such about any construction project around this bitcoin ecosystem, although maybe I've not featured in the space where it must have done that. But tao really talks in spaces. When he's talking, it's either educating or not. Now, this is not simply jeremy and all my team members know me. I don't care. I don't think I have sleep on my shoulders because I know how people look at me as a black man, and of course because I'm from africa, nigeria. So I protect my image, I get my money and I respect myself. But when people say something great about what we are doing here, far away, here in Nigeria. I have to give Kudos to what Kudos is due. So you can do your check and balances. You can verify as much as you want. The address is open with or without me. You can go to the village, you can ask village questions. You can go to the site if you want. Very soon we're going to put a big sign at the waterway so anybody that is on the boats can actually see the sign, verify. You don't have to know me and put the word out. Let them know we are building a bitcoin village. Some people, my colleagues, come if they like it's, to their own pocket. But when we start to give lectures and we start to graduate bitcoin and lightning developers, then you will go and ask those people that will be changing the world if it still is come, or you yourself is the person that is bipolar and have issues in your life. And I'm sorry, it's not to be condescending to anybody, but it's just how I feel. So thank you all. I'm sorry I came in here late. I've been trying to come online, but it's been terrible network issue. And of course, because I've been around putting in work, so I have to hit the road again. I may not be able to talk too much, but thank you, big thank you to stock chain US for donating their money. And because of that, we're going to make the budget transparent. From the engineer to every necessary person on the team will come on spaces at different times, so you can have a talk with them and all of that. This project is going to cost way over. Way over. The last time we checked in Nigeria, money for just one building is about 104,000,000 there. You can calculate that in dollars for whatever it is it's going to cost, whether black market rate or CBN rate. So you can see it's not a child's place. You see the type of building we are trying to do. It's something we could have put together a bongalu. And let's say we start to finish the bongalu in three weeks, but of what use would it be? Because it would be the same size of building and the same look with every other building in the village, we have to do something that the villagers will look and say, wow, okay, this is monumental. If this can come to our community, then we must take our life seriously. Like I told the young men that came to distract the place yesterday, I told them today, I said, look, you are only marking yourself negatively. Because when other people in this community will be learning and will be graduating and some of them might get employed by bigcoin companies internationally, you would regret your actions today instead of you supporting the progress of this building. Because with or without you, this will rise. You just take your money and you go on the day of lunch or by three years when this monumental structure is already manifesting lots of greatness, you'll be regretting. So you better go and change your ways and think of how you can come and learn. Maybe this is your go to opportunity to break through from the poverty that you have been entrenched in. Two of them came to me later and apologized and say, you will never see us here again. Please, I would like to learn bitcoin and I was very glad to them. So, yeah, what we're doing, the blockers here and there, but we are overcoming challenges and we are moving at a very unprecedented pace, even though there are delays. But I'm very glad. I thank you all. Sorry for taking your time. You can ask questions and hopefully you guys are preparing dusting your passport so we can all marry Gada as friends, as brothers, as one bitcoin is in Nigeria come March 2023. God bless you all. Hey, can you just give us an update as to what is going on exactly at the village? Of course. They started the foundation. So are they starting the first level of the blocks or exactly where are they at? Because I haven't talked to you to get an update on it. When you talk and you have Indians like this. So if I say today we're going to show you the level where we are at and we have some blockers and we don't make it today, it's going to look like, what's up? So look at the Nigerian bitcoin conference. It was supposed to be 24th and 25 February, but Nigerian government already splitted the presidential election for the 25 February and the entire week before 25th is going to be security, heavy security all over the country. So we had to move our conference a month after. Look at the radio show, which is supposed to start on the 11 December, which is two days from now, all paid up. We have to move the radio show just because we don't want our airtime to be exhausted and we can capitalize on the airtime for promotion of the Bitcoin nigerian Bitcoin Conference on the Bitcoin Village construction, of course, adoption, education, work. So I want to talk less and let videos and pictures do the talking and then we can have a proper space and title it Bitcoin Village Updates. Whether we can come ask questions thereabout. Yeah, that makes sense. No problem. The thing that you mentioned that was interesting to me that I would never have imagined happening. I've been in construction for over 15 years and I never would have imagined the fact that you have people coming to work on a construction project and then the next day another group comes and then the next day another group comes for the mere intense. Grab us or Lilac. Any Nigerian come up? You cannot whether you are building, whether you are the richest man on earth building anything in Nigeria, the size of their construction work is how they will mobilize. They will mobilize so much, and they will give you a bill. And the worst the government can do is just to come and chase them. You're going to call security for them, and they would get off the land. And the crazy thing is, they start stressing your construction workers. They start stressing them, stressing them, stressing them. They might relay them before you get there. And you don't want a situation whereby you're going to be involved in the police all the time in a community whereby you have been accepted. The paramount king is in support. All the chieftains I support, 9% of the people I support. So if you bad eggs are only out to get their little unwarranted illegal money. But we're in Nigeria. It's crazy. Even though government have issued an anti land grabbers law, if it's supposed to be effective, but these motherfuckers are the ones encouraging it the most. The richest people in Nigeria, in Nigeria are the people that make use of these thugs. They use them for disruptions. So these thugs have contacts. At the end of the day, you, you, you call cops on them. The next you park jet, they go by car, you're not there or something. You know, you don't want all of that. You don't want to show because of you. And it's funny, they came out outside the community and they start to say, oh, my father had a house here 35 years ago. So it's not a bad news. It's just me being 100% transferring. So that, you know that that can be an entrance for one day, two days. If you don't manage it well, it can extend to one week, two weeks. It happens to almost every construction site, except you want to man a military base. And when I say military base, like two, three military guys, the Nigerian policies are much strong enough to stop them. You have to pay us the right pay them the day times four or five what the government is paying them to scare the land grabbers away. Yeah, that's very interesting, and yet one of many obstacles and challenges that you're facing. So for you guys that don't know, olu and I, we hired a surveyor and a project engineer. And if I could be there, I'd be overseeing the construction myself. But Olu is there, and he's the one on the ground doing all the work. As far as yes, we have the engineer and we have the surveyor, and they're doing their respective jobs. And what their positions? As in the construction project, those positions are very important, but it's very important to have someone on the ground to inspect the work. That's basically what you call quality assurance. And so Olu is doing a lot of things already. I mean, he's the CEO of bought me cash, and he's helping with Satoshi's journal, and now he's on the ground in the village. So I've told him many times in the conversation how thankful I am to have a partner that's doing this, because it's a lot of work. I mean, I've done construction for many years, and I've been the inspector, I've been the engineer, the surveyor, the designer, the quality assurance, I've been all of it. So I understand how intense construction is. And when you have to deal with shenanigans like what olu is talking about, additional to all of the other responsibilities on the construction site, that is a very stressful deal. So thank you, Olu, for the update. I look forward to the pictures. Already we have some pictures, but I think that it's going to be really cool to see everything come together and look forward to the videos as ",timestamp:"01:56:17-02:20:03",topics:["The Bitcoin Village","Nigeria","Bitcoin Adoption"],type:"twitter_space",weight:6.083251953125},{boost:0,date:0,description:"Michael Atwood talks about OshiApp",episode_title:"Cool Apps Built on Lightning - March 16, 2022 - Voltage Twitter Spaces",guests:[{name:"Chad Atkins",profile_picture:"https://pbs.twimg.com/profile_images/1200611447979544576/W9ocRJTb_400x400.jpg",ref_id:"62da3c50-0a46-400b-81a3-5f482f5b8fee",twitter_handle:"Chemchad"},{name:"Michael Atwood",profile_picture:"https://pbs.twimg.com/profile_images/1362207977470521345/Jy2_Ge60_400x400.jpg",ref_id:"16359ade-afb9-4a37-be0b-0844a6134327",twitter_handle:"Dooowta"}],hosts:[{name:"Nate Glasky",profile_picture:"",ref_id:"0662789d-b39e-4aed-ad6f-44257695b6af",twitter_handle:""},{name:" Bobby Watts",profile_picture:"",ref_id:"ae2685c6-1307-473a-95b0-87c234e50483",twitter_handle:""}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=4EJrnxYOShY",node_type:"clip",pub_key:"",ref_id:"9f69933d-69fe-47a0-af4d-9d80726e60aa",show_title:"Voltage",text:"All right, it looks like Michael is here from Oshie app. I want to invite him up because I know he's got some cool game plan and stuff just going on, like from Miami, like getting Oshi app utilized down there. And he's got some traction in Texas, I think I saw Marty using Oshie app or something, like buying some local beef. And there's been some block parties using. So if you are available to chat, Michael, feel free to hop up. It's funny because actually that's one app that I am absolutely a fanboy over and I totally did not put it on my list for some reason. But yeah, dude, Mike. I see Mike all the time in Austin. So if you want to tell us about Oshi, Mike, feel free to raise your hand. Or we'll send you an invite or I can just explain it, but I'd. Rather you do it. Yeah, I can chat a little bit about it, I guess, until it comes up. But anyone who's not using Oshi, it's pretty sweet. Like, as a consumer, you can download the app and then just check locally what deals around you, what small businesses around you are willing to give you bitcoin back for coming in and shopping. And it's as simple as you get a gift card, essentially, like just a deal to that business, and you can go in and make that purchase and the business will say, hey, you get this percent sat back. And what's really cool from a consumer perspective that I like because I love whenever applications are gamified, kind of like fold. Like if you referred people to fold now that they have this every time someone swipes their fold card, I get paid. Like, in the last week, I've made 1300 stats just by referring people two years ago to fold. And Oshi is kind of the same way, but it's a little better where you as a consumer, if you refer businesses onto Oshi app, you can earn like a very small fraction passively on all the purchases done at that business. And there's like an incentive model that if you're an advocate for the brand and for those businesses, you can earn a little bit, too. But it's pretty great. What I would really love to see happen is, like, everyone's going to Miami 35,000 people next month, right? Like, if we could get ten to 20 businesses around the conference or onboarded to Oshi, you could just flip open the app, see what businesses around there want to support Bitcoiners. And it's like, yo, come grab a burger, get 15% back in SATS. And it just gets Bitcoin back to everyone who shops. And the thing that's really great about this is, if you've noticed, like, Lolly and Fold, they're really focused on bigger companies, bigger providers. And there's a lot of organizations, there's like three providers out there that give you access to these gift card networks. So if anyone wanted to spin up their own fold or Lolly or things like that, there's partners you can partner with that give you access to that. So there's tooling out there for big businesses, but there's not one out there for B to C. Like getting small businesses on board. It's something that's literally never been done. So it's pretty cutting edge and it's a big problem that could be solved. But I'm personally passionate about this because at my last job, I've managed marketing for small businesses for like ten years. And 60, 70% of businesses in America are small businesses. It creates most of the jobs in our communities. And whenever you can have a Bitcoin circular economy at a very local level, you're keeping money in your community. You're not exporting money to Walmart, who's then sending it to China. You're not sending money directly to Visa and Mastercard. You're keeping it on a local level, empowering small businesses and rewarding consumers for being a part of that Bitcoin circular economy. So if there was an application that was one that really gave back to local communities, it's definitely Oshi in my mind. Yeah, I think when I talked to Mike about Oshio a while ago, it was like what really kind of blew my mind was, up until this point, I always envision sort of brick and mortar lightning commerce to have the merchant generating the invoice from somehow. But with Oshi, the customer generates the invoice and pays it on their own phone and then just shows the merchant, basically, and the merchant scans it or whatever and says, okay, cool, you got it. And I just think that's super cool. And it takes away so much friction from the merchant, especially a merchant that might not be well, that might be like, Bitcoin curious, but doesn't want to have to run a note or BTTP server, something crazy like that. I just think that's really cool. And there was a Bitcoin block party, I think, a month or two ago in Austin, which where the Bitcoiners got a bunch of restaurants and bars to use Oshi, and there was a huge sort of get together around it, which was pretty cool. I hope they throw another one of those because sounds like a lot of fun. A lot of stuff is happening in Austin. Not going to lie. I'm going to invite Kyle Murphy up if he's available. I know you might be passively listening like Michael, but there was the hackathon this weekend at Pleb lab, the SATS by Southwest Hackathon. And I'd be really interested to maybe hear at a high level what were some of the projects, maybe that really had legs, that based on what you heard on the ground floor, like maybe people are going to pursue a bit further that could really come to life. I'm sorry, were you talking to me? It kind of muted as I accepted the speaking thought. Yeah. What'S going on? This past weekend we threw a hackathon. As far as some of the projects that had legs, I would say. I. Don'T have a lot of hackathon. I have zero hackathon experience to kind of counter it too. I've never been to a hackathon or hosted a hackathon before this weekend, but just from some of the things I heard from some of the devs who obviously have a bit more experience with hackathons than myself, it was really quite unbelievable. The amounts of high level projects that actually came out of this past weekend. I think we had ten projects that actually presented and a handful more that were built but did not present. Of the ten that we saw presented, there were seven or eight that I think really I'm not sure people will have the time to kind of really push forward with, but if they did, I would be bullish on seeing all seven or eight of them kind of push forward as a potential bitcoin company. The winner of the hackathon was a project called Pleb FM, which was like a live streaming stats kind of update for pushing music on, like a jukebox style kind of thing, where it was like you could basically pick a number of stats. You could get your song pushed to the top of the queue and you would see, like, a live leaderboard for music being played and streamed over the Lightning Network, which was really freaking cool. Nice, that's exciting. We saw some good business stuff. I know Nifty Nye and someone else were working on Lightning, like a dashboard for kind of merchant services, which I think for things like Ocean and a handful of other businesses are going to be really powerful. One of the things that's kind of really lacking for business integration is the company's ability to really trap and pay attention to what's going on in their finances. So the kind of Lightning dashboard that really showed like where money went, where money came from, kind of open channels and a whole host of other things in real time in a really easy to read manner was also pretty cool. And that was Lisa from Block Streams project. She's been working on that accounting stuff for a while, so that's pretty cool to see. Yeah, she kicked it into high gear this weekend. It was pretty cool to see. I believe she's actually sitting at Club Lab right now, kind of continuing to work on it. So as far as projects that are pushing along forward after the hackathon, that seems to be one of them. When you're in the groove, you're in the groove. Absolutely. Sounds like a good time. Yeah, it looks like we're almost to an hour. Austin bit devs is tomorrow. I will be there if anyone wants to say hi. I'm sure Kyle will be there. ",timestamp:"00:44:28-00:53:59",topics:["Michael Atwood"],type:"youtube",weight:6.080077648162842},{boost:0,date:1590465600,description:"How does Bitcoin is the next level of protest?",episode_title:"Chat 39 - Bitcoin Renaissance - with Marty Bent John Vallis Alex Gladstein Elizabeth Prefontaine Brady Swenson",guests:[{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"},{name:"Marty Bent",profile_picture:"https://pbs.twimg.com/profile_images/1362747135981199370/mSy97J12_400x400.jpg",ref_id:"655bdcb1-21c3-411c-aa24-fe7e4c7a248c",twitter_handle:"MartyBent"},{name:"John Vallis",profile_picture:"https://pbs.twimg.com/profile_images/1568743166035070976/4MyKww8A_400x400.jpg",ref_id:"c3a9fe29-3b78-4665-af54-e293e9d68962",twitter_handle:"johnkvallis"},{name:"& Brady Swenson",profile_picture:"",ref_id:"0b68a085-0680-44b8-891c-6e1e84ac4eb1",twitter_handle:""},{name:"Elizabeth Prefontaine",profile_picture:"https://pbs.twimg.com/profile_images/1382790711427354625/D09LMToL_400x400.jpg",ref_id:"4506df72-5de4-4144-abc4-011408b6b496",twitter_handle:"Eprefon"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN4002307424.mp3?updated=1627951379",node_type:"clip",pub_key:"",ref_id:"67236e2a-900b-4cf6-bc6c-165c0f7e3219",show_title:"Bitcoin Audible",text:"do think eventually the impact of Bitcoin will be as kind of like this protest tool that can be wielded nonviolently in a really compelling way. And it's really tough to defeat governments when they have a monopoly of violence. You can do it. And in fact, nonviolent protests, if we're going to try to be optimistic here for Bitcoin, nonviolent protests are way more successful in history than violent ones by, like, an order of magnitude. I think it's something like 35% of all nonviolent movements, ranging from Gandhi to MLK or whatever, have ultimately been successful in the last 100 years. And only like, less than 10% of the violent ones have done what the violent people wanted to do. Right. For obvious reasons. Usually it's like a small group of male people willing to have guns who are willing to fight in these violent ones, whereas everybody can participate in the nonviolent revolutions. And these are usually like people power protests where you have to go in the street and try to convince the police in the military to join you, and then the dictator has no more people to support him and he's overthrown. This has happened quite a few times in the world. So bitcoin is like the next level of that kind of protest where we all start opting out to this other financial system. And I do think people it is inevitable that they're going to realize that and they're going to know that. But we're so early. I mean, we might be decades away from that being a reality. We're just so early. Less than 1% of humans have used Bitcoin. Far fewer than that. Understand Bitcoin, maybe 1000 of that or fewer. So I don't think that Coin needs our help, but I think bitcoin will be a tool that humans end up using to really erode some of these more arbitrary power structures. Yeah, one of the things I've noticed during the crisis is because I looked out and I asked myself, ",timestamp:"00:18:14-00:20:02",topics:[],type:"podcast",weight:6.0710978507995605},{boost:0,date:1625958277,description:"How the franchise model access the cheap capital from fiat money destroy small businesses",episode_title:"WHY ARE WE BULLISH? Brandon Quittem, Timothy Kim, Shinobi, Steve Barbour ep185",guests:[{name:"Brandon Quittem",profile_picture:"https://pbs.twimg.com/profile_images/1502403738861940736/9J5VuTye_400x400.jpg",ref_id:"65512044-7810-4ece-8156-5519e072cb66",twitter_handle:"Bquittem"},{name:"Shinobi",profile_picture:"https://pbs.twimg.com/profile_images/1526590501742428160/0Y5H2uJK_400x400.jpg",ref_id:"a05dface-33a7-400d-a749-99efe0d96118",twitter_handle:"shinobi602"},{name:"Steve Barbour",profile_picture:"https://pbs.twimg.com/profile_images/1592714173469065216/q8kXPyQI_400x400.jpg",ref_id:"63a731b8-4759-4360-9e9d-d66f884e12d8",twitter_handle:"SGBarbour"},{name:"Timothy Kim",profile_picture:"https://pbs.twimg.com/profile_images/1569681307029934081/2s_nWYo__400x400.jpg",ref_id:"e0323798-c70f-4cc3-96ff-87bab50c2313",twitter_handle:"realtimothykim"}],hosts:[{name:"Ben Perrin",profile_picture:"https://pbs.twimg.com/profile_images/1181715113226596352/ipGVEcYH_400x400.jpg",ref_id:"e6b013ef-178b-4b41-95ee-423148a3dc3a",twitter_handle:"profbenperrin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/37027401/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2021-6-10%252Ffb6d5638-4579-5707-9740-0e586c980ba7.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"07ab82b4-2fe7-42f9-9018-bb8f4188eb3b",show_title:"BTC Sessions",text:"Can I just go down a random rabbit hole that I have thought about a month that you just completely unlocked? So I get really high a lot, and I do really silly things with my time me too. That I'm going to make a bunch of different hamburger recipes. And so when I do stuff like that, sometimes I have funnier ideas. Like, what if we open source the franchise model where I specifically lay out the exact process of something, like how it's supposed to be done, like how you're supposed to cook this food and I opensource it and anybody can do that. But if I catch you fucking up, if I catch you deviating from that brand, I get to sue the shit out of you and take a bunch of money from you. But if you follow everything to the tee, everything is yours. I was actually thinking of something like that. I don't know. I'm really open with what we do in our business. And I've always tried to help people and educate people in the oil field space about bitcoin mining. And I was thinking like, okay, we did a lot of work on building these designs for bitcoin mines, and I want bitcoiners to go out and be successful, whether they're like oil companies, whether they're like semi competitors or not. I'm like, maybe I should open source all my designs open source so that we're not going to legally do anything against anyone that builds exactly what I build. I'll give them all the spec, all the anything like suppliers. Because there's a lot more to business than just, like, how you build something. You guys still do well. And part of my idea was like, maybe I'll just go do this. A rising tide ends up lifting all boats anyway. It's going to make more credibility around what we do in our little niche market. And in the end, I'm going to get more business anyway and sort of what you're thinking. As long as they don't, I don't know, try to bring in their own legal, say, like patent something and try to bring in their own little legal monopoly around what they're doing based off our designs, then it's totally open market. I don't know. I think that's like a very interesting idea, something I've actually been thinking about a lot because I'd like to sort of maybe open source all the stuff that we designed in house that right now we would probably like certainly if it wasn't me at the helm, it was just like a regular Fiat Maxi. At Helm, we would go after anyone that copied it. But right now we're sort of cool with what goes on. But I didn't mean to interrupt you. You can keep going, but the liquor is starting to hit me hard. I know. I'm happy to hear that I'm not the only one thinking along those lines because I am exactly on the same point with you. Like, all of these small businesses dying and being cannibalized by these massive franchises. It's sickening. When I was a kid, I used to go around places and every place I want is the new unique thing for that area and that locality. And let's go find those things and experience them. And they're all fucking gone back not that long ago, I come from Newfoundland. There was a lot of and this would be the same anywhere, but I'm just speaking from my own experience, like my family history. There was always like, in this small town in Newfoundland where my people come from, there's always mom and pops. It was like father and son shops back in the day. Maybe mostly men doing a lot of the business stuff. But it was always like, this guy and sons or these brothers and like, you know, like, doing all that stuff. And the theory the Fiat sort of kinesium thinking on this is like, well, the Walmart models, like, push them all out and stuff. Like, no, it's not the Walmart model or the Amazon model that killed small businesses. It's fucking Fiat money printing that kills small businesses. It's not the fact that these guys made these big distribution change. It's the fact that they how do. Those get paid for it's the fact. That their access to capital, like, their cost of capital is less than everyone else. That's why kill small businesses. Fuck. I remember when I started my business and I was like, just trying to try to get sales. I would go to these, like, clean tech conferences, like in Alberta, like emissions reduction. Like, we do massive emissions reduction stuff. So I went to these emissions reduction, like, clean tech conferences and I'm looking around at what people are selling and I would do like a little pitch event, like a little pitch contest to see if I could get interest in our business and stuff. And I'm not a great pitcher, really, but there are these really polished people, like, pitching their products. But I look at their products and they stink. They're terrible. They're the worst. Like, they're not scalable in any rational world, but these people are just running around like these circuits of, like, emissions reduction conference, clean tech. And it's the same with all the buzzwords, like AI blockchain conferences, all that shit we dealt with in 2017. It's like all these non scalable crap products with these entrepreneurs raising money, but not actually getting customers. Raising money is the metric for success, but not getting customers. It's like customers is all that matters. Sales, customers, product, service. Sorry, we work. That's like one of the biggest Fiat Maxi disasters ever. Everyone's about raising money. I'm just, like, ranting at this point because I'm like, buzzing. But like, you go on, like LinkedIn, everyone's congratulating, patting each other on the back for raising money. It's like, why don't you talk about the sales you made, like, the customers you acquired? Because that's what's fucking important in real life. But it's just look at all the money we raised at this valuation. That's all it is on there. And like, all society is that way now. And then you see all these shows. You got like, Shark Tank, Dragons, Dan in Canada's version of Shark Tank, and all these entrepreneurial shows, like startups mostly. Not really a lot of people not really bringing much to market. But just like it's just like this VC hype scene, which is a whole nother rabbit hole, which triggers me is like the VC aspect of Twitter, which is like all these VCs on Twitter that are like, look, man, a VC is like a Fiat Maxi. There's no way around it. And all these people clinging on to bitcoin, it's like bitcoin is going to destroy your core business model in the long run. It's just like this weird juxtaposition where all the Fiat Maxis are, like, pumping into bitcoin. But I guess it's just people doing it what's in their own best interests. But the business models are incompatible with bitcoin, but it's just people doing what's in their own best interests and profiting in the short term. But it's like a weird it's like this weird phenomenon in the future, when bitcoin and sound money returns, there's not going to be this VC culture we're seeing right now, which are basically the dependence of the money printing hierarchy, right? It goes down to the VCs. And I don't know, I was just, like, getting there. Yeah, I bullish on small businesses, man. I think small businesses are going to be insane. Like, I can't wait for the bitcoin standard. And I really promote, like, I'm straight up promoting my own competitors in our locality, like the Lloyd Alberta, Saskatchewan area, guys accept bitcoin as payment, or if no one wants to pay in bitcoin, which is still hard to do. I have a lot of customers paying me in bitcoin because they're minors, so they have bitcoin. But like, you guys are selling motors. You're my competitor. I don't give a shit. Sell your motors, convert your profit to bitcoin and stay in business because that is how you're going to win as a small business right now. Yeah, Steve, to your point there, I think you identified a ton of issues that we're having right now. And they all stem from the fact that money is easy, right? And what that leads to is a cascading effect of the bigger you are, the closer you are, the more access to capital you have, et cetera. That's what drives our behavior. So until we change incentives, we're not going to see anything change in the real world. I have a slightly more charitable view of venture capital. I think what we have now is obviously an extreme overgrowth of that and it's way too much money sloshing around there. And you can see portfolios in VC land or directly correlated to how easy the money is during that during the period of their fund. No surprise. And so I think what we need is a bitcoinized world in order to change these things. We'll see a mass definacialization, which I think is a huge net positive for normal people. Right? I think it's demons. They're devil people. Okay, let's talk about this for a second. I think the caricature of these that we see today I would agree with, but I would argue that there is a place, and I want to hear you guys opinion. I think there's a place for people who place longterm bets on very risky type businesses. Right? I think the model makes sense. 100 failed and one of them changes the world. I just think that right now they have too much money, they're able to raise too much because everyone needs yield. So everyone's going through so hard to find right now. It's so hard to find. That's kind of the problem though is so much money flashing around is what makes them devil people. Because I agree that money printer is distortionary. They're like a secondary distortionary effect, throwing it around at crazy things wildly instead of thinking about who actually can make a solid plan in an argument to us, who do we know and trust and actually being scrutinizing and skeptical in where they put their money, the money printer distorts things and they wind up with a pile of money. And so they go on and distort things again because they just see it as a gambling casino. It's not the role, it's what our perverted monetary system, the mechanism converted the role into. Yeah, I have no ill will towards any VC or anyone that works in any of those. I just call it the cantillon ladder, right? Center banking down to the pleb. Like anyone hide the letter, it's no problem, you're doing what's in your own best interest and all that. But we're all working to reverse, just flip the mechanism of how money is created through mining and distribution, through sound bitcoin mechanisms instead of like the top down fiat mechanism. But it's just a commentary on like it's just this funny like, it's funny that some of the most prominent and influential people in the bitcoin space are like people that are in position. Like they're higher up the Cantillan ladder. Like they're benefiting from fiat. They didn't scrap and grow a small business into something amazing. They went to school. And this is not a knock on. These people individually, but it's just the system. Like, they go to school, they work for this fund, and they benefit immensely. But because they're like us, like the big bitcoinners, they go out and crush it. They want the sound money standard, too. It's just ironic to me. It's almost like coinbase. Like coinbase is an exchange. The more bitcoin succeeds, the less relevant they become. It's like you're putting yourself out of work in a sense. But, yeah, certainly it's never a hate against the player. It's just like the system is such a fucked up mess. There's all this irony and hypocrisy in this whole space that's funny to comment on because. It perverts everybody's actions. Right. The problem is I posted that what I was talking about at the beginning of the show. I took a screenshot of that CNBC upside of inflation, increased wages, and one of my friends commented on it, who's like an intelligent person, and he's like, well off and has a good job and everything. He commented, he's like, well, yeah, but the upside of that is that my debt gradually gets willed down and gone away. But when you think of what induced that debt in the first place is asset inflation. You can't just save money for a house nowadays and then buy your house or only have like, a short mortgage. You can't just for the most part, you can't just save money for a new car nowadays. You have to then you have to, like, get a payment plan and pay it off over 5678 year terms. Now people are looking at it from a perspective of, oh, well, maybe it's okay in this context because it fixes the problem that the problem itself caused. The very base layer of all of this perverts all of our incentives to drive us to do things that we wouldn't normally do in a system that is just a money that actually functions. In a free market. Yeah, well, speak for yourself, but I'm perfect and I always do the right thing. I just want to take it aside. We haven't heard from our friend tim, are you alive? Is the water working? How's the water? I think he's got a how are you doing, Tim? ",timestamp:"01:27:13-01:41:29",topics:["fiat money","franchise model"],type:"podcast",weight:6.056178092959222},{boost:0,date:0,description:"Will the Nation States survive the information age?",episode_title:"The Sovereign Individual - The End of Egalitarian Economics",guests:[{name:"chriskapilla",profile_picture:"https://pbs.twimg.com/profile_images/1362817539135463427/2AXUeFLV_400x400.jpg",ref_id:"9d495790-93f2-4d6c-b770-b2885f66859d",twitter_handle:"chriskapilla"},{name:"remydenton",profile_picture:"",ref_id:"5c5beb0c-c214-4f23-b79a-e71bf9368f2d",twitter_handle:""},{name:"JackRonaldi",profile_picture:"https://pbs.twimg.com/profile_images/1583261828628496384/IazkwYjk_400x400.jpg",ref_id:"01621476-f040-49dd-8160-4035228faf78",twitter_handle:"JackRonaldi"},{name:"AlistairZ80Aftw",profile_picture:"https://pbs.twimg.com/profile_images/1362882489895841795/gH2zix3l_400x400.jpg",ref_id:"3dcba197-47ca-40c0-857d-73cec4325801",twitter_handle:"AlistairZ80Aftw"},{name:"mattonbtc",profile_picture:"https://pbs.twimg.com/profile_images/1549459254280687618/jzdHJou3_400x400.jpg",ref_id:"998167d3-e036-4ef1-9a05-4f062903f0c5",twitter_handle:"mattonbtc"},{name:"wai_wairua",profile_picture:"https://pbs.twimg.com/profile_images/1536570699761848320/T10Owc60_400x400.jpg",ref_id:"c4d4ff36-73fa-4471-91ba-de0f99a49e99",twitter_handle:"wai_wairua"},{name:"UltraSolomon",profile_picture:"https://pbs.twimg.com/profile_images/1468332451055427601/YVgUuUHc_400x400.jpg",ref_id:"6371d519-cc98-4bf4-9f82-be17b1ea532a",twitter_handle:"UltraSolomon"}],hosts:[{name:"BTC_Venetians",profile_picture:"https://pbs.twimg.com/profile_images/1557482467539521537/Kel-eVww_400x400.jpg",ref_id:"a6313ca9-3869-4477-88ad-30172957edcf",twitter_handle:"BTC_Venetians"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/75ec86b1-cb6d-467f-a66e-5e642e5c126a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/c8cc9ec1-061d-4f53-a24b-ee43a56c7715/e650057e-2369-4e75-8119-4975a1fc4cac.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"e96970d0-30a7-4f86-8f81-996ba87a088c",show_title:"Bitcoin Venetians Book Club",text:"Kind of behind on questions here. So let's move on to the next one, which is, do you all think the nation state will survive? The information Age. Going to say, yeah, the big ones will, but in reduced form. What do you mean? America will, for instance. United Kingdom will. For instance. The smaller nations like China, and I don't mean physically, they're just more small in Fragility, if you like, will struggle to keep things going. Argentina will struggle to keep things going. I have the opposite opinion of this in some respects. I think as long as humans are, as long as we remain biological, we're very tribal creatures and we like to have identity. You just look at the soccer World Cup and during covered things were really heated in my community and became so tribal almost overnight between different camps of beliefs. And I think that during times of strife, we look for our colors and our team, and very few people are able to remain unbiased. And so I'm wondering if we'll ever truly be without that kind of place and home. Now I wonder whether if you're in New Zealand, you've got a much closer relationship to the Maori's over there, whether that color is what you said. We have nothing like it in England. Yeah, it might influence my views. Yeah, for sure. These things are different here. Can you speak to how much autonomy the Maori's have? Whether they want more, whether they would get more? Under what circumstances? Well, in the circumstances with the end of the welfare state, with the government finding it harder and harder to hand out free money, would New Zealand survive as a single entity like that? Or would the Maoris and the non Maori want to go their separate ways, much like Americans do with the Indian reservations tend to be autonomous in a way. That is what I'm trying to get at. Do the Maori's have that kind of autonomy that the engines in America and the First Nations do? Yeah, many are fiercely independent and we do have a treaty. But you can't ignore economies and their wealth was taken as an act of war and they were tricked and the usual kind of colonial game. And I don't know if you can unwind that damage. If the world were to change into an information age, if that loss of identity and loss of skill and loss of all that would actually kind of unravel, I think that the damages is probably a little bit too late. Thank you. And the situation over there is beyond my can. So thank you for explaining that. And then just to also challenge kind of what you were saying or at least my interpretation of it. So, like in the US. For example, or even in Canada, it just seems like there's a lot of divisions and some people have certain views and other people have different views, and it doesn't seem like they can reconcile on those. So I often wonder if you set aside military strength, which is where it's good to be united as one big country for all other intents and purposes. It seems like there's a lot of different views in the states. And should they all be forced to kind of share one set of laws and one set of beliefs and ideologies? And it seems like they just kind of rotate. Like one party is in power and they kind of screw over the rest of the people and then another party's in power and they screw over the rest of the people. So I don't know, it seems like that's not very stable unless what you're talking about, it survives. But maybe the states get more independence and people can move around and find things that work for them better than other places. So just looking at the chapter here and thinking about which nation states might collapse, first it says devolutionary pressures will tend to be most intense in large political entities where incomes for most of the population are stagnant or falling. Jurisdictions in Latin America and Asia, where per capita income is rising rapidly, may endure for generations or until lifetime income prospects there equate with those in the formerly rich industrial countries. And then it says, later on, another spur to devolution will be high indebtedness of the central government. So national debts would succeed 100% of GDP. That's just about everywhere by now, isn't it? Pretty much. Yeah. It's kind of like when a marriage is facing financial difficulties. It only compounds the problems. Same thing, maybe, with a nation state. When it's facing financial difficulties, people start pointing fingers and running into problems. Jeff, I think my base case for this is like some kind of world war. And once again, I think the authors might just be early and post that war. Then you have more of a dissolution into this kind of smaller states, not the huge nation states like I just watched in Japan, which is the quote earlier kind of huge debt, declining population, and they've just reactivated their military. And I think that's a very interesting. Trend, not a civil war. Being out of the states and everything else like that. It's so different there. It's very different. Perhaps you could comment on that. I don't know. Like, January 6, it seemed like they came pretty close, and I worry about what will happen in the next one, especially if Trump runs again. And whichever side wins, blames the other side for cheating. ",timestamp:"00:54:35-01:01:52",topics:["Economies of Scale","Nation States","Information Age"],type:"twitter_space",weight:6.051017999649048},{boost:0,date:1642222800,description:"[[Global Bitcoin Festival]]",episode_title:"WHY ARE WE BULLISH Duczko Thomas Jestopher Morgen Rochard Rick Vanderhulst ep229",guests:[{name:"Rick Vanderhulst",profile_picture:"",ref_id:"4c184180-b77d-4e25-ac7c-4d2e86cdde85",twitter_handle:""},{name:"Morgen Rochard",profile_picture:"https://pbs.twimg.com/profile_images/1362921386256211972/IpIK8cwI_400x400.jpg",ref_id:"c29b26e9-82c8-4c0a-8130-aa083d33ec48",twitter_handle:"MorgenRochard"},{name:"Thomas Jestopher",profile_picture:"https://pbs.twimg.com/profile_images/1607521016368201730/6GSHGkGX_400x400.jpg",ref_id:"50388de7-3ec7-401b-8349-5ee1d8a004c0",twitter_handle:"Jestopher_BTC"},{name:"Duczko",profile_picture:"",ref_id:"2b6de75e-0cf5-4fec-b458-d1b8ee3f86df",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b87feb17-6926-4295-b2c2-d1c2e9d49ca8.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/46171740/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2022-0-15%2F68b825e2-6752-7447-34ca-b27f0ea69256.mp3",node_type:"clip",pub_key:"",ref_id:"5bf12d7b-3c9b-4019-bca9-88899aaa4b35",show_title:"BTC Sessions",text:"I didn't say what I do now. So this is connected to what I've been doing for the past few months where I'm involved with a project called Global Bitcoin Fest. And we're a group of people that just enjoy listening to local communities tell their stories. What's happening in their community, what's the history, what's the setting in Argentina, Venezuela, Cuba, Ethiopia, wherever. We did this back on September 7, we did the first thing together. So we started back when neighbor made his announcement, 7 June. Okay, let's do a legal tender here. So we started having Twitter spaces where we were giving away sats in Latin America, Cuba, Venezuela, Sabato, and Mexico. So we formed a small group of people and chatting in a Twitter chat. And then one guy had this idea, okay, let's do a Twitter space 24 hours on the day. On the 7 September, let's do a nonstop 24 hours space. So we decided to separate out 24 sections and have communities join in from all over the world, 1 hour slots each, and talk about their community and kind of celebrate together the adoption of Bitcoin. What I was really taken back by was how powerful this idea was. There were so many people that just joined in and like, yeah, let's do this. We organized this literally in six days. And we had Japan, Australia, Tonga, and greater Polynesia, Vietnam, Hong Kong, Nigeria, Sudan, Ethiopia, Greece, Venezuela, Cuba, El Salvador, Argentina. Communities from all over the world were taking these slots, and we didn't have much time to assess what the actual quality would be of these spaces. And then we did 24 hours non stop. Just awesome content was just one space that was kind of like not really Maxy. But everybody else was really knowledgeable communities that have been really diving deep into this. And we got so inspired that. Okay, let's keep doing this on a weekly basis with one new country every week. So on Sunday, we're actually going to do Argentina was just announced last week. We did Guatemala, the week before that, we did Indonesia, before that, Japan, before that, Costa Rica. And there's an emerging pattern where people seem to have been these dormant cells. People have been kind of doing their own thing. They didn't kind of know what they could contribute or do. And then they've been building up all this knowledge by themselves and kind of Orange Pilling friends here and there. And now they're emboldened by everything that's happening. So, for example, I talked to Bitcoin, a Casi in South Africa, and he was like, look, I didn't know how to apply my knowledge, but now I got so inspired by Bitcoin Beach in Alzheimer. So I started this with my surf kids that I'm kind of supporting. There's 40 kids that I'm trying to impoverish communities. I'm trying to help. So now I'm bringing in Bitcoin as part of their education and making it part of my project and making like a small Bitcoin Beach here in South Africa. And there's all these small stories where all these community builders have built up knowledge for so many years. When I first drove into Bitcoin in 2017, there was so little. I felt it was so hard to find good quality knowledge. I found Andreas Antonopoulos, and that was kind of it when I was trying to Google it. So I got all fooled by the shit coin stories and everything, and I just went all in on shit coins, and then I lost 98%. Now, I really believe that ",timestamp:"00:19:46-00:24:39",topics:["global bitcoin festival"],type:"podcast",weight:6.044204792136057},{boost:0,date:1596671100,description:"Bitcoin mining;User's choice in defining value",episode_title:"Chat_45 - Bitcoin & an Energy Revolution, A panel at the VOB Conf",guests:[{name:"Christian Stoll",profile_picture:"https://pbs.twimg.com/profile_images/3296579573/69ebedb479a9bdb9d536fe887e2d3113_400x400.jpeg",ref_id:"ff74d59c-f846-4b16-a5e5-771fb8139f18",twitter_handle:"Granddragon14"},{name:"Jesse Peltan",profile_picture:"https://pbs.twimg.com/profile_images/1123954968636088326/EAjHUGDE_400x400.png",ref_id:"96309505-caeb-47bb-a1ba-712b97292675",twitter_handle:"JessePeltan"},{name:"Phillip Sandner",profile_picture:"https://pbs.twimg.com/profile_images/1043824764161335296/2SW3duCV_400x400.jpg",ref_id:"e1996e82-0354-421c-85d5-f18eebec9506",twitter_handle:"philippsandner"},{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"Christopher Bendiksen",profile_picture:"https://pbs.twimg.com/profile_images/1362772558882484233/3nS-l35s_400x400.jpg",ref_id:"d99d354e-41d4-4117-9b70-05955a85f9da",twitter_handle:"C_Bendiksen"}],hosts:[{name:"Guy Swann",profile_picture:"https://pbs.twimg.com/profile_images/1401969630634196995/DqOuszMi_400x400.jpg",ref_id:"39c31930-d799-40a0-9a46-193117d03418",twitter_handle:"TheGuySwann"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN6935967461.mp3?updated=1627959014",node_type:"clip",pub_key:"",ref_id:"4636725f-ae47-4777-bd41-f78a4694ba05",show_title:"Bitcoin Audible",text:"Yeah. And there's kind of an inherent moral question there as well, is that do we get to subjectively put our values on to them? Like in making judgments over whether or not they can make that choice as to whether or not it is their value or not? And obviously, in a decentralized system, what are you going to do to stop it anyway? It's inherently an incredibly difficult thing to control or alter. Yeah, this gets to a very deep level of freedom versus coercion. Who am I to say that you're watching a Netflix show is a waste of our common resources? I mean, that's not my tournament to make, of course. Did anybody compute how much electricity costs to watch 90 minutes electricity. Honestly, there's research out there looking into data centers which is directly linked to such activities. I have one student that looked into Amazon, currently the comfort print of Amazon, where you actually have streaming as one source of electricity consumption. I made an estimate, I think two years ago of the electricity draw, just gaming console Iceland in the United States and it's on the level of something like 50 kilowatt hours. Wow. I like to make a couple of points here. So I think that one of the important points to note is that electricity consumption is not in itself a bad thing. So electricity consumption, like electricity production and consumption is good like that is that provides value. The negative side is when there are externalities associated with how that is produced. So if we enable more renewables, more sustainable energy sources through bitcoin mining, then it's a net positive. I think the other part that is important to note here is that in the total scale of human energy consumption, bitcoin is nothing like it is completely dwarfed by any industrial process, aluminum smelting, like concrete production, scale production. Bitcoin is such a small drop in the bucket compared to any of that, that any effects that bitcoin has on a more financial level, like if there's restructuring in the way that business is done, that will be far more significant than any effect of the direct energy consumption ",timestamp:"00:21:12-00:23:48",topics:["Bitcoin mining"],type:"podcast",weight:5.944497585296631},{boost:0,date:1670547229,description:"Thoughts on the gridless mining operation that started in Africa and how the progress has been",episode_title:"Rabbit Hole Recap #230: Building in the Bear Party Rip",guests:[{name:"Jason",profile_picture:"https://pbs.twimg.com/profile_images/1458137423716622342/ctyc_MTX_400x400.jpg",ref_id:"ca893631-4be5-42c4-bff1-92cc2f6e43fe",twitter_handle:"JasonWrich"},{name:" Texas Slim",profile_picture:"https://pbs.twimg.com/profile_images/1589784780970795011/02jf0fqp_400x400.jpg",ref_id:"add0c8be-0524-43e1-a3a3-aea1058057d4",twitter_handle:"modernTman"}],hosts:[{name:" Marty Bent",profile_picture:"https://pbs.twimg.com/profile_images/1362747135981199370/mSy97J12_400x400.jpg",ref_id:"0b8ba673-da17-4371-a6e1-dd112d173b14",twitter_handle:"MartyBent"},{name:"ODELL",profile_picture:"https://pbs.twimg.com/profile_images/1421584695746338819/Z_7ZfAeP_400x400.jpg",ref_id:"6981a34b-301a-45f1-8299-59a3f719f6e2",twitter_handle:"ODELL"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/da64b29e-c2c0-41a6-ba29-acbaa2d022e8.jpg",keyword:!0,link:"https://anchor.fm/s/91b8fbc8/podcast/play/61912544/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2022-11-9%252F301977145-44100-2-474e79172e2da.mp3",node_type:"clip",pub_key:"0372cd0c8469f2034336a243e018d4d60e07efef8e7d10417807da1173bd5b002f",ref_id:"f66a9f05-a885-44f3-9673-f910c78d6360",show_title:"Rabbit Hole Recap",text:"This was cool. We were talking about this earlier, block and Stillmark, right? Yes, Stillmark and Block led a $2 million funding around for a bitcoin mining company in East Africa. You guys may have seen it's called Grades. You may have seen videos of bitcoinners. I believe Nick from Luxor, Marshall Long from Rhodium, and a couple of others took a trip to Africa a few months ago. And the common video they were sharing was like a mining operation working off a small hydro facility in some rural place. Micro hydro? Yeah. In Africa. That's what Grid list is doing. And the way I understand it, these Grid List has basically got a problem where they can spin up these micro hydro turbines that produce electricity, basically have. A pipe that running water runs, and they throw turbine in there. Yes, but it's such a rural area, they don't have that many customers, and so they have to sell the electricity at a relatively high cost. What bitcoin mining is uniquely suited to do is come in and consume a lot of that electricity or use a lot of electricity to produce revenue. They have small rural villages that have no electricity. They come in, they put a new electricity project in. They subsidize with bitcoin mining. Yes, exactly. I think it drives the price from like seventeen cents kilowatt hour down to four, three or $0.04. They have pictures of some of the operations. It's like super bootstrappy and just really a lot of just like creative engineering that's going on there. Yeah. So shout out to the team. I feel like there's a lot of overlap there with the ranching community. I would like to see all these small producers have little micro mining operations. And that's the cool thing, is we have so much of our irrigation water is in pipe, so it's very seasonal when it runs. But as long as you have enough fall, you could put micro hydro in any of those pipes and utilize it to make electricity and mine bitcoin, whatever your season run long is. And in Tennessee, you see a lot of natural gas wells on these properties, too. Yeah, I mean, that's the first hashtag that we put down. You may have seen the video on Twitter, but it's literally our hash shut. There's a fence and there's grazing cattle right on the I love that picture. Yeah. And that's the cool thing. In Texas, you have all those non productive wells just waiting for the opportunity. All up and down the Texas Panhandle. I can't remember his name. His name was Bill. He came out to Colorado. He was West Texas. He's outside of Parritten. But he was fascinated because all the stranded gas wells in the Texas Panhandle, I mean, you can smell it. It's so untapped at this point. Well, we've talked about me and you have talked about and I know Matt, we've talked about too. But if you want to think about a significantly robust circular economy, you talk about a ranch with excess natural gas or excess hydro. That's mining bitcoin. You're tending to the land, producing cattle, and then you're producing money with your excess natural gas, hydro, whatever it is. You want to talk about yielding revenue per acre on a farm. Bitcoin mining really allows you to supercharge the value you're getting out of your land. And it battles all the droughts, all the manipulation in the commodity markets, hyperinflation, extended cut dates where you can't harvest a cow. I mean, talk about saving the rancher. That is the circle of energy that we talk about. And if you're using an electric heater to heat a barn or a well house or a spring house anyways, you're going to be burning electricity. You might as well mine bitcoin, use that miner as your heater and put that stuff in cold storage for whatever it is that happens to go sideways when you need it. It's pretty cool seeing all the club engineering around using S nine as heaters. Yeah. The 3D printed parts and different ducts. If you're a rancher out there renaissance lately on Twitter. Yeah. And if you're a rancher out there who's got excess hydro, excess gas in your land, but you don't have the capital to invest in a mining operation, reach out to bitcoin miners. You can go borrow it for Barry. No. Or you just broker a deal with a miner. You say, hey, I'll give you this electricity as a pastor, I won't charge you for it, just give me a repair on the bitcoin mine. And there is like a percentage gas or hydro sitting there anyway. You're not making any money off of it. You can make 5% satisfy stream from. A minor yet if they're flaring it anyways. Yeah. I mean, that's insane. I see how much they flare. That blows my mind. Talk about wasted money. Yeah. We're doing that here in Tennessee, tom and I at Standard Bitcoin up north, northern Tennessee. There's a ton of farmland with these wells on it like the one we're using with the cattle grazing next to we just go to landowner, say, hey, we'll pay your land lease for the year. Just let us find bitcoin with your gas. So you're not using. I'm more than happy to do it. Well, I think a lot of especially in Texas where I come from, we have to funnel that information. There's people out there that's going to be extremely interested. That was one thing that we found out during the summit this year. Those type of possibilities. In the beginning, I said, one of these days, ranchers are going to innovate further into bitcoin than any of us right here, because they have all the resources and once they understand it and they get that good education, it's going to be fascinating. We're at Jason's ranch, but during the mining conversation, we had all their eyes lit up. That was a damn good presentation. Meeting the pumps and stuff, too. They all right away and immediately obvious when one of us said just like, make sure you hire a licensed electrician, or it's like dangerous or whatever, they're like, honey, this is not dangerous. Exactly. But that was so classic. They're talking about doing this and doing that. As an underground coal miner that's dealing with 12,470 volts household power is no big deal. Then if you're a bit wider and you really care about the robustness and distribution of the network, there's nothing better than getting small modular mining farms or mining data centers spread throughout rural farmland. There's nobody better to protect a bitcoin mining operation than a rancher a mennonite rural Nigerian villages. Yeah, don't, come on, bring us happening. Yes, it is. Moving on from ",timestamp:"01:18:12-01:25:21",topics:["Africa Bitcoin MIning"],type:"podcast",weight:10.341832935773114},{boost:0,date:null,description:"Kenya background, culture and tribes",episode_title:"#Bitcoin Kenya 🇰🇪 - meet the Kenya Bitcoin community",guests:[{name:"Noelyne Sumba",profile_picture:"https://pbs.twimg.com/profile_images/1585949523901292545/tWf-IwWO_400x400.jpg",ref_id:"44455b1d-76cf-49df-baa0-cd606652885b",twitter_handle:"noelynesumba"},{name:"Okjodom",profile_picture:"https://pbs.twimg.com/profile_images/1577811376487088128/J2Z4nIgI_400x400.jpg",ref_id:"4c9df92d-3bb5-4d08-9a7e-a9ba15f58f03",twitter_handle:"okjodom"},{name:"Master Guantai",profile_picture:"https://pbs.twimg.com/profile_images/1521025685078302720/w9dZwehS_400x400.jpg",ref_id:"64c326c4-d4a9-4e6c-82fe-0c9bac8a7094",twitter_handle:"MasterGuantai"},{name:"Lorraine Marcel",profile_picture:"https://pbs.twimg.com/profile_images/2361719231/German_sheperd_Puppies_400x400.jpg",ref_id:"ab30679d-7931-4921-a4f8-6fee74e412c8",twitter_handle:"lorrainemarcel1"}],hosts:[{name:"Mary Imasuen",profile_picture:"https://pbs.twimg.com/profile_images/1465290507752558596/lZVbU9np_400x400.jpg",ref_id:"2d8ed8ce-5112-4dfa-9aa2-5fa8b874af68",twitter_handle:"mary_imasuen"},{name:"Lukas Poland",profile_picture:"https://pbs.twimg.com/profile_images/1382603302160932865/RgeQnCXM_400x400.jpg",ref_id:"217a2c5a-1cfd-4840-bbff-eec43da8c52f",twitter_handle:"duczko"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/56bbafde-60ef-4e4b-b930-978429c6a635.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/9f2ebf6e-a880-4579-986c-ff0c9c517559/2cb59251-775d-4691-9c8f-30fb9d7707b9.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"0bb19102-ebb2-4519-ac7a-e6e69593a091",show_title:"Global Bitcoin Fest",text:"let's get started. We have the Kenya community here and let's talk about Kenya. Let's talk about what's happening in the country today, the economic situation, a little bit about the culture. But maybe if we could start first about the history of Kenya. Is there anyone that you must agree, Guantai, think would be the right person to start? I'll put Nilen on the spot, maybe to give a history of Kenya and that Bitcoin background in Kenya. Is that okay, Nileen? Yeah, it's okay. So when we talk about Kenya, it's a very famous country. Lots of people have heard about it. Kenya is a very beautiful country. I have to get it that it's located in Eastern Africa bordered by the Indian Ocean. We have the lake in the western region. We have a mountain in the central region. And most of you have heard about the Masai. Mara has very beautiful wildlife. And Kenya, what can I say? Population 56 million. So we have very many Kenyans. Kenya is a country itself is divided into 47 counties. And in the 47 counties we have almost 44 ethnic groups. So we're divided into tribes, 44 tribes. And I can say Kenya is more of a family and community oriented culture. Of course, this being influenced by the African traditions and what we experienced during the colonial period. And so far, I believe Kenya is a very innovative country, very driven country. And yeah, that's maybe in terms of the culture, in terms of the monetary history of Kenya, I can say Kenya became a colony in the 1920s and in the 1920s. We used to use the Indian rupee back then. And it was before that it was abolished and we started using the East Africa currency. So this was used between Kenya, Uganda and Tanzania. Back then it was known as Tanganika. So we've come along with, in terms of our currency as Kenyans eastern Africa currency was used for a while. Then came 1966. So we gained our independence at around 1960, 319 66. The central bank of Kenya was established. And with that, they started issuing currencies from five cents, ten cents, twenty five cents. Yeah. That was around the 1960s. If you look at history books, it says during that time, up to the 70s, kenya's economy was flourishing. So we were doing quite well until the 1980s. Usually talk about what the hell happened in 1971. So it really affected Kenya. And so the 1980s had lots of deterioration of the coffee industry, tea industry, which Kenya is very well known for exporting, if you've heard about Kenyan tea. So we had financial deficits in our balance of payments. There was a shortage of forex, very bad shortage of forex in the 1980s in Kenya. And with that, we, the government obviously turned to the World Bank and the IMF and it suffered the conditions that came with that through the structural adjustment programs. And so far, fast forward in the 1990s, we had the effects of the structural adjustment program. So in this, you found that the conditions were privatization of the public sector and also in terms of agricultural production, the government was really onto it. And the consumer policies, they were work 2021, we still are undergoing some structural adjustment programs 20 years later through stuff like the extended Fund facility from the IMF. And of course, it comes with its own effects. We have wage bill being frozen for the sector and for the health sector, for example, that led to the firing of lots of Nazis. So you find that our health sector, the key areas that are important to people, end up suffering first and the health sector amongst them. So, yeah, I can say in terms of our history, we've come a long way as Kenya, but we are still persevering. Thanks. Hello. Is anyone with me? Yes. I was just waiting if somebody else wanted to jump in to share about Kenya. Yeah, only Lorraine can do the culture for us. Lorraine. I just arrived from Ghana. I was with Lorraine in Ghana. She's a fantastic lady. I got to meet her for the very first time, and that felt really good. So, Lorraine, if you can tell us what do you think about the culture of Kenya? Okay, thank you for that. Nolene, it was also a pleasure just meeting you. Noline has mentioned we have 44 tribes. Different tribes. Right. The funny thing or the interesting part about Ken we don't have one major culture that defines us all. We have different tribes, have different distinct cultures. And this is interesting because as we meet, we get to chandler about each other. I'll talk about having different groups. We have three distinct groups. I think there's a fourth one. But I'll talk about the banter. I'll talk about the nylons and the Cush outs. So within these three groups, you also have now we have the tribes in them, right? And the Banter is actually the major one. We have the Luas, the Kikuyu. The canvas all in the bantu's. And I think Gwentai and Nolin at our bantu. And then there's us, the nylon, the Lewis, the massage, the Kaleen jeans. And then we have the Kushites and so much more. Right? I believe Kenyans are pretty enterprise. They are hustlers mode. Of course, not as much as Nigerians, but we are very entrepreneurial. We like to do business, we like to get things done. We are very friendly. By the way, Kenya is a very welcoming country. That's why you see, like most investors actually just like to come to Kenya and have their business here. Invest in us, invest in our structure. Right? What else can I say? When it comes in terms of religion, it's an open thing. We have freedom of religion. You can be a Christian, though. Majority are Christians. And then you have 10% being Muslim. And then there's a small section, the Hindus and the Sikhs, minorities. But it's an open space. You can worship. You can worship or just pray to whoever, anything that you want. What else can I say about our culture? I think that is what I would say about culture. I'd also talk about as Kenyans, we can boost about the natural resources that we have. We have the wildlife, we have the mountains, we have the lakes, we also have the oceans. It's really a beautiful for people who are thinking about coming to Kenya, it's a beautiful place that you can come to. You won't necessarily miss a thing to do here in Kenya. You can visit the Maasai Mara as Nolene mentioned. You can visit the Indian Ocean. You can even just chill in the bushes with the lions and the giraffes and all that. So about language, I think that is part of our culture. We actually speak to Ahili and English as the main languages here. And so Healy was brought about by the Arabic and then east people. This was to facilitate the trades back then, the East Africa, we have Tanzanians, Ugandans, also speak Swahili. What else? I think that's about it. When it comes to our culture, I'll just call you, okay? Because I can't pronounce your name. Would you want to add something on that? Just mention the favorite food. Kenyans love their Galilee and you can take it. The number. I was in Ghana and I think I told noline. I miss Susan. I want to go back home and eat Susan. So it's true. Absolutely. Yeah. So you have to try that. It's made of khan. So khan pairs very well with things like fish. And there is also another highlight, which is Namatoma in Sahil that is roast or grilled beef. Could be beef. Could be good. Very good. If you're out there taking a bit of a drive, experiencing game drive, you're experiencing maybe the beach. If you ever visit Kenya and go to the cross part of it. So there's a bunch of things to see. It's a lively culture, very welcoming, but that is objective from this side. So you have to experience it for yourself. You're welcome. ",timestamp:"00:37:27-00:47:45",topics:["Kenya structural adjustment","Kenya cultures","kenya"],type:"twitter_space",weight:5.850915908813477},{boost:0,date:null,description:"Bitcoin is the only asset that don't have counterparty risk",episode_title:"Bitcoin Backed Stablecoin’s",guests:[{name:"Andrew Begin",profile_picture:"https://pbs.twimg.com/profile_images/1461826323102449665/spEoEcpR_400x400.jpg",ref_id:"28db7b9d-1c71-4981-8044-baf001e58b94",twitter_handle:"agbegin"},{name:"Yago",profile_picture:"https://pbs.twimg.com/profile_images/1369335486456684546/AIJdrQ5l_400x400.jpg",ref_id:"0819a9d1-c085-42d5-8b3b-bc3ce79ff1ea",twitter_handle:"EdanYago"},{name:"Sovereign Horizon",profile_picture:"https://pbs.twimg.com/profile_images/1604168916300873731/mLszGVm6_400x400.jpg",ref_id:"6c159904-fe63-437e-91b5-5c444bbd11fa",twitter_handle:"SovereignHRZN"},{name:"Art of Thomas",profile_picture:"https://pbs.twimg.com/profile_images/1547047357371797504/avnHBa2W_400x400.jpg",ref_id:"2c312138-9a5f-4a75-9c19-513d5703d5ce",twitter_handle:"TheArtOfTomas"},{name:"Maximiliano Carjuzaa",profile_picture:"https://pbs.twimg.com/profile_images/1566622024662917120/B6uyn9QR_400x400.jpg",ref_id:"a5273c83-28f1-4df3-b8c6-d3b081f55b31",twitter_handle:"maxcarjuzaa"}],hosts:[{name:"Alexandria The Great",profile_picture:"https://pbs.twimg.com/profile_images/1575525599493427203/XubWEoDX_400x400.jpg",ref_id:"0c977f79-ed3c-46e9-8363-6c6c519d014a",twitter_handle:"alesander97"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/046c6869-0627-4825-8ecf-45ff0aed97b6.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/5e4a506b-0534-4217-b682-b568f6212b73/2b4c8ed5-a7cc-43df-95f1-0d75e2c886ab.mp3",node_type:"clip",pub_key:"",ref_id:"3ff527f0-04a4-4bb5-9279-87f48ac98da0",show_title:"Alexandria The Great 🌋⛏🇿🇼",text:"Yeah, I love that explanation. I think we can't really get rid of counterparty risk. But I do think that there are ways of minimizing it as much as possible. And when I look at all stable coins, I think the one stable coin that really stood out to me was dollar and chain for how it minimized the labor of counterparty risk by firstly making sure that everything was done by small contract or funds. Like Yoga said that everything can be you can look at all the amount of bitcoin that's backed on the exposure so you can verify everything. And then also the fact that it's backed by for 169, for example. Even. Though there's a dispute about how much that's relevant. But if you look at most of these other like you talked about Taylor for example where you first had counterparty risk when it comes to just who is keeping the funds with the UST where you don't know whether how much these guys have in the bank? The audit. The auditing and all that stuff. I see. So when you have a question, maybe you can dispute about what I'm saying. No, not at all. No, it's not related. I can go after it. You can go now. Sorry. I guess it is kind of related because with the dollar backstable coin there will always be risks. But when I'm using USBC, okay, it's very centralized. And yes, the risk is that my money could be frozen by the US government if they were to enforce that, which I believe they do in some cases, or at least on Tether. I'm not sure about USBC, but the point is that they could. But at least I know that there are dollars in a bank account. Or at least it's supposed to be. But with USDC, I believe it's more transparent. Right. I don't know, Max. I think maybe just when I read about the money on Shane, I was a little bit scary because there's so many tokens involved or maybe I don't understand it yet, but maybe there's something I'm missing and I'm hoping to learn. Yeah, I just wanted to agree with what you were saying, Alex, and at. That point, ",timestamp:"01:12:39-01:15:04",topics:["Bitcoin asset"],type:"twitter_space",weight:5.823068022727966},{boost:0,date:1675801804,description:"Hacker space opening in Italy similar to Bitcoin Park",episode_title:"CD87: Bitcoin Dev Kit with Steve, Daniela, Alekos, and ThunderBiscuit",guests:[{name:"ThunderBiscuit",profile_picture:"https://pbs.twimg.com/profile_images/1004180692794839040/qvYqY796_400x400.jpg",ref_id:"2932056a-dad7-4618-9c8d-d275b9f150d5",twitter_handle:"thunderB__"},{name:"Steve",profile_picture:"",ref_id:"8602c01d-a34f-426d-b143-581f25d3d3c8",twitter_handle:""},{name:"Daniela",profile_picture:"",ref_id:"7d011916-5300-4d32-a08b-fe4731bff5f2",twitter_handle:""},{name:"Alekos",profile_picture:"",ref_id:"9b7499d2-4c12-48c9-b8ed-614d09f0fdf2",twitter_handle:""}],hosts:[{name:"Matt Odell",profile_picture:"https://pbs.twimg.com/profile_images/1421584695746338819/Z_7ZfAeP_400x400.jpg",ref_id:"4f2825ff-3b88-4595-84d4-36e81544b79a",twitter_handle:"ODELL"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/a09a2c49-84f1-4d0b-b150-6e6103f4ee41.jpg",keyword:!0,link:"https://anchor.fm/s/45563e80/podcast/play/64675885/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-1-7%252F311592986-44100-2-a038b9bfbe62c.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"5458df9b-3a25-4e1e-b7a0-e14daaa8d66d",show_title:"Citadel Dispatch",text:"Speaking of communities, I'm going to self promote our dealers doing so. Daniel and I, we believe in Italy. We live in a small town Canon, near Milan called Brexit. Probably nobody has ever heard of it. We are bored when we're there. We just don't know what to do. So we decided to open kind of a bitcoin acrospace. Awesome. It's going to be super small compared to this. It's nothing compared to Bitcoin Park, but yeah, you got to start mall, I guess. Good goals to have that. So is it open yet? No. Right before leaving, we signed rent. Oh, congratulations. Yeah. So we found a spot in the city center. So cool. Like Italian. How far is it out of Milan? It's 1 hour by car. That's awesome. With trains, it's like 35 minutes. I love Milan. Milan is a great city. Yeah, I mean, yeah, we used to live there. It's it's good. It's also bad. Well, I'm a former New Yorker, so Milan feels like Italy meets New York. Yeah. Yeah. It's like it was very familiar to me. It wasn't like a tourist city. It was actually like I was there and people were going to work and things. Yeah. It was a big financial center of Italy, I guess. So, yeah. We're doing this thing hopefully in a couple of months, it's going to be ready and fully open. So if you come by Italy and. Europe, how do we find more information about it? Do you have a site or anything? Yeah, we have a website. The website is BS. It the place is called AK BS because BS is like the shortened version of Brexit of our city. Cool. Actually ACS, maybe I shouldn't say this because some listeners will come in and steal the domain for us, but Act PS is a valid DNS like domain. It's a Bahamas domain, but it costs like $500. So we can't afford it right now. Someone buy the domain for them. Yeah. And give it to us, please. So we have the Aces it domain, which was much cheaper. Yeah. We have a Twitter profile which is ACBS with the four in place of the year. Is that ACK. Like a meaning like acre? Because it's an accurate space. Yeah. And I think it's going to be where we want it to be. A bitcoin like physical place. Probably going to be more of a cipher punk. So we're trying to open it a little bit more. Yeah, not the sheet coins, obviously. Greater open source. But yeah, greater open source kind of environment. Because in that small town, there are not that many bitcoin. So if you just open a bitcoin space, I think what is going to come instead if we open a space, which is more of a basically where we teach about privacy, about freedom, about technology. Kind of like a CPB. Exactly. That's one of the big that's one of the big inspiration. 3D printing. Yeah. We're going to have a lot of non software stuff. So I want to have like 3D printers, CNC machines. That's awesome. But also like art and things like that. I didn't know. Yeah, that would be great. There's only one designer and we don't have any two of them. One of the things, we're not artists. We have art all over because you empower the local artists. We have walls. Yeah, that's what we want to do. Apparently policy is full of awesome art because I think at some point they managed to onboard the artist. So I hope we're going to be able to do that as well. To onboard people that are more of an artistic style than us. And they'll make paintings for us. You're first thing to go up on the wall, which is from here in Nashville. The Spiral guys took us out on a little team building exercise. We went shooting. Shooting automatic weapons and handguns. Love it. And sniper rifle. In an old movie theater. In an old movie theater. So anybody in Nashville here? I recommend going checking it out, but they let us keep the target from one of the from the sniper rifle stuff. So we got yeah, that's going to. Be the first part for that. Because in Italy, guns are like, I don't know, maybe for American people listening to these, they think, oh, California, nobody can get a gun in Italy is like worse than that. Nobody really? California is very easy to get a gun in comparison to Italy. Yeah, it's like in Europe in general, probably nobody has ever seen a gun. Basically. I'm glad you got to experience our local pastime. Yeah, I know. That's great. Super fun. You can train us in building Bitcoin wallets and we'll train you how to use them. Yeah, I know. It's super useful skill, actually. I mean, it's fun. But it was also interesting for me because I'm like, maybe in the future I'll need to shoot a gun. So it's a useful skill to have to defend yourself. And going back to the hackers conversation about yeah, not talking about people not taking personal feelings, that big thing. People don't have guns because they don't take responsibility for their own life, basically. And you're saying, too, it's a whole other technical rabbit hole to fall down, too, like how the guns work, how to maintain them. We didn't do that this week. But it's another protect. People know about those other things too. But to the hacker space, I mean, that is awesome. And I love seeing all the different spaces, physical spaces opening up. And one of the cool things with Bitcoin Park is like, a lot of people come here and then go back home and then they launch something back home. Everyone's just like, how do I do this in my city? Well, at the scale of Bitcoin Park, you do it by losing a ton of money. So I don't suggest that, but start small. Physical spaces are really important. And I'm happy if you guys need any feedback or anything like that, we're happy to help. And we're already talking about like I said, he was kind of helping us look at the coffee machine yesterday. Just but technological trading back and forth too. Like, alicos has a bunch of great ideas and Danielle like great ideas for hackerspace stuff that, hey, maybe that's kind of stuff we want to do here at Bitcoin Park. And some of the ways we've got some of the things we've set up here, the art and all those things, it might be taken back home. So, yeah, I feel like there's not so much of the practical side of building things. This is like a great off if they don't have 3D printers and stuff like that, which is something we really want to have tools. And you can I would love to. Have 3D printers here too. There's going to be a lot of cross pollination between all 100% oriented community. And it's very grassroots. It's very like bitcoin. It's inherently distributed. It's not like one group is doing it. You go back where you live and then you open one. I think for us, yeah, the main inspiration was parallel in palace because it's super cool. And again, also the same with us. Here was parallel palace. Yeah. We just made it easier to pronounce. Other places. Great. So, again, we're going to be like nothing compared to them. But that's, I guess, how you start. You can go up. At some point, we'll be reaching out to get a proper place. I'm already so hyped because we've done like a notion page with all the events we want to do and all the projects we want to work on. And there's just so much stuff. We're just like we're going to have game night and bitcoin night and movie night, where we show The Matrix and other films that might help people to just understand the, I don't know, like, psychopath point of view. And then we have so many projects we want to work on, like, I don't know, fridge, which you can be with Lightning and then you open it and you take whatever you want it to buy. Like a self service bar. Exactly, yeah. Because, again, I think the problem for us is going to be there are not that many bitcoins, so we have to be open to tech people in general, to people who build this. But it also will click to them. It'll click to them if they make their first bitcoin payment, actually just using bitcoin, even if it's the shittiest wallet. Buying a beer at your little bar with Lightning or with bitcoin. There's so many people that come here. It's the first time ever using bitcoin and maybe they've been in the space for like four years, three years, and they just never actually used it to buy something. They have this thing called the Blessed One One, which is an ATM, like a really small one, which accepts coin. So basically, people just I don't know, they take out their coins that's good pockets and they just buy one. Europe change. You put it in and you get SAS and Lightning and then you can. Buy them how to set up a wallet. Yeah. Great workshops. A thing. You guys did mention it before, but they do if anybody wants to support what's going on there. In Russia, they've got a BBDC Pay server where you can how do we get there? Donation page. Yeah, on the website. And it should be like a donation. On the front page, I think a link to it. Yeah. In the menu, I think, above. Great website. We're also on Geyser. That's fun. Yeah, but we don't have our own license. Yeah, we do have only address. Sorry, so what are you using, like a Lightning address with them? I didn't know they set up something for us. But they take a fee because we don't have L and D notes and they just pay service. Best approach? I'm looking at it. It looks great. 10,000 euro soft cap goal. Yeah. I mean, that's kind of a random goal. We're going to open the place anyway, so it's not like we need to reach a goal to open it. We're going to open it anyway. And we're going to start super small. Right now we're looking for a used furniture. Like we're looking for a desk that we can get it for $20 or something like that. Yeah, if you're going to buy chairs, we're going to buy used chairs because yeah, absolutely. Yeah. We don't have a specific goal in mind, but whatever we can get, obviously it's going to go towards ",timestamp:"01:06:35-01:16:24",topics:["Bitcoin Park"],type:"podcast",weight:46.10662364780383},{boost:0,date:null,description:"Bitcoin Standard is encouraging value for value system",episode_title:"The Orange Sun 🌞 VISA, MasterCard & #Bitcoin #BOLT12",guests:[{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"~₿ Maxi~",profile_picture:"https://pbs.twimg.com/profile_images/1446241859651637250/i67F3y9p_400x400.jpg",ref_id:"ad997ae7-0726-431a-9f72-82da091c0658",twitter_handle:"fede0891"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"FireBurs†s",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"cda1d3ad-dd80-458b-a5fb-a28861df10a7",twitter_handle:"FireBursts"},{name:"Nikolai Tjongarero",profile_picture:"https://pbs.twimg.com/profile_images/1578458155964682274/_SzDxkAJ_400x400.jpg",ref_id:"821ee040-2267-454e-a59a-92da51568afa",twitter_handle:"BitcoinNaijaShw"},{name:"ブランドン",profile_picture:"https://pbs.twimg.com/profile_images/834861311762649090/N0KAP4zH_400x400.jpg",ref_id:"3d41531d-6a59-4771-81f9-0924b4c02561",twitter_handle:"blario"}],hosts:[{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/94a86a32-91c2-4717-b5cb-b36cef925776/38decc02-c922-4c1d-a605-7cd54c91a01d.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"5483d49e-fa1a-430c-9d2a-ed11e3a6beec",show_title:"Satoshi’s Journal",text:"I implore you to check out and have this website on your desktop or on your phone. I literally have it on my phone and I click them every morning for the show. Super helpful. They're free. TC is going to be making it open source, so we think it's good now, but there's going to be a lot of people that can make it better once he makes it open source. Timechainstats.com, I don't think is open source, that is Aunt's Baby. So he just updates it as plebs, give him inspiration or constructive criticism. He makes it better. So check out both of those soon to be on our website. And then lastly, most importantly, the subject today inspired by Master Guanti was just bitcoinners are charitable. We could probably talk about this for many, many more hours in 2 hours, but I think that the biggest thing that I've seen in the bitcoin space with bitcoinners is I haven't met one bitcoin that's not charitable. They want to help people, they're selfless. And I think bitcoin is a reflection of what the future is going to be. Because when your time is denominated by a money that is actually representative of your value, I think you'll be more happier. You'd be happier. Sorry. And you'll actually be able to help people because you'll have money that is not inflating away faster than you can create it or you can make it. And so I think right now we're seeing a small iteration of living under a bitcoin standard. So bitcoinners are trying to help each other everyday on spaces, even just taking time out of their day just to create a new tool. Like we just talked about timechainstats.com and timechain. Sorry. Timechainstats.com and timechaincollender.com. Those two tools were created by two individuals. Timechainstattsk.com has been in the works for over two years if I'm not mistaken. I think when I first got spaces, Ant was working on it and he's still been working on it and revamping it and making it that much better. I mean, he's not getting paid to do that, he's just providing a tool and it's a very helpful tool. And now you got time train calendar, same thing. TC is not getting paid for it, but he's created it. So I know that TC has a donate button, so if you have a chance to send him some stats, please do. I'm trying to find it now, actually. So if you go to the app, I think it's under, let's see, where is it? Oh, so if you click the settings button and then you go to contact, you can find it. It says, donate me a beer or cup of coffee. Cheers. So I clicked his donate button and while I'm here, I'll just send him $10 here. Okay, copy. And just go to Strike and $10. All right, so, yeah, you can simply do that. It took me just a few seconds, but at North, TC expect tips. No bitcoin, really expects tips. They give the option of tips, but, I mean, it's like freaking twisting a Bitcoinner's arm to be able to send them tips. Like, no one wants to get tipped. I mean, they do, but they don't like they feel like they're what's it called? They don't want to bother people. So, yeah, just tip those people that you respect their time and the value that they bring on a value to value basis. I think that's the future. It's funny because we should have already been living a value for value basis, where you provide value and you get whatever your value is in return. But Fiat has broken that system, but now we're living it. We're seeing it through our fellow pubs. They provide value and we provide. So, for instance, the videos that we've been doing with Wicked, those aren't free. He charges us a certain amount and I'm willing to pay him that amount because the value that his videos provide you all and me, obviously, is a function of how many views we get. So one video got 570,000 views. Apparently that was valuable. The current one is 15,700 views. Apparently that's valuable. So I will continue to provide monetary money to those people that provide value to me and vice versa. So that's just the way it should work, and that's how the future is going to be. ",timestamp:"00:29:58-00:35:57",topics:["Bitcoin Standard","Bitcoin Tools"],type:"twitter_space",weight:5.705638647079468},{boost:0,date:null,description:"Seed phrase metal backups - seed phrase stamping systems",episode_title:"#Bitcoin Self Custody Q&A Episode 15",guests:[{name:"@ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"29e1a1c3-1dbe-4ab2-955d-8a7a7476996b",twitter_handle:"ToxiKat27"},{name:"@Lil_WhiTe_Boi19",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"c737d37a-be78-4bd1-823a-04d569aefcfe",twitter_handle:"w_s_bitcoin"},{name:"@Tarek_Z_Saad",profile_picture:"https://pbs.twimg.com/profile_images/1598082570931130374/aiUPJ1HC_400x400.jpg",ref_id:"16091cbf-d110-4299-af6e-84ecd0429d59",twitter_handle:"Tarek_Z_Saad"},{name:"@BeyondBlu3",profile_picture:"https://pbs.twimg.com/profile_images/1577513247107842050/JCDgPikZ_400x400.jpg",ref_id:"0be89e9a-6e96-4241-8ee8-cdebf9b134b1",twitter_handle:"BeyondBlu3"},{name:"@life2_one",profile_picture:"",ref_id:"d2a45191-e863-4e56-8a05-08afdff7f421",twitter_handle:""},{name:"@KahnsMichel",profile_picture:"",ref_id:"937fcaa9-4b73-4fbe-ada4-b40720644a1d",twitter_handle:"kahnsmichel"},{name:"@Jimmy14624",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"73c17ab8-ce99-4c87-ba45-3334c255c97b",twitter_handle:"w_s_bitcoin"},{name:"@SovereignHRZN",profile_picture:"https://pbs.twimg.com/profile_images/1604168916300873731/mLszGVm6_400x400.jpg",ref_id:"2811a110-d1cc-4a2d-bead-59b4e1805817",twitter_handle:"SovereignHRZN"},{name:"@XpatSantiago",profile_picture:"https://pbs.twimg.com/profile_images/1599096281493778433/qeSvcIuj_400x400.jpg",ref_id:"bca4859c-3c8b-42c2-a0ee-86eb581f4078",twitter_handle:"XpatSantiago"},{name:"@MrHodl",profile_picture:"https://pbs.twimg.com/profile_images/1570497262735728640/q5ZDJFKz_400x400.jpg",ref_id:"8abfce7f-a49d-49f9-8bab-6861e41910d5",twitter_handle:"MrHodl"},{name:"@bankhatin",profile_picture:"https://pbs.twimg.com/profile_images/1596672372744019969/prxTKz_7_400x400.jpg",ref_id:"c4af2875-19ec-4439-85da-4ff34ae397fe",twitter_handle:"bankhatin"}],hosts:[{name:"Wicked Smart Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"6bbf5f18-35e4-4ad0-aade-dbd493b1f4eb",twitter_handle:"w_s_bitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4127f08c-505a-4a7d-935f-e93e87204089.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/58879b11-db25-4b12-b182-960933e015e9/df9bdaae-4143-4873-baa6-dd7e56407c6f.mp3",node_type:"clip",pub_key:"02814a5050f43a36bb052c7a3f22f0e86700abe037a44d99b45e0cb424d9398cbf",ref_id:"d9edac8b-8349-4e52-b61e-a22ef687f4f3",show_title:"Wicked Smart Bitcoin ∞/21M",text:"Hey, guys, I just had a quick thing. Ed, you were talking about stamping it in metal, and I bought a buddy of mine's house burned down and he left his chain in there and it was just a pile of melted. So the titanium thing is definitely for the heat, you know what I mean? I don't know what temperatures the other metals go out at, but there was some left of the metal. Yeah, there was a pile. Has a video of all the hardware, all the metal devices with. He went through, he stressed us. He took molten, basically fire. He was shot at with the AK 47. He did all sorts of tests and I'm not sure, I don't remember the exact results for each one of those titanium plates, but it's there. So if you go on Twitter and you look up Loft and you look up some of these metal backups, there's a video out there with him doing all these tests. And yeah, they're not all created equal 100%. Yeah, I think it's changed. Mostly made out of copper, I don't even know. Or nickel. Those are metals that have a much lower melting point than steel and titanium, obviously. Titanium has probably one of the highest ones, right? Titanium. You can literally drop it in a volcano and it won't melt in the lava. Not that it matters, but like yeah, in a house fire, I think as long as you have it stamped in steel or titanium, like, it will survive the fire, right? Whether it will survive a shot from AK 47, that's another question. I'm not that paranoid. I'm not getting shot at enough to really care about that. Fire gets hot, man. It made a Toyota into a pile of metal also, you know what I mean? So it's hot. I'd stick with titanium if I was going to stamp anything on, anything. But yeah, I will say I myself use titanium plates, as I said before. And there are some benefits to that one is that it's a lighter metal, so it's easier to just fucking store. You have a big pile of them. It's not going to be heavy. That doesn't really matter too much to most people. That's one, though, it's kind of nice. And then it's also stronger. So like, it doesn't bend as easy if you've got a thin sheet of it. Because the ones I use are like pretty thin little cards. They don't bend. But if you're using kind of a thin version made out of steel, it would start to bend and warp. That can be a little bit more of a concern if you're worried about the plate, like bending in a way that could fuck up the lettering or something. And then of course, the biggest benefit in my mind is like, it's just got a higher melting point. But all that being said, it is harder to stamp into. So you have to really put some fucking muscle into it when you're stamping these things, right? And I've posted videos of like not videos, but pictures of the hammer I use when I stamp these things. It's probably not the best hammer for doing it, honestly, because it's like a jewelry hammer made out of copper. But man, this thing is fucked. It's just totally warped where I actually hit it because you have to hit it really hard to imprint the lettering in titanium. So definitely it requires some proof of work if you want to use titanium plates, you know what I'm saying? Yeah, one more thing I just wanted to add real quick and I'm done. You guys say don't use your names in your seed freeze. Is that even common names in your past phrase in your past race? Okay, I thought it wouldn't generate a name, right? No. If you're curious about what words are in the seed phrase, you can look up bit 39 word list and you'll see it's a list of 2048 words. Each one has a unique starting four letters, right? So you only need the first four letters of each word. That's a little known secret, but like if you're stamping them in titanium, you're going to save yourself a lot of effort and a lot of time if you just stamp the first four letters because that's all you need. There's a little bit of alpha. And then in terms of your passphrase, that can be anything you want. So that can be any characters, upper, lower case numbers, spaces, literally anything you want can be that passphrase. Now, of course, the more crazy and complicated you make it, the more responsible you have to be when you are backing it up or writing it down or memorizing it or whatever. Right? So there's a trade off there. The trade off is you can make it really complicated, just like how you can make a password on your bank account really complicated. But if you forget it, then you lose all your bitcoin. So you just have to make sure your backups of it are done really well. Don't fuck that shit up because it's really hard to recover your funds once you forget your passphrase or are uncertain if like, oh, did I make all these characters some of these capitalized, or did I put a space there? Or did I use an underscore or that these types of things, just like a password. It gets really fucking risky once you start throwing in a bunch of random shit, and then you just have to make sure that he backed it up really good. You know what I'm saying? Yes. All right, let's go to whoever had their hand up first, wasn't paying attention. I just want to tell everybody, if you need something like this, I mean, steel crypto, you can just look, I'm sorry. It's written Sierra, Echo, Echo, Delta, October, Romeo. And they also got pretty cool videos on YouTube. And it's very small, and you can hide it in the door, or you can make a hole in the wall and hide it there. It's pretty cool. And it's about $150, and it's with hammer and stems, and it's made in Germany, stainless steel. I just want to let you know it's pretty good because it's not so big like a card. That's the difference. Because if you want to go out with it, I think a card can be pretty hard in your pocket, and it's just like a roll. It's like coins you stem. Yeah. So there's a bunch of options. There's a bunch of companies who are now starting to make different options for this, and there's a bunch of good options for me, myself. A lot of these options are getting pretty expensive, right? $150 for, like, a metal backup is in my mind, that's too expensive. I'm not going to spend that kind of money, especially since one thing I'm doing is I'm helping a lot of my friends and family kind of get their seed phrases stamped, whether I'm doing it for them or whether I help them do it. Obviously, if I do it for them, they have to trust me. But it's better than them fucking keeping their bitcoin on exchanges. So I do what I got to do. And because I'm doing kind of a lot, I'm like dozens or whatever, I've kind of made my own DIY system, stamping system, and each of the titanium honestly, each of my titanium plates runs me about $2.50 a pop. I've got it down. I've got my price down per se stamp. So I can't imagine paying, like, $100 just for one or two set ups, you know what I'm saying? I'm sure it's nice if you have. A good passphrase, you can make many backups, and you can spread them out. Seat race. A metal plate is nice if your house gets burned. But if you have a backup of your seed in your mother in law's house and your grandmother's house and your cousin's house, and in a bank account or in safety deposit box, if your house burns down and your seed burns down with it, well, you have four or five other backups in different locations. And as long as your password is good, that's the main thing. I try to, like, hammer home is that your passphrase has to be as long as your seat. Those first four letters of those words, that's how long it has to be for it to be as secure as the seat itself. So I personally have yeah, I have it. I bought Crypto Stealing a long time ago. I don't really think I ever used it because I just have so many backups laying around different locations. So I don't have that signal point of failure. So, yeah, it really depends on how you're set up. Also, if you're mostly safe then you don't really have to worry about any of them. Yeah, that's a whole nother can of worms, which always gets brought up. And I love talking about multi saga as well. I think it's pretty interesting setup configuration. The other one that a lot of people use is like you can 3D print or buy for like 510 bucks the the stamping guide for stamping steel washers, you know, and that's one that a lot of people use too. You just get yourself a bunch of cheap stainless steel washers. You stamp the first four letters in each one and then you bolt them all together. Make sure you bolt them in the right order, of course, but that's like a good economical way of doing things too. If you're trying to back things up a little bit cheaper. You don't want to break the bank for a dopeass stamping system. I will say, man, like the fucking what was that company that made the titanium ones, like the Thor, whatever comes with the hammer and it's like $300. I was envious of that stamping system and that's ultimately what got me to just do the DIY myself. Because if you look at my setup, I designed and 3D printed my own stamping guide. And if you look at it, it's like kind of pretty similar to what they had. But yeah, I mean, peach their own. Anyway, the whole point is back up your fucking seafarers. Don't rely on don't rely on your device holding that for you. Whether you're holding it on a hot wallet in your phone or whether you're holding it on a signing device, you got to have backups because there's no guarantee that your phone's going to be with you forever. You might lose it, the app might stop working, your signing device might break, you might burn in a fire. You guys have to have these things backed up. So either back them up on a piece of metal and store that somewhere safe or back it up in multiple places with a pass raise on top for that extra security. There's many different options, but you just have to make sure that whatever option you choose works for you and is secure. Go ahead, Sovereign. Yeah, I just want to comment on the price point of steel plates. I have been looking around a little bit. It looks like to me the best bang for your buck if you're going to go with steel is keystone. It's like exactly the same as biddle fabulous. And it's $49 and they also have $39 option and it's yeah, like using $100 or more for steel plate is just ridiculous. I know everybody loves to kill the bill fuddle, but come on man, it's not worth that price. So yeah, that's what I would recommend. Check out keystone. I know, I'm getting a couple of those from myself. Yeah, there's options for everyone at every price point I think. Yeah, I've got some poor friends and I'm just like buy some fucking washers and just get yourself a cheap stamping system off Amazon for like $20 or whatever and go wild. Because the other thing about these seed phrase stamping systems is you're not going to keep that seed phrase for your whole life, let's be honest. Most likely, most likely you're going to cycle through a few kind of throughout your time in Bitcoin, right? You're going to figure out a new way to set it up or you're going to want to just kind of make a new one just to make sure you're up to speed on everything. Maybe you will keep the same one your whole fucking life, I don't know. But in my experience I haven't. I kind of cycle through them every once in a while just to kind of keep things fresh. And so if you're spending fifty dollars to one hundred dollars on a brand new seed plate backup every single time you create a new seed phrase, I can get expensive real quick. So finding yourself an economical way of doing that might help out the other thing with these keystone. So here I'm looking at the link that you just sent in the nest. One thing I don't like about these things, these keystone tablets is if they ever get damaged, if they get warped and then those little letters pop out, then you're fucked. Right? Yeah. That's why they made the plus one because the cheaper one for 39, they had one slot for four letters but now they've updated it to the plus, which is like 49 instead of 39. And now they actually have one individual slot per letter and also like 20 more screws or something. So it should be better. But yeah, they can be worse. But for a multi sake set up, I wouldn't be worried. Okay, got it. Okay, I see here. It looks cool for sure. I've just seen some reviews. Like I haven't tried it myself yet, but it looks for the price point, I would rather get two of these than a bill model to be honest. Yeah, cool. Yeah, good stuff. All right. Well yeah, I think we kind of beat that to death. I just want to show you because I think not everybody got the knowledge as you post. I just want to make it everybody as easy as possible. So I just want to think to everybody, you know what I mean? I mean somebody get, I don't know, thirty k a month so he don't give a fuck about the cost. So that's a fiat world. It's so crazy and insane. ",timestamp:"01:23:06-01:39:40",topics:["Titanium seed phrase plates","Seedor","keystone","titanium"],type:"twitter_space",weight:5.703676700592041},{boost:0,date:1676083645,description:"Lessons from previous Bitcoin soft forks on Bitcoin",episode_title:"BR023 - OP_VAULT for Bitcoin Covenants Panel ft. James O'Beirne, Rijndael, Antoine Poinsot & Carman",guests:[{name:"Carman",profile_picture:"https://pbs.twimg.com/profile_images/1609775498971725824/5vyAafE3_400x400.jpg",ref_id:"09405d70-6fa6-4f2c-92f1-a2951ad56447",twitter_handle:"benthecarman"},{name:"Antoine Poinsot",profile_picture:"https://pbs.twimg.com/profile_images/1108377445936316423/ArRDGbr5_400x400.jpg",ref_id:"1ba10809-b3e6-4e37-a906-697a0368b814",twitter_handle:"darosior"},{name:"Rijndael",profile_picture:"https://pbs.twimg.com/profile_images/1542705395873058817/0zsy4Yur_400x400.jpg",ref_id:"861d5324-8ede-4059-826f-f29abca5d7e6",twitter_handle:"rot13maxi"},{name:"James O'Beirne",profile_picture:"https://pbs.twimg.com/profile_images/1542173995650408450/iDxrdmuj_400x400.jpg",ref_id:"e8e48fcf-9e54-4c66-9b20-aacf5c5b504e",twitter_handle:"jamesob"}],hosts:[{name:"NVK",profile_picture:"https://pbs.twimg.com/profile_images/608402052247658497/ENDv0BNd_400x400.png",ref_id:"d754e29b-2d3e-4280-8d72-f41d2a465a78",twitter_handle:"Coinkite"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f1879df9-9bc6-4a76-951f-24548da768ef.jpg",keyword:!0,link:"https://anchor.fm/s/9500fad8/podcast/play/64850866/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-1-11%252Fc53436f3-e1a6-2cae-eecb-fb61b06f804d.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"1510e150-aee2-42cb-ac57-79b4997bb6cb",show_title:"Bitcoin.Review Podcast with NVK & Guests",text:"Well, another thing that is a relatively recent development is I think AJ set up Bitcoin inquisition, which is let's proactively merge different software proposals into a Cignet so that people can play with them on a shared network. And so, unlike some of the more ambiguous ambitious big change proposals, because Op Vault is really targeted at a very specific shape of use cases, maybe there's an easier path here of it ends up on something like Bitcoin acquisition. People can build little dummy wallets and normal users can get a little bit of stick time playing with okay, what would custody in a post Op Vault world look like? And demonstrate that this is better. And so even if you don't know whether or not the mechanic is trying to screw you, you can at least kind of take it for a test drive first. There might be some stuff like that where it's less about how do we go and win the rhetorical fight on reddit and it's more about what can we do to incrementally derisk the proposal so that the community understands what they're signing up for. I mean, there was a lot of that at Tap Root, right? There was a lot of sort of working groups and things like that, but Tap Root still felt pretty rammed through. Optech did a workshop on tap root, I think, two years before activation. So you could write code and watch videos about tapirt, but people still felt like it was sprung on them. Tap root is just so hard. It's so hard to get. Until very recently, didn't I feel like, fully understand Tap root for this proposal? I had to write a bunch of tests. It's all in taproot. And there were things that I just kind of didn't understand and I found it pretty difficult to get sort of valid taproot constructions. And I basically relied on sort of the example code that other people are written. So, again, I'm massively positive on taproot. I think it's awesome, but it was like, so difficult to get your arms around. Even as a deeply technical person, I. Wanted to address as well. You said that it was a small group of people, but why it's true is that it was a small group of people that cut it for tapris. I found that there was a lot of demand and the defense had a high bar. Well, there was a lot of demand, a decade of research. When did we start discussing milk rice scrapes? In 2012 or something? With raspberry? Yeah, yeah, years ago. So, yeah, a decade of research, a lot of involvement, and a lot of people in the community with the workshops, a lot of involvement with the activation. And maybe that's why as well, people are not happy with it because they were actually involved. I think Teprit did put a very not high bar, but reasonable community involvement and normal user involvement. Schneider is a similar thing. Like, people have been wanting schnor and bitcoin for years. See, like, the Schneider is funny that he brought that up. It's always been a concern of mine that what if acdsa is back door, right? And it's not revealed for a long time and there is no proof for acdsa. So the idea of, like and again, this is a fundamental change to bitcoin, right? Adding another crypto primitive is like crazy different, but just having a secondary fallback crypto primitive in bitcoin before we're big enough that state actors are going to that extent, right? It's pretty cool. Thanks. Antoine is stepping out. Appreciate it. But now we have this sort of like the fights have always been hard. Up return limit back in 2009, 2010 because people are concerned about the worst part of Dick butts and then you had say P two Sh was also a huge fight. The original block size changed from 32 megabytes to 1 know SegWit was a bamboozle of most people. People did not understand that the block size increased. I don't know, I just hope that this one is not part of the contention. Like we can find a path where like this is the gardening sale, not the construction sale. I think the point Ryan Dow made is so good. And what I love about the idea of people taking this for a test drive en masse with inquisition is like that gives technical people who maybe don't want to work on Core or don't have time to work on Core can't they can write tooling to kind of make this an easier process to be able to experiment with this stuff more easily. So I just love that idea. I think something keep in mind too, like MVK, you just went through all those different software from the original block size decrease to like stuff like segment tapri like you didn't mention like CLTV or CSV or like BIP 66 I think, or 68. Like there's tons of bits that are like we're soft fork that just like are just normal things that happened and no one cares because they're like simple small upgrades that are ",timestamp:"01:37:06-01:42:14",topics:["soft forks"],type:"podcast",weight:47.136215082032344},{boost:0,date:1601200800,description:"Politicians defunding the police which resulted in an increase in the rate of crime in Manhattan ",episode_title:"Orange Pill [OP7] - Bitcoin is Love",guests:[{name:" Abe Cambridge",profile_picture:"https://pbs.twimg.com/profile_images/1368910908282572802/MTMBCPZU_400x400.jpg",ref_id:"5eed11cc-94e5-4e17-b923-95183699f193",twitter_handle:"abecambridge"},{name:"Mitch Feierstein",profile_picture:"https://pbs.twimg.com/profile_images/2625988157/vky9cedsgb0mf3usbh3x_400x400.jpeg",ref_id:"f9a70e2b-f905-4c70-afcf-3ef7004b7cab",twitter_handle:"PlanetPonzi"},{name:" Alakanani Itireleng",profile_picture:"https://pbs.twimg.com/profile_images/1512849723283185673/MzgEELWq_400x400.jpg",ref_id:"bda1bc91-3acc-4dc7-82eb-03c70f63525f",twitter_handle:"bitcoinlady"}],hosts:[{name:"Max Keiser",profile_picture:"https://pbs.twimg.com/profile_images/1361873587582472195/y57DiTYX_400x400.jpg",ref_id:"743efd07-d194-4c74-8663-45c3b8646b8e",twitter_handle:"Maxkeiser"},{name:" Stacy Herbert",profile_picture:"https://pbs.twimg.com/profile_images/1546484196750905346/5WYPz-bc_400x400.jpg",ref_id:"4b6f90a8-8e0b-4f51-8995-431a30cf87f4",twitter_handle:"stacyherbert"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/afa24463-19f7-4875-b6f4-b261d1d6c648.jpg",keyword:!0,link:"https://www.buzzsprout.com/1263314/5617321-orange-pill-op7-bitcoin-is-love.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"5216f100-c7ac-4b62-91d8-e394f5a0d531",show_title:"Orange Pill Podcast",text:"kind of back to the 70s when I grew up here. But the crime is worse now. So it's a reflection of just complete lawlessness throughout. The police, obviously, have been defunded. So even if you wanted to, you know, the politicians said, defund the police if you don't defund the police. So they've taken away, what, half a billion dollars from their budget. And so the police aren't motivated to do anything. So the crime has skyrocketed here in Manhattan. It's very dangerous to walk around here. Is this a Larry David kind of is really dangerous. Oh, my God. Because I remember a little bit of the I'm sure Max remembers the 3000 murdered a year. Well, Mitch, you're saying that the streets are empty and I saw the videos and it looks really eerie, for sure. Only very occasionally are the streets that empty, so that's freaky. That's very freaky to have that day after day. So the crime where's the crime coming from? I've read some stories about it. So you have a lot more burglaries, I guess now. So people in the Upper East Side are complaining. So there's home invasions, there's burglaries. Is there a lot of crime with guns and knives, or is it mostly burglaries and muggings? Well, I think I think you have the whole gambit that you run. I mean, the murder rate is up close to 300%. Look, I was walking down the street and I was accosted. People tried to take my money. So I've been in the city my entire life when I was little, and I went in the wrong neighborhood. Not little, but younger. Still. Spiked the kids. Oh, my God. Yeah. I mean, I used to get beat up regularly, so I can tell when something bad is about to happen and when there are four guys that ask you for money and there's two in front of you and two behind you in the middle of the day in Midtown, there's nobody around. Something bad is going to happen. All right, so you're getting mugs, basically. There's a lot of muggings. You could get mugged any day now. Broad daylight. That's the new normal. It's the new normal. But I ran into the middle of the street because I'd rather take my chances of getting hit by a car or if one of them had a weapon or getting bashed in the skull. So I didn't get hit by a car, but a couple of cars jammed the brakes on, and the guys didn't chase me into the road, so I. Just took off meeting here on orange pill. One pill makes you smaller, and one pill makes you large. So you used to be a small person back in the walking around. Maybe that's why. Or maybe you're small now, and it feels like, you know how when you're tiny, everything feels bigger, but maybe the problem feels bigger because to me it seems like when I go to New York and I haven't been there in six months, but that it feels very sort of Disney compared to how it used to be. There was a kind of niceness about all the freaks and crazy people in New York City in the it's kind of lost that touch and maybe you need some more body slow. I mean, I remember Max's face like he hadn't been back to New York City in 1520 years and then seeing some people jet ski down the East River, like, how many corpses there's a. Lot of dead bodies in there. Why would you have a jet ski? Yeah, it's nuts now, though. But look, the police told me not to go out. I've got friends who work for the city, and they said, don't go out here at night. And I said, okay, great. But 11:00 at night four nights ago. I needed some ice cream bad. I was having an ice cream emergency. So what does one do? You walk to, of course, the CVS or the Dwayne Reid or whatever it is because they're open 24 hours and they sell ice cream. I walked in and the ice cream cabinet had locks across it. Have you ever gone in so far? And it said, Please ring the bell? I hit the bell and some guy comes like five minutes later and I said, You've got to be kidding me. You're locking up your ice cream? Are things that bad? He goes, oh, yes, they steal the ice cream regularly. They come and clean it out. I said, but isn't there anybody that sees it happening? He goes, no, we don't see it. And I said to him, I said, but the beer and the wine doesn't seem to be locked up. Wouldn't they steal that first? He goes, no, they steal the ice cream. I don't get it. That is definitely old school, where they had the plexiglass everywhere, at the bodega or at the grocery store. This was before you had big change like CVS coming in there. And of course, taxi drivers put up that plexiglass during the because of all the muggings that were going on. The subway system. We remember in the 70s as being all graffiti, all dilapidated crimes, boo, boxes. Have you been down the subway at all? Has it gone back to this state? I did try to take the subway during the day because I had a meeting down on Wall Street and it was empty. I took it and there was nobody on it. So it was fairly safe, fairly quick and painless, but nobody was on it. No graffiti going back to the 1970s. You know Tompkins Square Park in the East Village? It became an encampment. People were living there for months on end, became a nogo zone for police, and it was a drug open drug bazaar. Have we gotten to that stage? I don't think there's anybody here to participate in that. I think that if you look around on the street, it's like filled with homeless people and the people Bill de Blasio decided to let out of the prisons. So, I mean, that's the problem. I think he's let thousands of people out because of COVID, so coughing around, or they're out on the streets looking for somebody to rip off because they're convicted felons now that have been given a chance to come in and repopulate the city. That's why most of the people who live in Manhattan have left. I mean, most of the people who are here are gone. I went into my dry cleaner and he told me that the business is down 70% 70%. He goes, this is bad. And if you look, a lot of the shops are closed and they're never coming back. So if you think about that little video of Grand Central that I sent you and all the new buildings that have gone up, the real estate loans that are astronomic, there's so much space. They better get those printing presses on high here, I'm telling you. We kind of lost you a few times there, but I think everybody kind of gets the gist of it. But before we wrap this up, Mitch, I want to ask you one thing, of course, that we saw in the, as Max mentioned, Taxi Driver, the famous film, and the Times Square was the Deuce that was like the home of open air prostitution and drug dealing and all sorts of stuff like that. But we also had one thing we're missing in our economy these days, is the serial killer. I think most serial killers now, they used to be like in their thirty s and forty s. Most of them do school shootings and mass shootings at 20. Now, I think those same guys might have, you know, become serial killers back in the day. Do you think we might see the return of the serial killer to Manhattan? Because that's missing and we lost him. Well, it says my Internet is unstable. Did you get me back? You have me? Yeah, I see you. You're there? Oh, no, it's very unstable. You're a very stable genius, though. Mitch, what do you think about the serial killer missing from Manhattan? Are they going to return? I think that they are, but I think they've been reincarnated. I think there were 86 people arrested in Times Square last weekend with their peaceful protests. I guess that turned not so peaceful. So you're saying that serial killers have now become peaceful protesters? They've played antifa. Oh, my God. What about the squeegee man? Back in the 70s, everywhere you go, there's guys with squeegees who do your windshield for a dollar. Have you seen that come back yet? No, I haven't seen the squeegee men come back yet because I think people are too afraid with covet to open their windows. I mean, everybody here. This is the other thing here, petrified. And they've become a bunch of mask Nazis. It's like you have a mask on. What? You know, and they'll start screaming in the streets. If they catch people with no mask on, it's like, oh, my God, this is like the end of the world. Even if you're drinking some substance while walking down the street, you must have a mask on. So they got to figure out how to make the masks more permeable. Well, Mitch, I'm not totally convinced that you're not an alternative universe. Larry David, who stayed in New York and didn't go to Beverly Hills, there's a similarity between the two of you. I can imagine Larry David also getting in trouble with the mask Nazis, as you say. There you go. Well, I hope not. And look, I hope the city turns around but I don't see it happening, especially not with Mayor de Blasio in office. I mean, everybody's complaining about him. I don't think he's got one ally left in New York. I think he's alienated everybody. But I don't know if that's his plan, but I think he got to give New York City miss from now. On until I saw a statistic, something like 15,000 empty apartments. Is that number going to go up? Absolutely. There's plenty of stock out there that's empty. And who wants to rent a two bedroom apartment for $9,000 that you're going to have all the creature comforts and be able to have your meetings on Zoom. And no business is really transacted here. So all the apartments are pretty much cleared out. So I think they're going to have a problem, especially with the massive amount of new builds that they put up here that I've been railing about for years. There's not enough revenues to support that. And the tax revenues in the city have absolutely collapsed and they've cratered. So I don't know. We're going to have to have an economic reset or the planet Ponzi Ponzi scheme has finally exploded. But we're surviving on the fumes of Jerome Powell's quantitative easing. Infinity. But remember, you can never, ever Ponzi. Scheme, and that's a good place to end. And of course, do not worry about Manhattan real estate, because in the 70s, when they went bankrupt, not only did Donald Trump come to the rescue, because the federal government said what was the famous thing they said to Ford, said to Manhattan, shop dead. Well, don't worry, jerome Powell's got your back. And he's going to be buying up all those apartments in Manhattan and it's going to be fine because you can't taper a Ponzi. You can't taper a ponzi. Come on, dance. Boats on a Ponzi scheme. Everybody's getting ready. The boat's floating on Powell's ocean of money and we're all wearing Lays and all you can eat buffet at the FIA Ponzi scheme. Mitch yeah, all you can eat at the Warren Buffet. Yeah. Well, thanks a lot for joining us on Orangeville. Thanks for having me, guys. And be well. And I'll see you from London next time. Yeah, right. That'll ever happen? Is that the Curb Your Enthusiasm team music? It sounds like Barnum and Bailey circus on track. Oh, I don't know. Well, I don't know why, but every time we meet Mitch or whatever it is, say we go to dinner with him in Manhattan, it's like going to dinner with Larry David. Like chaos ensues. Right. Because there's always something that's wrong. Yeah. It's totally chaotic. Every time you're with them, suddenly the whole place is erupted in mad, chaotic scenes, for sure. Well, actually, I've got a New York City headline, and it does factor into this video, this viral video that we saw you of Max and Stacey, the twinning couple, responding and reacting to Jerome Powell's speech this past week. Well, there's the whole money printer go. The fact is you can't taper ponzi. But what's happened over the past few weeks and months is Jerome Powell has been trying to psych everybody out. Right? So in the spring, like April, May, they said they were going to buy all these junk bonds. And what happened? Junk bonds went soared, right? Like people went ballistic by piling in ordinary Robin Hoodters trying to buy junk bonds because they thought they were going to be like the hedge funds and frontrun the Fed. But no real hedge funds or private equity who have a private line to Jerome Powell did it because they knew Jerome Powell was going to step away from the market. And he did. But also, we see that the heart of the financial center of America, when they're just being sprayed with money and no real economic activity, we see just a total collapse happening in the real estate markets in America. And that's going to be, I guarantee you, within six to nine months, the taxpayer is going to start bailing out all of these REITs. This chart shows the number of turnstile entries, seated dining reservations, and how a popular New York City REIT is performing is, as far as I can tell, a darn good proxy of where New York City is heading. So we could just be mocking our friend Mitch Ferstein, who might, after he sees our reaction, like, not be our friend anymore. But the fact is he could be right? Because this is a collapse in all those, like, no activity on the New York subway, no activity at the restaurants, and the REITs are collapsing. This confirms what Mitch was reporting on his man on the street journalism citizen journalist. Mitch, this confirms what he was saying. Turnstyle entries. Right. This is a REIT. Right? Now, am I looking at this? Yeah, three lines there, and it's REIT turn style entries and food. You know, people sitting down for reservations at restaurants. Right. The ten day moving average. So it's up off the bottom, but it's still kind of scuttling around the bottom there so you can't sustain the economy. There's no V shape there. There's no V shape. It's an l. It's an L shape. And it's kind of an L heading, like an L heading slightly with a positive angular bias. But it's more L than anything else, which an L is for losing. Well, yeah, and part of the problem is you have the pandemic and the shutdown, which is restricting movement of humans around the earth. But you have things like this story out this past week with Finsen leaks, and New York City is one of the prime locations to launder your money. Right? So now Finn Send has to pretend to actually look at these SARS. What are the suspicious activity reports that they have to file? All bankers do it and to avoid any them getting fines or in trouble. So what. They do is they flood, like with all this paper money all over the place. They flood the Finsen, which is part of the treasury. The regulator is looking at money laundering. They flood them with these SARS. So they're looking at these suspicious activity reports and there's like tens of millions sent to the US treasury. And of course, what do they do? They've flooded with all of this money, these paper like reports, and nobody looks at them. It's just this vast, you know, kascis bureaucracy, because they just the banks just flood them like $10,000. That number was set, by the way, back in the 80s, so it's not that much money. And by the way, money launderers know you're doing that, right? So they instead buy Manhattan real estate or something like that. So we've had this situation now where the treasury and the regulators are overloaded with these pointless reports that just financially survey ordinary citizens and small business people and suppress commerce. Like they raise the cost of any commerce, right. It's more bureaucracy. Right. So bureaucracy gets in the way of commerce and it doesn't help anybody really stop the money laundering. Well, according to the Fence end report, no, the people who were now caught laundering and terrorist funding and the trillions, that didn't stop them whatsoever. Yeah. Well. Partly because what happens is if you have $5 billion that you've looted from an Eastern European nation. Right. What happens you go to your bank. One of these big major banks who. By the way. Helped write the money laundering laws so their lawyers can tell you exactly. For a fee of the 5 billion. We'll take a billion of your 5 billion and we'll launder it for you. And that's like a perfectly fine vig to pay, right? Anybody who wants to steal 5 billion, they're happy to give a billion of it over to somebody if they get away with 4 billion. These banks wrote the laws and they know exactly what they left out for their own clients, right? It's regulatory capture and it's gaming of the system. And there's a lot of humans involved. As I've explained on Wall Street before, the people who are responsible for regulation in the various offices are open to bribes. And that's true in every single layer of the financial stack that governs the American economy. ",timestamp:"00:16:08-00:34:28",topics:["Larry David"],type:"podcast",weight:5.601966619491577},{boost:0,date:1647061200,description:"[[Bitcoin Mining Incentives]]",episode_title:"WHY ARE WE BULLISH Kal Kassa Pierre Corbin Chris Smith Ben Gagnon ep243",guests:[{name:"Chris Smith",profile_picture:"https://pbs.twimg.com/profile_images/1248417464825724928/BjsozM7k_400x400.jpg",ref_id:"488a0f68-f24b-4d0b-9835-4b38a59f149e",twitter_handle:"chrissmithonair"},{name:"Ben Gagnon",profile_picture:"",ref_id:"d86128cb-056a-4233-bd95-cda98867f61c",twitter_handle:""},{name:"Pierre Corbin",profile_picture:"",ref_id:"a0a46e2e-1b24-4ce5-b34c-ca322067930a",twitter_handle:""},{name:"Kal Kassa",profile_picture:"https://pbs.twimg.com/profile_images/1515885093893681156/cpZcX_2q_400x400.jpg",ref_id:"5cf2cf3e-5cde-4426-b71f-f357195d40be",twitter_handle:"KalKassa"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/bbf0a536-990b-49b4-a9c3-a2a40fa38f88.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/48924119/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2022-2-12%2F253272604-44100-2-dac52f14aaffa.mp3",node_type:"clip",pub_key:"",ref_id:"f5449a66-a156-4b0a-abeb-6ff5e28434ac",show_title:"BTC Sessions",text:"sure. So what I find very interesting about mining and house developing is just the incentives that are there for miners. Right. So it incentivizes the whole energy market to just become more green. Right. So it will put big miners at the center of this energy shift that governments have been supposedly pushing for years and also put them down the road at the center of the money creation. Right. Because we, of course, believe in a world where Bitcoin will be in the middle. And that's, in fact, maybe a question to you, Ben, is it already happening and to what point or when do you think could happen? The shift of rather than miners looking for the cheap energy and contacting energy producers, turning to energy producers, contacting miners in order to stabilize the grid and be able to leverage this cheaper energy themselves. Is there already this shift happening? Is bid farms being contacted already, or when do you see this really growing? Because I think this is when the hash rates will potentially increase even more. Right. Once these big players themselves get into this. Yeah, it's a great point. The vertical integration with the energy industry is really key. If you're thinking long term about Bitcoin mining economics and reward having every four years, obviously, unless the price continues to outpace the network by a considerable amount, you're going to have compressed margins. Right. And margins that get continuously smaller over time. So you're going to need cheaper and cheaper sources of power. And that can only really come from monetizing that energy that nobody else is using. So the vertical integration is here. We've been curtailing at some of our farms in Quebec since I think 2018, maybe even 2017. And at the beginning of this year, the program was so successful over the past couple of years, it was implemented across the entire province at every single mine. Texas is doing the same things. They have all sorts of curtailment programs for Bitcoin miners. And so it's really starting to enter into the mainstream space. You'd be surprised how many oil and gas companies and energy companies, power plant companies are doing their own small mining projects and pilot projects. These are massive companies. They don't need to press release something so small. They can do this under the radar. They can get comfortable with it. And I think what they're all learning or have already learned is that Bitcoin mining should be seen as like a buyer of energy or a buyer of last resort for your energy. And so energy is very interesting market energy is very easily stored, but electricity is not. And so once you've converted it into electricity, it's the flow of electrons. You can't really put that Genie back in the bottle. So cost effectively. And Bitcoin mining is a way to maximize utility and get all that full financial value out of it, which is a boon for everybody. It will reduce our costs, it will increase their profitability. It will incentivize more production, more development, more power generation, which should lead to increasing levels of human flourishing all over the world. Every time there's increases in power development and energy utilization, you have huge increases in human flourishing. I think this is what Bitcoin mining is really incentivizing. That's awesome. I wanted to share ",timestamp:"01:04:37-01:08:18",topics:["bitcoin mining incentives"],type:"podcast",weight:5.523631239085138},{boost:0,date:1589889600,description:"Small business and the Fresh Start Commission",episode_title:"How to Address Regulations Suspended During the COVID-19 Crisis",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/da1bbdc0-4d0a-43ed-8345-ee43102db244.jpg",keyword:!0,link:"https://traffic.libsyn.com/secure/mercatuspolicydownload/MPD-038-PPIMCWebinar-v1.mp3?dest-id=655459",node_type:"clip",pub_key:"",ref_id:"55e562c3-41d2-4bfb-94d5-26ac7098ba2f",show_title:"Mercatus Policy Download",text:"All right, very good. Look, another question here. As we all know, small businesses have likely suffered disproportionately during this public health crisis. Are there specific actions governments could take through this commission to help them recover faster. Elliot, I'm going to send that to you first. Yeah. One that Michael and I have been discussing and talking about is business licensing. For instance, if a business's license expired during this coronavirus pandemic during the month that we've all been working from home, do they have to re register? Do they have to re up? Should governments deem them granted for a certain time after to allow them enough time to re register or lift the burden to allow them to reopen faster? Another one is digitizing government. A lot of how you create a business and how you file your taxes is still largely done by paper. One area where governments can improve that is by digitizing government moving that online to catch up in the digital age. All right, excellent. Does anybody else want to comment on that in the small businesses? But the whole point of this is actually to help small businesses by making sure that, as she states, localities and the federal government have the right attitude going forward, that they try to encourage the rebound and encourage the growth without actually getting in the way. Okay, very good. Our next question. Can I just add on one thing? I'm not sure I would quite agree that the whole point is to help small businesses. I think that's the effect, though. I think regulation inadvertently disproportionately harm small businesses. So to whatever degree they can be cut back when unnecessary, that's going to similarly disproportionately help small businesses. And you could target that. There's no reason not to think that a commission could focus on regulations that are harming small businesses more. For example, regulations that came out of DoddFrank. I think the intent of DoddFrank was to target larger financial operators, financial service providers, but a lot of smaller banks, a lot of smaller businesses got caught up as sort of collateral damage. ",timestamp:"00:20:54-00:23:11",topics:["small business","Fresh Start Commission"],type:"podcast",weight:5.479238152503967},{boost:0,date:null,description:"How to recover lost Bitcoin wallet",episode_title:"Café ₿: #Bitcoin Beginner Q&A",guests:[{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Stephan Livera",profile_picture:"https://pbs.twimg.com/profile_images/1362551718110580740/v-W5Q2uo_400x400.jpg",ref_id:"72f57157-c96e-4466-8bf1-290cfe1f8a0b",twitter_handle:"stephanlivera"},{name:"Thomas J Lake",profile_picture:"https://pbs.twimg.com/profile_images/1529168328534769670/5cl2Y_k-_400x400.jpg",ref_id:"21541a47-0601-447c-99c2-312d1a63c19f",twitter_handle:"thomaslake"},{name:"Goodguy",profile_picture:"https://pbs.twimg.com/profile_images/1363216959576285185/unulY4yd_400x400.jpg",ref_id:"0c3fec75-9cc2-4c0f-8dbe-db7fae2b585b",twitter_handle:"goodguybiker"}],hosts:[{name:"Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"49966553-d55b-44c9-94ec-8fee09eee5c2",twitter_handle:"CitizenBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/35b20273-49f2-45ea-a9f4-dc479d86573c/7ae5315f-beb2-41e2-b672-65dd1f102017.mp3",node_type:"clip",pub_key:"",ref_id:"df4ad67d-6316-4762-a7c5-884c162dd8a9",show_title:"Swan.com",text:"very short. Point and then something about this afternoon switch spaces. So you hear the expression programmable money. And someone once said it about bitcoin. Many people said bitcoin is programmable money. And now you hear about central bank digital currencies and you hear programmable money. What's the difference? The difference is bitcoin is money that's programmable by you for your purposes, to the extent that it's programmable CBDC is money that's not programmable by you but is programmable by the government so they can make it disappear from your wallet, they can make it expire, they can make it not able to purchase certain goods. Bitcoin, to the extent that it's programmable for you, is like you can spend it however you want, you can put whatever constraints you want on it being spent. So it's a difference of who's in charge. It makes a really big difference. The other point I want to make is if you can get that afternoon thing with Brady, Sam and Alex, I'm sure it's going to be amazing. They got really awesome topics on there which are going to talk about freedom, I'm sure. So if you can make time for it, do I unfortunately can't, but I'll be listening to the replay. All right, let's keep rolling with the questions we have up here. Chad d Wagner. Good morning. Hey, good morning, everybody. This is kind of a newbie question. I've been working on getting my coins off the exchanges and getting it into some hardware wallets. The question I've been kind of struggling with is, let's say I'm using the Moon wallet and for some reason Moon. Goes out of business or is taken. Off the app store, something like that. So am I able to take my. Keys and apply those to a different. App or a different wallet and recover. Those funds or how does that work? Yes. So the short answer is moon wallet. Even if Moon were to disappear tomorrow, there is a recovery tool, and that's publicly available on their GitHub. Now, Moon is a special case, just to be clear. So for listeners out there, most bitcoin wallets are operating on what's known as a typical seed word, the recovery phrase. Twelve or 24 words basis. That's what most wallets are working on. Moon is a special case because they use a descriptor wallet. Basically, it's a bit of a technical term, but they use a set up where it requires a little bit of a special way to recover if Moon were to go down. So what you would need is your written down, back up, and also the recovery kit. So in the middle button on the bottom on your Moon wallet, you'll see a tab called security. You click that in that backup, you'll see there's a three step process. The first step is the username and password, but you don't have to do that in this case, we're talking about if Moon wallet disappeared. And so that second and third step, that second step is you're writing down kind of like a passcode for a descriptor. And then that third piece is the recovery kit PDF. You would have to combine those two in order to be able to recover your coins. Now, Moon wallet have a recovery tool that you can run. And what you would do is you would create another wallet, generate a receive address, then run this Moon Wallet recovery process and input as part of that, the address that you want to receive all of your Moon Wallet coins into. I know it sounds a little bit complicated, but what we're talking about here is if Moon wallet were to totally disappear, the other case is if, let's say, you just lost this phone and you needed to recover it into another phone, then it's a simpler process, you could just basically use Moon and import an existing wallet. Are you following me there? Absolutely, yes. That would go for any of the apps or hardware wallets. As long as we have our keys, we can recover it somehow. Correct? But yeah, just note that there's a difference in Moon and most of the typical other wallets. That's just the key differences for you to understand. So, Chad, one of the important things I think to understand here is that when you're creating a wallet on a phone, you're using a persistently connected Internet device. So I would always consider apps that you make on a desktop, on a website, in a browser, or on a phone, what we call a hot wallet. And there's all sorts of terms we hear industry use warm wallets and secure wallets and all sorts of funny things. But if it's made on a website, in a plugin, in a browser, on your desktop, or in a phone, it's a hot wallet. And so what that means is there's potential that your private keys, when you're creating those 24 words, that information may have been accessed by no click malware that we know now exists, like Pegasus from the NSO group and all these other types of persistent issues, zero days that exist in a lot of the browsers right now. These attack surfaces that people are using to take that private information from people's plugins. So if you're looking to store your bitcoin for a long period of time, I would always encourage people to learn about and use something like a nano ledger or a cold card. These are physical devices that have something called a secure enclave. They have a special chip that does that 24 word creation offline and then hashes that information and sends it back out to the computer. So these are a superior way of doing this. We used to have to sync the bitcoin, blockchain up, and then disconnect from the Internet and create the wallets. And we had hundreds of different addresses. The benefit of using that stick is you can make hundreds of different bitcoin addresses and they can all be backed up by those same 24 words in a really easy to use, standardized way that you could put in any other hardware wallet. And lastly, I would encourage people not to digitize their 24 words, their twelve words. Anytime you can keep those things in written format, you can etch them into things like metal for redundancy from floods and fire. I think that's a much safer way. I would never store those things in a cloud or take photos of those things or print those things off again, because that takes a cold wallet created in an offline situation and it introduces online or potentially online devices to it. So even if your printer is not connected to the WiFi network, right, I would be wary of using that due to exploits and things like that. So writing these things down by hand and keeping them in multiple safe, redundant places I think is really important too. The Moon Wallet is great as a mobile wallet, like for taking money around, but I wouldn't leave money in it as a store value. Yes. Thank you. I've been experimenting with the Sparrow on. The computer side and then I got the Cold card. So I've just been playing around with everything and really enjoying it. Very cool. Yeah, that's great. So definitely once you're ready, get the Cold card set up. And what you can do is just as an example, test it out with a small amount and then practice, like as an example, spin up your Cold card, initialize it, and then if you're able to do the Micro SD card with Sparrow Wallet or Specter, then that's great. If not, if you're a beginner, just plug it in and you can use it just like that. And then you can practice sending a small amount of Bitcoin and you can even practice like, wiping the seed out of the Cold card and then recovering your twelve or 24 words by using the import existing feature on your Cold card. And so that can sort of help you prove it to yourself that, wow. Yes. With these twelve or 24 words, I can actually recover my coins. But if you want to do that, just obviously practice with a small amount, like $20, $50, something small. And then see, prove it to yourself in that way. Oh, wow. These same twelve words, it deterministically creates that same ",timestamp:"01:12:50-01:20:37",topics:["Programmable money","CBDC","Moonwallet","Bitcoin recovery","bitcoin"],type:"twitter_space",weight:5.435932159423828},{boost:0,date:1588968217,description:"Small intestinal bacterial overgrowth (SIBO)",episode_title:"Q&A: Kim & Dr Ken Berry",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/a8e3517b-b44d-4270-adaa-57587896b1e7.jpg",keyword:!0,link:"https://traffic.libsyn.com/secure/ketolifesupport/ketolifesupport-0033-q-and-a-with-dr-b_tc.mp3?dest-id=2479037",node_type:"clip",pub_key:"032d7609ff3f4a5232e4d60967971e23bc671dfb68020845a59bab5dc1f3b93b87",ref_id:"2bf2f8fe-9d2f-4d41-838d-787f2ca9734e",show_title:"Keto Life Support",text:"SIBO, small intestinal bacterial overgrowth. What do you think about this? Some people make a huge deal out of this and they want you to buy all kinds of supplements and prebiotic fiber. Honestly, in my experience, eating a real whole food ketogenic diet, you repopulate your small intestine with the bacteria that should be there, because even the name of it implies that there shouldn't be any bacteria in your small intestine, which is absolutely not true whatsoever. But what you do want is you want very docile, tame, nice bacteria to be in your small bowel and eating the proper human diet, whether it's carnivore or fatty meat, heavy keto is going to repopulate your entire body, your skin, under your arms, your growing, all your spots that might have an odor or have gas or have bloating. All that stuff is just going to get better when you stop feeding and promoting the bad bacteria. My understanding is SIBO is when because your lower intestine is supposed to have a lot more bacteria, a lot more aggressive bacteria, but SIBO is when it switches it up and somehow the angry lower intestinal bacteria get your small intestine and vice versa. Is that right? That's the theory, but I'm not sure if I agree with that 100%. I don't know that that's ever been proven. It's very hard to get a scope into the latter part of the small intestine. We can get an EGD down through the stomach into the first part of the duodenum, but you have to swallow the camera capsule to photograph the rest of the small intestine. But you can't get a scope there to take a biopsy. The only way to get a biopsy of like, your jazzunum or your ilium is to do surgery. There's literally no other way to do it yet. And so even if you do a colonoscopy, you can only go to the sea, come and see the ileocecal valve. You can't get into the ilium any length at all. So when you start talking definitively about the bacteria in the small intestine, my first question would be, how do you know what bacteria is there? Because if you haven't had abdominal surgery, then there's no way to know what bacteria is in your small intestine. So one thing that just my common sense nondoctor self seems to know, though, is a lot of people who identify with having SIBO, they eat fermentable foods and they suddenly look nine months pregnant. Yes, that bloating, I think probably is the most common complaint of SIBO and whether that's coming from inflammation or whether that's coming from and this would technically be an infection, because you're saying that bacteria from the large colon is invading the small colon and that would technically be an infection, whether it's either one keto or carnivore is going to fix that. And you know, Kim, we have multiple friends who are carnivores who have actually had their gut bacteria or their colon bacteria checked and they have a beautiful distribution of the proper bacteria in their colon. And therefore, if you have good bacteria in your colon, there's no bad bacteria going to get to your small bag. Right? So people are asking, how long will this take to resolve? And the good news is, carnivore are more of a lifestyle, so you have plenty of time, but I think they would like to discomfort sooner. So, do you have any tips? Yeah, so my experience in the clinic has been six to eight weeks of fatty meat, heavy keto or carnivore and you're going to be pretty much symptom free. And you got to remember, and so for some very few people, it's coffee. Coffee is what's causing the inflammation in the gut. Tea can do it as well. And so when I say beef, butter, eggs and bacon and water, that's what I mean, because if you do that and you're still drinking coffee and tea, then you don't know, especially if your symptoms get no better, then don't come at me and say, hey, I tried your diet and it didn't work because you're still drinking coffee and tea. And I love coffee and tea. I know that would suck. But at the same time, it also sucks to have these conditions we're talking about. And so each and every one of us gets to decide, do I want to do that or not. And so I'm just saying this is a viable logical option to try. And if you don't want to do it, then eat whatever and suffer the consequences. But if I have one of these conditions, I would think that I would do that. Now, one thing I have noticed is there do seem to be of the issues that people might have. Some people do have a sensitivity to eggs or especially egg whites. Do you think it might be worthwhile. To leave those also very rare. Not really. It's very rare. And so if you've done three to six weeks of the beef, butter, eggs and bacon and you're still having problems, then I would say let's leave out the egg whites and just eat the yolks and see what that does. But yeah, that would be about the only thing on that diet that could potentially cause a problem. And I'll tell you, Kim, I would predict if you had removed all those foods, even if you were in the past sensitive to egg whites, you would no longer be sensitive to the egg whites. So many people think that these food sensitivities are permanent and they're not permanent. They're not necessarily permanent. When your immune system calms down and stops being pissed off at the world, it tends to stop reacting to things that it used to react to. For example, back when I was eating crap, if I got within 100 yards of ragweed or cat dander, I would be this for two weeks, right? And now I could lay in a field of ragweed and pet dirty cats all day long and I might sneeze one time. So what happened there? Why am I no longer allergic to these things that literally used to put me in the bed? I had such an allergic reaction, my eyes would swell up. It's because my immune system is now able to discern me from nonme. And I think so many times when people are allergic to tree nuts, when they're allergic to things that are like completely ancestral, that's usually what's going on. And once they get all the inflammatory crap out of their diet, their immune system over the course of a month to three months will calm down and they can reintroduce those foods and they no longer are troubled with that. Got it. Someone asked ",timestamp:"00:19:40-00:26:23",topics:["SIBO","small intestine"],type:"podcast",weight:5.423373699188232},{boost:0,date:0,description:"Thoughts on the over all chapter and some favorite quotes",episode_title:"The Sovereign Individual - The End of Egalitarian Economics",guests:[{name:"chriskapilla",profile_picture:"https://pbs.twimg.com/profile_images/1362817539135463427/2AXUeFLV_400x400.jpg",ref_id:"9d495790-93f2-4d6c-b770-b2885f66859d",twitter_handle:"chriskapilla"},{name:"remydenton",profile_picture:"",ref_id:"5c5beb0c-c214-4f23-b79a-e71bf9368f2d",twitter_handle:""},{name:"JackRonaldi",profile_picture:"https://pbs.twimg.com/profile_images/1583261828628496384/IazkwYjk_400x400.jpg",ref_id:"01621476-f040-49dd-8160-4035228faf78",twitter_handle:"JackRonaldi"},{name:"AlistairZ80Aftw",profile_picture:"https://pbs.twimg.com/profile_images/1362882489895841795/gH2zix3l_400x400.jpg",ref_id:"3dcba197-47ca-40c0-857d-73cec4325801",twitter_handle:"AlistairZ80Aftw"},{name:"mattonbtc",profile_picture:"https://pbs.twimg.com/profile_images/1549459254280687618/jzdHJou3_400x400.jpg",ref_id:"998167d3-e036-4ef1-9a05-4f062903f0c5",twitter_handle:"mattonbtc"},{name:"wai_wairua",profile_picture:"https://pbs.twimg.com/profile_images/1536570699761848320/T10Owc60_400x400.jpg",ref_id:"c4d4ff36-73fa-4471-91ba-de0f99a49e99",twitter_handle:"wai_wairua"},{name:"UltraSolomon",profile_picture:"https://pbs.twimg.com/profile_images/1468332451055427601/YVgUuUHc_400x400.jpg",ref_id:"6371d519-cc98-4bf4-9f82-be17b1ea532a",twitter_handle:"UltraSolomon"}],hosts:[{name:"BTC_Venetians",profile_picture:"https://pbs.twimg.com/profile_images/1557482467539521537/Kel-eVww_400x400.jpg",ref_id:"a6313ca9-3869-4477-88ad-30172957edcf",twitter_handle:"BTC_Venetians"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/75ec86b1-cb6d-467f-a66e-5e642e5c126a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/c8cc9ec1-061d-4f53-a24b-ee43a56c7715/e650057e-2369-4e75-8119-4975a1fc4cac.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"946f1308-fffb-4aeb-89b2-68b043873ae2",show_title:"Bitcoin Venetians Book Club",text:"right, let's kick off with the first question. What did you think of the chapter overall and any favorite quotes? I think my first one first favorite quote was headline in there. The higher returns in poor areas on, well, 242 somewhere around there. Bitcoin City makes me think of that. El Salvador makes me think of that. This isn't a quote, but just as an idea. I love their little section about how Hollywood production companies work, being a template for future companies. That really made it more concrete what they were talking about. Yeah, I thought that was interesting, especially with the benefit of hindsight how we've seen simultaneously, like, megacorporations arise, but also the Internet has enabled the scale of business to be really small. All over Twitter, I see like Solopreneurs that are bringing in like tens of thousands, if not hundreds of thousands per month. And like they're just using all these different, like, lowtext tax all over the Internet to do their thing and by one person can just like, make a decent living that way. But then there's also a lot of other people that are just kind of stuck as wage slaves or whatever in the big corporations. Another quote I've got there is the genuine upsurgeon opportunity is almost inevitably accompanied by at least a brief surgeon inequality. And that seems to speak to people here. Dr. McCall would like that one, I think, but I don't see her here also regulations having a positive rather than negative market value. Or if Peter McCormack was here, he'd probably agree with that too. Well, I think that's quite interesting because it talks about sort of a marketplace for regulation so you can actually find out in an experimental sense which regulations are important for a good functioning society rather than just being as a means of extraction and coercion the regulations that you opt in if you're far more mobile globally. I actually saw an interesting post about this recently and it was kind of along the ideas of having a sunset clause for new laws saying that a new law should perhaps have a start and an end date, but also saying that similar to a scientific hypothesis or theory, that you make a new law and it says it's going to achieve XYZ and you measure against that and within a specific three year time frame or whatever is necessary. If it hasn't achieved that, then the law is revoked. And I thought that would be a very interesting way to do things. It's quite competitive if a few different countries were doing that against each other. Yeah, I love that. That's kind of like how product management works and startups. You make sure you have metrics that you're collecting to check what's the response to whatever you're trying to do and if the response is not what you want or what do you expect, you kind of pivot. You try something else. Which I think would be great if we can bring something like that to politics and lawmaking, you can just imagine. Sorry, go ahead. Sure. I was just going to say one of the really interesting parts of this chapter is talking about how there will be competition between jurisdictions in a way that there's not or there hasn't been previously and that that alone will sort of create this incentive to be more efficient in whatever format that takes. So jurisdictions can operate a little bit more like companies do today and less like just total monopolists as they are currently. Here is one quote that I did like. In the post industrial period jobs will be tasked to do, not something you have. Could you read that one more time? Sorry, yes. In the post industrial period, jobs will be tasks that you do, not something that you have. Do you think that's similar to how you have like bounties for coders? Do you think that's what the quote is getting at? I think that's exactly it, yes. I took from that that people won't have careers. Well, it depends on how you define career. I guess if a career was a succession of tasks that were related then it could still be a career but they wouldn't have permanent lifetime jobs. Yes, a career was a succession of tasks for a single wall employer or within the same part of an industry. Whereas the succession of tasks sounded a lot more like piece work or gig work in the modern part. Yeah, I think gig work is probably close. Yeah, I think we'd probably find out where it makes sense for something to be a salaried position where the benefits from that obviously they make the relationships, they have all that continuous local knowledge where that makes sense from an economic perspective and where actually it's just labor laws which are making that the case at the moment. And actually it would be far more efficient to farm it out on a piecemeal basis. I think that's an important point. I think the book maybe to keep it shorter doesn't go into the opposing argument as much, but I think anything where you're facing with people, it's probably useful to have kind of the same person in the role. But also like even I'm not a coder, but I would imagine that having the same person work on the same code base would be useful over a long period of time because they kind of know what's going on rather than having multiple people kind of going in there and doing piecework. As somebody who is a coder, I can completely agree with that. There's kind of this fallacy, I think that you can just replace one programmer with another when in reality it's not about the writing of the code, it's about the understanding of what's going on in the code which takes a lot of time to acquire and also kind of this ownership over what the code does. So, long story short, I agree that there are multiple industries and types of jobs where replacing people just willy nilly is probably not the best idea. I think I'll little bit on that with Remy because I'm also a coder. But open source, generally somebody in a corporate environment, it should be the same coder all the time or the same pair because that's where the corporate knowledge resides. But in open source you have so many different people looking at the same set of code, they do become a bit interchangeable and you do end up with documentation about how new people should approach a project. So it depends like most things. Yeah, great point. Did anyone get the sense that I don't know much about the authors, but they seem like they have libertarian tendencies. And it seems like that kind of comes out in the book to me, because some of the stuff that they talk about how the idea and the pursuit of equality as a goal is going to go away in this digital age. And I wonder how much of that is like they've come at that logically and how much of that is what they want because of a certain view of how things should work. A few episodes ago there was one of our number who posted a BBC interview on James Dell Davidson and Reese Mogg. I don't know if you heard that, but it gives you an awful lot of background. Very libertarian tendencies. Very libertarian tendencies. ",timestamp:"00:09:33-00:19:19",topics:["The Sovereign Individual - The End of Egalitarian Economics"],type:"twitter_space",weight:5.396452784538269},{boost:0,date:1636866e3,description:"[[Lightning]] and [[Bitcoin]] Have Actual Use Cases",episode_title:"WHY ARE WE BULLISH JoeyTweets Mario Gibney Bobby Shell Len ep215",guests:[{name:"Bobby Shell",profile_picture:"https://pbs.twimg.com/profile_images/1090426395979890690/uUdaFXo__400x400.jpg",ref_id:"438f8067-3fed-49d2-91d9-5018cb043aac",twitter_handle:"BobbyShell2"},{name:"Len",profile_picture:"",ref_id:"1fc627d9-a446-4e48-b960-ad97fcdbcaa0",twitter_handle:""},{name:"Mario Gibney",profile_picture:"",ref_id:"1a3f05f5-5c4a-455f-b4ec-f682080a5518",twitter_handle:""},{name:"JoeyTweets",profile_picture:"",ref_id:"e6ada141-9c3c-4e1b-b8ab-2389c94f4130",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f3b67780-d9c2-4a20-ab5c-115032a05b3a.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/43334718/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-10-14%2F0bfc842d-3fe7-98e0-1a25-43385ac48a7d.mp3",node_type:"clip",pub_key:"",ref_id:"3242aa43-f999-485b-9c94-8457526d6dbd",show_title:"BTC Sessions",text:"run a Lightning note and I too am hugely bullish on Lightning. I can see the potential in using it for quick and cheap settlements and having somebody like Jack Dorsey also on board too, and implementing it on Twitter. That's a freaking amazing idea where you could tip people for ideas for tweets or whatever. And it just goes to show you that Lightning or Bitcoin itself. There's an actual case, use. It's not just strictly an asset where you park your money. It's also a currency you can use to spend. And Lightning is the way that you could easily spend Bitcoin. One thing that's really interesting to me, too is like, you buy Bitcoin and it appreciates in value. But to us, one Bitcoin is one Bitcoin, right? Like, what if you never actually spend it and you just use it for data transmission? Do you really owe taxes? You didn't buy anything with it. You're just using it as a data tool. I think that's going to become a conversation later, but it's way too premature to really talk about that. How much Bitcoin would you really need to have to utilize that? Right? I don't know. It's tough because I don't know exactly how they're utilizing these rails for this infrastructure that they're building with, like, impervious and a lot of these concepts. So I don't know. I couldn't really comment to that point. But it is one thing, again, from the content creator perspective and to the point about Twitter, it kind of. Sets. Itself in the middle of those intermediaries that were typically taking a cut of any type of revenue that you used to get. In particular, I'm looking at your YouTube that we're on right now, that ad revenue is what keeps a lot of people afloat. And all of a sudden you can introduce revenue sources that are very easy to utilize and kind of almost like bypasses what YouTube is trying to do in taking their massive cut of everything. So I find that to be interesting. They very much try to get you using super chats and stuff like that. But when there's a simple way of like, oh, I can just drop a tip here, and that begins to proliferate through lots of other alternative platforms, at what point do enough people say, well, I'm going to go through this method of this method. At what point do some of the bigger players start saying, Well, I guess we better put this in here because there's a huge demand for it and albeit small at first, we're losing some market share because of that. I don't know how that affects that moving forward. No, it would definitely be groundbreaking in that regards. And it would certainly shake like the YouTube to the world, et cetera, not just to change gears, but there's another application that Lightning would truly thrive in, and it's the world of restaurants right now, a lot of transactions that are done in restaurants are done through Visa, Mastercard, and they take their slice of the pie one, two, three, 4% every time the card is swiped. And from what I understand, restaurants, they have a very thin margin for profit. And if you're able to increase the profit by taking away that one 4% that Mastercard and Visa do, then you can make businesses way more profitable. And it's just simply just implementing Lightning on the current system, it's easier said than done. But once it's able to be implemented in restaurants and you're able to pay for your meals with Lightning, it's going to make profits just shoot through the roof for a lot of these small businesses. Did you see? I think it was Ben Ark. ",timestamp:"00:51:21-00:55:28",topics:["lightning","bitcoin","bitcoin","lightning"],type:"podcast",weight:5.393006804006006},{boost:0,date:1640926800,description:"What Kind of Wallet Am I Going to Use?",episode_title:"WHY ARE WE BULLISH Tone Vays Jaime Garcia Trent Dudenhoeffer KC Hodl ep225",guests:[{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"KC Hodl",profile_picture:"https://pbs.twimg.com/profile_images/1506986051683950592/MMMse9gr_400x400.jpg",ref_id:"b2264dd3-e587-403e-9447-9e99afc1910d",twitter_handle:"kc_hodl"},{name:"Trent Dudenhoeffer",profile_picture:"",ref_id:"3b466176-3bbc-481d-9634-e127a9232404",twitter_handle:""},{name:"Jaime Garcia",profile_picture:"https://pbs.twimg.com/profile_images/953009048642715648/PKaQy5UD_400x400.jpg",ref_id:"f259c6b5-71d6-4c5c-897c-3cfbe80cccc2",twitter_handle:"jaimegarciag"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c8ae0def-c33c-4d17-af4e-31ddaeedaf8a.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/45510131/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-11-31%2Fc821a6ba-7ef1-35ba-b24e-b96e84186843.mp3",node_type:"clip",pub_key:"",ref_id:"d9b2af2b-2bf8-477f-9cde-dd27660ddde7",show_title:"BTC Sessions",text:"am I going to use? Things like that. What are you seeing there? Definitely, yeah. Usually the first thing is which kind of mobile wallet should I use first for a small amount. And now there's so many great options over the last year, especially with the Lightning wallets coming out. Blue wallet, moon, so many great options. Usually people like to play around there, kind of get their comfortability up and then go to an actual hardware wallet of some kind. So, yeah, it's always fun to talk about the benefits and disadvantages of each wallet, whether it be a treasure, a ledger, a cold card, so many different ones. And I think a lot of times people just order kind of whatever's cheapest usually has been kind of what I've noticed and try it out and then kind of figure out what they like and don't like about it. And then when they get ready to go to the next step, they kind of have a little bit of familiarity with the different options. So I've got ",timestamp:"00:16:43-00:17:37",topics:[],type:"podcast",weight:5.371685059434086},{boost:0,date:1640066400,description:"What types of small shift in characteristic can make major changes",episode_title:"Diana Jones: The New Management Model — Guarding Group Relationships",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f2b2a2b2-8869-4256-94b9-a91c91c1ce7e.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/148_e4b_diana-jones.mp3",node_type:"clip",pub_key:"",ref_id:"10cc2a43-918c-477f-a29c-de6fa5ddc79e",show_title:"Economics For Business",text:"That's one of the challenges, I think, with systems thinking that you get confused about causality. Maybe there is no causality, it's just a lot of things interacting together and the outcome emerges. But you do say that small shifts can generate major change. If we've done everything else right, you qualify it. But are these small shifts like reading people better? Is that the kind of small shift that can generate a major change in the system? I do think that there's several things I think becoming more skilled and understanding how groups work. And if you read my book, it's a complete handbook on how groups work for leaders. And the thing when you read any book is to take several things from the book and practice them and then notice the impact and you'll see things rapidly. But the small things are like the shift for leaders to move from being meeting managers where they're focused on their content and like getting on with stuff, to actually being guardians of group development, particularly in the first four minutes. That the second is for probably everyone to shift from being so focused on content to being very mindful of what is the purpose of the interaction or any meeting and what is the outcome you want. So many people just don't know why they're at meetings, they don't know why they're talking about stuff because the purpose and the outcome has just been lost, gone, forgotten. And it's such an opportunity for leaders to tune into if we have this conversation, the dramatic impact out here is going to be A, B and C and that's what we want. So shifting from content to purpose and outcome, which means the conversations shift from explaining and describing stuff to enabling people to participate in bringing expertise and experience from the group. So those are the things I'm talking about. And on my website, under Leadership levers, I've got two complimentary downloads that people can just they don't need to put their email in, they can just take them around the shift for the first four minutes of any meeting if you want to really generate engagement and participation. So those kinds of shifts, and it's mostly leaders shifting away from being focused on their own content and expertise and drawing that out from others. That's the basis of it. It's easy for me to say, but it does require people to give up some things, give up being the know it all expert or knowing when to use it, but not that to be the main orientation. I find when trying to apply systems thinking in business, one of the steps is you've got to discard a lot of things that you used to know, used to do, like hierarchy and command and control and things like that. You can actively discard those in order to be able to get into the new place. ",timestamp:"00:44:48-00:48:09",topics:["small shift"],type:"podcast",weight:5.31725980650619},{boost:0,date:1675274375,description:"The importance of education about taxation and small government ",episode_title:"Is Sound Money the Answer? with George Gammon (WiM268)",guests:[{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"}],hosts:[{name:"Robert Breedlove",profile_picture:"https://pbs.twimg.com/profile_images/1592020087044591616/46enYwAc_400x400.jpg",ref_id:"0ed69c56-241c-4b63-87a5-8f2157fe51a5",twitter_handle:"Breedlove22"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ca3ab815-dc2e-408a-a0c5-8bbe50270a97.jpg",keyword:!0,link:"https://cdn.simplecast.com/audio/2effec98-bec5-4728-ba08-7a86d776e682/episodes/d6e8f010-e2d5-4489-bb8e-9b7446a4795b/audio/0ad4fb89-2eda-4ad7-8432-b6be08c8ce10/default_tc.mp3?aid=rss_feed&feed=MLdpYXYI",node_type:"clip",pub_key:"03a3451db4748e483d2e1ee5d0b3a6872253253b57edf4b084a56952b432a224b3",ref_id:"d8d7f0d9-d40b-4431-8f02-f8bf15823175",show_title:'The "What is Money?" Show',text:"And so then that's what kind of leads me to the conclusion that, wait a minute here. Sound money is definitely desirable, but if we're putting 100% of our energy on this as though that's a panacea, that's a big mistake. And if I have to allocate 100% of my if I've got 24 hours in a day, and so I've got 100% of my mental bandwidth, you know, if I really want to move the needle. As far as our shared objectives, for me, I come to the conclusion that that it it's more beneficial for me to allocate 90% of my time and energy to trying to persuade people that we need small governments, we need low taxation. And then 10% saying that, hey, sound money is definitely beneficial, definitely desirable, as opposed to what a lot of people would do is they allocate 90% of their time and energy saying, well, sound money, sound money, sound money, sound money, sound money. Because we get sound money, then everything else just falls into place. And again, especially when you look at the amount of government spending that we have today just as a result of taxation, just to forget the deficits, forget the deficits just as a result of taxation. I think you've got to come to the conclusion that a society, even with a fixed base layer, if they favor big government, you're going to get big government because people just vote free stuff. And I think that the overriding theme in what I see when I study history is it's just the same thing. It's like this cycle that we can't get out of as human beings where hard times create strong men and strong men create good times, good times create weak men and weak men create hard times. It's just over and over and over and over again. And so I truly believe that right now we're in a period of kind of weak men, if you will, but I think that we now have the internet and we now have a lot of tools that we didn't have before. And I can either sit here and just wave the white flag and say, oh, we're all doomed and we're just going to have to go through this cycle. Fourth, turning, whatever you want to call it, or I can get out there and try to pound the table for small governments with the help of the Internet and allocate as much of my mental bandwidth as I can towards that to try to impact positive change. But that's really my message, you know, is that I think that as a collective group, we're going to be a lot more successful in achieving our objectives if we allocate 90% of our time to persuading people the benefits. Of small government instead of trying to persuade them that sound money is the way to get to that small government type of environment that we're trying to strive for. I think that's kind of we can rip on that. But that's kind of my main message. Yeah, no, that's really well said. And again, to reiterate, we're basically saying we have the same ends in mind. The end, absolutely. Smaller government, less government interference in the market process. In the market process. Lower consumer prices as a result of economic productivity. Yes, exactly. So the more uninhibited the market process is, the more consumer price deflation it will create, right. Through trade, innovation, just trade and innovation basically more high intensity, higher intensity trade, more innovation, gives you lower prices. Government intervention is opposite to that. Right. That's actually interfering with the market process tends to create consumer price inflation. So the end in mind is to minimize government interference in the market process as much as possible. Where we're, I guess, exploring is what's the appropriate allocation of mental energy towards the means to achieve that end, right? Is it all sound money? Is it all advocating for education or persuasion, let's say, in the minds of people about small government, or is it a mix and to ",timestamp:"00:24:27-00:29:24",topics:["Tax education","sound money","small government"],type:"podcast",weight:38.492371921380055},{boost:0,date:1673685e3,description:"What's required to force Genesis into bankruptcy  ",episode_title:"The Chopping Block: Why Gemini Users Are Mad at Genesis and DCG - Ep. 443",guests:[],hosts:[{name:"Tarun Chitra",profile_picture:"https://pbs.twimg.com/profile_images/1587539091444432897/Z6_nmrCB_400x400.jpg",ref_id:"dfad4b23-92ff-4aa1-9aa4-abc1d54cd6d3",twitter_handle:"tarunchitra"},{name:"Haseeb Qureshi",profile_picture:"https://pbs.twimg.com/profile_images/1581025415551889408/thQwG4lb_400x400.jpg",ref_id:"790e4217-dd9f-416f-b9f8-ed596937f5b5",twitter_handle:"hosseeb"},{name:"Tom Schmidt",profile_picture:"https://pbs.twimg.com/profile_images/1563232354277085189/xQL92DR4_400x400.jpg",ref_id:"bc9d3bfd-36b0-4cbc-a491-9370decf4c99",twitter_handle:"tomhschmidt"},{name:"Robert Leshner",profile_picture:"https://pbs.twimg.com/profile_images/1587956987786104833/1SiKVj-s_400x400.jpg",ref_id:"ebaa2166-7982-423d-9f43-add89e7d47f9",twitter_handle:"rleshner"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/7de0d293-8ae3-4362-8500-8f7300f3fe41.jpg",keyword:!0,link:"https://traffic.megaphone.fm/LSHML4726349989.mp3?updated=1673643857",node_type:"clip",pub_key:"02545c14cbb18a61f20dd45f5e3dcbd9acae3de282369501040adce32a75311309",ref_id:"a24f0efb-66be-40a2-afa2-bf29f370b10d",show_title:"Unchained",text:"a mutually yeah. You could almost perform like a bribery attack where you're like, hey, if you got if the rest of the creditors don't give us the money, like me and two of my friends who are like small fry creditors are going to go push Genesis into bankruptcy and screw everyone else over. It does seem like an unstable it does seem like an unstable equilibrium. Well, I think the reason why it's more stable than that and this is I'm not, you know, an expert in restructuring law or any of that, but what I think makes it a more stable situation that prevents that is that any resolution has to be done equally amongst the various creditors. So you can't have like three creditors who like threaten them with some ultimatum and say, give us all our money. Back or read oh no, I'm not saying threaten the company, I'm saying threaten the other shareholders. That might be legal. I'm pretty sure that's extortion, but you know, there's maybe some way you can structure it. Yeah, but anything has to hold up, right? ",timestamp:"00:12:38-00:13:43",topics:["Genesis","bankruptcy"],type:"podcast",weight:25.351043899322917},{boost:0,date:1533945600,description:"Government subsidies and small business",episode_title:"Government and Big Business | Peter G. Klein",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/58189b3c-aa25-408d-8c5e-76f97c9501da.jpg",keyword:!0,link:"http://www.podtrac.com/pts/redirect.mp3/feeds.soundcloud.com/stream/335241913-misesmedia-government-and-big-business-peter-g-klein-1.mp3",node_type:"clip",pub_key:"",ref_id:"58c66464-fdd6-4f04-848b-f98021c4089c",show_title:"Mises University 2017",text:"are direct subsidies for small companies, especially in the tech sector. Governments build science parks and fund Incubators. And the SBIR program, which gives cash to tech startups, you have lots of indirect subsidies as well. So if we're going to say that subsidized interstate highways constitute gives sort of an unfair advantage to Walmart and Amazon, then we would have to say that subsidized electricity, subsidized telecommunication services give an advantage to small firms that are able to be in some small town, right? If it weren't for electricity subsidies, maybe you couldn't afford to live in Auburn, Alabama. You'd have to live in a big city that has a big nuclear plant. Okay? And the only reason a little startup company can be in Auburn, Alabama, or wherever is because they have access to the Internet and they have access to they can make phone calls, they can get electricity off the grid. All of those things are subsidized by the state just as much as the road system. So it's not clear that the kind of Kevin Carson argument makes any sense specifically favoring one type of firm over another. Okay? More generally, think of what the government does to the economy, to society, right? I mean, restricting trade and starting wars and controlling the education system and so forth makes us all much poorer than we otherwise would be. And the massive scale of government intervention around the world, it requires the international division of labor, reduces stocks of human capital, if you want to use that language. It makes us all dumber than we otherwise would be if we didn't have state control of education. Reduces the marginal product of labor in many contexts, right? So, I mean, all of these things it might be that if we had a free society and we had better education systems, better transportation communication systems, maybe the economies of scale and scope and production would be even larger than they are now. Maybe we'd see bigger firms than we see now if we were to get rid of the state and all of its harms. So ",timestamp:"00:37:00-00:39:18",topics:["government subsidies","small business","subsidies"],type:"podcast",weight:5.2884098291397095},{boost:0,date:1665118800,description:"Smaller states offer more opportunities and promote decentralization",episode_title:"Breaking Away: On Secession and Small States",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/6ec51741-3d93-4116-a619-d62a7cee1feb.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/102-radiorothbard-20221007.mp3",node_type:"clip",pub_key:"",ref_id:"56ded69f-9178-41fb-a466-b3f270175343",show_title:"Radio Rothbard",text:"Rockwell summed up this principle in a 2005 article called What We Mean by Decentralization. Rockwell writes under decentralization jurisdictions must compete for residence and capital which provide some incentive for greater degrees of freedom, if only because local despotism is neither popular nor productive. If despots insist on ruling anyway, people and capital will find a way to leave. This is most fully realized, of course, by the type of decentralization that results from fullblown secession. As Rothbard put it in 1977, secession means greater competition between governments of different geographical areas, enabling people of one state to zip across the border to relatively greater freedom more easily. Now, of course, the idea would be you wouldn't have to physically relocate to escape despotism. But we don't live in that ideal world. We have to work with what we have. And the fact is, governments like to abuse rights. So the question is do we want governments that are huge and control vast swaths of land that require us to move thousands of miles to escape them? Or do we want something smaller where exit is much easier, albeit still not without cost? And of course, keep in mind that in a world with only one state and no secession, there is no escape at all, ever, anywhere. We've seen this issue of exit in the modern world. Of course it's true in countless refugee situations where the most oppressed people are only able to save their own lives by fleeing across an international border. We saw it in Venezuela over the past decade when Venezuelans, desperate for food, had to escape across an international border just to get basic necessities. Thank goodness that border was there and limited the reach of the Venezuelan regime. Exit was possible if only the Venezuelan state was even smaller and the people of that region had even more options for bordering states into which they might exit and escape. Historically as well, we know the concept of exit has been an absolutely key factor in how the west roast to achieve the highest standards of living in the world has ever known. As historian Ralph Reyko has noted in his essay The European Miracle, the fact that Europe has been so decentralized throughout its post Roman history, in contrast to the huge empires of the east, meant that entrepreneurs and capital could indeed escape across Western Europe's countless borders in a highly decentralized Christendom. This was especially the case in Europe's Middle Ages. And as historians Nathan Rosenberg and Ellie Birds will note in their book how the West Grew Rich, it was in these highly decentralized Middle Ages that the institutional groundwork was laid for Europe's economic miracle. Similarly, historian Jean Bay Schuler showed this in his research and he concluded the first condition for the maximization of economic efficiency is the liberation of civil society with respect to the state. But how did this liberation occur which led to the success of markets in Europe? Bayflair tells us the expansion of capitalism in Europe owes its origins to political anarchy unquote, that is, to the existence of a large number of small states without any overriding imperial or state power. Not since Rome has Europe been unified under a single government. And that has meant more freedom and more economic growth. One reason this works is that a region of the world or region or world of small states is more difficult to even. It's even difficult to even attempt autophy. So for a private entrepreneur, moving one's capital from one place to another does not cut off one's access to markets outside the borders of a small jurisdiction. Small states and principalities have always experienced big incentives toward doing business with surrounding states. This means more trade. It means more efficient markets. Opponents of secession and breaking up states are often opposed, however, on the grounds that smaller states will throw up trade barriers and be more inclined to violate rights. The reasons for this assumption aren't actually clear, but they are common objections. On the contrary, small states want to attract capital, and it shows. This is why efforts to impose a single global minimum tax tend to meet the most resistance from smaller countries like Ireland and Hungary. As is the case nowadays, having lower taxes is a major way that small states attract wealth. Moreover, in modern times, the empirical evidence supports the idea that small states tend to be more open to free trade, more open to a free flow of labor, more open to lower taxes. For example, Sergio Costello and Truatomozawa conclude in their study on small states that in a world of specialized and growing trade, quote small economies naturally grow more trade oriented in both exports and imports. Ceteris paribus small nations thus become more trade focused than large ones. Unquote economist Gary Becker in 1998 noted, quote since 1950, real per capita GDP has risen somewhat faster in smaller nations than it has in bigger ones. Becker concluded that the statistics on actual performance show that dire warnings about the economic price suffered by small nations are not all warranted. Smallness can be an asset in the division of labor in the modern world, where economies are linked through international transactions. Of the 14 countries with populations over 100 million, only the US. And Japan are wealthy. William Easterly and An Ard Cray conclude from their own study on small states controlling for location, smaller states are actually richer than other states in per capita GDP. Microstates have, on average, higher income and productivity levels than small states and grow no more slowly than large states. So it turns out Rothbard was right when he suggested that small states are more likely to embrace free trade. As he wrote in the 1990s. This was due also to sociological reasons. Rothbard says the greater the number of new nations and the smaller the size of each, the better, for it would be far more difficult to sow the illusion of selfsufficiency if the slogan were by North Dakota or even by 56th street than it is now to convince the public to buy American. Similarly, down with South Dakota or down with 55th street would be a more difficult sell than spreading fear or hatred of the Japanese or whatever foreign boogeyman we currently hate. In other words, bigness brings delusions of selfsufficiency, and it is actually large states that more often turn to protectionism and economic nationalism and control. A second benefit of small states is that they prefer a offer, a solution. When constitutions and democracy fail ",timestamp:"00:09:41-00:16:21",topics:["Smaller states","Decentralization"],type:"podcast",weight:5.421848896549872},{boost:0,date:1629691200,description:"[[Bolt 12]] is the next [[payment negotiation UX]]",episode_title:"WHY ARE WE BULLISH Bitcoin Meme Hub Jan Capek Bitcoin Mechanic Max Hillebrand ep195",guests:[{name:"Max Hillebrand",profile_picture:"https://pbs.twimg.com/profile_images/1311357499514269696/-HQFwyFH_400x400.jpg",ref_id:"9a86cc59-ed01-4757-88f6-e9d9d63067b9",twitter_handle:"HillebrandMax"},{name:"Bitcoin Mechanic",profile_picture:"",ref_id:"faae3a37-0115-4074-af21-7d79c429c7cb",twitter_handle:""},{name:"Jan Capek",profile_picture:"",ref_id:"ec6f8b14-6c4b-42e9-8e86-9aa902c0906d",twitter_handle:""},{name:"Bitcoin Meme Hub",profile_picture:"",ref_id:"dcd5a590-2018-4707-a49b-8142d7b14e33",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/39201536/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-7-23%2F214267789-44100-2-17e9fbafdf841.m4a",node_type:"clip",pub_key:"",ref_id:"1f486e9a-51aa-476a-8430-b149c88817f4",show_title:"BTC Sessions",text:"learn and test out wallets and see what's up because it's a lot of fun to play with if you haven't if you haven't tried already. Max, you are up. Dude. Please let us know what has you feeling bullish this week. Oh, this week specifically it was Bolt Twelve to stay with the Lightning network. That's the next generation payment negotiation. Ux flow and it's really magical and super useful. So far. A Lightning network invoice both Eleven is a one time payment secret basically. And it's the string that you should only use once to request a payment and that makes things a bit awkward. Main thing is that you cannot get a tattoo of your Lightning invoice because that would be a very shortlift fun and that we got to solve. Of course, right. There are current nice hacks around this, mainly LN-URL which is kind of a separate server that you need to set up and that then you have a small domain link, btcsessions. Compayme and all of a sudden you can toss Ben some sense, right? That's possible with this add on service. But what both Twelve is doing now is to do kind of a similar thing, but inside the Lightning network directly, running completely inside your Lightning node and communicating only inside the Lightning network. So you don't need to have a separate server, you don't need to run any separate software, you don't need to have a domain and all of these things are taken care of. It's all just Lightning pop keys at that point. And the cool things that you can do is static invoices or the static offers, right. So you actually can get a tattoo right on your forehead. People can scan all the time and continue sending you one set as you deserve, obviously for the heroic act, but it also allows for automatic recurring payments. So you can say hey, scan this QR code and you will pay me forever. One set every minute. That's great. And there's also nice messaging involved here directly. So sender and merchant can communicate and send messages back and forth about details of the payment, which is fascinating as well. Well, because there is some difference between the time where this offer was created and you print the QR code and when then someone actually pays the QR code. You can also do, for example some trickery with the exchange rate. You can print the QR code with an offer that says pay me $5 in dollars and a week later, of course, the stat price is much different as the shake coin continues to hyperinflate. Right. So you are going to get less shake coins for those five stats. Five Bitcoin. Sorry, you get less stats for those five bitcoins. Exactly. And this can also be negotiated again at the time where you actually make that payment. So small things like this that really show in hindsight how bad Lightning was and how much of a hack it was in the beginning and as a miracle that it actually worked. But now that we have well over four years under our belt of actually implementing this craziness, we've learned a thing or two, and that is all kind of cohesively packaged under Bolt Twelve Lightning offers by Rusty Russell So Bolt twelve.org as a really useful resource that shows you all the fabulous things. It's still very early so far only implemented by C-Lightning, and one other full Lightning note implementation will need to implement it before it's considered no longer a draft in the spec. But I'm bullish as fuck, especially as a podcaster and content creator. I've been showing Bitcoin on chain QR codes on YouTube videos for way too long, and Lightning made that terribly worse because every QR code that you show, only the first listener can pay it and nobody else can. So getting Lightning back to the beautiful days of sending stats for watching cat videos on YouTube, which obviously is the highest achievement of humankind in this regard, we're on a good path, so that makes me even more bullish. That's the main ",timestamp:"01:21:28-01:25:47",topics:["bolt 12","payment negotiation ux"],type:"podcast",weight:5.268418788934759},{boost:0,date:1633752e3,description:"The Domino Effects of [[El Salvador]] Making [[Bitcoin Legal Tender]], Citizens are now using [[Chivo Wallet]]",episode_title:"WHY ARE WE BULLISH Haley Berkoe Tip Jamie Stuckert Colin Aulds ep206",guests:[{name:"Jamie Stuckert",profile_picture:"https://pbs.twimg.com/profile_images/1481004564090433537/ZAj3C3Kv_400x400.jpg",ref_id:"ee047505-97c1-4086-a01c-3d18bd40b2d2",twitter_handle:"JamiaStuckert"},{name:"Colin Aulds",profile_picture:"https://pbs.twimg.com/profile_images/1151579149091262464/uNkb8aat_400x400.jpg",ref_id:"7b6066e2-2ef5-4e90-9d93-dedb1d289118",twitter_handle:"Colin_Aulds"},{name:"Tip",profile_picture:"https://pbs.twimg.com/profile_images/1598405188343468032/yL-obWRx_400x400.jpg",ref_id:"72362a7b-2a0a-44ae-beb4-bb0f36a485fc",twitter_handle:"tip_nz"},{name:"Haley Berkoe",profile_picture:"",ref_id:"b62ba399-282a-4628-811c-25e280541c99",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2e84c98a-d7d8-4341-a129-3f4eaebe1e3e.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/41540590/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-9-9%2Fd7420ef4-f713-f016-1ad9-b5411c2f99ee.mp3",node_type:"clip",pub_key:"",ref_id:"54d58e3e-b828-4a9e-92c3-f761826c0319",show_title:"BTC Sessions",text:"would say so many things I'm just bullish every day. But more specifically, what's going on in El Salvador. So just yesterday was one month since they made Bitcoin legal tender, and since then, like, half the nation has already downloaded the Chival app. That's 3 million people is the population 6 million. Yeah. Just right around that, right. Yeah. So that's like a pretty big number. And then I saw this other statistic that 2.5 million Salvadorans living in the United States will eventually be sending remittances through cheevo. That is a significant number. And it's just extremely powerful because all of Latin America is going to watch how they implemented this and they're going to start doing it, too. So imagine I'm just ready. I think we're all ready for the dominoes to fall. It would be crucial for Bitcoin to get into these other countries. And also what you mentioned earlier over in Africa, the whole world really needs it. But what's going on in El Salvador is just fascinating. I think it's a little bit soon to try and really make judgment calls on the situation because it's really tough. The education component is really tough. Like I was telling Chimberra in Bitcoin Beach this the other day, I'm like if there were teams of hundreds of people going into El Salvador to train everybody, it would be a little different. But you have to have a lot of resources for that, right? So it's a process. It takes time, and hopefully more people will get educated. Read more. The Spanish community is now doing podcasts and they're sharing more stories. I'm super excited. I think it's going to go well eventually. And I'm excited for the rest of the world to fall behind them. Yeah. It's unique in El Salvador because it's coming from two ends of the spectrum, too. You've got this initial grassroots movement with Bitcoin Beach, where it's just a small community kind of bubbling up in El Zonte. And then you've got now coming from a more top down approach where obviously the government is like, hey, this is legal tender and some Bitcoin is kind of pushed against the enforcement type measures around that. Now, granted, as an individual or a business owner, you don't have to hold Bitcoin. It's an effort for people to accept Bitcoin and choose to swap it to US dollars immediately if they want to. But Bitcoin is a very averse to any sort of use of force in a lot of instances. But that said, the world is kind of watching here, and I guess we'll see how it continues to play out. I love that it was started as a grassroots thing in small communities. I like seeing that around the world. And I'm moderately curious as to one how this plays out down there. If we see another kind of cycle, as we've seen in past, where it's huge boom followed by a bust, because that could look spectacularly bad if it's massive boom for the end of the year, and then it's like a two year bear market after that, that may not look great on the world stage. So hopefully that's not the case. But also, I'm really curious as to because they're not going to be the last country to do this. And I'm really about what's next. You hear rumblings in other locales, but a lot of it seems to just be like, oh, we're just going to kind of give our stamp of this exists and it's official that you're allowed to own it and some sort of regulatory clarity. But I'm curious about the next country to say this is legal tender, and I don't know where that'll be or how long it'll take, but I don't know. Colin Haley, Tip, what do you feel about what Jamie is talking about in El Salvadora? What are you interested in? What are you worried about? ",timestamp:"00:46:11-00:50:54",topics:["el salvador","bitcoin legal tender","chivo wallet"],type:"podcast",weight:5.268418789235816},{boost:0,date:1472358600,description:"Getting funding as a small business ",episode_title:"TheMacroView Episode 4: Access to Capital",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/8e52e9c4-52e8-4dea-8ed9-8c6a7fcef25a.jpg",keyword:!0,link:"https://www.blogtalkradio.com/themacroview/2016/08/28/themacroview-episode-4-access-to-capital.mp3",node_type:"clip",pub_key:"",ref_id:"9ac59d0a-2e8d-430b-87e4-493026d9cbe3",show_title:"The Macro View",text:"underwritten by a bank and they've got a whole process behind it. But originally the idea was kind of skipping the bureaucratic process that goes on behind the scenes of a CD that costs interest and just deciding which loans you're going to make and kind of having the underwriting of a bank. Now there's risk involved, which there's not. With CD you get at the IC, that's why you get a lower rate. But in a yield starved world, for some people it was a really good option to start investing in these peer to peer loans and we'll see how it ends up working out over the next five to ten years. But being able to kind of cut out the middle man and get capital right into the hands of people that need it, I think that that's a very interesting innovation and the ability to document those loans. And I know there was a scandal recently with Lending Club, but for the most part you're able to document that stuff very well. It's not that hard with modern day technology to have a really strong and secure database to be able to document these securities very well and make sure that they're not getting lost or being overly diluted. And you can have rules surrounding small businesses in regards to how often the liquidity can be offered by the investors. Maybe they do have to hold it for six months. So you don't just get a plumbing in the price a little bit after it goes up on the market and you have a plugin to where, if you're an investor, get a quick and easy report on what's going on behind the scenes of that business and where that capital is actually being used. All that's possible with today's technology. All that's possible with today's technology. And we're operating in a financial services world that is based on 1940 laws and 1933 laws. The entire infrastructure, the legal infrastructure and regulatory infrastructure up until basically DoddFrank and you've had Tweaks here and there, you had Glass Eagle and then it got repealed and you kind of had the merger of lending banks and investment banks or commercial banks and investment banks. You had kind of the merger and consolidation amongst that after the repeal of Glass Steagall, which set up a firewall and then the Volcker rule kind of did that and moved closer towards that. And that was part of Don Frank. And frankly, I think disclosure is the most important part of that. And yes, because we have an insured financial system, when it comes to just everyday consumer deposits, it's very hard to have that moral hazard of allowing prop trading desks that can take almost unlimited leverage with individual depositors that have financial insurance for their deposits because those prop traders kind of know in the back of their minds, hey, we're not really losing anybody's money. So as long as you have that moral hazard. It's very hard to have a commercial banking system that's merged with an investment banking system because you basically have customer deposits that are insured being put up as collateral to trade risky assets and to do it via risky strategies if it was fully disclosed and people knew the risks that they were taking with their deposits and there was an insurance. Which if there was an insurance. Banks wouldn't really take that risk because nobody would let their money be that kind of risk taking with it. With their savings and with their checking account that they use to buy food every day. It just wouldn't happen. But if you had a system like that, then you wouldn't really necessarily need the separation. The system that we do have with the insurance, you do need the separation. So it's an interesting framework that we have because the way that businesses gain access to capital today is really based on a world that was way before the current information. And I know in the 80s things got a little bit stricter in the because you had the pink slip pushers, the pink sheets pushers, and the penny stock brokers that were kind of running rampant and your wolves of Wall Street type characters that were ripping off old ladies and selling them a bunch of junk. And that's not what I'm advocating. What I'm advocating is having a legitimate market that has really strong accountability built into the technological infrastructure of it. You have a fast registration process. You have standardized types of offerings. You have auctions that are available, and you farm that exchange API out to every brokerage firm. And you hold brokerage firms accountable for keeping documentation and backup documentation on it. And you set up rules to where the brokerage firms aren't going to get sued for recommending it as a small part of somebody's portfolio, and aren't going to get sued if somebody without getting any recommendation or professional financial advice goes off and buys a bunch on their own and take that risk. Because casinos don't get sued when somebody walks in with $10,000 and puts it on the table, that was that guy's life savings and you just let him blow it. They're kind of in a world where they understand, look, people are going to come in and take bad risks and make bad decisions. And to a certain extent, while it's sad that's the world of investments too, people have to learn that you can't just make willynilly bad investments. You got to diversify. You got to play it long. You got to think about the long term. You got to build a good, strong portfolio that isn't dependent on one or two things working out that's basically going to follow the overall economy. But maybe you can outperform a little bit on the upside and maybe you could protect a little bit of risk on the downside. If you have a really good financial adviser, you're your own professional financial adviser and you know what you're doing and you know how to manage that risk, there are ways to do that. There are ways to use the markets that we have to get a good return. I think this would be a way that would increase that. I also think that it would open up structured products that would allow a lot of capital to flow from institutions to these small businesses and that would really open up the market for entrepreneurs to gain access to capital. If you had strong structured products that were based on pools of strong interest rate loans to small startup businesses that also had a tax incentive built in, you'd have institutions all over the place trying to buy into this. And you'd also have it as if you structured it properly to where you have the right risk management protocols in place. You'd also have a lot of retirees who might be able to clip a little bit better of a coupon, do it in a safe manner, and while helping to build the next generation of businesses. So there's a lot of things you can do. I'm not saying it would be their entire portfolio, maybe five, six, 7%. You can index annuities to these pools there's all sorts of interesting things you could do with structured products if you had a more vibrant market where investors of all sizes could come and gain access to startup and small business debt and equity offerings in a way that was accountable and in a way that was efficient and in a way that maybe offered a little bit of liquidity. But you understood these are small businesses that are trying to grow that liquidity three, five years down the road. If you actually had a world that preached truth that didn't say one out of every three businesses goes out of business, only one out of every three businesses is still in business after the first year. Only one out of every ten is in business after the third year. All these little cliches that just simply aren't true. About 68% of businesses three years in are still alive. So yeah, you've got one out of three that after three years go out of business and by five years 50%, a little over 50% are still alive. You have pretty close to 50%. Five out of ten. Let's use real numbers and let's plan risks around those real numbers and let's understand that yes, there's tail events but the more vibrant of a market we have, the more of an opportunity there is for people to find ways to manage the risk around that market. And when you have ways to manage the risk around that market, three standard deviation market events that put 75% of small businesses that started that year out of business and a lot of people lose money on that, you have ways to manage that risk and you have way to cost efficiently prevent yourself from losing big time on one of those events. So I think that what we really need is a combination of public policy that provides a tax incentive for the private redistribution of wealth that is wealthy people and people of all sorts taking minority stakes in small businesses and startup businesses, getting a tax incentive to do so. And as that business grows, obviously there's going to be tax base that grows and it pays way more than the taxes that are credited or deducted. By making this investment, by giving people these deductions and credits to make these investments, you're going to have much more taxes that come in a couple of years down the road. But not only are you going to have that. You're also going to have a more vibrant market for it and you're going to have incentives for entrepreneurs to go and create a very accountable market where small and startup businesses come in and properly have the standardized paperwork to make the offering to register quickly. Make it not very expensive and be able to attach that tax credit to it. Be able to attach that tax deduction to it very easily. Raise the capital. Put the capital to work. Hire people. Go on with their idea as they grow their business. You already have strong accountability. It will be easier for them to go back to the market. Maybe the first row is a convertible debt, maybe the second round is convertible preferred. Maybe the third round is a pure common equity. And that's the conversion point for the other two. And those are a year apart. Each they're done on the same exchange. The exchange, the brokerages, they make a little bit of money off of it, people get their tax credit for it, they get to invest in the next generation of businesses. Those businesses raise the capital, they put the capital to work. The economy grows and flourishes and it's going to be well worth having this market when you've got an economy that's growing at 4% as opposed to the measly 1.1% that we got. In order to do this, we've got to make it fair to the people that are participating in the market, that are providing this profession where they're not going to get sued all the time because the business goes out of business. Look, businesses do go out of business. Some succeed, some fail. It's not as outrageous a number that fail as society likes to preach, as we showed you here on slide 13 in tonight's podcast. It's nowhere near those outrageous numbers, but some do. Some businesses succeed, some fail. And when you take the risk of investing in a small business, you have to understand that why you should diversify. But when you're taking that risk at an early stage yet it should be a small part of your portfolio, you're able to get a lot of upside down in the future, you're able to get a lot of upside down in the future. And that's the benefit because you're starting out, you're getting a lower valuation before that company enters into the hyper growth stage. The other thing is. If you open this market up to a credit. Not just accredited investors. And if you had a vibrant market for these types of opportunities. You'd have financial professionals that whether they specialize in that or at least they make it a part of their repertoire and put it as a part of their model and take the time to really start to understand that market. Financial professionals will help their clients make those right decisions. They will. Financial professionals already have fiduciary responsibility. And if they might say, look, you should look at doing this as part of a tax plan and understand you might lose some money on it if you have this tax credit tax deduction, they also might look at it and say, look, if you have ten companies, five are going to succeed, five might go out of business. And the five that you have a finite amount of risk, the five that succeed, out of the five that succeed, three of them you're going to get a two X return and one of them you're going to get a three X return or whatever. You can show different models. You can model it out, and you can say, this is what we're expecting out of it. There is risk involved in this, as there is with everything. That's why it's only a small part of your portfolio. We're diversified, but this is something that we got to get happening. Everybody's complaining about the inequality. Inequality, wealth inequality, income inequality. The reason there's a lot of inequality is because there's absolutely no incentive for a wealthy person to take risk investing in a small business that's just starting out. When you can vary, it's very difficult. There's no vibrant market. It's hard to keep them accountable. People live around the world. If you're an entrepreneur, you've got to go out and find the wealthy person. You got to court the wealthy people, and you got to court many wealthy people in order to find the one that likes your idea. Well, that's not cheap, and that's not easy. And if you're just an average dude or you're an average gal looking to start a business. You come from middle class America or you come from even poor neighborhood in America. But you worked your ass off. And you got a little bit saved up. And you had enough to be able to go off on your own and not have to worry about a salary for a little bit. Now you got to find a wealthy person. Then you can use the Internet all you want, but when it comes down to at the end of the day, wealthy people want to know you can go out and have a drink with them. They want to know that they can trust you, that they can look you in your eyes. They want to shake your hand. It's not an easy thing to do. If you don't come from a lot of money, and it costs a lot of money to get there, you got to constantly be going around and trying to meet with these wealthy people and hope one finds a job. You got to figure out ways to hang out where wealthy people are. Guess what? Wealthy people don't hang out where it's cheap. They hang out places where it's pretty expensive for the most part, and at least pretty expensive for a young entrepreneur that's just starting out. So if banks aren't going to do that job anymore, we've got to figure out a way to incentivize those wealthy people to seek out good ideas. And we got to have a vibrant marketplace for that to be done. And we've got to institutionalize that marketplace in a way to where the offering documents are standardized. People know what they're getting into. They know what they're doing. And there is an incentive, a financial incentive, a tax incentive to do so that will get this economy bumping again, that will get this economy moving really fast. You'll have a velocity of money. You'll have to start kicking up interest rates and then you know what you're going to have? You're going to have banks all over starting platforms for this. They're going to start brokerage houses that will really advise, look 3% help get this tax deduction out there. And maybe the political way to do it is to not make a permanent tax deduction. Make it five to seven years. Seek out some best practices, emulate those best practices, be able to find ways to get more resources to the small business owners so that you have lower failure rates. There are other ways to do this and in a competitive world you're probably going to actually see failure rates at the beginning increase a little bit. And then what you're going to see is you're going to see profits and diminishing returns. The law of diminishing returns. As you have more people participating in the same industry, competing for the same customers, they're going to start to have the price compete. And when they start to price compete, they'll also compete with innovation and new products and new services. But when they start to price compete, you're also going to have lower margins. You're going to have smaller profits. And then capital is going to be diverted away from that. It's going to be put towards even newer businesses. And if you have this perpetual cycle of new innovation, new innovation, new disruption, lower prices, more goods, more services, more abundance for people, more jobs available, more people consuming, more people having jobs, more people getting wage increases, guess what? That also means we can start to pay down our debt. That means we no longer have to have budget deficits every single year. We can have balance budgets. We can have budget surpluses. We have large budget surpluses and windfalls where we can pay whole chunks of our debt down and prepay whole chunks of our debt and we won't have to refinance it. The other ",timestamp:"00:35:52-00:52:23",topics:["Small business","funding","merger","lending"],type:"podcast",weight:5.265220403671265},{boost:0,date:1623733200,description:"The Goals of Small Business",episode_title:"Andrew Frazier on Running Your Business",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f2b2a2b2-8869-4256-94b9-a91c91c1ce7e.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/122_e4b_andrew-frazier.mp3",node_type:"clip",pub_key:"",ref_id:"bda964fc-b276-490e-98b6-3009769f941e",show_title:"Economics For Business",text:"and be profitable. Right. So you have a few techniques. You talk about standardized methods and processes. One of the elements I picked out of the book that I loved was you're thinking about goals. You call them smart goals. That's an acronym, smart. You might walk us through some elements of that, but tell us about goal setting for small businesses. Okay, well, a lot of times you have so many things going on within your business that you have to do that sometimes you forget about planning and doing the things that are important but not urgent. And that's really what goals are. They're very important, but sometimes they're missed. But by having goals and focusing on them, it allows you to move forward and many times move forward even faster and better than you would have. So the Smart Goal effect, which is commonly known to include specific measurable achievable, relevant and time based, where the specificness gives you a chance to get clarity around the goal. And that's generally qualitative and quantitative. You have to have it measurable because you can't improve anything that you can't measure. It has to be attainable. So you need to analyze what it will take to achieve the goal and then it has to be relevant, does it contribute to your business strategy and your profitability, and then you got to achieve it within a certain time. So time bound and have reasonable delivery targets and ways to gauge your progress. So really by developing smart goals, it's a way to plan for your business and it's a way to measure how you're doing and continually make improvements. So Andrew, given that given those set of smart goals, you say that every business from the outset should have detailed, standardized methods and processes. Besides the smart goals, what are the detailed methods and processes that we should be building? Well, it's important to be able to have consistency, and by setting out processes and procedures, it allows you to do that. It's also very hard to manage people, but it's very easy to manage systems. So by having a system or process that helps, you be able to manage more effectively and make sure your business is running the way that you want it to. Michael Gerber, who wrote the email, really talks about the key to running a successful small business is really about running it like a franchise. So that the same way a franchise has processes, procedures, and clear ways of doing business, you should be working towards that with your small business ",timestamp:"00:15:38-00:18:45",topics:["Small Business"],type:"podcast",weight:5.25807249546108},{boost:0,date:1642222800,description:"[[Bitcoin]] Versus Banks in [[Australia]]",episode_title:"WHY ARE WE BULLISH Duczko Thomas Jestopher Morgen Rochard Rick Vanderhulst ep229",guests:[{name:"Rick Vanderhulst",profile_picture:"",ref_id:"4c184180-b77d-4e25-ac7c-4d2e86cdde85",twitter_handle:""},{name:"Morgen Rochard",profile_picture:"https://pbs.twimg.com/profile_images/1362921386256211972/IpIK8cwI_400x400.jpg",ref_id:"c29b26e9-82c8-4c0a-8130-aa083d33ec48",twitter_handle:"MorgenRochard"},{name:"Thomas Jestopher",profile_picture:"https://pbs.twimg.com/profile_images/1607521016368201730/6GSHGkGX_400x400.jpg",ref_id:"50388de7-3ec7-401b-8349-5ee1d8a004c0",twitter_handle:"Jestopher_BTC"},{name:"Duczko",profile_picture:"",ref_id:"2b6de75e-0cf5-4fec-b458-d1b8ee3f86df",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b87feb17-6926-4295-b2c2-d1c2e9d49ca8.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/46171740/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2022-0-15%2F68b825e2-6752-7447-34ca-b27f0ea69256.mp3",node_type:"clip",pub_key:"",ref_id:"c2dff822-95ca-45fd-bf30-61ed21ecc3b1",show_title:"BTC Sessions",text:"this is actually fact in Australia. So there was a case Bitcoin versus banks, a guy that was dancing with his small Bitcoin exchange. He was just doing transactions on one of the peer to peer exchanges, helping people. And several of the big banks in Australia, they've actually invested in one or several exchanges at the same time. They're not allowing these other exchanges to bank. So clearly there is something going on with their own incentives. Yeah. It's unfortunate. Jess, I don't know if you have anything that you wanted to add in. I haven't let you chat much yet. Sure. Let's see the experience in Turkey. I think, Rick, you mentioned that. They'Ll. Just pass along a check that is the asset and write the new information on it and just pass it around. You'll have like ten different names on there. And it's just sort of this delayed settlement because no one has the money because all of that inflation. And it was just like, wow, that's the Fiat system. And here in the US, the financial center of the world, on a sunny day, it's still one to seven business days. Everything is going perfect. I just had my first experience ",timestamp:"01:06:17-01:07:52",topics:["bitcoin","australia"],type:"podcast",weight:5.248069832838849},{boost:0,date:null,description:"Bitcoin backed stablecoins as a solution and how it works in emerging markets",episode_title:"#Bitcoin solutions for Emerging Economies",guests:[{name:"@RSK",profile_picture:"https://pbs.twimg.com/profile_images/1592915327343624195/HPPSuVx3_400x400.jpg",ref_id:"b326a250-3fc1-46da-a64c-2659a4de0e3a",twitter_handle:"RSKsmart"},{name:"Femi Longe",profile_picture:"https://pbs.twimg.com/profile_images/1547047357371797504/avnHBa2W_400x400.jpg",ref_id:"7a5a41f1-6d1e-46c9-b97f-20ae03eafdd1",twitter_handle:"TheArtOfTomas"},{name:"@Alexandria The Great",profile_picture:"https://pbs.twimg.com/profile_images/1575525599493427203/XubWEoDX_400x400.jpg",ref_id:"1c95e8b2-3a98-46ce-933f-ef9f50c518c5",twitter_handle:"alesander97"}],hosts:[{name:"Tomas Villalonga",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"4f1cff71-07e0-4d7a-8992-d4b0609ca0b1",twitter_handle:"TomasVillalonga"},{name:"Brian De Mint",profile_picture:"https://pbs.twimg.com/profile_images/1546297674512470016/oEVF8rJQ_400x400.jpg",ref_id:"064e04f7-8320-4854-8325-0cc19cd7ff55",twitter_handle:"BrianTheMint"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b2dd8be4-74b5-47b2-b470-e568657f3a0d.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/1ced1636-bd02-426f-a451-f1ebcd2108d1/f1d75b7e-a877-4052-acdd-23958f6207d6.mp3",node_type:"clip",pub_key:"",ref_id:"41015fe4-63fd-46d7-8dde-f065457f2af6",show_title:"Art of Tomas",text:"Yeah, I think so. As a bitcoin, I wish I could just tell people, just buy bitcoin and it fixes everything. I wish it was so easy. But for most people, unfortunately, bitcoin volatile, it's too much. So I think looking for like I put on the title bitcoinsolutions, and I think things like a bitcoin backed stablecoin for a lot of people in the world make a lot of sense. And if you could do it in a way that also benefits bitcoin, which is what rootstock is doing and why I like it so much, I think that is the best way forward. Alex, please. Yeah, definitely. I think one of the things that we actually started working on with our skill and metamorphosis in the space was that what we wanted to do was we wanted to look at how can we achieve market penetration. One of the problems that we have in emerging markets, or I can't say Zimbabwe's, emerging market in undeveloped markets like Zimbabwe for example, is because we face sanctions and of disadvantage we can't have what sort of central exchanges. So the thing about central exchanges, especially like what we saw with FTX was these exchanges often don't hold any bitcoin, they just come up with the own kind of altcoins and then they promote them and then they just dump them on retailers, for example. Right, but the thing about these exchanges is that you have these new types of what you call it, stable coins like USCC or UST that can pay these guys massive amount of startup capital. And then these individuals, these exchanges now have incentive to register these debt coins only and promote them regardless of whether they're beneficial to the end user, right? So there's kind of an unfair advantage when it comes to bitcoin versus these other cryptocurrencies at the end of the day. So what we saw was that because we don't have exchanges that can propagate the only agendas involved with, we can now we kind of have an advantage. And this advantage now comes with to access bitcoin which is highly demanded as well, where comes at a cost at 10% premium because first there's a cost of getting the capital outside of Zubay to buy this bitcoin and then coming back to Salad here, which is on 2% depending on the level of liquidity that you have and that you're transporting. The second challenge is that the second premium is that it comes from individuals wanting to make a profit. Now, if you are passionate bitcoin like myself and Metamorphosis, what you can do is say let's forgo the profits today. But also depending that we have a job with our so it's really nice that we've been able to get a company like I was K for example, that actually pays us to grow these communities to improve risk on adoption in Zimbabwe. Anyway, what is happening is that you can basically forgo the profit and then bring the trees down to about 2% 3% and then what happens is that you now can sell bitcoin cheaper than most of these stable coins like US CC UCC. And then also you can also undercut the current legacy system which is also charging around ten to 15% premium. And then people can now start seeing what should the financial benefits of using bitcoin. Once again, the problem is that Bitcoin's financial benefits was taken away when exchanges went away. But now we're saying, okay, maybe that's actually an advantage and something that we can use against these individuals to ensure that we can push Bitcoin because backstabbing like Donald Chain, for example, at a very low fee. If you guys can do that, that is brilliant, because that gives you an advantage. I wanted to ask you, we're going. To be working on that. We believe that stable coins are kind of the short term solution for a lot of people. Like you said Thomas, a lot of people cannot afford the volatility of bitcoin, but they can use for sure unstable coin that is backed by bitcoin and that all the fees that you pay go back to the miners and to the bigger ecosystem. And I think it's a certain solution for a lot of people. And we believe that a lot of people are going to embrace crypto through a single point that is backed by bitcoin. They are going to see how bitcoin can add value to their life, and then they're going to understand bitcoin after that. So I think what Alexandria is proposing, I think is key, and I believe it's a great strategy because it's going to be for them, like, seven to 8% cheaper than buying USDT and more secure even for them. So, yeah, I think it's a great strategy and I hope we can make this happen and it's going to help a lot of people there. Yes, absolutely. Absolutely. For me, a bitcoin backstop solves many, many things. At the same time, it allows for millions of users that cannot use bitcoin to benefit from bitcoin, to benefit from the growth of the network, the security from the network. And also because all the fees go to the bitcoin miners, all those new users, they are also making the bitcoin network stronger. So it combines a lot of things that it surprises me that a lot of bitcoiners have such a hard time understanding this. And that's why I wanted to have your perspective, Brian, in all of these. Because in your book, bitcoin evangelism, you do a great job explaining everything of how bitcoin is, how it works, what it means. And he also described when you talk about altcoins, that a lot of the altcoin services would be built on big coin eventually. So I wanted to ask you if you have tried any of the VidCon layer two solutions or these big compact stable coins, or if you have any questions or anything in that regard. Yeah, that's actually part of why I really like jumping on with you guys. I see this as a really good opportunity for me to learn. The only layer, too, I really have any familiarity with is lightning. I mean, I really want to learn more about rootstock. I want to learn more about bitcoin backstable coins. If you wouldn't mind, can you break down how a bitcoin backed stablecoin works? Like, how did the bitcoin reserves work and that sort of thing? Because this is very much I mean, it's pretty funny. Bitcoin is such a new space, right? I mean, I've been in it for ten years, and it's evolving at such a light speed that even the quote unquote experts, nobody's an expert at every element of it. Nobody's a doctor in bitcoin at this point, right? So I'm really here in, like, a learning capacity for these particular things. So if you want to mind just breaking that down, because I feel like that's part of my bitcoin, evangelism is to help people understand some of these emerging concepts, because, yes, I think the concept of a bitcoin backed stablecoin has a lot of allure of people that I talk to that particularly talk about the volatility. Like you mentioned earlier, a bitcoin where I lean into the volatility of bitcoin. I actually don't shy away from that, but I go the one bitcoin is one bitcoin and that sort of thing. And that doesn't appeal to everybody. And I understand why, if you wouldn't mind just illuminating this idea of bitcoin back stablecoins a little bit more for me. I mean, you guys are talking about it in a very practical sense, so I get it in that regard, the need for it and why it works. But if you can maybe even explain some of the technical side of it, not on like a computer science standpoint, but just maybe how the reserves work, how do the fees go to the miners and those types of things. Right, yeah, I can do that. I wouldn't be able to explain it technically, even if you wanted me to. But basically, the bitcoin network would stand as, like, the base layer, and on top of it, you have different layers, too. Like lighting is one, liquid is another one, and you have Rootstock. Some of the key characteristics that I love about Rootstock is that the main currency is pegged one to one to BTC. So it's our BTC, and you have the bridge that you can go back and forth. And one of the platforms that are running now on Rootstock is called Money on chain. And I created the first bitcoin backed stale coin. Before. Sorry, I skipped this very important point is that root stock is merged mine by the bitcoin miners. So if you're a bitcoin miner, you can mine both chains at the same time with no extra cost, and you earn more bitcoin if you do. So Roots talk at the same time, make the bitcoin miners earn more money, which most like now is quite important. So you earn so that the revenue would be the mining reward plus the bitcoin fee from the block and then whatever fee reward from the root stock block. Okay. And you get that in bitcoin. Right. And then we have the main chain, which is money on Chain. Actually, before we go into money on chain, to me, the fact that Rootstock has bitcoin as its native currency and the fees go to the bitcoin miners makes it very much aligned with bitcoin because it means that all the value from Rootstock is going to accrue to bitcoin, the asset. And all the extra financial movement that happens on Rootstock goes to the bitcoin miners to make the bitcoin network stronger. So they're very much aligned in that sense. Sure. Yeah, I want to add on I just want to add a few other points. The first thing is, as soon as you buy your bitcoin, basically what you do is you plug into a permissionless, peg into small bitcoin. So you have a small contract plus your bitcoin. And then this allows you to basically now mint a dollar and chain. So dollar and chain is basically now a bitcoin has backed eight to one. So for every $1 of bitcoin, so dollars of bitcoin, you have $8 of bitcoin basically backing it, basically. And then I think what autonomous is saying is that whenever the individuals that are mining bitcoin, these individuals with a slight switch can also use a place that's called neo merge mining, which allows them to also mine the restock network, basically, which is the second layer towards that. So right now we're saying about kind of varies from 40% to about 60% of breakcoin hashing power. And like what you said, basically all of the cryptographic hashes from the restock network is actually added onto bitcoins. They're one's block, basically. So this means it's very beneficial to the bigger ecosystem because every dollar that individuals buy basically just adds value to bitcoin itself. But I think also the one thing that I think was important was I can't sell bitcoin at extremely low premium at 3%. For example, in because of the volatility, we can see bitcoin moving from 5% to 2% on a daily basis, which is good if you're just someone who wants to buy and hold it for a day to day basis. But now if I want to pennies with the market and offer extremely low fees, for example, so that bitcoin adoption can occur much rapidly, it's not really possible because of monetility. But what I can do is I can use the same that uses bitcoin as a net currency and basically start selling that at about 3%, where the only thing that I'm charging is the cost of transportation to go to a country that has exchanged, buy the bitcoin, come back to Zimbabwe and sell it to individuals. So that individuals can now use this as a form of remittances. Because the one thing I'm noticing is that everyone wants to use big kind of remittance, but the cost of fees is what's really kind of interesting sometimes. I remember I wanted to do a geo transaction when I was in Boswana with my father who's in Zim. As soon as you heard the fees, you're so shocked that we were paying this much in Zimbabwe. And that's something that I've always kind of disliked and I think I want to try changing, but it's only possible because I can use auto and chain, which has no volatility and stuff. ",timestamp:"00:22:42-00:37:24",topics:["Bitcoin-backed stablecoins","Bitcoin exchanges","Brian De Mint","Rootstock blockchain"],type:"twitter_space",weight:5.239642381668091},{boost:0,date:1472358600,description:"Growing small business to increase the economy",episode_title:"TheMacroView Episode 4: Access to Capital",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/8e52e9c4-52e8-4dea-8ed9-8c6a7fcef25a.jpg",keyword:!0,link:"https://www.blogtalkradio.com/themacroview/2016/08/28/themacroview-episode-4-access-to-capital.mp3",node_type:"clip",pub_key:"",ref_id:"7eca97d5-7a23-4e41-8e04-cfffdef85f06",show_title:"The Macro View",text:"can start to really fund our Social Security liabilities and our entitlements and we're going to talk about that in another episode. But one of the things we got to do to be able to do any of this, we got to get the economy moving again. And the way you get the economy moving again is you do what we had throughout the early 90s, which is just flourishing small businesses that were able to access capital. And yeah, you had scams that went on with the pink sheets pushers and the people robbing old granny. Yeah, it's sad and it sucks. And a lot of these regulations exist but most business owners aren't like that. And honestly anymore. I don't know if it was just totally I'm too young to know and I didn't work there. I don't know if Wall Street was just really a bad place back then. Maybe it was. But I'm in the financial industry and I know a bunch of financial advisors and guess what? They're not bad people. They're not bad people, they're good people. They want to do best by their clients. They want to do best by their clients and they're not going to go and rip their clients off. But if you had a vibrant market where they could get good information, they knew that these securities were legitimate, that they had been vetted, that they were on a market where there's transparency into the businesses. Maybe you don't require quarterlies for small businesses because that's too expensive, but maybe you require an annual or maybe like I said, you have some sort of financial portal where shareholders can at least gain that next level of insight into what's going on in the business at that early stage of a small business. But we need a vibrant market. We need a vibrant market where wealthy people and nonwealthy people can go and find strong early stage business deals. Investment opportunities and ventures that are early stage and start up and where they can put capital at risk in a way that feels safe and secure on a market. That they vet them and make the registration process cheap and easy and the securities that are offered are somewhat standardized and you have some insight into that. Business people will do it. And then you slap a tax credit for pre revenue and a tax deduction for post revenue and that accounts for the risk. And maybe what you do is for those pre revenue businesses, the only type of security they can offer is a convertible that pays a coupon. So you're lowering the risk profile. I wouldn't be a fan of that. But hey, it's a step in the right direction. I'd rather prefer where investors and businesses, businesses offer the type of security that investors want to buy and where as long as that capital is flowing to a small business or startup that is taking that capital, putting it to work and hiring new people, what I want to see is I want to see new businesses come out with new technologies, with new products, with new services. I want to see them compete against the old ones. I want to see them hire new people. I want to see them drive the cost of goods down. I want to see them drive wages up by competing for the best talent. And the way that you do that is you get entrepreneurs who are out there. There are entrepreneurs out there who want capital to put to work, who they know with the right amount. They just overcame the barriers to entry that we all set upon them with our really high regulatory costs and ridiculous regulations. If we just overcame that as an entrepreneur, we would be successful. And what we need to get there is a little bit more capital than what we foresaw because we didn't realize all these regulations were coming out. We started three or four years ago and wham, we got slapped with tons of. Uncertainty and we have no clue when it's going to be implemented when or what's going to be implemented when and it's a total mess if you're an early stage entrepreneur especially in a highly regulated industry. And that's my weekly rant for today. I hope you guys enjoyed the show. We're going to be wrapping up here in just a second. Got about four minutes left. I apologize for the technical error earlier on. Had a little bit of trouble with my microphone when I tried to dial in it's just a ton of static in my headphones. So we had the show scheduled earlier and unfortunately I was in it. Had a lot of static going on had to unplug my microphone and try to figure out what was going on so I just had to end up recreating the episode. Sorry about that for all those that listened to the first one I had posted and are now going to check back in a little bit later. So to wrap up I wanted to talk about something that I saw the other day that I thought was really funny. I thought it was very creative and expertly put together and what it's called is Lovegov and you could just YouTube search YouTube lovegov and it's a series about six short videos about five minutes each and it is a sort of a satirical show where a girl falls in love with a guy named Gov and Gov is sort of for all intents and purposes a government regulator but kind of is the allencompassing federal regulator. He comes and points out every little thing and it's just her life through college and government encouraging her to do this with certain incentives or Gov not government but Gov is encouraging her to do this with certain incentives or encouraging her to do that with certain incentives like in college and going abroad and taking on all this debt and then when she gets out starting a business oh yeah I love small business. Not as much as big business but I like small business too and here I've got your ocean safety regulations and I'm not doing it justice at all. You got it. And maybe on the next episode I'll play a little clip for man might try to reach out and get permission to do that. I think it's done by the Independence Institute but if you go on YouTube just type in Lovspace G-O-V Lovegov and you'll find it and I think that you'll really enjoy it. I think it's really well put together. It's the type of thing that we need more of. We need more satirical comical culture winning culture winning media that's funny. That's light but there really does nail the point across and I think that this little short series of videos really dead it was really good. Had me laughing but at the same time was a serious point that got across and got made and I think it's very relatable and would be very relatable to a lot of people of all political ideologies to show how government gets involved in the market and really destroys a lot of the market incentives and makes it to where people have a much harder time going about chasing their dreams and pursuing what it is that they really want to do and what they thought was their version of the American Dream. Not some Washington bureaucrats version of it. Again, this is Andrew Smith coming to you live from downtown La. This was the macro view. Hope you guys enjoyed it. Tonight's episode is all about access to capital, how we're going to get it, why it's so important, and talk a little bit about why we don't have it right now. If you're just tuning in now, go back and listen to the episode in full in about ten minutes and we're going to wrap up here. Hope you guys have a wonderful weekend. Take care. Again, this is The Macro View, coming to you live from downtown La. ",timestamp:"00:52:24-01:00:00",topics:["Small business","investment","new business","capital access","entrepreneur","government regulations"],type:"podcast",weight:5.209966659545898},{boost:0,date:1671321600,description:"How big data center miners help enable self sovereignty for individuals",episode_title:"#Bitcoin Mining Saves the World - Brought to you by Marathon",guests:[{name:"Steve Barbour",profile_picture:"https://pbs.twimg.com/profile_images/1592714173469065216/q8kXPyQI_400x400.jpg",ref_id:"63a731b8-4759-4360-9e9d-d66f884e12d8",twitter_handle:"SGBarbour"},{name:"Nathaniel Harmon",profile_picture:"https://pbs.twimg.com/profile_images/1578090357102780416/etXW-RA9_400x400.jpg",ref_id:"9105fb4e-4150-4c25-90f1-8ea770585749",twitter_handle:"NateHawaii"},{name:"Taylor Monnig",profile_picture:"https://pbs.twimg.com/profile_images/1599563776621219840/mvb8y3zY_400x400.jpg",ref_id:"b8513b01-ff94-4d7f-944f-5c92e1126885",twitter_handle:"taylorbmonnig"},{name:"Harry Suddock",profile_picture:"",ref_id:"6440ea0f-c982-4b76-b7c2-9c6bf7e9a4a9",twitter_handle:""}],hosts:[{name:"George Kaloudis",profile_picture:"https://pbs.twimg.com/profile_images/1545498090118950913/aGCJaGqF_400x400.jpg",ref_id:"4ae2c311-16fd-4586-b65d-f046b1feb9ce",twitter_handle:"gckaloudis"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/492cbcce-3744-4d8b-b2ca-3a7f063e798a.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=Tk8oChjgVhw",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"6e890ef3-7358-40d6-a01f-44f444dbabfc",show_title:"Swan Bitcoin",text:"Taylor, we're talking about the little guy a lot over here. And you work at a big public mining company. So how exactly are you big data center public miner helping enable self sovereignty for the little guy? So I guess I'll take it from a society perspective, our last two acquisitions are good examples of this. These are sites that are in, you know, rural Georgia, have a ton of excess power that was simply just going to waste. We've been able to go in there, utilize over 100 power, provide over, you know, 50 jobs, and introduce bitcoin into the daily lives of all these people, along with millions of dollars of revenue for these small cities. So from a self sovereignty perspective, it might be a little bit difficult. But from a societal perspective, we're making a huge impact with mining all across rural Georgia by building these data centers. Cool. Let's talk about energy. I think people want to hear us talk about energy anyway. So Harry you touched on it. Per capita energy production is a good thing. Energy go up, bad things go down. I read something recently from Lyn Alden where basically we're just trying to capture the sun in some capacity, as much concentrate as sun as we can. That's ",timestamp:"00:09:38-00:10:45",topics:["Self sovereignty","Bitcoin mining"],type:"youtube",weight:11.383676517140954},{boost:0,date:1623733200,description:"The Processes and Procedures in Small Business",episode_title:"Andrew Frazier on Running Your Business",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f2b2a2b2-8869-4256-94b9-a91c91c1ce7e.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/122_e4b_andrew-frazier.mp3",node_type:"clip",pub_key:"",ref_id:"3dacb7c8-34d2-4e73-8064-5d53c6857239",show_title:"Economics For Business",text:"to our interview. When I was in the big business world, Andrew, we used to build what we call process maps, which are every step in the process, every handoff who's involved, what the output is, what the input is to the next step. Is that what you're advocating, that kind of detailed process mapping our step by step outline of activity? I'm advocating that, of course, in small business, you have a lot less resources and manpower, so it's a process. And early on, when you're working in your business, you're working and sort of developing them as you go. But to move forward and grow, you have to become a supervisor and a manager. And at those levels, you develop the process and procedures so that you can build your organization and continue to do business the way that you want to do business and in the way that has made your business successful previously. Yeah, we used to have a thing called the Procedures Book that catches all of those processes. Do you recommend that small businesses have something like that? They accumulate these processes over time? I think you do the keys to really going from working in your business to working on your business. That's where you develop your processes and procedures and you optimize your business. So that's really what working on your business is. And by doing that, you also increase capacity. So you're working in the business, you're working on developing your products, your services, finding the right target market for that. Once you do that, then you should pivot to working on your business, which is really when you're putting processes and procedures into place, you're optimizing your business plan and your strategy, and then you're building capacity and then working on the future of your business, you're really developing your strategic growth plan ",timestamp:"00:19:37-00:21:44",topics:["Small Business"],type:"podcast",weight:5.171255588532055},{boost:0,date:1613511331,description:"The Bitcoin education",episode_title:"WHY ARE WE BULLISH? Bitcoin Buying Tsunami Swells in All Waters ep147",guests:[{name:" Away Slice",profile_picture:"https://pbs.twimg.com/profile_images/1493953883370053632/rvtEfkr-_400x400.jpg",ref_id:"ff304d54-ca39-45eb-98ef-483460548c9a",twitter_handle:"add_slice"},{name:"Littlest Hodler",profile_picture:"https://pbs.twimg.com/profile_images/1396223393322749952/uzavXUxh_400x400.jpg",ref_id:"5eaa1126-c920-4860-89a0-459e64be2af5",twitter_handle:"littlesthodler"},{name:" and Colin Aulds",profile_picture:"https://pbs.twimg.com/profile_images/1151579149091262464/uNkb8aat_400x400.jpg",ref_id:"fbd7719d-1c4a-497d-96a8-1d34e2e91702",twitter_handle:"Colin_Aulds"},{name:" Mark Moss",profile_picture:"https://pbs.twimg.com/profile_images/1501276126823346177/6grHYzO4_400x400.jpg",ref_id:"5a1cc110-3363-4dd1-a568-e80f70a51925",twitter_handle:"1MarkMoss"}],hosts:[{name:"Ben Perrin",profile_picture:"https://pbs.twimg.com/profile_images/1181715113226596352/ipGVEcYH_400x400.jpg",ref_id:"e6b013ef-178b-4b41-95ee-423148a3dc3a",twitter_handle:"profbenperrin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/26808829/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2021-1-16%252F91cb3e87-a549-79e0-bed0-3b2785b9eed4.mp3",node_type:"clip",pub_key:"02c431e64078b10925584d64824c9d1d12eca05e2c56660ffa5ac84aa6946adfe5",ref_id:"1376395c-9c36-4f82-bdde-86ce6cf7ba26",show_title:"BTC Sessions",text:"most of the time, spent some time with a small company. Now I'm back with the big guys and account management. So I'm not doing as much face to face anymore. But in sales we talk about 90% of sales is listening. So to Mark's point earlier, you don't just say, you know, I've got this widget and it solves 86 problems. Nobody cares about that. If they only care about the one, maybe two problems that it solves for them that's specific to their use case, right? So I have a personal rule with friends. I'm from a very small town. I don't have a lot of friends that are in a bitcoin. I have had two people this week alone come to me. Usually starts on like, Facebook messenger or something, and then we meet up for a beer and chat about it, but I never bring it up. I'm involved a little bit with the Bitcoin runners fitness club over in Europe, so I have a couple of t shirts and stuff, so I wear them to the gym so people know, but I never bring it up. I let people come to me, and then they bring up, listen, I'm worried about how much my grocery bill is going to be next year. I'm worried about bank of Canada borrowing all this money on Canada too. So it's like they say, we're borrowing money from the bank of Canada, but what they really mean is that we're just printing it, and it's impoverishing all our children and grandchildren, right? So I wait for those kind of conversations, and then usually I'll sit down with them with a beer and say, what do you want to do? Do you want to get in? I don't want to show anybody while I'm here, but I do tend to point people to shake pay. I find it's an incredibly simple user interface. If you can send an e transfer, you can use shakepay, share it to Ben. Because you pointed me to blue wallet when I was kind of onboarding my wife a few months ago. I've been doing the hardware thing for a little while and was kind of out of the loop as far as digital wallet goes outside of lightning, so I asked for you for some recommendation. Blue is great because it's got some very basic features. It's easy to learn, and then you can kind of scale up from there as you need. But I think I have an onboarding a lot of people. That's not my goal here, but that's my system for doing so when it arises, right, is that I wait for people to come to me, and I wait for their specific problem, and then I say, well, I can help you out. And this is the underlying technology behind bitcoin that may help alleviate your fears or put you on the right path to whatever decision is right for you. And sometimes that means they spend. I had a buddy the other day that cashed in $50 on his wealthsimple account after doing some stock trading just to see what it was like. And maybe he comes back to me. Maybe that's as far as he goes, right? But I've had other guys that I've helped out that I know are a little bit deep for average, regular middle class people. So that's my strategy for onboarding. It's not something I actively seek out, but I'm always happy to talk about it when it comes out. That's awesome. Tons of noobs coming in these days, and it's only just beginning. I feel like all of us are probably starting to get those friends and family members or even just random DMs from people on all kinds of different platforms. So exciting to see. But we've got our work cut out for us, that's for damn sure. So what I want to do, obviously, again, there's almost 140 people watching smash like button. Give this a share. Let's get a few more people watching it here. We're going to jump to Mark. Mark, dude, let's do a refresh here. What has you feeling bullish this week? Yes, I mean there's so much to be bullish for, right? But I guess today I was digging through some data, looking at working on my next video. Some of the data I was looking at today ",timestamp:"00:47:46-00:51:21",topics:["Bitcoin education"],type:"podcast",weight:5.149457931518555},{boost:0,date:1571767106,description:"Is the device able to verify bitcoin transactions? ",episode_title:"BUC Live: Lightning Hardware and Nodes Panel from The Lightning Conference Berlin",guests:[{name:"ketominer",profile_picture:"https://pbs.twimg.com/profile_images/1245972079528329218/YDUD9N2Q_400x400.jpg",ref_id:"2f8b0b59-6f23-4c89-973c-668cc7666998",twitter_handle:"ketominer"},{name:"Stacie Waleyco",profile_picture:"https://pbs.twimg.com/profile_images/1490885395390861317/MOzYmFOn_400x400.jpg",ref_id:"d4292662-08f9-4b16-a889-b61a401edcc2",twitter_handle:"satsie"},{name:"Christian Rotzoll",profile_picture:"https://pbs.twimg.com/profile_images/1593996559162773504/qKZTYL0I_400x400.jpg",ref_id:"8c13f2e9-d81a-4116-9ad7-d14a66d5f899",twitter_handle:"rtzll"},{name:"Sebastian Küng",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"04448652-5b1f-480c-a573-17c7de956e2c",twitter_handle:"sebastiankueng"}],hosts:[{name:"Anita Posch",profile_picture:"https://pbs.twimg.com/profile_images/1491071678725644288/yehGegWl_400x400.jpg",ref_id:"b60af304-7a57-4a2a-b988-92b960a6b0a1",twitter_handle:"AnitaPosch"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/357dc2db-2643-49f0-9393-5a20ed21d0fe.jpg",keyword:!0,link:"https://bitcoinundco.com/en/podlove/file/533/s/feed/c/mp3/029-en.mp3",node_type:"clip",pub_key:"03abd9980b0c94ddbce7bde91affd5894ca40aaeda0ee0a33503e0c9bb55307274",ref_id:"f6e48088-be00-4596-8731-433c94a02ddb",show_title:"The Anita Posch Show: A Bitcoin only podcast",text:"When I think about buying a Bitcoin node or Lightning node, I'm mostly interested in verifying my own Bitcoin transactions because I don't want the hassle to install a full note on my laptop and stuff. Do your products verify Bitcoin transactions? I mean, can I verify my own? I think I can speak for everyone here. That's the main goal of having the hardware for loans. Okay, I just heard that not all devices do that. So that's why I'm asking. I don't know, maybe this is a misinformation. Yeah. So those boxes, I think everybody has started with very small hardware. So I think the castle box also in the beginning. Raspberry Pi three. Raspberry. Also had the raspberry pi three in the past. Now also offering or being able to use the Raspberry Pi four and with the response such a low powered hardware, then you would need maybe to get the whole blockchain, you were not able to verify it yourself, so you had to rely on some kind of downloaded blockchain, whatever. That was not a good approach. But now with the recipe by four and I think even also all the other boxes are using now power full enough hardware to really verify the whole complete blockchain yourself and have the whole copy of the blockchain then at your service. And then you can do everything with your node and verify everything on your side without relying on any third ",timestamp:"00:07:06-00:08:37",topics:["Bitcoin","BTC Node"],type:"podcast",weight:5.1300153732299805},{boost:0,date:1266645600,description:"Big business Vs Small Business in the Free Market",episode_title:"13. Monopoly and Competition",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ef62c7ab-ef09-47b7-9af4-2ebe2384a72f.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/13_AustrianEcon_Rothbard_1972.mp3",node_type:"clip",pub_key:"",ref_id:"cd0d29e6-af1f-4a94-8fc9-cc38a719807b",show_title:"Austrian Economics: An Introductory Course",text:"thing about big business versus small business. It's not always true that big business can out compete small business on the free market. When Standard Oil, for example, had achieved something like 90% of the oil refinery business by 1900, they began to slip. After that, before the anti trust action against Santa world. They began to slip because they weren't the company gets too big on the market, they began to get sluggish bureaucratic. They don't look for new things, new inventions and new processes. Santa role was the last major company to get into the involved. Santa Claus always been based on Cleveland western Pennsylvania oil fields. And so they're the last major company that began interest in Texas and Oklahoma oil fields. This is the wave of the future. And so then Golf comes in as a new company in Texas and they begin to outdo being to take an increasing share of the business away from San Oil company. And the same thing happened all across the board. US steel, for example, gets formed with something like an attempt to monopolize. The whole steel industry gets form as 80% of the share of the market or something like that. It's now something like 20% slipping all the time. Every year USD sinks deeper and deeper into slots. They were too big, they were outcompeted. USD was the last corporation in the world, practically. They adopted the basic oxygen process, which is the latest improvement in the method of producing steel. And this is through many areas across the board. One of my favorite examples of this is the heroic small business which is always able to outcompete big business or larger business is therefore always put out of business by government. These are the heroic small pushcard peddlers. If you remember back to the push car pedaling masses. The push car peddlers, they have almost no capital. You can't get much smaller than a push card cover. The capital has push cart and as they supply apples or whatever, and that's it. Sometime before the push cart, the push car pedal was sort of the aristocrat of a pedaling business. Before you got to be wealthy enough to be a push car pedal, you just had a box or a case or the lease or something, that was it. Anyway, the push car peddler doesn't have any capital. It doesn't have nearly as much capital as retail stores or department stores, et cetera. And yeah, he has a great advantage. He's mobile when it's raining out, he packs up shop, he doesn't have to pay rent, he zips around, he can get to the best corner, he can get to the rush hour corner, 42nd street or whatever. And therefore he's usually able to do very well in competition to such an extent that in city after city, in town after town, the United States, the retail interests, the retail stores were able to put political pressure on the government to outlaw the pushback, either by charging a license to them, which is prohibitive, or by just putting out of business altogether. Usually on the grounds, of course, the government can't say, municipal government can't say we're doing this because we want to privilege the retail stores. That would be a little too hairy. So they say it is unaesthetic. New York is so beautiful, for example, and the streets are so beautiful, we can't allow the ice to push guard pepper. So you can imagine how much ice that cuts. And the retail business, by the way, the whole history of the retail business in the United States is a whole history, a whole record of humbling, the competition of new people coming up and delaying a competitive process by the use of government. First, it was a traveling salesman. As you all might know, traveling salesman jokes were sort of the big dirty joke thing years ago. And the reason is the traveling sales were illegal most of the time, 50 to about 18 months. The institution of traveling sales when it first comes in about 1850. Before that, there are only six stores, and you buy from somebody in New York, in Detroit. Traveling sales is a great new invention in the retailing industry. And for about 25 years, I put out a business because the existing stores are competing in the traveling sales. And then, like the fact traveling sales, when mobile flexibility zip around, they sell on a personal basis and all that. And so town after town, all over the United States, past ordinances either outlawing traveling sales altogether, ultimately placing very high license taxes in order to get into beach for Wyoming, have to pay $100 a year or something. So if the traveling sales going to pay all the license fees, you would have to pay $20,000 a year or something out of business. As a result of traveling sales was always in a state of illegality. He was constantly on the lamb from the cops, one panel to the other. Therefore had a sort of disreputable. The whole profession was disreputable. Something like bookies today, I guess. And so he had a family salesman joke because of the disreputable profession. Finally, after 25, 30 years of being a state of outlaw, they finally did so well, they finally pushed their way through, and they finally allowed to exist. It became accepted in the retail industry, and most firms then began to operate employee traveling. So they sort of joined them if they couldn't lick them no sooner. That happened in late 19th century. Things are doing pretty well, and all of a sudden, that vicious new monopolistic thing comes in horizon terrible thing, the apartment store. An apartment store first comes in. I said, oh, my god, it's awful. Awful thing. Instead of having one store sell, one product has this terrible monopoly store like Macy's that's selling everything. That's obviously an evil monopoly. You have to smash it. And so the government starts putting on department store, special department store taxes and special restrictions. And that took about 20 years before the department stores worked themselves out of that. Finally, the department store is just about accepted, and the hobbling of the apartment store is eliminated. We got a new terrible thing. The chain store. Amp the first big chain store. And I still remember I'm moving up to remember the days and amp an evil monopoly and you have to smash it and break it up because the mom and pop stores are going to be put out of business. And that's where they had spaceway. And all these others coming out competed amp and nobody talks anymore about breaking up amp. Amp is pretty cruddy shape in comparison with the newer and more efficient stores. ",timestamp:"01:13:30-01:19:27",topics:["Big business","Small Business","Free Market"],type:"podcast",weight:5.126088380813599},{boost:0,date:1471930200,description:"Survival rate of small business and startups ",episode_title:"TheMacroView Episode #3: Financial Entanglement",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/8e52e9c4-52e8-4dea-8ed9-8c6a7fcef25a.jpg",keyword:!0,link:"https://www.blogtalkradio.com/themacroview/2016/08/23/themacroview-episode-3-financial-entanglement.mp3",node_type:"clip",pub_key:"",ref_id:"bdc4757d-1e87-4fa3-b293-6f375af8490f",show_title:"The Macro View",text:"scatter plot chart and it kind of shows from the first year through the 10th year, we have a little bit more data than that, but this was a more complete data set and more recent as well. This is slide number 13 on episode four slideshow. And basically what this shows is that look, after year two, about 79% of businesses are still alive. Tier three, about 67%. This notion, which we hear, it's a cliche that we hear a lot throughout our lifetimes, that within three years, 90% businesses or nine out of every ten businesses go bankrupt, it's actually not true. About one out of every three goes bankrupt. Two out of every three are still alive after three years. Now, after four years, it goes down slightly under 60%, just 60%. After five years, just under 55%, about 53%. After six years, about 48%. After seven, about 44. After eight, about 41. After nine, about 38%. And by year ten, about 36% of the businesses are still alive. Essentially, after three years, you got one out of every three that's gone bankrupt. After ten years, you got two out of every three that's gone bankrupt. So is it that risky? What we're not showing here in this slide, and I may add a slide trying to show this, is what the upside is not every business is a grand slam, not every business is a grand slam. And you could still lose money as an investor through dilution and have a restructuring and whatnot, but the business still be alive. That is the case. I'm not going to deny that is the case. But if businesses are generally surviving far longer than what we expect, should there be this much fear built around this idea of businesses going out of business really quickly and not being able to lend to businesses? If you're a private individual who's not necessarily in a credit investor, not really even having a market for it, not really having exchanges for it, making it highly restrictive on banks and offering incentives to banks to only lend in certain ways to these small businesses, ie. SBA loans that are guaranteed 75% are guaranteed by Small Business Administration of the government, and in some cases, higher than 75% are guaranteed. So why would a bank lend to any other small business other than through an SBA loan? So you've got misalignment of incentives, you've got a number of other issues on the banking side, and then on the private individual side, you have literal laws that make it more difficult. The lower the amount of capital available to people the lower the amount of capital available to people that are trying to start a business and restrict mechanisms for delivering capital from an individual with capital to provide any business that needs capital to put to work, and then being able to come to a transaction that makes sense, a value that makes sense to both of them. And to do this on a mass scale with thousands of people. As opposed to trying to find one or two or three wealthy individuals and have it set up in the right way with technology. You can do it really. Really quickly and really. Really easily. And you can be fully accountable and you can have the bookkeeping and records keeping. You could do based annual reports that provide enough information to shareholders and most good business owners are going to do that anyways. But the idea that we don't have this mechanism in place and that it's actually illegal to raise money from somebody who's not an accredited investor from the general public if you're not a publicly traded company. And I-E-A large company because a lot of the exchanges have rules where you have to be over a certain size in order to list on those exchanges. Now, there's the over the counter exchanges that don't, but a lot of those are looked at very poorly by mainstream America, and there are no mechanisms offered by the big retail brokers for equity or debt crowdfunding for small businesses to be able to access those markets. And quite frankly, I don't blame them for it yet because the rules are not really clear on where that's going to go. The jobs that tried to clear that up, and now you get the SEC trying to really write the rules, and it's not really much is changing. They can do well. If you're worth 50 million, want to raise capital from the general public and not go public, then you can kind of do that. But you got to be big already. 50 million is not a huge business, but that's not the size I'm talking about, okay? The size I'm talking about are startups to three or $4 million, maybe $5 million in revenue, or if it's a very low margin business, maybe two or 3 million to $5 million in profits. That's the size business that I'm talking about that has difficulty gaining access to capital. And we need to figure out a way to match people who have capital to lend or invest with businesses that are of that size. That have capital. That have a need for capital to be able to put it to work and put it to work quickly. That will hire people that have good business models. That they could scale them. Will become profitable. And all they need is access to capital to get there. That's what the next show is going to be about. I hope you guys enjoyed this little pop up show that I did tonight, talking about the cost of the regulatory environment. Remember, it's about 11% of GDP. That's the hidden cost. That's the hidden cost that affects people's wages, that affects the amount of money that you pay at stores for goods. That affects every aspect of your life. It affects the cost of the house you buy or the home that you rent. Whatever the case is, whatever you're thinking about, why is this so difficult? This is a big reason why these regulatory costs $1.8 trillion in regulatory costs, the hidden regulatory costs, which are more than the federal tax base, excluding capital gains and some excess taxes and things like that. But if you're just to account for corporate and individual income taxes, the regulatory costs are bigger than that income tax base. That's insane. Those are hidden costs that we're all feeling right now. We're wondering why. And some people are saying it's Mexican immigration. Some people are saying it's free trade agreement. Some people are saying other outlandish things that have no basis in reality or tried and true economic theory. We do need to simplify the tax code even if we leave rates the same, we got to simplify it. We got to flatten it. We got to flatten it for people. We got to make it a lot easier for them to comply. It's got to be able to be filled out in a matter of a day. And same thing for small businesses and really for all businesses so that they can keep more of that money and they're not having to pay auditors and accountants to prepare it. And we've got to go to a system where we adopt somewhat of a no harm, no foul rule for business owners where so long as we got to get rid of all this idea, we got to regulate best practices. Best practices regulate themselves. If you're not providing best practices as a business owner, you will have a competitor who will and will steal your market share, will steal your employees and we'll put you out of business. That's what happens. That's how competition works. That's how the market works. So we've got to get rid of rules and regulations that serve no purpose other than to say hey, we know better than you and if you don't do it our way, we're going to impose fines on you. All those do is set up barriers to entry and really do disincentivize the wealthy people who would invest under the current system from investing and would disincentivize the nonwealthy people who they're just not able to invest in these companies from investing if they understood those situations as well. Because it's very risky if your business could be put out of business by the government because you lost a sheet of paper or because you happen to run a factory and you have to have a stop button for the assembly line. But the assembly line is set up in a way to where it doesn't really work that way in your factory, which is a real case. I can't remember the name of it, but I'll post on the website when we eventually get the website up and going. But this was an actual case where essentially OSHA came in and said you have to have this and that. If they had actually understood the business circumstantially, not just broadly, these are the rules, these are the regulations, you have to do this. They don't understand why they really didn't need that. And there's a lot of those cases all throughout every single industry. No matter what industry you're talking about, you have tons of regulatory costs that are related to things that don't matter at all, that barely ever happen. And if they do happen, they're more of a tragedy that wouldn't be prevented by that regulation. And the reason that regulation exists is primarily because some expert who either worked for or used to work for a big major corporation, walked into a congressional hearing and publicly gave guidance to the regulatory bureaucracy that was writing the rules that Congress delegated the right to write and this expert is guiding them. This expert basically works for one of the big companies in that industry. That's how these things work. They don't come to small five person shop say hey, how do we do this? No, they go to a quote unquote expert from a major corporation and that quote unquote expert from a major corporation has their own interests and they're going to guide what they want to guide. At the end of the day. You end up with massive regulatory costs that don't really solve the problems that people cried out for regulation to solve because those problems are best solved by competition and regulatory bureaucracies prevent competition and by preventing competition they prevent the end goal that they've stated to try to achieve. Which is to create more equality in these markets and more fairness in these markets and a better distributive share of whatever and to have less negative incentives in the market for people to go out and commit crimes. Financial crimes. And to rip people off to make it harder for people to do that. Well the way you make it harder for people to do that is you have tons of competition. That's the way that you do that. And by having all this regulatory cost you reduce the competition and therefore reduce the amount of natural regulation that occurs from it. Well everybody, I hope you enjoyed tonight's pop up episode. I'm going to call tonight for there again this ",timestamp:"00:44:04-00:55:36",topics:["Small business","entrepreneurship","startup","regulatory cost","income tax"],type:"podcast",weight:5.105514287948608},{boost:0,date:1596686400,description:"[[Bitcoin Energy Consumption]]",episode_title:"Chat 45 - Bitcoin an Energy Revolution A panel at the VOB Conf",guests:[{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"Phillip Sandner",profile_picture:"https://pbs.twimg.com/profile_images/1043824764161335296/2SW3duCV_400x400.jpg",ref_id:"e1996e82-0354-421c-85d5-f18eebec9506",twitter_handle:"philippsandner"},{name:"Jesse Peltan",profile_picture:"https://pbs.twimg.com/profile_images/1123954968636088326/EAjHUGDE_400x400.png",ref_id:"96309505-caeb-47bb-a1ba-712b97292675",twitter_handle:"JessePeltan"},{name:"Christopher Bendikson",profile_picture:"",ref_id:"d72ead54-7bff-4874-870f-123e665fddfd",twitter_handle:""},{name:"Christian Stoll",profile_picture:"https://pbs.twimg.com/profile_images/3296579573/69ebedb479a9bdb9d536fe887e2d3113_400x400.jpeg",ref_id:"ff74d59c-f846-4b16-a5e5-771fb8139f18",twitter_handle:"Granddragon14"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN6935967461.mp3?updated=1627959014",node_type:"clip",pub_key:"",ref_id:"8ab125e2-e555-4adc-817a-bbf5bb93bf40",show_title:"Bitcoin Audible",text:"really a fair comparison to say, like bitcoin uses x amount of energy, like electricity versus x whatever small country, when you're only looking at the direct energy consumption in that country and not looking at the fact that they're getting all the resources from other countries that are consuming that elsewhere. Not only that, but you can flip that entire narrative on its head and say when bitcoin uses more electricity than Chile, that means that even if Chile flipped their entire electricity infrastructure to try to mess with the bitcoin blockchain, they couldn't. Energy consumption is a good thing, it's just a matter of how it's consumed and how we produce that. Let me add one more thing. Everybody knows the market cap off gold, right? That's around 9 trillion. And that's 50 times more than bitcoin. And we know it from bitcoin. That like by theory, if the bitcoin price is, say, 9000, by theory the production cost of bondoid bitcoin should also be 9000. It's not the case, I know, but by theory it should be the case. So now take gold. Honestly, nobody discusses gold. If gold, if the market is having a market cap of 9 trillion and times 50 times more than bitcoin, then in case gold is produced, then what? If by theory the production price of gold that's the market cap of today, 50 times more resources are being spent second by second, day by day to somehow get gold out of the ground. But this is not electricity, that's equipment and machinery and that's kind of, I don't know, all kinds of things which are working in some kind of gold mine. But isn't this also wasted resources to some degree? Nobody discusses this and it's 50 times higher at this point. I remember a paper from cruises to my loan that are exactly comparing metal mining with crypto mining. Oh, interesting. Okay, so it wasn't nature sustainability in 2018. It's just so much more dangerous to the environment like the cyanide that is used to extract the gold. And then if you just go through all of the environmental damage that gold mining does, bitcoin is like a space compared to what goes on in order to get sold out of the ground. And it was funny when gaming was brought up, I was speaking a conference, I think it was decentralized in Athens Green back in November. And there were a lot of people there that into cookie and other nonsense. And I got into this big argument with someone that kept saying how bitcoin is so bad for the environment and mining can continue to happen and how proof of stake of currency is the future. And he was a lot younger than me. And I asked him, do you play video games? I haven't played video games since I was about 21, 22. And I asked him do you play video games? And he said yes. And I said, well, how much electricity are you wasting by playing video games? Where is the productivity in that? So if you take all the gaming in the world, everyone that ever plays video games, you combine all that, how much electricity that is using and please make an argument that is more productive use of electricity than bitcoin that is trying to give everyone politically neutral, government free money. This is why this entire line of discussion is kind of like a bit of a red herring. Because the problem is that we don't have a good way to price externality and if we did, then the price mechanism would take care of the rep. I think it's partially done and I agree. I think a lot of it is a red herring and kind of missing the major point, which is the real environmental ",timestamp:"00:25:05-00:29:09",topics:["bitcoin energy consumption"],type:"podcast",weight:5.094594955444336},{boost:0,date:1665118800,description:"The Macro tyranny ",episode_title:"Breaking Away: On Secession and Small States",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/6ec51741-3d93-4116-a619-d62a7cee1feb.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/102-radiorothbard-20221007.mp3",node_type:"clip",pub_key:"",ref_id:"8d9636c6-d564-47e0-89b6-5b9f87b27a34",show_title:"Radio Rothbard",text:"damage to the same extent that macro tyranny maximizes it. If Hitler had ruled only Berlin and Stalin only Moscow, the history of the world may have been considerably less bloody. Large states are playgrounds for despots and dictators, while small states provide far fewer opportunities for ambitious politicians to spread their mayhem beyond their local communities. But we don't have to take lose word for it. The highly influential political scientist Hannah Arrest has discussed how only larger states can hope to be truly totalitarian. Even she notes that a number of states in Europe in the 1930s had pushed totalitarian ideas and as their ideal, but outside the Soviet Union, none managed to actually achieve the goal. And here's a long quote, but it helps us, so we'll quote it at length although totalitarian ideology had served well enough to organize the masses until the movement seized power, the absolute size of the country then forced the wouldbe totalitarian rulers of masses into the more familiar patterns of class or party dictatorship. The truth is that these countries simply did not control enough human material to allow for total domination and its inherent great losses in population. Without much hope for the conquest of more heavily populated territories, the tyrants in these small countries were forced into a certain old fashioned moderation, lest they lose whatever people they had to rule. This is also why Nazism, up to the outbreak of the war and its expansion over Europe, lags so far behind its Russian counterparts in consistency and ruthlessness. Even the German people were not numerous enough to allow for the full development of this newest form of government that is totalitarianism. Only if Germany had won the war would she have known a fully developed totalitarian rulership. So rents a Holocaust survivor, hardly a defender of the Nazis, but even she concluded that yeah, they wanted to be totalitarians, but not even Germany was big enough to bring that about. So they're smaller is better in this case, especially when it comes to the worst case scenarios as well. But what about that middle ground, right? We're not necessarily just always talking about avoiding full blown totalitarianism, but we do find some of these previous examples. You want more free trade, you want more freedom, you want the ability to escape despotism smaller states are generally your answer. Now, as a final issue though, we have to cover, as the book does, the issue of international relations and war, because we see these advantages all for the domestic population, right? But anytime you bring up this topic, you're going to hear that breaking up states into smaller pieces, this is bad, because if we reduce the power of the US government or any other western states, then China will step in and conquer the entire planet the next day. So this is a difficult topic and so I try to provide as much of a treatment as I can in the book. Certainly it's not exhaustive and we do need more people really exploring these issues. And with all international relations it requires a certain amount of speculation. But some good research has been done looking at the issue of how do small states fare against these larger states. And so there are a few things we can note when talking about this. For example, the assumption that large states will always dominate in international relations is based on mistaken notion that larger states in terms of GDP access and access to military resources currently are necessarily the more powerful states. More accurately, however, it is wealthier states and blocks of states, not necessarily the larger states, that tend to have an advantage in terms of military deterrence and innovative research by China expert Michael Beckley, for example, he notes that the biggest variable here is actually GDP per capita, not overall GDP. And this helps explain why we can find many cases of smaller states successfully deterring and defeating larger ones. During the 19th and early 20th centuries, for example, both Japan and the United Kingdom repeatedly defeated and humiliated the much larger China. At the time, a reliance on GDP and military manufacturing statistics would also suggested the Soviet Union three times the geographic size of the US. And with an immense weapons industry, should have outlasted the United States. The GDP measure also suggests that Israel is the weakest military power in the Middle East. Clearly, none of these things were true are true. These really case is instructive because it shows us that small states, rather than having to become big themselves, can simply freeride off larger states as the State of Israel has managed to long exploit American wealth and taxpayer revenues without actually giving up its own independence. Moreover, the possibility of nuclear deterrence diminishes the need for immense and expensive conventional forces, as again demonstrated by the State of Israel. Deterrent defense capability can thus be obtained even by Switzerland sized states. And then of course, there's no reason why a group of small wealthy states cannot very effectively form an alliance of their own among themselves without having internal control mechanisms, as has been done throughout history. You don't necessarily have to have small states form a state of their own in order to carry out effective defense measures. So for example, for the United States to break up into smaller pieces and there's no reason to assume the new, smaller, successful states would be at the mercy of larger ones, there is every reason to assume the new smaller American states would be just as unified on foreign policy as they are now, which is to say, virtually in lockstep. Unfortunately, no matter what might be said about small states and international relations, many will cling to the idea that because of alleged foreign threats, virtually nothing, nothing could justify secession ever. There is, of course, nothing new about this attitude. For centuries states have justified their bigness and their taxes on the claims that you need us to defend us against foreigners. And of course in the United States we've seen this in many cases where you're just supposed to accept whatever the government wants to do in the name of national defense. And this was, I mean, the conservative movement standard bearer back in the 50s. William Buckley said this in the early 50s we have to accept big government for the duration, for neither an offensive nor a defensive war can be waged given our current government skills, except through the instrument of a totalitarian bureaucracy within our shores. We must accept large armies and air force's, atomic energy, central intelligence, war production boards and the attendance centralization of power in Washington. So yes, freedom is all right, but I mean, come on, you're just going to have to have the CIA and you're just going to have to surrender those freedoms until we defeat all the bad guys in the whole world. If that takes 300 years, thens the breaks. So the real world experience suggests that fortune actually favors the decentralized in terms of wealth, freedom, economic development and more. And is for these reasons that Rothbard supported what he called universal rights. Locally enforced as an adherent of national rights, Rothbard believed rights are certainly universal, yet he also understood that their enforcement ",timestamp:"00:23:17-00:30:41",topics:["Macro Tyranny"],type:"podcast",weight:5.224080560699853},{boost:0,date:1656979200,description:"How Lightning can improve the feedback process on music platforms",episode_title:"Lightning Networks Impact on Music w/ Michael Rhee, Founder of Wavlake - Voltage Twitter Spaces",guests:[{name:"Michael Rhee",profile_picture:"https://pbs.twimg.com/profile_images/1348612450/IMG_0298_400x400.JPG",ref_id:"91302fb9-2d08-400e-bd1f-2d52e0af5508",twitter_handle:"rheedio"},{name:"@rheedio",profile_picture:"https://pbs.twimg.com/profile_images/1348612450/IMG_0298_400x400.JPG",ref_id:"a20f5e1f-5969-47a6-b986-faf29c0c4da0",twitter_handle:"rheedio"}],hosts:[{name:"@voltage_cloud",profile_picture:"https://pbs.twimg.com/profile_images/1508657900486422529/Lfa70poj_400x400.png",ref_id:"3b622187-60ce-43c2-a21f-ae749c2d961a",twitter_handle:"voltage_cloud"},{name:"Bobby Shell",profile_picture:"https://pbs.twimg.com/profile_images/1090426395979890690/uUdaFXo__400x400.jpg",ref_id:"438f8067-3fed-49d2-91d9-5018cb043aac",twitter_handle:"BobbyShell2"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=aZt44KjXHh0",node_type:"clip",pub_key:"",ref_id:"3db5f375-817e-4275-980c-6475803c430b",show_title:"Voltage",text:"this, we chatted a little bit about two things I had brought up to you about how independent artists, whenever I launched my first song on Spotify, I had to go through CD Baby or one of these groups that helped push your music to these platforms. And the thing that was discouraging was it said, hey, when you hit $25, you can claim your first cash out. And I was just like, that's going to take forever with how many plays you need to get. So that got me excited. And you actually brought up an even more important point, was this feedback loop that it creates for young artists because you can be motivated and see these amounts and stats come in that are much lower denominated. And that's actually a pretty impactful thing for a young entrepreneur. Let's dig into that a little bit and just what that can actually do for creatives. Yeah. So, Bobby, just using yourself as an example, you publish your music, it went up on Spotify and maybe a dozen other streaming platforms. How long did it take for you to figure out how many listens or streams or dollars you earned from those platforms? Like from the time of track was played to the time you got some sort of feedback about that? Do you know what the lag was like? So it was actually pretty challenging to hear and kind of find out because there was obviously on Spotify you can see the plays you have, but like in some of these other platforms, it was actually pretty hard to see that data, like being a new artist. Yeah. Because it's all opaque. And I think this is one of the interesting things or interesting aspects and features of the value for value model that podcast and 20 is built on. And then also experiments like Wavelake where you have users who are tipping SATS to artists for their tracks. And I think one of the, I guess, challenges as a new artist, when you're deploying your music and distributing it via some music distributor and blanketing all these different streaming platforms with your music, you're essentially throwing your music into a black box. It's virtually a black box, and you might get some sense of the kind of traction you're getting on the platforms over the course of a few months. So there could be a lag time of two to three months where the streaming platform has gathered some sort of statistics on how many plays you've gotten, and then that translates into some kind of a royalty payment that is obviously calculated from some kind of internal algorithm, and then it's spit back to the artist in the form of some number. Let's say it's $30 for a bunch of plays that happened three months ago. So there's a pretty long lag time between when someone was engaging with your music versus when you find out about it and see some kind of a reward for that work that you put in. And what's been really cool to see is with some of the artists on Wave Lake, they're receiving these like, small tips. It's nothing to write home about, but at the same time, as you said, if you're a newer artist and you're just working on honing your craft and finding your voice, those small monetary donations, those little tips operate as a really strong encouragement mechanism. And it's also an instantaneous feedback loop. So you could post a song on Wavelake, for example, and that day, like that hour, someone could hear it, love it, tip you, and you'll see that show up in your wallet, you'll see that 21 stats or whatever the user wants to tip you, you'll see it show up in your wallet near almost immediately. And so I think that can act as a really strong feedback mechanism for someone who especially if I speak about myself a little bit like making music. As a teenager in my bedroom, I was just recording kind of lame demos on a fortrack just over and over. And then years later, MySpace came along and you put those up and see how many plays you get. And I think we're at a point now where we have this really novel monetary network that's open and it's completely borderless and anyone can use it. And then on the other hand, you have the ability to pay and support artists that you love. And as a creator, you can not only benefit from that monetarily, but that can be a lot of encouragement that a particular song or some sort of direction you're going in artistically is resonating with someone out there in the world or a group of people in the world. And that kind of motivation means a lot, I think, when you're just starting out and you're finding your voice. And you could have other ways of using this kind of feedback loop as well. For example, if you have a demo or a couple of lines of a verse or a melody, and you want to share that with a group of fans or potential listeners, and you can say, like, hey, if you like this, what do you think of this? And then people start tipping because they want to see more of that, or they want you to flesh that out into a complete song. I mean, the possibilities kind of again, they go as far as we can imagine at this point. And I think that is a much different model. It's a very different model from what exists today in these very sort of monolithic corporate streaming platforms, where you're essentially like, you're forced to throw your work into this giant pool, and you're out there competing with heavily marketed acts and figuring out how you can show up in the midst of all that is pretty difficult. And even when you do get some engagement, you won't find out about it for months. And so I think there's a lot of potential not only to create a better royalty mechanic for artists, but it's also a way to encourage art. Yeah, absolutely. So the feedback loop portion, one thing about that that I love is, like we discussed before, is imagine you're a young artist and you put music online and you just see like, five SATS come in, ten stats. Of course, you could obviously see a million SATS come in, but that's fairly uncommon. But to have these kind of small affirmations towards the art you're doing or the content you're creating, or just these positive reinforcements, one of the biggest things I know for anyone pursuing anything psychologically in the world, like when we talk about just the psychology of it, is it's hard to get affirmation. We're a digital world. There's a lot of working from home. And one thing I love about lightning is there's this positive and encouraging reinforcement where we can reward each other in minimal ways, but whenever you see that come through, it kind of helps you push through. And I have a friend who struggles with being creative due to not having kind of the reinforcement he needs. And he's one of the most talented people I know. And I just really wish that was there. And I could see that being really transformative. We've heard safety and talk about fiat art and things that are not fiat art, et cetera, and to see true talent be rewarded and have this really kind of grassroots incentive mechanism I think is really important. And it does kind of segue into what I was talking to you about before. As far as content creators just being on the web, people have the opportunity to do anything they want and even leverage music in different ways. And there's obviously a lot of opportunity for people who are musicians to create reach. But there's even ways that people who create content, they could even leverage these creative, independent songs in really unique ways to, you know, further their art. So it's ",timestamp:"00:05:55-00:15:37",topics:["Lightning Network"],type:"youtube",weight:5.061400574481365},{boost:0,date:1624507200,description:"Intro",episode_title:"Bitcoin Fixes This 48 Small Business with Ali",guests:[{name:"Ali",profile_picture:"",ref_id:"1169edf2-a89f-4d89-94a4-1be1a7b9aef0",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2536a974-d668-4ac2-8613-0b37aa0ca08c.jpg",keyword:!0,link:"https://anchor.fm/s/2a4e8034/podcast/play/36003846/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-5-23%2F969a4306-e9eb-95c5-0e15-42d37c0e61e8.mp3",node_type:"clip",pub_key:"",ref_id:"01dc5a33-88e1-49ef-abb3-c5744cf8a046",show_title:"Bitcoin Fixes This",text:"Welcome to Bitcoin Fixes this, where we explore the impact that Bitcoin will have in all aspects of society. Today's guest is Ali, owner of Tahini's Restaurants and Bitcoin Enthusiast. He is a small business owner who's been through a lot of different ups and downs in the business. In this episode, he talks about what it takes to make it in the world of small business, why he decided to put the Treasuries of his company into Bitcoin, and why Fiat money is so destructive. To say Ali is a Bitcoin enthusiast would be an understatement. He's been cheerleading Bitcoin and explaining how Bitcoin is great for small businesses since his discovery of it more than a year ago. I loved learning about the hustle, the unfair advantages of the large government subsidized companies, and why companies like his have a fighting chance with Bitcoin. This is the future of businesses built using Bitcoin savings technology. I hope you learned something. Ali Tahini, how's everything going, man? Good. Jimmy. How are you? It's an honor to finally be at your show. I'm a big fan. I've been looking for a while now. Oh, well, that's awesome. Yeah. It's always interesting to get, like, different perspectives and stuff. And you certainly have an interesting perspective because they're running a small business for a while. And obviously you have decided to put some ",timestamp:"00:00:00-00:01:25",topics:[],type:"podcast",weight:5.0513938665398985},{boost:0,date:1658322407,description:"Many causes of diarrhea such as fat malabsorption and bile acid malabsorption (1/3 of IBS diarrhea cases)",episode_title:"Dr. Norm Robillard - SIBO, Digestion, and Gut Health on Carnivore/Keto",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/5e0220b3-7c70-4423-bb76-3b75bc132fad.jpg",keyword:!0,link:"https://traffic.libsyn.com/secure/carnivorecast/Carnivore_Cast_207_Dr_Norm_Robillard.mp3?dest-id=775699",node_type:"clip",pub_key:"",ref_id:"167a7be2-f14b-455a-9c20-95057af5ea7d",show_title:"Carnivore Cast",text:"was interesting on a carnivore diet, it kind of flipped that around. And then also when I work with people that have diarrhea or constipation, we look at it mechanistically. So with diarrhea, it can be fat malabsorption, it can be bile acid malabsorption. Right. Most of 95% or more of the bile that improves that helps solubilize the fat so the lightbased can digest them. It's reabsorbed in the terminal small intestine before it hits the lodge ball, goes back to the liver, saves a lot of energy because cholesterol is an expensive molecule and that's kind of what bile is made up. So if more than just a couple of percent of the bio is malabsorbed, it leads to diarrhea. And it's believed that about a third of the IBS diarrhea cases of BIOACID malabsorption. ",timestamp:"00:21:47-00:22:41",topics:["bile acid reabsorption","diarrhea","small intestine","liver","cholesterol","fat malabsorption","bile"],type:"podcast",weight:5.039563265710219},{boost:0,date:1672772445,description:"Bitcoin miners and retail customers",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Foss, Max Keiser & the Plebs! 🍻😂",guests:[{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"Max Keiser",profile_picture:"https://pbs.twimg.com/profile_images/1361873587582472195/y57DiTYX_400x400.jpg",ref_id:"743efd07-d194-4c74-8663-45c3b8646b8e",twitter_handle:"Maxkeiser"},{name:"Isabel Foxen Duke",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"58989d4a-4a96-4ffc-8cbe-f233ffb10420",twitter_handle:"isabelfoxenduke"}],hosts:[{name:"Publord",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"5b7b7e22-fe55-4e1c-933d-6544f6600351",twitter_handle:"publordhodl"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7de8e4aa-50a6-4f57-a8ff-6ca16a4f0ae4/76c3395a-4fe5-4802-8d2a-92cca1f1ea0b.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"7eea8bdf-2873-4759-b53b-a207aa8bcdcf",show_title:"PUBLORD",text:"So circling back real quick to the movie Generational Wealth, I think Tomer put it together. I think he had a partner in it. That's a fantastic movie on YouTube. And my take on the question that Jim asked about the utility company using all the power to mine bitcoin and not giving it to retail customers. Retail customers are always going to be willing to pay more than what a miner would pay for electricity. Because the miners are so distributed around the world, it's so competitive, they have to get really cheap electricity or use stranded electricity, right, that they have no customers for. So I think it would always be a situation where retail customers would come first in the pecking order. The utility company would much rather sell to them at a higher price than using that energy for mining. I would say assuming wait a minute, wouldn't you have to account for, let's say, governments preventing utility companies from raising the rate so high to make it profitable, to sell it to the retail customers over the mining? Because if they are the only ones that know their profitability for the use of that electricity in either direction, and they are the ones making the electricity, so they have the purest cost, the cost of getting it out of the ground and processing it, and then it's free to send any direction. But if they control one of the directions and it makes them profits, I feel like there's a potential economic conflict in there that could be created if you have enough other situation, enough other characteristics. Like a type of power company that has a monopoly kind of situation where it's the only company in a region and nobody else can't go anywhere else. Utility companies are regulated by governments already. I'm not a fan of government at any level, but I am a fan of people creating rules and holding other people accountable to them so that you can get along in a society. So I would hope that a utility company is going to do the right thing is the best way I could say it. Making sure that, look, they were built to make money selling to customers and they figured out a way for most people to be satisfied at that level. Now they find a revenue stream that comes into existence that wasn't there when these things were invented, these grids and the idea of giving, producing electricity for people, all of a sudden there's something that changes the game and it literally changes incentives, it feels like. And I just worry that it could. Turn into something they lose money doing that. Only if they can sell the electricity to retail more for more than what they can use it for for bitcoin mining if they had rate. Yes. I don't know that you can make that statement without knowing, without using an example of a potential price for bitcoin, which maybe we're not at it now because the value of bitcoin is too low. But if the value of bitcoin was ten times what it is now, it's way more profitable for everybody to mine bitcoin, even at a very small amount of hash rate. And so there could be a tipping point. Am I thinking correctly on this or not? Yes and no. Okay, thank you. The grid is designed for peak power, okay? It's designed for the 06:00 p.m. When everyone gets home from work, draw on the grid. And the reality is, most of the time the grid is not using or there's more supply than there is demand. So that's when you need the offtakers, which could be bitcoin miners, that will benefit from now from a source of energy that is not set by a regulator. Don't forget, the regulator sets the cost of electricity based on things like peak power demand, as well as global adjustments on their stupid wind farms and solar projects that are heretofore unprofitable. But you got to put the ESG narrative on it. So the reality of in Ontario is because seventeen cents of that is absolute government waste. That is waste that goes to producing wind farms and solar farms that have no economic benefit to the grid whatsoever, but because of their ESG narrative. So the reality is five cent kilowatt hour power, 22 cent kilowatt hour retail prices, that's all set by the regulator at the wrong price because of all their waste in their projects. The beautiful thing about bitcoin is that it takes demand from the grid when the solar panels are producing electricity, but there's no one there to take it. Right? That's the stupid thing about solar panels. The sun doesn't shine at 06:00 p.m. At night, and the wind generally doesn't blow at 06:00 p.m. At night. So these are the demands for bitcoin that will allow the regulated utilities to actually capitalize on the capital expenditures in their wasted products or projects, rather solar and wind. The most efficient power is nuclear, but the reality is building a nuclear power plant requires basically a 20 to 30 year payoff period because it is so capital intensive at the outset. Well, bitcoin mining will shorten the ROI on a nuclear reactor materially because it creates an additional revenue stream that otherwise wasn't there calculated in the cash flows. So lots of good things, jim, you're right. But the reality is the regulator sets the marginal price of power based on peak demand in the system, and that peak demand is so far in excess of what global bitcoin miners can mine at that I don't see a time when a utility would only be bitcoin mining. That just doesn't make sense to me. However, never say never. It's not a zero chance probability. It's just unlikely, in my opinion. ",timestamp:"00:47:21-00:53:52",topics:["mining energy","bitcoin miners"],type:"twitter_space",weight:17.809161091592113},{boost:0,date:1672772445,description:"Michael Saylor and integration of Microstrategy with the Lightning Network",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Foss, Max Keiser & the Plebs! 🍻😂",guests:[{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"Max Keiser",profile_picture:"https://pbs.twimg.com/profile_images/1361873587582472195/y57DiTYX_400x400.jpg",ref_id:"743efd07-d194-4c74-8663-45c3b8646b8e",twitter_handle:"Maxkeiser"},{name:"Isabel Foxen Duke",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"58989d4a-4a96-4ffc-8cbe-f233ffb10420",twitter_handle:"isabelfoxenduke"}],hosts:[{name:"Publord",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"5b7b7e22-fe55-4e1c-933d-6544f6600351",twitter_handle:"publordhodl"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7de8e4aa-50a6-4f57-a8ff-6ca16a4f0ae4/76c3395a-4fe5-4802-8d2a-92cca1f1ea0b.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"4f0b1fbc-47f6-49c7-afe1-4978eabe5c4a",show_title:"PUBLORD",text:"Dude, it always helps when you explain things. I appreciate it. I will be paying attention. Keep my eye on it. But I take the simple route. Just accumulate as many SATS as I can and let the rest of the world fall apart around me. Can anyone up on the stage comment on Michael Sailor's comments about what he's going to be doing with Lightning with his team at MicroStrategy? Does anybody have any insight? Can I comment? Craig and I know I talk too much. He needs to buy IBEX mercado. And I told Mr. Sailor that at dinner in La. At the Pacific Bitcoin Conference. Now, Michael is not going to ever take advice from Foss. Well, maybe he will, but at the end of the day and Max Kaiser maybe can chime in on this, I was really excited to hear what Sailors shared those comments with us privately. So now that it's public yeah, he's trying to incorporate the Lightning protocol into his business. He's a very smart guy when it comes to that stuff. So I'm pretty excited. And I say tongue in cheek, he should just go out and buy IBEX Mercado. It's a company that had their origins in El Salvador and Guatemala that I'm pretty tight with. I say that because IBEX Mercado has some of the top Lightning engineers in the world. And Mr. Sailor was saying that it's very tough, and it is true, it's very tough to find Lightning engineers. So I think it's going to be great for what he does, because it's going to just further the development of the Lightning Network. And I actually think I hate to say this, but there would be a role for MicroStrategy stock within the portfolio of the Bitcoin Opportunities Fund. Why is that? Well, because for the first time in a while, it's looking awfully cheap to me compared to outright Bitcoin exposure, too. So Sailor is a very smart guy. In fact, he's too smart by a half sometimes. But I really hope he does continue this, because with him and Jack Dorsey pitching the Lightning Network, these are two brilliant people that have some big following and some big brains. So I'm not sure what Max thinks, but there's my two cent. Thanks. Right. Well, I guess the speculation was which way would MicroStrategy go to expand their bitcoin presence. I guess one idea was they would get more into mining, and then the other one was lightning networks. And Sailor has explained why he's not really interested in getting into the mining side of things. He's given a couple of times. He's explained that he just doesn't like the economics of mining. Plus, I think that he sees lightning as a gateway to massive global adoption, which would have the effect of increasing the bitcoin price, which he has a lot of bitcoin. So anything that's going to help that boost that price up, he's going to be interested in, for sure. So with Lightning, you've got that ability to really reach the billions of people that he likes to talk about that can be part of this unconfiscatable distributed wealth network of property. So I can see it makes sense. IBEX mercado is yeah, it's a company down here. It's an excellent company. He should definitely look at it and at the very minimum, he should take a position. I know we just invested in the company. We took a small position in their latest round for easy capital. And so it's looking good. Hey, that's awesome, Max, because I'm also an investor. I'm not sure if you knew that I was one of the seed investors in iVEX Mercado. So I love Jose. I love his team. A bunch of real smart South American or Central American programmers doing a great thing, doing merchant adoption. So onboarding the city of Miami. So there's obviously, you know, if you're onboarding the city of Miami and that's where Sailor lives, it's sort of cool. And then, to be clear, I hate bitcoin mining as a standalone business as well. The future for bitcoin mining is going to be the energy companies that own their own assets that mine bitcoin to balance the grid. So that is the key for Mr. Sailor. Don't get involved in a bitcoin mining company that does not own its own energy assets in the future. It'll be the Duke energy of the world. It will be the Tepcos, that's the big Japanese utility that's starting to mine bitcoin itself in order to load balance its grid. So there will be a time to own bitcoin miners, but it won't be a bitcoin miner that doesn't own its own energy source. It will be a bitcoin miner that is perhaps part utility and part bitcoin miner. That's balancing of grid for the benefit of all its contributors, which include users. It includes the different sources of electricity, whether it would be natural gas, wind, solar, nuclear, you know, all the mixing pot. And balancing the grid is a very difficult thing. So when you have a bitcoin miner that can power up and down with the flick of a switch, that's the type of bitcoin mining that makes sense, not the type that. Buys its electricity from ERCOT and then becomes hostage to the PPA, the Power Producer Agreement with ERCOT. They can be interrupted at any time. So the world is changing. Sailor is a smart dude. I think there's going to be a lot of really cool opportunities in the Bitcoin mining square, and that'll be with companies again, that are not your run of the mill Bitcoin miners, but have names like Exxon and Duke. Energy and TEPCO and all of these big utilities that are going to learn that bitcoin actually is a super useful tool to help them increase revenues and also balance their grid or balance their load base. So, yeah, some really cool stuff happening. Sailor is a genius. I'm not. So let's just see where life goes. ",timestamp:"00:27:47-00:34:12",topics:["Michael Saylor","Microstrategy","","Lightning Network","bitcoin miners"],type:"twitter_space",weight:17.809161086484142},{boost:0,date:1673549347,description:"Some common ways people lose bitcoin",episode_title:"BR019 - Proof of Keys Day Twitter Space ft. Lopp, Craig Raw, Lazy Ninja, mshodl, Rijndael & guests",guests:[],hosts:[{name:" Jameson Lopp",profile_picture:"https://pbs.twimg.com/profile_images/1594137153625276416/t1RUP3yP_400x400.jpg",ref_id:"062ec6c8-0fa2-4bf6-9aa1-7ab347df2530",twitter_handle:"lopp"},{name:" Craig Raw",profile_picture:"https://pbs.twimg.com/profile_images/1362841242665631745/UtA3FBQU_400x400.jpg",ref_id:"f2d1f5f0-2e1c-4d16-937d-4d48627cb955",twitter_handle:"craigraw"},{name:" Lazy Ninja and Rijndael",profile_picture:"https://pbs.twimg.com/profile_images/1362843002318721028/PNKWuu0-_400x400.jpg",ref_id:"23edbd50-9b0b-4e9a-aa56-57c2af074173",twitter_handle:"FreedomIsntSafe"},{name:"Justine Harper",profile_picture:"https://pbs.twimg.com/profile_images/1559710083734540289/HXTH4kqO_400x400.jpg",ref_id:"7b5a8957-1c4b-474f-bc38-291b382a13e6",twitter_handle:"mshodl"},{name:" Dee",profile_picture:"https://pbs.twimg.com/profile_images/1600155411868434433/9k1KQ8i5_400x400.jpg",ref_id:"ad33288b-28d4-4f15-9492-f64bce891613",twitter_handle:"HodlDee"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f1879df9-9bc6-4a76-951f-24548da768ef.jpg",keyword:!0,link:"https://anchor.fm/s/9500fad8/podcast/play/63399670/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-0-12%252F0a789f60-2c9a-6bbb-945a-79f3dd937cee.mp3",node_type:"clip",pub_key:"032d7609ff3f4a5232e4d60967971e23bc671dfb68020845a59bab5dc1f3b93b87",ref_id:"1958362b-b149-4466-b873-4d22a36d67d8",show_title:"Bitcoin.Review Podcast with NVK & Guests",text:"In terms of people losing their funds. Why don't we kick off with maybe talking about what are the most common ways people lose bitcoin? I'll start with one example, and maybe we go around the panel sort of like going through it. But one of the most common examples I see is people bamboozling themselves. People will screw themselves or their coins before they ever get hacked. So people will go out there, they'll hear an example from somebody that's either extremely smart or extremely dumb and sounds extremely smart, and they would have like, a super complicated setup, and you require many computers, and they would do a super complex multisig, and then the person can get the money out. A very good example of this in the way back in the day was bitcoin armory. There's probably a lot of people on this call that have lost money in bitcoin armory. It was fantastically safe. So safe that many people never managed to get their money out. So what other stories do you guys see as very common ways people lose bitcoin? Yeah, I'll go second here. When I first started, I was forex trading like an idiot, and someone was like, hey, I have a trading platform. Buy some, give me some money, and I'll double your money. The classic. And they were only taking bitcoin. So I was like, you know, what the heck is that? Never heard of it. Well, I've heard of it, but never bought it. How does it work? And they said, oh, you know, go on this exchange, buy some, and then send it over and I'll send you some back. And they were pretty smart. I started off with a small amount and a few hundred dollars and gave them it. And surprisingly, they actually did double my money. And then that convinced me to give them a lot more money, and that's where I felt a culprit of what they did. But I realized at that time that bitcoin was immutable, and there's no way that I could get back my money. And it kind of hit me hard, and I was really frustrated, obviously. But it was a user error, right? It was me being an idiot, being greedy, and wanting more money at the time. So I think people need to take a little bit of responsibility sometimes when they're handling their money. Obviously, I'm still a young guy and had lots to learn, and that sent me down the Bitcoin rabbit hole. And here I am, right, learning how to store my keys. A lot more safe than I did on an exchange. Right. So that's kind of my sob story. But it comes like some real pain to learn. Yeah, absolutely right. I think a lot of people, when they lose money, they get mad and they try and put someone else, blame someone else. But if you really learn about these things and store things properly and understand, then hopefully you don't have anything to worry about. Yeah. Thanks for that, Justine. Hey, I think you guys are on point. I generally think the majority of Bitcoin is lost by user error at unchained. And in personal experience, we deal with a lot of either newcomers to self custody or people have been dealing with single SIG, and this is kind of their first interaction with multisig. And what I found is there's just so much to learn about Bitcoin, right? This is kind of the first time in history that we can truly own our assets and we can truly own our money. And that takes personal responsibility just like anything else. If you want to grow your own food, if you want to protect your home, there are skills that you have to learn. And I think Bitcoin is the same way, but it's new. It's a new thing that people have to do. They're used to being able to just call the bank, right? The bank is going to handle it for you. So I think there's a learning curve. The problem is, in my opinion, that we sort of as a community, I use the word community loosely here as Bitcoin. Twitter, we sort of have this, like, all or nothing mentality, and I don't think we speak enough about like, there's all of these things that you can do, and each individual has to sort of look at their own attack factors and their skill set and what they're capable of, and it's okay to take steps, right? So in my experience, it's over complicating things. It's doing something because they saw on Twitter that was the only way they could do it, right? And maybe it was way beyond their skill set. The worst thing I've ever seen is multiple times past phrases. I have a love hate relationship with passphrases because I've seen people mess them up. Miss one letter, forget that you capitalize something, think that you could memorize it and you don't. And then all of a sudden you've lost access. So user error, over complicating things or making it so complicated that you then don't distribute your keys. So you've got this really over complicated system, but everything sitting in one drawer. So I just think that over complicating things, user error is sort of the biggest threat, even though obviously outside vectors are something that we need to consider as well. But I think that, yes, user error over complication and pass phrases in ways that are maybe too complicated for the user at hand. That seems like there's a trend there. So Lock has this fantastic list of people who have been physically attacked over their bitcoins. James, do you want to give people a little bit of a primer on that list and where they can find it? Yeah, sure. Well, it's linked directly from my main page@lop.net. It's the physical bitcoin attacks GitHub repository and like a lot of other things that we talk about with security in this space, I think it can be easy for people to blow it out of proportion. Now, I think last I checked, I've got nearly 150 different attacks that I've managed to come across and archive over the years. And this is actually a very, very small number. You know, in the grand scheme of things, it's probably one of the rarest forms of loss in the bitcoin space. But there are definitely some patterns and things that we can learn from that, one of which is that the most common event that causes this is people who are doing high value, face to face cash and bitcoin trades. So that like face to face OTC stuff. It's definitely risky because your counterparty may be a criminal and they may assault you and take all of your money. So there are things that we can learn from that. Also, a number of people who have experienced home invasions in this space, it generally happens because they're well known, and usually they're well known because they're being flashy and flaunting their wealth on social media. So you can definitely learn a lot about how important operational security and privacy is when it comes to protecting yourself physically. But kind of getting back to the original question, I think one of the most common forms of loss is when you're not holding your own bitcoin, you're keeping them with a third party. And that opens you up to just a multitude of forms of different loss, whether it's the third party having an insider attack, the third party being hacked, or in many cases, just the security system to access that third party account being compromised, usually through SIM swapping or password leaks or whatever. The best way I can describe it is that when you have your bitcoin with a trusted third party, you're still vulnerable to all of the same risks as you are with self custody, plus a whole lot more because of all of the things that can go wrong with the various third party actors who are controlling access to those keys. Yeah, not your keys, not your coins. Right. I mean, it's that simple. When it comes to third parties, it's so amazing to me that after Gox, I think a lot of the people who are new haven't experienced and maybe was forgotten. It was quite a long time ago now. And before that we had my wallet, which was, I think I can't remember, it was a lot of coin on that one as well. And then we had big Ver with crops. We had FCX in Alameda, which were like the recent high profile ones, celsius, all this stuff. Right. It's very unfortunate what happened to look, because now you have guys like Woody or Susan sort of fighting self custody, saying as if with third parties, you were safer if they offered some form of insurance. I would take their suggestions more face value instead of just being bullshit. But they're not liable for those losses in the way that people think they are. You just become an unsecured creditor and good luck to yourself. So, Rendell, you've been working in Bitcoin quite a bit, and you probably know some interesting ",timestamp:"00:07:44-00:17:21",topics:["Bitcoin Losses","Bitcoin trading"],type:"podcast",weight:22.766568059128208},{boost:0,date:1628150829,description:"The Regulatory on Small Scale",episode_title:" #14: Julia Reinhardt - What do GDPR and AI regulations mean for Silicon Valley?",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/3ab6c599-bbcd-4c8f-beef-bcf509ed4afa.jpg",keyword:!0,link:"https://anchor.fm/s/1a9df3e0/podcast/play/38326682/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2021-7-5%252F1c697b61-ec63-9b13-21c8-20beb6d5ca8d.mp3",node_type:"clip",pub_key:"",ref_id:"d67cf7af-79a8-457e-b65b-293fb279dcfe",show_title:"Voices of the Data Economy",text:"early on. Yeah, I just sort of picked up your line that they do it out of marketing because I think this is also something we discussed in a podcast with Safia Noble, the author of Algorithms of Oppression. And I'm not sure if there is a word called like privacy washing, like you have green washing, but probably it has become like a marketing gig to talk about your customer data and how safe it is and having discussions around that. So yeah, just a comment, not a question, but okay, so first we had GDPR and now we have the proposed AI regulations in Europe and we have never really spoken about it in this podcast. I would say that even me or particularly the audience are pretty new to this and you seem to be very deeply involved in this. So if you could take us through what are actually these AI regulations that have been proposed in Europe and what are their challenges, and then probably we can go deeper into it. Yeah, sure. So, yeah, the upcoming AI regulation that has been tabled by the Commission, but is only on the negotiation table now for member States and the European Parliament is actually the core thing I'm working on in my fellowship. And my intention is really to make sure that this upcoming regulation again from Europe does not again cause that lagging behind the small players. Because in the field of AI, as you all know, size clearly matters. The more data you can gather, the better your AI system works. And we're already pretty far down the road to Monetization because players in the market have access to an impressive range of data, and they can also afford gathering high quality data, which then enables them to build better performing AI. And for small scale providers, what's most important is the clarity of the guidance. I mean, that sounds phenomenal. Who wouldn't say that? But if you follow advice, you set up an internal team analyzing those rules for your in house implementation adapted to your AI system, you get much better at estimating necessary additional processes to say why. I work on that. And again, this link to the small scale providers of AI in general, the regulatory draft that the European commissioned, and it was tabled on April 21, so that's not very long ago. And in Brussels, things take time, comedies are formed. But the draft that the European Commission tabled also has been very long time in the making funded line. The Commission president announced something like it already at the beginning of her presidency, and then it came up this year. It's the most ambitious and the most comprehensive attempt at reining in the risks linked to the deployment of AI that we have seen so far across the globe. So it's a bold new step before the big focus of the past years were always just principles. I'm saying just. But I mean, of course you start with principles on an international level. The OECD principles on AI that were adopted in May 2019. OECD. Most European countries and the US are members of the Organization for Economic Cooperation and Development. So they're already promoted uses of AI that are innovative but also trustworthy, that respect human rights and democratic values. And I think now, in 2021, really, we're at the stage of how do you transform these principles into practical rules and regulations. So the rules that the European Commission proposed wouldn't cover all AI systems. They do cover systems that are deemed to pose a significant risk to the safety and fundamental rights of people living in Europe. You know, it's the geographical scope of people living in Europe. So it's a risk based approach. It has several layers, and those layers have different rules for different classes of AI systems. There are some that are prohibited. There are some that are considered high risk and have follow certain rules, and then others where they just say, you have to be more transparent. Do you want me to go more into details of what those rules are? Yes. I mean, broadly, if you could point it out. One, two, three. I don't know if it can be done that way. Absolutely. Sometimes it's confusing because it's really so much risk. You have to know in which category your AI system falls. And that's really on the developers, kind of to understand the categories. And in the end, it's actually pretty clear that not many AI systems actually fall under that rule. So definitely something to understand. So for some users of AI, the Commission proposes an outright ban. That's a use where the Commission says it's an unacceptable threat to citizens. That, for example, an AI system that likely causes physical or psychological harm by manipulating a person's behavior. That's a question of definition. Or by exploiting their vulnerabilities like age or disability. Then also something like social scoring systems where people collect points and also minuses, like those we know in China, and facial recognition in public spaces by law enforcement authorities. So not all facial recognition, but just, you know, those used by police and public spaces, essentially. Although even there, you have exceptions, and I think too many of them. So that's, you know, the systems that the Commission proposals should be banned in Europe. But most of the regulatory draft actually focuses on AI that is considered high risk. And what is high risk is, of course, defined in the regulatory draft. So that's kind of problematic uses in the recruiting field, in the employment admissions context, determining a person's creditworthiness or eligibility for public services and benefits, and also some applications used in law enforcement and security and judiciary. And for those, these systems have to meet different requirements and undergo kind of a conformity assessment. So, of course, before they can be placed in the European market. So in a way, that's kind of FDA, as we call it in the US. Like clinical testing, not for drugs or for vaccines, but for algorithms, it's to make sure that an AI system complies with several requirements around serious risk management. It has to use data sets and training, validation, and testing that are relevant, representative, free of errors, complete. That's a super tall order. Of course, then documentation about a high risk AI system must be really extensive and very precise. Why you chose certain designs, why you designed it in a specific way, and also to show that the developers really check all these factors diligently. The keyword is always human oversight. So high risk AI systems must be designed in a way that allows people to understand the capabilities and the limitations of a system and to counter socalled, automation, bias, and also, if necessary, reverse or override the output. And then, of course, accuracy, robustness, security, and transparency. So this is kind of this clinical testing for algorithm. ",timestamp:"00:20:36-00:29:57",topics:["Small Scale"],type:"podcast",weight:4.966172337540865},{boost:0,date:1627704e3,description:"[[Jurisdictional arbitrage]] moves people when [[prohibitive tax regime]] is implemented",episode_title:"WHY ARE WE BULLISH Natalie Brunell Aaron Segal Lauren Sieckmann Dan Held ep191",guests:[{name:"Dan Held",profile_picture:"https://pbs.twimg.com/profile_images/1522608646043181060/QQRjVYhi_400x400.jpg",ref_id:"3e22facc-9310-4346-82ac-3e183b88fa51",twitter_handle:"Ledger"},{name:"Lauren Sieckmann",profile_picture:"",ref_id:"427bb439-f251-4c7e-89fb-b53ecd8c9a82",twitter_handle:""},{name:"Aaron Segal",profile_picture:"https://pbs.twimg.com/profile_images/884309028125294592/sLDGwzDO_400x400.jpg",ref_id:"f7483c61-ba76-4a19-8d8d-992966e1f79e",twitter_handle:"AaronSegalActor"},{name:"Natalie Brunell",profile_picture:"",ref_id:"a09e8874-abbe-4a85-b19d-08cac1c8afde",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/38086440/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-6-31%2F116ac8f3-ce82-01e5-2865-da5c486c8330.mp3",node_type:"clip",pub_key:"",ref_id:"ea5f251b-6174-4663-b1c8-176375396b6e",show_title:"BTC Sessions",text:"don't know. What are your feelings on kind of this? How bad would it have to get for people to actually think about jurisdictional arbitrage? Oh, you're muted. Probably a prohibitive tax regime if you start to get really prohibitive like 70%, 80% taxes. I think people start to look at moving. I think about it in this function of like you got 100% tax rate of slavery. And so we all exist in the semislavery state of our output is taxed, usually without our permission. And so you either pay that or go to prison. So it's literally sort of a mob feeling there. At what point do people break? I think that's totally subjective for any type of person. Like, a lot of people have already kind of broken and moved to different countries, like renounce their US citizenship or they moved to Puerto Rico. I've moved to Austin from California, which is a small amount of sort of that arbitrage because Texas is a much more open society when it comes to earning money and keeping it. Now I can escape federal. If you want to escape federal, you go to Puerto Rico. If you want to escape all of that, then you go renounce your citizenship. So I made the decision at a certain point that paying California taxes plus federal taxes was too much. I couldn't bear it anymore. And we're seeing a lot of other people make that decision as well. But at what rate will federal start to push people? Ultimately, people vote with their pocketbook. If you make it really cost prohibitive in terms of taxation, I think that's what really moves people. ",timestamp:"00:18:02-00:19:39",topics:["jurisdictional arbitrage","prohibitive tax regime"],type:"podcast",weight:4.962566375739069},{boost:0,date:1642827600,description:"[[Tonga]]'s Interest in Following [[El Salvador]]'s Footsteps",episode_title:"WHY ARE WE BULLISH Mario Gibney Mauricio Di Bartolomeo Josias Carbon Bang Bitcoin",guests:[{name:"Bang Bitcoin ",profile_picture:"",ref_id:"ac7edd0f-886d-449a-ba1a-06033ad12695",twitter_handle:""},{name:"Josias Carbon",profile_picture:"",ref_id:"f3c2c48b-c174-43cc-acfc-2151634b7c77",twitter_handle:""},{name:"Mauricio Di Bartolomeo",profile_picture:"",ref_id:"10c70dfd-93fb-4e95-99d4-2bebf561e737",twitter_handle:""},{name:"Mario Gibney",profile_picture:"",ref_id:"1a3f05f5-5c4a-455f-b4ec-f682080a5518",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f29a41a4-6764-439e-9fcf-74fefaffc681.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/46497075/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2022-0-22%2F243683259-44100-2-0108d40b0f999.mp3",node_type:"clip",pub_key:"",ref_id:"80462fda-0ec7-4677-bd1b-cd7741154f39",show_title:"BTC Sessions",text:"Look at Tonga, too. Super unfortunate what just happened with the tsunami there. But Lord FA Sitsua has been pushing hard and is looking like they're going to attempt to basically mirror what El Salvador has done. Later this year. They're putting forth more or less the same bill with some slight changes. Again, we got to wait till the fall to see what that actually looks like. But I'll be Frank here, I didn't know of Tonga before this and all of a sudden there's starting to be some recognition before the disaster that just happened. But up alongside El Salvador, you see mentions of this island nation that probably not a lot of people were aware of prior to kind of this human interest piece in and around El Salvador. And so I think we might see more of that over time. Of course, the Volatility lets the Naysayers have their temporary wins here and there. But I mean, it's like Peter Schiff tweets, right? You can always go back in a long enough time frame and highlightership yeah, you can always highlight some amazing Peter Schiff tweets and say, man, if you had just dollar cost average every time this man tweeted about Bitcoin, you would be sitting pretty. And it's very, very true of a lot of this where again, people again, even in the chat, look at what it's done in the past three months. Three months. How short is your time frame? Do you plan for the future at all with that kind of a small window of which you frame things? I would guess not. Bitcoin is boiling the legacy financial system slowly. Just a frog just boiling it slowly. Yeah, absolutely. And that's ",timestamp:"01:05:32-01:07:59",topics:["tonga","el salvador","tonga","tonga"],type:"podcast",weight:4.962566472366181},{boost:0,date:null,description:"Important things every new Bitcoiner should know",episode_title:"Café ₿: #Bitcoin Beginner Q&A",guests:[{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Stephan Livera",profile_picture:"https://pbs.twimg.com/profile_images/1362551718110580740/v-W5Q2uo_400x400.jpg",ref_id:"72f57157-c96e-4466-8bf1-290cfe1f8a0b",twitter_handle:"stephanlivera"},{name:"Thomas J Lake",profile_picture:"https://pbs.twimg.com/profile_images/1529168328534769670/5cl2Y_k-_400x400.jpg",ref_id:"21541a47-0601-447c-99c2-312d1a63c19f",twitter_handle:"thomaslake"},{name:"Goodguy",profile_picture:"https://pbs.twimg.com/profile_images/1363216959576285185/unulY4yd_400x400.jpg",ref_id:"0c3fec75-9cc2-4c0f-8dbe-db7fae2b585b",twitter_handle:"goodguybiker"}],hosts:[{name:"Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"49966553-d55b-44c9-94ec-8fee09eee5c2",twitter_handle:"CitizenBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/35b20273-49f2-45ea-a9f4-dc479d86573c/7ae5315f-beb2-41e2-b672-65dd1f102017.mp3",node_type:"clip",pub_key:"",ref_id:"3d112a9e-f3a1-4edb-96b0-c3a8c63b0c4a",show_title:"Swan.com",text:"would be the top three things. You think it would be important for a new person to know and then we can kind of go around and get the same thoughts from Tomer and maybe Peter and really anybody else who wants to go. A good guy. Yeah, sure. So I think there's a few obviously key resources that are important. I think getting motivated and understanding, like having a good sense of what bitcoin is matters, and so getting, I think, the right jumping off point matters. Obviously, stacking stats and accumulating some stats is important, not your keys is an important thing. But for example, reading as an example, the Bullish Case for Bitcoin by VJ. Boyer party, right? So I think that's a good example of a short, intro, long essay or booklet length thing that you can read and. It will give you some sense of the motivation here and some sense of the problem and the challenge. So I think that is an important starting point. Of course, our CTO yarn pritzker, co founder of swan, has written inventing bitcoin that's also a fantastic starting point in terms of understanding some of the technicals of bitcoin without getting into the actual, like having to read code or technical aspects of it. I think it's a fantastic intro book. So I often recommend that as a starter book. I think those are some really good places to start. And then from there, and I mean, even harkening back to Greg Foster's comments earlier, right, this whole idea of skin in the game, put your money where your mouth is. I think it's a similar thing with bitcoin. What you'll find is you can lecture to people all day, but until they have some actual skin in the game, what's the chances that they are going to really take it seriously and spend some time learning? I think one other tip I would give for new people is actually use the technology, right? Send an on chain transaction, right? Use a bitcoin wallet, receive some bitcoin, like withdraw some coin and practice spending some bitcoin on chain, even if it's to yourself into another wallet that you control. In some sense, it's moving money out of your left pocket, into your right pocket, but actually using the thing. Then what happens is you'll start to ask yourself more questions because then you'll start thinking, oh, hey, wow, okay, I just sent a transaction. Oh, look, let me look up the transaction ID. And let me look that up in a block explorer like mentor space or block stream info as some examples, or OXT me or some of the kycp.org, like these different explorers out there. And they can give you some things to think about and understand. Okay, what was the fee rate for this? What are these inputs and outputs? What's going on there? All of these aspects. And I understand at the start that sounds like jargon, it sounds like engineering, it sounds like, whoa, that's like but what happens over time is as you get into bitcoin, you just, you start to once you have that right, motivation, then you just you can't stop going further down the rabbit hole. All right, tomorrow, if you had to pick three things, what are the most important things you think a new person would be valuable for a new person to understand about bitcoin? Yeah. So the first thing is use bitcoin the way it was designed to be used, and tune out all the rest. Tune out people promising yield, people talking about altcoins, people talking about yield, people talking about staking, people talking about everything else. Just go back to the very beginning. Bitcoin was the granddaddy. It came out as software that you can run where you can take custody of these things called bitcoin. And you could send them and spend them. So start there. Start at the very beginning. And it's like learning to drive a car. Do it with a small amount of money, as you would drive a car in an empty parking lot at the beginning. So use a small amount of money. Practice. I'm preaching the same things, just with different words than what Stefan said. So get those two things going and then let your curiosity lead you through the various aspects of the rabbit hole and many others. You may be a reader, you may be a tinkerer. You may be someone who prefers to learn from videos. You may be someone who likes to listen to spaces, all these sorts of things. There is no one right path, which is beautiful because there's many right paths. There are also wrong paths that lead you to the right path. You may get wrecked or burned by trying to be greedy or something else. And those are lessons. Again, you may learn them at someone else's expense by watching someone else make mistakes, or you may have to learn these lessons personally. But I think that, for me, is the thing. Go back to basics. Practice with a safe amount and follow your curiosity. ",timestamp:"00:30:18-00:35:03",topics:["Bitcoin education"],type:"twitter_space",weight:4.926955223083496},{boost:0,date:1633363603,description:"Innovation and scams",episode_title:" The Bitcoin v Crypto War with Udi Wertheimer, Crypto Cobain, Alex Gladstein & Allen Farrington",guests:[{name:"Crypto Cobain",profile_picture:"https://pbs.twimg.com/profile_images/1601273673041776641/7FrXDRv6_400x400.jpg",ref_id:"8fa5fec2-f714-433e-a8c9-ee5e76dabaf0",twitter_handle:"cobie"},{name:"Allen Farrington",profile_picture:"https://pbs.twimg.com/profile_images/1414147363560730624/EXMx91D6_400x400.jpg",ref_id:"8660a251-950b-4888-adbf-21f790210cf6",twitter_handle:"allenf32"},{name:"Udi Wertheimer",profile_picture:"https://pbs.twimg.com/profile_images/1600897375001874432/8pdVDKUz_400x400.jpg",ref_id:"483291b7-2101-4c28-a065-93b1524d0552",twitter_handle:"udiWertheimer"},{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"}],hosts:[{name:"Peter McCormack",profile_picture:"https://pbs.twimg.com/profile_images/1524287442307723265/_59ITDbJ_400x400.jpg",ref_id:"887a65a7-a2d8-4371-887e-bc7a6ca6ff17",twitter_handle:"PeterMcCormack"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4e607036-8fde-48ef-ab76-9c2ac4bab031.jpg",keyword:!0,link:"https://chtbl.com/track/282487/traffic.libsyn.com/secure/whatbitcoindid/WBD405_-_Cobie_Udi_Alex__Allen.mp3",node_type:"clip",pub_key:"",ref_id:"1f39afe1-2026-44ca-a0b5-80aea9a8cc83",show_title:"What Bitcoin Did with Peter McCormack",text:"Push back there. That's a lot. Great stuff. Let me go one by one. The first thing you said ethereum. If we're talking about ethereum desension, we have to talk about the monetary policy. We have to talk about the hardforks. I mean, nobody knows how much ETH is going to be minted in 2023. 2024. A small group of people will decide. And I think it's really dishonest, actually, to not mention that. And that's why I think it's centralized. So that's my point. My perspective. Second thing is on innovation. But as I mentioned, everyone knows it. I had to go dig in interview at EF Engineers to find out how much if they thought would be minted in the night. Like, nobody knows, literally nobody whose job. Is to mention it to you. Like people talk about it all the time. Who's the dishonest actor who's supposed to represent those facts? Anyone who's saying it's decentralized when clearly a small group of people is going to determine the monetary policy and not the public. Do you mean cosmic EIP? And there's an EIP 1559. So that economic activity on chain impacts the future. Yeah, it's a hard fork. And the people, the users don't get to decide, they just get hard forked out. This to me is quite clear. But again, we can debate and then just to do a couple of other things and we keep going on the innovation. Why are we all here? The innovation is to escape regulation. Bitcoin is money beyond regulation. NFTs are trading Art beyond regulation. Unitswap is trading assets beyond regulation. ETH is supposed to be running contracts beyond regulation. So it's all about can you evade regulation or not? So I do think that's the important thing with regard to crypto and being nice to people and this idea of are these toxic people bad for Bitcoin? I agree with you, Udi. Bitcoin is going to be fine. Like, Bitcoin is going to, I think, complete its mission over time. It's the people that aren't going to be fine, right? The people that are going to miss this project, the people who've been gaslit for a decade by the mainstream media about Bitcoin, who've been told not to buy Bitcoin because it's dangerous, because it's scary. A lot of people have really lost a huge opportunity, especially in emerging markets, because of what their government and the media have told them to stay away from Bitcoin. When it comes to these crypto projects, I think it's the opposite. I think we need to be more outspoken. Otherwise what happens is that Ripple is in Bloomberg today, and you have smart people who don't know a lot about the space thinking that Bhutan is going to adopt Ripple as their currency. Like that's in fucking Bloomberg today, okay? And you have Carnegie Mellon, a very prestigious institution, by the way, which is a very important institution in America, taking all this money from Hopkinson and promoting Cardano. This is what happens when we don't speak out. People get scammed. So I think it's actually the opposite. We should be talking more about these things because bitcoin is going to be fine. People need our help. And look, if you've got all the time in the world and you're a talented trader, you're going to be fine. Like you're going to clean up in the coming years as we go through these different kinds of crypto bull markets. But the average person is going to be confused. They're not going to know what's going on. And it's not like the average person bought a bunch of salana last Thanksgiving. They bought it in the last couple of months. Like the people who created Solona made the most money. These are the things on my mind. That's a really interesting point because if you listen to Charles Hutchinson's interview on Lex Friedman, I think everyone can agree he's a complete dishonest prick when he talks about Bitcoin. And his job there is to convince the listeners of Lexus show and perhaps Lex, that Cardano is something they should consider. And what's really interesting is I moderate all the comments on my YouTube because there's so many scammers, and when I talk about scammers, it's like, join my Telegram group. If you go on any Vice video at the moment, you can see what we're dealing with. I have to delete hundreds a day. But in there, what we also have is there is consistent chilling from people saying, but you need to consider cardano, why aren't you considering Hex? And it's always the same projects, so I'm going to throw this over to Kobe. How much do people actually pay? Look, you mix in the trading community. There's a lot of people out there trading. And the way I explained it recently to somebody, I don't buy anything apart from Bitcoin. But I almost feel like I'm sat in a conference room in Vegas with Alex Gladstein discussing human rights and through the window and seeing all my friends on the roulette table and having fun. And whilst I know they're gambling, I see all this ",timestamp:"00:46:09-00:50:44",topics:["Crypto scams","Carnegie Mellon","Charles Hutchison"],type:"podcast",weight:4.92695522332177},{boost:0,date:1672167683,description:"Does Bitcoin mining price determine Bitcoin price?",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Beer and Plebs! 🍻😂🤌🏻",guests:[{name:"Dr. Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"51a969bb-dbf7-4d20-b128-74dcc5f560f6",twitter_handle:"VailshireCap"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:"Laura Shin",profile_picture:"https://pbs.twimg.com/profile_images/1539462748173746176/hxR80FYT_400x400.png",ref_id:"a56a7b4d-edca-41d5-9d51-33396aa05b96",twitter_handle:"laurashin"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders Jensen",profile_picture:"https://pbs.twimg.com/profile_images/1382039124991954947/Wb9kT7MO_400x400.jpg",ref_id:"af45195e-77a6-463f-ba64-29c6b0437d9c",twitter_handle:"andersjensenorg"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2a1450bc-0649-4dc5-8ec9-1474af1ea1c3.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/f7b6cfcb-7cd4-4401-a3fb-7735bb570c07/2ae49fca-a048-4a34-93b9-247513af5699.mp3",node_type:"clip",pub_key:"",ref_id:"2656d145-191a-4e86-8261-04c88a9a6562",show_title:"Anders_🍆",text:"Sack, welcome to the stage. How's it going? Merry Christmas, police. Navidat. Hey. Merry Christmas, everybody. Good to be here. And I just had a quick question. I thought I'd throw it out there. It's not heavy heavy, but I just got caught up on some of the Miting concerns, and I just thought I'd ask if anybody can share with me. Their thoughts on how bad is what. Does it actually mean to the price. Of bitcoin that all of these miners under? I think there's a lot of questions. See if there was any feedback that's a lot of people sorry if I'll keep quiet. If you have further, I'll let you finish. Okay. So I think that's a it's been a discussion going on for years whether mining drives the price of bitcoin or the price of bitcoin drives mining. I guess there's a feedback loop there, but definitely the higher the price of bitcoin, the more incentive to mine it, for sure. But it also seems to sometimes on shorter term lead the price of bitcoin. Because either people see it as a confirmation that there is belief in it and it's getting more secure as hashing rate goes up, or like we saw when china quote unquote, well, actually did ban bitcoin mining back in was that I can't even remember. Was it may this year? I think it was 2021 around that time, and the hash rate dropped to half and a lot of people got spooked and the price of bitcoin collapsed. I'd say a little bit of both, but tomar, you are well worse. Go ahead. Yeah, I think maybe I'd say two things. One, over the history of bitcoin mining has been incredibly volatile. Up and down, back and forth. When the first asics came in, there was only one company making asics. Then a few others came in, that one company disappeared. It wasn't even a real company. And then many of those went out of business. And of course, bitcoin survives through it all. The most important innovation in bitcoin that people talk about is this difficulty adjustment thing which relates to the mining. And so if miners go out of business, then it gets easier to mine bitcoin. And that means that bitcoin continues to operate flawlessly. It also means that it gets cheaper to mine bitcoin, so more people are attracted to mining it if it becomes profitable again. And so what I've noticed in my ten years in bitcoin now is mining is like if the bitcoin price is like a sign curve up and down, but skewed up and to the right. The bitcoin mining is like a scaled up version of it. When the price goes up, you get way more mining, and when the price goes down, you end up getting way less mining and it lags behind. So they run ahead and they run behind. I don't think it's any fundamental what I'm getting to is I don't think it's any fundamental concern to bitcoin's ongoing steadiness or its security or anything of that nature. It's simply a reflection of what the economics are to mine bitcoin at any given point in time. And when the price was high and energy was cheap and money was cheap, people were borrowing money to pay for miners and energy on credit to mine expensive bitcoin. And now that it isn't. They aren't. So it's just rational. But the same number of bitcoin are being produced as would have been the case if the price had been high or if the price had been $1, than just kind of that's a promise that no amount of added or subtracted mining can break the supply. And its issuance schedule and the rate of development of the blocks is essentially exactly as described in the white paper. And when I say essentially, I don't even need that, it is exactly as described in the white paper and will continue to be. So. I think those are awesome points that Tomer made. And I'll throw just a little side tangent on this because I think in terms of investments for almost everything regarding the bitcoin miners, right now, there's a perfect trifecta going against minors. I like to think in terms of three trifectas. What's the trifecta? Low bitcoin price, high energy prices and then a high hash rate. Right now, those three things combine to make it really difficult to survive as a public bitcoin miner or even a private bitcoin miner. And so I get asked all the time by people like, should they invest in this minor because it looks stronger, this minor? I would say I would still avoid all of them. I think they're still dangerous and I still think we're going to see more of a minor capitulation before this is over. To Tomer's point, and this is critically important to understand, that doesn't affect bitcoin. At the very least, the network is still super strong. It will still continue to do what it's designed to do. But bitcoin miners, they offer beta to the price of bitcoin. And so in bull markets they can outperform for a season, and then in bear markets they tend to drastically underperform. I would just be super careful. We were talking before Tomer, you got up here, we were talking about bitcoin proxies, talking about GBTC and MicroStrategy. I would include minors in that list as well. A lot of people invest in miners in their IRAs and their 401 KS because they can invest in bitcoin itself. If you are you've had a tough year and I think it's going to get worse before it gets better. I still think we're going to see many miners, like flat out capitulate actually go bankrupt. Some will survive, a small handful will survive all of that. What that does is it drags the price of bitcoin down a little bit further. It drives the price of asics down a little bit further. I like it, though. This is capitalism. It's called creative destruction, right? So basically the people who have been smart and who have been ready for tough times, they're going to get rewarded, they're going to get cheap. Minors, individuals who have been saying giving up, and who have been smart and they've had their head downs, they've stayed humble, they've been stacking SATS and putting some cash. Away, they're going to be able to buy asics for super cheap and they're going to be mining in the next cycle. And that's awesome. That's the way it should be. Bitcoin itself, it naturally decentralizes. Over time, it gets more and more decentralized, unlike cryptos, which get more centralized over time. So I think it's beautiful. It's sad if you're an owner of one of those companies because they're going to get smoked, but it's great if you're everybody else in the bitcoin ",timestamp:"01:36:47-01:43:20",topics:["Bitcoin mining","Bitcoin hashrate","Bitcoin network"],type:"twitter_space",weight:14.092456989642082},{boost:0,date:null,description:"How Bitcoin has performed as a tool for freedom in the year 2022 ",episode_title:"Gladstein & Sam Callahan - World Bank / IMF & #Bitcoin",guests:[{name:"Sam Callahan",profile_picture:"https://pbs.twimg.com/profile_images/1592532728775409667/0DayEP2Q_400x400.jpg",ref_id:"5a044a91-8dee-421c-86dd-8c734dc9bc32",twitter_handle:"CallahanMusic_"},{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"},{name:"Brady",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"45bbbb01-6163-4b3b-905a-fc67174893d9",twitter_handle:"CitizenBitcoin"}],hosts:[{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/f8be7c60-94a5-41d0-972c-6301cd4ad7f0/4e5bf86b-6193-4f6e-8fa3-933344b2053e.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"888c6962-f33f-4e88-a1cb-6819baabe35f",show_title:"Swan.com",text:"We can pivot a little bit from Africa and just talk about maybe 2022 more broadly. We're coming up on the year end. I feel like you have a unique perspective, given your position at the Human Rights Foundation and your work specifically around Bitcoin being used as a tool for freedom. And I was wondering, if you just think back in 2022, how have we done? How is Bitcoin done to be a tool for freedom? In your mind? What got you excited this year in that kind of purpose for Bitcoin? Bitcoin is doing what it was created to do, which has become a parallel economy for people that don't want to deal with the state. I think that in doing so, it is also kind of finding its way through the existing financial system. So I think that there are things that pop up as Bitcoin adopts that you couldn't have predicted. Some of them are temporary and some of them are permanent. Who knows? We know that we don't know what Satoshi or Hal or any of the early Bitcoinners thought would happen. But it seems pretty obvious that Bitcoin's ability to monetize stranded energy was not really at the top of their list when they were designing the white paper, right? Or when Satoshi was designing the white paper. That was not very clearly not something they realized would happen, or at least was maybe a peripheral thought. So you get a lot of these things along the way towards separating money from state, and one of them happens to be improving Fiat services, which I know Bitcoinrs are divided on. But the reality is, it's true. On our way to the Bitcoin standard, we live in the Fiat standard. It is what it is. And it's really interesting how Bitcoin can connect Fiat companies in ways that Fiat companies cannot use Fiat rails to connect to Fiat companies. Like, this is kind of a powerful thing, and it'll end up in the end with Bitcoin companies connecting with Bitcoin companies. But for now and I guess being in Africa really brings us into focus, but you realize how financially disconnected the world is, and that's not again, it was designed that way. It was designed by companies and services who found a business model and being able to connect people and be able to extract rent from them, moving money on a particular rail or service. So I think, for me, this year has been a big reflection on, like, capitalism more generally, or what we would refer to capitalism. Like, I'm kind of with Alan Farrington. He wrote a great piece called this Is Not Capitalism. I would encourage everybody to read it. Makes for a great holiday read. It's also part of his awesome book called Bitcoin is Venice, which you should read. But basically he's describing how, like, the post 71 Fiat political economy, which essentially is like an operation where the state can be the lender blast resort for all parts of what would normally be a free market economy, obviously not capitalism. And I think that's true for a lot of things in the world. But on the other hand, it is what it is. It's kind of like a cop out to say that it's not capitalism. In a way it's not communism, you know what I mean? It is the American model of economic growth and development. And if you want to say that that's not capitalism, fine, but you got to call it something else. But that's what kind of like leftist critics would describe as capitalism. That's like what they don't like, right? It's like American multinational companies, right? So if we're going to sit here and say that's not capitalist, okay, fine, and I'm sympathetic to that. But the idea is that in the reality is we have a business industry globally that is known as capitalist, at least to most people, and won the cold War or whatever and has developed since then. And I think it has the wrong incentives inside of it, right? So if your incentives in, quote unquote, capitalism, let's say 1.0 or whatever this is that we have fiat capitalism or whatever you want to call it, the incentives are wrong. The incentives are for companies to come in and split people apart, to make money off of them and to attract rent. So I think whatever bitcoin brings to the table, bitcoinism or capitalism 20 or whatever you'd want to call it, is really interesting because it's open. So and I'm who knows how this thought process will develop over the coming decade, but it seems at least plausible that over time, like bitcoinism would result in costs like going down or rather deflating because of the open competition that results from bitcoin economies. Whereas in the capitalist 1.0 model you have a lot of these systems that are set up to become Indian monopolies which end up doing a lot of rent seeking and kind of like unusual things that put money in the hands of a very small percentage of the population and extract resources from others. I think this goes all the way to the macro level of global trade and commerce, all the way down to the micro level of daily payments. And I think that I'm very optimistic about a bitcoin like a different system being built on bitcoin where the incentives are just different. And you would start to see that in Africa, let's say, when you're thinking about how broken the continent is and how broken apart it is rather by both local corrupt leaders and by foreign powers and how Bitcoin would just unite and we create one simple monetary language for the continent. I just think the incentives are very different. I think companies are incentivized to cooperate, cooperate with people as opposed to exclude them or exploit them. And I know this is overly simplistic and clearly, like you could steal man it, but you can just kind of feel this it's very palpable when you're talking to the entrepreneurs in the space. Yeah, that's one of the big things I'm ruminating on as we close out 2022 ",timestamp:"00:35:28-00:42:23",topics:["Bitcoin 2022","Bitcoin freedom"],type:"twitter_space",weight:4.890018939971924},{boost:0,date:1671720944,description:"What to expect on Bitcoin Day Naples?",episode_title:"Café ₿: #Bitcoin News & Bitcoin Day w/ @Bitcoindayio",guests:[{name:"@johnmichaeldrew",profile_picture:"https://pbs.twimg.com/profile_images/1512897699942744064/PuRU3K8P_400x400.jpg",ref_id:"6b72ee7f-52ef-4847-96ed-78ea09e3f19b",twitter_handle:"johnmichaeldrew"},{name:"@mattyicesensei",profile_picture:"https://pbs.twimg.com/profile_images/1607138483579101186/0qm0xaCF_400x400.jpg",ref_id:"286abd3b-cecc-4ec5-bf88-2a9fd5393083",twitter_handle:"mattyicesensei"},{name:"@Bitcoindayio",profile_picture:"https://pbs.twimg.com/profile_images/1493098733608837121/tLI-XTwl_400x400.jpg",ref_id:"6a87699e-7a27-4928-89e8-d884f1458bf9",twitter_handle:"Bitcoindayio"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/83744e68-b563-4004-b52a-cfdfff89748f/12c9b9f2-fbce-4784-9404-88a574baa762.mp3",node_type:"clip",pub_key:"",ref_id:"6f72249d-ab08-4a9e-ac54-545f618c29d2",show_title:"Swan.com",text:"another speaker we don't have up there yet because we're announcing it just now, but I sneak preview that we're also luke Jr. Actually is down there, so he's going to be coming as well. We're going to get him on the schedule, but we're trying to get all the bit devs going to come in from the ones that are nearby, at least Miami and Tampa and those guys. But we're going to have a bit devs, kind of a day long. I don't know if they're going to kind of just have a 1 hour thing, but we're going to have bit devs as well from all over Florida come together, which is probably the first time they've ever done that. And then also Mike Yarmou's Muzz, he's going to have one of his bitcoin blitz chess tournaments as well. Well, that's brand new. I don't even know that. Thanks, Edward. That's cool. Let's turn it and then yeah, we got the bitcoin or the toxic happy hour, guys. So you want to talk about that? Is he still on? Yeah, I'm here, man. All right. I know Anders, I think, had reached out to you, and it's pretty cool because we had just gone up to Charlotte, and when your first conference is the bitcoin conference, you think like most conferences are like this. Of course, there's bit block boom and Pacific. Bitcoin now are the larger. But it was great, man. Yeah, they invited us up just to hang out, man, basically. And the great thing I'm working my travel schedule, and if I'm here, I'm coming down there, man. I know Anders will be there. What was great is and it takes you back to your roots because the people you have coming in, what you don't realize is how much you know. So people that have been here for a couple of years, you don't realize how much you've learned. And when you go to these conferences and you meet people that were in your shoes three, four, five years ago, it's just really cool because really you're helping somebody. You're really helping somebody to learn and understand. And that's my favorite part of it. It's not there just to see and be seen. It's there because there are absolute no corners that come to these. And I'm up in Charlotte for Halloween. What was cool is you had some rooms going on everywhere, and one was simply showing them, hey, how do I download a lightning wallet? And to see their faces. When you send them a few stats, they start to get it like, my God, I've got value outside the system here. This is the coolest thing ever. So yes, man. Yes. Dr. Kapir we'll come down there. I see fossils on stage. He and Larry's there. So hopefully we'll meet up with them as well, because, man, at the end of the day, bitcoin is about humanity, about the friendships you meet here. Fantastic. Hey, Greg. How's it going? Hi, guys. Were you talking to Foss? Yeah. Nice to talk to you guys. Nice to talk to you. I'm getting some feedback here. If you're up here and if you're not talking, mute yourself, please, because it causes the feedback. Alex, how are you, buddy? I actually have to be up and then jump. I saw this thing come across. I'm actually going on a lead lag report spaces at noon, so I have to prepare for that a little bit. But I think I know why we're here. We're talking about the Naples bitcoin. Naples day. There'll be the second or third one I've been to. This will be number three. It's a great spot. It's a great group of people. Larry LaPard is going to be there, I think. I'm trying to get James Lavish to come. I know Maddie Ice is going to be there. I hope Steve Luka is going to be there again because he put on a great show the last time. So looking forward to seeing everybody at Bitcoin Naples. It won't be a disappointment, I promise you that. And Puppy lives in the vicinity, I think Tampa Bays within a couple of hours drive, right. So let's hope to see everybody there. And if I don't talk to you before the Christmas break, happy holidays to everybody. 2023 is going to be an exciting year. So let's get ready. Thanks, guys. Thanks, Greg. Talk to you later. Have a merry Christmas. Thanks, robin hobro. Yeah, we hope that so. Yeah. Hopefully people come down from Tampa. Angel is coming down. He's like in Jacksonville or something. He's up north a little ways but talked to quite a few people coming from Miami, too. So few caravans hopefully, coming from Miami. So I think it is even if you've been to bitcoin 22 or whatever, I think it is certainly a different vibe. Like I said, smaller and little less glitzy maybe. But hopefully we get people from both. I like the smaller venues. There's less people. The people to speaker ratio is a lot lower and it's more intimate. You can spend more time talking to them. And I like those environments a lot better, personally. It's. One of the reasons why Pacific Bitcoin did so well is it was smaller we're having at the college down there, and I think that I'm hoping we'll get some students from the college if we can get the word out to them. And then also wanting to make it like I really like the Bitcoin summer model where they were doing development with students that's kind of working with colleges, that's kind of the model or the vibe that I'm looking to recreate is get some students orange pills or help them get into this space more. Very cool. Very cool. Yeah. So we're at Florida southwestern state college, which is its main campus, is up in Fort Myers. But they do have a campus down in Naples. It's named after the county, so it's the Collier campus where Naples is in Collier County. And it's a beautiful small little campus. It's got about maybe eight or ten buildings on the campus. And we've got a nice room, a large room in one of the buildings and then a smaller classroom on the side for some networking events. And probably that chess event will take place in that room. A beautiful little setting. And I know we've been talking about Florida people, but Naples is a beautiful vacation destination. So in January, the weather is absolutely beautiful. The beaches are awesome. You can come down for a long weekend, stay in a nice hotel, spend Friday on the beach, saturday at bitcoin day and Sunday on the beach and head back to wherever you're coming from and be totally relaxed. ",timestamp:"01:48:15-01:55:45",topics:["BitcoinDay.io"],type:"twitter_space",weight:12.160706504077877},{boost:0,date:null,description:"Alex Gladstein's recap of his African Bitcoin Conference experience",episode_title:"Gladstein & Sam Callahan - World Bank / IMF & #Bitcoin",guests:[{name:"Sam Callahan",profile_picture:"https://pbs.twimg.com/profile_images/1592532728775409667/0DayEP2Q_400x400.jpg",ref_id:"5a044a91-8dee-421c-86dd-8c734dc9bc32",twitter_handle:"CallahanMusic_"},{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"},{name:"Brady",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"45bbbb01-6163-4b3b-905a-fc67174893d9",twitter_handle:"CitizenBitcoin"}],hosts:[{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/f8be7c60-94a5-41d0-972c-6301cd4ad7f0/4e5bf86b-6193-4f6e-8fa3-933344b2053e.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"f84d9798-f31e-480e-9da6-9be8dc74f6be",show_title:"Swan.com",text:"can rerehearse. No, it's interesting because I saw Sam clapping, so I thought that it was working, but apparently not. It was. I think we probably heard more than we heard a lot of it. Man did you hear me talking about the mining? Mining? No. Okay, so we didn't hear the mining. So maybe start there. Okay, so to recap awesome event. No one tried to sell me a token. You learned a lot about how the main use case for a lot of Africa today is receiving bitcoin from abroad, because crossborder payments suck, and a lot of entrepreneurs have found ways to be the off ramp for their families and communities in different countries. Like, I met a guy who was doing this in Somalia. Like, lives in Mogadishu, has 30,000 clients in Somalia. He receives the bitcoin or stable coins from abroad, and then he's the off ramp, and that's what he gets paid for to do. There's tons of businesses like this in Africa today, and you get enough businesses like that, and then you also probably start to start to get a little bit of a circular economy going as well. So that's why we started seeing, I think, a bunch of other people pop up at the conference who are doing merchant services and then mining. So I guess what I was trying to say about mining is that I think it's going to have a huge decade in Africa. It's going to be transformative. I met a kid I say a kid not to be diminutive, because he was, like, 19 years old, and he's from northern Nigeria, and he learned everything on YouTube about how to mind you guys can hear me fine, right? We're good? Brady yeah, we're good. Okay. So he learned how to mine on YouTube, and I guess in the delta region of Nigeria, there's an enormous amount of flared gas at night. I spoke to people who grew up there. You can just see it like the fire in the sky at night, and obviously represents an enormous opportunity to turn that into money and economic activity through the bitcoin network. I talked to him a little bit, and he's planning to go down there and capture some of that flared gas with a container operation this year. So I'm sure security will be, like, a high budget item for him, but that's the kind of gritty entrepreneur that you meet out there. I also just was shocked at the number of developers. I hosted a workshop about bitcoin for nonprofits. Maybe there were 35 people there. 20 of 20 of them were bitcoin lightning engineers from Nigeria. So they came to the workshop because they have local causes. They want to support and they want to be like the Uncle Jim type person. But I'm sitting there in this room and I'm like, wait a second, there's got to be more bitcoin engineers in Lagos than in San Francisco at this point. It's pretty amazing. And I think that's going to just explode in the coming two years. So, Kala is a program started by Carla Kirk Cohen and Bernard Para and a bunch of other African bitcoiners. And it helps programmers and coders become bitcoin programmers and coders. It's an incredible initiative. Qala is what it's called. So Ahref is proud to support Kala and they're going to be churning out a couple, at least a dozen, if not more bitcoin ecosystem contributors every year. And apparently they got in their first cohort, which is just sort of wrapping up. 100% of the graduates got placed with jobs in bitcoin companies, which is incredible. So that's something that's really cool. So I think that's another huge area that you start to see is that there's going to be this huge explosion of growth of contributors to the bitcoin ecosystem. From countries there, I learned about a bunch of other projects. One of them was the fact that a lot of people in Africa, in sub Saharan Africa, have feature phones, but they can't necessarily pay for. Internet is very expensive in a lot of countries. So you might have like an Android or whatever, but not be able to actually have data unless you're at a cafe with WiFi or something. So that's why it's very important to figure out how to use what's called USSD to interact with the bitcoin network. So USSD is like, you can use it on a candy bar phone. It's like a way to use text message protocol to run small apps. So it's sort of how it sort of impacts the type of thing. But the idea is you can send a text message and then get a series of commands back to your phone without Internet that allow you to send a receive bitcoin, which is pretty freaking amazing. And it's done by a team that was speaking at the African Bitcoin Conference and is growing and fundraising. So, yeah, I just got my mind blown like three times a day by stuff I was learning. I met this woman who launched this educational initiative in Nigeria to help girls and boys and teenage girls and boys, Muslims and Christians learn how to use bitcoin. That blew my mind when she told me about how it all works. So, yeah, I consider a pilgrimage to the Africa bitcoin Conference to be at the same level as going to, again, a place like Elsante or one of the other bitcoin circular communities. So, bucket list item for all of you for next year. So anyway, yeah, really fun. Yeah, I remember reading about that. I think it's machakura. I don't know if I'm right, but basically sending bitcoin over text messages. So it's tools like that that get me inspired, because trying to get it. Gives you like a menu and it's like, do you want to send? Do you want to receive? And of course, it's custodial there's issues, but it's like a way for people to send and receive and do activity over the lightning network using text message. And you can easily just withdraw. You can, like, withdraw funds to your own control as well at any point. So I think you start seeing people use some of these kind of systems as kind of spending wallets. Like, you might have some bitcoin in the same way that you might use like a wallet of satoshi or maybe someday soon a fetishment to do spending because it gives you something like privacy that you want. Well, in Africa, people might also have their cold storage or whatever, their savings, and then they might have a little bit of bitcoin in, for example, an account that allows them to get out there and use it and spend it without internet access, which is pretty amazing, actually. So anyway. Yeah, it's incredible just giving them the tools they need. ",timestamp:"00:15:52-00:23:31",topics:["African Bitcoin Conference"],type:"twitter_space",weight:4.890018939971924},{boost:0,date:1635566400,description:"[[John Vallis]] Intro",episode_title:"WHY ARE WE BULLISH Adam Curry Untapped Growth John Vallis Guy Swann ep211",guests:[{name:"Adam Curry",profile_picture:"https://pbs.twimg.com/profile_images/1401922551161442307/XjN2DdFD_400x400.jpg",ref_id:"c304fffc-7fe0-49a1-86b8-d3278f5c89dc",twitter_handle:"adamcurry"},{name:"John Vallis",profile_picture:"https://pbs.twimg.com/profile_images/1568743166035070976/4MyKww8A_400x400.jpg",ref_id:"c3a9fe29-3b78-4665-af54-e293e9d68962",twitter_handle:"johnkvallis"},{name:"Guy Swann",profile_picture:"https://pbs.twimg.com/profile_images/1401969630634196995/DqOuszMi_400x400.jpg",ref_id:"39c31930-d799-40a0-9a46-193117d03418",twitter_handle:"TheGuySwann"},{name:"Untapped Growth",profile_picture:"",ref_id:"79de7f8f-4f00-48c4-897a-57aa2a5fb7da",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/6b8fbd46-fa4a-4d07-a142-9aeb242d249f.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/42550048/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-9-30%2F442bcfea-951a-39d6-a1ce-0bbc6c7b43c3.mp3",node_type:"clip",pub_key:"",ref_id:"5b032ecb-09f5-4581-a1a8-cd0865de6076",show_title:"BTC Sessions",text:"you, brother. It's always a pleasure. Yeah. I host a podcast or two podcasts now, I guess one called Bitcoin Rapid Fire and that's my own. And the other is closing the loop. And that's for CT, a subsidiary Bitcoin company of a larger energy group in Norway. And mine. I just started because I became obsessed with Bitcoin and in 2019, it kind of bubbled over and I couldn't not talk about it. And I needed some excuse to hit up these people in the space to have these conversations. And I guess since then, it's morphed into I don't get too deep into the technical aspect of things. I really like to discuss what's happening on the personal side of this phenomenon and how engaging with this thing and adopting it and using it as your kind of lens for many different aspects of reality influences people on a very personal and deep level and what kind of impacts that's having on culture and such. So, yeah, that's what I like to investigate. And I can't wait to chat with you guys. You also like to Orange pill people like Peterson, so that's a plus, too. I love watching him dive down that rabbit hole and start bringing in his circle into it. So I know that was a while back, but once again, kudos on that. So glad to have you. Thank you. Yeah, it's inevitable that Peterson takes the Orange pill and really goes down the rabbit hole. So it's nice to participate in some small way in that. Yeah. Peterson totally was on the same foundation of the principles to grasp it from and just started running with it. It's just great. So much of the bullshit in a matter of like 20 minutes. It was pretty amazing. Yeah, it was. God, why don't you take it away, let people know who you are and what you do as well. I'm the guy ",timestamp:"00:08:28-00:10:23",topics:["john vallis"],type:"podcast",weight:4.856878281588437},{boost:0,date:1632628800,description:"The Analogy of [[Automobile Innovation]] for Mass Production and the Development of Related Industries to [[Bitcoin]] and [[Lightning]] Development",episode_title:"WHY ARE WE BULLISH Denver Bitcoin CryptoMags Lord Fusitua Jim Crider ep203",guests:[{name:"Jim Crider",profile_picture:"",ref_id:"acb937b5-97e9-4881-a45e-0e9511382019",twitter_handle:""},{name:"Lord Fusitua",profile_picture:"https://pbs.twimg.com/profile_images/1511890587586560000/xGb_Dq_D_400x400.jpg",ref_id:"45559c92-d4f0-42a5-8dc4-a8cce65e95a1",twitter_handle:"LordFusitua"},{name:"CryptoMags",profile_picture:"",ref_id:"79cd9104-fa2c-4996-a179-8acb75642acd",twitter_handle:""},{name:"Denver Bitcoin",profile_picture:"",ref_id:"5ab53f2f-797f-4e1b-90d8-f2ca90e88af4",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/638c47da-8592-4d7b-aa1a-20e28fa0499f.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/40846589/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-8-25%2F381320f0-9d1f-9ee7-893f-57af427aca69.mp3",node_type:"clip",pub_key:"",ref_id:"6f3620f8-fd11-4b37-b8c1-7b8bd991420c",show_title:"BTC Sessions",text:"Think about when the car became much more accessible to normal people. That changed. Not only that changed the perception of the value of a car, that changed industries for production, and that also changed gosh, the way that cities were constructed. And we could have looked at that and said, Henry Ford, this is trash. You're making crap cars on a line. But the iteration there of, hey, let's get this to the masses. And then later on we're going to have these Supercars. But right now it's about getting it to the masses and allowing for an infrastructure to be built that we can continue to progress and build on from here. And allowing that to be shared. Yes, Henry Ford did some pretty crappy stuff, I guess. But the infrastructure that was built based off of that being accessible to the masses allowed for other people who weren't related. They weren't benefiting directly from Ford or company stock or whatever it was. This network of, hey, we're going to build roads, we're going to build gas stations, we're going to make tires. And right then it opened up a place of progress in a whole industry and the creation of something that had been thought of before just because it became accessible to more people. And that's what's happening right now. It's no longer this small thing that's for cyberpunks or something. It's the masses. And hey, how can this fit with my life? Ford effectively created the context for the word infrastructure. Infrastructure didn't mean anything before there was an automobile because all those roads, those highways, everything that infrastructure came from having an automobile. And that's exactly like you're saying. The entire infrastructure of what Bitcoin and Lightning will be used by will change the way people live, the way people consume music, food, how they store value. It will have ramifications right across the human experience. And just quickly, I just realized I completely did not answer Magg's question at all. Sorry. We've ",timestamp:"01:19:31-01:21:40",topics:["automobile innovation","bitcoin","lightning"],type:"podcast",weight:4.856878280787084},{boost:0,date:1676393011,description:"The small time deposits component of M2 money",episode_title:"#24 Decoding M2 (Non-M1): Money supply USA",guests:[],hosts:[{name:"Matthew Mezinskis",profile_picture:"https://pbs.twimg.com/profile_images/1497857369455398914/un-TpS6g_400x400.jpg",ref_id:"0dc3360c-5243-43f0-a2f4-19f8a171550d",twitter_handle:"crypto_voices"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/3325efce-80a8-490c-8645-cad1b9a22d94.jpg",keyword:!0,link:"https://anchor.fm/s/d8decf3c/podcast/play/65039444/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-1-14%252F312793741-44100-2-d61bc3a08476d.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"3bfbecac-2ad1-4983-9ed0-f1e48f1f0149",show_title:"Crypto Voices",text:"let's put savings back on. We have savings deposits, the vast majority of non M One, M Two retail money market funds. And now let's add the final component of M Two that we haven't looked at yet, and that is small time deposits. Now this is actually back to a bank. Typically. Typically this can be found in a bank, small time deposits. And let's take off savings and retail just to see this one now you see this one's a little bit more jumpy and way down compared to where it's been around the global financial crisis. It was a little bit more than retail money market funds. 1.4 trillion on the eve of the global financial crisis. And then you see that it fell steadily, steadily all the way until basically today where it's $357,000,000,000 of a small time deposit money supply for retail investors in the United States. There is at the zoom here again to comment on the retail nature of what M two is supposed to be. It's supposed to be more retail liquid monetary assets. Of course that's not always the case with small time deposits. They could be small companies that hold time deposits. Nonetheless, this is just how the Federal Reserve counts it out. I believe it's under $100,000 is a small time deposit. And so what is a time deposit? Similar instruments like a money market fund actually or even a savings deposit, which I didn't perhaps give a full definition either. This is again, when you want to hold your money, you want to hold a balance with a bank. And as we learned in prior videos, that does not mean that there's just physical banknotes and coins sitting in a big vault waiting for you to retrieve. No, that's not how the system works. It's a fiduciary system. It's a fractional reserve banking system and basically nearly all of the money always is lent out by banks in the effort to pursue interest, to pursue profit. And it's a highly regulated industry. They claim that the regulations stop prior bank runs and prior crises. That's very, very debatable, very very arguable. I personally don't believe that at all. But nonetheless that's what they claim. So a time deposit is a very unique type of deposit where unlike a demand deposit and unlike even a savings deposit, which now after regulation do changed, basically has no difference than checking accounts. As I mentioned, a time deposit is basically where you know that you are depositing this money with the bank in return explicitly for interest and you won't be able to take the money out until the term ends. So the deposit might be a month, it might be three months, it might be six months, it might be a year, it might be well over a year. But it is a strictly defined term by the bank where it is very very clear that you are loaning your money to the bank. You can't take the money out of the deposit, the time deposit before term comes due. And if you do, there will be a penalty for you to pay, not the bank. And in return for this time deposit account, which what is in it for you if you offer this to the bank, if you deposit your money in the bank into a time deposit account you should receive higher interest payments than you would in a savings account or a checking account. Sometimes checking accounts pay interest, sometimes not. Sometimes they're just free. But that's how it works. So again, not a huge number and even a smaller number than retail money market funds as of today. But this is an account that you will typically find back in the bank. And again it's just defined by the Federal Reserve as a small number, meaning under 100,000 denomination time deposits. So typically retail, but it certainly could be small companies as well using small time ",timestamp:"00:15:42-00:19:51",topics:["Small time deposits","Time deposit","M2 money supply"],type:"podcast",weight:42.29542842100859},{boost:0,date:1624507200,description:"Small business regulations and [[problems with employment]]",episode_title:"Bitcoin Fixes This 48 Small Business with Ali",guests:[{name:"Ali",profile_picture:"",ref_id:"1169edf2-a89f-4d89-94a4-1be1a7b9aef0",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2536a974-d668-4ac2-8613-0b37aa0ca08c.jpg",keyword:!0,link:"https://anchor.fm/s/2a4e8034/podcast/play/36003846/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-5-23%2F969a4306-e9eb-95c5-0e15-42d37c0e61e8.mp3",node_type:"clip",pub_key:"",ref_id:"b1b5acae-0bc8-4117-8d1b-b61e79bea99f",show_title:"Bitcoin Fixes This",text:"up in the morning. I had a question about your being a small business. What sort of regulations have you seen over the past year and a half with chronovirus and everything? I imagine that couldn't have been easy. And to some degree, I imagine it's still very difficult. What has that been like? Yeah, it's been tough, Jimmy. We were forced to close down our dine in area, but we're already operating most of our business with deliveries, online delivery platforms like Uber Eats and get the dishes and all these door dash and all these things and then take out like, people just come in and pick up two or three Sharmas and take it to their families. And our business has to adapt to this shift in the way people order food. Luckily, we were already there. We were integrated with all the online platforms and we were able to make that transition quite easily. But, yeah, for the first month, I remember the first March of 2020, within one week, our sales dropped like 80% in a week. And it's quite devastating because we didn't know how long things going to last or anything. We laid off people, we tried to get them back, but they said, no, we're getting free money from the government. And that's part of also the reason why we felt like something was messed up with the financial economy and we felt like there was too much money flying around and it was being worth less as time goes by. So, yeah, we just hustle through it, Jimmy, like we did what any business owner would do. You just hustle through it. Something like that Bitcoin wouldn't save you from a situation like this. You need to just make your business work. And if it works and you've done the Bitcoin decision now, you have a successful business and you're in a position of strength to expand your business however you want or to do all the things that you want to do with your business. So it has been challenging, it has been tough, but you got to fight through it. That's the best advice I can give to people. And it sounds like you had some labor problems, maybe even some regulatory problems and things like that. How do you deal with the fact that people are getting paid more to not work, and how do you hire people in that sort of weird incentive environment? Yeah, it was backwards, Jimmy. We tried to get people hired after business started picking back up in 2020. And then they were just like, no, we're good. We're getting free money at home. We were like, okay, for a while there, we had to raise our pay just to attract the people staying at home. So we had to basically compete with the government and paying employees. So, yeah, we did that. But then at one point we said, you know what? We don't want to come back school, you guys. We're just going to hire a whole new crew of people and train them from scratch. And we did that, and it worked out fine in our industry. I feel like there's always some people that are willing to work. You just have to really look for them, but they're not easy to find, but you end up finding good people eventually. Yeah, I've noticed that about small businesses, even here in Austin and everywhere else, you see Help Wanted signs just absolutely everywhere. And the reason is because no one really has to work. So they get paid maybe 20% more for working versus sitting at home and doing nothing. And they'd rather just sit at home. It feels very off. And I can't imagine how difficult it must be for a small business owner to have to kind of deal with all of that. It's really hard, Jimmy. Like, I have my sister and her husband. They're dentists. They have a few clinics here in London, Ontario. They have it even worse because most of their employees are like female hygienists and dental assistants. And they have their kids staying at home and not going to school. And it's even harder to get them to come back to work because they say, oh, we can't leave our kids at home by themselves. We're just going to stay at home, get paid, and you go figure it out. We can't come yeah, it's tough on medium and small businesses. And it's just the reality. It's the backward reality that we have to deal with right now. It's insane to me. Well, does the Canadian government sort of, like, subsidize you for at least some of the hardship that you're going through, or do you kind of just have to deal with it as a small business and sort of not have that many workers or shorten your hours. What are your options? Here's a cherry on top, Jimmy. If your business does well or improves from the previous year, improved, like its sales and its revenue, then you don't qualify as a business for any government assistance. Right. So we have been able to be in that situation where actually our business improved from last year. But because we hustled and got our business going and our revenues increased, we get left out from all the government grants and the rent subsidies and all of that that is given to everybody else that basically just locked their doors and didn't bother to try. I'm fair, but I'd rather be in this position where we don't need help than in a position where we're handing out a hand to the government and asking them for grants and whatnot. So I'm happy this way. Well, are your competitors that kept the prices the same? Are those ones that got, like, government assistance, or are they hustling just like you? Well, yeah. I'll give you an example. Like one of our stores we have like a neighbor, that restaurant, it's like a pizza store. And they've been basically they shut their doors since this whole thing started and they've been able to get enough grants to pay off themselves, their landlords, everyone, and not basically not do a thing, just have the door shut. So from this perspective, it kind of feels unfair. It feels right that if you're not able to adapt in this environment, then you should be kind of liquidated and other entrepreneurs can take up that space and make a model that works better in this environment and so on. But that's just not the way it's working right now. And in that sense, it's kind of unfair. But who cares? You got to pick up our sleeves and that's Bitcoin so they can do whatever they want. ",timestamp:"00:18:56-00:27:00",topics:["problems with employment"],type:"podcast",weight:4.846990585328009},{boost:0,date:1266645600,description:"Power of small stock holder",episode_title:"5. The Profit Motive",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ef62c7ab-ef09-47b7-9af4-2ebe2384a72f.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/05_AustrianEcon_Rothbard_1972.mp3",node_type:"clip",pub_key:"",ref_id:"99fc3f47-1cb2-449e-bd46-97a597fce97a",show_title:"Austrian Economics: An Introductory Course",text:"Well, how about the stock solar manager? This junction the first place. Nobody said it's either way, there's usually a store manager developed here. The story goes. Well, after all the stockholder sitting there. He's got no control. He's just having a dividend. Well, it's true. If I have one share of General Motors stock I'm not going to have a very powerful influence on the decision making process of General Motors. No reason why I should. Nobody expects to. But nobody ever claimed that no New York classical economics with an IQ over 20 has ever maintained that the small stockholder has much power. The point is that the large stockholders have the power. And if you get the large stockholders together on issues then they become dominant. The small stockholders stockholders already do have power. Another way it's very important, a small stockholder if he doesn't like the way things are going if he doesn't like the profit record usually as a corporation he has stock in, what does he do? He sells it. I don't like General Motors this year. Profits are falling, I'm selling a stock. If people start selling the stock small, they are, this means the price of the stock declines and the big guys are holding a lot of stock at a very worried because the value of their assets goes down this way by voting with their feet, so to speak. The small stockholder does it decision, even though not directly not by voting, but by voting in the market, just since it's more powerful. So that's one thing. Also a person currently should contrast this the power the small stockholders have by voting with their feet and the corporations contrast this is so called publicly owned and we'll get back again later, because the government ownership, so called publicly owned operation, where every citizen, by virtue of being a citizen, for example, owns a post office. Well, can we sell our shares in the post office? I don't like the way the post office is being run. I want to sell my share, where do I go to sell it? Obviously we can't go anywhere talking, we ain't got no shares. It's really government owned and the public ownership is a pure mythology by which the government closest operation so we have the power in a private corporation to sell a share if we don't like it, we don't have the power in a so called publicly owned government operation you can't sell the shares of the public school, for example. Okay, let's ",timestamp:"00:07:39-00:10:00",topics:["Small stock holder","stockholder"],type:"podcast",weight:4.837404131889343},{boost:0,date:0,description:"Talk about Value to Value Apps and Brian Murray' Project",episode_title:"Cool Apps Built on Lightning - March 16, 2022 - Voltage Twitter Spaces",guests:[{name:"Chad Atkins",profile_picture:"https://pbs.twimg.com/profile_images/1200611447979544576/W9ocRJTb_400x400.jpg",ref_id:"62da3c50-0a46-400b-81a3-5f482f5b8fee",twitter_handle:"Chemchad"},{name:"Michael Atwood",profile_picture:"https://pbs.twimg.com/profile_images/1362207977470521345/Jy2_Ge60_400x400.jpg",ref_id:"16359ade-afb9-4a37-be0b-0844a6134327",twitter_handle:"Dooowta"}],hosts:[{name:"Nate Glasky",profile_picture:"",ref_id:"0662789d-b39e-4aed-ad6f-44257695b6af",twitter_handle:""},{name:" Bobby Watts",profile_picture:"",ref_id:"ae2685c6-1307-473a-95b0-87c234e50483",twitter_handle:""}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=4EJrnxYOShY",node_type:"clip",pub_key:"",ref_id:"addee850-119f-472c-87c2-05fc0642abeb",show_title:"Voltage",text:"guess until someone raises their hand, there's one. I don't have a list maybe like you do, but one of the things that's on my mind is I've been playing a bit more with some of these value for value apps where basically whenever you find something good, you can tip or just get someone sat. Like what I've been mainly playing with and enjoying is Fountain and Stacker News. I just think it's super fascinating and I can see in the future how there could be like a Wikipedia that's Lightning based where you get tips for creating good content and I can just see how that could really take off. But I've been really having a good time with Fountain, using that app and just onboarding a lot of friends, and I know they're doing a ton of things behind the scenes that are going to be rolling out over the next couple of months, which is exciting. Yeah. Fountain is really slick because it's sort of like an overlay, over spotify if you want it to be. Right. I had a little bit of time playing with it recently, but it's really cool. I recommend anyone to try out Fountain if you listen to podcasts. Yeah, and I just heard, someone told me today that whenever they logged in, fountain gave them like 1000 free stats or something and you can use it to kick start streaming stats to people and paying content creators, but pretty sweet. What's up, Brian? Hey, welcome up, man. A fellow shadowy supercoder, I believe. Yeah. Brian of London. What's up, man? You're muted right now. Did you want to share something. That'S unmute? I'm in a car, so if it sounds terrible, I'll duck off again. Yeah, I joined Voltage today. I've been building stuff all to do with Podcasting 2.0 for a few months now and interfacing with Hive. I know, don't worry, it's another blockchain thing. But this whole business of value for value is absolutely critical. And Lightning is very important because of the low fees and other than the hassles I've been having with nodes and hardware braking, which is why I just started up a voltage node tonight because I spent the whole day messing about with an umbrella and broken SD cards and stuff. So I'm really hoping that Voltage is going to be better for me to build something kind of that I can really share. But yeah, looking forward to getting that going. And what I'm actually doing is converting from Hive into Lightning and lightning into hive because there's about four, four or 5000 Lightning enabled podcasts on the value for value system right now. But the little secret behind that is that about two and a half or 3000 of those I put there because they're all video channels on something called Three Speak and I handle the stats for those. So, yeah, there's a lot coming. A lot coming. I love the vision. That's awesome. Having the ability to send not just quick payments, but small, instant free ones, relatively free, is just incredible. Like, worldwide, the amount of things that you could build is incredible. So that's really cool, Brian. Yes. Anyway, thanks. A lot of stuff to build. I hope that Voltage helps smooth some of those corners for what you're building. Well, yeah, I mean, I was building something and I've been building it all sort of within my home, basically. And I just got to the point where I'm sharing. I've got a method to expose invoices out into the world, but I don't like how I'm doing it. And I have to have a node that's public. Lightning is a bit of a fiddle, I've got to say. I develop on two things because I'm developing on the Hive blockchain, which is super easy because it's got no fees and very quick and it's got an easy developer and I don't have to think about all these channels and stuff. But what Lightning brings is this ability to have these wallets all over the place. That the way Lightning works for small wallets on phones, inside apps like Fountain and stuff. There's nothing else like it that I've seen. So there is a combination, which is what I'm combining two different things because I think on the receiving side for podcasters, actually receiving SATS on their own node is beyond most people keeping a node running with the channels, with the liquidity in the right places and all of that stuff. I don't think that's going to be a mass market thing. Yeah, I think over time that should be softened around the corners, automated a little bit, hopefully. But yeah, we're still definitely early days where it's nice and tough, so to speak. Yeah, it's a struggle learning. I've been on this for like nine months now, learning how to open channels at the right time so you don't get whacked with too much fees and who to open channels to and the sort of the dark art of channel fee pricing and all that stuff. So you open a channel and go to bed and then in the morning the SATS that you thought that you would have for outbound have all snuck off somewhere because somebody rooted a million SATS for you and you didn't change your fees, that kind of stuff. Anyway, it's all learning. Very cool. All right, thanks for having me on. I'm going to mute. Bye bye. Thank ",timestamp:"00:02:18-00:08:42",topics:["Brian Murray"],type:"youtube",weight:4.822762489318848},{boost:0,date:null,description:"Bitcoin price indicators and how Bitcoin pricing might stabilize ",episode_title:"Café ₿: #Bitcoin Beginner Q&A",guests:[{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Stephan Livera",profile_picture:"https://pbs.twimg.com/profile_images/1362551718110580740/v-W5Q2uo_400x400.jpg",ref_id:"72f57157-c96e-4466-8bf1-290cfe1f8a0b",twitter_handle:"stephanlivera"},{name:"Thomas J Lake",profile_picture:"https://pbs.twimg.com/profile_images/1529168328534769670/5cl2Y_k-_400x400.jpg",ref_id:"21541a47-0601-447c-99c2-312d1a63c19f",twitter_handle:"thomaslake"},{name:"Goodguy",profile_picture:"https://pbs.twimg.com/profile_images/1363216959576285185/unulY4yd_400x400.jpg",ref_id:"0c3fec75-9cc2-4c0f-8dbe-db7fae2b585b",twitter_handle:"goodguybiker"}],hosts:[{name:"Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"49966553-d55b-44c9-94ec-8fee09eee5c2",twitter_handle:"CitizenBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/35b20273-49f2-45ea-a9f4-dc479d86573c/7ae5315f-beb2-41e2-b672-65dd1f102017.mp3",node_type:"clip",pub_key:"",ref_id:"dbc2c8f6-e85d-449c-a431-e52f6e7594e2",show_title:"Swan.com",text:"We're going to continue to do these, I think. I've been talking to Jacob about this, doing this maybe once a week, doing a beginner Q and A, getting back to our roots. And if you guys want to participate in that, we'll talk about it and see if we can do this on a more regular thing. Let's do one more quick question, and then we will make some closing comments and wrap the show. Zoom out. Do you have a beginner question? Welcome. Hi. Thanks. It was a little more advanced, and it was specific to you guys talking about the pricing and the measurement of pricing. So it's not a simple one. Sorry. But I was very fascinated to understand how the price might stabilize over time and what the indicators are there. In. Terms of pricing everything in Bitcoin. I'm going to I'll give a quick answer to that, and we'll move whether my answer suffices or not. Okay. So basically, I think there's an opportunity first of all, there's an opportunity cost, and also, there's not enough monetary energy in it yet for it to be more stable in my iceberg versus ice cube example. But the other thing is, is that it's not quite being used as a medium of exchange yet, which will also help stabilize. And the reason it's not, in my opinion, is that we're still in the value accrual phase. There's an opportunity cost. Many of the people holding it don't want to use it or sell it because we believe it's going to gain in value. I mean, we'll use it on a small scale. I'm using it on a small scale. But, you know, if if a if you look at the the coins that are held today, I think something like 60% or more of the supply has not moved in more than a year. And what that tells me is that the people that are holding it think that there's an opportunity costing it and that's why it's not moving. And until that's arbitraged away, you're not going to see it fully employed as a medium of exchange. Without that, there's still going to be that level of volatility there. Go ahead soon. Yeah, thanks. I guess there's a bit of reading to do that on economics, but it's fascinating to see how the globe or the whole world might start to equalize and synchronize in terms of how they measure and value everything around the world. On top of that, I just wanted to add maybe to some of the newbies. I've been in this space for a couple of years and thought I had a good understanding. And then I listened to Lynn Olden over the weekend and she described bitcoin as being unique in that it solves this abstraction of the money. And my head exploded because I realized somehow that actually there's a coupling of the transaction itself and the record of that transaction. And it just completely blew my mind because I for some reason couldn't see that until she described it and it solves the abstraction. I think that's the double spend issue. By Zenfine general's one, but it was. Her description specifically on simply bitcoin of it being married. Awesome. Yeah, it takes all sorts. Every one of us who explains bitcoin will reach different people. And that's the reason why it's great to have such a great spectrum of personalities that are doing it. Let's get to some closing comments and we'll wrap. Thanks for coming. Zoom tomer. Do you want to make closing comments and we'll let Stefan go and then we'll move to wrap. Closing comments. Bitcoin is not that hard. It's a very simple thing that you can take custody of. Use it the way it was originally intended to be used because it's kept all those promises. There's a lot of charlatans in the space. Beware of people promising easy returns, safe returns, quick returns. They're all out to get your bitcoin from you and they're selling you something different. I just hope you can learn the lesson at the expense of others rather than at your own expense. The direction that it's going in is you will likely eventually own bitcoin. So start figuring out how to own it sooner rather than later. Awesome point out. Before we go to you, Stefan, I just want to say thanks to Good Guy and Neil and everybody who comes up here on the regular, we're really out of time. Otherwise I do closing comments with all you guys. We love you guys, we appreciate you guys coming. Stefan, closing comments and then we'll wrap. Yeah, look, I would just say don't feel overwhelmed. It's very simple. Like once you've withdrawn and then actually practiced doing a transaction, you'll find it's actually a lot simpler than what was thought. So I think it's a common thing where people are maybe they're a little worried the first time they've ever done it. But then after that, I promise you, it's a magical feeling. Doing your first bitcoin transaction, doing your first lightning transaction. I think most of us can remember our first bitcoin and our first lightning transaction, so definitely get out there and give it a go, if you haven't already. We do have some regular webinars that we're running, so make sure you get on with our swan email list and you'll find out about those because we're hosting some webinars ",timestamp:"02:01:53-02:07:04",topics:["Bitcoin volatility","pricing"],type:"twitter_space",weight:4.822762489318848},{boost:0,date:null,description:"Is there a minimum withdrawal amount in Tweetoshi?",episode_title:"Café ₿: Bitcoin News & Using Bitcoin w/ Twitter, @tweetoshiapp",guests:[{name:"@TweetoshiApp",profile_picture:"https://pbs.twimg.com/profile_images/1532819967133028352/frxdtSHX_400x400.jpg",ref_id:"97e59475-beaf-44fe-b1b0-ea2a63d335b6",twitter_handle:"TweetoshiApp"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/25fad353-f7a7-43cb-9197-beef1e783983/e2ec31c3-43e5-4e81-af3a-b153b8c219ca.mp3",node_type:"clip",pub_key:"",ref_id:"fc9b5e45-fc94-42dd-a722-bde164f8c24b",show_title:"Swan.com",text:"a maximum is there a minimum limit in terms of what you can withdraw or can you withdraw like a single satoshi? Yes, for now there is like a super small minimum limit of 100 satoshi. We would like to get it down to one satoshi in the future, just like for the for the, like, let's say a meme. So we can withdraw literally anything, but for now, there is 100 satoshi limit. Cool, thanks. Would one satoshi even be possible? Because you still have to pay the unchanged transaction fee. Now you can withdraw one satoshi from Thunder Games, for example. So it's possible. Yeah, but what does that mean? Are they paying the transaction fee? I'm assuming that there is no routing fee for that small of the transfer. Like if you're doing one satoshi from Thunders custodial wallet to Moon or to whatever, they have it set up in such a way that it works. Either they eat the fee or their channel is set to zero fee. Because if your channel is set to zero fee, it's lighting ",timestamp:"01:52:34-01:53:48",topics:["Tweetoshi App"],type:"twitter_space",weight:4.8130316734313965},{boost:0,date:1599305976,description:"How US debt affects the economy ",episode_title:"Borrowing - where is the money going? Corporate, Small Business, Government",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/abd94520-1490-42aa-b349-9e861494a654.jpg",keyword:!0,link:"https://anchor.fm/s/138410f8/podcast/play/19113751/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2020-09-05%252Ff840233e9317a45e95724ebf5de7e057.m4a",node_type:"clip",pub_key:"",ref_id:"e97927cd-526b-46ef-bde2-7e60339fd4a5",show_title:"Economy Guy",text:"small businesses doing regarding borrowing money? Well, they go to a bank and they borrow money. And typically the bank, they go to an SBA bank. That's a Small Business Administration bank. That's a bank that does Small Business Administration loans. So what is one of those loans? Sounds interesting. What is that loan? Well, the SBA, the Small Business Administration, which is a government agency, guarantees someplace between 50% and 85% of that loan. In case of default, the government will back it. So that reduces that much risk of the loan to the bank that's doing the borrowing. So that really lowers the risk to the bank. That's pretty good for the bank, right? In spite of that, the SBA banks are not lending right now. You say what? Huh? Why? Well, you see, the SBA banks are going back to the Small Business Administration and saying, hey, you know, that amount that you guarantee, we'd like you to increase it to 90%, even 100%. Splendid. Fully guaranteed. So you see, the banks don't want to take any risk or truly minimal risk. That's where they're coming from. Now, do we have a measure of how much? When I say SBA lending is stopped because small businesses is the heart of the US economy. Small businesses are the things that create employment, big employment. Most people work for small businesses, not the big corporations. So encouraging small businesses to borrow money and then using it as a good loan and creating jobs, creating profit, creating their own business, growing their own business is a good thing for the US. I mean that would create a boom in the US GDP. But the lending has basically stopped. And I have one measure of a group of banks. So it's not all lending, but a group of banks. Their measure is that since April of this year, 99% of the loans have stopped. Only 1% of loans equivalent to the last year have gone through 99%. That's effectively all lending to small businesses have stopped. And why? How big are the loans? I mean, the loans we're talking about are 5 million to $10 million, no more than 5 million. SBA loan can't be more than $5 million, but the Cares Act increased it to 10 million. Well, that didn't mean anything because nobody's lending money. So who Cares Act did not affect anything. What are the banks doing? They don't want to have any risk. What they're saying is to companies that are surviving through this pandemic, they're saying, well, I don't know if you're going to make it when we recover. I mean, you may only be growing because of the pandemic. When you may be gone, your bone could be bad. And they're saying to the people who are really hurting that need their money, we don't know if you're going to make it when the pandemic is done because you may run out of money before it's done. So in both cases, a good company and a bad company is not lending because it's all about risk. That's kind of interesting when it comes to small businesses. And the result there is without lending in that particular sector, we're not going to have a fast recovery or as fast as possible. So one thing for you, the listener, to listen watch for is lending to small businesses. Is there something that could happen in the future that you will hear in the news that is freeing up money? If so, that will be good for the economy. If not, it's going to be a slow growth. And now for the last area who are borrowing money? That's the government or the US. Treasury. In the case of the United States, people who are lending money are throwing money at the US Treasury. That's big bucks. The big bucks are going to the US Treasury. That's where the money is ending up. And how big is big? Well, this calendar year for 2020, the big bucks, it looks like the US Treasury is going to borrow about $5.4 trillion. That's so big, it's unimaginable. How big? In the good old days, when we were borrowing too much, it was $1 trillion a year. This year it's going to be $5.4 trillion. That puts it into perspective. Horrible, horrible, horrible. And that doesn't count if there's a new stimulus package passed by Congress this year, which I doubt will happen, my personal opinion is that Congress is at loggerheads. The two parties aren't about to agree on anything since we're so close to an election. So I don't think a new stimulus package would happen. But if it did, it would be even more borrowing. That's as simple as that. We don't have the money. Otherwise. The only way to get it is to borrow it. So the US government is the perfect example of bad borrowing. They borrow money. It is not productive. It does not pay back anything. They're not building roads and bridges that can pay back the money or contribute to productivity or all those good things that you can do with money. No. So what happens with all of the debt, which incidentally, is going to be 100% of GDP this year? That's supposed to be a magic number. It shouldn't happen. It should cause comets to fall out of the sky or something. But that's what's happening to the US economy this year. It's massive debt. But what happens every year as they bring in taxes? Where does the money go? Well, part of that money goes to paying the interest on the debt. And the bigger the debt, the bigger the interest. Now, that interest is not productive. It just goes to pay back the people who lent the money. It's not going to building roads or building factories or buying things that are important to buy. It's not helping the economy one little bit. So I say to you, ignore that. It's not good US Treasury, even though that's where the money is being thrown, it's not good debt. So there is my positive message for the day. I hope you liked it. That's where we stand. Corporate debt is they're in good shape. They have too much money. They don't know what they're going to do with it. They'll probably do something foolish with it. They have in the past. Small businesses can't get a loan so we can't grow. Because of that, the treasury has more money than they can use. Anytime they want money, they just say, please give me, and people give me it. So that's happening. That's the world of debt in the United States today. That'll change, of course. But be aware that all of those are not good things for our future and are not rosy rosie, I'm sorry to say that I do want some a lot more Rosies. So ",timestamp:"00:12:05-00:19:41",topics:["US debt"],type:"podcast",weight:4.810045599937439},{boost:0,date:1673549347,description:"How different people use different methods to safekeep their assets",episode_title:"BR019 - Proof of Keys Day Twitter Space ft. Lopp, Craig Raw, Lazy Ninja, mshodl, Rijndael & guests",guests:[],hosts:[{name:" Jameson Lopp",profile_picture:"https://pbs.twimg.com/profile_images/1594137153625276416/t1RUP3yP_400x400.jpg",ref_id:"062ec6c8-0fa2-4bf6-9aa1-7ab347df2530",twitter_handle:"lopp"},{name:" Craig Raw",profile_picture:"https://pbs.twimg.com/profile_images/1362841242665631745/UtA3FBQU_400x400.jpg",ref_id:"f2d1f5f0-2e1c-4d16-937d-4d48627cb955",twitter_handle:"craigraw"},{name:" Lazy Ninja and Rijndael",profile_picture:"https://pbs.twimg.com/profile_images/1362843002318721028/PNKWuu0-_400x400.jpg",ref_id:"23edbd50-9b0b-4e9a-aa56-57c2af074173",twitter_handle:"FreedomIsntSafe"},{name:"Justine Harper",profile_picture:"https://pbs.twimg.com/profile_images/1559710083734540289/HXTH4kqO_400x400.jpg",ref_id:"7b5a8957-1c4b-474f-bc38-291b382a13e6",twitter_handle:"mshodl"},{name:" Dee",profile_picture:"https://pbs.twimg.com/profile_images/1600155411868434433/9k1KQ8i5_400x400.jpg",ref_id:"ad33288b-28d4-4f15-9492-f64bce891613",twitter_handle:"HodlDee"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f1879df9-9bc6-4a76-951f-24548da768ef.jpg",keyword:!0,link:"https://anchor.fm/s/9500fad8/podcast/play/63399670/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-0-12%252F0a789f60-2c9a-6bbb-945a-79f3dd937cee.mp3",node_type:"clip",pub_key:"032d7609ff3f4a5232e4d60967971e23bc671dfb68020845a59bab5dc1f3b93b87",ref_id:"08600eb8-a8b1-4be4-b505-3adc409da2f8",show_title:"Bitcoin.Review Podcast with NVK & Guests",text:"holes, but just before I go there, I just kind of like want to recap. So I think we all agree that different people, different needs, different solutions. Even the same people might need different solutions, right? You want your spending wallet, you want your lightning wallet, you want maybe a warm wallet. I think we all agree that keys should never be on a computer or touch a computer. I think we all agree that harder wallets work great. I think we all agree that multisig solves a lot of problems. We don't all agree that single SIG plus passphrase is great, but we do have some agreement on where the faults lie. We can recap that if you guys want to pick at anything I said, so don't feel like I am putting your foot down here. So I guess the main thing is that I want people to take out of this sort of like, simpler, more new part of the conversation is don't get overwhelmed with solutions out there. You have time, you can test things, you can experiment with different services, you can experiment with different wallets. Most of the solutions are free. And then if you want to get into harder wallets and you can even build your own solutions out there, I think it's important that people don't roll their own solutions, especially not their own cryptography. I don't think that's a concern anymore, but it used to be back in the day, and then sort of like we can start getting to the weeds of some of the FUD that confuses people around different solutions and go from there. Do you guys have any sort of like short comments about the previous sort of like noob conversation that you want to before we move on? Yeah, I mean, like, we said it earlier, but just to really drive it home. If you got $50 or $100 on coinbase or Gemini, just go install moon wallet or blue wallet on your phone and get it off and start playing with it. Like, you don't have to go straight to seed plate buried behind the third oak tree. If you've got $50 on coinbase, you can really start small. So you just said it, but it's worth saying over and over and over again. I mean, that question does come up every single time I do spaces somewhere or back in the clubhouse thing. It's amazing to me how much people don't understand that they don't need to do like twelve out of twelve DVDs for $100 worth of Bitcoin. And that is how you should be experimenting with Bitcoin. Don't go buy an asset with all your life savings until you understand how the heck that asset works. Well, a lot of people I've heard the same thing, like clubhouse or friends will say, well, I only have $100 worth of Bitcoin. I don't really want to go buy this hardware wallet. That's a certain amount of money. It seems kind of crazy for the amount. It's like, well, you don't have to. There's free mobile wallets. That could be your first step. So I think the biggest takeaway from this space is it's not all or nothing. Like take the steps and we're kind of walking through the steps specifically. But you don't have to spend money on an assigning device or hardware wallet. You can just download a mobile wallet. That's the first step. And then even when you start getting more sophisticated, you also don't have to have one wallet, right? I have Blue wallet on my phone. I also have several multi six set up, right? And you can think about partitioning your money where you have a really small bucket of money that's super easy to get to and very easy to spend. And then you have a bigger bucket of money that's harder to get to and harder to spend. And those things can change as your life does. Just like we're not walking around with our life saving in our pocket, right? We take what we need to spend when we go get coffee or whatnot and the other is secured somewhere. So, yeah, the multiple wallets, depending on your needs is totally good. You know it's a segregation, right? It's like hygiene in that sense. You're going to have your savings account, you're going to have your checking account, you're going to have your credit card. You do segregate fiat in all these buckets in your life, right? So why not do the same with Bitcoin? You don't want to be buying coffee of all your wealth. I think there is something interesting to be said about diversity and how to apply diversity from a security mindset. For example, one really common trope that we see is people coming to us who they have, for their safety, diversified their funds across five or ten different wallets. And some of these may be self custody, some may be custodians, but their whole idea is don't put all of your eggs in one basket. And my push back against that is that yes, that type of diversity does of course reduce the chance that a single catastrophe will completely wipe you out and cause you to lose everything. But it can also be increasing the chance that you will have a partial loss in one or more of those setups will fail. So one interesting aspect of multisig is that the diversity that you can add to the setup by having keys on different hardware manufacturer devices in different physical locations and basically different security properties around each of the keys in that setup is that that security is actually additive. It creates a stronger and stronger setup because it's essentially eliminating these single points of failure. If an attacker, for example, compromises supply chain of popular hardware manufacturer. If your multisig setup is not using all the same hardware manufacturer, you're protected from that. That's just one example. So, point being, diversity can be good, but applied the wrong way, it can actually be harmful. It's kind of fascinating and it really goes to show like why there is no sort of fix all solution. Each set up is going to have different sets of trade offs. And the complexity also does increase some issues there too. So you could argue on one side, it's like you want to have some diversity in your harder wallets because if one vendor is evil or really like, realistically speaking, it's going to be a targeted attack against you that it's going to maybe replace Harder or something like that. You could be fault to that, but at the same time you could have multiple Harder Wallets and say, the software update on some of them break the multisig setup, it's unlikely to have full loss of funds, but it could be quite the issue to sort of go back to you being functional. And then each vendor is going to offer sort of like different thresholds and some vendors out there offer simply either no security or illusion of security or like really crappy hardware. There's like hundreds of hardware wallets. I'd say probably out of 195 of them are absolute garbage and should never be used. And the guys from Ledger actually do a great job breaking Harder Wallets. You should check out their Don John blog where they have broken Harder Wallets and how long it takes to break them and how much money does it cost to break them. There's Harder Wallets that cost like $10 to break. There's Harder Wallets that cost half a million dollars to break. Not all things are equal just because they're the same category. So I guess this is a good segue to move to more sort of like rabbit holes of security and things of sorts. So why don't I bring up maybe lazy ninja who is a security researcher for hardware. He has helped us find problems. We have a good guy as well. He's a fantastic security researcher here too. We have what else do we have here that is of the category for the beginner stuff? While we're on the topic, I know Sparrow has a great thing called Master Fingerprint ID. You know, we as well have something called Master Fingerprint ID that you can check on the cold card itself. So if you're you know, you're dealing with a single SIG wallet and you know, you don't know if in your if you're in your passphrase wallet or you're in your BIP 85 wallet or whatever you want, you can go to Advanced Tools and go to View Identity and then it will give you a string of eight letters and numbers. And that's basically the first four bytes of your public key. So it's just a great way to know. It's kind of like a username or something like that, right? It's just a way to identify what wallet you're in without having to try and sign a transaction and get that error. So it's just a good thing for beginners to know about and I find it very useful. Thanks. Dee. I think we're going to be attacking a lot of those little issues. Justine and Jameson, thank you so much for joining me. Like, I love if you guys stay, but if anybody needs to go, totally. I don't want to take up your time, but you guys have a lot of knowledge to push out, so please do stay if you can. And with the first part of the space is gone. Let's improvise on the second part, which I think will be really cool to sort of talk about some of the fun around solutions and some of the ways the products in the market do address them. Hopefully, we can clear a few of those, because that's, in my view, one of the things that keep people from using good solutions is just this fear of the nearly impossible attacks, or actually attacks that are completely alive. So why don't we start with can ",timestamp:"01:09:32-01:19:34",topics:["Hardware wallet","multiple crypto wallet"],type:"podcast",weight:21.998553860382764},{boost:0,date:1665687900,description:"Small Towns Only Have Terrible Food Choices - Socioeconomic Problem? It’s A Govt Subsidy Problem - Flipped Food Pyramid ",episode_title:"#1104 Dr. Philip Ovadia - Heart Surgeon Explains What To Eat To Save Your Life",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/7934bd86-9344-4f1a-9c36-ea5f63ae418e.jpg",keyword:!0,link:"https://anchor.fm/s/b4841110/podcast/play/58963723/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2022-9-12%252F290744275-44100-2-e4f30b61276f1.mp3",node_type:"clip",pub_key:"032ff32727b06d20a13a0a8d8dfe09d39659c16deeaffbf94d6d21ec6bb28850b6",ref_id:"50cf9922-5d13-4a4b-8621-e934b422aebf",show_title:"The Pomp Podcast",text:"town in North Carolina my wife and I were driving through at one point, and it's kind of one of these streets where there's three, four, five stop lights, but it's a one way or a kind of straight shot that you can look down. And for whatever reason, I said to her, oh, my God, look at all the signs. And it was Wendy's McDonald's. Bojangles chickfila. It was just like all of it, right? And it was almost like a shot you would see on the Internet that kind of goes by when we were like, wow, America is so stupid. And as we looked, what I think shocked me was in that small town, I don't know if you could have an average salary and eat healthy, right? Because everything that was thrown in your face was cheap and unhealthy. And so how much of the obesity epidemic or kind of the rise in the unhealthy American is a socioeconomic and like a poverty problem or a money problem versus people have the money to go and eat healthy. It's just they aren't educated or they're lazy, and they don't want to do the work to actually do that. Yeah. So I do think that both play into it. When you look at why is processed food so inexpensive? You start to look at government incentives around the crops that get subsidized versus why aren't those subsidies going to the ranchers who are raising cattle? So you have to ask, why is that food the inexpensive food? I mean, the reality is it doesn't need to be that way. We could very easily shift what becomes the inexpensive food for people. And then there certainly is the educational piece of it. And quite frankly, we start to get into the miss educational piece of this because, you know, the predominant messaging around healthy food here in the United States for the past 50 years has been the food pyramid. That whole grains are the healthiest thing you should be eating and cereals and wheat and all of this. That's insane. That is literally insane. We have more than enough evidence at this point to know that that shouldn't be the case. The food pyramid should essentially be flipped upside down. So then you start asking those questions because it's like, okay, not only have we gotten this wrong, but we got it so wrong that it almost has to be intentional. You can't mess things up this badly without there being some intentionality to it. Okay, so ",timestamp:"00:12:30-00:15:19",topics:["Small Towns","Socioeconomic Problem","Govt Subsidy Problem","Flipped Food Pyramid"],type:"podcast",weight:4.9863560048368285},{boost:0,date:1676681753,description:"The possible applications of Cashu Chaumian Ecash",episode_title:"WHY ARE WE BULLISH? Ant, Bitcoin Island, Decentra Suze ep324",guests:[{name:"Decentra Suze",profile_picture:"https://pbs.twimg.com/profile_images/1614189317345214464/Z4BZBBbb_400x400.jpg",ref_id:"da307464-4ac8-449a-81f0-74ea9749dd1b",twitter_handle:"DecentraSuze"},{name:"Ant",profile_picture:"https://pbs.twimg.com/profile_images/1617275233831886853/RlWpn1qQ_400x400.jpg",ref_id:"9575e6e8-cd06-48f0-b548-801f7d2357a5",twitter_handle:"2140data"},{name:"Bitcoin Island",profile_picture:"",ref_id:"9b88c77a-65c9-4ae6-a30c-890937636d7f",twitter_handle:"BitcoinIslandPH"}],hosts:[{name:"Ben Perrin",profile_picture:"https://pbs.twimg.com/profile_images/1181715113226596352/ipGVEcYH_400x400.jpg",ref_id:"e6b013ef-178b-4b41-95ee-423148a3dc3a",twitter_handle:"profbenperrin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/65227742/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-1-18%252F313420179-44100-2-8fb4b50d66df8.mp3",node_type:"clip",pub_key:"02545c14cbb18a61f20dd45f5e3dcbd9acae3de282369501040adce32a75311309",ref_id:"784b1ee8-56e7-403c-b813-24713fd3a29c",show_title:"BTC Sessions",text:"first of all, has anybody here either heard of or used Ecash via lightning? Bill, you have? I'll just ask, what has your experience been? I haven't been able to use it. I've only heard about it, but here on the island we have a fairly small community, like I said, 250 different businesses. And I'd like to see them being able to save on chain through something like this. I've just not really understood it. I end up going to talk to people and show them how to save bond chain and I think they understand it. I need to go back and check on them in a month to make sure. But if there was an Uncle Jim on the island so they could be self sufficient on this and know that they're saving, that would be a pretty great solution. Yeah, I love the kind of in between again, helping people like Uncle Jimming for somebody when you know, and it doesn't even have to be a permanent thing, but being like an interim Uncle Jim for people and helping them along their Bitcoin journey, I think that's a valuable thing to provide. And then some people will move beyond that and move into self custody for themselves and then other people that maybe that ends up being their last stop along the journey. But at least it's better than just full leave your money with a single entity that you then have to trust. At least you can kind of remove single points of failure with a mechanism like this. And I'm curious, your thoughts on this stuff. Are you for are you for it? Do you have reservations about it? What are you thinking? Thanks. Yeah. I believe that you should have an adversarial stance in all things in Bitcoin, everything that comes up until you fully understand it and then maybe try to understand it even more. Right now I really like it a lot from what I've read, and I don't fully understand it as well as I can, as well as I should or could right now. But it is exciting. I think that I'm from Texas. There's a lot of farms around here and like small communities and that's where I see a lot of potential here for something like this, where people don't really think about it a lot. But in small, like little ranching communities, they all know each other, but their access to the legacy financial system, it can be difficult or even nonexistent sometimes, or even predatory in some ways. And seeing something like this, the right platform with the right user experience, I think could be really major for the local ranching communities and just other communities small around the world, obviously. But that's what I think right now. Close to home. Yeah, absolutely. And I'll jump to susie as well. Again, I don't know your experience with this kind of stuff, but just from kind of seeing that there, do you have initial impressions? Where are you at with this kind of stuff? The first thing that popped into my mind was whether or not it would be able to give you some non. KYC Bitcoin oh, yeah, you could easily be able to clean it up. Yeah, you could easily be able to clean it. I mean, you could have peer to peer markets with this type of stuff. Very simply, again, there's a lot of already kind of peer to peer non KYC solutions to be able to buy bitcoin. Like I mentioned, hoddle Hall off the top of the show, but there's robo sas, there's bisc, there's even just like obviously directly in person. But you could easily integrate like a chow mein ecache version or have that as an option on one of those markets and be able to exchange whatever other value for Chow me and Ecash SATS or Lightning or on Chain or whatever else people want. But yeah, obviously the interface right now is not going to be the simplest for people, but I just saw the old mate, ",timestamp:"00:16:30-00:21:14",topics:["Cashu","Chaumian Ecash"],type:"podcast",weight:42.912927374554435},{boost:0,date:1664323200,description:"Beacon for community of bitcoiners & benefits for ermployees",episode_title:"TRUBIT bringing Digital Loyalty Assets to Bitcoin - Voltage Twitter Spaces",guests:[{name:"@0xLinden",profile_picture:"https://pbs.twimg.com/profile_images/1439365331202437125/JBiXogun_400x400.jpg",ref_id:"b8bb4402-8f86-4220-9dee-0fa28ff8de72",twitter_handle:"0xLinden"},{name:"Stephen Doge",profile_picture:"https://pbs.twimg.com/profile_images/1215979900387184641/nZXkhgoP_400x400.jpg",ref_id:"076972a2-cdab-4766-8c66-618472b80772",twitter_handle:"StephenDodge20"},{name:"@617a7a",profile_picture:"https://pbs.twimg.com/profile_images/1548336437308715016/FUZFJf9k_400x400.jpg",ref_id:"148d77a5-6e95-4855-9e17-19e68f648898",twitter_handle:"617a7a"},{name:"@ian__major",profile_picture:"https://pbs.twimg.com/profile_images/1427414299169984517/Hw0ux6ie_400x400.jpg",ref_id:"7ed41a74-21a4-43a4-9a05-e977c981b6d3",twitter_handle:"ian__major"}],hosts:[{name:"@voltage_cloud",profile_picture:"https://pbs.twimg.com/profile_images/1508657900486422529/Lfa70poj_400x400.png",ref_id:"3b622187-60ce-43c2-a21f-ae749c2d961a",twitter_handle:"voltage_cloud"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=1Cn7F1Oo_6Q",node_type:"clip",pub_key:"03c7a7f42d94fdfc7a655515c1421cd1d20db090a1c24150201de0b1dc6a30b0ee",ref_id:"f10270d7-1cdc-4922-853a-1f8247750382",show_title:"Voltage",text:"Bitcoin meetups are big. But even just acknowledging that there's a lot of crypto ones and blockchain ones, and if we can kind of just show that, hey, these brands are seeing these kind of groups come to them and host events or do things at their locations that's just, again, another selling point for them. Like, hey, this is growing. Hey, this is not a fad, it's not going away. You should probably start doing something to kind of cater to again this consumer segment that's growing and you're now actively engaging with, we plan to do more of that. Yeah, I think that's one of the things that has me most excited about what you guys are offering is giving the community something to use to expand. By landing a business, you've provided a beacon for the community of Bitcoin to support them and now that business is like, okay, I see there's an asset and the rewards are a thing. It's getting some interest. Oh, I guess there's a network where I can actually transact on and then layer three, if you will, right. The community of people and how it's expanding or what kind of people it's bringing into the business. I think you get a lot of compounding effects there. So, yeah, just super excited for it. And it's kind of funny too. Just like one quick note on that. We've kind of seen a little bit and kind of didn't mean to discover it, but talking with brands was even just not only from the consumer perspective, but employees like benefits to the employees themselves for small mom and pop mid size bigger. But that's actually a pretty attractive offer for brands to attract employees and reward them. I'm sure many people are aware of internal rewards programs for doing certain things or hitting certain milestones, stuff like that, but it is kind of something we have more recently heard and seen from things as far as just employee benefits, health benefits, things like that. So kind of something we're keeping a tabs on. ",timestamp:"00:41:08-00:43:30",topics:["bitcoiner community"],type:"youtube",weight:4.831891866310001},{boost:0,date:null,description:"How to store your Bitcoin",episode_title:"Café ₿: #Bitcoin Beginner Q&A",guests:[{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Stephan Livera",profile_picture:"https://pbs.twimg.com/profile_images/1362551718110580740/v-W5Q2uo_400x400.jpg",ref_id:"72f57157-c96e-4466-8bf1-290cfe1f8a0b",twitter_handle:"stephanlivera"},{name:"Thomas J Lake",profile_picture:"https://pbs.twimg.com/profile_images/1529168328534769670/5cl2Y_k-_400x400.jpg",ref_id:"21541a47-0601-447c-99c2-312d1a63c19f",twitter_handle:"thomaslake"},{name:"Goodguy",profile_picture:"https://pbs.twimg.com/profile_images/1363216959576285185/unulY4yd_400x400.jpg",ref_id:"0c3fec75-9cc2-4c0f-8dbe-db7fae2b585b",twitter_handle:"goodguybiker"}],hosts:[{name:"Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"49966553-d55b-44c9-94ec-8fee09eee5c2",twitter_handle:"CitizenBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/35b20273-49f2-45ea-a9f4-dc479d86573c/7ae5315f-beb2-41e2-b672-65dd1f102017.mp3",node_type:"clip",pub_key:"",ref_id:"6faac813-7f72-4208-a6ea-a8f330da5d1e",show_title:"Swan.com",text:"one other thing real quick. The documentation that Sparrow has, in particular with Cold card, this is again from a boomer perspective, it is super easy to follow and it's almost conversational and step by step. And it was really easy for me to follow the Sparrow documentation when it came to integrating it with the Cold cart and spinning up the Cold card. Super easy. Can I make one small fun fact addition to this? You're not storing your Bitcoin in your hardware wallet. Your Bitcoin are safely stored in every copy of the blockchain everywhere in the world. I've got a couple of backups for you over here. What you're able to store is the private keys that nobody can recreate, that allow only the holder of the private key to spend the Bitcoin according to its rules. And what makes this kind of unique versus any other form of property that ever existed before is not only can you take custody of it, but you can back it up. So, like, if you were a gold investor and you took custody of some gold, you'd have to put it in some location. And if that location became inaccessible to you, you can't get at that gold. And it can only be in one location. You can put half of it one place half the other, but you lose half of it if that location disappears. The fact that you can back up your keys because they're just information means that you can have this self custody asset that's yours. It's not the banks, it's yours. And if you lose access to one location, you can recover it from another location or multiple locations. And that's one of the most extraordinary aspects of Bitcoin, and it's a fun fact. So I thought I'd add it because it's related to this question. Now that you're working on taking self custody, the beauty of it is you can back it up. You want to make sure nobody else gets their hands on any of your backups, but that's something you'll figure out what works best for you over time. ",timestamp:"01:20:45-01:22:43",topics:["Bitcoin hardware wallet","Bitcoin self-custody"],type:"twitter_space",weight:4.755598068237305},{boost:0,date:1671084129,description:"A quick reminder and some news on the Bitcoin Beach Show with DJSatoshi",episode_title:"The Orange Sun 🌞 Does Price = Value? #Bitcoin",guests:[{name:"ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"50023cce-8a6f-4974-ad3b-fd7a9c0abf19",twitter_handle:"ToxiKat27"},{name:"AnuragSaikia",profile_picture:"https://pbs.twimg.com/profile_images/1016367353762852864/gDL5h8jh_400x400.jpg",ref_id:"0bb60736-56c5-4964-a9c3-e881b0b313b6",twitter_handle:"AnuragSaikia"},{name:"fnicencool",profile_picture:"https://pbs.twimg.com/profile_images/1600143435775856641/uqgmtT23_400x400.jpg",ref_id:"bfef6a55-2d08-407e-b147-e04d68af7dd6",twitter_handle:"fnicencool"},{name:"MrlamilamiKosch",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"f8c8f97a-f79a-4950-8e3d-d2e94d27b3c8",twitter_handle:"MrlamilamiKosch"}],hosts:[{name:"SatoshisJournal",profile_picture:"https://pbs.twimg.com/profile_images/1518661993103859712/y_QefqVZ_400x400.jpg",ref_id:"63fac069-bfe9-49ae-b52c-1d1f226b3275",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/19874ad0-9c3f-451c-b82d-ac41de6aa3a3/62af50e6-2127-4e0d-804c-a3cec392fd0b.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"1aec7881-31ab-4c1c-9f79-800cb8379ca1",show_title:"Satoshi’s Journal",text:"Okay. The next so I just remind you guys of the bitcoin beat show that Phil, my teammate and DJ satoshi have monday through Friday at 03:00 p.m., which is 03:00 p.m. Mountain standard time. And that would be 10:00 P.m. African time. And the intent of this show is pretty fun, actually. They play some bitcoin music, literally bitcoin music. There's some awesome bitcoin music artists that have done raps and parodies and just cool songs and they all revolve around bitcoin. So today, Phil actually had a lady come on, what was her name? Tips in the ships from music. She was awesome. She came on the show and she was talking to us and then we listened to her music, her bitcoin music. So if you guys remember, monday through Friday, 03:00 p.m. Mountain standard, 10:00 p.m. Nigerian time, you can go and listen to music. And then also, what's cool about the show is it's very random. Like you don't know what you're going to listen to because basically Phil will randomly choose small snippets of bitcoin education, whether that is from Andreas Antonopoulos, Robert Breedlove, Marty Benz, you name it. You'll hear something and it'll be so random and it will catch you by surprise, but it's really cool because you just get to hear Andrea Santanopolis in 2012 or whenever it was just talking to people about bitcoin or Robert Briel, a little snippet of him talking about whatever he talked about in his podcast about bitcoin. So, yeah, you guys can check it out. Today was a pretty cool show. I think today was the third day of the show. So he'll have it Monday through Friday and it lasts. I think he's going to run it for an hour. But today's session went for like freaking oh, jeez, almost 4 hours. 3 hours and 43 minutes. But they had a good time. There was a lot of people that came in and we're talking. I saw yellow on there, I saw Tomer, I saw the Kingo, I saw Oakland, and it was pretty cool. They had a good time. ",timestamp:"00:51:49-00:54:24",topics:["Bitcoin Beach Show"],type:"twitter_space",weight:9.72359306380532},{boost:0,date:1639803600,description:"[[Bitcoin]] Shorted as a [[Hedge Fund]] Against [[Traditional Market Equity Positions]]",episode_title:"WHY ARE WE BULLISH Michael Schmidt Jeff Ross Joseph Brown Greg Foss ep224",guests:[{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Joseph Brown",profile_picture:"",ref_id:"803206b6-7b9f-48e0-a5d5-7348f6842cca",twitter_handle:""},{name:"Michael Schmidt",profile_picture:"",ref_id:"e94a106d-cbea-4b30-b0cb-3825979179ca",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/728d91e9-025d-43a7-8467-2c8d264ddf59.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/45019495/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-11-18%2Fe04d11e7-ede5-a987-e943-f3fc2482fe80.mp3",node_type:"clip",pub_key:"",ref_id:"46c0e9e5-6d49-4830-b405-6021fd365979",show_title:"BTC Sessions",text:"traditional equity markets are sick, okay? I need people to understand how sick the traditional equity markets are. Jeff Ross probably understands this better as well as anyone. The breadth or the average stock in the Nasdaq, the small cap Nasdaq stocks have given it up by 66%. Ok? This year, if you look at Jim Cramer's list of have to own stocks, they're like, it's a piece of garbage. And yet Bitcoin is hung in there in the face of futures product that all the knuckleheads in the world are shorting Bitcoin as a hedge against their equity positions. Okay? How do I know? Because I just know how much stupid money there is out there. And I know they need to short something because they're long all this other garbage that they say, Well, I can't sell my other garbage. So I might as well short something and pretend it's a hedge. Let me tell you something. Bitcoin is a long, volatility asset. And most of the fucking world has no clue what that even means. Except I'm going to tell you, it means if you are hedging short ball assets, which are equities and credit, high yield bonds, investment grade bonds, and you're hedging those short ball assets by selling along or shorting a long ball asset. You're inverted, buddy, and you're going to get crushed on the way in and crushed on the way out. And that's what the dumb money is doing in this market, because they are absolutely. They're hedged and wedged, okay? They're in a fucking shit trade, and they're trying to make that trade better by shorting something because there's an instrument out there called Bitcoin futures that they think is overpriced. They need to do some mathematics. They need to understand that they're shorting a rounding error. And by the way, they're also shorting a long ball asset. Over time, Bitcoin will become to be appreciated as insurance. And what is insurance? It's long volatility, it's short credit. The two things are exactly synonymous. So Seb, Bunny and I wrote an article that we submitted to Bitcoin magazine this week, and it's gotten some really good feedback on ",timestamp:"00:25:57-00:28:10",topics:["bitcoin","hedge fund","traditional market equity positions"],type:"podcast",weight:4.755598081860736},{boost:0,date:null,description:"Revenue stream source, business competition and model of the Bold Bitcoin credit card",episode_title:"Café ₿: Bitcoin Credit Card w/ @BoldBitcoin @John_ely_21m",guests:[{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Wicked",profile_picture:"",ref_id:"fee44016-b05f-4961-a6d8-7dac655cd931",twitter_handle:""},{name:"@BoldBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1559592705231044609/iJrNKxF9_400x400.png",ref_id:"dd4e1c4c-d111-4f01-ad95-18200d50cdb8",twitter_handle:"BoldBitcoin"},{name:"@John_ely_21m",profile_picture:"https://pbs.twimg.com/profile_images/1560444673046585346/VN8n2LtM_400x400.jpg",ref_id:"a24436b1-5992-4711-a4a5-0770546ea80a",twitter_handle:"John_Ely_21m"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7061be6d-b144-4a81-a13b-3d125e3e2812/edf29ab4-2b4b-4fdf-9998-8a9b8e9437c8.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"3b4b6a17-9995-4f90-88d0-15cfd0b53be6",show_title:"Swan.com",text:"I was wondering a couple of things. One, I may have missed it. I was wondering where your revenue streams are coming from in this process and also who you see as your competition in this industry. Yeah, thanks. The business model is pretty simple. We're not lending out your bitcoin and trying to earn a yield on that stuff. Your bitcoin is sitting on the blockchain. So the way we make money is just like a regular credit card company. We make money on your purchases, the transaction fees that go through, we get a small percentage of the transaction fees. And then also, if you do choose to carry a balance month to month and there's interest accruing on that, then we would make money off of that. But if you do pay off your credit card statement every month, there's no interest and we're not making revenue that way. So, again, one of the things I love about this company is that they've got a vision for long term, and I think that that's sort of the business model that will get us there. So, quick follow up question. Are you going to set up a system or processes where it encourages people to pay off their balance monthly, or is that just something you're leaving up to the user? Right, yeah, I think it'll be similar to a typical credit card monthly statement with an option to pay in bitcoin or pay in US dollars. The idea is we want to encourage responsible use of credit and so we want people to pay off their balances and protect their bitcoin. So, yeah, it would be sort of a monthly statement sort of scenario. Hey, John, good to see you and thanks for coming to our party in Los Angeles. And quick shout out, Alex, to you and the whole swan team on that, the Pacific Bitcoin Conference. Honestly, best days of my life. Absolutely loved that you guys killed. It unbelievable that this was your first conference ever because that was to the T. It was so professional, so onto the topic here. John, my question for you. At what point do you margin call the client? So, let's say you have $10,000 worth of bitcoin, you spent three and a half thousand, and then the price of bitcoin drops. At what point do people have to post collateral to avoid their bitcoin being? Is that called rehypothecated or? I don't know. You know what I mean? Yeah, I know what you mean. Yeah, not rehypothecated, but yeah. When do you get a margin call? So, yeah, you've got a credit limit based on the value of your bitcoin, and if you get to 80% of your credit limit, you're going to start to get margin called. Again, we are coming up with any innovative ways we can to make sure that you keep as much of your bitcoin as you possibly can. But then, yes, we do have the ability to liquidate when you get over 100% of your credit limit, and obviously we're very upfront that the price of bitcoin can drop. So you have to be careful about your spending balances. And I appreciate the question, Anders, and yes, that party was off the hook. Thank you. Thank you. Actually, just there was one question I forgot to ask you. Like, so how long time would people have to replenish with new bitcoin all paid off with Fiat? Or is that basically what you're warning as you get near that 80% loan to value and then by the time it hits that you will take the collateral, which is totally understandable, just trying to understand the product. Yes, for sure. I mean, so we're still working at details, but you can expect to have something like a two day window to deposit your bitcoin to increase your collateral so that you're not underwater. And again, I don't have any specific details, but me and the guys, we're thinking up anyways we can to make sure that this doesn't happen. Right. Again, our business model is for you to save your bitcoin, spend Fiat dollars. So we're going to make sure you guys are happy and we don't want to take your bitcoin. Right? Thank you so much, John. Thank you, Anders. And looking forward to the party in Miami and straight. Thank you. Of course, we're going bigger and better all the time, for sure. ",timestamp:"01:42:54-01:48:38",topics:["Bold Bitcoin credit card"],type:"twitter_space",weight:4.754698872566223},{boost:0,date:1590465600,description:"What is the [[geopolitics sphere]] of Bitcoin?",episode_title:"Chat 39 - Bitcoin Renaissance - with Marty Bent John Vallis Alex Gladstein Elizabeth Prefontaine Brady Swenson",guests:[{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"},{name:"Marty Bent",profile_picture:"https://pbs.twimg.com/profile_images/1362747135981199370/mSy97J12_400x400.jpg",ref_id:"655bdcb1-21c3-411c-aa24-fe7e4c7a248c",twitter_handle:"MartyBent"},{name:"John Vallis",profile_picture:"https://pbs.twimg.com/profile_images/1568743166035070976/4MyKww8A_400x400.jpg",ref_id:"c3a9fe29-3b78-4665-af54-e293e9d68962",twitter_handle:"johnkvallis"},{name:"& Brady Swenson",profile_picture:"",ref_id:"0b68a085-0680-44b8-891c-6e1e84ac4eb1",twitter_handle:""},{name:"Elizabeth Prefontaine",profile_picture:"https://pbs.twimg.com/profile_images/1382790711427354625/D09LMToL_400x400.jpg",ref_id:"4506df72-5de4-4144-abc4-011408b6b496",twitter_handle:"Eprefon"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN4002307424.mp3?updated=1627951379",node_type:"clip",pub_key:"",ref_id:"b241a91d-07ff-4169-9df8-16783be79ed1",show_title:"Bitcoin Audible",text:"The geopolitics also are really interesting because you would think that as we move forward let's say a decade, bitcoin continues to, I think, increase in value against fiat currencies governments are going to want to start to monopolize the mining businesses in their countries. It's just what they're going to try and do because they're going to have that power. Most of them, especially these dictatorships, have total monopoly over natural resources. So this will just inevitably contribute to this planetary decentralization because you're going to have all these different governments that don't agree with each other and are essentially in a cold conflict with each other, competing in a rivalry environment to mine so that they can get more bitcoin. And that could shake out where in 40 years from now, you have a very competitive framework of many different governments all sort of competing against each other. And that just kind of continues to build on bitcoin, censorship, resistance and uptime and strength. And it's just this brilliant way that I believe it will kind of unfold. It kind of takes our base worst flaws and somebody talking about with the. Rally bitcoin crew like a week ago or so. That when governments get involved. Like the more antagonistic governments are in trying to exert control over bitcoin. The stronger bitcoin becomes because you have more powerful invested interests that specifically want to either make sure they have the upper hand or make sure they have enough power to defend against the upper hand of someone else in order to play the game of the global value system. And I thought that was so crazy. Yeah, and there's going to be governments that have Manhattan Project style initiatives to get the cheapest energy possible. And who knows, a lot of it might be whether it's fission fusion, or if you just track the price of some of these renewable techs over the last 30 years, it's pretty expensive by the decade. So I agree with Marty. It's a very exciting part of bitcoin that I think will become more popular to discuss in the near future is the sort of energy geopolitics side of it. Yeah. Again, I don't know if Satoshi could receive this either, but luckily for us, like, the supply schedule so intensive in the beginning, that most bitcoins in the hands of individuals and corporations and state will be fighting over less and less bitcoin and have less economic yeah, that's. The crazy thing I always think about. They missed the boat. If governments had wanted to, they could have accumulated literally all the bitcoin and killed it early, but they didn't. And now you've got whatever it is. I think Nick Carter has some data on this, but some absurd percentage of bitcoin is not even held by regulated entities. It's in the hands of people. Some of them might be government officials or corporate leaders, but they're individually held and there's only so much more bitcoin to fight over. So there's like a couple of million bitcoin left to be mined and governments are going to fight really intensely over that remaining bitcoin. It's serious. So exciting. Marty, I love it when you recently been bringing people on to talk about this space and all the activity and following it very closely. Guys, go ahead. Again, the opportunity is massive. It's almost hard to fathom just here in North America, and it's such an easy sell. In practice, it may be harder because you got to sell people on bitcoin simultaneously. But just from an economics point of view, it seems like it would be an easy sell. It helps you meet your regulatory requirements. It reduces your cleanup cost, it subsidizes this and that. Has it been for you guys selling? Yeah, I mean, it's getting easier with the conditions of the market and the oil market specifically, people are sort of desperate to find alternative streams of revenue. Yeah, I think more people are coming around a bitcoin just naturally as it gets older. The natural gas sector, the stranded natural gas sector is really starting to come around to this. It's sort of different than what we're doing on the oil and gas fields. There's a lot of stranded natural gas reserves that are not being utilized at all that could really, with small minimal capital investments, could get bitcoin mining operations set up and start being turning into productive assets. Ever since we've sort of come publicly, we've had a bunch of people reach out to us. Guys, this is the last question, and I'm going to pose it to each of you, but I'm ",timestamp:"01:18:10-01:23:22",topics:["geopolitics sphere"],type:"podcast",weight:4.754698872566223},{boost:0,date:1675472948,description:"How Bitcoin empowers individuals",episode_title:"WHY ARE WE BULLISH? Mickey Koss, Nozomi Hayase, The Bitcoin Explorers ep320",guests:[{name:"Nozomi Hayase",profile_picture:"https://pbs.twimg.com/profile_images/1362950252823597060/i-UISQoY_400x400.jpg",ref_id:"f82d9145-3308-493d-aa13-1fc3e21b7dd4",twitter_handle:"nozomimagine"},{name:"The Bitcoin Explorers",profile_picture:"https://pbs.twimg.com/profile_images/1380933164596625408/vDK0Tf2r_400x400.jpg",ref_id:"a81905a1-3698-4c2d-b9d3-205e4b91a08f",twitter_handle:"BitcoinExplorer"},{name:"Mickey Koss",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"47e8b134-431a-40a8-8f56-21778cf6f927",twitter_handle:"MickeyKoss"}],hosts:[{name:"Ben Perrin",profile_picture:"https://pbs.twimg.com/profile_images/1181715113226596352/ipGVEcYH_400x400.jpg",ref_id:"e6b013ef-178b-4b41-95ee-423148a3dc3a",twitter_handle:"profbenperrin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/64479948/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-1-4%252F310976616-44100-2-e34c125fc6cf3.mp3",node_type:"clip",pub_key:"02545c14cbb18a61f20dd45f5e3dcbd9acae3de282369501040adce32a75311309",ref_id:"d865c803-93a1-47ae-b851-5bd6a683eda5",show_title:"BTC Sessions",text:"if you have thoughts, and then we'll go to the zombie. Yeah. So I think a lot of that story is kind of like how bitcoin empowers individual and small communities to kind of lift them up. Right? And so on the other side of that coin, the similar theme is how bitcoin lifts up societies. Right? And so I see a lot of this playing out with Brandon Quidom's pioneer species thesis. And so your story was like, business and all that, and I'm kind of thinking towards the integration of bitcoin mining and energy production, especially in Africa. Super bullish on Africa. And then we just had, I think it was the first small modular reactor in Canada. Right. And so that's kind of the new hotness in the energy space right now I see kind of this integration between bitcoin mining and energy lifting up societies in places like Africa, and then potentially even reinvigorating like the American Midwest. People call it the rust belt because they used to have so much manufacturing. If we can bring cheap and abundant energy to the world, that's a huge opportunity for everyone in society. Right. And that's what I'm really kind of excited about, in addition to, obviously the individuals and the businesses. ",timestamp:"01:06:00-01:07:22",topics:["individualism"],type:"podcast",weight:35.74698741708972},{boost:0,date:1675274375,description:"The value of a small government and Bitcoin ",episode_title:"Is Sound Money the Answer? with George Gammon (WiM268)",guests:[{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"}],hosts:[{name:"Robert Breedlove",profile_picture:"https://pbs.twimg.com/profile_images/1592020087044591616/46enYwAc_400x400.jpg",ref_id:"0ed69c56-241c-4b63-87a5-8f2157fe51a5",twitter_handle:"Breedlove22"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ca3ab815-dc2e-408a-a0c5-8bbe50270a97.jpg",keyword:!0,link:"https://cdn.simplecast.com/audio/2effec98-bec5-4728-ba08-7a86d776e682/episodes/d6e8f010-e2d5-4489-bb8e-9b7446a4795b/audio/0ad4fb89-2eda-4ad7-8432-b6be08c8ce10/default_tc.mp3?aid=rss_feed&feed=MLdpYXYI",node_type:"clip",pub_key:"03a3451db4748e483d2e1ee5d0b3a6872253253b57edf4b084a56952b432a224b3",ref_id:"61f104e1-77d8-48c4-9def-92d74cbf0d64",show_title:'The "What is Money?" Show',text:"of time left here, but I think we have enough time to go through at least one more point here, I guess. Part core, even to your argument, I think, correct me if I'm wrong, is that we should be spending the right proportion of time on educating people about the value of small government, competing in the court of public opinion, if you will, to shrink government and the right. Because it's not a panacea. Yes, and some proportion to sound money as well, which is obviously important to some extent, depending on context, et cetera, et cetera. And I agree with you there. But a thought experiment I would like to advance is that the existence of fiat currency is actually a distortion of the voting mechanism which we traditionally depend upon in a democracy to express our political preferences. Now, this example, there's a book called The Ethics of Money Production by an author named Holzman, and this is where I get this example, and he's basically making the argument that the market economy could be understood as a system that's basically catering to the needs of consumers as expressed in money payments. So the example I always like to give is if I go into the market and I buy a car, I'm actually signaling to the market economy to produce more cars, right? I'm casting a vote to specifically the car that I buy, right? If I buy a 2020 Tesla, that's what I'm telling the market to make more of. And the inverse is also true. You go and sell a house, right? You're actually signaling to the market economy to produce less houses. So it's this, it's a real kind of grassroots democratic process taking place where one unit of currency or one unit of money is equal to one vote, if you will. And when you look at the market economy through that lens, and then you consider that there's a central bank sitting in the middle of every modern market economy, that it's effectively an institution that can create its own votes. It is able to expand currency supplies and manipulate that process of consumers expressing their preferences in the marketplace and creating all the distortions that we've described today. So when you ask that question earlier, right, would you rather live in a society that believed in small government but was run on fiat currency, or live in a society that believed in big government but was run on sound money? I feel like in a society running on fiat currency, it almost doesn't matter what the democratic collective wishes are or preferences are of the majority because they can't be adequately expressed through a democratic mechanism, when in fact it's the central bank. Or I'll put in the commercial banking system that surrounds the central bank as part of this as well, they get a disproportionate amount of influence because they're effectively creating these new votes called currency units out of nothing. Or to the extent that they are creating them out of nothing, they're able to disproportionately sway the vote of the market process, let's say. So how would you wrestle with that? Because this is a bit of a rabbit hole, because if you draw this conclusion to the end, you're like, oh, well, democracy is kind of a scam. It's really about the money that creates the votes and movements in society. Democracy maybe has at least a limited effect. But I'd love to just hear what you think about that in general. Well, first I think you have to compartmentalize the Fed in the commercial banking system, because what you just described again assumes that the Fed has control, or a significant amount of control over the amount of currency units that is contributing to those votes, as you said. So if we assume for a moment that the Fed really doesn't control the amount of M two, then the Fed isn't really impacting the voting system. So then it would be the commercial banks. Right. But if the commercial banks, then assuming that they don't have a perverse incentive, which is the bill, right, there you go. Like free banking, they would lend for productive means and they would lend to businesses that would produce more goods and services because those are the entities that have the highest probability of paying them back. And so although, yes, the banking system is controlling the amount of m two amount of currency units, I think if you could eliminate or reduce the size of government, then you would have a system where that additional increase might not be optimal. But I think that's debatable. But at least it's not a massive anchor. At least it isn't extremely detrimental. And another fun thought experiment is I get the people that say, well, listen, we want a fixed M two supply, full reserve banking because we want a consistent unit of measurement. We always want to have twelve inches in a foot as an example. You hear that all the time. But I don't know that if we have 5% deflation, you're still changing the amount of inches in the foot, just like 5% inflation. I would push back on that one again a bitcoin, or would again disentangle monetary inflation from price inflation in that case. So they're advocating for integrity of the money supply, not necessarily integrity of price consistency. Right. But the initial argument is that the economy is going to function better if you always have twelve inches in a foot. Meaning that if the value of that currency unit relative to goods and services. Remains constant that's where I'm disagreeing. I don't think it's about the constancy of the relationship between the currency unit and goods and services. It's just the integrity of the money supply itself. So the less the money supply changes, the more it adequately reflects changes in the productive economy. But if you get supply that changes, obviously price changes become distorted. You don't know if it's policy or supply and demand fundamentals. Right, okay, got it. So then the argument there is that if prices are going down by 5%, even though that may be an inconsistent amount of value currency relative to goods and services, that would be optimal because that's what the free market is producing. Because that's a result of the free market and the decisions that are being made by the individuals pursuing their own self interest. I think you could summarize the argument as the money supply that changes least is best. So an ideal money supply in a bitcoin or world is a fixed money supply, so the pricing signals that money, this would be everything. The other weird thing, in a bitcoin world, there is no difference between base money and broad, all right? You could say there's lending on top of it. If you introduce full reserve with a bitcoin base layer, right? Then there could be if there's IOUs that are produced by the fiduciary correct. Or the underlying base layer, then theoretically you could have an additional amount of broad relative to base, although that base could be used as broad. Very similar to the way gold was. Yes. And the theory there is that because bitcoin is more portable, because it's sound money, you're obviously dissuaded from taking on debt because it tends to increase in purchasing power over time, and because it's hyper portable, you don't need to centralize the custody and borrow currency units on top of it, necessarily. So I think there's less of an incentive for there to be a higher proportion of broad money to base money in a bitcoin world. Like another way of saying global debt to GDP would contract ten X, perhaps from what do we have? 20 or 30%? This is what I really wanted to discuss with you as well, because I think that we've really discussed the sound money component of it, but that doesn't necessarily mean that we've discussed the bitcoin standard component of it, because there is a difference between gold being old money. And bitcoin sound money. For sure. You got it. I don't think we should crack that can of worms right now, though, because if I'm going to get you off in 2 hours, we only got about five minutes. That one will definitely ",timestamp:"01:50:29-02:00:37",topics:["Small government","Bitcoin value"],type:"podcast",weight:34.26857319961412},{boost:0,date:1663767761,description:"what is Small modular reactors ?",episode_title:"Mining Bitcoin with Nuclear Energy with Ryan MacLeod",guests:[{name:"Ryan MacLeod",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"20a72757-923c-4a01-ad4f-7ccdc2a83e03",twitter_handle:"NuclearBitcoinr"}],hosts:[{name:"Peter McCormack",profile_picture:"https://pbs.twimg.com/profile_images/1524287442307723265/_59ITDbJ_400x400.jpg",ref_id:"887a65a7-a2d8-4371-887e-bc7a6ca6ff17",twitter_handle:"PeterMcCormack"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4e607036-8fde-48ef-ab76-9c2ac4bab031.jpg",keyword:!0,link:"https://chtbl.com/track/282487/traffic.libsyn.com/secure/whatbitcoindid/WBD557_-_Ryan_Macleod.mp3",node_type:"clip",pub_key:"032ff32727b06d20a13a0a8d8dfe09d39659c16deeaffbf94d6d21ec6bb28850b6",ref_id:"ccac3748-afc5-4404-8497-1710f501f49f",show_title:"What Bitcoin Did with Peter McCormack",text:"the SMR modules, when they're created and they're approved, will that wipe out any need to build these larger reactors? Is that the death of those? Is the desired just to only have SMRs? Not necessarily. There's potentially room for all the different types. There's still, like, the UAE's just built a few large reactors. The hinkley point C's. Almost finished in the UK. I think there's the reactors in Georgia that have been taking a while, but they're almost finished taking a while, 15 years. When you say the small reactors, what is the scale compared to, like, a normal nuclear reactor? The term Small modular reactor applies to reactors that are less than 300. Conventional reactors are in like 600, 700 megawatt units, and they benefit from the economies of scale so they can have a wider customer base to share the risk of the costs with I have. No idea what that amount of power, how many people that services. So if you had one of these SMRs, how many would we need in the UK to serve 70 million people? Well, it depends because it will be locally dependent. The difference is you can build one large reactor and then all the transmission infrastructure to get it to the customers, or you can build the SMRs in hyperlocal grids too. Do you have a look at how much grid the UK grid uses? I'd love to. I guess you might have an idea of what the Canada grid uses. Is Canada have a single grid? Because it's quite it's pretty spread out. Yeah, as soon as you start getting further north, it gets pretty remote and there's a lot of off grid that depends on diesel. That's the goal of the SMR action plan for off grid, is to get remote communities off of diesel, upgrade them to nuclear with these small modular reactors. OK, but I can't imagine the construction of a small modular modular reactor is going to be cheap. But they must be like the estimated cars. The first of a kind reactors are going to be in the orders of several hundreds of millions, a few billion. But the expected cost, once the technology is mature, the cost will be cut in half because once the manufacturing facilities are built and all of the supply chains are developed and the expertise is aligned, that will significantly drive the cost down as more reactors are deployed. But yeah, getting it over those initial hurdles is going to be quite costly and require like, public private risk sharing and capital investment. So it says Greater London uses just under 40,000 gigawatt hours and it says it could be supplied by two or so, like, large nuclear power plants. Okay, so that'd be like four SMRs? Depends on the type of SMR. If you're going with a 300 megawatt unit, then yeah, but if you want to apply it to like, a small community that only needs 15 to 20 MW, you can build either a few of the really small reactors that are going to be in the ten megawatt range. Oh, you can build like tiny versions of these? Yeah, that's the thing, because we want to build some that are in the one to ten megawatt range, in the 50 to 150 megawatt range, and then like the 200 to 300 megawatt range. So we'll have a wide variety of applications that these reactors can be applied to. So the smaller ones, one to 10 MW, what kind of size geography do they need? Like a track field hockey arena. Oh, wow. Yeah, not much. Okay. And do they know the construction time or something like that? They're expecting the smaller ones to be in the orders of like one to two years and then the larger ones being like, the five years ballpark so. It'S really important to get through that regulatory process then. Absolutely, yeah. And are there enough people out there who are available to be able to work to construct these, to work at these? Is that another thing that has to be worked on to train people up? Yeah. In many jurisdictions that is the case. That's why it is being so costly to build the Hinkley reactor in the Vocal reactor in Georgia for the UK and the US markets, because they let their supply chain atrophy by not building or refurbishing any of the reactors for decades. Whereas in Canada, we are actively refurbishing our reactors right now. The Darlington has undergone refurbishment. The point, Lapro. Reactor has undergone refurbishment. Bruce reactor is currently under refurbishment. So this will extend the life of those reactors for at least another four decades. What's involved in refurbishing it is essentially using the site to put in new technology. Yeah. A lot of the parts in these reactors are interchangeable. They can just be replaced with new parts, and the pressure tubes just get replaced with fresh zirconium pressure tubes, and they replace the turbines if they need to. Just anything that's starting to show its age just gets replaced. But the core of the reactor pretty much remains unchanged. And how much time goes into refurbing a reactor, as opposed to by building one from scratch? Each reactor probably takes, like, two to three years to refurb. Yeah. Okay. And that has the advantage of sustaining our supply chain and our workforce and making sure that the industry remains robust and doesn't lose our expertise. So ",timestamp:"00:20:06-00:25:51",topics:["Small modular reactors"],type:"podcast",weight:4.754855089440576},{boost:0,date:1673187067,description:"How do micro reactors contribute to the decentralization of the energy industry?",episode_title:"@NuclearBitcoinr - Mining #bitcoin With Small Modular Nuclear Reactors. #313",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"}],hosts:[{name:"Daniel Prince",profile_picture:"https://pbs.twimg.com/profile_images/1589940494364205056/rnHs5gI3_400x400.jpg",ref_id:"df2d4d35-3e96-44ed-b1cc-cb8a714bbe30",twitter_handle:"PrinceySOV"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e1eca67b-d372-4031-bf1f-8f0ff7fe6092.jpg",keyword:!0,link:"https://anchor.fm/s/1346f9e8/podcast/play/63208295/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-0-8%252F4a07b2fe-eb1d-2c82-677e-8f2808a09536.mp3",node_type:"clip",pub_key:"02545c14cbb18a61f20dd45f5e3dcbd9acae3de282369501040adce32a75311309",ref_id:"58d095b5-4c46-4586-888c-8b56a9afd883",show_title:`Once Bitten! +}`;function WebGLShadowMap(tt,et,nt){let rt=new Frustum;const it=new Vector2,ot=new Vector2,at=new Vector4,st=new MeshDepthMaterial({depthPacking:RGBADepthPacking}),lt=new MeshDistanceMaterial,ct={},ut=nt.maxTextureSize,ht={0:BackSide,1:FrontSide,2:DoubleSide},dt=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:vertex,fragmentShader:fragment$h}),pt=dt.clone();pt.defines.HORIZONTAL_PASS=1;const mt=new BufferGeometry;mt.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const gt=new Mesh(mt,dt),yt=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=PCFShadowMap,this.render=function(kt,St,Et){if(yt.enabled===!1||yt.autoUpdate===!1&&yt.needsUpdate===!1||kt.length===0)return;const At=tt.getRenderTarget(),Tt=tt.getActiveCubeFace(),Mt=tt.getActiveMipmapLevel(),Lt=tt.state;Lt.setBlending(NoBlending),Lt.buffers.color.setClear(1,1,1,1),Lt.buffers.depth.setTest(!0),Lt.setScissorTest(!1);for(let jt=0,Rt=kt.length;jtut||it.y>ut)&&(it.x>ut&&(ot.x=Math.floor(ut/It.x),it.x=ot.x*It.x,xt.mapSize.x=ot.x),it.y>ut&&(ot.y=Math.floor(ut/It.y),it.y=ot.y*It.y,xt.mapSize.y=ot.y)),xt.map===null){const zt=this.type!==VSMShadowMap?{minFilter:NearestFilter,magFilter:NearestFilter}:{};xt.map=new WebGLRenderTarget(it.x,it.y,zt),xt.map.texture.name=$t.name+".shadowMap",xt.camera.updateProjectionMatrix()}tt.setRenderTarget(xt.map),tt.clear();const Ot=xt.getViewportCount();for(let zt=0;zt0){const Rt=Lt.uuid,$t=St.uuid;let xt=ct[Rt];xt===void 0&&(xt={},ct[Rt]=xt);let It=xt[$t];It===void 0&&(It=Lt.clone(),xt[$t]=It),Lt=It}return Lt.visible=St.visible,Lt.wireframe=St.wireframe,Mt===VSMShadowMap?Lt.side=St.shadowSide!==null?St.shadowSide:St.side:Lt.side=St.shadowSide!==null?St.shadowSide:ht[St.side],Lt.alphaMap=St.alphaMap,Lt.alphaTest=St.alphaTest,Lt.clipShadows=St.clipShadows,Lt.clippingPlanes=St.clippingPlanes,Lt.clipIntersection=St.clipIntersection,Lt.displacementMap=St.displacementMap,Lt.displacementScale=St.displacementScale,Lt.displacementBias=St.displacementBias,Lt.wireframeLinewidth=St.wireframeLinewidth,Lt.linewidth=St.linewidth,Et.isPointLight===!0&&Lt.isMeshDistanceMaterial===!0&&(Lt.referencePosition.setFromMatrixPosition(Et.matrixWorld),Lt.nearDistance=At,Lt.farDistance=Tt),Lt}function vt(kt,St,Et,At,Tt){if(kt.visible===!1)return;if(kt.layers.test(St.layers)&&(kt.isMesh||kt.isLine||kt.isPoints)&&(kt.castShadow||kt.receiveShadow&&Tt===VSMShadowMap)&&(!kt.frustumCulled||rt.intersectsObject(kt))){kt.modelViewMatrix.multiplyMatrices(Et.matrixWorldInverse,kt.matrixWorld);const jt=et.update(kt),Rt=kt.material;if(Array.isArray(Rt)){const $t=jt.groups;for(let xt=0,It=$t.length;xt=1):Ut.indexOf("OpenGL ES")!==-1&&(zt=parseFloat(/^OpenGL ES (\d)/.exec(Ut)[1]),Ot=zt>=2);let Wt=null,Ft={};const Nt=tt.getParameter(3088),Ct=tt.getParameter(2978),Ht=new Vector4().fromArray(Nt),Jt=new Vector4().fromArray(Ct);function nn(Wn,Zn,Vn){const pr=new Uint8Array(4),fr=tt.createTexture();tt.bindTexture(Wn,fr),tt.texParameteri(Wn,10241,9728),tt.texParameteri(Wn,10240,9728);for(let Er=0;ErMn||un.height>Mn)&&(Nn=Mn/Math.max(un.width,un.height)),Nn<1||rn===!0)if(typeof HTMLImageElement<"u"&&un instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&un instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&un instanceof ImageBitmap){const hn=rn?floorPowerOfTwo:Math.floor,Qt=hn(Nn*un.width),Zt=hn(Nn*un.height);gt===void 0&&(gt=wt(Qt,Zt));const wn=Sn?wt(Qt,Zt):gt;return wn.width=Qt,wn.height=Zt,wn.getContext("2d").drawImage(un,0,0,Qt,Zt),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+un.width+"x"+un.height+") to ("+Qt+"x"+Zt+")."),wn}else return"data"in un&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+un.width+"x"+un.height+")."),un;return un}function kt(un){return isPowerOfTwo(un.width)&&isPowerOfTwo(un.height)}function St(un){return st?!1:un.wrapS!==ClampToEdgeWrapping||un.wrapT!==ClampToEdgeWrapping||un.minFilter!==NearestFilter&&un.minFilter!==LinearFilter}function Et(un,rn){return un.generateMipmaps&&rn&&un.minFilter!==NearestFilter&&un.minFilter!==LinearFilter}function At(un){tt.generateMipmap(un)}function Tt(un,rn,Sn,Mn,Nn=!1){if(st===!1)return rn;if(un!==null){if(tt[un]!==void 0)return tt[un];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+un+"'")}let hn=rn;return rn===6403&&(Sn===5126&&(hn=33326),Sn===5131&&(hn=33325),Sn===5121&&(hn=33321)),rn===33319&&(Sn===5126&&(hn=33328),Sn===5131&&(hn=33327),Sn===5121&&(hn=33323)),rn===6408&&(Sn===5126&&(hn=34836),Sn===5131&&(hn=34842),Sn===5121&&(hn=Mn===sRGBEncoding&&Nn===!1?35907:32856),Sn===32819&&(hn=32854),Sn===32820&&(hn=32855)),(hn===33325||hn===33326||hn===33327||hn===33328||hn===34842||hn===34836)&&et.get("EXT_color_buffer_float"),hn}function Mt(un,rn,Sn){return Et(un,Sn)===!0||un.isFramebufferTexture&&un.minFilter!==NearestFilter&&un.minFilter!==LinearFilter?Math.log2(Math.max(rn.width,rn.height))+1:un.mipmaps!==void 0&&un.mipmaps.length>0?un.mipmaps.length:un.isCompressedTexture&&Array.isArray(un.image)?rn.mipmaps.length:1}function Lt(un){return un===NearestFilter||un===NearestMipmapNearestFilter||un===NearestMipmapLinearFilter?9728:9729}function jt(un){const rn=un.target;rn.removeEventListener("dispose",jt),$t(rn),rn.isVideoTexture&&mt.delete(rn)}function Rt(un){const rn=un.target;rn.removeEventListener("dispose",Rt),It(rn)}function $t(un){const rn=rt.get(un);if(rn.__webglInit===void 0)return;const Sn=un.source,Mn=yt.get(Sn);if(Mn){const Nn=Mn[rn.__cacheKey];Nn.usedTimes--,Nn.usedTimes===0&&xt(un),Object.keys(Mn).length===0&&yt.delete(Sn)}rt.remove(un)}function xt(un){const rn=rt.get(un);tt.deleteTexture(rn.__webglTexture);const Sn=un.source,Mn=yt.get(Sn);delete Mn[rn.__cacheKey],at.memory.textures--}function It(un){const rn=un.texture,Sn=rt.get(un),Mn=rt.get(rn);if(Mn.__webglTexture!==void 0&&(tt.deleteTexture(Mn.__webglTexture),at.memory.textures--),un.depthTexture&&un.depthTexture.dispose(),un.isWebGLCubeRenderTarget)for(let Nn=0;Nn<6;Nn++)tt.deleteFramebuffer(Sn.__webglFramebuffer[Nn]),Sn.__webglDepthbuffer&&tt.deleteRenderbuffer(Sn.__webglDepthbuffer[Nn]);else{if(tt.deleteFramebuffer(Sn.__webglFramebuffer),Sn.__webglDepthbuffer&&tt.deleteRenderbuffer(Sn.__webglDepthbuffer),Sn.__webglMultisampledFramebuffer&&tt.deleteFramebuffer(Sn.__webglMultisampledFramebuffer),Sn.__webglColorRenderbuffer)for(let Nn=0;Nn=lt&&console.warn("THREE.WebGLTextures: Trying to use "+un+" texture units while this GPU supports only "+lt),Ot+=1,un}function Wt(un){const rn=[];return rn.push(un.wrapS),rn.push(un.wrapT),rn.push(un.magFilter),rn.push(un.minFilter),rn.push(un.anisotropy),rn.push(un.internalFormat),rn.push(un.format),rn.push(un.type),rn.push(un.generateMipmaps),rn.push(un.premultiplyAlpha),rn.push(un.flipY),rn.push(un.unpackAlignment),rn.push(un.encoding),rn.join()}function Ft(un,rn){const Sn=rt.get(un);if(un.isVideoTexture&&Cn(un),un.isRenderTargetTexture===!1&&un.version>0&&Sn.__version!==un.version){const Mn=un.image;if(Mn===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Mn.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{cn(Sn,un,rn);return}}nt.activeTexture(33984+rn),nt.bindTexture(3553,Sn.__webglTexture)}function Nt(un,rn){const Sn=rt.get(un);if(un.version>0&&Sn.__version!==un.version){cn(Sn,un,rn);return}nt.activeTexture(33984+rn),nt.bindTexture(35866,Sn.__webglTexture)}function Ct(un,rn){const Sn=rt.get(un);if(un.version>0&&Sn.__version!==un.version){cn(Sn,un,rn);return}nt.activeTexture(33984+rn),nt.bindTexture(32879,Sn.__webglTexture)}function Ht(un,rn){const Sn=rt.get(un);if(un.version>0&&Sn.__version!==un.version){_n(Sn,un,rn);return}nt.activeTexture(33984+rn),nt.bindTexture(34067,Sn.__webglTexture)}const Jt={[RepeatWrapping]:10497,[ClampToEdgeWrapping]:33071,[MirroredRepeatWrapping]:33648},nn={[NearestFilter]:9728,[NearestMipmapNearestFilter]:9984,[NearestMipmapLinearFilter]:9986,[LinearFilter]:9729,[LinearMipmapNearestFilter]:9985,[LinearMipmapLinearFilter]:9987};function Yt(un,rn,Sn){if(Sn?(tt.texParameteri(un,10242,Jt[rn.wrapS]),tt.texParameteri(un,10243,Jt[rn.wrapT]),(un===32879||un===35866)&&tt.texParameteri(un,32882,Jt[rn.wrapR]),tt.texParameteri(un,10240,nn[rn.magFilter]),tt.texParameteri(un,10241,nn[rn.minFilter])):(tt.texParameteri(un,10242,33071),tt.texParameteri(un,10243,33071),(un===32879||un===35866)&&tt.texParameteri(un,32882,33071),(rn.wrapS!==ClampToEdgeWrapping||rn.wrapT!==ClampToEdgeWrapping)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),tt.texParameteri(un,10240,Lt(rn.magFilter)),tt.texParameteri(un,10241,Lt(rn.minFilter)),rn.minFilter!==NearestFilter&&rn.minFilter!==LinearFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),et.has("EXT_texture_filter_anisotropic")===!0){const Mn=et.get("EXT_texture_filter_anisotropic");if(rn.type===FloatType&&et.has("OES_texture_float_linear")===!1||st===!1&&rn.type===HalfFloatType&&et.has("OES_texture_half_float_linear")===!1)return;(rn.anisotropy>1||rt.get(rn).__currentAnisotropy)&&(tt.texParameterf(un,Mn.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(rn.anisotropy,it.getMaxAnisotropy())),rt.get(rn).__currentAnisotropy=rn.anisotropy)}}function fn(un,rn){let Sn=!1;un.__webglInit===void 0&&(un.__webglInit=!0,rn.addEventListener("dispose",jt));const Mn=rn.source;let Nn=yt.get(Mn);Nn===void 0&&(Nn={},yt.set(Mn,Nn));const hn=Wt(rn);if(hn!==un.__cacheKey){Nn[hn]===void 0&&(Nn[hn]={texture:tt.createTexture(),usedTimes:0},at.memory.textures++,Sn=!0),Nn[hn].usedTimes++;const Qt=Nn[un.__cacheKey];Qt!==void 0&&(Nn[un.__cacheKey].usedTimes--,Qt.usedTimes===0&&xt(rn)),un.__cacheKey=hn,un.__webglTexture=Nn[hn].texture}return Sn}function cn(un,rn,Sn){let Mn=3553;rn.isDataArrayTexture&&(Mn=35866),rn.isData3DTexture&&(Mn=32879);const Nn=fn(un,rn),hn=rn.source;if(nt.activeTexture(33984+Sn),nt.bindTexture(Mn,un.__webglTexture),hn.version!==hn.__currentVersion||Nn===!0){tt.pixelStorei(37440,rn.flipY),tt.pixelStorei(37441,rn.premultiplyAlpha),tt.pixelStorei(3317,rn.unpackAlignment),tt.pixelStorei(37443,0);const Qt=St(rn)&&kt(rn.image)===!1;let Zt=vt(rn.image,Qt,!1,ut);Zt=$n(rn,Zt);const wn=kt(Zt)||st,On=ot.convert(rn.format,rn.encoding);let jn=ot.convert(rn.type),Un=Tt(rn.internalFormat,On,jn,rn.encoding,rn.isVideoTexture);Yt(Mn,rn,wn);let tr;const qn=rn.mipmaps,Xn=st&&rn.isVideoTexture!==!0,Wn=hn.__currentVersion===void 0||Nn===!0,Zn=Mt(rn,Zt,wn);if(rn.isDepthTexture)Un=6402,st?rn.type===FloatType?Un=36012:rn.type===UnsignedIntType?Un=33190:rn.type===UnsignedInt248Type?Un=35056:Un=33189:rn.type===FloatType&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),rn.format===DepthFormat&&Un===6402&&rn.type!==UnsignedShortType&&rn.type!==UnsignedIntType&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),rn.type=UnsignedIntType,jn=ot.convert(rn.type)),rn.format===DepthStencilFormat&&Un===6402&&(Un=34041,rn.type!==UnsignedInt248Type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),rn.type=UnsignedInt248Type,jn=ot.convert(rn.type))),Wn&&(Xn?nt.texStorage2D(3553,1,Un,Zt.width,Zt.height):nt.texImage2D(3553,0,Un,Zt.width,Zt.height,0,On,jn,null));else if(rn.isDataTexture)if(qn.length>0&&wn){Xn&&Wn&&nt.texStorage2D(3553,Zn,Un,qn[0].width,qn[0].height);for(let Vn=0,pr=qn.length;Vn>=1,pr>>=1}}else if(qn.length>0&&wn){Xn&&Wn&&nt.texStorage2D(3553,Zn,Un,qn[0].width,qn[0].height);for(let Vn=0,pr=qn.length;Vn0&&Wn++,nt.texStorage2D(34067,Wn,tr,Zt[0].width,Zt[0].height));for(let Vn=0;Vn<6;Vn++)if(Qt){qn?nt.texSubImage2D(34069+Vn,0,0,0,Zt[Vn].width,Zt[Vn].height,jn,Un,Zt[Vn].data):nt.texImage2D(34069+Vn,0,tr,Zt[Vn].width,Zt[Vn].height,0,jn,Un,Zt[Vn].data);for(let pr=0;pr0&&gn(un)===!1){const Zt=hn?rn:[rn];Sn.__webglMultisampledFramebuffer=tt.createFramebuffer(),Sn.__webglColorRenderbuffer=[],nt.bindFramebuffer(36160,Sn.__webglMultisampledFramebuffer);for(let wn=0;wn0&&gn(un)===!1){const rn=un.isWebGLMultipleRenderTargets?un.texture:[un.texture],Sn=un.width,Mn=un.height;let Nn=16384;const hn=[],Qt=un.stencilBuffer?33306:36096,Zt=rt.get(un),wn=un.isWebGLMultipleRenderTargets===!0;if(wn)for(let On=0;On0&&et.has("WEBGL_multisampled_render_to_texture")===!0&&rn.__useRenderToTexture!==!1}function Cn(un){const rn=at.render.frame;mt.get(un)!==rn&&(mt.set(un,rn),un.update())}function $n(un,rn){const Sn=un.encoding,Mn=un.format,Nn=un.type;return un.isCompressedTexture===!0||un.isVideoTexture===!0||un.format===_SRGBAFormat||Sn!==LinearEncoding&&(Sn===sRGBEncoding?st===!1?et.has("EXT_sRGB")===!0&&Mn===RGBAFormat?(un.format=_SRGBAFormat,un.minFilter=LinearFilter,un.generateMipmaps=!1):rn=ImageUtils.sRGBToLinear(rn):(Mn!==RGBAFormat||Nn!==UnsignedByteType)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",Sn)),rn}this.allocateTextureUnit=Ut,this.resetTextureUnits=zt,this.setTexture2D=Ft,this.setTexture2DArray=Nt,this.setTexture3D=Ct,this.setTextureCube=Ht,this.rebindTextures=Rn,this.setupRenderTarget=An,this.updateRenderTargetMipmap=yn,this.updateMultisampleRenderTarget=kn,this.setupDepthRenderbuffer=Tn,this.setupFrameBufferTexture=En,this.useMultisampledRTT=gn}function WebGLUtils(tt,et,nt){const rt=nt.isWebGL2;function it(ot,at=null){let st;if(ot===UnsignedByteType)return 5121;if(ot===UnsignedShort4444Type)return 32819;if(ot===UnsignedShort5551Type)return 32820;if(ot===ByteType)return 5120;if(ot===ShortType)return 5122;if(ot===UnsignedShortType)return 5123;if(ot===IntType)return 5124;if(ot===UnsignedIntType)return 5125;if(ot===FloatType)return 5126;if(ot===HalfFloatType)return rt?5131:(st=et.get("OES_texture_half_float"),st!==null?st.HALF_FLOAT_OES:null);if(ot===AlphaFormat)return 6406;if(ot===RGBAFormat)return 6408;if(ot===LuminanceFormat)return 6409;if(ot===LuminanceAlphaFormat)return 6410;if(ot===DepthFormat)return 6402;if(ot===DepthStencilFormat)return 34041;if(ot===RedFormat)return 6403;if(ot===RGBFormat)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(ot===_SRGBAFormat)return st=et.get("EXT_sRGB"),st!==null?st.SRGB_ALPHA_EXT:null;if(ot===RedIntegerFormat)return 36244;if(ot===RGFormat)return 33319;if(ot===RGIntegerFormat)return 33320;if(ot===RGBAIntegerFormat)return 36249;if(ot===RGB_S3TC_DXT1_Format||ot===RGBA_S3TC_DXT1_Format||ot===RGBA_S3TC_DXT3_Format||ot===RGBA_S3TC_DXT5_Format)if(at===sRGBEncoding)if(st=et.get("WEBGL_compressed_texture_s3tc_srgb"),st!==null){if(ot===RGB_S3TC_DXT1_Format)return st.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(ot===RGBA_S3TC_DXT1_Format)return st.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(ot===RGBA_S3TC_DXT3_Format)return st.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(ot===RGBA_S3TC_DXT5_Format)return st.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(st=et.get("WEBGL_compressed_texture_s3tc"),st!==null){if(ot===RGB_S3TC_DXT1_Format)return st.COMPRESSED_RGB_S3TC_DXT1_EXT;if(ot===RGBA_S3TC_DXT1_Format)return st.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(ot===RGBA_S3TC_DXT3_Format)return st.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(ot===RGBA_S3TC_DXT5_Format)return st.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(ot===RGB_PVRTC_4BPPV1_Format||ot===RGB_PVRTC_2BPPV1_Format||ot===RGBA_PVRTC_4BPPV1_Format||ot===RGBA_PVRTC_2BPPV1_Format)if(st=et.get("WEBGL_compressed_texture_pvrtc"),st!==null){if(ot===RGB_PVRTC_4BPPV1_Format)return st.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(ot===RGB_PVRTC_2BPPV1_Format)return st.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(ot===RGBA_PVRTC_4BPPV1_Format)return st.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(ot===RGBA_PVRTC_2BPPV1_Format)return st.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(ot===RGB_ETC1_Format)return st=et.get("WEBGL_compressed_texture_etc1"),st!==null?st.COMPRESSED_RGB_ETC1_WEBGL:null;if(ot===RGB_ETC2_Format||ot===RGBA_ETC2_EAC_Format)if(st=et.get("WEBGL_compressed_texture_etc"),st!==null){if(ot===RGB_ETC2_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ETC2:st.COMPRESSED_RGB8_ETC2;if(ot===RGBA_ETC2_EAC_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:st.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(ot===RGBA_ASTC_4x4_Format||ot===RGBA_ASTC_5x4_Format||ot===RGBA_ASTC_5x5_Format||ot===RGBA_ASTC_6x5_Format||ot===RGBA_ASTC_6x6_Format||ot===RGBA_ASTC_8x5_Format||ot===RGBA_ASTC_8x6_Format||ot===RGBA_ASTC_8x8_Format||ot===RGBA_ASTC_10x5_Format||ot===RGBA_ASTC_10x6_Format||ot===RGBA_ASTC_10x8_Format||ot===RGBA_ASTC_10x10_Format||ot===RGBA_ASTC_12x10_Format||ot===RGBA_ASTC_12x12_Format)if(st=et.get("WEBGL_compressed_texture_astc"),st!==null){if(ot===RGBA_ASTC_4x4_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:st.COMPRESSED_RGBA_ASTC_4x4_KHR;if(ot===RGBA_ASTC_5x4_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:st.COMPRESSED_RGBA_ASTC_5x4_KHR;if(ot===RGBA_ASTC_5x5_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:st.COMPRESSED_RGBA_ASTC_5x5_KHR;if(ot===RGBA_ASTC_6x5_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:st.COMPRESSED_RGBA_ASTC_6x5_KHR;if(ot===RGBA_ASTC_6x6_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:st.COMPRESSED_RGBA_ASTC_6x6_KHR;if(ot===RGBA_ASTC_8x5_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:st.COMPRESSED_RGBA_ASTC_8x5_KHR;if(ot===RGBA_ASTC_8x6_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:st.COMPRESSED_RGBA_ASTC_8x6_KHR;if(ot===RGBA_ASTC_8x8_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:st.COMPRESSED_RGBA_ASTC_8x8_KHR;if(ot===RGBA_ASTC_10x5_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:st.COMPRESSED_RGBA_ASTC_10x5_KHR;if(ot===RGBA_ASTC_10x6_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:st.COMPRESSED_RGBA_ASTC_10x6_KHR;if(ot===RGBA_ASTC_10x8_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:st.COMPRESSED_RGBA_ASTC_10x8_KHR;if(ot===RGBA_ASTC_10x10_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:st.COMPRESSED_RGBA_ASTC_10x10_KHR;if(ot===RGBA_ASTC_12x10_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:st.COMPRESSED_RGBA_ASTC_12x10_KHR;if(ot===RGBA_ASTC_12x12_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:st.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(ot===RGBA_BPTC_Format)if(st=et.get("EXT_texture_compression_bptc"),st!==null){if(ot===RGBA_BPTC_Format)return at===sRGBEncoding?st.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:st.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;return ot===UnsignedInt248Type?rt?34042:(st=et.get("WEBGL_depth_texture"),st!==null?st.UNSIGNED_INT_24_8_WEBGL:null):tt[ot]!==void 0?tt[ot]:null}return{convert:it}}class ArrayCamera extends PerspectiveCamera{constructor(et=[]){super(),this.isArrayCamera=!0,this.cameras=et}}class Group extends Object3D{constructor(){super(),this.isGroup=!0,this.type="Group"}}const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Vector3),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Vector3),this._grip}dispatchEvent(et){return this._targetRay!==null&&this._targetRay.dispatchEvent(et),this._grip!==null&&this._grip.dispatchEvent(et),this._hand!==null&&this._hand.dispatchEvent(et),this}disconnect(et){return this.dispatchEvent({type:"disconnected",data:et}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(et,nt,rt){let it=null,ot=null,at=null;const st=this._targetRay,lt=this._grip,ct=this._hand;if(et&&nt.session.visibilityState!=="visible-blurred"){if(ct&&et.hand){at=!0;for(const gt of et.hand.values()){const yt=nt.getJointPose(gt,rt);if(ct.joints[gt.jointName]===void 0){const wt=new Group;wt.matrixAutoUpdate=!1,wt.visible=!1,ct.joints[gt.jointName]=wt,ct.add(wt)}const bt=ct.joints[gt.jointName];yt!==null&&(bt.matrix.fromArray(yt.transform.matrix),bt.matrix.decompose(bt.position,bt.rotation,bt.scale),bt.jointRadius=yt.radius),bt.visible=yt!==null}const ut=ct.joints["index-finger-tip"],ht=ct.joints["thumb-tip"],dt=ut.position.distanceTo(ht.position),pt=.02,mt=.005;ct.inputState.pinching&&dt>pt+mt?(ct.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:et.handedness,target:this})):!ct.inputState.pinching&&dt<=pt-mt&&(ct.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:et.handedness,target:this}))}else lt!==null&&et.gripSpace&&(ot=nt.getPose(et.gripSpace,rt),ot!==null&&(lt.matrix.fromArray(ot.transform.matrix),lt.matrix.decompose(lt.position,lt.rotation,lt.scale),ot.linearVelocity?(lt.hasLinearVelocity=!0,lt.linearVelocity.copy(ot.linearVelocity)):lt.hasLinearVelocity=!1,ot.angularVelocity?(lt.hasAngularVelocity=!0,lt.angularVelocity.copy(ot.angularVelocity)):lt.hasAngularVelocity=!1));st!==null&&(it=nt.getPose(et.targetRaySpace,rt),it===null&&ot!==null&&(it=ot),it!==null&&(st.matrix.fromArray(it.transform.matrix),st.matrix.decompose(st.position,st.rotation,st.scale),it.linearVelocity?(st.hasLinearVelocity=!0,st.linearVelocity.copy(it.linearVelocity)):st.hasLinearVelocity=!1,it.angularVelocity?(st.hasAngularVelocity=!0,st.angularVelocity.copy(it.angularVelocity)):st.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent)))}return st!==null&&(st.visible=it!==null),lt!==null&&(lt.visible=ot!==null),ct!==null&&(ct.visible=at!==null),this}}class DepthTexture extends Texture{constructor(et,nt,rt,it,ot,at,st,lt,ct,ut){if(ut=ut!==void 0?ut:DepthFormat,ut!==DepthFormat&&ut!==DepthStencilFormat)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");rt===void 0&&ut===DepthFormat&&(rt=UnsignedIntType),rt===void 0&&ut===DepthStencilFormat&&(rt=UnsignedInt248Type),super(null,it,ot,at,st,lt,ut,rt,ct),this.isDepthTexture=!0,this.image={width:et,height:nt},this.magFilter=st!==void 0?st:NearestFilter,this.minFilter=lt!==void 0?lt:NearestFilter,this.flipY=!1,this.generateMipmaps=!1}}class WebXRManager extends EventDispatcher$1{constructor(et,nt){super();const rt=this;let it=null,ot=1,at=null,st="local-floor",lt=null,ct=null,ut=null,ht=null,dt=null,pt=null;const mt=nt.getContextAttributes();let gt=null,yt=null;const bt=[],wt=[],vt=new PerspectiveCamera;vt.layers.enable(1),vt.viewport=new Vector4;const kt=new PerspectiveCamera;kt.layers.enable(2),kt.viewport=new Vector4;const St=[vt,kt],Et=new ArrayCamera;Et.layers.enable(1),Et.layers.enable(2);let At=null,Tt=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Wt){let Ft=bt[Wt];return Ft===void 0&&(Ft=new WebXRController,bt[Wt]=Ft),Ft.getTargetRaySpace()},this.getControllerGrip=function(Wt){let Ft=bt[Wt];return Ft===void 0&&(Ft=new WebXRController,bt[Wt]=Ft),Ft.getGripSpace()},this.getHand=function(Wt){let Ft=bt[Wt];return Ft===void 0&&(Ft=new WebXRController,bt[Wt]=Ft),Ft.getHandSpace()};function Mt(Wt){const Ft=wt.indexOf(Wt.inputSource);if(Ft===-1)return;const Nt=bt[Ft];Nt!==void 0&&Nt.dispatchEvent({type:Wt.type,data:Wt.inputSource})}function Lt(){it.removeEventListener("select",Mt),it.removeEventListener("selectstart",Mt),it.removeEventListener("selectend",Mt),it.removeEventListener("squeeze",Mt),it.removeEventListener("squeezestart",Mt),it.removeEventListener("squeezeend",Mt),it.removeEventListener("end",Lt),it.removeEventListener("inputsourceschange",jt);for(let Wt=0;Wt=0&&(wt[Ct]=null,bt[Ct].dispatchEvent({type:"disconnected",data:Nt}))}for(let Ft=0;Ft=wt.length){wt.push(Nt),Ct=Jt;break}else if(wt[Jt]===null){wt[Jt]=Nt,Ct=Jt;break}if(Ct===-1)break}const Ht=bt[Ct];Ht&&Ht.dispatchEvent({type:"connected",data:Nt})}}const Rt=new Vector3,$t=new Vector3;function xt(Wt,Ft,Nt){Rt.setFromMatrixPosition(Ft.matrixWorld),$t.setFromMatrixPosition(Nt.matrixWorld);const Ct=Rt.distanceTo($t),Ht=Ft.projectionMatrix.elements,Jt=Nt.projectionMatrix.elements,nn=Ht[14]/(Ht[10]-1),Yt=Ht[14]/(Ht[10]+1),fn=(Ht[9]+1)/Ht[5],cn=(Ht[9]-1)/Ht[5],_n=(Ht[8]-1)/Ht[0],En=(Jt[8]+1)/Jt[0],an=nn*_n,en=nn*En,Tn=Ct/(-_n+En),Rn=Tn*-_n;Ft.matrixWorld.decompose(Wt.position,Wt.quaternion,Wt.scale),Wt.translateX(Rn),Wt.translateZ(Tn),Wt.matrixWorld.compose(Wt.position,Wt.quaternion,Wt.scale),Wt.matrixWorldInverse.copy(Wt.matrixWorld).invert();const An=nn+Tn,yn=Yt+Tn,kn=an-Rn,dn=en+(Ct-Rn),gn=fn*Yt/yn*An,Cn=cn*Yt/yn*An;Wt.projectionMatrix.makePerspective(kn,dn,gn,Cn,An,yn)}function It(Wt,Ft){Ft===null?Wt.matrixWorld.copy(Wt.matrix):Wt.matrixWorld.multiplyMatrices(Ft.matrixWorld,Wt.matrix),Wt.matrixWorldInverse.copy(Wt.matrixWorld).invert()}this.updateCamera=function(Wt){if(it===null)return;Et.near=kt.near=vt.near=Wt.near,Et.far=kt.far=vt.far=Wt.far,(At!==Et.near||Tt!==Et.far)&&(it.updateRenderState({depthNear:Et.near,depthFar:Et.far}),At=Et.near,Tt=Et.far);const Ft=Wt.parent,Nt=Et.cameras;It(Et,Ft);for(let Ht=0;Ht0&&(gt.alphaTest.value=yt.alphaTest);const bt=et.get(yt).envMap;if(bt&&(gt.envMap.value=bt,gt.flipEnvMap.value=bt.isCubeTexture&&bt.isRenderTargetTexture===!1?-1:1,gt.reflectivity.value=yt.reflectivity,gt.ior.value=yt.ior,gt.refractionRatio.value=yt.refractionRatio),yt.lightMap){gt.lightMap.value=yt.lightMap;const kt=tt.physicallyCorrectLights!==!0?Math.PI:1;gt.lightMapIntensity.value=yt.lightMapIntensity*kt}yt.aoMap&&(gt.aoMap.value=yt.aoMap,gt.aoMapIntensity.value=yt.aoMapIntensity);let wt;yt.map?wt=yt.map:yt.specularMap?wt=yt.specularMap:yt.displacementMap?wt=yt.displacementMap:yt.normalMap?wt=yt.normalMap:yt.bumpMap?wt=yt.bumpMap:yt.roughnessMap?wt=yt.roughnessMap:yt.metalnessMap?wt=yt.metalnessMap:yt.alphaMap?wt=yt.alphaMap:yt.emissiveMap?wt=yt.emissiveMap:yt.clearcoatMap?wt=yt.clearcoatMap:yt.clearcoatNormalMap?wt=yt.clearcoatNormalMap:yt.clearcoatRoughnessMap?wt=yt.clearcoatRoughnessMap:yt.iridescenceMap?wt=yt.iridescenceMap:yt.iridescenceThicknessMap?wt=yt.iridescenceThicknessMap:yt.specularIntensityMap?wt=yt.specularIntensityMap:yt.specularColorMap?wt=yt.specularColorMap:yt.transmissionMap?wt=yt.transmissionMap:yt.thicknessMap?wt=yt.thicknessMap:yt.sheenColorMap?wt=yt.sheenColorMap:yt.sheenRoughnessMap&&(wt=yt.sheenRoughnessMap),wt!==void 0&&(wt.isWebGLRenderTarget&&(wt=wt.texture),wt.matrixAutoUpdate===!0&&wt.updateMatrix(),gt.uvTransform.value.copy(wt.matrix));let vt;yt.aoMap?vt=yt.aoMap:yt.lightMap&&(vt=yt.lightMap),vt!==void 0&&(vt.isWebGLRenderTarget&&(vt=vt.texture),vt.matrixAutoUpdate===!0&&vt.updateMatrix(),gt.uv2Transform.value.copy(vt.matrix))}function ot(gt,yt){gt.diffuse.value.copy(yt.color),gt.opacity.value=yt.opacity}function at(gt,yt){gt.dashSize.value=yt.dashSize,gt.totalSize.value=yt.dashSize+yt.gapSize,gt.scale.value=yt.scale}function st(gt,yt,bt,wt){gt.diffuse.value.copy(yt.color),gt.opacity.value=yt.opacity,gt.size.value=yt.size*bt,gt.scale.value=wt*.5,yt.map&&(gt.map.value=yt.map),yt.alphaMap&&(gt.alphaMap.value=yt.alphaMap),yt.alphaTest>0&&(gt.alphaTest.value=yt.alphaTest);let vt;yt.map?vt=yt.map:yt.alphaMap&&(vt=yt.alphaMap),vt!==void 0&&(vt.matrixAutoUpdate===!0&&vt.updateMatrix(),gt.uvTransform.value.copy(vt.matrix))}function lt(gt,yt){gt.diffuse.value.copy(yt.color),gt.opacity.value=yt.opacity,gt.rotation.value=yt.rotation,yt.map&&(gt.map.value=yt.map),yt.alphaMap&&(gt.alphaMap.value=yt.alphaMap),yt.alphaTest>0&&(gt.alphaTest.value=yt.alphaTest);let bt;yt.map?bt=yt.map:yt.alphaMap&&(bt=yt.alphaMap),bt!==void 0&&(bt.matrixAutoUpdate===!0&&bt.updateMatrix(),gt.uvTransform.value.copy(bt.matrix))}function ct(gt,yt){gt.specular.value.copy(yt.specular),gt.shininess.value=Math.max(yt.shininess,1e-4)}function ut(gt,yt){yt.gradientMap&&(gt.gradientMap.value=yt.gradientMap)}function ht(gt,yt){gt.roughness.value=yt.roughness,gt.metalness.value=yt.metalness,yt.roughnessMap&&(gt.roughnessMap.value=yt.roughnessMap),yt.metalnessMap&&(gt.metalnessMap.value=yt.metalnessMap),et.get(yt).envMap&&(gt.envMapIntensity.value=yt.envMapIntensity)}function dt(gt,yt,bt){gt.ior.value=yt.ior,yt.sheen>0&&(gt.sheenColor.value.copy(yt.sheenColor).multiplyScalar(yt.sheen),gt.sheenRoughness.value=yt.sheenRoughness,yt.sheenColorMap&&(gt.sheenColorMap.value=yt.sheenColorMap),yt.sheenRoughnessMap&&(gt.sheenRoughnessMap.value=yt.sheenRoughnessMap)),yt.clearcoat>0&&(gt.clearcoat.value=yt.clearcoat,gt.clearcoatRoughness.value=yt.clearcoatRoughness,yt.clearcoatMap&&(gt.clearcoatMap.value=yt.clearcoatMap),yt.clearcoatRoughnessMap&&(gt.clearcoatRoughnessMap.value=yt.clearcoatRoughnessMap),yt.clearcoatNormalMap&&(gt.clearcoatNormalScale.value.copy(yt.clearcoatNormalScale),gt.clearcoatNormalMap.value=yt.clearcoatNormalMap,yt.side===BackSide&>.clearcoatNormalScale.value.negate())),yt.iridescence>0&&(gt.iridescence.value=yt.iridescence,gt.iridescenceIOR.value=yt.iridescenceIOR,gt.iridescenceThicknessMinimum.value=yt.iridescenceThicknessRange[0],gt.iridescenceThicknessMaximum.value=yt.iridescenceThicknessRange[1],yt.iridescenceMap&&(gt.iridescenceMap.value=yt.iridescenceMap),yt.iridescenceThicknessMap&&(gt.iridescenceThicknessMap.value=yt.iridescenceThicknessMap)),yt.transmission>0&&(gt.transmission.value=yt.transmission,gt.transmissionSamplerMap.value=bt.texture,gt.transmissionSamplerSize.value.set(bt.width,bt.height),yt.transmissionMap&&(gt.transmissionMap.value=yt.transmissionMap),gt.thickness.value=yt.thickness,yt.thicknessMap&&(gt.thicknessMap.value=yt.thicknessMap),gt.attenuationDistance.value=yt.attenuationDistance,gt.attenuationColor.value.copy(yt.attenuationColor)),gt.specularIntensity.value=yt.specularIntensity,gt.specularColor.value.copy(yt.specularColor),yt.specularIntensityMap&&(gt.specularIntensityMap.value=yt.specularIntensityMap),yt.specularColorMap&&(gt.specularColorMap.value=yt.specularColorMap)}function pt(gt,yt){yt.matcap&&(gt.matcap.value=yt.matcap)}function mt(gt,yt){gt.referencePosition.value.copy(yt.referencePosition),gt.nearDistance.value=yt.nearDistance,gt.farDistance.value=yt.farDistance}return{refreshFogUniforms:nt,refreshMaterialUniforms:rt}}function WebGLUniformsGroups(tt,et,nt,rt){let it={},ot={},at=[];const st=nt.isWebGL2?tt.getParameter(35375):0;function lt(wt,vt){const kt=vt.program;rt.uniformBlockBinding(wt,kt)}function ct(wt,vt){let kt=it[wt.id];kt===void 0&&(mt(wt),kt=ut(wt),it[wt.id]=kt,wt.addEventListener("dispose",yt));const St=vt.program;rt.updateUBOMapping(wt,St);const Et=et.render.frame;ot[wt.id]!==Et&&(dt(wt),ot[wt.id]=Et)}function ut(wt){const vt=ht();wt.__bindingPointIndex=vt;const kt=tt.createBuffer(),St=wt.__size,Et=wt.usage;return tt.bindBuffer(35345,kt),tt.bufferData(35345,St,Et),tt.bindBuffer(35345,null),tt.bindBufferBase(35345,vt,kt),kt}function ht(){for(let wt=0;wt0){Et=kt%St;const jt=St-Et;Et!==0&&jt-Lt.boundary<0&&(kt+=St-Et,Mt.__offset=kt)}kt+=Lt.storage}return Et=kt%St,Et>0&&(kt+=St-Et),wt.__size=kt,wt.__cache={},this}function gt(wt){const vt=wt.value,kt={boundary:0,storage:0};return typeof vt=="number"?(kt.boundary=4,kt.storage=4):vt.isVector2?(kt.boundary=8,kt.storage=8):vt.isVector3||vt.isColor?(kt.boundary=16,kt.storage=12):vt.isVector4?(kt.boundary=16,kt.storage=16):vt.isMatrix3?(kt.boundary=48,kt.storage=48):vt.isMatrix4?(kt.boundary=64,kt.storage=64):vt.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",vt),kt}function yt(wt){const vt=wt.target;vt.removeEventListener("dispose",yt);const kt=at.indexOf(vt.__bindingPointIndex);at.splice(kt,1),tt.deleteBuffer(it[vt.id]),delete it[vt.id],delete ot[vt.id]}function bt(){for(const wt in it)tt.deleteBuffer(it[wt]);at=[],it={},ot={}}return{bind:lt,update:ct,dispose:bt}}function createCanvasElement(){const tt=createElementNS("canvas");return tt.style.display="block",tt}function WebGLRenderer(tt={}){this.isWebGLRenderer=!0;const et=tt.canvas!==void 0?tt.canvas:createCanvasElement(),nt=tt.context!==void 0?tt.context:null,rt=tt.depth!==void 0?tt.depth:!0,it=tt.stencil!==void 0?tt.stencil:!0,ot=tt.antialias!==void 0?tt.antialias:!1,at=tt.premultipliedAlpha!==void 0?tt.premultipliedAlpha:!0,st=tt.preserveDrawingBuffer!==void 0?tt.preserveDrawingBuffer:!1,lt=tt.powerPreference!==void 0?tt.powerPreference:"default",ct=tt.failIfMajorPerformanceCaveat!==void 0?tt.failIfMajorPerformanceCaveat:!1;let ut;nt!==null?ut=nt.getContextAttributes().alpha:ut=tt.alpha!==void 0?tt.alpha:!1;let ht=null,dt=null;const pt=[],mt=[];this.domElement=et,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=LinearEncoding,this.physicallyCorrectLights=!1,this.toneMapping=NoToneMapping,this.toneMappingExposure=1,Object.defineProperties(this,{gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}});const gt=this;let yt=!1,bt=0,wt=0,vt=null,kt=-1,St=null;const Et=new Vector4,At=new Vector4;let Tt=null,Mt=et.width,Lt=et.height,jt=1,Rt=null,$t=null;const xt=new Vector4(0,0,Mt,Lt),It=new Vector4(0,0,Mt,Lt);let Ot=!1;const zt=new Frustum;let Ut=!1,Wt=!1,Ft=null;const Nt=new Matrix4,Ct=new Vector2,Ht=new Vector3,Jt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function nn(){return vt===null?jt:1}let Yt=nt;function fn(sn,Xt){for(let xn=0;xn0?dt=mt[mt.length-1]:dt=null,pt.pop(),pt.length>0?ht=pt[pt.length-1]:ht=null};function Rr(sn,Xt,xn,Dn){if(sn.visible===!1)return;if(sn.layers.test(Xt.layers)){if(sn.isGroup)xn=sn.renderOrder;else if(sn.isLOD)sn.autoUpdate===!0&&sn.update(Xt);else if(sn.isLight)dt.pushLight(sn),sn.castShadow&&dt.pushShadow(sn);else if(sn.isSprite){if(!sn.frustumCulled||zt.intersectsSprite(sn)){Dn&&Ht.setFromMatrixPosition(sn.matrixWorld).applyMatrix4(Nt);const nr=dn.update(sn),lr=sn.material;lr.visible&&ht.push(sn,nr,lr,xn,Ht.z,null)}}else if((sn.isMesh||sn.isLine||sn.isPoints)&&(sn.isSkinnedMesh&&sn.skeleton.frame!==an.render.frame&&(sn.skeleton.update(),sn.skeleton.frame=an.render.frame),!sn.frustumCulled||zt.intersectsObject(sn))){Dn&&Ht.setFromMatrixPosition(sn.matrixWorld).applyMatrix4(Nt);const nr=dn.update(sn),lr=sn.material;if(Array.isArray(lr)){const cr=nr.groups;for(let Hr=0,_r=cr.length;Hr<_r;Hr++){const jr=cr[Hr],Gr=lr[jr.materialIndex];Gr&&Gr.visible&&ht.push(sn,nr,Gr,xn,Ht.z,jr)}}else lr.visible&&ht.push(sn,nr,lr,xn,Ht.z,null)}}const Kn=sn.children;for(let nr=0,lr=Kn.length;nr0&&Vr(Fn,Xt,xn),Dn&&En.viewport(Et.copy(Dn)),Fn.length>0&&Fr(Fn,Xt,xn),Kn.length>0&&Fr(Kn,Xt,xn),nr.length>0&&Fr(nr,Xt,xn),En.buffers.depth.setTest(!0),En.buffers.depth.setMask(!0),En.buffers.color.setMask(!0),En.setPolygonOffset(!1)}function Vr(sn,Xt,xn){const Dn=_n.isWebGL2;Ft===null&&(Ft=new WebGLRenderTarget(1,1,{generateMipmaps:!0,type:cn.has("EXT_color_buffer_half_float")?HalfFloatType:UnsignedByteType,minFilter:LinearMipmapLinearFilter,samples:Dn&&ot===!0?4:0})),gt.getDrawingBufferSize(Ct),Dn?Ft.setSize(Ct.x,Ct.y):Ft.setSize(floorPowerOfTwo(Ct.x),floorPowerOfTwo(Ct.y));const Fn=gt.getRenderTarget();gt.setRenderTarget(Ft),gt.clear();const Kn=gt.toneMapping;gt.toneMapping=NoToneMapping,Fr(sn,Xt,xn),gt.toneMapping=Kn,Tn.updateMultisampleRenderTarget(Ft),Tn.updateRenderTargetMipmap(Ft),gt.setRenderTarget(Fn)}function Fr(sn,Xt,xn){const Dn=Xt.isScene===!0?Xt.overrideMaterial:null;for(let Fn=0,Kn=sn.length;Fn0&&Tn.useMultisampledRTT(sn)===!1?Fn=en.get(sn).__webglMultisampledFramebuffer:Fn=Hr,Et.copy(sn.viewport),At.copy(sn.scissor),Tt=sn.scissorTest}else Et.copy(xt).multiplyScalar(jt).floor(),At.copy(It).multiplyScalar(jt).floor(),Tt=Ot;if(En.bindFramebuffer(36160,Fn)&&_n.drawBuffers&&Dn&&En.drawBuffers(sn,Fn),En.viewport(Et),En.scissor(At),En.setScissorTest(Tt),Kn){const cr=en.get(sn.texture);Yt.framebufferTexture2D(36160,36064,34069+Xt,cr.__webglTexture,xn)}else if(nr){const cr=en.get(sn.texture),Hr=Xt||0;Yt.framebufferTextureLayer(36160,36064,cr.__webglTexture,xn||0,Hr)}kt=-1},this.readRenderTargetPixels=function(sn,Xt,xn,Dn,Fn,Kn,nr){if(!(sn&&sn.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let lr=en.get(sn).__webglFramebuffer;if(sn.isWebGLCubeRenderTarget&&nr!==void 0&&(lr=lr[nr]),lr){En.bindFramebuffer(36160,lr);try{const cr=sn.texture,Hr=cr.format,_r=cr.type;if(Hr!==RGBAFormat&&Zt.convert(Hr)!==Yt.getParameter(35739)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const jr=_r===HalfFloatType&&(cn.has("EXT_color_buffer_half_float")||_n.isWebGL2&&cn.has("EXT_color_buffer_float"));if(_r!==UnsignedByteType&&Zt.convert(_r)!==Yt.getParameter(35738)&&!(_r===FloatType&&(_n.isWebGL2||cn.has("OES_texture_float")||cn.has("WEBGL_color_buffer_float")))&&!jr){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}Xt>=0&&Xt<=sn.width-Dn&&xn>=0&&xn<=sn.height-Fn&&Yt.readPixels(Xt,xn,Dn,Fn,Zt.convert(Hr),Zt.convert(_r),Kn)}finally{const cr=vt!==null?en.get(vt).__webglFramebuffer:null;En.bindFramebuffer(36160,cr)}}},this.copyFramebufferToTexture=function(sn,Xt,xn=0){const Dn=Math.pow(2,-xn),Fn=Math.floor(Xt.image.width*Dn),Kn=Math.floor(Xt.image.height*Dn);Tn.setTexture2D(Xt,0),Yt.copyTexSubImage2D(3553,xn,0,0,sn.x,sn.y,Fn,Kn),En.unbindTexture()},this.copyTextureToTexture=function(sn,Xt,xn,Dn=0){const Fn=Xt.image.width,Kn=Xt.image.height,nr=Zt.convert(xn.format),lr=Zt.convert(xn.type);Tn.setTexture2D(xn,0),Yt.pixelStorei(37440,xn.flipY),Yt.pixelStorei(37441,xn.premultiplyAlpha),Yt.pixelStorei(3317,xn.unpackAlignment),Xt.isDataTexture?Yt.texSubImage2D(3553,Dn,sn.x,sn.y,Fn,Kn,nr,lr,Xt.image.data):Xt.isCompressedTexture?Yt.compressedTexSubImage2D(3553,Dn,sn.x,sn.y,Xt.mipmaps[0].width,Xt.mipmaps[0].height,nr,Xt.mipmaps[0].data):Yt.texSubImage2D(3553,Dn,sn.x,sn.y,nr,lr,Xt.image),Dn===0&&xn.generateMipmaps&&Yt.generateMipmap(3553),En.unbindTexture()},this.copyTextureToTexture3D=function(sn,Xt,xn,Dn,Fn=0){if(gt.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const Kn=sn.max.x-sn.min.x+1,nr=sn.max.y-sn.min.y+1,lr=sn.max.z-sn.min.z+1,cr=Zt.convert(Dn.format),Hr=Zt.convert(Dn.type);let _r;if(Dn.isData3DTexture)Tn.setTexture3D(Dn,0),_r=32879;else if(Dn.isDataArrayTexture)Tn.setTexture2DArray(Dn,0),_r=35866;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}Yt.pixelStorei(37440,Dn.flipY),Yt.pixelStorei(37441,Dn.premultiplyAlpha),Yt.pixelStorei(3317,Dn.unpackAlignment);const jr=Yt.getParameter(3314),Gr=Yt.getParameter(32878),eo=Yt.getParameter(3316),Qr=Yt.getParameter(3315),_i=Yt.getParameter(32877),wr=xn.isCompressedTexture?xn.mipmaps[0]:xn.image;Yt.pixelStorei(3314,wr.width),Yt.pixelStorei(32878,wr.height),Yt.pixelStorei(3316,sn.min.x),Yt.pixelStorei(3315,sn.min.y),Yt.pixelStorei(32877,sn.min.z),xn.isDataTexture||xn.isData3DTexture?Yt.texSubImage3D(_r,Fn,Xt.x,Xt.y,Xt.z,Kn,nr,lr,cr,Hr,wr.data):xn.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Yt.compressedTexSubImage3D(_r,Fn,Xt.x,Xt.y,Xt.z,Kn,nr,lr,cr,wr.data)):Yt.texSubImage3D(_r,Fn,Xt.x,Xt.y,Xt.z,Kn,nr,lr,cr,Hr,wr),Yt.pixelStorei(3314,jr),Yt.pixelStorei(32878,Gr),Yt.pixelStorei(3316,eo),Yt.pixelStorei(3315,Qr),Yt.pixelStorei(32877,_i),Fn===0&&Dn.generateMipmaps&&Yt.generateMipmap(_r),En.unbindTexture()},this.initTexture=function(sn){sn.isCubeTexture?Tn.setTextureCube(sn,0):sn.isData3DTexture?Tn.setTexture3D(sn,0):sn.isDataArrayTexture?Tn.setTexture2DArray(sn,0):Tn.setTexture2D(sn,0),En.unbindTexture()},this.resetState=function(){bt=0,wt=0,vt=null,En.reset(),wn.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}class WebGL1Renderer extends WebGLRenderer{}WebGL1Renderer.prototype.isWebGL1Renderer=!0;class FogExp2{constructor(et,nt=25e-5){this.isFogExp2=!0,this.name="",this.color=new Color$1(et),this.density=nt}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Fog{constructor(et,nt=1,rt=1e3){this.isFog=!0,this.name="",this.color=new Color$1(et),this.near=nt,this.far=rt}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(et,nt){return super.copy(et,nt),et.background!==null&&(this.background=et.background.clone()),et.environment!==null&&(this.environment=et.environment.clone()),et.fog!==null&&(this.fog=et.fog.clone()),et.overrideMaterial!==null&&(this.overrideMaterial=et.overrideMaterial.clone()),this.autoUpdate=et.autoUpdate,this.matrixAutoUpdate=et.matrixAutoUpdate,this}toJSON(et){const nt=super.toJSON(et);return this.fog!==null&&(nt.object.fog=this.fog.toJSON()),nt}}class InterleavedBuffer{constructor(et,nt){this.isInterleavedBuffer=!0,this.array=et,this.stride=nt,this.count=et!==void 0?et.length/nt:0,this.usage=StaticDrawUsage,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=generateUUID$1()}onUploadCallback(){}set needsUpdate(et){et===!0&&this.version++}setUsage(et){return this.usage=et,this}copy(et){return this.array=new et.array.constructor(et.array),this.count=et.count,this.stride=et.stride,this.usage=et.usage,this}copyAt(et,nt,rt){et*=this.stride,rt*=nt.stride;for(let it=0,ot=this.stride;itet.far||nt.push({distance:lt,point:_intersectPoint.clone(),uv:Triangle.getUV(_intersectPoint,_vA,_vB,_vC,_uvA,_uvB,_uvC,new Vector2),face:null,object:this})}copy(et,nt){return super.copy(et,nt),et.center!==void 0&&this.center.copy(et.center),this.material=et.material,this}}function transformVertex(tt,et,nt,rt,it,ot){_alignedPosition.subVectors(tt,nt).addScalar(.5).multiply(rt),it!==void 0?(_rotatedPosition.x=ot*_alignedPosition.x-it*_alignedPosition.y,_rotatedPosition.y=it*_alignedPosition.x+ot*_alignedPosition.y):_rotatedPosition.copy(_alignedPosition),tt.copy(et),tt.x+=_rotatedPosition.x,tt.y+=_rotatedPosition.y,tt.applyMatrix4(_viewWorldMatrix)}const _v1$2=new Vector3,_v2$1=new Vector3;class LOD extends Object3D{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(et){super.copy(et,!1);const nt=et.levels;for(let rt=0,it=nt.length;rt0){let rt,it;for(rt=1,it=nt.length;rt0){_v1$2.setFromMatrixPosition(this.matrixWorld);const it=et.ray.origin.distanceTo(_v1$2);this.getObjectForDistance(it).raycast(et,nt)}}update(et){const nt=this.levels;if(nt.length>1){_v1$2.setFromMatrixPosition(et.matrixWorld),_v2$1.setFromMatrixPosition(this.matrixWorld);const rt=_v1$2.distanceTo(_v2$1)/et.zoom;nt[0].object.visible=!0;let it,ot;for(it=1,ot=nt.length;it=nt[it].distance;it++)nt[it-1].object.visible=!1,nt[it].object.visible=!0;for(this._currentLevel=it-1;itlt)continue;dt.applyMatrix4(this.matrixWorld);const Tt=et.ray.origin.distanceTo(dt);Ttet.far||nt.push({distance:Tt,point:ht.clone().applyMatrix4(this.matrixWorld),index:vt,face:null,faceIndex:null,object:this})}}else{const bt=Math.max(0,at.start),wt=Math.min(yt.count,at.start+at.count);for(let vt=bt,kt=wt-1;vtlt)continue;dt.applyMatrix4(this.matrixWorld);const Et=et.ray.origin.distanceTo(dt);Etet.far||nt.push({distance:Et,point:ht.clone().applyMatrix4(this.matrixWorld),index:vt,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const nt=this.geometry.morphAttributes,rt=Object.keys(nt);if(rt.length>0){const it=nt[rt[0]];if(it!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let ot=0,at=it.length;ot0){const it=nt[rt[0]];if(it!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let ot=0,at=it.length;otit.far)return;ot.push({distance:ct,distanceToRay:Math.sqrt(st),point:lt,index:et,face:null,object:at})}}class VideoTexture extends Texture{constructor(et,nt,rt,it,ot,at,st,lt,ct){super(et,nt,rt,it,ot,at,st,lt,ct),this.isVideoTexture=!0,this.minFilter=at!==void 0?at:LinearFilter,this.magFilter=ot!==void 0?ot:LinearFilter,this.generateMipmaps=!1;const ut=this;function ht(){ut.needsUpdate=!0,et.requestVideoFrameCallback(ht)}"requestVideoFrameCallback"in et&&et.requestVideoFrameCallback(ht)}clone(){return new this.constructor(this.image).copy(this)}update(){const et=this.image;"requestVideoFrameCallback"in et===!1&&et.readyState>=et.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class FramebufferTexture extends Texture{constructor(et,nt,rt){super({width:et,height:nt}),this.isFramebufferTexture=!0,this.format=rt,this.magFilter=NearestFilter,this.minFilter=NearestFilter,this.generateMipmaps=!1,this.needsUpdate=!0}}class CompressedTexture extends Texture{constructor(et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt){super(null,at,st,lt,ct,ut,it,ot,ht,dt),this.isCompressedTexture=!0,this.image={width:nt,height:rt},this.mipmaps=et,this.flipY=!1,this.generateMipmaps=!1}}class CanvasTexture extends Texture{constructor(et,nt,rt,it,ot,at,st,lt,ct){super(et,nt,rt,it,ot,at,st,lt,ct),this.isCanvasTexture=!0,this.needsUpdate=!0}}let Curve$1=class{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(et,nt){const rt=this.getUtoTmapping(et);return this.getPoint(rt,nt)}getPoints(et=5){const nt=[];for(let rt=0;rt<=et;rt++)nt.push(this.getPoint(rt/et));return nt}getSpacedPoints(et=5){const nt=[];for(let rt=0;rt<=et;rt++)nt.push(this.getPointAt(rt/et));return nt}getLength(){const et=this.getLengths();return et[et.length-1]}getLengths(et=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===et+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const nt=[];let rt,it=this.getPoint(0),ot=0;nt.push(0);for(let at=1;at<=et;at++)rt=this.getPoint(at/et),ot+=rt.distanceTo(it),nt.push(ot),it=rt;return this.cacheArcLengths=nt,nt}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(et,nt){const rt=this.getLengths();let it=0;const ot=rt.length;let at;nt?at=nt:at=et*rt[ot-1];let st=0,lt=ot-1,ct;for(;st<=lt;)if(it=Math.floor(st+(lt-st)/2),ct=rt[it]-at,ct<0)st=it+1;else if(ct>0)lt=it-1;else{lt=it;break}if(it=lt,rt[it]===at)return it/(ot-1);const ut=rt[it],dt=rt[it+1]-ut,pt=(at-ut)/dt;return(it+pt)/(ot-1)}getTangent(et,nt){let it=et-1e-4,ot=et+1e-4;it<0&&(it=0),ot>1&&(ot=1);const at=this.getPoint(it),st=this.getPoint(ot),lt=nt||(at.isVector2?new Vector2:new Vector3);return lt.copy(st).sub(at).normalize(),lt}getTangentAt(et,nt){const rt=this.getUtoTmapping(et);return this.getTangent(rt,nt)}computeFrenetFrames(et,nt){const rt=new Vector3,it=[],ot=[],at=[],st=new Vector3,lt=new Matrix4;for(let pt=0;pt<=et;pt++){const mt=pt/et;it[pt]=this.getTangentAt(mt,new Vector3)}ot[0]=new Vector3,at[0]=new Vector3;let ct=Number.MAX_VALUE;const ut=Math.abs(it[0].x),ht=Math.abs(it[0].y),dt=Math.abs(it[0].z);ut<=ct&&(ct=ut,rt.set(1,0,0)),ht<=ct&&(ct=ht,rt.set(0,1,0)),dt<=ct&&rt.set(0,0,1),st.crossVectors(it[0],rt).normalize(),ot[0].crossVectors(it[0],st),at[0].crossVectors(it[0],ot[0]);for(let pt=1;pt<=et;pt++){if(ot[pt]=ot[pt-1].clone(),at[pt]=at[pt-1].clone(),st.crossVectors(it[pt-1],it[pt]),st.length()>Number.EPSILON){st.normalize();const mt=Math.acos(clamp$4(it[pt-1].dot(it[pt]),-1,1));ot[pt].applyMatrix4(lt.makeRotationAxis(st,mt))}at[pt].crossVectors(it[pt],ot[pt])}if(nt===!0){let pt=Math.acos(clamp$4(ot[0].dot(ot[et]),-1,1));pt/=et,it[0].dot(st.crossVectors(ot[0],ot[et]))>0&&(pt=-pt);for(let mt=1;mt<=et;mt++)ot[mt].applyMatrix4(lt.makeRotationAxis(it[mt],pt*mt)),at[mt].crossVectors(it[mt],ot[mt])}return{tangents:it,normals:ot,binormals:at}}clone(){return new this.constructor().copy(this)}copy(et){return this.arcLengthDivisions=et.arcLengthDivisions,this}toJSON(){const et={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return et.arcLengthDivisions=this.arcLengthDivisions,et.type=this.type,et}fromJSON(et){return this.arcLengthDivisions=et.arcLengthDivisions,this}};class EllipseCurve extends Curve$1{constructor(et=0,nt=0,rt=1,it=1,ot=0,at=Math.PI*2,st=!1,lt=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=et,this.aY=nt,this.xRadius=rt,this.yRadius=it,this.aStartAngle=ot,this.aEndAngle=at,this.aClockwise=st,this.aRotation=lt}getPoint(et,nt){const rt=nt||new Vector2,it=Math.PI*2;let ot=this.aEndAngle-this.aStartAngle;const at=Math.abs(ot)it;)ot-=it;ot0?0:(Math.floor(Math.abs(st)/ot)+1)*ot:lt===0&&st===ot-1&&(st=ot-2,lt=1);let ct,ut;this.closed||st>0?ct=it[(st-1)%ot]:(tmp.subVectors(it[0],it[1]).add(it[0]),ct=tmp);const ht=it[st%ot],dt=it[(st+1)%ot];if(this.closed||st+2it.length-2?it.length-1:at+1],ht=it[at>it.length-3?it.length-1:at+2];return rt.set(CatmullRom(st,lt.x,ct.x,ut.x,ht.x),CatmullRom(st,lt.y,ct.y,ut.y,ht.y)),rt}copy(et){super.copy(et),this.points=[];for(let nt=0,rt=et.points.length;nt=rt){const at=it[ot]-rt,st=this.curves[ot],lt=st.getLength(),ct=lt===0?0:1-at/lt;return st.getPointAt(ct,nt)}ot++}return null}getLength(){const et=this.getCurveLengths();return et[et.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const et=[];let nt=0;for(let rt=0,it=this.curves.length;rt1&&!nt[nt.length-1].equals(nt[0])&&nt.push(nt[0]),nt}copy(et){super.copy(et),this.curves=[];for(let nt=0,rt=et.curves.length;nt0){const ht=ct.getPoint(0);ht.equals(this.currentPoint)||this.lineTo(ht.x,ht.y)}this.curves.push(ct);const ut=ct.getPoint(1);return this.currentPoint.copy(ut),this}copy(et){return super.copy(et),this.currentPoint.copy(et.currentPoint),this}toJSON(){const et=super.toJSON();return et.currentPoint=this.currentPoint.toArray(),et}fromJSON(et){return super.fromJSON(et),this.currentPoint.fromArray(et.currentPoint),this}};class LatheGeometry extends BufferGeometry{constructor(et=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],nt=12,rt=0,it=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:et,segments:nt,phiStart:rt,phiLength:it},nt=Math.floor(nt),it=clamp$4(it,0,Math.PI*2);const ot=[],at=[],st=[],lt=[],ct=[],ut=1/nt,ht=new Vector3,dt=new Vector2,pt=new Vector3,mt=new Vector3,gt=new Vector3;let yt=0,bt=0;for(let wt=0;wt<=et.length-1;wt++)switch(wt){case 0:yt=et[wt+1].x-et[wt].x,bt=et[wt+1].y-et[wt].y,pt.x=bt*1,pt.y=-yt,pt.z=bt*0,gt.copy(pt),pt.normalize(),lt.push(pt.x,pt.y,pt.z);break;case et.length-1:lt.push(gt.x,gt.y,gt.z);break;default:yt=et[wt+1].x-et[wt].x,bt=et[wt+1].y-et[wt].y,pt.x=bt*1,pt.y=-yt,pt.z=bt*0,mt.copy(pt),pt.x+=gt.x,pt.y+=gt.y,pt.z+=gt.z,pt.normalize(),lt.push(pt.x,pt.y,pt.z),gt.copy(mt)}for(let wt=0;wt<=nt;wt++){const vt=rt+wt*ut*it,kt=Math.sin(vt),St=Math.cos(vt);for(let Et=0;Et<=et.length-1;Et++){ht.x=et[Et].x*kt,ht.y=et[Et].y,ht.z=et[Et].x*St,at.push(ht.x,ht.y,ht.z),dt.x=wt/nt,dt.y=Et/(et.length-1),st.push(dt.x,dt.y);const At=lt[3*Et+0]*kt,Tt=lt[3*Et+1],Mt=lt[3*Et+0]*St;ct.push(At,Tt,Mt)}}for(let wt=0;wt0&&vt(!0),nt>0&&vt(!1)),this.setIndex(ut),this.setAttribute("position",new Float32BufferAttribute(ht,3)),this.setAttribute("normal",new Float32BufferAttribute(dt,3)),this.setAttribute("uv",new Float32BufferAttribute(pt,2));function wt(){const kt=new Vector3,St=new Vector3;let Et=0;const At=(nt-et)/rt;for(let Tt=0;Tt<=ot;Tt++){const Mt=[],Lt=Tt/ot,jt=Lt*(nt-et)+et;for(let Rt=0;Rt<=it;Rt++){const $t=Rt/it,xt=$t*lt+st,It=Math.sin(xt),Ot=Math.cos(xt);St.x=jt*It,St.y=-Lt*rt+yt,St.z=jt*Ot,ht.push(St.x,St.y,St.z),kt.set(It,At,Ot).normalize(),dt.push(kt.x,kt.y,kt.z),pt.push($t,1-Lt),Mt.push(mt++)}gt.push(Mt)}for(let Tt=0;Tt.9&&At<.1&&(vt<.2&&(at[wt+0]+=1),kt<.2&&(at[wt+2]+=1),St<.2&&(at[wt+4]+=1))}}function dt(wt){ot.push(wt.x,wt.y,wt.z)}function pt(wt,vt){const kt=wt*3;vt.x=et[kt+0],vt.y=et[kt+1],vt.z=et[kt+2]}function mt(){const wt=new Vector3,vt=new Vector3,kt=new Vector3,St=new Vector3,Et=new Vector2,At=new Vector2,Tt=new Vector2;for(let Mt=0,Lt=0;Mt80*nt){st=ct=tt[0],lt=ut=tt[1];for(let mt=nt;mtct&&(ct=ht),dt>ut&&(ut=dt);pt=Math.max(ct-st,ut-lt),pt=pt!==0?1/pt:0}return earcutLinked(ot,at,nt,st,lt,pt),at}};function linkedList(tt,et,nt,rt,it){let ot,at;if(it===signedArea(tt,et,nt,rt)>0)for(ot=et;ot=et;ot-=rt)at=insertNode(ot,tt[ot],tt[ot+1],at);return at&&equals(at,at.next)&&(removeNode(at),at=at.next),at}function filterPoints(tt,et){if(!tt)return tt;et||(et=tt);let nt=tt,rt;do if(rt=!1,!nt.steiner&&(equals(nt,nt.next)||area(nt.prev,nt,nt.next)===0)){if(removeNode(nt),nt=et=nt.prev,nt===nt.next)break;rt=!0}else nt=nt.next;while(rt||nt!==et);return et}function earcutLinked(tt,et,nt,rt,it,ot,at){if(!tt)return;!at&&ot&&indexCurve(tt,rt,it,ot);let st=tt,lt,ct;for(;tt.prev!==tt.next;){if(lt=tt.prev,ct=tt.next,ot?isEarHashed(tt,rt,it,ot):isEar(tt)){et.push(lt.i/nt),et.push(tt.i/nt),et.push(ct.i/nt),removeNode(tt),tt=ct.next,st=ct.next;continue}if(tt=ct,tt===st){at?at===1?(tt=cureLocalIntersections(filterPoints(tt),et,nt),earcutLinked(tt,et,nt,rt,it,ot,2)):at===2&&splitEarcut(tt,et,nt,rt,it,ot):earcutLinked(filterPoints(tt),et,nt,rt,it,ot,1);break}}}function isEar(tt){const et=tt.prev,nt=tt,rt=tt.next;if(area(et,nt,rt)>=0)return!1;let it=tt.next.next;for(;it!==tt.prev;){if(pointInTriangle(et.x,et.y,nt.x,nt.y,rt.x,rt.y,it.x,it.y)&&area(it.prev,it,it.next)>=0)return!1;it=it.next}return!0}function isEarHashed(tt,et,nt,rt){const it=tt.prev,ot=tt,at=tt.next;if(area(it,ot,at)>=0)return!1;const st=it.xot.x?it.x>at.x?it.x:at.x:ot.x>at.x?ot.x:at.x,ut=it.y>ot.y?it.y>at.y?it.y:at.y:ot.y>at.y?ot.y:at.y,ht=zOrder(st,lt,et,nt,rt),dt=zOrder(ct,ut,et,nt,rt);let pt=tt.prevZ,mt=tt.nextZ;for(;pt&&pt.z>=ht&&mt&&mt.z<=dt;){if(pt!==tt.prev&&pt!==tt.next&&pointInTriangle(it.x,it.y,ot.x,ot.y,at.x,at.y,pt.x,pt.y)&&area(pt.prev,pt,pt.next)>=0||(pt=pt.prevZ,mt!==tt.prev&&mt!==tt.next&&pointInTriangle(it.x,it.y,ot.x,ot.y,at.x,at.y,mt.x,mt.y)&&area(mt.prev,mt,mt.next)>=0))return!1;mt=mt.nextZ}for(;pt&&pt.z>=ht;){if(pt!==tt.prev&&pt!==tt.next&&pointInTriangle(it.x,it.y,ot.x,ot.y,at.x,at.y,pt.x,pt.y)&&area(pt.prev,pt,pt.next)>=0)return!1;pt=pt.prevZ}for(;mt&&mt.z<=dt;){if(mt!==tt.prev&&mt!==tt.next&&pointInTriangle(it.x,it.y,ot.x,ot.y,at.x,at.y,mt.x,mt.y)&&area(mt.prev,mt,mt.next)>=0)return!1;mt=mt.nextZ}return!0}function cureLocalIntersections(tt,et,nt){let rt=tt;do{const it=rt.prev,ot=rt.next.next;!equals(it,ot)&&intersects(it,rt,rt.next,ot)&&locallyInside(it,ot)&&locallyInside(ot,it)&&(et.push(it.i/nt),et.push(rt.i/nt),et.push(ot.i/nt),removeNode(rt),removeNode(rt.next),rt=tt=ot),rt=rt.next}while(rt!==tt);return filterPoints(rt)}function splitEarcut(tt,et,nt,rt,it,ot){let at=tt;do{let st=at.next.next;for(;st!==at.prev;){if(at.i!==st.i&&isValidDiagonal(at,st)){let lt=splitPolygon(at,st);at=filterPoints(at,at.next),lt=filterPoints(lt,lt.next),earcutLinked(at,et,nt,rt,it,ot),earcutLinked(lt,et,nt,rt,it,ot);return}st=st.next}at=at.next}while(at!==tt)}function eliminateHoles(tt,et,nt,rt){const it=[];let ot,at,st,lt,ct;for(ot=0,at=et.length;ot=nt.next.y&&nt.next.y!==nt.y){const dt=nt.x+(it-nt.y)*(nt.next.x-nt.x)/(nt.next.y-nt.y);if(dt<=rt&&dt>ot){if(ot=dt,dt===rt){if(it===nt.y)return nt;if(it===nt.next.y)return nt.next}at=nt.x=nt.x&&nt.x>=lt&&rt!==nt.x&&pointInTriangle(itat.x||nt.x===at.x&§orContainsSector(at,nt)))&&(at=nt,ut=ht)),nt=nt.next;while(nt!==st);return at}function sectorContainsSector(tt,et){return area(tt.prev,tt,et.prev)<0&&area(et.next,tt,tt.next)<0}function indexCurve(tt,et,nt,rt){let it=tt;do it.z===null&&(it.z=zOrder(it.x,it.y,et,nt,rt)),it.prevZ=it.prev,it.nextZ=it.next,it=it.next;while(it!==tt);it.prevZ.nextZ=null,it.prevZ=null,sortLinked(it)}function sortLinked(tt){let et,nt,rt,it,ot,at,st,lt,ct=1;do{for(nt=tt,tt=null,ot=null,at=0;nt;){for(at++,rt=nt,st=0,et=0;et0||lt>0&&rt;)st!==0&&(lt===0||!rt||nt.z<=rt.z)?(it=nt,nt=nt.nextZ,st--):(it=rt,rt=rt.nextZ,lt--),ot?ot.nextZ=it:tt=it,it.prevZ=ot,ot=it;nt=rt}ot.nextZ=null,ct*=2}while(at>1);return tt}function zOrder(tt,et,nt,rt,it){return tt=32767*(tt-nt)*it,et=32767*(et-rt)*it,tt=(tt|tt<<8)&16711935,tt=(tt|tt<<4)&252645135,tt=(tt|tt<<2)&858993459,tt=(tt|tt<<1)&1431655765,et=(et|et<<8)&16711935,et=(et|et<<4)&252645135,et=(et|et<<2)&858993459,et=(et|et<<1)&1431655765,tt|et<<1}function getLeftmost(tt){let et=tt,nt=tt;do(et.x=0&&(tt-at)*(rt-st)-(nt-at)*(et-st)>=0&&(nt-at)*(ot-st)-(it-at)*(rt-st)>=0}function isValidDiagonal(tt,et){return tt.next.i!==et.i&&tt.prev.i!==et.i&&!intersectsPolygon(tt,et)&&(locallyInside(tt,et)&&locallyInside(et,tt)&&middleInside(tt,et)&&(area(tt.prev,tt,et.prev)||area(tt,et.prev,et))||equals(tt,et)&&area(tt.prev,tt,tt.next)>0&&area(et.prev,et,et.next)>0)}function area(tt,et,nt){return(et.y-tt.y)*(nt.x-et.x)-(et.x-tt.x)*(nt.y-et.y)}function equals(tt,et){return tt.x===et.x&&tt.y===et.y}function intersects(tt,et,nt,rt){const it=sign$2(area(tt,et,nt)),ot=sign$2(area(tt,et,rt)),at=sign$2(area(nt,rt,tt)),st=sign$2(area(nt,rt,et));return!!(it!==ot&&at!==st||it===0&&onSegment(tt,nt,et)||ot===0&&onSegment(tt,rt,et)||at===0&&onSegment(nt,tt,rt)||st===0&&onSegment(nt,et,rt))}function onSegment(tt,et,nt){return et.x<=Math.max(tt.x,nt.x)&&et.x>=Math.min(tt.x,nt.x)&&et.y<=Math.max(tt.y,nt.y)&&et.y>=Math.min(tt.y,nt.y)}function sign$2(tt){return tt>0?1:tt<0?-1:0}function intersectsPolygon(tt,et){let nt=tt;do{if(nt.i!==tt.i&&nt.next.i!==tt.i&&nt.i!==et.i&&nt.next.i!==et.i&&intersects(nt,nt.next,tt,et))return!0;nt=nt.next}while(nt!==tt);return!1}function locallyInside(tt,et){return area(tt.prev,tt,tt.next)<0?area(tt,et,tt.next)>=0&&area(tt,tt.prev,et)>=0:area(tt,et,tt.prev)<0||area(tt,tt.next,et)<0}function middleInside(tt,et){let nt=tt,rt=!1;const it=(tt.x+et.x)/2,ot=(tt.y+et.y)/2;do nt.y>ot!=nt.next.y>ot&&nt.next.y!==nt.y&&it<(nt.next.x-nt.x)*(ot-nt.y)/(nt.next.y-nt.y)+nt.x&&(rt=!rt),nt=nt.next;while(nt!==tt);return rt}function splitPolygon(tt,et){const nt=new Node(tt.i,tt.x,tt.y),rt=new Node(et.i,et.x,et.y),it=tt.next,ot=et.prev;return tt.next=et,et.prev=tt,nt.next=it,it.prev=nt,rt.next=nt,nt.prev=rt,ot.next=rt,rt.prev=ot,rt}function insertNode(tt,et,nt,rt){const it=new Node(tt,et,nt);return rt?(it.next=rt.next,it.prev=rt,rt.next.prev=it,rt.next=it):(it.prev=it,it.next=it),it}function removeNode(tt){tt.next.prev=tt.prev,tt.prev.next=tt.next,tt.prevZ&&(tt.prevZ.nextZ=tt.nextZ),tt.nextZ&&(tt.nextZ.prevZ=tt.prevZ)}function Node(tt,et,nt){this.i=tt,this.x=et,this.y=nt,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(tt,et,nt,rt){let it=0;for(let ot=et,at=nt-rt;ot2&&tt[et-1].equals(tt[0])&&tt.pop()}function addContour(tt,et){for(let nt=0;ntNumber.EPSILON){const Sn=Math.sqrt(un),Mn=Math.sqrt(Cn*Cn+$n*$n),Nn=Tn.x-gn/Sn,hn=Tn.y+dn/Sn,Qt=Rn.x-$n/Mn,Zt=Rn.y+Cn/Mn,wn=((Qt-Nn)*$n-(Zt-hn)*Cn)/(dn*$n-gn*Cn);An=Nn+dn*wn-en.x,yn=hn+gn*wn-en.y;const On=An*An+yn*yn;if(On<=2)return new Vector2(An,yn);kn=Math.sqrt(On/2)}else{let Sn=!1;dn>Number.EPSILON?Cn>Number.EPSILON&&(Sn=!0):dn<-Number.EPSILON?Cn<-Number.EPSILON&&(Sn=!0):Math.sign(gn)===Math.sign($n)&&(Sn=!0),Sn?(An=-gn,yn=dn,kn=Math.sqrt(un)):(An=dn,yn=gn,kn=Math.sqrt(un/2))}return new Vector2(An/kn,yn/kn)}const Wt=[];for(let en=0,Tn=xt.length,Rn=Tn-1,An=en+1;en=0;en--){const Tn=en/yt,Rn=pt*Math.cos(Tn*Math.PI/2),An=mt*Math.sin(Tn*Math.PI/2)+gt;for(let yn=0,kn=xt.length;yn=0;){const An=Rn;let yn=Rn-1;yn<0&&(yn=en.length-1);for(let kn=0,dn=ut+yt*2;kn0)&&pt.push(vt,kt,Et),(bt!==rt-1||lt0!=et>0&&this.version++,this._sheen=et}get clearcoat(){return this._clearcoat}set clearcoat(et){this._clearcoat>0!=et>0&&this.version++,this._clearcoat=et}get iridescence(){return this._iridescence}set iridescence(et){this._iridescence>0!=et>0&&this.version++,this._iridescence=et}get transmission(){return this._transmission}set transmission(et){this._transmission>0!=et>0&&this.version++,this._transmission=et}copy(et){return super.copy(et),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=et.clearcoat,this.clearcoatMap=et.clearcoatMap,this.clearcoatRoughness=et.clearcoatRoughness,this.clearcoatRoughnessMap=et.clearcoatRoughnessMap,this.clearcoatNormalMap=et.clearcoatNormalMap,this.clearcoatNormalScale.copy(et.clearcoatNormalScale),this.ior=et.ior,this.iridescence=et.iridescence,this.iridescenceMap=et.iridescenceMap,this.iridescenceIOR=et.iridescenceIOR,this.iridescenceThicknessRange=[...et.iridescenceThicknessRange],this.iridescenceThicknessMap=et.iridescenceThicknessMap,this.sheen=et.sheen,this.sheenColor.copy(et.sheenColor),this.sheenColorMap=et.sheenColorMap,this.sheenRoughness=et.sheenRoughness,this.sheenRoughnessMap=et.sheenRoughnessMap,this.transmission=et.transmission,this.transmissionMap=et.transmissionMap,this.thickness=et.thickness,this.thicknessMap=et.thicknessMap,this.attenuationDistance=et.attenuationDistance,this.attenuationColor.copy(et.attenuationColor),this.specularIntensity=et.specularIntensity,this.specularIntensityMap=et.specularIntensityMap,this.specularColor.copy(et.specularColor),this.specularColorMap=et.specularColorMap,this}}class MeshPhongMaterial extends Material{constructor(et){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Color$1(16777215),this.specular=new Color$1(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(et)}copy(et){return super.copy(et),this.color.copy(et.color),this.specular.copy(et.specular),this.shininess=et.shininess,this.map=et.map,this.lightMap=et.lightMap,this.lightMapIntensity=et.lightMapIntensity,this.aoMap=et.aoMap,this.aoMapIntensity=et.aoMapIntensity,this.emissive.copy(et.emissive),this.emissiveMap=et.emissiveMap,this.emissiveIntensity=et.emissiveIntensity,this.bumpMap=et.bumpMap,this.bumpScale=et.bumpScale,this.normalMap=et.normalMap,this.normalMapType=et.normalMapType,this.normalScale.copy(et.normalScale),this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this.specularMap=et.specularMap,this.alphaMap=et.alphaMap,this.envMap=et.envMap,this.combine=et.combine,this.reflectivity=et.reflectivity,this.refractionRatio=et.refractionRatio,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this.wireframeLinecap=et.wireframeLinecap,this.wireframeLinejoin=et.wireframeLinejoin,this.flatShading=et.flatShading,this.fog=et.fog,this}}class MeshToonMaterial extends Material{constructor(et){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Color$1(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(et)}copy(et){return super.copy(et),this.color.copy(et.color),this.map=et.map,this.gradientMap=et.gradientMap,this.lightMap=et.lightMap,this.lightMapIntensity=et.lightMapIntensity,this.aoMap=et.aoMap,this.aoMapIntensity=et.aoMapIntensity,this.emissive.copy(et.emissive),this.emissiveMap=et.emissiveMap,this.emissiveIntensity=et.emissiveIntensity,this.bumpMap=et.bumpMap,this.bumpScale=et.bumpScale,this.normalMap=et.normalMap,this.normalMapType=et.normalMapType,this.normalScale.copy(et.normalScale),this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this.alphaMap=et.alphaMap,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this.wireframeLinecap=et.wireframeLinecap,this.wireframeLinejoin=et.wireframeLinejoin,this.fog=et.fog,this}}class MeshNormalMaterial extends Material{constructor(et){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(et)}copy(et){return super.copy(et),this.bumpMap=et.bumpMap,this.bumpScale=et.bumpScale,this.normalMap=et.normalMap,this.normalMapType=et.normalMapType,this.normalScale.copy(et.normalScale),this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this.flatShading=et.flatShading,this}}class MeshLambertMaterial extends Material{constructor(et){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Color$1(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color$1(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=MultiplyOperation,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(et)}copy(et){return super.copy(et),this.color.copy(et.color),this.map=et.map,this.lightMap=et.lightMap,this.lightMapIntensity=et.lightMapIntensity,this.aoMap=et.aoMap,this.aoMapIntensity=et.aoMapIntensity,this.emissive.copy(et.emissive),this.emissiveMap=et.emissiveMap,this.emissiveIntensity=et.emissiveIntensity,this.specularMap=et.specularMap,this.alphaMap=et.alphaMap,this.envMap=et.envMap,this.combine=et.combine,this.reflectivity=et.reflectivity,this.refractionRatio=et.refractionRatio,this.wireframe=et.wireframe,this.wireframeLinewidth=et.wireframeLinewidth,this.wireframeLinecap=et.wireframeLinecap,this.wireframeLinejoin=et.wireframeLinejoin,this.fog=et.fog,this}}class MeshMatcapMaterial extends Material{constructor(et){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Color$1(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=TangentSpaceNormalMap,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(et)}copy(et){return super.copy(et),this.defines={MATCAP:""},this.color.copy(et.color),this.matcap=et.matcap,this.map=et.map,this.bumpMap=et.bumpMap,this.bumpScale=et.bumpScale,this.normalMap=et.normalMap,this.normalMapType=et.normalMapType,this.normalScale.copy(et.normalScale),this.displacementMap=et.displacementMap,this.displacementScale=et.displacementScale,this.displacementBias=et.displacementBias,this.alphaMap=et.alphaMap,this.flatShading=et.flatShading,this.fog=et.fog,this}}class LineDashedMaterial extends LineBasicMaterial{constructor(et){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(et)}copy(et){return super.copy(et),this.scale=et.scale,this.dashSize=et.dashSize,this.gapSize=et.gapSize,this}}function arraySlice(tt,et,nt){return isTypedArray$2(tt)?new tt.constructor(tt.subarray(et,nt!==void 0?nt:tt.length)):tt.slice(et,nt)}function convertArray(tt,et,nt){return!tt||!nt&&tt.constructor===et?tt:typeof et.BYTES_PER_ELEMENT=="number"?new et(tt):Array.prototype.slice.call(tt)}function isTypedArray$2(tt){return ArrayBuffer.isView(tt)&&!(tt instanceof DataView)}function getKeyframeOrder(tt){function et(it,ot){return tt[it]-tt[ot]}const nt=tt.length,rt=new Array(nt);for(let it=0;it!==nt;++it)rt[it]=it;return rt.sort(et),rt}function sortedArray(tt,et,nt){const rt=tt.length,it=new tt.constructor(rt);for(let ot=0,at=0;at!==rt;++ot){const st=nt[ot]*et;for(let lt=0;lt!==et;++lt)it[at++]=tt[st+lt]}return it}function flattenJSON(tt,et,nt,rt){let it=1,ot=tt[0];for(;ot!==void 0&&ot[rt]===void 0;)ot=tt[it++];if(ot===void 0)return;let at=ot[rt];if(at!==void 0)if(Array.isArray(at))do at=ot[rt],at!==void 0&&(et.push(ot.time),nt.push.apply(nt,at)),ot=tt[it++];while(ot!==void 0);else if(at.toArray!==void 0)do at=ot[rt],at!==void 0&&(et.push(ot.time),at.toArray(nt,nt.length)),ot=tt[it++];while(ot!==void 0);else do at=ot[rt],at!==void 0&&(et.push(ot.time),nt.push(at)),ot=tt[it++];while(ot!==void 0)}function subclip(tt,et,nt,rt,it=30){const ot=tt.clone();ot.name=et;const at=[];for(let lt=0;lt=rt)){ht.push(ct.times[pt]);for(let gt=0;gtot.tracks[lt].times[0]&&(st=ot.tracks[lt].times[0]);for(let lt=0;lt=st.times[mt]){const bt=mt*ht+ut,wt=bt+ht-ut;gt=arraySlice(st.values,bt,wt)}else{const bt=st.createInterpolant(),wt=ut,vt=ht-ut;bt.evaluate(ot),gt=arraySlice(bt.resultBuffer,wt,vt)}lt==="quaternion"&&new Quaternion().fromArray(gt).normalize().conjugate().toArray(gt);const yt=ct.times.length;for(let bt=0;bt=ot)){const st=nt[1];et=ot)break t}at=rt,rt=0;break n}break e}for(;rt>>1;etnt;)--at;if(++at,ot!==0||at!==it){ot>=at&&(at=Math.max(at,1),ot=at-1);const st=this.getValueSize();this.times=arraySlice(rt,ot,at),this.values=arraySlice(this.values,ot*st,at*st)}return this}validate(){let et=!0;const nt=this.getValueSize();nt-Math.floor(nt)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),et=!1);const rt=this.times,it=this.values,ot=rt.length;ot===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),et=!1);let at=null;for(let st=0;st!==ot;st++){const lt=rt[st];if(typeof lt=="number"&&isNaN(lt)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,st,lt),et=!1;break}if(at!==null&&at>lt){console.error("THREE.KeyframeTrack: Out of order keys.",this,st,lt,at),et=!1;break}at=lt}if(it!==void 0&&isTypedArray$2(it))for(let st=0,lt=it.length;st!==lt;++st){const ct=it[st];if(isNaN(ct)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,st,ct),et=!1;break}}return et}optimize(){const et=arraySlice(this.times),nt=arraySlice(this.values),rt=this.getValueSize(),it=this.getInterpolation()===InterpolateSmooth,ot=et.length-1;let at=1;for(let st=1;st0){et[at]=et[ot];for(let st=ot*rt,lt=at*rt,ct=0;ct!==rt;++ct)nt[lt+ct]=nt[st+ct];++at}return at!==et.length?(this.times=arraySlice(et,0,at),this.values=arraySlice(nt,0,at*rt)):(this.times=et,this.values=nt),this}clone(){const et=arraySlice(this.times,0),nt=arraySlice(this.values,0),rt=this.constructor,it=new rt(this.name,et,nt);return it.createInterpolant=this.createInterpolant,it}}KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;class BooleanKeyframeTrack extends KeyframeTrack{}BooleanKeyframeTrack.prototype.ValueTypeName="bool";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(et,nt,rt,it){super(et,nt,rt,it)}interpolate_(et,nt,rt,it){const ot=this.resultBuffer,at=this.sampleValues,st=this.valueSize,lt=(rt-nt)/(it-nt);let ct=et*st;for(let ut=ct+st;ct!==ut;ct+=4)Quaternion.slerpFlat(ot,0,at,ct-st,at,ct,lt);return ot}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(et){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),et)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion";QuaternionKeyframeTrack.prototype.DefaultInterpolation=InterpolateLinear;QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{}StringKeyframeTrack.prototype.ValueTypeName="string";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=InterpolateDiscrete;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(et,nt=-1,rt,it=NormalAnimationBlendMode){this.name=et,this.tracks=rt,this.duration=nt,this.blendMode=it,this.uuid=generateUUID$1(),this.duration<0&&this.resetDuration()}static parse(et){const nt=[],rt=et.tracks,it=1/(et.fps||1);for(let at=0,st=rt.length;at!==st;++at)nt.push(parseKeyframeTrack(rt[at]).scale(it));const ot=new this(et.name,et.duration,nt,et.blendMode);return ot.uuid=et.uuid,ot}static toJSON(et){const nt=[],rt=et.tracks,it={name:et.name,duration:et.duration,tracks:nt,uuid:et.uuid,blendMode:et.blendMode};for(let ot=0,at=rt.length;ot!==at;++ot)nt.push(KeyframeTrack.toJSON(rt[ot]));return it}static CreateFromMorphTargetSequence(et,nt,rt,it){const ot=nt.length,at=[];for(let st=0;st1){const ht=ut[1];let dt=it[ht];dt||(it[ht]=dt=[]),dt.push(ct)}}const at=[];for(const st in it)at.push(this.CreateFromMorphTargetSequence(st,it[st],nt,rt));return at}static parseAnimation(et,nt){if(!et)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const rt=function(ht,dt,pt,mt,gt){if(pt.length!==0){const yt=[],bt=[];flattenJSON(pt,yt,bt,mt),yt.length!==0&>.push(new ht(dt,yt,bt))}},it=[],ot=et.name||"default",at=et.fps||30,st=et.blendMode;let lt=et.length||-1;const ct=et.hierarchy||[];for(let ht=0;ht{nt&&nt(ot),this.manager.itemEnd(et)},0),ot;if(loading[et]!==void 0){loading[et].push({onLoad:nt,onProgress:rt,onError:it});return}loading[et]=[],loading[et].push({onLoad:nt,onProgress:rt,onError:it});const at=new Request(et,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),st=this.mimeType,lt=this.responseType;fetch(at).then(ct=>{if(ct.status===200||ct.status===0){if(ct.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||ct.body===void 0||ct.body.getReader===void 0)return ct;const ut=loading[et],ht=ct.body.getReader(),dt=ct.headers.get("Content-Length"),pt=dt?parseInt(dt):0,mt=pt!==0;let gt=0;const yt=new ReadableStream({start(bt){wt();function wt(){ht.read().then(({done:vt,value:kt})=>{if(vt)bt.close();else{gt+=kt.byteLength;const St=new ProgressEvent("progress",{lengthComputable:mt,loaded:gt,total:pt});for(let Et=0,At=ut.length;Et{switch(lt){case"arraybuffer":return ct.arrayBuffer();case"blob":return ct.blob();case"document":return ct.text().then(ut=>new DOMParser().parseFromString(ut,st));case"json":return ct.json();default:if(st===void 0)return ct.text();{const ht=/charset="?([^;"\s]*)"?/i.exec(st),dt=ht&&ht[1]?ht[1].toLowerCase():void 0,pt=new TextDecoder(dt);return ct.arrayBuffer().then(mt=>pt.decode(mt))}}}).then(ct=>{Cache.add(et,ct);const ut=loading[et];delete loading[et];for(let ht=0,dt=ut.length;ht{const ut=loading[et];if(ut===void 0)throw this.manager.itemError(et),ct;delete loading[et];for(let ht=0,dt=ut.length;ht{this.manager.itemEnd(et)}),this.manager.itemStart(et)}setResponseType(et){return this.responseType=et,this}setMimeType(et){return this.mimeType=et,this}}class AnimationLoader extends Loader$2{constructor(et){super(et)}load(et,nt,rt,it){const ot=this,at=new FileLoader(this.manager);at.setPath(this.path),at.setRequestHeader(this.requestHeader),at.setWithCredentials(this.withCredentials),at.load(et,function(st){try{nt(ot.parse(JSON.parse(st)))}catch(lt){it?it(lt):console.error(lt),ot.manager.itemError(et)}},rt,it)}parse(et){const nt=[];for(let rt=0;rt0:it.vertexColors=et.vertexColors),et.uniforms!==void 0)for(const ot in et.uniforms){const at=et.uniforms[ot];switch(it.uniforms[ot]={},at.type){case"t":it.uniforms[ot].value=rt(at.value);break;case"c":it.uniforms[ot].value=new Color$1().setHex(at.value);break;case"v2":it.uniforms[ot].value=new Vector2().fromArray(at.value);break;case"v3":it.uniforms[ot].value=new Vector3().fromArray(at.value);break;case"v4":it.uniforms[ot].value=new Vector4().fromArray(at.value);break;case"m3":it.uniforms[ot].value=new Matrix3().fromArray(at.value);break;case"m4":it.uniforms[ot].value=new Matrix4().fromArray(at.value);break;default:it.uniforms[ot].value=at.value}}if(et.defines!==void 0&&(it.defines=et.defines),et.vertexShader!==void 0&&(it.vertexShader=et.vertexShader),et.fragmentShader!==void 0&&(it.fragmentShader=et.fragmentShader),et.extensions!==void 0)for(const ot in et.extensions)it.extensions[ot]=et.extensions[ot];if(et.shading!==void 0&&(it.flatShading=et.shading===1),et.size!==void 0&&(it.size=et.size),et.sizeAttenuation!==void 0&&(it.sizeAttenuation=et.sizeAttenuation),et.map!==void 0&&(it.map=rt(et.map)),et.matcap!==void 0&&(it.matcap=rt(et.matcap)),et.alphaMap!==void 0&&(it.alphaMap=rt(et.alphaMap)),et.bumpMap!==void 0&&(it.bumpMap=rt(et.bumpMap)),et.bumpScale!==void 0&&(it.bumpScale=et.bumpScale),et.normalMap!==void 0&&(it.normalMap=rt(et.normalMap)),et.normalMapType!==void 0&&(it.normalMapType=et.normalMapType),et.normalScale!==void 0){let ot=et.normalScale;Array.isArray(ot)===!1&&(ot=[ot,ot]),it.normalScale=new Vector2().fromArray(ot)}return et.displacementMap!==void 0&&(it.displacementMap=rt(et.displacementMap)),et.displacementScale!==void 0&&(it.displacementScale=et.displacementScale),et.displacementBias!==void 0&&(it.displacementBias=et.displacementBias),et.roughnessMap!==void 0&&(it.roughnessMap=rt(et.roughnessMap)),et.metalnessMap!==void 0&&(it.metalnessMap=rt(et.metalnessMap)),et.emissiveMap!==void 0&&(it.emissiveMap=rt(et.emissiveMap)),et.emissiveIntensity!==void 0&&(it.emissiveIntensity=et.emissiveIntensity),et.specularMap!==void 0&&(it.specularMap=rt(et.specularMap)),et.specularIntensityMap!==void 0&&(it.specularIntensityMap=rt(et.specularIntensityMap)),et.specularColorMap!==void 0&&(it.specularColorMap=rt(et.specularColorMap)),et.envMap!==void 0&&(it.envMap=rt(et.envMap)),et.envMapIntensity!==void 0&&(it.envMapIntensity=et.envMapIntensity),et.reflectivity!==void 0&&(it.reflectivity=et.reflectivity),et.refractionRatio!==void 0&&(it.refractionRatio=et.refractionRatio),et.lightMap!==void 0&&(it.lightMap=rt(et.lightMap)),et.lightMapIntensity!==void 0&&(it.lightMapIntensity=et.lightMapIntensity),et.aoMap!==void 0&&(it.aoMap=rt(et.aoMap)),et.aoMapIntensity!==void 0&&(it.aoMapIntensity=et.aoMapIntensity),et.gradientMap!==void 0&&(it.gradientMap=rt(et.gradientMap)),et.clearcoatMap!==void 0&&(it.clearcoatMap=rt(et.clearcoatMap)),et.clearcoatRoughnessMap!==void 0&&(it.clearcoatRoughnessMap=rt(et.clearcoatRoughnessMap)),et.clearcoatNormalMap!==void 0&&(it.clearcoatNormalMap=rt(et.clearcoatNormalMap)),et.clearcoatNormalScale!==void 0&&(it.clearcoatNormalScale=new Vector2().fromArray(et.clearcoatNormalScale)),et.iridescenceMap!==void 0&&(it.iridescenceMap=rt(et.iridescenceMap)),et.iridescenceThicknessMap!==void 0&&(it.iridescenceThicknessMap=rt(et.iridescenceThicknessMap)),et.transmissionMap!==void 0&&(it.transmissionMap=rt(et.transmissionMap)),et.thicknessMap!==void 0&&(it.thicknessMap=rt(et.thicknessMap)),et.sheenColorMap!==void 0&&(it.sheenColorMap=rt(et.sheenColorMap)),et.sheenRoughnessMap!==void 0&&(it.sheenRoughnessMap=rt(et.sheenRoughnessMap)),it}setTextures(et){return this.textures=et,this}static createMaterialFromType(et){const nt={ShadowMaterial,SpriteMaterial,RawShaderMaterial,ShaderMaterial,PointsMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshPhongMaterial,MeshToonMaterial,MeshNormalMaterial,MeshLambertMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshBasicMaterial,MeshMatcapMaterial,LineDashedMaterial,LineBasicMaterial,Material};return new nt[et]}}class LoaderUtils{static decodeText(et){if(typeof TextDecoder<"u")return new TextDecoder().decode(et);let nt="";for(let rt=0,it=et.length;rt0){const lt=new LoadingManager(nt);ot=new ImageLoader(lt),ot.setCrossOrigin(this.crossOrigin);for(let ct=0,ut=et.length;ct0){it=new ImageLoader(this.manager),it.setCrossOrigin(this.crossOrigin);for(let at=0,st=et.length;at"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(et){return this.options=et,this}load(et,nt,rt,it){et===void 0&&(et=""),this.path!==void 0&&(et=this.path+et),et=this.manager.resolveURL(et);const ot=this,at=Cache.get(et);if(at!==void 0)return ot.manager.itemStart(et),setTimeout(function(){nt&&nt(at),ot.manager.itemEnd(et)},0),at;const st={};st.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",st.headers=this.requestHeader,fetch(et,st).then(function(lt){return lt.blob()}).then(function(lt){return createImageBitmap(lt,Object.assign(ot.options,{colorSpaceConversion:"none"}))}).then(function(lt){Cache.add(et,lt),nt&&nt(lt),ot.manager.itemEnd(et)}).catch(function(lt){it&&it(lt),ot.manager.itemError(et),ot.manager.itemEnd(et)}),ot.manager.itemStart(et)}}let _context$1;const AudioContext={getContext:function(){return _context$1===void 0&&(_context$1=new(window.AudioContext||window.webkitAudioContext)),_context$1},setContext:function(tt){_context$1=tt}};class AudioLoader extends Loader$2{constructor(et){super(et)}load(et,nt,rt,it){const ot=this,at=new FileLoader(this.manager);at.setResponseType("arraybuffer"),at.setPath(this.path),at.setRequestHeader(this.requestHeader),at.setWithCredentials(this.withCredentials),at.load(et,function(st){try{const lt=st.slice(0);AudioContext.getContext().decodeAudioData(lt,function(ut){nt(ut)})}catch(lt){it?it(lt):console.error(lt),ot.manager.itemError(et)}},rt,it)}}class HemisphereLightProbe extends LightProbe{constructor(et,nt,rt=1){super(void 0,rt),this.isHemisphereLightProbe=!0;const it=new Color$1().set(et),ot=new Color$1().set(nt),at=new Vector3(it.r,it.g,it.b),st=new Vector3(ot.r,ot.g,ot.b),lt=Math.sqrt(Math.PI),ct=lt*Math.sqrt(.75);this.sh.coefficients[0].copy(at).add(st).multiplyScalar(lt),this.sh.coefficients[1].copy(at).sub(st).multiplyScalar(ct)}}class AmbientLightProbe extends LightProbe{constructor(et,nt=1){super(void 0,nt),this.isAmbientLightProbe=!0;const rt=new Color$1().set(et);this.sh.coefficients[0].set(rt.r,rt.g,rt.b).multiplyScalar(2*Math.sqrt(Math.PI))}}const _eyeRight=new Matrix4,_eyeLeft=new Matrix4,_projectionMatrix=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new PerspectiveCamera,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new PerspectiveCamera,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(et){const nt=this._cache;if(nt.focus!==et.focus||nt.fov!==et.fov||nt.aspect!==et.aspect*this.aspect||nt.near!==et.near||nt.far!==et.far||nt.zoom!==et.zoom||nt.eyeSep!==this.eyeSep){nt.focus=et.focus,nt.fov=et.fov,nt.aspect=et.aspect*this.aspect,nt.near=et.near,nt.far=et.far,nt.zoom=et.zoom,nt.eyeSep=this.eyeSep,_projectionMatrix.copy(et.projectionMatrix);const it=nt.eyeSep/2,ot=it*nt.near/nt.focus,at=nt.near*Math.tan(DEG2RAD$1*nt.fov*.5)/nt.zoom;let st,lt;_eyeLeft.elements[12]=-it,_eyeRight.elements[12]=it,st=-at*nt.aspect+ot,lt=at*nt.aspect+ot,_projectionMatrix.elements[0]=2*nt.near/(lt-st),_projectionMatrix.elements[8]=(lt+st)/(lt-st),this.cameraL.projectionMatrix.copy(_projectionMatrix),st=-at*nt.aspect-ot,lt=at*nt.aspect-ot,_projectionMatrix.elements[0]=2*nt.near/(lt-st),_projectionMatrix.elements[8]=(lt+st)/(lt-st),this.cameraR.projectionMatrix.copy(_projectionMatrix)}this.cameraL.matrixWorld.copy(et.matrixWorld).multiply(_eyeLeft),this.cameraR.matrixWorld.copy(et.matrixWorld).multiply(_eyeRight)}}let Clock$1=class{constructor(et=!0){this.autoStart=et,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=now$5(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let et=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const nt=now$5();et=(nt-this.oldTime)/1e3,this.oldTime=nt,this.elapsedTime+=et}return et}};function now$5(){return(typeof performance>"u"?Date:performance).now()}const _position$1=new Vector3,_quaternion$1=new Quaternion,_scale$1=new Vector3,_orientation$1=new Vector3;class AudioListener extends Object3D{constructor(){super(),this.type="AudioListener",this.context=AudioContext.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Clock$1}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(et){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=et,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(et){return this.gain.gain.setTargetAtTime(et,this.context.currentTime,.01),this}updateMatrixWorld(et){super.updateMatrixWorld(et);const nt=this.context.listener,rt=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1),_orientation$1.set(0,0,-1).applyQuaternion(_quaternion$1),nt.positionX){const it=this.context.currentTime+this.timeDelta;nt.positionX.linearRampToValueAtTime(_position$1.x,it),nt.positionY.linearRampToValueAtTime(_position$1.y,it),nt.positionZ.linearRampToValueAtTime(_position$1.z,it),nt.forwardX.linearRampToValueAtTime(_orientation$1.x,it),nt.forwardY.linearRampToValueAtTime(_orientation$1.y,it),nt.forwardZ.linearRampToValueAtTime(_orientation$1.z,it),nt.upX.linearRampToValueAtTime(rt.x,it),nt.upY.linearRampToValueAtTime(rt.y,it),nt.upZ.linearRampToValueAtTime(rt.z,it)}else nt.setPosition(_position$1.x,_position$1.y,_position$1.z),nt.setOrientation(_orientation$1.x,_orientation$1.y,_orientation$1.z,rt.x,rt.y,rt.z)}}let Audio$1=class extends Object3D{constructor(et){super(),this.type="Audio",this.listener=et,this.context=et.context,this.gain=this.context.createGain(),this.gain.connect(et.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(et){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=et,this.connect(),this}setMediaElementSource(et){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(et),this.connect(),this}setMediaStreamSource(et){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(et),this.connect(),this}setBuffer(et){return this.buffer=et,this.sourceType="buffer",this.autoplay&&this.play(),this}play(et=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+et;const nt=this.context.createBufferSource();return nt.buffer=this.buffer,nt.loop=this.loop,nt.loopStart=this.loopStart,nt.loopEnd=this.loopEnd,nt.onended=this.onEnded.bind(this),nt.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=nt,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let et=1,nt=this.filters.length;et0){this.source.disconnect(this.filters[0]);for(let et=1,nt=this.filters.length;et0&&this._mixBufferRegionAdditive(rt,it,this._addIndex*nt,1,nt);for(let lt=nt,ct=nt+nt;lt!==ct;++lt)if(rt[lt]!==rt[lt+nt]){st.setValue(rt,it);break}}saveOriginalState(){const et=this.binding,nt=this.buffer,rt=this.valueSize,it=rt*this._origIndex;et.getValue(nt,it);for(let ot=rt,at=it;ot!==at;++ot)nt[ot]=nt[it+ot%rt];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const et=this.valueSize*3;this.binding.setValue(this.buffer,et)}_setAdditiveIdentityNumeric(){const et=this._addIndex*this.valueSize,nt=et+this.valueSize;for(let rt=et;rt=.5)for(let at=0;at!==ot;++at)et[nt+at]=et[rt+at]}_slerp(et,nt,rt,it){Quaternion.slerpFlat(et,nt,et,nt,et,rt,it)}_slerpAdditive(et,nt,rt,it,ot){const at=this._workIndex*ot;Quaternion.multiplyQuaternionsFlat(et,at,et,nt,et,rt),Quaternion.slerpFlat(et,nt,et,nt,et,at,it)}_lerp(et,nt,rt,it,ot){const at=1-it;for(let st=0;st!==ot;++st){const lt=nt+st;et[lt]=et[lt]*at+et[rt+st]*it}}_lerpAdditive(et,nt,rt,it,ot){for(let at=0;at!==ot;++at){const st=nt+at;et[st]=et[st]+et[rt+at]*it}}}const _RESERVED_CHARS_RE="\\[\\]\\.:\\/",_reservedRe=new RegExp("["+_RESERVED_CHARS_RE+"]","g"),_wordChar="[^"+_RESERVED_CHARS_RE+"]",_wordCharOrDot="[^"+_RESERVED_CHARS_RE.replace("\\.","")+"]",_directoryRe=/((?:WC+[\/:])*)/.source.replace("WC",_wordChar),_nodeRe=/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot),_objectRe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",_wordChar),_propertyRe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",_wordChar),_trackRe=new RegExp("^"+_directoryRe+_nodeRe+_objectRe+_propertyRe+"$"),_supportedObjectNames=["material","materials","bones"];class Composite{constructor(et,nt,rt){const it=rt||PropertyBinding.parseTrackName(nt);this._targetGroup=et,this._bindings=et.subscribe_(nt,it)}getValue(et,nt){this.bind();const rt=this._targetGroup.nCachedObjects_,it=this._bindings[rt];it!==void 0&&it.getValue(et,nt)}setValue(et,nt){const rt=this._bindings;for(let it=this._targetGroup.nCachedObjects_,ot=rt.length;it!==ot;++it)rt[it].setValue(et,nt)}bind(){const et=this._bindings;for(let nt=this._targetGroup.nCachedObjects_,rt=et.length;nt!==rt;++nt)et[nt].bind()}unbind(){const et=this._bindings;for(let nt=this._targetGroup.nCachedObjects_,rt=et.length;nt!==rt;++nt)et[nt].unbind()}}class PropertyBinding{constructor(et,nt,rt){this.path=nt,this.parsedPath=rt||PropertyBinding.parseTrackName(nt),this.node=PropertyBinding.findNode(et,this.parsedPath.nodeName)||et,this.rootNode=et,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(et,nt,rt){return et&&et.isAnimationObjectGroup?new PropertyBinding.Composite(et,nt,rt):new PropertyBinding(et,nt,rt)}static sanitizeNodeName(et){return et.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(et){const nt=_trackRe.exec(et);if(nt===null)throw new Error("PropertyBinding: Cannot parse trackName: "+et);const rt={nodeName:nt[2],objectName:nt[3],objectIndex:nt[4],propertyName:nt[5],propertyIndex:nt[6]},it=rt.nodeName&&rt.nodeName.lastIndexOf(".");if(it!==void 0&&it!==-1){const ot=rt.nodeName.substring(it+1);_supportedObjectNames.indexOf(ot)!==-1&&(rt.nodeName=rt.nodeName.substring(0,it),rt.objectName=ot)}if(rt.propertyName===null||rt.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+et);return rt}static findNode(et,nt){if(nt===void 0||nt===""||nt==="."||nt===-1||nt===et.name||nt===et.uuid)return et;if(et.skeleton){const rt=et.skeleton.getBoneByName(nt);if(rt!==void 0)return rt}if(et.children){const rt=function(ot){for(let at=0;at=ot){const ht=ot++,dt=et[ht];nt[dt.uuid]=ut,et[ut]=dt,nt[ct]=ht,et[ht]=lt;for(let pt=0,mt=it;pt!==mt;++pt){const gt=rt[pt],yt=gt[ht],bt=gt[ut];gt[ut]=yt,gt[ht]=bt}}}this.nCachedObjects_=ot}uncache(){const et=this._objects,nt=this._indicesByUUID,rt=this._bindings,it=rt.length;let ot=this.nCachedObjects_,at=et.length;for(let st=0,lt=arguments.length;st!==lt;++st){const ct=arguments[st],ut=ct.uuid,ht=nt[ut];if(ht!==void 0)if(delete nt[ut],ht0&&(nt[pt.uuid]=ht),et[ht]=pt,et.pop();for(let mt=0,gt=it;mt!==gt;++mt){const yt=rt[mt];yt[ht]=yt[dt],yt.pop()}}}this.nCachedObjects_=ot}subscribe_(et,nt){const rt=this._bindingsIndicesByPath;let it=rt[et];const ot=this._bindings;if(it!==void 0)return ot[it];const at=this._paths,st=this._parsedPaths,lt=this._objects,ct=lt.length,ut=this.nCachedObjects_,ht=new Array(ct);it=ot.length,rt[et]=it,at.push(et),st.push(nt),ot.push(ht);for(let dt=ut,pt=lt.length;dt!==pt;++dt){const mt=lt[dt];ht[dt]=new PropertyBinding(mt,et,nt)}return ht}unsubscribe_(et){const nt=this._bindingsIndicesByPath,rt=nt[et];if(rt!==void 0){const it=this._paths,ot=this._parsedPaths,at=this._bindings,st=at.length-1,lt=at[st],ct=et[st];nt[ct]=rt,at[rt]=lt,at.pop(),ot[rt]=ot[st],ot.pop(),it[rt]=it[st],it.pop()}}}class AnimationAction{constructor(et,nt,rt=null,it=nt.blendMode){this._mixer=et,this._clip=nt,this._localRoot=rt,this.blendMode=it;const ot=nt.tracks,at=ot.length,st=new Array(at),lt={endingStart:ZeroCurvatureEnding,endingEnd:ZeroCurvatureEnding};for(let ct=0;ct!==at;++ct){const ut=ot[ct].createInterpolant(null);st[ct]=ut,ut.settings=lt}this._interpolantSettings=lt,this._interpolants=st,this._propertyBindings=new Array(at),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=LoopRepeat,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(et){return this._startTime=et,this}setLoop(et,nt){return this.loop=et,this.repetitions=nt,this}setEffectiveWeight(et){return this.weight=et,this._effectiveWeight=this.enabled?et:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(et){return this._scheduleFading(et,0,1)}fadeOut(et){return this._scheduleFading(et,1,0)}crossFadeFrom(et,nt,rt){if(et.fadeOut(nt),this.fadeIn(nt),rt){const it=this._clip.duration,ot=et._clip.duration,at=ot/it,st=it/ot;et.warp(1,at,nt),this.warp(st,1,nt)}return this}crossFadeTo(et,nt,rt){return et.crossFadeFrom(this,nt,rt)}stopFading(){const et=this._weightInterpolant;return et!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(et)),this}setEffectiveTimeScale(et){return this.timeScale=et,this._effectiveTimeScale=this.paused?0:et,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(et){return this.timeScale=this._clip.duration/et,this.stopWarping()}syncWith(et){return this.time=et.time,this.timeScale=et.timeScale,this.stopWarping()}halt(et){return this.warp(this._effectiveTimeScale,0,et)}warp(et,nt,rt){const it=this._mixer,ot=it.time,at=this.timeScale;let st=this._timeScaleInterpolant;st===null&&(st=it._lendControlInterpolant(),this._timeScaleInterpolant=st);const lt=st.parameterPositions,ct=st.sampleValues;return lt[0]=ot,lt[1]=ot+rt,ct[0]=et/at,ct[1]=nt/at,this}stopWarping(){const et=this._timeScaleInterpolant;return et!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(et)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(et,nt,rt,it){if(!this.enabled){this._updateWeight(et);return}const ot=this._startTime;if(ot!==null){const lt=(et-ot)*rt;if(lt<0||rt===0)return;this._startTime=null,nt=rt*lt}nt*=this._updateTimeScale(et);const at=this._updateTime(nt),st=this._updateWeight(et);if(st>0){const lt=this._interpolants,ct=this._propertyBindings;switch(this.blendMode){case AdditiveAnimationBlendMode:for(let ut=0,ht=lt.length;ut!==ht;++ut)lt[ut].evaluate(at),ct[ut].accumulateAdditive(st);break;case NormalAnimationBlendMode:default:for(let ut=0,ht=lt.length;ut!==ht;++ut)lt[ut].evaluate(at),ct[ut].accumulate(it,st)}}}_updateWeight(et){let nt=0;if(this.enabled){nt=this.weight;const rt=this._weightInterpolant;if(rt!==null){const it=rt.evaluate(et)[0];nt*=it,et>rt.parameterPositions[1]&&(this.stopFading(),it===0&&(this.enabled=!1))}}return this._effectiveWeight=nt,nt}_updateTimeScale(et){let nt=0;if(!this.paused){nt=this.timeScale;const rt=this._timeScaleInterpolant;if(rt!==null){const it=rt.evaluate(et)[0];nt*=it,et>rt.parameterPositions[1]&&(this.stopWarping(),nt===0?this.paused=!0:this.timeScale=nt)}}return this._effectiveTimeScale=nt,nt}_updateTime(et){const nt=this._clip.duration,rt=this.loop;let it=this.time+et,ot=this._loopCount;const at=rt===LoopPingPong;if(et===0)return ot===-1?it:at&&(ot&1)===1?nt-it:it;if(rt===LoopOnce){ot===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(it>=nt)it=nt;else if(it<0)it=0;else{this.time=it;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=it,this._mixer.dispatchEvent({type:"finished",action:this,direction:et<0?-1:1})}}else{if(ot===-1&&(et>=0?(ot=0,this._setEndings(!0,this.repetitions===0,at)):this._setEndings(this.repetitions===0,!0,at)),it>=nt||it<0){const st=Math.floor(it/nt);it-=nt*st,ot+=Math.abs(st);const lt=this.repetitions-ot;if(lt<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,it=et>0?nt:0,this.time=it,this._mixer.dispatchEvent({type:"finished",action:this,direction:et>0?1:-1});else{if(lt===1){const ct=et<0;this._setEndings(ct,!ct,at)}else this._setEndings(!1,!1,at);this._loopCount=ot,this.time=it,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:st})}}else this.time=it;if(at&&(ot&1)===1)return nt-it}return it}_setEndings(et,nt,rt){const it=this._interpolantSettings;rt?(it.endingStart=ZeroSlopeEnding,it.endingEnd=ZeroSlopeEnding):(et?it.endingStart=this.zeroSlopeAtStart?ZeroSlopeEnding:ZeroCurvatureEnding:it.endingStart=WrapAroundEnding,nt?it.endingEnd=this.zeroSlopeAtEnd?ZeroSlopeEnding:ZeroCurvatureEnding:it.endingEnd=WrapAroundEnding)}_scheduleFading(et,nt,rt){const it=this._mixer,ot=it.time;let at=this._weightInterpolant;at===null&&(at=it._lendControlInterpolant(),this._weightInterpolant=at);const st=at.parameterPositions,lt=at.sampleValues;return st[0]=ot,lt[0]=nt,st[1]=ot+et,lt[1]=rt,this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher$1{constructor(et){super(),this._root=et,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(et,nt){const rt=et._localRoot||this._root,it=et._clip.tracks,ot=it.length,at=et._propertyBindings,st=et._interpolants,lt=rt.uuid,ct=this._bindingsByRootAndName;let ut=ct[lt];ut===void 0&&(ut={},ct[lt]=ut);for(let ht=0;ht!==ot;++ht){const dt=it[ht],pt=dt.name;let mt=ut[pt];if(mt!==void 0)++mt.referenceCount,at[ht]=mt;else{if(mt=at[ht],mt!==void 0){mt._cacheIndex===null&&(++mt.referenceCount,this._addInactiveBinding(mt,lt,pt));continue}const gt=nt&&nt._propertyBindings[ht].binding.parsedPath;mt=new PropertyMixer(PropertyBinding.create(rt,pt,gt),dt.ValueTypeName,dt.getValueSize()),++mt.referenceCount,this._addInactiveBinding(mt,lt,pt),at[ht]=mt}st[ht].resultBuffer=mt.buffer}}_activateAction(et){if(!this._isActiveAction(et)){if(et._cacheIndex===null){const rt=(et._localRoot||this._root).uuid,it=et._clip.uuid,ot=this._actionsByClip[it];this._bindAction(et,ot&&ot.knownActions[0]),this._addInactiveAction(et,it,rt)}const nt=et._propertyBindings;for(let rt=0,it=nt.length;rt!==it;++rt){const ot=nt[rt];ot.useCount++===0&&(this._lendBinding(ot),ot.saveOriginalState())}this._lendAction(et)}}_deactivateAction(et){if(this._isActiveAction(et)){const nt=et._propertyBindings;for(let rt=0,it=nt.length;rt!==it;++rt){const ot=nt[rt];--ot.useCount===0&&(ot.restoreOriginalState(),this._takeBackBinding(ot))}this._takeBackAction(et)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const et=this;this.stats={actions:{get total(){return et._actions.length},get inUse(){return et._nActiveActions}},bindings:{get total(){return et._bindings.length},get inUse(){return et._nActiveBindings}},controlInterpolants:{get total(){return et._controlInterpolants.length},get inUse(){return et._nActiveControlInterpolants}}}}_isActiveAction(et){const nt=et._cacheIndex;return nt!==null&&nt=0;--rt)et[rt].stop();return this}update(et){et*=this.timeScale;const nt=this._actions,rt=this._nActiveActions,it=this.time+=et,ot=Math.sign(et),at=this._accuIndex^=1;for(let ct=0;ct!==rt;++ct)nt[ct]._update(it,et,ot,at);const st=this._bindings,lt=this._nActiveBindings;for(let ct=0;ct!==lt;++ct)st[ct].apply(at);return this}setTime(et){this.time=0;for(let nt=0;ntthis.max.x||et.ythis.max.y)}containsBox(et){return this.min.x<=et.min.x&&et.max.x<=this.max.x&&this.min.y<=et.min.y&&et.max.y<=this.max.y}getParameter(et,nt){return nt.set((et.x-this.min.x)/(this.max.x-this.min.x),(et.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(et){return!(et.max.xthis.max.x||et.max.ythis.max.y)}clampPoint(et,nt){return nt.copy(et).clamp(this.min,this.max)}distanceToPoint(et){return _vector$4.copy(et).clamp(this.min,this.max).sub(et).length()}intersect(et){return this.min.max(et.min),this.max.min(et.max),this}union(et){return this.min.min(et.min),this.max.max(et.max),this}translate(et){return this.min.add(et),this.max.add(et),this}equals(et){return et.min.equals(this.min)&&et.max.equals(this.max)}}const _startP=new Vector3,_startEnd=new Vector3;class Line3{constructor(et=new Vector3,nt=new Vector3){this.start=et,this.end=nt}set(et,nt){return this.start.copy(et),this.end.copy(nt),this}copy(et){return this.start.copy(et.start),this.end.copy(et.end),this}getCenter(et){return et.addVectors(this.start,this.end).multiplyScalar(.5)}delta(et){return et.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(et,nt){return this.delta(nt).multiplyScalar(et).add(this.start)}closestPointToPointParameter(et,nt){_startP.subVectors(et,this.start),_startEnd.subVectors(this.end,this.start);const rt=_startEnd.dot(_startEnd);let ot=_startEnd.dot(_startP)/rt;return nt&&(ot=clamp$4(ot,0,1)),ot}closestPointToPoint(et,nt,rt){const it=this.closestPointToPointParameter(et,nt);return this.delta(rt).multiplyScalar(it).add(this.start)}applyMatrix4(et){return this.start.applyMatrix4(et),this.end.applyMatrix4(et),this}equals(et){return et.start.equals(this.start)&&et.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const _vector$3=new Vector3;class SpotLightHelper extends Object3D{constructor(et,nt){super(),this.light=et,this.light.updateMatrixWorld(),this.matrix=et.matrixWorld,this.matrixAutoUpdate=!1,this.color=nt;const rt=new BufferGeometry,it=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let at=0,st=1,lt=32;at.99999)this.quaternion.set(0,0,0,1);else if(et.y<-.99999)this.quaternion.set(1,0,0,0);else{_axis.set(et.z,0,-et.x).normalize();const nt=Math.acos(et.y);this.quaternion.setFromAxisAngle(_axis,nt)}}setLength(et,nt=et*.2,rt=nt*.2){this.line.scale.set(1,Math.max(1e-4,et-nt),1),this.line.updateMatrix(),this.cone.scale.set(rt,nt,rt),this.cone.position.y=et,this.cone.updateMatrix()}setColor(et){this.line.material.color.set(et),this.cone.material.color.set(et)}copy(et){return super.copy(et,!1),this.line.copy(et.line),this.cone.copy(et.cone),this}}class AxesHelper extends LineSegments{constructor(et=1){const nt=[0,0,0,et,0,0,0,0,0,0,et,0,0,0,0,0,0,et],rt=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],it=new BufferGeometry;it.setAttribute("position",new Float32BufferAttribute(nt,3)),it.setAttribute("color",new Float32BufferAttribute(rt,3));const ot=new LineBasicMaterial({vertexColors:!0,toneMapped:!1});super(it,ot),this.type="AxesHelper"}setColors(et,nt,rt){const it=new Color$1,ot=this.geometry.attributes.color.array;return it.set(et),it.toArray(ot,0),it.toArray(ot,3),it.set(nt),it.toArray(ot,6),it.toArray(ot,9),it.set(rt),it.toArray(ot,12),it.toArray(ot,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath",this.color=new Color$1,this.subPaths=[],this.currentPath=null}moveTo(et,nt){return this.currentPath=new Path$1,this.subPaths.push(this.currentPath),this.currentPath.moveTo(et,nt),this}lineTo(et,nt){return this.currentPath.lineTo(et,nt),this}quadraticCurveTo(et,nt,rt,it){return this.currentPath.quadraticCurveTo(et,nt,rt,it),this}bezierCurveTo(et,nt,rt,it,ot,at){return this.currentPath.bezierCurveTo(et,nt,rt,it,ot,at),this}splineThru(et){return this.currentPath.splineThru(et),this}toShapes(et,nt){function rt(wt){const vt=[];for(let kt=0,St=wt.length;ktNumber.EPSILON){if(jt<0&&(Tt=vt[At],Lt=-Lt,Mt=vt[Et],jt=-jt),wt.yMt.y)continue;if(wt.y===Tt.y){if(wt.x===Tt.x)return!0}else{const Rt=jt*(wt.x-Tt.x)-Lt*(wt.y-Tt.y);if(Rt===0)return!0;if(Rt<0)continue;St=!St}}else{if(wt.y!==Tt.y)continue;if(Mt.x<=wt.x&&wt.x<=Tt.x||Tt.x<=wt.x&&wt.x<=Mt.x)return!0}}return St}const ot=ShapeUtils.isClockWise,at=this.subPaths;if(at.length===0)return[];if(nt===!0)return rt(at);let st,lt,ct;const ut=[];if(at.length===1)return lt=at[0],ct=new Shape,ct.curves=lt.curves,ut.push(ct),ut;let ht=!ot(at[0].getPoints());ht=et?!ht:ht;const dt=[],pt=[];let mt=[],gt=0,yt;pt[gt]=void 0,mt[gt]=[];for(let wt=0,vt=at.length;wt1){let wt=!1,vt=0;for(let kt=0,St=pt.length;kt0&&wt===!1&&(mt=dt)}let bt;for(let wt=0,vt=pt.length;wt>-ct-14,rt[lt|256]=1024>>-ct-14|32768,it[lt]=-ct-1,it[lt|256]=-ct-1):ct<=15?(rt[lt]=ct+15<<10,rt[lt|256]=ct+15<<10|32768,it[lt]=13,it[lt|256]=13):ct<128?(rt[lt]=31744,rt[lt|256]=64512,it[lt]=24,it[lt|256]=24):(rt[lt]=31744,rt[lt|256]=64512,it[lt]=13,it[lt|256]=13)}const ot=new Uint32Array(2048),at=new Uint32Array(64),st=new Uint32Array(64);for(let lt=1;lt<1024;++lt){let ct=lt<<13,ut=0;for(;!(ct&8388608);)ct<<=1,ut-=8388608;ct&=-8388609,ut+=947912704,ot[lt]=ct|ut}for(let lt=1024;lt<2048;++lt)ot[lt]=939524096+(lt-1024<<13);for(let lt=1;lt<31;++lt)at[lt]=lt<<23;at[31]=1199570944,at[32]=2147483648;for(let lt=33;lt<63;++lt)at[lt]=2147483648+(lt-32<<23);at[63]=3347054592;for(let lt=1;lt<64;++lt)lt!==32&&(st[lt]=1024);return{floatView:et,uint32View:nt,baseTable:rt,shiftTable:it,mantissaTable:ot,exponentTable:at,offsetTable:st}}function toHalfFloat(tt){Math.abs(tt)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),tt=clamp$4(tt,-65504,65504),_tables.floatView[0]=tt;const et=_tables.uint32View[0],nt=et>>23&511;return _tables.baseTable[nt]+((et&8388607)>>_tables.shiftTable[nt])}function fromHalfFloat(tt){const et=tt>>10;return _tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[et]+(tt&1023)]+_tables.exponentTable[et],_tables.floatView[0]}var DataUtils=Object.freeze({__proto__:null,toHalfFloat,fromHalfFloat});class ParametricGeometry extends BufferGeometry{constructor(){console.error("THREE.ParametricGeometry has been moved to /examples/jsm/geometries/ParametricGeometry.js"),super()}}class TextGeometry extends BufferGeometry{constructor(){console.error("THREE.TextGeometry has been moved to /examples/jsm/geometries/TextGeometry.js"),super()}}function FontLoader(){console.error("THREE.FontLoader has been moved to /examples/jsm/loaders/FontLoader.js")}function Font(){console.error("THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js")}function ImmediateRenderObject(){console.error("THREE.ImmediateRenderObject has been removed.")}class WebGLMultisampleRenderTarget extends WebGLRenderTarget{constructor(et,nt,rt){console.error('THREE.WebGLMultisampleRenderTarget has been removed. Use a normal render target and set the "samples" property to greater 0 to enable multisampling.'),super(et,nt,rt),this.samples=4}}class DataTexture2DArray extends DataArrayTexture{constructor(et,nt,rt,it){console.warn("THREE.DataTexture2DArray has been renamed to DataArrayTexture."),super(et,nt,rt,it)}}class DataTexture3D extends Data3DTexture{constructor(et,nt,rt,it){console.warn("THREE.DataTexture3D has been renamed to Data3DTexture."),super(et,nt,rt,it)}}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:REVISION}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=REVISION);const THREE$1=Object.freeze(Object.defineProperty({__proto__:null,ACESFilmicToneMapping,AddEquation,AddOperation,AdditiveAnimationBlendMode,AdditiveBlending,AlphaFormat,AlwaysDepth,AlwaysStencilFunc,AmbientLight,AmbientLightProbe,AnimationClip,AnimationLoader,AnimationMixer,AnimationObjectGroup,AnimationUtils,ArcCurve,ArrayCamera,ArrowHelper,Audio:Audio$1,AudioAnalyser,AudioContext,AudioListener,AudioLoader,AxesHelper,BackSide,BasicDepthPacking,BasicShadowMap,Bone,BooleanKeyframeTrack,Box2,Box3,Box3Helper,BoxBufferGeometry:BoxGeometry,BoxGeometry,BoxHelper,BufferAttribute,BufferGeometry,BufferGeometryLoader,ByteType,Cache,Camera,CameraHelper,CanvasTexture,CapsuleBufferGeometry:CapsuleGeometry,CapsuleGeometry,CatmullRomCurve3,CineonToneMapping,CircleBufferGeometry:CircleGeometry,CircleGeometry,ClampToEdgeWrapping,Clock:Clock$1,Color:Color$1,ColorKeyframeTrack,ColorManagement,CompressedTexture,CompressedTextureLoader,ConeBufferGeometry:ConeGeometry,ConeGeometry,CubeCamera,CubeReflectionMapping,CubeRefractionMapping,CubeTexture,CubeTextureLoader,CubeUVReflectionMapping,CubicBezierCurve,CubicBezierCurve3,CubicInterpolant,CullFaceBack,CullFaceFront,CullFaceFrontBack,CullFaceNone,Curve:Curve$1,CurvePath,CustomBlending,CustomToneMapping,CylinderBufferGeometry:CylinderGeometry,CylinderGeometry,Cylindrical,Data3DTexture,DataArrayTexture,DataTexture,DataTexture2DArray,DataTexture3D,DataTextureLoader,DataUtils,DecrementStencilOp,DecrementWrapStencilOp,DefaultLoadingManager,DepthFormat,DepthStencilFormat,DepthTexture,DirectionalLight,DirectionalLightHelper,DiscreteInterpolant,DodecahedronBufferGeometry:DodecahedronGeometry,DodecahedronGeometry,DoubleSide,DstAlphaFactor,DstColorFactor,DynamicCopyUsage,DynamicDrawUsage,DynamicReadUsage,EdgesGeometry,EllipseCurve,EqualDepth,EqualStencilFunc,EquirectangularReflectionMapping,EquirectangularRefractionMapping,Euler,EventDispatcher:EventDispatcher$1,ExtrudeBufferGeometry:ExtrudeGeometry,ExtrudeGeometry,FileLoader,FlatShading,Float16BufferAttribute,Float32BufferAttribute,Float64BufferAttribute,FloatType,Fog,FogExp2,Font,FontLoader,FramebufferTexture,FrontSide,Frustum,GLBufferAttribute,GLSL1,GLSL3,GreaterDepth,GreaterEqualDepth,GreaterEqualStencilFunc,GreaterStencilFunc,GridHelper,Group,HalfFloatType,HemisphereLight,HemisphereLightHelper,HemisphereLightProbe,IcosahedronBufferGeometry:IcosahedronGeometry,IcosahedronGeometry,ImageBitmapLoader,ImageLoader,ImageUtils,ImmediateRenderObject,IncrementStencilOp,IncrementWrapStencilOp,InstancedBufferAttribute,InstancedBufferGeometry,InstancedInterleavedBuffer,InstancedMesh,Int16BufferAttribute,Int32BufferAttribute,Int8BufferAttribute,IntType,InterleavedBuffer,InterleavedBufferAttribute,Interpolant,InterpolateDiscrete,InterpolateLinear,InterpolateSmooth,InvertStencilOp,KeepStencilOp,KeyframeTrack,LOD,LatheBufferGeometry:LatheGeometry,LatheGeometry,Layers,LessDepth,LessEqualDepth,LessEqualStencilFunc,LessStencilFunc,Light,LightProbe,Line:Line$2,Line3,LineBasicMaterial,LineCurve,LineCurve3,LineDashedMaterial,LineLoop,LineSegments,LinearEncoding,LinearFilter,LinearInterpolant,LinearMipMapLinearFilter,LinearMipMapNearestFilter,LinearMipmapLinearFilter,LinearMipmapNearestFilter,LinearSRGBColorSpace:LinearSRGBColorSpace$1,LinearToneMapping,Loader:Loader$2,LoaderUtils,LoadingManager,LoopOnce,LoopPingPong,LoopRepeat,LuminanceAlphaFormat,LuminanceFormat,MOUSE,Material,MaterialLoader,MathUtils,Matrix3,Matrix4,MaxEquation,Mesh,MeshBasicMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshLambertMaterial,MeshMatcapMaterial,MeshNormalMaterial,MeshPhongMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshToonMaterial,MinEquation,MirroredRepeatWrapping,MixOperation,MultiplyBlending,MultiplyOperation,NearestFilter,NearestMipMapLinearFilter,NearestMipMapNearestFilter,NearestMipmapLinearFilter,NearestMipmapNearestFilter,NeverDepth,NeverStencilFunc,NoBlending,NoColorSpace:NoColorSpace$1,NoToneMapping,NormalAnimationBlendMode,NormalBlending,NotEqualDepth,NotEqualStencilFunc,NumberKeyframeTrack,Object3D,ObjectLoader,ObjectSpaceNormalMap,OctahedronBufferGeometry:OctahedronGeometry,OctahedronGeometry,OneFactor,OneMinusDstAlphaFactor,OneMinusDstColorFactor,OneMinusSrcAlphaFactor,OneMinusSrcColorFactor,OrthographicCamera,PCFShadowMap,PCFSoftShadowMap,PMREMGenerator,ParametricGeometry,Path:Path$1,PerspectiveCamera,Plane,PlaneBufferGeometry:PlaneGeometry,PlaneGeometry,PlaneHelper,PointLight,PointLightHelper,Points,PointsMaterial,PolarGridHelper,PolyhedronBufferGeometry:PolyhedronGeometry,PolyhedronGeometry,PositionalAudio,PropertyBinding,PropertyMixer,QuadraticBezierCurve,QuadraticBezierCurve3,Quaternion,QuaternionKeyframeTrack,QuaternionLinearInterpolant,REVISION,RGBADepthPacking,RGBAFormat,RGBAIntegerFormat,RGBA_ASTC_10x10_Format,RGBA_ASTC_10x5_Format,RGBA_ASTC_10x6_Format,RGBA_ASTC_10x8_Format,RGBA_ASTC_12x10_Format,RGBA_ASTC_12x12_Format,RGBA_ASTC_4x4_Format,RGBA_ASTC_5x4_Format,RGBA_ASTC_5x5_Format,RGBA_ASTC_6x5_Format,RGBA_ASTC_6x6_Format,RGBA_ASTC_8x5_Format,RGBA_ASTC_8x6_Format,RGBA_ASTC_8x8_Format,RGBA_BPTC_Format,RGBA_ETC2_EAC_Format,RGBA_PVRTC_2BPPV1_Format,RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format,RGBA_S3TC_DXT3_Format,RGBA_S3TC_DXT5_Format,RGBFormat,RGB_ETC1_Format,RGB_ETC2_Format,RGB_PVRTC_2BPPV1_Format,RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format,RGFormat,RGIntegerFormat,RawShaderMaterial,Ray,Raycaster,RectAreaLight,RedFormat,RedIntegerFormat,ReinhardToneMapping,RepeatWrapping,ReplaceStencilOp,ReverseSubtractEquation,RingBufferGeometry:RingGeometry,RingGeometry,SRGBColorSpace:SRGBColorSpace$1,Scene,ShaderChunk,ShaderLib,ShaderMaterial,ShadowMaterial,Shape,ShapeBufferGeometry:ShapeGeometry,ShapeGeometry,ShapePath,ShapeUtils,ShortType,Skeleton,SkeletonHelper,SkinnedMesh,SmoothShading,Source:Source$1,Sphere,SphereBufferGeometry:SphereGeometry,SphereGeometry,Spherical,SphericalHarmonics3,SplineCurve,SpotLight,SpotLightHelper,Sprite,SpriteMaterial,SrcAlphaFactor,SrcAlphaSaturateFactor,SrcColorFactor,StaticCopyUsage,StaticDrawUsage,StaticReadUsage,StereoCamera,StreamCopyUsage,StreamDrawUsage,StreamReadUsage,StringKeyframeTrack,SubtractEquation,SubtractiveBlending,TOUCH,TangentSpaceNormalMap,TetrahedronBufferGeometry:TetrahedronGeometry,TetrahedronGeometry,TextGeometry,Texture,TextureLoader,TorusBufferGeometry:TorusGeometry,TorusGeometry,TorusKnotBufferGeometry:TorusKnotGeometry,TorusKnotGeometry,Triangle,TriangleFanDrawMode,TriangleStripDrawMode,TrianglesDrawMode,TubeBufferGeometry:TubeGeometry,TubeGeometry,UVMapping,Uint16BufferAttribute,Uint32BufferAttribute,Uint8BufferAttribute,Uint8ClampedBufferAttribute,Uniform,UniformsGroup,UniformsLib,UniformsUtils,UnsignedByteType,UnsignedInt248Type,UnsignedIntType,UnsignedShort4444Type,UnsignedShort5551Type,UnsignedShortType,VSMShadowMap,Vector2,Vector3,Vector4,VectorKeyframeTrack,VideoTexture,WebGL1Renderer,WebGL3DRenderTarget,WebGLArrayRenderTarget,WebGLCubeRenderTarget,WebGLMultipleRenderTargets,WebGLMultisampleRenderTarget,WebGLRenderTarget,WebGLRenderer,WebGLUtils,WireframeGeometry,WrapAroundEnding,ZeroCurvatureEnding,ZeroFactor,ZeroSlopeEnding,ZeroStencilOp,_SRGBAFormat,sRGBEncoding},Symbol.toStringTag,{value:"Module"})),variableVector3$1=new Vector3(0,0,0),outlineEffectColor=16777215,nodesAreRelatives=(tt,et)=>{var ot,at;if(!(tt!=null&&tt.ref_id)||!(et!=null&&et.ref_id))return!1;let nt=!1;const rt=tt.guests,it=et.guests;return((ot=tt.children)!=null&&ot.includes(et.ref_id)||(at=et.children)!=null&&at.includes(tt.ref_id))&&(nt=!0),(rt!=null&&rt.find(st=>st.ref_id===et.ref_id)||it!=null&&it.find(st=>st.ref_id===tt.ref_id))&&(nt=!0),nt},mock={exact:[{boost:0,date:1672152975,description:"The credit card debt and job growth in the US economy",episode_title:"Café ₿: #Bitcoin Holiday Hangout & @StatusMoneyUSA a #BTC Credit Card",guests:[{name:" BITVOLT7",profile_picture:"https://pbs.twimg.com/profile_images/1532194001511714818/O8nSTKcx_400x400.png",ref_id:"2b9913b7-393c-4125-9aeb-4a8bf32bfa44",twitter_handle:"BITVOLT7"},{name:" samcallah",profile_picture:"https://pbs.twimg.com/profile_images/1502454836981166082/cQG0YQxc_400x400.jpg",ref_id:"a3dbdb56-e228-4382-98bc-d4495ff6dfbd",twitter_handle:"samcallah"},{name:" taodejing2",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"4914799b-a230-4bee-95c9-cf3ac44b6b70",twitter_handle:"TyonClubhouse"},{name:" MrHodl",profile_picture:"https://pbs.twimg.com/profile_images/1607490976670519296/vhLAojMR_400x400.jpg",ref_id:"01d6ee68-c0ef-4ead-b2b7-7eb04694519e",twitter_handle:"MrHodl"},{name:" TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"57beb381-b9e8-4dd1-82f6-4e544a63146b",twitter_handle:"TomerStrolight"},{name:" VailshireCap",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"73c15965-ddad-4e32-9746-da92f5d24134",twitter_handle:"VailshireCap"},{name:"bergealex4",profile_picture:"https://pbs.twimg.com/profile_images/1273374628577247233/tYigkAZH_400x400.jpg",ref_id:"da4bb8ab-540d-4f88-a2a6-f3a3941c5b74",twitter_handle:"bergealex4"},{name:" LukeMikic21",profile_picture:"https://pbs.twimg.com/profile_images/1604626418708742147/gWyVLeqa_400x400.jpg",ref_id:"0a907108-f59f-420f-9986-79b0f060f690",twitter_handle:"LukeMikic21"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" majdmaksad",profile_picture:"https://pbs.twimg.com/profile_images/1483883774471516167/zvEjiCTO_400x400.jpg",ref_id:"1a63c59d-a760-4f8b-bba9-ddfd3cff9f33",twitter_handle:"majdmaksad"}],hosts:[{name:" PeterAnsel9",profile_picture:"https://pbs.twimg.com/profile_images/1607979298153197568/JqAbDyi__400x400.jpg",ref_id:"6cb2b160-fa27-4fac-9ccf-77886ba01521",twitter_handle:"PeterAnsel9"},{name:" NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"c61e3ff9-f540-4343-bc26-1c3a4b537b78",twitter_handle:"NeilJacobs"},{name:" nathanfast",profile_picture:"https://pbs.twimg.com/profile_images/1545758157103697920/RyLn465N_400x400.jpg",ref_id:"739d907e-cbc6-4a05-9246-45c7c5d2a853",twitter_handle:"nathanfast"},{name:"TYonClubhouse",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"cc057990-16d0-4588-83c7-1eb9734eb994",twitter_handle:"tyonclubhouse"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b27dcf88-bdfb-4433-b0fe-c9040dbf392f/11aa5648-d416-46f3-a66a-0750e9d71ccd.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"ada07186-c3fc-4b5e-b9c7-3ce54e1b94c7",show_title:"Swan.com",text:"I do want to ask you quickly about, you mentioned the credit card debt that is soaring and savings rates going down. It is a small percentage of the overall kind of US household net worth, which I believe is about well over 100 trillion, maybe 140,000,000,000,000. When housing prices were high. But it does seem like this 1 trillion or whatever of credit card debt, while it's serious, is still a fairly small percentage of overall US. Household net worth. And I was wondering if you could comment on that. Yeah, that's a great point, Terrence. And you got to think in terms of the strata of economics, right? So people who are generally wealthy and then sort of the middle class, which has been decimated, and then the poorer classes, this is obviously affecting really harshly the poorer classes, right. Inflation just crushes people in the lower classes, financially speaking. They have minimum wage jobs. We've talked about this many times on here, but you cannot survive on one minimum wage job. So maybe they have two or three. And then as the economy tightens, they're starting to get fired from some of these. The cost of goods and services is rapidly increasing. So they can't even afford their basic groceries. They may not be able to afford gas to drive to work. All of these things, they just get worse and worse. So it does affect the lower economic classes. Disproportionately that's what drives me nuts, right. That's what makes Bitcoin so beautiful, is those are the same classes who can benefit most strongly from Bitcoin, from a fair type of money instead of the unjust system that we have. So, yeah, it's affecting them. Now. I will say, though, that the wealth effect is real, too, and that affects the upper classes. Disproportionately why? Because wealthier people own more assets, right? They own houses, they own stocks, they own bonds, they own art, they own whatever. And the valuations of those kind of things have also come down dramatically. So we're actually seeing that across the board, which is sort of interesting. And you don't always see this. You only see this in like real recessions where the poor people are buying less of their normal goods and services, the consumer staples, and the wealthier people are actually buying less of their garbage that they buy diamond rings and pearls and boats and wealthy person things, yachts, those kind of sales are all significantly down as well. So it's affecting everybody, but it affects everybody. Disproportionately that makes a lot of sense. Yeah. Thank you for that breakdown. I wanted to ask you and Sam about job growth because Nick Temeros from the Wall Street Journal, the so called Fed whisperer who seems to have inside info sometimes on what the Fed is about to do, he said that incorrectly, that we've never seen a period like this where we've had so much job growth. This is part ways wrong. There is no job growth, but so little demand for any type of housing. Talking about the housing slump, and I posted in the Nest something from gaming grandpa La Urban Nerd at La Urban Nerd, who replied the job growth is a mirage will become very clear in the next few months. And then they posted, the alleged job growth and all these downward revisions, they seem to be all happening in a downward direction where they're off by over a million, 1.1 million jobs that never existed. And the Philadelphia Fed recently admitted that US jobs were overstated by at least 1.1 million. Sam Callahan had pointed this out to us at Swan, our great economist and researcher, and I was hoping both of you could comment on this. I've never been called an economist before. Oh, sorry. Hey, I mentioned it as a compliment. Yeah. No, I have been under the belief that the labor market is not as strong as being portrayed by government officials and Fed officials for a long time. And it's because of the methodology of how these things are calculated. The payrolls number uses these really large adjustments that are basically pulled out of thin air with, as we're seeing now, large backward revisions. And the Philly Fed themselves did a report. I think that's what's showing in the nest that a lot of these jobs in those payrolls weren't actually there. Right? So they were basically over a million that were set in the headline that were there are not there now. What is this, like, six months later? Eight months later? And that's usually what happens, but nobody really thinks about that, or nobody goes back and checks up on these revisions. But it's basically painting this picture that the labor force is stronger than it is. And we know that a lot of it is what Dr. Jeff was saying, how this is, like people thinking on second jobs. We know that the jolts, like the job openings that they always talk about, it's a lot of people basically being poached from other jobs, so there isn't any new jobs being created. It's people getting poached. And there's a lot of these, like, fake job postings where they put out, like, thousands of job openings. And then this one researcher went through them and applied to all of them and heard back from a very, very tiny percentage of them at all. And so that's the kind of numbers that are used in how these things are calculated. And you have to dig into the methodology, how they're calculated. Then they always point to the unemployment rate being low. But the US. Unemployment rate is low today, not because there's an actual increase of number of people working, but because the labor force itself is shrinking since COVID There's 3.5 million people that are no longer in the workforce. A lot of that is from early retirements as well as just regular retirements. Baby boomers retiring. And so that's a sign of a tight labor market and structurally tight labor market. There's not a lot of workers out there, and the Fed doesn't like that. The Fed wants to see the labor market gets some more slack into it. They want the unemployment rate to go up, but it's kind of hard to do that. When there's just not that many people actually in the active workforce. So there's like a misunderstanding of why the unemployment rate is even low. At 50 year lows is what you often hear. And so personally, I think that has the potential for a trapdoor effect where people think the labor market is stronger than it is until it's not. And oftentimes unemployment rate is reflected where it doesn't just creep up, it kind of spikes a little bit. And so that's what I think I expect to happen in Q one of 2023. We see actually more layoffs start to happen because of the Fed's overtightening and all these other factors. But yeah, that's kind of my summary of the labor market. I think it's a circus. There's a lot of the sharad being pushed out by the Fed officials and it's not as strong as people think. ",timestamp:"01:37:18-01:44:39",topics:["US economy","credit card debt","job growth","US labour market"],type:"twitter_space",weight:127.51501043433724},{boost:0,date:1672152975,description:"Dr. Jeff Ross, of Vailshire Capital, gives his Bitcoin and overall marco outlook for 2023",episode_title:"Café ₿: #Bitcoin Holiday Hangout & @StatusMoneyUSA a #BTC Credit Card",guests:[{name:" BITVOLT7",profile_picture:"https://pbs.twimg.com/profile_images/1532194001511714818/O8nSTKcx_400x400.png",ref_id:"2b9913b7-393c-4125-9aeb-4a8bf32bfa44",twitter_handle:"BITVOLT7"},{name:" samcallah",profile_picture:"https://pbs.twimg.com/profile_images/1502454836981166082/cQG0YQxc_400x400.jpg",ref_id:"a3dbdb56-e228-4382-98bc-d4495ff6dfbd",twitter_handle:"samcallah"},{name:" taodejing2",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"4914799b-a230-4bee-95c9-cf3ac44b6b70",twitter_handle:"TyonClubhouse"},{name:" MrHodl",profile_picture:"https://pbs.twimg.com/profile_images/1607490976670519296/vhLAojMR_400x400.jpg",ref_id:"01d6ee68-c0ef-4ead-b2b7-7eb04694519e",twitter_handle:"MrHodl"},{name:" TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"57beb381-b9e8-4dd1-82f6-4e544a63146b",twitter_handle:"TomerStrolight"},{name:" VailshireCap",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"73c15965-ddad-4e32-9746-da92f5d24134",twitter_handle:"VailshireCap"},{name:"bergealex4",profile_picture:"https://pbs.twimg.com/profile_images/1273374628577247233/tYigkAZH_400x400.jpg",ref_id:"da4bb8ab-540d-4f88-a2a6-f3a3941c5b74",twitter_handle:"bergealex4"},{name:" LukeMikic21",profile_picture:"https://pbs.twimg.com/profile_images/1604626418708742147/gWyVLeqa_400x400.jpg",ref_id:"0a907108-f59f-420f-9986-79b0f060f690",twitter_handle:"LukeMikic21"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" majdmaksad",profile_picture:"https://pbs.twimg.com/profile_images/1483883774471516167/zvEjiCTO_400x400.jpg",ref_id:"1a63c59d-a760-4f8b-bba9-ddfd3cff9f33",twitter_handle:"majdmaksad"}],hosts:[{name:" PeterAnsel9",profile_picture:"https://pbs.twimg.com/profile_images/1607979298153197568/JqAbDyi__400x400.jpg",ref_id:"6cb2b160-fa27-4fac-9ccf-77886ba01521",twitter_handle:"PeterAnsel9"},{name:" NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"c61e3ff9-f540-4343-bc26-1c3a4b537b78",twitter_handle:"NeilJacobs"},{name:" nathanfast",profile_picture:"https://pbs.twimg.com/profile_images/1545758157103697920/RyLn465N_400x400.jpg",ref_id:"739d907e-cbc6-4a05-9246-45c7c5d2a853",twitter_handle:"nathanfast"},{name:"TYonClubhouse",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"cc057990-16d0-4588-83c7-1eb9734eb994",twitter_handle:"tyonclubhouse"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/515f3625-8d91-439b-8d44-968fe6ab16de/19ec29f4-268c-4015-aa6e-245563dbc49d.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"2a0fb607-c735-4b09-809a-3c74cc61de97",show_title:"Swan.com",text:"have Dr. Jeff Ross from Valshire Capital. Welcome. I was hoping you could give us your usual sort of breakdown on the state of the markets and what you're seeing, how was the Christmas sales and so forth. Thank you. Yeah. Hey, Terrence, thanks for having me up. And hey, everybody. It's fun to hear you all. I hope you all had a great Christmas or just happy holidays and have had some good time off. It's been good for me. Been refreshing hanging out with family a bit here. I think the main thing, I spent a lot of time over the longer weekend kind of just looking from 30,000ft up at what's going on, kind of with macro and what's happening with bitcoin in particular. 2022 was kind of a rough year. It was a confusing year for a lot of people. I think that the setup still remains pretty rough. I think retail sales are just showing a continuously weakening consumer. Interestingly, consumer confidence is rising. I think it's because consumers think that inflation, or at least high inflation, isn't going to last forever, so they're getting more confident. But savings rates are near all time lows right now. Credit card usage is near all time highs. People are basically maxing out their credit cards. They're draining their savings. That bodes poorly. A lot of companies, if you've been paying attention to any earnings reports, most major companies are preparing for recession. They just say, yeah, it's inevitable, it's coming. So we have to kind of prepare for this. Companies that have lots of merchandise, they're having a really hard time selling it. Again, that's not good from a consumer perspective. And if you understand that the GDP in the US. 70% of the GDP, approximately 70%, is based on the consumer, based on consumption. So weak consumer just means a weak economy. So we still have the same setup we've had going for a while, right? We have a slowing economy, we have some disinflation, and we have a hawkish Fed, and we have those three factors that is just always historically poor for risk assets. So until something changes, you still got to be prepared for more downside. I said I was looking at the 30,000 foot view, so I'm really bearish at the moment, but I will tell you that I think we're moving along in bitcoin. I tweeted this out on Christmas a couple of days ago. As far as the four year kind of cycle goes for bitcoin, I think we're moving out of the year of widespread panic and disillusionment. That happened in 2018 and it happened again, I think, this last year in 2022. And I think we're moving into and we're probably already there in disinterest. What does disinterest mean? It basically means there's nobody really left who cares other than the hardcore bitcoiners, right? It's just us left. We have our little rooms, we keep each other motivated. We're encouraging each other. We're still dollar cost averaging. It's basically us left. The traders don't care anymore. There's no volatility in the space anymore. Most of the garbage crypto exchanges have gotten liquidated. There may be a few more to come still. I think there probably will be. I think we're going to see some bitcoin miners still go out of business before this is over. It's going to get worse before it gets better. But that period of disinterest is when new bull markets start. So I'm actually really encouraged the best businesses for bitcoin typically start during those periods of widespread panic and disillusionment. Basically when everybody else is panicking, that's when people, the creative people, get the best ideas for how they can make something better for the next go around. So that's what I'm looking at. I'm actually really encouraged that we're getting really close to a bottom. I think we still have more pain to come, but it's in the short term, in the next couple of quarters, I think, at the latest. And then I'm really encouraged. I was telling the people over at Bitcoin magazine, I think there's a really good chance we've hit a bottom in the price of bitcoin before the bitcoin covers in Miami. And then it's basically just up from there. So I think, by the way, I think the bull market will start out slowly again because we're still in this period of disinterest. I think most people won't believe it when we start, but it's setting the stage for 2024, and 2025 being just absolutely fantastic year. So I hope people are dollar costs averaging with me. If not, if you're a trader, that's fine too, but don't try to pick a bottom. That's very hard to do. But I'm very excited for people and my friends who are dollar costs averaging right now because I think finally we're going to have better days ahead by the end of 2023. I love that. Yeah. I think during this period of disinterest, there's also just people are not taking crypto and altcoins seriously because they've obviously failed and there's all this fraud with FTX and so forth. So it's a time for bitcoiners, the ones that are left to get to know each other even better and learn from each other and just go deeper, right, and maybe upsell ourselves or just increase our conviction. And like you said, this is a time when a lot of great ideas will come and creative people will people be more creative and hopefully come up with some new projects and ideas and startups that can really move the needle. I do want to ask you quickly about, you mentioned the credit card debt that is soaring and savings rates going down. It is a small percentage of the overall kind of US household net worth, which I believe is about well over 100 trillion, maybe 140,000,000,000,000. When housing prices were high. But it does seem like this 1 trillion or whatever of credit card debt, while it's serious, is still a fairly small percentage of overall US. Household net worth. And I was wondering if you could comment on that. Yeah, that's a great point, Terrence. And you got to think in terms of the strata of economics, right? So people who are generally wealthy and then sort of the middle class, which has been decimated, and then the poorer classes, this is obviously affecting really harshly the poorer classes, right. Inflation just crushes people in the lower classes, financially speaking. They have minimum wage jobs. We've talked about this many times on here, but you cannot survive on one minimum wage job. So maybe they have two or three. And then as the economy tightens, they're starting to get fired from some of these. The cost of goods and services is rapidly increasing. So they can't even afford their basic groceries. They may not be able to afford gas to drive to work. All of these things, they just get worse and worse. So it does affect the lower economic classes. Disproportionately that's what drives me nuts, right. That's what makes Bitcoin so beautiful, is those are the same classes who can benefit most strongly from Bitcoin, from a fair type of money instead of the unjust system that we have. So, yeah, it's affecting them. Now. I will say, though, that the wealth effect is real, too, and that affects the upper classes. Disproportionately why? Because wealthier people own more assets, right? They own houses, they own stocks, they own bonds, they own art, they own whatever. And the valuations of those kind of things have also come down dramatically. So we're actually seeing that across the board, which is sort of interesting. And you don't always see this. You only see this in like real recessions where the poor people are buying less of their normal goods and services, the consumer staples, and the wealthier people are actually buying less of their garbage that they buy diamond rings and pearls and boats and wealthy person things, yachts, those kind of sales are all significantly down as well. So it's affecting everybody, but it affects everybody. Disproportionately that makes a lot of sense. Yeah. Thank you for that breakdown. ",timestamp:"01:31:53-01:39:57",topics:["Jeff Ross","Bitcoin macro outlook","poor outlook for risk assets","hawkish US Fed","Disinflation","shitcoin failures"],type:"twitter_space",weight:122.72901871778198},{boost:0,date:1672152975,description:"Bitcoin regulations in America",episode_title:"Café ₿: #Bitcoin Holiday Hangout & @StatusMoneyUSA a #BTC Credit Card",guests:[{name:" BITVOLT7",profile_picture:"https://pbs.twimg.com/profile_images/1532194001511714818/O8nSTKcx_400x400.png",ref_id:"2b9913b7-393c-4125-9aeb-4a8bf32bfa44",twitter_handle:"BITVOLT7"},{name:" samcallah",profile_picture:"https://pbs.twimg.com/profile_images/1502454836981166082/cQG0YQxc_400x400.jpg",ref_id:"a3dbdb56-e228-4382-98bc-d4495ff6dfbd",twitter_handle:"samcallah"},{name:" taodejing2",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"4914799b-a230-4bee-95c9-cf3ac44b6b70",twitter_handle:"TyonClubhouse"},{name:" MrHodl",profile_picture:"https://pbs.twimg.com/profile_images/1607490976670519296/vhLAojMR_400x400.jpg",ref_id:"01d6ee68-c0ef-4ead-b2b7-7eb04694519e",twitter_handle:"MrHodl"},{name:" TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"57beb381-b9e8-4dd1-82f6-4e544a63146b",twitter_handle:"TomerStrolight"},{name:" VailshireCap",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"73c15965-ddad-4e32-9746-da92f5d24134",twitter_handle:"VailshireCap"},{name:"bergealex4",profile_picture:"https://pbs.twimg.com/profile_images/1273374628577247233/tYigkAZH_400x400.jpg",ref_id:"da4bb8ab-540d-4f88-a2a6-f3a3941c5b74",twitter_handle:"bergealex4"},{name:" LukeMikic21",profile_picture:"https://pbs.twimg.com/profile_images/1604626418708742147/gWyVLeqa_400x400.jpg",ref_id:"0a907108-f59f-420f-9986-79b0f060f690",twitter_handle:"LukeMikic21"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" majdmaksad",profile_picture:"https://pbs.twimg.com/profile_images/1483883774471516167/zvEjiCTO_400x400.jpg",ref_id:"1a63c59d-a760-4f8b-bba9-ddfd3cff9f33",twitter_handle:"majdmaksad"}],hosts:[{name:" PeterAnsel9",profile_picture:"https://pbs.twimg.com/profile_images/1607979298153197568/JqAbDyi__400x400.jpg",ref_id:"6cb2b160-fa27-4fac-9ccf-77886ba01521",twitter_handle:"PeterAnsel9"},{name:" NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"c61e3ff9-f540-4343-bc26-1c3a4b537b78",twitter_handle:"NeilJacobs"},{name:" nathanfast",profile_picture:"https://pbs.twimg.com/profile_images/1545758157103697920/RyLn465N_400x400.jpg",ref_id:"739d907e-cbc6-4a05-9246-45c7c5d2a853",twitter_handle:"nathanfast"},{name:"TYonClubhouse",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"cc057990-16d0-4588-83c7-1eb9734eb994",twitter_handle:"tyonclubhouse"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b27dcf88-bdfb-4433-b0fe-c9040dbf392f/11aa5648-d416-46f3-a66a-0750e9d71ccd.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"2969a789-41bf-4e23-8ab8-31a76c5a5754",show_title:"Swan.com",text:"very quickly, just before perhaps we could give the mic to Luke. But I just want to quickly echo what Sam was saying and it just pinned at the top. The report from Pierre Rashard and I think Jill Burnett at Block, where I think they've done a very fantastic job of dispelling a lot of the fun around the security budget and actually sort of introducing, perhaps not introducing, for everyone. But bringing back to the front a different way to discuss that, wherein, when we're discussing minors, we're really discussing finality and not security. And I think when you considered that under this optic, you can look at it in very different ways. That makes sense. Luke, go ahead. Yeah. To the discussion about America losing the war and really burdensome regulation being pushed for in America. What odds do you guys put on, say, like a Texas or even a shitcoin in Miami actually succeeding and forming their own independent state? I shared something in the nest. I think it was the former Russian president put out some very interesting and provocative predictions for the year 2030. But he talked about the possibility, probably a very small possibility, of a Texas forming like an allied state with Mexico. Obviously that's madness and probably won't happen in a long time, but what odds do you guys genuinely put on like a Texas succeeding from the US. If the US Tries to attack bitcoin? Yeah. The balkanization of the US. Has been discussed a lot about in Bitcoin circles. Tone Vase swears by it and thinks by 2030, 2035, you'll see the Balkanization. And I've put some thought into it. And if you think about it, what is one of the glue that is keeping a lot of these states together, even though ideologically they're radically different? Right. Like, people in California want a certain type of government. People in Texas want a certain type of government. People in Florida want a certain type of government. People in New York want a certain type of government. The glue that's keeping it together is the common currency. It's the US. Dollar. Right. So what happens if and Parker Lewis has touched upon this before in the past? What happens if all of a sudden state like Florida, Wyoming, starts putting bitcoin on its balance sheet and starts to realize that it doesn't need those federal dollars anymore, basically becoming self sufficient in a sense? Right. It's a very interesting question. And now think about how the marijuana industry has been treated in the United States, right? On a federal level, marijuana is illegal, right? But on a state level, it's thriving, right? California, Colorado, Oregon, washington State. So you can kind of see it in that direction. I think on a federal level, they're extremely hostile to bitcoin, obviously, because they get a tremendous amount of power from being able to control the monetary policy it funds themselves and also this world police type of outlook, right. The ability for the US government to place sanctions on entire countries through the office of foreign asset Control, that gives them a tremendous amount of power. Bitcoin is a threat to that. So obviously, I don't think on the federal level, I think on the federal level, bitcoin could be the last to be really accepted. But on a state level, that's a whole different conversation. I think states like Texas that get a tremendous amount of economic opportunity from the bitcoin mining industry, I think they're going to try to protect it tooth and nail. It's very similar to how the marijuana industry played out. I think that's what's going to happen perhaps on a state level. And I think that as soon as a state that brave state starts to put bitcoin on their balance sheet, man, in my opinion, that's game over. Like it's done right now. Hold on, Nico. You don't think the federal government is not going to enforce the constitution and not allow that to happen with military? I mean, that's like seceding, dude. That's a big deal. I think that things are going to get so crazy, and I think that we're all feeling it right now. I think that we're all feeling the fourth turning vibes. The corruption, the theft is so blatant, so in your face. The $1.7 trillion optimus bill, bro, I'm not going to get into any of the political stuff in there, but they had $65 million just into the research of fish, bro, there was a point in the bill. I'm not kidding. This is 100% real. There was $120,000 being dedicated to researching whether thanos the fictional character from the Avengers movies, whether he could really snap his fingers or not. Right? I couldn't agree with you more. There's a bill about a bee crossing on a fucking highway, but $3.5 million dedicated to bees? The theft is so blatant, bro, it's in your face, right? And it goes to are we at the very dying ends of an empire, the American empire, right? Empires usually last 300 years. We're about that point. It's so blatant. It's so corrupt. It's so in your face. And I don't know, man, if I'm a state like Texas, if I'm a state like Florida, ideologically I'm very different. And I'm seeing this and all of a sudden I have an alternative. I have an option to opt out of that entirely. I don't know why you wouldn't take that. Right? And then that goes to the other theory that. Ex former president of Russia said that you could potentially see an American civil war. I don't want to talk about that because war is terrible. War is hell. Of course we'd want to avoid that, but, I mean, if the momentum of history is going in that direction, so be it. But I don't know what's going to happen. On a macro level, I think predicting that it's, like, almost impossible. But what I can tell you, and I think what makes me, as an individual extremely optimistic, is that if my wealth is in bitcoin, my family's future, my future is protected because I can go where I'm treated best. If it means picking up and leaving and taking everything with me, I can only by writing down twelve words or 24 words. And I think that by itself is going to radically change the world. Because what I think governments are doing today is I think that they have a lot of their citizens hostage, and then they force their citizens to use money that steals from them. And perhaps in the United States, it's not quite noticeable because the inflation rate is only two to 4%. It got all the way up to 7%. But if you live in Argentina, where that inflation rate is 92%, man, bitcoin isn't a speculation for you. Bitcoin is survival. Those people already understand what it means to live in a country where their government currency fails, right? So that's what I'm bullish on, man. I'm bullish on individuals. I'm bullish on Central and Latin America. I'm bullish on what's going on over there in the United States. We shall see. I'm going to fight like hell. I love my country. I'm a first generation immigrant. I love not what the American government stands for, but what the original vision of America stood for. And I love it, and I'm going to fight for it. I'm going to stay here to the very bitter end. But, you know, if it comes to being thrown in a gulag because I'm writing twelve words or taking, like, uprooting my my life and my family's life and moving to El Salvador, then so be it. Obviously, I don't want to do that. I want to fight. And I want to win the race of adoption, get the ideals of bitcoin into the mainstream consciousness of America so that we could avoid that fucking war altogether. And I think that's what I try to do every single day. And that's what swan tries to do every single day. And that's what all bitcoiners try to do every single day. We fight this. We fight this information war, this psychological warfare that's happening every single day. It's trench warfare on the battlegrounds of the internet, man. And I think we're going to win. I think bitcoin's incentives are going to be any type of coercion that they try to jump, that they try to throw at us. Anyways, I'm sorry for ranting a little bit it's just a very passionate topic for me. ",timestamp:"01:05:44-01:15:03",topics:["Bitcoin regulation","bitcoin attack"],type:"twitter_space",weight:79.79824311351389},{boost:0,date:1672152975,description:"Discussion on Dmitry Medvedev's 2023 global predictions, the US losing the Bitcoin regulation war and Texas succeeding from the union due to bitcoin",episode_title:"Café ₿: #Bitcoin Holiday Hangout & @StatusMoneyUSA a #BTC Credit Card",guests:[{name:" BITVOLT7",profile_picture:"https://pbs.twimg.com/profile_images/1532194001511714818/O8nSTKcx_400x400.png",ref_id:"2b9913b7-393c-4125-9aeb-4a8bf32bfa44",twitter_handle:"BITVOLT7"},{name:" samcallah",profile_picture:"https://pbs.twimg.com/profile_images/1502454836981166082/cQG0YQxc_400x400.jpg",ref_id:"a3dbdb56-e228-4382-98bc-d4495ff6dfbd",twitter_handle:"samcallah"},{name:" taodejing2",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"4914799b-a230-4bee-95c9-cf3ac44b6b70",twitter_handle:"TyonClubhouse"},{name:" MrHodl",profile_picture:"https://pbs.twimg.com/profile_images/1607490976670519296/vhLAojMR_400x400.jpg",ref_id:"01d6ee68-c0ef-4ead-b2b7-7eb04694519e",twitter_handle:"MrHodl"},{name:" TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"57beb381-b9e8-4dd1-82f6-4e544a63146b",twitter_handle:"TomerStrolight"},{name:" VailshireCap",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"73c15965-ddad-4e32-9746-da92f5d24134",twitter_handle:"VailshireCap"},{name:"bergealex4",profile_picture:"https://pbs.twimg.com/profile_images/1273374628577247233/tYigkAZH_400x400.jpg",ref_id:"da4bb8ab-540d-4f88-a2a6-f3a3941c5b74",twitter_handle:"bergealex4"},{name:" LukeMikic21",profile_picture:"https://pbs.twimg.com/profile_images/1604626418708742147/gWyVLeqa_400x400.jpg",ref_id:"0a907108-f59f-420f-9986-79b0f060f690",twitter_handle:"LukeMikic21"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" majdmaksad",profile_picture:"https://pbs.twimg.com/profile_images/1483883774471516167/zvEjiCTO_400x400.jpg",ref_id:"1a63c59d-a760-4f8b-bba9-ddfd3cff9f33",twitter_handle:"majdmaksad"}],hosts:[{name:" PeterAnsel9",profile_picture:"https://pbs.twimg.com/profile_images/1607979298153197568/JqAbDyi__400x400.jpg",ref_id:"6cb2b160-fa27-4fac-9ccf-77886ba01521",twitter_handle:"PeterAnsel9"},{name:" NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"c61e3ff9-f540-4343-bc26-1c3a4b537b78",twitter_handle:"NeilJacobs"},{name:" nathanfast",profile_picture:"https://pbs.twimg.com/profile_images/1545758157103697920/RyLn465N_400x400.jpg",ref_id:"739d907e-cbc6-4a05-9246-45c7c5d2a853",twitter_handle:"nathanfast"},{name:"TYonClubhouse",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"cc057990-16d0-4588-83c7-1eb9734eb994",twitter_handle:"tyonclubhouse"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/515f3625-8d91-439b-8d44-968fe6ab16de/19ec29f4-268c-4015-aa6e-245563dbc49d.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"12445bad-9deb-4bff-ba8a-e8a490b00cc5",show_title:"Swan.com",text:"Luke, go ahead. Yeah. To the discussion about America losing the war and really burdensome regulation being pushed for in America. What odds do you guys put on, say, like a Texas or even a shitcoin in Miami actually succeeding and forming their own independent state? I shared something in the nest. I think it was the former Russian president put out some very interesting and provocative predictions for the year 2030. But he talked about the possibility, probably a very small possibility, of a Texas forming like an allied state with Mexico. Obviously that's madness and probably won't happen in a long time, but what odds do you guys genuinely put on like a Texas succeeding from the US. If the US Tries to attack bitcoin? Yeah. The balkanization of the US. Has been discussed a lot about in Bitcoin circles. Tone Vase swears by it and thinks by 2030, 2035, you'll see the Balkanization. And I've put some thought into it. And if you think about it, what is one of the glue that is keeping a lot of these states together, even though ideologically they're radically different? Right. Like, people in California want a certain type of government. People in Texas want a certain type of government. People in Florida want a certain type of government. People in New York want a certain type of government. The glue that's keeping it together is the common currency. It's the US. Dollar. Right. So what happens if and Parker Lewis has touched upon this before in the past? What happens if all of a sudden state like Florida, Wyoming, starts putting bitcoin on its balance sheet and starts to realize that it doesn't need those federal dollars anymore, basically becoming self sufficient in a sense? Right. It's a very interesting question. And now think about how the marijuana industry has been treated in the United States, right? On a federal level, marijuana is illegal, right? But on a state level, it's thriving, right? California, Colorado, Oregon, washington State. So you can kind of see it in that direction. I think on a federal level, they're extremely hostile to bitcoin, obviously, because they get a tremendous amount of power from being able to control the monetary policy it funds themselves and also this world police type of outlook, right. The ability for the US government to place sanctions on entire countries through the office of foreign asset Control, that gives them a tremendous amount of power. Bitcoin is a threat to that. So obviously, I don't think on the federal level, I think on the federal level, bitcoin could be the last to be really accepted. But on a state level, that's a whole different conversation. I think states like Texas that get a tremendous amount of economic opportunity from the bitcoin mining industry, I think they're going to try to protect it tooth and nail. It's very similar to how the marijuana industry played out. I think that's what's going to happen perhaps on a state level. And I think that as soon as a state that brave state starts to put bitcoin on their balance sheet, man, in my opinion, that's game over. Like it's done right now. Hold on, Nico. You don't think the federal government is not going to enforce the constitution and not allow that to happen with military? I mean, that's like seceding, dude. That's a big deal. I think that things are going to get so crazy, and I think that we're all feeling it right now. I think that we're all feeling the fourth turning vibes. The corruption, the theft is so blatant, so in your face. The $1.7 trillion optimus bill, bro, I'm not going to get into any of the political stuff in there, but they had $65 million just into the research of fish, bro, there was a point in the bill. I'm not kidding. This is 100% real. There was $120,000 being dedicated to researching whether thanos the fictional character from the Avengers movies, whether he could really snap his fingers or not. Right? I couldn't agree with you more. There's a bill about a bee crossing on a fucking highway, but $3.5 million dedicated to bees? The theft is so blatant, bro, it's in your face, right? And it goes to are we at the very dying ends of an empire, the American empire, right? Empires usually last 300 years. We're about that point. It's so blatant. It's so corrupt. It's so in your face. And I don't know, man, if I'm a state like Texas, if I'm a state like Florida, ideologically I'm very different. And I'm seeing this and all of a sudden I have an alternative. I have an option to opt out of that entirely. I don't know why you wouldn't take that. Right? And then that goes to the other theory that. Ex former president of Russia said that you could potentially see an American civil war. I don't want to talk about that because war is terrible. War is hell. Of course we'd want to avoid that, but, I mean, if the momentum of history is going in that direction, so be it. But I don't know what's going to happen. On a macro level, I think predicting that it's, like, almost impossible. But what I can tell you, and I think what makes me, as an individual extremely optimistic, is that if my wealth is in bitcoin, my family's future, my future is protected because I can go where I'm treated best. If it means picking up and leaving and taking everything with me, I can only by writing down twelve words or 24 words. And I think that by itself is going to radically change the world. Because what I think governments are doing today is I think that they have a lot of their citizens hostage, and then they force their citizens to use money that steals from them. And perhaps in the United States, it's not quite noticeable because the inflation rate is only two to 4%. It got all the way up to 7%. But if you live in Argentina, where that inflation rate is 92%, man, bitcoin isn't a speculation for you. Bitcoin is survival. Those people already understand what it means to live in a country where their government currency fails, right? So that's what I'm bullish on, man. I'm bullish on individuals. I'm bullish on Central and Latin America. I'm bullish on what's going on over there in the United States. We shall see. I'm going to fight like hell. I love my country. I'm a first generation immigrant. I love not what the American government stands for, but what the original vision of America stood for. And I love it, and I'm going to fight for it. I'm going to stay here to the very bitter end. But, you know, if it comes to being thrown in a gulag because I'm writing twelve words or taking, like, uprooting my my life and my family's life and moving to El Salvador, then so be it. Obviously, I don't want to do that. I want to fight. And I want to win the race of adoption, get the ideals of bitcoin into the mainstream consciousness of America so that we could avoid that fucking war altogether. And I think that's what I try to do every single day. And that's what swan tries to do every single day. And that's what all bitcoiners try to do every single day. We fight this. We fight this information war, this psychological warfare that's happening every single day. It's trench warfare on the battlegrounds of the internet, man. And I think we're going to win. I think bitcoin's incentives are going to be any type of coercion that they try to jump, that they try to throw at us. Anyways, I'm sorry for ranting a little bit it's just a very passionate topic for me. I love your quote unquote rants. I think to me they just come across passionate and well thought out. I am. Thanks, Terry. Just to go back and answer League's question maybe a little bit differently, I think this session, it would be very hostile. Like, that's a totally different ball game. It would be on the brink of civil war. We're also intertwined and the whole country depends on, say, Texas and Florida for different resources. That's just not going to happen without some kind of military response. But in the Constitution, there is the 10th Amendment right that powers not delegated to the United States by the Constitution are reserved to the states respectively, or to the people. And so I always said the migration of hash rate was bullish to go to America because I called it the disunited king of hash rate because they're strong state government and to avoid tyranny and the ineffective central planning, every state is free to enact its own policies that work for its own populations. And so unless the government banned, outright banned bitcoin a commodity, I don't see how they could stop states from adding it to their balance sheets or the Treasuries just saying, hey, we're going to buy a little bit of bitcoin unless there was some federal ban on bitcoin. And so there's a difference between suspicion and just purchasing bitcoin right now because there's no kind of federal law preventing them from doing that. And they have states rights and that's protected by the Constitution, the 10th Amendment. So that's how I kind of see that scenario. ",timestamp:"01:06:40-01:16:49",topics:["Dmitry Medvedev","balkanization of the us","Bitcoin regulation","Texas secession"],type:"twitter_space",weight:76.08473176624994},{boost:0,date:1671644776,description:"The BCV foundation and Bitcoin education in Nigeria",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b18df9d2-d034-4e1f-bcd1-d70b30fe9059/506355bc-c119-4f18-bf0b-abe9be8c17d6.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"0330ada0-fbc0-4f8f-a560-a6c059a72907",show_title:"Geyser 🌊",text:"So, yeah, tell us a bit about your project and I'm sure more and more people will join up. All right. I'm just handle that because I'm just like handling the accounts where I really know about this project because I'm a beneficiary of the project. So they have been going around in communities in Nigeria and some other places, and they've been giving out pamphlets, teaching people about Bitcoin and how we can help them secure financial power or financial freedom yet. So basically I got about 100,000 from them after the education. And also I've been keeping in touch with these people and they offered me because I really don't have anything doing. So they offered me to get this job to just handle the account. And I'm still learning about the project. But basically what they do is they just teach people. We just tell people about it's more like we're going to like the grassroots. I don't know if you're with me. We're going to the grassroots to really uneducated places, to just teach people, like traders and random people on the streets. We're just teaching them and telling them stuff about bitcoin, because I think it starts from there, because education is a big problem. There's this gap, there's this space between the educator and the uneducated ones that the uneducators also never really get the chance to understand what this is all about. They just keep suffering and suffering and they don't really know how to really get out of the circle or the matrix of just being suppressed financially. Right. So that's basically what it's all about. So they've been doing a great job. They've been going around. And I'm a beneficiary, so it's more like my testimony, right? Yeah. I'm just saying that to the space, basically wait, I'm sure if it worked, but basically they're receiving donations of Geyser. And the main purpose of the initiative is essentially reaching out to rural communities, doing basic education about bitcoin. And there's also an element of mining, is that right? Not really, but solar. Really? Solar power. About renewable energy. Because Nigeria has power issues. Has power issues, especially in the local communities, the grassroots, like I said. That'S incredible. So we just try to help people with small solar power generators that they used to. And we have some people that mine bitcoin in very small scale. They have this really small miners, so they use our solar power generators. Got you. So I can see here you guys are focused on six African communities in three countries. Ghana, Kenya, Nigeria. Yes. And you guys are an NGO dedicated to promoting, expanding bitcoin across the world. Yes. Focusing on education, school and rural areas. Yes. Yes. So this is an incredible project. You guys are calling it bits and stats and help educate school students and other individuals. So how do you guys do that? And what's your experience so far? Like, how has it been received? It has been really good because when schools were still in session, because now schools are on holidays now, vacation. Right. When schools were still in session, like secondary school education, we used to go around and teach, like, school children in classes. We just take minutes of their time because in schools they have recess and different times and other stuff like that. So we just go around and we try to teach and we hand out pamphlets, like I said. But we haven't really given out bitcoin to this secondary school students because most of them don't really, like, possess phones and other things like that. So we just basically teach them how it works. But then we go around and trade as people that sell stuff, people that just, like, randomly work on things, like outside. We just try to teach them on the streets, we just walk around. Have you tried using different tools like machancura to use SMS to send people? I just learnt about machancura last month and it's really innovative, but I haven't really done anything and I haven't really connected with people. So I think we should do more of that. We would have to connect with people because we had one representative in Ghana for the Afro Bitcoin conference some weeks back. It's just a tool that you can start using. I recommend you just playing with it, and it really just means that you can use your feature phone and some of the old phones to receive. Satoshi is pretty straightforward. Okay, that's great. Yes, I saw some stuff about it, so I'll definitely play around with it. And I can't people around too, since. That'S how you really learn, right? You learn and practice with really feeling it. Yes. That's cool. Yeah. Thank you for the awesome initiative, for the opportunity. Also really appreciate of ",timestamp:"00:10:34-00:16:46",topics:["Bitcoin education","Nigeria","Bitcoin mining","BCV foundation","Geyser"],type:"twitter_space",weight:62.68289275364415},{boost:0,date:1671644776,description:"The introduction to Bitcoin in Nigeria and how it's gradually taking it's place",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/885fe09b-bb21-49a5-8667-3c73ed36918f/196dc1e8-c7a4-4dc7-902f-d00107aefb42.mp3",node_type:"clip",pub_key:"0372cd0c8469f2034336a243e018d4d60e07efef8e7d10417807da1173bd5b002f",ref_id:"83ce1420-66d3-41e6-b987-b35fe2cf019f",show_title:"Geyser 🌊",text:"All right. Hello. Good evening. Hey, good evening. Yeah, how's it going? It's going great. Thanks, guys, for the opportunity to speak. Yes, I'm grateful. Fantastic. Yeah. I mean, not many people today. We've had better turnouts. I think it was a bit of a last minute call, but I wasn't. Even expecting I just saw a notification and I came up. Awesome. Yeah, it's cool, man. So, yeah, tell us a bit about your project and I'm sure more and more people will join up. All right. I'm just handle that because I'm just like handling the accounts where I really know about this project because I'm a beneficiary of the project. So they have been going around in communities in Nigeria and some other places, and they've been giving out pamphlets, teaching people about Bitcoin and how we can help them secure financial power or financial freedom yet. So basically I got about 100,000 from them after the education. And also I've been keeping in touch with these people and they offered me because I really don't have anything doing. So they offered me to get this job to just handle the account. And I'm still learning about the project. But basically what they do is they just teach people. We just tell people about it's more like we're going to like the grassroots. I don't know if you're with me. We're going to the grassroots to really uneducated places, to just teach people, like traders and random people on the streets. We're just teaching them and telling them stuff about bitcoin, because I think it starts from there, because education is a big problem. There's this gap, there's this space between the educator and the uneducated ones that the uneducators also never really get the chance to understand what this is all about. They just keep suffering and suffering and they don't really know how to really get out of the circle or the matrix of just being suppressed financially. Right. So that's basically what it's all about. So they've been doing a great job. They've been going around. And I'm a beneficiary, so it's more like my testimony, right? Yeah. I'm just saying that to the space, basically wait, I'm sure if it worked, but basically they're receiving donations of Geyser. And the main purpose of the initiative is essentially reaching out to rural communities, doing basic education about bitcoin. And there's also an element of mining, is that right? Not really, but solar. Really? Solar power. About renewable energy. Because Nigeria has power issues. Has power issues, especially in the local communities, the grassroots, like I said. That'S incredible. So we just try to help people with small solar power generators that they used to. And we have some people that mine bitcoin in very small scale. They have this really small miners, so they use our solar power generators. Got you. So I can see here you guys are focused on six African communities in three countries. Ghana, Kenya, Nigeria. Yes. And you guys are an NGO dedicated to promoting, expanding bitcoin across the world. Yes. Focusing on education, school and rural areas. Yes. Yes. So this is an incredible project. You guys are calling it bits and stats and help educate school students and other individuals. So how do you guys do that? And what's your experience so far? Like, how has it been received? It has been really good because when schools were still in session, because now schools are on holidays now, vacation. Right. When schools were still in session, like secondary school education, we used to go around and teach, like, school children in classes. We just take minutes of their time because in schools they have recess and different times and other stuff like that. So we just go around and we try to teach and we hand out pamphlets, like I said. But we haven't really given out bitcoin to this secondary school students because most of them don't really, like, possess phones and other things like that. So we just basically teach them how it works. But then we go around and trade as people that sell stuff, people that just, like, randomly work on things, like outside. We just try to teach them on the streets, we just walk around. Have you tried using different tools like machancura to use SMS to send people? I just learnt about machancura last month and it's really innovative, but I haven't really done anything and I haven't really connected with people. So I think we should do more of that. We would have to connect with people because we had one representative in Ghana for the Afro Bitcoin conference some weeks back. It's just a tool that you can start using. I recommend you just playing with it, and it really just means that you can use your feature phone and some of the old phones to receive. Satoshi is pretty straightforward. Okay, that's great. Yes, I saw some stuff about it, so I'll definitely play around with it. And I can't people around too, since. That'S how you really learn, right? You learn and practice with really feeling it. Yes. That's cool. Yeah. Thank you for the awesome initiative, ",timestamp:"00:09:59-00:16:41",topics:["Nigeria","Bitcoin adoption"],type:"twitter_space",weight:61.64845435071934},{boost:0,date:null,description:"Greg Foss' Thoughts on countries interested in joining the BRICS forum",episode_title:"Café ₿: #Bitcoin News & Trusted P2P Reviews w/ @Apollosats",guests:[{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:"@FossGregfoss",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"09913e9b-38dc-4465-9d4d-ae0c9ba9eeca",twitter_handle:"Fuckkkk"},{name:"@w_s_bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"b178b239-3b18-4a16-9d43-c5d15ba6f7f4",twitter_handle:"w_s_bitcoin"},{name:"@NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"4b6997e1-ce0b-4a1d-90e7-dbaccef4b783",twitter_handle:"NeilJacobs"},{name:"@brandon_gentile",profile_picture:"https://pbs.twimg.com/profile_images/1561369452284895236/-8WgdwEm_400x400.jpg",ref_id:"f940c5e8-4808-4197-a38f-3f19d311a7ad",twitter_handle:"brandon_gentile"},{name:"@apollosats",profile_picture:"https://pbs.twimg.com/profile_images/1576946734927794176/2ail9FoU_400x400.jpg",ref_id:"74f4280f-5fdb-4bbc-aee2-a2ed32d64372",twitter_handle:"apollosats"},{name:"@StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"6e652629-38ec-49d8-9f5c-3ba28f80c799",twitter_handle:"StackchainSig"},{name:"@TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"7af639f8-8c5c-4ce1-a43b-e8560ed40e2b",twitter_handle:"TomerStrolight"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7cf57bdb-c905-46e3-a7e5-4c0bfd4f8d04/71c08fae-cce8-4600-ab9e-758420e78dcf.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"639d4f31-2190-4fc2-a0dc-57cf53c3d97b",show_title:"Swan.com",text:"a question. I got a question coming in. Wicked. Yeah, go ahead. This is coming in from text greg, I don't know how much longer we've got you for. That's why I wanted to get this to you before. I didn't mean to cut you off. But this comes from Sholey, and his question is, foss, I'm interested in your take on countries wanting to join the BRICS and move away from the US dollar for trade. Apparently this was a tweet from Kim.com, so please don't shoot me for the source, but apparently Russia has announced that twelve more countries are interested in joining the BRICS. What do you think about all this? Yeah, well, it's not hard to see the playbook, right? When you have your US dollar controlled reserve asset of the world, which is US treasuries, when that gets frozen and you need to call on it and you can't so I'm talking about Putin here. You look for alternatives. Now, Marty Ben here's a shout out to my friend Marty. He had an amazing publication on Friday, okay, calling the same thing, but says it won't be gold backed oil trades, it'll eventually be bitcoin backed oil trades. And that makes sense from my perspective of digital energy versus natural resource energy. And why sell valuable natural resource energy for US dollar fee when ultimately, rather than selling it for gold, which is a far better store of value than US dollars or US treasuries, but you could sell it for digital energy. As an engineer, I'm not a physicist, so there's some physicists that hate the fact that sailor, and maybe me, at times refer to bitcoin as digital energy. But I don't care. Understand? It's selling natural resource energy for digital energy is just about the smartest thing you can do in a closed loop energy frame. Okay? So one more shout out, I'll step down or try and shut up. So thank you, wicked for great input, Terence. Great input, aunt. Great input. And a shout out to one of your listeners that just reached out to me via DM. We want to talk some more about the big utilities in the US. Becoming bitcoin miners. It's the most logical step in the world. The energy guys know it. The ESG guys, they already have their heads shoved firmly up their ass, so they're not going to hear it. But people who manage the grid and manage energy understand that bitcoin and bitcoin mining is the perfect regulator, okay? With a switch, you can turn power up or power down your bitcoin miners, and you create incremental cash flow to defease capital expenditures, to building things like, oh, nuclear power plants. Because normally a nuclear power plant has a 20 year return on investment profile. And if you insert bitcoin mining in there, you can reduce that return on investment profile by at least one half, okay? And that's a meaningful adjustment to the capex that's required for building a core nuclear generator. So small nuclear modular reactors, big core nuclear reactors, it's what's going to really solve the energy crisis, people. And bitcoin is going to help with that. So don't overthink things. ",timestamp:"01:11:11-01:14:33",topics:["BRICS forum"],type:"twitter_space",weight:25.360525131225586},{boost:0,date:0,description:"What will Bitcoin look like in a scenario of global adoption? ",episode_title:"Café ₿: #Bitcoin Fix the Money, Fix the World",guests:[{name:"OrangePild",profile_picture:"https://pbs.twimg.com/profile_images/1608905201334845441/SHUsfTBW_400x400.jpg",ref_id:"1c33ba0e-3e6b-41f6-aed4-5217aa534521",twitter_handle:"OrangePild"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Dr. Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"51a969bb-dbf7-4d20-b128-74dcc5f560f6",twitter_handle:"VailshireCap"},{name:"Jason Brett",profile_picture:"https://pbs.twimg.com/profile_images/1591476397847060482/bNapBM4Y_400x400.jpg",ref_id:"750a85f9-59f2-4627-817c-a437b65ee45e",twitter_handle:"RegulatoryJason"},{name:"Tatum Turn Up",profile_picture:"https://pbs.twimg.com/profile_images/1600036563429343233/PXP0gxRj_400x400.jpg",ref_id:"31824d8a-a2a6-434e-8d10-f0be1c2f8389",twitter_handle:"tatumturnup"},{name:"Stackchain ⛓ Signal",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"b0242af7-0d94-4551-ba25-a8b216b82fce",twitter_handle:"StackchainSig"},{name:"Ross",profile_picture:"https://pbs.twimg.com/profile_images/1602431687564357632/57oH7beH_400x400.jpg",ref_id:"cdb90285-daa9-4dd2-b96a-78dd5e8ba468",twitter_handle:"theyoungrossco"},{name:"BTC Sessions",profile_picture:"https://pbs.twimg.com/profile_images/1602307254937866240/CKiRrFui_400x400.jpg",ref_id:"e207ef16-44d1-40c4-929a-ea2736f60a94",twitter_handle:"BTCsessions"},{name:"TC",profile_picture:"https://pbs.twimg.com/profile_images/1607590332925095937/6CTv4688_400x400.jpg",ref_id:"083ddb42-c4a0-4360-8de3-6178e3b659ec",twitter_handle:"Meditation_Man"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"}],hosts:[{name:"Swan.com",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"995b79e6-02fe-4395-8aa7-fdc000584e71",twitter_handle:"SwanBitcoin"},{name:"PB23 😎 Pacific Bitcoin Festival",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"9dd05f7c-4891-440c-aa61-677a92e70a0f",twitter_handle:"pacificbitcoin"},{name:"NICO⚡️",profile_picture:"https://pbs.twimg.com/profile_images/1513692277515997188/t5Ja3SFr_400x400.jpg",ref_id:"ccd52021-88cc-4e7d-9822-6eed5a169ca9",twitter_handle:"nico_lechuga"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/84e104dc-230e-40a7-9ec0-16c5a0d6873b/e7948dc4-eff7-4d6e-8ed2-80f524a8c494.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"1171938e-b754-45ff-958d-ca89aa3ab235",show_title:"Swan.com",text:"Ross, you have your hands up. Thanks to ross, you have your hands up, and then we're going to wrap it up. Yeah, thanks for letting me speak. I want to ask a question to the experts here that have been around longer than me. My reason for asking the question is actually someone in my twitter feed asked the question. They said, construct a sentence that would really piss off a bitcoiner. And I constructed one so well that I would like to know the answer to my own question. So, what I wrote is, assuming 10 billion people in the world and an absolute global adoption of Bitcoin, if every single person in the world wanted to make a single layer, one transaction just multiplying out 2500 to 3000 transactions per block times, hours, years, et cetera. It would take somewhere between 60 and 70 ish years for one person, for each person in the world to make a single transaction on layer one. So with that and the ultimate vision of bitcoin being the kind of global reserve asset and understanding, there's more layers like lightning and possibly even layer three, et cetera, that will come in time, what do you guys see as the, I guess, endgame of the landscape of what bitcoin would look like in a global adoption scenario? Let me ask you something. So most transactions right now are through debit cards, credit cards, electronic transfers. What layer do you think that is in the traditional? Well, I would say it's layer three at least, if not higher. It's layer three. Right. So how long has that system been around? Like 50 years, give or take? Exactly. It's been around for 60 years. Bitcoin's roughly a decade and a half old. Decade and change. Right. I think lightning is a great solution, but I still think that it needs a lot of work. I think there's so many awesome projects that are being worked on, and I think that we will find a solution to the problem that you're talking about. And that was a very big component of the block size for us. Right. We must, and I'm aware of that history too. But the thing is, even with a. Smaller block size, it still can't like every blockchain is too slow for global layer one transactions per person. Eventually. I think that's where layer two is going to come in. There's been speculation that the blocks are going to be filled. That's been said for the last five years or so. That still hasn't been the case. There's been times where the men pool gets cleared out. So I mean, like, I don't know, man. I think Tomer actually was talking about this yesterday. I think that it could potentially be a problem in the future. But I think where we are now, we have much bigger, clear and present dangers in front of us. And I think that's what Jason was really talking about today from the regulatory perspective. And I think that's really where my worry is. That that's really where my concern is in terms of scaling. Yes, I agree. I think that what's the Lightning Network capacity right now? It's $89 million. That's not a large amount in a global sense. Obviously there needs to be more. But if you look back and see how far we've come, I remember when the Lightning Network first became a thing, people were like, no, this isn't going to work. Right? And the fact that we've come from zero dollars to eighty nine million dollars lighting network capacity, I think is a massive deal and I think it's just going to continue to get bigger and better. Maybe that's the optimist to me. I have no idea. I don't know if Dr. Ross, Neil or Tomer, Jason, any of you guys want to chime in on that? TC yeah, I mean, my answer can be slightly adapted from the one you were referencing that I made yesterday. It's like we will cross that bridge and the bridges that lead to it as we come to them. There's so many different ways that we can scale this technology as demand increases for utilizing it. And what tends to be the surprising thing is many ways, just do nothing and let people figure out how to use it more efficiently. There were all these people who were clamoring for bigger blocks through a hard fork and we kept the blocks small and people figured out how to cram a lot more transactions. So that now the calculus that you're doing is, oh, there's 2500 to 3000 transactions per block, not 1000 transactions per block, which is what we were seeing beforehand. And there's so many different things that will be developed in cryptography. In fact, the fact that Schnor's signatures exist right now with cross signature aggregation can make transactions so much smaller. And of course there's all these other layers. So give a time. Like all technologies that you've seen before, they look like they're not going to work for the whole world. Early on. I don't know how old you are, but if you were here for the early days of the Internet, you could barely get a JPEG through the thing in. 15 minutes. And so it looked like it wouldn't scale. And I remember a couple of decades ago there being some fun about the Internet, that there's only so many addresses that would go around and so wouldn't the Internet fail in a few years time as more and more people came on? And of course, we've engineered a way around all these things. So I think especially when you're dealing with technology that's immaterial in its nature, that's non physical, that's purely digital, there are so many different ways to scale it that it won't end up being a concern. There will be many concerns along the way, but they will all be solved and surmounted. ",timestamp:"02:02:51-02:08:46",topics:["Bitcoin Adoption","Hyperbitcoinization"],type:"twitter_space",weight:25.169692039489746},{boost:0,date:1671644776,description:"Crowdfunding for different Bitcoin communities using Geyser",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b18df9d2-d034-4e1f-bcd1-d70b30fe9059/506355bc-c119-4f18-bf0b-abe9be8c17d6.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"70cd556c-8349-4f80-b276-4c0056b46536",show_title:"Geyser 🌊",text:"so we have people in Africa and I think possibly Asia. But yeah, we have again, we have I think in around three days, we had 30 new projects being created on Geyser using this Lightning address feature, which is pretty big deal. We have you really need six clicks to create a project on Geyser. It's pretty seamless. And we had quite a lot of educators create projects on Geyser. We had Bitcoin community in Honduras, bitcoin in Hausa, Nigeria, and also we just heard from BCB based in Ghana as well, bitcoin, Essex, UK, and Orange Pill Yosemite, which is in California. So really featuring four different continents. These are micro communities. These are little micro communities that are focused on meetups focus on orange Peel in the community, raising funds for supporting education initiatives that are pretty small scale but nonetheless importance. Again, Bitcoin is a grassroots movement, and so what these creators are doing is that they're setting up these super micro, grassroot level initiatives to get support from the community and create their own community on Geyser. Again, Geyser is, yes, a crowdfunding platform, but it's really a place where people can come together to support common causes and support getting shit done. You have an idea and you get some people together, some people throw in new ideas, some people throw some money, some people throw resources. And so gather should be seen a little bit more widely and we will soon have more features to enable these types of feedback loops and conversations. ",timestamp:"00:17:16-00:19:06",topics:["Bitcoin","crowdfunding","Geyser"],type:"twitter_space",weight:55.39905291682817},{boost:0,date:null,description:"About ApolloSats: P2P reviews for Bitcoin related products and services",episode_title:"Café ₿: #Bitcoin News & Trusted P2P Reviews w/ @Apollosats",guests:[{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:"@FossGregfoss",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"09913e9b-38dc-4465-9d4d-ae0c9ba9eeca",twitter_handle:"Fuckkkk"},{name:"@w_s_bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"b178b239-3b18-4a16-9d43-c5d15ba6f7f4",twitter_handle:"w_s_bitcoin"},{name:"@NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"4b6997e1-ce0b-4a1d-90e7-dbaccef4b783",twitter_handle:"NeilJacobs"},{name:"@brandon_gentile",profile_picture:"https://pbs.twimg.com/profile_images/1561369452284895236/-8WgdwEm_400x400.jpg",ref_id:"f940c5e8-4808-4197-a38f-3f19d311a7ad",twitter_handle:"brandon_gentile"},{name:"@apollosats",profile_picture:"https://pbs.twimg.com/profile_images/1576946734927794176/2ail9FoU_400x400.jpg",ref_id:"74f4280f-5fdb-4bbc-aee2-a2ed32d64372",twitter_handle:"apollosats"},{name:"@StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"6e652629-38ec-49d8-9f5c-3ba28f80c799",twitter_handle:"StackchainSig"},{name:"@TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"7af639f8-8c5c-4ce1-a43b-e8560ed40e2b",twitter_handle:"TomerStrolight"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7cf57bdb-c905-46e3-a7e5-4c0bfd4f8d04/71c08fae-cce8-4600-ab9e-758420e78dcf.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"7c3d3625-4308-437e-80bb-38fb8b2a678c",show_title:"Swan.com",text:"want to welcome up Apollo and Julian from Apollo. So, Apollo, just a really quick intro. If I understand it right, they're building the first review site, leveraging sets, and you log in with lightning. So basically, you get to review the products you love, find companies you trust, and earn bitcoin. Julian, good morning. Welcome. Talk to us about what you're doing and why are you doing it, and then maybe we can open it up for some questions, if you like. Sounds good, Alex. Yeah, thanks so much for having me, and, yeah, I really enjoyed the conversation this morning. Sorry to interrupt the crucible, but I think it's actually a pretty great segue into talking about what we do at Apollo, which is finding the truth right, through the contest of ideas and context of information. So, yeah, you gave a really great intro. Basically, we are a marketplace for user reviews of bitcoin products and services, and the idea is pretty simple. We wanted to build somewhere for bitcoin is to educate other bitcoinrs about not only what products and services exist in the space, but also how to compare them and what basis. And we felt that that was kind of missing in the space and probably needed to just help adoption, which is the mission we started the company on the basis of, hey, we want to do whatever we can to help bitcoin adoption. It's the most important thing we could be spending our time on. And in the process of doing that, and I can talk a little bit more about that. Of what we learned from one of the biggest challenges to work on bitcoin adoption, we realized that we kind of needed something like this, which was we needed somewhere that we could send new bitcoiners who just wanted to start the process of going down the rabbit hole. So, yes, pause there, but happy to take any questions. I love it. That is the mission. I agree. What I'm excited about is I'm starting to see a lot more of this kind of direction where people are recognizing that is the mission increasing adoption as much which is possible. Let's go ahead and open it up. If anybody up here on the panel has questions for Jillian, go ahead. And if you're in the audience and you have questions about what these guys are doing and how it works and all that kind of stuff, you can request to come up. You can ask questions in Telegram if you like. Tmecafetcoinclub, I've got a question. So to use this service, I'm assuming you have to run your own Lightning network node, is that right? You don't have to, no. So you can sign up in a few different ways. You can just sign up with an email address or with your Twitter account, or you can log in with Light. But for now, on the infrastructure side is pretty straightforward. Like we just kind of run our own we're not running a node yet ourselves, but we just have our kind of own internal Sachs ledger, maintaining everybody's account balances. And we will send SATS to whatever address that users have on their end. Got it. Cool. So you can hook it up with like a Wallet of Satoshi account or whatever, something like that, you're saying? Yeah, exactly. So Wallet of Satoshi or Zebony account, I mean, a lot of people are using kind of Lightning addresses, like ball toll addresses for the first time, which is really cool to see. But yeah, whatever Lightning address you have spin line up, send it to us and we'll send you Sat. How do you know the reviews are legit reviews and not just someone trying to accumulate Sat? Yeah, it's a great question, to be honest. And it's the best one we're focused on that happen from day one. And there are a couple of answers, right? Like one is in the longer term, what we're building is a marketplace that run like a market, right? And the idea is it's a market for information. So we want the best, most reliable reviews to organically surface to the top and the way that that is going to happen. And what we're building is that there is a system of incentives between these two sides of the marketplace, right? Reviewers on the one hand and readers of reviews on the other. That allows for that. Right. So how can that happen? Well, basically reviews after they're written and we publish them, and I'll talk a little bit about the moderation that we do before we actually publish, but after they're published, they can be uploaded and kind of similar to stack and use, if you guys are familiar with that. Basically every upvote is actually, in effect a transaction, right? So you have users sending SATS from their account to the author of a review to upload that review. So the idea is people vote with SATS on what is most helpful, most reliable. And so if the market works effectively, then the best reviews, most helpful reviews are going to rise to the top. That's what we're kind of building for the longer run. Now, obviously in the short run, we need to do some things to bootstrap that market and also put up some guardrails to obviously make sure that people aren't gaming the system, which certainly they are trying to do already. Right? So we have a few things that we do upfront to filter for spam and other kind of obvious bad actors that are going to come in and just try and publish a bunch of reviews and earn as many stats as possible. But you end up again. So if you got a follow up, yeah, I got a couple of other ones if no one else wants to go. So is it going to be bitcoin only companies because I see or bitcoin only things because I see Anthony Pompeano's newsletters on here, clearly like he's a controversial person. So I'm just curious if you guys are how you decide what companies get to go on here or newsletters or whatever. Yeah, so short answer is yes, bitcoin only. Like that's the mission. It's bitcoin adoption. And specifically it's like we want to educate bitcoin is and help bitcoin is educate each other. And so the mission is bitcoin only. The products are almost entirely bitcoin only, except where I would say for a couple of instances, right? One is where there's some just overlap between bitcoin only products and crypto stuff. Like there are exchanges that we want people to review that obviously have bitcoin and crypto and maybe some newsletters or other content pieces or wallets or whatever the case may be. It's obviously relevant for us to let people educate each other on those products, even if they're not bitcoin only. So that's one instance of where they overlap. When it comes to things. Julian, don't you think that's a little conflicting, just a little bit? I mean, first you say bitcoin only, but it's bitcoin only except when it's not coin only. I know there's a lot of bitcoinners are going to take issue with that. And if what you're trying to do is increase bitcoin adoption, giving any kind of platform for something that's distracting people into bullshit is maybe that's I just know there's a lot of bitcoin is going to have an issue with that. And I know right now, Julian, I see like the Pump newsletter has an awful rating on your site. So I'm assuming mostly bitcoiners are the only ones kind of going on here right now. But what happens when he or a bunch of crypto people find this site, right? Then it just becomes a review site. Yeah, well, so a couple of things, right? One is at the moment, because we're so early, we're running a bunch of little experiments, right? So we don't really know how this is going to play out. So we've got the pop newsletter on there. We put the bankless newsletter on there too. Right. And part of that was to see how are people going to respond. And pretty much all of our users right now are bitcoin only users from what we can tell. And the results have been whether it's for those newsletters or for like Coinbase or other crypto exchanges. Right. Many of the reviews coming through, a lot of them are kind of nuanced and are actually bitcoin is telling. Other bitcoin is like, hey, this is an exchange that if you really have to use it as your first place to buy bitcoin, you can do that. But get your coins off exchanges, find an alternative. Like people are writing reviews, for example, of Coinbase saying like, hey, don't use this platform, go and use Swamp instead. And the reason why I think it actually is important to have all of this information at people's disposal is because people have these questions, they are going to find out coinbase is going to be top of mind for them. So we want to build somewhere where people can, I guess, do a bit of self directed learning, learn from bitcoin is who have been through these on ramps, have been through these experiences and are going to be able to answer the questions that I think people are going to inevitably have. Does that answer the question? No, but I'll let Neil go. Well, yeah, and that's kind of like a shameless plug. But are you going to be adding bitcoin merch and apparel companies? Because I would love my company to be on it. Sure, yeah. We're taking recommendations on constantly on categories, products and it's to some degree like demand driven. Obviously we're not going to put anything that people just request up there, but yeah, shoot me a note and we'll add it to the list of things to consider. Sure, I'll dare so. I just want to reiterate, I mean, I'm not going to beat a dead horse, but I would suggest to you, Jillian, to consider that you don't have non bitcoin things on there. And the reason why I say that is you use the term get on the mission and that's start or you use the term the mission, I say get on the mission. But this concept of on being on the mission, of bitcoin adoption is starting to permeate through the interwebs a little bit. And I would just suggest be careful about that because like anything that you're doing to give a platform to something that's going to draw people off mission, what I call being on the mission and what I think a lot of other bitcoinners agree is on the mission I think is going to be looked at in the long term. I think you're going to see that that was a mistake. When you say things like, well, we're doing a bunch of experiments. Like what it sounds like to a bitcoin? Or is you're experimenting to figure out where you're going to make the most money? This is very fiat mindset, in my opinion. It's very much like opens you wide open to being sponsored by shitcoins. And that's not a good place to be, man. Yeah, I see you're right there. That we absolutely do need to stay focused. And we will. And I guess to that end, we have some principles that we're sure very firmly aligned with. One is we know that ultimately whatever we are doing is in service of that mission of increasing Bitcoin adoption. And so we're open to feedback and changing what we list, how the incentives work, everything else along the way, and we certainly will be. The other thing too is we're just not going to do certain things that you might ordinarily see with some other types of companies in this category. Right. So we're not going to be running ads, we're not going to be taking sponsorships from companies. There's not going to be any pay to play or like affiliate linking or anything like that. Really what we're building is okay, let me ask you a question then. The way the system works, if I'm understanding it correctly, is people boost with SATS, who gets the stats? If you write a great review and other users are sending you stats because they find it helpful, all of those stats go to you. Okay, but then how do you make money? Well, right now we don't. Right. We're a startup. What's the business model? How do you intend to make money? Well, so there are a couple of potential ways we can. Right. So what we're trying to do is build this marketplace that is a meeting place for potential users of products, people who have used them, and then the companies themselves. And so we want to be able to mediate a really great high signal conversation between these three sides of the marketplace. And so we think that that's going to generate a lot of value not just for users of people who review them, but also the companies themselves. I get the concept, but what I'm asking you is how do you make money on that sort of triumvirate of people talking to each other and creating this marketplace of ideas? Yeah. So one way that we could is partnering with companies directly in a transparent way. So if Swan or anybody else is talking to users on our platform and we're providing this meeting place for great quality conversation, then we can have companies that could potentially use that. Okay, so this is my point. This is what I'm getting at. What if that company that comes to you and offers you that sweet, juicy, lucrative deal, what if it's Sam Bankman Freed, and he's like, hey Julian, I'm going to give you $100 million if you help us out here. Well, the short answer is like, we're just not going to do that because it would so obviously undermine the integrity of the platform that it just wouldn't be I appreciate the hypothetical, but it would just be so contrary to what we're trying to do that it's just not something that is realistic for us. All right, cool. I hope time proves that out. Okay, we're very close to the end of the show. We've got time for maybe one or two more questions. We'll give you some time to make some closing comments, Jillian, and then we'll move to wrap. Go ahead. Wicked. Yeah, kind of. In summary and you can correct me if I'm wrong here, but it sounds like you might allow reviews to be written about companies that are crypto friendly or crypto curious. But in the long run, you don't plan to ever partner with those companies, and you plan to stick with only bitcoin, only companies that you may generate revenue from in the future. Is that correct? That's right. Yeah. We are a bitcoin only company for bitcoiners and bitcoin only companies. And to the extent that there's going to be any information on crypto products on our website, it is specifically for the purpose of steering bitcoins away from them. And so that will be borne out both by the content we produce and have on the platform. And also, I'm assuming, from what other bitcoin is going to help other bitcoin learn about as well. I would just, like, make one last thought. I mean, this is your company, obviously you run it the way you like, but the whole steering away thing, you're actually just giving them a platform that potentially will cause them to lose a lot of money. And my observation is that when people get burned, they figure that shit out on their own. They don't need to be led down these pathways where they might go look at this stuff. That's just my opinion. Let's go with simplest and then we're going to give you a few minutes to make closing thoughts, Jillian, and then we'll wrap. Go ahead, simplest. Hey, thanks so much. Yeah, a quick question because I'm just aware of the dynamics of how you keep these sort of platforms, these review platforms, honest. And I've always kind of wondered, like with Yelp and everything, just how they do that. And in your case, and regarding the point that Alex is making about the crypto so called curious companies is how do you prevent down the road? Like, if those companies become aware once you grow big enough to really be having an impact in the market, what if they use their armies of whatever to be coming in and just giving themselves glowing ratings? And like, I understand you have some measures in place, but when that becomes overwhelming and if there's a few of those companies or a number of them, how do you prevent them from providing millions of five star reviews to themselves, so to speak? Yeah, that's a really great question and so there are a couple of different ways that we can address that in the short term and then longer run it's going to be more of an engineering challenge, but it's certainly on our minds, right. In the kind of short to medium term, what we're going to do is implement basically a cost to posting. So right now we're kind of bootstrapping the marketplace by rewarding people just for posting reviews and sending them sentence of doing that. We want to get to the point where people are actually willing to pay a small fee to actually write and post their reviews and so on. Like a small scale. We think that's going to disincentivize people just costlessly attacking us with that information right at a small scale. But your question about how do we disincentivize or just prevent large scale attacks like that, then things get a little bit more sophisticated. But there's a really interesting concept called a web of trust, which is a way of basically preventing this kind of class of civil attacks on information platforms. Won't go into the details, but essentially you can implement a range of preventative measures where you can make the cost of posting scale exponentially. For people who are posting a lot in a short space of time. You can do a whole bunch of things where we can identify sophisticated attackers and impose basically a big enough cost so that it's not actually economical for them to engage in that behavior. ",timestamp:"01:48:01-02:07:24",topics:["ApolloSats","P2P reviews"],type:"twitter_space",weight:21.470260620117188},{boost:0,date:null,description:"The Bitcoin Village project in Nigeria",episode_title:"The Orange Sun ☀️ #Bitcoin News and Talk",guests:[{name:"Portland Hodl",profile_picture:"https://pbs.twimg.com/profile_images/1562306406526492672/LiqmI9NS_400x400.jpg",ref_id:"530aba21-392f-4156-9e91-4fc5c76fced1",twitter_handle:"PortlandHODL"},{name:"Miykael Woodward",profile_picture:"https://pbs.twimg.com/profile_images/1473433558475689985/CM0o3oWu_400x400.jpg",ref_id:"6fe02a78-4f07-47e7-8e64-b278a3167835",twitter_handle:"MiykaelWoodward"},{name:"Okin Mobi",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"bbd18918-7758-4bdb-b9a5-641bf92748a6",twitter_handle:"OKIN_17"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"Funsho Jimoh",profile_picture:"https://pbs.twimg.com/profile_images/1600143435775856641/uqgmtT23_400x400.jpg",ref_id:"a237ffb0-792b-484e-b12f-65a2b679eaf1",twitter_handle:"fnicencool"},{name:"prince ogbonna",profile_picture:"https://pbs.twimg.com/profile_images/1595693872637681664/TeWJzTut_400x400.jpg",ref_id:"0b0c70b1-23b1-4d98-b259-6dbb67b7481d",twitter_handle:"princejoj0"},{name:"The Bitcoin Village",profile_picture:"https://pbs.twimg.com/profile_images/1544318244789649410/kQ2G1MCE_400x400.jpg",ref_id:"d894aca4-36f6-4821-a00b-a4e860b19502",twitter_handle:"VillageBitcoin"},{name:"Masterguantai",profile_picture:"https://pbs.twimg.com/profile_images/1521025685078302720/w9dZwehS_400x400.jpg",ref_id:"29baf525-42eb-41a6-98f9-a0d6b4480af0",twitter_handle:"MasterGuantai"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/bef977d0-8a6a-441b-a8cb-58baebe2bfd7/b9ec2918-1059-48ac-b5ee-69018c42a07c.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"6cbed027-125f-454c-b03a-865df0b60d36",show_title:"Satoshi’s Journal",text:"intent of the village was, of course, first and foremost to have a school that we could educate that village about Bitcoin and then bring the plebs along as we build it so that they can see the proof of work. And using Satoshi's Journal, the media company, as the videographer, so to speak, as the media, we can bring that to you live from Nigeria. So it's actually a really cool way to be able to have the pleb, see what we're doing in real life, and then along the way, if donations want to be donated, so be it. And we're already seeing that, so we will document the whole thing all the way up from the foundation to final erection, to the ribbon cutting, to the first graduates of Lightning Development Academy, to you name it. It's going to be basically old, and I plan on when we die, we hope that there's many, many more schools built like this, and we plan on building more because we know that in the future, we will be, with the help of the plebs, educating the future businessmen and women of the world. And we're living a small snippet of a Bitcoin standard, and if we can instill education in this village in the form of what money is and what Bitcoin is, bitcoin being the best money ever known by man, we are basically allowing them to have a bright future. And I've told Olu and our team that we don't know what's going to happen in the future with what we're doing, but I'm confident that what we're doing and what all you guys are doing as plebs in your respective areas on an individual basis, you can move a mountain, so to speak. So don't ever underestimate what you can do as an individual. Yeah, so that's ",timestamp:"02:48:50-02:51:13",topics:["The Bitcoin Village","Nigeria","Bitcoin Adoption"],type:"twitter_space",weight:19.850265502929688},{boost:0,date:null,description:"Immutability of the Bitcoin consensus code ",episode_title:"Café ₿: Sovereign Computing w/ Matt & Aiden, Start9",guests:[{name:"Andrew",profile_picture:"https://pbs.twimg.com/profile_images/1465763053014859786/xYFN2czJ_400x400.jpg",ref_id:"ae4b13f8-0ee7-480a-b47a-82b967ad7a79",twitter_handle:"AP_ArchPublic"},{name:"Matt Hill",profile_picture:"https://pbs.twimg.com/profile_images/1347317316057321474/ieMjzK3x_400x400.jpg",ref_id:"3576ad28-a04d-4388-865b-3ec5114c4f9f",twitter_handle:"_MattHill_"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Aiden McClelland",profile_picture:"https://pbs.twimg.com/profile_images/1470160097225498624/0BjKB_2W_400x400.jpg",ref_id:"04ddd9d4-9329-4e6c-aaa3-d65ea4a9342a",twitter_handle:"_dr_bonez"},{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Lisa",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"e6f0c6e3-3237-4b13-878f-bb740cd32f8d",twitter_handle:"lisa_hough_"},{name:"Isabelle",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"c8df253f-47b3-465e-878e-8405c01c090d",twitter_handle:"isabelfoxenduke"},{name:"Tone",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"5729ac07-51d6-4268-b585-62680c846acb",twitter_handle:"ToneVays"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Derek",profile_picture:"https://pbs.twimg.com/profile_images/1598322677827207169/Cw0A3oOP_400x400.jpg",ref_id:"f441b996-7eeb-4210-b24c-fa011161709d",twitter_handle:"derekmross"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ec4a941-250c-4e1d-8d2a-6c506c3ba4b2/4bd8010d-b2fd-41b4-8041-8a953ef06492.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"2a3ee0fe-bcfc-412d-b1ee-2ba7f72528bd",show_title:"Swan.com",text:"something that's probably important to bring up for people who are brand new and they're listening to this and they're new to bitcoin. They're trying to figure all this stuff out. Bitcoin is always say, well, you can't change bitcoin it's mutable. Like there's no small group of people controlling it. You can't change it. Right? I think that deserves a bit of explanation, because some people are going to be listening to this, going, look, you just changed it. Does somebody want to take a shot of this? Tom or go ahead, please. Yeah. The consensus rules of bitcoin remain completely unchanged. This reference client offers new interface features and spending preferences that make certain things that were harder to do before easier to do, or certain things that were toggled off before toggled on by default now. And that's what happens in 90% of these releases of bitcoin core. It's like support for having multiple wallet files, support for enabling, replaced by fee transactions by default. This feature, which I haven't really looked into, that I guess allows you to spend the entire contents of a wallet without change or something. I'm not sure what this feature does yet. So these are new features that keep coming out from time to time, and occasionally some API call. Again, nothing to do with the consensus algorithm will get retired or replaced by something else so that it works better, or bugs are resolved where interface issues happen. But the actual operation of bitcoin itself remains unchanged, which is why only three or 4% of people are running this new release right now. And there's no incompatibility there's no one getting all this. Block was okay for version 24, but it wasn't okay for version 23, or vice versa. The same rules apply, the same spending rules for each transaction. The same consensus rules for each block remain completely unchanged. Any attempt to change those things is known as a soft fork or a hard fork. Hard forks don't happen in bitcoin, so they're soft forks. And these are very infrequent things. And if there was one in the works, everyone here would know about it. They're widely discussed, and they must be adopted by all minors, and they generally also need to be supported by all clients or an overwhelming majority of clients. Soft forks are somewhat backwards. They are backwards compatible, so that even if not everybody upgrades, everyone will remain in perfect consensus that the state of the chain is valid. But the miners almost can check for the new rules that come with software. So I'll kind of stop there because I'm already maybe over complicating a little bit of what your question was. I thought that was a pretty good explanation. I like to keep it even dumber, but I think that was pretty good for me. I always go back to the monopoly board analogy because I think they're just easy. Maybe I could offer one other little explanation that I hope will keep it easy but paint a big picture for people. Bitcoin core is the piece of software known as the satoshi client, and it's a piece of software that was first launched, that bitcoin launched on, and it does everything that bitcoin does. It allows someone to mine, it allows someone to create a wallet. It allows them to secure the wallet. It allows them to create transactions and receive transactions to that wallet. It does everything that the bitcoin ecosystem does. It's the reference client. And so it is bitcoin, and it establishes the peer to peer network. Like, if you run it, it connects it's the note, it creates a copy of the blockchain, it stores a copy of the blockchain. It does everything that you've ever heard that bitcoin does. And it is a very tight piece of software. But as it ages, the open source developers who work on it make it easier to use. Initially, there were only like a few buttons you can press and only a few things you can do. And over the years, they've added user interface improvements and additional commands that don't break the consensus algorithm that make it easier to do things. And that's really why new versions, for the most part keep coming out, that there are ideas that the community feels make it easier to use, better to use, more secure to use. And so those features are added to bitcoin core. Right, okay. But I think what people wonder is, if you can make changes to it, how can we be sure that it's not going to be changed for evil purposes against the best, it's not in the best interests of the common man, it's not going to benefit some small group of people over everybody else. How do we know that that's going to happen tomorrow? Yeah, the first point that I was making is changes to the consensus code of, like, what it takes to spend bitcoin or how many bitcoin can get generated or what makes a valid block are not changes that can be made in bitcoin core without complete consensus of the entire community. All the miners and all the use. Words that have nothing to do with Vicky. Try to use words that people are going to understand everything you just said. If I was brand new, I wouldn't understand a damn thing you just said. Right. Changes to bitcoin core don't change the rules of bitcoin, if that's what you want to say. Like, if someone tried to change the rules of bitcoin in bitcoin core, what would quickly happen is there would be a split in the network. It would be what's called a hard fork. And then people that splits the monopoly board into right, okay. People would have to if you want to do that, anybody can change that. But if you want to do that, you're creating a new monopoly board and saying, come play with me. And what ends up happening is nobody comes to play with you and then your monopoly game dies. Right. That's what's happened historically, yes. Perfect example is like bitcoin cash, right? They changed the rules, it made a different version of bitcoin, and now that version of bitcoin is worth like one half of 1% of what bitcoin is worth. BCH and BSV have basically been both deplatformed off the exchanges at this point. And they're just dying. They're just like these. They're making their last little twitches as they perish. ",timestamp:"00:48:29-00:55:14",topics:["Bitcoin core update","Satoshi client"],type:"twitter_space",weight:18.508241653442383},{boost:0,date:null,description:"UTXO and release of Bitcoin version 24.0 features",episode_title:"Café ₿: Sovereign Computing w/ Matt & Aiden, Start9",guests:[{name:"Andrew",profile_picture:"https://pbs.twimg.com/profile_images/1465763053014859786/xYFN2czJ_400x400.jpg",ref_id:"ae4b13f8-0ee7-480a-b47a-82b967ad7a79",twitter_handle:"AP_ArchPublic"},{name:"Matt Hill",profile_picture:"https://pbs.twimg.com/profile_images/1347317316057321474/ieMjzK3x_400x400.jpg",ref_id:"3576ad28-a04d-4388-865b-3ec5114c4f9f",twitter_handle:"_MattHill_"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Aiden McClelland",profile_picture:"https://pbs.twimg.com/profile_images/1470160097225498624/0BjKB_2W_400x400.jpg",ref_id:"04ddd9d4-9329-4e6c-aaa3-d65ea4a9342a",twitter_handle:"_dr_bonez"},{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Lisa",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"e6f0c6e3-3237-4b13-878f-bb740cd32f8d",twitter_handle:"lisa_hough_"},{name:"Isabelle",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"c8df253f-47b3-465e-878e-8405c01c090d",twitter_handle:"isabelfoxenduke"},{name:"Tone",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"5729ac07-51d6-4268-b585-62680c846acb",twitter_handle:"ToneVays"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Derek",profile_picture:"https://pbs.twimg.com/profile_images/1598322677827207169/Cw0A3oOP_400x400.jpg",ref_id:"f441b996-7eeb-4210-b24c-fa011161709d",twitter_handle:"derekmross"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ec4a941-250c-4e1d-8d2a-6c506c3ba4b2/4bd8010d-b2fd-41b4-8041-8a953ef06492.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"48de736c-df85-48ea-9856-e9b608a6025e",show_title:"Swan.com",text:"I was just going to echo back to some of the points that Tomar was making about utxels and stuff. Did you guys see that, the release of bitcoin cord 24.0? It has some really great features into it that allow users to sort of, like, spend all UTXOs. So when you're sending a transaction, you don't generate change, which I think it's really cool. It's a really cool feature for privacy. It's kind of like, explain that. What does that mean? You know how Sparrow gives you the ability to sort of create, like, if you're going to send bitcoin or receive bitcoin, you can create, like, new addresses in order to sort of get past the common input ownership heuristic of chain analysis. Use English. Use words that explain it, like you're explaining it to a five year old. Okay, so essentially what this code is allowing you to do is you can. Empty out a wallet. You know, when you send out a transaction, you're actually sending all of the amount of all the BTC you have. In that wallet address. You're sending it out, and then you're receiving a UTXO back from the receiving address, from the address you said, like, change. So in other words, if I'm buying something and let's say I've got one UTXO or one address that is in the denomination of a $10 bill, for example, I go and buy let's call it a cheeseburger for $5, I get $5 and change. And the problem with the $5 and change is that that's trackable, right? Yes, 100%. Yeah. And they're also including a change output randomization, which is kind of like what Monero does, but not really. It's a way to sort of, like, generate random amounts so that anybody watching the chain can't really tell which UTXO belongs to you. And they do it in a very technical way, but yeah, man, I'm super excited about it because this is increasing the level of privacy that you can achieve just with bitcoin core. These are small tweaks to the privacy enhancements of bitcoin. And these are all backwards compatible, right? Like, if people don't want to adopt this, they don't have to kind of thing. Yes. Ant, do you have any comments? Full RBF equals one. Oh, yeah, let's get that. Bitcoin core version 24. There's already 3.8, maybe 4% of total public bitcoin nodes running. It interesting across the world. ",timestamp:"00:45:21-00:48:27",topics:["UTXOs feature","Bitcoin core v24.0"],type:"twitter_space",weight:18.260805130004883},{boost:0,date:1671644776,description:"The Orange Pill app and it's piggybank feature",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b18df9d2-d034-4e1f-bcd1-d70b30fe9059/506355bc-c119-4f18-bf0b-abe9be8c17d6.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"fed2b741-e9a2-4858-bee8-faa259806d3e",show_title:"Geyser 🌊",text:"orange Fill up. Do you want to come up and tell us a bit about your project? Let me add it to the spaces too. Did you get the invite? I'd love to hear about what your features releases are up to. So Builders feature orangeville app. We have Lightning Piggybank, which is essentially an electronic cash piggy bank for children that accepts bitcoin sent over lightning. So this is a pretty small project, but it's a pretty sweet thing, actually. So let me add this to the it's pretty incredible, actually. I need to show you guys. I need to show you this. Imagine a piggy bank, but instead of an actual pig, it's like a cardboard box with a Geyser satoshi. Yes, we did. What's up, mate? I cannot do from the desk, though. You cannot talk? I'm not on desktop. Oh, no. You can't talk from desktop? No, it's got to be mobile. Yeah. It'S painful. Yeah, we got to talk to you. Yeah, exactly. But yeah, just to finish up this thought, there you have this really cool piggy bank which has this, like essentially this counter, this wallet counter of how many Satoshi the project has, which is really cool. And this person is just raising money connecting their Geyser project onto their Lightning Piggy Bank, which is fucking cool. I mean, this looks like a little DIY type of fun project that a father did for his son or something super cool. But let's go back to you, Matteo. Let's talk about orangeville app. Why not? What's up with you? Yeah, for sure. Orange. Bill app is a mobile app. We use Geolocation, which is the only approximate to connect you with nearby users, nearby pledge, and soon we'll let you find events. So meet up, conference, whatever. Actually, it could be anything because the user can create events straight from the App and then put the address. And then you'll be able to invite people there nearby to the event. So it doesn't have to be a meetup. It could be like a soccer game or picnic on the beach or anything. That's pretty cool. Hopefully it comes out January or February. Definitely February. And then we're going to launch the search feature, which will allow you to search for people all over the world. So if you're traveling and you're going to Ghana, you'll be able to look for clubs in the App there in Ghana. And then you can chat them up and say, hey, I'm coming to Ghana next week or next month or whatever, and I'd like to meet with you. I don't know anybody in Ghana. And of course, you can also search by gender for dating, age, profession. Right? We got to do yeah, I'm sure it's going to be like 95% guys, though. It's not can you confirm that? No, it's not. I don't have the number precisely because some users, they don't put a picture. And I know there's one woman that I talk to, obviously I talk to everybody on the app and you wouldn't know she's a woman, but it's a woman. But I think it's about 10% women and 90% men, which it looks it doesn't look good. But Tinder, which is the biggest dating app on planet, the ratio meant to women, it's 97% men, 3% women. No way. I know, it's crazy. Wow. But there's so much there's so many. Better than they are. Yeah, we're doing better than Tinder. Yeah. The point is that when you have, I don't know, hundreds of millions of user, it works even if you have one or 2%. But yeah. So with the search, you'll be able to search, obviously only if the other users have disclosed those information. So age, gender, profession, which is going to I think the profession looking for Profession is going to kickstart the Bitcoin secular economy, right? Because imagining you can look plumber in Oxford and then you can paint that because obviously if it's in the app, it's a bitcoin max. Right. So that's going to be very exciting. ",timestamp:"00:19:33-00:24:59",topics:["Orange pill app","Geyser","piggybank","piggybank"],type:"twitter_space",weight:42.97230338635478},{boost:0,date:null,description:"The solutions to main challenges facing the ranching industry in Nigeria ",episode_title:"The Orange Sun 🌞 Let's talk #Bitcoin & Cattle Ranching/Sustainability",guests:[{name:"Texas Slim",profile_picture:"https://pbs.twimg.com/profile_images/1589784780970795011/02jf0fqp_400x400.jpg",ref_id:"b4448c8e-9238-4aba-bd25-efb329ea5a72",twitter_handle:"modernTman"},{name:"Lucas",profile_picture:"https://pbs.twimg.com/profile_images/1596345084966014976/maviSGq3_400x400.jpg",ref_id:"e3adb591-b29f-435b-bd34-210f2dbcedaa",twitter_handle:"impossiblyso"},{name:"Firebust",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"0fb6c7f3-a673-4fe5-9599-8165800a2ff0",twitter_handle:"FireBursts"},{name:"Hamza Yusuf",profile_picture:"https://pbs.twimg.com/profile_images/1318064165030940672/sakbSOvT_400x400.jpg",ref_id:"03a74669-b653-4c57-8799-a312cb041089",twitter_handle:"Hamzayu28849293"},{name:"Adenekan's Father",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"b8259997-2ef0-4e6e-8d58-a69b5eda550a",twitter_handle:"AdenekanFatai4"},{name:"Adenekan",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"ca6a563e-0e84-4811-be82-a3b3cd12d399",twitter_handle:"AdenekanFatai4"},{name:"Heritage",profile_picture:"https://pbs.twimg.com/profile_images/1510397558652350469/jYOl00tU_400x400.jpg",ref_id:"98a6d9df-3c39-49ec-8a39-074e61af4ece",twitter_handle:"herrytheeagle"},{name:"Enoch",profile_picture:"https://pbs.twimg.com/profile_images/1596235105663533056/5mRUbLm3_400x400.jpg",ref_id:"4f8af040-3d0c-49c1-806e-aef89d8693fb",twitter_handle:"KazEnoch"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/a91f79fd-d85f-4440-b012-4bdafdc83341/f1d1c5b5-b8c9-44ed-a217-f75b398376d5.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"754762ac-7680-4b80-9ff4-f314ae65d146",show_title:"Satoshi’s Journal",text:"Good morning, everyone. Such an insightful, interesting topic we have today. Like when she said we don't have all the time to dictate it so that we respect our guest time. But Ariel, thank you, sir, for being with us. I mean, it's no small thing that you're here. We know what your time means to us and all that. Thank you. It's such an honor to have you here. I'll just go right into it. I may not be able to exhaust my questions and I planned on, but just to make some few comments here, that bitcoin builds communities. And I think that is what Texas Lime has been trying to point out. It's all about community building and we can achieve that. But the pain point for catering is in interior that quickly. I heard from identity is one, security is a big issue. And that's because one of the reason is that we're not doing ranching here. Okay? We're not doing ranching here. The farmers get to the railroads, get to move around and all that. We don't have a ranching system. But a ranching system is so important where they are set out, places where that is, well, knowledge that these cows can feed on, the advantage is big. The advantages, less risks of diseases, we can have less risk. And also when these cattle are moving and moving, they don't get the right yield in terms of adding weight and pounds and all that. So that's a challenge I think we can sort out. And how do we sort that out? I mean, I know we're having a big project where we can begin to have a bitcoin only ranching system built in Nigeria that will technique one, security two, it will help us foster bitcoin education easily. And also we begin to have the fattest and the biggest cows and the most healthiest cows that Nigerian can produce. I think satoshi journal, we can do that. We can push that. I know we have a big project, but for now let me just quickly drop so that we can respect that. Yes, this time. Thank you so much. Yeah, no problem. And last but not least, lucas, do you have a question or comment? Oh, I'm glad we had time. I'm sorry to come late to the conversation, but I work with towns in New Mexico and Colorado trying to get them to adopt bitcoin to begin a. Localized currency based on their water system. And I grew up on a farm ranch, and to me. Giving rural areas starts with like, valuing water and watersheds. More yeah, I totally drive with that. And I highly recommend that you follow Texas, slim and a dennett and anyone else on this panel if you want to partner up and see if you guys can help further what you're trying to do. It's right in line with what Texas and slim is doing ",timestamp:"01:59:32-02:02:45",topics:["Bitcoin ranching system","ranching"],type:"twitter_space",weight:17.55785369873047},{boost:0,date:1671644776,description:"The Bridge2Bitcoin project",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/b18df9d2-d034-4e1f-bcd1-d70b30fe9059/506355bc-c119-4f18-bf0b-abe9be8c17d6.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"c11fe5dc-bed6-408f-ae1b-650580184f3e",show_title:"Geyser 🌊",text:"love to hear from Bridge to Bitcoin, because I know you guys, I don't know if you've created it or if you're well, it's a Bitcoin asset project, right? Let's talk about that. Welcome. Hey, Mick. How are you? This is Christopher from bridge to bitcoin. Hi guys. How is everyone this evening? Good to be here. Great to join you guys in your space. So thanks for setting this up. Mick, apologies for joining late. So apologies if I go over ground that you've already talked about out. Oh, no, don't worry. Sorry for tagging you last minute. No worries. Thanks for tagging. It's been great to speak with Connet. And also I just want to bring it back. Well, actually, I'll start off by saying congratulations on getting 30 projects listed this week on Geyser. That's fantastic. That's really great. And just to resonate with what Connett was saying in terms of things get built in a bear market, I think it's fantastic. And you guys are really promoting it. So thank you for everything that you and the Geyser team are doing, helping people, or Bitcoin is build in this bear market. Because for me, for the rest of the team, it's really important that we build foundations now so we're ready as the ball comes out. It's fantastic to see. So for those who don't know about bridge, for those who don't know about bridge to bitcoin, we onboard merchants to accept bitcoin payments. And we received a grant from Geyser early this year. I'm ashamed to say we haven't yet, and it's been on our to do list for weeks, months, to put up a project, a crowdfunding project on Geyser. And we should really do that soon. But, yeah, we'll get that. It's definitely on our to do list. So we hope to do that soon, especially now, as you say, Nick, the ease of putting up a lightning address. And that makes it so easy, as Joe Nakamoto tweeted about earlier this week. So we shall definitely get on to that. But I just want to go back on what I heard Mateo from Orange Pellet talking about, because he dropped off the call now. I think he has. That's a shame. But I really resonate with what he was saying in terms of how. For. Us, onboarding merchants is one of the cornerstones of Bitcoin success, certainly from my perspective, and making the user interface really easy is really important. I sort of resonate with what Mate was saying in that I think most people are currently not fussed about decentralization, they're not fussed about privacy. We as Bitcoin as are, we get it, we've been down the rabbit hole. But most of the society, they want convenience, they want ease. And that's unfortunately why I think CBDCs are going to hit hard, because people won't do their homework, they won't do their research, people are going to welcome it with open arms, unfortunately. So for me, merchant adoption is really important and introducing that in a way that's really easy. So the way we do that for Bridget to Bitcoin, ironically, it's not Bitcoin that we're selling merchants. For us, it's about creating additional revenue for them by saying, oh, hi, guys. Hi, merchants. What we're going to do is we're going to create a new customer base for you called Bitcoinners, and they're going to come and spend their currency for at your shop service and it's going to create additional revenue. And so for me, it's a slow orange bill, because what happens is a lot of these merchants get bitcoin is coming and using their services or buying their products, and we as Bitcoin as we're fantastic customers. We're so enthusiastic. We travel miles, we buy stuff from all over the globe, we get it shipped over, because you as a Bitcoin business, we want to support you. But if you're new to Bitcoin as a merchant, you kind of get overwhelmed quite quickly with how much attention you get by accepting Bitcoin. And it's great, because what that happens, and what we've evidently seen is that those new merchants suddenly get this influx of bitcoiners and it leads them down the rabbit hole without us having to do anything. Because bitcoin is they make an impression because we're such happy people, especially in these economic times where everyone's feeling the pinch, we will go that extra mile, literally, to spend our bitcoin, to spend our SATS, and replace them. And we're happy about it. We're more than happy, we're enthusiastic. We're the best customers you could ever have. That's amazing. For me, it's kind of a cornerstone of how we can it's sort of a Trojan horse. Trojan horse orange pill. So we're going around to regular businesses so who don't even know about bitcoin, and that's what we're planning on next year. We're going to trade shows. We're just to speak to regular people. We've got no idea about bitcoin, and we're going to talk to them about this fantastic payment processing network called the lightning network. And bitcoin normally is quite late on in the conversation, actually, because as everyone, I think, on the call knows, the processing fees on the lightning network are next to zero. They're really cheap compared to what our fiat counterparts are charging. Plus we've got instant settlement, all those fantastic things. So we talk about it's really interesting. We talk about the payment rails. That lightning network is a payment rail and how better than it and eventually we get to the bitcoin piece. But, yeah, for me, it's about making their businesses more profitable, having additional revenue, and it's fantastic because you literally see them fall down the rabbit hole. So we had that recently with a small chain of pubs, just two pubs that we onboarded last month, I think it was last month or the month before. So this landlord, he owned two pubs and he was not a bitcoiner, and he was not interested in bitcoin. But when James, my partner, said, right, we can bring extra customers to your pub, they're called bitcoin as, and they will spend their currency, but it will create additional revenue, he was like, fine, okay, I'm not interested in bitcoin, but I am interested in additional revenue. So if they're going to come and spend their currency and I can give it to my local currency, great, because it's good for my business, I said, fantastic. ",timestamp:"00:51:38-00:58:00",topics:["Bridge2Bitcoin","Bitcoin payments"],type:"twitter_space",weight:35.60085180856705},{boost:0,date:1671735703,description:"Tips for building a bitcoin community",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Pysh, Booth, BTC Ben & the Plebs! 🍻😂",guests:[{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"},{name:"Brian",profile_picture:"https://pbs.twimg.com/profile_images/1589300685182570500/cTffQlpJ_400x400.jpg",ref_id:"b167b1cd-bbce-4839-a03c-194f006f954d",twitter_handle:"BrianTheDrumer"},{name:"BTC Ben",profile_picture:"https://pbs.twimg.com/profile_images/1348015880664473610/S-uDNLlZ_400x400.jpg",ref_id:"2c95b3dd-e3a2-4cf0-a49e-a8915d2bfcd5",twitter_handle:"bensemchee"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"78672de6-3c5f-4d95-8fd9-f2b512fa7a04",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/dbc5dd26-2307-4f64-a377-105e2a277d9c/be3d47a7-2fcd-4de8-8f22-71851953d022.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"d65c7fdb-df02-4bef-a6e6-8d214f6284d4",show_title:"PUBLORD",text:"will be here, too, of course. Yeah. I'm planning on setting up on the Tribe relay. Like when I get up. I'm going to get a laptop next week before I head was just talking about it. Honestly. Brian, DM me a list of like, some of the top speakers you think would be able to explain it because look at us, we're a bunch of regards, as they say, explain it to us like we're five and wear masks in a swimming pool. Like that kind of level. Yeah. Let's talk offline, brother, because I want to hear more about this wearing masks in your cart. All right. Sounds good, Bobby. I'm heading out with Brian as well. Always a blast. I appreciate the invite. I thoroughly enjoyed the Noster talk, to be quite honest with you. BTC sessions. Have a wonderful bonanza tomorrow. Looks awesome. Yellow, I really came here today just to kind of be around you and just love this group. I love you, Preston. Man thanks again for stopping Preston. Good, deep Preston. Happy holidays. Thanks for all you do for the space. Preston. Oh, yeah, man, my pleasure. And I'm honored to be a part of this movement with everybody else. Okay. Let that putt with Preston fish sink in. Preston. Just let it sink in. Oh, wait, yeah. Preston, before you go, because listen, I had an idea for you guys, because, listen, I like to go skiing in Colorado every year. And there's a place there go to Breckenridge or Keystone, but they've got this one little area where they had Lindsey Vaughn do a run, okay? And this for the kids for the most part, even though the adults can't hit it either. But they've got I don't know how many hundreds of meters it is, but they've got to run at a time there, and you get to try to test yourself against a time. So what I'm thinking is pressing you go solo on that course early, all right? You put your score up there, and then anyone who beats it, you get some SAS. Preston puts up the initial score, and you get SAS if you beat it. Just saying. I'm there. On a serious note, I am going to this Jackson Hole event in 1 March to I don't know if it's the second or the 3 March, but I'll be out there for that if anybody's in that area. All right, guys, see you. Thanks for the have a good one, man. Take care. Okay. BTC session. Ben, sorry, one question. Just say one quick thing. Just because BT session is in and probably I wanted to get your support on it as well. I'm trying to start a small bitcoin community in South London. And I'll put in your chat and mentioned earlier, I just wondered if I could get support from you guys because of BT sessions just turned up just now. I just wondered if I could get some maybe some help on some talking points as well, because I'm just trying to build something that's very I wanted to be very simple conversational. It's the first one, but I want to build on it. It's free. And I'm going to get some sponsors from some beer companies so we can do free beer as a kind of a pool. But it's going to be my pub that I run. I put it in a chat. So I just wanted some help, really. It doesn't have to be big. It's not going to be nothing like the Harvey party right now, but I'm planning on being there as well, so maybe I can get some people to come along for that as well. Sounds awesome, man. What kind of people are you expecting? Is there going to be some experienced bitcoiners? Is there going to be a mix of newbies what's the demographic you're looking at first? It's yeah, mix. I mean, I've got an old far who's written about 20 books about my favorite football team, which is Crystal Palace, but he's got a few properties and stuff and he wants to invest in Bitcoin. And I said to him it's exactly the same thing I said. It's like if I tried to explain to you how a car works, the fact that he knows how a car works, you still need to learn how to drive it. I can tell you all the benefits of how good a car is against a horse, but you still need to learn to drive. You wouldn't give a car to a ten year old and all this sort of stuff. There's an education that still needs to be learned. So we got to start small and then build up because he's got property, he writes books and stuff. I've got mathematician coming, a C plus plus, programmer coming, people I know, and obviously there is some shit coinners who want to come along and learn. But obviously you look at the meeting, I put it in the chat, it is Bitcoin. And I've called it Bring the chat. As in BTC. That's the breakdown of BTC. But obviously it's Bitcoin and it's the first one, so it's kind of build from there. But it is a case of break them in gently and I don't want to be fun. It's not about let's overload them with too much tech. But I kind of want to go with if we want to go down the economic rule road, then we'll go down the economic rule if we want to get to understand how Bitcoin works. But it's a case of it will evolve because of I can do as many I could do one a week, I could do one a month. It's about that engagement and just making it fun and free. That's the main thing. I think that's great. What I would say is maybe if you're doing a couple each month, then you could look at it as there's always going to be kind of like a beginner night, and then there will always be like the secondary. One will be maybe more in depth topics that will be of interest to the people that have been there for a while and have leveled up or the ones that are coming in already with a good base knowledge. And then that way you various things, I could actually split it. So we do the first one and then we work out how to split it on the technical to the beginner type side of things. And then I could do alternative nights based on maybe work it that way. Because probably knows that I love these spaces and I love learning myself and I want to share what I learn. And I think the best way to learn is to share your knowledge. The more I want to share it, the more I have to learn myself to make sure that what I'm saying is correct. And that's why I love these spaces so much, because I'm addicted to him. London I would just posit one thing. And this is cool that you're here asking these questions when Ben is here, because if anyone wants to learn anything about Wallace in general, see reviews and learn how to do things, you go to BTC sessions on YouTube, you can learn so much. However, there's a different level when you can do it sort of in person and you see it happening. And Ben. We did Halloween in Charlotte, North Carolina. And what was really cool, and I was mentioning this earlier on the space, and people don't understand, even if you've been here a year, you forget how far advanced you are when it comes to not only understanding Bitcoin and what it means, but the technology behind it. So if you can set up London, just a simple thing where you just show somebody how to download a wallet, either moon wallet, whatever wasabi wallet, and send them some SATS, dude, they are blown away and they'll be new to the space. But I'll tell you what, that changes lives when they see that. When you do that, that is like putting a couple shovels about 3ft down into the ground to start that rabbit hole journey. When they see that you just sent them value outside of the Swiss system, it was pretty cool to see. And yeah, when I saw that, I forgot, man. Sometimes it's like when you used to believe in Santa Claus, man. Used to believe in Santa Claus. Then you got older. But when you see people that do Lightning Network for the first time, you believe in Santa Claus again yourself. You see that spark of joy in their eye. Wait, you don't believe in capitals? What are you talking about? I was going to say Santiago. I think he pulled it back. ",timestamp:"02:14:38-02:24:14",topics:["bitcoin community"],type:"twitter_space",weight:36.0744936342072},{boost:0,date:1671735703,description:"What bitcoin represent vs what Nodster network represent?",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Pysh, Booth, BTC Ben & the Plebs! 🍻😂",guests:[{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"},{name:"Brian",profile_picture:"https://pbs.twimg.com/profile_images/1589300685182570500/cTffQlpJ_400x400.jpg",ref_id:"b167b1cd-bbce-4839-a03c-194f006f954d",twitter_handle:"BrianTheDrumer"},{name:"BTC Ben",profile_picture:"https://pbs.twimg.com/profile_images/1348015880664473610/S-uDNLlZ_400x400.jpg",ref_id:"2c95b3dd-e3a2-4cf0-a49e-a8915d2bfcd5",twitter_handle:"bensemchee"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"78672de6-3c5f-4d95-8fd9-f2b512fa7a04",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/dbc5dd26-2307-4f64-a377-105e2a277d9c/be3d47a7-2fcd-4de8-8f22-71851953d022.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"fbefee4e-b2e3-4635-88ac-800d3482e9f8",show_title:"PUBLORD",text:"on Craig's recommendation. I went to Jack.com. Was not what I thought it was going to be. Thank you, Craig. I had an education. Look, we'll talk about the notes a lot of times. All the fact Preston jumped in, I wanted to just have a few more words. I know he's got a busy schedule, but preston, you're coming to the end of 2022 investor podcast, one of the best ones we have any tweaks to next year. Guests are looking forward to have not really just doing the same thing in reference to the Noster conversation there. The thing that's such a game changer for folks is if you want to run your own relay and host your own data, you can do it. And the barrier to entry to do it is really low. In fact, that's what I've been doing while I'm here talking to you guys is I'm setting up my own relay to host my own data and to make sure fucking go that nobody can mess with it. And so when you look at what this protocol represents, when we look at Bitcoin, it represents it's like equal sign free and open money, free and open markets. When you look at Noster, it's similar to Bitcoin in the regard that equals sign free and open speech around the world. Nobody can shut it down. Right. That's what it represents. Now, we are in the very, very early days of this, and so whether we can pull it off or not at scale, I don't know. It sure seems like we can. When you have guys like Jack Dorsey in there, like every minute of the day working on the protocol and working on I don't know if he's working on clients or if he's just working on the protocol, but he's in there. And that guy wouldn't be in there if he didn't find a whole lot of promise behind the rudimentary building block of an event. That is where it all starts, with this protocol and everybody's just building around it. It's pretty exciting. Hey, Preston, are you able to limit who can see your data that you host by only letting people that you trade public keys with access it or something like that? Is that a concept? Yeah. And Brian, correct me if I'm wrong, because you seem to be pretty well versed in all this, but from what I understand, as I'm literally trying to set this thing up, I'm struggling a lot setting this up because this is not my area of expertise, but I have an appreciation for what it represents. I'm trying to learn along the way. But my understanding is you can host, you can relay whatever accounts you want, as many as you want or as little as you want, and people can connect to it. And you can allow that connection or not allow that connection, but it's creating this web of interaction between these encrypted messages that are of very small size, and they're just being passed around from relay to relay. Jim, are you basically asking, is there a way of blocking people? I guess it's more my thinking was more if you're going to host data, so maybe you want some of it open to anybody so you have a permission set on that data where anybody can just log on with a public key. You don't know if they're a bot or anything else, and they can see your stuff. But then maybe there's other stuff you only want your followers to see or something like that. I don't know. Maybe testify. Just let me know. There's a new version of Domas just got released. Is that relevant? I'm sorry. We ",timestamp:"01:35:32-01:39:29",topics:["Nodster network"],type:"twitter_space",weight:35.643925540367206},{boost:0,date:0,description:"The Genesis crypto lending fraud",episode_title:"The Orange Sun ☀️ #Bitcoin News and Talk",guests:[{name:"Portland Hodl",profile_picture:"https://pbs.twimg.com/profile_images/1562306406526492672/LiqmI9NS_400x400.jpg",ref_id:"530aba21-392f-4156-9e91-4fc5c76fced1",twitter_handle:"PortlandHODL"},{name:"Miykael Woodward",profile_picture:"https://pbs.twimg.com/profile_images/1473433558475689985/CM0o3oWu_400x400.jpg",ref_id:"6fe02a78-4f07-47e7-8e64-b278a3167835",twitter_handle:"MiykaelWoodward"},{name:"Okin Mobi",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"bbd18918-7758-4bdb-b9a5-641bf92748a6",twitter_handle:"OKIN_17"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"Funsho Jimoh",profile_picture:"https://pbs.twimg.com/profile_images/1600143435775856641/uqgmtT23_400x400.jpg",ref_id:"a237ffb0-792b-484e-b12f-65a2b679eaf1",twitter_handle:"fnicencool"},{name:"prince ogbonna",profile_picture:"https://pbs.twimg.com/profile_images/1595693872637681664/TeWJzTut_400x400.jpg",ref_id:"0b0c70b1-23b1-4d98-b259-6dbb67b7481d",twitter_handle:"princejoj0"},{name:"The Bitcoin Village",profile_picture:"https://pbs.twimg.com/profile_images/1544318244789649410/kQ2G1MCE_400x400.jpg",ref_id:"d894aca4-36f6-4821-a00b-a4e860b19502",twitter_handle:"VillageBitcoin"},{name:"Masterguantai",profile_picture:"https://pbs.twimg.com/profile_images/1521025685078302720/w9dZwehS_400x400.jpg",ref_id:"29baf525-42eb-41a6-98f9-a0d6b4480af0",twitter_handle:"MasterGuantai"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://s3.amazonaws.com/stakwork-uploads/uploads/customers/2707/media_to_local/a99c4b03-009f-4027-a9c7-3c249a0cf9b7/a99c4b03-009f-4027-a9c7-3c249a0cf9b7.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"663836ff-8d5a-4037-a62f-72568fff46f1",show_title:"Satoshi’s Journal",text:"that's very interesting. But Genesis future is more uncertain because the business is heavily focused on lending out customer crypto and has already engaged restructuring advisers. The crypto lender is part of DCG, the conglomerate controlled by Barry Silbert. SEC officials said the possibility of a DCG or Genesis bankruptcy had no bearing on deciding whether to pursue a charge. It is the latest in a series of recent crypto enforcement actions led by Gensler after the collapse of FTX Bankman Freed's crypto exchange late last year, Genzler was roundly criticized on social media and by lawmakers for the SEC's failure to impose safeguards on the nascent crypto industry. Gentler's SEC and Commodity Futures Trading Commission, chaired by Roston Benham, are the two regulators that oversee crypto activity in the US. Both agencies filed complaints against Bankman Freed, but the SEC has of late revved up the pace and the scope of enforcement actions. The SEC brought a similar action against now bankrupt crypto lender BlockFi and settled last year. Earlier this month, Coinbase settled with New York State regulators over historically inadequate know your customer protocols. Since Bankman Freed was indicted on federal fraud charges in December, the SEC has filed five crypto related enforcement actions. So the SEC is finally getting some stuff done. They have been criticized, and it's really great to see them finally do their job. And hopefully they'll essentially what I see happening is, of course, the Winkleboss twins are pissed because they are like a little cornered animal. And you know what happens when you corner an animal? They'll fight you back, but they're fighting back. And they're in a corner because they're trying to get their customers paid back. But they're having a little war with Barry Sober, and Barry Sobert is not paying them back. So now you got basically a pending, they're probably going to go and sue Barry Sobert and then now you have the SEC charge them with those charges. So once again it's just going to show you this is all inevitable. They should have all known better but I think it just they're not idiots. They should have known better but I think that they do idiotic stuff because there's already been a precedence by which people that do bad stuff, they end up just getting bailed out anyways or they just get out of it with a little slap on their hand. And we saw that many times in our history. And it's sad because basically these crypto exchanges are going to be probably let off with a small little slap on the hand but at the expense of millions and millions of dollars from their customers who they basically took advantage of. They were not good stewards of their customers money and they were using that customer's money to borrow against, to buy more assets and just become over leveraged. So we don't know what the balance sheets of Barry Silbert's DCG company is and we don't know the balance sheets of Gemini but yes, who knows, they may be worse than what we think and this could cause further cascading of crypto in general. The unfortunate part about this is that as we all know, crypto and bitcoin are two separate things. Bitcoin is not competing against any of those cryptocurrencies that are on exchanges of which there's 20,000 plus and that's still defined. But essentially as those cryptocurrencies as they get rug pulled and litigated against, so to speak, bitcoin is going to go down with them. But when it's all said and done, bitcoin just keeps doing what it's supposed to be doing every ten minutes, just block by block verifies transactions, validate transactions and it could give the rats ass about what's happening around it. Nevertheless, the cascading effect of the shit coins caused bitcoin to go down. So who knows, there might be some further damage, so to speak. Damage is not the right word. There can be some further lowering of the price of bitcoin just because of the shit coins getting finally rug pulled by regulation. It was highly necessary and I'm glad that they're finally doing something. It'll be interesting to see what the SEC does as far as new laws and regulation that come out of this. And it will also be interesting to see if the Winklevoss twins have the liquidity to be able to sustain multiple litigations and perhaps even further degradation of the value of what's on their balance sheet. I think another thing that's interesting we all know about Binance, it'd be interesting to see what their balance sheets look like if they're as bad as we think they are. According to Binat's CEO, in a stone cold manner, he told them that they're good to go and they have the liquidity to sustain even a further drop. But that was a huge liquidation. They went under anyways. We're seeing it all. Rugpool and Bitcoin will stand on the end, we all know that. And it'll be interesting just to see if everything pans out. Just another game, theoretically, in bitcoin. ",timestamp:"00:41:05-00:48:14",topics:["crypto lending fraud","DCG","SCC","Winklevoss"],type:"twitter_space",weight:14.263422012329102},{boost:0,date:null,description:"Decentralization of bitcoin and holding ",episode_title:"Café ₿: Thanksgiving Special 🦃 w/ the Café Bitcoin Crew",guests:[{name:"Rob Hamilton",profile_picture:"https://pbs.twimg.com/profile_images/1524033110630969351/wTUr8S36_400x400.jpg",ref_id:"94b18625-4778-4cfe-9c78-823704d1c1b1",twitter_handle:"Rob1Ham"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:"DJ Satoshi",profile_picture:"https://pbs.twimg.com/profile_images/915987644043030528/5nh3JQSz_400x400.jpg",ref_id:"02ae35cb-3728-441f-84c5-a8db5d9150b4",twitter_handle:"satoshi__tomiie"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Shaeroden",profile_picture:"https://pbs.twimg.com/profile_images/1560742113410678789/cHZ2tUjU_400x400.jpg",ref_id:"0da06a5c-038f-4737-9af7-17bed3712e68",twitter_handle:"Shaeroden"},{name:"Andres",profile_picture:"https://pbs.twimg.com/profile_images/1401952614795943950/aL2h3Wb4_400x400.jpg",ref_id:"db4abfe9-e3bb-4ffa-9783-ce67f5b20270",twitter_handle:"andresvbr9"},{name:"Peter Ansel",profile_picture:"https://pbs.twimg.com/profile_images/1374726811221954565/R7ttqYMI_400x400.jpg",ref_id:"2d418514-e03c-414d-8ed1-10c894aacb6e",twitter_handle:"peteransell"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/c25e3b3c-b5ef-435e-9e7d-9e406089e7b1/572908d4-f2cc-4c7b-980c-8359d2c8000d.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"2acb23ed-c7ca-4f51-abb6-bfcc0a87316a",show_title:"Swan.com",text:"I'm amazed you fell for like well, I don't know if they fell for the Rogers thing, because I think Roger believed what he was saying, but it's like, who's Roger to understand how an exchange works, right? Because I don't know. I was friends with Roger. I was talking to I know, but I was friends with him. I was talking to him all the time back then. I was working with the guy, and even I was like, but I worked a bit instant, so I had to work directly with Mount Cox back then. And it was such a shit show because I had all my funds on Cox, too. But after that experience, I was like, okay, I'm never using Cox again. These guys are a train wreck, dude. You guys got to understand that Brad was raised not only Mormon, but Canadian, which is a double whammy of gullibility. That's true. The truth is right there. Take that with some extra maple syrup today. Wow. Good one. It's amazing you're not a bee catcher, Brad. Well, Brad's also smart. He's just really nice. So he keeps being like, oh, I guess it's true. Maybe Roger does know things I don't. That's the one thing, though, I knew the entire time, was that Bitcoin was the thing to pay attention to, and you always wanted more Bitcoin, and that decentralization was the most important thing about why this asset is valuable in the first place. And sacrificing any form, any sort of decentralization, invalidates the investment case for bitcoin. So if you're going to make the blocks bigger so that people can't run nodes as easier or set a precedent that some centralized cartel of businesses or devs even, can just change the parameters of either the code or the monetary policy, that completely invalidates the sound money properties of the asset. Which is why I never fell for bitcoin cash or ethereum or any of these things, because decentralization is the most important thing. So that also is what I focused on the whole time. It's like, this is only important because of decentralization. And you have to maximize decentralization even at the expense of pumping mentals, as Richard Hart would like to say, or Fomonomics or whatever you want to call it. Like the ethereum people sacrifice their ceremony properties for ponzi. Nomics, they actually made a centralized change in the code with the IP one five nine to try to actually make the stock to flow meme of ethereum better than the stock to flow meme of bitcoin. And it's the stupidest thing, and I'm so glad, is that when they became Brad, is that when they became ultrasound money? Because I have to tell you, I've talked to many ultrasound technicians and none of them are using ethereum. So I don't think it caught on. Hey, Brad, I think the real lesson that I've learned from you, because I love when we get in clubhouse and we just rib you, it's a good time. But I think the real lesson of Brad is you can make some of the dumbest, stupidest fucking mistakes for a decade and you still come out just fine. You have a core bitcoin position. Yeah, it's good. Literally, you have to do this thing where if you're not a conservative person who's able to just safely rationally hold bitcoin and not get distracted, you know, auto diagnosed me with what was it? Activity bias. Auto. Yeah. So this is probably worth going over for anybody in the room, but everyone has activity bias. It's not just Brad. Brad just has maybe more pronounced activity bias than others. Hyperactivity bias. Yeah. So this comes from evolutionary biology, essentially, which is that, like, let's imagine you're a small mammal on the grasslands and the grass blows, but it's above your head, you can't see what's behind it. Nine times out of ten, it's going to be the wind that's moving the grass. One time out of ten, it's going to be something that's going to eat you. And so it behooves you to run away to have a strong bias towards action. Which is why all organisms on earth have a strong bias towards action. Right. Cause one out of ten times you get totally eaten by a predator. So in markets, though, this works against us because you want to have a strong bias against action, and it's very difficult to just sit still like this is the quote I posted from Jesse Livermore's book, which, again, go read reminisces of a stock operator, this bear market. It's a very instructive book. It was written in the early 19 hundreds. And interestingly enough, a lot of what was going on, like pre collapse of 1929, is very similar to what's going on in cryptocurrency today, like the bucket shops and everything. It's really an interesting parallel. But basically you want to have a strong bias against action in investing terms. And so huddling at its most simple basic level is just getting a bitcoin position and then saying no every single day to selling that bitcoin position. That's it. And then if you want to sort of judo your activity bias, right, make it work for you, you go from huddling, which is mainly a passive activity, to stacking SATS, which is an active activity. So what do you do when the price is down? You stack SATS, right? And this is a way that you could actually hijack your own activity bias for something beneficial, but you don't want to use your activity bias to trade chick coins to sell in and out of your position, generate taxable events. You want to sit on your ass and do nothing. And that's the hardest thing to do. I love it. This episode of Cafe Bitcoin has been legendary and epic in that this will be the one remembered as when American hotel compared Brad Mills to a small furry mammal in the grass trying to avoid being eaten by predators. I thought it was the wind. You blow us canadian and not a Mormon. Yeah, not anymore. One of the things that you said, the thing that you just said was great and all, but most of us don't have the ability to control our activity bias. So I think most people, like some less so than others, they're going to come in and they're going to try to trade. They're going to go search YouTube about crypto and they're going to find, like, you know, people who think they're smart, who are actually just drinking koolaid themselves. And there's a lot of people in that category, like, sure, there's bitboy and people like that who are just grifters that are getting paid to show garbage, but then there's like, people who are unbiased, they're not getting paid to show garbage. They actually are good at technical analysis and trend following things like that, but they drink the Kool Aid of Defy and crypto and NFPs and they start giving smart sounding advice to new entrants and then they just create a whole class of people that are going to just go repeat all the mistakes that all the early bitcoiners made with their activity bias. So the thing is I think we really should push the idea of for new market participants and even people in here that maybe got ripped off on Luna or Celsius or FTX or any of these things we've all kind of had those types of experiences in the past. The way you get forward from it. I think honestly if you can't do what Hauddle said and actually control your activity bias and recognize that and just sit patient just buy and hold and dollar cost average and maybe had your risk at the top or something like that is create an internal bitcoin maxi personality like this is what the allship owners should do they should drink the bitcoin Koolaid like Jekyll and Hyde style have a bitcoin maxi personality inside of them. Even if they think bitcoin Maxis are cringe and stupid and boomers and don't understand utility, blah blah blah, every shift corner should have a bitcoin Maxi inside of them. Wait that doesn't sound right. Okay, so every shit corner should have a bitcoin maxi inside of them that controls their bitcoin, the private keys to the bitcoin and that bitcoin maxi personality needs to sign up with Casa or Unchained or somebody to do multi stig to protect the other personality. The FOMO sapien activity bias personality from going out and gambling away all their money. Yolo betting on some ICO buying a JPEG because Gary vee told them it's going to get them into his bedroom or something like that there needs to be like everybody should have a bitcoin max inside them. I'm just calling it that's what they got to do. And let the bitcoin maximize personality. Manage your bitcoin and segregate your portfolio so that you're protecting yourself from your Dgen side and if everybody did that they'd be like me because I made all these mistakes and then I'm still here and bitcoin changed my life. So most people are going to shit coin they should just do it in a way that protects themselves from what inevitably is going to happen. ",timestamp:"01:43:16-01:52:28",topics:["ultrasound money","Ethereum","bitcoin maxi"],type:"twitter_space",weight:13.933148503303528},{boost:0,date:1671644776,description:"Some of the importance of Bitcoin Creator spaces and how it helps Bitcoiners",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/885fe09b-bb21-49a5-8667-3c73ed36918f/196dc1e8-c7a4-4dc7-902f-d00107aefb42.mp3",node_type:"clip",pub_key:"0372cd0c8469f2034336a243e018d4d60e07efef8e7d10417807da1173bd5b002f",ref_id:"c80659ad-87eb-488c-be5d-00ac386a2b15",show_title:"Geyser 🌊",text:"Did you get the invite? I'd love to hear about what your features releases are up to. So Builders feature orangeville app. We have Lightning Piggybank, which is essentially an electronic cash piggy bank for children that accepts bitcoin sent over lightning. So this is a pretty small project, but it's a pretty sweet thing, actually. So let me add this to the it's pretty incredible, actually. I need to show you guys. I need to show you this. Imagine a piggy bank, but instead of an actual pig, it's like a cardboard box with a Geyser satoshi. Yes, we did. What's up, mate? I cannot do from the desk, though. You cannot talk? I'm not on desktop. Oh, no. You can't talk from desktop? No, it's got to be mobile. Yeah. It'S painful. Yeah, we got to talk to you. Yeah, exactly. But yeah, just to finish up this thought, there you have this really cool piggy bank which has this, like essentially this counter, this wallet counter of how many Satoshi the project has, which is really cool. And this person is just raising money connecting their Geyser project onto their Lightning Piggy Bank, which is fucking cool. I mean, this looks like a little DIY type of fun project that a father did for his son or something super cool. But let's go back to you, Matteo. Let's talk about orangeville app. Why not? What's up with you? Yeah, for sure. Orange. Bill app is a mobile app. We use Geolocation, which is the only approximate to connect you with nearby users, nearby pledge, and soon we'll let you find events. So meet up, conference, whatever. Actually, it could be anything because the user can create events straight from the App and then put the address. And then you'll be able to invite people there nearby to the event. So it doesn't have to be a meetup. It could be like a soccer game or picnic on the beach or anything. That's pretty cool. Hopefully it comes out January or February. Definitely February. And then we're going to launch the search feature, which will allow you to search for people all over the world. So if you're traveling and you're going to Ghana, you'll be able to look for clubs in the App there in Ghana. And then you can chat them up and say, hey, I'm coming to Ghana next week or next month or whatever, and I'd like to meet with you. I don't know anybody in Ghana. And of course, you can also search by gender for dating, age, profession. Right? We got to do yeah, I'm sure it's going to be like 95% guys, though. It's not can you confirm that? No, it's not. I don't have the number precisely because some users, they don't put a picture. And I know there's one woman that I talk to, obviously I talk to everybody on the app and you wouldn't know she's a woman, but it's a woman. But I think it's about 10% women and 90% men, which it looks it doesn't look good. But Tinder, which is the biggest dating app on planet, the ratio meant to women, it's 97% men, 3% women. No way. I know, it's crazy. Wow. But there's so much there's so many. Better than they are. Yeah, we're doing better than Tinder. Yeah. The point is that when you have, I don't know, hundreds of millions of user, it works even if you have one or 2%. But yeah. So with the search, you'll be able to search, obviously only if the other users have disclosed those information. So age, gender, profession, which is going to I think the profession looking for Profession is going to kickstart the Bitcoin secular economy, right? Because imagining you can look plumber in Oxford and then you can paint that because obviously if it's in the app, it's a bitcoin max. Right. So that's going to be very exciting. The Meetups is really the first iteration of the social movements, right? It's a social network that Bitcoin is creating that you are enabling through the IRL meetups. But that's really the first iteration. Well, the Meetup is every meet up is not necessary. You can search for plumber and connect with the guy or girl, whatever, and then it's like you found the plumber online instead of on the app. And, you know, he's already a player because he's on the app and he's paying to be in the app. So we filed through all that kind of stuff. So Profession, I think, is going to be a big game changer for Bitcoin ecosystem. And then location again, travel, or if you just move to a place or whatever, and then obviously user name. So if you want to connect with some specific plan. So the search yeah, it's going to be amazing. So when's the search coming out? I think we're launching the search on a limited version of Search. We can only search by username probably this week or next week. And then we're going to expand it like, we're going to expand it ideally in January. Right now we're focusing 100% on Android because obviously, especially in some part of the part of the world, most labs have an Android. And so we need to be on Android ASAP, which will come in January. But yeah, searches come in ASAP. I think January, February, like Q One, 2023, we're going to launch pretty much everything. And then after that, we're going to launch the Orange Pages. So Orange Pages, it's in the name, right? We have partnered with oh, nice. Yeah, we partnered with BTC Map, and they have all the merchants that accept bitcoin. We got the API, and so you'll be able to look grocery store or airstalls, whatever you need right through the app on a map. So one place to find all these people, all these merchants and businesses and friends and girlfriend and boyfriend and events and meets up. So it's one stop. For all on Top Shopify. All the Bitcoin connections in real life in the offline. Right. The goal is to foster as many in real life connection as possible because I think that's how you win the battle when we meet him in real life is 100 times more powerful than meeting sending a DM or an email or a zoom call, right? Yeah. Right. So where does Geyser come in here? You guys are launching a project, right? We are. So what's the idea? Like, what's the idea behind the project? Yeah, probably today, maybe tomorrow. We're going to launch the campaign on Geyser. If you get a membership, orange fill up is a membership based up. Why? Because first, we don't want to do advertising. Everybody hates advertising, I think, especially the clubs. Second, we don't want to do any tracking of data, any data monetization, any of that. Third, we don't want spammers and scammers and bots and people that they just don't care about Bitcoin. So the app is membership based. If you go through the app, unfortunately, you have to pay with Fiat because Apple doesn't let us take payment in SATS, but we also have membership in SATS that you can buy on our website, which is Theorangeprop.com. Actually, it's my domain. It's also bitcoin is social. Just put it yesterday and then on Geyser. Nice. Yeah, I know. It was available. That's amazing. $10 on Geyser. That's going to be worth millions ",timestamp:"00:19:42-00:29:28",topics:["Bitcoin Creator space"],type:"twitter_space",weight:33.67529732328345},{boost:0,date:null,description:"Problems with the beef industry in the United States",episode_title:"The Orange Sun 🌞 Let's talk #Bitcoin & Cattle Ranching/Sustainability",guests:[{name:"Texas Slim",profile_picture:"https://pbs.twimg.com/profile_images/1589784780970795011/02jf0fqp_400x400.jpg",ref_id:"b4448c8e-9238-4aba-bd25-efb329ea5a72",twitter_handle:"modernTman"},{name:"Lucas",profile_picture:"https://pbs.twimg.com/profile_images/1596345084966014976/maviSGq3_400x400.jpg",ref_id:"e3adb591-b29f-435b-bd34-210f2dbcedaa",twitter_handle:"impossiblyso"},{name:"Firebust",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"0fb6c7f3-a673-4fe5-9599-8165800a2ff0",twitter_handle:"FireBursts"},{name:"Hamza Yusuf",profile_picture:"https://pbs.twimg.com/profile_images/1318064165030940672/sakbSOvT_400x400.jpg",ref_id:"03a74669-b653-4c57-8799-a312cb041089",twitter_handle:"Hamzayu28849293"},{name:"Adenekan's Father",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"b8259997-2ef0-4e6e-8d58-a69b5eda550a",twitter_handle:"AdenekanFatai4"},{name:"Adenekan",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"ca6a563e-0e84-4811-be82-a3b3cd12d399",twitter_handle:"AdenekanFatai4"},{name:"Heritage",profile_picture:"https://pbs.twimg.com/profile_images/1510397558652350469/jYOl00tU_400x400.jpg",ref_id:"98a6d9df-3c39-49ec-8a39-074e61af4ece",twitter_handle:"herrytheeagle"},{name:"Enoch",profile_picture:"https://pbs.twimg.com/profile_images/1596235105663533056/5mRUbLm3_400x400.jpg",ref_id:"4f8af040-3d0c-49c1-806e-aef89d8693fb",twitter_handle:"KazEnoch"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/a91f79fd-d85f-4440-b012-4bdafdc83341/f1d1c5b5-b8c9-44ed-a217-f75b398376d5.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"d8a44c3b-6219-49d5-9a35-4b2ca5972d7c",show_title:"Satoshi’s Journal",text:"at this time I wanted to get the perspective of Texas Lim and Dennekin and Hansa, I'm sorry if I'm mispronouncing your name, but Texas Limb, could you just briefly tell us what the problem is with the beef industry in the United States relative to the commercialization thereof? And then I also want to just hear the same thing from Adenikan to see if they have similar problems as we do here in the US. Please go ahead there. Texas Lim. Yeah, you brought up earlier basically the multinational processors in the United States and whenever we say processors, okay, that's the same as, you know, in Nigeria then using the butcher. So let's make sure everybody has that perspective and understanding. We have processors and butchers are basically the same thing. They're the ones that harvest the animal, they're the ones that cut the animal up and in the United States they also control the distribution. What has happened in the United States throughout the my lifetime. Basically. I'll use Texas as an example. We had a processor butcher in every county across the state of Texas. That was 254 butcher processors. They were called microprocessing centers. They're called abortoires butchers, whatever you want to say, but they're the ones that harvest the animal. Well, in my lifetime now, those 254 processing centers are no more. And what we have is for multinational processing, basically corporations, they're not basically housed in the United States. Three of them are from Brazil, South America. And what they do is they control the butchering, the processing of the cows. They also control the distribution. The distribution is a global market in which United States consumers do not have access to. The beef has grown in the United States, the beef is harvested. In the United States, the beef is shipped overseas to the highest bidder. This happens across many different countries. In Australia, they're up against the same thing. A lot of their beef is shipped across seas to the highest bidder. Same thing in Africa. Africa's beef is not basically being consumed by the African people in a way. Or basically the distribution is not controlled by the butcher processors. I'm not for sure exactly on the same level, and it can speak to that. But in the United States, we've always said that we have to feed the world. Well, we never did feed the world. What we did was we created distribution centers across the world to a lot of the highest bidders. And what we did in the United States is we quit feeding our communities. We took the most powerful food sources and we shipped them overseas to where the American people are suffering. And one of the biggest bottlenecks to our basically beef in the United States are these multiprocessing centers, the multinationals JBS Cargill, national and Tyson. And so they have a lot of poll across the globe. Nigerian beef is also sold on that same global brokerage market, same as Australia, same as South America, same as so many small countries that basically do not have access to sound money. And basically all of that energy is stolen and shipped to the highest bidders. Eliminating any form of distribution to local communities. That is what we have to get back to. That's what the Beef Initiative is accomplishing right now. We're building out nodes across the United States where we're back to feeding our communities first, and then we distribute across the nation. And we do it by ourselves. We do not have to have permission from the multinational processing centers. We have our opening up our own processing centers. And therefore we control the distribution. And that's kind of a good long and short of it as far as what we are up against. As I say, the biggest threat to the American rancher at this time is the multinational processing centers, which takes away basically the power to steward the animal to its right age and age and weight and basically how they do that is they do not give access to processing centers in a timely manner. And a lot of times you will have to basically schedule kill dates within the cattle industry in the United States a year and basically 18 months out. That is hard to do as a rancher in the United States, because you quit being a rancher and what you become is basically a babysitter of that cow all the way until it's going to be harvested and the money is made by the distribution in the processor, not the cattle rancher. Whenever you do not have access to that processing center, you lose out probably two thirds of what your margins could be in the United States. And therefore, if you have access to a decentralized processing center, as you do through the beef initiative, let's say you sell a cow, if you're having to use one of the multinational processings, you'll make maybe $400 profit off that cow. If you're able to take that cow all the way to the consumer themselves, in which the beef initiative gives people market access to be able to do that, $400 basically turns into anything between probably 25 and $3,500 margin. So you can understand how much control of the margins profits that the distribution, the multinationals have taken away from the American rancher. I have to say that it's probably the same in a lot of similarities across the globe, because if you control the butchery, the processing, you control the cow in a way that has been taken away from the rancher. And I think that's amazing, the parallel, because the fact that money has been controlled since the advent of money by central authorities so as to have power over the people, it's the same thing. Cattle industry and in farming is the powers that be. If they can control the land and they can basically monopolize the farming and ranching, then they can control the people to a certain extent. That's the reason why we have to get onto a decentralized money and onto decentralized farming. And that's essentially what the beef initiative ",timestamp:"00:53:50-01:00:33",topics:["Beef processing centers","Beef distribution","butchering"],type:"twitter_space",weight:13.423835754394531},{boost:0,date:null,description:"Changing the narrative about Stackchain and Bitcoin",episode_title:"Café ₿: Sovereign Computing w/ Matt & Aiden, Start9",guests:[{name:"Andrew",profile_picture:"https://pbs.twimg.com/profile_images/1465763053014859786/xYFN2czJ_400x400.jpg",ref_id:"ae4b13f8-0ee7-480a-b47a-82b967ad7a79",twitter_handle:"AP_ArchPublic"},{name:"Matt Hill",profile_picture:"https://pbs.twimg.com/profile_images/1347317316057321474/ieMjzK3x_400x400.jpg",ref_id:"3576ad28-a04d-4388-865b-3ec5114c4f9f",twitter_handle:"_MattHill_"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Aiden McClelland",profile_picture:"https://pbs.twimg.com/profile_images/1470160097225498624/0BjKB_2W_400x400.jpg",ref_id:"04ddd9d4-9329-4e6c-aaa3-d65ea4a9342a",twitter_handle:"_dr_bonez"},{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Lisa",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"e6f0c6e3-3237-4b13-878f-bb740cd32f8d",twitter_handle:"lisa_hough_"},{name:"Isabelle",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"c8df253f-47b3-465e-878e-8405c01c090d",twitter_handle:"isabelfoxenduke"},{name:"Tone",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"5729ac07-51d6-4268-b585-62680c846acb",twitter_handle:"ToneVays"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Derek",profile_picture:"https://pbs.twimg.com/profile_images/1598322677827207169/Cw0A3oOP_400x400.jpg",ref_id:"f441b996-7eeb-4210-b24c-fa011161709d",twitter_handle:"derekmross"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ec4a941-250c-4e1d-8d2a-6c506c3ba4b2/4bd8010d-b2fd-41b4-8041-8a953ef06492.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"d72f67b3-c42f-43cf-8e01-47065fe8e638",show_title:"Swan.com",text:"Good morning. Good morning. Alex is getting him up here, but what's up, Derek? What's up, Hand? Good morning, sir. Morning. I've seen you down on the trenches, Derek, defending the stock chain. Oh, absolutely. There's a lot of defending going on last evening. It was fun though. We made progress. He seems to be changing his stance. Yeah, it was great. It was actually one of our best shows we've done in a while. Tell us a little bit about it. Well, yesterday during Cafe Bitcoin, brad Mills had tweeted out that Stack Chain was a shit coin and then proceeded to run with that narrative throughout the day and different polls and post comments. Whatnot? Peter and Greg Foss and others called him out during the show. But throughout the day he continued to talk about Stack Chain in that way. We thought that it was kind of a lack of information available, right? And we had hoped that once he saw what Stack Chain was, our community project, what it was all about, what we were doing, that he would change his tune. So we invited him to our evening spaces and for 2 hours we talked Stack Chain about basically all of our accomplishments and different things that we've done over the past four months. And he changed his tune. He is not sure about our massive Twitter thread, the actual Stack Chain itself, but he understands and understood every other aspect of our community from lightning nodes to support, to donations across the world, to bitcoin communities, to having fun and stacking stats. It's an interesting progression. What did he not get about the long Twitter thread? He took back his initial statement too because he was talking a lot of crap yesterday. I mean, he got a first hand experience of that Stack Chain energy all day. He was basically calling everyone in Stock Chain shit coin and calling Stack Chain a shit coin and so doing like polls and all kinds of stuff. And so Stack Chainers weren't too happy about that. I'll tell you what though, him talking about it was great for Stack Chain because it spread awareness that a lot of his followers had no clue what Stack Chain was. We had new Stackers come in last night and do stack joins and get new blocks. So. Hey, fudd is great for stack chain. Apparently it spreads awareness. It's like bitcoin. It's funny, it's like the ECB, the more they shit talk bitcoin, the more relevant bitcoin becomes. Absolutely. They don't even talking about bitcoin. What's that like? Yeah, like they're huge. Bitcoin is so small, what are they. Even doing talking about bitcoin? No, that's the point though, if they are talking about it, that means it is relevant regardless of whether they're trying. You see what I'm saying? Oh, I see. All right, I'll be right back, I'm going to grab my coffee. Do what you want. I am pretty surprised that he stayed in there for the whole two and a half hours and just kind of listened to what everyone had to say. I thought that was actually pretty decent of him. Absolutely. Especially in the beginning he was getting attacked a little bit, everyone's defensive of our community, so I think that he had a fixed skin and he stayed around and he learned his final conclusion was basically like oh, Stack Chain similar to the community that I have over on Clubhouse. I was like, well yeah, we're literally just friends buying bitcoin together and having fucking fun. He compared it to the original Pleb movement, which I wasn't really understanding that comparison, but it was an interesting conversation for sure. That poll that he did was pretty funny. Most people are like what is Stock chain, right? And then Lauren's response in that thread was the absolute best. She did another poll. How many of these people voting are shitcoiners or followers or shit winners? Really funny. Yeah, I wasn't triggered at all. Alex. Mowing bare action coming in. No talking about bitcoin at Thanksgiving. Marin yeah. Alex my mom sent me another text yesterday. I don't know what her vendetta is about bitcoin, but I can't talk about it at Thanksgiving now. I have online friends that are bitcoiners that she's coming at and text messages. We added my mom, just as a joke to one of the stack chain, like, back end chats. And it's really funny. She has no idea what's going on in there, so now she has a lot to say about that. So one of two things is either is going to happen, it's either slowly going to sink in that she's maybe a little off base, or she's going to double. Triple down. Yeah, she's tripling down right now. Oh, that's too funny. That's an interesting phenomenon. That was well documented, I thought, in that article was talking about the other day. What was it called? Why people struggle with bitcoin by Nick Beard. You guys should go check that out. I thought it was really well written talks about people who just can't, for whatever reason, they just can't. They tend to double down. Down, triple. I have yet to see somebody who's tripled down, so to speak, come around. Have you guys seen examples of that? A triple down person would be somebody like a Rubini or a chef or a monger or you guys understand what I'm saying? They go from, yeah, I don't think this thing is a thing to just full on attacking it's immoral. It's going to destroy society in the environment, et cetera. Those people are married to their beliefs, and you're not going to change them at least anytime in the near future. So that's like an ideologue, right? It doesn't matter what the facts are. They're going to believe what they're going to believe. And a lot of that, I think, is tied to their survival in some ways. Back to that saying you can't convince somebody of anything if it directly contradicts what they use to make a living or whatever. ",timestamp:"00:04:20-00:11:57",topics:["Stackchain"],type:"twitter_space",weight:13.423835754394531},{boost:0,date:1670706053,description:"Stacks is trying to reinvent the wheel - Bitcoin Maxi",episode_title:"Bear Market Buidl — Major #Bitcoin developments! #Stacks #Sidechains",guests:[{name:"@GriffdenNFT",profile_picture:"https://pbs.twimg.com/profile_images/1604377729062895617/R4pSEdH4_400x400.png",ref_id:"dafdf7ec-28c0-43d3-a0d9-b2d266f38738",twitter_handle:"GriffdenNFT"},{name:"@Chad_333",profile_picture:"https://pbs.twimg.com/profile_images/1592310541732970496/o1tbw9Eo_400x400.jpg",ref_id:"484c7695-6a4e-4141-9585-1109bf23f8cf",twitter_handle:"Chad_333"},{name:"@jackbinswitch",profile_picture:"https://pbs.twimg.com/profile_images/1601214177439260672/O0SpU5B1_400x400.jpg",ref_id:"9685e7f3-3e0c-4b84-9fd9-b8a1d96f6ae9",twitter_handle:"jackbinswitch"},{name:"@jimdotbtc",profile_picture:"https://pbs.twimg.com/profile_images/1593210347825119237/L_SNThWQ_400x400.png",ref_id:"5dcf5545-fad6-44ee-ae56-360c5efe1151",twitter_handle:"jimdotbtc"}],hosts:[{name:"@BigRpic",profile_picture:"https://pbs.twimg.com/profile_images/1604962150388219904/WqiCye-r_400x400.jpg",ref_id:"726f0c95-9d94-4d44-a056-8ad3c9e3ddd5",twitter_handle:"BigRpic"},{name:"@CarlsonDoc",profile_picture:"https://pbs.twimg.com/profile_images/1597382056308350977/1NPexynZ_400x400.png",ref_id:"e34fa2b2-a58e-4461-81a0-d10c1058dfc2",twitter_handle:"CarlsonDoc"},{name:"@STXLDN",profile_picture:"https://pbs.twimg.com/profile_images/1533793338931007488/o3laQDCp_400x400.jpg",ref_id:"5c3bc906-3aed-44f9-851a-94804c6fe5ca",twitter_handle:"STXLDN"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99046513-2614-4eae-9de4-5781ba4b330a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/fc3bebcb-8271-433e-8d81-84dd06f3b022/aec527bc-539d-4d3b-9bad-db4af9e1a1ba.mp3",node_type:"clip",pub_key:"03c7a7f42d94fdfc7a655515c1421cd1d20db090a1c24150201de0b1dc6a30b0ee",ref_id:"3cced3da-246a-4df7-884c-689661de7d66",show_title:"STX:LDN",text:"conversation in one Twitter spaces where somebody had actually said something about I think their analogy was like, oh, so Stacks is trying to reinvent the wheel and you don't need to reinvent the wheel. Everyone's heard that argument comes from the max before. I mean, I think people repeat what they hear and it's like, ultimately I'm a bitcoin Maxi. What really shocked me when I got to the Bitcoin conference was that it's like, oh, I'm like out. I like, really helped back in 2013, I think 2012, actually, dash and I went to our first bitcoin. I've got a photo on Facebook. We went to a Bitcoin London conference because we'd made our minds that we were going to get this ATM. It took quite a long time to kind of sort it out, but yeah, I think with 2012, we went to the Bitcoin conference and it was just such a small space and then to walk in. I'd never been to the Bitcoin conference in Miami before. I was really lucky enough to get invited by the Stack conference to go and talk. So while I was there, I thought, well, I'll buy a ticket for the Bitcoin conference. It was like $1,000 or something, and I was out of there within an hour. And I was quite depressed because I was like, I'm not part of that gang. And I felt like walking in there being like, hey, look, we've come. And actually it was like, oh, I'm kind of out. And I do think that there's there's just forces at work here, unfortunately, which are kind of corporate forces, which are setting the tone and just slowing things down. But, you know, I know we're all impatient, but ultimately time will tell. And I'm sure that the open source, decentralized nature of Stacks means it will be an unstoppable juggernaut, just as Bitcoin was. But there's literally people trying to slow it down, trying to play the advantage while we're small to keep us silent. And part of that is kind of brainwashing people. There are several things at work, and it's cool that you brought it up, Jim. The first thing is, we're the early adopters. We're the earliest adopters of early adopters on a macro time frame. If you look at how long, if you look at the scope of what's actually happening here, this is a move to it. Like, we talk about the industrial age, you talk about the Bronze Age, you talk about the no, we're at an epoch of time in human history with this information age or whatever you want to call it. And as we are right now, if you were looking at a chart, we're just barely making ripples in this macro time frame. What we do now is going to reverberate for several generations after us. And the thing is, when you were talking about one of the things that Stacks has to address is everybody knows what Bitcoin is. But then the second you hear anything else and you see the three letters, whether it's sol or STX or whatever it is, stacks just gets put in that category of, oh, that's just another coin to address that. You have to assume the audience has a basic understanding of crypto, has a basic understanding of why crypto matters, has all of these different things. So a lot of I think what we're fighting against right now are headwinds that won't exist in 20 years. Getting rid of the crypto element, that's the way it gets important, is once people don't even associate the word crypto with what they're doing. And one of the things that I'm working on, hopefully for next year is we've got a comedy festival in Brighton, and we're working with experts to see if we can come up with an entire ticketing solution in time. This is I think it's in February 2024. And so if we can come up with an X verse wallet that holds a ticket and a kind of process for the stewards, reading those tickets and letting people into the venue. We can onboard 20,000 people. That's a long weekend. It's a Thursday to a Sunday and we have three large venues. We get about 20 to 25,000 people through in those four days and they will all have an expert wallet. That's what we're trying. That's what I'm hoping for. Luckily, my wife is the producer of the festival, so she's witnessed a decade of me going through this stuff. So she's trusting me that I can kind of say, I think I can pull this off now. I've spoken about it for years, obviously since 2015. Like we were talking about, Alice is like, yeah, Straightaway is going right, this is going to replace all tickets. Do it now. Within two weeks, we'll just be all on the blockchain. But here we are several years later. But now it's actually a possibility with stacks and with experts. We had to have mobile. That was the frustration a year ago. We were like, yeah, this is ideal. We were even trying to do a fat boy slim gig where I was asking for guest list for it, which is a big live show he was doing. But I was like, Give me some guest list. I will stand at the gate with my laptop and figure out how to get people through. You don't worry about that. I'll make sure the right people get in because I was just like, let's just at least do something because we can do this. But now that they're on mobile, hopefully we've got a year or more than a year to kind of pull together a solution where suddenly we get 20,000 tickets into people's walls. And what some people don't sometimes appreciate is that the whole beauty of crypto with this pseudonymous network is that a payment network is a communication network. They're the same thing. And so the minute you've got tickets in someone's wallet, well, you can now communicate with them. You've got like a reach to them. You don't know they've not given you any information. You don't know who they are. But you've got a communication channel. So now they've got a ticket. You can now say, okay, well, now your ticket. Maybe we can maybe if we've got time to get there, it's like, now your ticket can be staked after the event. The ticket is an NFT and now you can stake your ticket and that's earning you money off your next year's tickets. And these are all non crypto people. And that, I think, is, I guess, our key because ultimately that's all I found within crypto is just walls. It's amazing to have these bridges. It's amazing that this stuff is going on, but it's still just a real battle. And actually what's going to really change things is when we can get those applications out there that are onboarding masses of non crypto people who just have a phone, and now they have an app on their phone and that app is connected to Stacks, and they don't even need to know about the connection to Stacks. They just have an app on their phone that holds their tickets and gets promotions out to them and they just show it to someone. When they turn up at a venue, it gives them a QR code in the when we get there, I think that's when we can really onboard the message. ",timestamp:"00:48:55-00:55:58",topics:["Bitcoin Maxi"],type:"twitter_space",weight:24.555915094150443},{boost:0,date:1672099200,description:"Controversies about energy sources in the world",episode_title:"Blockware Intelligence Podcast: 2022 Highlights",guests:[{name:"Michael",profile_picture:"https://pbs.twimg.com/profile_images/1558687629599657990/vf-bU14b_400x400.jpg",ref_id:"c7b4faa1-db77-4459-b03f-0e41e15efae7",twitter_handle:"MichaelHawaii"},{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Joe Consorti",profile_picture:"https://pbs.twimg.com/profile_images/1596902707511664640/GYGWVDts_400x400.jpg",ref_id:"8d2024b2-03bb-454d-9bd6-bb121904b76a",twitter_handle:"JoeConsorti"},{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"James Lavish",profile_picture:"https://pbs.twimg.com/profile_images/1466279082157502464/flD6cWI3_400x400.jpg",ref_id:"cf06ab2d-2ff3-4d7b-bef6-b996ae68517a",twitter_handle:"jameslavish"},{name:"Adam O",profile_picture:"https://pbs.twimg.com/profile_images/1395896857990160391/tJpgS2_p_400x400.jpg",ref_id:"95af0dd3-1e27-41b9-a36b-8a2c44438e85",twitter_handle:"denverbitcoin"},{name:"Jack Mallers",profile_picture:"https://pbs.twimg.com/profile_images/1599778945699909632/O0qc9ykA_400x400.jpg",ref_id:"d2e4aac5-e5e1-42fc-8f08-b3a77c076a64",twitter_handle:"jackmallers"},{name:"Lyn Alden",profile_picture:"https://pbs.twimg.com/profile_images/1521181379677073414/bm4LcJTr_400x400.jpg",ref_id:"903381dd-4b8a-4b59-8ecd-3281ae3ba297",twitter_handle:"LynAldenContact"},{name:"Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1508157904913899522/3l7ctauV_400x400.jpg",ref_id:"283edea0-55cf-4245-95df-8d6d3dcb1851",twitter_handle:"DylanLeClair_"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Stacy Herbert",profile_picture:"https://pbs.twimg.com/profile_images/1546484196750905346/5WYPz-bc_400x400.jpg",ref_id:"7477463b-1f3a-4b83-94c3-9d5a63b576c0",twitter_handle:"Stacyherbert"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"}],hosts:[{name:"Blockware Intelligence",profile_picture:"https://pbs.twimg.com/profile_images/953108582110781441/irB2GVXn_400x400.jpg",ref_id:"0ff00f04-2450-4699-b6a3-0467e29cddde",twitter_handle:"BlockwareTeam"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ea2cf2ae-76de-4185-818c-384b3b06228b.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=WxGMeufy8jw",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"144eff69-fd7a-48da-b92f-bb5b13e0b4f7",show_title:"Blockware Intelligence",text:"a mismatch between perceptions and reality about where some of the technology is in terms of different energy sources, right? So something, you know, like three quarters of global energy comes from hydrocarbons and then the rest, you know, hydro and nuclear are big chunks, and only something like 5% is wind and solar. But as wind and solar have kind of been pushed to be larger and larger parts of the grid, and there are certainly applications where they're useful, there's very hot and dry regions of the world. Rooftop solar can give you kind of more autonomy from the local grid if you have, say, rooftop solar and a battery backup, for example. But as they've kind of put policies ahead of technology and you kind of like obfuscate the cost, overstate the strengths and get that into the grid, it's kind of caused some issues. There's also a challenge where there's not a lot of investment in the grid itself, right? So, for example, California keeps having their electrical grid parts, electrical grid, face rolling. Brownouts you can imagine if you were to say ten x the number of electrical vehicles that are drawing power from that grid instead of through the gasoline distribution system we have. If that starts going over the grid, that's more stress on the grid. You need more copper, you need more redundancy, you need more cables bringing that around. And so I think the short term way out of this is frankly, there needs to be more supply of hydrocarbons, natural gas, oil and coal because that's what the world is currently short of, especially in certain locations. Longer term, I'd like to see a nuclear renaissance. Combination of smaller reactors and a better regulatory environment could really make nuclear come back. I mean, decades ago, it was actually pretty cheap and quick to build a nuclear plant, as there have been a handful of accidents, which even if you add up all those accidents, even if you take the worst case, scenario of not just immediate death, which is very few, but if you kind of take the high end estimates for environmental damage and what that could have caused kind of in the region, it's like it killed fewer people than coal kills, like every year, for example, through particulates in the air. But nuclear got that kind of increasing regulatory burden and that now makes it almost impossible in many places in the world to build a new nuclear facility. And of course, you want safe operations. So, for example, part of why Chernobyl was so bad is they didn't even have the shield. That now is standard practice among the nuclear facilities. Obviously, there's really bad ways to build a nuclear facility, but the modern ways and back then, even the responsible ways can build safe nuclear. And so I'd like to see that combination of they've developed small modular reactors that's been a bit like a push lately. And if there were kind of easing regulatory environment, I think that nuclear can at least solve a lot of the baseload grid power. And then longer term there's interesting things like ocean thermal energy that I think is under explored. There are other ways to get baseload power, but the general thing you need is that you need to have nature do as much of the storage and concentration as possible because the more that you have to replicate with machines, the less efficient and energy dense that's going to be. And so I think that's the big theme that a lot of people are missing in the energy space. ",timestamp:"00:49:04-00:52:35",topics:["energy sources"],type:"youtube",weight:37.306806397580786},{boost:0,date:1672099200,description:"Institutional adoption lowering Bitcoin's volatility",episode_title:"Blockware Intelligence Podcast: 2022 Highlights",guests:[{name:"Michael",profile_picture:"https://pbs.twimg.com/profile_images/1558687629599657990/vf-bU14b_400x400.jpg",ref_id:"c7b4faa1-db77-4459-b03f-0e41e15efae7",twitter_handle:"MichaelHawaii"},{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Joe Consorti",profile_picture:"https://pbs.twimg.com/profile_images/1596902707511664640/GYGWVDts_400x400.jpg",ref_id:"8d2024b2-03bb-454d-9bd6-bb121904b76a",twitter_handle:"JoeConsorti"},{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"James Lavish",profile_picture:"https://pbs.twimg.com/profile_images/1466279082157502464/flD6cWI3_400x400.jpg",ref_id:"cf06ab2d-2ff3-4d7b-bef6-b996ae68517a",twitter_handle:"jameslavish"},{name:"Adam O",profile_picture:"https://pbs.twimg.com/profile_images/1395896857990160391/tJpgS2_p_400x400.jpg",ref_id:"95af0dd3-1e27-41b9-a36b-8a2c44438e85",twitter_handle:"denverbitcoin"},{name:"Jack Mallers",profile_picture:"https://pbs.twimg.com/profile_images/1599778945699909632/O0qc9ykA_400x400.jpg",ref_id:"d2e4aac5-e5e1-42fc-8f08-b3a77c076a64",twitter_handle:"jackmallers"},{name:"Lyn Alden",profile_picture:"https://pbs.twimg.com/profile_images/1521181379677073414/bm4LcJTr_400x400.jpg",ref_id:"903381dd-4b8a-4b59-8ecd-3281ae3ba297",twitter_handle:"LynAldenContact"},{name:"Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1508157904913899522/3l7ctauV_400x400.jpg",ref_id:"283edea0-55cf-4245-95df-8d6d3dcb1851",twitter_handle:"DylanLeClair_"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Stacy Herbert",profile_picture:"https://pbs.twimg.com/profile_images/1546484196750905346/5WYPz-bc_400x400.jpg",ref_id:"7477463b-1f3a-4b83-94c3-9d5a63b576c0",twitter_handle:"Stacyherbert"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"}],hosts:[{name:"Blockware Intelligence",profile_picture:"https://pbs.twimg.com/profile_images/953108582110781441/irB2GVXn_400x400.jpg",ref_id:"0ff00f04-2450-4699-b6a3-0467e29cddde",twitter_handle:"BlockwareTeam"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ea2cf2ae-76de-4185-818c-384b3b06228b.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=WxGMeufy8jw",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"9f9305dd-fff2-4bb3-9e3f-698a55090999",show_title:"Blockware Intelligence",text:"Look, the people who are interested in this space, in the institutions, they're from the technology side. They look at this as technology. The technology analysts are the ones who are the ones who are analyzing it, the ones who understand cryptography and cryptocurrency implications and how it all fits into the space. But once that kind of bleeds over and really moves into the financial world and people start looking at this as digital money, I think that's where it starts to differentiate itself. But the big break will be when people understand that it's a store of value. Now, how do we get there? Right? So the question is, what is it going to take for bitcoin to be, in particular, to be seen as a store of value? And I think it's going to take the asset to have enough market value and liquidity that the volatility dampens and it's going to happen in steps, right? So it's going to take a few very large institutional investors to start buying Bitcoin, right, and not just buying it, but then also announcing that they bought it, right? So you've got what, you've got five firms, we talked about this before, we got five firms that control $30 trillion of investment assets in the world. So if you figure that there's about $700 trillion in total investment assets, $730,000,000,000,000 in investment assets, that's a lot. 30 trillion out of 700, $720. But five of those firms, you got BlackRock, Vanguard, Fidelity, State Street and Morgan Stanley. And if any of those firms start announcing that they've really taken this and considered a separate asset and we know that, we talked about Fidelity, we know that they're doing something. BlackRock, of course, is doing something. But when Vanguard comes out, when Morgan Stanley comes out and says, we are putting this in our portfolios, that's going to be a big deal. And once they do that and they start buying it, then you're going to get a lot of other investment managers that feel like they've got to do this. So it. Takes time, but we'll come back to that in a second. But once they start buying this and they decide they want to have a 1% position in this, well then bitcoin 1% position in all assets, right? So if you look at all portfolios across all asset classes, between bonds, investment bonds, corporate bonds, sovereign bonds, you've got stocks, you've got real estate, you've got art and collectibles, and you've got gold and silver and metals. But if you put all of that in a basket in one big portfolio and you say that 1% of that has to be the separate asset class, well then you're already at $350,000,000 bitcoin. $350,000 bitcoin. Sorry, don't want to get it right. Too excited. But $350,000 bitcoin. Okay. Now you're talking about a $7 trillion asset, right? You get that up to 2% and you're talking about over a $10 trillion, $14 trillion asset. Now you, now you really do have the ability to put money in this and not see that same volatility. It's just not going to move the same way as it does here as such a small asset. I mean, we're not even half a trillion dollars anymore. But once you have that, then I think that it takes off. And I don't know where that breaking point is, but it's somewhere before that store value recognition that it just becomes completely uncorrelated. So maybe somewhere between 100 and $200,000 bitcoin where it just, it rips up and it just complete completely decorates to the rest of the market. ",timestamp:"00:27:01-00:31:15",topics:["Institutional Bitcoin adoption","Bitcoin volatility","bitcoin"],type:"youtube",weight:37.30680637726857},{boost:0,date:null,description:"Discussion on how do you sell the value proposition of Bitcoin to small investors circa late 2022",episode_title:"TOXIC HAPPY HOUR! #Bitcoin is Easy Like Sunday Morning! 🍻😂",guests:[{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:" TC",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"dac0717a-a743-40d4-a89f-7523f071bbb0",twitter_handle:"publordhodl"},{name:" kann b",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"1170bde7-7f3c-4c4f-a158-5c48a98fe92b",twitter_handle:"publordhodl"},{name:" Dallas Rushing",profile_picture:"https://pbs.twimg.com/profile_images/1602759767029604352/hzuwh5ZB_400x400.jpg",ref_id:"13fed037-77ce-48eb-9544-25e7abff9395",twitter_handle:"dallasirushing"},{name:" Lisa Hough",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"5e154adf-d8bd-4adf-a23b-47a51c183163",twitter_handle:"lisa_hough_"},{name:" Collectooor of sats",profile_picture:"https://pbs.twimg.com/profile_images/1594362077132587009/cNAE2FU5_400x400.jpg",ref_id:"c84d0e47-7eeb-419b-a36e-5055b96044f0",twitter_handle:"hoardingsats"},{name:" Gold Leader",profile_picture:"https://pbs.twimg.com/profile_images/1594152783011250176/lHMHv3gB_400x400.jpg",ref_id:"96c4f802-25ff-4a81-b91f-cae5562bf4a3",twitter_handle:"GoldLeader89"}],hosts:[{name:"Publordhodl",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"5e189a7b-56c3-40ae-834e-4e2ccee3a9ad",twitter_handle:"Publordhodl"},{name:" Anders_",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"15bdd6b9-bdfd-492d-b7bf-c5a56ecadc50",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/4e00853b-49e3-4b46-bd13-bf7f2aa25905/56f0089c-a7f2-4b1b-8576-a3e4ddb9791f.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"28845fb4-d3b9-4615-af36-f3f3862d93f7",show_title:"PUBLORD",text:"I'm just going to ask a general question here. Again, thanks, guys, for having me up. First of all, so how do you sell to someone? Again, I'm really small investor, like maybe 20 grand that I'm putting in. But how do you sell to anyone at this point who's looking at the price today and going, you know what, I got in at 30. If you did, and it's now at 17, where where do you at all try to convince someone at that point to put any more money in based on on what you see? Again, you can look historically at where it's gone to and where it's gone up to, but I'm constantly trying to talk to people and trying to orange pill them, for lack of a better term. And I cannot at all find the vernacular to try to convince someone because it seems so nefarious in terms of what's happening. Again, this is really common. You guys have or I'll buy at 16 and throw another ten grand in or 20 grand or whatever it is, but when it drops another 50% down to 10,000, how do you hold all the words you hear about, you know, diamond hands and can you hear me? It's so difficult. And again, I'm just a 58 or 52 year old guy who's trying to, you know, take some of his savings and, you know, make some money out of it, but it's anyone to hear me. Yeah, you're good. TC, can you hear TC or no, sorry. Did you hear TC was trying not a great answer for you, but I. Don'T think you can hear me. I put money in in 2020 when COVID hit into an ETF following an index, and I've made more money in that ETF index than I did in any of my Bitcoin. I'll have an answer for you here in a second. I got my own views on this, but TC yeah, you had your hand up. I don't know if you can even hear me, though. Wait, let me check. Conn, can you hear TC right now speaking? No, I can't. I'm going to go out and come back. Okay. If you drop and come back, I. Got a good answer for you. Yeah, jump out and come back. I can go for an hour on this one, but you go first. I know, man. It's a great question. It's an absolute great question. It's the question. And what it is, is it's the portal through this threshold where you leave behind the purely speculative, fiat minded way of analyzing everything, and you start your journey understanding Bitcoin. You heard him say it about the investment part. I was making more money. He's new. We'll talk. Man, I hope he comes back here soon, but Jesus, that is the question. Yeah, you're right. I guess I'll just start off by saying this is the problem with focusing on the price, because the price is actually distracting you and it's giving you bad information. Much like everything in markets today, in the legacy fiat system, the signals are all distorted. They're all warped. And during the bull market, we see everything warped in the overvalued direction. And in the bear market, you see things destroyed. And through a lens of just looking at percentage gains or losses, all you're determining is which direction the market moved. And that doesn't tell you anything when it comes to Bitcoin. As far as what Bitcoin is, the momentum that Bitcoin has in the world, it's one of the things that greases the wheels for all the legacy financial, media and governments to continue to fudge bitcoin because they've got such an easy sell to people when they say, hey, look, this thing's down 70%. How could it possibly be good? How could it possibly be healthy? Elizabeth Warren says, oh, how are you going to let people put themselves at risk owning this kind of horrible asset? It's such a narrow, small minded way to look at the whole thing. When you actually start understanding bitcoin, and you realize that right now, at the depths of the bear market, bitcoin is absolutely alive and kicking, and it has got amazing momentum, and there is so many people building and investing and adopting and adapting to bitcoin. There's major, major industries today. We stopped even, like, making a big deal out of it. You remember back in 2020 where every little insurance company or bank that even sniffed at bitcoin, it was like a huge story. Oh, my god, so and so is looking at it's happening so frequently now. We don't even pay attention to it anymore. The world is plowing towards a bitcoin reality here. And what's beautiful about it is that anybody who really wants to use Bitcoin as a way to preserve their wealth and improve their future, you have such an opportunity, especially during the bear market, to arbitrage the lack of knowledge that people have on average and to see through the fed and realize how healthy and alive and strong and growing stronger bitcoin is. And at that point, you realize how absolutely inaccurate the price is as a signal. And if anything, you're just able to arbitrage that knowledge gap. You realize that you're looking at something that's basically better than it was a year ago when it was 70% higher and it's on sale and you go from there. This is so on point. Look, Ben, this is the journey that everyone takes. Everyone takes a journey for the most part. You come in for number, go up technology, dude, I was there. And in fact, I got to look at the exact date of my first I'm almost at the five year anniversary because it was in mid December, mid December 2017. And yeah, you guys can thank me. I think I got into the market like three weeks before you. Dude, me and you are the exact same era. Bitcoin was at 17 five with my first purchase, not that I was going to buy a whole god amp coin, and it spiked up to almost 20. And you're right, I spent 2018, man. I was catching those knives all the way down. And the more I learned about bitcoin and what it represented, the more I understood it. But I'll tell you what, man. Yeah, go ahead. Sorry, just one more thing I wanted to add is the other thing that really dissuades people or points them in the wrong direction is they think about how many dollars they're putting into bitcoin, and what they need to really realize is how much capital and how much monetary energy they are removing from the fiat legacy system. That is one of the key perspectives that if you don't have that perspective, you don't realize what you're actually doing. You're not investing in bitcoin. You're not speculating on bitcoin's price. You're literally removing your capital and your monetary energy that you've accrued from a system that is so riddled with risk and uncertainty, and you're moving it into a brand new system. It's not controlled by any of these governments or central banks and allows you as a sovereign individual to hold your own wealth and remove it from that giant house of cards. That's I think equally as important a concept to understand. Yeah. And this goes into and con saying, well, what do you tell a friend? Or how do you explain to somebody what this means? And believe it or not, man, it's different things to different people and different cultures, okay? And what I mean is this. If you're in Venezuela or you're in Turkey watching your currency go through hyperinflation, guess where you want some of your life value, all the work that you did, you probably want a little bit in bitcoin. Let's say you're in some war torn country, you're trying to cross borders. Guess what, man? You're going to get jacked up for cash. You're going to be standing at an ATM hoping to get, like, €400 out before you leave, okay? The value in bitcoin is immense. And in the US. Oh, my god. What about in the US. What could you guys possibly see in bitcoin? And I've talked to many people like this. You want to talk about orange filling? There's one guy talking to I just don't get it. What is the use case? I said, well, listen, you're pretty well off this guy's, like, in his 60s, everything. And I just mentioned to him, can you name one thing? Just name one thing that you own that can't be confiscated by the government or bank. Name one thing you own and you can see the wheels turning. He's thinking of the two homes. He's looking at the credit cards that will be shut down, and I'll get back to that in a second. He's looking at the cars, okay? He's got a boat. And he goes, I got nothing. I said, well, that's why bitcoin is something you should at least be interested in. I'm not telling him, sell everything you own and buy bitcoin. I'm saying you just may want to have some exposure to this. And you want to talk about the volatility or the price. We talk about this quite a bit, man. In Canada, some truckers got ten grand in a bank account, and he's got a $10,000 line of credit that was shut down overnight. I'd rather have an asset class that can take can take a hit. Okay? Maybe it goes down 70%, but it's what the best bitcoiners around are. The ones that start at the top and when those prices are dropping, man, I was giddy as a schoolgirl when it went from 20 and we're down under six and then five and then four. I'm realizing, my God, this is what an amazing opportunity just to have this exposure. But TCI, I like what you said, man. It's more about you're not moving fiat. You're gaining. You're transferring the value of your work. You're taking chips off the table. You're removing your chips from the casino. Look, you're talking about insolvency. Jump out there and came back in and heard everything everyone said. Yeah, you were talking about insolvency. Hold on 1 second. Con again, when I hear someone like you guys talk, I'm always assuming that your dollar cost overall price right now is much lower than, let's say, $17,000, right? Pub, you just said that you bought in law. So if you told me right now, if you wanted to, you know what my average cost has been? Like 3000. So you're already that's nothing to do with it, dude. That's nothing to do with it. I don't think you can hear me. For some reason. You can't here. I'm going to leave and come back. Yeah, go ahead, TC. Leave. I'll bring you finish and then I'll just jump. Stay up here, man. Stay up here because we may have some questions for you. Go ahead. I want to be able to be here because, again, what I keep on trying to wrap my head around is, okay, so again, I'm I'm in. I'm down 50, 60%, to be honest, and I'm trying to decide, okay, so that was money that I didn't, you know, I don't need right now, but I have other money that I want to now possibly invest. And as you said, catching the knives on the way down. I got you. If you can hear me, I got you. Dude, can you hear me? I'm not going to get some Black Swan event or some can you hear. TC when he jumps in? Can you hear him? No, I can't. It just says host there. I'm not seeing anything. So again, I'm going to just back out again and come back in and listen, you guys, you're helping. So just let you know that. Let me go. I got a whole another one that's pretty simple to understand, which is basically, man, there are people who are millionaires in Lebanon who, after a bank bail in, it doesn't matter how much you have in the bank, you can't access it. They'll give you $100 and say, come back next week if you want more. We're watching Canada, trying to figure out how they're going to just strengthen their authoritarian ability to wield the banking system to punish people who don't politically align with them. We're seeing in China the use of the banking system to control people's movement. We're seeing the same things happening in Iran where there's a huge protest underway and the government is using the banking system to punish people who are protesting. We have rules coming into place in Europe where you're no longer going to be able to do any cash transaction above, I think, €10,000. There are similar things in the United States where every single transaction above $600, you have to account for and disclose and fill out paperwork. If you don't see what's happening here, you're blind. You're in denial. We're marching towards a world of infinitely more capital controls than what we currently have. And in this context, the price of bitcoin is irrelevant, other than how many stats can you get for every dollar that you're moving out of that other system, period? It has nothing to do with the price, because real bitcoiners are not interested in what the price is going to be tomorrow or next month or next year. I mean, I'm not even tripping what's the price going to be in 2030? I'm looking at a little kid that I intend on handing down most, if not all of it to decades from now. This is about preservation of your ability to have choices, because what happens when crisis hits, whether it's in your own life, your own little personal sphere, or if it's strife in your nation or in the world at large, what matters is what choices you have, and that's what your money and your capital represent. It's your ability to actually do something in a situation that you don't want to be in. Can you acquire food for your family? Can you put a roof over your family's head? Can you acquire transportation to remove your family from a bad situation? I'll tell you, with all these capital controls coming in, the ordinary person on the street is quickly losing. Optionality in the future. The future is becoming more and more certain that you're going to have less choices than you have today. That's what this is about. The price is irrelevant except for how many facts you can get for each dollar you're moving out of that fiat system. That's the point here. DC. Listen, what's nice is we got a good plan, because when they try to make you eat the bugs, I know of a few guys that are still selling stakes for bitcoin. Air Texas Swim. I wish he was around. There's going to be a circular side economy, a black market economy for bitcoin, for sure. This is great, man. Hey, you got, like, anyone whose handle is Fording SAS collector or what's ",timestamp:"01:12:05-01:28:25",topics:["Bitcoin value proposition","New Bitcoin investors","Bitcoin price volatility"],type:"twitter_space",weight:13.165740966796875},{boost:0,date:null,description:"The Nigerian butcher enterprise ",episode_title:"The Orange Sun 🌞 Let's talk #Bitcoin & Cattle Ranching/Sustainability",guests:[{name:"Texas Slim",profile_picture:"https://pbs.twimg.com/profile_images/1589784780970795011/02jf0fqp_400x400.jpg",ref_id:"b4448c8e-9238-4aba-bd25-efb329ea5a72",twitter_handle:"modernTman"},{name:"Lucas",profile_picture:"https://pbs.twimg.com/profile_images/1596345084966014976/maviSGq3_400x400.jpg",ref_id:"e3adb591-b29f-435b-bd34-210f2dbcedaa",twitter_handle:"impossiblyso"},{name:"Firebust",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"0fb6c7f3-a673-4fe5-9599-8165800a2ff0",twitter_handle:"FireBursts"},{name:"Hamza Yusuf",profile_picture:"https://pbs.twimg.com/profile_images/1318064165030940672/sakbSOvT_400x400.jpg",ref_id:"03a74669-b653-4c57-8799-a312cb041089",twitter_handle:"Hamzayu28849293"},{name:"Adenekan's Father",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"b8259997-2ef0-4e6e-8d58-a69b5eda550a",twitter_handle:"AdenekanFatai4"},{name:"Adenekan",profile_picture:"https://pbs.twimg.com/profile_images/1505572078023495683/Wo_pJvTU_400x400.jpg",ref_id:"ca6a563e-0e84-4811-be82-a3b3cd12d399",twitter_handle:"AdenekanFatai4"},{name:"Heritage",profile_picture:"https://pbs.twimg.com/profile_images/1510397558652350469/jYOl00tU_400x400.jpg",ref_id:"98a6d9df-3c39-49ec-8a39-074e61af4ece",twitter_handle:"herrytheeagle"},{name:"Enoch",profile_picture:"https://pbs.twimg.com/profile_images/1596235105663533056/5mRUbLm3_400x400.jpg",ref_id:"4f8af040-3d0c-49c1-806e-aef89d8693fb",twitter_handle:"KazEnoch"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/a91f79fd-d85f-4440-b012-4bdafdc83341/f1d1c5b5-b8c9-44ed-a217-f75b398376d5.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"da54483f-f9f4-4c4b-9320-6ba317e64b44",show_title:"Satoshi’s Journal",text:"Thank you, Jeremy. I'm so glad to do this. Thank you, Texasleam. That was a fantastic one, OG. Or should I say big omi. I already have multiple questions from what you said because Katie Ranchon is a big business in Nigeria. That's the number one business of the number one man leading the federal republic of Nigeria, the president of the federal Republic of Nigeria. And the person of General Mohammedu Buhari loves caterbranching. We could call him a herdman. He loves cataracting so much that there is a big discussion about re energizing the grazing routes in Nigeria. Whether that's good or bad, it's a tough conversation. This is a conversation that causes opera in Nigeria. Good and bad people die. Machetes are used, guns are used. It's a billion dollar empire in Nigeria. But the stats are not really open because of so many underlying tone. So I don't think this conversation will end here. Looking forward to something bigger, most likely, maybe at a conference, inviting our top executive of the government and so on and so forth. It's something we've been trying to solve. I'm so glad I missed identity here. So let me use the opportunity to say a big welcome to a highly respected man, of course, the father of our regular listener here, Adenica, is the leader of the Nigeria butcher association and the leader of the Paraguay Butcher enterprise. If you understand the butcher's business in Nigeria, you would know that it's not a small game at all. You must have butchers most likely around every market. And if you're not eating beef in Nigeria, you're most likely eating fish. And I think beef is the biggest protein in Nigeria that people really go for, whether it is ram, whether it is cow or cali or whatever it is you want to call it. It's a big business. I eat beef all the time. And I also have beef with the altcoin. Mr. Adelekon, once again, is the Nigeria Butcher's Association leader. One of the leaders and the leader of paracoli butcher's enterprise is also the array, bobani atundda Liquid of Bagura land. Please join us to welcome this respectable Nigerian, Mr. Adeniko. Thank you, Mr. Denikon. You're welcome to the microphone, sir. Eric, bobanizi going to come? Is your daddy going to come as a speaker or you're going to do most of this speaking for him? Yeah, he's going to join as a speaker also because I would like us to just hear from his experience and we should learn a lot. Okay. Please send Mr. Adenikan. Oh, I'm sorry. Okay, I'm biting him now. I'm so sorry. I forgot to bite him up for some reason. I thought it was going to be with Adenikin, but Adenikin, I just invited him Upani. It's a big title. From my understanding. Maybe I'm going to ask him what's that title means. For my understanding, Bob Banigi means elevate the king. Or should I say give the king some worthy respect. Give the king some worthy respect. So when they say you are the Arab, Bobani, you are like the king elevator the king. Should I say positive image? Because anybody that means respect, value, something like that. I read Bobani. That's a fantastic title. I sent your dad an invite, Dennekin, but if it's not working, your dad may have to just request to speak because I don't think the invite to Texas slim worked. So, Mr. Dennekin, if you could kindly click the there you go. No, that's not you. Hansa yusuf bhagudo. That's not him trying to invite him up. Maybe it'll work with you. I've already tried to invite him up several times. So just give us a few seconds, and we'll get Mr. Denikin up here. And in the interim, what I was saying earlier, though, is the similarities between bitcoin and farming and ranchers are uncanny. Farmers and ranchers are such that they are super sovereign. They know the land, they know how to work it. They know how to get it to the point where, on a selfsustainable manner, it could actually regeneratively, produce what it needs to produce, and they use their intellect to get the land to do what it naturally does, and then they use the animals to do what they naturally do. And when you get those two things in synchronization, the land and the animals, you have a beautiful thing. Unfortunately, due to the commercialization of food and the industry around food, that whole cycle has been screwed up. Okay, so there he is. Let me let him know. Jeremy, real quick, before I just accepted Mr. Identical, the Arab bobani of boogeland. But quickly. I also accepted Amaza Yusuf. But I want to ask AMA Yuzu a question before I push him back to a listener mode and maybe bring him back later. Please, quickly, tell me your name, what you do, and why you requested to speak, because your name sounds like you're from the north, and you may be a butcher or you may be into categorization. Real quick. I invited also he's a fellow member, and we are doing something with Texas. So he's a full animal and has been a friend since secondary school days. So you can just let him speak and just introduce himself. Oh, okay. All right. We're going to do that much later. So, first of all, we have in the building we don't need about anymore. Good morning, sir. Can you speak to us so we hear from you? Mr. Dennett, you may have to click on the bottom left hand corner. On your screen, there's a mic button. You have to unmike that. It's a little purple button, because right now you're on mute if you're trying to talk. Yeah. Can you hear me now? Yes, sir. Welcome to the I was happy to be on this platform because there is a lot of challenges in doing category in Nigeria. There's more challenges. I think you have more to make a mistake. I think we have to orientate us about the challenges. It's not easy. I do have a past five years now. I've been in the business so long. So what is coming up that I'm here, and I think it's a kind of opportunity for us to move up. I appreciate it. Thank you very much. Mr. So what Mr. Adele just said clearly is you guys should orientate everybody here. Basically us and the orientation team on, I think maybe how bitcoin can be of value to them. However, there's a lot of challenges that the butcher and khaki ranching industry is going through. But he's very appreciative of the invite and he's been on this Johnny for 35 years and he's glad to be here. Thank you very much. ",timestamp:"00:22:56-00:32:14",topics:["Butchers sovereignty"],type:"twitter_space",weight:13.040050506591797},{boost:0,date:1672099200,description:" Natalie Brunell's thoughs around SBF's unethical fraud",episode_title:"Blockware Intelligence Podcast: 2022 Highlights",guests:[{name:"Michael",profile_picture:"https://pbs.twimg.com/profile_images/1558687629599657990/vf-bU14b_400x400.jpg",ref_id:"c7b4faa1-db77-4459-b03f-0e41e15efae7",twitter_handle:"MichaelHawaii"},{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Joe Consorti",profile_picture:"https://pbs.twimg.com/profile_images/1596902707511664640/GYGWVDts_400x400.jpg",ref_id:"8d2024b2-03bb-454d-9bd6-bb121904b76a",twitter_handle:"JoeConsorti"},{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"James Lavish",profile_picture:"https://pbs.twimg.com/profile_images/1466279082157502464/flD6cWI3_400x400.jpg",ref_id:"cf06ab2d-2ff3-4d7b-bef6-b996ae68517a",twitter_handle:"jameslavish"},{name:"Adam O",profile_picture:"https://pbs.twimg.com/profile_images/1395896857990160391/tJpgS2_p_400x400.jpg",ref_id:"95af0dd3-1e27-41b9-a36b-8a2c44438e85",twitter_handle:"denverbitcoin"},{name:"Jack Mallers",profile_picture:"https://pbs.twimg.com/profile_images/1599778945699909632/O0qc9ykA_400x400.jpg",ref_id:"d2e4aac5-e5e1-42fc-8f08-b3a77c076a64",twitter_handle:"jackmallers"},{name:"Lyn Alden",profile_picture:"https://pbs.twimg.com/profile_images/1521181379677073414/bm4LcJTr_400x400.jpg",ref_id:"903381dd-4b8a-4b59-8ecd-3281ae3ba297",twitter_handle:"LynAldenContact"},{name:"Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1508157904913899522/3l7ctauV_400x400.jpg",ref_id:"283edea0-55cf-4245-95df-8d6d3dcb1851",twitter_handle:"DylanLeClair_"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Stacy Herbert",profile_picture:"https://pbs.twimg.com/profile_images/1546484196750905346/5WYPz-bc_400x400.jpg",ref_id:"7477463b-1f3a-4b83-94c3-9d5a63b576c0",twitter_handle:"Stacyherbert"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"}],hosts:[{name:"Blockware Intelligence",profile_picture:"https://pbs.twimg.com/profile_images/953108582110781441/irB2GVXn_400x400.jpg",ref_id:"0ff00f04-2450-4699-b6a3-0467e29cddde",twitter_handle:"BlockwareTeam"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ea2cf2ae-76de-4185-818c-384b3b06228b.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=WxGMeufy8jw",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"d98bc278-4c35-4325-992c-78437ccf3569",show_title:"Blockware Intelligence",text:"I'm curious, what are your thoughts on the whole SBF debacle? Is he just going to be in the Bahamas forever, or do you think he might get arrested at some point? And also, why do you think the media isn't necessarily painting him as this obvious villain? Yeah, I'm really disappointed by everything that's happened with SPF. And it's sad that bitcoin looks bad in this whole thing, especially for people who don't understand the space. But it's neutral. It did nothing wrong. It was just cross collateralized. And people like SBF create these paper versions of Bitcoin, and that's so unethical. So my reaction is, I hope that the DOJ I hope that the SEC, I hope that law enforcement agencies go after him and bring him in and formally charge him. Because in my opinion, what he did was fraudulent. It was a Ponzi scheme. It was to enrich himself. I mean, the fact that he was basically loaning money, using an air token as collateral loaning money to himself, that people affiliated with him, including his parents, may have purchased expensive properties, this is wrong. This is not what this revolution of Bitcoin and removing the power of money from the state. This is not what this is about. It's not about enriching a small group of individuals who think that they have the right decisions on how the future should be created. It's wrong. And he duped so many smart people, which is amazing to me, these massive institutions, from the VCs to these celebrities who had a ton of money. You would think that they would all do their due diligence to make sure that they're not just, like, putting their money into a group of Silicon Valley former Ivy League nerds who are going to basically wash trade it. With themselves to pump up the value and take out loans and to become their own bank and take out credit lines and then trade it and pay off politicians and then lose all the money. I mean, this is ridiculous. And they did it all offshore for a reason because everything that they did is inherently illegal. And so I hope that it's a huge lesson. I hope that in the end, I think it actually strengthens Bitcoin and what bitcoin is all about and bitcoin's value proposition. But in the meantime, I just hope that these policy makers actually hold them accountable and take the time to learn about why this happened and how the fact that he's sort of, as of right now, getting a little bit of a pass, like Representative Maxine Waters, I think, tweeted at him something that was equivalent to, oh, please talk to us, Sam. Thank you for explaining the things that have been going wrong. It's like, no, hold this guy accountable. This is the Bernie Madoff of crypto right now and everybody's just sort of approaching him on eggshells and I don't understand that. So I think that charges will come down. I saw that Caroline Ellison was spotted in New York. I'm sure she's working with an attorney who wants to get her some sort of a plea deal. The only way that that will happen is if she divulges a ton of information. So I think it's going to be a couple of people pitted against each other. Caroline versus SBF, and we're going to learn more in the coming days. And I don't buy any of the crap he's been selling to the media. He knew what he was doing. He just thought he would get away with it, to be able to complete his mission and plan of whatever he wants to do with all that money. But it was wrong. He was using customer funds and he should be in jail, I think. Yeah. I mean, it's pretty insane how it got so big and how so many big names, whether it's like Tom Brady or Sequoia, were just full fledged behind FTX and SPF. It's pretty wild. The ",timestamp:"00:56:24-01:00:18",topics:["Natalie Brunell","SBF"],type:"youtube",weight:36.019356007815745},{boost:0,date:1672207217,description:"Receiving geyser donations directly to your wallet and tipping creators with Mash",episode_title:'The Orange 🌞 Reading/Discussion "The Book of Satoshi" & Bitcoin News',guests:[{name:"CouncilmannJamm",profile_picture:"https://pbs.twimg.com/profile_images/1251040014152024066/dD3b2eA4_400x400.jpg",ref_id:"6c989c2c-d24d-49a2-8eb1-1d2f1c47f347",twitter_handle:"jamm_councilman"},{name:"thotsnplayerz",profile_picture:"https://pbs.twimg.com/profile_images/1608733749663109120/wwYEZgF2_400x400.jpg",ref_id:"66bbe365-9e85-4c34-9d51-39d8b49937b7",twitter_handle:"thotsnplayerz"},{name:"Will Schoellkopf",profile_picture:"https://pbs.twimg.com/profile_images/1487515153302130691/t5sDMzZW_400x400.jpg",ref_id:"461e2245-1672-4fa1-94f5-7aaf1afa531f",twitter_handle:"realBitcoinDog"},{name:"OKIN_17",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"dbcdeab8-4824-43f7-aeb8-2b9eda6cbbad",twitter_handle:"OKIN_17"}],hosts:[{name:"SatoshisJournal",profile_picture:"https://pbs.twimg.com/profile_images/1518661993103859712/y_QefqVZ_400x400.jpg",ref_id:"63fac069-bfe9-49ae-b52c-1d1f226b3275",twitter_handle:"SatoshisJournal"},{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"50023cce-8a6f-4974-ad3b-fd7a9c0abf19",twitter_handle:"ToxiKat27"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/ecefba20-39fd-4974-8388-066857965b2a/cf486c39-08f9-4ada-9b72-7a297ad74d74.mp3",node_type:"clip",pub_key:"",ref_id:"b8080ee6-90b2-4f75-8c69-79510c82aa08",show_title:"Satoshi’s Journal",text:"The next little piece in here is to talk about make your Geyser donations flow to your own wallet. So a bit more than a week ago, geyser, for those that don't know who Geyser is or what it is, geyser is a company or website that allows you to earn Satoshi's for whatever you're trying to earn them for. So if you are trying to earn Satoshi's for a book, to write a book, you can put your project on there. There's a vetting system you have to go through. We're probably going to put the Bitcoin village on there. We haven't done it yet, but if anyone wants to donate to the Bitcoin village, that's yet another place they can go to if and when we get onto the Geyser fund. But you can find a bunch of other different donations for different things that are happening in bitcoin. So anyways, this article says a bit more than a week ago, guys are rolled out. A very neat feature that I missed. So here it is. You can now, as a project creator, receive donations directly to your own wallet through a lightning address. This allows you to receive the funds straight to the wallet of your choice, ideally on custodial, without them ever sitting on geyser's node. So that is pretty cool and I didn't know about that until I read this article. The next thing is mash. For those that don't know what Mash is, mash is a company that allows you to integrate their software into your website and allow such things as tips to happen. We just integrated it into our website. So if you go to our website and I have yet to unveil it because I'm trying to come up with a way to best unveil it, but essentially, if you go to our website now, there's a little button on the bottom right? You click it, it'll allow you to create a Mash account. And then once you create a Mash account, you can tip our website and the tips that are on our website are going to go to our content creators. So if people find value with the content of our content creators, they can click the button, they can send a tip of whatever value they want. All those tips accumulate on a wallet that we have associated with our Getmash account and then we will disperse those to our content creators how we deem fit. It's pretty cool feature. So Mash, basically it says here Mash got a small lifting to better suit creators and what they want to do with their content. Mash is a service that allows content creators to monetize what they create in a user friendly way. It just got easier to use with more customization available Ie themes. Mash button placement, push button placement, cherry on top what previously required copy pasting multiple snippets to make the Mash magic work on a custom website now requires only one code snippet. Cool. So that's pretty cool. I didn't set up the Mash on our website, but whoever did probably would relate with this feature. And there's a few more things. Looks like Albie got an extension for developers. Looks like there's some Sat streaming in the Pod verse and a bunch of other things. This is a long article, so I'm not going to read it all, but I highly recommend you check it out on ",timestamp:"00:14:17-00:18:05",topics:["Geyser Fund","crowdfunding","Mash"],type:"twitter_space",weight:37.03219712996155},{boost:0,date:1672207217,description:"Making payments on the Lightning Network",episode_title:'The Orange 🌞 Reading/Discussion "The Book of Satoshi" & Bitcoin News',guests:[{name:"CouncilmannJamm",profile_picture:"https://pbs.twimg.com/profile_images/1251040014152024066/dD3b2eA4_400x400.jpg",ref_id:"6c989c2c-d24d-49a2-8eb1-1d2f1c47f347",twitter_handle:"jamm_councilman"},{name:"thotsnplayerz",profile_picture:"https://pbs.twimg.com/profile_images/1608733749663109120/wwYEZgF2_400x400.jpg",ref_id:"66bbe365-9e85-4c34-9d51-39d8b49937b7",twitter_handle:"thotsnplayerz"},{name:"Will Schoellkopf",profile_picture:"https://pbs.twimg.com/profile_images/1487515153302130691/t5sDMzZW_400x400.jpg",ref_id:"461e2245-1672-4fa1-94f5-7aaf1afa531f",twitter_handle:"realBitcoinDog"},{name:"OKIN_17",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"dbcdeab8-4824-43f7-aeb8-2b9eda6cbbad",twitter_handle:"OKIN_17"}],hosts:[{name:"SatoshisJournal",profile_picture:"https://pbs.twimg.com/profile_images/1518661993103859712/y_QefqVZ_400x400.jpg",ref_id:"63fac069-bfe9-49ae-b52c-1d1f226b3275",twitter_handle:"SatoshisJournal"},{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"50023cce-8a6f-4974-ad3b-fd7a9c0abf19",twitter_handle:"ToxiKat27"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/ecefba20-39fd-4974-8388-066857965b2a/cf486c39-08f9-4ada-9b72-7a297ad74d74.mp3",node_type:"clip",pub_key:"",ref_id:"9f2d3be4-e7df-4b86-981c-466bde0d92ad",show_title:"Satoshi’s Journal",text:"Today I found a really good article. It's basically, I've never heard of this, but it's called the Twitter handle is at all end markets. So, like at Lightning network markets, but it's spelled with an all and an end and then markets. And I guess they post a newsletter. And what's cool is that they basically track what's happening in Lightning. So I'm going to really quickly go over some of the things that are happening in Lightning that I didn't know what was happening. So this one covers the week of the 19th to the 25th, and if you want to follow along, you click the article. Second one to the left on the nest. So it looks like some guy, his. Name is Renee Aaron. He's been working on connecting vending machines to Lightning. So that's pretty cool to do. So he designed a small, easily pluggable module that comes with its own screen and can be used by the vending machine to generate a Lightning invoice and display it as a QR code. The product is currently being tested by a bunch of merchants in Europe, but given its plug and playiness and the benefits of using Lightning in this type of machines. I'd say I'm quite bullish on this. That is pretty awesome. I mean, anything that you can plug into, anything that you need to pay, especially Lightning, that just helps with even more people getting used to using everyday things with bitcoin. So in this case, you can go to an arcade room, arcade game place, and there's a Lightning network module that allows you to scan a QR code and pay instead of having to put quarters and then play your game. So someday that will probably be just commonplace. Probably every machine that can have the ability to be have payments will have Lightning network. And for those that are new, lightning network is a second layered on top of bitcoin that allows instant and basically free transactions. And there's a common misconception amongst normies that think that bitcoin is slow, but when they're talking about that, they're talking about the first layer. And because of the first layer, transactions are completed about every ten minutes. That's why people think it's slow. But even relatively speaking, that's faster than a lot of other things in this world that we use for payments. And one thing is credit cards. Although credit cards can be swiped and allow payment to be done instantly, when you go to the store, that payment is still not instant because it hasn't been quote, unquote, validate or verified 30 days. 30 days later. 30 days later you get a credit card statement and then that's quote unquote finality versus in ten minutes on the bitcoin layer, one network, you have finality in ten minutes. Now, when you go on to the second layer with Lightning, you have basically finality in seconds and for free. Another problem, of course, with Visa, Mastercard and other credit cards is the exorbitant fees you have to pay. So it's an amazing thing what's being done, and the rest of the rule hasn't come to their awakening on it. ",timestamp:"00:10:27-00:14:17",topics:["Lightning Network"],type:"twitter_space",weight:37.03219711188569},{boost:0,date:null,description:"Related news and updates on Start9 operating system",episode_title:"Café ₿: Sovereign Computing w/ Matt & Aiden, Start9",guests:[{name:"Andrew",profile_picture:"https://pbs.twimg.com/profile_images/1465763053014859786/xYFN2czJ_400x400.jpg",ref_id:"ae4b13f8-0ee7-480a-b47a-82b967ad7a79",twitter_handle:"AP_ArchPublic"},{name:"Matt Hill",profile_picture:"https://pbs.twimg.com/profile_images/1347317316057321474/ieMjzK3x_400x400.jpg",ref_id:"3576ad28-a04d-4388-865b-3ec5114c4f9f",twitter_handle:"_MattHill_"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Aiden McClelland",profile_picture:"https://pbs.twimg.com/profile_images/1470160097225498624/0BjKB_2W_400x400.jpg",ref_id:"04ddd9d4-9329-4e6c-aaa3-d65ea4a9342a",twitter_handle:"_dr_bonez"},{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Lisa",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"e6f0c6e3-3237-4b13-878f-bb740cd32f8d",twitter_handle:"lisa_hough_"},{name:"Isabelle",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"c8df253f-47b3-465e-878e-8405c01c090d",twitter_handle:"isabelfoxenduke"},{name:"Tone",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"5729ac07-51d6-4268-b585-62680c846acb",twitter_handle:"ToneVays"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Derek",profile_picture:"https://pbs.twimg.com/profile_images/1598322677827207169/Cw0A3oOP_400x400.jpg",ref_id:"f441b996-7eeb-4210-b24c-fa011161709d",twitter_handle:"derekmross"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ec4a941-250c-4e1d-8d2a-6c506c3ba4b2/4bd8010d-b2fd-41b4-8041-8a953ef06492.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"0fe0af9b-421e-43ab-800d-7354379ea21f",show_title:"Swan.com",text:"Yeah, I should mention the embassy pro. As I said earlier, our business model is selling computers. We just launched a new one. It begins shipping next week. We've been preselling it for months. It required version 00:33 in order to run, which is why it hasn't shipped yet. So 33 is now done, so it will be shipping next week. These are very powerful mini PCs, 32 gigs of Ram. It's got a very powerful processor and two terabyte NVMe drive. So your disk storage is going to be very fast. And when it comes to running Bitcoin and Lightning and Electrs and then anything else under the sun, you might want to self host. It really is nice to have this sort of like device that's not a Raspberry Pi, right? Raspberry Pi is cool, but ultimately if you want to do this right and you want to have a good time doing it and not run into resource ceilings constantly, then you're going to need a more powerful device. So if you don't already have a mini PC or laptop or desktop that is adequately powered from a CPU Ram and storage standpoint and you want to run a server and you want to do it right, you're going to have to buy something. We actually have an incredible deal. Right. So the device that we are selling, if you were to go online and price out an Intel Nook, say, which is like the goto kind of mini PC solution, if you were to go build an Intel Nook to the exact specification that we sell the Embassy Pro, it would be a few hundred dollars more expensive. So we are not like this luxury overpriced product. We are actually undercutting the computer hardware market for a comparable device. So if you do need to buy something, come buy it from us. Because again, we're not gouging the price. In fact we're undercutting the price. And two, this is how we survive and how we're going to continue to build what we're building, which we hope you all can agree is a good purpose. So do business with us if you can. The Embassy Pro is the best headless server on the market for the best price on the market. And now we can get into whatever you want. And you also mentioned a moment earlier about people like the Federation model, about people running servers for their friends. And that's a lot of what we are thinking about as we put together this product, as we put together the Embassy Pro, that we are trying to get a more powerful product so that people can support more users on the device. Uncle Jim. Right. The Uncle Jim model. And we think it is a little. Bit. We have an ideal in our head that everybody on the planet will be running their own servers and connecting peer to peer. But we also know that that's not reality. As you mentioned earlier, it's not how humans work. And so we are acknowledging that. And while we will hold that as an ideal, this strategy for expansion is actually to go after families, organizations, content creators who have followers, to get them on board with the idea of self hosting and then gradually push to the edges. Right? So the Embassy Pro 33 and our entire roadmap for the next couple of years is really oriented around, do you get this, do you understand what's happening? Do you want to protect yourself and those who trust you? This is the best and easiest way that has ever existed for you to do that. We want to be that solution because we know that once, say, I use the church a lot because quite frankly, churches are going to be very quick to adopt this technology. We've actually had multiple conversations with heads of churches who are looking to do this because churches have been sort of under attack recently from this perspective. We know that when the pastor of a church sets up a private server, you know, in the back office and tells everyone in the congregation like, hey, we're not going to use Discord anymore, we're not going to use Telegram anymore, we're going to use our own private chat server. And in order to do that, all you have to do is go to Church of Christ.com, sign in with an email and password and chat with the members of the congregation. As in, there's no difference to what you are accustomed to. It's exactly the same experience from the congregation member perspective. They're having the same experience differences. Now it's just private and there's no intermediary. Scooping all your info churches, but it's a trusted intermediary. Exactly. But now the people in the audience understand this and they're like, wow, I want to do that for my family. So the head of family or whoever the most technical person in the family is, is now going to go get a device, put it in the home and be like, hey family, we're going to have private family talks, we're going to share pictures with each other in. A way that it doesn't in the future. Every tribe and every family is going to have its own CTO. Yeah, but we're trying to make that job really easy. Right? We're trying to take the job of system administrator, which is traditionally very hard job, highly paid job. We're trying to turn it into a Gui, a graphical user interface that a college intern could do. Right. Anybody? You're making the user interface very simple or the experience very simple. Okay, so question, you're basically building an operating system. Yes. That seems like a really hard thing to do. Why not just use Linux or something like that? We do use linux. Linux? Linux is a very unfortunately a very small part of an operating system. The basis of what we've built. We use Linux, we use docker, we use all of these tools that already exist in our open source. We're not shying away from any of the intellectual capital that has been built in the open source community over the many years. But there's a lot that has to be built for the user experience that we want. Okay, so in other words this is like a Linux stack but you guys are designing it in a way so it's super easy for people to use and it's focused on decentralizing stuff. Yes, but almost every Linux distro out there. When you say I'm running Linux, you're running probably one of two desktop environments like Gnome or KDE and we don't have any of that. We had to start pretty low in the stack in order to be able to design the experience towards a server device as opposed to a client device. So a lot of it is different than what you'd expect out of something like Ubuntu or ",timestamp:"01:49:29-01:56:20",topics:["Embassy Pro","Data protection solution","Start9 operating system"],type:"twitter_space",weight:12.334749221801758},{boost:0,date:1668866400,description:"Listener question: Is there counterparty risk to USDC given banks exposure to the stablecoin?",episode_title:"FTX Is Worse Than Enron w/ Lawrence Lepard, Caitlin Long, Dylan LeClair, and Dr. Jeff Ross",guests:[{name:" Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1307109108127019008/rPNj47yJ_400x400.jpg",ref_id:"4f4f53c7-5a3a-46df-b334-9951fe38dc96",twitter_handle:"realjeffreyross"},{name:" Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1599858581611941922/XxvPPWAt_400x400.jpg",ref_id:"c1d20e9f-7362-47be-a3a0-5b9c004cd58e",twitter_handle:"DylanLeClair_"},{name:"Sam Rule",profile_picture:"https://pbs.twimg.com/profile_images/1522271013026729987/RQZOdzjq_400x400.jpg",ref_id:"09214ea0-d8ff-47cb-84fe-08e8517768e5",twitter_handle:"samjrule"},{name:" Caitlin Long",profile_picture:"https://pbs.twimg.com/profile_images/1362592672150528003/iYZ84uXB_400x400.jpg",ref_id:"c0244641-6347-4b82-b2a9-0ee38b600c08",twitter_handle:"CaitlinLong_"},{name:" Lawrence Lepard",profile_picture:"https://pbs.twimg.com/profile_images/1114275000889032704/mOUsG1XC_400x400.png",ref_id:"bafa8935-8957-4a9f-aaaa-e45fb46615d4",twitter_handle:"LawrenceLepard"}],hosts:[{name:"q_liketheletter",profile_picture:"https://pbs.twimg.com/profile_images/1560683048680665088/4MrHM_UY_400x400.jpg",ref_id:"3303023d-a793-432c-8020-9151bd237523",twitter_handle:"q_liketheletter"},{name:" phjlljp",profile_picture:"https://pbs.twimg.com/profile_images/1601641645572767745/2Obq9UgK_400x400.jpg",ref_id:"2e5ffdd9-fea5-4daf-85e5-27015890442f",twitter_handle:"phjlljp"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/1583c7c4-f4f2-4e52-8f27-a1eaeb6289fd.jpg",keyword:!0,link:"https://traffic.libsyn.com/secure/bitcoinmagazine/22.11.18_FTX_Worse_Than_ENRON_Moon_and_Crowd_Health.mp3?dest-id=1210361",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"8b94fbcf-e349-4b2f-8425-66287345b9ae",show_title:"Bitcoin Magazine Podcast",text:"also wonder a little bit with the risk with these banks. Like, yes, a lot of crypto companies use these banks, but these banks also interact with USDC, and USDC interacts with a lot of other counterparties. And so, like, is there some level of counterparty risk or credit risk that USDC faces with some of these financial institutions as well? And what does that mean? And I've also kind of been scratching my head a little bit about why all of these just have stopped processing US. DC. On Salona. And I don't think I've ever seen an example before of a stable coin kind of dying on a specific protocol and what that even means. Either of you have thoughts on that? Yeah, anybody else? Yes? I'm not sure. I think it's more so just like it was more of an FTX thing. I don't know the long history of stable coins. On Salana, but I do know that they were one of the first ones to kind of have like coinbase. You could do each base withdrawals, but FTX had all the rap soul tokens. Maybe it's just like finance and everyone else just kind of sticking a fork in them. I'm not really sure. Well, I guess what I'm asking is I'm guessing that USDC on Solana would follow the same minting and burning processes as USDC on any other protocol and that it's circle at the end of the day that has some process for ensuring that a fraudulent party couldn't just MIT a bunch of USDC and injected into the system. And so whatever the risk is there with Salana, does that also extend to Tron for example, or some of these other parties and I just don't know enough about how these stable coins actually interrupt with the banking system trying to get an understanding of that risk. Yeah, I think the scary thing is and I was listening to that Larry, you were saying something about that Mark guy and he's like a known short seller with the banks. And Caitlyn, your point about firing from the hip on rumors is totally true in finance and crypto. It's no different from the legacy system. But if there is somewhat of just because of the rumors or because of the potential for a fraud case, we don't know. This is more so to speculation than anything. But if there's like, you know, I mean these are fractional reserve banks, right? So if there is a kind of a run right, and like the crypto, native companies don't really have many places to go, but just, you know, I think these things are non zero probability. That could get pretty hairy for an ecosystem that doesn't really have any options. Well, that's what Ryan Selkus has been talking about. Yeah, sorry, go ahead. No, I think that's just one of the things I'm looking at is like, OK, you have not only like the companies, but you have some stable coins on these rails and the Send network and hearing some I got some McBurnie's in my ear and my DMs that are saying like certain counterparties as of yesterday, not too well known, just some very small scale institutional players have alerted their clients that they're no longer accepting sen like Sen Silvergate exchange network wires out of an abundance of caution and stuff like that. Just kind of flares my kind of senses up a little bit, kind of ring some alarm bells when you see like, an institution, say, hey, we're no longer accepting this crypto exchange network wire out of an abundance of caution. And the stock's down 50% month over month and 10% day every day. Are you referring to Falcon act? That was true, yeah, they sent it out to clients. So Falcon X is not small. I mean, Falcon X is one of the biggest institutional custodians. I don't know exactly how they describe their platform, but they're big. Again, I just careful here. Yeah, but that may be rumor, it may be true. But one thing to caution everybody. There are laws in the United States against a bank run. There are actually laws against that. I would just encourage everybody take a deep breath. It may or may not be true. There are so many rumors floating around this sector right now. And maybe this is where those of us who have the proverbial gray hair can think back to the times that we've been through. The various financial crises, the bond market correction, the Long Term Capital Management collapse in 1997, you know, the tech stock bubble bursting in 2001, and then of course, the mortgage bubble bursting. And seven into eight and nine through the great financial crisis, the rumors fly. And it's not until afterwards that you see where the real truth was. The sad thing about this sector is that there's definitely things move fast, right? And so the rumor mill can move things a lot faster than they otherwise might. So I would just caution everybody, especially when it comes to the banks, just definitely ",timestamp:"00:28:12-00:33:48",topics:["counterparty risk of USDC","USDC on Solana","Circle","stablecoins","SEN network","falconx"],type:"podcast",weight:15.743046803788744},{boost:0,date:1672207217,description:"Improvements made to the Bitcoin node",episode_title:'The Orange 🌞 Reading/Discussion "The Book of Satoshi" & Bitcoin News',guests:[{name:"CouncilmannJamm",profile_picture:"https://pbs.twimg.com/profile_images/1251040014152024066/dD3b2eA4_400x400.jpg",ref_id:"6c989c2c-d24d-49a2-8eb1-1d2f1c47f347",twitter_handle:"jamm_councilman"},{name:"thotsnplayerz",profile_picture:"https://pbs.twimg.com/profile_images/1608733749663109120/wwYEZgF2_400x400.jpg",ref_id:"66bbe365-9e85-4c34-9d51-39d8b49937b7",twitter_handle:"thotsnplayerz"},{name:"Will Schoellkopf",profile_picture:"https://pbs.twimg.com/profile_images/1487515153302130691/t5sDMzZW_400x400.jpg",ref_id:"461e2245-1672-4fa1-94f5-7aaf1afa531f",twitter_handle:"realBitcoinDog"},{name:"OKIN_17",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"dbcdeab8-4824-43f7-aeb8-2b9eda6cbbad",twitter_handle:"OKIN_17"}],hosts:[{name:"SatoshisJournal",profile_picture:"https://pbs.twimg.com/profile_images/1518661993103859712/y_QefqVZ_400x400.jpg",ref_id:"63fac069-bfe9-49ae-b52c-1d1f226b3275",twitter_handle:"SatoshisJournal"},{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"50023cce-8a6f-4974-ad3b-fd7a9c0abf19",twitter_handle:"ToxiKat27"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/ecefba20-39fd-4974-8388-066857965b2a/cf486c39-08f9-4ada-9b72-7a297ad74d74.mp3",node_type:"clip",pub_key:"",ref_id:"51926635-4d2a-47d0-9e11-62c173898631",show_title:"Satoshi’s Journal",text:"like I said, I've been listening to that bitcoin explained podcast, digging into it lately, just plowing through all of it, because that's what I love about the podcast so far, is that the episodes are only like 30, 40 minutes long. They're all these long two hour, three hour drawing out conversations about bitcoin. They really just get to the point and get to the meat and potatoes, so to speak, of whatever they're talking about. And the most recent episode I listen to was about bitcoin core. Update 21. So this was like two years ago almost already now. And it's cool to see what Satoshi was talking about and what the nodes did then to the improvements that we've made since then and then where the mindset was then, and then where we are now, and the things that we've done with Taproot and everything else. It's really cool to see that transition and be able to look back and see the inner workings. Like I said, these guys go into the real deep nitty gritty how the nodes communicate with one another, why they communicate with one another in certain ways, and how they used to communicate with each other in which there were basically ways for people to attack you, essentially. Or act maliciously against your node because of the way that the original protocol used to work and how they've improved upon it to where those options are no longer viable. And you really get to see that bitcoin core developers really do have an adversarial mindset when it comes to the meticulous choices of what bits they choose, why they choose them, and why they do integrate them overall. Yeah, I think that's one of the most powerful things about bitcoin is it's very slow in its evolution. Well, it's exactly like how evolution is happening on earth. I mean, it doesn't happen overnight and it happens very slowly. And in many ways, it actually requires a consensus of nature to be able to make that evolution. And so, like bitcoin, you're not just going to make a change overnight. When these developers are developing, they first have to do a bit, then that bit has to be talked about by the developers. And then before you can even integrate it, there's a long, drawn out process, vetting process that I'm not even aware of, but they're very meticulous, like Tk said, to implement any changes into bitcoin. And these changes would be like soft forks. That wouldn't be hard forks, they would just be little tiny changes that could be done. And of course, you then have to update those have to get updated, minors have to get updated, and they have to have the consensus to accept those updates. It's just not like an easy process. It's a long, arduous process to finally get to the point where you can actually implement it. That's how I understand it, anyways. And because of that, it's a beautiful thing because bitcoin is like actually think about it this way. One of the oldest creatures on Earth is a crocodile. A crocodile from millions of years ago till now has evolved, but for the most part, it's still the same, but it's become more resilient. And the tiny, small changes that has happened to that crocodile have made it that much more resilient. So that's the same thing with bitcoin. It just gets hardened and hardened and hardened and hardened after many, many years. And so hundreds of years from now. Bitcoin is going to be a hardened freaking crocodile, so to speak. Anyways, that might have been a dumb ",timestamp:"00:32:45-00:36:44",topics:["Bitcoin improvement"],type:"twitter_space",weight:35.70854341455261},{boost:0,date:1670706053,description:"On-chain game for stack",episode_title:"Bear Market Buidl — Major #Bitcoin developments! #Stacks #Sidechains",guests:[{name:"@GriffdenNFT",profile_picture:"https://pbs.twimg.com/profile_images/1604377729062895617/R4pSEdH4_400x400.png",ref_id:"dafdf7ec-28c0-43d3-a0d9-b2d266f38738",twitter_handle:"GriffdenNFT"},{name:"@Chad_333",profile_picture:"https://pbs.twimg.com/profile_images/1592310541732970496/o1tbw9Eo_400x400.jpg",ref_id:"484c7695-6a4e-4141-9585-1109bf23f8cf",twitter_handle:"Chad_333"},{name:"@jackbinswitch",profile_picture:"https://pbs.twimg.com/profile_images/1601214177439260672/O0SpU5B1_400x400.jpg",ref_id:"9685e7f3-3e0c-4b84-9fd9-b8a1d96f6ae9",twitter_handle:"jackbinswitch"},{name:"@jimdotbtc",profile_picture:"https://pbs.twimg.com/profile_images/1593210347825119237/L_SNThWQ_400x400.png",ref_id:"5dcf5545-fad6-44ee-ae56-360c5efe1151",twitter_handle:"jimdotbtc"}],hosts:[{name:"@BigRpic",profile_picture:"https://pbs.twimg.com/profile_images/1604962150388219904/WqiCye-r_400x400.jpg",ref_id:"726f0c95-9d94-4d44-a056-8ad3c9e3ddd5",twitter_handle:"BigRpic"},{name:"@CarlsonDoc",profile_picture:"https://pbs.twimg.com/profile_images/1597382056308350977/1NPexynZ_400x400.png",ref_id:"e34fa2b2-a58e-4461-81a0-d10c1058dfc2",twitter_handle:"CarlsonDoc"},{name:"@STXLDN",profile_picture:"https://pbs.twimg.com/profile_images/1533793338931007488/o3laQDCp_400x400.jpg",ref_id:"5c3bc906-3aed-44f9-851a-94804c6fe5ca",twitter_handle:"STXLDN"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99046513-2614-4eae-9de4-5781ba4b330a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/fc3bebcb-8271-433e-8d81-84dd06f3b022/aec527bc-539d-4d3b-9bad-db4af9e1a1ba.mp3",node_type:"clip",pub_key:"03c7a7f42d94fdfc7a655515c1421cd1d20db090a1c24150201de0b1dc6a30b0ee",ref_id:"09e8e827-fd7b-4800-8633-9f4fe7416210",show_title:"STX:LDN",text:"I'm just going to pop in and just thank you for those kind words, Jack. You've been an awesome peer alongside everybody else in there. To have a more Stacks native user and a big voice for Stacks is great to have in the group. You have some amazing questions. I've learned a lot just from you being curious and sharing those curiosities with our mentors and I can echo everything you said. I think that it's such a fantastic opportunity, especially for someone like me who has minimal real world business experience, to be able to go in and learn the Lean Startup method from all of our mentors. Did I get rugged? Sorry. No, you're here. I thought I got rugged. Okay, just making sure. Thank you. And for anyone who's interested in building in Stacks and wants to open your network and meet some great people, possibly or some great team members, I could highly recommend the Web three pre accelerator startup Lab. And I'm really excited to see everybody start to get their ideas formed and just this great experience. And of course, being kind of brought into the Sachs community in this way, it gives me a lot of exposure to small, big, all types of people in this community. So I guess I could talk a bit about what we're doing. My team and I have pretty much landed on our idea. We have to speak to a few mentors here soon to make sure we can get some legal clarity before we continue on because it is going to be on chain gambling and that's a really important part, I believe, to build an investment ready startup. We have to have all those things in line before we go forward into the stacks. Accelerator, hopefully. And we're currently just building out one simple game. It's going to be an on chain digital coin flipping game with 50 50 odds playing against the house. We have many ways that we want to expand upon that, but if we see some success with this project and building more on chain games for Stacks, that is our grand vision. And we would love to also open up our platform to other builders or other people who want to build on chain gambling games but might not have the resources, whether it be a dev or the marketing sense. So it's really going to be a bit more than just the fungible flip game. But one thing we learned in the Pre accelerator is go for that one killer feature and shoot for something simple and something that was maybe done on another chain. So I had just remembered this game I had played on Salana about a year ago called Djen Coin Flip and that's where I drew the inspiration for our game from. And yeah, it's looking like it's going to turn out to be a success. The reason I thought this would be a good application for Stacks is I come from the NFT trading world where we're all degenerates mainly, and I look to that as being one of the bigger consumers, consumer groups, I should say, in web three, kind of like the Degenerate Gamblers or Speculators. And I truly haven't seen a ton of degenerate outlets for users on Stacks. So we want to be able to build out some of those fun games or gambling s games for Stacks users. We're mainly shooting for more non traditional gambling games, as I've noticed, that's blown up in the online gambling world over the past couple of years. But we really think that transparency is important when you're online gambling and we're going to be able to provide that through smart contracts on Stacks, of course. ",timestamp:"00:20:15-00:24:50",topics:["On-chain game"],type:"twitter_space",weight:22.50741216002476},{boost:0,date:1633737600,description:"Public mempools versus private mempools ",episode_title:"Understanding Miner Extractable Value On Ethereum",guests:[{name:"Nathan Worsley",profile_picture:"https://pbs.twimg.com/profile_images/1576238702908637186/xzcScTyV_400x400.jpg",ref_id:"20529242-4546-475a-af1a-125b83aedd81",twitter_handle:"NathanWorsley_"},{name:"Robert Miller",profile_picture:"https://pbs.twimg.com/profile_images/1595788538938695680/w6i5Q6s4_400x400.jpg",ref_id:"292cfadd-7e67-4e34-876b-99804d416e20",twitter_handle:"robertjmiller_"},{name:"Jordan Frankfurt",profile_picture:"https://pbs.twimg.com/profile_images/1544902585462788097/bGe0hNIi_400x400.png",ref_id:"149db25a-26b1-4f69-8c9e-ec87e08ab8c8",twitter_handle:"jordanfrankfurt"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=6IxaLCPm6_E",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"330a0238-1acc-47fe-b809-48cc986a0b21",show_title:"Compass Mining",text:"I'll rise to the challenge. Jordan, at flush spots, we like to point out the places in which our projects fall short so people can hold us accountable and I hope those of you on the panel do and the community abroad. So I think private mempos could be something that is very centralizing for the network overall. And I think it also turns the network into something more opaque. For better or for worse, the public mempool is that it is public and so everyone can sort of see transactions passing through. They have the same information that it has a level of transparency to it somewhat. There are kind of nuances over there, but you don't know what's going on with your transaction when it goes to flashpots protect you assume that we are a good actor. You assume that we're passing your transaction on without doing anything. And this is a repeated game where you see the game update, right? So you pass a transaction to us, you see the state of the chain, you see if you're a front run or not. You can choose to not use this if you don't want, but there are trust assumptions baked into that and it is a more centralized vector that has less transparency over the outcomes. I think, to be clear for the listeners, I'm not shitting on flashbacks. Protect I think it's a really cool thing. We are planning on integrating it into uniflop. Oh, some alpha. Yeah, we are actively working on utilizing this service. So we're big fans of flashbacks. Maybe I could give a little bit of color to some theoretical problems with having completely private mempools as Robert touched on. I think this is very important. Anyone running a full note or mining doesn't actually have access to the entire MEMP pool. They only have access to a small part of the men pool. The mempool is being shared around everywhere, but each person only can see a small piece of it. And the mempool is like communicating information that traders are using to capture mev. But that's not the only kind of information it's communicating. It's also communicating information about load on the network and it's communicating information about appropriate prices to set the transactions. And if you start to close off all of the menpoles, then that information is no longer being communicated around the network and you have to find other ways of communicating it. And also another point that Robert touched on as well is this issue of censorship. When the mental is open and everything is being shared around the network, you have some assurances about whether you're being censored or not, whether something is happening to your transaction. Maybe it's getting delayed and someone's doing some kind of private statistical extraction that you don't know about. If you have confidence that your transaction is going everywhere around the mempool to all these different nodes, and you can see that, then you can have some proof that that's not happening. That's not to say that I don't like the idea of private MEMP pools, but this is like maybe an argument that you could make sure sorry, go ahead. One thing that just crossed my mind, as you're saying that is a proliferation of private or at least like secondary mental mechanisms or gossip mechanisms would be essentially allowing users more choice in their privacy of the transactions. We see them, like the Quinn, things like Clover and Dandelion as mechanisms for providing users with better safety and defense against Eclipse attacks or whatever their Node. And maybe that's one point in favor of a proliferation of transaction relay mechanisms. ",timestamp:"00:45:01-00:48:33",topics:["Public Mempool","Private Mempool"],type:"youtube",weight:12.134265304355546},{boost:0,date:1670706053,description:"Deep Lake finance: built for stacks",episode_title:"Bear Market Buidl — Major #Bitcoin developments! #Stacks #Sidechains",guests:[{name:"@GriffdenNFT",profile_picture:"https://pbs.twimg.com/profile_images/1604377729062895617/R4pSEdH4_400x400.png",ref_id:"dafdf7ec-28c0-43d3-a0d9-b2d266f38738",twitter_handle:"GriffdenNFT"},{name:"@Chad_333",profile_picture:"https://pbs.twimg.com/profile_images/1592310541732970496/o1tbw9Eo_400x400.jpg",ref_id:"484c7695-6a4e-4141-9585-1109bf23f8cf",twitter_handle:"Chad_333"},{name:"@jackbinswitch",profile_picture:"https://pbs.twimg.com/profile_images/1601214177439260672/O0SpU5B1_400x400.jpg",ref_id:"9685e7f3-3e0c-4b84-9fd9-b8a1d96f6ae9",twitter_handle:"jackbinswitch"},{name:"@jimdotbtc",profile_picture:"https://pbs.twimg.com/profile_images/1593210347825119237/L_SNThWQ_400x400.png",ref_id:"5dcf5545-fad6-44ee-ae56-360c5efe1151",twitter_handle:"jimdotbtc"}],hosts:[{name:"@BigRpic",profile_picture:"https://pbs.twimg.com/profile_images/1604962150388219904/WqiCye-r_400x400.jpg",ref_id:"726f0c95-9d94-4d44-a056-8ad3c9e3ddd5",twitter_handle:"BigRpic"},{name:"@CarlsonDoc",profile_picture:"https://pbs.twimg.com/profile_images/1597382056308350977/1NPexynZ_400x400.png",ref_id:"e34fa2b2-a58e-4461-81a0-d10c1058dfc2",twitter_handle:"CarlsonDoc"},{name:"@STXLDN",profile_picture:"https://pbs.twimg.com/profile_images/1533793338931007488/o3laQDCp_400x400.jpg",ref_id:"5c3bc906-3aed-44f9-851a-94804c6fe5ca",twitter_handle:"STXLDN"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99046513-2614-4eae-9de4-5781ba4b330a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/fc3bebcb-8271-433e-8d81-84dd06f3b022/aec527bc-539d-4d3b-9bad-db4af9e1a1ba.mp3",node_type:"clip",pub_key:"03c7a7f42d94fdfc7a655515c1421cd1d20db090a1c24150201de0b1dc6a30b0ee",ref_id:"a3fe7197-5948-404f-a8b0-f04bb130db27",show_title:"STX:LDN",text:"can you tell me? I'm friends with Rafa, and as I understand it, he's co founder on Deep Lake. What are they actually doing? How does it work? Well, I can't tell you from a technical standpoint, but I can tell you from a Djen trader standpoint, deep Lake Finances is a way for people to trade perpetual futures instead of using a centralized exchange like BitMEX or what have you. It's a D Five protocol that allows you to do that. Really, the ultimate thing is the way it's being built is whatever kind of liquidity providers you want to have, you'll be able to make these pairs on this platform and trade their futures so the applications go bigger than just Bitcoin and Stacks or whatever. The applications for something like that can be scaled up tremendously, but just that in and of itself. So there's a huge need in the market for such an app. Hey? Well, yeah, I think right now there's a huge need for a lot. Right? I mean, you don't know what you don't know, but something like that. Absolutely. 100%. Just from a trader standpoint, which before I, when I learned about crypto, the next thing I learned was trading crypto from a trader standpoint, a decentralized exchange that I can trade futures on and not have to risk leaving my coins in a centralized exchange, especially status posts, FTX and all of this other nonsense we've watched. That's massive. That's absolutely massive. The audience for that is enormous. Well, that's great. I'm so happy for RAF coming up with this and putting his team together. It's really impressive. I had no idea what it really meant by a perpetual and when you say futures market, well, yeah, I understand that and that's great. That's just great. Yeah, it's awesome. Right? A lot of tech people don't like to think about it this way, but I think about it this way because this is just what I've seen. What's being built in Web Three started on the back of traders period when the news and when everyone in the real world and everyone was just insisting bitcoin itself was a scam and it was tulips and it was this, it was that, and the other traders were out there with their skin in the game, day one. And the liquidity that we've provided to these various chains, sometimes more liquidity than we cared to, but the liquidity we've provided has built this market. And I think that that natural progression is still there because it's still such a young market. Like I said, this is what we're seeing happen right now. The fruits that come to all this labor are going to take generations to ultimately come to fruition. But yeah, traders bring eyeballs, traders bring liquidity. And having apps like that on any chain are really going to bring the investment, bring the capital, bring the interest. It's going to do just like it did with me when I discovered crypto. The giant green candles makes people be like, hey, what's going on over there? I'm going to check this out. Or with NFTs, they come for the pictures and they leave with the understanding of the evils of Fiat. Right? I mean, this is what we're doing. So, yeah, having something like that being built right now, is just huge for Sax. 100%. Yeah. I didn't know what Rafa was trying to put together. And when they published that landing page for Deep Lake, I thought, well, that's interesting. I just didn't know what they meant by perpetuals. And when you talk about futures oh, of course, right. Makes a lot of sense. One thing I do know is I don't believe Rafa is the co founder of Deep Lake, but he is partnering with them for whatever project he is building. Is that right? Rafa is not the co founder of Deep Lake. No. I just dropped an article in a link if you want to check it out. It's a small dive about what they're working on. The guy who started, a guy named Abdel Harass. Really just cool dude, really smart guy. But yeah, there's a little article down there below if you want to check it out. Absolutely amazing tech. Thank you. ",timestamp:"01:02:21-01:08:24",topics:["Deep Lake finance","stacks"],type:"twitter_space",weight:21.730685924323048},{boost:0,date:1671735703,description:"Steps to onboarding a new bitcoiner",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Pysh, Booth, BTC Ben & the Plebs! 🍻😂",guests:[{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"},{name:"Brian",profile_picture:"https://pbs.twimg.com/profile_images/1589300685182570500/cTffQlpJ_400x400.jpg",ref_id:"b167b1cd-bbce-4839-a03c-194f006f954d",twitter_handle:"BrianTheDrumer"},{name:"BTC Ben",profile_picture:"https://pbs.twimg.com/profile_images/1348015880664473610/S-uDNLlZ_400x400.jpg",ref_id:"2c95b3dd-e3a2-4cf0-a49e-a8915d2bfcd5",twitter_handle:"bensemchee"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"78672de6-3c5f-4d95-8fd9-f2b512fa7a04",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/dbc5dd26-2307-4f64-a377-105e2a277d9c/be3d47a7-2fcd-4de8-8f22-71851953d022.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"4491ca29-82ab-4599-8d39-039653b35aa3",show_title:"PUBLORD",text:"No, I just did that last night. I literally sent a text to it. I got this guy that I onboarded this year. A few months ago, he's bought a little bit of Bitcoin. He's got like maybe a couple of $100 worth on cash app. And last night, he was finally asking me, he was asking a question. I was like, oh, shit. I left before I could teach you how to use wallet. So literally, I spent 45 minutes writing this text, basically explaining exactly in detail and taking pictures, like how to download, like, blue wallet, create a wallet, save his keys, told him to write them down, and then how to copy and paste the address and explain private keys. And it took a while, but I sent it. And at the bottom, it's like, congratulations. Like, you now own value that nobody can take for you. And I know that when he finishes that, he's a little older guy and he doesn't really know much about tech, he's going to feel really accomplished when he gets that done. And that's such a good feeling. It's like you do forget like Pablo was saying, you get down the rabbit hole, and you forget there are still people at the Tilt, like, they haven't even crossed in yet. And pulling them across even just a little bit and planting that seed, it's an amazing it's an amazing part. I love hearing all this stuff. You're absolutely right. That feeling of that person kind of having and you just know that there's going to be many more AHA moments throughout their bitcoin journey. But witnessing some of those first ones are pretty incredible. And especially this past month or so, I've had an influx and this gets me so bullish. I've had an influx of people booking me for one on ones saying, I've never self custody before, and now is the time, because this year has scared the hell out of me. So SBF has gifted us with a whole new generation of self sovereign hoddlers that are getting their shit off exchanges. I had a session earlier this week with a dude, probably 20s, early 30s, something like that, and his mom, and they were both taking self custody for the first time, and they were doing it on cold cards. His mom learned how to air gap in a transaction, which is incredible, and she did very well. That's amazing. Yeah. And she understood what was happening. As I was saying, like, oh, well, you just need when I was explaining the SD card, I was like, yeah, you bring it over. All you're doing is you're giving a signature like you would on using your credit card. You're signing the transaction. You're giving permission to send only the transaction that's in front of you. And she's like, okay, that makes sense. And she got it. I've been through a ton of these sessions this month, and it's just every time the people are like, this is really not that bad. Like, once you kind of understand what you're doing, it's just getting over the hurdle of saying, okay, I'm going to spend some time to learn this. But once they do, they're like, oh, my God. I don't know why I was so afraid. It's such an amazing feeling. If I did this where I'm doing on the 18th, would any of you be happy to dial in and answer questions? We kind of did, like, a Twitter space for it, maybe I'd be happy to join the space that you're talking about setting up. Also, I'm a fan of the idea of doing a split night. Like, one more for the beginners and one for the people who are kind of well into their journey and just want to connect on more up to date things. You could have sections to the night I've seen people do where, okay, from this time to this time is beginners, and then from this time to this time is advanced. And then you can also encourage the advanced folks to show up for the beginner section so that you have hands on deck to assist individuals as they set up the first wall. Very good. That's a great idea right there. I'll go one further and you have different sections. You can have, like, an upstairs for advanced, downstairs for beginners. Because I'll tell you what, when I saw BTC session in action, trying to explain Bitcoin from zero to now, you are running your own node in 20 minutes. One of the most impressive things you'll ever see. Let me tell you something. Ben knows his stuff. And it was PowerPoint after PowerPoint after PowerPoint, and my eyes were glazed over. I was learning a lot, man. But then he brought it home, beginning to end. Yeah. You got to break it down in small bites. I think that's exactly what I want to do. I want to try and make it, like, fun. We're going to have a laugh and joke. We can make it really typical, but I don't really want to bamboozle people as well. At the same time, I kind of want to build the community like we do on this space. This is a great thing I love about your space, probably, is that we can talk about some random stuff sometimes, but it's just because we're all on the same wavelength. This is why I love hanging out. You know what I mean? It's just hanging out with mates. Yeah. This is where we sort of begin, man. I've always started with just simple questions between each other. But it's tough, man. I mean, to come into this. First off, you're not going to drag anybody 26 miles to a marathon. So the ones that you try to orange pill that you wish, guess what? They better have a good foundational. Understanding that the money system is broken to begin with after that, that's just the beginning, man. That's just beginning. Going down this rabbit hole. Okay, now you think I understood what? I never heard the term Austrian economics until I found bitcoin. What do you mean, Austrian economics? What the hell is going on here? You don't understand that stuff, man. You just go down there, you start learning about the debatement of currency and the Fed, how this all began. Yeah, that's hard to put into one weekend, let alone one day. The money system is broken. You all we know. And the prophecy is coming true tomorrow. It's like Saturday. Easy. It's easy. Educator, sir. ",timestamp:"02:24:15-02:31:42",topics:["bitcoin self custody","bitcoin education"],type:"twitter_space",weight:28.510520965677095},{boost:0,date:1671735703,description:"Possibility of block mining on the hash rate",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Pysh, Booth, BTC Ben & the Plebs! 🍻😂",guests:[{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"},{name:"Brian",profile_picture:"https://pbs.twimg.com/profile_images/1589300685182570500/cTffQlpJ_400x400.jpg",ref_id:"b167b1cd-bbce-4839-a03c-194f006f954d",twitter_handle:"BrianTheDrumer"},{name:"BTC Ben",profile_picture:"https://pbs.twimg.com/profile_images/1348015880664473610/S-uDNLlZ_400x400.jpg",ref_id:"2c95b3dd-e3a2-4cf0-a49e-a8915d2bfcd5",twitter_handle:"bensemchee"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"78672de6-3c5f-4d95-8fd9-f2b512fa7a04",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/dbc5dd26-2307-4f64-a377-105e2a277d9c/be3d47a7-2fcd-4de8-8f22-71851953d022.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"c09cfdab-f18f-45ad-9542-bd095f3ef52a",show_title:"PUBLORD",text:"Well said, DC. Just real quick, I see bitcoin blue. We respect the hands here. I didn't know if you're going to change topics. Did I ever tell you my Easter egg analogy? Easter egg analogy for that? Yeah, I've heard it. Tell it again, though. I like it. Yeah, so it's pretty cool. At a club here, they had different age groups for an Easter egg hunt, and what they did like kids. They had like five and under in one area. Then they had like kids that were six to eight and then like nine to eleven, but they had three different Easter egg hunts going on. All right, so those little kids, look, they're not going to really surf too deep, so they literally would just leave the eggs open on the ground. I mean literally on the ground next to the tree, whatever, progressively got a little bit harder. So the other kids sort of hit them. You can only see a little bit of the egg. They would find them. And for the older kids, of course, man, you got to stuff very deep. So the difficulty adjusting to me is, guess what? There's a certain number of eggs we got to find every hour. You got little kids looking for hard eggs to find. Guess what, man? It's going to take a while. So what do they do? Difficulty adjustment. We're going to take you guys and we're going to put you we're going to take you from the hard part, and once in a while, we got to shift you back down to where everything is out in the open. We're going to give you some of the easy eggs to find, and over the course of everything, that's going to average out to our ten minute block time. I love it. And it's a great metaphor. It's amazing how something like that is like the missing ingredient to a system that can actually regulate itself over a long period of time. It's like truly mind boggling when you consider the computing power that's on Bitcoin today versus when it started. Satoshi ran that shit for like a week before he found Howl, who started running it, or however long it was, how Hal joined. And now there was two people with computers running this code. And today it's just like, absurd. The number of machines that are just computing as fast as they possibly can. Here's the same issuance timing. Here's some fed. TC what guarantees that the next block will be guessed correctly? Nothing. So essentially, there is a possibility for the block. The next block never gets mine. It's true, but we've never seen that happen so far. And the thing about it is, again, humans don't do so well with big numbers. You look at the total hash rate, and it's like over 200 x a hash overhead. That's over 200 million trillion guesses per second. You're saying I'm thinking of a number and you got a million trillion people no, 200 million trillion people standing in front of you all guessing. Wait a minute. 200 million trillion. Is that the omnibus, the next spending bill for the government? Oh, yeah, definitely no. TC it's amazing the foresight that Satoshi had, because in some of his writings you could see that he was saying that, I know in the future, because of Moore's Law, like, computing power is going to increase and blah, blah, blah, blah, blah. And so he's like, oh, it is necessary for this network, for its longevity, to have a way to, like, self regulate. And it's just the level of fucking, like, genius you have to have in order to foresee all this shit and write the code that makes it work. It's just fucking unbelievable. I was telling my friend that the difficulty adjustment is like, what makes it work? It's one of the things that makes it work. But to me, it's like, if it wasn't there, bitcoin wouldn't function the way it does, right? It wouldn't. It's a perfect balance. And where we saw it, really, the first time I saw it unleashed was when China took all those miners offline. And I forget the percentage that came offline. It was 50%. Oh, man. And it worked. It was just beautiful to watch unfold. Because when that adjusted, guess what, TikTok neck block. There's no stopping bitcoin. You can break it down even more, and it's even more beautiful. It's like the hash rate started to come offline. Blocks start to come in slower. Then no more than two weeks later, this adjustment occurs and re incentivizes whoever's still hashing gives them a bonus. They were sitting on the sideline, an incentive to start doing that activity. Dude, I know this first hand. I FOMOD into mining. Last summer, June, July 21, I saw the hash rate plummet. I realized that the difficulty adjustment had crashed, and it was easier to find blocks today than it was a couple of months ago. Let's fucking go. And that's what's really incredible about it, is the resulting incentives that come from those changes while simultaneously stabilizing a system that's having absolute volatile changes. How do you kill something like that? Where the human incentives are, the greed is just, like, ever present. If the fucking hash rate drops, everyone's going to foAmal into mining. Like the small people, like everybody in their house. And it's just so beautifully. It's so elegant, because in a way, it's harnessing forces and variables that are so hard to human psychologies. Like game theory. Whoever came up with bitcoin, whoever Satoshi is, bro, I'll get on your knees and suck your dick. That's the level of fucking, like, why does this shit keep coming up in this room, man? I swear to God. First breakfast because it sucks. The happy hour, bro. I think the longest I've ever had to wait for a confirm that I knew was going to be next block was like, 84 minutes, and the shortest I've gotten I've gotten them were like, literally by the time I go to check, it's confirmed, like, within, like, 20 seconds. So it's crazy how the variance can be. Yeah, bitcoin is beautiful. I said it. Bitcoin ",timestamp:"00:21:59-00:29:16",topics:["block mining","hash rate"],type:"twitter_space",weight:28.510520950548525},{boost:0,date:0,description:"More thoughts, questions and answers on Nation States and the Information age",episode_title:"The Sovereign Individual - The End of Egalitarian Economics",guests:[{name:"chriskapilla",profile_picture:"https://pbs.twimg.com/profile_images/1362817539135463427/2AXUeFLV_400x400.jpg",ref_id:"9d495790-93f2-4d6c-b770-b2885f66859d",twitter_handle:"chriskapilla"},{name:"remydenton",profile_picture:"",ref_id:"5c5beb0c-c214-4f23-b79a-e71bf9368f2d",twitter_handle:""},{name:"JackRonaldi",profile_picture:"https://pbs.twimg.com/profile_images/1583261828628496384/IazkwYjk_400x400.jpg",ref_id:"01621476-f040-49dd-8160-4035228faf78",twitter_handle:"JackRonaldi"},{name:"AlistairZ80Aftw",profile_picture:"https://pbs.twimg.com/profile_images/1362882489895841795/gH2zix3l_400x400.jpg",ref_id:"3dcba197-47ca-40c0-857d-73cec4325801",twitter_handle:"AlistairZ80Aftw"},{name:"mattonbtc",profile_picture:"https://pbs.twimg.com/profile_images/1549459254280687618/jzdHJou3_400x400.jpg",ref_id:"998167d3-e036-4ef1-9a05-4f062903f0c5",twitter_handle:"mattonbtc"},{name:"wai_wairua",profile_picture:"https://pbs.twimg.com/profile_images/1536570699761848320/T10Owc60_400x400.jpg",ref_id:"c4d4ff36-73fa-4471-91ba-de0f99a49e99",twitter_handle:"wai_wairua"},{name:"UltraSolomon",profile_picture:"https://pbs.twimg.com/profile_images/1468332451055427601/YVgUuUHc_400x400.jpg",ref_id:"6371d519-cc98-4bf4-9f82-be17b1ea532a",twitter_handle:"UltraSolomon"}],hosts:[{name:"BTC_Venetians",profile_picture:"https://pbs.twimg.com/profile_images/1557482467539521537/Kel-eVww_400x400.jpg",ref_id:"a6313ca9-3869-4477-88ad-30172957edcf",twitter_handle:"BTC_Venetians"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/75ec86b1-cb6d-467f-a66e-5e642e5c126a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/c8cc9ec1-061d-4f53-a24b-ee43a56c7715/e650057e-2369-4e75-8119-4975a1fc4cac.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"af7832e4-45e7-44e6-a91c-04652f9ce4fa",show_title:"Bitcoin Venetians Book Club",text:"let's move on to my favorite question that I came up with, which was, let's imagine that the nation state doesn't survive and it's a bunch of small sovereignties. I guess where I'm always confused is, as a bigger entity, you're more powerful. So if we split up into a bunch of smaller ones, like, what's to prevent, like, some Genghis Khan coming around and conquering the small, weaker sovereignties, small sovereignties. I guess part of it is the wealth being unconfiscatable, the wealth being situated online rather than in terms of physical resources, in terms of information, and in terms of Internet native money. I find this very interesting. Like, it's kind of the Jason P. Lowry form of address. And I challenge that. Because if you have one country with nukes or greater violence in one country without, and this is physical violence, not informational violence. And the authors having talked about infrastructure being a key component of wealth, it does strike me that the physical you can't just ignore the physical component and a lot of the debates. The nature of violence is shifting, and it's easier to defend your wealth than ever before and much more costly to attack that wealth. And so therefore, the cost of violence is changing and favoring the individual. And I understand that. But at the same time, I just don't think you can ever discount an army moving onto your front doorstep and taking your culture and your home and your roads and everything else. I think I'd have a very similar critique of Jason Larry, whose name was previously banned in the book club, but we'll let you off as you've been away. But I guess the question is maybe the relevant question isn't if there was a large country with big armies, couldn't they just bulldoze everything? But would such a nation be one of the ones that collapsed? Would it be sustainable if it could no longer use extractive techniques against its own population to fund that war? I sometimes wonder if we'll see, like, I don't know, I got to find the right phrase, like cyber Vikings. I wonder if all of the kind of plundering of, like, other small sovereignties would be technological purely rather than physical. Yeah, I think maybe the violence will go into both domains. And I think we already kind of see that with hackers attacking people, especially, like, in the ethereum and rest of the crypto space where people are a bit more careless and there's a lot of security vulnerabilities you keep seeing like hacks tens of millions of dollars stolen all the time. But I think on the physical versus digital violence, I don't know, I think it'd be a calculus for even if it's a smaller attacker and smaller sovereignty, it would be a calculus. Like, let's say we're all on bitcoin and it's sound money. What if we came off of sound money and we funded a big war effort and we could steal people's maybe not their digital welcome bitcoin because you can't crack that security. But I think money at the end of the day is like a means to an end, not an end itself. And the means that it is the end that it's a means to is in the physical world mostly, at least for the time being. And if you can appropriate all of that wealth physically doesn't really matter in my opinion, or it doesn't matter as much what the ledger of bitcoin says if you have the physical wealth. And I mean, I guess a relevant factor is that is the armies these days are less and less human based and more and more technologically based in terms of drones and remote fighting and things like that. So you don't even have the hearts and minds issue that you may have had in the past in persuading people to go to war and give up their lives for this fictitious entity of the nation. I know we've had this discussion quite a few times. Yeah. And I'm just wondering if you follow the trend of the book and you say I mean, we've seen it already, these hyper wealth concentrations where we've already got single people who are more wealthy than entire nations. Significantly more. In some cases and whether or not they will have private armies and then able to fund those armies to then kind of perhaps do what they want. So there is countercases to be made against this claim that things will be defendable in the informational age. But I'm not wanting to get too dystopian. I still think that it is a powerful force for positive, and it's quite hard to weigh. It's very hard to weigh what force will mean more and how it gets discounted. Talking about a nation state funding its military, how much of that defunding through perhaps bitcoin, how much of that will actually have an effect. It's really hard to quantify. ",timestamp:"01:02:09-01:08:19",topics:["Economies of Scale","Nation States","Information Age"],type:"twitter_space",weight:10.800045251846313},{boost:0,date:null,description:"Hosting family thanksgiving and discussing bitcoin",episode_title:"Café ₿: Thanksgiving Special 🦃 w/ the Café Bitcoin Crew",guests:[{name:"Rob Hamilton",profile_picture:"https://pbs.twimg.com/profile_images/1524033110630969351/wTUr8S36_400x400.jpg",ref_id:"94b18625-4778-4cfe-9c78-823704d1c1b1",twitter_handle:"Rob1Ham"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:"DJ Satoshi",profile_picture:"https://pbs.twimg.com/profile_images/915987644043030528/5nh3JQSz_400x400.jpg",ref_id:"02ae35cb-3728-441f-84c5-a8db5d9150b4",twitter_handle:"satoshi__tomiie"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Shaeroden",profile_picture:"https://pbs.twimg.com/profile_images/1560742113410678789/cHZ2tUjU_400x400.jpg",ref_id:"0da06a5c-038f-4737-9af7-17bed3712e68",twitter_handle:"Shaeroden"},{name:"Andres",profile_picture:"https://pbs.twimg.com/profile_images/1401952614795943950/aL2h3Wb4_400x400.jpg",ref_id:"db4abfe9-e3bb-4ffa-9783-ce67f5b20270",twitter_handle:"andresvbr9"},{name:"Peter Ansel",profile_picture:"https://pbs.twimg.com/profile_images/1374726811221954565/R7ttqYMI_400x400.jpg",ref_id:"2d418514-e03c-414d-8ed1-10c894aacb6e",twitter_handle:"peteransell"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/c25e3b3c-b5ef-435e-9e7d-9e406089e7b1/572908d4-f2cc-4c7b-980c-8359d2c8000d.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"5faa3765-8f15-41c7-8c8e-6136a0e67b5f",show_title:"Swan.com",text:"Hey, I appreciate what American Huddle said. I don't know if it's a funny story, but it's a few years now that I've been hosting my family's thanksgiving. And I'll tell you that flips everything on its head when you're the host, I tend to find that there's a lot less of that kind of reactionary stuff in your direction. I don't know if people are just minding their manners more because you're serving them a feast, but it goes a little easier. And a couple of days ago, my mother in law rolls into town. Last year, I was talking her up about bitcoin. I sent a small amount to a blue wallet on her phone, got her set up, and first thing she says to me when she shows up, she says, did you see what happened to bitcoin? And that's when last night I thought it was funny. I sat her down in front of YouTube, and I played her this one time, and then it crashed. Video from YouTube, and she kind of had a blank stare after that thing played. I hope you guys know what video I'm talking about. The guy who says, this one time, bitcoin went from way up to $36 and then it crashed down to $20. Yeah. Anyways, find that video if you haven't seen it, but you fill in the blanks. I think that one ended at the cycle that peaked at around 1200. So you kind of fill in the blanks of then it went to 20 and crashed down to three, and then it went to 69 and it crashed down to 15. And you kind of help them fire off a couple of brain cells and put two and two together and realize sort of the bigger picture and the fact that they have the time frame of a mosquito and the way they're thinking about it. So for me, that was gratifying to kind of actually see a little light bulb go off in my mother in law's eyes last night when I was showing her that. So yeah, I don't know, maybe that works for somebody else. I've never actually heard that one. Jacob found it. No, he's going to play it right now. Oh, epic. Right now. Role. This one time bitcoin went from way to it crashed down to another time bitcoin went from way to $29. And then it crashed $3. And then another time bitcoin went all the way to $213. And then it crashed all the way to $70. And then another time bitcoin went all the way to $1,100. And then it crashed all the way to $239. So the moral of the story is don't buy bitcoin because you know it's going to crash again. He did a follow up tweet too. Then like the next bull market, he also said nothing. That video is so priceless because I'm pretty sure he's serious. I keep going back and forth between it's sarcasm or he's actually serious. But either way you got to watch it, Alex, because just the expression on the guys face. And then he's a bitcoin on Twitter. I didn't know his name. What's his name? Let me give his last name. 1 second. Yeah, I mean, I played that for my mother in law last night and then continued it. It went all the way up to 20,000 and it crashed down to 3000. You kind of have to help people because they still don't realize they hear that word crash and all they think is bad, bad, bad. You kind of have to put two and two together for them. But yes. Anyways, maybe that will help anybody with their relatives. You're welcome. That's hilarious. Shout out to Q in the audience. Going to throw you an invite. We need to remove somebody. Jacob, you be the bad guy. Take me off. Take me off. I'm handling my kids. And then also Brad Mills. What we're doing today, guys, is we're just telling funny or interesting thanksgiving or otherwise bitcoin stories. It's been pretty light, pretty chill and fun. I think it's worth noting. I think it's worth noting too, when you're talking with family and bitcoin, especially over. Time because you're going to be right. With time, you're going to be right. The bear markets, people poke funny or whatever, that's fine. But given enough time, you're going to come out looking so smart and so intelligent. I think that's where the stay humble part comes in. And you kind of have to be a little graceful with being right, at least around family, in my opinion. Sometimes when you're on Twitter, it's fun to be like, yeah, what's up, bitch? You were wrong, motherfucker. But like, I don't really say that's, like my aunt or something. The problem is if your family finds your Twitter and then they know how you're thinking anyway, so you can, like, try and be so polite. But then, like, three days before you showed up to Thanksgiving, you were like, bro, when I see these pores, I'm going to be just thinking, fuck you in my head. So just don't tweet stuff like that. You know what I mean? Don't be one to yourself. Maybe share that with your wife. We're all learning here. Hey, Q, tell us some funny or interesting bitcoin stories, man. I told you so. I've gotten this week have been actually kind of hilarious, I will say. Just the overall response and naivety of normaland versus especially those of us who I think very much understand the difference between bitcoin and crypto. The conversations I keep hearing is like, oh, shit, bitcoin is going to go to zero now because Sam is like, not going to be a thing that FTX is going under. It's really funny, at least to me, because at this point, I'm just like, you're right. You're absolutely right. We're not going to make it. And then I love my favorite thing is it's always people who are very bullish on the tech industry as a whole. And so it's just a very simple, how's your SaaS portfolio doing? How's that Facebook stock treating you? Everything's kind of gone to shit. So I don't know. It's pour yourself a nice heavy glass of whiskey, put your legs on the table and just let's see who bled the least, not who made the most, if you will. But I don't know. Painkillers are fun right now. I just wanted to say to the Swan family, thank you very much for everyone who hit me up after Pacific Bitcoin. Like, I am successful surgery and fully recovering right now. My Achilles. That's awesome too. I have this one uncles who will not stop calling bitcoin bitcoin, and they've been calling it bitcoin to my face since 2015. And I'm like, did you guys all miss the part where I became the richest person in the family or no, a ",timestamp:"01:05:22-01:13:51",topics:["family thanksgiving","bitcoin crash","bitcoin discuss"],type:"twitter_space",weight:10.792905569076538},{boost:0,date:1637366400,description:"The narrative around nuclear energy is getting louder and more encouraging for Bitcoin mining communities",episode_title:"Securing Bitcoin With Nuclear Energy",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"},{name:"Eric McErlain",profile_picture:"https://pbs.twimg.com/profile_images/1252969137/Screen_shot_2011-02-23_at_10.59.21_PM_400x400.png",ref_id:"4815365d-44d0-4b06-9d9e-32070158d03c",twitter_handle:"atomiceric"},{name:"Puru Goyal",profile_picture:"https://pbs.twimg.com/profile_images/1590742805613203456/QAtYq_C__400x400.jpg",ref_id:"c24af059-b38b-4ce5-9547-9192c9eff579",twitter_handle:"purugyl"}],hosts:[{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"},{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=YBaA17NODlA",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"34c231bc-7fcf-4f55-a124-d67b008399a0",show_title:"Compass Mining",text:"to have you continue that train of thought, elaborate more on where nuclear stands now compared to maybe where it did a decade ago. Well, the Fukushima event definitely derailed the deployment of generation four reactors and put that on delay for a while. So it seems like we're finally just starting to get back around to that. But I agree with you. The narrative around nuclear has gone for a complete flip just in the last few months, and it's reinvigorating and very encouraging to see that level of public participation and growth and notoriety growing and getting better and leaning less away from outdated, basically, flood. For nuclear relies on the old technology and basically problems that have been solved or in the process of being solved. My interest has been mostly in the advanced reactors, in the small modular reactors like the little little guys like the 1, because I've gotten really obsessed with the small the SMR action plan here in Canada where we are planning to basically upgrade remote communities from diesel generation to nuclear power. And some of these communities, the electricity prices out there are outrageous. It's pretty lucky for the communities that can get diesel barged in. But some communities that need to get their fuel shipped in, they're paying as much as ninety cents a kilowatt hour, sometimes even more. And that all gets subsidized so that it equalizes with the on grid prices. So that's a lot of money that could be spent for better investments if we could get a more stable long term energy supply in there that doesn't need to be constantly refueled. But the reason that I see Bitcoin mining being a super good amplification for that is that it just completely eliminates the demand risk of making these investments before the current situation is there's a lot of hesitancy to build large generation projects in far remote communities because there isn't a customer base to recoup that investment. But now we can deploy in excess and deploy a customer right alongside the reactor that will scoop up everything and then be perfectly aligned to the generation profile and they can be scaled and adjusted as needed. Depends on how communities grow there's. A lot of this is going to be used for remote conventional mining applications so they can incorporate bitcoin mining as a way to just better economize the reactors that they plan to use for their operations. And this is going to be a complete game changer for these communities that they've been energy impoverished for generations. And some of the stories that you hear about remote communities in Canada, especially indigenous ones, it's hard to hear and you want to come up with a solution to fix it. But the conventional problem has just been throw money at it and all that does is it just seems to just go down a hole and it invites corruption and it never goes to places that it needs to. These people need water resources, they need better food and just fixing the energy will have a cascade effect and resolve all of that. Yeah, no I agree 100% with all of that and it's crazy to watch people sort of in these conversations realize the location independence and almost unlimited demand for energy from bitcoin miners and how that resource can be deployed to very quickly and easily expand like energy infrastructure for nuclear or other energy sources. It's just insane and almost unprecedented. Before we dig into that though, I did want to know if peru if you had anything to add on to that with regards to the inflection point, a flip in public perception, nuclear skills poised for massive growth, like real growth infrastructure wise and popularity growth as well. Yeah, I think that makes sense to me. Also, one more thing I want to point out is a lot of the reactors that we see online today have been built out to 1970s and we haven't seen growth in reactor build out since then. And I think it's important to understand the energy market that we are currently living in to figure out why nuclear hasn't made a push so far. Nuclear accidents have definitely changed the world public perception over time and they do not help for sure because it's such a political thing. But apart from that, if you look at the energy build out that's happened especially in the United States, and if you look at the generations have been brought online then you'll see a period between 2000 and 2005 where there was a massive build out of natural gas power plants all around the United States. I think combined my numbers might be slightly off but I think in those five, six years combined there was around 200 gigawatts of natural gas power plants just built in the United States. And what led from there was just cheap natural gas prices. And nuclear has found really tough and not just nuclear, even coal power plants have found it really difficult to exist in a market environment like this where natural gas is certainly so cheap. So it just depends on like the build up that happens and now, I think the opportunity for special advanced nuclear reactors would come probably, I think, in 2030 to 2040s. That's the time frame where a lot of these existing power plants that we have currently are going to retire, especially, I mean, any predictions on energy markets generally are wrong, but I don't want to say that, but I'm looking at the trends. I think a lot of the existing plans are going to retire in 2030. And that's where I also wrote this on a Twitter thread where I feel that's exactly the opportunity which a lot of these private companies in the advanced nuclear reactor space are trying to fight for. So that's another important factor, aside from the accidents over time which have changed public perception. Got ",timestamp:"00:15:37-00:21:49",topics:["Nuclear Energy Narrative","Bitcoin Mining"],type:"youtube",weight:10.626491553126828},{boost:0,date:1633737600,description:"Miner extractable value on Bitcoin",episode_title:"Understanding Miner Extractable Value On Ethereum",guests:[{name:"Nathan Worsley",profile_picture:"https://pbs.twimg.com/profile_images/1576238702908637186/xzcScTyV_400x400.jpg",ref_id:"20529242-4546-475a-af1a-125b83aedd81",twitter_handle:"NathanWorsley_"},{name:"Robert Miller",profile_picture:"https://pbs.twimg.com/profile_images/1595788538938695680/w6i5Q6s4_400x400.jpg",ref_id:"292cfadd-7e67-4e34-876b-99804d416e20",twitter_handle:"robertjmiller_"},{name:"Jordan Frankfurt",profile_picture:"https://pbs.twimg.com/profile_images/1544902585462788097/bGe0hNIi_400x400.png",ref_id:"149db25a-26b1-4f69-8c9e-ec87e08ab8c8",twitter_handle:"jordanfrankfurt"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=6IxaLCPm6_E",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"03c6b2f5-685e-4921-a230-e14e5679f792",show_title:"Compass Mining",text:"on some level the answer is very simple in terms of comparative me v opportunities and strategies and development on Ethereum other chains versus bitcoin. On another level, maybe the answer is a little bit more intricate. But my question is basically in context of everything we've described and explained and understood so far in this conversation about Me V. Like why basically are there this many opportunities and this much development attention to minor and maximum extractable value on the bitcoin chain as opposed to a theorem and other chains? And maybe to add a little bit more interesting content to that answer, like if or when would anything like that change for Bitcoin? Maybe as a preface or to set up some of your answers, I know we're seeing an increasing amount of developer attention paid to covenant contracts, bills for bitcoin and Lightning and if those reach a pretty high level of sophistication there could be some interesting opportunities for MVP on bitcoin. Right now there just really isn't that much. So I'm curious to know your guys'insights on why that is and what, if anything, would sort of be a catalyst to kind of change that situation for bitcoin miners. Nathan, maybe you go first and then everybody else can jump in. Yeah, sure. I think it's just simply a function of the size of D five currently on bitcoin and that if we see that start to change, then we'll see the me the situation starts to change on bitcoin. Really like the incentives and the opportunity from me v not entirely, but mostly being generated by DFI and the DFI economy is just bigger than Ethereum at the moment. We are seeing people starting to make inroads into bitcoin with D five development and as that becomes bigger, I think these problems will become more pertinent bitcoin. I've been philosophically, it takes a very conservative approach to a lot of these issues. So they've pushed off a little bit of the default development down the road a little bit and I guess using Ethereum more as a testing ground to see how these issues have worked out. Yes, for sure. Robert, go ahead. Anybody? I think Nathan hit the spoke to it very well, I think. I would also note that there's more mev on bitcoin than I think bitcoin is like to acknowledge. In particular, there's a lot of griefing vectors that you can make money if you assume that you are a counterparty in a channel and a minor in the lightning network. So you just grief. Your counterparty take a lot of their money and I think most of that payment ends up going into a minor. There's like a bunch of different vectors for that as possible. There's a good article on this by a lightning developer, Lisa Nicole on Twitter. And then I think that there's some mev in bitcoin that just isn't really being exercised by miners right now. And there's some sort of theoretical mev that you could imagine too. So I kind of think of if there's giant arbitrage opportunities between centralized exchanges and you really wanted to be the first person to make a deposit at one centralized exchange, everybody is sold. You need to get new bitcoin on boarded there. You could imagine a minor exercising their control over yeah, this is the one. You could imagine a minor exercising their control over transaction ordering to be the only party that deposits at that centralized exchange and thus is able to capture the arbitrage. Something like that. Yeah, no, that makes sense. I actually forgot about this article at Austin Bit Devs a bit ago. They mentioned this for anyone watching who's interested in lightning and also mud, which I guess the Venn diagram there might be pretty small, but it's a great read. She explains some pretty interesting concepts. Yeah, Jordan, curious to know your insight too. You and I personally offline talk a lot about bitcoin and ethereum compared to ecosystems. MVP on bitcoin pretty small. What, if anything, would change that? Yeah, I think actually, Robert, the clockwork paper that you wrote had there's a section of it that gave me, I think, a decent or a better generalized framework for thinking about MVP opportunities. And it's just that, like, every MVP opportunity is like highly context dependent. And when you have a chain like ethereum where there is more context, like there's more state that can be manipulated, you therefore will have more MEB opportunities. So in the state, or in the case of bitcoin where you're primarily just managing transfers and just etxo's everywhere, there's a much simpler state surface on the chain than there is on ethereum. And ethereum is like orders of magnitude more complex and therefore creative people can find more interesting things to do to manipulate. So that state surface might change. For bitcoin. With ethereum, there's obviously certain changes that are happening with like, channel disputes and we'll see if there are more in the future. I'm sure that people are going to keep building on bitcoin and maybe someday we'll see some cool new opportunities arise. Maybe we should build it. Jordan. I mean, there's already plans, right, for AMM on bitcoin. I think Jack Dorsey said he's going to build it. So, I mean, as soon as that AMM is this, there's instantly mere available on Bitcoin, you can't have the AMM without having mev. It goes back all the way to that FHIR network or something like that back in 2015 that Matt Carello tried to build was that relay network. Those are also I always see them as infrastructure for maintaining mev, so it certainly exists. And James Preswich and Hustle and one other author have a paper back in 2019 talking about bitcoin mev and how that would lead to chain instability, which, Robert, I know you and I had a few Twitter DMs about. That subject like, what would it look like for transaction fees to become such a bounty for miners to start looking at reorganizing that network? Which would be pretty interesting. ",timestamp:"00:21:48-00:27:58",topics:["Bitcoin Miner Extractable Value","Lightning Miner Extractable Value"],type:"youtube",weight:10.626491547282228},{boost:0,date:null,description:"Experimenting with the Raspberry Pi",episode_title:"Reverse Proxy - #Bitcoin Nodes - NGINX is the Answer!🦾",guests:[{name:"Pedro",profile_picture:"https://pbs.twimg.com/profile_images/1395874649876140035/z-IycTAj_400x400.jpg",ref_id:"78acd8b7-3097-40c3-b626-245bc911dc49",twitter_handle:"pedromvpg"},{name:"Machankura",profile_picture:"https://pbs.twimg.com/profile_images/1536075376409059331/0zddZFmE_400x400.jpg",ref_id:"855f2d8f-2230-475d-b5c1-dcaace579de4",twitter_handle:"Machankura8333"},{name:"DJ Satoshi",profile_picture:"https://pbs.twimg.com/profile_images/915987644043030528/5nh3JQSz_400x400.jpg",ref_id:"02ae35cb-3728-441f-84c5-a8db5d9150b4",twitter_handle:"satoshi__tomiie"},{name:"Portland.HODL",profile_picture:"https://pbs.twimg.com/profile_images/1562306406526492672/LiqmI9NS_400x400.jpg",ref_id:"aaa58ce5-7907-4c3a-9881-839cd012c456",twitter_handle:"PortlandHODL"},{name:"anonsats",profile_picture:"https://pbs.twimg.com/profile_images/1601204123818401792/iQ85pwvS_400x400.jpg",ref_id:"f3bf3677-9864-4fe3-a8b0-976a67be45cd",twitter_handle:"anonsats"},{name:"₿rettInThe13%",profile_picture:"https://pbs.twimg.com/profile_images/1593104719311929345/tTSjoS2n_400x400.jpg",ref_id:"0ad02828-02ee-465b-87c6-96e559905ed8",twitter_handle:"brettinthewoods"},{name:"EasySats",profile_picture:"https://pbs.twimg.com/profile_images/1593330030905540618/ZHqVPhTM_400x400.jpg",ref_id:"d6d16cf5-4a9b-4517-897d-5cf98467ed1a",twitter_handle:"EasySats_"}],hosts:[{name:"okin@8333.mobi",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"7af60fa9-1611-4029-b691-aa1481f99062",twitter_handle:"OKIN_17"},{name:"Dread",profile_picture:"https://pbs.twimg.com/profile_images/1532557131819491328/vvs1cD-7_400x400.jpg",ref_id:"e61af76b-8fbd-4719-b753-0a70edd22fa8",twitter_handle:"PoleVaultDream"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/30180c4d-27f9-4215-81e0-6a22b16aba43.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/e464bf90-24b2-48ec-b50a-e51c45412a19/00d3308d-b0b8-452b-a4bb-6025a731c457.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"896a10a9-621e-4f5e-a8d7-d4504dffd923",show_title:"okin@8333.mobi ⚡️ 🏰",text:"Dell laptop, right? You can install NGINX on that, and then you can forward traffic through that Dell laptop into a Raspberry Pi that's running another node for you. You can do literally whatever. You can create this mangled net of whatever you want and point anything to anything internally. It typically works. There are a couple of caveats, but overall yeah, you don't even have to have it running on the same machine. Just the traffic has to initially hit NGINX first. That's the only requirement that it goes through NGINX first so that it can get routed. Blessings, blessings. I'm just going to have so much fun. Wow. Do it. Well, the Dell laptop is currently not a laptop anymore. That is an embassy node. As Dread said, once you use the X 86 hardware, it literally you put another OS on it. So it's running. I don't think it has any access to terminal anymore. But I do have my 20, my 2011 2010 MacBook Pro. So that one I'll probably do it. On, and you can still SSH into it and you know, you I mean, you still have root access to your machine, so you could do whatever you want. Yeah, you still do that's true experiment? Yeah. Go for it. Portland. Oh, I was going to say, as a note, we kind of mentioned earlier that Ram was one of the biggest factors as part of the IBD. So the initial block download. So when your device downloads the Bitcoin Core client, then you got to sync it up. My experimentation on specifically the Raspberry Pi is that the Raspberry Pi is not memory limited, it's processing power limited. And that is due to the Secpk basically message the elliptic curve cryptography that is happening, the processor literally cannot handle that amount of processing quickly. Like it takes forever. And I did this by doing the Perf tools in Linux and basically watched for which functions it was calling the most often. And the two of them were basically some square operations for that encryption library and some multiplication operations that were just getting ran again and again and again. And that's why on these Raspberry PiS it makes sense that they typically with the initial block download, it does really good until you kind of hit like 2017 or block right around like 500,000 or so. And then Seguit comes in and you start getting actually like complex transactions in there. And that is because it's spending so much time processing all these encrypted messages and validating that they're all valid. And where that goes is x 86 hardware is so much faster at doing these operations and that's why even installing bitcoin core and downloading these initial block downloads over on these x 86 machines that aren't as small as the raspberry pi. But it's so much more performant is because of the fact that these machines are so much better at handling these kind of operations quickly and efficiently. The Raspberry Pi just sits there and churns and churns and churns. And that's why even towards the very last part of the IBD nowadays, usually like the last like 10%, it is just excruciating while this little pie is just churning numbers all the time. And whether you have 4GB or 8GB, I found does not matter one bit. Both still take a long time. Two to four is a difference, I will note that. But four to eight, there's no difference at all. That's interesting. I had a different result because testing all the embassies we've had to down, I've done like 20 IBDs in the last month, and I have a Raspberry Pi for four gig and a Raspberry Pi for eight gig with the exact same config set up on the embassy. And the four gig took usually between seven to 14 days to finish. To your point, excruciatingly slow for the last 5%, but the eight gig actually did it in 72 hours, sometimes a little bit less in some cases. I'm not sure that's because we cranked up the cores in the bitcoin.com, but it definitely moves faster than the four gig for us. I would like to look into this because my theory was based on one thing as well. So I looked at the memory usage and both for me, this is just bitcoin core. I'm not running a suite on top, right? So I'm just running bitcoin core. Both Raspberry PiS basically tapped out at about 2.7 to 2.8gb of memory usage. So that was kind of like I double checked and that's why I ran the perf tools, is to verify that what's actually going on under the hood here. And I verified same SD card in both of them. So they both have the same transfer speed. The memory isn't being used. So my thought is like, tell me if I'm wrong here, but if it's only using 2.7 gigs and both are taken like you said, it was roughly about two weeks to complete on both the four and the eight gigabyte, and it's not using the extra Ram. That's why the results are roughly the same, I believe, but those are my thoughts there. Even if you get eight, it's not going to touch that amount of memory. Have you measured the memory usage when you're doing these IBDs? Not going to remember. I remember they were both being maxed out on the processing power, but the memory usage, I don't remember if it was using more than 2.7. I didn't check it. But the one thing that I was going to ask you is, did you tinker with the bitcoin.com any at all? Did you try to change any of the settings? There no okay. On my actual production node I do, but on this, for this experiment, no, I did not. And I actually have a nice little write up on my Twitter where I also compared this to the IBD on some X 86 architectures as well as the IBD on different types of devices, HDD, SSDs and 2.5 inch 5400 rpm laptop drives. This was just like a barrage of different tests I was running on these to see, like, okay, where is the Achilles heel in the initial block download? And one thing you noted thread that I think points to my theory being maybe more correct. And again, anybody come up and tell me if there's a reason why this is wrong? You mentioned that the Raspberry Pi processor was at 100%. That's the bottleneck at that point, right? That means the car is floored, it can't go any faster. And those Raspberry PiS between the four and the eight gigabyte are basically the same frequency. So I don't know unless there's some other little bottleneck or something that I could be missing that the limitation at that point is literally how many cycles does it take to complete this total download? And that is if you're running at 100% CPU, which is the case. That's why I experimented with this, is that, yeah, the CPU, it's bound to that. That's as fast as it can go because it's using all of the resources of the brain to do it. Yeah. I would need someone smarter than me to tell you what resources are being used to make it go faster in each case. But what I can tell you is that in the conf, I would tinker if I were you. I tinker with the RPC threads, the threads that are used to handle and also tinker with the work queue to service the RPC calls. I think those two settings and the configuration might boost even though the processing power is maxed out. I'm not sure how it goes faster, but it seems to handle the heavier blocks better. It's almost the same speed for the first four years of IBD. But after that, it seems like if you increase the work beyond the queue, the work queue and the threads, it seems to speed up on the bigger blocks. ",timestamp:"01:47:37-01:55:51",topics:["Raspberry Pi"],type:"twitter_space",weight:10.239102840423584},{boost:0,date:1671735703,description:"What is Difficulty Adjustments?",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Pysh, Booth, BTC Ben & the Plebs! 🍻😂",guests:[{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"},{name:"Brian",profile_picture:"https://pbs.twimg.com/profile_images/1589300685182570500/cTffQlpJ_400x400.jpg",ref_id:"b167b1cd-bbce-4839-a03c-194f006f954d",twitter_handle:"BrianTheDrumer"},{name:"BTC Ben",profile_picture:"https://pbs.twimg.com/profile_images/1348015880664473610/S-uDNLlZ_400x400.jpg",ref_id:"2c95b3dd-e3a2-4cf0-a49e-a8915d2bfcd5",twitter_handle:"bensemchee"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"78672de6-3c5f-4d95-8fd9-f2b512fa7a04",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/dbc5dd26-2307-4f64-a377-105e2a277d9c/be3d47a7-2fcd-4de8-8f22-71851953d022.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"17d338d5-a11d-405f-bbc1-257b4e145723",show_title:"PUBLORD",text:"I tried something new out. I just put out the first little sort of educational thread from the time chain calendar account. It's the last one on the next at the top. It's only four posts really short. It's just a little explanation of the difficulty adjustment. I'm just floating it out there. I want to see if anybody appreciates that, if it's useful to anyone. I want to start basically sort of attempting to describe the most important aspects of bitcoin in these very small bitesized chunks that people can hopefully wrap their head around and then put those things together and have a better understanding of things like city showers. He might appreciate it. He might need to update his mental model of what the difficulty adjustment is. Difficulty adjustments means, for example, instead of just talking bitcoin, like, do something with a bitcoin. I'm just setting up my new hosting service in Europe, which is going to provide self custodonial virtual private servers with the preinstalled BTC pay server, whoever is interested to I'm still not going to announce the official link to the website because I'm working on It hosted service for self custody. So it means like no. Is that not an oxymoron? No, it's no KYC. Because me, as a hosting provider, I'm just dealing with infrastructure. I'm not holding the code. Yeah, but if you're providing the infrastructure, how is it well, that's really stupid of you to say that. If you were like an It guy, you would understand. That's funny. I'm speaking English. It is my native tongue. Try again. City show. Here's the thing, my man. Go ahead, hit the little mute button. I muted you for a second there. You can unmute yourself. Well, that's the thing about custody behavior. Like in these democratic spaces where everyone can vote their opinion, there is always our it's not democratic. We're having a party. We love to talk bitcoin, we love to meet new friends. Same thing. But the warm welcoming from the Pub Lord was like really unnecessary. Whoa. It wasn't Puppy. It was TC. Man, puppy has been quiet. This is TC. I like to mute people when it gets out of hand. Sometimes it's as simple as just something absurd has been said. I haven't said a word yet today, but what's up, Pubby? How are you doing? I'm doing good, man. We're off to another rousing start like we were yesterday. Yeah, goers. I really do want to know truthfully. Please. How is you hosting a service, self custody, for anyone? Because you own the root privileges to that server. So it means you are the only person who is in charge of that instance. So whatever happens with that instance is up to you. I'm not managing how do I know you don't have the root credentials? Well, it means like, if you're running a route and you can check out the ch root group, you can only see that you are the only user in that. Right, but if you set it up, how do I know you don't have the same credentials? I don't have the credentials because when you spin up the template of the OS, for example, Linux instance, or whatsoever, you are the only person who can access the server and manage it on the root level. Wait, so you're creating software that other people host themselves? No, the software has been already created by the community. Of course it's open source. You can check it out. Go on to Btcpaserver.org. I know. BTC pay server. I'm familiar with BTC pay server. Yeah, to promote a bitcoin and to teach people how they can manage their own funds. What part are you hosting? That's the only part I'm trying to understand. I'm just hosting the machine like CPU Ram and the storage space. That's it? Yeah. So how is it self custody? Well, self custody is because you're going to have a ledger wallet being connected with the BTC based server. So you're going to think, no, run away. Anybody that's in public, in the audience, listening, don't do that. That's a bad idea. Why not? Because you're trusting a third party, and that goes against the whole self custody thing that PC is trying to point out. Well, if you're going to host your own BTC based server on your computer, on your home network, if you think that's really smart from the security perspective, I'll go ahead, my friend. Once when you wake up with some Chinese IP address on your Zix or router because your telcos are not updating their boxes and you lose your so I have to trust you. No, you're trusting the tier three data center level of security and their architecture behind. Okay, so I have to trust someone, though. Well, are you not trusting, satoshi Nakamoto, that there is no American government, there are no private keys, like of the majority of the bitcoin network? Maybe the feds? Do you think they have the master key to shah 256? Do you really think that the banks have allowed bitcoin to exist and to convert? Bitcoin needs permission from the bank, okay? I mean, you can swap pictures of a hotel. The banks have to give permission, or the government has to give permission to bitcoin. Is bitcoin asking permission? Well, you can exchange and swap the pictures of hot ladies with your friends. No one forbids them. All right? This guy is not serious. Puppy. I don't know what to say. There it is again. Why is it two days in a row, man? They just come in from everywhere now. Wait, what about here's the advantage of toju you know what the funny thing is? You're treating bitcoin as I treat the IPV four layer, or IPV six, with SSL encryption only. It's a better way to encrypt it, and it's another layer on the network. You're just talking about the network infrastructure, and you make belief like value. Oh, we believe in God. We believe in bitcoin. Well, it's okay now. It's 16 grand bitcoin to the moon. 100,000, 1 million. It's a perceived value. I'm not against it. I'm just saying I'm dealing with bitcoin as a technology. You brought the server, man. Listen, what you're offering up is centralized, dude. I would rather centralize. You said yourself I have to trust the data center provider and their equipment and their good faith, and that is completely against the tenets of bitcoin. Don't you get it? Do we need to draw it up on a little board so you can get it? No. You can take your computer and you can put it in the living room. Or you can take your computer and put it in, like, your basement. Or you can take your computer and put it in your neighbor's house. Or you can take your computer and put it in a cloud or so you could just do either of those and just keep your fucking seat phrase in a place that no one's going to find. The stamped like titanium. And then that's your fucking bitcoin. You don't need to fucking put it anywhere else other than a place where you have it. I'm saying you can run a lightning note and you don't have to use the same bitcoin address to receive the funds, but still, you're going to have to allow the technology and instruments of trade to exist somewhere. I say only that's better if you have a root privileges on your own box. Are you new to bitcoin? Are you an It guy that just found out about Bitcoin, like, a year ago? Don't be ridiculous. Come on. Oh, so you're Satoshi's son. Okay, I get it. No, I'm a Commodore 64 guy and like, Cube Basic, literally before the 90s, so you can speak whatever you want to enter. A piece of shit. You sound like someone that gets very technically well versed, but it has no idea of bitcoin and how it works and the philosophy behind it. I know that only if you want to receive the bitcoin for your services. Downloadable digital products. I'm not saying about the physical goods because it's stupid. ",timestamp:"00:07:11-00:16:55",topics:["Difficulty Adjustments","bitcoin payment"],type:"twitter_space",weight:25.58466473425889},{boost:0,date:null,description:"Governments attack on Bitcoin and anonymity",episode_title:"Café ₿: #Bitcoin News & Trusted P2P Reviews w/ @Apollosats",guests:[{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:"@FossGregfoss",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"09913e9b-38dc-4465-9d4d-ae0c9ba9eeca",twitter_handle:"Fuckkkk"},{name:"@w_s_bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"b178b239-3b18-4a16-9d43-c5d15ba6f7f4",twitter_handle:"w_s_bitcoin"},{name:"@NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"4b6997e1-ce0b-4a1d-90e7-dbaccef4b783",twitter_handle:"NeilJacobs"},{name:"@brandon_gentile",profile_picture:"https://pbs.twimg.com/profile_images/1561369452284895236/-8WgdwEm_400x400.jpg",ref_id:"f940c5e8-4808-4197-a38f-3f19d311a7ad",twitter_handle:"brandon_gentile"},{name:"@apollosats",profile_picture:"https://pbs.twimg.com/profile_images/1576946734927794176/2ail9FoU_400x400.jpg",ref_id:"74f4280f-5fdb-4bbc-aee2-a2ed32d64372",twitter_handle:"apollosats"},{name:"@StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"6e652629-38ec-49d8-9f5c-3ba28f80c799",twitter_handle:"StackchainSig"},{name:"@TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"7af639f8-8c5c-4ce1-a43b-e8560ed40e2b",twitter_handle:"TomerStrolight"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7cf57bdb-c905-46e3-a7e5-4c0bfd4f8d04/71c08fae-cce8-4600-ab9e-758420e78dcf.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"75ac478b-3dfa-45a8-9fa0-cebaacccfc05",show_title:"Swan.com",text:"if you're from anywhere in the world, the same logic applies. It's starting in the EU. But don't be surprised when the same type of Draconian laws and the rules that they're trying to implement around Bitcoin spread around the rest of the world. Because the legacy system is losing, right? They've already lost. They just haven't realized it yet. And so once they start to realize it, we all want them to surrender and to adopt this new standard which will bring about peace and prosperity to the entire world. But it's very likely they won't, and they'll go down kicking and screaming, and when they do, they're going to try to claw back as much power as possible that they've lost. And in an attempt to do so, they're going to make it very difficult for you to acquire bitcoin, most likely. So it's kind of now or never. Like, you don't have much longer to build your stack and take it into self custody, at least not to do it easily. It's a exit. Lagarde talked about this, Madame Lazard, where she was like, there can be no exit, basically, because if there's an exit, they can escape or control the lizard people system. It just feels a lot like the Drowning Man, you know, grasping anything they can and that will end up being just keeps feeling like that. What cracks me about this is that a lot of this kind of stuff was basically in the yea zone two years ago. Like, all this was, like total conspiracy tinfoil hat shit. But as it turns out, it's all real. Those conspiracy theorist guys were right. You know, what happens over time is that overturn window shifts little by little. And the stuff that people used to say, wow, that's crazy. You know who says it's crazy? The lizard people. Because they want you to think that the people who are calling them out for their crazy are crazy. That's called gas lighting. Doesn't help when you keep calling them lizard people. But no, I totally agree. I do that on purpose because I know it triggers the fuck out of people, and I don't care. How does Europe get there in the first place? Just what platitudes over principles? First principles? I guess just in the last decade or two of energy policies. I mean, my gosh. Neil Jacobs, you've been very quiet this morning. You have anything? Thoughts? No. Stage camper. Hey, guys. He is there? No, I had to shut my door. I had to shut my door in my office. What's up? What's going on in your world, Neil? Nothing, just listening in, keeping up with all the bitcoin news. I find it really interesting that there was that Reuters story about prosecutors at the Justice Department saying that they have enough evidence to criminally charge Czech. Yeah. So you haven't seen this? I heard a rumor. I didn't see it. Tell us what you tell us. Well, basically, they've been investigating finance since 2018. So this isn't a new thing, just that they violated certain anti money laundering laws. And there's a lot of conspiracies, obviously, on Twitter of why it was leaked. Now, apparently the prosecutors at the Justice Department are kind of split on whether they should file criminal charges or not, and there's prosecutors who think there's plenty of evidence to do so. So maybe there's some disgruntled prosecutors who wanted to get the message out. And there's a Reuters story on it. I could find it and pin it. This is binance us only. Correct? I don't know if it goes back, it doesn't have to be by 2018? I don't think so, because I don't think Finance US existed in 2018. Yeah, that's just it. That's what a lot of people a lot of people may assume that for the US to have jurisdictional authority over an entity, it has to be a United States company. That's not true. As far as the US is concerned, us regulators have been doing this for a while. They basically said, if what you're doing interfaces with US citizens, we have jurisdiction. Right. Even if you're in another country. Now, again, the question becomes, well, how do you enforce extra jurisdictional authority? Well, the US figured out how to do it because they weaponized the US dollar to do it, and that's the reason they were able to get away with nonsense. So when other countries try to do it, can they do it? I don't know. That ultimately comes down to cooperation. Right? So if one country goes to another and says, hey, you have a guy we think is a criminal, hand him over, that's called an extradition agreement. They have to agree to do that where the US has just gotten so used to beating up the whole world with the US dollar stick, you don't comply, we're just going to turn off your US dollar payment rails and then you're screwed. So I pinned the Reuters article at the top if anyone wants to read it, find out a little more details. Yeah, it's fascinating. The question to me becomes, are they going to be able to find him? That's a good point. I just heard a lot of people saying, oh, they're thinking about charging him, why not SBF? It's like this investigation has been going on for four years, so you could say the timing is curious, for sure. I don't know if there's some conspiracy here. I don't know, man. I learned a long time ago, I used to second guess my suspicions. And then I learned from Jim Rickards, there's no such thing as a coincidence. At least that's what they're taught. Like intel officers respect the coincidence. Because if there's a coincidence, there's a chance there's something there. And then the other side of that is growing up in the hood, I suspect everything. Brandon knows what I'm talking about. It's not necessarily a bad thing. It's a crucible, baby. It's crucible 100%. If you put it in the crucible and you love on fire and you burn it and you purify it and it turns out it was bullshit, great. But if it turns out it was something, well, then, hey, sometimes people don't like it. When I talk about stuff that's getting into that yeastone window. I get taddled on. I feel a separate spaces eventually, alex is that what you're saying? No, it's not what I'm saying. Cory gives me pretty wide latitude. I mean, he mentions to me when I get tattled on, but he doesn't tell me to stop talking about what I'm talking about. You do a job threading the needle. Well, okay, so here's where I draw the line. I don't want to hurt Bitcoin and I don't want to hurt Swan. So if there's something that's potentially going to be damaging to bitcoin or Swan, I probably won't go there. But as you well know, there's lots of stuff that in that gray zone. Over the target, sir. See, that's what I'm saying. If it's over the target, then why not? To me, that's fair game. Because this is what I think. This is just my opinion. Some of you may think I'm crazy and not like this, and that's okay. I think the lizard people already look at it like they're at war. It's just we haven't figured that out yet, and they're not playing by the same rules. Until we accept that as reality, we're going to be on the back foot the entire time. Well, you're spot on in my opinion, because Greg touched on this earlier, right? It's we are what the 300 billion market cap. It's a rounding error, and we're that small subset of society. I rate transient minority that's feeling that way and understand that so few people get that. I think we get that. And then, like you said, the lizard people get that. But eventually, as we know, bitcoin changes you. And more and more people, as they come into the space, as we've all seen as bitcoins all changed us, they start thinking more like us. And it's the number responsibility go up technologies, as Vesky says. So people start coming into our thinking and into exactly what you're saying. Alex well, it's not really even our thinking, I don't think being responsible is like a tribal thing. It's just good for humanity, full stop. There's nothing wrong with that. Correct? Rob Salt. And good morning. I suppose you have something to add to this. Yeah, what I was wondering is the conversation seems to constantly get brought up of how anonymous are we on bitcoin and they're going to be coming after it and this and that, and I just think to myself, how many options are there to be anonymous on bitcoin? Is that really even a thing? Because last time I checked this ledger system, it's both a big net positive and a huge net negative as well. So the ledger system, it's almost like the perfect way to be having money of the future that is governed money. It's like being sovereign. It's not going to be the first ten years of adoption in bitcoin. Seems being sovereign is going to be about 50 years down the line when we're in a hyper bikinize world. If that does happen, a game theory out in my mind, it's almost going to be used against bitcoiners, it seems like, in the very beginning. And I think they're starting to realize that that this ledger. So it's like the best thing, if you want to really onboard bitcoin and you want bitcoin to get adopted, the best thing you can do is get rich in a legal way. I'm just being dead point blank serious about it. There's so much I hate, man. I got my .2 bitcoin in cold storage and I got it non KYC. It's like, no, the best way to get this to adopt is to become a multimillionaire, get rich and do it in a legal way and pay your taxes on it, be smart about it. There's ways to build corporations, there's ways to do things in a smart and efficient way, but more bitcoinners need to get filthy fucking rich. And I hate to be like the guy, the bearer of bad news, but that just is what needs to happen for it to get adopted, it seems like. Because this whole non KYC stuff, I don't think it's going to cut it. I think it's going to get used against them. So I don't know, it's kind of what my it might. Sure it might. But the question becomes, how enforceable is it? That's really the argument. I don't think there's a question that there are tools you can use for privacy in bitcoin. It's so what rob said, like, will the privacy be used against people? I don't know. The exchanges that we bought our bitcoin from, I know there's going to be some select few that were in very early from mining and things like that. But for the majority of the exchanges you bought the bitcoin from whether it's cash app, whether it's swan, whether it's coinbase, wherever it's from, if they come to your exchange and they say, hey, we are now legally requiring and they probably already have done this. Someone can correct me if I'm wrong and say we need their Social Security number of every single person that has bought Bitcoin from your exchange. Yeah, sure, Rob, but I mean, that's the beginning of a pathway that potentially leads into the mist and disappears. Like, you're right, KYC exchanges. And you know what? The exchanges have been warned for a long time that eventually they're going to have to give up their customer lists. Right? But when I'm talking about privacy tools in Bitcoin, what I'm saying is there are ways to break all of those links and the question then becomes, if you choose to break those links, what then happens on the other side of that? We could go ahead and then we'll go TC yeah, so a couple of points here I agree with Rob. Like, I think, first of all, if you're trying to come in into Bitcoin in size, non KYC is not an option. I mean, go try and buy a million dollars with a Bitcoin. Non KYC ain't going to happen. And even if you're able to find a buyer, a peer to peer or seller, rather peer to peer seller, you're still trying to leave the legacy system with a million dollars. You don't think they're going to fucking know when you take that million dollars out of the system and then transfer it. That's just crazy talk. And then number two, in terms of privacy, this is something I used to be pretty worried about, but I'm honestly not worried about it at all anymore. I'm very bullish on Fedramps. We have yet to see if they actually play out and work the way that we're being told they're going to work. But if they do, we're talking about fucking perfect privacy. We're talking about us setting up the Cafe Fediment, which we obviously will do, right? I mean, Alex will be a guardian, aunt's going to be a guardian, so we're going to have trusted second parties. These are people that we know we've met in person because we went to Pacific Bitcoin. They're trusted second parties. Guardian setting up a guardian system, multistic system, protecting all of our Bitcoin. And then guess what we can do inside of that mint. We can fucking transact with each other with perfect privacy and nobody can see when we pass SATS back and forth, which, by the way, will be instant and free because you know how we do on Cafe Bitcoin. I'm not worried about the privacy aspect of it at all. I think the tools are going to be coming soon and I'm hopeful that they're going to work as advertised. And anyone who's going to try to track what we're doing are going to find themselves kind of at a loss once these tools come online and we have these second layers that allow us to basically fucking put the big old middle finger up to one. We got about four minutes to finish up on this topic and they're going to be introducing a featured guest here. So let's TC, what are you thinking? Okay, I'll just keep it to the one point. I was going to make two points, but my point is really, I disagree wholeheartedly with what Rob is saying. The public nature of the bitcoin blockchain is an absolute feature and it's not a bug and it's not a problem. Part of the reason that this system actually works for a new global monetary system is the fact that anybody can audit it. The fact that if I do a transaction with you and we don't know each other and you're on the other side of the planet, you have just as much visibility over that as I do. These are absolutely essential, non negotiable features of bitcoin. And that being said, you have to keep in mind, too, that there's a real distinction between the information that's outside of bitcoin and the information that's actually inside bitcoin. There's no names or addresses or phone numbers or email addresses or photos of your face on the bitcoin network. You have to keep in mind that there's a really clear distinction between what's on chain and what's outside of that. And then the last thing I'll say is that just even if somebody knows what you have or what transactions you make, there's a big leap between that and what any potential consequences might be, both from the point of view of laws and regulations and anything you may or may not have done wrong. And then exactly what Alex said, which is the enforceability of all of this. So I think, Rob, you did a great job scaring a bunch of people. I wanted to kind of counter that and remind people that this is not a problem or a bug or something broken. Just to be clear, I said people need to get wealthy in a legal way so they can legally own large amounts of people need to take their money that they earn and they need to save it in the right format so that it actually is theirs and it actually has some purchasing power in the future. This is not about everybody needs to be a millionaire right now. That's not the right message. Yeah, I would like more bitcoinner to be millions. I definitely stand by exactly with what I said. More bitcoinners do need to be millionaires. That'd be a great thing. More bitcoinners do need to own businesses in a legal way. That'd be a great thing. Less bitcoiners need to be sitting there with non KYC bitcoin and being excited about it. Even if bitcoin goes to 10 million, a lot of bitcoinners still won't be rich. And they'll think they're rich in their mind because they have 0.1 bitcoin non KYC fiat. This is such a Fiat mindframe. This is garbage, dude. Where are you talking about? Decent? Okay, let me say it in a nicer way. What are you saying to a person that works hard? Maybe they have two jobs and they're just paying their bills and they're just getting by and they are diligently stacking SATS and saving, and you come to them and say they need to be a millionaire. What does that do for them? What's the actual point there? Okay, you guys are talking past each other. You're both right. Relax. I understand both of your points of view. I get it. There's a place for both of you in the world. You're both correct. Let's leave it at that. There's no point in we don't have time to cage match. Like, if we had another 20 minutes in the show, I'd be like, Go for it. But we need to move on here. We could go yeah, I'm just going to wrap a bow on this. We're all going to be Fiat Millionaires at some point in the future. It's not a matter of if, but when. Right? But the thing is, that million dollars is going to buy you a fucking gallon of milk because it won't matter anymore. You've all seen that cartoon where it's, like, showing the different stages, like, decade over decade of bitcoin, and it's like Fiat Millionaire on the left and then bitcoin on the right. And as each decade progresses, the millionaire gets poorer and poorer until the end, when they're living in a beat down house with broken windows and shit. And then that bitcoin on the right is living in the castle at the end. I mean, that's basically where we're headed. Fiat on the left and bitcoin on the right. With Fiat, a million dollars is constantly getting devalued, debased, and eventually will be worth fucking nothing. So I'm going to be millionaires eventually, I won't get a million bucks and instantly turn it into bitcoin today. Yeah, exactly. I love that. Meme, like, at the end of it, it's like I heard he's a bitcoiner there's another one with a bubble. It's a bubble. It's a bubble. It's a bubble. And in the end, he's like living in a dome with a whole beautiful existence inside. It's a bubble. Yes, it is a bubble. ",timestamp:"01:26:29-01:46:21",topics:["Anonymity"],type:"twitter_space",weight:10.214787483215332},{boost:0,date:1671644776,description:"Thoughts on how Bitcoin may evolve over the coming years and would have a high price",episode_title:"#Bitcoin Creators Space",guests:[{name:"@DecouvreBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1362747604044566530/Invedmre_400x400.jpg",ref_id:"0eda190b-4373-41fc-bc28-c3b95af30949",twitter_handle:"DecouvreBitcoin"},{name:"@Bridge2Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1533812215198924800/vAAlVRxO_400x400.jpg",ref_id:"1aaf2c24-8d26-4038-b55a-8b94427b20c7",twitter_handle:"Bridge2Bitcoin"},{name:"@orangepillapp",profile_picture:"https://pbs.twimg.com/profile_images/1570918965601505282/SOApRCif_400x400.jpg",ref_id:"ba5b79b4-e2e7-4778-8879-df793b8420a4",twitter_handle:"orangepillapp"},{name:"@knutsvanholm",profile_picture:"https://pbs.twimg.com/profile_images/1586261395833774081/RQ8SYxiM_400x400.jpg",ref_id:"e12ebe66-706b-40d2-804a-861a4c79bbfa",twitter_handle:"knutsvanholm"},{name:"@bcvFoundation",profile_picture:"https://pbs.twimg.com/profile_images/1460813196902633476/edbNgO7y_400x400.jpg",ref_id:"d65bc3c3-cdd7-4539-8cb9-6a8d86f580c8",twitter_handle:"bcvFoundation"},{name:"Christopher",profile_picture:"https://pbs.twimg.com/profile_images/1345072452775370754/cBVFzpkV_400x400.jpg",ref_id:"7dacb545-925d-4201-9b9c-869d992dcdb3",twitter_handle:"Chrissuccess"}],hosts:[{name:"@steliosats",profile_picture:"https://pbs.twimg.com/profile_images/1495784740921786371/a73Qu4HR_400x400.jpg",ref_id:"7eed8e35-f762-4882-adf9-b45ad16c3c54",twitter_handle:"steliosats"},{name:"@geyserfund",profile_picture:"https://pbs.twimg.com/profile_images/1554429112978120706/yr1hXl6R_400x400.jpg",ref_id:"02a48cf4-58d0-4014-803c-9120dedeec52",twitter_handle:"geyserfund"},{name:"UKNOWN",profile_picture:"https://pbs.twimg.com/profile_images/930811252665933826/2cVZF58S_400x400.jpg",ref_id:"bcd18bb0-8224-4f6b-af71-e16120ae4323",twitter_handle:"NodedPodcast"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/885fe09b-bb21-49a5-8667-3c73ed36918f/196dc1e8-c7a4-4dc7-902f-d00107aefb42.mp3",node_type:"clip",pub_key:"0372cd0c8469f2034336a243e018d4d60e07efef8e7d10417807da1173bd5b002f",ref_id:"ee9d0400-3d38-46f6-9741-f99864e86ed4",show_title:"Geyser 🌊",text:"is Christopher from bridge to bitcoin. Hi guys. How is everyone this evening? Good to be here. Great to join you guys in your space. So thanks for setting this up. Mick, apologies for joining late. So apologies if I go over ground that you've already talked about out. Oh, no, don't worry. Sorry for tagging you last minute. No worries. Thanks for tagging. It's been great to speak with Connet. And also I just want to bring it back. Well, actually, I'll start off by saying congratulations on getting 30 projects listed this week on Geyser. That's fantastic. That's really great. And just to resonate with what Connett was saying in terms of things get built in a bear market, I think it's fantastic. And you guys are really promoting it. So thank you for everything that you and the Geyser team are doing, helping people, or Bitcoin is build in this bear market. Because for me, for the rest of the team, it's really important that we build foundations now so we're ready as the ball comes out. It's fantastic to see. So for those who don't know about bridge, for those who don't know about bridge to bitcoin, we onboard merchants to accept bitcoin payments. And we received a grant from Geyser early this year. I'm ashamed to say we haven't yet, and it's been on our to do list for weeks, months, to put up a project, a crowdfunding project on Geyser. And we should really do that soon. But, yeah, we'll get that. It's definitely on our to do list. So we hope to do that soon, especially now, as you say, Nick, the ease of putting up a lightning address. And that makes it so easy, as Joe Nakamoto tweeted about earlier this week. So we shall definitely get on to that. But I just want to go back on what I heard Mateo from Orange Pellet talking about, because he dropped off the call now. I think he has. That's a shame. But I really resonate with what he was saying in terms of how. For. Us, onboarding merchants is one of the cornerstones of Bitcoin success, certainly from my perspective, and making the user interface really easy is really important. I sort of resonate with what Mate was saying in that I think most people are currently not fussed about decentralization, they're not fussed about privacy. We as Bitcoin as are, we get it, we've been down the rabbit hole. But most of the society, they want convenience, they want ease. And that's unfortunately why I think CBDCs are going to hit hard, because people won't do their homework, they won't do their research, people are going to welcome it with open arms, unfortunately. So for me, merchant adoption is really important and introducing that in a way that's really easy. So the way we do that for Bridget to Bitcoin, ironically, it's not Bitcoin that we're selling merchants. For us, it's about creating additional revenue for them by saying, oh, hi, guys. Hi, merchants. What we're going to do is we're going to create a new customer base for you called Bitcoinners, and they're going to come and spend their currency for at your shop service and it's going to create additional revenue. And so for me, it's a slow orange bill, because what happens is a lot of these merchants get bitcoin is coming and using their services or buying their products, and we as Bitcoin as we're fantastic customers. We're so enthusiastic. We travel miles, we buy stuff from all over the globe, we get it shipped over, because you as a Bitcoin business, we want to support you. But if you're new to Bitcoin as a merchant, you kind of get overwhelmed quite quickly with how much attention you get by accepting Bitcoin. And it's great, because what that happens, and what we've evidently seen is that those new merchants suddenly get this influx of bitcoiners and it leads them down the rabbit hole without us having to do anything. Because bitcoin is they make an impression because we're such happy people, especially in these economic times where everyone's feeling the pinch, we will go that extra mile, literally, to spend our bitcoin, to spend our SATS, and replace them. And we're happy about it. We're more than happy, we're enthusiastic. We're the best customers you could ever have. That's amazing. For me, it's kind of a cornerstone of how we can it's sort of a Trojan horse. Trojan horse orange pill. So we're going around to regular businesses so who don't even know about bitcoin, and that's what we're planning on next year. We're going to trade shows. We're just to speak to regular people. We've got no idea about bitcoin, and we're going to talk to them about this fantastic payment processing network called the lightning network. And bitcoin normally is quite late on in the conversation, actually, because as everyone, I think, on the call knows, the processing fees on the lightning network are next to zero. They're really cheap compared to what our fiat counterparts are charging. Plus we've got instant settlement, all those fantastic things. So we talk about it's really interesting. We talk about the payment rails. That lightning network is a payment rail and how better than it and eventually we get to the bitcoin piece. But, yeah, for me, it's about making their businesses more profitable, having additional revenue, and it's fantastic because you literally see them fall down the rabbit hole. So we had that recently with a small chain of pubs, just two pubs that we onboarded last month, I think it was last month or the month before. So this landlord, he owned two pubs and he was not a bitcoiner, and he was not interested in bitcoin. But when James, my partner, said, right, we can bring extra customers to your pub, they're called bitcoin as, and they will spend their currency, but it will create additional revenue, he was like, fine, okay, I'm not interested in bitcoin, but I am interested in additional revenue. So if they're going to come and spend their currency and I can give it to my local currency, great, because it's good for my business, I said, fantastic. Do you set them up with the bdcpa server or what is it that you guys do? We look at the plethora of solutions that are currently in the market, depending on how that particular business is structured. Depends on which solution we sign, post them towards. Generally, the smaller the business, the more options they have. As the business gets bigger and more complicated, it sort of narrows it down quite quickly. So as a one man band, as a mum and pop shop, with just maybe one or two employees, you could literally just have a wallet satoshi, especially if you're just a guy who runs a food truck, all you need is a wallet. Satoshi really, isn't it? Just sat that on your phone because it's you. But as the business gets bigger, it gets more complicated, because you might be looking at multiple employees, multistate. You might have a board of directors who want to have multistake and so on. Yeah, I was also thinking for, like, exchanging back from Landing to Fiat, how would you guys recommend they do that? So in the UK and Europe, you can use a service called Coin Corner, and we'll help you get set up with that. Outside of Europe, we're speaking to IBEX, so we love the IBEX team. IBEX are looking at coming over to Europe, so fingers crossed that hopefully they'll have that flipping service, as I call it, hopefully in 2023 at some point. So I think that we'll see more of this, because for us, what our push is, especially when we're going to the likes of Coin Corner and IBACs, what we're saying is it's really important for merchants at the moment, in these early days, that there is this ability for new businesses to flip into their local currency. But having said that, coming back to my story about the pub for this landlord, not interested in Bitcoin at all, and we said, that's fine from my perspective, I don't mind that because they're adding to the liquidity of the lightning network and the liquidity of Bitcoin because they're a new merchant. That's absolutely fine. That's great. Another business that gets bitcoin. That's fantastic. So we set him up in his first pub, put in place his point of sale devices, made sure his admin console was all set up and everything was fine. And then two weeks later, we went to his second pub. And bear in mind, we hadn't spoken to this landlord during those two weeks. So we set him up in his first pub so that all his transactions, all his sales that he was receiving, flipped instantly into the local currency. So he wasn't holding Bitcoin on his books or balance sheet. Not interested in bitcoin. Two weeks later, we go to his second pub to do the same again, put in place the hardware devices, set up his console, make sure he's happy with anything. He came up to us completely unprompted, and he said to myself and my colleague James, he said, Kristen James, at this pub, I'd like to hold the Bitcoin. I don't want to flip it into the local currency. And we said nothing. Bear in mind, two weeks beforehand, not interested in Bitcoin and just wanted Fiat currency. We said nothing to him in those two weeks. For me, that's a really good example of how Bitcoin is coming into the past have set him off on that rabbit hole journey. And for whatever reason, Bitcoin is coming in, as I say, being enthusiastic. He's obviously either spoken to Bitcoinrs or he's read up and he's realized that there's value. And that's why I say it's a really soft orange pill and it's really valuable because we're not having to orange pill individuals. It's almost an organic process and it's quite controversial, but I think that the way we orange pill individuals is wrong in so much. It's really resource heavy and it's quite cultish, isn't it? We come across as cultish very quickly. We meet new coiners or complete newbies, but this merchant adoption is a really soft orange pill Trojan horse. And that's why I say when we speak to the likes of IBEX, what we say is having that ability to flip, to offer that service, is really important to get our foot into the door for merchants currently. And then what we're finding is merchants are going, actually, I get bitcoin now, now I want some bitcoin. And so it's really interesting, I was just leaping that back to what Mate was saying in terms of how we need to make the interface easy and effectively smooth and almost non threatening, because the services we provide run alongside the current systems that merchants have. So at the moment, we're not replacing anything. So we come in and go, this is a bolt on for your service, for your product, for your shop. We literally bolt it on and it provides you additional revenue. And the same for Ecommerce, it's a plug in that just bolts on, you don't have to change anything, swap anything out, it's just an additional service that you can have to create additional revenue for your business. So, yeah, completely agree with Mateo. If we need to get the UX and the UI really smooth, make it really non threatening, really simple. So, yeah, I'd love for more projects to help with that, that would be fantastic. And then hopefully what we're seeing is they fall deeper and deeper down the rabbit hole really quickly and they turn into bitcoin really quickly. But. Yeah. Thanks, Mick. Thanks for everything that guys are doing. I'm loving oh my God, thank you, Chris. I'm loving the building that's going on. And we've also launched another business, actually, me and the team, and we take on a couple of other people and we're probably going to put this on Geyser as well. But we've launched and you've seen that, we've given you a cardmaker, laser Eyes cards. So if anyone on the basis is listening, check out Laserrise cards, send Twitter handle. They're essentially Bolt cards, but they're completely blank in terms of the electronics in them. And you can do what you like with them, so you can link them to your own node and your own wallet, or you can use a custodial service like Coin Corner, but there are risks, of course, because they're an exchange and so on. Get money off exchanges, yada, yada, yada. I won't go on about that. But you can do what you like with them. But the unique selling point is that you can have whatever images you like on your cards. And we've got a gallery on our website and they're called laser eyes cards because we put places on them. And the idea is when you tap on to make your payment, so they contact us, pick on debit cards, NFC cards. When you tap on the point of sale device, your eyes turn to laser. So we literally give you laser eyes. So we hope to be adding that to your crowdfunding project platform on guys as soon because we have a couple more products in the pipeline and we. Think, yeah, ",timestamp:"00:51:49-01:04:53",topics:["Bitcoin evolution"],type:"twitter_space",weight:24.426984779829223},{boost:0,date:1665946635,description:"Hodl, Ben and Evan's review of TABConf",episode_title:"TABConf Mixtape Vol 2: Sound Bites from TABConf",guests:[{name:"Michael",profile_picture:"https://pbs.twimg.com/profile_images/1558687629599657990/vf-bU14b_400x400.jpg",ref_id:"c7b4faa1-db77-4459-b03f-0e41e15efae7",twitter_handle:"MichaelHawaii"},{name:"Ben",profile_picture:"https://pbs.twimg.com/profile_images/1580596905721171969/0NnLeJWA_400x400.jpg",ref_id:"da0132b9-0d19-43e6-bc1a-9c7818c79ba4",twitter_handle:"benshapiro"},{name:"brandon",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"8a27da7a-c05c-44da-8247-3c5f68bc3164",twitter_handle:"ThrillerBitcoin"},{name:"shane",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"2e5ce678-7d04-4a48-8bd1-281329ea9424",twitter_handle:"ThrillerBitcoin"},{name:"exfrog",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"d0dc102c-404e-4753-9290-9a3fe27fe2ee",twitter_handle:"ThrillerBitcoin"},{name:"josh",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"34eb29e3-da86-485f-b20a-059f7d41f6ad",twitter_handle:"ThrillerBitcoin"},{name:"autumn",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"3224f2ec-3e77-485f-88b8-6930e19f8ac6",twitter_handle:"ThrillerBitcoin"},{name:"buck",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"00a55ec0-9b1a-482a-893a-345d350a33a0",twitter_handle:"ThrillerBitcoin"},{name:"stephen",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"9dc56711-eacc-4691-821e-fe2a26855ea9",twitter_handle:"ThrillerBitcoin"},{name:"hodl",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"b012eda0-b78c-46e7-ab46-6a7139584fc7",twitter_handle:"ThrillerBitcoin"},{name:"evan",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"9a8418e9-8976-425c-95ce-ed2fe307e380",twitter_handle:"ThrillerBitcoin"},{name:"muzz",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"444b8330-caa1-4bcf-8144-7d9110ae2242",twitter_handle:"ThrillerBitcoin"},{name:"thomas",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"e2140e58-314d-4425-bc97-20f52f951866",twitter_handle:"ThrillerBitcoin"},{name:"justin",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"2ce04090-b9b1-4e84-a87f-9c9dc9ececec",twitter_handle:"ThrillerBitcoin"},{name:"stakamoto",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"8b249d9b-8521-4e0e-bf24-2d8b8721d26b",twitter_handle:"ThrillerBitcoin"}],hosts:[{name:"ThrillerX",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"231d171e-06a4-4294-9cf2-6640e27429ea",twitter_handle:"ThrillerBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4240c90e-0086-4ece-bfe5-84a282c5059e.jpg",keyword:!0,link:"https://2.gum.fm/op3.dev/e/pdst.fm/e/dts.podtrac.com/redirect.mp3/media.transistor.fm/82539eb6/c2b4aa1b.mp3",node_type:"clip",pub_key:"",ref_id:"821f7b5c-c6ad-422b-b4e1-ed34f915e4af",show_title:"Thriller Bitcoin",text:"a lot of fun. I very much appreciate you. Anything cool that you've seen here, like as far as the talks, because you're a bitcoin or, you know, all these things, what do you think has been like the most, most memorable thing that you've seen? Well, I mean, that's one of the unfortunate things is because I'm responsible for all five rooms, I only ever get to spend like moments making sure that the room is good before I have to go to the next room. So I got to see a bunch of like a little bit of a bunch of talks that I really wish I could have sat there and engaged in. The coolest thing I've seen so far was probably Andrew Polestra's codex thing, like making a paper computer at the end of yesterday's event in the Socratic village. It's a really neat, complicated thing. There were, like, 20 to 30 people in there with scissors, cutting out these things, putting them together that help you code and decode without a computer. It was really neat and very engaging, and it was like I don't often see events have engaging workshops that actually are well attended, like people who will sit down and focus and learn a thing for 3 hours. That's kind of what sets Tabcomp apart from every other conference I've done is people are actually here to do the thing, not just watch someone talk and then watch someone else talk. Yeah. Do you think there's room for both at the conferences? I think there very much is, and I think that's one of the things that this year at Tabcomp was kind of missing compared to last year is there's no real beginner track if you're not ready to dive into command line stuff. There's not really a whole lot, but the next gen village is doing a good job of getting, like, the younger kids involved and having content for that. I think we have too many conferences that project to the lowest common denominator that have the same speakers come giving kind of the same talks to the same audience a lot. And events like Tabcomp and BTC Plus are kind of not that they're really more about learning and doing and doing it in an environment of your peers and friends. Yeah, that's cool. Thanks for coming on the pod, man. Appreciate it. I appreciate everything you do, by the way. You too. I really love hanging out with you, man. Paul, do you want to be on my podcast? Sure. 40. What do you like about tapcom this year? It's just like last year, but more Tabcomp is, like, getting, like, a semester of Bitcoin education. Four days? Yeah. In four days. Does it feel like every day has gotten better? I feel like every day has gotten relatively better than the day past. It's almost like it's like steps. Yeah, I didn't know about that. I run out of room in my brain, so at some point I'm stopped learning. But, yeah, I've gone to so many good talks and learn so much from so many different angles. There's a really interesting theme this year about how lightning is totally broken. Really? Okay, tell me more. Macarola did a talk on lightning is broken, but we can fix it. And there's a lot of terrible news about problems with lightning. And there are things that these are problems that have been pretty well known that we basically need to work on and improve to make, basically, lightning. Right now, you basically want to trust your channel partner. There are things that your channel partner can do to make your life miserable. There's attacks that we know about that just don't happen a lot. Because it's a small community. But as we become like a big deal, either we're basically only going to have to make channel relationships, business relationships and just formalize that kind of way, or we're going to find more cipher punk ways to do this in kind of a bitcoin ethos because we'd like to be able to open up anonymous channels but it's just a little bit dangerous. So it's kind of this long to do list and it really kind of depends on who you talk to after that talk of how bummed they are versus how kind of exciting. You're kind of bumming me out right now. It's like it's sounding like it's a major thing, but if you think about it from an engineer perspective, right, any engineer, you start out a project, you have 100% problems, nothing works, right? And then you start fixing one problem at a time and you make it a little bit better. And maybe at some point you're 75%, you ship it, and then you keep on fixing problems and maybe new problems you didn't know about come up. You try to fix those. So from an engineering perspective, these are all things that we believe we can find, we hope we can find good solutions for. And everybody I talk to that is working on it is excited to work on these problems and wants to think deeply about them. So it's kind of an exciting talk to like, hey, let's not let's not hide. Let's not pretend like everything's perfect right now. Let's engage with the issues that we have. Like, lightning works really great right now for for what we're doing. It could just it could be a lot better, and we need to be aware of how it could be better and not just pretend that it's perfect right now. Yeah. What's the most memorable thing you've seen? Is it Ben Carmen? I love seeing Ben Carmen. I think Ben Carmen is the most memorable thing I've seen. This is such a beautiful site. I'm actually excited he's going to do, like, live coding. Oh, really? You're going to watch it? Yeah, I've hung out with him a million times, but I've never actually sat there and watched him code before. So he's going to be coding in like an hour. So I'm going to watch that. I actually got to watch Epic Coludus live. Yeah. That was awesome, right? Dude, everybody keeps bringing this up and this recording. Yeah, actually. I didn't know I would like it that much, but something happened to me, like in the middle of yesterday where I was like, maybe my head was starting to fill up with ideas. I was like, I want to sit down and start building something, I think something I'm going to try to talk to the organizers about. There's a lot of after parties. The last talk happens at 05:00 p.m.. People go to dinner. Then there's an after party, then there's another after party, but I'd like to have a quiet room to go after the last talk and just people are there with laptops building stuff because I don't like the idea that I'm still, like, two days away from having my laptop open and really coded. Speaking of Evan, I've been recording everybody for this mix tape that I'm doing, and everybody keeps saying your thing is, like, the most memorable thing here. What do you have to say about that? Well, first, I'm flattered, but I think there's much more epic things I've seen. I got a demo of Stratum V Two that's going to be super impactful, super important for decentralizing mining. So I think that's near the top of the list for me. Also really cool to see tony, Giorgio's, Ellen, spoit. Ellen. Ellen spoit has so much potential. The workshop was awesome. I was able to execute that attack that we saw last week on LNG nodes 15.1 and under. That was pretty awesome to compare. Yeah. Tony walked us through, like, hands on. We could do it on our own laptops. We set up a virtual lightning network, and we would steal funds from one of the nodes on that lightning network. Dude, that was sick. Do you see how many nervous people I saw some BCS in the room. They look nervous. Oh, yeah. I mean, listen, the thing is, we need to be doing these things now. Stuff like the Ellen Depog. We need to get that out of the way now before it becomes, like, a headline on New York Times, Financial Times next time that happens. Right. And, yeah, we need tools like L and Spoid to, like, you know, see how things hold up and find where things break. So I'm looking forward to more exploits being released. I think it's an excellent foundation, and I hope more people try to break Ln and contribute to Ellen spoiled. Do you think Ben's going to break Ln? I'm not breaking. Or is it going to help? I'm helping lightning, making lightning more private. Carmen, how's your tab comp? It's been great. Best tab comp ever. Better than last year, I think. So we got more people here. Workshops have been really good. Talks have been really good. More of my friends are here. You're here. Thank you, Ben. Yeah, it's been really good. I've had a lot of fun. It's got out of the attacking lightning panel. That was phenomenal. So Paul was saying yeah, it was really good. Probably going to have to turn off my lightning note eventually. This is terrifying. Really? Not really, but how do we fix it? Just talk about it? Well, talking doesn't actually do anything. We have to write code. But a lot of it's, like, research as well. It's like, we just know there's problems and we have ideas of solutions, but not like, oh, this is a real fix. It's like, oh, this is an approximation of a fix. So we're just still a lot of research to do by always smart people, hopefully to figure out better mitigations and solutions to these problems. But I'm not going to be able to do it. But smarter people than me are working on it, thankfully. Thank you guys for coming on the pod. I appreciate you all. ",timestamp:"00:50:17-01:00:04",topics:["TABConf","Bitcoin community"],type:"podcast",weight:9.932519761232543},{boost:0,date:null,description:"Introducing the Start9 sovereign computing model",episode_title:"Café ₿: Sovereign Computing w/ Matt & Aiden, Start9",guests:[{name:"Andrew",profile_picture:"https://pbs.twimg.com/profile_images/1465763053014859786/xYFN2czJ_400x400.jpg",ref_id:"ae4b13f8-0ee7-480a-b47a-82b967ad7a79",twitter_handle:"AP_ArchPublic"},{name:"Matt Hill",profile_picture:"https://pbs.twimg.com/profile_images/1347317316057321474/ieMjzK3x_400x400.jpg",ref_id:"3576ad28-a04d-4388-865b-3ec5114c4f9f",twitter_handle:"_MattHill_"},{name:"Lauren",profile_picture:"https://pbs.twimg.com/profile_images/1586022214901501952/U1dRyCxP_400x400.jpg",ref_id:"7f14bbf5-a60b-496b-a361-3663cf120299",twitter_handle:"LaurenJauregui"},{name:"Aiden McClelland",profile_picture:"https://pbs.twimg.com/profile_images/1470160097225498624/0BjKB_2W_400x400.jpg",ref_id:"04ddd9d4-9329-4e6c-aaa3-d65ea4a9342a",twitter_handle:"_dr_bonez"},{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Lisa",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"e6f0c6e3-3237-4b13-878f-bb740cd32f8d",twitter_handle:"lisa_hough_"},{name:"Isabelle",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"c8df253f-47b3-465e-878e-8405c01c090d",twitter_handle:"isabelfoxenduke"},{name:"Tone",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"5729ac07-51d6-4268-b585-62680c846acb",twitter_handle:"ToneVays"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"},{name:"Derek",profile_picture:"https://pbs.twimg.com/profile_images/1598322677827207169/Cw0A3oOP_400x400.jpg",ref_id:"f441b996-7eeb-4210-b24c-fa011161709d",twitter_handle:"derekmross"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ec4a941-250c-4e1d-8d2a-6c506c3ba4b2/4bd8010d-b2fd-41b4-8041-8a953ef06492.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"700e8ab8-7cc3-476c-87ea-524081f2322c",show_title:"Swan.com",text:"right, Matt. Well, thanks for joining us. Very excited to be talking to you guys about what you're doing. I know there's a bunch of swans who have ordered stuff from you guys, and it's pretty fascinating. So for those people who don't know what Star Nine is, if you don't mind, would you give, like, a five minute summary on what start Nine is, what are you guys doing? Why are you doing it? And then we'll start opening it up to whatever it is you guys are working on, and then we can do some Q and A, if you like. Yeah, sounds good. So we are, in the broadest sense, a computer company. And our goal as a company is to make self hosting software, open source software, accessible to everyone. And that might sound really boring right out of the gate, right? But when you understand what that means, and you understand that in the current model of computing, that basically your cell phone and your laptop, all these things that you call computers or devices, are really functioning as remote controls that are operating somebody else's computer somewhere else. And oftentimes the computer that you're operating most of the time, in fact, is owned and controlled by one of the Big Ten tech giants. Other times, it is just a small cloud computer that is hosted by the app that you happen to be using in that moment. So, for example, there might be a Notetaking app on your phone that is plugging into a server somewhere that is owned by two founders in a room running that server. And so every piece of information that you write in that Notepad, every time you use it, those signals are flowing through their servers. All the data is stored on their servers. And this scales all the way up to whenever you use Twitter, for instance, or Facebook or Google. Every piece of information is flowing through their servers. So all your communications are intermediated. You are never talking to somebody directly. You are always talking to somebody through a messenger. And that messenger very often has full access to everything you're saying, when you're saying it, et cetera. And secondly, all the data that is produced in those interactions, whether it's you storing a photo or you sending a message to somebody, all that data is likewise stored forever on those third party servers. And sort of how it's always been. When I say always, I mean since the second computing revolution, the cloud computing revolution took off about 20 years ago, give or take. This is just how it is and we've gotten very used to it and it's been very convenient of course has led to many conveniences and superpowers that people have to get more done in a day. But I forget who says this definitely Lornal Arcos in Red Rising but I'm sure somebody in the real world has said it as well. The bill comes due at the end of the meal so the bill is coming due. This wasn't free. It comes at enormous unforeseen costs that are just now starting to be felt and will continue to rise. And so we recognize this as a company, as individuals and we set out to kind of do something about it. And our solution to this is the solution to this which is a disintermediated computing paradigm where human beings and their computers are interacting with each other and those computers are interacting with other computers without the involvement of trusted central third parties. That doesn't mean it's PeerToPeer. It just means federation is okay too. Meaning I can run a server and people who trust me, who are close to me in my life can use my server to interact with each other. It's okay to trust people that you know and who have earned it. So we envision a computing paradigm where people are either communicating PeerToPeer or at least utilizing the servers of people that they trust. You know, members of families, the organization that you belong to, whatever it is. And in order to make that possible, for that computing paradigm to be possible at all it requires people to run their own servers. And I don't mean a server sitting in a bunker somewhere that you don't control. I mean a physical server that you have physical access to. It requires that. And secondly it requires you to be able to use that server. So it's not enough to just buy a Raspberry Pi and install Linux. The vast majority of people in the world are incapable or at least don't have the time and energy and patience to use that thing properly and in perpetuity. These things require enormous amounts of technical acumen. They require time, they require ongoing maintenance forever. It's not a set up and forget type of thing. And so what we have set out to do is provide the tools, namely in the form of an operating system that enables a totally non technical individual to set up and administer a physical personal server for the purpose. Of installing and running almost any variety of self hosted open source software under the sun and converting their computing life to a private one that excludes any trusted third parties. And we try to do this without compromise. It's an ongoing series of trade offs but we are really taking a purist approach to this and trying to do without compromise ultimately resulting in you. When you say without compromise what do you mean by that? I mean that to make anything functional. There's always this trade off between user experience, like making something super easy and convenient, and the principle underlying your purpose, which is to enforce privacy censorship resistance. It's the age old issue of security is basically it's the exact opposite of convenience, right? Like you always have this battle going on between the two things where you're trying to protect your stuff, it just makes it less convenient. And finding the balance there is pretty tough. It's a hard it's a hard computer science problem. It is. And under certain paradigms of computing, like once you have accepted the cloud computing paradigm, this intermediated custodial computing paradigm, you're sort of bound to fail at the privacy and censorship resistance principles because it's. Not really you can't do it with that. You can't without an enormous injection of trust and oversight, which itself just raises costs and ultimately corrupts. Right? So the stance is that we got away with this for a while because it was young and new. It's like in a man. I don't know. There are also massive, massive honey pots for hackers, right? Like when you have these centralized databases full of everybody's information. How many times have we heard this story over the last ten years where even huge credit rating agencies that have hundreds of millions of people, hundreds of millions of records on people get hacked and everybody's information gets stolen and it's big problem. Yeah. The four costs that we talk about with the current computing paradigm are privacy, invasion of privacy, censorship, the security vulnerability that you just mentioned, which is that anything that is worth hacking will eventually be hacked. Period. That's an axiom. And lastly is cost because in order to try to preserve the things that consumers want, like privacy and censorship resistance, the costs forever rise because there's more and more middlemen, right? Security is just more and more layers. And so what's happening here is these tech giants and to be honest, some of the smaller software as a service providers as well, like I mentioned, the tiny little note taking app that's on your phone or something, their costs are rising. It is not a good business to be a service provider of information and data. That is a bad thesis. It was the thesis in Silicon Valley for the last few decades. It's what their bread and butter was, was this idea of, you know, give away some free software product and then just become an indispensable middle man, like to sit right in the middle of everyone's stuff and make them totally dependent on you and then eventually, someday we'll figure out how to see them. Which is the problem. It's what the problem we're facing with everything today. You're seeing it used as a method of control over the masses. A great example of this is Apple and the Apple Store, right? They're threatening to remove Twitter from the Apple store. You need their permission. They are the gatekeepers with the power. That is correct. Apple, as Quick Anecdote canceled our original app, right? Originally, we wrote an Android and iOS app that you would use to connect to your embassy. That is how you administered. Your server was through a native app for these platforms. And Apple shut us down. They told us that we can no longer release additional updates. They provided very little information or guidance. We appealed through multiple boards, and eventually they just said, you're out. And our response to that, I wrote up a huge blog post about this and posted it from my Twitter account and from the start, Nine Twitter account a couple of days ago, if anyone wants to read it. But our response was the proper one, which is what you do when any central authority, whether it's Apple or in a nation state, becomes sort of domineering in your life. You can't punch back. That's their game, right? You're not going to win through you're not going to beat politics with politics. You're not going to beat, you know, business through trying to compete with Apple, you have to opt out, right? This is the most powerful tool available to a club. It's the most powerful tool available to all of us is to simply stop feeding the beast, stop using the things that they offer. Don't fight them for better offerings. You don't go to Apple and say, hey, I want better privacy. Just stop using them. And when I say just, that's actually really hard, right? Like, it's not easy to go on strike and to opt out of these highly convenient systems that we've become largely dependent on. But that's our job. That's what we're doing in Star Nines. We are trying to give people the tools that enable them to opt out of these massive big data surveillance systems. And the good news is that it's not all or nothing. You don't have to, like, take the full plunge. It's not like this huge daunting thing. You just need to take that first step and then gradually, over the course of years, even move your digital life on to systems that you control or that someone in your family controls. And by doing this, not only will you be protecting yourself with minimal convenience loss, by the way, because what we have done is not some crazy, esoteric, inconvenient thing. It's for anyone who has and uses an embassy. You'll know, like, it's not that bad, and it's going to get better and better and better by the month. We're moving very fast and making it very convenient. But not only are you protecting yourself with minimal loss of convenience, but you are almost indirectly fighting back, right? It's a consequence. You're doing something that's in your own best selfish interest while simultaneously benefiting the world by starving out the beasts that are suffocating it. And that's a very powerful idea. In fact, we think it's so powerful that it's bound to happen. I do think that there are scenarios where we go through an enormous period of history where something like this does not come about, but so long as we and others and quite frankly, the whole Bitcoin space keeps pushing for these opt out abilities, which is what Bitcoin is, by the way. Bitcoin is this huge opt out technology for opting out of the fiat monetary system and it's a huge one. And we're just taking that same idea and be like, yo, opt out ",timestamp:"01:17:40-01:30:45",topics:["Start9 computing model","Cloud computing revolution","Computing paradigms","Opt-out technology"],type:"twitter_space",weight:9.312597274780273},{boost:0,date:1670878744,description:"Thoughts on Binance and CZ",episode_title:"Escaping $ Debasement With #Bitcoin",guests:[{name:"Joe Consorti",profile_picture:"https://pbs.twimg.com/profile_images/1596902707511664640/GYGWVDts_400x400.jpg",ref_id:"8d2024b2-03bb-454d-9bd6-bb121904b76a",twitter_handle:"JoeConsorti"},{name:"Nik Bhatia",profile_picture:"https://pbs.twimg.com/profile_images/1496241412580397058/s7jy5g3a_400x400.jpg",ref_id:"d76f4499-ccf6-4153-9bc1-257a580aa079",twitter_handle:"timevalueofbtc"},{name:"Sam Callahan",profile_picture:"https://pbs.twimg.com/profile_images/1592532728775409667/0DayEP2Q_400x400.jpg",ref_id:"5a044a91-8dee-421c-86dd-8c734dc9bc32",twitter_handle:"CallahanMusic_"},{name:"Brian De Mint",profile_picture:"https://pbs.twimg.com/profile_images/1546297674512470016/oEVF8rJQ_400x400.jpg",ref_id:"064e04f7-8320-4854-8325-0cc19cd7ff55",twitter_handle:"BrianTheMint"},{name:"Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1508157904913899522/3l7ctauV_400x400.jpg",ref_id:"283edea0-55cf-4245-95df-8d6d3dcb1851",twitter_handle:"DylanLeClair_"},{name:"@coryklippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"21aca21d-9a96-40a9-a8b8-a523ae6591c3",twitter_handle:"coryklippsten"},{name:"Matt C",profile_picture:"",ref_id:"337e3256-0602-4baf-a4b7-ca6d0655c569",twitter_handle:""}],hosts:[{name:"Bitcoin Magazine",profile_picture:"https://pbs.twimg.com/profile_images/1444022922377576453/AzvXYXGr_400x400.jpg",ref_id:"0e7b904e-5161-4aa8-9f0b-65bee6050ddd",twitter_handle:"BitcoinMagazine"},{name:"Chris Alaimo",profile_picture:"https://pbs.twimg.com/profile_images/1579209742370672646/rck7M_MR_400x400.jpg",ref_id:"3a1bd698-9d67-40e4-ba6d-3e2262b385ca",twitter_handle:"ChrisAlaimo6"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f3a55dda-3dd5-4f62-99c1-bab3a88c27c1.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/80ab6951-8961-4aad-a458-a397ed6fd3cf/88c750f6-7569-4f69-947c-d61a398c358c.mp3",node_type:"clip",pub_key:"02814a5050f43a36bb052c7a3f22f0e86700abe037a44d99b45e0cb424d9398cbf",ref_id:"ea039879-1342-42d9-92e1-1fd4b6561488",show_title:"Bitcoin Magazine",text:"You'Ve been all over the scams in 2022 and even before that. But I've posted a little bit today, and some people have said this is valuable. Some people have said you're just a paranoid floodster. But I've been posting a little bit today about finance BNB. If you take a peek at BNB and bitcoin terms to basically add all time highs, ten X in the span of week in 2021, and just for instance, right, like, I like to evaluate things in bitcoin terms in this industry, whether it's private valuations, public valuations, crypto tokens, right? And B. And B is worth 2.8 million bitcoin, which is certainly fascinating, right, given that it's a centralized fork of ethereum that finance spun up from nothing. They've arbitrarily halted the BNB chain multiple times. So thoughts on thoughts on CZ? Obviously, he's the main character now, which we've seen in crypto doesn't usually end well, I guess. Just give me your preliminary thoughts. Yeah, I mean, it won't end well eventually, one way or another. We don't know if it'll be some cataclysm or some kind of like, slow bleed just chipping away at regulation. And at the end of the day, the assets that are trading on this platform, finance aren't worth anything. So the trading infrastructure itself that only trades worthless assets isn't worth anything either. And I think that basically makes crypto trading platforms inherent value pretty much zero, other than whoever is still playing greater fool crypto gambling games on their platforms. So as long as that continues, maybe they can continue to extract value. But I don't think you can actually end up going public or monetizing this thing with some kind of exit through this sort of offshore distributed type thing. It's just easy getting rich basically, as long as you possibly can and trying to keep the window open as long as possible. I 100% agree with you on BNB. Obviously, this is company script. It's you know, he can pause the validators at any time. I think he, you know, if he wants to replace one of these guys on the, on the zoom calls at any moment, he can do it really easily. And there aren't that many of them, and they collude and cooperate, obviously, so nothing decentralized about that. Yeah, it's just weird. People betting on B and B is just kind of being long CZ and jumping on trades that he's also long. Kind of just betting on this guy to be smarter than the other people betting on him to be. The smartest guy in the room. Which is the same trade that 100 crypto funds NVCs have had on Sam bank and Creed for the last couple of years, which is just basically belong anything Sam's involved in. Because Even if it's a total scam and even if it's total bullshit. He's so smart that if you just pile into the same trade and ape him, then you'll probably do well. Right? And that's what so many of these people did. It was kind of like the new version of the GBTC ARB trade, which everybody piled into in 2000 and 22,021 and then got burned and led to this next brainless move of just going along salana and salana ecosystem crap. And, you know, it's just not a lot of independent thought. And nor would you expect there to be much, because when it comes to crypto, folks like these are people that have chosen to spend their life's work on something worthless. So I'm not sure why you would have high expectations for them. So, Matt, I see you have your hand up. Corey, I just want to add one thing to the combo and then would love to hear your thoughts on Matt. I can't confirm this, but heard from an extremely reliable source over the weekend, just kind of on your GBTC thread a little bit and waiting for confirmation on this. Decided. I haven't posted this officially on Twitter, but hearing from the extremely reliable source, heard that Alameda was actually very much involved in the GBTC trade of Genesis. Posted to Genesis, borrow more, lever up long the GBTC discount premium with leverage essentially, apparently, according to the source, who will remain nameless, but definitely very much in the know in terms of all of this happening in the industry. Very connected person. Told me that DCG executives were actually going around and this is in 2000 and 22,021 were actually going around and pitching these three Arrows capital and now meters of the world and everyone else to go do this trade, this leveraged circle jerk with DCG entities of buying the bitcoin or sending dollars to DCG. I can be a source for that. This was active and very heavily promoted. Everybody was doing it back in 2021. Buy a bunch of bitcoin or even just send cash and they would just convert it into bitcoin for you. And then remember, it used to be a one year lock up. And then when they started really wanting to push it, they changed it to a six month lock up. And that's when the flood really came. And this is where all the BlockFi yield was coming from because it doesn't matter what asset it was like, let's say that you could get, you know, essentially like risk free 20 or 30% on this GBTC premium. You can double that out a bunch of different ways. Even if it started to drop a little bit, even if your expectation was six or eight, you could still pay like 10% on stables and consider three or 4% to be like customer acquisition costs, like marketing costs, and still have some left over to pay some yield on that. But at the end of the day, all this is is something that is illegal in traditional finance, which is funding institutional trading and leverage with retail deposits. It's not something that you can do. It's not something you can get away with. So it's funny Sam Bankman Freed even tweeted out in the wake of the Celsius collapse in June that Instow to Instow loans are fine because both are sophisticated, but retail lending to Enstow is shady. Well, at the same time, of course, doing exactly that in a slightly murkier way. Yeah, I think it's interesting to see the pattern. And maybe this is just trying to frame a lot of these industry participants under the same light, and maybe CZ or other actors are more legitimate. But it's interesting, the same kind of like position of strength kind of shoot down on some industry players say this is a poor risk model. It's like position of weakness and act really, really strong. Right? We've seen this happen over and over and over again. And in the reality, none of these guys were all that sophisticated and they were just levered to the tips in various ways and various carry trades that blew up in their face. The other funny thing was this thread that came out yesterday or the day before, and obviously I think it was Rom he's like crypto CFA or something like that, and I retweeted him and tweeted a couple of his things out over the last week. But basically just sniffing out and putting together that Alameda was probably made money at first when the only people on FTX were relatively unsophisticated or small fish, basically. And then when the big guys came, the smarter guys that were way smarter than people with 18 months of junior experience at James Street, or someone who looks and talks like Caroline and everybody on math or whatever, like when real shops came and started trading on FTX, they just started ripping Alameda's face off. And I verified with multiple funds that they were duplicating. The strategy that I tweeted out about, basically just at closing, there was some kind of like rebalancing or refunding of these leverage tokens that existed on FTT. And one guy made 50 X on his money in a year or something like that, and lots of other people were on that trade. I guess at least a few people have pointed to CMS Holdings as having really ripped the face off of Alameda for the last few years, basically doing this, and lots of other people learned how to do it too. It just really wasn't that complicated. So I think that thesis of this guy basically wasn't nearly as smart as people thought. Not some kind of like super genius, obviously just losing money. And the reason that he started getting into retail. As long as people were dumb enough to go along with this theory of FTX equity is valuable and FTT token is valuable. And all this other stuff the move into retail, like sponsoring the arenas and buying blockfolio and sponsoring Pomp and all this other stuff was really just to try to get into a position where they could take fees off of people. Because this is Ben Hunt. Excellent theory. Talking about this a lot too, in the last few days that you want to be in the flows, right? You don't want to be in directional bets at some point. So it's just like this houdini escape attempt to try somehow to get into the retail business where low end people will eat fees and build this big financial institution that's kind of more retail focused since they obviously couldn't make money trading. ",timestamp:"00:08:42-00:19:36",topics:["Binance BNB","Changpeng Zhao","Alameda Research","bnb"],type:"twitter_space",weight:17.912974381160645},{boost:0,date:null,description:"Brad Mills explains his stance that Stackchain is a shitcoin",episode_title:"Café ₿: Bitcoin Lightning ⚡️ Q&A w/ Bobby & Paul From Voltage!",guests:[{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:" Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"560cf9ee-2844-4ced-bbfd-d0ec639b2177",twitter_handle:"CitizenBitcoin"},{name:" Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1307109108127019008/rPNj47yJ_400x400.jpg",ref_id:"4f4f53c7-5a3a-46df-b334-9951fe38dc96",twitter_handle:"realjeffreyross"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" q_liketheletter",profile_picture:"https://pbs.twimg.com/profile_images/1560683048680665088/4MrHM_UY_400x400.jpg",ref_id:"d82c0d30-d0d3-4947-a358-d28f1cd5292e",twitter_handle:"q_liketheletter"},{name:" iBobbyShell",profile_picture:"https://pbs.twimg.com/profile_images/1583132979571920896/1Std3_ya_400x400.jpg",ref_id:"2f9bd0a3-1215-4a89-9dc6-d64f170961af",twitter_handle:"iBobbyShell"},{name:" Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"ac43b4f0-9056-4a6b-9d30-4a6250405ade",twitter_handle:"ToneVays"},{name:" sonofsats",profile_picture:"https://pbs.twimg.com/profile_images/1593080311000211456/Dr_NQ9Iw_400x400.jpg",ref_id:"d584f070-a66a-4b53-b15a-8142f8daea66",twitter_handle:"sonofsats"},{name:" futurepaul",profile_picture:"https://pbs.twimg.com/profile_images/1508452962917666821/1QheRD09_400x400.jpg",ref_id:"fcb50ec8-2669-47da-87b9-1702affb30c9",twitter_handle:"futurepaul"},{name:" Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"a2ba4e1e-aab7-43b0-90d7-d3c6a9738ad0",twitter_handle:"FossGregfoss"},{name:" Brad Mills",profile_picture:"https://pbs.twimg.com/profile_images/1541955880752750592/XJqwIn2E_400x400.jpg",ref_id:"9a49201c-3b03-4a83-bcb8-d92dbf3d55b6",twitter_handle:"bradmillscan"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ad62f26-289d-4eba-af0b-0da68515cbb6/c5c6ea3d-df5a-464d-9b41-a6bf3a0372a9.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"929def08-6b32-4313-a296-eaa1e5ee8d1b",show_title:"Swan.com",text:"Alex, can I ask Brad a quick question? Of course, go ahead. Hey, Brad. Stack chain is just the gamification of turning Kuckbucks into SATS. And the only reward is people get more SATS. So I'm curious, why did you post that stack chain was a shit coin this morning? Oh, my God. Here we go. Shot fired. Bread went off the stage. He's requesting come back up to defend himself. It should be interesting. The reality is that there are lots of detractors of stock chain. For various reasons. It is something that can. Oh, my God. What's up, Brad? How can you declare it? How come you posted as a shit coin? Do you not understand what we're doing over there? 3 million cookbooks converted hold on. 3 million cookbooks converted in four months by $500. I spent a lot of time in the Djen pits of shitcoinery, and this feels like a shit coiny thing to me. So that's why I said that, because the shit coins do stuff like that. Which means you're buying right now, right? Buying bitcoin. I'm always buying bitcoin. None at all. Good burn, Alex. What? Buying bitcoin? No, I'm not buying can we just back up? What exactly is stock chain? Sorry, I'm sort of be the idiot on the panel. Here we go. Look, this is what it is. It's a bunch of clubs decided we're going to stack some bitcoin and play a fun game on Twitter and post memes and kind of replicate what a blockchain is while they stack bitcoin and compete for blocks in a big long Twitter thread and kind of meme about it. But to me, I was a big fan of like, the Lightning Trust torch and all those things like the state chain torch and things like that. I loved that stuff. I thought that was cool because it served the purpose. It was like a political message. The lightning torch was similar, but the Lightning torch was like almost a political message because we were sending the lightning torch proving to the shit pointers, like to Roger Fur and all the BCRs that lightning wasn't vapourware and that you were sending it across borders. People were kind of like making a political statement. Like somebody received it in Iran and then sent it back over to someone else in another country. And it was kind of like a political statement that I could get behind. But the stock chain culture, I think, to me looks more like a little bit useless and a waste of energy. It looks like we could be doing better things with our time. And as an outsider looking in on it, that isn't part of bitcoin culture. It does look like a bunch of weird people, like, bragging about pumping the price of bitcoin even though they're only buying like, $5. It just feels okay, hold on. Brad, Brad, Brad. It's fasci. OK, as a proud stock chainer, I think you need to do more. Okay? I would happy to talk to you offline because it actually is a very noble cause. Nothing more than a bunch of clubs, but that's exactly what it is. Okay? Okay. And I just want to end with this. I have a proud stock chainer. I think I've done it four times. That being said, it is the total antithesis of shit coinery. Okay? It actually is a disciplined and find the stock chain tip. Sort of teaches you how the blockchain works indirectly. Just my opinion from a 60 year old fuck. Okay, this actually is a cool thing. Because there's at least a dozen swans who are stack chainers, including Corey Clifton and oh, by the way, Michael Sailors. A stack chainer. Everybody's a shit owner now. No, I'm on the other side of it. I think Brad has way too much free time in his hands. I guess he needs to find. It. I didn't get in on the premiere of the Fact chain, so maybe that's why I'm salty. For those of you who missed it, you got to go back and listen to the podcast recording of this show for the Thanksgiving special was so goddamn funny. There was one part where American Hall was comparing Brad Mills to a small furry mammal in the grass. It's great. I'll leave it at that. You got to go check it out. It's hilarious. So, Brad, I think some of your concerns are probably valid. It does look a little odd from the outside, but honestly, it's just a bunch of plebs having fun stacking SATS in the bear market. That's really what it comes down to. Ant is also correct. There probably is our $3 million cuckbuck mark. He said asterisks. And that's probably correct because there are some people who play this game and squash or they create fake receipts or whatever, but they're losers because they didn't get a stack stats by doing that. And then the other thing is that in effect, it actually increases the difficulty adjustment because the block height goes up. There's another dollar added once that happens. So somebody else is purchasing more Sass and it's really just a fun way. To shift the gamification of stacking. That's really what it is. And a way for people to talk shit about each other while doing it, which makes it fun. I don't know something about it. It's all good. I'm a fan of both of yours. I'm a fan. And if we are all thinking alike, then somebody isn't thinking right. Quoting General George Patton. If all bitcoiners are thinking alike, then somebody isn't thinking. So thank you for your input, Brad and everybody, I'm signing off. I'll listen to voltage. Thanks, guys. Don't worry. Normally I'm not aligned with the things that you say, but I think stacking is pretty dumb. I'm just going to take this one. That's for a back ended compliment. Brad. That change. Awesome. Well, I just followed Brad because. Nice. Alright, Brad, I just want to say we all love you, man. Let's keep ",timestamp:"01:23:39-01:30:26",topics:["Brad Mills","Stackchain is a shitcoin","what is a stackchain"],type:"twitter_space",weight:9.22888708114624},{boost:0,date:null,description:"Tone Vays gives his analysis about what is needed for a final Bitcoin capitulation and the return to a bull market",episode_title:"Café ₿: Bitcoin Lightning ⚡️ Q&A w/ Bobby & Paul From Voltage!",guests:[{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:" Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"560cf9ee-2844-4ced-bbfd-d0ec639b2177",twitter_handle:"CitizenBitcoin"},{name:" Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1307109108127019008/rPNj47yJ_400x400.jpg",ref_id:"4f4f53c7-5a3a-46df-b334-9951fe38dc96",twitter_handle:"realjeffreyross"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" q_liketheletter",profile_picture:"https://pbs.twimg.com/profile_images/1560683048680665088/4MrHM_UY_400x400.jpg",ref_id:"d82c0d30-d0d3-4947-a358-d28f1cd5292e",twitter_handle:"q_liketheletter"},{name:" iBobbyShell",profile_picture:"https://pbs.twimg.com/profile_images/1583132979571920896/1Std3_ya_400x400.jpg",ref_id:"2f9bd0a3-1215-4a89-9dc6-d64f170961af",twitter_handle:"iBobbyShell"},{name:" Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"ac43b4f0-9056-4a6b-9d30-4a6250405ade",twitter_handle:"ToneVays"},{name:" sonofsats",profile_picture:"https://pbs.twimg.com/profile_images/1593080311000211456/Dr_NQ9Iw_400x400.jpg",ref_id:"d584f070-a66a-4b53-b15a-8142f8daea66",twitter_handle:"sonofsats"},{name:" futurepaul",profile_picture:"https://pbs.twimg.com/profile_images/1508452962917666821/1QheRD09_400x400.jpg",ref_id:"fcb50ec8-2669-47da-87b9-1702affb30c9",twitter_handle:"futurepaul"},{name:" Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"a2ba4e1e-aab7-43b0-90d7-d3c6a9738ad0",twitter_handle:"FossGregfoss"},{name:" Brad Mills",profile_picture:"https://pbs.twimg.com/profile_images/1541955880752750592/XJqwIn2E_400x400.jpg",ref_id:"9a49201c-3b03-4a83-bcb8-d92dbf3d55b6",twitter_handle:"bradmillscan"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/0ad62f26-289d-4eba-af0b-0da68515cbb6/c5c6ea3d-df5a-464d-9b41-a6bf3a0372a9.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"332af4b9-782f-40e4-878c-45bb9d7edcdc",show_title:"Swan.com",text:"Yeah, for sure. Shout out to Tone Vays throwing you an invite to come up. Brady Swenson in the audience throwing you invites. Guys, Tone Vays had a well, there was an article regarding Tone Vays in a strategy session he did on YouTube talking about what we need to see before he's convinced we've got capitulation. We're moving up again. Hey, good morning. How's it going, Tom? Morning, guys. So would you mind just taking two minutes? And when I say two minutes, I'm serious about two minutes. Because sometimes you can go for like a 20 minutes rant. Alright, five minutes. You want to tell us what you're thinking in terms of what we need to see in prices, et cetera, what we need to hold before we know we're back into a bull market. There's a lot of speculation that we're hitting the bottom. There's a lot of market indicators popping up that people are saying mean at the bottom. I don't know if at the bottom. What do you think, Tom? Yes. I have to go and check the price of bitcoin real quick because it just woke up in time for spaces. Lucifer, back up to 16, I'll tell you. 16,370? Yeah. Well, we're back to 16 four after flirting with 1601 more time. So I am one of the view that if you get too many chances to buy the perfect low, it's not the low unless you get so many chances to buy the low that everyone gets bored and thinks bitcoin is never going up again. So at the moment we've had too many chances to buy the perfect low of 1600 or a little bit under. And that makes me so right now I am leaning towards the direction of one more capitulation. How long can it go? Hard to say. 1413, but it's the structure of the capitulation, right? 15 and a half, like we did a few weeks ago. And if we were already at $20,000, I would be full on full market right now. That's it. That was the low. Kind of like what happened with COLVID, but right now it feels more like 2015, where we crashed into the sub 200 low and then we spent like five months, six months flirting between 203 hundred, maybe got to 350. And then once again, like after January we crashed the below 200, and then again in August we crashed to below 200. So now it feels more like 2015 again, like we spent so much time at the low. And it wasn't even the low. So people A, got bored and then B, got hit with one more capitulation. So for me to call a bull market right now, I would need a clean, higher high, which means we go up to 21 22 $23,000 range, and then on the way back, don't go below 19 and reverse at 19 and start to push towards 21 22 again. So that's what it would take for me right now to consider a bull market or, you know, a quick drop to below 14 followed by a swift rebound back to 18. That would also get me super bullish. Got it. That was a great summary. So shout out to Jeff Ross in the audience throwing you an invite. If you want to come up and give us your five minutes on what's going on in the markets, you're welcome too. For those of us who are aggressively stacking this low or this correction, you're telling me that we still have a chance that this might last a little while longer? Yeah, it feels like it. But keep stacking because time wise, this can't last too much longer. I can't see this. I'm already a little bit like, wow, this thing lasted far too long. But I guess as late as March, there is no way we're going to be sitting at these lows with less than twelve months to go to the having. With everyone having their countdown in days when it's less than 365 on their wall, I just can't see it. I love it. Personally. I've been super aggressively stacking this entire time, and I know many others are. There's some new data out from Glass Node that says entities owning less than one bitcoin of collectively accumulated 1.5 billion so added 96,200 bitcoin to their holdings since the FTX collapsed, all time high balance increase. And then entities owning less than ten bitcoin have added over 3 billion worth in the last month. Yeah, those are my two favorite metrics. Wallets that have accumulated over one bitcoin has just crossed 950,000. Let's hope that's 1 million leading into before the having, right? Like in the next three months, by the end of Q one, I would love to see that metric break 1 million wallets that have stacked more than one bitcoin. And the other metric, well, double metric, how many bitcoins are entering the Lightning network and how many bitcoins are entering the liquid network? That one is super small because once bitcoin enters those networks, it doesn't really leave. There's no reason for it to leave. It's better there in both of those networks because it's there because it solves a problem. And that problem requires bitcoin liquidity to come off on shape. Not the solution. I should say not that problem. Yeah. But it's also a way to mark sort of network growth. So we talk about this thing called the Network of Fact where and Lawrence LaPard says that like one of the only things that would concern him is if the bitcoin network started getting weaker, meaning less users, less lightning growth, all that other kind of stuff. That's an interesting point, because as long as bitcoin keeps getting stronger, it's already the super dominant. It's the only proof of work network really worth talking about at this point. And that's exciting because that just means it's just getting stronger all the time, regardless of price. Jeff ",timestamp:"00:16:01-00:22:44",topics:["Tone Vays analysis","Bitcoin capitulation","Bitcoin bull market signals","Lightning and Liquid networks"],type:"twitter_space",weight:9.22888708114624},{boost:0,date:1637366400,description:"Nuclear Reactors are safe - salt cooled reactors with TRISO nuclear fuel particles",episode_title:"Securing Bitcoin With Nuclear Energy",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"},{name:"Eric McErlain",profile_picture:"https://pbs.twimg.com/profile_images/1252969137/Screen_shot_2011-02-23_at_10.59.21_PM_400x400.png",ref_id:"4815365d-44d0-4b06-9d9e-32070158d03c",twitter_handle:"atomiceric"},{name:"Puru Goyal",profile_picture:"https://pbs.twimg.com/profile_images/1590742805613203456/QAtYq_C__400x400.jpg",ref_id:"c24af059-b38b-4ce5-9547-9192c9eff579",twitter_handle:"purugyl"}],hosts:[{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"},{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=YBaA17NODlA",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"d1295013-33f3-431f-99a0-baa6d83500ad",show_title:"Compass Mining",text:"I think Eric said pretty much everything I had to add. I think apart from the safety case, I think it's a really heavy regulated industry which not a lot of people understand. You can't just make a reactor in your backyard and put it online. It doesn't happen that easily. Right. So there's a lot of regulatory compliance that goes into it. And especially if you work in the industry, you realize, which I had not a huge amount of appreciation for, which I've realized over the last four years that licensing of reactors not super easy now. So that's another drag on the industry which has been happening. But I mean, part of it is required because of just how the technology is. And like Eric was saying, it's like we pay the price for it. But apart from that, I feel like we just have to point out how cool nuclear technology really is. Like, if you are really serious about climate crisis and everything else that you see in the mainstream media and you're not pro nuclear, you're just kidding yourself because the energy mat just doesn't add up. So I feel like apart from validating the safety cases for the advanced reactors specially, which have really improved over the build up that we've seen over the 1970s, which were mostly pressurized like auto reactors. So a lot of the reactors that we are probably going to see over the next decade or so would be sold reactors which will have these trip particle fuels, which if you look at it, I think they're pretty much the most robust fuel on the planet today. So I would ask anyone to go Google tripod fuel and look up what they actually are and realize how cool that technology really is and how badly we need it. Because that small amount of particle which is the size of a golf ball, can produce power as much as a coal plant or natural plant can. So that's just really powerful, right? I mean, nuclear reactors are safe today. Like the build up that we're seeing, we'll probably see in the licensing that I've been part of the technologies out there. It's just a matter of building it. And I think it just depends on the economic incentives. If the incentives are right there, then people are going to go out there and build it. And the opportunity I was talking about is going to show up sometime over the next decade where a lot of these private companies which have been involved in the space for a while now. I kind of like relate this to the space race for these private companies, which was happening in the early 2000s, where companies like SpaceX and Blue Origin were just starting out and not a lot of people had heard about SpaceX for the first ten years, right? Like we just started hearing about when they start launching rockets, but they had a massive amount of failure going into those rocket launches. And I think it's similar with these private nuclear companies of today where they're slowly and privately building out these technology options for us. I think we'll start to hear more of those in the next five years or so and it's just going to happen. And I think the public sentiment will drive from that because people will soon realize that if you want to be serious about climate change, then you have to be on the side of nuclear. I think it's very similar to like even with Bitcoin, I feel like that's just the sentiment. I think there's just the economic incentives are going to be such that it'll just drive adoption naturally. I'm with you there, ",timestamp:"00:35:08-00:38:18",topics:["Nuclear Reactors Technology","TRISO Particle Nuclear Fuel"],type:"youtube",weight:9.170270925405587},{boost:0,date:null,description:"Relationship of Year-on-Year change of Bitcoin Hashrate, the Bitcoin Economy and The Energy Industry",episode_title:"Café ₿: #Bitcoin News & Trusted P2P Reviews w/ @Apollosats",guests:[{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:"@FossGregfoss",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"09913e9b-38dc-4465-9d4d-ae0c9ba9eeca",twitter_handle:"Fuckkkk"},{name:"@w_s_bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"b178b239-3b18-4a16-9d43-c5d15ba6f7f4",twitter_handle:"w_s_bitcoin"},{name:"@NeilJacobs",profile_picture:"https://pbs.twimg.com/profile_images/1599432572727169025/NSoPdchB_400x400.jpg",ref_id:"4b6997e1-ce0b-4a1d-90e7-dbaccef4b783",twitter_handle:"NeilJacobs"},{name:"@brandon_gentile",profile_picture:"https://pbs.twimg.com/profile_images/1561369452284895236/-8WgdwEm_400x400.jpg",ref_id:"f940c5e8-4808-4197-a38f-3f19d311a7ad",twitter_handle:"brandon_gentile"},{name:"@apollosats",profile_picture:"https://pbs.twimg.com/profile_images/1576946734927794176/2ail9FoU_400x400.jpg",ref_id:"74f4280f-5fdb-4bbc-aee2-a2ed32d64372",twitter_handle:"apollosats"},{name:"@StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"6e652629-38ec-49d8-9f5c-3ba28f80c799",twitter_handle:"StackchainSig"},{name:"@TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"7af639f8-8c5c-4ce1-a43b-e8560ed40e2b",twitter_handle:"TomerStrolight"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7cf57bdb-c905-46e3-a7e5-4c0bfd4f8d04/71c08fae-cce8-4600-ab9e-758420e78dcf.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"2b1c8514-7d10-4e83-9006-9974ec31d35a",show_title:"Swan.com",text:"I appreciate it. I wasn't going to do, like, anti who's holding bitcoin rant and who's mining bitcoin rant? Whenever we could ask that question. I wanted to look at these kind of hash rate numbers year over year and just going back to late 2018, and this isn't like exact science. I just basically picked the first dates that I could find in January for that year. So just take it with a grain of salt. But January 8, in 2018, hash rate was around 16 X A hash. January 9, wow. 2019, it was floating around 45 X A hash, which was like 181% increase. I believe January 20 was around 100 X A hash, which would have been like 122% increase over the previous year of 45. And then January 21 was 150 x a hash about which was, you know, about a 50% increase. So where are we going to be in January 2020? Oh, I guess that was 2021. January 2022, I didn't get that one, so I'm missing that one. But January 2023, you know, I don't know where we're going to be for there, but I mean, right now, today, it's 260. The problem is they're not making money, right? So there's an overhashing, arguably, miners bought a lot of rigs last year. They were overfunded, and they thought number would go up, and now they're hashing like, there's no tomorrow and selling every bitcoin. They mine pretty much immediately because they're losing money left and right in the bear market. So you could easily see rigs going offline soon and the hash rate coming down to match the price better. So here's the interesting thing, because I agree with you. I did just go grab January 2022, and it looked like that it was floating around basically, like 175, 190 x A hash. If the year before was like 150, it's like even less as far as is like, the increase. You're going from like 181% to 120% down to 50, and then like, a little bit less. But now it's like up to 260. So I know it's like a lot of numbers. If you're not looking at it, like, I am right here to kind of hear it I hope I'm relaying it correctly for everyone to understand. I feel like we already had a massive correction in the amount of X A hash, and now it feels like it's going back up. Well, exactly. And if you pull this up over like this same time frame, like go back to like I just pulled it up to like 2016 now, and I can see all this hash rate. And you can see it like goes from like this little line there's like this kind of upward, you know, trajectory. And then right around May 2021, you know, of course there was like a big drop. Like it it gets, you know, June, July, July it drops. June, it drops way down to like 87 from and this was in 2021, so May 2021, it had been cranking along. It was like 179 X A hash doing great. Then all of a sudden it dropped huge, down 87 X A hash per second. And then from there you can see it's almost like a bunch of miners turned off. And then here goes a bunch of new ones. Bump bump, bum bum bum bum, boom boom boom. And it goes all the way up. And here we are, 260 something. Yes, I show this article, I've been showing it a lot recently on this show, and I know a lot of you still haven't fucking read it, so I put it up in the nest for those who still haven't checked it out, because it is really fucking interesting. And it's exactly what we talk about every single time we talk about this. It's this bitcoin energy gravity idea that Joe Burnett came up with. But it's a really simple and beautiful idea. It's this idea that when bitcoin is flying high and the prices is surging, it becomes very profitable to mine. So new investors, instead of just aping into bitcoin, what they do instead is they ape into mine. Charts are bullshit. I'm sorry. Because you can't tell what's going on right now when bitcoin dropped from 69 to ten because they're using this log ten bullshit scale. Like, I like the chart idea. It's just that execution is atrocious because they should just show what happens when you go from linearly, what happens when you go from 69 to 17 in terms because I can't tell because it's all gobbled up by this bullshit. Learn how to read log charts and then get back to me. But anyways, what I was saying is like, no, it's bullshit. Log chart. This is exactly what can be used. It's exactly what plan B used to fool everybody into bullshit. I'm sorry, it's bullshit. Get a better chart. The plan B thing is a completely different problem. But yeah, no, all this is saying this is saying something that's fundamental to bitcoin. And honestly, I don't think you can argue against it because this is what happens with capital in the bitcoin ecosystem. At least now that it's been fully capitalized is like when the price is flying high and it's cheaper to mine a bitcoin than to buy it outright, then what you get is you get investment in miners, and that naturally stifles aping into bitcoin. It naturally stifles investment in actual just buying bitcoin spot. And so then you get half rate increase, and then once the price starts falling and it gets to a certain point and it actually becomes more expensive to mine than to buy spot bitcoin, then that flips. And then instead of investing in miners or keeping miners on, you just start buying spot. So it's this dance that goes back and forth. And that's why he's called this bitcoin energy gravity, because it's basically when the price flies too quickly up too high, then there's this natural gravity that brings it back down, which is the flip from investing in spot into cash rate instead, because it becomes cheaper just to set up miners and mine bitcoin than to buy the spot itself. Right? If it costs five grand to mine a bitcoin, you're not going to buy bitcoin. You're going to buy miners and mine in bitcoin for five grand to pop. You know what I'm saying? But if all of a sudden it costs 20 grand to mine a bitcoin and you're not going to invest in miners anymore, you're going to just buy the spot bitcoin instead if you want to invest in bitcoin. So that's kind of like that's the natural back and forth that we see playing out over and over again. So one thing that I think could get us to a peda hash very quickly is if we do get this next run in price, that's like crazy, right? And this is not concerning retail. Retail, they all buy bitcoin spot. This is concerning more like institutional grade investment, which we've been seeing a lot going into mining this past cycle. But I think this will kind of continue this back and forth dynamic between supporting further hash rate and then just buying spot bitcoin. All it comes down to is, what's the cheapest way we can get bitcoin? That's really it. Yeah, I agree with that. It's good evidence for what I think people know from first principles. You have a volatile asset. So when the price goes up and it's cheaper to mine bitcoin instead of buying it, people are going to buy bitcoin. And then because it's volatile and because there's a lot of opium, they're going to overbuy and over invest, and then bitcoin will crash at some point because it's so volatile. And then you're going to overhash and miners will go bankrupt, and then the hash rate comes back down and then go back up. But, yeah, it's good evidence for that. He could have explained it in plain English the way you just did, by the way. I don't know why I'm a big fan of plain English bullshit terms. Doesn't he explain it in the article? Did you click into the article? Are you just reading the tweet? No, I'm just saying, like energy, gravity. BS. He could just say like, when the price goes up, you have overhauling and people over invest when the price goes down. You don't need these kind of terms necessarily. There's a certain segment of the population who's not interested in these things unless it has new terminology because they feel like they're smarter, because they're reading new words. That's true. Fair enough. It's marketing. And gravity is one of these fundamental things that everyone feels like is such an important thing in the universe. And it is. We wouldn't be here without gravity. So, I mean, why not name this? See the meaning, man. It always comes back to the same shit. All these different areas. Terminology, analogies are great because they make it easy for people to understand. But at the end of the day, to me, all I know is these motherfuckers will never stop printing. Ever. They've done it my whole life. I came up with a new term recently. So instead of looking at bitcoin year over year growth, I think we should now start looking at it. Epoch over epoch growth. EOE. There is a tweet from bitcoin magazine. It's a billboard in Kansas City. So there's this huge billboard. It's got a US dollar bill on it that says BTC in the middle. It's really funny, but it says, $1 from 2010 will buy you forty two cents of goods today. Do you know why? I think it's fantastic. Human race needs to wake the fuck up. I don't know who's next. Foster tomer. I've spoken already. Let Greg go. Well, good morning, guys. Greg. I'm doing well, guys. Nice conversation. Can I just interesting conversation. Remember, there are a ton of equity investors who cannot buy spot bitcoin. So they buy bitcoin miners as a proxy for bitcoin spot exposure. So in a perfect world with efficient markets, your argument would make 100% sense. But in the absence of equity buyers who cannot buy bitcoin spot and buy bitcoin for miners for what's called beta exposure, that's why the price of bitcoin miners went up into unrealistic levels on a valuation basis relative to the price of spot bitcoin. Okay? So then think of when investors have unit price bias. Mom and pop retail, oh, I can buy a stock of a bitcoin miner at $4 a share rather than buying bitcoin for 40,000. They don't understand that you can't buy a partial bitcoin. They just have unit price bias. So there's that coming into the equation. And then remember, bitcoin mining is a shit business. Okay? Describe to me any other business where you don't control your energy input costs and you don't control your output revenue. Both are set by markets outside of your control. So you want to be a publicly traded bitcoin miner. That's a shit business. Okay? So any bitcoin miner that does not control the cost of their energy is not a great business. And then back to Alex's comment. You're totally right. You can't stop printing. Why? Because it's pure mathematics. The debt spiral is funded by printing more fiat. Fiat is the error term in the debt spiral. So don't overthink things, but try and explain supply and demand where you have a $350,000,000,000 asset, where the Bitcoin publicly traded bitcoin miners at the top of their market cap at the top of their market caps weren't even measured more than $50 billion. Remember that. I'm curious. Like, got to see your hand. But, Greg, I want to ask you a question. I asked this question, I think, to Tone or somebody else the other day, but okay, for these people who cannot buy Bitcoin, the actual layer, one base layer asset, they have to buy a derivative or a security. Do you think MicroStrategy is a better proxy for bitcoin than any other securitized bitcoin product? So, having spent a dinner with Michael Sailor in La and having owned his MicroStrategy at times over common stock, at times over the past, I believe MicroStrategy today is an exceptional buy. Why? Not because of their bitcoin holdings, but because of Mr. Sailor's vision and where lightning and payment rails are going. But I can't talk too much out of school about that. I will just tell you. The capital structure of MicroStrategy is so hedged and wedged with capital structure arbitrage players convert ARB players, to be exact, where they bought almost zero coupon bonds. Some of them had a nominal coupon on them in order to play the optionality of the MicroStrategy stock, because that's all convert ARB desks do, is get optionality out of a convertible ARB excuse me, a convertible bond and play the ball game and play put Call parody on options markets using a convertible bond. That's what they did there. So that capital structure is a little Bit. It's extremely levered to the convert ARB equity desks and convert ARB desks on Wall Street at a price of under $200. I did the math recently. Yes, I did buy some MicroStrategy stock after having the pleasure of sitting down with the CEO face to face. But I don't own it because it owns Bitcoin. I own it because of a vision of a CEO who I really like. Okay, I'm not going to tell other people how to buy Bitcoin, but I'll just tell you if you're buying Bitcoin using other derivatives rather than buying spot Bitcoin, go and get your fucking investment policy guidelines changed, please. So that you can actually invest efficiently on behalf of your unitholders, rather than with one hand tied behind your back because you're too fancy to buy spot bitcoin, but you're going to buy all these other derivatives that's absolutely atrocious risk management. Oh, guess what? That reflects probably 90% of the pension funds and money managers in America and Canada. You know what? Let's apply Kui bono to that, though. Why are those entities precluded from buying underlying assets? You might ask yourself that question. Because the market is so manipulated. Alex, that's not what I think. I mean, Greg can probably back. No, it's more it takes time, gentlemen and ladies. It takes time to change an investment policy. Why are those policies like that in the first place? Greg, I'll tell you why. Because they are staffed by people that are septogenarians. Like, I know Warren and Charlie Munger aren't septogenarians, they're octogenarians and whatever 90 year old people are. But at the end of the day, they're fucking they're from past times, right? They're trying to COVID their ass. They're all invested in bank stocks and everything that bitcoin is going to disintermediate. So God forbid they should buy the spot. But yeah, we'll buy these Bitcoin buyers. Do you think it has anything to do, anything at all to do with the fact that Wall Street can't make a profit if pension fund is buying an underlying asset versus a Securitized product? Yeah, 100%. Yeah, that's not a bad thing. Greg, have you also in the past talked about how these funds are dumping grounds for crappy wall? That was Max Kaiser. Max Kaiser went on Tucker and completely explained how all that works. That was my true. Yeah. Now don't forget, look, there are structured products that make sense. There are all sorts of things that when you get the alchemist, when I say alchemists, these are the structured product derivatives guys that turn a single B structure into AAA structure like they did on The Big Short and that's bullshit. But there are actually a lot of good structured products that make things more efficient for a large fund. Now, I'm talking a large fund that cannot buy. Remember, if you're a really large fund and you have to own at least 1% of your fund in something in order to justify allocating an analyst time to that particular investment, if you're a trillion dollar fund, 1% of a trillion dollars restricts you to basically large cap everything. Which means you'll never be able to get into small cap anything unless you can do it through a structured product. So understand that there's different ways of skinning that fish, but it's the difference between big money and mom and pop retail money, okay? And you can't apply a blanket solution to everything and then I just want to start by or end by saying this, look, log scale is log scale. Don't confuse it for what it is, but don't say that people are trying to terence, this is not a shout out or a shot at you. It's just saying as long as people understand they're looking at a log scale, they shouldn't call it. It's just a part of mathematics. And log scales mean a ton to the mathematicians. They may not mean a ton to the mom and pop retail crowd. So just, guys, if you break everything down to first principles, mathematics. You break things down into what's a good business and a bad business. I don't know if I'd want to be a bitcoin miner where you have no control over your business, but then you were able to sell stock to the public at an inflated price and feel good about yourself. Look at Argo Blockchain right now. They are living the nightmare of taking capital at the wrong price and deploying it wrongly. And, yes, you're right. There's a lot of hash that will come off of the system. Why? Guys are running rigs because they're trying to generate cash flow. It doesn't mean they're trying to generate a profit. They're trying to generate cash flow. There's a big difference. People understand that difference. Yeah, the thing you said about any business where you can't control your input costs or your price of sale, I had not heard it put quite that way before, but that makes a lot of damn sense. I was like, oh, damn. Yeah, you're kind of right. Which leads me to the next thing. Those businesses might only make sense if they're actually power producers. Amen, brother. Amen. And that's where the world's going. When you see Duke Energy mining bitcoin and stabilizing the grid, you'll understand that bitcoin and its beauty have arrived in capitalist America right now. It was just a precursor and a fucking horror film because it was sold to unsophisticated investors at the wrong price by people that were CEOs of mining companies because they did it in their parents basement. Very simple. Yeah. So when you see announcements like ExxonMobil rolling out this flared gas project where they believe it's going to reduce their greenhouse gas emissions by, like, 63%, they're rolling it out across four countries where they're taking this flared gas. My understanding is they're not actually giving a crap about the bitcoin, just trying to reduce emissions so it looks good on their books. Alexand, respectfully, that's not the energy producers we're thinking about here. We're thinking about the electricity distributors. We're thinking about Shameless promotion of a business I'm involved in. We own peaker plants that are on call. They are not running 95% of the time, but we have capital costs. Don't you think it would be wise for us to figure out how to explain this concept? I've heard the word before, but I'm not sure I understand what it means. It's a peaker plant. Okay. The grid is inherently unstable because the grid and the demand for electricity fluctuates during the day. Right? The biggest electricity draw on a grid is when people get home from work and they turn on their stoves. Electric stoves. They turn up their heat. Electric heat. They turn on their hair dryers because they're going out at night. Anyway, the point is, the grid is set up for maximum demand. But there's not always maximum demand going on in the grid. But it's an ancient technology that needs you to be able to supply that power so that the grid does not black out when everybody goes to maximum demand. So in a given day, if you have 100 megawatt demand or peak demand, 100 megawatt, I'm talking about a micro grid here that's set up for the 06:00 P.m. Draw versus during the day, the true demand from the grid might be half of that, meaning 50 MW. So you have power producers that are primed to provide 100 MW, but only 50 MW is being used during the day or in the middle of the night. So what are you supposed to do with that? You're probably supposed to mine bitcoin to defray your capital costs of building these plants. Now, I talked about a peaker plant. This is a plant that is on call so that when you have a draw because of really exceptionally cold weather or really hot weather in the summertime when everyone's turning on their air conditioners and you have rolling blackouts, that's when the peaker plants come on. But a regular utility is always load balancing during the day just because that's the draw on the grid. So you'll have the Duke energies of the world that are baseload providers, not peakers baseload providers that are going to be mining energy because it helps to stabilize their grid. Why? Because you want demand for when your turbines are turning and no one has demand for it. Well, in Canada, we pay Americans to take that electricity from us. We don't sell it to them cheaply. Alex. We pay you lucky people to take our electricity. How messed up is that versus us mining bitcoin with that excess power capacity, and that is a fact. One of our nuclear generators sells not cells, gives power to the northern peninsula in Michigan, and doesn't just give it to them, we pay them money to take it as well. Well, if that's a good business model, you've rewritten fucking capitalism. Okay? So start mining bitcoin Canada, and get your fucking asses and gear. ",timestamp:"00:35:14-00:58:57",topics:["Bitcoin Hashrate","Bitcoin Economy","Energy Industry"],type:"twitter_space",weight:9.1248779296875},{boost:0,date:null,description:"Discussion on how much information investors and promotors knew about how BlockFi (and others) business's worked",episode_title:"TOXIC HAPPY HOUR! #Bitcoin is Easy Like Sunday Morning! 🍻😂",guests:[{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:" TC",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"dac0717a-a743-40d4-a89f-7523f071bbb0",twitter_handle:"publordhodl"},{name:" kann b",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"1170bde7-7f3c-4c4f-a158-5c48a98fe92b",twitter_handle:"publordhodl"},{name:" Dallas Rushing",profile_picture:"https://pbs.twimg.com/profile_images/1602759767029604352/hzuwh5ZB_400x400.jpg",ref_id:"13fed037-77ce-48eb-9544-25e7abff9395",twitter_handle:"dallasirushing"},{name:" Lisa Hough",profile_picture:"https://pbs.twimg.com/profile_images/1541581547815436288/Li8wORWt_400x400.jpg",ref_id:"5e154adf-d8bd-4adf-a23b-47a51c183163",twitter_handle:"lisa_hough_"},{name:" Collectooor of sats",profile_picture:"https://pbs.twimg.com/profile_images/1594362077132587009/cNAE2FU5_400x400.jpg",ref_id:"c84d0e47-7eeb-419b-a36e-5055b96044f0",twitter_handle:"hoardingsats"},{name:" Gold Leader",profile_picture:"https://pbs.twimg.com/profile_images/1594152783011250176/lHMHv3gB_400x400.jpg",ref_id:"96c4f802-25ff-4a81-b91f-cae5562bf4a3",twitter_handle:"GoldLeader89"}],hosts:[{name:"Publordhodl",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"5e189a7b-56c3-40ae-834e-4e2ccee3a9ad",twitter_handle:"Publordhodl"},{name:" Anders_",profile_picture:"https://pbs.twimg.com/profile_images/1391477993726529545/xqIjHq5w_400x400.jpg",ref_id:"15bdd6b9-bdfd-492d-b7bf-c5a56ecadc50",twitter_handle:"Anders_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/4e00853b-49e3-4b46-bd13-bf7f2aa25905/56f0089c-a7f2-4b1b-8576-a3e4ddb9791f.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"c9e43dce-1fac-4545-be91-7aa8594fa7e6",show_title:"PUBLORD",text:"you're good. I was just going to ask DC or Gold I'm definitely familiar with I would take a decent amount of the details with a lot of these centralized earn yield type of products that all blew up. Do you guys know? Two questions would be one, do you think that investors like Pump or you Scope had full access to know all that they were doing to generate yield on those funds? And if that already has come out definitively, then cool. I just haven't been following that super close and because like I mean with them being a US company, like I figured there'd be access into like seeing exactly what they're doing to earn yield on that even by like investors. Maybe not like super tiny investors, but like if you're there from like if you're a seed guy, like you probably have access to know what they were doing to generate all that yield. Is that can you guys confirm if that was the case? Yeah, I'll take this one. Started proof of keys. Not your keys, not your coin. Listen, here's the problem. Even if McCormick would have said to block by, hey listen, I'm not sure what are you guys doing here? I'd like to have you as a sponsor. Thank you for whatever amount of money you're doing or anyone else that promotes it. Here's what goes on man, for proof of reserves. And it reminds me from the movie The Big Short, all right, if you remember, they go down to the rating agencies saying, what the hell is going on here? What is going on with these bonds? These bonds, you know, are just full of dog shit wrapped in cat shit and then layered with some more dog shit. How are they getting these ratings? And they finally get the lead to admit, listen, if we don't give them the rating. They'll just go down the street to Moody's and get the rating they want. This is exactly the same thing. So we can beat these guys up. Okay? But at the end of the day, there's always going to be another grip, another angle. It's going to be someone else that, oh, yeah, let's start a company. Proof of reserves. All right? We'll get proofofreserves.com, and we'll get all these companies to write us checks. And then when they go out and they want to be sponsored by someone, that person is going to call us, hey, you guys are proofofreserves.com. Does BlockFi have all this stuff? Oh, yeah, man. Yeah. So we're cashing checks from BlockFi and it's proof of reserves.com. We're making a mint until the ponzi blows up. It always blows up. James Ma'am real quick, if I could. Just add one thing on that. I think the question, too, is like, that people should ask is, you're like, okay, this exchange is offering me 6% yield on Bitcoin. You're like, well, where exactly is that yield coming from? Who's paying 6% to borrow Bitcoin? And why would somebody do that? And one of the reasons is that people will borrow Bitcoin to short it, and they'll pay a yield for that. But that 6% is still pretty rich. But I think what a lot of these companies were doing was basically like, for a Bit, you could earn 20% on UST. And so there were companies were probably taking dollar loans against an asset like Bitcoin, and maybe they're paying whatever, 8%, even 10% to borrow those dollars and then trying to go earn 20 over on Terra and then make that gap between the two. And they could pay that out as a yield into Bitcoin. But either way, the problem is, like, all of this sort of set on each other, and a lot of them start to go well, each competitor starts to move it further out on the risk curve, and they're like, well, they're doing it. Maybe we can inch a little bit more, a little bit more. And then by the time a couple of months goes by, everybody looks up and everybody is just, like, waist deep and fucking risk and systemic potential bulbs and stuff. And then there's no way to really unwind that correctly without there being shortfalls and you can't liquidate everything in time. So it's unfortunate that, like, a lot of them felt the need to take on more risk to stay competitive, which ultimately is probably the reason why all of the above kind of blew up. Yeah. James go ahead, man. Let's see your hand up. Hey, good morning, guys. Morning, Dallas. Puppy. Yeah, I just wanted to weigh in on some of the comments regarding I mean, there's a lot that's been said, so I'm going to try and synthesize my thoughts. I'll just start with the Exchange avenue because that's obviously who I work for. There is a palpable kind of steering via the capital stack of the ideas and execution of some of these exchanges. Meaning, like, if you're going to continue to ship coin, your cap table may have some influence on that, which is a real problem. So I just wanted to acknowledge the fact that Lisa, who was just in here, and myself, there are a layer of toxic, extremely, extremely toxic individuals who are working within these what we'll call third generation exchanges that are going to come out of this shitstorm and are extremely adamant about, obviously, for pledge to hold your own keys, but also to provide a level of we'll call it proper fiduciary custody, like a traditional bank does, being bitcoin only for institutionals. So I understand that you should never leave your keys on an exchange, but we're also preparing for governance models where they're not allowed to hold their own keys. So there's a really deep balance and I think that what you're hitting on pubby is important because you can only protect yourself so much reputationally wise in this space. Like TC and Gold said earlier, you should be fucking Ostracized. Like, you really need to understand this is not about this other bullshit, it's about Bitcoin. And there's a huge segment of the market that's going to get captured by an exchange, especially a US regulated exchange, that acts like a real fiduciary for the first time in this space. And they do have proof of reserves and they'll most likely be audited either after IPO or they will give out some kind of information to show their liabilities as well. So it's a complete transition. The fraud and the corruption in this space has just shown everything is getting whittled down and we see it on a regular basis and it's just very exciting to kind of help push that extreme toxicity on some pretty high levels of capital inflow into the space. You made some excellent points there and one I want to highlight was anyone that came in, which is, I know the majority of us, you heard about this thing called Mount Cocks, Mount Cox blowing up. Everybody came in in 2017. You start hearing this thing about not your keys, not your coin. Well, guess what, man, that was being preached. But honestly, aside from a couple of small exchanges, it never really sunk in with many people, all right? Until this year. Until this year, when you started seeing everything unwind, from Luna and Celsius and Voyager, now FTX and Blockbuster, now you're seeing it unwind and you understand what that means. Not your keys, not your coin. And this isn't to say, look, if you're new, yes, practically, you need an exchange to buy your bitcoin. For many people, however, anything else, you're going to do all right with your bitcoin, you can leave it there, not a problem. You just better understand the risk. Here's the assumption you're making that one, they bought the bitcoin. They say they did all right, because it's easily just a number on a balance sheet. That's a good feeling. You log into your account and you see that whole coin you bought. That's great. Your assumption is that they have it. Okay? That's your assumption. And two, that they're going to stay solvent. They're going to stay solvent. It's not going to go away. This is the wild rest, man. And there's a reason, all right? The government obviously is fearful, fearful of an asset class that is decentralized, censorship resistant. Anything they can do that will allow anything conflated with the wild west. They don't care. The more people that lose their money, the more people that lose their money is better for them. Most people are going to find bitcoin or people that are going to stay away from it for the longer time. But I think you have some great points here, man. Yeah, I appreciate it. I just want to make one more quick comment. There are varying. Like, we've sat down on regular basis and formed products and offerings for clients that can help alleviate some of the initial transition. Right. We don't want to hold any of your keys. We don't want to hold any of it. It's a risk to us. We get a withdrawal fee on the way out. We're good with that, man. Have a nice day. Here's your keys. But we do have some smaller options. Like, for example, we can give someone an address on the blockchain to see their funds and literally have them. It's kind of like our pleb level, easy access to verify exactly what's there. But I get it. At the end of the day, the private key is the asset itself. So there's a level of extreme balance between acting as a fiduciary, like a bank, which we're happy to have that bank underneath to provide that further security for people coming in, not having to seek yield from other parts of the business like the exchange, because you have a bank underneath. But it's definitely a really intense issue that's going on right now in particularly, and I'm narrowing this to the we'll call it the institutionalization or the financial end of bitcoin. And obviously we're really excited to help miners out and help all the parts of the bitcoin space. And I couldn't be more happy to be in a community of guys like yourself. Pubby, TC, Dallas, everyone, where this isn't a fucking joke. This is truly something important and I'm ready to lose my job every day going in and speaking the truth. Yeah, here's the hard part, man. You just want to have faith in something. If I could just find faith with one institution in this quote unquote industry. I hate using that term, my God. But like you say, man, we got to slow our heroes. Every month it's another company disappointing us. It's another person that you thought was bitcoin only that is rug pulling shit coining. Whatever. That's the disheartening thing. Dear God, why can't there just be an honest damn company? And you're right. Look, I get it. There's got to be a company that can offer some sort of on exchange solution for clients. Well, you know, develop a company where it's an easy multi safe for someone to handle. I don't know. I don't have all those answers. Until then, I'll just always say my assumption is if I have in self custody, it's not mine. It's zero, it's nothing. It's gone into somebody's pocket. It sucks that we have to be like that, because I know then you get, oh, my God, they're so toxic. Well, guess what? We've seen so many people they're targeting. You get people come in, they came into Celsius, they came into Luna, and they're in the space. Oh, my God. Bitcoin is at what, 20, 30, 40,000, whatever it was at that time, they came in, well, I missed a boat. I got to find this next bitcoin. That's a nickel, because that's my ticket out of here. The system is broken outside. My 401K sucks, so I'm going all in on this thing. That's a nickel. It's going to be $30 next year, and I'll be saved. It's a battle that we love to fight, man. It gives me purpose. Gives me a great purpose in life, is to help people understand what both systems are like, but it's disheartening the number of people that are coming into a space that has genuine intentions to help people and just rug pulling them as well. That's all I have to say ",timestamp:"00:55:59-01:08:18",topics:["yield generating products","investor disclosures","influencer marketing"],type:"twitter_space",weight:8.947233200073242},{boost:0,date:null,description:"Current bitcoin mining energy situation in Kenya",episode_title:"#Bitcoin Kenya 🇰🇪 - meet the Kenya Bitcoin community",guests:[{name:"Noelyne Sumba",profile_picture:"https://pbs.twimg.com/profile_images/1585949523901292545/tWf-IwWO_400x400.jpg",ref_id:"44455b1d-76cf-49df-baa0-cd606652885b",twitter_handle:"noelynesumba"},{name:"Okjodom",profile_picture:"https://pbs.twimg.com/profile_images/1577811376487088128/J2Z4nIgI_400x400.jpg",ref_id:"4c9df92d-3bb5-4d08-9a7e-a9ba15f58f03",twitter_handle:"okjodom"},{name:"Master Guantai",profile_picture:"https://pbs.twimg.com/profile_images/1521025685078302720/w9dZwehS_400x400.jpg",ref_id:"64c326c4-d4a9-4e6c-82fe-0c9bac8a7094",twitter_handle:"MasterGuantai"},{name:"Lorraine Marcel",profile_picture:"https://pbs.twimg.com/profile_images/2361719231/German_sheperd_Puppies_400x400.jpg",ref_id:"ab30679d-7931-4921-a4f8-6fee74e412c8",twitter_handle:"lorrainemarcel1"}],hosts:[{name:"Mary Imasuen",profile_picture:"https://pbs.twimg.com/profile_images/1465290507752558596/lZVbU9np_400x400.jpg",ref_id:"2d8ed8ce-5112-4dfa-9aa2-5fa8b874af68",twitter_handle:"mary_imasuen"},{name:"Lukas Poland",profile_picture:"https://pbs.twimg.com/profile_images/1382603302160932865/RgeQnCXM_400x400.jpg",ref_id:"217a2c5a-1cfd-4840-bbff-eec43da8c52f",twitter_handle:"duczko"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/56bbafde-60ef-4e4b-b930-978429c6a635.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/9f2ebf6e-a880-4579-986c-ff0c9c517559/2cb59251-775d-4691-9c8f-30fb9d7707b9.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"3dff5b59-31e0-4ce9-8add-c8a2ba564259",show_title:"Global Bitcoin Fest",text:"so much for sharing. That sounds like a lot going on. How many people do you usually get to those meetups? Okay, so we have we it changes from 30 to 50. 30 to 50 people. Whoa, that's a lot. But part of it at our class, like the class and then the others are newbies and then we have the speakers and of course just anybody else in the bitcoin community. Okay, do you get swamped with bitcoin or so you manage to. Yeah, they come. But here's the thing, I am not that kind of a person who blocks people from getting to these meetings because at the end of the day, I want them to see why bitcoin and not shit coin. So I don't like tend to block people from coming to our meetups as long as you understand this is about bitcoin and not sheetcoin. So I find it important for them to learn and understand why we are advocating for bitcoin and not the sheet coins that they are probably participating in. And I have students, I can tell you for a fact, I've had students who are actually participating in shit coins. And they come, they listen, they learn, and they're like, okay, I'm just going to drop these and focus on bitcoin. So, yeah, so that's my approach. That's the female approach. Awesome. I guess most of us have been there, at least for sure. I was the shit corner, and I think that's the past many of us walk through. So I feel sympathy for the people in the shitcoin game. As long as they're not the main shillers, I feel sympathy. Exactly. So, Gridless, I'd like to hear a little bit about what you guys are doing with mining. And yes, could you share a little bit about that? Yes. So what we do is we find mini grid developers who are in rural communities who have overbuilt their mini grid capacity. So they have for instance, I'll just talk real numbers. There's a site in Morgana about two and a half hours outside of Nairobi that has a 50 kilowatt mini grid that was built a couple of years ago. The community only needs 30. It during the day, and then at night, between six and 10:00 p.m., the usage goes up another 10. So what that means is throughout 20 hours of the day, there's 20 kw available for use. And it's not being used, it's just being dissipated as heat. And that means that the developer, the mini grid developer isn't getting the full amount of revenue that they could get. And during those other 4 hours between six and ten, there's still 10 kw that are not being used. So what we did is we went, we walked in and we did a deal with them to buy that extra capacity as a buyer of last resort. It's just stranded electricity. And then what we do is we put in six minors in that case, because each of them takes about just over 3 kw. So we put six miners in that location on site and just started mining. The effects of that are pretty interesting in that, first of all, the sustainability of the business for that mini grid developer increases. It means they have full usage all the time. We can curtail our energy use within minutes and we can do it remotely. So it's automated even. And the plan is that we can continue to grow with other mini grids like this. So some of them will be small, 50 kw, like where we are. Others will be larger. 500 kw is the next site that's actually, we're about a third of the way built out with miners on it this week. And it might get even larger than that at some point. But really we focus on these smaller mini grids that don't have any grid connection back to the main national grid. And so it really helps strengthen them as a business. Sometimes I can't promise this at all, always happen, but at least in this case it has. Because they're getting the returns from us and being able to utilize their energy at full capacity, they can lower the cost of the energy for the people in the community. So in this case it dropped from about 1000 shillings per month per family, so household group to around 400 shillings per month. And so it's a sizable decrease in costs for a rural household. And it means that they can go from just first when families get this, they put on Led lights and then the second thing they do is make sure they can charge their phones. And then after that, if they still have some extra disposable income, they might look at buying a television or refrigerator or something like that. But what they can do is slowly, over time, this usually takes five to ten years. That community increases the amount of power they need. And with our set up and the way we've done, our business relationship with the mini grid provider is that we can just decrease the number of miners that are on site and move into a new location. So the community always comes first for power. That community means both households and local businesses. And then we come third. And then if the community and businesses increase, then we decrease. Is that clear? Does that make sense to everybody? Yeah. This sounds like the perfect model to showcase for all the bitcoin haters and energy use. Haters basically empowering local communities through bitcoin mining. What's the model? Do you buy the energy from them? That's right. We go ahead and structure a deal with the mini grid provider. So obviously we get a wholesale rate because we're coming in and buying the stranded electricity that nobody else can buy. But it is still significant enough because we're utilizing that excess energy 24/7, that it makes a significant impact on their business. Who is we? This is what we as gridless. So I should make sure everybody understands this too, that with hydro and possibly geothermal, but we're not doing that yet, that's 24/7. So it's very efficient power. As we look at the models for mining, however, if we look at solar and wind, it has a lot more variability in that the sun doesn't shine at night and the wind doesn't always blow and we can't just go put storage, battery storage in place for those dead times because that increases the expense significantly to install. So mining in those locations is a little different. You can still do it, but your return on investment goes from, you know, twelve to 15 months to maybe three years and and so you have to think a lot more you know, you have to think a lot more creatively about how you solve for solar and wind, but hydro and geothermal are particularly good for this. And how large is the market? How many minute grids are there in Kenya would you estimate that need this service? Yeah, so our estimate in East Africa, most of this Kenya, is there's about 200 stranded energy, renewable energy. Now, not all of that is going to be super useful because some of it's solar and wind. But even within the hydro mini grid space, there's a significant amount. So one of the things we did, we announced at the Africa Bitcoin Conference this last week was the Green Africa Mining Alliance. You can find out about it by going to just Gamma Africa or on Twitter. It's gamma underscore Africa. And the reason we did that is because there is a few other miners in Africa doing either on a small, very small kind of grassroots scale, like Carbon Coin is doing in Nigeria, or larger, like we see with Sebastian and his crew doing it called Big Block Data Center in the Congo. So there are a couple of people doing it in different stages, and we need more of it. Even as Grid list, we can never do all the mini grids that need this, even in East Africa, much less the rest of Africa. So Gamma is really about trying to get more people mining across Africa and creating a place that they can go to understand it, find help, be connected with good mining resources, including the people who sell it so they don't get scammed on buying the actual miners and then understanding what models work. What I'd like to see as well with Gamma is that we provide a body of knowledge and data, real information from the mining sites that can be helpful for policy and regulatory bodies as they start to make the rules around this across the continent so that they're at least coming from a position of information, of knowledge, not of ignorance. So, yes, what I'd like to do in the future is create a way that people can get real information and start their own mining. That's super awesome. Angola seems to have a fairly thriving mining community. Maybe I don't know if you're in contact with them in orland okay, yeah. Thank you. So I'd like to highlight I got to meet Eric in Ghana. Eric, thank you for the Tshirt. I really loved it. So if anyone saw the video that's the Gamma Tshirt Eric is talking about and maybe I'd just like to highlight the importance of what I saw Griddless is doing in Kenya. And so just recently there was news that came out that our solar electricity distributor is about to start billing people, that is, electricity consumers in dollars, Euros, and other foreign currencies. So this is because of the Depreciating Shilling. And of course, it's a bitching shortage of forex in the domestic market. So with this, we have companies like Gridless giving us a solution for cheap energy. And I think it's going to be a game changer for Kenya. For example, just today, I did not have power for a few hours before this space started. And I was worried, I was like, come on, what's happening? And it's been happening in terms of power shortages. So I think gridlock is doing a wonderful job and if Kenya can be able to receive cheap energy, then yes, I understand it's necessary. Thanks Darwin. What I hope we can do too, speaking to that is let me give you a story. So if you guys remember here in Kenya two weeks ago, we had a nationwide power outage for 5 hours and the people on the mini grid didn't lose power, the people that were on the main grid did. And so there's something interesting that's going on that's counterintuitive about national grid connection versus microgrid or mini grid connection. And I think especially for people in rural parts of the country, it becomes really interesting when you can start pushing electrification to the edges, making it less expensive, more available and more reliable than the national grid. And I think that bitcoin mining is the thing that can actually drive that. It's that silver bullet that was missing from it. Most people don't realize this, but any mini grid operator of any type, whether it's hydro or solar or wind, has had a real fight to be sustainable in this country, sorry, not even just in this country, across East Africa. So bitcoin mining as a buyer of last resort that's geographically agnostic, can go anywhere, I think can solve a lot of those issues and increase the connectivity and electrification that's needed in the country. So, ",timestamp:"01:28:52-01:41:46",topics:["bitcoin mining Kenya","bitcoin energy","Gridless Kenya","Kenya National grid"],type:"twitter_space",weight:8.81690502166748},{boost:0,date:0,description:"What is a speedy trial?",episode_title:"Taproot Activation Q&A with Bitcoin Devs - TABConf 2021",guests:[{name:"Andrew Chow",profile_picture:"https://pbs.twimg.com/profile_images/1452266201770496010/44FHCtZM_400x400.jpg",ref_id:"f96d87ca-5060-4021-aeb9-61db03312027",twitter_handle:"andrewrchow"},{name:"Ben Carman",profile_picture:"https://pbs.twimg.com/profile_images/1550704386007089152/pLwUSeff_400x400.jpg",ref_id:"1d1e95ba-b4af-415f-aafe-85c6dd7571b8",twitter_handle:"benthecarman"},{name:"Matt Corallo",profile_picture:"https://pbs.twimg.com/profile_images/697361498587451394/_rX0-O0W_400x400.png",ref_id:"08cb3c45-c0bc-4a60-ae5b-a1283d352c8b",twitter_handle:"TheBlueMatt"},{name:"Pieter Wuille",profile_picture:"https://pbs.twimg.com/profile_images/1264051937172836353/n7gHdLbB_400x400.jpg",ref_id:"40260d2f-3480-47d6-8515-d2e780901273",twitter_handle:"pwuille"},{name:"Vivek Kasarabada",profile_picture:"",ref_id:"60ed22d0-8cf3-410e-8a7c-9c343ae109ca",twitter_handle:""},{name:"Murch",profile_picture:"https://pbs.twimg.com/profile_images/1269477743525130241/-U843Cmt_400x400.png",ref_id:"3e2c1c73-a057-4475-9782-3bb0d3d8cc62",twitter_handle:"murchandamus"},{name:"Andrew Poelstra",profile_picture:"https://pbs.twimg.com/profile_images/1316562683009921024/FSscAYvJ_400x400.jpg",ref_id:"15fb9c53-c988-4af1-bbf0-4832d71b0a01",twitter_handle:"Blockstream"}],hosts:[{name:" TABConf (The Atlanta Bitcoin Conference)",profile_picture:"https://pbs.twimg.com/profile_images/1596233571521499138/YE8Us_Ml_400x400.jpg",ref_id:"eb1b6016-6223-4b2b-9264-2423ce66304f",twitter_handle:"tabconf"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=MrxtqAlRI2U",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"88a4665a-7414-4ccd-96e4-3fb43f93d9bc",show_title:"TABConf (The Atlanta Bitcoin Conference)",text:"For context, maybe we could explain what Speedy Trial is. My understanding is it basically allows you to put a delay between activation and signaling, but there's also a way to back out if things seem to be going wrong. The activation mechanism we have used previously for CSV and SegWit was called Bit nine version bits. Speedy Trial is a modification to this where we have the start time of the first signaling period was really soon after the parameters had been finalized. And this allowed us to then see very quickly if nodes and minors were upgrading and then were starting to signal for Taproom. And one of the other key features in the speedy trial is that we added a minimum activation height. So this allowed us to delay the activation to a height in the future once there was enough signaling and the software cab locked in. So what this allows us to do is we can see whether Taproot would fail really early on and if it would fail, then it would fail quickly and we could try a different deployment method. I'd rather mention the end time. So the end time for the signaling was also fairly short. There was a whole period of about three months, but we activated it in like four weeks. The lock in was after was it. The second or a third signal? It was a third, I think. Anyways, we have a minimum activation height so that in between the the lock in time and the actual activation time, that's when everyone can upgrade. Everyone knows that Tap Rout going to happen and so they can be ready by the time we reach that minimum activation height. And so for Taproot, that minimum activation height is that 709,000, whatever. So here a small call to action. If you're running a full node and you're not running one or 22.0 or a newer version than that, you might want to upgrade when you get home immediately. Go ahead. ",timestamp:"00:05:16-00:07:48",topics:["speedy trial","minimum height activation"],type:"youtube",weight:8.499536991119385},{boost:0,date:1632355200,description:"The overview of the current state of the ASIC Bitcoin mining hardware market",episode_title:"The ASIC Mining Hardware Market",guests:[{name:"Vincent Zhang",profile_picture:"https://pbs.twimg.com/profile_images/1158285609196109825/fuB-e6lm_400x400.jpg",ref_id:"98e7bc98-3a3b-4ddf-9b48-5dcd78973739",twitter_handle:"Whatsminer_MBT"},{name:"Vincent Vuong",profile_picture:"https://pbs.twimg.com/profile_images/1260974518547312640/n47yvbNL_400x400.jpg",ref_id:"8390e230-e36b-4e0d-9f5d-70c6635bf3c2",twitter_handle:"BitcoinVincent"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=qKeUCNXa4Uc",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"198dfd3b-7d1b-422c-b118-48520629af43",show_title:"Compass Mining",text:"kind of want to kick off the general ASIC market conversation with us today with just like a general question on an update or an overview of the current state of the market. Like, if you look at price charts for the assets themselves right now, you see a little bit of selling activity over the past couple of days, maybe a little bit of fear, some dicey news coming from different regulators around the world. But if we focus on the hardware market, like if you were to give sort of a concise update on the state of Bitcoin mining hardware right now, what does the market look like? What are some key data points or movers and shakers jostling for leadership positions? And whatnot in this slice of the market? What things sort of stand out to you? Vincent from Compass I'll toss it back to you and then vincent from what's? Minor also, for sure. I appreciate that. I personally see that. I think in July we saw a lot of people had excess inventory, but we slowly starting to see markets pick back up again, especially with the coin wrapping up. Even with that slight dip down to 42K ish, we haven't seen too much selling and too much decreases in hardware. Typically. I spoke about this on an article with Coin desk where the asics generally don't go down in value as quickly as they go up in value. And we're starting to see that a bunch of public companies are making large announcements about picking up machines for Q two, Q three, Q four of next year. And for me, I think that it's extremely bullish because there's a lot of equipment that is on the secondary markets that these publicly traded companies can't touch. And so that's why it's going to be an interesting little bit. They're basically just purchasing from the manufacturer when sometimes specifically in July and August, the secondary market was cheaper than what was on the threat from the manufacturer. And I think that once people realize that and they realize they need to take advantage of all these areas, it's going to change how people procure their asics. That is interesting. Yeah, we saw a lot of heat on secondary markets there. Vincent, from what's minor? Same question to you. When you look at the ASIC market in general right now, what's the status of the market? What are key things that you see that stand out to you? Yeah, so market so in this year actually changed a lot. So we have to say change a lot. And the first change, so what I can see is actually this change happened since last year, not only this year, but this year, the trend was enhanced. So what I observed is the capital from North America and Europe. So they invested huge since the year 2020. So the big players, they sign agreement, longterm agreement, either with us or with Bitmen, and the procurement plan and quantity is really huge. And so the trend was changed, even enhanced this year, because this year, the investors in China, they were not able to put the Arctic minus in China mining further. So some small players doing mining in China, however, the large data center, all of them are almost closed and the regulation and the policies becoming more strict. So the investors from China, they reduce procurement quantity in big quantity. So we have to say more miners are moving outside of China and we can see that. So more miners are actually purchased by the investors outside of China. This is number one. Number two is that right now the big players, they prefer purchase the minus in advance. For example, as Vincent said just now, big players, they even purchase the supply of the in the year to some 22. Okay. Q. Two. Q two. Q three. Q four. They have the contract with us or with some other purchasers. So they prefer purchase even more than half year earlier than the supply time. And so, however, we are not saying the minus in stock are not able to be sold out. So some small and medium investors, they are trying to access to the minus available immediately. And this is not a small portion. So also big quantity can be traded. And also the Easter miner. So in the month of May and June, so the Easter miner becomes really cheap due to the regulations published in China. However, it's recovered very fast. But what I can see is probably from October, November onwards. So if bitcoin price will not have a significant increase or growth, I think the price of the miners may drop down. And another point is, so right now we can say the vendors like us, ask hardware providers like us. So we will prefer have long term cooperation with big players and investors. Okay, so you can see that right now, the sales policy from asik provider vendors also change a lot comparing with a few years back. It is totally changed and slowly it is not becoming the vendor market. So also it is well balanced right now between the vendor market and the purchase market. Okay, so these are the observations I can share. ",timestamp:"00:07:45-00:15:02",topics:["ASIC","Bitcoin Mining Hardware Market","markets"],type:"youtube",weight:8.467833996035228},{boost:0,date:1671029781,description:"Aftermath of the crypto market crash: Financial standings of DCG and Genesis",episode_title:"Café ₿: GBTC was the Genesis of the Crypto Contagion w/ @samcallah",guests:[{name:"@StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"6e652629-38ec-49d8-9f5c-3ba28f80c799",twitter_handle:"StackchainSig"},{name:"@Meditation_Man",profile_picture:"https://pbs.twimg.com/profile_images/1597303881339314176/kFqDWvq0_400x400.jpg",ref_id:"cf7119ec-50a5-4ba2-a9a6-4a24835f3364",twitter_handle:"Meditation_Man"},{name:"@TomerStrolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"7af639f8-8c5c-4ce1-a43b-e8560ed40e2b",twitter_handle:"TomerStrolight"},{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:" @samcallah",profile_picture:"https://pbs.twimg.com/profile_images/1502454836981166082/cQG0YQxc_400x400.jpg",ref_id:"ee5d0119-780d-4539-9b84-83025e95c03f",twitter_handle:"samcallah"},{name:"@sonofsats",profile_picture:"https://pbs.twimg.com/profile_images/1593080311000211456/Dr_NQ9Iw_400x400.jpg",ref_id:"07f15eea-1f9a-41bc-b974-ffd370885708",twitter_handle:"sonofsats"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/75d674de-3859-49f5-abcd-927017e3a24f/b763dc91-acba-4530-9c22-88fea8193185.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"7b90a2ff-ac29-43a9-9911-0eec916e3088",show_title:"Swan.com",text:"happens to DCG? What happens now? Are these guys in trouble? What do you think? DCG and Genesis are definitely in a tough spot right now because basically they basically have huge holes in their balance sheets from having exposure to all these blow ups. Genesis had exposure to three AC. Like I just said, they also had maybe the worst trade in history when they traded $1 billion worth of Bitcoin for $1 billion worth of UST with the Luna Foundation, which basically went to zero. So they gave, like, the hardest money in the world for an Elgo stable coin. And so they got crushed on that. They got crushed on three AC, and then they had 175,000,000 trapped on FTX when that collapsed. And so Genesis has a huge hole in its balance sheet as well as DCG, because DCG actually bailed out Genesis after they blew up from three AC. And then DCG has been kind of they have a ton of debt on their balance sheet now after they did that. So essentially, they took on that Three Arrows Capital loan, that $1.1 billion hole on Genesis. They basically just assumed it on their balance sheet. And then they also took out a $575,000,000 loan with Genesis to basically try to buy more GBTC shares themselves to try to prop it up. And if you look at, like, their buys, you can just look at their SEC filings. And when they bought the GBTC shares, they're down about 77% on those GBTC purchases themselves. Basically, the problem is liquidity here, where Genesis needs liquidity to fund withdrawals and pay its creditors. But they don't. They have all these, like, long term investments on their balance sheet. They basically have a ten year loan to DCG. So that's not like a short term that's not liquid. And they also have a lot of GBTC shares which aren't really liquid for Genesis or DCG, because there's a rule where if you are the issuer of a security like Genesis or DCG, you can't sell more than 1% of the outstanding shares for every quarter. And so right now, DCG owns 66 million shares of GBTC. But according to that rule, they can only sell about 6 million or 7 million shares a quarter. And so that's why it's extremely ill liquid right now that they have all this GBTC on their balance sheets. And so basically, they're desperate for cash. And DCG owes Genesis $1.7 billion, and they're both trying to fill that hole. And so, yeah, the question becomes, what happens to DCG? What options do they have? What does it mean for GBTC holders and what does it mean for the price of bitcoin? And there's a lot of options they have. They can sell GBTC shares. But it's like I said, there's a rule about it. And I think they are doing that right now. I think that's why you're seeing the discount widen right now. You're seeing Genesis and DCG probably selling what they can, according to that rule, to try to raise cash. But again, that's not even close to the $1.7 billion hole that's in their balance sheet or just that they owe to Genesis in terms of DCG. And so that's not enough. So what else could they do? Well, DCG could raise funds. It was previously valued at $10 billion. It'd probably be a fraction of that today because that was at the top of the bull market. And so there's still value in DCG. They have a giant venture portfolio, and they can kind of leverage Grayscale itself. So Grayscale still brings in $300 million in fees a year. And so they can leverage that annual revenue to try to raise funds, to try to raise cash, essentially, so they can leverage those future cash flows. And then they have assets like CoinDesk and Foundry. They have those GBTC shares. That's about 10% of the total supply right now. They have those. They can leverage those to raise money. They also have bankruptcy claims at three AC and FTX and elementary Research. You don't know what's in that value there, but there's probably some residual value in those bankruptcy claims. And so they can leverage all those assets to raise capital. But again, that's probably not enough. And then the next thing they could do is they could sell the assets themselves. So there's a rumor that they could sell Coin for $300 million because they have consensus conference, and they actually make like 50 million in annual revenue at Coin. So they can sell that asset. They could sell Grayscale itself to another sponsor, and that would probably bring in like 400 to 500 million. But again, it's still probably not enough for them to fill the hole. And why would they sell Grayscale the trust? Because it would basically put them out of business because that's their big cash cow. And so they would basically sell the trust to raise all this money to try to stay alive. But then why even stay alive? Because you just sold your main cash cow. The next thing they could do is they could restructure the loans. And so they have a bunch of loans with Genesis and you could restructure the loan so that both parties could have more runway. And so it's the best interest, kind of, of both parties to negotiate a deal to allow both parties to avoid bankruptcy. And so you can do a lot of different things. It could raise a little bit of money for the reasons that I just said, and they could give some of that to Genesis to kind of help them pay off their withdrawals and stay alive a little bit. The Genesis creditors could roll their debt into DCG warrants so they can have a senior claim on the cash flow from GBTC. There's a lot of different ways they could kind of negotiate their debts to try to keep themselves alive. And I think that's probably what's happening right now. It's probably quiet. They're trying to figure out how they can kind of manage this and all of these things, like selling off the trust to a different sponsor, that wouldn't affect GBTC holders at all. I mean, that would just change the sponsor and none of that would affect GBTC shareholders. Now, what would affect GBTC shareholders if they seek something called Reg M exemption? And so if the SEC approved this, grayscale would have to apply for Reg M relief, which would allow GBTC shareholders to redeem their shares for the underlying assets at a one to one ratio. And so it basically eliminate the discount to NAV overnight. And so that 45% would disappear. GBTC shareholders would be able to wait. Let me see if I understand this right. You're saying that under Reg M, they would redeem in kind, meaning shareholders would get the bitcoin. Yeah, if the Sac allowed that, they would have to basically approve in kind redemption for shareholders to take custody of the underlying bitcoin. But this would pose a lot of challenges for GBTC shareholders because a lot of it is in those retirement accounts that aren't legally allowed to hold spot bitcoin. But they could redeem at one to one in cash, too. So it wouldn't be the worst thing for them either. They would just get cash, but it wouldn't be a 45% discount. Then it would be a wow, that. Actually seems like a pretty reasonable solution. Yeah, no, it is. It would be the best solution if you're a GBDC shareholder. Right? Yeah, I would definitely say that. I just don't think it's going to happen because Reg M exemption and an ETF approval are pretty much the same thing. I mean, you're basically giving Grayscale the ability to create and redeem shares simultaneously. And so it becomes political, where the SEC would be seen as supportive for the cryptocurrency industry in the wake of the FTX collapse. In other words, screw the TBDC shareholders. Like, screw all you guys. This is important to us politically, so you're just going to have to suck it up. That's messed up. Yeah, exactly. Yeah, that's exactly what's happening. And so they could do that. I just don't think it's going to happen. Now, here's where it gets interesting, is because there's no reason why Grayscale can't offer redemptions today. And if they actually cared about GBTC shareholders, they would allow that. When you say offer redemptions, what do you mean by that? Like, redemptions in kind or what are you talking about? I'm talking about redemptions in kind. So back in 2014, actually, the trust was doing this. So it was allowing the issuance of shares and the redemption of the underlying bitcoin. But then they got a cease and desist letter from the SEC, and this was kind of finished in 2014, where they had to stop doing that. Ever since then, they haven't allowed redemptions because they got a cease and desist. They're like, hey, you're not need cap. You're violating reg. M. You can't do that. And and Grayscale was like, okay, but the key point here is that it's only a violation of Reg M if Grayscale is issuing and redeeming shares at the exact same time. Now, when the premium was there, they were issuing shares like crazy because all these institutional investors were putting on this trade. And Grayscow, can you unpack that? I'm sorry to interrupt you there, but what does that mean at the exact same time? It doesn't make sense to me. What does that mean? So, like I said, an ETF can issue and redeem shares at the same time to keep the trust in NAV. That's what I mean. Right? So that's what I mean by at the same time. They can basically fluctuate and redeem and issue it at the same time. Right. And so after they were doing they got the cease and dislike from the SEC, they were essentially only issuing shares. They weren't redeeming the shares anymore. Hey, Sam. Sam, why does the SEC zero in on that particular issue? To determine that something is an ETF versus not. That's just a rule from the Exchange Act, where it's just only certain securities can do Reg M, essentially, where they issue a redeem. Usually it's like Treasuries and money market funds and things like that. It's just in the laws since the 40s or something. 30s or 40s. What we're trying to zero in on is why. I don't understand that part. We don't have to get yes, it. Doesn'T honestly, yeah, it doesn't seem important. Let's move on. They were issuing shares like crazy when they were putting on a premium trade. So they created 422,000,000 shares from January 2020 to March 2021. Now, once the premium trade disappeared, they haven't issued or created any new shares, so it's stuck at 692,000,000 shares. And so since they aren't issuing shares, they can allow redemptions right now legally. And this would close the NAV to discount almost overnight, because all of these GBTC shareholders, the accredited investors, would be able to basically have a reverse arbitrage where they could sell GBTC or redeem GBTC shares for spot bitcoin underlying in the trust and take that bitcoin and then sell it for dollars and collect the difference in the discount. And so you would see that discount get armed away extremely quickly if DCG or Grayscale just allowed redemptions. And they could do it legally. There's literally it's kind of an administrative thing, basically. If I understand right, they would have to make a filing with the SEC and say, we're no longer issuing shares, we're now redeeming shares. And at that point, they can just go ahead and do it. Yeah, exactly. Honestly, the negative to the sponsor would be that they can't collect the 2% on the value of the underlying asset. It starts to erode their assets under management, so to speak. That's exactly right. That's why they're not doing it, is because as people would redeem the bitcoin, it would be less bitcoin in the trust and that would lower their fee and that's their cash cow. And so the premium trade added bitcoin to the trust and it also added a ton of buy pressure to spot bitcoin, because people would put on this trade and the bitcoin would go in the trust and it would never get sold, it would just sit there. But if they allow it to happen. So they're trying to figure out right now, how do we stay alive without losing the assets under management, which is bitcoin? It's ideal for them to keep the bitcoin in the trust, basically, because, by the way, 2% is a gigantic amount on these assets. Oh, yeah. That's another reason why you can be critical of DCG, because the Toronto ETF is a 1% fee, and then there's another similar Osprey bitcoin trust, that's zero point 49% fee, and there's no reason to have a huge management fee for these trusts. I mean, it's a gigantic cash cow. It's unbelievable in the gold world. If you were to compare it to the largest ETF in the gold world, which is GLD, I think the sponsor collects 15 basis points or something like it's some really small amount. But the point is that if it's worth tens of billions of dollars and it starts to turn into some real. Money yeah, it costs, like, less than $1,000 to set up a trust. And basically all they have to do is collect the bitcoin, but then they just, like, give it to coinbase. So they don't really do anything. They literally just sit there and collect the 2%. Yeah. Depending upon how you manage it, the operational cost of administering one of these things could be like 100 grand plus a month. But, I mean, that's a drop in the well compared to the well collecting. It's unbelievable. Yeah, but you have to understand, like, redemptions. If they allowed redemptions, it would be good for GBTC shareholders, it would be bad for spot bitcoin holders, because, like, I said they would put on this trade where they would redeem GBTC shares for spot bitcoin and then sell the spot bitcoin to collect the difference. Where's the premium pressure in the market right away, basically. Yeah, exactly. They would meet in the middle, so the premium would meet in the middle and the spot would go down. Meet somewhere in the middle, right? Yeah. I mean, the discount would go to NAV, so GBCC holders would love it. But the reason that's happening is because the bitcoin is leaving the trust and theoretically, those institutional credit investors would sell that bitcoin to collect the discount that currently exists. So whereas the premium trade added a ton of buy pressure to spot bitcoin, if they added redemptions, it would actually add a lot of sell pressure to spot bitcoin. That's assuming that they want to hold dollars in the end, though, right? Yeah. That is assuming as the discount. There'S going to be an arbitrage. The bottom line is, if somebody can arbit and collect a spread, they're going to. Right? I mean, that's just going to happen. What is the fiduciary responsibility of the trust? I guess my question is, is there any conflicting fiduciary kinds of responsibilities at this point during whatever this process that you're talking about is going to happen? Yes. I mean, this is why there's been a recent lawsuit that just got filed by Firtree saying that Grayscale basically breached the trust agreement by not allowing shareholders to review relevant documents, as well as not allowing a redemption when there's no legal reason for them not to allow it. And so I'm not a lawyer, but they're getting sued for potential mismanagement or wrongdoing of the trust because they're basically hiding behind this idea that they're going to get approval for BTF, because that would allow the discount to disappear, but then it would also allow the bitcoin not to leave the trust. And so it's their best option. Right. It's the best option for GBC shareholders, but it's also the best option for Grayscale because they would get to keep their AUM, but they keep getting rejected. Right. And the SEC just had a response on December 9 that basically was very like they were just like, this isn't happening, is how I would summarize it. And so Firtree, in that lawsuit, they're saying they keep hiding behind this idea that they're going to get approved from an ETF and that's why they're not allowing redemptions right now, but it's not going well and GBTC shareholders getting hurt for it. Yeah, that seems like a pretty bullshit excuse because we're going to become an ETF, therefore we're not going to I mean, that's pretty bullshit, obviously, to me anyway. And the way they kind of change the trust charter over the years, that's another thing they have a problem with, because shareholders used to have kind of ways they could vote greater than 75% to avoid any kind of, like, liquidation. They. Had some rights before, but as of 2017, Grace Kell basically removed that in the trust. And now it's basically all in their court in terms of what they can do. And so there's a lot of issues around how they change the trust charter and basically give all the power to Grayscale and not to any power to the shareholders. And that's kind of all in this lawsuit that just came out, like, last week. But it's been an ongoing thing for years now. ",timestamp:"01:24:54-01:44:01",topics:["DCG","Genesis"],type:"twitter_space",weight:16.40026499856909},{boost:0,date:1677582e3,description:"The goal of Blockchain Boy",episode_title:"Ep. 514 The Future of Crypto in the Media with Blockchain Boy",guests:[{name:"Lucas Dimos",profile_picture:"https://pbs.twimg.com/profile_images/1092408696838197250/n0-St2nZ_400x400.jpg",ref_id:"9ac17e2f-49bd-4fc5-bfe5-2f380ca63574",twitter_handle:"lucasdimos"},{name:"Blockchain Boy",profile_picture:"https://pbs.twimg.com/profile_images/1602154101642592256/A0OX97CT_400x400.jpg",ref_id:"4b070a6f-bcc8-4708-abaf-cc830709600f",twitter_handle:"BlockchainBoyy"}],hosts:[{name:"Aaron Malone",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"bd103540-8c0a-4ab3-b5cd-24a3f2c43ab2",twitter_handle:"pizzamind"},{name:"Bryce Paul",profile_picture:"https://pbs.twimg.com/profile_images/1182725652794892288/QbDOKHcP_400x400.jpg",ref_id:"0d670dbf-f434-43b6-b454-8e5345d7ee51",twitter_handle:"BrycePaul101"},{name:"Pizza Mind",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"16cb01cf-9f04-45db-a440-47259b02b86a",twitter_handle:"pizzamind"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/93a6fe5b-364c-43f4-9f38-7da3e811460b.jpg",keyword:!0,link:"https://audio1.redcircle.com/episodes/68f31cee-f404-40fe-85d7-a406019e916f/stream.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"2485d5dc-6159-4638-aef1-e645f226a8a1",show_title:"CRYPTO 101",text:"gamble to bet on them. Like anything is. Same thing with Raddix, like I mentioned before. Although anything but salon or cardano I'll just say. That interesting take. All right, yeah. Could you expand on that last point? Anything but solana and cardano. What's the reason? That's half a joke. I don't mind cardano, but I think Salona is pretty centralized. VC garbage. I've been calling it Mid forever, and I felt very vindicated when it finally shit the bed. Fair enough. Well, you are only a couple of years away from really being able to do whatever you want in life, and I mean whatever you want. Your businesses are going to be able to be ran on autopilot. You're going to have more money than you can count in a multitude of different currencies with the way things are. Headed to be able to rent a car in the States. Yeah, well, you can't do that yet. But the point I'm getting at is what are your real dreams and goals? Like, when you're fully empowered to do literally anything you want in this world, what do you want your impact and your legacy to be? That's a great question, and I'm still figuring out what I really want to do with the rest of my life. I just know that I really like building cool things with cool people, and I think I'm always going to do that, no matter whether it's big or small. I think it's just I have to do something. I'm like a shark. Sharks have to keep swimming or they sink. Right? And so it's very similar with me. Maybe I'll have some more time to go live in the country and be away from people for times. But no, I really like empowering people to be their best selves. That's really what makes me the happiest, is, like, I'm a very loving and caring person, and I love to see people do good things and succeed. So I would really love to get into sort of micro loans and sort of entrepreneurship guidance and maybe even ethical VCs, because I don't think a lot of VCs are very ethical. And so I'd love to do something along the lines of that to empower more entrepreneurs to have an effect in their community and environment outside of Web Three, too. I've been doing micro loans on the platform called Kiva for many years, and I think it's super cool and needs a Web Three version. Yeah, I've actually never heard of Kiva. Tell us a little bit more about what micro loans are. And has that been a way that you could generate passive income or anything? No, it's just mostly a tax write off for really rich people. It's not like super well known, but you get to actually empower entrepreneurs in other countries. Oh, there's Jonah. Jonah. I'm on a podcast. Oh, he's bringing stuff. Jonah. What's up, brother? Thanks, bro. No, he's one of my fantastic team members over here. Thanks, bro. I wish I got a coffee delivery in the middle of podcast. That was sick, wasn't it? Look at that. Yeah, look at that. Dude, he hooked me up. I bet there's even an espresso shot in there. That's crazy, man. Fantastic. So where was I? Oh, yeah. So you can empower entrepreneurs from other places around the world who need maybe an $800 loan to get more fertilizer for their crops, to double their yield, or who are opening a small store in their community. And it's a way because charities actually can be actually very damaging ",timestamp:"00:21:17-00:24:30",topics:["Blockchain Boy"],type:"podcast",weight:79.08077270705402},{boost:0,date:1642464e3,description:"Channels jamming and Lightning invoice on the Lightning network",episode_title:"Lightning for Plebs - TABConf 2021",guests:[{name:"ketominer",profile_picture:"https://pbs.twimg.com/profile_images/1245972079528329218/YDUD9N2Q_400x400.jpg",ref_id:"2f8b0b59-6f23-4c89-973c-668cc7666998",twitter_handle:"ketominer"},{name:"Ryan Gentry",profile_picture:"https://pbs.twimg.com/profile_images/1362751223217160203/ekMa_yY-_400x400.jpg",ref_id:"8fe78b55-bc38-40df-9cb5-ffd5c84166a2",twitter_handle:"RyanTheGentry"},{name:"Dread",profile_picture:"https://pbs.twimg.com/profile_images/1532557131819491328/vvs1cD-7_400x400.jpg",ref_id:"e61af76b-8fbd-4719-b753-0a70edd22fa8",twitter_handle:"PoleVaultDream"},{name:"Andre Neves",profile_picture:"https://pbs.twimg.com/profile_images/1604172627550969856/bYCGb7Ev_400x400.jpg",ref_id:"227e071d-f8a6-4137-8078-729fa9eb3a13",twitter_handle:"andreneves"},{name:"Nate G",profile_picture:"https://pbs.twimg.com/profile_images/1542983032507858944/9w_UUx5Z_400x400.jpg",ref_id:"bda29551-f17f-452c-9204-4d6cafdf4f3b",twitter_handle:"natecgriffin"}],hosts:[{name:"TABConf ",profile_picture:"https://pbs.twimg.com/profile_images/1596233571521499138/YE8Us_Ml_400x400.jpg",ref_id:"d2f50d77-ec8d-4554-bc40-387ababbb536",twitter_handle:"tabconf"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=mQOBuXsGZt0",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"cd29b1a1-f94b-4eee-84ce-ddf8a4fcb0c5",show_title:"TABConf (The Atlanta Bitcoin Conference)",text:"let's theorize a little bit. You know, I know, like, one that always, you know, the the Dodge's always point out is the flood and loop attack, right? Which I think is like mostly mitigated by anchor channels. But what are some things that, you know, like, for instance, somebody a country that really doesn't like Bukle and El Salvador. Like, what are some things that you think they could do to try and mess with their infrastructure? What were some things you'd watch out for? Jam all the channels. All of them. Just jam them all. Okay. It's a real thing. Channels have limits in HLCs and in flights. And also there are a couple of ways where you can essentially deploy very small sorry, very small value payments in terms of let me rephrase large volume of payments with very small amounts. And then you can also lock up liquidity on routes by using small number of payments with large amounts. So for making a payment through Ryan and Ryan's node goes offline after the HLC sent, I now have liquidity stuck on one side and I can't do anything until it settles, right, until it cancels or airs out. So imagine someone spending an attacker, spending up hundreds of nodes, deploying some capital to the network, and then using some form of scripting to jam a lot of channels. All of a sudden in El Salvador, you can't make a payment through open node to buy your McDonald's, right. Because channels are jammed or liquidity is not unavailable. So channel jamming is one. I guess spamming and probing is a big one as well. On our nodes at least, we're seeing the numbers vary, but any given month is like 50%, 60% are probing, probing payments and probes are essentially I'm trying to get an estimate of whether this payment will clear and I'm trying to get an estimate of the fee that will cost me. So a lot of wallets do this probing mechanism to find out for users. And so, hey, your payment is 1000 SATS. It's going to cost you ten stats to make this payment and you send that fake payment across once the returns failed back, you now have a very discreet estimate. We're seeing lots of spam in the network, but again, it's in its infancy. What happens if someone is actively trying to spam it? Twenty four seven? I think we have yet to see what it's like. And there's also a vulnerability in the invoices, right? Like if you give an invoice out, like let's say you're asking for tips on Twitter, or you put an invoice out on a post, you're showing your information, right? Like they can see your note at that point. So I feel like, what is it, about twelve that might solve that, but things like that, maybe not. Things that provide more privacy for us. Would be good to be able to remain anonymous as possible while still conducting your transactions. Rendezvous routing. Let's go from your lips to God's ears, man. Yeah, right now a regular lightning invoice can be decoded and you can see. Imagine that I give you an invoice, you pay it and you could decode the invoice and says, that is actually going to me. Right? But if I can give you an invoice where you don't see where the final destination is, that protects your nodes privacy, but you still get paid for it. So that's something that hopefully in the future we can get going. Is rendezvous the same as trampoline? No. Yeah, you give me that. Fight for it. You're going to get in trouble asking that. I think conceptually, high level, they're the same. But this is the type of thing where it's like the differences are so small, but so important that Tbast and Connor would like get into a fistfight or something. Hilarious. Yeah, I think all of those attacks are. The thing that I love about the Bitcoin community is that we're very honest about this type of stuff and we're continually critically thinking about what are the ways in which this could fail, what are the ways and thinking about what are the ways that we can protect ourselves against these adversarial environments. Because absolutely, I know it's like the protocol developers a lot of the time are kind of like, this is ridiculous that you guys are having fun and making friendship channels and stuff. Like, you know, this is going to be an adversarial environment. And I think we are aware, but it just hasn't been the case just yet. And so I think kind of to close here again, this has all been about lighting for Plebs. I'm curious. The Plebnet now, I think is it like 1000 registered nodes. 5000 registered nodes. Holy shit. Thousand nodes. Okay, 1000 registered nodes, 5000 users, which is incredible. ",timestamp:"00:24:02-00:28:52",topics:["Lightning Liquidity","Lightning invoice","Lightning channels jamming"],type:"youtube",weight:8.078713541988659},{boost:0,date:1637366400,description:"Education efforts and safety regulations in the nuclear energy sector",episode_title:"Securing Bitcoin With Nuclear Energy",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"},{name:"Eric McErlain",profile_picture:"https://pbs.twimg.com/profile_images/1252969137/Screen_shot_2011-02-23_at_10.59.21_PM_400x400.png",ref_id:"4815365d-44d0-4b06-9d9e-32070158d03c",twitter_handle:"atomiceric"},{name:"Puru Goyal",profile_picture:"https://pbs.twimg.com/profile_images/1590742805613203456/QAtYq_C__400x400.jpg",ref_id:"c24af059-b38b-4ce5-9547-9192c9eff579",twitter_handle:"purugyl"}],hosts:[{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"},{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=YBaA17NODlA",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"475acbce-5a5c-4881-a93d-7d41edf1ae84",show_title:"Compass Mining",text:"Eric, I wanted to pick up on that note a hint to you next exactly for the reason that I know you work in a lot of the education efforts and dialogue and conversation. And as I'm sure we're all familiar, facts and data don't always win the day, and bitcoin people know that as well as any other industry. I'm just curious if you have any extra color to add on how those conversations are going in terms of education and presenting the tech as it stands, reliability, safety and just general promise. How are those conversations going? Well, I think you're exactly right. A lot of times in our industry, we argue with facts and data in the face of emotion, and it doesn't always work. I think what's important, and I take this line from one of my colleagues in the industry it's no more and fearless. And the more that we talk about what our real record is. And I think we've got a record to be proud of, especially here in the United States, since Three Mile Island, where we've not only done tremendous work in upgrading safety standards and operational standards here in the United States, but we've also done a lot of really important work in terms of regulating ourselves. Coming out of Three Mile Island. We established the Nuclear Regulatory Commission. We used to have the Atomic Energy Commission, which had the dual mission of promoting the industry and guaranteeing its safety. And it was decided by President Carter and Congress that those two missions were incompatible. We needed to break this apart. So we created the Nuclear Regulatory Commission, the Department of Energy to it on the promotional aspect of that. So that was one thing was great. We have a very, very tough regulator. There are two resident inspectors at every plant in the United States. And those guys and women and women have the ability to shut those plants down if they're operating unsafely. It's never happened, but they do have the authority to do so, and people need to know that. It's something that's very important to know. The other thing that's important to know is that also growing out at Three Mile Island, we established something called the Institution of Nuclear Power Operations, which was an internal industry peerreview group where we would all evaluate each other's operational safety together and decide and rank our plants according to how well they matched up against our standards. Column one through column four. And the fact is that within our business, you're known, I mean, number one is the best and number four is the lowest. And if you're a plant manager. You're running a plant. You following the info column force into your career. We do not tolerate that kind of operational pace in our industry and we got to get people up at the very top because the fact of it is that we're held to a different standard than other industries and we're not afraid of that. We've been held to different standards now for a very long time. We're not afraid of that. And we need to tell that story. We need to be very out front about that. A lot of really talented social scientists who look at our industry did some research a couple of years ago and they found that a lot of the public still has what they call existential threat about nuclear power. It's born out of the fact that we're born out of a weapons program. Even the first commercial reactor in the United States was built by the United States Navy under the supervision of Hymen Rica Over. You pile that on top of you can't see radiation. You can't smell it, you can't taste it. It feels like a risk that you can't mitigate when in fact, we know what we can do and we can what we need to do is we need to meet people where they live and we need to address their fears and let them ask any question that they like. We want to let them know that we have safety systems on top of safety systems that guarantee the operations of our plants. We've got to talk about things like the people who seem to support us most in the world or the communities that are closest to our plants. They know the people who work in them. They know how much their communities mean to them and when they go to work every day. They know that they're guaranteeing not only the safety operations of the plant, they're also guaranteeing the continued operation of economic engine for the community that they live in. These plants throw off tens of millions of dollars in property taxes. They provide direct support for education and first responders, public safety, public libraries. I mean, they're really, really very important to the communities that they're based in. So I believe as long as we're upfront about who we are, what we're doing, meeting people where they are and addressing their fears directly, I think we're in a much better place than we were, let's say, 30, 40 years ago. And I was very small and still remember my father telling me about his tour of TMI back in the ",timestamp:"00:24:37-00:29:38",topics:["Nuclear Energy Education","Nuclear Energy Regulations"],type:"youtube",weight:8.023174886839682},{boost:0,date:1596686400,description:"Environmental Issues in Planet",episode_title:"Chat 45 - Bitcoin an Energy Revolution A panel at the VOB Conf",guests:[{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"Phillip Sandner",profile_picture:"https://pbs.twimg.com/profile_images/1043824764161335296/2SW3duCV_400x400.jpg",ref_id:"e1996e82-0354-421c-85d5-f18eebec9506",twitter_handle:"philippsandner"},{name:"Jesse Peltan",profile_picture:"https://pbs.twimg.com/profile_images/1123954968636088326/EAjHUGDE_400x400.png",ref_id:"96309505-caeb-47bb-a1ba-712b97292675",twitter_handle:"JessePeltan"},{name:"Christopher Bendikson",profile_picture:"",ref_id:"d72ead54-7bff-4874-870f-123e665fddfd",twitter_handle:""},{name:"Christian Stoll",profile_picture:"https://pbs.twimg.com/profile_images/3296579573/69ebedb479a9bdb9d536fe887e2d3113_400x400.jpeg",ref_id:"ff74d59c-f846-4b16-a5e5-771fb8139f18",twitter_handle:"Granddragon14"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN6935967461.mp3?updated=1627959014",node_type:"clip",pub_key:"",ref_id:"4fdf8ab1-a3e8-4390-b618-a8a915fa3f68",show_title:"Bitcoin Audible",text:"issues that we have on the planet. Today are how is steel produced, how are metals produced, how is concrete produced, how is electricity produced and how it's farming done. Everything else makes almost no difference. Those are the big issues. If our ground is in any way. It doesn't matter how much energy we use. If our mining and our metal production is done in a clean way, it doesn't matter how many metals we use. The earth is completely full. The cost of the earth is just materials. So if we're looking at the long term sustainability, it's a question of how these couple of processes are done. And so the question of bitcoin's impact on that gets such a small percentage of consumption. The question is more of which way does it incentivize production? Because if you see even a small swing in the way that if bitcoin for example, is able to balance grids and enable them to use higher percentage renewables, then you'll see a higher renewable penetration and you'll see overall lower utilization of fossil fuels than you would in a situation without bitcoin. ",timestamp:"00:29:09-00:30:22",topics:[],type:"podcast",weight:7.965680956840515},{boost:0,date:1672207217,description:"Satoshi Nakamoto on Double Spin, Proof of Work and transaction fees",episode_title:'The Orange 🌞 Reading/Discussion "The Book of Satoshi" & Bitcoin News',guests:[{name:"CouncilmannJamm",profile_picture:"https://pbs.twimg.com/profile_images/1251040014152024066/dD3b2eA4_400x400.jpg",ref_id:"6c989c2c-d24d-49a2-8eb1-1d2f1c47f347",twitter_handle:"jamm_councilman"},{name:"thotsnplayerz",profile_picture:"https://pbs.twimg.com/profile_images/1608733749663109120/wwYEZgF2_400x400.jpg",ref_id:"66bbe365-9e85-4c34-9d51-39d8b49937b7",twitter_handle:"thotsnplayerz"},{name:"Will Schoellkopf",profile_picture:"https://pbs.twimg.com/profile_images/1487515153302130691/t5sDMzZW_400x400.jpg",ref_id:"461e2245-1672-4fa1-94f5-7aaf1afa531f",twitter_handle:"realBitcoinDog"},{name:"OKIN_17",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"dbcdeab8-4824-43f7-aeb8-2b9eda6cbbad",twitter_handle:"OKIN_17"}],hosts:[{name:"SatoshisJournal",profile_picture:"https://pbs.twimg.com/profile_images/1518661993103859712/y_QefqVZ_400x400.jpg",ref_id:"63fac069-bfe9-49ae-b52c-1d1f226b3275",twitter_handle:"SatoshisJournal"},{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"50023cce-8a6f-4974-ad3b-fd7a9c0abf19",twitter_handle:"ToxiKat27"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/ecefba20-39fd-4974-8388-066857965b2a/cf486c39-08f9-4ada-9b72-7a297ad74d74.mp3",node_type:"clip",pub_key:"",ref_id:"bd8acc65-31a6-4d6c-93e2-cb91d3909825",show_title:"Satoshi’s Journal",text:"15. It's entitled more on double spend proof of work and transaction fees. In this exchange, Satoshi provides several clarifications and discusses compensation of miners, ie. Nodes via transaction fees once the entire supply of Bitcoin has been created. So once again, he's asked about that. On Monday, November 7 17th, 2008, at 904, Satoshi Nakamoto wrote I'll try and hurry up and release the source code as soon as possible to serve as a reference to help clear up all these implementation questions. Ray Dillinger, who goes by I Guess Bear, wrote when a coin is spent, the buyer and seller digitally signed a blinded transaction record. Satoshi Nakamoto replies only the buyer signs and there's no blinding. If someone doublespends, then the transaction record can be unblinded, revealing the identity of the cheater. Identities are not used and there is no reliance on recourse. It's all prevention. This is done via a fairly standard cut and choose algorithm where the buyer responds to several challenges with secret shares. Okay, so I'm trying to remember who this person was. I think this is Ray Dillinger that said that. So Ray says this is done via a fairly standard cut and choose algorithm where the buyer responds to several challenges with secret shares. Satoshi says no challenges or secret shares. A basic transaction is just what you see in the figure in section two. A signature of the buyer, satisfying the public key of the previous transaction and a new public key of the seller that must be satisfied to spend the next time. Then Ray Dillinger says they may also. Receive chains as long as the one they're trying to extend while they work, in which the last few links are links that are not common with the chain on which they are working. These they ignore. Satoshi says. Right. If it's equal in length, ties are broken by keeping the earliest one received, and then Ray says, if it contains a double spend, then they create a transaction which is proof of double spending, add it to their Pool A, broadcast it, and continue work. Satoshi responds, there's no need for reporting of proof of double spending like that. If the same chain contains both spends, then the block is invalid and rejected. Same. If a block didn't have enough proof of work, that block is invalid and rejected. There's no need to circulate a report about it. Every node could see that and reject it before laying it. If there are two competing chains, each containing a different version of the same transaction, with one trying to give money to the one person and the other trying to give the same money to someone else, resolving which of the spends is valid is what the whole proof of work chain is about. We're not, quote unquote, on the lookout for double spends to sound the alarm and cast a cheater. We merely adjudicate which one of the spends is valid. Receivers of transactions must wait a few blocks to make sure that resolution has had time to complete. Wouldbe cheaters can try and simultaneously double spend all they want, and all they accomplish is that within a few blocks, one of the spends becomes valid and the other becomes invalid. Any later double spends are immediately rejected once there's already a spend in the main chain. Even if an earlier spend wasn't in the chain yet, if it was already in all the other nodes pools, then the second spend would be turned away by all those nodes that already have the first spend. Then Ray says. If the new chain. Is accepted, then they give up on adding their current link, dump all the transactions from pool l back into pool A along with transactions they've received or created since starting work. Eliminate from pool A those transaction records which are already part of the link in the new chain, and start working again trying to extend the new chain. Satoshi says. Right, they also refresh whenever a new transaction comes in, so Al pretty much contains everything in A all the time. Ray comments CPU intensive digital signature algorithm to sign the chain, including the new block Al. Satoshi responds It's a hash cache style shaw 256 proof of work partial preimage of zero, not a signature. Ray says, Is there a mechanism to make sure that the chain does not consist solely of links added by just three or four fastest nodes? Cause a broadcast transaction record could easily miss those three or four nodes. And if it does, and those nodes continue to dominate the chain, the transaction might never get added. And Satoshi responds, if you're thinking of it as a CPU intensive digital signing, then you may be thinking of a race to finish a long operation first and the fastest always winning. The proof of work is a hash cast style two shot, 256 collision finding. It's a memoryless process where you do millions of hashes a second with a small chance of finding one each time. The three or four fastest nodes dominance would only be proportional to their share of the total CPU power. Anyone's chance of finding a solution at any time is proportional to their CPU power. There will be transaction fees, so nodes will be an incentive to receive and include all the transactions they can. Nodes will eventually be compensated by transaction fees alone when the total coins created hits the predetermined ceiling. So they continue. Ray Dillinger then says, also the work requirement for adding a link to the chain should vary with the numbers of links adding to that chain in the previous week, causing the rate of the coin generation to be strictly controlled. Satoshi says right. Ray says you need coin aggregation for this to scale. There needs to be a provable transaction where someone retires ten single coins and creates a new coin with denomination ten, et cetera. Satoshi says every transaction is one of these section nine combining and splitting value. So I guess he just referred to him a section. So yeah, in that. Exchange they use the word note a lot, but in the context of that it's synonymous with miners, just to make that clear. So a miner of course, is a computer that is specifically used to mine Bitcoin. That's all it can do. And it validates transactions and the node is what? Verifies transactions. So, like on the Bitcoin blockchain, for you to be truly certain that your transaction has gone through a minimum of six, validations is required, meaning that six other nodes have looked at your transaction and deemed it verifiable. And once it's verifiable, you can essentially be confident that you have achieved, not consensus you've achieved, yeah, consensus, your transaction is good to go. And so Portland asked me a trick question the other day. He said, if there are five blocks that have been mined, how many times has your transaction been verified? And it just stumped me, I don't know why, because the thing that came to my head was that minimum six validations, I just was stumped. And he asked me like three times, and I said, I don't know the answer. And he says five. And anyway, so the answer was right in front of me. So every block is basically mined approximately every ten minutes, and in five blocks you can basically equivocate that to five validations of your transaction. The more validations of your transaction, the more set in stone, so to speak. That transaction is. So it's just like if you solve a problem, if I give you a sheet of paper and it says has an equation ten times ten and I give it to you and you have to write the answer on the paper while you put 100. And then I tell you to give that to six other people to make sure that your calculations are right. Those six people check, and they do indeed concur that ten times ten is 100. And since I made the rule, when I get those six confirmations from those six people that you did your math correctly, then that gives me confidence that the calculation is done is correct. And so that's what basically the nodes are doing. When you broadcast a transaction, the nodes are all looking at it, and it takes a minimum of six to basically solidify that into the bitcoin blockchain forever. That'll give you full insurance, full confidence that your transaction is good to go. And all that happens in basically six blocks, which is 60 minutes. And the beautiful thing about that is the fact that that's all being done with computers and no intermediary. Whereas if you were to go and swipe your card at McDonald's to make a transaction, you're doing that first through essential authority, and the verifiability of that transaction doesn't happen. And the finalization of it doesn't happen until basically 30 days when you get your bank statement, and it shows that you have a charge for $10 at McDonald's. So, relatively speaking, bitcoin is way faster than legacy systems. Although you can swipe your credit card fast and think that you have paid for what you think you paid for, there could be an error in the system, and maybe you could get charged falsely for something, or someone could go and double pay for something, or someone could steal your credit card and pay for other things. So that's the problem with legacy system, is there's just so many damn intermediaries, whereas bitcoin, you just freaking do your lightning transaction or your bitcoin on chain transaction, and there's no one in the middle. So it's pretty profound. ",timestamp:"01:07:07-01:19:03",topics:["Satoshi Nakamoto","Double Spin","Proof of Work","transaction fees"],type:"twitter_space",weight:23.245500377568373},{boost:0,date:1672167683,description:"Bitcoin as a superior savings system",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Beer and Plebs! 🍻😂🤌🏻",guests:[{name:"Dr. Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"51a969bb-dbf7-4d20-b128-74dcc5f560f6",twitter_handle:"VailshireCap"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:"Laura Shin",profile_picture:"https://pbs.twimg.com/profile_images/1539462748173746176/hxR80FYT_400x400.png",ref_id:"a56a7b4d-edca-41d5-9d51-33396aa05b96",twitter_handle:"laurashin"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders Jensen",profile_picture:"https://pbs.twimg.com/profile_images/1382039124991954947/Wb9kT7MO_400x400.jpg",ref_id:"af45195e-77a6-463f-ba64-29c6b0437d9c",twitter_handle:"andersjensenorg"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2a1450bc-0649-4dc5-8ec9-1474af1ea1c3.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/f7b6cfcb-7cd4-4401-a3fb-7735bb570c07/2ae49fca-a048-4a34-93b9-247513af5699.mp3",node_type:"clip",pub_key:"",ref_id:"433eb4ba-ba64-468f-9e3c-130fbc948adf",show_title:"Anders_🍆",text:"what. Do you do in your IRA? What can you put your money in that's going to be better? Well, the one I have doesn't have it's limited to some of the access. In fact, once I found bitcoin, those contributions stopped, to be honest with you. And, yeah, whatever they're in, they're in, but they're limited in where they can go, you see? So I'm letting that one ride out. Just another hedge, but everything else now, man, is straight. Bitcoin, brother. What's going on, Clark? Just chilling, man. Putting up some overhead storage in the garage. Take a couple of weeks off at the end of every year to recoup. Kind of feel blessed that I was able to work 50 weeks out of the year. So take these last two off. Yeah, on stage, Craig. Well, Jeff Ben, I don't know who else is going to Miami. ANZ and I, we're starting to spread our wings a little bit this year. We made it up to Charlotte for Halloween. Anderson pacific bitcoin. Now we're rolling into Bitcoin Day in Naples. It's been really cool to see all these other conferences and meetups start and look, I don't even care how small they are to get their foot in the door, but hey, we may have a dinner date with Fosse and Lawrence LaPard. They're going to be down there, man. So we'll hook up with them. And I think we're trying to get James Lavish to go. So when you get some of those quality folks showing up at a smaller type venue, it's really cool, man. You get to just hang out. You meet them offline, just the nicest people in the world. So if you're in the central, southeastern, southwestern Florida area and can make it over to Naples, yeah, we'll be there. Hey, shoot, I'm coming all the way from that west coast. If you're anywhere in the United States or anywhere in this universe, you should be at bitcoin day. It'll be fun. So the problem is, puppy. I think the reason why I haven't been given a feeling of 100% confirmation of our little gig there is probably because, as you said, they're trying to get James Lavish. If he's coming, I don't think there's any room left for us, bro. He'll be on stage with us if we do it. That's right. That's what we'll do. Just like Dr. Jeff came on. Toxic happier in Swan Dome, pacific bitcoin. But he was big timing us after 15 minutes. He just left. He just walked out. And you know why? Because he is part of a documentary. When is that coming out, Dr. Jeff? Well, first of all, I left because you always got to leave early to keep the people wanting for more, right? You can't overstay your welcome. So that's number one. That's the number one. Rule two, that documentary, I don't know when it's coming out. They're doing a good job with it, though. It's pretty sweet, but we'll see. So I think they interviewed a bunch of people at the conference, and I think they're going to try to get it out as a Netflix kind of movie. And I can't remember what they're calling it. It's like, God bless bitcoin or something like that. And just basically what bitcoin is. And I like to talk about sort of the social justice side of bitcoin and how it's meant for the plebs, not for the institutional elites and things like that. I don't know when it's coming out, but I'm guessing sometime maybe this year. I love it. Just like casually. So this documentary about me is going on the biggest network in the world ever called Netflix. No, we're just happy for you, Jeff. I'm looking forward to see it. I know if you're in it, it's going to be high quality work. So a quick shout out on that note to JD down there is Bitcoin Bacon. He does documentaries as well, and he's going to do one on toxicity. I'm honored and looking forward to play a small role in that. And yeah, that's it, I guess. But when it comes to bitcoin, really, the way I look at it is it's my love. If there's anything, bitcoin is love. And ",timestamp:"01:12:02-01:16:37",topics:["Bitcoin Hodling","Pacific Bitcoin Conference"],type:"twitter_space",weight:22.774441499003483},{boost:0,date:null,description:"Bitcoin Timechain: How Difficulty adjustment factors into the Timechain",episode_title:"Café ₿: Bitcoin News, Bitcoin Timechain ⛓Day w/ Ant & TC",guests:[{name:"@2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"190b5001-a42a-46cc-b0d3-b6f74c625648",twitter_handle:"2140data"},{name:"@Meditation_Man",profile_picture:"https://pbs.twimg.com/profile_images/1597303881339314176/kFqDWvq0_400x400.jpg",ref_id:"cf7119ec-50a5-4ba2-a9a6-4a24835f3364",twitter_handle:"Meditation_Man"},{name:"@TimechainStats",profile_picture:"https://pbs.twimg.com/profile_images/1316207411741569028/LpDkqBMv_400x400.png",ref_id:"48e0e34d-8e04-47c0-972c-96cda708a719",twitter_handle:"TimechainStats"},{name:"@TimechainCaL",profile_picture:"https://pbs.twimg.com/profile_images/1589772501638184961/0qP3C4Wk_400x400.jpg",ref_id:"72d94cc5-b62e-4fe2-8275-837eab35a74a",twitter_handle:"TimechainCaL"}],hosts:[{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"},{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/678e39f2-a92a-4745-b875-02645e38e747/9499bd7b-c204-4ad2-aa5b-d046f95f5a09.mp3",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"49fe88a8-79ec-423c-a550-a32eb875f090",show_title:"Swan.com",text:"And so I think the difficulty adjustment is a huge part of this, right? And so I don't know if either one of you guys can extrapolate on how the difficulty adjustment plays into this. Anybody could jump on that. I can comment. We could go for it. Yeah. So basically, depending on how quickly the blocks are coming in or how slowly the issuance of bitcoin is set in stone, or the targeted issuance is set in stone, so we know how many bitcoin should be mined in a given span of time. And so if blocks are coming in too quickly, in other words, if the timestamps are coming in closer than ten minutes, on average than every 2016 blocks, which is roughly two weeks, if they're coming in the way they should be. But if they're coming in quicker than the difficulty goes up, and it gets harder to mine. And the reason why they were coming in quicker in the first place is very likely because there were more miners on the network mining than there were the previous two weeks. And so they were hitting those blocks a little bit faster than they were before. So when the difficulty goes up, then all those new miners that just joined have to compete in a little bit harder fashion to bring in new blocks and you get the issuance back on track. And that's part of I think this is also like a very key point of what makes bitcoin hard money as well, right? Like the fact that we can predict how much bitcoin is going to be mined far, far into the future. We know with a pretty high degree of certainty that on average, for the next year and a half, 900 bitcoin are going to be mined a day, right? It might be like a few bitcoin more, a few bitcoin less, but in terms of any monetary system that we've ever had as humans, I mean, we've never had even anything close to this degree of certainty, right? I mean, it is fucking insane how crazy that is. Right. We have a totally automated system that handles the issuance of Bitcoin and there's really nothing else like it. It's one of the most exquisite engineering solutions ever in my mind. And the fact that it's such small lines of code, it's a beautiful system and once you fully understand or start to understand the way that it works, you'll lose a lot. It smashes a lot of the fudge out of your mind, like minor death spiral, stuff like that. Whenever you start hearing these headlines about price being a certain point and like, miners are going to go off the network and oh my gosh, Bitcoin is going to fail and die, they're not thinking about the difficulty adjustment when they write those types of headlines. Well, maybe they are, but they don't. Yeah. And the other thing that is important to remember is despite few lines of code, there's the whole fact that the code meets the real world through difficulty adjusted proof of work. So it's not just the fact that those in the mining portion of the architecture are having to expend real world energy at a real cost, and that this difficulty adjustment kicks in every two weeks to ensure a balancing effect. No matter how many or how few participants are mining in order to target ten minute average block times. This is where the rubber meets the road. It's code, it's real world participants, it's the boundaries and limitations of the expenditure of real cost and real energy. All these things coming together. And this is why this thing, I think, is so challenging for people who are on the outside just peering at the price and trying to understand what the hell is going on, let alone the whole fog and cloud of crypto and shit coins that just distracts and confuses. This thing is truly, truly special. ",timestamp:"01:14:46-01:19:27",topics:["Bitcoin Timechain","Difficulty adjustment"],type:"twitter_space",weight:7.870050430297852},{boost:0,date:1596671100,description:"Unfair ways Bitcoin mining is assessed;Electricity consumption",episode_title:"Chat_45 - Bitcoin & an Energy Revolution, A panel at the VOB Conf",guests:[{name:"Christian Stoll",profile_picture:"https://pbs.twimg.com/profile_images/3296579573/69ebedb479a9bdb9d536fe887e2d3113_400x400.jpeg",ref_id:"ff74d59c-f846-4b16-a5e5-771fb8139f18",twitter_handle:"Granddragon14"},{name:"Jesse Peltan",profile_picture:"https://pbs.twimg.com/profile_images/1123954968636088326/EAjHUGDE_400x400.png",ref_id:"96309505-caeb-47bb-a1ba-712b97292675",twitter_handle:"JessePeltan"},{name:"Phillip Sandner",profile_picture:"https://pbs.twimg.com/profile_images/1043824764161335296/2SW3duCV_400x400.jpg",ref_id:"e1996e82-0354-421c-85d5-f18eebec9506",twitter_handle:"philippsandner"},{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"Christopher Bendiksen",profile_picture:"https://pbs.twimg.com/profile_images/1362772558882484233/3nS-l35s_400x400.jpg",ref_id:"d99d354e-41d4-4117-9b70-05955a85f9da",twitter_handle:"C_Bendiksen"}],hosts:[{name:"Guy Swann",profile_picture:"https://pbs.twimg.com/profile_images/1401969630634196995/DqOuszMi_400x400.jpg",ref_id:"39c31930-d799-40a0-9a46-193117d03418",twitter_handle:"TheGuySwann"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN6935967461.mp3?updated=1627959014",node_type:"clip",pub_key:"",ref_id:"2b8ef20b-4134-4d6a-bb2f-ee72a42468d2",show_title:"Bitcoin Audible",text:"And I have to interject there too, that there is something important to keep in mind. When you look at different people comparing energy consumption, they very often talk about electricity consumption on a national scale. But that's not energy consumption. The electricity consumption of the country is only a small part of their primary energy consumption. So electricity is only, I think, a small double digit percentage of the total energy that we go through as a species. Sorry, go ahead. But I was going to say, in addition to that, not only is electricity a smaller percentage, electricity is a sizable percentage of total consumption, but for a given country, a huge percentage of most countries, energy use is outsourced. So if you're not a country like the US or China that's manufacturing for the world and you're a country that's importing, you are artificially reporting lower energy consumption numbers because all the products that made that everybody uses those emissions are reported under China or they're reported under the US. But in reality that's still energy consumption. So it's not really a fair comparison to say like bitcoin uses x amount of energy, like electricity versus x whatever small country, when you're only looking at the direct energy consumption in that country and not looking at the fact that they're getting all the resources from other countries that are consuming it elsewhere. Not only that, but you can flip that entire narrative on its head and say like when bitcoin uses more electricity than Chile, that means that even if Chile flipped their entire electricity infrastructure to try to mess with the bitcoin blockchain, they couldn't. Yeah, I mean, energy consumption is a good thing. It's just a matter of how it's consumed and how we produce that. Let me add one more thing. Everybody knows the market cap of gold, right? That's around 9 trillion. And that's 50 times more than bitcoin. And we know it from bitcoin. That by theory, if the bitcoin price is 9000 ethnic and by theory the production foster formed by bitcoin should also be 9000. It's not the case, I know, but by theory it should be the case. So now take gold. Honestly, nobody discusses gold. If gold, if the market is having a market cap of 9 billion and times 50 times more than bitcoin, then in case gold is produced, then what is in theory the production price of gold. That's the market cap of today. So 50 times more resources are being spent second by second, day by day, to somehow get gold out of good to ground. But this is not electricity. That's equipment and machinery and that's kind of, I don't know, all kinds of things which are working in some kind of gold mine. But isn't this also wasted resources to some degree? Nobody discusses this and it's 50 times higher at this point. I remember I remember a paper from Cruze Tomato that are exactly comparing metal mining with crypto mining. Oh, interesting. Okay. It was Nature Sustainability 2018. Bitcoin mining waste, ridiculously dangerous to the environment, like the cyanide that is used to extract the gold. And then if you just go through all of the environmental damage that gold mining does, bitcoin is like a space compared to what goes on in order to get gold out of the ground. And it was funny when gaming was brought up, I was speaking a concert, I think it was decentralized, in Athens Beach back in November and there were a lot of people there that is a stake and other nonsense. And I got into this big argument with someone that kept saying how bitcoin is so bad for the environment and mining can't continue to happen and how proof of stake of currency is the future. So it was a lot younger than me. And I asked him, do you play video games? I haven't played video games since I was about 21, 22. And I asked them do you play video games? And you said yes. And I said, well, how much electricity are you wasting by playing video games? Where is the productivity in that? So if you take all the gaming in the world, everyone that ever plays video games, you combine all that, how much electricity that is using, and please make an argument that that is more productive use of electricity than bitcoin, that is trying to give everyone politically neutral government free money. This is why this entire line of discussion is kind of like a bit of a red herring because the problem is that we don't have a good way to price externalities and if we did, then the price mechanism would take care of the rep. So I think it's partially done and it's partially I agree. I think a lot of it is a red herring and kind of missing the major point, which is the real environmental issues that we have on the planet today are how is steel produced, how are metals produced, how is concrete produced, how is electricity produced and how is farming done? Everything else makes almost no difference. Like those are the big issues. If our farms produce any way, it doesn't matter how much energy we use. If our mining and our metal production is done in a clean way, it doesn't matter how many metals we use. The earth is completely full. Like the cost of the earth is just materials. So if we're looking at the long term sustainability, it's a question of how these couple of processes are done and so the question of bitcoin's impact on that. It's such a small percentage of consumption. The question is more of which way does it incentivize production? Because if you see even a small swing in the way that if bitcoin, for example, is able to balance grids and enable them to use higher percentage renewables, then you'll see a higher renewable penetration and you'll see overall lower utilization of fossil fuels than you would in a situation without bitcoin. ",timestamp:"00:23:49-00:30:20",topics:["Bitcoin mining"],type:"podcast",weight:7.813010811805725},{boost:0,date:1637366400,description:"Bitcoin can act as a baseload for energy, including nuclear energy",episode_title:"Securing Bitcoin With Nuclear Energy",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"},{name:"Eric McErlain",profile_picture:"https://pbs.twimg.com/profile_images/1252969137/Screen_shot_2011-02-23_at_10.59.21_PM_400x400.png",ref_id:"4815365d-44d0-4b06-9d9e-32070158d03c",twitter_handle:"atomiceric"},{name:"Puru Goyal",profile_picture:"https://pbs.twimg.com/profile_images/1590742805613203456/QAtYq_C__400x400.jpg",ref_id:"c24af059-b38b-4ce5-9547-9192c9eff579",twitter_handle:"purugyl"}],hosts:[{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"},{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=YBaA17NODlA",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"42296529-2820-4c4f-be26-e12104e2b723",show_title:"Compass Mining",text:"it's about, like, the base load status of bitcoin mining and how the industry kind of use bitcoin itself. I'm assuming that it's not understood among most nuclear engineers or people working on these plans that bitcoin can act as a base load for energy. I mean, it's becoming a more prevalent talking point in a lot of different industries, especially natural gas. Is there an education initiative that's needed to that process, or do you guys see that it's already happening, that these plants are all across the US. All across canada and elsewhere, are already doing bitcoin as a buyer of last resort for energy? Back to you. Actually, yeah, definitely need some educational input there, I think, from other communities, because I think, like, one thing we need to understand, like, very few people today believe in bitcoin and bitcoin mining, and equally, very few people out there believe in nuclear, and there's a very fine nexus of people who believe in both. Right. So there's a big gap of knowledge in either industries about each other, and I think there's a lot of gaps to be filled there. One last thing I'll add to that point is this is something I've been thinking about for a while. I think sean connell tweeted this out too is like, I think bitcoin mining will serve as a global energy floor because suddenly you have a source, like a demand source, which will take up any energy above a certain price, and it'll just mine until it's profitable. I think it's going to have a massive impact on the energy markets, which people are authorizing right now, where a lot of these commodity prices are going to converge together because suddenly you'll realize that today, if I'm running a power plant and I'm selling my electricity to the grid, why am I doing it? Why don't I just mine bitcoin with it? Why sell it to the grid? Because I'm ten times more profitable just mining bitcoin rather than selling it to the grid. So if you believe in free markets out there and you believe in the economic incentives, then it just makes so much sense to these power providers. Just mine bitcoin because you don't even have to go anywhere. You can just colocate these in your own facilities and the footprint is so small, they're traveling in these mini huts where you can stack up these miners together and just mine on site and that you have a demand for there. So that's why I'm saying I think the grid will have to pay up a premium on top of the bitcoin mining for them to be incentivised to sell to the grid. And that's going to have massive ramifications for the energy market, which will completely change the game, I think, especially for all these advanced new technologies or other renewable technologies in the future. Yeah, peru is exactly right. We already have one example. Talent energy is building 150 megawatt mine as a joint venture with terror at Susquehanna nuclear generating station in Pennsylvania. That's going to be electricity that's flowing directly to their bottom line as bitcoin. When that announcement was made in July, after like a preliminary sort of heads up in an investor call in March, I was shocked that it happened that quickly. I mean, I'd been doing a lot of thinking about that and I didn't think it would happen as quickly as it did. Now that it has, now that they've broken the seal and, you know, as operators get their heads around this and understand that there are a variety of different models that they could use, they can do a straight power purchase agreement, they could do a joint venture. Maybe they do something as simple as taking some of the ample real estate they have inside the wire at these plants and just leasing it back to the mining company and maybe granting them access to office space for them to base. The employees are going to service that site and you can rely on the industry best security in nuclear. Physical security is credible on our planet. I think you're going to see more and more of these again. I talked to an industry executive just a couple of hours ago. He said he's up to his elbows and bitcoin miners coming to him. Okay, so it's happening. I'm doing my best to educate my members. I've held three webinars this year on the opportunity in bitcoin. I've been asked to establish a bitcoin cryptocurrency task force within NEI. We're going to be doing more events like this. So yeah, we understand what the. Opportunity is we're moving as quickly as we can and we're trying to get our people as comfortable as possible with it because we think there's a great future in it. That's insane. It's insanely awesome to hear all of that, especially, you know, building a task force internally to focus on this sort of stuff. Whoever that executives up to his elbows, he'll be, I'm sure, up to his eyeballs before too long or too much longer. But we're sort of at the top of the hour here and we want to wrap up relatively shortly. I wish we had time this conversation to go on for at least a couple more hours. This has been insanely bullish and insightful and like, just hearing you guys, you know, working full time in the nuclear industry, echoing a lot of the same things we talk about in our own niche, twitter circles and communities, we are speaking the same language and thinking along the same lines and it's incredibly, incredibly bullish. ",timestamp:"00:54:47-01:00:12",topics:["Bitcoin Energy Baseload","Bitcoin Mining","Bitcoin Education"],type:"youtube",weight:7.779880290018898},{boost:0,date:1596686400,description:"Impact of [[Electricity Consumption]]",episode_title:"Chat 45 - Bitcoin an Energy Revolution A panel at the VOB Conf",guests:[{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"Phillip Sandner",profile_picture:"https://pbs.twimg.com/profile_images/1043824764161335296/2SW3duCV_400x400.jpg",ref_id:"e1996e82-0354-421c-85d5-f18eebec9506",twitter_handle:"philippsandner"},{name:"Jesse Peltan",profile_picture:"https://pbs.twimg.com/profile_images/1123954968636088326/EAjHUGDE_400x400.png",ref_id:"96309505-caeb-47bb-a1ba-712b97292675",twitter_handle:"JessePeltan"},{name:"Christopher Bendikson",profile_picture:"",ref_id:"d72ead54-7bff-4874-870f-123e665fddfd",twitter_handle:""},{name:"Christian Stoll",profile_picture:"https://pbs.twimg.com/profile_images/3296579573/69ebedb479a9bdb9d536fe887e2d3113_400x400.jpeg",ref_id:"ff74d59c-f846-4b16-a5e5-771fb8139f18",twitter_handle:"Granddragon14"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN6935967461.mp3?updated=1627959014",node_type:"clip",pub_key:"",ref_id:"30641d73-c61d-47f4-bf37-f78566574dc8",show_title:"Bitcoin Audible",text:"kind of an inherent moral question there as well, is that do we get to subjectively put our values on to them? Like in making judgments over whether or not they can make that choice as to whether or not it is their value or not? And obviously, in a decentralized system, where are you going to do to stop it anyway? It's inherently an incredibly difficult thing to control or alter. Yeah, this gets to a very steep level of freedom versus coercion. Domini, to say that you watching a Netflix show is a waste of our common resources. I mean, that's not my difference. Did anybody compute how much electricity costs to watch 90 minutes Netflix movie? Honestly, there's research out there looking into data centers which is directly linked to subjectivity. So I have one student that looks into Amazon currently for the comfort print of Amazon, where you exactly have streaming as one source of electricity consumption. I made an estimate, I think two years ago of the electricity draw just gaming console Iceland in the United States, and it's on the level of 50 kilowatt hours. I like to make a couple of points here. I think that one of the important points to note is that electricity consumption is not in itself a bad thing. So electricity production and consumption is good, that provides value. The negative side is when there are externalities associated with how that is produced. So if we enable more renewables, more sustainable energy sources through bitcoin mining, then it's a net positive. I think the other part that is important to note here is that in the total scale of human energy consumption, bitcoin is nothing. It is completely dwarfed by any industrial process. Aluminum smelting, like concrete production, steel production. Bitcoin is such a small drop in the bucket compared to any of that, that any effects that bitcoin has on a more financial level, like if there's restructuring in the way that business is done, that will be far more significant than any effect of the direct energy consumption of bitcoin. And I have to interject there too, that there is something important to keep in mind. When you look at different people comparing energy consumption, they very often talk about electricity consumption on a national scale. But that's not energy consumption. The electricity consumption of the country is only a small part of their primary energy consumption. So electricity is only, I think, a small double digit percent of the total energy that we go through as a species. Sorry, go ahead. But I was going to say, in addition to that, not only is electricity a smaller percentage, electricity is a sizable percentage of total consumption, but for a given country, a huge percentage of energy use. Of most countries, energy use is outsourced. So if you're not a country like the US. Or China that's manufacturing for the world, and you're a country that's importing, you are artificially reporting lower energy consumption numbers. Because all those products that made that everybody uses, those emissions are reported under China or they're reported under the US. But in reality that's still energy consumption. So it's not ",timestamp:"00:21:14-00:25:05",topics:["electricity consumption"],type:"podcast",weight:7.691150903701782},{boost:0,date:1632355200,description:"Accessibility and the price of manufacturing potential ASIC home miners ",episode_title:"The ASIC Mining Hardware Market",guests:[{name:"Vincent Zhang",profile_picture:"https://pbs.twimg.com/profile_images/1158285609196109825/fuB-e6lm_400x400.jpg",ref_id:"98e7bc98-3a3b-4ddf-9b48-5dcd78973739",twitter_handle:"Whatsminer_MBT"},{name:"Vincent Vuong",profile_picture:"https://pbs.twimg.com/profile_images/1260974518547312640/n47yvbNL_400x400.jpg",ref_id:"8390e230-e36b-4e0d-9f5d-70c6635bf3c2",twitter_handle:"BitcoinVincent"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=qKeUCNXa4Uc",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"8dbb367b-5cba-4f05-a1db-104d0c66b579",show_title:"Compass Mining",text:"shift this exact same conversation into the accessibility and the price of manufacturing of hardware with a slant towards retail or home miners or hosted miners. If Damien doesn't mind throwing up my screen one more time here, I'll share it for you. In the market multiple times over the past, over previous market cycles, we've seen sort of small gimmicky devices that try and make it easier for people to mine at home. This one you see here, featured in a CNBC article with a variety of inputs there on some little plastic power strip is the latest version. We've also seen companies like Coin Mine try and offer products like this. How viable, long term or at all are these types of hardware devices when you're looking at a market filled with like top tier leading hardware, like what's miners manufacturing? And will this ever have sort of any place in the hardware market or are they mostly cyclical gimmicks that catch headlines, maybe sell a few units, but don't really have any profitability or long term lifespan? Curious to know both of your thoughts on these little devices we see popping up all the time. Vincent from what's minor? I'll toss it back to you and then Vincent from Compass, I want to hear your thoughts too. Yeah, so what we can see is in the year 20, 17, 20, 18, so people can easily mine at home because at that point of time the power consumption of the minus is lower and so the current brought by the minus is not so high. However, since 2019, so almost all the minus switched to more than 3000 watts. Okay, like our minus is 3400, 500 watts. So based on the 220 watts power, so the currency of the minor goes to 16 amp. So it is higher than the staff at home appliance at home. So we can see that some investors or some individuals, they have interest to invest because they might have some capital available, cash flow available, they just want to buy some minors and put it at home for mining bitcoin. So no matter this is interest or is kind of the investment, however, there are a lot of people try to do that. So from our point of view, this will not become the mainstream. Okay. Because right now you can see that the mining facility data center are becoming bigger and bigger. So earlier you hardly can see hundred megawatts mining farms. Right now you can see even one gigawatts mining data centers. So all those data centers are hosting the miners, most likely from the big investors. So this will consume, you can say 99% or 95% at least the supply capacity from our site. So the strength of our R and D will not be put to the 5% market. However, right now what we are trying to do is for mining business, one of the most important factor is that the power cost should be lower as much as possible. As lower as possible. So what we are trying to look into is how to reutilize the heat generated by the minus. So if we can reuse those heat generated by the minus, which means, for example, if we can share those hit at the power cost that we paid, which means you reduce the power cost to 20%, right now you have. So that's why we are looking into those areas. So how we can reduce the operation cost of the investors as much as possible. So that's why we spend a lot of time and they invested a lot into water cooling minus and the immersive mining minus. Okay. Because by concentrating more hardware together, so the heat generated by the miners may be reutilized in some of the cases, so it will reduce the cost of the mining. Okay, so this is the area where we are trying to work, because what we can see, at least from my side, I can see that the power cost of individual at home, actually it is not competitive. Okay. This will require the individual. Investors always should upgrade their or minus with the latest power efficiency ones. So otherwise it may not have the good profit level as they expected when the time goes. This is the share from my side. Yeah, it's interesting to see all sorts of creative solutions that homeowners try and make. And over the past year or two, or maybe a little bit more, we've seen, like you mentioned across the board, a crazy push to expand immersion mining tools and heat reuse tools for all sorts of novel and creative use cases. Again, to sort of maximize the amount of utility we can get out of a mining operation and sort of trim costs as well. Vincent, same question to you. Like what sort of utility or place in the market, if any of these sort of, not to be too critical, but kind of gimmicky small machines have when people are trying to look for cheap, affordable ways to start mining? Yeah, for sure. For me, I think that these smaller miners are like, especially retail miners. They're not 100% profit driven, so a lot of them are. They need to find alternative use cases. So a lot of people will run a minor instead of running a heater. Same thing, a little bit louder, but you still can heat your entire force. So by doing that, you kind of get two and one, and you're also mining some big one at the same time. And there's also people that are also interested in doing lottery mining. Lottery mining is basically solo mining with one machine where you have one in a million chance of getting it. But that's way better than winning it's, better odds than winning the lottery at least, right? So there's people that will do that and run their machines at Lost. And then there's people that just want to support the network as well, right? So people that want to just support the network, run a machine and kind of like put their vote in, cast their vote in, and that's totally fine. Not everything in the world is entirely profit driven. And then there's also use cases where sometimes when people have a solar set up in their house, right, the solar curve kind of goes up like this over time, where the peak happens in the middle of the day. In the middle of day is when people aren't at home. And so what you can do is you can start utilizing miners to kind of use that power when it's peaked, when you're not using anything else. And so there are a lot of alternative uses for these kind of small giving miners that allow retail to kind of keep themselves competitive. I think that's the best thing about retail miners is they can take advantage of these, whereas for the large institutional players, it's a lot harder to kind of push that kind of stuff through because there's a lot more involved with regards to the decision making and everything. For me, I think the simplest solution is like a retail investor, and I'm not trying to be a shield or anything, but it would be to purchase from Compass. The whole solution is very simple. Like, you don't have to invest in infrastructure, you don't have to invest in upgrading electrical, and you have to deal with the heat, the noise, the screen. It becomes a lot more simple like that. But there is definitely a larger subclass of people that want to get their hands on a minor and get dirty with it and try to find use cases for it. And I think there is a time and place and everybody in retail has the opportunity to do that, especially right now, when it's profitable for everybody. You can't guarantee that for the future, but as long as you find an alternative view sport, it's doable. ",timestamp:"00:25:59-00:36:02",topics:["ASIC Home Miners"],type:"youtube",weight:7.590939760401884},{boost:0,date:1639872e3,description:"Big States and Small States",episode_title:"PFP016 Remigijus Šimašius, Bullies as Neighbors-on the Foreign Policy of Small Countries (PFS 2008)",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/624262ef-b30f-4114-8061-e310187e6bb4.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=0WAituFO614",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"4369ba7b-c9c8-4bf8-906a-1d8e27b1558b",show_title:"Property and Freedom Society",text:"private privilege for people those days to discuss about imperialism and because it is usually not small stages who act such first ones it's usually big stages who start some kind of ongoing work to what you say when people try to draft the practical institution practically is when we discuss theoretical aspects of prior traditional defense but we see that our reality and general public do not allow is never to defend a country because ",timestamp:"00:01:04-00:06:14",topics:["Big States","Small States","imperialism"],type:"youtube",weight:7.585623406215426},{boost:0,date:null,description:"Bitcoin non-profitable projects and Bitcoin tipping",episode_title:"The Orange Sun 🌞 VISA, MasterCard & #Bitcoin #BOLT12",guests:[{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"~₿ Maxi~",profile_picture:"https://pbs.twimg.com/profile_images/1446241859651637250/i67F3y9p_400x400.jpg",ref_id:"ad997ae7-0726-431a-9f72-82da091c0658",twitter_handle:"fede0891"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"FireBurs†s",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"cda1d3ad-dd80-458b-a5fb-a28861df10a7",twitter_handle:"FireBursts"},{name:"Nikolai Tjongarero",profile_picture:"https://pbs.twimg.com/profile_images/1578458155964682274/_SzDxkAJ_400x400.jpg",ref_id:"821ee040-2267-454e-a59a-92da51568afa",twitter_handle:"BitcoinNaijaShw"},{name:"ブランドン",profile_picture:"https://pbs.twimg.com/profile_images/834861311762649090/N0KAP4zH_400x400.jpg",ref_id:"3d41531d-6a59-4771-81f9-0924b4c02561",twitter_handle:"blario"}],hosts:[{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/94a86a32-91c2-4717-b5cb-b36cef925776/38decc02-c922-4c1d-a605-7cd54c91a01d.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"5e6d5d88-bdb0-4350-8c03-13b0a24d3050",show_title:"Satoshi’s Journal",text:"else was I going to go over? Did I forget anything on charitable stuff that we're working on? Oh, master Gaunte is going to be coming out with a video. I'll give you guys a sneak peek. So we came upon a project, eva Kamani. She came to our space. She's actually going to be working with us out of Kenya. And she brought to my knowledge, a children's. I don't know what they call it, actually. It's not a school. It's like a kid house or children house where they take care of children by providing them food and water and maybe some education. And it's been a while since I read up exactly what they do, but she bought it to my attention. The guy that runs it has been running it for years. I think he has like 30 kids that he takes care of. And when I heard about it, I told her, hey, I want to help them. Master Gaunte is going to go and do a documentary and orange pill them. So we're not just going to give him satoshi orange pill them. So that's an up and coming video. That's the sneak peek. So someday you guys will see a pretty cool video of us orange peeling. And then at the same time, if we can get them to the point where they understand what bitcoin is, this children's home actually could be the first children's home that accepts bitcoin, and they could actually end up making a bunch of more children home. We all know that the value of bitcoin is going to go up. So those first few businesses that start, whether they're a nonprofit or not, the compounding effects of bitcoin over time is such that this one children's home could actually unfold and fund a bunch of others if they use the bitcoin that we donate to them wisely. So that's one of the biggest reasons why if you have a chance and you're so inclined, you can send a few sets. I think the best thing about bitcoin is you can send freaking one satoshi, ten satoshi, 100 satoshi. Anyone can afford to send one satoshi is $0.04, last I checked. I think it's less now. Anyone has the capacity with the lightning wallet to send ten satoshi's, and every satoshi counts. And you can't do that with dollars. You can't send half of a penny to somebody with not even visa. It's not like you can physically get a penny and cut it into multiple pieces. With bitcoin, you can send freaking increments of a penny and increments of a satoshi. I've never sent microsets. Have you ever sent microsets, olu or tk? I've never done it. But my understanding is one satoshi can be actually denominator. You can actually send parts of a satoshi. So from a charitable standpoint, there's no excuse, so to speak, because there's no room for someone saying, well, I can't afford one satoshi, I can't afford a fraction of a satoshi. Every satoshi counts. And in the end, when we get the dollar SAP parity dollar SAP parity, meaning that one bitcoin will someday be worth that 100 million, I think. So that's why literally every set counts. If you can send satoshi to somebody in central South Africa, central America, anywhere, get them orange filled, support them, send them the stats, tell them the importance of saving those stats. I'll tell you an example. It was actually Alexander the Great. Oh, so go ahead, be maxi, because I've been talking long time. Go ahead, it's fine. I was just curious because the first time I heard about what's like a micro, as you said, like micro. My understanding, simple understanding, is that once the toshi can be, you can send transactions via lightning in such a manner where you can send parts of a satoshi. So a satoshi can be divisible into. What they're called, and they're actually not defended by your actual node. That's what makes it so hard to actually defend using such a thing, because the milestones that are in between you and your channel partner within the lightning network, the nodes don't defend those. It's like a weird tracking system they have for the like it's almost like dust limit type stuff. If your partner channel closes it, and for close to your channel, those milliseconds are lost. There's nothing guaranteeing that you get those milliseats back from that other person, from your counterparty, because they really don't like it's, not really. They don't really exist. So this is how we get into this argument of all bitcoin is divisible infinitely. And that's not how it works. You can't just keep dividing bitcoin forever. What ends up happening is you end up just multiplying the supply because then you'll have a smaller denominated unit that's actually going to be worth more because it's smaller and more divisible. Therefore it would be a secondary monetary asset on the network itself. It's a very nuanced topic, but once you get down to integrity of it. So is it more like, let's say sorry, is it more like a theory, some sort like conspiracy theory that some people believe you can, like, you know, create? Like Microsoft like today is very small unit of a sad essentially. Essentially that's what it is. Because bitcoin itself only recognizes the units individually, which is 2.1 quadrillion satoshis. That's all there ever is. Well, with lightning, we have the ability to send fractions of those satoshis which are denominated as millisats. The only thing is when you settle those millisets, that those millisets can't get settled on chain because they don't exist. So you see where we have this dichotomy of when you lose a channel partner. Those milliseconds are just dumb. That's why if your balance is that small at closing time of the deal on the chain, you won't see your balance because there are many sites. They. Only exist within the lightning network. And that's it. They don't exist anywhere else. Yeah, that's what lightning network is going to take over everywhere. Because if your balance is that small, this is very, very small. But of course can be broken in lightning. It's long. You will get any transaction that you do. But with lightning, you can actually still have something still smaller than the smallest partnership. Actually, you can have something so smaller than that. And I think everything will be repricing bitcoin, because everything will not be valuable if one start can be equal to one dollars. Jesus Christ. So if you just have 100 and you have $100, and imagine the inflation that would have messed up with the dollar. In fact, all bitcoin has to be the richest in the world. And that's why it's just 21 million. Try and get some guys, please. Yeah. And I'm sure in the future will get to the point where these millisets won't be as theoretical per se. There's not a conspiracy or anything behind it's possible using lightning and the possibilities of lightning are as much as a developer can develop and make things more possible. So we're seeing developments in lightning all the time. I mean, I just talked about eight companies that are contenders for the I think it's a both for fun competition. Yeah, that one, I bought it like yesterday for the first time. The both twelve that you can they're trying to integrate the onion, like anonymous chat where if a buyer wants to shout and tell them how I'm here or whatever. But I don't know what the issue is because I was listening to someone and they said it was really hard to integrate the bolt twelve. Yeah, no, that twelve is going to be awesome because it allows you to have a static QR code that you don't have to. So right now when you use lightning invoices, they expire and bolt twelve will allow a lightning invoice to be used into perpetuity is how I understand it. And bolt twelve will be we're going to try to get that integrated as soon as possible. It's just a matter of I'm sure some developer has already got it to the point where they're using it and it just hasn't proliferated. But as soon as it becomes basically unleashed in full, then everyone's going to have the ability just to real quickly create a lightning address and post it at their business and that lightning address will last forever. The implications of that are awesome. I mean, that's just one innovation that's happening of many in the future. We don't even know what's going to happen in the future. Open source. So like you can put that on basically any lightning network apps. Yeah, I mean, that's the cool thing about lightning is anybody that develops on lightning, because lightning is an open protocol, anything developed is complimentary of anything else that's developed. So whether you're building an exchange or you're building whatever you want to build on bitcoin or lightning, the open source part of it allows the system or everything on top of it just to get better and be complimentary. So it's freaking awesome, man. I think almost every day I hear something new that's happening. Portland Hodl, he does a space every week and he talks about the bitcoin improvement plan. Yeah, bitcoin improvement proposals. And every week he talks about a new BIP and he explains what that BIP is. So these bitcoinners that are developing on top of bitcoin, they come to the table with a proposal and whether it's implemented or not is a whole different story. But they at least come to the table and they say, hey, we would like to implement this proposal and that's on bitcoin. I don't know if they have a similar thing for lightning. Do they have like a thing for lightning that's like a lightning improvement? They do. I think it is called bulk. I think that's why the bitcoin. Is what you have said. The fact that you can reuse the QR code and look at how interesting that is going to be. I think Bmax was talking about lightning apps, but what about other things like billboard, like your shirts. If you are a walking billboard for Satoshi John, there is a cure code. Boom. Just imagine. Or for any business at all, especially road fines, billboard, books, souvenirs tea cups, frames, just imagine on posters, on stickers, initially on both eleven, we could not use more than one invoice for one transaction. If you try to reuse it, you may be in trouble, you may find yourself in trouble. So that's what is making both twelve very more interesting. Everything that both level does is what both twelve can do and do better. But now you can actually use one QR code on lightning. You don't have to be changing it. You can put it on anything. You can put it on a tattoo. Wow. That'S a really good point. If you were actually to use these static QR codes from both twelve and put them on billboards, put them on shirts. If you're a businessman or woman, you just prominently display them everywhere. People could just literally scan the QR code off the side of your car, off of bill billboard, off the side of your hat. If you do get a tattooed on your shirt, on your skin, I mean jeez, the implications are amazing because people can just send payments to each other using the bolt twelve wherever they put it. ",timestamp:"01:10:47-01:25:10",topics:["Bitcoin Charity","Bitcoin Ttipping"],type:"twitter_space",weight:7.444137096405029},{boost:0,date:1677582e3,description:"What Micro Loans are and the motivation behind them",episode_title:"Ep. 514 The Future of Crypto in the Media with Blockchain Boy",guests:[{name:"Lucas Dimos",profile_picture:"https://pbs.twimg.com/profile_images/1092408696838197250/n0-St2nZ_400x400.jpg",ref_id:"9ac17e2f-49bd-4fc5-bfe5-2f380ca63574",twitter_handle:"lucasdimos"},{name:"Blockchain Boy",profile_picture:"https://pbs.twimg.com/profile_images/1602154101642592256/A0OX97CT_400x400.jpg",ref_id:"4b070a6f-bcc8-4708-abaf-cc830709600f",twitter_handle:"BlockchainBoyy"}],hosts:[{name:"Aaron Malone",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"bd103540-8c0a-4ab3-b5cd-24a3f2c43ab2",twitter_handle:"pizzamind"},{name:"Bryce Paul",profile_picture:"https://pbs.twimg.com/profile_images/1182725652794892288/QbDOKHcP_400x400.jpg",ref_id:"0d670dbf-f434-43b6-b454-8e5345d7ee51",twitter_handle:"BrycePaul101"},{name:"Pizza Mind",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"16cb01cf-9f04-45db-a440-47259b02b86a",twitter_handle:"pizzamind"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/93a6fe5b-364c-43f4-9f38-7da3e811460b.jpg",keyword:!0,link:"https://chrt.fm/track/DD9393/audio1.redcircle.com/episodes/68f31cee-f404-40fe-85d7-a406019e916f/stream.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"e2a347d3-a7ce-4200-836e-0c3df94980ce",show_title:"CRYPTO 101",text:"Look at that. Yeah, look at that. Dude, he hooked me up. I bet there's even an espresso shot in there. That's crazy, man. Fantastic. So where was I? Oh, yeah. So you can empower entrepreneurs from other places around the world who need maybe an $800 loan to get more fertilizer for their crops, to double their yield, or who are opening a small store in their community. And it's a way because charities actually can be actually very damaging for local communities. Like with those Tom shoes. You buy a pair of shoes, they ship a pair to somebody who needs them in Africa or whatever, you're putting the shoemaker out of business. It's ridiculous. And you're hurting the local economy by making them dependent on foreign aid. And I don't believe in that. I don't want to give people what they need. I want to give them the tools to get them where they need to be by themselves. And I think that's really what makes me happiest. And so I want to find ways of doing that, and that's just one way of doing that. Yeah, no, I love it, man. So I kind of want to talk back to Tik tok I was just thinking, I saw the other day there was a potential ban on TikTok that, like, lawmakers are out. What's your take on that? You have a quick take? Well, we can choose who we want to sell our data to, but it's going to be sold anyways, and they just want American companies to own our data and not China. But I mean, they just let that weather balloon get across the entire continent in the United States before shooting it down. So ",timestamp:"00:24:04-00:25:29",topics:["Micro Loans"],type:"podcast",weight:72.76897614568216},{boost:0,date:1637366400,description:"Anticipated Bitcoin mining industry and nuclear energy industry intersections in the near future",episode_title:"Securing Bitcoin With Nuclear Energy",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"},{name:"Eric McErlain",profile_picture:"https://pbs.twimg.com/profile_images/1252969137/Screen_shot_2011-02-23_at_10.59.21_PM_400x400.png",ref_id:"4815365d-44d0-4b06-9d9e-32070158d03c",twitter_handle:"atomiceric"},{name:"Puru Goyal",profile_picture:"https://pbs.twimg.com/profile_images/1590742805613203456/QAtYq_C__400x400.jpg",ref_id:"c24af059-b38b-4ce5-9547-9192c9eff579",twitter_handle:"purugyl"}],hosts:[{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"},{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=YBaA17NODlA",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"27290854-e30c-4f09-aee9-c6ee23a4854d",show_title:"Compass Mining",text:"thing I would want to wrap up with is a little bit of an open ended, forward looking question. Like we've talked about a lot of the dynamics for bitcoin miners and nuclear power producers to work together, a lot of the mainstream perceptions on both of these sectors. If you had to, I guess, pick one or two things in the very near term future that you're expecting to see. I know a couple of you guys have mentioned that some of the recent developments have surprised you or been larger and faster than maybe you expected. Looking forward to the next two years? What's something at the intersection of bitcoin mining and nuclear energy that you are expecting to see you're looking forward to? Whether it's one particular company or maybe a broader trend in adoption, I'm not really sure. I'll leave that up to you, but yeah. Any expectations, Ryan? I'll hand it back to you. Well, in the next few years, I would love to see bitcoin mining be applied in such a way that we could save the Pickering reactor from being shut down, because that is a travesty. That we're going to lose. That and nuclear power in Ontario is one of the biggest reasons why we were able to eliminate a lot of our coal power. And if we lose a reactor, it's going to just go back in the wrong direction because we've got the refurbishing, the Bruce reactor and the Darlington reactor right now, there's no reason why they couldn't go ahead and do the Pickering as well. But I think one of the big concerns is those demand risks. With more renewables coming online and there are intermittent seats, it causes too many surplus generation events and then it creates massive economic liabilities on the reactors and then they get deemed economical and then they get shut down. And so we now have an opportunity to kind of reverse that trend in a way. And make a big gains in the saving reactors and refurbishing them because we could keep it going for another 40 years easily if we just put the time and money into it. Interesting. That's actually fascinating. Peru, I want to ask you to same question. Anything in particular you're expecting over the next short term? Two, three years? Yeah, not two three years, but I feel like by mid 20s what you'll see there's a lot of these small modular reactors that Ryan been talking about for a while too. I think those are going to come online, either demonstration plans or companies are going to start making them because the life cycle of making constructing these plants is much shorter compared to the full scale plants that we've seen in the past and companies are already developing it. And I think, like I talked about, I think it makes so much economic sense to just mine bitcoin with them until the grid providers are offering you prices which are comparable or a premium on top of the bitcoin mining price. Like if I'm running a nuclear advanced technology company today and I understand bitcoin mining and I'm just like trying to get these reactors online as soon as possible and colocating a mid bitcoin mining rig at the same site. And just mining with bitcoin with it until the grid prices reflect a premium which I'm willing to take and provide my power to the grid. I don't want to bet on the timing of this, but I think we'll definitely see this over the deck and I think it's going to be great to see. I think bitcoin mining industry will also evolve over the next few years for sure, based on just how much hash power is going to come online over the next couple of years. I think both industries are going to benefit from this. That's awesome. Eric? Yeah. Same question. You just wrap up on anything you're expecting, I guess. Well, I mean, when you ask me what's going to happen in nuclear next two, three years, I have to remind you we plan 510, 15 and 25 year increments. So that could be tough. So I'm going to say more of the same. I mean, we had those three announcements in July, talent and Terrawolf energy, harbor and Standard power, and then of course Oklahoma and Compass within like ten days of one another. Bang, bang, bang. It just completely changed the way we look at the world. And I think we're going to see more of that. We're going to see more of that. We're going to see it happen more rapidly. From any eyes perspective, we're hoping that one of the introductions that we've brokered will turn into an actual deal. Whether it's a straight power purchase agreement or something more profound like a joint venture between a minor and an operating plant site. We're crossing our fingers that we'll be able to say we helped something like that happen sometime soon, but I would say more of the same. The one thing that I will think that I'm going to project may happen in five to seven years and it builds up something. Peru said. I think you may very well see an announcement about new build for An SMR where the miner is twinned with the construction of the reactor. That they will happen at the same time, or roughly at the same time. So when the reactor goes critical, that miner will be able to take that power immediately. I think that we're going to see that kind of coordination. I would like to see that kind of coordination between advanced reactor manufacturers and mine. How's that? That's awesome. That's perfect. To seeing some agreement from the other gentleman here on the panel with regards to that. That would be beautiful to see. Getting more conversation in the chat. We're a little bit over time now, so unfortunately we do have to wrap up. But I will say for everyone watching, all three of these guys are on Twitter. Relatively active, but definitely must follows. You can find their handles in the description below this video. It's all three of you. Thank you again so much for coming on the stream, chatting with Will and me. It's been a super fun, informative, insightful conversation. Super glad we found time to do this and that's a route for us here at the Compass Livestream. Appreciate y'all watching. Be sure to like and subscribe if you enjoyed the conversation. Helps other miners find this content. This conversation in particular was just outstanding. So, again, thanks to all three of you. Appreciate your time. And that's a wrap. ",timestamp:"01:00:13-01:06:32",topics:["Bitcoin Mining Industry","Nuclear Energy Industry"],type:"youtube",weight:7.335028414441784},{boost:0,date:1670706053,description:"Understanding stacks",episode_title:"Bear Market Buidl — Major #Bitcoin developments! #Stacks #Sidechains",guests:[{name:"@GriffdenNFT",profile_picture:"https://pbs.twimg.com/profile_images/1604377729062895617/R4pSEdH4_400x400.png",ref_id:"dafdf7ec-28c0-43d3-a0d9-b2d266f38738",twitter_handle:"GriffdenNFT"},{name:"@Chad_333",profile_picture:"https://pbs.twimg.com/profile_images/1592310541732970496/o1tbw9Eo_400x400.jpg",ref_id:"484c7695-6a4e-4141-9585-1109bf23f8cf",twitter_handle:"Chad_333"},{name:"@jackbinswitch",profile_picture:"https://pbs.twimg.com/profile_images/1601214177439260672/O0SpU5B1_400x400.jpg",ref_id:"9685e7f3-3e0c-4b84-9fd9-b8a1d96f6ae9",twitter_handle:"jackbinswitch"},{name:"@jimdotbtc",profile_picture:"https://pbs.twimg.com/profile_images/1593210347825119237/L_SNThWQ_400x400.png",ref_id:"5dcf5545-fad6-44ee-ae56-360c5efe1151",twitter_handle:"jimdotbtc"}],hosts:[{name:"@BigRpic",profile_picture:"https://pbs.twimg.com/profile_images/1604962150388219904/WqiCye-r_400x400.jpg",ref_id:"726f0c95-9d94-4d44-a056-8ad3c9e3ddd5",twitter_handle:"BigRpic"},{name:"@CarlsonDoc",profile_picture:"https://pbs.twimg.com/profile_images/1597382056308350977/1NPexynZ_400x400.png",ref_id:"e34fa2b2-a58e-4461-81a0-d10c1058dfc2",twitter_handle:"CarlsonDoc"},{name:"@STXLDN",profile_picture:"https://pbs.twimg.com/profile_images/1533793338931007488/o3laQDCp_400x400.jpg",ref_id:"5c3bc906-3aed-44f9-851a-94804c6fe5ca",twitter_handle:"STXLDN"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99046513-2614-4eae-9de4-5781ba4b330a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/fc3bebcb-8271-433e-8d81-84dd06f3b022/aec527bc-539d-4d3b-9bad-db4af9e1a1ba.mp3",node_type:"clip",pub_key:"03c7a7f42d94fdfc7a655515c1421cd1d20db090a1c24150201de0b1dc6a30b0ee",ref_id:"3008a0a4-d3c8-4d33-aa67-f39e4ce1a87c",show_title:"STX:LDN",text:"Yeah, that's awesome. I definitely agree with the degenerate part, for sure, but no, I'm looking forward to it. Thank you. Yeah, I appreciate that. It sounds really good. Thanks, Chad. Yeah, it's not really what our mentors are maybe pushing us to kind of do, which is more build infrastructure for Stacks, but that's where we can hopefully turn this into a more dev tool for users or creators, I should say builders that want to build on chain gambling games. And yeah, we're really excited about it. Thank you, guys. Yeah, I personally think the more user ability there is like, things to do based on chain I find more appealing than I guess, like, the super techy stuff because hold on 1 second. My daughter just pulled food out the fridge and I'm not even ready to start dinner yet. Yeah. Griffin, you were more of an Ethereal native before you came to Stacks. Kind of like myself, I think it'd be interesting to talk to you about the most striking thing that you notice switching from Eve to kind of get an exposure to this ecosystem, which I find to be completely unique in the crypto space. I hadn't found anything like it thus far. Right. And so when I came here, I'm like, oh, yeah, I'm home. This is where I'm supposed to be. So I think you probably also have some really good perspective where that's concerned. Yeah, I'd love to touch on that. That's a great point, and I'd love to make that clear to you. I missed our conversation the other day. I don't know if you saw my DM on Zoom, but I'd love to catch up one on one sometime too. But coming from Aetherium, I first tried out Stacks maybe three or four months ago, and I guess I truly didn't understand the awesome tech behind it. And as someone who is used to my transactions completing about 30 seconds to a minute, I wasn't super excited to use Stacks. But once I understood that they at the foundation and a hero all understand that's one of the biggest issues users have with Stacks and that they're working on Scaling, then I really realize that this is going to be a viable competitor to the other smart contract blockchains one day. And I'm just happy to be here. Like Trevor had mentioned before, all the noise happens and it's a smaller community. So you guys obviously are a bit more tight knit and respecting to community members, which is something that has dropped significantly in the Ethereum community as it grew. So I really hope that Stacks can find a way to carry on that great culture that it's got right now and be that inviting blockchain that Ethereum and Solana have failed to be as they grew. It's that, like, feels at home type feel. I know exactly what you're saying. Yeah. I mean web three. A big part of web three is community. Right. That's one of the underlying pillars of what it is. And I have faith that this community will be able to grow and maintain its character. I think it's one of the benefits of Stacks, being a community that has been slow to grow. You have guys like Jim and Dash who were here at the very beginning. Right. And so they have such interesting perspective to see how it's shaped so far. Yeah, I think that you cannot have where we're going with being disjointed and just kind of when someone new comes in, they just feel like a mark being ready to be ripped off, right? You need cohesiveness and you need good people trying to go towards a common vision. And the common vision here is having a user owned internet built on Bitcoin, right? That's really what it's all about. And I think that we're off to a damn good start. So I'm excited. I don't worry about us losing our character. I think that the fact that this thing has just been building slowly over the past few years only reinforces the foundation. And that's the thing as well, jack I say this to a lot of people about the build up lap. Because the build up here, if we actually look at things and I know you guys, that Dash and Jim have been here for a lot longer than me, but even I had heard of blockstep when it first came out, and not first came out, I'd say probably a bit later on towards the ICO or the token. So, shall we say. So I'd heard about it and I was a bit dubious because it was kind of like, okay, it's bitcoin not on bitcoin, it's a bit weird. Sounds a bit weird to do another chain. I suppose at that time, maybe I wasn't as experienced. I was just starting out professionally in crypto, so maybe I wasn't that experienced as I am now. But when I first kind of started researching back into it and I've seen stacks and then I started researching and I realized it was block stack, it was like, wow, so this has been here for a long time because I remembered that block stack had been around since even a few years prior to the whole token. So going back and looking at the whole kind of long history of block stack in the game and stacks in its current form, it's been around a lot longer than a lot of stuff, like a hell of a lot of stuff. It actually borders on being around a lot longer than even Ethereum itself. Do you understand what I'm trying to say? It borders on being around longer than the theorem itself. So it's like yeah, I think it's just great to see that at this moment in time with obviously the Stack 2.0 upgrade, we've got 2.1 coming and all of the hard work that the builders that were here before us have done. It just really just seems like it is the right time for this to be out there in the world. And as what Trevor said to Grifton, it's like before the noise comes, isn't it? Like you said, you've got the tight knit community and you've got everybody just building. And because everybody has that focus, as you said, Jack, of the user user on Internet, on bitcoin, nobody's like there's not a million other 29 880,000 different coins and tokens that we're all talking about. I suppose that's one of the key or some of the key elements, but yeah, sorry, Jim, go ahead. I was just going to say, well, thanks for doing this call. It's really been interesting hearing you guys, and thanks for all the big intros, jack it's actually really interesting just even listening to this call and taking myself back to the same sort of point in the last cycle, because I think Dash and I were kind of working with Stacks probably around 2017, possibly a little earlier. I think it was interesting as we we imported one of the we imported the first two way bitcoin ATM into the UK in 2014, and it was just a big, you know, it was a big bet on bitcoin. And, you know, we were, we were thinking about remittance and, you know, the difference it was going to make for, you know, the world's unbanked. That was kind of the initial reason we got into it. And so we met quite a few really interesting people, not being not crypto people prior to that. So we were actually musicians working in the music industry, so it was a steep learning curve. But we met this guy, Mike Cohen, who's one of the core developers on Stacks now. I remember him coming into where we had the ATM, possibly around 2015, and saying he was like, oh, have you heard of ethereum? There's a big thing coming along, it's going to be really exciting. It's got the security of bitcoin in a way, but it operates really quickly, so you can have these things called smart contracts. And, of course, I'm going into my old work in music and thinking how we could set up all these amazing payment mechanisms where a stage manager presses a button to say that the band has finished the gig, and then there's this whole domino effect of payments. And then by the time you get on the bus, you've been paid. That sort of got us thinking. So I really got into a theory briefly, but Mike had already said, this is what we're kind of working on is doing on bitcoin. You know, it can be done on bitcoin, right? And this is just vitalics kind of jump the gun. It's really, really cool, but it should be done properly, it should be done in a different way, and it will happen. And I think he was already involved with Blocksack, and then, yes, probably a year or two later, we started doing this stuff, this at Mining, which didn't really work too well. I think it was a bit of a scrum for just lots of people with lots of ideas and no real central. It just didn't feel like it was really working. And then I think that was running up to the beginning of sort of 20 end of 2020, beginning of 2021, when it felt bit similar like this. You know, things were just about to sort of certainly with Stacks, the main net was about to launch, but there was no one really there. But there were people coming in. It was a really exciting vibe. Lots and lots of community, really great sense of just a handful of you sort of doing this really exciting stuff. And I was just buzzing because for years I've been thinking, this is coming and suddenly it's here and we can make NFTs. And so I'm like, we got to go big. And then dash. And I like, let's get fat, boy slim. It struck me, the last big Whiff and Brighton fat Boy Slim was the last big sort of global superstar that came out of Brighton, which was why Thoughts instantly went to go, let's get Fat Boy Slim on board. But it was just such a funny environment because we started with all these huge names. Fatboy Slim, Cara Delevingne, Orbital, Dave Stewart from the Arithmetic and Chemical X got them all together, all through various we're friends with a lot of people through music anyway, and Chemical let's very good friends with Kara Delevingne. And so we then march these guys into this empty network and it was a hell of a sales pitch, I tell you, because we were saying, this isn't going to be the hype that you're expecting. If you go and do this in a theorem, yes, it will be worth you probably make millions out of it, but this is bitcoin and in ten years time you're going to be revered as Legends for being so ahead of the game for doing this. So we did manage somehow to get them in, but then it was funny because there just was no one there. We were lucky that we sold, I think the Car One sold for 20 or $30,000 worth of stacks, which she gave to her charity. So that was really successful in that. We got some noise out there, but I guess I was thinking things would move a bit quicker. I got kicked out of so many reddit and different groups for going in there and trying to say, hey, this is it. This is the thing everyone's been waiting for. And everyone's just like, shit coin, shit coin to get out. I mean, I just got kicked out so many forums and just everywhere I went, the moderators just kicked me. And I mean, I can't necessarily blame them because at the end of the day, as we've said, there's this huge number of pointless coins and you know, 99.9% of them are just scams. And so you can't blame someone's defense mechanism for that. It's operating correctly, ultimately, to call me a shit coin, but I'm just in there trying to say, research, look into this. This is the way that Vitalics should have done. It kind of unfortunate. They probably had this minibus idea was at the same time or around the same time, but he just wanted to do it properly, which was another thing I was especially at the time, back in 2018, 2017, the Tether thing had been massive. There. Was this whole security thing was just flying around, and it was like, this is the right way to do it. But at the same time, the whole time that Stacks was trying to decentralize to the point where it could start bringing in the audiences, the ethereum mess was just growing. The off bitcoin, blockchain, unmined kind of mess was just growing at a rate of knots. And it's just kind of sad that didn't kind of just have that leap of instead of burning, because they always knew burning was bad, and that's for people who don't know. That's how theorem kind of started. You had to get value in there for people to stake, and mine and all the rest of it, it was burning bitcoin. And so the quicker they got that value locked into ethereum, then they got people going, okay, we've got a network here, and we're all supporting it, we're all invested. And if only you'd had the thought to just do proof of transfer, because we wouldn't have this whole mess, we wouldn't be here now. We'd all just be in that. I don't know what it would have been like, but it'd be a very different world if everything had just had just started from here. But here we are trying to do it. But yes, it feels like a really big battle now, because it was really interesting when we had that Sappy Seals thing a few couple of months ago. I think that was really interesting. It was someone with an enormous following on a theorem doing kind of follower farming or something, just trying to go out and get people to follow on Twitter, and just said, I'm thinking of moving to Stacks and everything. Everyone on Stacks flipped out and go, quick, I'll post on this guy's thing. He's got 100,000 followers a day. But what was really interesting was that was what triggered the BNS rush, because all these people that kind of I've been trying to get my voice into their forums, they suddenly just got introduced by a person who wasn't going to get shut down, and he was even trolling in a way. But suddenly these people, all it took was someone to say, there's something you can do with bitcoin. And then the cleverer of those lot looked into it and then went, holy shit, this is a really cool idea. And then it was a really amazing event, and it does fill me with confidence that we're in the right place, we're doing the right thing. But it is quite a battle going through this and actually getting everyone to kind of get on board. I was shocked by the bitcoin conference when I went out to Miami, went down to the conference on the Friday I was with Drew Falkman, and we went in and we were just instantly taken by just a funny vibe. And we'd been talking about I was going out there with a special work of art that I really wanted to get into the conference and went down there and they were just like, no stacks there's. No stacks. NFTs are allowed in here. But in the center of the conference was a huge array of screens selling Ethereum NFTs. And I was quite shocked, I was quite shocked that it was preferred to put Ethereum NFTs on screens in there and somehow put it under an umbrella of being valid at the Bitcoin event. But that was shut out. And then I got a photo, I think, of which one was it, Miami Coin or New York Coin? It was the closest we got to that conference was about three blocks away and I've got a photo of this truck with just a flatbed lorry with a Miami Coin sign on. And I kind of felt at the time that there was a bit of a bit of a there's like a kind of old boys club already in Bitcoin with these guys from I guess from Block Stream that started all this stuff with side chains and they kind of create they were kind of, in a way, the original Bitcoin accelerator, I guess. But they were going down a route of everything being federated and centralized and so now we've sort of got it from both sides. We've got established businesses who have an inferior way of operating, basically, and a business model that was always going to get swamped by decentralization eventually. Maybe they thought they'd have a bigger head start, I don't know, but now they're definitely not happy about stacks and doing it on. There was a big thing with Adam back and maneuver on Twitter. Manev was being very reasonable and Adam pack just kept going back to pre mine, pre mine and lack of Bitcoin miners, which I couldn't actually disagree with him with the bitcoin mining thing, which sounds like this new upgrade is going to allow decentralized mining, which could in the perfect world, you've got everyone in Bitcoin. Like, again, if I think go back to Vitalic, if he had done what Mane did, I think at that point the small Bitcoin community would have said, it's our job now to mine this smart contract network. So while it's just automatically assigned 1% of what you're holding to mine, we'd just be in this amazing world where this smart network is just accepted as being a good thing, but instead we kind of got to fight for that. But decentralized mining is a massive step towards that because that does allow people, hopefully to mine with very small amounts, which will be that's a game changer because that's when we can just start getting people. That argument then falls away once you've got the centralized mining, that argument goes. The other arguments were just, in my opinion, bullshit, because the whole pre mining thing, it's like, I mean, look at Bitcoin, look at him. And every successful network kind of started that's the process of decentralizing who mines it. In the beginning, it's just kind of got to be done. And it sounded like an argument of a corporation fighting against something that they know is good and know is competitive and know is worthwhile, but they're going to argue it till they're ready in the face that they're going to find some some issues with it. So anyway, yeah, it's been a long journey, but it's really nice hearing you guys tonight and seeing some new people coming on. It does feel like we're just getting into that bit where the markets have kind of got close enough to the bottom that people start kind of moving again and then some people are looking for other change while things are down, they're looking around and some people are coming here and finding this amazing network. And thanks for letting me go on, Jim. Totally, totally. Respect goes out to you, my brother. And it's funny hearing your story as well, especially yourself being from the UK. Because part of the reason why we started up Stacks London, we kind of just started off out of the blue because I've been around in the space for a minute and I've not really seen anybody talking about Stacks since, you know, the old block stack days. So when I, when I really dove in in 2020, I was like, you know, after a couple of months, I was like, well, what's going on? And I'm going to all these events and speaking to all, you know, same people and same networks, and it's like, nobody's talking about Stacks and talk to people about Stacks, they're like, you know what, Stacks? And then now go block stack. And they're like, oh yeah, block stack. You know, we remember block Stack, like. What'S going on over there right now? So it's really weird. And then there's a lot of synonymity as well, with your early story as well, because, I mean, my first real kind of, I would say, dive into learning about bitcoin was around 2013, 2014, and then when I first kind of discovered, let's say, all right, blockchain and what blockchains are and how blockchain operates wasn't until like, a year later and again, coming from a music background, my first thing was, okay, so when you said that bit about people getting paid, I swear that we literally had that same we was in the studio having that same conversation. I think everyone who got in at that time immediately, if your mind operates quite quickly, like a lot of, I think, builders minds do, you do tend to jump instantly to the ultimate solution, which is like, oh, look, here we go. Everyone in the world who has a phone now can transact with anyone else in the world. Great poverty is kind of on its way out, but now later on, you're like, yeah, we're ten years into this game now and it still feels a long way away. Even in terms of just that kind of accessibility for people. That focus really isn't on remittance, I guess it's more on certainly now it's like on people sort of surviving and building businesses and making money. But it would be great once that kind of rush gets in the same way. Like the.com bubble, it's like this massive rush and then afterwards the really useful shit sort of starts happening and hopefully we'll sort of get to that point soon when the real thing that bitcoin has to give humanity can really start working for people. Yeah, definitely. I think that's part of a lot of people's entrance into Stacks as it being stacked rather than Block Stack is that kind of frustration. I think that's where it definitely sits for me, having that frustration that you're watching this thing play out all over again and everybody's heads just in the clouds and you've got all of these new people coming in. Nobody wants to let people or teach people the actual core fundamentals. They just want to, I feel like, a feeling of they want to sell their particular idea. So I feel that a lot of projects have just completely run away with that. And again, not to say that there's not a lot of other great projects out there, let's say Blockchains and the technology and cryptocurrencies themselves do kind of provide that open medium for people to create these ideas and do these things. So that kind of what you said about walking in the room and everybody's like, we don't want to do anything different. That kind of Maxi rooms where we just want to stick with just this. That is an absolute ludicrous idea. I've said this in plenty of Maxi spaces, so if any Maxis decided to jump in there, it's no different than what I say in their spaces. At the end of the day, ",timestamp:"00:24:51-00:48:54",topics:["Stacks","Web 3"],type:"twitter_space",weight:13.500243841282398},{boost:0,date:1632355200,description:"Vincent Zhang and WhatsMiner introduction",episode_title:"The ASIC Mining Hardware Market",guests:[{name:"Vincent Zhang",profile_picture:"https://pbs.twimg.com/profile_images/1158285609196109825/fuB-e6lm_400x400.jpg",ref_id:"98e7bc98-3a3b-4ddf-9b48-5dcd78973739",twitter_handle:"Whatsminer_MBT"},{name:"Vincent Vuong",profile_picture:"https://pbs.twimg.com/profile_images/1260974518547312640/n47yvbNL_400x400.jpg",ref_id:"8390e230-e36b-4e0d-9f5d-70c6635bf3c2",twitter_handle:"BitcoinVincent"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=qKeUCNXa4Uc",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"3cb5fd13-1b10-4dc0-b8e3-f2fc0f1ec406",show_title:"Compass Mining",text:"the two Vincents are going to unload a lot of information, insights and some fun opinions on us. This conversation, I want to give you both a chance to introduce yourselves, give us a little background on sort of how you got into the mining industry and your focus on the ASIC markets. Vincent, from What's Minor, do you mind just introducing yourself and giving us maybe a brief history of What's Minor and what led up to where you are today? Yeah. So I should say good morning. So here it's midnight in China. My name is Vincent. Right now I serve in as a sales director in Watts Minor. So actually there's a small story for myself being in this industry. So before I joined What's Minor, I was working in telecommunication industry. So I worked in DT Corporation for 14 years. I sold a lot of telecommunication equipment to India. However, in the year 2018, I just quit the job, my previous job, and by chance I got joined in What's Minor. And so when I joined what's? Minor? So actually the situation of Microbity What's Minor is not as good as right now we are because though we released the most efficient minus based on 16 nanometer from TSMC, however, we were not able to get a sufficient supply capacity in the year 2018. And of course, everybody knows that the mining profit in the year 2018 is not so good. So due to these reasons, the situation of What's Minor in the year 2018 is not so good. So however, this situation get changed in the year 2019. And so myself is very pleased to join work with Microbity as Sales Director because starting from the year 2019, so we export more business chances outside of China. So we can say after I joined what's minus, our overseas market enhance a lot, probably later via the conversation, so we can share more information about What's Minor and myself. But I'm already in this industry for three years. ",timestamp:"00:01:34-00:05:06",topics:["Vincent Zhang","WhatsMiner","minor"],type:"youtube",weight:7.285317421145426},{boost:0,date:1677582e3,description:"Lucas' real dreams and goals in life",episode_title:"Ep. 514 The Future of Crypto in the Media with Blockchain Boy",guests:[{name:"Lucas Dimos",profile_picture:"https://pbs.twimg.com/profile_images/1092408696838197250/n0-St2nZ_400x400.jpg",ref_id:"9ac17e2f-49bd-4fc5-bfe5-2f380ca63574",twitter_handle:"lucasdimos"},{name:"Blockchain Boy",profile_picture:"https://pbs.twimg.com/profile_images/1602154101642592256/A0OX97CT_400x400.jpg",ref_id:"4b070a6f-bcc8-4708-abaf-cc830709600f",twitter_handle:"BlockchainBoyy"}],hosts:[{name:"Aaron Malone",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"bd103540-8c0a-4ab3-b5cd-24a3f2c43ab2",twitter_handle:"pizzamind"},{name:"Bryce Paul",profile_picture:"https://pbs.twimg.com/profile_images/1182725652794892288/QbDOKHcP_400x400.jpg",ref_id:"0d670dbf-f434-43b6-b454-8e5345d7ee51",twitter_handle:"BrycePaul101"},{name:"Pizza Mind",profile_picture:"https://pbs.twimg.com/profile_images/1521495204196503553/abk-5S0m_400x400.jpg",ref_id:"16cb01cf-9f04-45db-a440-47259b02b86a",twitter_handle:"pizzamind"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/93a6fe5b-364c-43f4-9f38-7da3e811460b.jpg",keyword:!0,link:"https://chrt.fm/track/DD9393/audio1.redcircle.com/episodes/68f31cee-f404-40fe-85d7-a406019e916f/stream.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"d266ac59-706d-4b4c-b0ca-d9ea3ae4fc34",show_title:"CRYPTO 101",text:"to be? That's a great question, and I'm still figuring out what I really want to do with the rest of my life. I just know that I really like building cool things with cool people, and I think I'm always going to do that, no matter whether it's big or small. I think it's just I have to do something. I'm like a shark. Sharks have to keep swimming or they sink. Right? And so it's very similar with me. Maybe I'll have some more time to go live in the country and be away from people for times. But no, I really like empowering people to be their best selves. That's really what makes me the happiest, is, like, I'm a very loving and caring person, and I love to see people do good things and succeed. So I would really love to get into sort of micro loans and sort of entrepreneurship guidance and maybe even ethical VCs, because I don't think a lot of VCs are very ethical. And so I'd love to do something along the lines of that to empower more entrepreneurs to have an effect in their community and environment outside of Web Three, too. I've been doing micro loans on the platform called Kiva for many years, and I think it's super cool and needs a Web Three version. Yeah, I've actually never heard of Kiva. Tell us a little bit more about what micro loans are. And has that been a way that you could generate passive income or anything? No, it's just mostly a tax write off for really rich people. It's not like super well known, but you get to actually empower entrepreneurs in other countries. Oh, there's Jonah. Jonah. I'm on a podcast. Oh, he's bringing stuff. Jonah. What's up, brother? Thanks, bro. No, he's one of my fantastic team members over here. Thanks, bro. I wish I got ",timestamp:"00:22:22-00:24:01",topics:["Lucas Dimos"],type:"podcast",weight:71.21921050996978},{boost:0,date:1625958277,description:"How Bitcoin helps increase business competitiveness and change business model",episode_title:"WHY ARE WE BULLISH? Brandon Quittem, Timothy Kim, Shinobi, Steve Barbour ep185",guests:[{name:"Brandon Quittem",profile_picture:"https://pbs.twimg.com/profile_images/1502403738861940736/9J5VuTye_400x400.jpg",ref_id:"65512044-7810-4ece-8156-5519e072cb66",twitter_handle:"Bquittem"},{name:"Shinobi",profile_picture:"https://pbs.twimg.com/profile_images/1526590501742428160/0Y5H2uJK_400x400.jpg",ref_id:"a05dface-33a7-400d-a749-99efe0d96118",twitter_handle:"shinobi602"},{name:"Steve Barbour",profile_picture:"https://pbs.twimg.com/profile_images/1592714173469065216/q8kXPyQI_400x400.jpg",ref_id:"63a731b8-4759-4360-9e9d-d66f884e12d8",twitter_handle:"SGBarbour"},{name:"Timothy Kim",profile_picture:"https://pbs.twimg.com/profile_images/1569681307029934081/2s_nWYo__400x400.jpg",ref_id:"e0323798-c70f-4cc3-96ff-87bab50c2313",twitter_handle:"realtimothykim"}],hosts:[{name:"Ben Perrin",profile_picture:"https://pbs.twimg.com/profile_images/1181715113226596352/ipGVEcYH_400x400.jpg",ref_id:"e6b013ef-178b-4b41-95ee-423148a3dc3a",twitter_handle:"profbenperrin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/37027401/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2021-6-10%252Ffb6d5638-4579-5707-9740-0e586c980ba7.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"fe680ae3-835d-492f-b664-7d645d02a99f",show_title:"BTC Sessions",text:"Can I pivot into why I think why I'm bullish on this episode? Yeah, man, let's do it. As I'm on my fourth shot of Ryan, I'm about to lose any coherency on the same topic. I just love seeing any startups, especially any Bitcoin related, like pro bitcoin related startups do well. One of my favorite follows on Twitter is like, Tahini's Restaurant. Like a little franchise that's like big into bitcoin and you know they're going to kill it because just having bitcoin in your treasury, it makes it so difficult for any other competitor, to any other competitor, they're a restaurant business. Any other competitor that's in a restaurant, that's a tough freaking market to be in. Like the restaurant business, maybe bitcoin mining is like the only harder market because it's so easy to get into. But like, restauranting, it's an easy business. The low barrier to entry, tough margins. But Tahini, I don't know who else who's a direct competitor in their area. I think they're based in Ontario. It's probably a million Sharma places that do like what Tahini does. He's going to fucking kill those guys. They're going to kill all their competition because they might have the exact same profit margin. They might have at the end of the year, 10% profit, just like every other competitor in the area. Sort of like plus or minus a few percent. Some guys in the negative, whatnot, the team is going to kill them. They're going to kill them because they're going to have this bitcoin treasury. And I was saying that locally on a local podcast. And Lloyd, I got this small wheel field business we're getting into motors and stuff. Aside from the bitcoin mining focus that we have, what we're doing is actually not that different than what a lot of oil service companies do. And I said on this podcast locally, I'm like, my competition will have no chance to compete with me if they don't adopt a bitcoin treasury. And they don't even have to build bitcoin mines. All you have to do as any small business owner is convert a little bit of your treasury and your profits into bitcoin and to hoddle it and to speculate properly on it. And you're going to crush your competition, like your feet of competition. So my bullishness that I wanted to bring to this episode is like. I think that small businesses and true entrepreneurs. Not Fiat entrepreneurs. Not the guys just going out and trying to get raising money from these VCs and not really building anything. But actually true entrepreneurs. People going out and starting small businesses. I think we're going to see finally a true economic boom in small businesses that we've seen suppression over for over 100 years. Like over 50 years for sure. Ever since. Like the full on 1971 Fiat standard. But when I showed up on the show, I was driving. I do a lot of driving around Alberta, Saskatchewan, you know, Alberta, well, Sessions, we go through all these small towns. Every small town is fucking same. And I think about it from like, the bitcoin perspective. All these small towns are identical. They have the same franchises. They got the Mr. Lube. They got, like, the petro Canada. They got gas station. They all got franchises. There's no fucking small businesses anywhere. They're all dead. They're dead. Everything's a franchise now, right? Which in and of itself isn't a problem. But the fact is, these people are just licensees of a business model. They're not finding their own supply chains and building a small business. They're going out and becoming a licensee of a big Fiat, like a big corporation that ends up benefiting from the Fiat. ",timestamp:"01:23:33-01:27:13",topics:["business model"],type:"podcast",weight:7.273831367495893},{boost:0,date:null,description:"The future of payments on Bitcoin and on the Lightning Network",episode_title:"The Orange Sun 🌞 VISA, MasterCard & #Bitcoin #BOLT12",guests:[{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"~₿ Maxi~",profile_picture:"https://pbs.twimg.com/profile_images/1446241859651637250/i67F3y9p_400x400.jpg",ref_id:"ad997ae7-0726-431a-9f72-82da091c0658",twitter_handle:"fede0891"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"FireBurs†s",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"cda1d3ad-dd80-458b-a5fb-a28861df10a7",twitter_handle:"FireBursts"},{name:"Nikolai Tjongarero",profile_picture:"https://pbs.twimg.com/profile_images/1578458155964682274/_SzDxkAJ_400x400.jpg",ref_id:"821ee040-2267-454e-a59a-92da51568afa",twitter_handle:"BitcoinNaijaShw"},{name:"ブランドン",profile_picture:"https://pbs.twimg.com/profile_images/834861311762649090/N0KAP4zH_400x400.jpg",ref_id:"3d41531d-6a59-4771-81f9-0924b4c02561",twitter_handle:"blario"}],hosts:[{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/94a86a32-91c2-4717-b5cb-b36cef925776/38decc02-c922-4c1d-a605-7cd54c91a01d.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"1984e7b9-23f1-4ef0-8fcb-deac4ef23cc7",show_title:"Satoshi’s Journal",text:"Yeah, and that's one of the tools we're working at Satoshi Journalist. We've always paid our writers in Satoshi's, but once these QR codes become static through both twelve, we'll have the ability for all content creators to be have their associated lighting address prominently displayed next to their profile. And people want to tip them. They can be tipped. I mean, that's what basically the future is going to be. And of course Twitter is going to do the same thing. I listened to a long interview with Elon Musk when he acquired Twitter and he mentioned that he's going to allow content creators to be paid. And so I bet you he'll probably integrate the Volt twelve static QR code in such a manner where all content creators will have their respective QR code. And if they have good content, then you can send them tips, or if they don't, then you don't send them tips. And then what Olu said, it's going to catch fire because as soon as Mastercard and Visa are undermined by the fact that people can simply send Satoshis to other people instantly and basically for free via a static QR code, you don't need to freaking swipe cards no more. You don't need to freaking do all this stupid legacy system, fiat minded crap. You just get the QR code, have it into perpetuity as long as you want it, and boom, boom, boom. So the implications are huge from a game theory standpoint, although it might not happen right away if Visa and Mastercard aren't watching their back, so to speak, they're going to be like Blockbuster. And then you have a block stream, of course, is working on it. Another interesting angle is just imagine all these card issues, right? They integrate with Lightning because they want to catch up with technology. Don't forget, technology is always ahead of regulation. Regulation will have to catch up to technology. And these other companies that would actually make interoperability with Lightning even more accessible and easy with what they already have in their system, will be the one to accelerate this adoption. But this is how the game theory may even play out more interestingly, once they integrate with both twelve, because of the technology and the potential risk to them not integrating with it, they begin to see more adoption, right? And usually they are used to texting their people, their users. They have so much user base, they have so much merchants, so they just apply a little more fees. That's how to generate revenue on the cards. And now they've given many financial institutions the opportunity to print their own cards, right? So you go to the bank, the bank prints instant card for you. You just take the card and you start swiping once you leave the banking off. Or you just go to the nearest ATM, even, right at the banking.org, and you start swiping. That's my diamond. My daughter, she's just purchasing. My point, she's a bitcoin, a little bitcoin. And the card issuers, their competition will start from the people that can just begin an SME and start to create cards that you can spend lightning on. You do not need Mastercard, Visa card integration. That's where the competition will start from. The competition will not be a bigger company. It will be small companies. You can't you see all these bitcoin companies, they're going to come in droves and just small, small companies. SMEs everywhere will now have the ability to make cars that we just QR code you can actually tap and go. I think it's going to be fantastic. If you can use a platform that will charge you ten times lesser than what Mastercard and Visa is charging you right now, you save a lot of money in one year. And in Nigeria, it will cash fire ease in Africa. It will catch fire ease once people realize, because we are the experiment for the west, for Swift, for Mastercard, for Visa. Go and check their database. Africa is where the number is. Nigeria is number one. South Africa, Kenya. So the market of many of these companies is in Africa. 1.5 billion people will be 3 billion people in the shop field for 30 years. And you have 500 million people. Internet penetration is already more than 100 million people as we speak. You can access Internet with USA. So it's a fantastic thing to have the opportunity to do. Charitable effort. Just imagine the air drop you can do with lightning, static curl code to the entire nation, and you're not even spending much, but you're on boarding lots of people at once, and you're not curing too much fees. You can't do that on chain. You're going to cure too much crazy fees. I've tried it over and over again. But on Lightning, you're giving it away. You can give out a hundred thousand satoshi to 100,000 people. Wow. And you probably wouldn't have spent nothing with one QR code. And repeatedly you can keep paying it. You can do a minus A toshi. This gonna be fantastic, dude. I mean, more and more you talk about it, I get more and more excited. But one thing that's kind of interesting is once Visa Master become obsolete from Bitcoin and lightning, nevertheless, there'll probably be some iterations of the legacy system around. But once we get to the point where those individuals or sorry, those companies go obsolete, since you're in the payment sector, you know, the answer is this probably better than most is. I mean, for them to make money in the future, they'll probably end up running their own lightning node kind of deal and trying to make money through running transactions to their node because they would provide liquidity to the network and that would be one method by which they could make money. There are going to be other ways, but do you foresee them maybe becoming lightning node operators and taking I mean, I don't know how profitable that is, but what do you think about that? I'm not very active in this area. Portland is working right now, so I don't think he can talk. I would have suggested maybe a king can take this part, but I think it's very technical. I may be able to say some terrible part of it. Like I've already said, it's just going to be interesting when I talk, but people may not be able to see it insightfully from the length of somebody who puts together the code and understand how the pipe is supposed to look. I feel that the decentralization of nodes in general will create pipes of money. Our partner used the word pipe the other day when we're having a conversation and I could get it instantly because that was a very glaring example. So the bigger the pipe, the bigger the transactions I can pass through that pipe. I think it would be more interesting here because bitcoin is already everything. There will be proof of stake to a level, but it cannot have power over proof of work. It's just going to be proof of stake basically in the area of, oh, I got a bigger pipe, so bigger transactions come my way. And you can't query that because you don't have that. You know how I mean? I think people will run lightning nodes, but you're going to still have to have enough bitcoin to be able to do that. If you don't, then your transaction capacity will not be as much. Banks will run nodes, community microfinances will run notes. I mean, I think this is going to basically change regulation general, because it's an opportunity for revenue generation for the government. If I look at it from a public private partnership perspective, what I see is many opportunities for taxation for the government. So if the government is wise, you can't you shouldn't bitcoin it gets on now the quicker you can start to accumulate SATS and maybe some bitcoin in some very rare cases, you give people international money transfer patrol license to do legitimate bitcoin transaction in your country. You know how I mean? Because whether you give them or not, it's already happening. It's under your radar, but you can't stop it. Why don't you allow people run nodes? Why don't you expand that economy in general so you can see it, let it be transparent, but it's already decentralized. People would do it with or without you. So a lot of people would be able to run a node, but you know, the space needed for that purpose becomes larger. So I don't know, I think it's going to get like five terabytes in some decades and I don't know if it's going to be cheaper to get the necessary tools you need for that or it's going to be more affordable. Depends on how the world is. But in an imagine world, I want to believe that things will get cheaper because bitcoin will price stuff and in fact, once you have some, you can actually confidently spend and acquire what you want even more better than operating on the fiat monetary experience where things are very difficult. Even when you put the proof of work and you don't get to be paid what you deserve, you get cheated and somebody to come and tax you. They come and tax you for the services they don't offer you. So yeah, a lot of people want to know it depends on how cheaper it is in the future or affordable. But I think I kind of answered it to the best of my knowledge, jeremy, if I didn't. Yeah, no problem. Hey. Good morning, Oakland. ",timestamp:"01:42:06-01:53:40",topics:["Bitcoin Payment","Lightning Network Payment"],type:"twitter_space",weight:7.166842460632324},{boost:0,date:null,description:"The sovereign individual's role in Bitcoin and vice versa",episode_title:"Bitcoin Charlotte Book Club - Sovereign Individual Ch 1-7",guests:[{name:"Bolt",profile_picture:"https://pbs.twimg.com/profile_images/1352721439879786496/wfevZ8bG_400x400.jpg",ref_id:"b165e497-f255-4ce5-9762-30c90dcf776d",twitter_handle:"Bitcoin_CLT"},{name:"Victor",profile_picture:"https://pbs.twimg.com/profile_images/1519726025013350400/GHxSzgA3_400x400.jpg",ref_id:"d91fff8d-e4c6-4aeb-9f32-021e4a4ff9a6",twitter_handle:"victorwong"},{name:"George",profile_picture:"https://pbs.twimg.com/profile_images/1173474608856608768/vEBnPUdm_400x400.jpg",ref_id:"5946bdf6-8feb-43aa-b2ca-46b2944b0572",twitter_handle:"GeorgeNotFound"},{name:"Mark",profile_picture:"https://pbs.twimg.com/profile_images/1511102924310544387/j6E29xq6_400x400.jpg",ref_id:"c8cd0c95-c105-41c4-8fae-9dbfa76d84f2",twitter_handle:"markiplier"}],hosts:[{name:"Jacob Parrish",profile_picture:"https://pbs.twimg.com/profile_images/1552345395195412481/bgjme0Jh_400x400.jpg",ref_id:"476161bc-6773-4695-845f-15fe87affd67",twitter_handle:"Jacobp102"},{name:"Liz",profile_picture:"https://pbs.twimg.com/profile_images/1256650517549211648/cHwvj5o9_400x400.jpg",ref_id:"6538f07d-01e3-43c7-9068-55f3ec737d65",twitter_handle:"LIZ_Y2K"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/fe6bdbce-e91d-43cf-ab33-0e98bffabecc.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/3a4d250d-90a6-417a-a6b4-0f701bdd9e2e/daa90ea7-aa7e-41f5-9fec-7e513ca75667.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"5efbc2c3-e67a-4b16-9c9d-285bdd37e906",show_title:"Bitcoin Charlotte",text:"One of the things that I thought was really cool, which I never thought about with Bitcoin, this kind of goes into violence as well as he or she will even be able to act after death. For the first time, an individual will be capable of carrying on elaborate tasks even if he is biologically dead. It will no longer be possible for either an enemy at war or criminal to completely extinguish the capability of an individual to retaliate by killing him. This is one of the more revolutionary innovations in the logic of violence in the whole history. And so that really gets you to start thinking, what if someone came to get your money and you go, don't kill me, because if you kill me, I have money that will be paid to other people to come find you or your family. That would be pretty scary. Would you come after me then? Let's see. I'm not the best to have in dialogue with myself, so I'm going to just keep on looking around. So I got to page around a page 186, I think. So I had about 40 pages left to reach the desired area, which goes to the chapter eight, which starts with the end of egalitarian economics. But yeah, I think the book really starts to just get exciting for me. So I'm excited to move forward at this point, but it is a tricky one to get through if you're not an avid reader. But I'm getting better at it. Trying to think of some other really good points that I liked about this book. Unions. That was the word I was thinking of before. Unions were a really interesting topic in this book, and I want to find these quotes on some of it that were really cool. But the working so the idea with unions in this was they could use violence to get what they wanted. And that's one of the big turning points, too. It doesn't make much sense for unions to form anymore because companies do not have to be in a central location where they have all this manufacturing going on, and there's a lot of valuable stuff there that they know how to use. The worker simply sees the factories and ransom them back to the owners. The tactic of great simplicity, and one that in most cases, was profitable and fun for those participating. One sit down striker wrote, I'm having a great time. Something new, something different. Lots of grub and music. Maybe someone requested we got bro. So I was listening to the prior unions today, and so they were saying that those don't really exist anymore. Correct, because when I was working my government job, I was part of a union, really, and people would definitely abuse it. You could say something happened, and then the union would come and support you, basically, and you would kind of get whatever you wanted. How did the union have their power? What do you mean? How are they able to demand things? Well, you had someone from the union come and support you if you said this was like this one lady I worked with. She said she was getting harassed at work in our signal shop. So then the union came and like, an attorney, almost like it was an attorney, but someone had the union to take it her side of the story. And then it was kind of funny because we were all in the union. So then they had to get all of our other sides of the story, but they had to support us, too, like any people she was complaining about. I got you. Where was the union from? It was a union. You work for the DLP. I should know that, but I don't remember that's. Okay. How's it been going? Oh, we're just kind of monologuing over here, and I can't remember much of the book. How about you? How's it going? It's all right. Just cooking some steaks and pizza. The union is UFCW local 1994 Montgomery County Employee Union. That is a voice for working America. I'm not familiar. Mark, did the sovereign individual talk about unions? Yeah, quite a bit. We're talking about how violence, the use of violence or union is basically saying, hey, we're not working and we can also run the factory. We run the factory, we know how to do it, and they can hold the factory hostage. But that's basically dying away because things are getting more decentralized with the information age. Right, that makes sense. I listened to the book, actually, and I did it a while ago. I don't exactly what you guys discussed. I found it to be really good. I definitely didn't capture near as much of it as you do when you read it because you get through it a lot faster. The time you're committing to the book is a lot less. But yeah, it's so much to tackle. I mean, you could have long conversations about any small parts if you really dive deep into them. So I don't know if there's any particular subject you guys are talking about, but we have many people in here. But if there's anything interesting anybody wants to talk about. ",timestamp:"00:21:00-00:27:56",topics:["Sovereign individual's role"],type:"twitter_space",weight:7.131711006164551},{boost:0,date:1671720944,description:"@mattyicesensei and @johnmichaeldrew's opinions on Web3",episode_title:"Café ₿: #Bitcoin News & Bitcoin Day w/ @Bitcoindayio",guests:[{name:"@johnmichaeldrew",profile_picture:"https://pbs.twimg.com/profile_images/1512897699942744064/PuRU3K8P_400x400.jpg",ref_id:"6b72ee7f-52ef-4847-96ed-78ea09e3f19b",twitter_handle:"johnmichaeldrew"},{name:"@mattyicesensei",profile_picture:"https://pbs.twimg.com/profile_images/1607138483579101186/0qm0xaCF_400x400.jpg",ref_id:"286abd3b-cecc-4ec5-bf88-2a9fd5393083",twitter_handle:"mattyicesensei"},{name:"@Bitcoindayio",profile_picture:"https://pbs.twimg.com/profile_images/1493098733608837121/tLI-XTwl_400x400.jpg",ref_id:"6a87699e-7a27-4928-89e8-d884f1458bf9",twitter_handle:"Bitcoindayio"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/83744e68-b563-4004-b52a-cfdfff89748f/12c9b9f2-fbce-4784-9404-88a574baa762.mp3",node_type:"clip",pub_key:"",ref_id:"f80dd079-1a9d-4bda-b8dd-81c05d203533",show_title:"Swan.com",text:"Thank you, John. Maddie, I was just wondering, I'm just kind of looking through your stuff, recent stuff. Can you tell me your opinions on web three and products like step in, for example, and just where are you on ethereum? Where are you on crypto? Bitcoin? What do you think about web three in its future? This can be for either of you, actually. Alex, are you going to allow that on this? I was going to ask him. Maddie's very knowledgeable. Maddie's knowledgeable. I'm sure he can answer. But you want us to answer that, Alex? Yeah, we do this thing called the crucible on this show sometimes where sometimes there's hard questions. So I don't mind. Go ahead. Sure. Let me take it from here then. Me personally, I use different platforms, different things. I like to gamble. I like to do different things. So where I'm at with web three, I'm fully bullish web three, I'm fully bullish bitcoin. Bitcoin is my savings. It's where I store most of my wealth. When I like to gamble, I use stuff on ethereum. I play different metaverse games. I do all sorts of stuff. So for me, there's a use case, there's a value there. It's not anywhere near the same value as bitcoin. But, yeah, I have fun with all sorts of stuff. I like to gamble. I like to go to the casino. I like to do all sorts of stuff. So with a small portion of my wealth, I gamble and do that kind of stuff. Does that answer your question? When you say gamble, do you mean literally gaming, or are you talking about purchasing shit coins and then gambling on return? Oh, all of the above. So quite literally, I go, like, for example, if you use a theorem, if you've ever heard of the metaverse, if you go into, say you go into central land, you can literally go to a casino into central land and gamble. So I like to do stuff like that. There's all sorts of different things you can do gamble for returns. But for the most of my wealth, I'm just dollar cost. Averaging and stacking stats, but there's a lot of different fun things you can do out there. Most of it, probably 90% of all of it is scams, ponzi schemes, all sorts of different stuff. But there's definitely things that I find value and personally, aside from bitcoin, although I just think they're different things. Right. You don't store all your wealth and Bakarat casino chips, but you might like to go play and gamble and do different things. So that's the way I like to look at it, if that makes sense. ",timestamp:"01:56:23-01:59:20",topics:["Web3"],type:"twitter_space",weight:16.6951974581924},{boost:0,date:1667347200,description:"The business model of Amboss",episode_title:"Meet the Makers: Anthony & Dolu",guests:[{name:"Anthony Potdevin",profile_picture:"https://pbs.twimg.com/profile_images/1252630766909079555/qf-qI5EZ_400x400.jpg",ref_id:"da0a9fdc-eda1-4e07-8341-2100428065d1",twitter_handle:"thunderhubio"},{name:"Dolu Zerologin",profile_picture:"https://pbs.twimg.com/profile_images/1577320325158682626/igGerO9A_400x400.jpg",ref_id:"4c228a2d-4f9c-4bbd-bf49-d2be3159c6a4",twitter_handle:"Dolu_Web"}],hosts:[{name:"Zapp Ed",profile_picture:"https://pbs.twimg.com/profile_images/1519990234070540288/adGqlFoj_400x400.jpg",ref_id:"bbe7cf1d-cd8d-4d36-926d-76f41b775fbb",twitter_handle:"zapp_ed"},{name:"Moritz",profile_picture:"https://pbs.twimg.com/profile_images/1452933125743460360/5xkRoFj7_400x400.jpg",ref_id:"e23e282d-82b3-4c9d-859c-c1c7f41eef84",twitter_handle:"getAlby"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/965489b4-a414-4fd0-ab8c-55911b1596aa.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=wiIzexAc2gs",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"7ef24d02-66fe-4872-b1f1-ea144bfcaf5c",show_title:"BOLT FUN",text:"model of Ambulance today? Yeah, so this is a very interesting point because a lot of feedback that we get is like you're in this growth phase, don't charge anything. Just try to get as much users as possible. And while I think it is in a way correct, like we should be looking to get as much users and as much feedback as possible for our products having a price for the different products, which at this point the price is very minimal. The space is very small. Like the lightning. Space is very small. And what we charge for our product is also very small. So overall revenue still is very small. So it's more of like a symbolic thing. But what it helps us is see where there is interest or where there is value that people are willing to pay for some services, right? For example, if we were to do a magma our marketplace and have everything free. We wouldn't really know if people are using it because it's useful to them or just because it's free. People love free stuff. If it's free, they will use it even if they don't really need it. If you see enlightening with rebalancing, people rebalance all the time and if it costs them almost nothing, then they just do it because they want to, not really, because it could be something that is useful to them. Right? So adding this price point on top does help us see like, okay, there's interest from the community to further expand this service. They do see value in it. Let's maybe put more focus towards that part. And in terms of business model right now for us, we have ads on our home page. We focus on Bitcoin and Lightning ads and then we have subscriptions that you get some additional perks you can personalize further your node page you can add like a node and then for the more analytics interested people there is time series that they can access like further get further insights into what is happening around nodes or around the Lightning space. In general, for us, it's really about experimenting. So we're trying out all these different revenue models, like figuring out where people see value, where they're willing to give us some stats to improve their experience or have something nicer or more data or something that gets improved for them. Yeah, thanks a lot for sharing this. I think it's very, very encouraging also for new developers in this space to learn from you. And I think people should take the time to experiment and learn as much as possible. And I'm also curious to learn from you Dulo, what experiments or what experience also led to the most recent project zero lock in. Can you share some history on that? ",timestamp:"00:16:35-00:19:57",topics:["Amboss","Lightning ads"],type:"youtube",weight:7.334451631469231},{boost:0,date:null,description:"Bitcoin News for December 20th, 2022",episode_title:"The Orange Sun 🌞 Interview with Nzonda Fotsing Sr. #Bitcoin",guests:[{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"Funsho Jimoh",profile_picture:"https://pbs.twimg.com/profile_images/1600143435775856641/uqgmtT23_400x400.jpg",ref_id:"a237ffb0-792b-484e-b12f-65a2b679eaf1",twitter_handle:"fnicencool"},{name:"Heritage Falodun",profile_picture:"https://pbs.twimg.com/profile_images/1510397558652350469/jYOl00tU_400x400.jpg",ref_id:"b2bcc65a-b060-4dbe-b9ac-a7d64a11d2ac",twitter_handle:"herrytheeagle"},{name:"Nzonda Fotsing Sr",profile_picture:"https://pbs.twimg.com/profile_images/1458565804291670016/XaLi8e6a_400x400.jpg",ref_id:"53fe4486-5ef3-4988-8ada-47c3cb1c2d51",twitter_handle:"BitcoinSophist"},{name:"ROB",profile_picture:"https://pbs.twimg.com/profile_images/1605484577669074946/CkYjFUxH_400x400.jpg",ref_id:"25c5f080-fd07-4b37-9014-7fc05419edce",twitter_handle:"robertlamonta15"}],hosts:[{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/e4a700c7-f311-4270-be71-e2783252be6c/d4cb7ccf-f7e8-4071-a74b-943cc09fd967.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"ed128fbb-3ad8-4d26-921c-495edfda3cbd",show_title:"Satoshi’s Journal",text:"So as soon as she comes up, I will put the focus and landlight on him. But the first thing I have in the nest is I try to let you up top. Tiki. I'm not sure what happened. I'll send you an invite. So, bitcoin sapiens, he's been on a roll these last few weeks. You could tell he's taking some time to think out some really good quotes. And this quote he says, I think I'm here. Yeah. Okay, I'm up. Hey, what's up, tk? Yeah, it's showing on my end. Like, you know how it gets louder when you come to speaker? It got louder. So I assumed that I bumped up to speaker, but then I look and I'm still listening and I have mike. I'm like, what the heck? That was weird. Yeah, I don't know. That is weird. I'm going to share the nest or share the space now. Okay. So bitcoin sapien says, a common misconception is thinking bitcoin is the first iteration of a new tech, when in truth, bitcoin is the final iteration of a dream that took decades to achieve and includes the hard work of incredibly smart people from all around the world. And that's a very good point to make because a lot of people think that bitcoin was the first cryptocurrency and it was the first iteration of an innovation. But bitcoin came upon the hard work of many cryptographers, engineers, scientists, mathematicians, just people in general trying to study how to get a digital money that was totally out of the hands of government. And so up until bitcoin, many people tried many different things. And finally, satoshi nakamoto was able to put together an iteration of all the things that had been done before him or her or them and come up with bitcoin. So I like that quote from bitcoin sapiens. It's a good one. The next thing I have up here was another quote, this one by Jeff Booth. He says, trying to measure a non linear system. The economy, like a linear system, ensures you miss small changes in conditions that lead to critical states, which also means that you might dramatically underestimate the risk. Of said system bitcoin. Yeah, I think a lot of people try to think that economy is a linear system. And they use these linear metrics to try to measure a system that you can't measure on a linear basis. One thing like the CPI, we all know that's also known as the CPI, the Consumer Price Index, is a basket of weighted goods and services that people, that the economists use as a means to try to gauge what inflation is. But that's their linear way of trying to measure something that's not linear. And that's just one metric of many that economists try to use to measure an economy. I mean, it's almost like it's using the wrong tool, basically. If you have a system that has so many variables and it's really what it comes down to. It's such a complex system. How do you measure such a complex system? How do you try to think just in your human body right now? How do you measure all of the complexities that are happening in your body? How are you to measure every freaking neuron that's going in your head right now? Just back and forth, back and forth, exploding, firing off information, the blood going through your veins? How do you measure that? The pumping of your heart, the treble of your voice? You can't measure the human body with linear metrics. The human body is a complex organism. And I implore anybody to try to measure the human body using a linear metric. So that's basically what Jeff Booth is saying. The economy is a living organism that has so many variables, and if you're trying to measure it with a linear system, then you're going to miss a lot of he says, small changes and conditions. I'm thinking you miss big changes. Anyways, that was a cool quote. I liked it. The next thing I got up here is, ",timestamp:"00:05:39-00:11:10",topics:["Bitcoin News"],type:"twitter_space",weight:6.58552348613739},{boost:0,date:null,description:"Interesting predictions from the Sovereign Individual",episode_title:"Bitcoin Charlotte Book Club - Sovereign Individual Ch 1-7",guests:[{name:"Bolt",profile_picture:"https://pbs.twimg.com/profile_images/1352721439879786496/wfevZ8bG_400x400.jpg",ref_id:"b165e497-f255-4ce5-9762-30c90dcf776d",twitter_handle:"Bitcoin_CLT"},{name:"Victor",profile_picture:"https://pbs.twimg.com/profile_images/1519726025013350400/GHxSzgA3_400x400.jpg",ref_id:"d91fff8d-e4c6-4aeb-9f32-021e4a4ff9a6",twitter_handle:"victorwong"},{name:"George",profile_picture:"https://pbs.twimg.com/profile_images/1173474608856608768/vEBnPUdm_400x400.jpg",ref_id:"5946bdf6-8feb-43aa-b2ca-46b2944b0572",twitter_handle:"GeorgeNotFound"},{name:"Mark",profile_picture:"https://pbs.twimg.com/profile_images/1511102924310544387/j6E29xq6_400x400.jpg",ref_id:"c8cd0c95-c105-41c4-8fae-9dbfa76d84f2",twitter_handle:"markiplier"}],hosts:[{name:"Jacob Parrish",profile_picture:"https://pbs.twimg.com/profile_images/1552345395195412481/bgjme0Jh_400x400.jpg",ref_id:"476161bc-6773-4695-845f-15fe87affd67",twitter_handle:"Jacobp102"},{name:"Liz",profile_picture:"https://pbs.twimg.com/profile_images/1256650517549211648/cHwvj5o9_400x400.jpg",ref_id:"6538f07d-01e3-43c7-9068-55f3ec737d65",twitter_handle:"LIZ_Y2K"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/fe6bdbce-e91d-43cf-ab33-0e98bffabecc.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/3a4d250d-90a6-417a-a6b4-0f701bdd9e2e/daa90ea7-aa7e-41f5-9fec-7e513ca75667.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"1ba72c1d-ff22-4572-ad24-8171bfce9de3",show_title:"Bitcoin Charlotte",text:"I guess that is hard for me to get through. But when they talk about what they predicted happened in 2000, I mean, they weren't right on that, correct? Yeah, I think the reality of that is there were some really interesting predictions that were right or close to right. There's plenty of things that weren't right, but anytime you're predicting the future, if you're right at all, it's usually pretty impressive, especially with the way technology is and how things change, it's hard to predict about anything. So I think they made some pretty bold claims that were shown to be pretty true. And I think that's what people get attracted to when you kind of look back on it and say, wow, they're actually right on some of these things, whether it's digital currency or they even reference pandemic and how the state will control people. And there's just so much overlap with the reality we're living through. I definitely find that stuff interesting. I already knew all that stuff before I read it, though, because I've been talking about so much on podcast and things. You're just so smart, bro. Well, a lot of people talk about especially Robert Breedlove. He references the sovereign individual a lot, so if you're listening to his podcast, you're going to know a lot of that stuff. These authors take in a ton of information and I do kind of like how they seem to make the best logical conclusion from the information. There's bias here, of course, but they really analyze all these things. They take in a lot of different authors and they look at what they wrote and what they think is wrong about what other authors wrote and they cite all those things and kind of go through that and a journey with all this. And it is I do like that part of it. It just seems like it takes quite a while to get through some of those points. But mark so what we started with was the gist that I got from this book was those in control of violence. Where violence is incentivized is basically how you can predict what's going to happen in the future and who's going to be in control. Whoever has the best leverage on violence. So they're reading part of the book. They're talking about the state didn't have any really control because there were nights. And the nights because of some of the metal workers and stuff, made certain improvements to the horses and forget about the stirrups and something else to make them just badass soldiers. And one night can take out like 20 guys or something. And so if you had a group of that, you can basically go in, pillage and go anywhere you wanted and do what you wanted and no one else could stop you, not even a state. But they kind of lead you through that, through all those things. And I was wondering if you got that from listening it from it, if it was like they seem to be the theme. The people control it. I'm saying that monopoly on force or something like that. Yeah, I think are you talking about just how technology brings a lot of it continues to show that that monopoly gets weakened and the power to individuals get strengthened. It can go both ways because technology can be used in either direction. I know they talk about that quite a bit. I guess I'm talking about the incentive for violence. So before agriculture, there was all these groups and every day they had to go out and find food and bring it home. They're very busy dealing with that and they couldn't store food for that long. So the incentive to go and take out some other village wasn't that great because they didn't have a lot of stuff and they had to keep themselves alive anyway. So once agriculture wasn't developed, all of a sudden a lot of wealth started to become available, which then made it so there was something to steal. So then you could go then it made sense. Oh, if I become a violent person here, I can get a lot of riches or a lot of food or a lot of whatever. That kind of leads all the way into the nation state to where we're at now, where violence can be incentivized because you can actually take over a lot of stuff. That's what I'm getting at. Which leads to Bitcoin, where we talk about this a lot, where storing your money the proper way with Bitcoin, with cold storage or multisig makes the incentive for someone to come steal it very small because you got to go through so many hoops to make that actually happen. Yeah, I 100% agree with you. The incentives in a fiat based system and basically throughout all of history, except for a few periods of time when gold worked pretty well, of course you could still steal it and you could confiscate it, but at a different time with different ways of doing, forcing people to give things up and stuff. You could secure something physical like that pretty good and that provided people some way to store value and protect their property rights, really, and their wealth. But it obviously has major issues and failures, just the physical realm. And then bitcoin solves that by creating an uncomplicated property. And it seems that they definitely dialed into that some in the sovereign individual that will be a natural evolution of humanity because they've recognized this problem with the incentives, which is basically what you were saying. It's inevitable that those things are going to happen because humans were incentivized to gain that power and to control people either through what they thought was best for the people morally or immorally and then eventually they would abuse that power and that brought us to where we are. I think that makes a lot of sense. I think another thing where they just use their philosophy and all their research and hard work to really dial into some things that are really important that a lot of people don't understand on just human nature. ",timestamp:"00:27:58-00:34:52",topics:["The Sovereign Individual predictions"],type:"twitter_space",weight:6.520025253295898},{boost:0,date:1647576e3,description:"Introduction - How [[Bitcoin UASF]] went down, [[taproot]] lot=true, speedy trial, [[small blocks]]",episode_title:"How Bitcoin UASF went down taproot lot true speedy trial small blocks",guests:[{name:"Luke Dashjr",profile_picture:"",ref_id:"c3b2367f-2863-421b-8b2c-c093423f0eaa",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b79a3eb8-bcd0-4338-b979-d32aef360785.jpg",keyword:!1,link:"https://www.youtube.com/watch?v=rspXF6Gp3-g",node_type:"clip",pub_key:"",ref_id:"b1eabcd8-8d00-4950-b264-f4f2741ca3a7",show_title:"Stephan Livera Podcast",text:"",timestamp:"00:00:00-00:03:40",topics:["bitcoin uasf","taproot","small blocks"],type:"youtube",weight:6.440371671951619},{boost:0,date:1647576e3,description:"[[Small blocks]]",episode_title:"How Bitcoin UASF went down taproot lot true speedy trial small blocks",guests:[{name:"Luke Dashjr",profile_picture:"",ref_id:"c3b2367f-2863-421b-8b2c-c093423f0eaa",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b79a3eb8-bcd0-4338-b979-d32aef360785.jpg",keyword:!1,link:"https://www.youtube.com/watch?v=rspXF6Gp3-g",node_type:"clip",pub_key:"",ref_id:"a61c7685-556b-4886-8908-fd0ead4dc1f2",show_title:"Stephan Livera Podcast",text:"",timestamp:"00:43:55-00:00:00",topics:["small blocks"],type:"youtube",weight:6.440371671951619},{boost:0,date:null,description:"Cory Klippsten and John Ely's words on the Bold Bitcoin credit card and Bitcoin space",episode_title:"Café ₿: Bitcoin Credit Card w/ @BoldBitcoin @John_ely_21m",guests:[{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Wicked",profile_picture:"",ref_id:"fee44016-b05f-4961-a6d8-7dac655cd931",twitter_handle:""},{name:"@BoldBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1559592705231044609/iJrNKxF9_400x400.png",ref_id:"dd4e1c4c-d111-4f01-ad95-18200d50cdb8",twitter_handle:"BoldBitcoin"},{name:"@John_ely_21m",profile_picture:"https://pbs.twimg.com/profile_images/1560444673046585346/VN8n2LtM_400x400.jpg",ref_id:"a24436b1-5992-4711-a4a5-0770546ea80a",twitter_handle:"John_Ely_21m"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7061be6d-b144-4a81-a13b-3d125e3e2812/edf29ab4-2b4b-4fdf-9998-8a9b8e9437c8.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"7fea625e-c79b-402b-bce5-66e4e97d9598",show_title:"Swan.com",text:"going to give you a couple of moments to make some closing comments, but before we do that, I want to welcome up Corey Clips and CEO Swan Bitcoin. Corey, do you have something you want to add? Absolutely, yeah. I just wanted to just give the backstory of how we connected with Bold in the first place. I think it'll be kind of fun for people to hear. I don't know if John even knows the story from Zach, but from like November through February of this year, so this was probably three or four months, we were deeply exploring, mostly me and Jeremy show. Walter had a product who was new to the company. We were really exploring whether to launch a Swan card and what that might look like and what we can do. And we were talking to all the providers and the program managers and digging the interchange fees and all this kind of stuff and basically netted out saying, that's a whole company. It's just way too complicated to do just with, like, a small team inside of a small but growing company like Swan. And so basically it was kind of wanting to kill it, but was still keeping the consideration open. And then I think Zach just reached out and I was like, oh, yeah, that's it. You need a team that's just doing this literally every day. And I'd rather partner with these guys in the future or something like that, but just see a team just go hard after that specific problem and nail it. So then we invested out of both Bitcoin or Ventures and Elzonte Capital and obviously have been rolling out the red carpet for them at our events and things like that. So really psyched to have you guys in the space. And this was illuminating the parts I heard and want to thank you for coming and sharing. That's awesome. Thank you, Corey. Yeah, it was great meeting you in La. You know how to throw a good party. A great party. I'll be there for the festival next year for sure. That's awesome. Just to wrap up. I know Alex wants me to wrap up. So appreciative you guys having me. We're excited at Bold to launch in the US next year. We're an amazing team of bitcoiners building an innovative product to help other bitcoiners and also to attract precoiners to make the Bold move to live on a bitcoin standard. You can follow us at bold bitcoin on Twitter. You can take the 30 seconds to go to get Bold IO to sign up for our waitlist. We certainly got some fun things in store for you. Before we launch, we'll be giving you a few ways to earn some stats and have some fun. And thanks again. My DMs are open. Love to hear what you guys all think. Awesome. John, thanks so much for being here. Very excited about what you guys are doing. I wish you the best. Hope it works out great. We'll probably have you back from time to time, check out where your progress is at and how things are going. Go ahead, Corey. So, I don't know if anybody switched over for a minute, but I just went and toured into the CoinDesk space doing their rundown of the top 40 most influential people in crypto for 2022. And they let me up on stage, and you'll probably hear about it on Twitter later today. That was pretty fun. Oh, God. Here's Tom. Tory. I honestly was really trying to pull punches and not be mean. I mean, these reporters hosting a space about this, they have no idea, but it's like you had literally zero bitcoiners out of 40. The only person that writes about bitcoin that got honored was Nick Carter, and he was honored for attacking toxic bitcoin maximus, and that's why he made the list. So, yeah, it's pretty funny, I bet. I hope it's recorded okay. I think it was recorded, yeah. So it would be toward the end, probably 15 minutes before the end of their space or before, whatever, 09:00 a.m. Pacific was, I think a space spun up already right now talking about it. So I'm going to see if I can find that good stuff. ",timestamp:"02:03:53-02:08:08",topics:["Cory Klippsten","John Ely","Bold Bitcoin credit card"],type:"twitter_space",weight:6.436822414398193},{boost:0,date:1587380431,description:"The availability of foods and other supplies during the covid 19 pandemic",episode_title:"Life in Interesting Times - Part 1",guests:[{name:"Matt Murray",profile_picture:"https://pbs.twimg.com/profile_images/1273726156236140544/SJjI1WD7_400x400.jpg",ref_id:"72ce0a76-8593-4898-9369-f39b4bc3d2d3",twitter_handle:"MattMurray28"},{name:"Louise Reynolds",profile_picture:"https://pbs.twimg.com/profile_images/602592582754050048/RbAMd-Re_400x400.jpg",ref_id:"b4c2b12b-96a1-4d37-ae74-5be0883f3091",twitter_handle:"reynoldslouise"},{name:"Jon Slaughter",profile_picture:"https://pbs.twimg.com/profile_images/1336713360/samantha_test_090_400x400.jpg",ref_id:"a295820c-0098-433a-8cc3-cc13085b85c8",twitter_handle:"jonslaughtermd"}],hosts:[{name:"Kim Howerton",profile_picture:"https://pbs.twimg.com/profile_images/858822375457964032/Of4fbmsT_400x400.jpg",ref_id:"49ab70ff-a8e5-4e0f-855a-49abe8a5b645",twitter_handle:"theketonist"},{name:"Daisy Brackenhall ",profile_picture:"https://pbs.twimg.com/profile_images/858822375457964032/Of4fbmsT_400x400.jpg",ref_id:"d68ff5aa-c521-4199-9a6d-bf2cf077ccaa",twitter_handle:"theketonist"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/a8e3517b-b44d-4270-adaa-57587896b1e7.jpg",keyword:!0,link:"https://traffic.libsyn.com/secure/ketolifesupport/ketolifesupport-0031-life-in-interesting-times_tc.mp3?dest-id=2479037",node_type:"clip",pub_key:"032318b5d36e680f7ce77f01e1e5e848da79bbd8c86018513c77b32a869e080e90",ref_id:"51ef662a-201f-4c3c-b60d-bbc627c74e8e",show_title:"Keto Life Support",text:"You've got a huge apartment. We can see it. We're looking at each other on Zoom. Kim, you have a very small apartment. Don't you have a partner that you have to share it with all the time? How's that going? Yeah, it's very small here and we don't have really any outdoor space, which is kind of a bummer. And, like, it's in some ways awesome. We're getting along super well and everything's really, like, great. And at the same time, like, there's no space. So working from home is more challenging because you don't want to bother the other person and, like, you know, you're like, talking about this whatever topic and, like, I'm sure they could care less. So I think it's trying to be respectful of more of the ears space than anything else, but everything's, you know, I think there's just a certain amount of surrender that has to happen. This is what is and this is what's going on in terms of what you can and can't do. I mean, I realized all of my hobbies involved shopping, things like that, but in terms of availability here, the first week was rough. In terms of shopping, like, meat was sold out in a lot of stores for when I would go in, but within a couple of days to a week, that seemed to shake out. And now the only thing you can't find here are paper towels and toilet paper. You have to get in line before the store opens to be able to get those but everything else, there's a vegetable. There's like a call Monterey Market. There's a market a block away from me. It's like if you put an incredible farmers market in a building, like they get all the produce from all the local farms and things. It's just a couple of blocks, like a block away from me. And that is like superstar. I shouldn't tell people if you're in the Bay Area. No, it's super stocked and full. But they're only letting like a quarter of the people in that their usual occupancy is. So you have to stand in line outside and you can only go in when somebody comes out. And so that's pretty much what's going on here with the social distinguish thing, is causing things to go at a slightly slower pace, but you just kind of put your earbuds in and listen to some music and just wait in line for an hour and you're fine. And so food seems really well handled here in the Bay Area in terms of being able to access we want we don't have any limits. I don't know how I would do with a family of five to only be able to buy like £2 of meat. You'd have to go to the store like every day, which seems to be kind of counter to what you want to do. I'm trying to limit my trips maybe once a week. So there are no limits. It's very state to state here, though, because I hear from a lot of people, like a lot of clients in their state, they're having a lot of supply issues. But you can get your deliveries. I can't. You can still get Whole Foods and you can still get your Amazon deliveries to you. Yes, but so many people are having so much stuff delivered that everything is booked way out. And so, like, you might place an Instacart or Amazon order and instead of coming in a day or two days or whatever day, whatever the appropriate amount of time, it might be weeks. Instacart is supposed to come the same day, but it's like Instacart is a program. You can shop for groceries and they deliver them. There are other similar programs. It used to be you book it in the morning, you get it in the midday. Now you book it in the morning, you get it four days later. And so they're trying to hire staff to catch that up. I just got a notification that a local Whole Foods is actually closing at 01:00 in the afternoon. So all afternoon they can just do deliveries. And so I think that people are shaking out how to make this work. I think that a lot of it is people hoarding buy more than that they need, which is understandable because no one wants to go out. Kim, if you need toilet paper, I didn't hoard, but buying one pack at one of those box stores will last me an entire year. So I can always send you some. We are fine. Because I actually did get up very early the other day and go to get in line at Target before they opened and it worked and we were fine on toilet paper. The bigger issue was paper towels. Those things hardly. I use a lot of paper towels when I cook because especially with chicken or something, I wash my hands. I use paper towels instead of a dish towel because that way I'm just throwing it away, drying off meat. I use paper towels. I use paper towels a lot. I find this toilet paper thing is weird. I can almost understand the initial rush, but why is it still out of people can't still be I said the same thing. I was like the hoarders have hoarded. What is happening? Well, I actually heard that because nobody's going to work. Exactly. Well, they make those gigantic rolls of single ply garbage toilet paper that are at work, but no one's using that toilet paper. Everybody needs residential size roles and they're not told to make that many. So they've got a shift from making commercial grade toilet paper to residential grade toilet paper and plus the panic buying. So there is a shortage of supply. But human nature it's a weird thing to grasp on to, but I think it's just a control issue. Yeah, I think it's something people can control in an uncontrollable environment. And luckily for me, as I said, I'm not a hoarder, but I do keep meat in the freezer and stuff. So at the end of February, we went to Pipers play. Matt's daughter had a play and we had some friends that came into town and we cooked ribs, baby back ribs and wings before we all went to the play. So the very next day I was going to the box store and I got replacement ribs and replacement wings. And this was just at the start of the spread of the disease as well here in the US. So I had those things in the freezer to begin with and restock them when I use them. Yeah, I think there are a lot of services like butcher box and where you can get meat delivered. And I guess so many people started doing that. They are now have a waitlist. But one of the things that is coming out of this time, in the United States anyway, is a lot of people are getting more interested in their food supply chain. And so in California, I'm in Northern California, but even north of me, about 4 hours up towards Oregon, california is really a big state for anybody that doesn't know. So about 4 hours above me there are a bunch of farms and like one of them is called Five Mary's Farm and they sell direct to the public. They said their number of orders to the public have tripled. So people placing orders to be shipped or to be picked up. And a lot of the restaurant supply farms, a lot of farms just are like connected to a farm to table restaurant. And so with the restaurants closing down, a lot of the restaurants have started supplying to homes. And so, you know, one of the silver linings is I think a lot of people might get a lot more intimately acquainted with where their food comes from, start to form relationships with food producers. And so I'm actually going to do a blog post about it this week where you can find in your area or as close to your area as I know about a local food producer who you can order directly from. Kim ",timestamp:"00:36:39-00:44:02",topics:["Covid 19 pandemic","toilet paper","food supplies"],type:"podcast",weight:6.419591903686523},{boost:0,date:1672772445,description:"Bitcoin mining and malicious attacks",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Foss, Max Keiser & the Plebs! 🍻😂",guests:[{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"Max Keiser",profile_picture:"https://pbs.twimg.com/profile_images/1361873587582472195/y57DiTYX_400x400.jpg",ref_id:"743efd07-d194-4c74-8663-45c3b8646b8e",twitter_handle:"Maxkeiser"},{name:"Isabel Foxen Duke",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"58989d4a-4a96-4ffc-8cbe-f233ffb10420",twitter_handle:"isabelfoxenduke"}],hosts:[{name:"Publord",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"5b7b7e22-fe55-4e1c-933d-6544f6600351",twitter_handle:"publordhodl"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7de8e4aa-50a6-4f57-a8ff-6ca16a4f0ae4/76c3395a-4fe5-4802-8d2a-92cca1f1ea0b.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"e4520df5-b812-4247-bd2d-7db10bc5b51f",show_title:"PUBLORD",text:"Brandon gentley here. I don't know how far down the road you guys are going with this, but I just was reading a bunch of stuff over the Christmas holiday just on grid attacks and just stuff that I was only somewhat aware of over the last ten years and seeing some little more high profile ones. But there's a lot more than I had ever thought. There were just minor attacks, thousands of people losing power, things like that, all over America, et cetera. How does bitcoin mining does it, can it? Will it? How does it kind of stabilize just from more malicious attacks? Damn, that's a great question. Cyber warfare? I'm not an expert there, Brennan, so I can't help you with that. I'll just tell you, it's pretty easy to knock out the North American power grid, okay, with some sort of carbon bomb that sprinkles carbon all over the transformers of every single major US. City. I'm not telling you how to do it, and maybe I've got my facts wrong, but I don't know how bitcoin mining helps with that, except to say the following there will be lots of bitcoin miners that are still spinning even if a major North American grid goes down. And that's the beauty of the bitcoin mining network. How could it help, actually, in a pure capitalist way? Well, if you get utilities creating more revenue streams and therefore getting increased revenues and using what's called operating leverage, meaning every single cent of electricity that they get demand for, over and above their fixed cost base creates enormous profits. Well, then the bitcoin miners can increase the revenues of the utilities, which allow them to be able to spend more money to defend their grid against cyber attack. Does that make any sense? Yeah, it does. Greg, I appreciate it. And I'm sure that there's whether it's the Jason Lowry of the world who you've mentioned numerous times kind of going down this type of road thinking about things like that, and then that's just one of those things where I was shocked. I was really blown away, actually, at how much it was happening. And it seems to be happening at the small level where no one notices. And I would imagine that there are some type of, like you said, some capitalistic approaches that either are being done or will be done eventually and just kind of figure out as it's kind of become more prominent, which, like you said, cyber warfare. The biowarfare aspects we know are going to be more of the future and not so much the kinetic side. So yeah. Thanks, Greg. So you're welcome. And you know, what makes me happy is like, smart kids like you are asking these questions. This is what gives me for those of you who don't know, I've met Brandon in in La. And he and Larry LaPard and I, you know, talked about these things. And the world's in good shape when young kids and when I say kids, I mean anyone younger than 35 when young kids are asking these questions and planning for the future. Not everyone's a fan of Jason Lowry. I'm going to see him in Boston in a couple of weeks. I've met him before. Look, the kid has ideas that turn some people off and that's fine. No one else. We can't be groupthink. If everyone's thinking alike, then somebody isn't thinking according to General George Patton, right? So let's keep the lines of communication open for people that might have different ideas or ideology than you have. So the world is in good shape when the kids are asking these questions and not the old men like Max and myself. I don't know the fucking answer. All I know is I want the kids to ask these questions so that when they are my age, they will have solved a lot of the problems that we're now dealing with. Right, Max? Hey, Greg. Yeah, we're going to solve them all. I'm curious your opinion. You have a lot of experience. You're gaining new knowledge over time, like we all are. I personally see a time where no matter what the cost of electricity, individuals randomly all over the world are going to be willing to run miners, especially when they're configured to produce heat for a home if you're going to have to buy heat anyway. And you could run a minor to heat your home and generate SATS for doing it. I even believe some people would be willing to lose money to accumulate SAS. Do you feel similar about the overall worldwide market for mining because of the pools that are out there? The ability for anybody to mine even with just one machine and still gain some SAS, I feel like it's a great opportunity that's never going to go away. Potentially just about your no. Let's take it to one of our power plants in northern Ontario. We are considering adding a greenhouse right next door that will create leafy greens for the indigenous community. So the indigenous communities in Canada have some of the highest tuberculosis rates because they don't get enough sunlight. And if you had a 35 megawatt mining facility, which we do, it's operated by Hut Eight, a publicly traded bitcoin miner. If the heat from that bitcoin mining facility was vented into a greenhouse and used to grow leafy greens for the indigenous communities, do you think that would be a benefit? And so that's just one extension on an industrial size project from exactly what you're saying. Okay, these are secondary and tertiary benefits from the efficient use of energy and its byproducts, which are heat in terms of making life better for various communities around you. So whether it's heating your home or heating a greenhouse to grow leafy greens to allow to combat tuberculosis, lots of these indigenous communities in northern Ontario, there's less than 100 people living in these communities. And if you could put an entire ecosystem to work around a bitcoin mining facility, I'm not going to. I'm not indigenous, and I really don't want to offend any of them if I'm pining on something. But I do think it would make sense to take that heat and heat the school, heat the greenhouse, heat the local tribunal. Every single indigenous community is set up in a similar way. So this is really good stuff as far as I'm concerned. I got to make sure I don't get between the wall and the wallpaper, because I don't know this stuff inside out. But there are people that are studying these projects for the benefit of remote communities everywhere in the world, not just in Canada, but remote communities in Africa, et cetera. So your idea on a home basis, Jim, can be taken to a village in Africa or a remote community in northern Canada for the benefit of all the less privileged. And I got to be careful, not less privileged, just less electricity centric populations. In the case of northern Canada, all of these communities run off of diesel reciprocating engines, diesel fuel, rather than having some sort of electricity solution that incorporates bitcoin mining. So you guys have seen ice road truckers and you've seen their trucking, diesel fuel to northern remote communities. Don't you think the environment would benefit by having a bitcoin mining solution that allowed for an electrification of a remote community running on, let's say, liquefied natural gas rather than diesel fuel? All of these things are possible with bitcoin mining. You never hear any of this from the politicians because, well, first of all, they're not smart enough to think this way. And secondly, they're biased because, you know, oh my God, bitcoin mining is bad. So peel away a layer of the onion and you'll see all the different ways that Bitcoin mining can help remote communities, whether it's your own house or a small village in northern Canada. ",timestamp:"01:07:37-01:16:31",topics:["bitcoin mining attacks","bitcoin mining facility"],type:"twitter_space",weight:22.711352085784924},{boost:0,date:1629691200,description:"[[Bitcoiners]] seeing the signals of the depreciation of [[fiat money]]",episode_title:"WHY ARE WE BULLISH Bitcoin Meme Hub Jan Capek Bitcoin Mechanic Max Hillebrand ep195",guests:[{name:"Max Hillebrand",profile_picture:"https://pbs.twimg.com/profile_images/1311357499514269696/-HQFwyFH_400x400.jpg",ref_id:"9a86cc59-ed01-4757-88f6-e9d9d63067b9",twitter_handle:"HillebrandMax"},{name:"Bitcoin Mechanic",profile_picture:"",ref_id:"faae3a37-0115-4074-af21-7d79c429c7cb",twitter_handle:""},{name:"Jan Capek",profile_picture:"",ref_id:"ec6f8b14-6c4b-42e9-8e86-9aa902c0906d",twitter_handle:""},{name:"Bitcoin Meme Hub",profile_picture:"",ref_id:"dcd5a590-2018-4707-a49b-8142d7b14e33",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/39201536/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-7-23%2F214267789-44100-2-17e9fbafdf841.m4a",node_type:"clip",pub_key:"",ref_id:"b03519b0-5139-4ad4-910a-40f40e332352",show_title:"BTC Sessions",text:"I was like six years old, my parents had we still have a house, small cottage in the mountains and when you bought it, it was actually an old house with all these relics from the beginning of the century. And what I actually discovered there was like a small envelope. When I opened it, there were like the German marks, but these were already the million banknotes. And at that time I was like, wow, this is a lot of money. And then I had this discussion with my dad explaining me that, well actually this was not worth even like you should put it into a stove. They used it for heating because you couldn't buy a bread with that recently. I'm kind of afraid that you just exhausted my reasoning as well with this, but let's wait with them. Back in 2019, I got the purse made from the Venezuelan Bolivars. It was being sold at some conference and I even bought a small backpack for my daughter. So this is really a topic that not too many people realize and I think we are in our own bubble as Bitcoin is that we do like watch for all these things and we're like seeing, I don't think we're seeing like Bitcoin appreciation, but this is the depreciation of all the paper toy money. And then I think Max already hit a few points basically saying that the merchants are greedy and they're like increasing the prices. But the problem is that the merchants also have info. They have to pay whatever transportation for the goods they have to buy, the raw materials if they're actually manufacturing and directly to selling. It all adds up. And I actually had a talk with a friend of mine who has a big machining shop and he produces parts and thousands of pieces on CNC lights. And he said, well, the iron material, which used to be like the cheapest material being used, went up 100% in last month. And when you look at the development of iron ore now, it dropped actually at the end of July. But this is a strong signal that something is already going on and it will be projected into the economy eventually because these are the initial parts of the whole economical chain, the people who are actually manufacturing something. And at the end you have the merchants selling you your airports or whatever. So we are going to see something interesting in a couple of months or years. So I'm kind of scared of that. It ",timestamp:"00:16:17-00:18:55",topics:["bitcoiners","fiat money"],type:"podcast",weight:6.382523059875072},{boost:0,date:1669766400,description:"Konstantin Wünscher narrates how he founded Kollider",episode_title:"Meet the Makers: Konstantin & Arvin",guests:[{name:"Konstantin Wünscher",profile_picture:"https://pbs.twimg.com/profile_images/917464868663582720/PMFCqusG_400x400.jpg",ref_id:"5f027fce-7775-4824-b941-d2f4120d2d0f",twitter_handle:"krychtiukmd"},{name:"Arvin Galoy",profile_picture:"https://pbs.twimg.com/profile_images/1429792764464611329/4VQqlZiM_400x400.jpg",ref_id:"e0eb434a-9219-4c57-b9e4-da6ceeaec040",twitter_handle:"GaloyMoney"}],hosts:[{name:"Zapp Ed",profile_picture:"https://pbs.twimg.com/profile_images/1519990234070540288/adGqlFoj_400x400.jpg",ref_id:"bbe7cf1d-cd8d-4d36-926d-76f41b775fbb",twitter_handle:"zapp_ed"},{name:"Moritz Alby",profile_picture:"https://pbs.twimg.com/profile_images/859727763292512258/kiFpZ2vO_400x400.jpg",ref_id:"e88efbf8-3809-4508-a86a-d7bf9effb574",twitter_handle:"MoritzKaminski"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/965489b4-a414-4fd0-ab8c-55911b1596aa.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=CjwjScc0TYg",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"caca294d-8661-49a2-80a9-32e4e8452c03",show_title:"BOLT FUN",text:"content. What about you? Did you immediately start with Collider or was there also some experimentation in between? Yeah, there was a lot of experimentation. Actually, I remember our first product that we build had nothing to do with trading. It was actually a data labeling service that used Lightning to pay people to label images. Because my background is machine learning and AI, that's what I studied. So even though I came out of this finance job, I thought I got, well, payments, that's pretty cool. Maybe start with customer facing product rather than having to deal with other big trading firms. So basically what we're trying to test is whether people are into micro payments of this. Because the idea was just like this labeling model that was pretty state of the art back then, which basically enabled you to make some sort of very rough outline and then we'll do the rest for you. In terms of labeling was sort of an unsupervised learning technique. But anyway, so we were paying people for like every time they made a label, they would get some SATS and we were just thinking, would people do that? And we kind of realized quite quickly is that these were really very neat things combined. Like people that would label data, they probably wouldn't know about Lightning or it would be not usable to them. And also it was just like people didn't really care about very small amounts. So basically we're just testing whether Michael payments are so popular. I don't know. We did test it and we didn't get any of this. So we kind of scrapped that idea, although I thought it was a cool product. And then we started basically focusing on something that we know more about, which was obviously finance trading and stuff. And then we built a very simple spread betting interface, which was not like an exchange, was just like, you can make it back with someone else about price. And yeah, we did that. And then I don't know why, I think we sort of realized that the problem this is, again, people don't necessarily need to want to do that in a very small again, basically, again, it was focused on very small payments, and people didn't care about very small amounts that much for that application as well, like trading. So if they want to trade, they want to trade size. We kind of come to terms like, in order for this to work, we actually have to build a proper exchange where people can basically trade whatever amounts they want and make it very similar to what already exists in order to kind of ease in the users into this new idea of using lightning rather than just throwing something completely different at him. It was sort of the journey that we went down. But yeah, compared to Arman, it was very like product driven. We were only thinking about products most of the time. We were thinking, how do we get this technology into as many hands as possible? And again, trading is probably one of the most popular things to do in crypto. If there's any application, it's like used very like a lot and then trading. And so we thought, well, that's a good starting point, let's just try to create what already exists. But with Lightning kind of derisk, that's what we narrowed down on and that's how we then build. And yeah, I think this is sort of it. And now we obviously made branch out a little bit away from just trading. I was thinking about more payments and more of the stuff that is probably like what Alan mentioned. Actual sort of problems that you could solve with this technology because trading is obviously it's needed as a backbone but the things that that enables is not necessarily very obvious to people but it can enable other financial sort of instruments or abilities for people. But yeah, so this is what was the journey, very product driven, quite a bit of experimentation with different ideas. ",timestamp:"00:10:10-00:15:01",topics:["Konstantin Wünscher","Kollider"],type:"youtube",weight:9.398438332070137},{boost:0,date:null,description:"Solution for the massive debt growth in third world countries",episode_title:"Gladstein & Sam Callahan - World Bank / IMF & #Bitcoin",guests:[{name:"Sam Callahan",profile_picture:"https://pbs.twimg.com/profile_images/1592532728775409667/0DayEP2Q_400x400.jpg",ref_id:"5a044a91-8dee-421c-86dd-8c734dc9bc32",twitter_handle:"CallahanMusic_"},{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"},{name:"Brady",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"45bbbb01-6163-4b3b-905a-fc67174893d9",twitter_handle:"CitizenBitcoin"}],hosts:[{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/f8be7c60-94a5-41d0-972c-6301cd4ad7f0/4e5bf86b-6193-4f6e-8fa3-933344b2053e.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"f76300e2-dc0d-4960-a1cf-6c7b90ad4cfa",show_title:"Swan.com",text:"Yeah. So it creates these dependence on these international financial institutions. And when these poor countries get into debt, usually they just need to get in more debt. And, you know, the IMF mission statement is to achieve sustainable growth and prosperity for all of its 190 member countries. And the World Bank's mission statement is to, is to reduce poverty and improve living standards by promoting sustainable growth and investment in people. Now, when these poor countries need money, there's really not many places to go. The IMF and World Bank are some of their only options. And if you look at the data, Alex, I'd love, if you just go over, have they achieved their mission, would you say? And can you talk about the amount of growth that's happened in the debt over the last, say, four or five decades for these third world countries? Because it's just insane to me. Yeah, a country I looked at, Bangladesh, had a couple of hundred million dollars in external debt in the early seventy s and now has $100 billion today, for example. So the whole machine has basically made it so that these countries have more debt than they could ever possibly pay back. And again, the debt is denominated in a currency that they cannot print. So the whole system just needs to be disrupted and broken. I think that in the future that if we do end up having a bitcoin standard, that the system would be disrupted and broken, because then you wouldn't have certain countries that could issue with paperwork, the reserve currency. All countries would be on the same standard, and every country would be able to, if it wanted to without needing permission from a great power, they could convert their energy into this reserve currency through mining. And maybe that's not sufficient. Right? And I'm not suggesting that all countries will become equal. You're still going to have huge inequities that result from labor productivity and all kinds of other things. But the point being that even small countries, they won't necessarily have to shape their economy to suit the needs of foreign powers to get foreign hard currency. They could, for example, invest in local electricity production, which is good for the local population anyway, and then use that to mine Bitcoin or to power the local economy. And I think that's a much better kind of choice than selling stuff for other countries that is just going to go to paying it back more debt. So I think there's like a light at the end of the tunnel. Maybe there's a way out. And that's something that I try to be pretty hopeful about. Certainly a lot of people at the African Bitcoin conference think this, and I think it just starts to make sense once you talk to enough people. We should all speak the same monetary language. There should be one standard. It is completely ridiculous that there's 41 central banks in Africa. Each one is its own lording over everybody else. And then there's also the French, who still control a huge chunk of Africa. So in a Bitcoin standard, the power of these institutions to repress people is dramatically diminished. It's not eliminated at all, but it's certainly diminished by a lot. So that keeps me optimistic about the future. Yeah, absolutely. Bitcoin is a light at the end of the tunnel because it's hard to see another way for this to get disrupted, in ",timestamp:"00:59:02-01:02:59",topics:["Debt growth solution"],type:"twitter_space",weight:6.3401312828063965},{boost:0,date:0,description:"Implications of Taproot activation on the protocol",episode_title:"Taproot Activation Q&A with Bitcoin Devs - TABConf 2021",guests:[{name:"Andrew Chow",profile_picture:"https://pbs.twimg.com/profile_images/1452266201770496010/44FHCtZM_400x400.jpg",ref_id:"f96d87ca-5060-4021-aeb9-61db03312027",twitter_handle:"andrewrchow"},{name:"Ben Carman",profile_picture:"https://pbs.twimg.com/profile_images/1550704386007089152/pLwUSeff_400x400.jpg",ref_id:"1d1e95ba-b4af-415f-aafe-85c6dd7571b8",twitter_handle:"benthecarman"},{name:"Matt Corallo",profile_picture:"https://pbs.twimg.com/profile_images/697361498587451394/_rX0-O0W_400x400.png",ref_id:"08cb3c45-c0bc-4a60-ae5b-a1283d352c8b",twitter_handle:"TheBlueMatt"},{name:"Pieter Wuille",profile_picture:"https://pbs.twimg.com/profile_images/1264051937172836353/n7gHdLbB_400x400.jpg",ref_id:"40260d2f-3480-47d6-8515-d2e780901273",twitter_handle:"pwuille"},{name:"Vivek Kasarabada",profile_picture:"",ref_id:"60ed22d0-8cf3-410e-8a7c-9c343ae109ca",twitter_handle:""},{name:"Murch",profile_picture:"https://pbs.twimg.com/profile_images/1269477743525130241/-U843Cmt_400x400.png",ref_id:"3e2c1c73-a057-4475-9782-3bb0d3d8cc62",twitter_handle:"murchandamus"},{name:"Andrew Poelstra",profile_picture:"https://pbs.twimg.com/profile_images/1316562683009921024/FSscAYvJ_400x400.jpg",ref_id:"15fb9c53-c988-4af1-bbf0-4832d71b0a01",twitter_handle:"Blockstream"}],hosts:[{name:" TABConf (The Atlanta Bitcoin Conference)",profile_picture:"https://pbs.twimg.com/profile_images/1596233571521499138/YE8Us_Ml_400x400.jpg",ref_id:"eb1b6016-6223-4b2b-9264-2423ce66304f",twitter_handle:"tabconf"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=MrxtqAlRI2U",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"f9d1d228-19db-4a2d-bfb3-7853fd745ea0",show_title:"TABConf (The Atlanta Bitcoin Conference)",text:"implications does it have for the protocol? What are some things that will be possible day one on activation? And also what are some things that you guys see coming in the future that will take advantage of these changes that aren't really being built yet? It all depends on your wallet. If your question is from the perspective of a wallet developer, well, as soon as Tap root activates, they will be able to make use of the features that Taproot introduces. If you're just using a wallet, well, you are restricted to whatever your wallet can do. So there is no impact as a wallet user. There is no impact on you unless you update to a wallet that can. Make use of these features more generally. So first you'll see transactions that make use of Schneider's signatures. Schneider signatures are slightly smaller than the current ECDSA signatures. So there is a small savings there for the inputs if you are involved in multisig multisig that uses K of K keys. So two of two or three of three can be expressed as a Tweak in the keypath. So when people implement a signature or sorry, a public key aggregation method like for example, music, they'll be able to do keypath spins and multisig wallets will be able to look the same as single SIG underwire. And I know for a fact that a few companies are working on this already because it will be huge savings compared to having an actual multisig script in the transaction to just have a keypad spend. Yeah, go ahead. Good. We'll move on to lightning at the end. Okay. So more generally, I mean, this is the design goal of Taproot that it introduces a new address type that can be used for everything. So before we had separate output types, separate addresses for the simple pay to pubkey pay to pubkey hash style things. And on the one hand and on the other hand, p to SHP to WSH for the more complicated script things Taproot produces allows it to produce a single address that is different from all of the ones before. But it can be used by everything and even better at spending time. In many cases, you cannot distinguish what it was. So this is both an efficiency saving because it's cheaper, it's also privacy saving because you're not revealing to the world what kind of wallet construction you are using. So, for example, right now you can detect like, there's some fairly large multi sigs that are basically only used by one entity. And so you can very trivially detect like, oh, all of these, I don't know, what's the liquid policy now? Like nine of 15, like all of the nine of 15s are liquid, basically. Okay, well, whatever. And so you could hide some of that policy, so you wouldn't necessarily reveal that when you spend the transaction. Another thing that's a little bit down the line, but a cool crypto trick you can do with Taproot is you can produce a ring signature over all. Of the Taproot outputs or all of. Your Taproot outputs above a certain threshold and prove that you are holding a coin of a certain value without revealing which one. Other than that one of the tapered ones. Yeah. So it's generally that kind of fits into a broader category, like Schnorzigs are much simpler mathematically. And so there's a lot of cool tricks you can do like that and other stuff like the signature aggregation and whatnot. And then also with lightning, this is also something that's kind of further down the line. And there's no real concrete I guess AJ has one concrete proposal for it, but eventually we're going to get PTLCs instead of HTLCs. So instead of using a hash, we can use public keys and revealing the private key for it, or revealing a signature, an adapter signature for it. And that allows us to decorate payments across hops, right? So right now, if you go to send an HTLC or you go to send a payment enlightening, it goes through four hops. And all of those four hops see it's payment hash, you know, ABC, and they all see the same payment hash. And so later they could, you know, get together and correlate and say like, hey, I saw a payment hash ABC. It's like, yeah, I saw that too. And you can correlate and tell where that payment maybe came from, where it went to. And with PTLCs, there's an additional blinding factor added at each hop, so they won't see the same data and only kind of their immediate peers will see the same ID. So if you're missing a hop, you won't necessarily be as able to correlate that. So it's one fewer correlation metric. There's obviously other time based correlation metrics that are problematic, but like the on chain stuff, it's one fewer correlation metric where you can group certain types of transactions. There are other issues, but remove one at a time. I'd say the explain like I'm five, is just like standard user wallet is basically the same, and then all the fancy stuff gets cheaper once actually people build up stuff. I think that's a good summary. What will change on activation time for a normal wallet user is absolutely nothing until their wallet starts making use of it. ",timestamp:"00:12:40-00:18:29",topics:["Taproot","Taproot activation"],type:"youtube",weight:6.240247130393982},{boost:0,date:1671634578,description:"How Bitcoin mining will open up more markets",episode_title:"Café ₿: 23’ Macro Outlook w/ Joe Burnett & Mitch from Blockware",guests:[{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:"Joe Burnnet",profile_picture:"https://pbs.twimg.com/profile_images/1601649626754564105/9TubQjRd_400x400.jpg",ref_id:"1c849151-1cca-44db-9a69-665fac5dc6f6",twitter_handle:"IIICapital"},{name:"Mitchell Askew",profile_picture:"https://pbs.twimg.com/profile_images/435841191524204544/mzKR9KCX_400x400.jpeg",ref_id:"fc4ba3ae-eacc-489d-a888-397ba6b1f842",twitter_handle:"mitchell_askew"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/601898b8-8964-48ba-aa92-ab3f1c4ad0bb/75f49b1a-9dce-41fd-8517-77b607c9c154.mp3",node_type:"clip",pub_key:"",ref_id:"6c3edea1-97d0-41d4-a015-0f16417f2ee7",show_title:"Swan.com",text:"Why couldn't it work? I think it's fascinating because if you think about power generation, the power generation and distribution has been hand in hand at the absolute key to prosperity globally ever since we figured out how to leverage rubbing two sticks together and making a fire in a cave. And the fact that they're bringing on six new nuclear reactors, they're embracing Bitcoin mining, and they have these alliances in the chip industry. Wow, man, that's a freaking power move. I mean, more in terms of sorry, go ahead, nuclear, my bad. Well, this isn't just that building new nuclear reactors. There is intention to do that. This is restarting their existing fleet. They've got 30 gigawatts sitting on the sideline right now just waiting to be put back into action. And then on top of that, they do want to get into the small modular reactor game and also build new nuclear assets, nuclear in Japan. And Bitcoin mining is going to be very interesting. What I was getting at, Alex, when I said I don't know if it could work, what I meant is literally backing their currency with the Bitcoin that they're mining. So keeping the Bitcoin and then somehow backing their currency with it. I just don't know how those dynamics work. I mean, they have so much debt that would they technically have to default on that before they make the switch over to a Bitcoin backed currency. Or like I don't even know how that would work because obviously they can't back their currency with Bitcoin and then still expect to be able to pay off their debts if their currency is backed in Bitcoin at that point because you can't print more of it anymore. To me, the simplest way would just be to hyperinflate the currency, switch the currency to a new Bitcoin backed currency and then get to hit the reset switch. So all the debts basically go to zero in real purchasing terms and they can reset the whole currency. This is the idea behind gold. You know, the funny thing about central bankers and gold is if you watch what they say, when they're no longer in charge of the central bank, many of them will admit candidly in interviews that the reason that they hold gold is that it's the emergency reset switch. If the currency ever blows up and collapses, they can use gold to basically declare that currency the old one and this is the new one. And gold is the reset switch. You have to have some trustable reset switch. I'm not saying it needs to be gold, but I can see how it would be a pretty I'm not going to say seamless, but it seems to make a lot of sense to me. Like, okay, you know what's super interesting? Wiremart hyperinflation. I know you guys are probably sick of hearing me talk about wire, but it's fascinating. Do you know how they reset the currency? One dude came along and he introduced a new money, and guess what? The money had as its primary attribute. He said there was a limited quantity. We will never print more than this amount. And instantly the people accepted it. And then what did they do a few years later? Well, yeah, obviously they can renege on those promises, but my point is that confidence is the key to all currency systems, and in context of Japan, I think that would work. Yeah. There's no easier way to convince a populace of a better currency when your current currency is collapsing and failing. So when you are kind of under that pressure and you're getting squeezed from every angle, it's easy to get out by saying, hey, well, look at this new one we have. It's backed by this underlying thing called Bitcoin that can't be printed more of, so we won't print more of it either. And, I mean, who knows if they'll keep that promise, but at least it'll be better than what they have now. And I don't know. Again, looking my only exposure to kind of where the Japanese yen is in terms of its purchasing power is what the price of Bitcoin is in terms of yen. And it doesn't look like it's inflating that much, at least relative to its exchange rate for Bitcoin. So, like, I don't know if they're being squeezed that much at the moment, but obviously it's only a matter of time before all fiats have to squeeze, as we always talk about here, right? Yeah, I don't know. Interesting times ahead, for sure. Nuclear, what's the latest in regard to small modular reactors? SMRs people who don't take two minutes and explain what the heck they are and then tell us what's going on in that space. Yeah, so small modular reactors are basically just smaller versions of a nuclear reactor. Anything less than 300 MW is what fits into this small modular category. There's many different designs. I think 70 are being proposed right now globally. About half of them are just smaller versions of the existing boiled water reactors that most of the global reactor fleet is designed by, based on. But some of them are going to be using new cooling technologies like high temperature gas and liquid metal cooling and solid state cooling, various technologies that have been proven in the past but put on a shelf as they only stuck with one design and just built many of those. But right now in Canada, there are several projects ongoing. There's a 300 megawatt BWRX reactor by GE attachee that just got nearly a billion dollars in financing from the federal government and the province. So there's a lot of money being funneled into these projects. The Go dates are still looking 2027 28 to have these demonstration units operated. And I'm just actively trying to connect the dots and see how we can integrate bitcoin mining into this new future that nuclear power is getting into, because I think it'll be greatly beneficial and open up even more markets than the small modular reactors would be capable of. Because now we can essentially play out the pioneer species idea and drop a nuclear reactor wherever we want, monetize it immediately, and then just start building around it. So it's going to be very exciting. Lots of countries are pursuing different versions of the SMRs. I just happen to be most familiar with what's going on in Canada. It's looking like Argentina might actually be the first country to have a deployable commercial scale SMR outside of besides China, obviously. But that's going to be a very interesting future for Nuclear. And we'll keep you guys updated as things go along. Awesome, obviously. Happy to have you back. Anytime, nuclear, you've got some great stuff, and I'm super fascinated by the SMR industry. ",timestamp:"00:54:19-01:01:51",topics:["Bitcoin mining","Currency hyperinflation"],type:"twitter_space",weight:14.955047728896634},{boost:0,date:1666137600,description:"Tools for managing Lightning nodes",episode_title:"Meet the Makers: Alan & Kwinten",guests:[{name:"Alan Plus",profile_picture:"https://pbs.twimg.com/profile_images/1565235279451103233/XD8pJuIo_400x400.jpg",ref_id:"e362fed6-ec06-4d8a-a052-3137b24f213f",twitter_handle:"alnboltn"},{name:"Kwinten De Backe",profile_picture:"https://pbs.twimg.com/profile_images/917859380699320320/p_v-fjmh_400x400.jpg",ref_id:"be68f240-1f4c-4b27-b4bb-752c90cbe0c3",twitter_handle:"QuintenDeBacke1"}],hosts:[{name:"Moritz Alby",profile_picture:"https://pbs.twimg.com/profile_images/859727763292512258/kiFpZ2vO_400x400.jpg",ref_id:"e88efbf8-3809-4508-a86a-d7bf9effb574",twitter_handle:"MoritzKaminski"},{name:"Zapp Ed",profile_picture:"https://pbs.twimg.com/profile_images/1519990234070540288/adGqlFoj_400x400.jpg",ref_id:"bbe7cf1d-cd8d-4d36-926d-76f41b775fbb",twitter_handle:"zapp_ed"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/965489b4-a414-4fd0-ab8c-55911b1596aa.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=GyA8tHNKmig",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"7e996fc8-37c7-447f-b0e5-c6dbf58015fe",show_title:"BOLT FUN",text:"Now, as we have now, both of you come from the field of node operations. Can you share a bit like the tools that you use and why you use these tools to manage Lightning nodes? Alan, if you want to go first. Well, actually I don't actively manage my node at all, so I manually go in every day and do things, but I don't use any tools. And the reason is because I don't want to compete with other node operators, so I don't want to outcompete them. So my role is really to make sure that everyone else is successful and making money and make sure that the network is decentralized as much as we can do it and everyone has capacity both ways and stuff like that. So I don't want to be like a routing node, so I'm kind of supporting smaller nodes while still growing and stuff like that and for that I don't need automated tools. Can you tell us a bit more? You mentioned just the purpose you want to help smaller nodes, but do you do that under like the Lightning network plus node or how does it work and how do I get support from you if I am a small node operator? So one way I do it is, for example, if there is a swap that is open between smaller nodes and it's failing because somebody fell out of the swap, these liquidity swaps and let's say there are three people and one node is just out because something happened, then I take their place. This happens quite often and my node is quite big. So those other two node operators are typically satisfied with me taking the place because they get more connectivity. And the other thing is I allow anybody to open a channel to us if they want to, even small channels like 50K sets or something like that, which is typically not possible to other big nodes because they don't want small channels. The minimum is usually a million or 2 million nowadays, which could be a bit too much for a beginner because they don't want to risk that much money. And sometimes I do open to people that I chat with and so these are the ways basically I just create liquidity for people or help them organize their own little swaps and stuff. And you do that all really manually or rely on standard tools that are out there? Yes, mostly like 90% of the time. I did try a couple of tools because I wanted to learn. So there are some situations where I use some automation. I also wrote some scripts of my own for setting fees. For example, I experimented with all kinds of different fee structures. Zero fee, very low fee, higher fees, optimal fees, all kinds. And I found that all of those strategies have an advantage and a disadvantage. So there's no optimal perfect strategy. You can make money in different ways really. You just have to find your own niche. And I also found that being a completely zero fee node is not beneficial for other nodes. So unless I want to be like zero fee routing who makes money on being super well connected and selling channels? That's a different story. But I don't want to be a zero fee routing because that's too much competition to other nodes. So setting some small reasonable fee is probably the best way how I can stay out of other people's business. But at the same time it's kind of like the best of two worlds. Like trying to be a good router for others but also not taking their profits. And where do you see does this go to in the future? So it seems for me like you are very much supporting the operations of your platform basically right when someone needs a replacement also then you jump in and help out to create one of these swaps or to complete them. But where does this go to? Do you always think, okay, this is where you want to stay or do you have some ideas where this could lead to? Yeah, I have ideas and I think the future is going to be more and more automation in this swap creation. So for example, I have this idea where I could have a wallet, a brand new wallet that I create or maybe join some existing wallet. Basically when a new user wants to open a channel they would open it through a swap immediately. So they would have two channels immediately on the at the beginning, one incoming, one outgoing. So it would be all the swap creation would be done through an API and transparently for the users. Because this way you don't have to go to a website and you don't have to log in and do all of those things. It's just all done in the background. So yes, this is I think is the future where this is going to be one of the ways how you get incoming liquidity? Yes, I think that's a very interesting topic. We should come to that in a second. ",timestamp:"00:16:30-00:23:25",topics:["Lightning nodes","nodes operators"],type:"youtube",weight:6.396489111901376},{boost:0,date:null,description:"The Bitcoin Village project in Nigeria",episode_title:"The Orange Sun ☀️ #Bitcoin News and Talk",guests:[{name:"Portland Hodl",profile_picture:"https://pbs.twimg.com/profile_images/1562306406526492672/LiqmI9NS_400x400.jpg",ref_id:"530aba21-392f-4156-9e91-4fc5c76fced1",twitter_handle:"PortlandHODL"},{name:"Miykael Woodward",profile_picture:"https://pbs.twimg.com/profile_images/1473433558475689985/CM0o3oWu_400x400.jpg",ref_id:"6fe02a78-4f07-47e7-8e64-b278a3167835",twitter_handle:"MiykaelWoodward"},{name:"Okin Mobi",profile_picture:"https://pbs.twimg.com/profile_images/1518945775685967873/O0wPrIKO_400x400.jpg",ref_id:"bbd18918-7758-4bdb-b9a5-641bf92748a6",twitter_handle:"OKIN_17"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"Funsho Jimoh",profile_picture:"https://pbs.twimg.com/profile_images/1600143435775856641/uqgmtT23_400x400.jpg",ref_id:"a237ffb0-792b-484e-b12f-65a2b679eaf1",twitter_handle:"fnicencool"},{name:"prince ogbonna",profile_picture:"https://pbs.twimg.com/profile_images/1595693872637681664/TeWJzTut_400x400.jpg",ref_id:"0b0c70b1-23b1-4d98-b259-6dbb67b7481d",twitter_handle:"princejoj0"},{name:"The Bitcoin Village",profile_picture:"https://pbs.twimg.com/profile_images/1544318244789649410/kQ2G1MCE_400x400.jpg",ref_id:"d894aca4-36f6-4821-a00b-a4e860b19502",twitter_handle:"VillageBitcoin"},{name:"Masterguantai",profile_picture:"https://pbs.twimg.com/profile_images/1521025685078302720/w9dZwehS_400x400.jpg",ref_id:"29baf525-42eb-41a6-98f9-a0d6b4480af0",twitter_handle:"MasterGuantai"}],hosts:[{name:"Jeremy Garcia",profile_picture:"https://pbs.twimg.com/profile_images/1589056396816896001/dslbBQSX_400x400.jpg",ref_id:"e5e68f75-d71a-4477-ae9a-6a891f2d84d0",twitter_handle:"Jerimican5445"},{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/bef977d0-8a6a-441b-a8cb-58baebe2bfd7/b9ec2918-1059-48ac-b5ee-69018c42a07c.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"63cc2dff-cc56-40e2-8c22-93153e7d3255",show_title:"Satoshi’s Journal",text:"It looks like Olu finally got up here. I know he's having some issues. I think he's at the Bitcoin village, so connection is not very good, so give him a chance. Olu, if you can hear me, how's everything going at the Bitcoin village? Yes. I have to hide myself in the heart to be able to talk. Can you guys hear me? I'm in a whole place. Can you hear me? What did you say? You're hiding in, like, a heart, like a small bamboo and tree kind of thing we put together so we can hide our head here when the sun is very construction site. Hello, everybody. Top of the morning. It's been crazy. Bad network, but still we have some level of internet. Anyway, thank you. Jeremy Tk. Towel. Prince Blanca out there. I see Janet. I see amica. Extremely. Daniel, lots of you. Big respect. Thank you. Thank you so much. I'm freaking excited. We're getting donations. $1,500. We're getting donations. It's crazy. Yeah. No, it is, man. Yeah. I can hear you. We can hear you, Olivia. Oh, yeah. Okay. It's so amazing that you have to look. Things happen, right? Nigeria's name is known for multiple things. Apart from our musicians painting the country in a positive color by winning Grammy awards, BT awards, and whiskey. David Bernarboy doing well. Our politicians are denting our name with their corruption and some fraud. Stars are also messing up the name of the country with scam. But bitcoiners are lifting the name of the country up. In many cases, when people do stuff, they associate Nigeria with scam. Unfortunately, it's not about that. The major percentage of people in Nigeria are very good people. And the base coin village is a big example of one of those good projects. Although I have seen and heard people say one or two negative things on Twitter, I smile. I will come here, and I can see the progress. And very soon, they're going to start seeing pictures, and they will see and they will come here. The people who don't have the opportunity, capacity, or one or two things are the people that will miss out. But because it's a monumental structure, you will come here. Maybe if you can't make it in 23, you can make it in 24, 25. The building will be there forever. When we leave this face of earth, when I am no more, when myself and Jeremy are no more, maybe 70 years from now, hopefully we'll leave longer. Because I would like to leave to, like, 100 years when I have teeth no more. And I can just I don't have to be able to pronounce it. I can actually picture that with you notice saying that. Can you say it again how you would be saying that? There are people called land grabbers. Land grabbers. Right. They take money from you every time you're doing construction. They table people. The government has dealt with them, but still that's what they do. So they were at the site yesterday with machetes and everything and sticks and they went to disturb the construction workers. So they called me. I couldn't get to them for a long time. They couldn't get to me for a long time. So when it got to me this morning, I had to step in to the CABAC, which is the paramount ruler, and of course some of the leaders. And we went to the site and we've been waiting for them to show up. They didn't show up because I already got military people on standby to make sure they don't disturb the progress of the work. It's not like they didn't vandalize anything, but they scared the workers away from the site. Anybody that knows Nigeria know this is how these land grabbers come, all because they want to get money. But I stack their money today. I'm ready to give to them. But I'm going to give them a serious warning. The next time they come and do such thing, you're going to be in trouble. So that has been the stress for today. They take money when you're about to do your after your. So what is trying to do is take money. They take money for digging. They take money digging, which is excavation. They take money for your DPC down proof cost. They take money for the first level of blocks. When you get to your decking. They take money when you roof. They take money. Once you put the gates. They take money until you're done with construction. They take money about five times. So if you don't know how to operate with them strategically, they can stress you. And they demand for crazy amount of money. They are called, or more, only length. The Nigerians here can attest taste to that. It's terrible. But I thank God I've been able to douse the tension. And they're requesting for $1,000. I told them that's crazy, I'm going to give you guys $500. So I told them you have to write an undertaking, blah, blah, blah. They refused to say never, blah, blah, blah. I put my phone number, I said I was going to record them, blah, blah, blah. At the end of the day, I gave them $200 first. I said, I'll give you 250. When these guys completely stopped the job today, finished their job today. So at the end of today's work, I'll give you 250. And I said, so let me take pictures with you. Stupidly. They took pictures with me and I recorded them when I was giving them money. Why did I do that? So that when they come another time or when another set comes. Because what they usually do is they come in different sets. So once you give them money, they tell other people, oh, he gave us money. So you can go and act like you didn't know anything about it. So those are the challenges of construction in Nigeria. And I think it's because the Bitcoin village, Nielsen, is already online. So some of them can go online and they can see, okay, this is a big project. As a matter of fact, whether it's big or not, anytime they are doing construction, they look for construction sites and they come and say, oh, we are the community people. And really the community don't like them. They are the thugs on its uneducated parts of the community that's full of disturbance. But the paramount king has given an order and set up like a vigilante group to protect the construction site workers. So that's just an update. There's a lot of work right there. So I wanted to update you all. That's what I went through in case somebody saw me and he took my pictures while I was Qurin. I said, get out of here, get out of here. It's just me trying to let our work be smooth, because they can delay work for like a week if you don't pay them. Like they delayed us yesterday. And every day counts because we need to launch this next year, especially during the conference. That aside, I can't wait to release pictures of updates for you guys. Most likely by I'm looking at next weekend, substantial progress would have been made. And I just want to thank the stock chain as they've been very nice. It's more like the stock chain as they are competing with each other. Somebody puts 100. Somebody puts 500, somebody put 1005. So, Jeremy, what we're going to do is what we have said before, after the orange song, we're going to have our meeting maybe today or much later or maybe by the next meeting, so we can put together a necessary document that is faction as we need and anybody that would need it. Maybe we're going to put it up on the official Twitter of the Bitcoin village and or invite people to private meetings. I don't know where we're going to put that up. Maybe it's a torture on the website so people can see some of the documents that we have all approved by the legacy government, and they can see the quotation from the QS, and they can see how transparent and the amount that the construction is going to cost you. And I know the quotation by the quantity surveyor. So we're going to put up the architectural drawing, the mechanical information, the electrical information, the soil test, the approved building plan from the government. All documents will be put up there with biweekly progress pictures and videos so that this donation can keep coming in, and not just for the donation's sake. Anyway, that's what we have said when it was just you and I working on this. Why do we have to be transparent? I've never, ever taken donations in my life. Public donations like this. And it's amazing. It's really amazing. The budget we had initially shut up tremendously because of inflation. Things are getting expensive day by day. There is blocks, cements and all that. And we really need to let people know we are building this for bitcoinners and even non bitcoinrs that will become bitcoinners. Who wants a bitcoin village and bitcoin development center that people will walk into and be very happy and befitting place that whatever certificates you get out of here would be valid for you and you'll be proud that you came here. Even if it is a developing community, in five years this place is going to be a city because of the fort mainland bridge. If they finish the fort mainland bridge by 2027, which is five years from now, I want to say five years because I know that the government can be very terrible and it might even take seven years. It's going to open up. And the value of properties here might shoot up to as much as $500,000 per plus. So we are properly positioned and we must do things rightly. I'm just so glad that the statuers have turned up for us. Even jeff boots and so many people have commended positively about what we are doing. This is what we plan between ourselves and look at the world embracing us. Even corey of swan give us a light by retreating. I know retreat is not necessary endorsements, but retreating on your timeline is some level of association and we appreciate that. So all bitcoiners follow bitcoin village, advillage bitcoin and trade at this particular and spread the word this that we're doing this on a private property so the governments don't have power over what we're doing. So care less about the naysayers and we will continue to be as transparent as possible. It's been myself and Jeremy putting our heart and money to this all the time and myself on the ground doing the work. But now we have you guys bitcoin as a family and I really want to thank phil for making this possible. Our teammates will involve the stock chainers and anthony of stock chain. Great guy. And all the stock chains and tao will give us more like an open attestation. Tao attested to our proof of work openly, without an iota of doubt. And I've never heard tao say such about any construction project around this bitcoin ecosystem, although maybe I've not featured in the space where it must have done that. But tao really talks in spaces. When he's talking, it's either educating or not. Now, this is not simply jeremy and all my team members know me. I don't care. I don't think I have sleep on my shoulders because I know how people look at me as a black man, and of course because I'm from africa, nigeria. So I protect my image, I get my money and I respect myself. But when people say something great about what we are doing here, far away, here in Nigeria. I have to give Kudos to what Kudos is due. So you can do your check and balances. You can verify as much as you want. The address is open with or without me. You can go to the village, you can ask village questions. You can go to the site if you want. Very soon we're going to put a big sign at the waterway so anybody that is on the boats can actually see the sign, verify. You don't have to know me and put the word out. Let them know we are building a bitcoin village. Some people, my colleagues, come if they like it's, to their own pocket. But when we start to give lectures and we start to graduate bitcoin and lightning developers, then you will go and ask those people that will be changing the world if it still is come, or you yourself is the person that is bipolar and have issues in your life. And I'm sorry, it's not to be condescending to anybody, but it's just how I feel. So thank you all. I'm sorry I came in here late. I've been trying to come online, but it's been terrible network issue. And of course, because I've been around putting in work, so I have to hit the road again. I may not be able to talk too much, but thank you, big thank you to stock chain US for donating their money. And because of that, we're going to make the budget transparent. From the engineer to every necessary person on the team will come on spaces at different times, so you can have a talk with them and all of that. This project is going to cost way over. Way over. The last time we checked in Nigeria, money for just one building is about 104,000,000 there. You can calculate that in dollars for whatever it is it's going to cost, whether black market rate or CBN rate. So you can see it's not a child's place. You see the type of building we are trying to do. It's something we could have put together a bongalu. And let's say we start to finish the bongalu in three weeks, but of what use would it be? Because it would be the same size of building and the same look with every other building in the village, we have to do something that the villagers will look and say, wow, okay, this is monumental. If this can come to our community, then we must take our life seriously. Like I told the young men that came to distract the place yesterday, I told them today, I said, look, you are only marking yourself negatively. Because when other people in this community will be learning and will be graduating and some of them might get employed by bigcoin companies internationally, you would regret your actions today instead of you supporting the progress of this building. Because with or without you, this will rise. You just take your money and you go on the day of lunch or by three years when this monumental structure is already manifesting lots of greatness, you'll be regretting. So you better go and change your ways and think of how you can come and learn. Maybe this is your go to opportunity to break through from the poverty that you have been entrenched in. Two of them came to me later and apologized and say, you will never see us here again. Please, I would like to learn bitcoin and I was very glad to them. So, yeah, what we're doing, the blockers here and there, but we are overcoming challenges and we are moving at a very unprecedented pace, even though there are delays. But I'm very glad. I thank you all. Sorry for taking your time. You can ask questions and hopefully you guys are preparing dusting your passport so we can all marry Gada as friends, as brothers, as one bitcoin is in Nigeria come March 2023. God bless you all. Hey, can you just give us an update as to what is going on exactly at the village? Of course. They started the foundation. So are they starting the first level of the blocks or exactly where are they at? Because I haven't talked to you to get an update on it. When you talk and you have Indians like this. So if I say today we're going to show you the level where we are at and we have some blockers and we don't make it today, it's going to look like, what's up? So look at the Nigerian bitcoin conference. It was supposed to be 24th and 25 February, but Nigerian government already splitted the presidential election for the 25 February and the entire week before 25th is going to be security, heavy security all over the country. So we had to move our conference a month after. Look at the radio show, which is supposed to start on the 11 December, which is two days from now, all paid up. We have to move the radio show just because we don't want our airtime to be exhausted and we can capitalize on the airtime for promotion of the Bitcoin nigerian Bitcoin Conference on the Bitcoin Village construction, of course, adoption, education, work. So I want to talk less and let videos and pictures do the talking and then we can have a proper space and title it Bitcoin Village Updates. Whether we can come ask questions thereabout. Yeah, that makes sense. No problem. The thing that you mentioned that was interesting to me that I would never have imagined happening. I've been in construction for over 15 years and I never would have imagined the fact that you have people coming to work on a construction project and then the next day another group comes and then the next day another group comes for the mere intense. Grab us or Lilac. Any Nigerian come up? You cannot whether you are building, whether you are the richest man on earth building anything in Nigeria, the size of their construction work is how they will mobilize. They will mobilize so much, and they will give you a bill. And the worst the government can do is just to come and chase them. You're going to call security for them, and they would get off the land. And the crazy thing is, they start stressing your construction workers. They start stressing them, stressing them, stressing them. They might relay them before you get there. And you don't want a situation whereby you're going to be involved in the police all the time in a community whereby you have been accepted. The paramount king is in support. All the chieftains I support, 9% of the people I support. So if you bad eggs are only out to get their little unwarranted illegal money. But we're in Nigeria. It's crazy. Even though government have issued an anti land grabbers law, if it's supposed to be effective, but these motherfuckers are the ones encouraging it the most. The richest people in Nigeria, in Nigeria are the people that make use of these thugs. They use them for disruptions. So these thugs have contacts. At the end of the day, you, you, you call cops on them. The next you park jet, they go by car, you're not there or something. You know, you don't want all of that. You don't want to show because of you. And it's funny, they came out outside the community and they start to say, oh, my father had a house here 35 years ago. So it's not a bad news. It's just me being 100% transferring. So that, you know that that can be an entrance for one day, two days. If you don't manage it well, it can extend to one week, two weeks. It happens to almost every construction site, except you want to man a military base. And when I say military base, like two, three military guys, the Nigerian policies are much strong enough to stop them. You have to pay us the right pay them the day times four or five what the government is paying them to scare the land grabbers away. Yeah, that's very interesting, and yet one of many obstacles and challenges that you're facing. So for you guys that don't know, olu and I, we hired a surveyor and a project engineer. And if I could be there, I'd be overseeing the construction myself. But Olu is there, and he's the one on the ground doing all the work. As far as yes, we have the engineer and we have the surveyor, and they're doing their respective jobs. And what their positions? As in the construction project, those positions are very important, but it's very important to have someone on the ground to inspect the work. That's basically what you call quality assurance. And so Olu is doing a lot of things already. I mean, he's the CEO of bought me cash, and he's helping with Satoshi's journal, and now he's on the ground in the village. So I've told him many times in the conversation how thankful I am to have a partner that's doing this, because it's a lot of work. I mean, I've done construction for many years, and I've been the inspector, I've been the engineer, the surveyor, the designer, the quality assurance, I've been all of it. So I understand how intense construction is. And when you have to deal with shenanigans like what olu is talking about, additional to all of the other responsibilities on the construction site, that is a very stressful deal. So thank you, Olu, for the update. I look forward to the pictures. Already we have some pictures, but I think that it's going to be really cool to see everything come together and look forward to the videos as ",timestamp:"01:56:17-02:20:03",topics:["The Bitcoin Village","Nigeria","Bitcoin Adoption"],type:"twitter_space",weight:6.083251953125},{boost:0,date:0,description:"Michael Atwood talks about OshiApp",episode_title:"Cool Apps Built on Lightning - March 16, 2022 - Voltage Twitter Spaces",guests:[{name:"Chad Atkins",profile_picture:"https://pbs.twimg.com/profile_images/1200611447979544576/W9ocRJTb_400x400.jpg",ref_id:"62da3c50-0a46-400b-81a3-5f482f5b8fee",twitter_handle:"Chemchad"},{name:"Michael Atwood",profile_picture:"https://pbs.twimg.com/profile_images/1362207977470521345/Jy2_Ge60_400x400.jpg",ref_id:"16359ade-afb9-4a37-be0b-0844a6134327",twitter_handle:"Dooowta"}],hosts:[{name:"Nate Glasky",profile_picture:"",ref_id:"0662789d-b39e-4aed-ad6f-44257695b6af",twitter_handle:""},{name:" Bobby Watts",profile_picture:"",ref_id:"ae2685c6-1307-473a-95b0-87c234e50483",twitter_handle:""}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=4EJrnxYOShY",node_type:"clip",pub_key:"",ref_id:"9f69933d-69fe-47a0-af4d-9d80726e60aa",show_title:"Voltage",text:"All right, it looks like Michael is here from Oshie app. I want to invite him up because I know he's got some cool game plan and stuff just going on, like from Miami, like getting Oshi app utilized down there. And he's got some traction in Texas, I think I saw Marty using Oshie app or something, like buying some local beef. And there's been some block parties using. So if you are available to chat, Michael, feel free to hop up. It's funny because actually that's one app that I am absolutely a fanboy over and I totally did not put it on my list for some reason. But yeah, dude, Mike. I see Mike all the time in Austin. So if you want to tell us about Oshi, Mike, feel free to raise your hand. Or we'll send you an invite or I can just explain it, but I'd. Rather you do it. Yeah, I can chat a little bit about it, I guess, until it comes up. But anyone who's not using Oshi, it's pretty sweet. Like, as a consumer, you can download the app and then just check locally what deals around you, what small businesses around you are willing to give you bitcoin back for coming in and shopping. And it's as simple as you get a gift card, essentially, like just a deal to that business, and you can go in and make that purchase and the business will say, hey, you get this percent sat back. And what's really cool from a consumer perspective that I like because I love whenever applications are gamified, kind of like fold. Like if you referred people to fold now that they have this every time someone swipes their fold card, I get paid. Like, in the last week, I've made 1300 stats just by referring people two years ago to fold. And Oshi is kind of the same way, but it's a little better where you as a consumer, if you refer businesses onto Oshi app, you can earn like a very small fraction passively on all the purchases done at that business. And there's like an incentive model that if you're an advocate for the brand and for those businesses, you can earn a little bit, too. But it's pretty great. What I would really love to see happen is, like, everyone's going to Miami 35,000 people next month, right? Like, if we could get ten to 20 businesses around the conference or onboarded to Oshi, you could just flip open the app, see what businesses around there want to support Bitcoiners. And it's like, yo, come grab a burger, get 15% back in SATS. And it just gets Bitcoin back to everyone who shops. And the thing that's really great about this is, if you've noticed, like, Lolly and Fold, they're really focused on bigger companies, bigger providers. And there's a lot of organizations, there's like three providers out there that give you access to these gift card networks. So if anyone wanted to spin up their own fold or Lolly or things like that, there's partners you can partner with that give you access to that. So there's tooling out there for big businesses, but there's not one out there for B to C. Like getting small businesses on board. It's something that's literally never been done. So it's pretty cutting edge and it's a big problem that could be solved. But I'm personally passionate about this because at my last job, I've managed marketing for small businesses for like ten years. And 60, 70% of businesses in America are small businesses. It creates most of the jobs in our communities. And whenever you can have a Bitcoin circular economy at a very local level, you're keeping money in your community. You're not exporting money to Walmart, who's then sending it to China. You're not sending money directly to Visa and Mastercard. You're keeping it on a local level, empowering small businesses and rewarding consumers for being a part of that Bitcoin circular economy. So if there was an application that was one that really gave back to local communities, it's definitely Oshi in my mind. Yeah, I think when I talked to Mike about Oshio a while ago, it was like what really kind of blew my mind was, up until this point, I always envision sort of brick and mortar lightning commerce to have the merchant generating the invoice from somehow. But with Oshi, the customer generates the invoice and pays it on their own phone and then just shows the merchant, basically, and the merchant scans it or whatever and says, okay, cool, you got it. And I just think that's super cool. And it takes away so much friction from the merchant, especially a merchant that might not be well, that might be like, Bitcoin curious, but doesn't want to have to run a note or BTTP server, something crazy like that. I just think that's really cool. And there was a Bitcoin block party, I think, a month or two ago in Austin, which where the Bitcoiners got a bunch of restaurants and bars to use Oshi, and there was a huge sort of get together around it, which was pretty cool. I hope they throw another one of those because sounds like a lot of fun. A lot of stuff is happening in Austin. Not going to lie. I'm going to invite Kyle Murphy up if he's available. I know you might be passively listening like Michael, but there was the hackathon this weekend at Pleb lab, the SATS by Southwest Hackathon. And I'd be really interested to maybe hear at a high level what were some of the projects, maybe that really had legs, that based on what you heard on the ground floor, like maybe people are going to pursue a bit further that could really come to life. I'm sorry, were you talking to me? It kind of muted as I accepted the speaking thought. Yeah. What'S going on? This past weekend we threw a hackathon. As far as some of the projects that had legs, I would say. I. Don'T have a lot of hackathon. I have zero hackathon experience to kind of counter it too. I've never been to a hackathon or hosted a hackathon before this weekend, but just from some of the things I heard from some of the devs who obviously have a bit more experience with hackathons than myself, it was really quite unbelievable. The amounts of high level projects that actually came out of this past weekend. I think we had ten projects that actually presented and a handful more that were built but did not present. Of the ten that we saw presented, there were seven or eight that I think really I'm not sure people will have the time to kind of really push forward with, but if they did, I would be bullish on seeing all seven or eight of them kind of push forward as a potential bitcoin company. The winner of the hackathon was a project called Pleb FM, which was like a live streaming stats kind of update for pushing music on, like a jukebox style kind of thing, where it was like you could basically pick a number of stats. You could get your song pushed to the top of the queue and you would see, like, a live leaderboard for music being played and streamed over the Lightning Network, which was really freaking cool. Nice, that's exciting. We saw some good business stuff. I know Nifty Nye and someone else were working on Lightning, like a dashboard for kind of merchant services, which I think for things like Ocean and a handful of other businesses are going to be really powerful. One of the things that's kind of really lacking for business integration is the company's ability to really trap and pay attention to what's going on in their finances. So the kind of Lightning dashboard that really showed like where money went, where money came from, kind of open channels and a whole host of other things in real time in a really easy to read manner was also pretty cool. And that was Lisa from Block Streams project. She's been working on that accounting stuff for a while, so that's pretty cool to see. Yeah, she kicked it into high gear this weekend. It was pretty cool to see. I believe she's actually sitting at Club Lab right now, kind of continuing to work on it. So as far as projects that are pushing along forward after the hackathon, that seems to be one of them. When you're in the groove, you're in the groove. Absolutely. Sounds like a good time. Yeah, it looks like we're almost to an hour. Austin bit devs is tomorrow. I will be there if anyone wants to say hi. I'm sure Kyle will be there. ",timestamp:"00:44:28-00:53:59",topics:["Michael Atwood"],type:"youtube",weight:6.080077648162842},{boost:0,date:1590465600,description:"How does Bitcoin is the next level of protest?",episode_title:"Chat 39 - Bitcoin Renaissance - with Marty Bent John Vallis Alex Gladstein Elizabeth Prefontaine Brady Swenson",guests:[{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"},{name:"Marty Bent",profile_picture:"https://pbs.twimg.com/profile_images/1362747135981199370/mSy97J12_400x400.jpg",ref_id:"655bdcb1-21c3-411c-aa24-fe7e4c7a248c",twitter_handle:"MartyBent"},{name:"John Vallis",profile_picture:"https://pbs.twimg.com/profile_images/1568743166035070976/4MyKww8A_400x400.jpg",ref_id:"c3a9fe29-3b78-4665-af54-e293e9d68962",twitter_handle:"johnkvallis"},{name:"& Brady Swenson",profile_picture:"",ref_id:"0b68a085-0680-44b8-891c-6e1e84ac4eb1",twitter_handle:""},{name:"Elizabeth Prefontaine",profile_picture:"https://pbs.twimg.com/profile_images/1382790711427354625/D09LMToL_400x400.jpg",ref_id:"4506df72-5de4-4144-abc4-011408b6b496",twitter_handle:"Eprefon"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN4002307424.mp3?updated=1627951379",node_type:"clip",pub_key:"",ref_id:"67236e2a-900b-4cf6-bc6c-165c0f7e3219",show_title:"Bitcoin Audible",text:"do think eventually the impact of Bitcoin will be as kind of like this protest tool that can be wielded nonviolently in a really compelling way. And it's really tough to defeat governments when they have a monopoly of violence. You can do it. And in fact, nonviolent protests, if we're going to try to be optimistic here for Bitcoin, nonviolent protests are way more successful in history than violent ones by, like, an order of magnitude. I think it's something like 35% of all nonviolent movements, ranging from Gandhi to MLK or whatever, have ultimately been successful in the last 100 years. And only like, less than 10% of the violent ones have done what the violent people wanted to do. Right. For obvious reasons. Usually it's like a small group of male people willing to have guns who are willing to fight in these violent ones, whereas everybody can participate in the nonviolent revolutions. And these are usually like people power protests where you have to go in the street and try to convince the police in the military to join you, and then the dictator has no more people to support him and he's overthrown. This has happened quite a few times in the world. So bitcoin is like the next level of that kind of protest where we all start opting out to this other financial system. And I do think people it is inevitable that they're going to realize that and they're going to know that. But we're so early. I mean, we might be decades away from that being a reality. We're just so early. Less than 1% of humans have used Bitcoin. Far fewer than that. Understand Bitcoin, maybe 1000 of that or fewer. So I don't think that Coin needs our help, but I think bitcoin will be a tool that humans end up using to really erode some of these more arbitrary power structures. Yeah, one of the things I've noticed during the crisis is because I looked out and I asked myself, ",timestamp:"00:18:14-00:20:02",topics:[],type:"podcast",weight:6.0710978507995605},{boost:0,date:1625958277,description:"How the franchise model access the cheap capital from fiat money destroy small businesses",episode_title:"WHY ARE WE BULLISH? Brandon Quittem, Timothy Kim, Shinobi, Steve Barbour ep185",guests:[{name:"Brandon Quittem",profile_picture:"https://pbs.twimg.com/profile_images/1502403738861940736/9J5VuTye_400x400.jpg",ref_id:"65512044-7810-4ece-8156-5519e072cb66",twitter_handle:"Bquittem"},{name:"Shinobi",profile_picture:"https://pbs.twimg.com/profile_images/1526590501742428160/0Y5H2uJK_400x400.jpg",ref_id:"a05dface-33a7-400d-a749-99efe0d96118",twitter_handle:"shinobi602"},{name:"Steve Barbour",profile_picture:"https://pbs.twimg.com/profile_images/1592714173469065216/q8kXPyQI_400x400.jpg",ref_id:"63a731b8-4759-4360-9e9d-d66f884e12d8",twitter_handle:"SGBarbour"},{name:"Timothy Kim",profile_picture:"https://pbs.twimg.com/profile_images/1569681307029934081/2s_nWYo__400x400.jpg",ref_id:"e0323798-c70f-4cc3-96ff-87bab50c2313",twitter_handle:"realtimothykim"}],hosts:[{name:"Ben Perrin",profile_picture:"https://pbs.twimg.com/profile_images/1181715113226596352/ipGVEcYH_400x400.jpg",ref_id:"e6b013ef-178b-4b41-95ee-423148a3dc3a",twitter_handle:"profbenperrin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/37027401/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2021-6-10%252Ffb6d5638-4579-5707-9740-0e586c980ba7.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"07ab82b4-2fe7-42f9-9018-bb8f4188eb3b",show_title:"BTC Sessions",text:"Can I just go down a random rabbit hole that I have thought about a month that you just completely unlocked? So I get really high a lot, and I do really silly things with my time me too. That I'm going to make a bunch of different hamburger recipes. And so when I do stuff like that, sometimes I have funnier ideas. Like, what if we open source the franchise model where I specifically lay out the exact process of something, like how it's supposed to be done, like how you're supposed to cook this food and I opensource it and anybody can do that. But if I catch you fucking up, if I catch you deviating from that brand, I get to sue the shit out of you and take a bunch of money from you. But if you follow everything to the tee, everything is yours. I was actually thinking of something like that. I don't know. I'm really open with what we do in our business. And I've always tried to help people and educate people in the oil field space about bitcoin mining. And I was thinking like, okay, we did a lot of work on building these designs for bitcoin mines, and I want bitcoiners to go out and be successful, whether they're like oil companies, whether they're like semi competitors or not. I'm like, maybe I should open source all my designs open source so that we're not going to legally do anything against anyone that builds exactly what I build. I'll give them all the spec, all the anything like suppliers. Because there's a lot more to business than just, like, how you build something. You guys still do well. And part of my idea was like, maybe I'll just go do this. A rising tide ends up lifting all boats anyway. It's going to make more credibility around what we do in our little niche market. And in the end, I'm going to get more business anyway and sort of what you're thinking. As long as they don't, I don't know, try to bring in their own legal, say, like patent something and try to bring in their own little legal monopoly around what they're doing based off our designs, then it's totally open market. I don't know. I think that's like a very interesting idea, something I've actually been thinking about a lot because I'd like to sort of maybe open source all the stuff that we designed in house that right now we would probably like certainly if it wasn't me at the helm, it was just like a regular Fiat Maxi. At Helm, we would go after anyone that copied it. But right now we're sort of cool with what goes on. But I didn't mean to interrupt you. You can keep going, but the liquor is starting to hit me hard. I know. I'm happy to hear that I'm not the only one thinking along those lines because I am exactly on the same point with you. Like, all of these small businesses dying and being cannibalized by these massive franchises. It's sickening. When I was a kid, I used to go around places and every place I want is the new unique thing for that area and that locality. And let's go find those things and experience them. And they're all fucking gone back not that long ago, I come from Newfoundland. There was a lot of and this would be the same anywhere, but I'm just speaking from my own experience, like my family history. There was always like, in this small town in Newfoundland where my people come from, there's always mom and pops. It was like father and son shops back in the day. Maybe mostly men doing a lot of the business stuff. But it was always like, this guy and sons or these brothers and like, you know, like, doing all that stuff. And the theory the Fiat sort of kinesium thinking on this is like, well, the Walmart models, like, push them all out and stuff. Like, no, it's not the Walmart model or the Amazon model that killed small businesses. It's fucking Fiat money printing that kills small businesses. It's not the fact that these guys made these big distribution change. It's the fact that they how do. Those get paid for it's the fact. That their access to capital, like, their cost of capital is less than everyone else. That's why kill small businesses. Fuck. I remember when I started my business and I was like, just trying to try to get sales. I would go to these, like, clean tech conferences, like in Alberta, like emissions reduction. Like, we do massive emissions reduction stuff. So I went to these emissions reduction, like, clean tech conferences and I'm looking around at what people are selling and I would do like a little pitch event, like a little pitch contest to see if I could get interest in our business and stuff. And I'm not a great pitcher, really, but there are these really polished people, like, pitching their products. But I look at their products and they stink. They're terrible. They're the worst. Like, they're not scalable in any rational world, but these people are just running around like these circuits of, like, emissions reduction conference, clean tech. And it's the same with all the buzzwords, like AI blockchain conferences, all that shit we dealt with in 2017. It's like all these non scalable crap products with these entrepreneurs raising money, but not actually getting customers. Raising money is the metric for success, but not getting customers. It's like customers is all that matters. Sales, customers, product, service. Sorry, we work. That's like one of the biggest Fiat Maxi disasters ever. Everyone's about raising money. I'm just, like, ranting at this point because I'm like, buzzing. But like, you go on, like LinkedIn, everyone's congratulating, patting each other on the back for raising money. It's like, why don't you talk about the sales you made, like, the customers you acquired? Because that's what's fucking important in real life. But it's just look at all the money we raised at this valuation. That's all it is on there. And like, all society is that way now. And then you see all these shows. You got like, Shark Tank, Dragons, Dan in Canada's version of Shark Tank, and all these entrepreneurial shows, like startups mostly. Not really a lot of people not really bringing much to market. But just like it's just like this VC hype scene, which is a whole nother rabbit hole, which triggers me is like the VC aspect of Twitter, which is like all these VCs on Twitter that are like, look, man, a VC is like a Fiat Maxi. There's no way around it. And all these people clinging on to bitcoin, it's like bitcoin is going to destroy your core business model in the long run. It's just like this weird juxtaposition where all the Fiat Maxis are, like, pumping into bitcoin. But I guess it's just people doing it what's in their own best interests. But the business models are incompatible with bitcoin, but it's just people doing what's in their own best interests and profiting in the short term. But it's like a weird it's like this weird phenomenon in the future, when bitcoin and sound money returns, there's not going to be this VC culture we're seeing right now, which are basically the dependence of the money printing hierarchy, right? It goes down to the VCs. And I don't know, I was just, like, getting there. Yeah, I bullish on small businesses, man. I think small businesses are going to be insane. Like, I can't wait for the bitcoin standard. And I really promote, like, I'm straight up promoting my own competitors in our locality, like the Lloyd Alberta, Saskatchewan area, guys accept bitcoin as payment, or if no one wants to pay in bitcoin, which is still hard to do. I have a lot of customers paying me in bitcoin because they're minors, so they have bitcoin. But like, you guys are selling motors. You're my competitor. I don't give a shit. Sell your motors, convert your profit to bitcoin and stay in business because that is how you're going to win as a small business right now. Yeah, Steve, to your point there, I think you identified a ton of issues that we're having right now. And they all stem from the fact that money is easy, right? And what that leads to is a cascading effect of the bigger you are, the closer you are, the more access to capital you have, et cetera. That's what drives our behavior. So until we change incentives, we're not going to see anything change in the real world. I have a slightly more charitable view of venture capital. I think what we have now is obviously an extreme overgrowth of that and it's way too much money sloshing around there. And you can see portfolios in VC land or directly correlated to how easy the money is during that during the period of their fund. No surprise. And so I think what we need is a bitcoinized world in order to change these things. We'll see a mass definacialization, which I think is a huge net positive for normal people. Right? I think it's demons. They're devil people. Okay, let's talk about this for a second. I think the caricature of these that we see today I would agree with, but I would argue that there is a place, and I want to hear you guys opinion. I think there's a place for people who place longterm bets on very risky type businesses. Right? I think the model makes sense. 100 failed and one of them changes the world. I just think that right now they have too much money, they're able to raise too much because everyone needs yield. So everyone's going through so hard to find right now. It's so hard to find. That's kind of the problem though is so much money flashing around is what makes them devil people. Because I agree that money printer is distortionary. They're like a secondary distortionary effect, throwing it around at crazy things wildly instead of thinking about who actually can make a solid plan in an argument to us, who do we know and trust and actually being scrutinizing and skeptical in where they put their money, the money printer distorts things and they wind up with a pile of money. And so they go on and distort things again because they just see it as a gambling casino. It's not the role, it's what our perverted monetary system, the mechanism converted the role into. Yeah, I have no ill will towards any VC or anyone that works in any of those. I just call it the cantillon ladder, right? Center banking down to the pleb. Like anyone hide the letter, it's no problem, you're doing what's in your own best interest and all that. But we're all working to reverse, just flip the mechanism of how money is created through mining and distribution, through sound bitcoin mechanisms instead of like the top down fiat mechanism. But it's just a commentary on like it's just this funny like, it's funny that some of the most prominent and influential people in the bitcoin space are like people that are in position. Like they're higher up the Cantillan ladder. Like they're benefiting from fiat. They didn't scrap and grow a small business into something amazing. They went to school. And this is not a knock on. These people individually, but it's just the system. Like, they go to school, they work for this fund, and they benefit immensely. But because they're like us, like the big bitcoinners, they go out and crush it. They want the sound money standard, too. It's just ironic to me. It's almost like coinbase. Like coinbase is an exchange. The more bitcoin succeeds, the less relevant they become. It's like you're putting yourself out of work in a sense. But, yeah, certainly it's never a hate against the player. It's just like the system is such a fucked up mess. There's all this irony and hypocrisy in this whole space that's funny to comment on because. It perverts everybody's actions. Right. The problem is I posted that what I was talking about at the beginning of the show. I took a screenshot of that CNBC upside of inflation, increased wages, and one of my friends commented on it, who's like an intelligent person, and he's like, well off and has a good job and everything. He commented, he's like, well, yeah, but the upside of that is that my debt gradually gets willed down and gone away. But when you think of what induced that debt in the first place is asset inflation. You can't just save money for a house nowadays and then buy your house or only have like, a short mortgage. You can't just for the most part, you can't just save money for a new car nowadays. You have to then you have to, like, get a payment plan and pay it off over 5678 year terms. Now people are looking at it from a perspective of, oh, well, maybe it's okay in this context because it fixes the problem that the problem itself caused. The very base layer of all of this perverts all of our incentives to drive us to do things that we wouldn't normally do in a system that is just a money that actually functions. In a free market. Yeah, well, speak for yourself, but I'm perfect and I always do the right thing. I just want to take it aside. We haven't heard from our friend tim, are you alive? Is the water working? How's the water? I think he's got a how are you doing, Tim? ",timestamp:"01:27:13-01:41:29",topics:["fiat money","franchise model"],type:"podcast",weight:6.056178092959222},{boost:0,date:0,description:"Will the Nation States survive the information age?",episode_title:"The Sovereign Individual - The End of Egalitarian Economics",guests:[{name:"chriskapilla",profile_picture:"https://pbs.twimg.com/profile_images/1362817539135463427/2AXUeFLV_400x400.jpg",ref_id:"9d495790-93f2-4d6c-b770-b2885f66859d",twitter_handle:"chriskapilla"},{name:"remydenton",profile_picture:"",ref_id:"5c5beb0c-c214-4f23-b79a-e71bf9368f2d",twitter_handle:""},{name:"JackRonaldi",profile_picture:"https://pbs.twimg.com/profile_images/1583261828628496384/IazkwYjk_400x400.jpg",ref_id:"01621476-f040-49dd-8160-4035228faf78",twitter_handle:"JackRonaldi"},{name:"AlistairZ80Aftw",profile_picture:"https://pbs.twimg.com/profile_images/1362882489895841795/gH2zix3l_400x400.jpg",ref_id:"3dcba197-47ca-40c0-857d-73cec4325801",twitter_handle:"AlistairZ80Aftw"},{name:"mattonbtc",profile_picture:"https://pbs.twimg.com/profile_images/1549459254280687618/jzdHJou3_400x400.jpg",ref_id:"998167d3-e036-4ef1-9a05-4f062903f0c5",twitter_handle:"mattonbtc"},{name:"wai_wairua",profile_picture:"https://pbs.twimg.com/profile_images/1536570699761848320/T10Owc60_400x400.jpg",ref_id:"c4d4ff36-73fa-4471-91ba-de0f99a49e99",twitter_handle:"wai_wairua"},{name:"UltraSolomon",profile_picture:"https://pbs.twimg.com/profile_images/1468332451055427601/YVgUuUHc_400x400.jpg",ref_id:"6371d519-cc98-4bf4-9f82-be17b1ea532a",twitter_handle:"UltraSolomon"}],hosts:[{name:"BTC_Venetians",profile_picture:"https://pbs.twimg.com/profile_images/1557482467539521537/Kel-eVww_400x400.jpg",ref_id:"a6313ca9-3869-4477-88ad-30172957edcf",twitter_handle:"BTC_Venetians"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/75ec86b1-cb6d-467f-a66e-5e642e5c126a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/c8cc9ec1-061d-4f53-a24b-ee43a56c7715/e650057e-2369-4e75-8119-4975a1fc4cac.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"e96970d0-30a7-4f86-8f81-996ba87a088c",show_title:"Bitcoin Venetians Book Club",text:"Kind of behind on questions here. So let's move on to the next one, which is, do you all think the nation state will survive? The information Age. Going to say, yeah, the big ones will, but in reduced form. What do you mean? America will, for instance. United Kingdom will. For instance. The smaller nations like China, and I don't mean physically, they're just more small in Fragility, if you like, will struggle to keep things going. Argentina will struggle to keep things going. I have the opposite opinion of this in some respects. I think as long as humans are, as long as we remain biological, we're very tribal creatures and we like to have identity. You just look at the soccer World Cup and during covered things were really heated in my community and became so tribal almost overnight between different camps of beliefs. And I think that during times of strife, we look for our colors and our team, and very few people are able to remain unbiased. And so I'm wondering if we'll ever truly be without that kind of place and home. Now I wonder whether if you're in New Zealand, you've got a much closer relationship to the Maori's over there, whether that color is what you said. We have nothing like it in England. Yeah, it might influence my views. Yeah, for sure. These things are different here. Can you speak to how much autonomy the Maori's have? Whether they want more, whether they would get more? Under what circumstances? Well, in the circumstances with the end of the welfare state, with the government finding it harder and harder to hand out free money, would New Zealand survive as a single entity like that? Or would the Maoris and the non Maori want to go their separate ways, much like Americans do with the Indian reservations tend to be autonomous in a way. That is what I'm trying to get at. Do the Maori's have that kind of autonomy that the engines in America and the First Nations do? Yeah, many are fiercely independent and we do have a treaty. But you can't ignore economies and their wealth was taken as an act of war and they were tricked and the usual kind of colonial game. And I don't know if you can unwind that damage. If the world were to change into an information age, if that loss of identity and loss of skill and loss of all that would actually kind of unravel, I think that the damages is probably a little bit too late. Thank you. And the situation over there is beyond my can. So thank you for explaining that. And then just to also challenge kind of what you were saying or at least my interpretation of it. So, like in the US. For example, or even in Canada, it just seems like there's a lot of divisions and some people have certain views and other people have different views, and it doesn't seem like they can reconcile on those. So I often wonder if you set aside military strength, which is where it's good to be united as one big country for all other intents and purposes. It seems like there's a lot of different views in the states. And should they all be forced to kind of share one set of laws and one set of beliefs and ideologies? And it seems like they just kind of rotate. Like one party is in power and they kind of screw over the rest of the people and then another party's in power and they screw over the rest of the people. So I don't know, it seems like that's not very stable unless what you're talking about, it survives. But maybe the states get more independence and people can move around and find things that work for them better than other places. So just looking at the chapter here and thinking about which nation states might collapse, first it says devolutionary pressures will tend to be most intense in large political entities where incomes for most of the population are stagnant or falling. Jurisdictions in Latin America and Asia, where per capita income is rising rapidly, may endure for generations or until lifetime income prospects there equate with those in the formerly rich industrial countries. And then it says, later on, another spur to devolution will be high indebtedness of the central government. So national debts would succeed 100% of GDP. That's just about everywhere by now, isn't it? Pretty much. Yeah. It's kind of like when a marriage is facing financial difficulties. It only compounds the problems. Same thing, maybe, with a nation state. When it's facing financial difficulties, people start pointing fingers and running into problems. Jeff, I think my base case for this is like some kind of world war. And once again, I think the authors might just be early and post that war. Then you have more of a dissolution into this kind of smaller states, not the huge nation states like I just watched in Japan, which is the quote earlier kind of huge debt, declining population, and they've just reactivated their military. And I think that's a very interesting. Trend, not a civil war. Being out of the states and everything else like that. It's so different there. It's very different. Perhaps you could comment on that. I don't know. Like, January 6, it seemed like they came pretty close, and I worry about what will happen in the next one, especially if Trump runs again. And whichever side wins, blames the other side for cheating. ",timestamp:"00:54:35-01:01:52",topics:["Economies of Scale","Nation States","Information Age"],type:"twitter_space",weight:6.051017999649048},{boost:0,date:1642222800,description:"[[Global Bitcoin Festival]]",episode_title:"WHY ARE WE BULLISH Duczko Thomas Jestopher Morgen Rochard Rick Vanderhulst ep229",guests:[{name:"Rick Vanderhulst",profile_picture:"",ref_id:"4c184180-b77d-4e25-ac7c-4d2e86cdde85",twitter_handle:""},{name:"Morgen Rochard",profile_picture:"https://pbs.twimg.com/profile_images/1362921386256211972/IpIK8cwI_400x400.jpg",ref_id:"c29b26e9-82c8-4c0a-8130-aa083d33ec48",twitter_handle:"MorgenRochard"},{name:"Thomas Jestopher",profile_picture:"https://pbs.twimg.com/profile_images/1607521016368201730/6GSHGkGX_400x400.jpg",ref_id:"50388de7-3ec7-401b-8349-5ee1d8a004c0",twitter_handle:"Jestopher_BTC"},{name:"Duczko",profile_picture:"",ref_id:"2b6de75e-0cf5-4fec-b458-d1b8ee3f86df",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b87feb17-6926-4295-b2c2-d1c2e9d49ca8.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/46171740/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2022-0-15%2F68b825e2-6752-7447-34ca-b27f0ea69256.mp3",node_type:"clip",pub_key:"",ref_id:"5bf12d7b-3c9b-4019-bca9-88899aaa4b35",show_title:"BTC Sessions",text:"I didn't say what I do now. So this is connected to what I've been doing for the past few months where I'm involved with a project called Global Bitcoin Fest. And we're a group of people that just enjoy listening to local communities tell their stories. What's happening in their community, what's the history, what's the setting in Argentina, Venezuela, Cuba, Ethiopia, wherever. We did this back on September 7, we did the first thing together. So we started back when neighbor made his announcement, 7 June. Okay, let's do a legal tender here. So we started having Twitter spaces where we were giving away sats in Latin America, Cuba, Venezuela, Sabato, and Mexico. So we formed a small group of people and chatting in a Twitter chat. And then one guy had this idea, okay, let's do a Twitter space 24 hours on the day. On the 7 September, let's do a nonstop 24 hours space. So we decided to separate out 24 sections and have communities join in from all over the world, 1 hour slots each, and talk about their community and kind of celebrate together the adoption of Bitcoin. What I was really taken back by was how powerful this idea was. There were so many people that just joined in and like, yeah, let's do this. We organized this literally in six days. And we had Japan, Australia, Tonga, and greater Polynesia, Vietnam, Hong Kong, Nigeria, Sudan, Ethiopia, Greece, Venezuela, Cuba, El Salvador, Argentina. Communities from all over the world were taking these slots, and we didn't have much time to assess what the actual quality would be of these spaces. And then we did 24 hours non stop. Just awesome content was just one space that was kind of like not really Maxy. But everybody else was really knowledgeable communities that have been really diving deep into this. And we got so inspired that. Okay, let's keep doing this on a weekly basis with one new country every week. So on Sunday, we're actually going to do Argentina was just announced last week. We did Guatemala, the week before that, we did Indonesia, before that, Japan, before that, Costa Rica. And there's an emerging pattern where people seem to have been these dormant cells. People have been kind of doing their own thing. They didn't kind of know what they could contribute or do. And then they've been building up all this knowledge by themselves and kind of Orange Pilling friends here and there. And now they're emboldened by everything that's happening. So, for example, I talked to Bitcoin, a Casi in South Africa, and he was like, look, I didn't know how to apply my knowledge, but now I got so inspired by Bitcoin Beach in Alzheimer. So I started this with my surf kids that I'm kind of supporting. There's 40 kids that I'm trying to impoverish communities. I'm trying to help. So now I'm bringing in Bitcoin as part of their education and making it part of my project and making like a small Bitcoin Beach here in South Africa. And there's all these small stories where all these community builders have built up knowledge for so many years. When I first drove into Bitcoin in 2017, there was so little. I felt it was so hard to find good quality knowledge. I found Andreas Antonopoulos, and that was kind of it when I was trying to Google it. So I got all fooled by the shit coin stories and everything, and I just went all in on shit coins, and then I lost 98%. Now, I really believe that ",timestamp:"00:19:46-00:24:39",topics:["global bitcoin festival"],type:"podcast",weight:6.044204792136057},{boost:0,date:1596671100,description:"Bitcoin mining;User's choice in defining value",episode_title:"Chat_45 - Bitcoin & an Energy Revolution, A panel at the VOB Conf",guests:[{name:"Christian Stoll",profile_picture:"https://pbs.twimg.com/profile_images/3296579573/69ebedb479a9bdb9d536fe887e2d3113_400x400.jpeg",ref_id:"ff74d59c-f846-4b16-a5e5-771fb8139f18",twitter_handle:"Granddragon14"},{name:"Jesse Peltan",profile_picture:"https://pbs.twimg.com/profile_images/1123954968636088326/EAjHUGDE_400x400.png",ref_id:"96309505-caeb-47bb-a1ba-712b97292675",twitter_handle:"JessePeltan"},{name:"Phillip Sandner",profile_picture:"https://pbs.twimg.com/profile_images/1043824764161335296/2SW3duCV_400x400.jpg",ref_id:"e1996e82-0354-421c-85d5-f18eebec9506",twitter_handle:"philippsandner"},{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"Christopher Bendiksen",profile_picture:"https://pbs.twimg.com/profile_images/1362772558882484233/3nS-l35s_400x400.jpg",ref_id:"d99d354e-41d4-4117-9b70-05955a85f9da",twitter_handle:"C_Bendiksen"}],hosts:[{name:"Guy Swann",profile_picture:"https://pbs.twimg.com/profile_images/1401969630634196995/DqOuszMi_400x400.jpg",ref_id:"39c31930-d799-40a0-9a46-193117d03418",twitter_handle:"TheGuySwann"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN6935967461.mp3?updated=1627959014",node_type:"clip",pub_key:"",ref_id:"4636725f-ae47-4777-bd41-f78a4694ba05",show_title:"Bitcoin Audible",text:"Yeah. And there's kind of an inherent moral question there as well, is that do we get to subjectively put our values on to them? Like in making judgments over whether or not they can make that choice as to whether or not it is their value or not? And obviously, in a decentralized system, what are you going to do to stop it anyway? It's inherently an incredibly difficult thing to control or alter. Yeah, this gets to a very deep level of freedom versus coercion. Who am I to say that you're watching a Netflix show is a waste of our common resources? I mean, that's not my tournament to make, of course. Did anybody compute how much electricity costs to watch 90 minutes electricity. Honestly, there's research out there looking into data centers which is directly linked to such activities. I have one student that looked into Amazon, currently the comfort print of Amazon, where you actually have streaming as one source of electricity consumption. I made an estimate, I think two years ago of the electricity draw, just gaming console Iceland in the United States and it's on the level of something like 50 kilowatt hours. Wow. I like to make a couple of points here. So I think that one of the important points to note is that electricity consumption is not in itself a bad thing. So electricity consumption, like electricity production and consumption is good like that is that provides value. The negative side is when there are externalities associated with how that is produced. So if we enable more renewables, more sustainable energy sources through bitcoin mining, then it's a net positive. I think the other part that is important to note here is that in the total scale of human energy consumption, bitcoin is nothing like it is completely dwarfed by any industrial process, aluminum smelting, like concrete production, scale production. Bitcoin is such a small drop in the bucket compared to any of that, that any effects that bitcoin has on a more financial level, like if there's restructuring in the way that business is done, that will be far more significant than any effect of the direct energy consumption ",timestamp:"00:21:12-00:23:48",topics:["Bitcoin mining"],type:"podcast",weight:5.944497585296631},{boost:0,date:1670547229,description:"Thoughts on the gridless mining operation that started in Africa and how the progress has been",episode_title:"Rabbit Hole Recap #230: Building in the Bear Party Rip",guests:[{name:"Jason",profile_picture:"https://pbs.twimg.com/profile_images/1458137423716622342/ctyc_MTX_400x400.jpg",ref_id:"ca893631-4be5-42c4-bff1-92cc2f6e43fe",twitter_handle:"JasonWrich"},{name:" Texas Slim",profile_picture:"https://pbs.twimg.com/profile_images/1589784780970795011/02jf0fqp_400x400.jpg",ref_id:"add0c8be-0524-43e1-a3a3-aea1058057d4",twitter_handle:"modernTman"}],hosts:[{name:" Marty Bent",profile_picture:"https://pbs.twimg.com/profile_images/1362747135981199370/mSy97J12_400x400.jpg",ref_id:"0b8ba673-da17-4371-a6e1-dd112d173b14",twitter_handle:"MartyBent"},{name:"ODELL",profile_picture:"https://pbs.twimg.com/profile_images/1421584695746338819/Z_7ZfAeP_400x400.jpg",ref_id:"6981a34b-301a-45f1-8299-59a3f719f6e2",twitter_handle:"ODELL"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/da64b29e-c2c0-41a6-ba29-acbaa2d022e8.jpg",keyword:!0,link:"https://anchor.fm/s/91b8fbc8/podcast/play/61912544/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2022-11-9%252F301977145-44100-2-474e79172e2da.mp3",node_type:"clip",pub_key:"0372cd0c8469f2034336a243e018d4d60e07efef8e7d10417807da1173bd5b002f",ref_id:"f66a9f05-a885-44f3-9673-f910c78d6360",show_title:"Rabbit Hole Recap",text:"This was cool. We were talking about this earlier, block and Stillmark, right? Yes, Stillmark and Block led a $2 million funding around for a bitcoin mining company in East Africa. You guys may have seen it's called Grades. You may have seen videos of bitcoinners. I believe Nick from Luxor, Marshall Long from Rhodium, and a couple of others took a trip to Africa a few months ago. And the common video they were sharing was like a mining operation working off a small hydro facility in some rural place. Micro hydro? Yeah. In Africa. That's what Grid list is doing. And the way I understand it, these Grid List has basically got a problem where they can spin up these micro hydro turbines that produce electricity, basically have. A pipe that running water runs, and they throw turbine in there. Yes, but it's such a rural area, they don't have that many customers, and so they have to sell the electricity at a relatively high cost. What bitcoin mining is uniquely suited to do is come in and consume a lot of that electricity or use a lot of electricity to produce revenue. They have small rural villages that have no electricity. They come in, they put a new electricity project in. They subsidize with bitcoin mining. Yes, exactly. I think it drives the price from like seventeen cents kilowatt hour down to four, three or $0.04. They have pictures of some of the operations. It's like super bootstrappy and just really a lot of just like creative engineering that's going on there. Yeah. So shout out to the team. I feel like there's a lot of overlap there with the ranching community. I would like to see all these small producers have little micro mining operations. And that's the cool thing, is we have so much of our irrigation water is in pipe, so it's very seasonal when it runs. But as long as you have enough fall, you could put micro hydro in any of those pipes and utilize it to make electricity and mine bitcoin, whatever your season run long is. And in Tennessee, you see a lot of natural gas wells on these properties, too. Yeah, I mean, that's the first hashtag that we put down. You may have seen the video on Twitter, but it's literally our hash shut. There's a fence and there's grazing cattle right on the I love that picture. Yeah. And that's the cool thing. In Texas, you have all those non productive wells just waiting for the opportunity. All up and down the Texas Panhandle. I can't remember his name. His name was Bill. He came out to Colorado. He was West Texas. He's outside of Parritten. But he was fascinated because all the stranded gas wells in the Texas Panhandle, I mean, you can smell it. It's so untapped at this point. Well, we've talked about me and you have talked about and I know Matt, we've talked about too. But if you want to think about a significantly robust circular economy, you talk about a ranch with excess natural gas or excess hydro. That's mining bitcoin. You're tending to the land, producing cattle, and then you're producing money with your excess natural gas, hydro, whatever it is. You want to talk about yielding revenue per acre on a farm. Bitcoin mining really allows you to supercharge the value you're getting out of your land. And it battles all the droughts, all the manipulation in the commodity markets, hyperinflation, extended cut dates where you can't harvest a cow. I mean, talk about saving the rancher. That is the circle of energy that we talk about. And if you're using an electric heater to heat a barn or a well house or a spring house anyways, you're going to be burning electricity. You might as well mine bitcoin, use that miner as your heater and put that stuff in cold storage for whatever it is that happens to go sideways when you need it. It's pretty cool seeing all the club engineering around using S nine as heaters. Yeah. The 3D printed parts and different ducts. If you're a rancher out there renaissance lately on Twitter. Yeah. And if you're a rancher out there who's got excess hydro, excess gas in your land, but you don't have the capital to invest in a mining operation, reach out to bitcoin miners. You can go borrow it for Barry. No. Or you just broker a deal with a miner. You say, hey, I'll give you this electricity as a pastor, I won't charge you for it, just give me a repair on the bitcoin mine. And there is like a percentage gas or hydro sitting there anyway. You're not making any money off of it. You can make 5% satisfy stream from. A minor yet if they're flaring it anyways. Yeah. I mean, that's insane. I see how much they flare. That blows my mind. Talk about wasted money. Yeah. We're doing that here in Tennessee, tom and I at Standard Bitcoin up north, northern Tennessee. There's a ton of farmland with these wells on it like the one we're using with the cattle grazing next to we just go to landowner, say, hey, we'll pay your land lease for the year. Just let us find bitcoin with your gas. So you're not using. I'm more than happy to do it. Well, I think a lot of especially in Texas where I come from, we have to funnel that information. There's people out there that's going to be extremely interested. That was one thing that we found out during the summit this year. Those type of possibilities. In the beginning, I said, one of these days, ranchers are going to innovate further into bitcoin than any of us right here, because they have all the resources and once they understand it and they get that good education, it's going to be fascinating. We're at Jason's ranch, but during the mining conversation, we had all their eyes lit up. That was a damn good presentation. Meeting the pumps and stuff, too. They all right away and immediately obvious when one of us said just like, make sure you hire a licensed electrician, or it's like dangerous or whatever, they're like, honey, this is not dangerous. Exactly. But that was so classic. They're talking about doing this and doing that. As an underground coal miner that's dealing with 12,470 volts household power is no big deal. Then if you're a bit wider and you really care about the robustness and distribution of the network, there's nothing better than getting small modular mining farms or mining data centers spread throughout rural farmland. There's nobody better to protect a bitcoin mining operation than a rancher a mennonite rural Nigerian villages. Yeah, don't, come on, bring us happening. Yes, it is. Moving on from ",timestamp:"01:18:12-01:25:21",topics:["Africa Bitcoin MIning"],type:"podcast",weight:10.341832935773114},{boost:0,date:null,description:"Kenya background, culture and tribes",episode_title:"#Bitcoin Kenya 🇰🇪 - meet the Kenya Bitcoin community",guests:[{name:"Noelyne Sumba",profile_picture:"https://pbs.twimg.com/profile_images/1585949523901292545/tWf-IwWO_400x400.jpg",ref_id:"44455b1d-76cf-49df-baa0-cd606652885b",twitter_handle:"noelynesumba"},{name:"Okjodom",profile_picture:"https://pbs.twimg.com/profile_images/1577811376487088128/J2Z4nIgI_400x400.jpg",ref_id:"4c9df92d-3bb5-4d08-9a7e-a9ba15f58f03",twitter_handle:"okjodom"},{name:"Master Guantai",profile_picture:"https://pbs.twimg.com/profile_images/1521025685078302720/w9dZwehS_400x400.jpg",ref_id:"64c326c4-d4a9-4e6c-82fe-0c9bac8a7094",twitter_handle:"MasterGuantai"},{name:"Lorraine Marcel",profile_picture:"https://pbs.twimg.com/profile_images/2361719231/German_sheperd_Puppies_400x400.jpg",ref_id:"ab30679d-7931-4921-a4f8-6fee74e412c8",twitter_handle:"lorrainemarcel1"}],hosts:[{name:"Mary Imasuen",profile_picture:"https://pbs.twimg.com/profile_images/1465290507752558596/lZVbU9np_400x400.jpg",ref_id:"2d8ed8ce-5112-4dfa-9aa2-5fa8b874af68",twitter_handle:"mary_imasuen"},{name:"Lukas Poland",profile_picture:"https://pbs.twimg.com/profile_images/1382603302160932865/RgeQnCXM_400x400.jpg",ref_id:"217a2c5a-1cfd-4840-bbff-eec43da8c52f",twitter_handle:"duczko"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/56bbafde-60ef-4e4b-b930-978429c6a635.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/9f2ebf6e-a880-4579-986c-ff0c9c517559/2cb59251-775d-4691-9c8f-30fb9d7707b9.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"0bb19102-ebb2-4519-ac7a-e6e69593a091",show_title:"Global Bitcoin Fest",text:"let's get started. We have the Kenya community here and let's talk about Kenya. Let's talk about what's happening in the country today, the economic situation, a little bit about the culture. But maybe if we could start first about the history of Kenya. Is there anyone that you must agree, Guantai, think would be the right person to start? I'll put Nilen on the spot, maybe to give a history of Kenya and that Bitcoin background in Kenya. Is that okay, Nileen? Yeah, it's okay. So when we talk about Kenya, it's a very famous country. Lots of people have heard about it. Kenya is a very beautiful country. I have to get it that it's located in Eastern Africa bordered by the Indian Ocean. We have the lake in the western region. We have a mountain in the central region. And most of you have heard about the Masai. Mara has very beautiful wildlife. And Kenya, what can I say? Population 56 million. So we have very many Kenyans. Kenya is a country itself is divided into 47 counties. And in the 47 counties we have almost 44 ethnic groups. So we're divided into tribes, 44 tribes. And I can say Kenya is more of a family and community oriented culture. Of course, this being influenced by the African traditions and what we experienced during the colonial period. And so far, I believe Kenya is a very innovative country, very driven country. And yeah, that's maybe in terms of the culture, in terms of the monetary history of Kenya, I can say Kenya became a colony in the 1920s and in the 1920s. We used to use the Indian rupee back then. And it was before that it was abolished and we started using the East Africa currency. So this was used between Kenya, Uganda and Tanzania. Back then it was known as Tanganika. So we've come along with, in terms of our currency as Kenyans eastern Africa currency was used for a while. Then came 1966. So we gained our independence at around 1960, 319 66. The central bank of Kenya was established. And with that, they started issuing currencies from five cents, ten cents, twenty five cents. Yeah. That was around the 1960s. If you look at history books, it says during that time, up to the 70s, kenya's economy was flourishing. So we were doing quite well until the 1980s. Usually talk about what the hell happened in 1971. So it really affected Kenya. And so the 1980s had lots of deterioration of the coffee industry, tea industry, which Kenya is very well known for exporting, if you've heard about Kenyan tea. So we had financial deficits in our balance of payments. There was a shortage of forex, very bad shortage of forex in the 1980s in Kenya. And with that, we, the government obviously turned to the World Bank and the IMF and it suffered the conditions that came with that through the structural adjustment programs. And so far, fast forward in the 1990s, we had the effects of the structural adjustment program. So in this, you found that the conditions were privatization of the public sector and also in terms of agricultural production, the government was really onto it. And the consumer policies, they were work 2021, we still are undergoing some structural adjustment programs 20 years later through stuff like the extended Fund facility from the IMF. And of course, it comes with its own effects. We have wage bill being frozen for the sector and for the health sector, for example, that led to the firing of lots of Nazis. So you find that our health sector, the key areas that are important to people, end up suffering first and the health sector amongst them. So, yeah, I can say in terms of our history, we've come a long way as Kenya, but we are still persevering. Thanks. Hello. Is anyone with me? Yes. I was just waiting if somebody else wanted to jump in to share about Kenya. Yeah, only Lorraine can do the culture for us. Lorraine. I just arrived from Ghana. I was with Lorraine in Ghana. She's a fantastic lady. I got to meet her for the very first time, and that felt really good. So, Lorraine, if you can tell us what do you think about the culture of Kenya? Okay, thank you for that. Nolene, it was also a pleasure just meeting you. Noline has mentioned we have 44 tribes. Different tribes. Right. The funny thing or the interesting part about Ken we don't have one major culture that defines us all. We have different tribes, have different distinct cultures. And this is interesting because as we meet, we get to chandler about each other. I'll talk about having different groups. We have three distinct groups. I think there's a fourth one. But I'll talk about the banter. I'll talk about the nylons and the Cush outs. So within these three groups, you also have now we have the tribes in them, right? And the Banter is actually the major one. We have the Luas, the Kikuyu. The canvas all in the bantu's. And I think Gwentai and Nolin at our bantu. And then there's us, the nylon, the Lewis, the massage, the Kaleen jeans. And then we have the Kushites and so much more. Right? I believe Kenyans are pretty enterprise. They are hustlers mode. Of course, not as much as Nigerians, but we are very entrepreneurial. We like to do business, we like to get things done. We are very friendly. By the way, Kenya is a very welcoming country. That's why you see, like most investors actually just like to come to Kenya and have their business here. Invest in us, invest in our structure. Right? What else can I say? When it comes in terms of religion, it's an open thing. We have freedom of religion. You can be a Christian, though. Majority are Christians. And then you have 10% being Muslim. And then there's a small section, the Hindus and the Sikhs, minorities. But it's an open space. You can worship. You can worship or just pray to whoever, anything that you want. What else can I say about our culture? I think that is what I would say about culture. I'd also talk about as Kenyans, we can boost about the natural resources that we have. We have the wildlife, we have the mountains, we have the lakes, we also have the oceans. It's really a beautiful for people who are thinking about coming to Kenya, it's a beautiful place that you can come to. You won't necessarily miss a thing to do here in Kenya. You can visit the Maasai Mara as Nolene mentioned. You can visit the Indian Ocean. You can even just chill in the bushes with the lions and the giraffes and all that. So about language, I think that is part of our culture. We actually speak to Ahili and English as the main languages here. And so Healy was brought about by the Arabic and then east people. This was to facilitate the trades back then, the East Africa, we have Tanzanians, Ugandans, also speak Swahili. What else? I think that's about it. When it comes to our culture, I'll just call you, okay? Because I can't pronounce your name. Would you want to add something on that? Just mention the favorite food. Kenyans love their Galilee and you can take it. The number. I was in Ghana and I think I told noline. I miss Susan. I want to go back home and eat Susan. So it's true. Absolutely. Yeah. So you have to try that. It's made of khan. So khan pairs very well with things like fish. And there is also another highlight, which is Namatoma in Sahil that is roast or grilled beef. Could be beef. Could be good. Very good. If you're out there taking a bit of a drive, experiencing game drive, you're experiencing maybe the beach. If you ever visit Kenya and go to the cross part of it. So there's a bunch of things to see. It's a lively culture, very welcoming, but that is objective from this side. So you have to experience it for yourself. You're welcome. ",timestamp:"00:37:27-00:47:45",topics:["Kenya structural adjustment","Kenya cultures","kenya"],type:"twitter_space",weight:5.850915908813477},{boost:0,date:null,description:"Bitcoin is the only asset that don't have counterparty risk",episode_title:"Bitcoin Backed Stablecoin’s",guests:[{name:"Andrew Begin",profile_picture:"https://pbs.twimg.com/profile_images/1461826323102449665/spEoEcpR_400x400.jpg",ref_id:"28db7b9d-1c71-4981-8044-baf001e58b94",twitter_handle:"agbegin"},{name:"Yago",profile_picture:"https://pbs.twimg.com/profile_images/1369335486456684546/AIJdrQ5l_400x400.jpg",ref_id:"0819a9d1-c085-42d5-8b3b-bc3ce79ff1ea",twitter_handle:"EdanYago"},{name:"Sovereign Horizon",profile_picture:"https://pbs.twimg.com/profile_images/1604168916300873731/mLszGVm6_400x400.jpg",ref_id:"6c159904-fe63-437e-91b5-5c444bbd11fa",twitter_handle:"SovereignHRZN"},{name:"Art of Thomas",profile_picture:"https://pbs.twimg.com/profile_images/1547047357371797504/avnHBa2W_400x400.jpg",ref_id:"2c312138-9a5f-4a75-9c19-513d5703d5ce",twitter_handle:"TheArtOfTomas"},{name:"Maximiliano Carjuzaa",profile_picture:"https://pbs.twimg.com/profile_images/1566622024662917120/B6uyn9QR_400x400.jpg",ref_id:"a5273c83-28f1-4df3-b8c6-d3b081f55b31",twitter_handle:"maxcarjuzaa"}],hosts:[{name:"Alexandria The Great",profile_picture:"https://pbs.twimg.com/profile_images/1575525599493427203/XubWEoDX_400x400.jpg",ref_id:"0c977f79-ed3c-46e9-8363-6c6c519d014a",twitter_handle:"alesander97"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/046c6869-0627-4825-8ecf-45ff0aed97b6.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/5e4a506b-0534-4217-b682-b568f6212b73/2b4c8ed5-a7cc-43df-95f1-0d75e2c886ab.mp3",node_type:"clip",pub_key:"",ref_id:"3ff527f0-04a4-4bb5-9279-87f48ac98da0",show_title:"Alexandria The Great 🌋⛏🇿🇼",text:"Yeah, I love that explanation. I think we can't really get rid of counterparty risk. But I do think that there are ways of minimizing it as much as possible. And when I look at all stable coins, I think the one stable coin that really stood out to me was dollar and chain for how it minimized the labor of counterparty risk by firstly making sure that everything was done by small contract or funds. Like Yoga said that everything can be you can look at all the amount of bitcoin that's backed on the exposure so you can verify everything. And then also the fact that it's backed by for 169, for example. Even. Though there's a dispute about how much that's relevant. But if you look at most of these other like you talked about Taylor for example where you first had counterparty risk when it comes to just who is keeping the funds with the UST where you don't know whether how much these guys have in the bank? The audit. The auditing and all that stuff. I see. So when you have a question, maybe you can dispute about what I'm saying. No, not at all. No, it's not related. I can go after it. You can go now. Sorry. I guess it is kind of related because with the dollar backstable coin there will always be risks. But when I'm using USBC, okay, it's very centralized. And yes, the risk is that my money could be frozen by the US government if they were to enforce that, which I believe they do in some cases, or at least on Tether. I'm not sure about USBC, but the point is that they could. But at least I know that there are dollars in a bank account. Or at least it's supposed to be. But with USDC, I believe it's more transparent. Right. I don't know, Max. I think maybe just when I read about the money on Shane, I was a little bit scary because there's so many tokens involved or maybe I don't understand it yet, but maybe there's something I'm missing and I'm hoping to learn. Yeah, I just wanted to agree with what you were saying, Alex, and at. That point, ",timestamp:"01:12:39-01:15:04",topics:["Bitcoin asset"],type:"twitter_space",weight:5.823068022727966},{boost:0,date:1675801804,description:"Hacker space opening in Italy similar to Bitcoin Park",episode_title:"CD87: Bitcoin Dev Kit with Steve, Daniela, Alekos, and ThunderBiscuit",guests:[{name:"ThunderBiscuit",profile_picture:"https://pbs.twimg.com/profile_images/1004180692794839040/qvYqY796_400x400.jpg",ref_id:"2932056a-dad7-4618-9c8d-d275b9f150d5",twitter_handle:"thunderB__"},{name:"Steve",profile_picture:"",ref_id:"8602c01d-a34f-426d-b143-581f25d3d3c8",twitter_handle:""},{name:"Daniela",profile_picture:"",ref_id:"7d011916-5300-4d32-a08b-fe4731bff5f2",twitter_handle:""},{name:"Alekos",profile_picture:"",ref_id:"9b7499d2-4c12-48c9-b8ed-614d09f0fdf2",twitter_handle:""}],hosts:[{name:"Matt Odell",profile_picture:"https://pbs.twimg.com/profile_images/1421584695746338819/Z_7ZfAeP_400x400.jpg",ref_id:"4f2825ff-3b88-4595-84d4-36e81544b79a",twitter_handle:"ODELL"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/a09a2c49-84f1-4d0b-b150-6e6103f4ee41.jpg",keyword:!0,link:"https://anchor.fm/s/45563e80/podcast/play/64675885/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-1-7%252F311592986-44100-2-a038b9bfbe62c.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"5458df9b-3a25-4e1e-b7a0-e14daaa8d66d",show_title:"Citadel Dispatch",text:"Speaking of communities, I'm going to self promote our dealers doing so. Daniel and I, we believe in Italy. We live in a small town Canon, near Milan called Brexit. Probably nobody has ever heard of it. We are bored when we're there. We just don't know what to do. So we decided to open kind of a bitcoin acrospace. Awesome. It's going to be super small compared to this. It's nothing compared to Bitcoin Park, but yeah, you got to start mall, I guess. Good goals to have that. So is it open yet? No. Right before leaving, we signed rent. Oh, congratulations. Yeah. So we found a spot in the city center. So cool. Like Italian. How far is it out of Milan? It's 1 hour by car. That's awesome. With trains, it's like 35 minutes. I love Milan. Milan is a great city. Yeah, I mean, yeah, we used to live there. It's it's good. It's also bad. Well, I'm a former New Yorker, so Milan feels like Italy meets New York. Yeah. Yeah. It's like it was very familiar to me. It wasn't like a tourist city. It was actually like I was there and people were going to work and things. Yeah. It was a big financial center of Italy, I guess. So, yeah. We're doing this thing hopefully in a couple of months, it's going to be ready and fully open. So if you come by Italy and. Europe, how do we find more information about it? Do you have a site or anything? Yeah, we have a website. The website is BS. It the place is called AK BS because BS is like the shortened version of Brexit of our city. Cool. Actually ACS, maybe I shouldn't say this because some listeners will come in and steal the domain for us, but Act PS is a valid DNS like domain. It's a Bahamas domain, but it costs like $500. So we can't afford it right now. Someone buy the domain for them. Yeah. And give it to us, please. So we have the Aces it domain, which was much cheaper. Yeah. We have a Twitter profile which is ACBS with the four in place of the year. Is that ACK. Like a meaning like acre? Because it's an accurate space. Yeah. And I think it's going to be where we want it to be. A bitcoin like physical place. Probably going to be more of a cipher punk. So we're trying to open it a little bit more. Yeah, not the sheet coins, obviously. Greater open source. But yeah, greater open source kind of environment. Because in that small town, there are not that many bitcoin. So if you just open a bitcoin space, I think what is going to come instead if we open a space, which is more of a basically where we teach about privacy, about freedom, about technology. Kind of like a CPB. Exactly. That's one of the big that's one of the big inspiration. 3D printing. Yeah. We're going to have a lot of non software stuff. So I want to have like 3D printers, CNC machines. That's awesome. But also like art and things like that. I didn't know. Yeah, that would be great. There's only one designer and we don't have any two of them. One of the things, we're not artists. We have art all over because you empower the local artists. We have walls. Yeah, that's what we want to do. Apparently policy is full of awesome art because I think at some point they managed to onboard the artist. So I hope we're going to be able to do that as well. To onboard people that are more of an artistic style than us. And they'll make paintings for us. You're first thing to go up on the wall, which is from here in Nashville. The Spiral guys took us out on a little team building exercise. We went shooting. Shooting automatic weapons and handguns. Love it. And sniper rifle. In an old movie theater. In an old movie theater. So anybody in Nashville here? I recommend going checking it out, but they let us keep the target from one of the from the sniper rifle stuff. So we got yeah, that's going to. Be the first part for that. Because in Italy, guns are like, I don't know, maybe for American people listening to these, they think, oh, California, nobody can get a gun in Italy is like worse than that. Nobody really? California is very easy to get a gun in comparison to Italy. Yeah, it's like in Europe in general, probably nobody has ever seen a gun. Basically. I'm glad you got to experience our local pastime. Yeah, I know. That's great. Super fun. You can train us in building Bitcoin wallets and we'll train you how to use them. Yeah, I know. It's super useful skill, actually. I mean, it's fun. But it was also interesting for me because I'm like, maybe in the future I'll need to shoot a gun. So it's a useful skill to have to defend yourself. And going back to the hackers conversation about yeah, not talking about people not taking personal feelings, that big thing. People don't have guns because they don't take responsibility for their own life, basically. And you're saying, too, it's a whole other technical rabbit hole to fall down, too, like how the guns work, how to maintain them. We didn't do that this week. But it's another protect. People know about those other things too. But to the hacker space, I mean, that is awesome. And I love seeing all the different spaces, physical spaces opening up. And one of the cool things with Bitcoin Park is like, a lot of people come here and then go back home and then they launch something back home. Everyone's just like, how do I do this in my city? Well, at the scale of Bitcoin Park, you do it by losing a ton of money. So I don't suggest that, but start small. Physical spaces are really important. And I'm happy if you guys need any feedback or anything like that, we're happy to help. And we're already talking about like I said, he was kind of helping us look at the coffee machine yesterday. Just but technological trading back and forth too. Like, alicos has a bunch of great ideas and Danielle like great ideas for hackerspace stuff that, hey, maybe that's kind of stuff we want to do here at Bitcoin Park. And some of the ways we've got some of the things we've set up here, the art and all those things, it might be taken back home. So, yeah, I feel like there's not so much of the practical side of building things. This is like a great off if they don't have 3D printers and stuff like that, which is something we really want to have tools. And you can I would love to. Have 3D printers here too. There's going to be a lot of cross pollination between all 100% oriented community. And it's very grassroots. It's very like bitcoin. It's inherently distributed. It's not like one group is doing it. You go back where you live and then you open one. I think for us, yeah, the main inspiration was parallel in palace because it's super cool. And again, also the same with us. Here was parallel palace. Yeah. We just made it easier to pronounce. Other places. Great. So, again, we're going to be like nothing compared to them. But that's, I guess, how you start. You can go up. At some point, we'll be reaching out to get a proper place. I'm already so hyped because we've done like a notion page with all the events we want to do and all the projects we want to work on. And there's just so much stuff. We're just like we're going to have game night and bitcoin night and movie night, where we show The Matrix and other films that might help people to just understand the, I don't know, like, psychopath point of view. And then we have so many projects we want to work on, like, I don't know, fridge, which you can be with Lightning and then you open it and you take whatever you want it to buy. Like a self service bar. Exactly, yeah. Because, again, I think the problem for us is going to be there are not that many bitcoins, so we have to be open to tech people in general, to people who build this. But it also will click to them. It'll click to them if they make their first bitcoin payment, actually just using bitcoin, even if it's the shittiest wallet. Buying a beer at your little bar with Lightning or with bitcoin. There's so many people that come here. It's the first time ever using bitcoin and maybe they've been in the space for like four years, three years, and they just never actually used it to buy something. They have this thing called the Blessed One One, which is an ATM, like a really small one, which accepts coin. So basically, people just I don't know, they take out their coins that's good pockets and they just buy one. Europe change. You put it in and you get SAS and Lightning and then you can. Buy them how to set up a wallet. Yeah. Great workshops. A thing. You guys did mention it before, but they do if anybody wants to support what's going on there. In Russia, they've got a BBDC Pay server where you can how do we get there? Donation page. Yeah, on the website. And it should be like a donation. On the front page, I think a link to it. Yeah. In the menu, I think, above. Great website. We're also on Geyser. That's fun. Yeah, but we don't have our own license. Yeah, we do have only address. Sorry, so what are you using, like a Lightning address with them? I didn't know they set up something for us. But they take a fee because we don't have L and D notes and they just pay service. Best approach? I'm looking at it. It looks great. 10,000 euro soft cap goal. Yeah. I mean, that's kind of a random goal. We're going to open the place anyway, so it's not like we need to reach a goal to open it. We're going to open it anyway. And we're going to start super small. Right now we're looking for a used furniture. Like we're looking for a desk that we can get it for $20 or something like that. Yeah, if you're going to buy chairs, we're going to buy used chairs because yeah, absolutely. Yeah. We don't have a specific goal in mind, but whatever we can get, obviously it's going to go towards ",timestamp:"01:06:35-01:16:24",topics:["Bitcoin Park"],type:"podcast",weight:46.10662364780383},{boost:0,date:null,description:"Bitcoin Standard is encouraging value for value system",episode_title:"The Orange Sun 🌞 VISA, MasterCard & #Bitcoin #BOLT12",guests:[{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"~₿ Maxi~",profile_picture:"https://pbs.twimg.com/profile_images/1446241859651637250/i67F3y9p_400x400.jpg",ref_id:"ad997ae7-0726-431a-9f72-82da091c0658",twitter_handle:"fede0891"},{name:"TK☣️Ph.Ple₿",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"9e3ffa2c-9410-48e9-a726-8312c0abcd7c",twitter_handle:"ToxiKat27"},{name:"FireBurs†s",profile_picture:"https://pbs.twimg.com/profile_images/1517827165198458880/N79Wpx85_400x400.jpg",ref_id:"cda1d3ad-dd80-458b-a5fb-a28861df10a7",twitter_handle:"FireBursts"},{name:"Nikolai Tjongarero",profile_picture:"https://pbs.twimg.com/profile_images/1578458155964682274/_SzDxkAJ_400x400.jpg",ref_id:"821ee040-2267-454e-a59a-92da51568afa",twitter_handle:"BitcoinNaijaShw"},{name:"ブランドン",profile_picture:"https://pbs.twimg.com/profile_images/834861311762649090/N0KAP4zH_400x400.jpg",ref_id:"3d41531d-6a59-4771-81f9-0924b4c02561",twitter_handle:"blario"}],hosts:[{name:"Satoshi’s Journal",profile_picture:"https://pbs.twimg.com/profile_images/1598641632601047042/qrZMP5Oy_400x400.jpg",ref_id:"d977ed11-09b0-4143-828d-582ecb8b58ca",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/94a86a32-91c2-4717-b5cb-b36cef925776/38decc02-c922-4c1d-a605-7cd54c91a01d.mp3",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"5483d49e-fa1a-430c-9d2a-ed11e3a6beec",show_title:"Satoshi’s Journal",text:"I implore you to check out and have this website on your desktop or on your phone. I literally have it on my phone and I click them every morning for the show. Super helpful. They're free. TC is going to be making it open source, so we think it's good now, but there's going to be a lot of people that can make it better once he makes it open source. Timechainstats.com, I don't think is open source, that is Aunt's Baby. So he just updates it as plebs, give him inspiration or constructive criticism. He makes it better. So check out both of those soon to be on our website. And then lastly, most importantly, the subject today inspired by Master Guanti was just bitcoinners are charitable. We could probably talk about this for many, many more hours in 2 hours, but I think that the biggest thing that I've seen in the bitcoin space with bitcoinners is I haven't met one bitcoin that's not charitable. They want to help people, they're selfless. And I think bitcoin is a reflection of what the future is going to be. Because when your time is denominated by a money that is actually representative of your value, I think you'll be more happier. You'd be happier. Sorry. And you'll actually be able to help people because you'll have money that is not inflating away faster than you can create it or you can make it. And so I think right now we're seeing a small iteration of living under a bitcoin standard. So bitcoinners are trying to help each other everyday on spaces, even just taking time out of their day just to create a new tool. Like we just talked about timechainstats.com and timechain. Sorry. Timechainstats.com and timechaincollender.com. Those two tools were created by two individuals. Timechainstattsk.com has been in the works for over two years if I'm not mistaken. I think when I first got spaces, Ant was working on it and he's still been working on it and revamping it and making it that much better. I mean, he's not getting paid to do that, he's just providing a tool and it's a very helpful tool. And now you got time train calendar, same thing. TC is not getting paid for it, but he's created it. So I know that TC has a donate button, so if you have a chance to send him some stats, please do. I'm trying to find it now, actually. So if you go to the app, I think it's under, let's see, where is it? Oh, so if you click the settings button and then you go to contact, you can find it. It says, donate me a beer or cup of coffee. Cheers. So I clicked his donate button and while I'm here, I'll just send him $10 here. Okay, copy. And just go to Strike and $10. All right, so, yeah, you can simply do that. It took me just a few seconds, but at North, TC expect tips. No bitcoin, really expects tips. They give the option of tips, but, I mean, it's like freaking twisting a Bitcoinner's arm to be able to send them tips. Like, no one wants to get tipped. I mean, they do, but they don't like they feel like they're what's it called? They don't want to bother people. So, yeah, just tip those people that you respect their time and the value that they bring on a value to value basis. I think that's the future. It's funny because we should have already been living a value for value basis, where you provide value and you get whatever your value is in return. But Fiat has broken that system, but now we're living it. We're seeing it through our fellow pubs. They provide value and we provide. So, for instance, the videos that we've been doing with Wicked, those aren't free. He charges us a certain amount and I'm willing to pay him that amount because the value that his videos provide you all and me, obviously, is a function of how many views we get. So one video got 570,000 views. Apparently that was valuable. The current one is 15,700 views. Apparently that's valuable. So I will continue to provide monetary money to those people that provide value to me and vice versa. So that's just the way it should work, and that's how the future is going to be. ",timestamp:"00:29:58-00:35:57",topics:["Bitcoin Standard","Bitcoin Tools"],type:"twitter_space",weight:5.705638647079468},{boost:0,date:null,description:"Seed phrase metal backups - seed phrase stamping systems",episode_title:"#Bitcoin Self Custody Q&A Episode 15",guests:[{name:"@ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"29e1a1c3-1dbe-4ab2-955d-8a7a7476996b",twitter_handle:"ToxiKat27"},{name:"@Lil_WhiTe_Boi19",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"c737d37a-be78-4bd1-823a-04d569aefcfe",twitter_handle:"w_s_bitcoin"},{name:"@Tarek_Z_Saad",profile_picture:"https://pbs.twimg.com/profile_images/1598082570931130374/aiUPJ1HC_400x400.jpg",ref_id:"16091cbf-d110-4299-af6e-84ecd0429d59",twitter_handle:"Tarek_Z_Saad"},{name:"@BeyondBlu3",profile_picture:"https://pbs.twimg.com/profile_images/1577513247107842050/JCDgPikZ_400x400.jpg",ref_id:"0be89e9a-6e96-4241-8ee8-cdebf9b134b1",twitter_handle:"BeyondBlu3"},{name:"@life2_one",profile_picture:"",ref_id:"d2a45191-e863-4e56-8a05-08afdff7f421",twitter_handle:""},{name:"@KahnsMichel",profile_picture:"",ref_id:"937fcaa9-4b73-4fbe-ada4-b40720644a1d",twitter_handle:"kahnsmichel"},{name:"@Jimmy14624",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"73c17ab8-ce99-4c87-ba45-3334c255c97b",twitter_handle:"w_s_bitcoin"},{name:"@SovereignHRZN",profile_picture:"https://pbs.twimg.com/profile_images/1604168916300873731/mLszGVm6_400x400.jpg",ref_id:"2811a110-d1cc-4a2d-bead-59b4e1805817",twitter_handle:"SovereignHRZN"},{name:"@XpatSantiago",profile_picture:"https://pbs.twimg.com/profile_images/1599096281493778433/qeSvcIuj_400x400.jpg",ref_id:"bca4859c-3c8b-42c2-a0ee-86eb581f4078",twitter_handle:"XpatSantiago"},{name:"@MrHodl",profile_picture:"https://pbs.twimg.com/profile_images/1570497262735728640/q5ZDJFKz_400x400.jpg",ref_id:"8abfce7f-a49d-49f9-8bab-6861e41910d5",twitter_handle:"MrHodl"},{name:"@bankhatin",profile_picture:"https://pbs.twimg.com/profile_images/1596672372744019969/prxTKz_7_400x400.jpg",ref_id:"c4af2875-19ec-4439-85da-4ff34ae397fe",twitter_handle:"bankhatin"}],hosts:[{name:"Wicked Smart Bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"6bbf5f18-35e4-4ad0-aade-dbd493b1f4eb",twitter_handle:"w_s_bitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4127f08c-505a-4a7d-935f-e93e87204089.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/58879b11-db25-4b12-b182-960933e015e9/df9bdaae-4143-4873-baa6-dd7e56407c6f.mp3",node_type:"clip",pub_key:"02814a5050f43a36bb052c7a3f22f0e86700abe037a44d99b45e0cb424d9398cbf",ref_id:"d9edac8b-8349-4e52-b61e-a22ef687f4f3",show_title:"Wicked Smart Bitcoin ∞/21M",text:"Hey, guys, I just had a quick thing. Ed, you were talking about stamping it in metal, and I bought a buddy of mine's house burned down and he left his chain in there and it was just a pile of melted. So the titanium thing is definitely for the heat, you know what I mean? I don't know what temperatures the other metals go out at, but there was some left of the metal. Yeah, there was a pile. Has a video of all the hardware, all the metal devices with. He went through, he stressed us. He took molten, basically fire. He was shot at with the AK 47. He did all sorts of tests and I'm not sure, I don't remember the exact results for each one of those titanium plates, but it's there. So if you go on Twitter and you look up Loft and you look up some of these metal backups, there's a video out there with him doing all these tests. And yeah, they're not all created equal 100%. Yeah, I think it's changed. Mostly made out of copper, I don't even know. Or nickel. Those are metals that have a much lower melting point than steel and titanium, obviously. Titanium has probably one of the highest ones, right? Titanium. You can literally drop it in a volcano and it won't melt in the lava. Not that it matters, but like yeah, in a house fire, I think as long as you have it stamped in steel or titanium, like, it will survive the fire, right? Whether it will survive a shot from AK 47, that's another question. I'm not that paranoid. I'm not getting shot at enough to really care about that. Fire gets hot, man. It made a Toyota into a pile of metal also, you know what I mean? So it's hot. I'd stick with titanium if I was going to stamp anything on, anything. But yeah, I will say I myself use titanium plates, as I said before. And there are some benefits to that one is that it's a lighter metal, so it's easier to just fucking store. You have a big pile of them. It's not going to be heavy. That doesn't really matter too much to most people. That's one, though, it's kind of nice. And then it's also stronger. So like, it doesn't bend as easy if you've got a thin sheet of it. Because the ones I use are like pretty thin little cards. They don't bend. But if you're using kind of a thin version made out of steel, it would start to bend and warp. That can be a little bit more of a concern if you're worried about the plate, like bending in a way that could fuck up the lettering or something. And then of course, the biggest benefit in my mind is like, it's just got a higher melting point. But all that being said, it is harder to stamp into. So you have to really put some fucking muscle into it when you're stamping these things, right? And I've posted videos of like not videos, but pictures of the hammer I use when I stamp these things. It's probably not the best hammer for doing it, honestly, because it's like a jewelry hammer made out of copper. But man, this thing is fucked. It's just totally warped where I actually hit it because you have to hit it really hard to imprint the lettering in titanium. So definitely it requires some proof of work if you want to use titanium plates, you know what I'm saying? Yeah, one more thing I just wanted to add real quick and I'm done. You guys say don't use your names in your seed freeze. Is that even common names in your past phrase in your past race? Okay, I thought it wouldn't generate a name, right? No. If you're curious about what words are in the seed phrase, you can look up bit 39 word list and you'll see it's a list of 2048 words. Each one has a unique starting four letters, right? So you only need the first four letters of each word. That's a little known secret, but like if you're stamping them in titanium, you're going to save yourself a lot of effort and a lot of time if you just stamp the first four letters because that's all you need. There's a little bit of alpha. And then in terms of your passphrase, that can be anything you want. So that can be any characters, upper, lower case numbers, spaces, literally anything you want can be that passphrase. Now, of course, the more crazy and complicated you make it, the more responsible you have to be when you are backing it up or writing it down or memorizing it or whatever. Right? So there's a trade off there. The trade off is you can make it really complicated, just like how you can make a password on your bank account really complicated. But if you forget it, then you lose all your bitcoin. So you just have to make sure your backups of it are done really well. Don't fuck that shit up because it's really hard to recover your funds once you forget your passphrase or are uncertain if like, oh, did I make all these characters some of these capitalized, or did I put a space there? Or did I use an underscore or that these types of things, just like a password. It gets really fucking risky once you start throwing in a bunch of random shit, and then you just have to make sure that he backed it up really good. You know what I'm saying? Yes. All right, let's go to whoever had their hand up first, wasn't paying attention. I just want to tell everybody, if you need something like this, I mean, steel crypto, you can just look, I'm sorry. It's written Sierra, Echo, Echo, Delta, October, Romeo. And they also got pretty cool videos on YouTube. And it's very small, and you can hide it in the door, or you can make a hole in the wall and hide it there. It's pretty cool. And it's about $150, and it's with hammer and stems, and it's made in Germany, stainless steel. I just want to let you know it's pretty good because it's not so big like a card. That's the difference. Because if you want to go out with it, I think a card can be pretty hard in your pocket, and it's just like a roll. It's like coins you stem. Yeah. So there's a bunch of options. There's a bunch of companies who are now starting to make different options for this, and there's a bunch of good options for me, myself. A lot of these options are getting pretty expensive, right? $150 for, like, a metal backup is in my mind, that's too expensive. I'm not going to spend that kind of money, especially since one thing I'm doing is I'm helping a lot of my friends and family kind of get their seed phrases stamped, whether I'm doing it for them or whether I help them do it. Obviously, if I do it for them, they have to trust me. But it's better than them fucking keeping their bitcoin on exchanges. So I do what I got to do. And because I'm doing kind of a lot, I'm like dozens or whatever, I've kind of made my own DIY system, stamping system, and each of the titanium honestly, each of my titanium plates runs me about $2.50 a pop. I've got it down. I've got my price down per se stamp. So I can't imagine paying, like, $100 just for one or two set ups, you know what I'm saying? I'm sure it's nice if you have. A good passphrase, you can make many backups, and you can spread them out. Seat race. A metal plate is nice if your house gets burned. But if you have a backup of your seed in your mother in law's house and your grandmother's house and your cousin's house, and in a bank account or in safety deposit box, if your house burns down and your seed burns down with it, well, you have four or five other backups in different locations. And as long as your password is good, that's the main thing. I try to, like, hammer home is that your passphrase has to be as long as your seat. Those first four letters of those words, that's how long it has to be for it to be as secure as the seat itself. So I personally have yeah, I have it. I bought Crypto Stealing a long time ago. I don't really think I ever used it because I just have so many backups laying around different locations. So I don't have that signal point of failure. So, yeah, it really depends on how you're set up. Also, if you're mostly safe then you don't really have to worry about any of them. Yeah, that's a whole nother can of worms, which always gets brought up. And I love talking about multi saga as well. I think it's pretty interesting setup configuration. The other one that a lot of people use is like you can 3D print or buy for like 510 bucks the the stamping guide for stamping steel washers, you know, and that's one that a lot of people use too. You just get yourself a bunch of cheap stainless steel washers. You stamp the first four letters in each one and then you bolt them all together. Make sure you bolt them in the right order, of course, but that's like a good economical way of doing things too. If you're trying to back things up a little bit cheaper. You don't want to break the bank for a dopeass stamping system. I will say, man, like the fucking what was that company that made the titanium ones, like the Thor, whatever comes with the hammer and it's like $300. I was envious of that stamping system and that's ultimately what got me to just do the DIY myself. Because if you look at my setup, I designed and 3D printed my own stamping guide. And if you look at it, it's like kind of pretty similar to what they had. But yeah, I mean, peach their own. Anyway, the whole point is back up your fucking seafarers. Don't rely on don't rely on your device holding that for you. Whether you're holding it on a hot wallet in your phone or whether you're holding it on a signing device, you got to have backups because there's no guarantee that your phone's going to be with you forever. You might lose it, the app might stop working, your signing device might break, you might burn in a fire. You guys have to have these things backed up. So either back them up on a piece of metal and store that somewhere safe or back it up in multiple places with a pass raise on top for that extra security. There's many different options, but you just have to make sure that whatever option you choose works for you and is secure. Go ahead, Sovereign. Yeah, I just want to comment on the price point of steel plates. I have been looking around a little bit. It looks like to me the best bang for your buck if you're going to go with steel is keystone. It's like exactly the same as biddle fabulous. And it's $49 and they also have $39 option and it's yeah, like using $100 or more for steel plate is just ridiculous. I know everybody loves to kill the bill fuddle, but come on man, it's not worth that price. So yeah, that's what I would recommend. Check out keystone. I know, I'm getting a couple of those from myself. Yeah, there's options for everyone at every price point I think. Yeah, I've got some poor friends and I'm just like buy some fucking washers and just get yourself a cheap stamping system off Amazon for like $20 or whatever and go wild. Because the other thing about these seed phrase stamping systems is you're not going to keep that seed phrase for your whole life, let's be honest. Most likely, most likely you're going to cycle through a few kind of throughout your time in Bitcoin, right? You're going to figure out a new way to set it up or you're going to want to just kind of make a new one just to make sure you're up to speed on everything. Maybe you will keep the same one your whole fucking life, I don't know. But in my experience I haven't. I kind of cycle through them every once in a while just to kind of keep things fresh. And so if you're spending fifty dollars to one hundred dollars on a brand new seed plate backup every single time you create a new seed phrase, I can get expensive real quick. So finding yourself an economical way of doing that might help out the other thing with these keystone. So here I'm looking at the link that you just sent in the nest. One thing I don't like about these things, these keystone tablets is if they ever get damaged, if they get warped and then those little letters pop out, then you're fucked. Right? Yeah. That's why they made the plus one because the cheaper one for 39, they had one slot for four letters but now they've updated it to the plus, which is like 49 instead of 39. And now they actually have one individual slot per letter and also like 20 more screws or something. So it should be better. But yeah, they can be worse. But for a multi sake set up, I wouldn't be worried. Okay, got it. Okay, I see here. It looks cool for sure. I've just seen some reviews. Like I haven't tried it myself yet, but it looks for the price point, I would rather get two of these than a bill model to be honest. Yeah, cool. Yeah, good stuff. All right. Well yeah, I think we kind of beat that to death. I just want to show you because I think not everybody got the knowledge as you post. I just want to make it everybody as easy as possible. So I just want to think to everybody, you know what I mean? I mean somebody get, I don't know, thirty k a month so he don't give a fuck about the cost. So that's a fiat world. It's so crazy and insane. ",timestamp:"01:23:06-01:39:40",topics:["Titanium seed phrase plates","Seedor","keystone","titanium"],type:"twitter_space",weight:5.703676700592041},{boost:0,date:1676083645,description:"Lessons from previous Bitcoin soft forks on Bitcoin",episode_title:"BR023 - OP_VAULT for Bitcoin Covenants Panel ft. James O'Beirne, Rijndael, Antoine Poinsot & Carman",guests:[{name:"Carman",profile_picture:"https://pbs.twimg.com/profile_images/1609775498971725824/5vyAafE3_400x400.jpg",ref_id:"09405d70-6fa6-4f2c-92f1-a2951ad56447",twitter_handle:"benthecarman"},{name:"Antoine Poinsot",profile_picture:"https://pbs.twimg.com/profile_images/1108377445936316423/ArRDGbr5_400x400.jpg",ref_id:"1ba10809-b3e6-4e37-a906-697a0368b814",twitter_handle:"darosior"},{name:"Rijndael",profile_picture:"https://pbs.twimg.com/profile_images/1542705395873058817/0zsy4Yur_400x400.jpg",ref_id:"861d5324-8ede-4059-826f-f29abca5d7e6",twitter_handle:"rot13maxi"},{name:"James O'Beirne",profile_picture:"https://pbs.twimg.com/profile_images/1542173995650408450/iDxrdmuj_400x400.jpg",ref_id:"e8e48fcf-9e54-4c66-9b20-aacf5c5b504e",twitter_handle:"jamesob"}],hosts:[{name:"NVK",profile_picture:"https://pbs.twimg.com/profile_images/608402052247658497/ENDv0BNd_400x400.png",ref_id:"d754e29b-2d3e-4280-8d72-f41d2a465a78",twitter_handle:"Coinkite"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f1879df9-9bc6-4a76-951f-24548da768ef.jpg",keyword:!0,link:"https://anchor.fm/s/9500fad8/podcast/play/64850866/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-1-11%252Fc53436f3-e1a6-2cae-eecb-fb61b06f804d.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"1510e150-aee2-42cb-ac57-79b4997bb6cb",show_title:"Bitcoin.Review Podcast with NVK & Guests",text:"Well, another thing that is a relatively recent development is I think AJ set up Bitcoin inquisition, which is let's proactively merge different software proposals into a Cignet so that people can play with them on a shared network. And so, unlike some of the more ambiguous ambitious big change proposals, because Op Vault is really targeted at a very specific shape of use cases, maybe there's an easier path here of it ends up on something like Bitcoin acquisition. People can build little dummy wallets and normal users can get a little bit of stick time playing with okay, what would custody in a post Op Vault world look like? And demonstrate that this is better. And so even if you don't know whether or not the mechanic is trying to screw you, you can at least kind of take it for a test drive first. There might be some stuff like that where it's less about how do we go and win the rhetorical fight on reddit and it's more about what can we do to incrementally derisk the proposal so that the community understands what they're signing up for. I mean, there was a lot of that at Tap Root, right? There was a lot of sort of working groups and things like that, but Tap Root still felt pretty rammed through. Optech did a workshop on tap root, I think, two years before activation. So you could write code and watch videos about tapirt, but people still felt like it was sprung on them. Tap root is just so hard. It's so hard to get. Until very recently, didn't I feel like, fully understand Tap root for this proposal? I had to write a bunch of tests. It's all in taproot. And there were things that I just kind of didn't understand and I found it pretty difficult to get sort of valid taproot constructions. And I basically relied on sort of the example code that other people are written. So, again, I'm massively positive on taproot. I think it's awesome, but it was like, so difficult to get your arms around. Even as a deeply technical person, I. Wanted to address as well. You said that it was a small group of people, but why it's true is that it was a small group of people that cut it for tapris. I found that there was a lot of demand and the defense had a high bar. Well, there was a lot of demand, a decade of research. When did we start discussing milk rice scrapes? In 2012 or something? With raspberry? Yeah, yeah, years ago. So, yeah, a decade of research, a lot of involvement, and a lot of people in the community with the workshops, a lot of involvement with the activation. And maybe that's why as well, people are not happy with it because they were actually involved. I think Teprit did put a very not high bar, but reasonable community involvement and normal user involvement. Schneider is a similar thing. Like, people have been wanting schnor and bitcoin for years. See, like, the Schneider is funny that he brought that up. It's always been a concern of mine that what if acdsa is back door, right? And it's not revealed for a long time and there is no proof for acdsa. So the idea of, like and again, this is a fundamental change to bitcoin, right? Adding another crypto primitive is like crazy different, but just having a secondary fallback crypto primitive in bitcoin before we're big enough that state actors are going to that extent, right? It's pretty cool. Thanks. Antoine is stepping out. Appreciate it. But now we have this sort of like the fights have always been hard. Up return limit back in 2009, 2010 because people are concerned about the worst part of Dick butts and then you had say P two Sh was also a huge fight. The original block size changed from 32 megabytes to 1 know SegWit was a bamboozle of most people. People did not understand that the block size increased. I don't know, I just hope that this one is not part of the contention. Like we can find a path where like this is the gardening sale, not the construction sale. I think the point Ryan Dow made is so good. And what I love about the idea of people taking this for a test drive en masse with inquisition is like that gives technical people who maybe don't want to work on Core or don't have time to work on Core can't they can write tooling to kind of make this an easier process to be able to experiment with this stuff more easily. So I just love that idea. I think something keep in mind too, like MVK, you just went through all those different software from the original block size decrease to like stuff like segment tapri like you didn't mention like CLTV or CSV or like BIP 66 I think, or 68. Like there's tons of bits that are like we're soft fork that just like are just normal things that happened and no one cares because they're like simple small upgrades that are ",timestamp:"01:37:06-01:42:14",topics:["soft forks"],type:"podcast",weight:47.136215082032344},{boost:0,date:1601200800,description:"Politicians defunding the police which resulted in an increase in the rate of crime in Manhattan ",episode_title:"Orange Pill [OP7] - Bitcoin is Love",guests:[{name:" Abe Cambridge",profile_picture:"https://pbs.twimg.com/profile_images/1368910908282572802/MTMBCPZU_400x400.jpg",ref_id:"5eed11cc-94e5-4e17-b923-95183699f193",twitter_handle:"abecambridge"},{name:"Mitch Feierstein",profile_picture:"https://pbs.twimg.com/profile_images/2625988157/vky9cedsgb0mf3usbh3x_400x400.jpeg",ref_id:"f9a70e2b-f905-4c70-afcf-3ef7004b7cab",twitter_handle:"PlanetPonzi"},{name:" Alakanani Itireleng",profile_picture:"https://pbs.twimg.com/profile_images/1512849723283185673/MzgEELWq_400x400.jpg",ref_id:"bda1bc91-3acc-4dc7-82eb-03c70f63525f",twitter_handle:"bitcoinlady"}],hosts:[{name:"Max Keiser",profile_picture:"https://pbs.twimg.com/profile_images/1361873587582472195/y57DiTYX_400x400.jpg",ref_id:"743efd07-d194-4c74-8663-45c3b8646b8e",twitter_handle:"Maxkeiser"},{name:" Stacy Herbert",profile_picture:"https://pbs.twimg.com/profile_images/1546484196750905346/5WYPz-bc_400x400.jpg",ref_id:"4b6f90a8-8e0b-4f51-8995-431a30cf87f4",twitter_handle:"stacyherbert"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/afa24463-19f7-4875-b6f4-b261d1d6c648.jpg",keyword:!0,link:"https://www.buzzsprout.com/1263314/5617321-orange-pill-op7-bitcoin-is-love.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"5216f100-c7ac-4b62-91d8-e394f5a0d531",show_title:"Orange Pill Podcast",text:"kind of back to the 70s when I grew up here. But the crime is worse now. So it's a reflection of just complete lawlessness throughout. The police, obviously, have been defunded. So even if you wanted to, you know, the politicians said, defund the police if you don't defund the police. So they've taken away, what, half a billion dollars from their budget. And so the police aren't motivated to do anything. So the crime has skyrocketed here in Manhattan. It's very dangerous to walk around here. Is this a Larry David kind of is really dangerous. Oh, my God. Because I remember a little bit of the I'm sure Max remembers the 3000 murdered a year. Well, Mitch, you're saying that the streets are empty and I saw the videos and it looks really eerie, for sure. Only very occasionally are the streets that empty, so that's freaky. That's very freaky to have that day after day. So the crime where's the crime coming from? I've read some stories about it. So you have a lot more burglaries, I guess now. So people in the Upper East Side are complaining. So there's home invasions, there's burglaries. Is there a lot of crime with guns and knives, or is it mostly burglaries and muggings? Well, I think I think you have the whole gambit that you run. I mean, the murder rate is up close to 300%. Look, I was walking down the street and I was accosted. People tried to take my money. So I've been in the city my entire life when I was little, and I went in the wrong neighborhood. Not little, but younger. Still. Spiked the kids. Oh, my God. Yeah. I mean, I used to get beat up regularly, so I can tell when something bad is about to happen and when there are four guys that ask you for money and there's two in front of you and two behind you in the middle of the day in Midtown, there's nobody around. Something bad is going to happen. All right, so you're getting mugs, basically. There's a lot of muggings. You could get mugged any day now. Broad daylight. That's the new normal. It's the new normal. But I ran into the middle of the street because I'd rather take my chances of getting hit by a car or if one of them had a weapon or getting bashed in the skull. So I didn't get hit by a car, but a couple of cars jammed the brakes on, and the guys didn't chase me into the road, so I. Just took off meeting here on orange pill. One pill makes you smaller, and one pill makes you large. So you used to be a small person back in the walking around. Maybe that's why. Or maybe you're small now, and it feels like, you know how when you're tiny, everything feels bigger, but maybe the problem feels bigger because to me it seems like when I go to New York and I haven't been there in six months, but that it feels very sort of Disney compared to how it used to be. There was a kind of niceness about all the freaks and crazy people in New York City in the it's kind of lost that touch and maybe you need some more body slow. I mean, I remember Max's face like he hadn't been back to New York City in 1520 years and then seeing some people jet ski down the East River, like, how many corpses there's a. Lot of dead bodies in there. Why would you have a jet ski? Yeah, it's nuts now, though. But look, the police told me not to go out. I've got friends who work for the city, and they said, don't go out here at night. And I said, okay, great. But 11:00 at night four nights ago. I needed some ice cream bad. I was having an ice cream emergency. So what does one do? You walk to, of course, the CVS or the Dwayne Reid or whatever it is because they're open 24 hours and they sell ice cream. I walked in and the ice cream cabinet had locks across it. Have you ever gone in so far? And it said, Please ring the bell? I hit the bell and some guy comes like five minutes later and I said, You've got to be kidding me. You're locking up your ice cream? Are things that bad? He goes, oh, yes, they steal the ice cream regularly. They come and clean it out. I said, but isn't there anybody that sees it happening? He goes, no, we don't see it. And I said to him, I said, but the beer and the wine doesn't seem to be locked up. Wouldn't they steal that first? He goes, no, they steal the ice cream. I don't get it. That is definitely old school, where they had the plexiglass everywhere, at the bodega or at the grocery store. This was before you had big change like CVS coming in there. And of course, taxi drivers put up that plexiglass during the because of all the muggings that were going on. The subway system. We remember in the 70s as being all graffiti, all dilapidated crimes, boo, boxes. Have you been down the subway at all? Has it gone back to this state? I did try to take the subway during the day because I had a meeting down on Wall Street and it was empty. I took it and there was nobody on it. So it was fairly safe, fairly quick and painless, but nobody was on it. No graffiti going back to the 1970s. You know Tompkins Square Park in the East Village? It became an encampment. People were living there for months on end, became a nogo zone for police, and it was a drug open drug bazaar. Have we gotten to that stage? I don't think there's anybody here to participate in that. I think that if you look around on the street, it's like filled with homeless people and the people Bill de Blasio decided to let out of the prisons. So, I mean, that's the problem. I think he's let thousands of people out because of COVID, so coughing around, or they're out on the streets looking for somebody to rip off because they're convicted felons now that have been given a chance to come in and repopulate the city. That's why most of the people who live in Manhattan have left. I mean, most of the people who are here are gone. I went into my dry cleaner and he told me that the business is down 70% 70%. He goes, this is bad. And if you look, a lot of the shops are closed and they're never coming back. So if you think about that little video of Grand Central that I sent you and all the new buildings that have gone up, the real estate loans that are astronomic, there's so much space. They better get those printing presses on high here, I'm telling you. We kind of lost you a few times there, but I think everybody kind of gets the gist of it. But before we wrap this up, Mitch, I want to ask you one thing, of course, that we saw in the, as Max mentioned, Taxi Driver, the famous film, and the Times Square was the Deuce that was like the home of open air prostitution and drug dealing and all sorts of stuff like that. But we also had one thing we're missing in our economy these days, is the serial killer. I think most serial killers now, they used to be like in their thirty s and forty s. Most of them do school shootings and mass shootings at 20. Now, I think those same guys might have, you know, become serial killers back in the day. Do you think we might see the return of the serial killer to Manhattan? Because that's missing and we lost him. Well, it says my Internet is unstable. Did you get me back? You have me? Yeah, I see you. You're there? Oh, no, it's very unstable. You're a very stable genius, though. Mitch, what do you think about the serial killer missing from Manhattan? Are they going to return? I think that they are, but I think they've been reincarnated. I think there were 86 people arrested in Times Square last weekend with their peaceful protests. I guess that turned not so peaceful. So you're saying that serial killers have now become peaceful protesters? They've played antifa. Oh, my God. What about the squeegee man? Back in the 70s, everywhere you go, there's guys with squeegees who do your windshield for a dollar. Have you seen that come back yet? No, I haven't seen the squeegee men come back yet because I think people are too afraid with covet to open their windows. I mean, everybody here. This is the other thing here, petrified. And they've become a bunch of mask Nazis. It's like you have a mask on. What? You know, and they'll start screaming in the streets. If they catch people with no mask on, it's like, oh, my God, this is like the end of the world. Even if you're drinking some substance while walking down the street, you must have a mask on. So they got to figure out how to make the masks more permeable. Well, Mitch, I'm not totally convinced that you're not an alternative universe. Larry David, who stayed in New York and didn't go to Beverly Hills, there's a similarity between the two of you. I can imagine Larry David also getting in trouble with the mask Nazis, as you say. There you go. Well, I hope not. And look, I hope the city turns around but I don't see it happening, especially not with Mayor de Blasio in office. I mean, everybody's complaining about him. I don't think he's got one ally left in New York. I think he's alienated everybody. But I don't know if that's his plan, but I think he got to give New York City miss from now. On until I saw a statistic, something like 15,000 empty apartments. Is that number going to go up? Absolutely. There's plenty of stock out there that's empty. And who wants to rent a two bedroom apartment for $9,000 that you're going to have all the creature comforts and be able to have your meetings on Zoom. And no business is really transacted here. So all the apartments are pretty much cleared out. So I think they're going to have a problem, especially with the massive amount of new builds that they put up here that I've been railing about for years. There's not enough revenues to support that. And the tax revenues in the city have absolutely collapsed and they've cratered. So I don't know. We're going to have to have an economic reset or the planet Ponzi Ponzi scheme has finally exploded. But we're surviving on the fumes of Jerome Powell's quantitative easing. Infinity. But remember, you can never, ever Ponzi. Scheme, and that's a good place to end. And of course, do not worry about Manhattan real estate, because in the 70s, when they went bankrupt, not only did Donald Trump come to the rescue, because the federal government said what was the famous thing they said to Ford, said to Manhattan, shop dead. Well, don't worry, jerome Powell's got your back. And he's going to be buying up all those apartments in Manhattan and it's going to be fine because you can't taper a Ponzi. You can't taper a ponzi. Come on, dance. Boats on a Ponzi scheme. Everybody's getting ready. The boat's floating on Powell's ocean of money and we're all wearing Lays and all you can eat buffet at the FIA Ponzi scheme. Mitch yeah, all you can eat at the Warren Buffet. Yeah. Well, thanks a lot for joining us on Orangeville. Thanks for having me, guys. And be well. And I'll see you from London next time. Yeah, right. That'll ever happen? Is that the Curb Your Enthusiasm team music? It sounds like Barnum and Bailey circus on track. Oh, I don't know. Well, I don't know why, but every time we meet Mitch or whatever it is, say we go to dinner with him in Manhattan, it's like going to dinner with Larry David. Like chaos ensues. Right. Because there's always something that's wrong. Yeah. It's totally chaotic. Every time you're with them, suddenly the whole place is erupted in mad, chaotic scenes, for sure. Well, actually, I've got a New York City headline, and it does factor into this video, this viral video that we saw you of Max and Stacey, the twinning couple, responding and reacting to Jerome Powell's speech this past week. Well, there's the whole money printer go. The fact is you can't taper ponzi. But what's happened over the past few weeks and months is Jerome Powell has been trying to psych everybody out. Right? So in the spring, like April, May, they said they were going to buy all these junk bonds. And what happened? Junk bonds went soared, right? Like people went ballistic by piling in ordinary Robin Hoodters trying to buy junk bonds because they thought they were going to be like the hedge funds and frontrun the Fed. But no real hedge funds or private equity who have a private line to Jerome Powell did it because they knew Jerome Powell was going to step away from the market. And he did. But also, we see that the heart of the financial center of America, when they're just being sprayed with money and no real economic activity, we see just a total collapse happening in the real estate markets in America. And that's going to be, I guarantee you, within six to nine months, the taxpayer is going to start bailing out all of these REITs. This chart shows the number of turnstile entries, seated dining reservations, and how a popular New York City REIT is performing is, as far as I can tell, a darn good proxy of where New York City is heading. So we could just be mocking our friend Mitch Ferstein, who might, after he sees our reaction, like, not be our friend anymore. But the fact is he could be right? Because this is a collapse in all those, like, no activity on the New York subway, no activity at the restaurants, and the REITs are collapsing. This confirms what Mitch was reporting on his man on the street journalism citizen journalist. Mitch, this confirms what he was saying. Turnstyle entries. Right. This is a REIT. Right? Now, am I looking at this? Yeah, three lines there, and it's REIT turn style entries and food. You know, people sitting down for reservations at restaurants. Right. The ten day moving average. So it's up off the bottom, but it's still kind of scuttling around the bottom there so you can't sustain the economy. There's no V shape there. There's no V shape. It's an l. It's an L shape. And it's kind of an L heading, like an L heading slightly with a positive angular bias. But it's more L than anything else, which an L is for losing. Well, yeah, and part of the problem is you have the pandemic and the shutdown, which is restricting movement of humans around the earth. But you have things like this story out this past week with Finsen leaks, and New York City is one of the prime locations to launder your money. Right? So now Finn Send has to pretend to actually look at these SARS. What are the suspicious activity reports that they have to file? All bankers do it and to avoid any them getting fines or in trouble. So what. They do is they flood, like with all this paper money all over the place. They flood the Finsen, which is part of the treasury. The regulator is looking at money laundering. They flood them with these SARS. So they're looking at these suspicious activity reports and there's like tens of millions sent to the US treasury. And of course, what do they do? They've flooded with all of this money, these paper like reports, and nobody looks at them. It's just this vast, you know, kascis bureaucracy, because they just the banks just flood them like $10,000. That number was set, by the way, back in the 80s, so it's not that much money. And by the way, money launderers know you're doing that, right? So they instead buy Manhattan real estate or something like that. So we've had this situation now where the treasury and the regulators are overloaded with these pointless reports that just financially survey ordinary citizens and small business people and suppress commerce. Like they raise the cost of any commerce, right. It's more bureaucracy. Right. So bureaucracy gets in the way of commerce and it doesn't help anybody really stop the money laundering. Well, according to the Fence end report, no, the people who were now caught laundering and terrorist funding and the trillions, that didn't stop them whatsoever. Yeah. Well. Partly because what happens is if you have $5 billion that you've looted from an Eastern European nation. Right. What happens you go to your bank. One of these big major banks who. By the way. Helped write the money laundering laws so their lawyers can tell you exactly. For a fee of the 5 billion. We'll take a billion of your 5 billion and we'll launder it for you. And that's like a perfectly fine vig to pay, right? Anybody who wants to steal 5 billion, they're happy to give a billion of it over to somebody if they get away with 4 billion. These banks wrote the laws and they know exactly what they left out for their own clients, right? It's regulatory capture and it's gaming of the system. And there's a lot of humans involved. As I've explained on Wall Street before, the people who are responsible for regulation in the various offices are open to bribes. And that's true in every single layer of the financial stack that governs the American economy. ",timestamp:"00:16:08-00:34:28",topics:["Larry David"],type:"podcast",weight:5.601966619491577},{boost:0,date:1647061200,description:"[[Bitcoin Mining Incentives]]",episode_title:"WHY ARE WE BULLISH Kal Kassa Pierre Corbin Chris Smith Ben Gagnon ep243",guests:[{name:"Chris Smith",profile_picture:"https://pbs.twimg.com/profile_images/1248417464825724928/BjsozM7k_400x400.jpg",ref_id:"488a0f68-f24b-4d0b-9835-4b38a59f149e",twitter_handle:"chrissmithonair"},{name:"Ben Gagnon",profile_picture:"",ref_id:"d86128cb-056a-4233-bd95-cda98867f61c",twitter_handle:""},{name:"Pierre Corbin",profile_picture:"",ref_id:"a0a46e2e-1b24-4ce5-b34c-ca322067930a",twitter_handle:""},{name:"Kal Kassa",profile_picture:"https://pbs.twimg.com/profile_images/1515885093893681156/cpZcX_2q_400x400.jpg",ref_id:"5cf2cf3e-5cde-4426-b71f-f357195d40be",twitter_handle:"KalKassa"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/bbf0a536-990b-49b4-a9c3-a2a40fa38f88.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/48924119/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2022-2-12%2F253272604-44100-2-dac52f14aaffa.mp3",node_type:"clip",pub_key:"",ref_id:"f5449a66-a156-4b0a-abeb-6ff5e28434ac",show_title:"BTC Sessions",text:"sure. So what I find very interesting about mining and house developing is just the incentives that are there for miners. Right. So it incentivizes the whole energy market to just become more green. Right. So it will put big miners at the center of this energy shift that governments have been supposedly pushing for years and also put them down the road at the center of the money creation. Right. Because we, of course, believe in a world where Bitcoin will be in the middle. And that's, in fact, maybe a question to you, Ben, is it already happening and to what point or when do you think could happen? The shift of rather than miners looking for the cheap energy and contacting energy producers, turning to energy producers, contacting miners in order to stabilize the grid and be able to leverage this cheaper energy themselves. Is there already this shift happening? Is bid farms being contacted already, or when do you see this really growing? Because I think this is when the hash rates will potentially increase even more. Right. Once these big players themselves get into this. Yeah, it's a great point. The vertical integration with the energy industry is really key. If you're thinking long term about Bitcoin mining economics and reward having every four years, obviously, unless the price continues to outpace the network by a considerable amount, you're going to have compressed margins. Right. And margins that get continuously smaller over time. So you're going to need cheaper and cheaper sources of power. And that can only really come from monetizing that energy that nobody else is using. So the vertical integration is here. We've been curtailing at some of our farms in Quebec since I think 2018, maybe even 2017. And at the beginning of this year, the program was so successful over the past couple of years, it was implemented across the entire province at every single mine. Texas is doing the same things. They have all sorts of curtailment programs for Bitcoin miners. And so it's really starting to enter into the mainstream space. You'd be surprised how many oil and gas companies and energy companies, power plant companies are doing their own small mining projects and pilot projects. These are massive companies. They don't need to press release something so small. They can do this under the radar. They can get comfortable with it. And I think what they're all learning or have already learned is that Bitcoin mining should be seen as like a buyer of energy or a buyer of last resort for your energy. And so energy is very interesting market energy is very easily stored, but electricity is not. And so once you've converted it into electricity, it's the flow of electrons. You can't really put that Genie back in the bottle. So cost effectively. And Bitcoin mining is a way to maximize utility and get all that full financial value out of it, which is a boon for everybody. It will reduce our costs, it will increase their profitability. It will incentivize more production, more development, more power generation, which should lead to increasing levels of human flourishing all over the world. Every time there's increases in power development and energy utilization, you have huge increases in human flourishing. I think this is what Bitcoin mining is really incentivizing. That's awesome. I wanted to share ",timestamp:"01:04:37-01:08:18",topics:["bitcoin mining incentives"],type:"podcast",weight:5.523631239085138},{boost:0,date:1589889600,description:"Small business and the Fresh Start Commission",episode_title:"How to Address Regulations Suspended During the COVID-19 Crisis",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/da1bbdc0-4d0a-43ed-8345-ee43102db244.jpg",keyword:!0,link:"https://traffic.libsyn.com/secure/mercatuspolicydownload/MPD-038-PPIMCWebinar-v1.mp3?dest-id=655459",node_type:"clip",pub_key:"",ref_id:"55e562c3-41d2-4bfb-94d5-26ac7098ba2f",show_title:"Mercatus Policy Download",text:"All right, very good. Look, another question here. As we all know, small businesses have likely suffered disproportionately during this public health crisis. Are there specific actions governments could take through this commission to help them recover faster. Elliot, I'm going to send that to you first. Yeah. One that Michael and I have been discussing and talking about is business licensing. For instance, if a business's license expired during this coronavirus pandemic during the month that we've all been working from home, do they have to re register? Do they have to re up? Should governments deem them granted for a certain time after to allow them enough time to re register or lift the burden to allow them to reopen faster? Another one is digitizing government. A lot of how you create a business and how you file your taxes is still largely done by paper. One area where governments can improve that is by digitizing government moving that online to catch up in the digital age. All right, excellent. Does anybody else want to comment on that in the small businesses? But the whole point of this is actually to help small businesses by making sure that, as she states, localities and the federal government have the right attitude going forward, that they try to encourage the rebound and encourage the growth without actually getting in the way. Okay, very good. Our next question. Can I just add on one thing? I'm not sure I would quite agree that the whole point is to help small businesses. I think that's the effect, though. I think regulation inadvertently disproportionately harm small businesses. So to whatever degree they can be cut back when unnecessary, that's going to similarly disproportionately help small businesses. And you could target that. There's no reason not to think that a commission could focus on regulations that are harming small businesses more. For example, regulations that came out of DoddFrank. I think the intent of DoddFrank was to target larger financial operators, financial service providers, but a lot of smaller banks, a lot of smaller businesses got caught up as sort of collateral damage. ",timestamp:"00:20:54-00:23:11",topics:["small business","Fresh Start Commission"],type:"podcast",weight:5.479238152503967},{boost:0,date:null,description:"How to recover lost Bitcoin wallet",episode_title:"Café ₿: #Bitcoin Beginner Q&A",guests:[{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Stephan Livera",profile_picture:"https://pbs.twimg.com/profile_images/1362551718110580740/v-W5Q2uo_400x400.jpg",ref_id:"72f57157-c96e-4466-8bf1-290cfe1f8a0b",twitter_handle:"stephanlivera"},{name:"Thomas J Lake",profile_picture:"https://pbs.twimg.com/profile_images/1529168328534769670/5cl2Y_k-_400x400.jpg",ref_id:"21541a47-0601-447c-99c2-312d1a63c19f",twitter_handle:"thomaslake"},{name:"Goodguy",profile_picture:"https://pbs.twimg.com/profile_images/1363216959576285185/unulY4yd_400x400.jpg",ref_id:"0c3fec75-9cc2-4c0f-8dbe-db7fae2b585b",twitter_handle:"goodguybiker"}],hosts:[{name:"Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"49966553-d55b-44c9-94ec-8fee09eee5c2",twitter_handle:"CitizenBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/35b20273-49f2-45ea-a9f4-dc479d86573c/7ae5315f-beb2-41e2-b672-65dd1f102017.mp3",node_type:"clip",pub_key:"",ref_id:"df4ad67d-6316-4762-a7c5-884c162dd8a9",show_title:"Swan.com",text:"very short. Point and then something about this afternoon switch spaces. So you hear the expression programmable money. And someone once said it about bitcoin. Many people said bitcoin is programmable money. And now you hear about central bank digital currencies and you hear programmable money. What's the difference? The difference is bitcoin is money that's programmable by you for your purposes, to the extent that it's programmable CBDC is money that's not programmable by you but is programmable by the government so they can make it disappear from your wallet, they can make it expire, they can make it not able to purchase certain goods. Bitcoin, to the extent that it's programmable for you, is like you can spend it however you want, you can put whatever constraints you want on it being spent. So it's a difference of who's in charge. It makes a really big difference. The other point I want to make is if you can get that afternoon thing with Brady, Sam and Alex, I'm sure it's going to be amazing. They got really awesome topics on there which are going to talk about freedom, I'm sure. So if you can make time for it, do I unfortunately can't, but I'll be listening to the replay. All right, let's keep rolling with the questions we have up here. Chad d Wagner. Good morning. Hey, good morning, everybody. This is kind of a newbie question. I've been working on getting my coins off the exchanges and getting it into some hardware wallets. The question I've been kind of struggling with is, let's say I'm using the Moon wallet and for some reason Moon. Goes out of business or is taken. Off the app store, something like that. So am I able to take my. Keys and apply those to a different. App or a different wallet and recover. Those funds or how does that work? Yes. So the short answer is moon wallet. Even if Moon were to disappear tomorrow, there is a recovery tool, and that's publicly available on their GitHub. Now, Moon is a special case, just to be clear. So for listeners out there, most bitcoin wallets are operating on what's known as a typical seed word, the recovery phrase. Twelve or 24 words basis. That's what most wallets are working on. Moon is a special case because they use a descriptor wallet. Basically, it's a bit of a technical term, but they use a set up where it requires a little bit of a special way to recover if Moon were to go down. So what you would need is your written down, back up, and also the recovery kit. So in the middle button on the bottom on your Moon wallet, you'll see a tab called security. You click that in that backup, you'll see there's a three step process. The first step is the username and password, but you don't have to do that in this case, we're talking about if Moon wallet disappeared. And so that second and third step, that second step is you're writing down kind of like a passcode for a descriptor. And then that third piece is the recovery kit PDF. You would have to combine those two in order to be able to recover your coins. Now, Moon wallet have a recovery tool that you can run. And what you would do is you would create another wallet, generate a receive address, then run this Moon Wallet recovery process and input as part of that, the address that you want to receive all of your Moon Wallet coins into. I know it sounds a little bit complicated, but what we're talking about here is if Moon wallet were to totally disappear, the other case is if, let's say, you just lost this phone and you needed to recover it into another phone, then it's a simpler process, you could just basically use Moon and import an existing wallet. Are you following me there? Absolutely, yes. That would go for any of the apps or hardware wallets. As long as we have our keys, we can recover it somehow. Correct? But yeah, just note that there's a difference in Moon and most of the typical other wallets. That's just the key differences for you to understand. So, Chad, one of the important things I think to understand here is that when you're creating a wallet on a phone, you're using a persistently connected Internet device. So I would always consider apps that you make on a desktop, on a website, in a browser, or on a phone, what we call a hot wallet. And there's all sorts of terms we hear industry use warm wallets and secure wallets and all sorts of funny things. But if it's made on a website, in a plugin, in a browser, on your desktop, or in a phone, it's a hot wallet. And so what that means is there's potential that your private keys, when you're creating those 24 words, that information may have been accessed by no click malware that we know now exists, like Pegasus from the NSO group and all these other types of persistent issues, zero days that exist in a lot of the browsers right now. These attack surfaces that people are using to take that private information from people's plugins. So if you're looking to store your bitcoin for a long period of time, I would always encourage people to learn about and use something like a nano ledger or a cold card. These are physical devices that have something called a secure enclave. They have a special chip that does that 24 word creation offline and then hashes that information and sends it back out to the computer. So these are a superior way of doing this. We used to have to sync the bitcoin, blockchain up, and then disconnect from the Internet and create the wallets. And we had hundreds of different addresses. The benefit of using that stick is you can make hundreds of different bitcoin addresses and they can all be backed up by those same 24 words in a really easy to use, standardized way that you could put in any other hardware wallet. And lastly, I would encourage people not to digitize their 24 words, their twelve words. Anytime you can keep those things in written format, you can etch them into things like metal for redundancy from floods and fire. I think that's a much safer way. I would never store those things in a cloud or take photos of those things or print those things off again, because that takes a cold wallet created in an offline situation and it introduces online or potentially online devices to it. So even if your printer is not connected to the WiFi network, right, I would be wary of using that due to exploits and things like that. So writing these things down by hand and keeping them in multiple safe, redundant places I think is really important too. The Moon Wallet is great as a mobile wallet, like for taking money around, but I wouldn't leave money in it as a store value. Yes. Thank you. I've been experimenting with the Sparrow on. The computer side and then I got the Cold card. So I've just been playing around with everything and really enjoying it. Very cool. Yeah, that's great. So definitely once you're ready, get the Cold card set up. And what you can do is just as an example, test it out with a small amount and then practice, like as an example, spin up your Cold card, initialize it, and then if you're able to do the Micro SD card with Sparrow Wallet or Specter, then that's great. If not, if you're a beginner, just plug it in and you can use it just like that. And then you can practice sending a small amount of Bitcoin and you can even practice like, wiping the seed out of the Cold card and then recovering your twelve or 24 words by using the import existing feature on your Cold card. And so that can sort of help you prove it to yourself that, wow. Yes. With these twelve or 24 words, I can actually recover my coins. But if you want to do that, just obviously practice with a small amount, like $20, $50, something small. And then see, prove it to yourself in that way. Oh, wow. These same twelve words, it deterministically creates that same ",timestamp:"01:12:50-01:20:37",topics:["Programmable money","CBDC","Moonwallet","Bitcoin recovery","bitcoin"],type:"twitter_space",weight:5.435932159423828},{boost:0,date:1588968217,description:"Small intestinal bacterial overgrowth (SIBO)",episode_title:"Q&A: Kim & Dr Ken Berry",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/a8e3517b-b44d-4270-adaa-57587896b1e7.jpg",keyword:!0,link:"https://traffic.libsyn.com/secure/ketolifesupport/ketolifesupport-0033-q-and-a-with-dr-b_tc.mp3?dest-id=2479037",node_type:"clip",pub_key:"032d7609ff3f4a5232e4d60967971e23bc671dfb68020845a59bab5dc1f3b93b87",ref_id:"2bf2f8fe-9d2f-4d41-838d-787f2ca9734e",show_title:"Keto Life Support",text:"SIBO, small intestinal bacterial overgrowth. What do you think about this? Some people make a huge deal out of this and they want you to buy all kinds of supplements and prebiotic fiber. Honestly, in my experience, eating a real whole food ketogenic diet, you repopulate your small intestine with the bacteria that should be there, because even the name of it implies that there shouldn't be any bacteria in your small intestine, which is absolutely not true whatsoever. But what you do want is you want very docile, tame, nice bacteria to be in your small bowel and eating the proper human diet, whether it's carnivore or fatty meat, heavy keto is going to repopulate your entire body, your skin, under your arms, your growing, all your spots that might have an odor or have gas or have bloating. All that stuff is just going to get better when you stop feeding and promoting the bad bacteria. My understanding is SIBO is when because your lower intestine is supposed to have a lot more bacteria, a lot more aggressive bacteria, but SIBO is when it switches it up and somehow the angry lower intestinal bacteria get your small intestine and vice versa. Is that right? That's the theory, but I'm not sure if I agree with that 100%. I don't know that that's ever been proven. It's very hard to get a scope into the latter part of the small intestine. We can get an EGD down through the stomach into the first part of the duodenum, but you have to swallow the camera capsule to photograph the rest of the small intestine. But you can't get a scope there to take a biopsy. The only way to get a biopsy of like, your jazzunum or your ilium is to do surgery. There's literally no other way to do it yet. And so even if you do a colonoscopy, you can only go to the sea, come and see the ileocecal valve. You can't get into the ilium any length at all. So when you start talking definitively about the bacteria in the small intestine, my first question would be, how do you know what bacteria is there? Because if you haven't had abdominal surgery, then there's no way to know what bacteria is in your small intestine. So one thing that just my common sense nondoctor self seems to know, though, is a lot of people who identify with having SIBO, they eat fermentable foods and they suddenly look nine months pregnant. Yes, that bloating, I think probably is the most common complaint of SIBO and whether that's coming from inflammation or whether that's coming from and this would technically be an infection, because you're saying that bacteria from the large colon is invading the small colon and that would technically be an infection, whether it's either one keto or carnivore is going to fix that. And you know, Kim, we have multiple friends who are carnivores who have actually had their gut bacteria or their colon bacteria checked and they have a beautiful distribution of the proper bacteria in their colon. And therefore, if you have good bacteria in your colon, there's no bad bacteria going to get to your small bag. Right? So people are asking, how long will this take to resolve? And the good news is, carnivore are more of a lifestyle, so you have plenty of time, but I think they would like to discomfort sooner. So, do you have any tips? Yeah, so my experience in the clinic has been six to eight weeks of fatty meat, heavy keto or carnivore and you're going to be pretty much symptom free. And you got to remember, and so for some very few people, it's coffee. Coffee is what's causing the inflammation in the gut. Tea can do it as well. And so when I say beef, butter, eggs and bacon and water, that's what I mean, because if you do that and you're still drinking coffee and tea, then you don't know, especially if your symptoms get no better, then don't come at me and say, hey, I tried your diet and it didn't work because you're still drinking coffee and tea. And I love coffee and tea. I know that would suck. But at the same time, it also sucks to have these conditions we're talking about. And so each and every one of us gets to decide, do I want to do that or not. And so I'm just saying this is a viable logical option to try. And if you don't want to do it, then eat whatever and suffer the consequences. But if I have one of these conditions, I would think that I would do that. Now, one thing I have noticed is there do seem to be of the issues that people might have. Some people do have a sensitivity to eggs or especially egg whites. Do you think it might be worthwhile. To leave those also very rare. Not really. It's very rare. And so if you've done three to six weeks of the beef, butter, eggs and bacon and you're still having problems, then I would say let's leave out the egg whites and just eat the yolks and see what that does. But yeah, that would be about the only thing on that diet that could potentially cause a problem. And I'll tell you, Kim, I would predict if you had removed all those foods, even if you were in the past sensitive to egg whites, you would no longer be sensitive to the egg whites. So many people think that these food sensitivities are permanent and they're not permanent. They're not necessarily permanent. When your immune system calms down and stops being pissed off at the world, it tends to stop reacting to things that it used to react to. For example, back when I was eating crap, if I got within 100 yards of ragweed or cat dander, I would be this for two weeks, right? And now I could lay in a field of ragweed and pet dirty cats all day long and I might sneeze one time. So what happened there? Why am I no longer allergic to these things that literally used to put me in the bed? I had such an allergic reaction, my eyes would swell up. It's because my immune system is now able to discern me from nonme. And I think so many times when people are allergic to tree nuts, when they're allergic to things that are like completely ancestral, that's usually what's going on. And once they get all the inflammatory crap out of their diet, their immune system over the course of a month to three months will calm down and they can reintroduce those foods and they no longer are troubled with that. Got it. Someone asked ",timestamp:"00:19:40-00:26:23",topics:["SIBO","small intestine"],type:"podcast",weight:5.423373699188232},{boost:0,date:0,description:"Thoughts on the over all chapter and some favorite quotes",episode_title:"The Sovereign Individual - The End of Egalitarian Economics",guests:[{name:"chriskapilla",profile_picture:"https://pbs.twimg.com/profile_images/1362817539135463427/2AXUeFLV_400x400.jpg",ref_id:"9d495790-93f2-4d6c-b770-b2885f66859d",twitter_handle:"chriskapilla"},{name:"remydenton",profile_picture:"",ref_id:"5c5beb0c-c214-4f23-b79a-e71bf9368f2d",twitter_handle:""},{name:"JackRonaldi",profile_picture:"https://pbs.twimg.com/profile_images/1583261828628496384/IazkwYjk_400x400.jpg",ref_id:"01621476-f040-49dd-8160-4035228faf78",twitter_handle:"JackRonaldi"},{name:"AlistairZ80Aftw",profile_picture:"https://pbs.twimg.com/profile_images/1362882489895841795/gH2zix3l_400x400.jpg",ref_id:"3dcba197-47ca-40c0-857d-73cec4325801",twitter_handle:"AlistairZ80Aftw"},{name:"mattonbtc",profile_picture:"https://pbs.twimg.com/profile_images/1549459254280687618/jzdHJou3_400x400.jpg",ref_id:"998167d3-e036-4ef1-9a05-4f062903f0c5",twitter_handle:"mattonbtc"},{name:"wai_wairua",profile_picture:"https://pbs.twimg.com/profile_images/1536570699761848320/T10Owc60_400x400.jpg",ref_id:"c4d4ff36-73fa-4471-91ba-de0f99a49e99",twitter_handle:"wai_wairua"},{name:"UltraSolomon",profile_picture:"https://pbs.twimg.com/profile_images/1468332451055427601/YVgUuUHc_400x400.jpg",ref_id:"6371d519-cc98-4bf4-9f82-be17b1ea532a",twitter_handle:"UltraSolomon"}],hosts:[{name:"BTC_Venetians",profile_picture:"https://pbs.twimg.com/profile_images/1557482467539521537/Kel-eVww_400x400.jpg",ref_id:"a6313ca9-3869-4477-88ad-30172957edcf",twitter_handle:"BTC_Venetians"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/75ec86b1-cb6d-467f-a66e-5e642e5c126a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/c8cc9ec1-061d-4f53-a24b-ee43a56c7715/e650057e-2369-4e75-8119-4975a1fc4cac.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"946f1308-fffb-4aeb-89b2-68b043873ae2",show_title:"Bitcoin Venetians Book Club",text:"right, let's kick off with the first question. What did you think of the chapter overall and any favorite quotes? I think my first one first favorite quote was headline in there. The higher returns in poor areas on, well, 242 somewhere around there. Bitcoin City makes me think of that. El Salvador makes me think of that. This isn't a quote, but just as an idea. I love their little section about how Hollywood production companies work, being a template for future companies. That really made it more concrete what they were talking about. Yeah, I thought that was interesting, especially with the benefit of hindsight how we've seen simultaneously, like, megacorporations arise, but also the Internet has enabled the scale of business to be really small. All over Twitter, I see like Solopreneurs that are bringing in like tens of thousands, if not hundreds of thousands per month. And like they're just using all these different, like, lowtext tax all over the Internet to do their thing and by one person can just like, make a decent living that way. But then there's also a lot of other people that are just kind of stuck as wage slaves or whatever in the big corporations. Another quote I've got there is the genuine upsurgeon opportunity is almost inevitably accompanied by at least a brief surgeon inequality. And that seems to speak to people here. Dr. McCall would like that one, I think, but I don't see her here also regulations having a positive rather than negative market value. Or if Peter McCormack was here, he'd probably agree with that too. Well, I think that's quite interesting because it talks about sort of a marketplace for regulation so you can actually find out in an experimental sense which regulations are important for a good functioning society rather than just being as a means of extraction and coercion the regulations that you opt in if you're far more mobile globally. I actually saw an interesting post about this recently and it was kind of along the ideas of having a sunset clause for new laws saying that a new law should perhaps have a start and an end date, but also saying that similar to a scientific hypothesis or theory, that you make a new law and it says it's going to achieve XYZ and you measure against that and within a specific three year time frame or whatever is necessary. If it hasn't achieved that, then the law is revoked. And I thought that would be a very interesting way to do things. It's quite competitive if a few different countries were doing that against each other. Yeah, I love that. That's kind of like how product management works and startups. You make sure you have metrics that you're collecting to check what's the response to whatever you're trying to do and if the response is not what you want or what do you expect, you kind of pivot. You try something else. Which I think would be great if we can bring something like that to politics and lawmaking, you can just imagine. Sorry, go ahead. Sure. I was just going to say one of the really interesting parts of this chapter is talking about how there will be competition between jurisdictions in a way that there's not or there hasn't been previously and that that alone will sort of create this incentive to be more efficient in whatever format that takes. So jurisdictions can operate a little bit more like companies do today and less like just total monopolists as they are currently. Here is one quote that I did like. In the post industrial period jobs will be tasked to do, not something you have. Could you read that one more time? Sorry, yes. In the post industrial period, jobs will be tasks that you do, not something that you have. Do you think that's similar to how you have like bounties for coders? Do you think that's what the quote is getting at? I think that's exactly it, yes. I took from that that people won't have careers. Well, it depends on how you define career. I guess if a career was a succession of tasks that were related then it could still be a career but they wouldn't have permanent lifetime jobs. Yes, a career was a succession of tasks for a single wall employer or within the same part of an industry. Whereas the succession of tasks sounded a lot more like piece work or gig work in the modern part. Yeah, I think gig work is probably close. Yeah, I think we'd probably find out where it makes sense for something to be a salaried position where the benefits from that obviously they make the relationships, they have all that continuous local knowledge where that makes sense from an economic perspective and where actually it's just labor laws which are making that the case at the moment. And actually it would be far more efficient to farm it out on a piecemeal basis. I think that's an important point. I think the book maybe to keep it shorter doesn't go into the opposing argument as much, but I think anything where you're facing with people, it's probably useful to have kind of the same person in the role. But also like even I'm not a coder, but I would imagine that having the same person work on the same code base would be useful over a long period of time because they kind of know what's going on rather than having multiple people kind of going in there and doing piecework. As somebody who is a coder, I can completely agree with that. There's kind of this fallacy, I think that you can just replace one programmer with another when in reality it's not about the writing of the code, it's about the understanding of what's going on in the code which takes a lot of time to acquire and also kind of this ownership over what the code does. So, long story short, I agree that there are multiple industries and types of jobs where replacing people just willy nilly is probably not the best idea. I think I'll little bit on that with Remy because I'm also a coder. But open source, generally somebody in a corporate environment, it should be the same coder all the time or the same pair because that's where the corporate knowledge resides. But in open source you have so many different people looking at the same set of code, they do become a bit interchangeable and you do end up with documentation about how new people should approach a project. So it depends like most things. Yeah, great point. Did anyone get the sense that I don't know much about the authors, but they seem like they have libertarian tendencies. And it seems like that kind of comes out in the book to me, because some of the stuff that they talk about how the idea and the pursuit of equality as a goal is going to go away in this digital age. And I wonder how much of that is like they've come at that logically and how much of that is what they want because of a certain view of how things should work. A few episodes ago there was one of our number who posted a BBC interview on James Dell Davidson and Reese Mogg. I don't know if you heard that, but it gives you an awful lot of background. Very libertarian tendencies. Very libertarian tendencies. ",timestamp:"00:09:33-00:19:19",topics:["The Sovereign Individual - The End of Egalitarian Economics"],type:"twitter_space",weight:5.396452784538269},{boost:0,date:1636866e3,description:"[[Lightning]] and [[Bitcoin]] Have Actual Use Cases",episode_title:"WHY ARE WE BULLISH JoeyTweets Mario Gibney Bobby Shell Len ep215",guests:[{name:"Bobby Shell",profile_picture:"https://pbs.twimg.com/profile_images/1090426395979890690/uUdaFXo__400x400.jpg",ref_id:"438f8067-3fed-49d2-91d9-5018cb043aac",twitter_handle:"BobbyShell2"},{name:"Len",profile_picture:"",ref_id:"1fc627d9-a446-4e48-b960-ad97fcdbcaa0",twitter_handle:""},{name:"Mario Gibney",profile_picture:"",ref_id:"1a3f05f5-5c4a-455f-b4ec-f682080a5518",twitter_handle:""},{name:"JoeyTweets",profile_picture:"",ref_id:"e6ada141-9c3c-4e1b-b8ab-2389c94f4130",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f3b67780-d9c2-4a20-ab5c-115032a05b3a.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/43334718/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-10-14%2F0bfc842d-3fe7-98e0-1a25-43385ac48a7d.mp3",node_type:"clip",pub_key:"",ref_id:"3242aa43-f999-485b-9c94-8457526d6dbd",show_title:"BTC Sessions",text:"run a Lightning note and I too am hugely bullish on Lightning. I can see the potential in using it for quick and cheap settlements and having somebody like Jack Dorsey also on board too, and implementing it on Twitter. That's a freaking amazing idea where you could tip people for ideas for tweets or whatever. And it just goes to show you that Lightning or Bitcoin itself. There's an actual case, use. It's not just strictly an asset where you park your money. It's also a currency you can use to spend. And Lightning is the way that you could easily spend Bitcoin. One thing that's really interesting to me, too is like, you buy Bitcoin and it appreciates in value. But to us, one Bitcoin is one Bitcoin, right? Like, what if you never actually spend it and you just use it for data transmission? Do you really owe taxes? You didn't buy anything with it. You're just using it as a data tool. I think that's going to become a conversation later, but it's way too premature to really talk about that. How much Bitcoin would you really need to have to utilize that? Right? I don't know. It's tough because I don't know exactly how they're utilizing these rails for this infrastructure that they're building with, like, impervious and a lot of these concepts. So I don't know. I couldn't really comment to that point. But it is one thing, again, from the content creator perspective and to the point about Twitter, it kind of. Sets. Itself in the middle of those intermediaries that were typically taking a cut of any type of revenue that you used to get. In particular, I'm looking at your YouTube that we're on right now, that ad revenue is what keeps a lot of people afloat. And all of a sudden you can introduce revenue sources that are very easy to utilize and kind of almost like bypasses what YouTube is trying to do in taking their massive cut of everything. So I find that to be interesting. They very much try to get you using super chats and stuff like that. But when there's a simple way of like, oh, I can just drop a tip here, and that begins to proliferate through lots of other alternative platforms, at what point do enough people say, well, I'm going to go through this method of this method. At what point do some of the bigger players start saying, Well, I guess we better put this in here because there's a huge demand for it and albeit small at first, we're losing some market share because of that. I don't know how that affects that moving forward. No, it would definitely be groundbreaking in that regards. And it would certainly shake like the YouTube to the world, et cetera, not just to change gears, but there's another application that Lightning would truly thrive in, and it's the world of restaurants right now, a lot of transactions that are done in restaurants are done through Visa, Mastercard, and they take their slice of the pie one, two, three, 4% every time the card is swiped. And from what I understand, restaurants, they have a very thin margin for profit. And if you're able to increase the profit by taking away that one 4% that Mastercard and Visa do, then you can make businesses way more profitable. And it's just simply just implementing Lightning on the current system, it's easier said than done. But once it's able to be implemented in restaurants and you're able to pay for your meals with Lightning, it's going to make profits just shoot through the roof for a lot of these small businesses. Did you see? I think it was Ben Ark. ",timestamp:"00:51:21-00:55:28",topics:["lightning","bitcoin","bitcoin","lightning"],type:"podcast",weight:5.393006804006006},{boost:0,date:1640926800,description:"What Kind of Wallet Am I Going to Use?",episode_title:"WHY ARE WE BULLISH Tone Vays Jaime Garcia Trent Dudenhoeffer KC Hodl ep225",guests:[{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"KC Hodl",profile_picture:"https://pbs.twimg.com/profile_images/1506986051683950592/MMMse9gr_400x400.jpg",ref_id:"b2264dd3-e587-403e-9447-9e99afc1910d",twitter_handle:"kc_hodl"},{name:"Trent Dudenhoeffer",profile_picture:"",ref_id:"3b466176-3bbc-481d-9634-e127a9232404",twitter_handle:""},{name:"Jaime Garcia",profile_picture:"https://pbs.twimg.com/profile_images/953009048642715648/PKaQy5UD_400x400.jpg",ref_id:"f259c6b5-71d6-4c5c-897c-3cfbe80cccc2",twitter_handle:"jaimegarciag"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c8ae0def-c33c-4d17-af4e-31ddaeedaf8a.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/45510131/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-11-31%2Fc821a6ba-7ef1-35ba-b24e-b96e84186843.mp3",node_type:"clip",pub_key:"",ref_id:"d9b2af2b-2bf8-477f-9cde-dd27660ddde7",show_title:"BTC Sessions",text:"am I going to use? Things like that. What are you seeing there? Definitely, yeah. Usually the first thing is which kind of mobile wallet should I use first for a small amount. And now there's so many great options over the last year, especially with the Lightning wallets coming out. Blue wallet, moon, so many great options. Usually people like to play around there, kind of get their comfortability up and then go to an actual hardware wallet of some kind. So, yeah, it's always fun to talk about the benefits and disadvantages of each wallet, whether it be a treasure, a ledger, a cold card, so many different ones. And I think a lot of times people just order kind of whatever's cheapest usually has been kind of what I've noticed and try it out and then kind of figure out what they like and don't like about it. And then when they get ready to go to the next step, they kind of have a little bit of familiarity with the different options. So I've got ",timestamp:"00:16:43-00:17:37",topics:[],type:"podcast",weight:5.371685059434086},{boost:0,date:1640066400,description:"What types of small shift in characteristic can make major changes",episode_title:"Diana Jones: The New Management Model — Guarding Group Relationships",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f2b2a2b2-8869-4256-94b9-a91c91c1ce7e.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/148_e4b_diana-jones.mp3",node_type:"clip",pub_key:"",ref_id:"10cc2a43-918c-477f-a29c-de6fa5ddc79e",show_title:"Economics For Business",text:"That's one of the challenges, I think, with systems thinking that you get confused about causality. Maybe there is no causality, it's just a lot of things interacting together and the outcome emerges. But you do say that small shifts can generate major change. If we've done everything else right, you qualify it. But are these small shifts like reading people better? Is that the kind of small shift that can generate a major change in the system? I do think that there's several things I think becoming more skilled and understanding how groups work. And if you read my book, it's a complete handbook on how groups work for leaders. And the thing when you read any book is to take several things from the book and practice them and then notice the impact and you'll see things rapidly. But the small things are like the shift for leaders to move from being meeting managers where they're focused on their content and like getting on with stuff, to actually being guardians of group development, particularly in the first four minutes. That the second is for probably everyone to shift from being so focused on content to being very mindful of what is the purpose of the interaction or any meeting and what is the outcome you want. So many people just don't know why they're at meetings, they don't know why they're talking about stuff because the purpose and the outcome has just been lost, gone, forgotten. And it's such an opportunity for leaders to tune into if we have this conversation, the dramatic impact out here is going to be A, B and C and that's what we want. So shifting from content to purpose and outcome, which means the conversations shift from explaining and describing stuff to enabling people to participate in bringing expertise and experience from the group. So those are the things I'm talking about. And on my website, under Leadership levers, I've got two complimentary downloads that people can just they don't need to put their email in, they can just take them around the shift for the first four minutes of any meeting if you want to really generate engagement and participation. So those kinds of shifts, and it's mostly leaders shifting away from being focused on their own content and expertise and drawing that out from others. That's the basis of it. It's easy for me to say, but it does require people to give up some things, give up being the know it all expert or knowing when to use it, but not that to be the main orientation. I find when trying to apply systems thinking in business, one of the steps is you've got to discard a lot of things that you used to know, used to do, like hierarchy and command and control and things like that. You can actively discard those in order to be able to get into the new place. ",timestamp:"00:44:48-00:48:09",topics:["small shift"],type:"podcast",weight:5.31725980650619},{boost:0,date:1675274375,description:"The importance of education about taxation and small government ",episode_title:"Is Sound Money the Answer? with George Gammon (WiM268)",guests:[{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"}],hosts:[{name:"Robert Breedlove",profile_picture:"https://pbs.twimg.com/profile_images/1592020087044591616/46enYwAc_400x400.jpg",ref_id:"0ed69c56-241c-4b63-87a5-8f2157fe51a5",twitter_handle:"Breedlove22"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ca3ab815-dc2e-408a-a0c5-8bbe50270a97.jpg",keyword:!0,link:"https://cdn.simplecast.com/audio/2effec98-bec5-4728-ba08-7a86d776e682/episodes/d6e8f010-e2d5-4489-bb8e-9b7446a4795b/audio/0ad4fb89-2eda-4ad7-8432-b6be08c8ce10/default_tc.mp3?aid=rss_feed&feed=MLdpYXYI",node_type:"clip",pub_key:"03a3451db4748e483d2e1ee5d0b3a6872253253b57edf4b084a56952b432a224b3",ref_id:"d8d7f0d9-d40b-4431-8f02-f8bf15823175",show_title:'The "What is Money?" Show',text:"And so then that's what kind of leads me to the conclusion that, wait a minute here. Sound money is definitely desirable, but if we're putting 100% of our energy on this as though that's a panacea, that's a big mistake. And if I have to allocate 100% of my if I've got 24 hours in a day, and so I've got 100% of my mental bandwidth, you know, if I really want to move the needle. As far as our shared objectives, for me, I come to the conclusion that that it it's more beneficial for me to allocate 90% of my time and energy to trying to persuade people that we need small governments, we need low taxation. And then 10% saying that, hey, sound money is definitely beneficial, definitely desirable, as opposed to what a lot of people would do is they allocate 90% of their time and energy saying, well, sound money, sound money, sound money, sound money, sound money. Because we get sound money, then everything else just falls into place. And again, especially when you look at the amount of government spending that we have today just as a result of taxation, just to forget the deficits, forget the deficits just as a result of taxation. I think you've got to come to the conclusion that a society, even with a fixed base layer, if they favor big government, you're going to get big government because people just vote free stuff. And I think that the overriding theme in what I see when I study history is it's just the same thing. It's like this cycle that we can't get out of as human beings where hard times create strong men and strong men create good times, good times create weak men and weak men create hard times. It's just over and over and over and over again. And so I truly believe that right now we're in a period of kind of weak men, if you will, but I think that we now have the internet and we now have a lot of tools that we didn't have before. And I can either sit here and just wave the white flag and say, oh, we're all doomed and we're just going to have to go through this cycle. Fourth, turning, whatever you want to call it, or I can get out there and try to pound the table for small governments with the help of the Internet and allocate as much of my mental bandwidth as I can towards that to try to impact positive change. But that's really my message, you know, is that I think that as a collective group, we're going to be a lot more successful in achieving our objectives if we allocate 90% of our time to persuading people the benefits. Of small government instead of trying to persuade them that sound money is the way to get to that small government type of environment that we're trying to strive for. I think that's kind of we can rip on that. But that's kind of my main message. Yeah, no, that's really well said. And again, to reiterate, we're basically saying we have the same ends in mind. The end, absolutely. Smaller government, less government interference in the market process. In the market process. Lower consumer prices as a result of economic productivity. Yes, exactly. So the more uninhibited the market process is, the more consumer price deflation it will create, right. Through trade, innovation, just trade and innovation basically more high intensity, higher intensity trade, more innovation, gives you lower prices. Government intervention is opposite to that. Right. That's actually interfering with the market process tends to create consumer price inflation. So the end in mind is to minimize government interference in the market process as much as possible. Where we're, I guess, exploring is what's the appropriate allocation of mental energy towards the means to achieve that end, right? Is it all sound money? Is it all advocating for education or persuasion, let's say, in the minds of people about small government, or is it a mix and to ",timestamp:"00:24:27-00:29:24",topics:["Tax education","sound money","small government"],type:"podcast",weight:38.492371921380055},{boost:0,date:1673685e3,description:"What's required to force Genesis into bankruptcy  ",episode_title:"The Chopping Block: Why Gemini Users Are Mad at Genesis and DCG - Ep. 443",guests:[],hosts:[{name:"Tarun Chitra",profile_picture:"https://pbs.twimg.com/profile_images/1587539091444432897/Z6_nmrCB_400x400.jpg",ref_id:"dfad4b23-92ff-4aa1-9aa4-abc1d54cd6d3",twitter_handle:"tarunchitra"},{name:"Haseeb Qureshi",profile_picture:"https://pbs.twimg.com/profile_images/1581025415551889408/thQwG4lb_400x400.jpg",ref_id:"790e4217-dd9f-416f-b9f8-ed596937f5b5",twitter_handle:"hosseeb"},{name:"Tom Schmidt",profile_picture:"https://pbs.twimg.com/profile_images/1563232354277085189/xQL92DR4_400x400.jpg",ref_id:"bc9d3bfd-36b0-4cbc-a491-9370decf4c99",twitter_handle:"tomhschmidt"},{name:"Robert Leshner",profile_picture:"https://pbs.twimg.com/profile_images/1587956987786104833/1SiKVj-s_400x400.jpg",ref_id:"ebaa2166-7982-423d-9f43-add89e7d47f9",twitter_handle:"rleshner"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/7de0d293-8ae3-4362-8500-8f7300f3fe41.jpg",keyword:!0,link:"https://traffic.megaphone.fm/LSHML4726349989.mp3?updated=1673643857",node_type:"clip",pub_key:"02545c14cbb18a61f20dd45f5e3dcbd9acae3de282369501040adce32a75311309",ref_id:"a24f0efb-66be-40a2-afa2-bf29f370b10d",show_title:"Unchained",text:"a mutually yeah. You could almost perform like a bribery attack where you're like, hey, if you got if the rest of the creditors don't give us the money, like me and two of my friends who are like small fry creditors are going to go push Genesis into bankruptcy and screw everyone else over. It does seem like an unstable it does seem like an unstable equilibrium. Well, I think the reason why it's more stable than that and this is I'm not, you know, an expert in restructuring law or any of that, but what I think makes it a more stable situation that prevents that is that any resolution has to be done equally amongst the various creditors. So you can't have like three creditors who like threaten them with some ultimatum and say, give us all our money. Back or read oh no, I'm not saying threaten the company, I'm saying threaten the other shareholders. That might be legal. I'm pretty sure that's extortion, but you know, there's maybe some way you can structure it. Yeah, but anything has to hold up, right? ",timestamp:"00:12:38-00:13:43",topics:["Genesis","bankruptcy"],type:"podcast",weight:25.351043899322917},{boost:0,date:1533945600,description:"Government subsidies and small business",episode_title:"Government and Big Business | Peter G. Klein",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/58189b3c-aa25-408d-8c5e-76f97c9501da.jpg",keyword:!0,link:"http://www.podtrac.com/pts/redirect.mp3/feeds.soundcloud.com/stream/335241913-misesmedia-government-and-big-business-peter-g-klein-1.mp3",node_type:"clip",pub_key:"",ref_id:"58c66464-fdd6-4f04-848b-f98021c4089c",show_title:"Mises University 2017",text:"are direct subsidies for small companies, especially in the tech sector. Governments build science parks and fund Incubators. And the SBIR program, which gives cash to tech startups, you have lots of indirect subsidies as well. So if we're going to say that subsidized interstate highways constitute gives sort of an unfair advantage to Walmart and Amazon, then we would have to say that subsidized electricity, subsidized telecommunication services give an advantage to small firms that are able to be in some small town, right? If it weren't for electricity subsidies, maybe you couldn't afford to live in Auburn, Alabama. You'd have to live in a big city that has a big nuclear plant. Okay? And the only reason a little startup company can be in Auburn, Alabama, or wherever is because they have access to the Internet and they have access to they can make phone calls, they can get electricity off the grid. All of those things are subsidized by the state just as much as the road system. So it's not clear that the kind of Kevin Carson argument makes any sense specifically favoring one type of firm over another. Okay? More generally, think of what the government does to the economy, to society, right? I mean, restricting trade and starting wars and controlling the education system and so forth makes us all much poorer than we otherwise would be. And the massive scale of government intervention around the world, it requires the international division of labor, reduces stocks of human capital, if you want to use that language. It makes us all dumber than we otherwise would be if we didn't have state control of education. Reduces the marginal product of labor in many contexts, right? So, I mean, all of these things it might be that if we had a free society and we had better education systems, better transportation communication systems, maybe the economies of scale and scope and production would be even larger than they are now. Maybe we'd see bigger firms than we see now if we were to get rid of the state and all of its harms. So ",timestamp:"00:37:00-00:39:18",topics:["government subsidies","small business","subsidies"],type:"podcast",weight:5.2884098291397095},{boost:0,date:1665118800,description:"Smaller states offer more opportunities and promote decentralization",episode_title:"Breaking Away: On Secession and Small States",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/6ec51741-3d93-4116-a619-d62a7cee1feb.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/102-radiorothbard-20221007.mp3",node_type:"clip",pub_key:"",ref_id:"56ded69f-9178-41fb-a466-b3f270175343",show_title:"Radio Rothbard",text:"Rockwell summed up this principle in a 2005 article called What We Mean by Decentralization. Rockwell writes under decentralization jurisdictions must compete for residence and capital which provide some incentive for greater degrees of freedom, if only because local despotism is neither popular nor productive. If despots insist on ruling anyway, people and capital will find a way to leave. This is most fully realized, of course, by the type of decentralization that results from fullblown secession. As Rothbard put it in 1977, secession means greater competition between governments of different geographical areas, enabling people of one state to zip across the border to relatively greater freedom more easily. Now, of course, the idea would be you wouldn't have to physically relocate to escape despotism. But we don't live in that ideal world. We have to work with what we have. And the fact is, governments like to abuse rights. So the question is do we want governments that are huge and control vast swaths of land that require us to move thousands of miles to escape them? Or do we want something smaller where exit is much easier, albeit still not without cost? And of course, keep in mind that in a world with only one state and no secession, there is no escape at all, ever, anywhere. We've seen this issue of exit in the modern world. Of course it's true in countless refugee situations where the most oppressed people are only able to save their own lives by fleeing across an international border. We saw it in Venezuela over the past decade when Venezuelans, desperate for food, had to escape across an international border just to get basic necessities. Thank goodness that border was there and limited the reach of the Venezuelan regime. Exit was possible if only the Venezuelan state was even smaller and the people of that region had even more options for bordering states into which they might exit and escape. Historically as well, we know the concept of exit has been an absolutely key factor in how the west roast to achieve the highest standards of living in the world has ever known. As historian Ralph Reyko has noted in his essay The European Miracle, the fact that Europe has been so decentralized throughout its post Roman history, in contrast to the huge empires of the east, meant that entrepreneurs and capital could indeed escape across Western Europe's countless borders in a highly decentralized Christendom. This was especially the case in Europe's Middle Ages. And as historians Nathan Rosenberg and Ellie Birds will note in their book how the West Grew Rich, it was in these highly decentralized Middle Ages that the institutional groundwork was laid for Europe's economic miracle. Similarly, historian Jean Bay Schuler showed this in his research and he concluded the first condition for the maximization of economic efficiency is the liberation of civil society with respect to the state. But how did this liberation occur which led to the success of markets in Europe? Bayflair tells us the expansion of capitalism in Europe owes its origins to political anarchy unquote, that is, to the existence of a large number of small states without any overriding imperial or state power. Not since Rome has Europe been unified under a single government. And that has meant more freedom and more economic growth. One reason this works is that a region of the world or region or world of small states is more difficult to even. It's even difficult to even attempt autophy. So for a private entrepreneur, moving one's capital from one place to another does not cut off one's access to markets outside the borders of a small jurisdiction. Small states and principalities have always experienced big incentives toward doing business with surrounding states. This means more trade. It means more efficient markets. Opponents of secession and breaking up states are often opposed, however, on the grounds that smaller states will throw up trade barriers and be more inclined to violate rights. The reasons for this assumption aren't actually clear, but they are common objections. On the contrary, small states want to attract capital, and it shows. This is why efforts to impose a single global minimum tax tend to meet the most resistance from smaller countries like Ireland and Hungary. As is the case nowadays, having lower taxes is a major way that small states attract wealth. Moreover, in modern times, the empirical evidence supports the idea that small states tend to be more open to free trade, more open to a free flow of labor, more open to lower taxes. For example, Sergio Costello and Truatomozawa conclude in their study on small states that in a world of specialized and growing trade, quote small economies naturally grow more trade oriented in both exports and imports. Ceteris paribus small nations thus become more trade focused than large ones. Unquote economist Gary Becker in 1998 noted, quote since 1950, real per capita GDP has risen somewhat faster in smaller nations than it has in bigger ones. Becker concluded that the statistics on actual performance show that dire warnings about the economic price suffered by small nations are not all warranted. Smallness can be an asset in the division of labor in the modern world, where economies are linked through international transactions. Of the 14 countries with populations over 100 million, only the US. And Japan are wealthy. William Easterly and An Ard Cray conclude from their own study on small states controlling for location, smaller states are actually richer than other states in per capita GDP. Microstates have, on average, higher income and productivity levels than small states and grow no more slowly than large states. So it turns out Rothbard was right when he suggested that small states are more likely to embrace free trade. As he wrote in the 1990s. This was due also to sociological reasons. Rothbard says the greater the number of new nations and the smaller the size of each, the better, for it would be far more difficult to sow the illusion of selfsufficiency if the slogan were by North Dakota or even by 56th street than it is now to convince the public to buy American. Similarly, down with South Dakota or down with 55th street would be a more difficult sell than spreading fear or hatred of the Japanese or whatever foreign boogeyman we currently hate. In other words, bigness brings delusions of selfsufficiency, and it is actually large states that more often turn to protectionism and economic nationalism and control. A second benefit of small states is that they prefer a offer, a solution. When constitutions and democracy fail ",timestamp:"00:09:41-00:16:21",topics:["Smaller states","Decentralization"],type:"podcast",weight:5.421848896549872},{boost:0,date:1629691200,description:"[[Bolt 12]] is the next [[payment negotiation UX]]",episode_title:"WHY ARE WE BULLISH Bitcoin Meme Hub Jan Capek Bitcoin Mechanic Max Hillebrand ep195",guests:[{name:"Max Hillebrand",profile_picture:"https://pbs.twimg.com/profile_images/1311357499514269696/-HQFwyFH_400x400.jpg",ref_id:"9a86cc59-ed01-4757-88f6-e9d9d63067b9",twitter_handle:"HillebrandMax"},{name:"Bitcoin Mechanic",profile_picture:"",ref_id:"faae3a37-0115-4074-af21-7d79c429c7cb",twitter_handle:""},{name:"Jan Capek",profile_picture:"",ref_id:"ec6f8b14-6c4b-42e9-8e86-9aa902c0906d",twitter_handle:""},{name:"Bitcoin Meme Hub",profile_picture:"",ref_id:"dcd5a590-2018-4707-a49b-8142d7b14e33",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/39201536/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-7-23%2F214267789-44100-2-17e9fbafdf841.m4a",node_type:"clip",pub_key:"",ref_id:"1f486e9a-51aa-476a-8430-b149c88817f4",show_title:"BTC Sessions",text:"learn and test out wallets and see what's up because it's a lot of fun to play with if you haven't if you haven't tried already. Max, you are up. Dude. Please let us know what has you feeling bullish this week. Oh, this week specifically it was Bolt Twelve to stay with the Lightning network. That's the next generation payment negotiation. Ux flow and it's really magical and super useful. So far. A Lightning network invoice both Eleven is a one time payment secret basically. And it's the string that you should only use once to request a payment and that makes things a bit awkward. Main thing is that you cannot get a tattoo of your Lightning invoice because that would be a very shortlift fun and that we got to solve. Of course, right. There are current nice hacks around this, mainly LN-URL which is kind of a separate server that you need to set up and that then you have a small domain link, btcsessions. Compayme and all of a sudden you can toss Ben some sense, right? That's possible with this add on service. But what both Twelve is doing now is to do kind of a similar thing, but inside the Lightning network directly, running completely inside your Lightning node and communicating only inside the Lightning network. So you don't need to have a separate server, you don't need to run any separate software, you don't need to have a domain and all of these things are taken care of. It's all just Lightning pop keys at that point. And the cool things that you can do is static invoices or the static offers, right. So you actually can get a tattoo right on your forehead. People can scan all the time and continue sending you one set as you deserve, obviously for the heroic act, but it also allows for automatic recurring payments. So you can say hey, scan this QR code and you will pay me forever. One set every minute. That's great. And there's also nice messaging involved here directly. So sender and merchant can communicate and send messages back and forth about details of the payment, which is fascinating as well. Well, because there is some difference between the time where this offer was created and you print the QR code and when then someone actually pays the QR code. You can also do, for example some trickery with the exchange rate. You can print the QR code with an offer that says pay me $5 in dollars and a week later, of course, the stat price is much different as the shake coin continues to hyperinflate. Right. So you are going to get less shake coins for those five stats. Five Bitcoin. Sorry, you get less stats for those five bitcoins. Exactly. And this can also be negotiated again at the time where you actually make that payment. So small things like this that really show in hindsight how bad Lightning was and how much of a hack it was in the beginning and as a miracle that it actually worked. But now that we have well over four years under our belt of actually implementing this craziness, we've learned a thing or two, and that is all kind of cohesively packaged under Bolt Twelve Lightning offers by Rusty Russell So Bolt twelve.org as a really useful resource that shows you all the fabulous things. It's still very early so far only implemented by C-Lightning, and one other full Lightning note implementation will need to implement it before it's considered no longer a draft in the spec. But I'm bullish as fuck, especially as a podcaster and content creator. I've been showing Bitcoin on chain QR codes on YouTube videos for way too long, and Lightning made that terribly worse because every QR code that you show, only the first listener can pay it and nobody else can. So getting Lightning back to the beautiful days of sending stats for watching cat videos on YouTube, which obviously is the highest achievement of humankind in this regard, we're on a good path, so that makes me even more bullish. That's the main ",timestamp:"01:21:28-01:25:47",topics:["bolt 12","payment negotiation ux"],type:"podcast",weight:5.268418788934759},{boost:0,date:1633752e3,description:"The Domino Effects of [[El Salvador]] Making [[Bitcoin Legal Tender]], Citizens are now using [[Chivo Wallet]]",episode_title:"WHY ARE WE BULLISH Haley Berkoe Tip Jamie Stuckert Colin Aulds ep206",guests:[{name:"Jamie Stuckert",profile_picture:"https://pbs.twimg.com/profile_images/1481004564090433537/ZAj3C3Kv_400x400.jpg",ref_id:"ee047505-97c1-4086-a01c-3d18bd40b2d2",twitter_handle:"JamiaStuckert"},{name:"Colin Aulds",profile_picture:"https://pbs.twimg.com/profile_images/1151579149091262464/uNkb8aat_400x400.jpg",ref_id:"7b6066e2-2ef5-4e90-9d93-dedb1d289118",twitter_handle:"Colin_Aulds"},{name:"Tip",profile_picture:"https://pbs.twimg.com/profile_images/1598405188343468032/yL-obWRx_400x400.jpg",ref_id:"72362a7b-2a0a-44ae-beb4-bb0f36a485fc",twitter_handle:"tip_nz"},{name:"Haley Berkoe",profile_picture:"",ref_id:"b62ba399-282a-4628-811c-25e280541c99",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2e84c98a-d7d8-4341-a129-3f4eaebe1e3e.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/41540590/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-9-9%2Fd7420ef4-f713-f016-1ad9-b5411c2f99ee.mp3",node_type:"clip",pub_key:"",ref_id:"54d58e3e-b828-4a9e-92c3-f761826c0319",show_title:"BTC Sessions",text:"would say so many things I'm just bullish every day. But more specifically, what's going on in El Salvador. So just yesterday was one month since they made Bitcoin legal tender, and since then, like, half the nation has already downloaded the Chival app. That's 3 million people is the population 6 million. Yeah. Just right around that, right. Yeah. So that's like a pretty big number. And then I saw this other statistic that 2.5 million Salvadorans living in the United States will eventually be sending remittances through cheevo. That is a significant number. And it's just extremely powerful because all of Latin America is going to watch how they implemented this and they're going to start doing it, too. So imagine I'm just ready. I think we're all ready for the dominoes to fall. It would be crucial for Bitcoin to get into these other countries. And also what you mentioned earlier over in Africa, the whole world really needs it. But what's going on in El Salvador is just fascinating. I think it's a little bit soon to try and really make judgment calls on the situation because it's really tough. The education component is really tough. Like I was telling Chimberra in Bitcoin Beach this the other day, I'm like if there were teams of hundreds of people going into El Salvador to train everybody, it would be a little different. But you have to have a lot of resources for that, right? So it's a process. It takes time, and hopefully more people will get educated. Read more. The Spanish community is now doing podcasts and they're sharing more stories. I'm super excited. I think it's going to go well eventually. And I'm excited for the rest of the world to fall behind them. Yeah. It's unique in El Salvador because it's coming from two ends of the spectrum, too. You've got this initial grassroots movement with Bitcoin Beach, where it's just a small community kind of bubbling up in El Zonte. And then you've got now coming from a more top down approach where obviously the government is like, hey, this is legal tender and some Bitcoin is kind of pushed against the enforcement type measures around that. Now, granted, as an individual or a business owner, you don't have to hold Bitcoin. It's an effort for people to accept Bitcoin and choose to swap it to US dollars immediately if they want to. But Bitcoin is a very averse to any sort of use of force in a lot of instances. But that said, the world is kind of watching here, and I guess we'll see how it continues to play out. I love that it was started as a grassroots thing in small communities. I like seeing that around the world. And I'm moderately curious as to one how this plays out down there. If we see another kind of cycle, as we've seen in past, where it's huge boom followed by a bust, because that could look spectacularly bad if it's massive boom for the end of the year, and then it's like a two year bear market after that, that may not look great on the world stage. So hopefully that's not the case. But also, I'm really curious as to because they're not going to be the last country to do this. And I'm really about what's next. You hear rumblings in other locales, but a lot of it seems to just be like, oh, we're just going to kind of give our stamp of this exists and it's official that you're allowed to own it and some sort of regulatory clarity. But I'm curious about the next country to say this is legal tender, and I don't know where that'll be or how long it'll take, but I don't know. Colin Haley, Tip, what do you feel about what Jamie is talking about in El Salvadora? What are you interested in? What are you worried about? ",timestamp:"00:46:11-00:50:54",topics:["el salvador","bitcoin legal tender","chivo wallet"],type:"podcast",weight:5.268418789235816},{boost:0,date:1472358600,description:"Getting funding as a small business ",episode_title:"TheMacroView Episode 4: Access to Capital",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/8e52e9c4-52e8-4dea-8ed9-8c6a7fcef25a.jpg",keyword:!0,link:"https://www.blogtalkradio.com/themacroview/2016/08/28/themacroview-episode-4-access-to-capital.mp3",node_type:"clip",pub_key:"",ref_id:"9ac59d0a-2e8d-430b-87e4-493026d9cbe3",show_title:"The Macro View",text:"underwritten by a bank and they've got a whole process behind it. But originally the idea was kind of skipping the bureaucratic process that goes on behind the scenes of a CD that costs interest and just deciding which loans you're going to make and kind of having the underwriting of a bank. Now there's risk involved, which there's not. With CD you get at the IC, that's why you get a lower rate. But in a yield starved world, for some people it was a really good option to start investing in these peer to peer loans and we'll see how it ends up working out over the next five to ten years. But being able to kind of cut out the middle man and get capital right into the hands of people that need it, I think that that's a very interesting innovation and the ability to document those loans. And I know there was a scandal recently with Lending Club, but for the most part you're able to document that stuff very well. It's not that hard with modern day technology to have a really strong and secure database to be able to document these securities very well and make sure that they're not getting lost or being overly diluted. And you can have rules surrounding small businesses in regards to how often the liquidity can be offered by the investors. Maybe they do have to hold it for six months. So you don't just get a plumbing in the price a little bit after it goes up on the market and you have a plugin to where, if you're an investor, get a quick and easy report on what's going on behind the scenes of that business and where that capital is actually being used. All that's possible with today's technology. All that's possible with today's technology. And we're operating in a financial services world that is based on 1940 laws and 1933 laws. The entire infrastructure, the legal infrastructure and regulatory infrastructure up until basically DoddFrank and you've had Tweaks here and there, you had Glass Eagle and then it got repealed and you kind of had the merger of lending banks and investment banks or commercial banks and investment banks. You had kind of the merger and consolidation amongst that after the repeal of Glass Steagall, which set up a firewall and then the Volcker rule kind of did that and moved closer towards that. And that was part of Don Frank. And frankly, I think disclosure is the most important part of that. And yes, because we have an insured financial system, when it comes to just everyday consumer deposits, it's very hard to have that moral hazard of allowing prop trading desks that can take almost unlimited leverage with individual depositors that have financial insurance for their deposits because those prop traders kind of know in the back of their minds, hey, we're not really losing anybody's money. So as long as you have that moral hazard. It's very hard to have a commercial banking system that's merged with an investment banking system because you basically have customer deposits that are insured being put up as collateral to trade risky assets and to do it via risky strategies if it was fully disclosed and people knew the risks that they were taking with their deposits and there was an insurance. Which if there was an insurance. Banks wouldn't really take that risk because nobody would let their money be that kind of risk taking with it. With their savings and with their checking account that they use to buy food every day. It just wouldn't happen. But if you had a system like that, then you wouldn't really necessarily need the separation. The system that we do have with the insurance, you do need the separation. So it's an interesting framework that we have because the way that businesses gain access to capital today is really based on a world that was way before the current information. And I know in the 80s things got a little bit stricter in the because you had the pink slip pushers, the pink sheets pushers, and the penny stock brokers that were kind of running rampant and your wolves of Wall Street type characters that were ripping off old ladies and selling them a bunch of junk. And that's not what I'm advocating. What I'm advocating is having a legitimate market that has really strong accountability built into the technological infrastructure of it. You have a fast registration process. You have standardized types of offerings. You have auctions that are available, and you farm that exchange API out to every brokerage firm. And you hold brokerage firms accountable for keeping documentation and backup documentation on it. And you set up rules to where the brokerage firms aren't going to get sued for recommending it as a small part of somebody's portfolio, and aren't going to get sued if somebody without getting any recommendation or professional financial advice goes off and buys a bunch on their own and take that risk. Because casinos don't get sued when somebody walks in with $10,000 and puts it on the table, that was that guy's life savings and you just let him blow it. They're kind of in a world where they understand, look, people are going to come in and take bad risks and make bad decisions. And to a certain extent, while it's sad that's the world of investments too, people have to learn that you can't just make willynilly bad investments. You got to diversify. You got to play it long. You got to think about the long term. You got to build a good, strong portfolio that isn't dependent on one or two things working out that's basically going to follow the overall economy. But maybe you can outperform a little bit on the upside and maybe you could protect a little bit of risk on the downside. If you have a really good financial adviser, you're your own professional financial adviser and you know what you're doing and you know how to manage that risk, there are ways to do that. There are ways to use the markets that we have to get a good return. I think this would be a way that would increase that. I also think that it would open up structured products that would allow a lot of capital to flow from institutions to these small businesses and that would really open up the market for entrepreneurs to gain access to capital. If you had strong structured products that were based on pools of strong interest rate loans to small startup businesses that also had a tax incentive built in, you'd have institutions all over the place trying to buy into this. And you'd also have it as if you structured it properly to where you have the right risk management protocols in place. You'd also have a lot of retirees who might be able to clip a little bit better of a coupon, do it in a safe manner, and while helping to build the next generation of businesses. So there's a lot of things you can do. I'm not saying it would be their entire portfolio, maybe five, six, 7%. You can index annuities to these pools there's all sorts of interesting things you could do with structured products if you had a more vibrant market where investors of all sizes could come and gain access to startup and small business debt and equity offerings in a way that was accountable and in a way that was efficient and in a way that maybe offered a little bit of liquidity. But you understood these are small businesses that are trying to grow that liquidity three, five years down the road. If you actually had a world that preached truth that didn't say one out of every three businesses goes out of business, only one out of every three businesses is still in business after the first year. Only one out of every ten is in business after the third year. All these little cliches that just simply aren't true. About 68% of businesses three years in are still alive. So yeah, you've got one out of three that after three years go out of business and by five years 50%, a little over 50% are still alive. You have pretty close to 50%. Five out of ten. Let's use real numbers and let's plan risks around those real numbers and let's understand that yes, there's tail events but the more vibrant of a market we have, the more of an opportunity there is for people to find ways to manage the risk around that market. And when you have ways to manage the risk around that market, three standard deviation market events that put 75% of small businesses that started that year out of business and a lot of people lose money on that, you have ways to manage that risk and you have way to cost efficiently prevent yourself from losing big time on one of those events. So I think that what we really need is a combination of public policy that provides a tax incentive for the private redistribution of wealth that is wealthy people and people of all sorts taking minority stakes in small businesses and startup businesses, getting a tax incentive to do so. And as that business grows, obviously there's going to be tax base that grows and it pays way more than the taxes that are credited or deducted. By making this investment, by giving people these deductions and credits to make these investments, you're going to have much more taxes that come in a couple of years down the road. But not only are you going to have that. You're also going to have a more vibrant market for it and you're going to have incentives for entrepreneurs to go and create a very accountable market where small and startup businesses come in and properly have the standardized paperwork to make the offering to register quickly. Make it not very expensive and be able to attach that tax credit to it. Be able to attach that tax deduction to it very easily. Raise the capital. Put the capital to work. Hire people. Go on with their idea as they grow their business. You already have strong accountability. It will be easier for them to go back to the market. Maybe the first row is a convertible debt, maybe the second round is convertible preferred. Maybe the third round is a pure common equity. And that's the conversion point for the other two. And those are a year apart. Each they're done on the same exchange. The exchange, the brokerages, they make a little bit of money off of it, people get their tax credit for it, they get to invest in the next generation of businesses. Those businesses raise the capital, they put the capital to work. The economy grows and flourishes and it's going to be well worth having this market when you've got an economy that's growing at 4% as opposed to the measly 1.1% that we got. In order to do this, we've got to make it fair to the people that are participating in the market, that are providing this profession where they're not going to get sued all the time because the business goes out of business. Look, businesses do go out of business. Some succeed, some fail. It's not as outrageous a number that fail as society likes to preach, as we showed you here on slide 13 in tonight's podcast. It's nowhere near those outrageous numbers, but some do. Some businesses succeed, some fail. And when you take the risk of investing in a small business, you have to understand that why you should diversify. But when you're taking that risk at an early stage yet it should be a small part of your portfolio, you're able to get a lot of upside down in the future, you're able to get a lot of upside down in the future. And that's the benefit because you're starting out, you're getting a lower valuation before that company enters into the hyper growth stage. The other thing is. If you open this market up to a credit. Not just accredited investors. And if you had a vibrant market for these types of opportunities. You'd have financial professionals that whether they specialize in that or at least they make it a part of their repertoire and put it as a part of their model and take the time to really start to understand that market. Financial professionals will help their clients make those right decisions. They will. Financial professionals already have fiduciary responsibility. And if they might say, look, you should look at doing this as part of a tax plan and understand you might lose some money on it if you have this tax credit tax deduction, they also might look at it and say, look, if you have ten companies, five are going to succeed, five might go out of business. And the five that you have a finite amount of risk, the five that succeed, out of the five that succeed, three of them you're going to get a two X return and one of them you're going to get a three X return or whatever. You can show different models. You can model it out, and you can say, this is what we're expecting out of it. There is risk involved in this, as there is with everything. That's why it's only a small part of your portfolio. We're diversified, but this is something that we got to get happening. Everybody's complaining about the inequality. Inequality, wealth inequality, income inequality. The reason there's a lot of inequality is because there's absolutely no incentive for a wealthy person to take risk investing in a small business that's just starting out. When you can vary, it's very difficult. There's no vibrant market. It's hard to keep them accountable. People live around the world. If you're an entrepreneur, you've got to go out and find the wealthy person. You got to court the wealthy people, and you got to court many wealthy people in order to find the one that likes your idea. Well, that's not cheap, and that's not easy. And if you're just an average dude or you're an average gal looking to start a business. You come from middle class America or you come from even poor neighborhood in America. But you worked your ass off. And you got a little bit saved up. And you had enough to be able to go off on your own and not have to worry about a salary for a little bit. Now you got to find a wealthy person. Then you can use the Internet all you want, but when it comes down to at the end of the day, wealthy people want to know you can go out and have a drink with them. They want to know that they can trust you, that they can look you in your eyes. They want to shake your hand. It's not an easy thing to do. If you don't come from a lot of money, and it costs a lot of money to get there, you got to constantly be going around and trying to meet with these wealthy people and hope one finds a job. You got to figure out ways to hang out where wealthy people are. Guess what? Wealthy people don't hang out where it's cheap. They hang out places where it's pretty expensive for the most part, and at least pretty expensive for a young entrepreneur that's just starting out. So if banks aren't going to do that job anymore, we've got to figure out a way to incentivize those wealthy people to seek out good ideas. And we got to have a vibrant marketplace for that to be done. And we've got to institutionalize that marketplace in a way to where the offering documents are standardized. People know what they're getting into. They know what they're doing. And there is an incentive, a financial incentive, a tax incentive to do so that will get this economy bumping again, that will get this economy moving really fast. You'll have a velocity of money. You'll have to start kicking up interest rates and then you know what you're going to have? You're going to have banks all over starting platforms for this. They're going to start brokerage houses that will really advise, look 3% help get this tax deduction out there. And maybe the political way to do it is to not make a permanent tax deduction. Make it five to seven years. Seek out some best practices, emulate those best practices, be able to find ways to get more resources to the small business owners so that you have lower failure rates. There are other ways to do this and in a competitive world you're probably going to actually see failure rates at the beginning increase a little bit. And then what you're going to see is you're going to see profits and diminishing returns. The law of diminishing returns. As you have more people participating in the same industry, competing for the same customers, they're going to start to have the price compete. And when they start to price compete, they'll also compete with innovation and new products and new services. But when they start to price compete, you're also going to have lower margins. You're going to have smaller profits. And then capital is going to be diverted away from that. It's going to be put towards even newer businesses. And if you have this perpetual cycle of new innovation, new innovation, new disruption, lower prices, more goods, more services, more abundance for people, more jobs available, more people consuming, more people having jobs, more people getting wage increases, guess what? That also means we can start to pay down our debt. That means we no longer have to have budget deficits every single year. We can have balance budgets. We can have budget surpluses. We have large budget surpluses and windfalls where we can pay whole chunks of our debt down and prepay whole chunks of our debt and we won't have to refinance it. The other ",timestamp:"00:35:52-00:52:23",topics:["Small business","funding","merger","lending"],type:"podcast",weight:5.265220403671265},{boost:0,date:1623733200,description:"The Goals of Small Business",episode_title:"Andrew Frazier on Running Your Business",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f2b2a2b2-8869-4256-94b9-a91c91c1ce7e.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/122_e4b_andrew-frazier.mp3",node_type:"clip",pub_key:"",ref_id:"bda964fc-b276-490e-98b6-3009769f941e",show_title:"Economics For Business",text:"and be profitable. Right. So you have a few techniques. You talk about standardized methods and processes. One of the elements I picked out of the book that I loved was you're thinking about goals. You call them smart goals. That's an acronym, smart. You might walk us through some elements of that, but tell us about goal setting for small businesses. Okay, well, a lot of times you have so many things going on within your business that you have to do that sometimes you forget about planning and doing the things that are important but not urgent. And that's really what goals are. They're very important, but sometimes they're missed. But by having goals and focusing on them, it allows you to move forward and many times move forward even faster and better than you would have. So the Smart Goal effect, which is commonly known to include specific measurable achievable, relevant and time based, where the specificness gives you a chance to get clarity around the goal. And that's generally qualitative and quantitative. You have to have it measurable because you can't improve anything that you can't measure. It has to be attainable. So you need to analyze what it will take to achieve the goal and then it has to be relevant, does it contribute to your business strategy and your profitability, and then you got to achieve it within a certain time. So time bound and have reasonable delivery targets and ways to gauge your progress. So really by developing smart goals, it's a way to plan for your business and it's a way to measure how you're doing and continually make improvements. So Andrew, given that given those set of smart goals, you say that every business from the outset should have detailed, standardized methods and processes. Besides the smart goals, what are the detailed methods and processes that we should be building? Well, it's important to be able to have consistency, and by setting out processes and procedures, it allows you to do that. It's also very hard to manage people, but it's very easy to manage systems. So by having a system or process that helps, you be able to manage more effectively and make sure your business is running the way that you want it to. Michael Gerber, who wrote the email, really talks about the key to running a successful small business is really about running it like a franchise. So that the same way a franchise has processes, procedures, and clear ways of doing business, you should be working towards that with your small business ",timestamp:"00:15:38-00:18:45",topics:["Small Business"],type:"podcast",weight:5.25807249546108},{boost:0,date:1642222800,description:"[[Bitcoin]] Versus Banks in [[Australia]]",episode_title:"WHY ARE WE BULLISH Duczko Thomas Jestopher Morgen Rochard Rick Vanderhulst ep229",guests:[{name:"Rick Vanderhulst",profile_picture:"",ref_id:"4c184180-b77d-4e25-ac7c-4d2e86cdde85",twitter_handle:""},{name:"Morgen Rochard",profile_picture:"https://pbs.twimg.com/profile_images/1362921386256211972/IpIK8cwI_400x400.jpg",ref_id:"c29b26e9-82c8-4c0a-8130-aa083d33ec48",twitter_handle:"MorgenRochard"},{name:"Thomas Jestopher",profile_picture:"https://pbs.twimg.com/profile_images/1607521016368201730/6GSHGkGX_400x400.jpg",ref_id:"50388de7-3ec7-401b-8349-5ee1d8a004c0",twitter_handle:"Jestopher_BTC"},{name:"Duczko",profile_picture:"",ref_id:"2b6de75e-0cf5-4fec-b458-d1b8ee3f86df",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b87feb17-6926-4295-b2c2-d1c2e9d49ca8.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/46171740/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2022-0-15%2F68b825e2-6752-7447-34ca-b27f0ea69256.mp3",node_type:"clip",pub_key:"",ref_id:"c2dff822-95ca-45fd-bf30-61ed21ecc3b1",show_title:"BTC Sessions",text:"this is actually fact in Australia. So there was a case Bitcoin versus banks, a guy that was dancing with his small Bitcoin exchange. He was just doing transactions on one of the peer to peer exchanges, helping people. And several of the big banks in Australia, they've actually invested in one or several exchanges at the same time. They're not allowing these other exchanges to bank. So clearly there is something going on with their own incentives. Yeah. It's unfortunate. Jess, I don't know if you have anything that you wanted to add in. I haven't let you chat much yet. Sure. Let's see the experience in Turkey. I think, Rick, you mentioned that. They'Ll. Just pass along a check that is the asset and write the new information on it and just pass it around. You'll have like ten different names on there. And it's just sort of this delayed settlement because no one has the money because all of that inflation. And it was just like, wow, that's the Fiat system. And here in the US, the financial center of the world, on a sunny day, it's still one to seven business days. Everything is going perfect. I just had my first experience ",timestamp:"01:06:17-01:07:52",topics:["bitcoin","australia"],type:"podcast",weight:5.248069832838849},{boost:0,date:null,description:"Bitcoin backed stablecoins as a solution and how it works in emerging markets",episode_title:"#Bitcoin solutions for Emerging Economies",guests:[{name:"@RSK",profile_picture:"https://pbs.twimg.com/profile_images/1592915327343624195/HPPSuVx3_400x400.jpg",ref_id:"b326a250-3fc1-46da-a64c-2659a4de0e3a",twitter_handle:"RSKsmart"},{name:"Femi Longe",profile_picture:"https://pbs.twimg.com/profile_images/1547047357371797504/avnHBa2W_400x400.jpg",ref_id:"7a5a41f1-6d1e-46c9-b97f-20ae03eafdd1",twitter_handle:"TheArtOfTomas"},{name:"@Alexandria The Great",profile_picture:"https://pbs.twimg.com/profile_images/1575525599493427203/XubWEoDX_400x400.jpg",ref_id:"1c95e8b2-3a98-46ce-933f-ef9f50c518c5",twitter_handle:"alesander97"}],hosts:[{name:"Tomas Villalonga",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"4f1cff71-07e0-4d7a-8992-d4b0609ca0b1",twitter_handle:"TomasVillalonga"},{name:"Brian De Mint",profile_picture:"https://pbs.twimg.com/profile_images/1546297674512470016/oEVF8rJQ_400x400.jpg",ref_id:"064e04f7-8320-4854-8325-0cc19cd7ff55",twitter_handle:"BrianTheMint"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b2dd8be4-74b5-47b2-b470-e568657f3a0d.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/1ced1636-bd02-426f-a451-f1ebcd2108d1/f1d75b7e-a877-4052-acdd-23958f6207d6.mp3",node_type:"clip",pub_key:"",ref_id:"41015fe4-63fd-46d7-8dde-f065457f2af6",show_title:"Art of Tomas",text:"Yeah, I think so. As a bitcoin, I wish I could just tell people, just buy bitcoin and it fixes everything. I wish it was so easy. But for most people, unfortunately, bitcoin volatile, it's too much. So I think looking for like I put on the title bitcoinsolutions, and I think things like a bitcoin backed stablecoin for a lot of people in the world make a lot of sense. And if you could do it in a way that also benefits bitcoin, which is what rootstock is doing and why I like it so much, I think that is the best way forward. Alex, please. Yeah, definitely. I think one of the things that we actually started working on with our skill and metamorphosis in the space was that what we wanted to do was we wanted to look at how can we achieve market penetration. One of the problems that we have in emerging markets, or I can't say Zimbabwe's, emerging market in undeveloped markets like Zimbabwe for example, is because we face sanctions and of disadvantage we can't have what sort of central exchanges. So the thing about central exchanges, especially like what we saw with FTX was these exchanges often don't hold any bitcoin, they just come up with the own kind of altcoins and then they promote them and then they just dump them on retailers, for example. Right, but the thing about these exchanges is that you have these new types of what you call it, stable coins like USCC or UST that can pay these guys massive amount of startup capital. And then these individuals, these exchanges now have incentive to register these debt coins only and promote them regardless of whether they're beneficial to the end user, right? So there's kind of an unfair advantage when it comes to bitcoin versus these other cryptocurrencies at the end of the day. So what we saw was that because we don't have exchanges that can propagate the only agendas involved with, we can now we kind of have an advantage. And this advantage now comes with to access bitcoin which is highly demanded as well, where comes at a cost at 10% premium because first there's a cost of getting the capital outside of Zubay to buy this bitcoin and then coming back to Salad here, which is on 2% depending on the level of liquidity that you have and that you're transporting. The second challenge is that the second premium is that it comes from individuals wanting to make a profit. Now, if you are passionate bitcoin like myself and Metamorphosis, what you can do is say let's forgo the profits today. But also depending that we have a job with our so it's really nice that we've been able to get a company like I was K for example, that actually pays us to grow these communities to improve risk on adoption in Zimbabwe. Anyway, what is happening is that you can basically forgo the profit and then bring the trees down to about 2% 3% and then what happens is that you now can sell bitcoin cheaper than most of these stable coins like US CC UCC. And then also you can also undercut the current legacy system which is also charging around ten to 15% premium. And then people can now start seeing what should the financial benefits of using bitcoin. Once again, the problem is that Bitcoin's financial benefits was taken away when exchanges went away. But now we're saying, okay, maybe that's actually an advantage and something that we can use against these individuals to ensure that we can push Bitcoin because backstabbing like Donald Chain, for example, at a very low fee. If you guys can do that, that is brilliant, because that gives you an advantage. I wanted to ask you, we're going. To be working on that. We believe that stable coins are kind of the short term solution for a lot of people. Like you said Thomas, a lot of people cannot afford the volatility of bitcoin, but they can use for sure unstable coin that is backed by bitcoin and that all the fees that you pay go back to the miners and to the bigger ecosystem. And I think it's a certain solution for a lot of people. And we believe that a lot of people are going to embrace crypto through a single point that is backed by bitcoin. They are going to see how bitcoin can add value to their life, and then they're going to understand bitcoin after that. So I think what Alexandria is proposing, I think is key, and I believe it's a great strategy because it's going to be for them, like, seven to 8% cheaper than buying USDT and more secure even for them. So, yeah, I think it's a great strategy and I hope we can make this happen and it's going to help a lot of people there. Yes, absolutely. Absolutely. For me, a bitcoin backstop solves many, many things. At the same time, it allows for millions of users that cannot use bitcoin to benefit from bitcoin, to benefit from the growth of the network, the security from the network. And also because all the fees go to the bitcoin miners, all those new users, they are also making the bitcoin network stronger. So it combines a lot of things that it surprises me that a lot of bitcoiners have such a hard time understanding this. And that's why I wanted to have your perspective, Brian, in all of these. Because in your book, bitcoin evangelism, you do a great job explaining everything of how bitcoin is, how it works, what it means. And he also described when you talk about altcoins, that a lot of the altcoin services would be built on big coin eventually. So I wanted to ask you if you have tried any of the VidCon layer two solutions or these big compact stable coins, or if you have any questions or anything in that regard. Yeah, that's actually part of why I really like jumping on with you guys. I see this as a really good opportunity for me to learn. The only layer, too, I really have any familiarity with is lightning. I mean, I really want to learn more about rootstock. I want to learn more about bitcoin backstable coins. If you wouldn't mind, can you break down how a bitcoin backed stablecoin works? Like, how did the bitcoin reserves work and that sort of thing? Because this is very much I mean, it's pretty funny. Bitcoin is such a new space, right? I mean, I've been in it for ten years, and it's evolving at such a light speed that even the quote unquote experts, nobody's an expert at every element of it. Nobody's a doctor in bitcoin at this point, right? So I'm really here in, like, a learning capacity for these particular things. So if you want to mind just breaking that down, because I feel like that's part of my bitcoin, evangelism is to help people understand some of these emerging concepts, because, yes, I think the concept of a bitcoin backed stablecoin has a lot of allure of people that I talk to that particularly talk about the volatility. Like you mentioned earlier, a bitcoin where I lean into the volatility of bitcoin. I actually don't shy away from that, but I go the one bitcoin is one bitcoin and that sort of thing. And that doesn't appeal to everybody. And I understand why, if you wouldn't mind just illuminating this idea of bitcoin back stablecoins a little bit more for me. I mean, you guys are talking about it in a very practical sense, so I get it in that regard, the need for it and why it works. But if you can maybe even explain some of the technical side of it, not on like a computer science standpoint, but just maybe how the reserves work, how do the fees go to the miners and those types of things. Right, yeah, I can do that. I wouldn't be able to explain it technically, even if you wanted me to. But basically, the bitcoin network would stand as, like, the base layer, and on top of it, you have different layers, too. Like lighting is one, liquid is another one, and you have Rootstock. Some of the key characteristics that I love about Rootstock is that the main currency is pegged one to one to BTC. So it's our BTC, and you have the bridge that you can go back and forth. And one of the platforms that are running now on Rootstock is called Money on chain. And I created the first bitcoin backed stale coin. Before. Sorry, I skipped this very important point is that root stock is merged mine by the bitcoin miners. So if you're a bitcoin miner, you can mine both chains at the same time with no extra cost, and you earn more bitcoin if you do. So Roots talk at the same time, make the bitcoin miners earn more money, which most like now is quite important. So you earn so that the revenue would be the mining reward plus the bitcoin fee from the block and then whatever fee reward from the root stock block. Okay. And you get that in bitcoin. Right. And then we have the main chain, which is money on Chain. Actually, before we go into money on chain, to me, the fact that Rootstock has bitcoin as its native currency and the fees go to the bitcoin miners makes it very much aligned with bitcoin because it means that all the value from Rootstock is going to accrue to bitcoin, the asset. And all the extra financial movement that happens on Rootstock goes to the bitcoin miners to make the bitcoin network stronger. So they're very much aligned in that sense. Sure. Yeah, I want to add on I just want to add a few other points. The first thing is, as soon as you buy your bitcoin, basically what you do is you plug into a permissionless, peg into small bitcoin. So you have a small contract plus your bitcoin. And then this allows you to basically now mint a dollar and chain. So dollar and chain is basically now a bitcoin has backed eight to one. So for every $1 of bitcoin, so dollars of bitcoin, you have $8 of bitcoin basically backing it, basically. And then I think what autonomous is saying is that whenever the individuals that are mining bitcoin, these individuals with a slight switch can also use a place that's called neo merge mining, which allows them to also mine the restock network, basically, which is the second layer towards that. So right now we're saying about kind of varies from 40% to about 60% of breakcoin hashing power. And like what you said, basically all of the cryptographic hashes from the restock network is actually added onto bitcoins. They're one's block, basically. So this means it's very beneficial to the bigger ecosystem because every dollar that individuals buy basically just adds value to bitcoin itself. But I think also the one thing that I think was important was I can't sell bitcoin at extremely low premium at 3%. For example, in because of the volatility, we can see bitcoin moving from 5% to 2% on a daily basis, which is good if you're just someone who wants to buy and hold it for a day to day basis. But now if I want to pennies with the market and offer extremely low fees, for example, so that bitcoin adoption can occur much rapidly, it's not really possible because of monetility. But what I can do is I can use the same that uses bitcoin as a net currency and basically start selling that at about 3%, where the only thing that I'm charging is the cost of transportation to go to a country that has exchanged, buy the bitcoin, come back to Zimbabwe and sell it to individuals. So that individuals can now use this as a form of remittances. Because the one thing I'm noticing is that everyone wants to use big kind of remittance, but the cost of fees is what's really kind of interesting sometimes. I remember I wanted to do a geo transaction when I was in Boswana with my father who's in Zim. As soon as you heard the fees, you're so shocked that we were paying this much in Zimbabwe. And that's something that I've always kind of disliked and I think I want to try changing, but it's only possible because I can use auto and chain, which has no volatility and stuff. ",timestamp:"00:22:42-00:37:24",topics:["Bitcoin-backed stablecoins","Bitcoin exchanges","Brian De Mint","Rootstock blockchain"],type:"twitter_space",weight:5.239642381668091},{boost:0,date:1472358600,description:"Growing small business to increase the economy",episode_title:"TheMacroView Episode 4: Access to Capital",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/8e52e9c4-52e8-4dea-8ed9-8c6a7fcef25a.jpg",keyword:!0,link:"https://www.blogtalkradio.com/themacroview/2016/08/28/themacroview-episode-4-access-to-capital.mp3",node_type:"clip",pub_key:"",ref_id:"7eca97d5-7a23-4e41-8e04-cfffdef85f06",show_title:"The Macro View",text:"can start to really fund our Social Security liabilities and our entitlements and we're going to talk about that in another episode. But one of the things we got to do to be able to do any of this, we got to get the economy moving again. And the way you get the economy moving again is you do what we had throughout the early 90s, which is just flourishing small businesses that were able to access capital. And yeah, you had scams that went on with the pink sheets pushers and the people robbing old granny. Yeah, it's sad and it sucks. And a lot of these regulations exist but most business owners aren't like that. And honestly anymore. I don't know if it was just totally I'm too young to know and I didn't work there. I don't know if Wall Street was just really a bad place back then. Maybe it was. But I'm in the financial industry and I know a bunch of financial advisors and guess what? They're not bad people. They're not bad people, they're good people. They want to do best by their clients. They want to do best by their clients and they're not going to go and rip their clients off. But if you had a vibrant market where they could get good information, they knew that these securities were legitimate, that they had been vetted, that they were on a market where there's transparency into the businesses. Maybe you don't require quarterlies for small businesses because that's too expensive, but maybe you require an annual or maybe like I said, you have some sort of financial portal where shareholders can at least gain that next level of insight into what's going on in the business at that early stage of a small business. But we need a vibrant market. We need a vibrant market where wealthy people and nonwealthy people can go and find strong early stage business deals. Investment opportunities and ventures that are early stage and start up and where they can put capital at risk in a way that feels safe and secure on a market. That they vet them and make the registration process cheap and easy and the securities that are offered are somewhat standardized and you have some insight into that. Business people will do it. And then you slap a tax credit for pre revenue and a tax deduction for post revenue and that accounts for the risk. And maybe what you do is for those pre revenue businesses, the only type of security they can offer is a convertible that pays a coupon. So you're lowering the risk profile. I wouldn't be a fan of that. But hey, it's a step in the right direction. I'd rather prefer where investors and businesses, businesses offer the type of security that investors want to buy and where as long as that capital is flowing to a small business or startup that is taking that capital, putting it to work and hiring new people, what I want to see is I want to see new businesses come out with new technologies, with new products, with new services. I want to see them compete against the old ones. I want to see them hire new people. I want to see them drive the cost of goods down. I want to see them drive wages up by competing for the best talent. And the way that you do that is you get entrepreneurs who are out there. There are entrepreneurs out there who want capital to put to work, who they know with the right amount. They just overcame the barriers to entry that we all set upon them with our really high regulatory costs and ridiculous regulations. If we just overcame that as an entrepreneur, we would be successful. And what we need to get there is a little bit more capital than what we foresaw because we didn't realize all these regulations were coming out. We started three or four years ago and wham, we got slapped with tons of. Uncertainty and we have no clue when it's going to be implemented when or what's going to be implemented when and it's a total mess if you're an early stage entrepreneur especially in a highly regulated industry. And that's my weekly rant for today. I hope you guys enjoyed the show. We're going to be wrapping up here in just a second. Got about four minutes left. I apologize for the technical error earlier on. Had a little bit of trouble with my microphone when I tried to dial in it's just a ton of static in my headphones. So we had the show scheduled earlier and unfortunately I was in it. Had a lot of static going on had to unplug my microphone and try to figure out what was going on so I just had to end up recreating the episode. Sorry about that for all those that listened to the first one I had posted and are now going to check back in a little bit later. So to wrap up I wanted to talk about something that I saw the other day that I thought was really funny. I thought it was very creative and expertly put together and what it's called is Lovegov and you could just YouTube search YouTube lovegov and it's a series about six short videos about five minutes each and it is a sort of a satirical show where a girl falls in love with a guy named Gov and Gov is sort of for all intents and purposes a government regulator but kind of is the allencompassing federal regulator. He comes and points out every little thing and it's just her life through college and government encouraging her to do this with certain incentives or Gov not government but Gov is encouraging her to do this with certain incentives or encouraging her to do that with certain incentives like in college and going abroad and taking on all this debt and then when she gets out starting a business oh yeah I love small business. Not as much as big business but I like small business too and here I've got your ocean safety regulations and I'm not doing it justice at all. You got it. And maybe on the next episode I'll play a little clip for man might try to reach out and get permission to do that. I think it's done by the Independence Institute but if you go on YouTube just type in Lovspace G-O-V Lovegov and you'll find it and I think that you'll really enjoy it. I think it's really well put together. It's the type of thing that we need more of. We need more satirical comical culture winning culture winning media that's funny. That's light but there really does nail the point across and I think that this little short series of videos really dead it was really good. Had me laughing but at the same time was a serious point that got across and got made and I think it's very relatable and would be very relatable to a lot of people of all political ideologies to show how government gets involved in the market and really destroys a lot of the market incentives and makes it to where people have a much harder time going about chasing their dreams and pursuing what it is that they really want to do and what they thought was their version of the American Dream. Not some Washington bureaucrats version of it. Again, this is Andrew Smith coming to you live from downtown La. This was the macro view. Hope you guys enjoyed it. Tonight's episode is all about access to capital, how we're going to get it, why it's so important, and talk a little bit about why we don't have it right now. If you're just tuning in now, go back and listen to the episode in full in about ten minutes and we're going to wrap up here. Hope you guys have a wonderful weekend. Take care. Again, this is The Macro View, coming to you live from downtown La. ",timestamp:"00:52:24-01:00:00",topics:["Small business","investment","new business","capital access","entrepreneur","government regulations"],type:"podcast",weight:5.209966659545898},{boost:0,date:1671321600,description:"How big data center miners help enable self sovereignty for individuals",episode_title:"#Bitcoin Mining Saves the World - Brought to you by Marathon",guests:[{name:"Steve Barbour",profile_picture:"https://pbs.twimg.com/profile_images/1592714173469065216/q8kXPyQI_400x400.jpg",ref_id:"63a731b8-4759-4360-9e9d-d66f884e12d8",twitter_handle:"SGBarbour"},{name:"Nathaniel Harmon",profile_picture:"https://pbs.twimg.com/profile_images/1578090357102780416/etXW-RA9_400x400.jpg",ref_id:"9105fb4e-4150-4c25-90f1-8ea770585749",twitter_handle:"NateHawaii"},{name:"Taylor Monnig",profile_picture:"https://pbs.twimg.com/profile_images/1599563776621219840/mvb8y3zY_400x400.jpg",ref_id:"b8513b01-ff94-4d7f-944f-5c92e1126885",twitter_handle:"taylorbmonnig"},{name:"Harry Suddock",profile_picture:"",ref_id:"6440ea0f-c982-4b76-b7c2-9c6bf7e9a4a9",twitter_handle:""}],hosts:[{name:"George Kaloudis",profile_picture:"https://pbs.twimg.com/profile_images/1545498090118950913/aGCJaGqF_400x400.jpg",ref_id:"4ae2c311-16fd-4586-b65d-f046b1feb9ce",twitter_handle:"gckaloudis"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/492cbcce-3744-4d8b-b2ca-3a7f063e798a.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=Tk8oChjgVhw",node_type:"clip",pub_key:"029099ec31eb33594611dc47d5c93de2c1aa86918e3a36b408c14a500601c8bc9b",ref_id:"6e890ef3-7358-40d6-a01f-44f444dbabfc",show_title:"Swan Bitcoin",text:"Taylor, we're talking about the little guy a lot over here. And you work at a big public mining company. So how exactly are you big data center public miner helping enable self sovereignty for the little guy? So I guess I'll take it from a society perspective, our last two acquisitions are good examples of this. These are sites that are in, you know, rural Georgia, have a ton of excess power that was simply just going to waste. We've been able to go in there, utilize over 100 power, provide over, you know, 50 jobs, and introduce bitcoin into the daily lives of all these people, along with millions of dollars of revenue for these small cities. So from a self sovereignty perspective, it might be a little bit difficult. But from a societal perspective, we're making a huge impact with mining all across rural Georgia by building these data centers. Cool. Let's talk about energy. I think people want to hear us talk about energy anyway. So Harry you touched on it. Per capita energy production is a good thing. Energy go up, bad things go down. I read something recently from Lyn Alden where basically we're just trying to capture the sun in some capacity, as much concentrate as sun as we can. That's ",timestamp:"00:09:38-00:10:45",topics:["Self sovereignty","Bitcoin mining"],type:"youtube",weight:11.383676517140954},{boost:0,date:1623733200,description:"The Processes and Procedures in Small Business",episode_title:"Andrew Frazier on Running Your Business",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f2b2a2b2-8869-4256-94b9-a91c91c1ce7e.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/122_e4b_andrew-frazier.mp3",node_type:"clip",pub_key:"",ref_id:"3dacb7c8-34d2-4e73-8064-5d53c6857239",show_title:"Economics For Business",text:"to our interview. When I was in the big business world, Andrew, we used to build what we call process maps, which are every step in the process, every handoff who's involved, what the output is, what the input is to the next step. Is that what you're advocating, that kind of detailed process mapping our step by step outline of activity? I'm advocating that, of course, in small business, you have a lot less resources and manpower, so it's a process. And early on, when you're working in your business, you're working and sort of developing them as you go. But to move forward and grow, you have to become a supervisor and a manager. And at those levels, you develop the process and procedures so that you can build your organization and continue to do business the way that you want to do business and in the way that has made your business successful previously. Yeah, we used to have a thing called the Procedures Book that catches all of those processes. Do you recommend that small businesses have something like that? They accumulate these processes over time? I think you do the keys to really going from working in your business to working on your business. That's where you develop your processes and procedures and you optimize your business. So that's really what working on your business is. And by doing that, you also increase capacity. So you're working in the business, you're working on developing your products, your services, finding the right target market for that. Once you do that, then you should pivot to working on your business, which is really when you're putting processes and procedures into place, you're optimizing your business plan and your strategy, and then you're building capacity and then working on the future of your business, you're really developing your strategic growth plan ",timestamp:"00:19:37-00:21:44",topics:["Small Business"],type:"podcast",weight:5.171255588532055},{boost:0,date:1613511331,description:"The Bitcoin education",episode_title:"WHY ARE WE BULLISH? Bitcoin Buying Tsunami Swells in All Waters ep147",guests:[{name:" Away Slice",profile_picture:"https://pbs.twimg.com/profile_images/1493953883370053632/rvtEfkr-_400x400.jpg",ref_id:"ff304d54-ca39-45eb-98ef-483460548c9a",twitter_handle:"add_slice"},{name:"Littlest Hodler",profile_picture:"https://pbs.twimg.com/profile_images/1396223393322749952/uzavXUxh_400x400.jpg",ref_id:"5eaa1126-c920-4860-89a0-459e64be2af5",twitter_handle:"littlesthodler"},{name:" and Colin Aulds",profile_picture:"https://pbs.twimg.com/profile_images/1151579149091262464/uNkb8aat_400x400.jpg",ref_id:"fbd7719d-1c4a-497d-96a8-1d34e2e91702",twitter_handle:"Colin_Aulds"},{name:" Mark Moss",profile_picture:"https://pbs.twimg.com/profile_images/1501276126823346177/6grHYzO4_400x400.jpg",ref_id:"5a1cc110-3363-4dd1-a568-e80f70a51925",twitter_handle:"1MarkMoss"}],hosts:[{name:"Ben Perrin",profile_picture:"https://pbs.twimg.com/profile_images/1181715113226596352/ipGVEcYH_400x400.jpg",ref_id:"e6b013ef-178b-4b41-95ee-423148a3dc3a",twitter_handle:"profbenperrin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/26808829/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2021-1-16%252F91cb3e87-a549-79e0-bed0-3b2785b9eed4.mp3",node_type:"clip",pub_key:"02c431e64078b10925584d64824c9d1d12eca05e2c56660ffa5ac84aa6946adfe5",ref_id:"1376395c-9c36-4f82-bdde-86ce6cf7ba26",show_title:"BTC Sessions",text:"most of the time, spent some time with a small company. Now I'm back with the big guys and account management. So I'm not doing as much face to face anymore. But in sales we talk about 90% of sales is listening. So to Mark's point earlier, you don't just say, you know, I've got this widget and it solves 86 problems. Nobody cares about that. If they only care about the one, maybe two problems that it solves for them that's specific to their use case, right? So I have a personal rule with friends. I'm from a very small town. I don't have a lot of friends that are in a bitcoin. I have had two people this week alone come to me. Usually starts on like, Facebook messenger or something, and then we meet up for a beer and chat about it, but I never bring it up. I'm involved a little bit with the Bitcoin runners fitness club over in Europe, so I have a couple of t shirts and stuff, so I wear them to the gym so people know, but I never bring it up. I let people come to me, and then they bring up, listen, I'm worried about how much my grocery bill is going to be next year. I'm worried about bank of Canada borrowing all this money on Canada too. So it's like they say, we're borrowing money from the bank of Canada, but what they really mean is that we're just printing it, and it's impoverishing all our children and grandchildren, right? So I wait for those kind of conversations, and then usually I'll sit down with them with a beer and say, what do you want to do? Do you want to get in? I don't want to show anybody while I'm here, but I do tend to point people to shake pay. I find it's an incredibly simple user interface. If you can send an e transfer, you can use shakepay, share it to Ben. Because you pointed me to blue wallet when I was kind of onboarding my wife a few months ago. I've been doing the hardware thing for a little while and was kind of out of the loop as far as digital wallet goes outside of lightning, so I asked for you for some recommendation. Blue is great because it's got some very basic features. It's easy to learn, and then you can kind of scale up from there as you need. But I think I have an onboarding a lot of people. That's not my goal here, but that's my system for doing so when it arises, right, is that I wait for people to come to me, and I wait for their specific problem, and then I say, well, I can help you out. And this is the underlying technology behind bitcoin that may help alleviate your fears or put you on the right path to whatever decision is right for you. And sometimes that means they spend. I had a buddy the other day that cashed in $50 on his wealthsimple account after doing some stock trading just to see what it was like. And maybe he comes back to me. Maybe that's as far as he goes, right? But I've had other guys that I've helped out that I know are a little bit deep for average, regular middle class people. So that's my strategy for onboarding. It's not something I actively seek out, but I'm always happy to talk about it when it comes out. That's awesome. Tons of noobs coming in these days, and it's only just beginning. I feel like all of us are probably starting to get those friends and family members or even just random DMs from people on all kinds of different platforms. So exciting to see. But we've got our work cut out for us, that's for damn sure. So what I want to do, obviously, again, there's almost 140 people watching smash like button. Give this a share. Let's get a few more people watching it here. We're going to jump to Mark. Mark, dude, let's do a refresh here. What has you feeling bullish this week? Yes, I mean there's so much to be bullish for, right? But I guess today I was digging through some data, looking at working on my next video. Some of the data I was looking at today ",timestamp:"00:47:46-00:51:21",topics:["Bitcoin education"],type:"podcast",weight:5.149457931518555},{boost:0,date:1571767106,description:"Is the device able to verify bitcoin transactions? ",episode_title:"BUC Live: Lightning Hardware and Nodes Panel from The Lightning Conference Berlin",guests:[{name:"ketominer",profile_picture:"https://pbs.twimg.com/profile_images/1245972079528329218/YDUD9N2Q_400x400.jpg",ref_id:"2f8b0b59-6f23-4c89-973c-668cc7666998",twitter_handle:"ketominer"},{name:"Stacie Waleyco",profile_picture:"https://pbs.twimg.com/profile_images/1490885395390861317/MOzYmFOn_400x400.jpg",ref_id:"d4292662-08f9-4b16-a889-b61a401edcc2",twitter_handle:"satsie"},{name:"Christian Rotzoll",profile_picture:"https://pbs.twimg.com/profile_images/1593996559162773504/qKZTYL0I_400x400.jpg",ref_id:"8c13f2e9-d81a-4116-9ad7-d14a66d5f899",twitter_handle:"rtzll"},{name:"Sebastian Küng",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"04448652-5b1f-480c-a573-17c7de956e2c",twitter_handle:"sebastiankueng"}],hosts:[{name:"Anita Posch",profile_picture:"https://pbs.twimg.com/profile_images/1491071678725644288/yehGegWl_400x400.jpg",ref_id:"b60af304-7a57-4a2a-b988-92b960a6b0a1",twitter_handle:"AnitaPosch"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/357dc2db-2643-49f0-9393-5a20ed21d0fe.jpg",keyword:!0,link:"https://bitcoinundco.com/en/podlove/file/533/s/feed/c/mp3/029-en.mp3",node_type:"clip",pub_key:"03abd9980b0c94ddbce7bde91affd5894ca40aaeda0ee0a33503e0c9bb55307274",ref_id:"f6e48088-be00-4596-8731-433c94a02ddb",show_title:"The Anita Posch Show: A Bitcoin only podcast",text:"When I think about buying a Bitcoin node or Lightning node, I'm mostly interested in verifying my own Bitcoin transactions because I don't want the hassle to install a full note on my laptop and stuff. Do your products verify Bitcoin transactions? I mean, can I verify my own? I think I can speak for everyone here. That's the main goal of having the hardware for loans. Okay, I just heard that not all devices do that. So that's why I'm asking. I don't know, maybe this is a misinformation. Yeah. So those boxes, I think everybody has started with very small hardware. So I think the castle box also in the beginning. Raspberry Pi three. Raspberry. Also had the raspberry pi three in the past. Now also offering or being able to use the Raspberry Pi four and with the response such a low powered hardware, then you would need maybe to get the whole blockchain, you were not able to verify it yourself, so you had to rely on some kind of downloaded blockchain, whatever. That was not a good approach. But now with the recipe by four and I think even also all the other boxes are using now power full enough hardware to really verify the whole complete blockchain yourself and have the whole copy of the blockchain then at your service. And then you can do everything with your node and verify everything on your side without relying on any third ",timestamp:"00:07:06-00:08:37",topics:["Bitcoin","BTC Node"],type:"podcast",weight:5.1300153732299805},{boost:0,date:1266645600,description:"Big business Vs Small Business in the Free Market",episode_title:"13. Monopoly and Competition",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ef62c7ab-ef09-47b7-9af4-2ebe2384a72f.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/13_AustrianEcon_Rothbard_1972.mp3",node_type:"clip",pub_key:"",ref_id:"cd0d29e6-af1f-4a94-8fc9-cc38a719807b",show_title:"Austrian Economics: An Introductory Course",text:"thing about big business versus small business. It's not always true that big business can out compete small business on the free market. When Standard Oil, for example, had achieved something like 90% of the oil refinery business by 1900, they began to slip. After that, before the anti trust action against Santa world. They began to slip because they weren't the company gets too big on the market, they began to get sluggish bureaucratic. They don't look for new things, new inventions and new processes. Santa role was the last major company to get into the involved. Santa Claus always been based on Cleveland western Pennsylvania oil fields. And so they're the last major company that began interest in Texas and Oklahoma oil fields. This is the wave of the future. And so then Golf comes in as a new company in Texas and they begin to outdo being to take an increasing share of the business away from San Oil company. And the same thing happened all across the board. US steel, for example, gets formed with something like an attempt to monopolize. The whole steel industry gets form as 80% of the share of the market or something like that. It's now something like 20% slipping all the time. Every year USD sinks deeper and deeper into slots. They were too big, they were outcompeted. USD was the last corporation in the world, practically. They adopted the basic oxygen process, which is the latest improvement in the method of producing steel. And this is through many areas across the board. One of my favorite examples of this is the heroic small business which is always able to outcompete big business or larger business is therefore always put out of business by government. These are the heroic small pushcard peddlers. If you remember back to the push car pedaling masses. The push car peddlers, they have almost no capital. You can't get much smaller than a push card cover. The capital has push cart and as they supply apples or whatever, and that's it. Sometime before the push cart, the push car pedal was sort of the aristocrat of a pedaling business. Before you got to be wealthy enough to be a push car pedal, you just had a box or a case or the lease or something, that was it. Anyway, the push car peddler doesn't have any capital. It doesn't have nearly as much capital as retail stores or department stores, et cetera. And yeah, he has a great advantage. He's mobile when it's raining out, he packs up shop, he doesn't have to pay rent, he zips around, he can get to the best corner, he can get to the rush hour corner, 42nd street or whatever. And therefore he's usually able to do very well in competition to such an extent that in city after city, in town after town, the United States, the retail interests, the retail stores were able to put political pressure on the government to outlaw the pushback, either by charging a license to them, which is prohibitive, or by just putting out of business altogether. Usually on the grounds, of course, the government can't say, municipal government can't say we're doing this because we want to privilege the retail stores. That would be a little too hairy. So they say it is unaesthetic. New York is so beautiful, for example, and the streets are so beautiful, we can't allow the ice to push guard pepper. So you can imagine how much ice that cuts. And the retail business, by the way, the whole history of the retail business in the United States is a whole history, a whole record of humbling, the competition of new people coming up and delaying a competitive process by the use of government. First, it was a traveling salesman. As you all might know, traveling salesman jokes were sort of the big dirty joke thing years ago. And the reason is the traveling sales were illegal most of the time, 50 to about 18 months. The institution of traveling sales when it first comes in about 1850. Before that, there are only six stores, and you buy from somebody in New York, in Detroit. Traveling sales is a great new invention in the retailing industry. And for about 25 years, I put out a business because the existing stores are competing in the traveling sales. And then, like the fact traveling sales, when mobile flexibility zip around, they sell on a personal basis and all that. And so town after town, all over the United States, past ordinances either outlawing traveling sales altogether, ultimately placing very high license taxes in order to get into beach for Wyoming, have to pay $100 a year or something. So if the traveling sales going to pay all the license fees, you would have to pay $20,000 a year or something out of business. As a result of traveling sales was always in a state of illegality. He was constantly on the lamb from the cops, one panel to the other. Therefore had a sort of disreputable. The whole profession was disreputable. Something like bookies today, I guess. And so he had a family salesman joke because of the disreputable profession. Finally, after 25, 30 years of being a state of outlaw, they finally did so well, they finally pushed their way through, and they finally allowed to exist. It became accepted in the retail industry, and most firms then began to operate employee traveling. So they sort of joined them if they couldn't lick them no sooner. That happened in late 19th century. Things are doing pretty well, and all of a sudden, that vicious new monopolistic thing comes in horizon terrible thing, the apartment store. An apartment store first comes in. I said, oh, my god, it's awful. Awful thing. Instead of having one store sell, one product has this terrible monopoly store like Macy's that's selling everything. That's obviously an evil monopoly. You have to smash it. And so the government starts putting on department store, special department store taxes and special restrictions. And that took about 20 years before the department stores worked themselves out of that. Finally, the department store is just about accepted, and the hobbling of the apartment store is eliminated. We got a new terrible thing. The chain store. Amp the first big chain store. And I still remember I'm moving up to remember the days and amp an evil monopoly and you have to smash it and break it up because the mom and pop stores are going to be put out of business. And that's where they had spaceway. And all these others coming out competed amp and nobody talks anymore about breaking up amp. Amp is pretty cruddy shape in comparison with the newer and more efficient stores. ",timestamp:"01:13:30-01:19:27",topics:["Big business","Small Business","Free Market"],type:"podcast",weight:5.126088380813599},{boost:0,date:1471930200,description:"Survival rate of small business and startups ",episode_title:"TheMacroView Episode #3: Financial Entanglement",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/8e52e9c4-52e8-4dea-8ed9-8c6a7fcef25a.jpg",keyword:!0,link:"https://www.blogtalkradio.com/themacroview/2016/08/23/themacroview-episode-3-financial-entanglement.mp3",node_type:"clip",pub_key:"",ref_id:"bdc4757d-1e87-4fa3-b293-6f375af8490f",show_title:"The Macro View",text:"scatter plot chart and it kind of shows from the first year through the 10th year, we have a little bit more data than that, but this was a more complete data set and more recent as well. This is slide number 13 on episode four slideshow. And basically what this shows is that look, after year two, about 79% of businesses are still alive. Tier three, about 67%. This notion, which we hear, it's a cliche that we hear a lot throughout our lifetimes, that within three years, 90% businesses or nine out of every ten businesses go bankrupt, it's actually not true. About one out of every three goes bankrupt. Two out of every three are still alive after three years. Now, after four years, it goes down slightly under 60%, just 60%. After five years, just under 55%, about 53%. After six years, about 48%. After seven, about 44. After eight, about 41. After nine, about 38%. And by year ten, about 36% of the businesses are still alive. Essentially, after three years, you got one out of every three that's gone bankrupt. After ten years, you got two out of every three that's gone bankrupt. So is it that risky? What we're not showing here in this slide, and I may add a slide trying to show this, is what the upside is not every business is a grand slam, not every business is a grand slam. And you could still lose money as an investor through dilution and have a restructuring and whatnot, but the business still be alive. That is the case. I'm not going to deny that is the case. But if businesses are generally surviving far longer than what we expect, should there be this much fear built around this idea of businesses going out of business really quickly and not being able to lend to businesses? If you're a private individual who's not necessarily in a credit investor, not really even having a market for it, not really having exchanges for it, making it highly restrictive on banks and offering incentives to banks to only lend in certain ways to these small businesses, ie. SBA loans that are guaranteed 75% are guaranteed by Small Business Administration of the government, and in some cases, higher than 75% are guaranteed. So why would a bank lend to any other small business other than through an SBA loan? So you've got misalignment of incentives, you've got a number of other issues on the banking side, and then on the private individual side, you have literal laws that make it more difficult. The lower the amount of capital available to people the lower the amount of capital available to people that are trying to start a business and restrict mechanisms for delivering capital from an individual with capital to provide any business that needs capital to put to work, and then being able to come to a transaction that makes sense, a value that makes sense to both of them. And to do this on a mass scale with thousands of people. As opposed to trying to find one or two or three wealthy individuals and have it set up in the right way with technology. You can do it really. Really quickly and really. Really easily. And you can be fully accountable and you can have the bookkeeping and records keeping. You could do based annual reports that provide enough information to shareholders and most good business owners are going to do that anyways. But the idea that we don't have this mechanism in place and that it's actually illegal to raise money from somebody who's not an accredited investor from the general public if you're not a publicly traded company. And I-E-A large company because a lot of the exchanges have rules where you have to be over a certain size in order to list on those exchanges. Now, there's the over the counter exchanges that don't, but a lot of those are looked at very poorly by mainstream America, and there are no mechanisms offered by the big retail brokers for equity or debt crowdfunding for small businesses to be able to access those markets. And quite frankly, I don't blame them for it yet because the rules are not really clear on where that's going to go. The jobs that tried to clear that up, and now you get the SEC trying to really write the rules, and it's not really much is changing. They can do well. If you're worth 50 million, want to raise capital from the general public and not go public, then you can kind of do that. But you got to be big already. 50 million is not a huge business, but that's not the size I'm talking about, okay? The size I'm talking about are startups to three or $4 million, maybe $5 million in revenue, or if it's a very low margin business, maybe two or 3 million to $5 million in profits. That's the size business that I'm talking about that has difficulty gaining access to capital. And we need to figure out a way to match people who have capital to lend or invest with businesses that are of that size. That have capital. That have a need for capital to be able to put it to work and put it to work quickly. That will hire people that have good business models. That they could scale them. Will become profitable. And all they need is access to capital to get there. That's what the next show is going to be about. I hope you guys enjoyed this little pop up show that I did tonight, talking about the cost of the regulatory environment. Remember, it's about 11% of GDP. That's the hidden cost. That's the hidden cost that affects people's wages, that affects the amount of money that you pay at stores for goods. That affects every aspect of your life. It affects the cost of the house you buy or the home that you rent. Whatever the case is, whatever you're thinking about, why is this so difficult? This is a big reason why these regulatory costs $1.8 trillion in regulatory costs, the hidden regulatory costs, which are more than the federal tax base, excluding capital gains and some excess taxes and things like that. But if you're just to account for corporate and individual income taxes, the regulatory costs are bigger than that income tax base. That's insane. Those are hidden costs that we're all feeling right now. We're wondering why. And some people are saying it's Mexican immigration. Some people are saying it's free trade agreement. Some people are saying other outlandish things that have no basis in reality or tried and true economic theory. We do need to simplify the tax code even if we leave rates the same, we got to simplify it. We got to flatten it. We got to flatten it for people. We got to make it a lot easier for them to comply. It's got to be able to be filled out in a matter of a day. And same thing for small businesses and really for all businesses so that they can keep more of that money and they're not having to pay auditors and accountants to prepare it. And we've got to go to a system where we adopt somewhat of a no harm, no foul rule for business owners where so long as we got to get rid of all this idea, we got to regulate best practices. Best practices regulate themselves. If you're not providing best practices as a business owner, you will have a competitor who will and will steal your market share, will steal your employees and we'll put you out of business. That's what happens. That's how competition works. That's how the market works. So we've got to get rid of rules and regulations that serve no purpose other than to say hey, we know better than you and if you don't do it our way, we're going to impose fines on you. All those do is set up barriers to entry and really do disincentivize the wealthy people who would invest under the current system from investing and would disincentivize the nonwealthy people who they're just not able to invest in these companies from investing if they understood those situations as well. Because it's very risky if your business could be put out of business by the government because you lost a sheet of paper or because you happen to run a factory and you have to have a stop button for the assembly line. But the assembly line is set up in a way to where it doesn't really work that way in your factory, which is a real case. I can't remember the name of it, but I'll post on the website when we eventually get the website up and going. But this was an actual case where essentially OSHA came in and said you have to have this and that. If they had actually understood the business circumstantially, not just broadly, these are the rules, these are the regulations, you have to do this. They don't understand why they really didn't need that. And there's a lot of those cases all throughout every single industry. No matter what industry you're talking about, you have tons of regulatory costs that are related to things that don't matter at all, that barely ever happen. And if they do happen, they're more of a tragedy that wouldn't be prevented by that regulation. And the reason that regulation exists is primarily because some expert who either worked for or used to work for a big major corporation, walked into a congressional hearing and publicly gave guidance to the regulatory bureaucracy that was writing the rules that Congress delegated the right to write and this expert is guiding them. This expert basically works for one of the big companies in that industry. That's how these things work. They don't come to small five person shop say hey, how do we do this? No, they go to a quote unquote expert from a major corporation and that quote unquote expert from a major corporation has their own interests and they're going to guide what they want to guide. At the end of the day. You end up with massive regulatory costs that don't really solve the problems that people cried out for regulation to solve because those problems are best solved by competition and regulatory bureaucracies prevent competition and by preventing competition they prevent the end goal that they've stated to try to achieve. Which is to create more equality in these markets and more fairness in these markets and a better distributive share of whatever and to have less negative incentives in the market for people to go out and commit crimes. Financial crimes. And to rip people off to make it harder for people to do that. Well the way you make it harder for people to do that is you have tons of competition. That's the way that you do that. And by having all this regulatory cost you reduce the competition and therefore reduce the amount of natural regulation that occurs from it. Well everybody, I hope you enjoyed tonight's pop up episode. I'm going to call tonight for there again this ",timestamp:"00:44:04-00:55:36",topics:["Small business","entrepreneurship","startup","regulatory cost","income tax"],type:"podcast",weight:5.105514287948608},{boost:0,date:1596686400,description:"[[Bitcoin Energy Consumption]]",episode_title:"Chat 45 - Bitcoin an Energy Revolution A panel at the VOB Conf",guests:[{name:"Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"da6fc991-7080-461c-86e3-4ac18c2f413d",twitter_handle:"tonevays"},{name:"Phillip Sandner",profile_picture:"https://pbs.twimg.com/profile_images/1043824764161335296/2SW3duCV_400x400.jpg",ref_id:"e1996e82-0354-421c-85d5-f18eebec9506",twitter_handle:"philippsandner"},{name:"Jesse Peltan",profile_picture:"https://pbs.twimg.com/profile_images/1123954968636088326/EAjHUGDE_400x400.png",ref_id:"96309505-caeb-47bb-a1ba-712b97292675",twitter_handle:"JessePeltan"},{name:"Christopher Bendikson",profile_picture:"",ref_id:"d72ead54-7bff-4874-870f-123e665fddfd",twitter_handle:""},{name:"Christian Stoll",profile_picture:"https://pbs.twimg.com/profile_images/3296579573/69ebedb479a9bdb9d536fe887e2d3113_400x400.jpeg",ref_id:"ff74d59c-f846-4b16-a5e5-771fb8139f18",twitter_handle:"Granddragon14"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN6935967461.mp3?updated=1627959014",node_type:"clip",pub_key:"",ref_id:"8ab125e2-e555-4adc-817a-bbf5bb93bf40",show_title:"Bitcoin Audible",text:"really a fair comparison to say, like bitcoin uses x amount of energy, like electricity versus x whatever small country, when you're only looking at the direct energy consumption in that country and not looking at the fact that they're getting all the resources from other countries that are consuming that elsewhere. Not only that, but you can flip that entire narrative on its head and say when bitcoin uses more electricity than Chile, that means that even if Chile flipped their entire electricity infrastructure to try to mess with the bitcoin blockchain, they couldn't. Energy consumption is a good thing, it's just a matter of how it's consumed and how we produce that. Let me add one more thing. Everybody knows the market cap off gold, right? That's around 9 trillion. And that's 50 times more than bitcoin. And we know it from bitcoin. That like by theory, if the bitcoin price is, say, 9000, by theory the production cost of bondoid bitcoin should also be 9000. It's not the case, I know, but by theory it should be the case. So now take gold. Honestly, nobody discusses gold. If gold, if the market is having a market cap of 9 trillion and times 50 times more than bitcoin, then in case gold is produced, then what? If by theory the production price of gold that's the market cap of today, 50 times more resources are being spent second by second, day by day to somehow get gold out of the ground. But this is not electricity, that's equipment and machinery and that's kind of, I don't know, all kinds of things which are working in some kind of gold mine. But isn't this also wasted resources to some degree? Nobody discusses this and it's 50 times higher at this point. I remember a paper from cruises to my loan that are exactly comparing metal mining with crypto mining. Oh, interesting. Okay, so it wasn't nature sustainability in 2018. It's just so much more dangerous to the environment like the cyanide that is used to extract the gold. And then if you just go through all of the environmental damage that gold mining does, bitcoin is like a space compared to what goes on in order to get sold out of the ground. And it was funny when gaming was brought up, I was speaking a conference, I think it was decentralized in Athens Green back in November. And there were a lot of people there that into cookie and other nonsense. And I got into this big argument with someone that kept saying how bitcoin is so bad for the environment and mining can continue to happen and how proof of stake of currency is the future. And he was a lot younger than me. And I asked him, do you play video games? I haven't played video games since I was about 21, 22. And I asked him do you play video games? And he said yes. And I said, well, how much electricity are you wasting by playing video games? Where is the productivity in that? So if you take all the gaming in the world, everyone that ever plays video games, you combine all that, how much electricity that is using and please make an argument that is more productive use of electricity than bitcoin that is trying to give everyone politically neutral, government free money. This is why this entire line of discussion is kind of like a bit of a red herring. Because the problem is that we don't have a good way to price externality and if we did, then the price mechanism would take care of the rep. I think it's partially done and I agree. I think a lot of it is a red herring and kind of missing the major point, which is the real environmental ",timestamp:"00:25:05-00:29:09",topics:["bitcoin energy consumption"],type:"podcast",weight:5.094594955444336},{boost:0,date:1665118800,description:"The Macro tyranny ",episode_title:"Breaking Away: On Secession and Small States",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/6ec51741-3d93-4116-a619-d62a7cee1feb.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/102-radiorothbard-20221007.mp3",node_type:"clip",pub_key:"",ref_id:"8d9636c6-d564-47e0-89b6-5b9f87b27a34",show_title:"Radio Rothbard",text:"damage to the same extent that macro tyranny maximizes it. If Hitler had ruled only Berlin and Stalin only Moscow, the history of the world may have been considerably less bloody. Large states are playgrounds for despots and dictators, while small states provide far fewer opportunities for ambitious politicians to spread their mayhem beyond their local communities. But we don't have to take lose word for it. The highly influential political scientist Hannah Arrest has discussed how only larger states can hope to be truly totalitarian. Even she notes that a number of states in Europe in the 1930s had pushed totalitarian ideas and as their ideal, but outside the Soviet Union, none managed to actually achieve the goal. And here's a long quote, but it helps us, so we'll quote it at length although totalitarian ideology had served well enough to organize the masses until the movement seized power, the absolute size of the country then forced the wouldbe totalitarian rulers of masses into the more familiar patterns of class or party dictatorship. The truth is that these countries simply did not control enough human material to allow for total domination and its inherent great losses in population. Without much hope for the conquest of more heavily populated territories, the tyrants in these small countries were forced into a certain old fashioned moderation, lest they lose whatever people they had to rule. This is also why Nazism, up to the outbreak of the war and its expansion over Europe, lags so far behind its Russian counterparts in consistency and ruthlessness. Even the German people were not numerous enough to allow for the full development of this newest form of government that is totalitarianism. Only if Germany had won the war would she have known a fully developed totalitarian rulership. So rents a Holocaust survivor, hardly a defender of the Nazis, but even she concluded that yeah, they wanted to be totalitarians, but not even Germany was big enough to bring that about. So they're smaller is better in this case, especially when it comes to the worst case scenarios as well. But what about that middle ground, right? We're not necessarily just always talking about avoiding full blown totalitarianism, but we do find some of these previous examples. You want more free trade, you want more freedom, you want the ability to escape despotism smaller states are generally your answer. Now, as a final issue though, we have to cover, as the book does, the issue of international relations and war, because we see these advantages all for the domestic population, right? But anytime you bring up this topic, you're going to hear that breaking up states into smaller pieces, this is bad, because if we reduce the power of the US government or any other western states, then China will step in and conquer the entire planet the next day. So this is a difficult topic and so I try to provide as much of a treatment as I can in the book. Certainly it's not exhaustive and we do need more people really exploring these issues. And with all international relations it requires a certain amount of speculation. But some good research has been done looking at the issue of how do small states fare against these larger states. And so there are a few things we can note when talking about this. For example, the assumption that large states will always dominate in international relations is based on mistaken notion that larger states in terms of GDP access and access to military resources currently are necessarily the more powerful states. More accurately, however, it is wealthier states and blocks of states, not necessarily the larger states, that tend to have an advantage in terms of military deterrence and innovative research by China expert Michael Beckley, for example, he notes that the biggest variable here is actually GDP per capita, not overall GDP. And this helps explain why we can find many cases of smaller states successfully deterring and defeating larger ones. During the 19th and early 20th centuries, for example, both Japan and the United Kingdom repeatedly defeated and humiliated the much larger China. At the time, a reliance on GDP and military manufacturing statistics would also suggested the Soviet Union three times the geographic size of the US. And with an immense weapons industry, should have outlasted the United States. The GDP measure also suggests that Israel is the weakest military power in the Middle East. Clearly, none of these things were true are true. These really case is instructive because it shows us that small states, rather than having to become big themselves, can simply freeride off larger states as the State of Israel has managed to long exploit American wealth and taxpayer revenues without actually giving up its own independence. Moreover, the possibility of nuclear deterrence diminishes the need for immense and expensive conventional forces, as again demonstrated by the State of Israel. Deterrent defense capability can thus be obtained even by Switzerland sized states. And then of course, there's no reason why a group of small wealthy states cannot very effectively form an alliance of their own among themselves without having internal control mechanisms, as has been done throughout history. You don't necessarily have to have small states form a state of their own in order to carry out effective defense measures. So for example, for the United States to break up into smaller pieces and there's no reason to assume the new, smaller, successful states would be at the mercy of larger ones, there is every reason to assume the new smaller American states would be just as unified on foreign policy as they are now, which is to say, virtually in lockstep. Unfortunately, no matter what might be said about small states and international relations, many will cling to the idea that because of alleged foreign threats, virtually nothing, nothing could justify secession ever. There is, of course, nothing new about this attitude. For centuries states have justified their bigness and their taxes on the claims that you need us to defend us against foreigners. And of course in the United States we've seen this in many cases where you're just supposed to accept whatever the government wants to do in the name of national defense. And this was, I mean, the conservative movement standard bearer back in the 50s. William Buckley said this in the early 50s we have to accept big government for the duration, for neither an offensive nor a defensive war can be waged given our current government skills, except through the instrument of a totalitarian bureaucracy within our shores. We must accept large armies and air force's, atomic energy, central intelligence, war production boards and the attendance centralization of power in Washington. So yes, freedom is all right, but I mean, come on, you're just going to have to have the CIA and you're just going to have to surrender those freedoms until we defeat all the bad guys in the whole world. If that takes 300 years, thens the breaks. So the real world experience suggests that fortune actually favors the decentralized in terms of wealth, freedom, economic development and more. And is for these reasons that Rothbard supported what he called universal rights. Locally enforced as an adherent of national rights, Rothbard believed rights are certainly universal, yet he also understood that their enforcement ",timestamp:"00:23:17-00:30:41",topics:["Macro Tyranny"],type:"podcast",weight:5.224080560699853},{boost:0,date:1656979200,description:"How Lightning can improve the feedback process on music platforms",episode_title:"Lightning Networks Impact on Music w/ Michael Rhee, Founder of Wavlake - Voltage Twitter Spaces",guests:[{name:"Michael Rhee",profile_picture:"https://pbs.twimg.com/profile_images/1348612450/IMG_0298_400x400.JPG",ref_id:"91302fb9-2d08-400e-bd1f-2d52e0af5508",twitter_handle:"rheedio"},{name:"@rheedio",profile_picture:"https://pbs.twimg.com/profile_images/1348612450/IMG_0298_400x400.JPG",ref_id:"a20f5e1f-5969-47a6-b986-faf29c0c4da0",twitter_handle:"rheedio"}],hosts:[{name:"@voltage_cloud",profile_picture:"https://pbs.twimg.com/profile_images/1508657900486422529/Lfa70poj_400x400.png",ref_id:"3b622187-60ce-43c2-a21f-ae749c2d961a",twitter_handle:"voltage_cloud"},{name:"Bobby Shell",profile_picture:"https://pbs.twimg.com/profile_images/1090426395979890690/uUdaFXo__400x400.jpg",ref_id:"438f8067-3fed-49d2-91d9-5018cb043aac",twitter_handle:"BobbyShell2"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=aZt44KjXHh0",node_type:"clip",pub_key:"",ref_id:"3db5f375-817e-4275-980c-6475803c430b",show_title:"Voltage",text:"this, we chatted a little bit about two things I had brought up to you about how independent artists, whenever I launched my first song on Spotify, I had to go through CD Baby or one of these groups that helped push your music to these platforms. And the thing that was discouraging was it said, hey, when you hit $25, you can claim your first cash out. And I was just like, that's going to take forever with how many plays you need to get. So that got me excited. And you actually brought up an even more important point, was this feedback loop that it creates for young artists because you can be motivated and see these amounts and stats come in that are much lower denominated. And that's actually a pretty impactful thing for a young entrepreneur. Let's dig into that a little bit and just what that can actually do for creatives. Yeah. So, Bobby, just using yourself as an example, you publish your music, it went up on Spotify and maybe a dozen other streaming platforms. How long did it take for you to figure out how many listens or streams or dollars you earned from those platforms? Like from the time of track was played to the time you got some sort of feedback about that? Do you know what the lag was like? So it was actually pretty challenging to hear and kind of find out because there was obviously on Spotify you can see the plays you have, but like in some of these other platforms, it was actually pretty hard to see that data, like being a new artist. Yeah. Because it's all opaque. And I think this is one of the interesting things or interesting aspects and features of the value for value model that podcast and 20 is built on. And then also experiments like Wavelake where you have users who are tipping SATS to artists for their tracks. And I think one of the, I guess, challenges as a new artist, when you're deploying your music and distributing it via some music distributor and blanketing all these different streaming platforms with your music, you're essentially throwing your music into a black box. It's virtually a black box, and you might get some sense of the kind of traction you're getting on the platforms over the course of a few months. So there could be a lag time of two to three months where the streaming platform has gathered some sort of statistics on how many plays you've gotten, and then that translates into some kind of a royalty payment that is obviously calculated from some kind of internal algorithm, and then it's spit back to the artist in the form of some number. Let's say it's $30 for a bunch of plays that happened three months ago. So there's a pretty long lag time between when someone was engaging with your music versus when you find out about it and see some kind of a reward for that work that you put in. And what's been really cool to see is with some of the artists on Wave Lake, they're receiving these like, small tips. It's nothing to write home about, but at the same time, as you said, if you're a newer artist and you're just working on honing your craft and finding your voice, those small monetary donations, those little tips operate as a really strong encouragement mechanism. And it's also an instantaneous feedback loop. So you could post a song on Wavelake, for example, and that day, like that hour, someone could hear it, love it, tip you, and you'll see that show up in your wallet, you'll see that 21 stats or whatever the user wants to tip you, you'll see it show up in your wallet near almost immediately. And so I think that can act as a really strong feedback mechanism for someone who especially if I speak about myself a little bit like making music. As a teenager in my bedroom, I was just recording kind of lame demos on a fortrack just over and over. And then years later, MySpace came along and you put those up and see how many plays you get. And I think we're at a point now where we have this really novel monetary network that's open and it's completely borderless and anyone can use it. And then on the other hand, you have the ability to pay and support artists that you love. And as a creator, you can not only benefit from that monetarily, but that can be a lot of encouragement that a particular song or some sort of direction you're going in artistically is resonating with someone out there in the world or a group of people in the world. And that kind of motivation means a lot, I think, when you're just starting out and you're finding your voice. And you could have other ways of using this kind of feedback loop as well. For example, if you have a demo or a couple of lines of a verse or a melody, and you want to share that with a group of fans or potential listeners, and you can say, like, hey, if you like this, what do you think of this? And then people start tipping because they want to see more of that, or they want you to flesh that out into a complete song. I mean, the possibilities kind of again, they go as far as we can imagine at this point. And I think that is a much different model. It's a very different model from what exists today in these very sort of monolithic corporate streaming platforms, where you're essentially like, you're forced to throw your work into this giant pool, and you're out there competing with heavily marketed acts and figuring out how you can show up in the midst of all that is pretty difficult. And even when you do get some engagement, you won't find out about it for months. And so I think there's a lot of potential not only to create a better royalty mechanic for artists, but it's also a way to encourage art. Yeah, absolutely. So the feedback loop portion, one thing about that that I love is, like we discussed before, is imagine you're a young artist and you put music online and you just see like, five SATS come in, ten stats. Of course, you could obviously see a million SATS come in, but that's fairly uncommon. But to have these kind of small affirmations towards the art you're doing or the content you're creating, or just these positive reinforcements, one of the biggest things I know for anyone pursuing anything psychologically in the world, like when we talk about just the psychology of it, is it's hard to get affirmation. We're a digital world. There's a lot of working from home. And one thing I love about lightning is there's this positive and encouraging reinforcement where we can reward each other in minimal ways, but whenever you see that come through, it kind of helps you push through. And I have a friend who struggles with being creative due to not having kind of the reinforcement he needs. And he's one of the most talented people I know. And I just really wish that was there. And I could see that being really transformative. We've heard safety and talk about fiat art and things that are not fiat art, et cetera, and to see true talent be rewarded and have this really kind of grassroots incentive mechanism I think is really important. And it does kind of segue into what I was talking to you about before. As far as content creators just being on the web, people have the opportunity to do anything they want and even leverage music in different ways. And there's obviously a lot of opportunity for people who are musicians to create reach. But there's even ways that people who create content, they could even leverage these creative, independent songs in really unique ways to, you know, further their art. So it's ",timestamp:"00:05:55-00:15:37",topics:["Lightning Network"],type:"youtube",weight:5.061400574481365},{boost:0,date:1624507200,description:"Intro",episode_title:"Bitcoin Fixes This 48 Small Business with Ali",guests:[{name:"Ali",profile_picture:"",ref_id:"1169edf2-a89f-4d89-94a4-1be1a7b9aef0",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2536a974-d668-4ac2-8613-0b37aa0ca08c.jpg",keyword:!0,link:"https://anchor.fm/s/2a4e8034/podcast/play/36003846/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-5-23%2F969a4306-e9eb-95c5-0e15-42d37c0e61e8.mp3",node_type:"clip",pub_key:"",ref_id:"01dc5a33-88e1-49ef-abb3-c5744cf8a046",show_title:"Bitcoin Fixes This",text:"Welcome to Bitcoin Fixes this, where we explore the impact that Bitcoin will have in all aspects of society. Today's guest is Ali, owner of Tahini's Restaurants and Bitcoin Enthusiast. He is a small business owner who's been through a lot of different ups and downs in the business. In this episode, he talks about what it takes to make it in the world of small business, why he decided to put the Treasuries of his company into Bitcoin, and why Fiat money is so destructive. To say Ali is a Bitcoin enthusiast would be an understatement. He's been cheerleading Bitcoin and explaining how Bitcoin is great for small businesses since his discovery of it more than a year ago. I loved learning about the hustle, the unfair advantages of the large government subsidized companies, and why companies like his have a fighting chance with Bitcoin. This is the future of businesses built using Bitcoin savings technology. I hope you learned something. Ali Tahini, how's everything going, man? Good. Jimmy. How are you? It's an honor to finally be at your show. I'm a big fan. I've been looking for a while now. Oh, well, that's awesome. Yeah. It's always interesting to get, like, different perspectives and stuff. And you certainly have an interesting perspective because they're running a small business for a while. And obviously you have decided to put some ",timestamp:"00:00:00-00:01:25",topics:[],type:"podcast",weight:5.0513938665398985},{boost:0,date:1658322407,description:"Many causes of diarrhea such as fat malabsorption and bile acid malabsorption (1/3 of IBS diarrhea cases)",episode_title:"Dr. Norm Robillard - SIBO, Digestion, and Gut Health on Carnivore/Keto",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/5e0220b3-7c70-4423-bb76-3b75bc132fad.jpg",keyword:!0,link:"https://traffic.libsyn.com/secure/carnivorecast/Carnivore_Cast_207_Dr_Norm_Robillard.mp3?dest-id=775699",node_type:"clip",pub_key:"",ref_id:"167a7be2-f14b-455a-9c20-95057af5ea7d",show_title:"Carnivore Cast",text:"was interesting on a carnivore diet, it kind of flipped that around. And then also when I work with people that have diarrhea or constipation, we look at it mechanistically. So with diarrhea, it can be fat malabsorption, it can be bile acid malabsorption. Right. Most of 95% or more of the bile that improves that helps solubilize the fat so the lightbased can digest them. It's reabsorbed in the terminal small intestine before it hits the lodge ball, goes back to the liver, saves a lot of energy because cholesterol is an expensive molecule and that's kind of what bile is made up. So if more than just a couple of percent of the bio is malabsorbed, it leads to diarrhea. And it's believed that about a third of the IBS diarrhea cases of BIOACID malabsorption. ",timestamp:"00:21:47-00:22:41",topics:["bile acid reabsorption","diarrhea","small intestine","liver","cholesterol","fat malabsorption","bile"],type:"podcast",weight:5.039563265710219},{boost:0,date:1672772445,description:"Bitcoin miners and retail customers",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Foss, Max Keiser & the Plebs! 🍻😂",guests:[{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"Max Keiser",profile_picture:"https://pbs.twimg.com/profile_images/1361873587582472195/y57DiTYX_400x400.jpg",ref_id:"743efd07-d194-4c74-8663-45c3b8646b8e",twitter_handle:"Maxkeiser"},{name:"Isabel Foxen Duke",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"58989d4a-4a96-4ffc-8cbe-f233ffb10420",twitter_handle:"isabelfoxenduke"}],hosts:[{name:"Publord",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"5b7b7e22-fe55-4e1c-933d-6544f6600351",twitter_handle:"publordhodl"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7de8e4aa-50a6-4f57-a8ff-6ca16a4f0ae4/76c3395a-4fe5-4802-8d2a-92cca1f1ea0b.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"7eea8bdf-2873-4759-b53b-a207aa8bcdcf",show_title:"PUBLORD",text:"So circling back real quick to the movie Generational Wealth, I think Tomer put it together. I think he had a partner in it. That's a fantastic movie on YouTube. And my take on the question that Jim asked about the utility company using all the power to mine bitcoin and not giving it to retail customers. Retail customers are always going to be willing to pay more than what a miner would pay for electricity. Because the miners are so distributed around the world, it's so competitive, they have to get really cheap electricity or use stranded electricity, right, that they have no customers for. So I think it would always be a situation where retail customers would come first in the pecking order. The utility company would much rather sell to them at a higher price than using that energy for mining. I would say assuming wait a minute, wouldn't you have to account for, let's say, governments preventing utility companies from raising the rate so high to make it profitable, to sell it to the retail customers over the mining? Because if they are the only ones that know their profitability for the use of that electricity in either direction, and they are the ones making the electricity, so they have the purest cost, the cost of getting it out of the ground and processing it, and then it's free to send any direction. But if they control one of the directions and it makes them profits, I feel like there's a potential economic conflict in there that could be created if you have enough other situation, enough other characteristics. Like a type of power company that has a monopoly kind of situation where it's the only company in a region and nobody else can't go anywhere else. Utility companies are regulated by governments already. I'm not a fan of government at any level, but I am a fan of people creating rules and holding other people accountable to them so that you can get along in a society. So I would hope that a utility company is going to do the right thing is the best way I could say it. Making sure that, look, they were built to make money selling to customers and they figured out a way for most people to be satisfied at that level. Now they find a revenue stream that comes into existence that wasn't there when these things were invented, these grids and the idea of giving, producing electricity for people, all of a sudden there's something that changes the game and it literally changes incentives, it feels like. And I just worry that it could. Turn into something they lose money doing that. Only if they can sell the electricity to retail more for more than what they can use it for for bitcoin mining if they had rate. Yes. I don't know that you can make that statement without knowing, without using an example of a potential price for bitcoin, which maybe we're not at it now because the value of bitcoin is too low. But if the value of bitcoin was ten times what it is now, it's way more profitable for everybody to mine bitcoin, even at a very small amount of hash rate. And so there could be a tipping point. Am I thinking correctly on this or not? Yes and no. Okay, thank you. The grid is designed for peak power, okay? It's designed for the 06:00 p.m. When everyone gets home from work, draw on the grid. And the reality is, most of the time the grid is not using or there's more supply than there is demand. So that's when you need the offtakers, which could be bitcoin miners, that will benefit from now from a source of energy that is not set by a regulator. Don't forget, the regulator sets the cost of electricity based on things like peak power demand, as well as global adjustments on their stupid wind farms and solar projects that are heretofore unprofitable. But you got to put the ESG narrative on it. So the reality of in Ontario is because seventeen cents of that is absolute government waste. That is waste that goes to producing wind farms and solar farms that have no economic benefit to the grid whatsoever, but because of their ESG narrative. So the reality is five cent kilowatt hour power, 22 cent kilowatt hour retail prices, that's all set by the regulator at the wrong price because of all their waste in their projects. The beautiful thing about bitcoin is that it takes demand from the grid when the solar panels are producing electricity, but there's no one there to take it. Right? That's the stupid thing about solar panels. The sun doesn't shine at 06:00 p.m. At night, and the wind generally doesn't blow at 06:00 p.m. At night. So these are the demands for bitcoin that will allow the regulated utilities to actually capitalize on the capital expenditures in their wasted products or projects, rather solar and wind. The most efficient power is nuclear, but the reality is building a nuclear power plant requires basically a 20 to 30 year payoff period because it is so capital intensive at the outset. Well, bitcoin mining will shorten the ROI on a nuclear reactor materially because it creates an additional revenue stream that otherwise wasn't there calculated in the cash flows. So lots of good things, jim, you're right. But the reality is the regulator sets the marginal price of power based on peak demand in the system, and that peak demand is so far in excess of what global bitcoin miners can mine at that I don't see a time when a utility would only be bitcoin mining. That just doesn't make sense to me. However, never say never. It's not a zero chance probability. It's just unlikely, in my opinion. ",timestamp:"00:47:21-00:53:52",topics:["mining energy","bitcoin miners"],type:"twitter_space",weight:17.809161091592113},{boost:0,date:1672772445,description:"Michael Saylor and integration of Microstrategy with the Lightning Network",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Foss, Max Keiser & the Plebs! 🍻😂",guests:[{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Craig Shipp",profile_picture:"https://pbs.twimg.com/profile_images/1605961563420114945/MWGqR1Gm_400x400.jpg",ref_id:"8d6ca47a-89a2-4331-bae4-2fae18055a95",twitter_handle:"CraigShipp"},{name:"Oluwasegun Kosemani",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"25ce4b90-6689-4dd9-84b6-240c7bcbe407",twitter_handle:"MrlamilamiKosch"},{name:"Max Keiser",profile_picture:"https://pbs.twimg.com/profile_images/1361873587582472195/y57DiTYX_400x400.jpg",ref_id:"743efd07-d194-4c74-8663-45c3b8646b8e",twitter_handle:"Maxkeiser"},{name:"Isabel Foxen Duke",profile_picture:"https://pbs.twimg.com/profile_images/1466874333410717698/WRQh2-_m_400x400.jpg",ref_id:"58989d4a-4a96-4ffc-8cbe-f233ffb10420",twitter_handle:"isabelfoxenduke"}],hosts:[{name:"Publord",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"5b7b7e22-fe55-4e1c-933d-6544f6600351",twitter_handle:"publordhodl"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7de8e4aa-50a6-4f57-a8ff-6ca16a4f0ae4/76c3395a-4fe5-4802-8d2a-92cca1f1ea0b.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"4f0b1fbc-47f6-49c7-afe1-4978eabe5c4a",show_title:"PUBLORD",text:"Dude, it always helps when you explain things. I appreciate it. I will be paying attention. Keep my eye on it. But I take the simple route. Just accumulate as many SATS as I can and let the rest of the world fall apart around me. Can anyone up on the stage comment on Michael Sailor's comments about what he's going to be doing with Lightning with his team at MicroStrategy? Does anybody have any insight? Can I comment? Craig and I know I talk too much. He needs to buy IBEX mercado. And I told Mr. Sailor that at dinner in La. At the Pacific Bitcoin Conference. Now, Michael is not going to ever take advice from Foss. Well, maybe he will, but at the end of the day and Max Kaiser maybe can chime in on this, I was really excited to hear what Sailors shared those comments with us privately. So now that it's public yeah, he's trying to incorporate the Lightning protocol into his business. He's a very smart guy when it comes to that stuff. So I'm pretty excited. And I say tongue in cheek, he should just go out and buy IBEX Mercado. It's a company that had their origins in El Salvador and Guatemala that I'm pretty tight with. I say that because IBEX Mercado has some of the top Lightning engineers in the world. And Mr. Sailor was saying that it's very tough, and it is true, it's very tough to find Lightning engineers. So I think it's going to be great for what he does, because it's going to just further the development of the Lightning Network. And I actually think I hate to say this, but there would be a role for MicroStrategy stock within the portfolio of the Bitcoin Opportunities Fund. Why is that? Well, because for the first time in a while, it's looking awfully cheap to me compared to outright Bitcoin exposure, too. So Sailor is a very smart guy. In fact, he's too smart by a half sometimes. But I really hope he does continue this, because with him and Jack Dorsey pitching the Lightning Network, these are two brilliant people that have some big following and some big brains. So I'm not sure what Max thinks, but there's my two cent. Thanks. Right. Well, I guess the speculation was which way would MicroStrategy go to expand their bitcoin presence. I guess one idea was they would get more into mining, and then the other one was lightning networks. And Sailor has explained why he's not really interested in getting into the mining side of things. He's given a couple of times. He's explained that he just doesn't like the economics of mining. Plus, I think that he sees lightning as a gateway to massive global adoption, which would have the effect of increasing the bitcoin price, which he has a lot of bitcoin. So anything that's going to help that boost that price up, he's going to be interested in, for sure. So with Lightning, you've got that ability to really reach the billions of people that he likes to talk about that can be part of this unconfiscatable distributed wealth network of property. So I can see it makes sense. IBEX mercado is yeah, it's a company down here. It's an excellent company. He should definitely look at it and at the very minimum, he should take a position. I know we just invested in the company. We took a small position in their latest round for easy capital. And so it's looking good. Hey, that's awesome, Max, because I'm also an investor. I'm not sure if you knew that I was one of the seed investors in iVEX Mercado. So I love Jose. I love his team. A bunch of real smart South American or Central American programmers doing a great thing, doing merchant adoption. So onboarding the city of Miami. So there's obviously, you know, if you're onboarding the city of Miami and that's where Sailor lives, it's sort of cool. And then, to be clear, I hate bitcoin mining as a standalone business as well. The future for bitcoin mining is going to be the energy companies that own their own assets that mine bitcoin to balance the grid. So that is the key for Mr. Sailor. Don't get involved in a bitcoin mining company that does not own its own energy assets in the future. It'll be the Duke energy of the world. It will be the Tepcos, that's the big Japanese utility that's starting to mine bitcoin itself in order to load balance its grid. So there will be a time to own bitcoin miners, but it won't be a bitcoin miner that doesn't own its own energy source. It will be a bitcoin miner that is perhaps part utility and part bitcoin miner. That's balancing of grid for the benefit of all its contributors, which include users. It includes the different sources of electricity, whether it would be natural gas, wind, solar, nuclear, you know, all the mixing pot. And balancing the grid is a very difficult thing. So when you have a bitcoin miner that can power up and down with the flick of a switch, that's the type of bitcoin mining that makes sense, not the type that. Buys its electricity from ERCOT and then becomes hostage to the PPA, the Power Producer Agreement with ERCOT. They can be interrupted at any time. So the world is changing. Sailor is a smart dude. I think there's going to be a lot of really cool opportunities in the Bitcoin mining square, and that'll be with companies again, that are not your run of the mill Bitcoin miners, but have names like Exxon and Duke. Energy and TEPCO and all of these big utilities that are going to learn that bitcoin actually is a super useful tool to help them increase revenues and also balance their grid or balance their load base. So, yeah, some really cool stuff happening. Sailor is a genius. I'm not. So let's just see where life goes. ",timestamp:"00:27:47-00:34:12",topics:["Michael Saylor","Microstrategy","","Lightning Network","bitcoin miners"],type:"twitter_space",weight:17.809161086484142},{boost:0,date:1673549347,description:"Some common ways people lose bitcoin",episode_title:"BR019 - Proof of Keys Day Twitter Space ft. Lopp, Craig Raw, Lazy Ninja, mshodl, Rijndael & guests",guests:[],hosts:[{name:" Jameson Lopp",profile_picture:"https://pbs.twimg.com/profile_images/1594137153625276416/t1RUP3yP_400x400.jpg",ref_id:"062ec6c8-0fa2-4bf6-9aa1-7ab347df2530",twitter_handle:"lopp"},{name:" Craig Raw",profile_picture:"https://pbs.twimg.com/profile_images/1362841242665631745/UtA3FBQU_400x400.jpg",ref_id:"f2d1f5f0-2e1c-4d16-937d-4d48627cb955",twitter_handle:"craigraw"},{name:" Lazy Ninja and Rijndael",profile_picture:"https://pbs.twimg.com/profile_images/1362843002318721028/PNKWuu0-_400x400.jpg",ref_id:"23edbd50-9b0b-4e9a-aa56-57c2af074173",twitter_handle:"FreedomIsntSafe"},{name:"Justine Harper",profile_picture:"https://pbs.twimg.com/profile_images/1559710083734540289/HXTH4kqO_400x400.jpg",ref_id:"7b5a8957-1c4b-474f-bc38-291b382a13e6",twitter_handle:"mshodl"},{name:" Dee",profile_picture:"https://pbs.twimg.com/profile_images/1600155411868434433/9k1KQ8i5_400x400.jpg",ref_id:"ad33288b-28d4-4f15-9492-f64bce891613",twitter_handle:"HodlDee"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f1879df9-9bc6-4a76-951f-24548da768ef.jpg",keyword:!0,link:"https://anchor.fm/s/9500fad8/podcast/play/63399670/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-0-12%252F0a789f60-2c9a-6bbb-945a-79f3dd937cee.mp3",node_type:"clip",pub_key:"032d7609ff3f4a5232e4d60967971e23bc671dfb68020845a59bab5dc1f3b93b87",ref_id:"1958362b-b149-4466-b873-4d22a36d67d8",show_title:"Bitcoin.Review Podcast with NVK & Guests",text:"In terms of people losing their funds. Why don't we kick off with maybe talking about what are the most common ways people lose bitcoin? I'll start with one example, and maybe we go around the panel sort of like going through it. But one of the most common examples I see is people bamboozling themselves. People will screw themselves or their coins before they ever get hacked. So people will go out there, they'll hear an example from somebody that's either extremely smart or extremely dumb and sounds extremely smart, and they would have like, a super complicated setup, and you require many computers, and they would do a super complex multisig, and then the person can get the money out. A very good example of this in the way back in the day was bitcoin armory. There's probably a lot of people on this call that have lost money in bitcoin armory. It was fantastically safe. So safe that many people never managed to get their money out. So what other stories do you guys see as very common ways people lose bitcoin? Yeah, I'll go second here. When I first started, I was forex trading like an idiot, and someone was like, hey, I have a trading platform. Buy some, give me some money, and I'll double your money. The classic. And they were only taking bitcoin. So I was like, you know, what the heck is that? Never heard of it. Well, I've heard of it, but never bought it. How does it work? And they said, oh, you know, go on this exchange, buy some, and then send it over and I'll send you some back. And they were pretty smart. I started off with a small amount and a few hundred dollars and gave them it. And surprisingly, they actually did double my money. And then that convinced me to give them a lot more money, and that's where I felt a culprit of what they did. But I realized at that time that bitcoin was immutable, and there's no way that I could get back my money. And it kind of hit me hard, and I was really frustrated, obviously. But it was a user error, right? It was me being an idiot, being greedy, and wanting more money at the time. So I think people need to take a little bit of responsibility sometimes when they're handling their money. Obviously, I'm still a young guy and had lots to learn, and that sent me down the Bitcoin rabbit hole. And here I am, right, learning how to store my keys. A lot more safe than I did on an exchange. Right. So that's kind of my sob story. But it comes like some real pain to learn. Yeah, absolutely right. I think a lot of people, when they lose money, they get mad and they try and put someone else, blame someone else. But if you really learn about these things and store things properly and understand, then hopefully you don't have anything to worry about. Yeah. Thanks for that, Justine. Hey, I think you guys are on point. I generally think the majority of Bitcoin is lost by user error at unchained. And in personal experience, we deal with a lot of either newcomers to self custody or people have been dealing with single SIG, and this is kind of their first interaction with multisig. And what I found is there's just so much to learn about Bitcoin, right? This is kind of the first time in history that we can truly own our assets and we can truly own our money. And that takes personal responsibility just like anything else. If you want to grow your own food, if you want to protect your home, there are skills that you have to learn. And I think Bitcoin is the same way, but it's new. It's a new thing that people have to do. They're used to being able to just call the bank, right? The bank is going to handle it for you. So I think there's a learning curve. The problem is, in my opinion, that we sort of as a community, I use the word community loosely here as Bitcoin. Twitter, we sort of have this, like, all or nothing mentality, and I don't think we speak enough about like, there's all of these things that you can do, and each individual has to sort of look at their own attack factors and their skill set and what they're capable of, and it's okay to take steps, right? So in my experience, it's over complicating things. It's doing something because they saw on Twitter that was the only way they could do it, right? And maybe it was way beyond their skill set. The worst thing I've ever seen is multiple times past phrases. I have a love hate relationship with passphrases because I've seen people mess them up. Miss one letter, forget that you capitalize something, think that you could memorize it and you don't. And then all of a sudden you've lost access. So user error, over complicating things or making it so complicated that you then don't distribute your keys. So you've got this really over complicated system, but everything sitting in one drawer. So I just think that over complicating things, user error is sort of the biggest threat, even though obviously outside vectors are something that we need to consider as well. But I think that, yes, user error over complication and pass phrases in ways that are maybe too complicated for the user at hand. That seems like there's a trend there. So Lock has this fantastic list of people who have been physically attacked over their bitcoins. James, do you want to give people a little bit of a primer on that list and where they can find it? Yeah, sure. Well, it's linked directly from my main page@lop.net. It's the physical bitcoin attacks GitHub repository and like a lot of other things that we talk about with security in this space, I think it can be easy for people to blow it out of proportion. Now, I think last I checked, I've got nearly 150 different attacks that I've managed to come across and archive over the years. And this is actually a very, very small number. You know, in the grand scheme of things, it's probably one of the rarest forms of loss in the bitcoin space. But there are definitely some patterns and things that we can learn from that, one of which is that the most common event that causes this is people who are doing high value, face to face cash and bitcoin trades. So that like face to face OTC stuff. It's definitely risky because your counterparty may be a criminal and they may assault you and take all of your money. So there are things that we can learn from that. Also, a number of people who have experienced home invasions in this space, it generally happens because they're well known, and usually they're well known because they're being flashy and flaunting their wealth on social media. So you can definitely learn a lot about how important operational security and privacy is when it comes to protecting yourself physically. But kind of getting back to the original question, I think one of the most common forms of loss is when you're not holding your own bitcoin, you're keeping them with a third party. And that opens you up to just a multitude of forms of different loss, whether it's the third party having an insider attack, the third party being hacked, or in many cases, just the security system to access that third party account being compromised, usually through SIM swapping or password leaks or whatever. The best way I can describe it is that when you have your bitcoin with a trusted third party, you're still vulnerable to all of the same risks as you are with self custody, plus a whole lot more because of all of the things that can go wrong with the various third party actors who are controlling access to those keys. Yeah, not your keys, not your coins. Right. I mean, it's that simple. When it comes to third parties, it's so amazing to me that after Gox, I think a lot of the people who are new haven't experienced and maybe was forgotten. It was quite a long time ago now. And before that we had my wallet, which was, I think I can't remember, it was a lot of coin on that one as well. And then we had big Ver with crops. We had FCX in Alameda, which were like the recent high profile ones, celsius, all this stuff. Right. It's very unfortunate what happened to look, because now you have guys like Woody or Susan sort of fighting self custody, saying as if with third parties, you were safer if they offered some form of insurance. I would take their suggestions more face value instead of just being bullshit. But they're not liable for those losses in the way that people think they are. You just become an unsecured creditor and good luck to yourself. So, Rendell, you've been working in Bitcoin quite a bit, and you probably know some interesting ",timestamp:"00:07:44-00:17:21",topics:["Bitcoin Losses","Bitcoin trading"],type:"podcast",weight:22.766568059128208},{boost:0,date:1628150829,description:"The Regulatory on Small Scale",episode_title:" #14: Julia Reinhardt - What do GDPR and AI regulations mean for Silicon Valley?",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/3ab6c599-bbcd-4c8f-beef-bcf509ed4afa.jpg",keyword:!0,link:"https://anchor.fm/s/1a9df3e0/podcast/play/38326682/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2021-7-5%252F1c697b61-ec63-9b13-21c8-20beb6d5ca8d.mp3",node_type:"clip",pub_key:"",ref_id:"d67cf7af-79a8-457e-b65b-293fb279dcfe",show_title:"Voices of the Data Economy",text:"early on. Yeah, I just sort of picked up your line that they do it out of marketing because I think this is also something we discussed in a podcast with Safia Noble, the author of Algorithms of Oppression. And I'm not sure if there is a word called like privacy washing, like you have green washing, but probably it has become like a marketing gig to talk about your customer data and how safe it is and having discussions around that. So yeah, just a comment, not a question, but okay, so first we had GDPR and now we have the proposed AI regulations in Europe and we have never really spoken about it in this podcast. I would say that even me or particularly the audience are pretty new to this and you seem to be very deeply involved in this. So if you could take us through what are actually these AI regulations that have been proposed in Europe and what are their challenges, and then probably we can go deeper into it. Yeah, sure. So, yeah, the upcoming AI regulation that has been tabled by the Commission, but is only on the negotiation table now for member States and the European Parliament is actually the core thing I'm working on in my fellowship. And my intention is really to make sure that this upcoming regulation again from Europe does not again cause that lagging behind the small players. Because in the field of AI, as you all know, size clearly matters. The more data you can gather, the better your AI system works. And we're already pretty far down the road to Monetization because players in the market have access to an impressive range of data, and they can also afford gathering high quality data, which then enables them to build better performing AI. And for small scale providers, what's most important is the clarity of the guidance. I mean, that sounds phenomenal. Who wouldn't say that? But if you follow advice, you set up an internal team analyzing those rules for your in house implementation adapted to your AI system, you get much better at estimating necessary additional processes to say why. I work on that. And again, this link to the small scale providers of AI in general, the regulatory draft that the European commissioned, and it was tabled on April 21, so that's not very long ago. And in Brussels, things take time, comedies are formed. But the draft that the European Commission tabled also has been very long time in the making funded line. The Commission president announced something like it already at the beginning of her presidency, and then it came up this year. It's the most ambitious and the most comprehensive attempt at reining in the risks linked to the deployment of AI that we have seen so far across the globe. So it's a bold new step before the big focus of the past years were always just principles. I'm saying just. But I mean, of course you start with principles on an international level. The OECD principles on AI that were adopted in May 2019. OECD. Most European countries and the US are members of the Organization for Economic Cooperation and Development. So they're already promoted uses of AI that are innovative but also trustworthy, that respect human rights and democratic values. And I think now, in 2021, really, we're at the stage of how do you transform these principles into practical rules and regulations. So the rules that the European Commission proposed wouldn't cover all AI systems. They do cover systems that are deemed to pose a significant risk to the safety and fundamental rights of people living in Europe. You know, it's the geographical scope of people living in Europe. So it's a risk based approach. It has several layers, and those layers have different rules for different classes of AI systems. There are some that are prohibited. There are some that are considered high risk and have follow certain rules, and then others where they just say, you have to be more transparent. Do you want me to go more into details of what those rules are? Yes. I mean, broadly, if you could point it out. One, two, three. I don't know if it can be done that way. Absolutely. Sometimes it's confusing because it's really so much risk. You have to know in which category your AI system falls. And that's really on the developers, kind of to understand the categories. And in the end, it's actually pretty clear that not many AI systems actually fall under that rule. So definitely something to understand. So for some users of AI, the Commission proposes an outright ban. That's a use where the Commission says it's an unacceptable threat to citizens. That, for example, an AI system that likely causes physical or psychological harm by manipulating a person's behavior. That's a question of definition. Or by exploiting their vulnerabilities like age or disability. Then also something like social scoring systems where people collect points and also minuses, like those we know in China, and facial recognition in public spaces by law enforcement authorities. So not all facial recognition, but just, you know, those used by police and public spaces, essentially. Although even there, you have exceptions, and I think too many of them. So that's, you know, the systems that the Commission proposals should be banned in Europe. But most of the regulatory draft actually focuses on AI that is considered high risk. And what is high risk is, of course, defined in the regulatory draft. So that's kind of problematic uses in the recruiting field, in the employment admissions context, determining a person's creditworthiness or eligibility for public services and benefits, and also some applications used in law enforcement and security and judiciary. And for those, these systems have to meet different requirements and undergo kind of a conformity assessment. So, of course, before they can be placed in the European market. So in a way, that's kind of FDA, as we call it in the US. Like clinical testing, not for drugs or for vaccines, but for algorithms, it's to make sure that an AI system complies with several requirements around serious risk management. It has to use data sets and training, validation, and testing that are relevant, representative, free of errors, complete. That's a super tall order. Of course, then documentation about a high risk AI system must be really extensive and very precise. Why you chose certain designs, why you designed it in a specific way, and also to show that the developers really check all these factors diligently. The keyword is always human oversight. So high risk AI systems must be designed in a way that allows people to understand the capabilities and the limitations of a system and to counter socalled, automation, bias, and also, if necessary, reverse or override the output. And then, of course, accuracy, robustness, security, and transparency. So this is kind of this clinical testing for algorithm. ",timestamp:"00:20:36-00:29:57",topics:["Small Scale"],type:"podcast",weight:4.966172337540865},{boost:0,date:1627704e3,description:"[[Jurisdictional arbitrage]] moves people when [[prohibitive tax regime]] is implemented",episode_title:"WHY ARE WE BULLISH Natalie Brunell Aaron Segal Lauren Sieckmann Dan Held ep191",guests:[{name:"Dan Held",profile_picture:"https://pbs.twimg.com/profile_images/1522608646043181060/QQRjVYhi_400x400.jpg",ref_id:"3e22facc-9310-4346-82ac-3e183b88fa51",twitter_handle:"Ledger"},{name:"Lauren Sieckmann",profile_picture:"",ref_id:"427bb439-f251-4c7e-89fb-b53ecd8c9a82",twitter_handle:""},{name:"Aaron Segal",profile_picture:"https://pbs.twimg.com/profile_images/884309028125294592/sLDGwzDO_400x400.jpg",ref_id:"f7483c61-ba76-4a19-8d8d-992966e1f79e",twitter_handle:"AaronSegalActor"},{name:"Natalie Brunell",profile_picture:"",ref_id:"a09e8874-abbe-4a85-b19d-08cac1c8afde",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/38086440/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-6-31%2F116ac8f3-ce82-01e5-2865-da5c486c8330.mp3",node_type:"clip",pub_key:"",ref_id:"ea5f251b-6174-4663-b1c8-176375396b6e",show_title:"BTC Sessions",text:"don't know. What are your feelings on kind of this? How bad would it have to get for people to actually think about jurisdictional arbitrage? Oh, you're muted. Probably a prohibitive tax regime if you start to get really prohibitive like 70%, 80% taxes. I think people start to look at moving. I think about it in this function of like you got 100% tax rate of slavery. And so we all exist in the semislavery state of our output is taxed, usually without our permission. And so you either pay that or go to prison. So it's literally sort of a mob feeling there. At what point do people break? I think that's totally subjective for any type of person. Like, a lot of people have already kind of broken and moved to different countries, like renounce their US citizenship or they moved to Puerto Rico. I've moved to Austin from California, which is a small amount of sort of that arbitrage because Texas is a much more open society when it comes to earning money and keeping it. Now I can escape federal. If you want to escape federal, you go to Puerto Rico. If you want to escape all of that, then you go renounce your citizenship. So I made the decision at a certain point that paying California taxes plus federal taxes was too much. I couldn't bear it anymore. And we're seeing a lot of other people make that decision as well. But at what rate will federal start to push people? Ultimately, people vote with their pocketbook. If you make it really cost prohibitive in terms of taxation, I think that's what really moves people. ",timestamp:"00:18:02-00:19:39",topics:["jurisdictional arbitrage","prohibitive tax regime"],type:"podcast",weight:4.962566375739069},{boost:0,date:1642827600,description:"[[Tonga]]'s Interest in Following [[El Salvador]]'s Footsteps",episode_title:"WHY ARE WE BULLISH Mario Gibney Mauricio Di Bartolomeo Josias Carbon Bang Bitcoin",guests:[{name:"Bang Bitcoin ",profile_picture:"",ref_id:"ac7edd0f-886d-449a-ba1a-06033ad12695",twitter_handle:""},{name:"Josias Carbon",profile_picture:"",ref_id:"f3c2c48b-c174-43cc-acfc-2151634b7c77",twitter_handle:""},{name:"Mauricio Di Bartolomeo",profile_picture:"",ref_id:"10c70dfd-93fb-4e95-99d4-2bebf561e737",twitter_handle:""},{name:"Mario Gibney",profile_picture:"",ref_id:"1a3f05f5-5c4a-455f-b4ec-f682080a5518",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f29a41a4-6764-439e-9fcf-74fefaffc681.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/46497075/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2022-0-22%2F243683259-44100-2-0108d40b0f999.mp3",node_type:"clip",pub_key:"",ref_id:"80462fda-0ec7-4677-bd1b-cd7741154f39",show_title:"BTC Sessions",text:"Look at Tonga, too. Super unfortunate what just happened with the tsunami there. But Lord FA Sitsua has been pushing hard and is looking like they're going to attempt to basically mirror what El Salvador has done. Later this year. They're putting forth more or less the same bill with some slight changes. Again, we got to wait till the fall to see what that actually looks like. But I'll be Frank here, I didn't know of Tonga before this and all of a sudden there's starting to be some recognition before the disaster that just happened. But up alongside El Salvador, you see mentions of this island nation that probably not a lot of people were aware of prior to kind of this human interest piece in and around El Salvador. And so I think we might see more of that over time. Of course, the Volatility lets the Naysayers have their temporary wins here and there. But I mean, it's like Peter Schiff tweets, right? You can always go back in a long enough time frame and highlightership yeah, you can always highlight some amazing Peter Schiff tweets and say, man, if you had just dollar cost average every time this man tweeted about Bitcoin, you would be sitting pretty. And it's very, very true of a lot of this where again, people again, even in the chat, look at what it's done in the past three months. Three months. How short is your time frame? Do you plan for the future at all with that kind of a small window of which you frame things? I would guess not. Bitcoin is boiling the legacy financial system slowly. Just a frog just boiling it slowly. Yeah, absolutely. And that's ",timestamp:"01:05:32-01:07:59",topics:["tonga","el salvador","tonga","tonga"],type:"podcast",weight:4.962566472366181},{boost:0,date:null,description:"Important things every new Bitcoiner should know",episode_title:"Café ₿: #Bitcoin Beginner Q&A",guests:[{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Stephan Livera",profile_picture:"https://pbs.twimg.com/profile_images/1362551718110580740/v-W5Q2uo_400x400.jpg",ref_id:"72f57157-c96e-4466-8bf1-290cfe1f8a0b",twitter_handle:"stephanlivera"},{name:"Thomas J Lake",profile_picture:"https://pbs.twimg.com/profile_images/1529168328534769670/5cl2Y_k-_400x400.jpg",ref_id:"21541a47-0601-447c-99c2-312d1a63c19f",twitter_handle:"thomaslake"},{name:"Goodguy",profile_picture:"https://pbs.twimg.com/profile_images/1363216959576285185/unulY4yd_400x400.jpg",ref_id:"0c3fec75-9cc2-4c0f-8dbe-db7fae2b585b",twitter_handle:"goodguybiker"}],hosts:[{name:"Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"49966553-d55b-44c9-94ec-8fee09eee5c2",twitter_handle:"CitizenBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/35b20273-49f2-45ea-a9f4-dc479d86573c/7ae5315f-beb2-41e2-b672-65dd1f102017.mp3",node_type:"clip",pub_key:"",ref_id:"3d112a9e-f3a1-4edb-96b0-c3a8c63b0c4a",show_title:"Swan.com",text:"would be the top three things. You think it would be important for a new person to know and then we can kind of go around and get the same thoughts from Tomer and maybe Peter and really anybody else who wants to go. A good guy. Yeah, sure. So I think there's a few obviously key resources that are important. I think getting motivated and understanding, like having a good sense of what bitcoin is matters, and so getting, I think, the right jumping off point matters. Obviously, stacking stats and accumulating some stats is important, not your keys is an important thing. But for example, reading as an example, the Bullish Case for Bitcoin by VJ. Boyer party, right? So I think that's a good example of a short, intro, long essay or booklet length thing that you can read and. It will give you some sense of the motivation here and some sense of the problem and the challenge. So I think that is an important starting point. Of course, our CTO yarn pritzker, co founder of swan, has written inventing bitcoin that's also a fantastic starting point in terms of understanding some of the technicals of bitcoin without getting into the actual, like having to read code or technical aspects of it. I think it's a fantastic intro book. So I often recommend that as a starter book. I think those are some really good places to start. And then from there, and I mean, even harkening back to Greg Foster's comments earlier, right, this whole idea of skin in the game, put your money where your mouth is. I think it's a similar thing with bitcoin. What you'll find is you can lecture to people all day, but until they have some actual skin in the game, what's the chances that they are going to really take it seriously and spend some time learning? I think one other tip I would give for new people is actually use the technology, right? Send an on chain transaction, right? Use a bitcoin wallet, receive some bitcoin, like withdraw some coin and practice spending some bitcoin on chain, even if it's to yourself into another wallet that you control. In some sense, it's moving money out of your left pocket, into your right pocket, but actually using the thing. Then what happens is you'll start to ask yourself more questions because then you'll start thinking, oh, hey, wow, okay, I just sent a transaction. Oh, look, let me look up the transaction ID. And let me look that up in a block explorer like mentor space or block stream info as some examples, or OXT me or some of the kycp.org, like these different explorers out there. And they can give you some things to think about and understand. Okay, what was the fee rate for this? What are these inputs and outputs? What's going on there? All of these aspects. And I understand at the start that sounds like jargon, it sounds like engineering, it sounds like, whoa, that's like but what happens over time is as you get into bitcoin, you just, you start to once you have that right, motivation, then you just you can't stop going further down the rabbit hole. All right, tomorrow, if you had to pick three things, what are the most important things you think a new person would be valuable for a new person to understand about bitcoin? Yeah. So the first thing is use bitcoin the way it was designed to be used, and tune out all the rest. Tune out people promising yield, people talking about altcoins, people talking about yield, people talking about staking, people talking about everything else. Just go back to the very beginning. Bitcoin was the granddaddy. It came out as software that you can run where you can take custody of these things called bitcoin. And you could send them and spend them. So start there. Start at the very beginning. And it's like learning to drive a car. Do it with a small amount of money, as you would drive a car in an empty parking lot at the beginning. So use a small amount of money. Practice. I'm preaching the same things, just with different words than what Stefan said. So get those two things going and then let your curiosity lead you through the various aspects of the rabbit hole and many others. You may be a reader, you may be a tinkerer. You may be someone who prefers to learn from videos. You may be someone who likes to listen to spaces, all these sorts of things. There is no one right path, which is beautiful because there's many right paths. There are also wrong paths that lead you to the right path. You may get wrecked or burned by trying to be greedy or something else. And those are lessons. Again, you may learn them at someone else's expense by watching someone else make mistakes, or you may have to learn these lessons personally. But I think that, for me, is the thing. Go back to basics. Practice with a safe amount and follow your curiosity. ",timestamp:"00:30:18-00:35:03",topics:["Bitcoin education"],type:"twitter_space",weight:4.926955223083496},{boost:0,date:1633363603,description:"Innovation and scams",episode_title:" The Bitcoin v Crypto War with Udi Wertheimer, Crypto Cobain, Alex Gladstein & Allen Farrington",guests:[{name:"Crypto Cobain",profile_picture:"https://pbs.twimg.com/profile_images/1601273673041776641/7FrXDRv6_400x400.jpg",ref_id:"8fa5fec2-f714-433e-a8c9-ee5e76dabaf0",twitter_handle:"cobie"},{name:"Allen Farrington",profile_picture:"https://pbs.twimg.com/profile_images/1414147363560730624/EXMx91D6_400x400.jpg",ref_id:"8660a251-950b-4888-adbf-21f790210cf6",twitter_handle:"allenf32"},{name:"Udi Wertheimer",profile_picture:"https://pbs.twimg.com/profile_images/1600897375001874432/8pdVDKUz_400x400.jpg",ref_id:"483291b7-2101-4c28-a065-93b1524d0552",twitter_handle:"udiWertheimer"},{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"}],hosts:[{name:"Peter McCormack",profile_picture:"https://pbs.twimg.com/profile_images/1524287442307723265/_59ITDbJ_400x400.jpg",ref_id:"887a65a7-a2d8-4371-887e-bc7a6ca6ff17",twitter_handle:"PeterMcCormack"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4e607036-8fde-48ef-ab76-9c2ac4bab031.jpg",keyword:!0,link:"https://chtbl.com/track/282487/traffic.libsyn.com/secure/whatbitcoindid/WBD405_-_Cobie_Udi_Alex__Allen.mp3",node_type:"clip",pub_key:"",ref_id:"1f39afe1-2026-44ca-a0b5-80aea9a8cc83",show_title:"What Bitcoin Did with Peter McCormack",text:"Push back there. That's a lot. Great stuff. Let me go one by one. The first thing you said ethereum. If we're talking about ethereum desension, we have to talk about the monetary policy. We have to talk about the hardforks. I mean, nobody knows how much ETH is going to be minted in 2023. 2024. A small group of people will decide. And I think it's really dishonest, actually, to not mention that. And that's why I think it's centralized. So that's my point. My perspective. Second thing is on innovation. But as I mentioned, everyone knows it. I had to go dig in interview at EF Engineers to find out how much if they thought would be minted in the night. Like, nobody knows, literally nobody whose job. Is to mention it to you. Like people talk about it all the time. Who's the dishonest actor who's supposed to represent those facts? Anyone who's saying it's decentralized when clearly a small group of people is going to determine the monetary policy and not the public. Do you mean cosmic EIP? And there's an EIP 1559. So that economic activity on chain impacts the future. Yeah, it's a hard fork. And the people, the users don't get to decide, they just get hard forked out. This to me is quite clear. But again, we can debate and then just to do a couple of other things and we keep going on the innovation. Why are we all here? The innovation is to escape regulation. Bitcoin is money beyond regulation. NFTs are trading Art beyond regulation. Unitswap is trading assets beyond regulation. ETH is supposed to be running contracts beyond regulation. So it's all about can you evade regulation or not? So I do think that's the important thing with regard to crypto and being nice to people and this idea of are these toxic people bad for Bitcoin? I agree with you, Udi. Bitcoin is going to be fine. Like, Bitcoin is going to, I think, complete its mission over time. It's the people that aren't going to be fine, right? The people that are going to miss this project, the people who've been gaslit for a decade by the mainstream media about Bitcoin, who've been told not to buy Bitcoin because it's dangerous, because it's scary. A lot of people have really lost a huge opportunity, especially in emerging markets, because of what their government and the media have told them to stay away from Bitcoin. When it comes to these crypto projects, I think it's the opposite. I think we need to be more outspoken. Otherwise what happens is that Ripple is in Bloomberg today, and you have smart people who don't know a lot about the space thinking that Bhutan is going to adopt Ripple as their currency. Like that's in fucking Bloomberg today, okay? And you have Carnegie Mellon, a very prestigious institution, by the way, which is a very important institution in America, taking all this money from Hopkinson and promoting Cardano. This is what happens when we don't speak out. People get scammed. So I think it's actually the opposite. We should be talking more about these things because bitcoin is going to be fine. People need our help. And look, if you've got all the time in the world and you're a talented trader, you're going to be fine. Like you're going to clean up in the coming years as we go through these different kinds of crypto bull markets. But the average person is going to be confused. They're not going to know what's going on. And it's not like the average person bought a bunch of salana last Thanksgiving. They bought it in the last couple of months. Like the people who created Solona made the most money. These are the things on my mind. That's a really interesting point because if you listen to Charles Hutchinson's interview on Lex Friedman, I think everyone can agree he's a complete dishonest prick when he talks about Bitcoin. And his job there is to convince the listeners of Lexus show and perhaps Lex, that Cardano is something they should consider. And what's really interesting is I moderate all the comments on my YouTube because there's so many scammers, and when I talk about scammers, it's like, join my Telegram group. If you go on any Vice video at the moment, you can see what we're dealing with. I have to delete hundreds a day. But in there, what we also have is there is consistent chilling from people saying, but you need to consider cardano, why aren't you considering Hex? And it's always the same projects, so I'm going to throw this over to Kobe. How much do people actually pay? Look, you mix in the trading community. There's a lot of people out there trading. And the way I explained it recently to somebody, I don't buy anything apart from Bitcoin. But I almost feel like I'm sat in a conference room in Vegas with Alex Gladstein discussing human rights and through the window and seeing all my friends on the roulette table and having fun. And whilst I know they're gambling, I see all this ",timestamp:"00:46:09-00:50:44",topics:["Crypto scams","Carnegie Mellon","Charles Hutchison"],type:"podcast",weight:4.92695522332177},{boost:0,date:1672167683,description:"Does Bitcoin mining price determine Bitcoin price?",episode_title:"TOXIC HAPPY HOUR! #Bitcoin, Beer and Plebs! 🍻😂🤌🏻",guests:[{name:"Dr. Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"51a969bb-dbf7-4d20-b128-74dcc5f560f6",twitter_handle:"VailshireCap"},{name:"Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"3a2bc97d-072c-4ed9-9a59-17ceeb68fe99",twitter_handle:"TomerStrolight"},{name:"Laura Shin",profile_picture:"https://pbs.twimg.com/profile_images/1539462748173746176/hxR80FYT_400x400.png",ref_id:"a56a7b4d-edca-41d5-9d51-33396aa05b96",twitter_handle:"laurashin"}],hosts:[{name:"PUBLORD",profile_picture:"https://pbs.twimg.com/profile_images/1480160632360124416/AM_vVRko_400x400.jpg",ref_id:"8126d933-0986-4fd2-a6be-c02581294463",twitter_handle:"publordhodl"},{name:"Anders Jensen",profile_picture:"https://pbs.twimg.com/profile_images/1382039124991954947/Wb9kT7MO_400x400.jpg",ref_id:"af45195e-77a6-463f-ba64-29c6b0437d9c",twitter_handle:"andersjensenorg"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2a1450bc-0649-4dc5-8ec9-1474af1ea1c3.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/f7b6cfcb-7cd4-4401-a3fb-7735bb570c07/2ae49fca-a048-4a34-93b9-247513af5699.mp3",node_type:"clip",pub_key:"",ref_id:"2656d145-191a-4e86-8261-04c88a9a6562",show_title:"Anders_🍆",text:"Sack, welcome to the stage. How's it going? Merry Christmas, police. Navidat. Hey. Merry Christmas, everybody. Good to be here. And I just had a quick question. I thought I'd throw it out there. It's not heavy heavy, but I just got caught up on some of the Miting concerns, and I just thought I'd ask if anybody can share with me. Their thoughts on how bad is what. Does it actually mean to the price. Of bitcoin that all of these miners under? I think there's a lot of questions. See if there was any feedback that's a lot of people sorry if I'll keep quiet. If you have further, I'll let you finish. Okay. So I think that's a it's been a discussion going on for years whether mining drives the price of bitcoin or the price of bitcoin drives mining. I guess there's a feedback loop there, but definitely the higher the price of bitcoin, the more incentive to mine it, for sure. But it also seems to sometimes on shorter term lead the price of bitcoin. Because either people see it as a confirmation that there is belief in it and it's getting more secure as hashing rate goes up, or like we saw when china quote unquote, well, actually did ban bitcoin mining back in was that I can't even remember. Was it may this year? I think it was 2021 around that time, and the hash rate dropped to half and a lot of people got spooked and the price of bitcoin collapsed. I'd say a little bit of both, but tomar, you are well worse. Go ahead. Yeah, I think maybe I'd say two things. One, over the history of bitcoin mining has been incredibly volatile. Up and down, back and forth. When the first asics came in, there was only one company making asics. Then a few others came in, that one company disappeared. It wasn't even a real company. And then many of those went out of business. And of course, bitcoin survives through it all. The most important innovation in bitcoin that people talk about is this difficulty adjustment thing which relates to the mining. And so if miners go out of business, then it gets easier to mine bitcoin. And that means that bitcoin continues to operate flawlessly. It also means that it gets cheaper to mine bitcoin, so more people are attracted to mining it if it becomes profitable again. And so what I've noticed in my ten years in bitcoin now is mining is like if the bitcoin price is like a sign curve up and down, but skewed up and to the right. The bitcoin mining is like a scaled up version of it. When the price goes up, you get way more mining, and when the price goes down, you end up getting way less mining and it lags behind. So they run ahead and they run behind. I don't think it's any fundamental what I'm getting to is I don't think it's any fundamental concern to bitcoin's ongoing steadiness or its security or anything of that nature. It's simply a reflection of what the economics are to mine bitcoin at any given point in time. And when the price was high and energy was cheap and money was cheap, people were borrowing money to pay for miners and energy on credit to mine expensive bitcoin. And now that it isn't. They aren't. So it's just rational. But the same number of bitcoin are being produced as would have been the case if the price had been high or if the price had been $1, than just kind of that's a promise that no amount of added or subtracted mining can break the supply. And its issuance schedule and the rate of development of the blocks is essentially exactly as described in the white paper. And when I say essentially, I don't even need that, it is exactly as described in the white paper and will continue to be. So. I think those are awesome points that Tomer made. And I'll throw just a little side tangent on this because I think in terms of investments for almost everything regarding the bitcoin miners, right now, there's a perfect trifecta going against minors. I like to think in terms of three trifectas. What's the trifecta? Low bitcoin price, high energy prices and then a high hash rate. Right now, those three things combine to make it really difficult to survive as a public bitcoin miner or even a private bitcoin miner. And so I get asked all the time by people like, should they invest in this minor because it looks stronger, this minor? I would say I would still avoid all of them. I think they're still dangerous and I still think we're going to see more of a minor capitulation before this is over. To Tomer's point, and this is critically important to understand, that doesn't affect bitcoin. At the very least, the network is still super strong. It will still continue to do what it's designed to do. But bitcoin miners, they offer beta to the price of bitcoin. And so in bull markets they can outperform for a season, and then in bear markets they tend to drastically underperform. I would just be super careful. We were talking before Tomer, you got up here, we were talking about bitcoin proxies, talking about GBTC and MicroStrategy. I would include minors in that list as well. A lot of people invest in miners in their IRAs and their 401 KS because they can invest in bitcoin itself. If you are you've had a tough year and I think it's going to get worse before it gets better. I still think we're going to see many miners, like flat out capitulate actually go bankrupt. Some will survive, a small handful will survive all of that. What that does is it drags the price of bitcoin down a little bit further. It drives the price of asics down a little bit further. I like it, though. This is capitalism. It's called creative destruction, right? So basically the people who have been smart and who have been ready for tough times, they're going to get rewarded, they're going to get cheap. Minors, individuals who have been saying giving up, and who have been smart and they've had their head downs, they've stayed humble, they've been stacking SATS and putting some cash. Away, they're going to be able to buy asics for super cheap and they're going to be mining in the next cycle. And that's awesome. That's the way it should be. Bitcoin itself, it naturally decentralizes. Over time, it gets more and more decentralized, unlike cryptos, which get more centralized over time. So I think it's beautiful. It's sad if you're an owner of one of those companies because they're going to get smoked, but it's great if you're everybody else in the bitcoin ",timestamp:"01:36:47-01:43:20",topics:["Bitcoin mining","Bitcoin hashrate","Bitcoin network"],type:"twitter_space",weight:14.092456989642082},{boost:0,date:null,description:"How Bitcoin has performed as a tool for freedom in the year 2022 ",episode_title:"Gladstein & Sam Callahan - World Bank / IMF & #Bitcoin",guests:[{name:"Sam Callahan",profile_picture:"https://pbs.twimg.com/profile_images/1592532728775409667/0DayEP2Q_400x400.jpg",ref_id:"5a044a91-8dee-421c-86dd-8c734dc9bc32",twitter_handle:"CallahanMusic_"},{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"},{name:"Brady",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"45bbbb01-6163-4b3b-905a-fc67174893d9",twitter_handle:"CitizenBitcoin"}],hosts:[{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/f8be7c60-94a5-41d0-972c-6301cd4ad7f0/4e5bf86b-6193-4f6e-8fa3-933344b2053e.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"888c6962-f33f-4e88-a1cb-6819baabe35f",show_title:"Swan.com",text:"We can pivot a little bit from Africa and just talk about maybe 2022 more broadly. We're coming up on the year end. I feel like you have a unique perspective, given your position at the Human Rights Foundation and your work specifically around Bitcoin being used as a tool for freedom. And I was wondering, if you just think back in 2022, how have we done? How is Bitcoin done to be a tool for freedom? In your mind? What got you excited this year in that kind of purpose for Bitcoin? Bitcoin is doing what it was created to do, which has become a parallel economy for people that don't want to deal with the state. I think that in doing so, it is also kind of finding its way through the existing financial system. So I think that there are things that pop up as Bitcoin adopts that you couldn't have predicted. Some of them are temporary and some of them are permanent. Who knows? We know that we don't know what Satoshi or Hal or any of the early Bitcoinners thought would happen. But it seems pretty obvious that Bitcoin's ability to monetize stranded energy was not really at the top of their list when they were designing the white paper, right? Or when Satoshi was designing the white paper. That was not very clearly not something they realized would happen, or at least was maybe a peripheral thought. So you get a lot of these things along the way towards separating money from state, and one of them happens to be improving Fiat services, which I know Bitcoinrs are divided on. But the reality is, it's true. On our way to the Bitcoin standard, we live in the Fiat standard. It is what it is. And it's really interesting how Bitcoin can connect Fiat companies in ways that Fiat companies cannot use Fiat rails to connect to Fiat companies. Like, this is kind of a powerful thing, and it'll end up in the end with Bitcoin companies connecting with Bitcoin companies. But for now and I guess being in Africa really brings us into focus, but you realize how financially disconnected the world is, and that's not again, it was designed that way. It was designed by companies and services who found a business model and being able to connect people and be able to extract rent from them, moving money on a particular rail or service. So I think, for me, this year has been a big reflection on, like, capitalism more generally, or what we would refer to capitalism. Like, I'm kind of with Alan Farrington. He wrote a great piece called this Is Not Capitalism. I would encourage everybody to read it. Makes for a great holiday read. It's also part of his awesome book called Bitcoin is Venice, which you should read. But basically he's describing how, like, the post 71 Fiat political economy, which essentially is like an operation where the state can be the lender blast resort for all parts of what would normally be a free market economy, obviously not capitalism. And I think that's true for a lot of things in the world. But on the other hand, it is what it is. It's kind of like a cop out to say that it's not capitalism. In a way it's not communism, you know what I mean? It is the American model of economic growth and development. And if you want to say that that's not capitalism, fine, but you got to call it something else. But that's what kind of like leftist critics would describe as capitalism. That's like what they don't like, right? It's like American multinational companies, right? So if we're going to sit here and say that's not capitalist, okay, fine, and I'm sympathetic to that. But the idea is that in the reality is we have a business industry globally that is known as capitalist, at least to most people, and won the cold War or whatever and has developed since then. And I think it has the wrong incentives inside of it, right? So if your incentives in, quote unquote, capitalism, let's say 1.0 or whatever this is that we have fiat capitalism or whatever you want to call it, the incentives are wrong. The incentives are for companies to come in and split people apart, to make money off of them and to attract rent. So I think whatever bitcoin brings to the table, bitcoinism or capitalism 20 or whatever you'd want to call it, is really interesting because it's open. So and I'm who knows how this thought process will develop over the coming decade, but it seems at least plausible that over time, like bitcoinism would result in costs like going down or rather deflating because of the open competition that results from bitcoin economies. Whereas in the capitalist 1.0 model you have a lot of these systems that are set up to become Indian monopolies which end up doing a lot of rent seeking and kind of like unusual things that put money in the hands of a very small percentage of the population and extract resources from others. I think this goes all the way to the macro level of global trade and commerce, all the way down to the micro level of daily payments. And I think that I'm very optimistic about a bitcoin like a different system being built on bitcoin where the incentives are just different. And you would start to see that in Africa, let's say, when you're thinking about how broken the continent is and how broken apart it is rather by both local corrupt leaders and by foreign powers and how Bitcoin would just unite and we create one simple monetary language for the continent. I just think the incentives are very different. I think companies are incentivized to cooperate, cooperate with people as opposed to exclude them or exploit them. And I know this is overly simplistic and clearly, like you could steal man it, but you can just kind of feel this it's very palpable when you're talking to the entrepreneurs in the space. Yeah, that's one of the big things I'm ruminating on as we close out 2022 ",timestamp:"00:35:28-00:42:23",topics:["Bitcoin 2022","Bitcoin freedom"],type:"twitter_space",weight:4.890018939971924},{boost:0,date:1671720944,description:"What to expect on Bitcoin Day Naples?",episode_title:"Café ₿: #Bitcoin News & Bitcoin Day w/ @Bitcoindayio",guests:[{name:"@johnmichaeldrew",profile_picture:"https://pbs.twimg.com/profile_images/1512897699942744064/PuRU3K8P_400x400.jpg",ref_id:"6b72ee7f-52ef-4847-96ed-78ea09e3f19b",twitter_handle:"johnmichaeldrew"},{name:"@mattyicesensei",profile_picture:"https://pbs.twimg.com/profile_images/1607138483579101186/0qm0xaCF_400x400.jpg",ref_id:"286abd3b-cecc-4ec5-bf88-2a9fd5393083",twitter_handle:"mattyicesensei"},{name:"@Bitcoindayio",profile_picture:"https://pbs.twimg.com/profile_images/1493098733608837121/tLI-XTwl_400x400.jpg",ref_id:"6a87699e-7a27-4928-89e8-d884f1458bf9",twitter_handle:"Bitcoindayio"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/83744e68-b563-4004-b52a-cfdfff89748f/12c9b9f2-fbce-4784-9404-88a574baa762.mp3",node_type:"clip",pub_key:"",ref_id:"6f72249d-ab08-4a9e-ac54-545f618c29d2",show_title:"Swan.com",text:"another speaker we don't have up there yet because we're announcing it just now, but I sneak preview that we're also luke Jr. Actually is down there, so he's going to be coming as well. We're going to get him on the schedule, but we're trying to get all the bit devs going to come in from the ones that are nearby, at least Miami and Tampa and those guys. But we're going to have a bit devs, kind of a day long. I don't know if they're going to kind of just have a 1 hour thing, but we're going to have bit devs as well from all over Florida come together, which is probably the first time they've ever done that. And then also Mike Yarmou's Muzz, he's going to have one of his bitcoin blitz chess tournaments as well. Well, that's brand new. I don't even know that. Thanks, Edward. That's cool. Let's turn it and then yeah, we got the bitcoin or the toxic happy hour, guys. So you want to talk about that? Is he still on? Yeah, I'm here, man. All right. I know Anders, I think, had reached out to you, and it's pretty cool because we had just gone up to Charlotte, and when your first conference is the bitcoin conference, you think like most conferences are like this. Of course, there's bit block boom and Pacific. Bitcoin now are the larger. But it was great, man. Yeah, they invited us up just to hang out, man, basically. And the great thing I'm working my travel schedule, and if I'm here, I'm coming down there, man. I know Anders will be there. What was great is and it takes you back to your roots because the people you have coming in, what you don't realize is how much you know. So people that have been here for a couple of years, you don't realize how much you've learned. And when you go to these conferences and you meet people that were in your shoes three, four, five years ago, it's just really cool because really you're helping somebody. You're really helping somebody to learn and understand. And that's my favorite part of it. It's not there just to see and be seen. It's there because there are absolute no corners that come to these. And I'm up in Charlotte for Halloween. What was cool is you had some rooms going on everywhere, and one was simply showing them, hey, how do I download a lightning wallet? And to see their faces. When you send them a few stats, they start to get it like, my God, I've got value outside the system here. This is the coolest thing ever. So yes, man. Yes. Dr. Kapir we'll come down there. I see fossils on stage. He and Larry's there. So hopefully we'll meet up with them as well, because, man, at the end of the day, bitcoin is about humanity, about the friendships you meet here. Fantastic. Hey, Greg. How's it going? Hi, guys. Were you talking to Foss? Yeah. Nice to talk to you guys. Nice to talk to you. I'm getting some feedback here. If you're up here and if you're not talking, mute yourself, please, because it causes the feedback. Alex, how are you, buddy? I actually have to be up and then jump. I saw this thing come across. I'm actually going on a lead lag report spaces at noon, so I have to prepare for that a little bit. But I think I know why we're here. We're talking about the Naples bitcoin. Naples day. There'll be the second or third one I've been to. This will be number three. It's a great spot. It's a great group of people. Larry LaPard is going to be there, I think. I'm trying to get James Lavish to come. I know Maddie Ice is going to be there. I hope Steve Luka is going to be there again because he put on a great show the last time. So looking forward to seeing everybody at Bitcoin Naples. It won't be a disappointment, I promise you that. And Puppy lives in the vicinity, I think Tampa Bays within a couple of hours drive, right. So let's hope to see everybody there. And if I don't talk to you before the Christmas break, happy holidays to everybody. 2023 is going to be an exciting year. So let's get ready. Thanks, guys. Thanks, Greg. Talk to you later. Have a merry Christmas. Thanks, robin hobro. Yeah, we hope that so. Yeah. Hopefully people come down from Tampa. Angel is coming down. He's like in Jacksonville or something. He's up north a little ways but talked to quite a few people coming from Miami, too. So few caravans hopefully, coming from Miami. So I think it is even if you've been to bitcoin 22 or whatever, I think it is certainly a different vibe. Like I said, smaller and little less glitzy maybe. But hopefully we get people from both. I like the smaller venues. There's less people. The people to speaker ratio is a lot lower and it's more intimate. You can spend more time talking to them. And I like those environments a lot better, personally. It's. One of the reasons why Pacific Bitcoin did so well is it was smaller we're having at the college down there, and I think that I'm hoping we'll get some students from the college if we can get the word out to them. And then also wanting to make it like I really like the Bitcoin summer model where they were doing development with students that's kind of working with colleges, that's kind of the model or the vibe that I'm looking to recreate is get some students orange pills or help them get into this space more. Very cool. Very cool. Yeah. So we're at Florida southwestern state college, which is its main campus, is up in Fort Myers. But they do have a campus down in Naples. It's named after the county, so it's the Collier campus where Naples is in Collier County. And it's a beautiful small little campus. It's got about maybe eight or ten buildings on the campus. And we've got a nice room, a large room in one of the buildings and then a smaller classroom on the side for some networking events. And probably that chess event will take place in that room. A beautiful little setting. And I know we've been talking about Florida people, but Naples is a beautiful vacation destination. So in January, the weather is absolutely beautiful. The beaches are awesome. You can come down for a long weekend, stay in a nice hotel, spend Friday on the beach, saturday at bitcoin day and Sunday on the beach and head back to wherever you're coming from and be totally relaxed. ",timestamp:"01:48:15-01:55:45",topics:["BitcoinDay.io"],type:"twitter_space",weight:12.160706504077877},{boost:0,date:null,description:"Alex Gladstein's recap of his African Bitcoin Conference experience",episode_title:"Gladstein & Sam Callahan - World Bank / IMF & #Bitcoin",guests:[{name:"Sam Callahan",profile_picture:"https://pbs.twimg.com/profile_images/1592532728775409667/0DayEP2Q_400x400.jpg",ref_id:"5a044a91-8dee-421c-86dd-8c734dc9bc32",twitter_handle:"CallahanMusic_"},{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"},{name:"Brady",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"45bbbb01-6163-4b3b-905a-fc67174893d9",twitter_handle:"CitizenBitcoin"}],hosts:[{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/f8be7c60-94a5-41d0-972c-6301cd4ad7f0/4e5bf86b-6193-4f6e-8fa3-933344b2053e.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"f84d9798-f31e-480e-9da6-9be8dc74f6be",show_title:"Swan.com",text:"can rerehearse. No, it's interesting because I saw Sam clapping, so I thought that it was working, but apparently not. It was. I think we probably heard more than we heard a lot of it. Man did you hear me talking about the mining? Mining? No. Okay, so we didn't hear the mining. So maybe start there. Okay, so to recap awesome event. No one tried to sell me a token. You learned a lot about how the main use case for a lot of Africa today is receiving bitcoin from abroad, because crossborder payments suck, and a lot of entrepreneurs have found ways to be the off ramp for their families and communities in different countries. Like, I met a guy who was doing this in Somalia. Like, lives in Mogadishu, has 30,000 clients in Somalia. He receives the bitcoin or stable coins from abroad, and then he's the off ramp, and that's what he gets paid for to do. There's tons of businesses like this in Africa today, and you get enough businesses like that, and then you also probably start to start to get a little bit of a circular economy going as well. So that's why we started seeing, I think, a bunch of other people pop up at the conference who are doing merchant services and then mining. So I guess what I was trying to say about mining is that I think it's going to have a huge decade in Africa. It's going to be transformative. I met a kid I say a kid not to be diminutive, because he was, like, 19 years old, and he's from northern Nigeria, and he learned everything on YouTube about how to mind you guys can hear me fine, right? We're good? Brady yeah, we're good. Okay. So he learned how to mine on YouTube, and I guess in the delta region of Nigeria, there's an enormous amount of flared gas at night. I spoke to people who grew up there. You can just see it like the fire in the sky at night, and obviously represents an enormous opportunity to turn that into money and economic activity through the bitcoin network. I talked to him a little bit, and he's planning to go down there and capture some of that flared gas with a container operation this year. So I'm sure security will be, like, a high budget item for him, but that's the kind of gritty entrepreneur that you meet out there. I also just was shocked at the number of developers. I hosted a workshop about bitcoin for nonprofits. Maybe there were 35 people there. 20 of 20 of them were bitcoin lightning engineers from Nigeria. So they came to the workshop because they have local causes. They want to support and they want to be like the Uncle Jim type person. But I'm sitting there in this room and I'm like, wait a second, there's got to be more bitcoin engineers in Lagos than in San Francisco at this point. It's pretty amazing. And I think that's going to just explode in the coming two years. So, Kala is a program started by Carla Kirk Cohen and Bernard Para and a bunch of other African bitcoiners. And it helps programmers and coders become bitcoin programmers and coders. It's an incredible initiative. Qala is what it's called. So Ahref is proud to support Kala and they're going to be churning out a couple, at least a dozen, if not more bitcoin ecosystem contributors every year. And apparently they got in their first cohort, which is just sort of wrapping up. 100% of the graduates got placed with jobs in bitcoin companies, which is incredible. So that's something that's really cool. So I think that's another huge area that you start to see is that there's going to be this huge explosion of growth of contributors to the bitcoin ecosystem. From countries there, I learned about a bunch of other projects. One of them was the fact that a lot of people in Africa, in sub Saharan Africa, have feature phones, but they can't necessarily pay for. Internet is very expensive in a lot of countries. So you might have like an Android or whatever, but not be able to actually have data unless you're at a cafe with WiFi or something. So that's why it's very important to figure out how to use what's called USSD to interact with the bitcoin network. So USSD is like, you can use it on a candy bar phone. It's like a way to use text message protocol to run small apps. So it's sort of how it sort of impacts the type of thing. But the idea is you can send a text message and then get a series of commands back to your phone without Internet that allow you to send a receive bitcoin, which is pretty freaking amazing. And it's done by a team that was speaking at the African Bitcoin Conference and is growing and fundraising. So, yeah, I just got my mind blown like three times a day by stuff I was learning. I met this woman who launched this educational initiative in Nigeria to help girls and boys and teenage girls and boys, Muslims and Christians learn how to use bitcoin. That blew my mind when she told me about how it all works. So, yeah, I consider a pilgrimage to the Africa bitcoin Conference to be at the same level as going to, again, a place like Elsante or one of the other bitcoin circular communities. So, bucket list item for all of you for next year. So anyway, yeah, really fun. Yeah, I remember reading about that. I think it's machakura. I don't know if I'm right, but basically sending bitcoin over text messages. So it's tools like that that get me inspired, because trying to get it. Gives you like a menu and it's like, do you want to send? Do you want to receive? And of course, it's custodial there's issues, but it's like a way for people to send and receive and do activity over the lightning network using text message. And you can easily just withdraw. You can, like, withdraw funds to your own control as well at any point. So I think you start seeing people use some of these kind of systems as kind of spending wallets. Like, you might have some bitcoin in the same way that you might use like a wallet of satoshi or maybe someday soon a fetishment to do spending because it gives you something like privacy that you want. Well, in Africa, people might also have their cold storage or whatever, their savings, and then they might have a little bit of bitcoin in, for example, an account that allows them to get out there and use it and spend it without internet access, which is pretty amazing, actually. So anyway. Yeah, it's incredible just giving them the tools they need. ",timestamp:"00:15:52-00:23:31",topics:["African Bitcoin Conference"],type:"twitter_space",weight:4.890018939971924},{boost:0,date:1635566400,description:"[[John Vallis]] Intro",episode_title:"WHY ARE WE BULLISH Adam Curry Untapped Growth John Vallis Guy Swann ep211",guests:[{name:"Adam Curry",profile_picture:"https://pbs.twimg.com/profile_images/1401922551161442307/XjN2DdFD_400x400.jpg",ref_id:"c304fffc-7fe0-49a1-86b8-d3278f5c89dc",twitter_handle:"adamcurry"},{name:"John Vallis",profile_picture:"https://pbs.twimg.com/profile_images/1568743166035070976/4MyKww8A_400x400.jpg",ref_id:"c3a9fe29-3b78-4665-af54-e293e9d68962",twitter_handle:"johnkvallis"},{name:"Guy Swann",profile_picture:"https://pbs.twimg.com/profile_images/1401969630634196995/DqOuszMi_400x400.jpg",ref_id:"39c31930-d799-40a0-9a46-193117d03418",twitter_handle:"TheGuySwann"},{name:"Untapped Growth",profile_picture:"",ref_id:"79de7f8f-4f00-48c4-897a-57aa2a5fb7da",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/6b8fbd46-fa4a-4d07-a142-9aeb242d249f.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/42550048/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-9-30%2F442bcfea-951a-39d6-a1ce-0bbc6c7b43c3.mp3",node_type:"clip",pub_key:"",ref_id:"5b032ecb-09f5-4581-a1a8-cd0865de6076",show_title:"BTC Sessions",text:"you, brother. It's always a pleasure. Yeah. I host a podcast or two podcasts now, I guess one called Bitcoin Rapid Fire and that's my own. And the other is closing the loop. And that's for CT, a subsidiary Bitcoin company of a larger energy group in Norway. And mine. I just started because I became obsessed with Bitcoin and in 2019, it kind of bubbled over and I couldn't not talk about it. And I needed some excuse to hit up these people in the space to have these conversations. And I guess since then, it's morphed into I don't get too deep into the technical aspect of things. I really like to discuss what's happening on the personal side of this phenomenon and how engaging with this thing and adopting it and using it as your kind of lens for many different aspects of reality influences people on a very personal and deep level and what kind of impacts that's having on culture and such. So, yeah, that's what I like to investigate. And I can't wait to chat with you guys. You also like to Orange pill people like Peterson, so that's a plus, too. I love watching him dive down that rabbit hole and start bringing in his circle into it. So I know that was a while back, but once again, kudos on that. So glad to have you. Thank you. Yeah, it's inevitable that Peterson takes the Orange pill and really goes down the rabbit hole. So it's nice to participate in some small way in that. Yeah. Peterson totally was on the same foundation of the principles to grasp it from and just started running with it. It's just great. So much of the bullshit in a matter of like 20 minutes. It was pretty amazing. Yeah, it was. God, why don't you take it away, let people know who you are and what you do as well. I'm the guy ",timestamp:"00:08:28-00:10:23",topics:["john vallis"],type:"podcast",weight:4.856878281588437},{boost:0,date:1632628800,description:"The Analogy of [[Automobile Innovation]] for Mass Production and the Development of Related Industries to [[Bitcoin]] and [[Lightning]] Development",episode_title:"WHY ARE WE BULLISH Denver Bitcoin CryptoMags Lord Fusitua Jim Crider ep203",guests:[{name:"Jim Crider",profile_picture:"",ref_id:"acb937b5-97e9-4881-a45e-0e9511382019",twitter_handle:""},{name:"Lord Fusitua",profile_picture:"https://pbs.twimg.com/profile_images/1511890587586560000/xGb_Dq_D_400x400.jpg",ref_id:"45559c92-d4f0-42a5-8dc4-a8cce65e95a1",twitter_handle:"LordFusitua"},{name:"CryptoMags",profile_picture:"",ref_id:"79cd9104-fa2c-4996-a179-8acb75642acd",twitter_handle:""},{name:"Denver Bitcoin",profile_picture:"",ref_id:"5ab53f2f-797f-4e1b-90d8-f2ca90e88af4",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/638c47da-8592-4d7b-aa1a-20e28fa0499f.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/40846589/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-8-25%2F381320f0-9d1f-9ee7-893f-57af427aca69.mp3",node_type:"clip",pub_key:"",ref_id:"6f3620f8-fd11-4b37-b8c1-7b8bd991420c",show_title:"BTC Sessions",text:"Think about when the car became much more accessible to normal people. That changed. Not only that changed the perception of the value of a car, that changed industries for production, and that also changed gosh, the way that cities were constructed. And we could have looked at that and said, Henry Ford, this is trash. You're making crap cars on a line. But the iteration there of, hey, let's get this to the masses. And then later on we're going to have these Supercars. But right now it's about getting it to the masses and allowing for an infrastructure to be built that we can continue to progress and build on from here. And allowing that to be shared. Yes, Henry Ford did some pretty crappy stuff, I guess. But the infrastructure that was built based off of that being accessible to the masses allowed for other people who weren't related. They weren't benefiting directly from Ford or company stock or whatever it was. This network of, hey, we're going to build roads, we're going to build gas stations, we're going to make tires. And right then it opened up a place of progress in a whole industry and the creation of something that had been thought of before just because it became accessible to more people. And that's what's happening right now. It's no longer this small thing that's for cyberpunks or something. It's the masses. And hey, how can this fit with my life? Ford effectively created the context for the word infrastructure. Infrastructure didn't mean anything before there was an automobile because all those roads, those highways, everything that infrastructure came from having an automobile. And that's exactly like you're saying. The entire infrastructure of what Bitcoin and Lightning will be used by will change the way people live, the way people consume music, food, how they store value. It will have ramifications right across the human experience. And just quickly, I just realized I completely did not answer Magg's question at all. Sorry. We've ",timestamp:"01:19:31-01:21:40",topics:["automobile innovation","bitcoin","lightning"],type:"podcast",weight:4.856878280787084},{boost:0,date:1676393011,description:"The small time deposits component of M2 money",episode_title:"#24 Decoding M2 (Non-M1): Money supply USA",guests:[],hosts:[{name:"Matthew Mezinskis",profile_picture:"https://pbs.twimg.com/profile_images/1497857369455398914/un-TpS6g_400x400.jpg",ref_id:"0dc3360c-5243-43f0-a2f4-19f8a171550d",twitter_handle:"crypto_voices"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/3325efce-80a8-490c-8645-cad1b9a22d94.jpg",keyword:!0,link:"https://anchor.fm/s/d8decf3c/podcast/play/65039444/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-1-14%252F312793741-44100-2-d61bc3a08476d.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"3bfbecac-2ad1-4983-9ed0-f1e48f1f0149",show_title:"Crypto Voices",text:"let's put savings back on. We have savings deposits, the vast majority of non M One, M Two retail money market funds. And now let's add the final component of M Two that we haven't looked at yet, and that is small time deposits. Now this is actually back to a bank. Typically. Typically this can be found in a bank, small time deposits. And let's take off savings and retail just to see this one now you see this one's a little bit more jumpy and way down compared to where it's been around the global financial crisis. It was a little bit more than retail money market funds. 1.4 trillion on the eve of the global financial crisis. And then you see that it fell steadily, steadily all the way until basically today where it's $357,000,000,000 of a small time deposit money supply for retail investors in the United States. There is at the zoom here again to comment on the retail nature of what M two is supposed to be. It's supposed to be more retail liquid monetary assets. Of course that's not always the case with small time deposits. They could be small companies that hold time deposits. Nonetheless, this is just how the Federal Reserve counts it out. I believe it's under $100,000 is a small time deposit. And so what is a time deposit? Similar instruments like a money market fund actually or even a savings deposit, which I didn't perhaps give a full definition either. This is again, when you want to hold your money, you want to hold a balance with a bank. And as we learned in prior videos, that does not mean that there's just physical banknotes and coins sitting in a big vault waiting for you to retrieve. No, that's not how the system works. It's a fiduciary system. It's a fractional reserve banking system and basically nearly all of the money always is lent out by banks in the effort to pursue interest, to pursue profit. And it's a highly regulated industry. They claim that the regulations stop prior bank runs and prior crises. That's very, very debatable, very very arguable. I personally don't believe that at all. But nonetheless that's what they claim. So a time deposit is a very unique type of deposit where unlike a demand deposit and unlike even a savings deposit, which now after regulation do changed, basically has no difference than checking accounts. As I mentioned, a time deposit is basically where you know that you are depositing this money with the bank in return explicitly for interest and you won't be able to take the money out until the term ends. So the deposit might be a month, it might be three months, it might be six months, it might be a year, it might be well over a year. But it is a strictly defined term by the bank where it is very very clear that you are loaning your money to the bank. You can't take the money out of the deposit, the time deposit before term comes due. And if you do, there will be a penalty for you to pay, not the bank. And in return for this time deposit account, which what is in it for you if you offer this to the bank, if you deposit your money in the bank into a time deposit account you should receive higher interest payments than you would in a savings account or a checking account. Sometimes checking accounts pay interest, sometimes not. Sometimes they're just free. But that's how it works. So again, not a huge number and even a smaller number than retail money market funds as of today. But this is an account that you will typically find back in the bank. And again it's just defined by the Federal Reserve as a small number, meaning under 100,000 denomination time deposits. So typically retail, but it certainly could be small companies as well using small time ",timestamp:"00:15:42-00:19:51",topics:["Small time deposits","Time deposit","M2 money supply"],type:"podcast",weight:42.29542842100859},{boost:0,date:1624507200,description:"Small business regulations and [[problems with employment]]",episode_title:"Bitcoin Fixes This 48 Small Business with Ali",guests:[{name:"Ali",profile_picture:"",ref_id:"1169edf2-a89f-4d89-94a4-1be1a7b9aef0",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2536a974-d668-4ac2-8613-0b37aa0ca08c.jpg",keyword:!0,link:"https://anchor.fm/s/2a4e8034/podcast/play/36003846/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-5-23%2F969a4306-e9eb-95c5-0e15-42d37c0e61e8.mp3",node_type:"clip",pub_key:"",ref_id:"b1b5acae-0bc8-4117-8d1b-b61e79bea99f",show_title:"Bitcoin Fixes This",text:"up in the morning. I had a question about your being a small business. What sort of regulations have you seen over the past year and a half with chronovirus and everything? I imagine that couldn't have been easy. And to some degree, I imagine it's still very difficult. What has that been like? Yeah, it's been tough, Jimmy. We were forced to close down our dine in area, but we're already operating most of our business with deliveries, online delivery platforms like Uber Eats and get the dishes and all these door dash and all these things and then take out like, people just come in and pick up two or three Sharmas and take it to their families. And our business has to adapt to this shift in the way people order food. Luckily, we were already there. We were integrated with all the online platforms and we were able to make that transition quite easily. But, yeah, for the first month, I remember the first March of 2020, within one week, our sales dropped like 80% in a week. And it's quite devastating because we didn't know how long things going to last or anything. We laid off people, we tried to get them back, but they said, no, we're getting free money from the government. And that's part of also the reason why we felt like something was messed up with the financial economy and we felt like there was too much money flying around and it was being worth less as time goes by. So, yeah, we just hustle through it, Jimmy, like we did what any business owner would do. You just hustle through it. Something like that Bitcoin wouldn't save you from a situation like this. You need to just make your business work. And if it works and you've done the Bitcoin decision now, you have a successful business and you're in a position of strength to expand your business however you want or to do all the things that you want to do with your business. So it has been challenging, it has been tough, but you got to fight through it. That's the best advice I can give to people. And it sounds like you had some labor problems, maybe even some regulatory problems and things like that. How do you deal with the fact that people are getting paid more to not work, and how do you hire people in that sort of weird incentive environment? Yeah, it was backwards, Jimmy. We tried to get people hired after business started picking back up in 2020. And then they were just like, no, we're good. We're getting free money at home. We were like, okay, for a while there, we had to raise our pay just to attract the people staying at home. So we had to basically compete with the government and paying employees. So, yeah, we did that. But then at one point we said, you know what? We don't want to come back school, you guys. We're just going to hire a whole new crew of people and train them from scratch. And we did that, and it worked out fine in our industry. I feel like there's always some people that are willing to work. You just have to really look for them, but they're not easy to find, but you end up finding good people eventually. Yeah, I've noticed that about small businesses, even here in Austin and everywhere else, you see Help Wanted signs just absolutely everywhere. And the reason is because no one really has to work. So they get paid maybe 20% more for working versus sitting at home and doing nothing. And they'd rather just sit at home. It feels very off. And I can't imagine how difficult it must be for a small business owner to have to kind of deal with all of that. It's really hard, Jimmy. Like, I have my sister and her husband. They're dentists. They have a few clinics here in London, Ontario. They have it even worse because most of their employees are like female hygienists and dental assistants. And they have their kids staying at home and not going to school. And it's even harder to get them to come back to work because they say, oh, we can't leave our kids at home by themselves. We're just going to stay at home, get paid, and you go figure it out. We can't come yeah, it's tough on medium and small businesses. And it's just the reality. It's the backward reality that we have to deal with right now. It's insane to me. Well, does the Canadian government sort of, like, subsidize you for at least some of the hardship that you're going through, or do you kind of just have to deal with it as a small business and sort of not have that many workers or shorten your hours. What are your options? Here's a cherry on top, Jimmy. If your business does well or improves from the previous year, improved, like its sales and its revenue, then you don't qualify as a business for any government assistance. Right. So we have been able to be in that situation where actually our business improved from last year. But because we hustled and got our business going and our revenues increased, we get left out from all the government grants and the rent subsidies and all of that that is given to everybody else that basically just locked their doors and didn't bother to try. I'm fair, but I'd rather be in this position where we don't need help than in a position where we're handing out a hand to the government and asking them for grants and whatnot. So I'm happy this way. Well, are your competitors that kept the prices the same? Are those ones that got, like, government assistance, or are they hustling just like you? Well, yeah. I'll give you an example. Like one of our stores we have like a neighbor, that restaurant, it's like a pizza store. And they've been basically they shut their doors since this whole thing started and they've been able to get enough grants to pay off themselves, their landlords, everyone, and not basically not do a thing, just have the door shut. So from this perspective, it kind of feels unfair. It feels right that if you're not able to adapt in this environment, then you should be kind of liquidated and other entrepreneurs can take up that space and make a model that works better in this environment and so on. But that's just not the way it's working right now. And in that sense, it's kind of unfair. But who cares? You got to pick up our sleeves and that's Bitcoin so they can do whatever they want. ",timestamp:"00:18:56-00:27:00",topics:["problems with employment"],type:"podcast",weight:4.846990585328009},{boost:0,date:1266645600,description:"Power of small stock holder",episode_title:"5. The Profit Motive",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ef62c7ab-ef09-47b7-9af4-2ebe2384a72f.jpg",keyword:!0,link:"https://dts.podtrac.com/redirect.mp3/cdn.mises.org/05_AustrianEcon_Rothbard_1972.mp3",node_type:"clip",pub_key:"",ref_id:"99fc3f47-1cb2-449e-bd46-97a597fce97a",show_title:"Austrian Economics: An Introductory Course",text:"Well, how about the stock solar manager? This junction the first place. Nobody said it's either way, there's usually a store manager developed here. The story goes. Well, after all the stockholder sitting there. He's got no control. He's just having a dividend. Well, it's true. If I have one share of General Motors stock I'm not going to have a very powerful influence on the decision making process of General Motors. No reason why I should. Nobody expects to. But nobody ever claimed that no New York classical economics with an IQ over 20 has ever maintained that the small stockholder has much power. The point is that the large stockholders have the power. And if you get the large stockholders together on issues then they become dominant. The small stockholders stockholders already do have power. Another way it's very important, a small stockholder if he doesn't like the way things are going if he doesn't like the profit record usually as a corporation he has stock in, what does he do? He sells it. I don't like General Motors this year. Profits are falling, I'm selling a stock. If people start selling the stock small, they are, this means the price of the stock declines and the big guys are holding a lot of stock at a very worried because the value of their assets goes down this way by voting with their feet, so to speak. The small stockholder does it decision, even though not directly not by voting, but by voting in the market, just since it's more powerful. So that's one thing. Also a person currently should contrast this the power the small stockholders have by voting with their feet and the corporations contrast this is so called publicly owned and we'll get back again later, because the government ownership, so called publicly owned operation, where every citizen, by virtue of being a citizen, for example, owns a post office. Well, can we sell our shares in the post office? I don't like the way the post office is being run. I want to sell my share, where do I go to sell it? Obviously we can't go anywhere talking, we ain't got no shares. It's really government owned and the public ownership is a pure mythology by which the government closest operation so we have the power in a private corporation to sell a share if we don't like it, we don't have the power in a so called publicly owned government operation you can't sell the shares of the public school, for example. Okay, let's ",timestamp:"00:07:39-00:10:00",topics:["Small stock holder","stockholder"],type:"podcast",weight:4.837404131889343},{boost:0,date:0,description:"Talk about Value to Value Apps and Brian Murray' Project",episode_title:"Cool Apps Built on Lightning - March 16, 2022 - Voltage Twitter Spaces",guests:[{name:"Chad Atkins",profile_picture:"https://pbs.twimg.com/profile_images/1200611447979544576/W9ocRJTb_400x400.jpg",ref_id:"62da3c50-0a46-400b-81a3-5f482f5b8fee",twitter_handle:"Chemchad"},{name:"Michael Atwood",profile_picture:"https://pbs.twimg.com/profile_images/1362207977470521345/Jy2_Ge60_400x400.jpg",ref_id:"16359ade-afb9-4a37-be0b-0844a6134327",twitter_handle:"Dooowta"}],hosts:[{name:"Nate Glasky",profile_picture:"",ref_id:"0662789d-b39e-4aed-ad6f-44257695b6af",twitter_handle:""},{name:" Bobby Watts",profile_picture:"",ref_id:"ae2685c6-1307-473a-95b0-87c234e50483",twitter_handle:""}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=4EJrnxYOShY",node_type:"clip",pub_key:"",ref_id:"addee850-119f-472c-87c2-05fc0642abeb",show_title:"Voltage",text:"guess until someone raises their hand, there's one. I don't have a list maybe like you do, but one of the things that's on my mind is I've been playing a bit more with some of these value for value apps where basically whenever you find something good, you can tip or just get someone sat. Like what I've been mainly playing with and enjoying is Fountain and Stacker News. I just think it's super fascinating and I can see in the future how there could be like a Wikipedia that's Lightning based where you get tips for creating good content and I can just see how that could really take off. But I've been really having a good time with Fountain, using that app and just onboarding a lot of friends, and I know they're doing a ton of things behind the scenes that are going to be rolling out over the next couple of months, which is exciting. Yeah. Fountain is really slick because it's sort of like an overlay, over spotify if you want it to be. Right. I had a little bit of time playing with it recently, but it's really cool. I recommend anyone to try out Fountain if you listen to podcasts. Yeah, and I just heard, someone told me today that whenever they logged in, fountain gave them like 1000 free stats or something and you can use it to kick start streaming stats to people and paying content creators, but pretty sweet. What's up, Brian? Hey, welcome up, man. A fellow shadowy supercoder, I believe. Yeah. Brian of London. What's up, man? You're muted right now. Did you want to share something. That'S unmute? I'm in a car, so if it sounds terrible, I'll duck off again. Yeah, I joined Voltage today. I've been building stuff all to do with Podcasting 2.0 for a few months now and interfacing with Hive. I know, don't worry, it's another blockchain thing. But this whole business of value for value is absolutely critical. And Lightning is very important because of the low fees and other than the hassles I've been having with nodes and hardware braking, which is why I just started up a voltage node tonight because I spent the whole day messing about with an umbrella and broken SD cards and stuff. So I'm really hoping that Voltage is going to be better for me to build something kind of that I can really share. But yeah, looking forward to getting that going. And what I'm actually doing is converting from Hive into Lightning and lightning into hive because there's about four, four or 5000 Lightning enabled podcasts on the value for value system right now. But the little secret behind that is that about two and a half or 3000 of those I put there because they're all video channels on something called Three Speak and I handle the stats for those. So, yeah, there's a lot coming. A lot coming. I love the vision. That's awesome. Having the ability to send not just quick payments, but small, instant free ones, relatively free, is just incredible. Like, worldwide, the amount of things that you could build is incredible. So that's really cool, Brian. Yes. Anyway, thanks. A lot of stuff to build. I hope that Voltage helps smooth some of those corners for what you're building. Well, yeah, I mean, I was building something and I've been building it all sort of within my home, basically. And I just got to the point where I'm sharing. I've got a method to expose invoices out into the world, but I don't like how I'm doing it. And I have to have a node that's public. Lightning is a bit of a fiddle, I've got to say. I develop on two things because I'm developing on the Hive blockchain, which is super easy because it's got no fees and very quick and it's got an easy developer and I don't have to think about all these channels and stuff. But what Lightning brings is this ability to have these wallets all over the place. That the way Lightning works for small wallets on phones, inside apps like Fountain and stuff. There's nothing else like it that I've seen. So there is a combination, which is what I'm combining two different things because I think on the receiving side for podcasters, actually receiving SATS on their own node is beyond most people keeping a node running with the channels, with the liquidity in the right places and all of that stuff. I don't think that's going to be a mass market thing. Yeah, I think over time that should be softened around the corners, automated a little bit, hopefully. But yeah, we're still definitely early days where it's nice and tough, so to speak. Yeah, it's a struggle learning. I've been on this for like nine months now, learning how to open channels at the right time so you don't get whacked with too much fees and who to open channels to and the sort of the dark art of channel fee pricing and all that stuff. So you open a channel and go to bed and then in the morning the SATS that you thought that you would have for outbound have all snuck off somewhere because somebody rooted a million SATS for you and you didn't change your fees, that kind of stuff. Anyway, it's all learning. Very cool. All right, thanks for having me on. I'm going to mute. Bye bye. Thank ",timestamp:"00:02:18-00:08:42",topics:["Brian Murray"],type:"youtube",weight:4.822762489318848},{boost:0,date:null,description:"Bitcoin price indicators and how Bitcoin pricing might stabilize ",episode_title:"Café ₿: #Bitcoin Beginner Q&A",guests:[{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Stephan Livera",profile_picture:"https://pbs.twimg.com/profile_images/1362551718110580740/v-W5Q2uo_400x400.jpg",ref_id:"72f57157-c96e-4466-8bf1-290cfe1f8a0b",twitter_handle:"stephanlivera"},{name:"Thomas J Lake",profile_picture:"https://pbs.twimg.com/profile_images/1529168328534769670/5cl2Y_k-_400x400.jpg",ref_id:"21541a47-0601-447c-99c2-312d1a63c19f",twitter_handle:"thomaslake"},{name:"Goodguy",profile_picture:"https://pbs.twimg.com/profile_images/1363216959576285185/unulY4yd_400x400.jpg",ref_id:"0c3fec75-9cc2-4c0f-8dbe-db7fae2b585b",twitter_handle:"goodguybiker"}],hosts:[{name:"Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"49966553-d55b-44c9-94ec-8fee09eee5c2",twitter_handle:"CitizenBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/35b20273-49f2-45ea-a9f4-dc479d86573c/7ae5315f-beb2-41e2-b672-65dd1f102017.mp3",node_type:"clip",pub_key:"",ref_id:"dbc2c8f6-e85d-449c-a431-e52f6e7594e2",show_title:"Swan.com",text:"We're going to continue to do these, I think. I've been talking to Jacob about this, doing this maybe once a week, doing a beginner Q and A, getting back to our roots. And if you guys want to participate in that, we'll talk about it and see if we can do this on a more regular thing. Let's do one more quick question, and then we will make some closing comments and wrap the show. Zoom out. Do you have a beginner question? Welcome. Hi. Thanks. It was a little more advanced, and it was specific to you guys talking about the pricing and the measurement of pricing. So it's not a simple one. Sorry. But I was very fascinated to understand how the price might stabilize over time and what the indicators are there. In. Terms of pricing everything in Bitcoin. I'm going to I'll give a quick answer to that, and we'll move whether my answer suffices or not. Okay. So basically, I think there's an opportunity first of all, there's an opportunity cost, and also, there's not enough monetary energy in it yet for it to be more stable in my iceberg versus ice cube example. But the other thing is, is that it's not quite being used as a medium of exchange yet, which will also help stabilize. And the reason it's not, in my opinion, is that we're still in the value accrual phase. There's an opportunity cost. Many of the people holding it don't want to use it or sell it because we believe it's going to gain in value. I mean, we'll use it on a small scale. I'm using it on a small scale. But, you know, if if a if you look at the the coins that are held today, I think something like 60% or more of the supply has not moved in more than a year. And what that tells me is that the people that are holding it think that there's an opportunity costing it and that's why it's not moving. And until that's arbitraged away, you're not going to see it fully employed as a medium of exchange. Without that, there's still going to be that level of volatility there. Go ahead soon. Yeah, thanks. I guess there's a bit of reading to do that on economics, but it's fascinating to see how the globe or the whole world might start to equalize and synchronize in terms of how they measure and value everything around the world. On top of that, I just wanted to add maybe to some of the newbies. I've been in this space for a couple of years and thought I had a good understanding. And then I listened to Lynn Olden over the weekend and she described bitcoin as being unique in that it solves this abstraction of the money. And my head exploded because I realized somehow that actually there's a coupling of the transaction itself and the record of that transaction. And it just completely blew my mind because I for some reason couldn't see that until she described it and it solves the abstraction. I think that's the double spend issue. By Zenfine general's one, but it was. Her description specifically on simply bitcoin of it being married. Awesome. Yeah, it takes all sorts. Every one of us who explains bitcoin will reach different people. And that's the reason why it's great to have such a great spectrum of personalities that are doing it. Let's get to some closing comments and we'll wrap. Thanks for coming. Zoom tomer. Do you want to make closing comments and we'll let Stefan go and then we'll move to wrap. Closing comments. Bitcoin is not that hard. It's a very simple thing that you can take custody of. Use it the way it was originally intended to be used because it's kept all those promises. There's a lot of charlatans in the space. Beware of people promising easy returns, safe returns, quick returns. They're all out to get your bitcoin from you and they're selling you something different. I just hope you can learn the lesson at the expense of others rather than at your own expense. The direction that it's going in is you will likely eventually own bitcoin. So start figuring out how to own it sooner rather than later. Awesome point out. Before we go to you, Stefan, I just want to say thanks to Good Guy and Neil and everybody who comes up here on the regular, we're really out of time. Otherwise I do closing comments with all you guys. We love you guys, we appreciate you guys coming. Stefan, closing comments and then we'll wrap. Yeah, look, I would just say don't feel overwhelmed. It's very simple. Like once you've withdrawn and then actually practiced doing a transaction, you'll find it's actually a lot simpler than what was thought. So I think it's a common thing where people are maybe they're a little worried the first time they've ever done it. But then after that, I promise you, it's a magical feeling. Doing your first bitcoin transaction, doing your first lightning transaction. I think most of us can remember our first bitcoin and our first lightning transaction, so definitely get out there and give it a go, if you haven't already. We do have some regular webinars that we're running, so make sure you get on with our swan email list and you'll find out about those because we're hosting some webinars ",timestamp:"02:01:53-02:07:04",topics:["Bitcoin volatility","pricing"],type:"twitter_space",weight:4.822762489318848},{boost:0,date:null,description:"Is there a minimum withdrawal amount in Tweetoshi?",episode_title:"Café ₿: Bitcoin News & Using Bitcoin w/ Twitter, @tweetoshiapp",guests:[{name:"@TweetoshiApp",profile_picture:"https://pbs.twimg.com/profile_images/1532819967133028352/frxdtSHX_400x400.jpg",ref_id:"97e59475-beaf-44fe-b1b0-ea2a63d335b6",twitter_handle:"TweetoshiApp"}],hosts:[{name:"@alexstanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"6455df34-1abc-4ce8-9bb8-b02d411accec",twitter_handle:"alexstanczyk"},{name:"@pacificbitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1570140686753619970/UFEnzSv5_400x400.jpg",ref_id:"f8268a26-9761-40c1-bdd6-dad9db44d032",twitter_handle:"pacificbitcoin"},{name:"@SwanBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1491428856858914820/aFlitvha_400x400.jpg",ref_id:"da3f56bf-9763-4389-a9ec-d807049bd0b8",twitter_handle:"SwanBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/25fad353-f7a7-43cb-9197-beef1e783983/e2ec31c3-43e5-4e81-af3a-b153b8c219ca.mp3",node_type:"clip",pub_key:"",ref_id:"fc9b5e45-fc94-42dd-a722-bde164f8c24b",show_title:"Swan.com",text:"a maximum is there a minimum limit in terms of what you can withdraw or can you withdraw like a single satoshi? Yes, for now there is like a super small minimum limit of 100 satoshi. We would like to get it down to one satoshi in the future, just like for the for the, like, let's say a meme. So we can withdraw literally anything, but for now, there is 100 satoshi limit. Cool, thanks. Would one satoshi even be possible? Because you still have to pay the unchanged transaction fee. Now you can withdraw one satoshi from Thunder Games, for example. So it's possible. Yeah, but what does that mean? Are they paying the transaction fee? I'm assuming that there is no routing fee for that small of the transfer. Like if you're doing one satoshi from Thunders custodial wallet to Moon or to whatever, they have it set up in such a way that it works. Either they eat the fee or their channel is set to zero fee. Because if your channel is set to zero fee, it's lighting ",timestamp:"01:52:34-01:53:48",topics:["Tweetoshi App"],type:"twitter_space",weight:4.8130316734313965},{boost:0,date:1599305976,description:"How US debt affects the economy ",episode_title:"Borrowing - where is the money going? Corporate, Small Business, Government",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/abd94520-1490-42aa-b349-9e861494a654.jpg",keyword:!0,link:"https://anchor.fm/s/138410f8/podcast/play/19113751/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2020-09-05%252Ff840233e9317a45e95724ebf5de7e057.m4a",node_type:"clip",pub_key:"",ref_id:"e97927cd-526b-46ef-bde2-7e60339fd4a5",show_title:"Economy Guy",text:"small businesses doing regarding borrowing money? Well, they go to a bank and they borrow money. And typically the bank, they go to an SBA bank. That's a Small Business Administration bank. That's a bank that does Small Business Administration loans. So what is one of those loans? Sounds interesting. What is that loan? Well, the SBA, the Small Business Administration, which is a government agency, guarantees someplace between 50% and 85% of that loan. In case of default, the government will back it. So that reduces that much risk of the loan to the bank that's doing the borrowing. So that really lowers the risk to the bank. That's pretty good for the bank, right? In spite of that, the SBA banks are not lending right now. You say what? Huh? Why? Well, you see, the SBA banks are going back to the Small Business Administration and saying, hey, you know, that amount that you guarantee, we'd like you to increase it to 90%, even 100%. Splendid. Fully guaranteed. So you see, the banks don't want to take any risk or truly minimal risk. That's where they're coming from. Now, do we have a measure of how much? When I say SBA lending is stopped because small businesses is the heart of the US economy. Small businesses are the things that create employment, big employment. Most people work for small businesses, not the big corporations. So encouraging small businesses to borrow money and then using it as a good loan and creating jobs, creating profit, creating their own business, growing their own business is a good thing for the US. I mean that would create a boom in the US GDP. But the lending has basically stopped. And I have one measure of a group of banks. So it's not all lending, but a group of banks. Their measure is that since April of this year, 99% of the loans have stopped. Only 1% of loans equivalent to the last year have gone through 99%. That's effectively all lending to small businesses have stopped. And why? How big are the loans? I mean, the loans we're talking about are 5 million to $10 million, no more than 5 million. SBA loan can't be more than $5 million, but the Cares Act increased it to 10 million. Well, that didn't mean anything because nobody's lending money. So who Cares Act did not affect anything. What are the banks doing? They don't want to have any risk. What they're saying is to companies that are surviving through this pandemic, they're saying, well, I don't know if you're going to make it when we recover. I mean, you may only be growing because of the pandemic. When you may be gone, your bone could be bad. And they're saying to the people who are really hurting that need their money, we don't know if you're going to make it when the pandemic is done because you may run out of money before it's done. So in both cases, a good company and a bad company is not lending because it's all about risk. That's kind of interesting when it comes to small businesses. And the result there is without lending in that particular sector, we're not going to have a fast recovery or as fast as possible. So one thing for you, the listener, to listen watch for is lending to small businesses. Is there something that could happen in the future that you will hear in the news that is freeing up money? If so, that will be good for the economy. If not, it's going to be a slow growth. And now for the last area who are borrowing money? That's the government or the US. Treasury. In the case of the United States, people who are lending money are throwing money at the US Treasury. That's big bucks. The big bucks are going to the US Treasury. That's where the money is ending up. And how big is big? Well, this calendar year for 2020, the big bucks, it looks like the US Treasury is going to borrow about $5.4 trillion. That's so big, it's unimaginable. How big? In the good old days, when we were borrowing too much, it was $1 trillion a year. This year it's going to be $5.4 trillion. That puts it into perspective. Horrible, horrible, horrible. And that doesn't count if there's a new stimulus package passed by Congress this year, which I doubt will happen, my personal opinion is that Congress is at loggerheads. The two parties aren't about to agree on anything since we're so close to an election. So I don't think a new stimulus package would happen. But if it did, it would be even more borrowing. That's as simple as that. We don't have the money. Otherwise. The only way to get it is to borrow it. So the US government is the perfect example of bad borrowing. They borrow money. It is not productive. It does not pay back anything. They're not building roads and bridges that can pay back the money or contribute to productivity or all those good things that you can do with money. No. So what happens with all of the debt, which incidentally, is going to be 100% of GDP this year? That's supposed to be a magic number. It shouldn't happen. It should cause comets to fall out of the sky or something. But that's what's happening to the US economy this year. It's massive debt. But what happens every year as they bring in taxes? Where does the money go? Well, part of that money goes to paying the interest on the debt. And the bigger the debt, the bigger the interest. Now, that interest is not productive. It just goes to pay back the people who lent the money. It's not going to building roads or building factories or buying things that are important to buy. It's not helping the economy one little bit. So I say to you, ignore that. It's not good US Treasury, even though that's where the money is being thrown, it's not good debt. So there is my positive message for the day. I hope you liked it. That's where we stand. Corporate debt is they're in good shape. They have too much money. They don't know what they're going to do with it. They'll probably do something foolish with it. They have in the past. Small businesses can't get a loan so we can't grow. Because of that, the treasury has more money than they can use. Anytime they want money, they just say, please give me, and people give me it. So that's happening. That's the world of debt in the United States today. That'll change, of course. But be aware that all of those are not good things for our future and are not rosy rosie, I'm sorry to say that I do want some a lot more Rosies. So ",timestamp:"00:12:05-00:19:41",topics:["US debt"],type:"podcast",weight:4.810045599937439},{boost:0,date:1673549347,description:"How different people use different methods to safekeep their assets",episode_title:"BR019 - Proof of Keys Day Twitter Space ft. Lopp, Craig Raw, Lazy Ninja, mshodl, Rijndael & guests",guests:[],hosts:[{name:" Jameson Lopp",profile_picture:"https://pbs.twimg.com/profile_images/1594137153625276416/t1RUP3yP_400x400.jpg",ref_id:"062ec6c8-0fa2-4bf6-9aa1-7ab347df2530",twitter_handle:"lopp"},{name:" Craig Raw",profile_picture:"https://pbs.twimg.com/profile_images/1362841242665631745/UtA3FBQU_400x400.jpg",ref_id:"f2d1f5f0-2e1c-4d16-937d-4d48627cb955",twitter_handle:"craigraw"},{name:" Lazy Ninja and Rijndael",profile_picture:"https://pbs.twimg.com/profile_images/1362843002318721028/PNKWuu0-_400x400.jpg",ref_id:"23edbd50-9b0b-4e9a-aa56-57c2af074173",twitter_handle:"FreedomIsntSafe"},{name:"Justine Harper",profile_picture:"https://pbs.twimg.com/profile_images/1559710083734540289/HXTH4kqO_400x400.jpg",ref_id:"7b5a8957-1c4b-474f-bc38-291b382a13e6",twitter_handle:"mshodl"},{name:" Dee",profile_picture:"https://pbs.twimg.com/profile_images/1600155411868434433/9k1KQ8i5_400x400.jpg",ref_id:"ad33288b-28d4-4f15-9492-f64bce891613",twitter_handle:"HodlDee"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f1879df9-9bc6-4a76-951f-24548da768ef.jpg",keyword:!0,link:"https://anchor.fm/s/9500fad8/podcast/play/63399670/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-0-12%252F0a789f60-2c9a-6bbb-945a-79f3dd937cee.mp3",node_type:"clip",pub_key:"032d7609ff3f4a5232e4d60967971e23bc671dfb68020845a59bab5dc1f3b93b87",ref_id:"08600eb8-a8b1-4be4-b505-3adc409da2f8",show_title:"Bitcoin.Review Podcast with NVK & Guests",text:"holes, but just before I go there, I just kind of like want to recap. So I think we all agree that different people, different needs, different solutions. Even the same people might need different solutions, right? You want your spending wallet, you want your lightning wallet, you want maybe a warm wallet. I think we all agree that keys should never be on a computer or touch a computer. I think we all agree that harder wallets work great. I think we all agree that multisig solves a lot of problems. We don't all agree that single SIG plus passphrase is great, but we do have some agreement on where the faults lie. We can recap that if you guys want to pick at anything I said, so don't feel like I am putting your foot down here. So I guess the main thing is that I want people to take out of this sort of like, simpler, more new part of the conversation is don't get overwhelmed with solutions out there. You have time, you can test things, you can experiment with different services, you can experiment with different wallets. Most of the solutions are free. And then if you want to get into harder wallets and you can even build your own solutions out there, I think it's important that people don't roll their own solutions, especially not their own cryptography. I don't think that's a concern anymore, but it used to be back in the day, and then sort of like we can start getting to the weeds of some of the FUD that confuses people around different solutions and go from there. Do you guys have any sort of like short comments about the previous sort of like noob conversation that you want to before we move on? Yeah, I mean, like, we said it earlier, but just to really drive it home. If you got $50 or $100 on coinbase or Gemini, just go install moon wallet or blue wallet on your phone and get it off and start playing with it. Like, you don't have to go straight to seed plate buried behind the third oak tree. If you've got $50 on coinbase, you can really start small. So you just said it, but it's worth saying over and over and over again. I mean, that question does come up every single time I do spaces somewhere or back in the clubhouse thing. It's amazing to me how much people don't understand that they don't need to do like twelve out of twelve DVDs for $100 worth of Bitcoin. And that is how you should be experimenting with Bitcoin. Don't go buy an asset with all your life savings until you understand how the heck that asset works. Well, a lot of people I've heard the same thing, like clubhouse or friends will say, well, I only have $100 worth of Bitcoin. I don't really want to go buy this hardware wallet. That's a certain amount of money. It seems kind of crazy for the amount. It's like, well, you don't have to. There's free mobile wallets. That could be your first step. So I think the biggest takeaway from this space is it's not all or nothing. Like take the steps and we're kind of walking through the steps specifically. But you don't have to spend money on an assigning device or hardware wallet. You can just download a mobile wallet. That's the first step. And then even when you start getting more sophisticated, you also don't have to have one wallet, right? I have Blue wallet on my phone. I also have several multi six set up, right? And you can think about partitioning your money where you have a really small bucket of money that's super easy to get to and very easy to spend. And then you have a bigger bucket of money that's harder to get to and harder to spend. And those things can change as your life does. Just like we're not walking around with our life saving in our pocket, right? We take what we need to spend when we go get coffee or whatnot and the other is secured somewhere. So, yeah, the multiple wallets, depending on your needs is totally good. You know it's a segregation, right? It's like hygiene in that sense. You're going to have your savings account, you're going to have your checking account, you're going to have your credit card. You do segregate fiat in all these buckets in your life, right? So why not do the same with Bitcoin? You don't want to be buying coffee of all your wealth. I think there is something interesting to be said about diversity and how to apply diversity from a security mindset. For example, one really common trope that we see is people coming to us who they have, for their safety, diversified their funds across five or ten different wallets. And some of these may be self custody, some may be custodians, but their whole idea is don't put all of your eggs in one basket. And my push back against that is that yes, that type of diversity does of course reduce the chance that a single catastrophe will completely wipe you out and cause you to lose everything. But it can also be increasing the chance that you will have a partial loss in one or more of those setups will fail. So one interesting aspect of multisig is that the diversity that you can add to the setup by having keys on different hardware manufacturer devices in different physical locations and basically different security properties around each of the keys in that setup is that that security is actually additive. It creates a stronger and stronger setup because it's essentially eliminating these single points of failure. If an attacker, for example, compromises supply chain of popular hardware manufacturer. If your multisig setup is not using all the same hardware manufacturer, you're protected from that. That's just one example. So, point being, diversity can be good, but applied the wrong way, it can actually be harmful. It's kind of fascinating and it really goes to show like why there is no sort of fix all solution. Each set up is going to have different sets of trade offs. And the complexity also does increase some issues there too. So you could argue on one side, it's like you want to have some diversity in your harder wallets because if one vendor is evil or really like, realistically speaking, it's going to be a targeted attack against you that it's going to maybe replace Harder or something like that. You could be fault to that, but at the same time you could have multiple Harder Wallets and say, the software update on some of them break the multisig setup, it's unlikely to have full loss of funds, but it could be quite the issue to sort of go back to you being functional. And then each vendor is going to offer sort of like different thresholds and some vendors out there offer simply either no security or illusion of security or like really crappy hardware. There's like hundreds of hardware wallets. I'd say probably out of 195 of them are absolute garbage and should never be used. And the guys from Ledger actually do a great job breaking Harder Wallets. You should check out their Don John blog where they have broken Harder Wallets and how long it takes to break them and how much money does it cost to break them. There's Harder Wallets that cost like $10 to break. There's Harder Wallets that cost half a million dollars to break. Not all things are equal just because they're the same category. So I guess this is a good segue to move to more sort of like rabbit holes of security and things of sorts. So why don't I bring up maybe lazy ninja who is a security researcher for hardware. He has helped us find problems. We have a good guy as well. He's a fantastic security researcher here too. We have what else do we have here that is of the category for the beginner stuff? While we're on the topic, I know Sparrow has a great thing called Master Fingerprint ID. You know, we as well have something called Master Fingerprint ID that you can check on the cold card itself. So if you're you know, you're dealing with a single SIG wallet and you know, you don't know if in your if you're in your passphrase wallet or you're in your BIP 85 wallet or whatever you want, you can go to Advanced Tools and go to View Identity and then it will give you a string of eight letters and numbers. And that's basically the first four bytes of your public key. So it's just a great way to know. It's kind of like a username or something like that, right? It's just a way to identify what wallet you're in without having to try and sign a transaction and get that error. So it's just a good thing for beginners to know about and I find it very useful. Thanks. Dee. I think we're going to be attacking a lot of those little issues. Justine and Jameson, thank you so much for joining me. Like, I love if you guys stay, but if anybody needs to go, totally. I don't want to take up your time, but you guys have a lot of knowledge to push out, so please do stay if you can. And with the first part of the space is gone. Let's improvise on the second part, which I think will be really cool to sort of talk about some of the fun around solutions and some of the ways the products in the market do address them. Hopefully, we can clear a few of those, because that's, in my view, one of the things that keep people from using good solutions is just this fear of the nearly impossible attacks, or actually attacks that are completely alive. So why don't we start with can ",timestamp:"01:09:32-01:19:34",topics:["Hardware wallet","multiple crypto wallet"],type:"podcast",weight:21.998553860382764},{boost:0,date:1665687900,description:"Small Towns Only Have Terrible Food Choices - Socioeconomic Problem? It’s A Govt Subsidy Problem - Flipped Food Pyramid ",episode_title:"#1104 Dr. Philip Ovadia - Heart Surgeon Explains What To Eat To Save Your Life",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/7934bd86-9344-4f1a-9c36-ea5f63ae418e.jpg",keyword:!0,link:"https://anchor.fm/s/b4841110/podcast/play/58963723/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2022-9-12%252F290744275-44100-2-e4f30b61276f1.mp3",node_type:"clip",pub_key:"032ff32727b06d20a13a0a8d8dfe09d39659c16deeaffbf94d6d21ec6bb28850b6",ref_id:"50cf9922-5d13-4a4b-8621-e934b422aebf",show_title:"The Pomp Podcast",text:"town in North Carolina my wife and I were driving through at one point, and it's kind of one of these streets where there's three, four, five stop lights, but it's a one way or a kind of straight shot that you can look down. And for whatever reason, I said to her, oh, my God, look at all the signs. And it was Wendy's McDonald's. Bojangles chickfila. It was just like all of it, right? And it was almost like a shot you would see on the Internet that kind of goes by when we were like, wow, America is so stupid. And as we looked, what I think shocked me was in that small town, I don't know if you could have an average salary and eat healthy, right? Because everything that was thrown in your face was cheap and unhealthy. And so how much of the obesity epidemic or kind of the rise in the unhealthy American is a socioeconomic and like a poverty problem or a money problem versus people have the money to go and eat healthy. It's just they aren't educated or they're lazy, and they don't want to do the work to actually do that. Yeah. So I do think that both play into it. When you look at why is processed food so inexpensive? You start to look at government incentives around the crops that get subsidized versus why aren't those subsidies going to the ranchers who are raising cattle? So you have to ask, why is that food the inexpensive food? I mean, the reality is it doesn't need to be that way. We could very easily shift what becomes the inexpensive food for people. And then there certainly is the educational piece of it. And quite frankly, we start to get into the miss educational piece of this because, you know, the predominant messaging around healthy food here in the United States for the past 50 years has been the food pyramid. That whole grains are the healthiest thing you should be eating and cereals and wheat and all of this. That's insane. That is literally insane. We have more than enough evidence at this point to know that that shouldn't be the case. The food pyramid should essentially be flipped upside down. So then you start asking those questions because it's like, okay, not only have we gotten this wrong, but we got it so wrong that it almost has to be intentional. You can't mess things up this badly without there being some intentionality to it. Okay, so ",timestamp:"00:12:30-00:15:19",topics:["Small Towns","Socioeconomic Problem","Govt Subsidy Problem","Flipped Food Pyramid"],type:"podcast",weight:4.9863560048368285},{boost:0,date:1676681753,description:"The possible applications of Cashu Chaumian Ecash",episode_title:"WHY ARE WE BULLISH? Ant, Bitcoin Island, Decentra Suze ep324",guests:[{name:"Decentra Suze",profile_picture:"https://pbs.twimg.com/profile_images/1614189317345214464/Z4BZBBbb_400x400.jpg",ref_id:"da307464-4ac8-449a-81f0-74ea9749dd1b",twitter_handle:"DecentraSuze"},{name:"Ant",profile_picture:"https://pbs.twimg.com/profile_images/1617275233831886853/RlWpn1qQ_400x400.jpg",ref_id:"9575e6e8-cd06-48f0-b548-801f7d2357a5",twitter_handle:"2140data"},{name:"Bitcoin Island",profile_picture:"",ref_id:"9b88c77a-65c9-4ae6-a30c-890937636d7f",twitter_handle:"BitcoinIslandPH"}],hosts:[{name:"Ben Perrin",profile_picture:"https://pbs.twimg.com/profile_images/1181715113226596352/ipGVEcYH_400x400.jpg",ref_id:"e6b013ef-178b-4b41-95ee-423148a3dc3a",twitter_handle:"profbenperrin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/65227742/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-1-18%252F313420179-44100-2-8fb4b50d66df8.mp3",node_type:"clip",pub_key:"02545c14cbb18a61f20dd45f5e3dcbd9acae3de282369501040adce32a75311309",ref_id:"784b1ee8-56e7-403c-b813-24713fd3a29c",show_title:"BTC Sessions",text:"first of all, has anybody here either heard of or used Ecash via lightning? Bill, you have? I'll just ask, what has your experience been? I haven't been able to use it. I've only heard about it, but here on the island we have a fairly small community, like I said, 250 different businesses. And I'd like to see them being able to save on chain through something like this. I've just not really understood it. I end up going to talk to people and show them how to save bond chain and I think they understand it. I need to go back and check on them in a month to make sure. But if there was an Uncle Jim on the island so they could be self sufficient on this and know that they're saving, that would be a pretty great solution. Yeah, I love the kind of in between again, helping people like Uncle Jimming for somebody when you know, and it doesn't even have to be a permanent thing, but being like an interim Uncle Jim for people and helping them along their Bitcoin journey, I think that's a valuable thing to provide. And then some people will move beyond that and move into self custody for themselves and then other people that maybe that ends up being their last stop along the journey. But at least it's better than just full leave your money with a single entity that you then have to trust. At least you can kind of remove single points of failure with a mechanism like this. And I'm curious, your thoughts on this stuff. Are you for are you for it? Do you have reservations about it? What are you thinking? Thanks. Yeah. I believe that you should have an adversarial stance in all things in Bitcoin, everything that comes up until you fully understand it and then maybe try to understand it even more. Right now I really like it a lot from what I've read, and I don't fully understand it as well as I can, as well as I should or could right now. But it is exciting. I think that I'm from Texas. There's a lot of farms around here and like small communities and that's where I see a lot of potential here for something like this, where people don't really think about it a lot. But in small, like little ranching communities, they all know each other, but their access to the legacy financial system, it can be difficult or even nonexistent sometimes, or even predatory in some ways. And seeing something like this, the right platform with the right user experience, I think could be really major for the local ranching communities and just other communities small around the world, obviously. But that's what I think right now. Close to home. Yeah, absolutely. And I'll jump to susie as well. Again, I don't know your experience with this kind of stuff, but just from kind of seeing that there, do you have initial impressions? Where are you at with this kind of stuff? The first thing that popped into my mind was whether or not it would be able to give you some non. KYC Bitcoin oh, yeah, you could easily be able to clean it up. Yeah, you could easily be able to clean it. I mean, you could have peer to peer markets with this type of stuff. Very simply, again, there's a lot of already kind of peer to peer non KYC solutions to be able to buy bitcoin. Like I mentioned, hoddle Hall off the top of the show, but there's robo sas, there's bisc, there's even just like obviously directly in person. But you could easily integrate like a chow mein ecache version or have that as an option on one of those markets and be able to exchange whatever other value for Chow me and Ecash SATS or Lightning or on Chain or whatever else people want. But yeah, obviously the interface right now is not going to be the simplest for people, but I just saw the old mate, ",timestamp:"00:16:30-00:21:14",topics:["Cashu","Chaumian Ecash"],type:"podcast",weight:42.912927374554435},{boost:0,date:1664323200,description:"Beacon for community of bitcoiners & benefits for ermployees",episode_title:"TRUBIT bringing Digital Loyalty Assets to Bitcoin - Voltage Twitter Spaces",guests:[{name:"@0xLinden",profile_picture:"https://pbs.twimg.com/profile_images/1439365331202437125/JBiXogun_400x400.jpg",ref_id:"b8bb4402-8f86-4220-9dee-0fa28ff8de72",twitter_handle:"0xLinden"},{name:"Stephen Doge",profile_picture:"https://pbs.twimg.com/profile_images/1215979900387184641/nZXkhgoP_400x400.jpg",ref_id:"076972a2-cdab-4766-8c66-618472b80772",twitter_handle:"StephenDodge20"},{name:"@617a7a",profile_picture:"https://pbs.twimg.com/profile_images/1548336437308715016/FUZFJf9k_400x400.jpg",ref_id:"148d77a5-6e95-4855-9e17-19e68f648898",twitter_handle:"617a7a"},{name:"@ian__major",profile_picture:"https://pbs.twimg.com/profile_images/1427414299169984517/Hw0ux6ie_400x400.jpg",ref_id:"7ed41a74-21a4-43a4-9a05-e977c981b6d3",twitter_handle:"ian__major"}],hosts:[{name:"@voltage_cloud",profile_picture:"https://pbs.twimg.com/profile_images/1508657900486422529/Lfa70poj_400x400.png",ref_id:"3b622187-60ce-43c2-a21f-ae749c2d961a",twitter_handle:"voltage_cloud"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=1Cn7F1Oo_6Q",node_type:"clip",pub_key:"03c7a7f42d94fdfc7a655515c1421cd1d20db090a1c24150201de0b1dc6a30b0ee",ref_id:"f10270d7-1cdc-4922-853a-1f8247750382",show_title:"Voltage",text:"Bitcoin meetups are big. But even just acknowledging that there's a lot of crypto ones and blockchain ones, and if we can kind of just show that, hey, these brands are seeing these kind of groups come to them and host events or do things at their locations that's just, again, another selling point for them. Like, hey, this is growing. Hey, this is not a fad, it's not going away. You should probably start doing something to kind of cater to again this consumer segment that's growing and you're now actively engaging with, we plan to do more of that. Yeah, I think that's one of the things that has me most excited about what you guys are offering is giving the community something to use to expand. By landing a business, you've provided a beacon for the community of Bitcoin to support them and now that business is like, okay, I see there's an asset and the rewards are a thing. It's getting some interest. Oh, I guess there's a network where I can actually transact on and then layer three, if you will, right. The community of people and how it's expanding or what kind of people it's bringing into the business. I think you get a lot of compounding effects there. So, yeah, just super excited for it. And it's kind of funny too. Just like one quick note on that. We've kind of seen a little bit and kind of didn't mean to discover it, but talking with brands was even just not only from the consumer perspective, but employees like benefits to the employees themselves for small mom and pop mid size bigger. But that's actually a pretty attractive offer for brands to attract employees and reward them. I'm sure many people are aware of internal rewards programs for doing certain things or hitting certain milestones, stuff like that, but it is kind of something we have more recently heard and seen from things as far as just employee benefits, health benefits, things like that. So kind of something we're keeping a tabs on. ",timestamp:"00:41:08-00:43:30",topics:["bitcoiner community"],type:"youtube",weight:4.831891866310001},{boost:0,date:null,description:"How to store your Bitcoin",episode_title:"Café ₿: #Bitcoin Beginner Q&A",guests:[{name:"Peter",profile_picture:"https://pbs.twimg.com/profile_images/1581695667193643009/EljNY-TH_400x400.jpg",ref_id:"a3384925-e15e-421d-b9f9-6d44e273ed05",twitter_handle:"PeterAnsel9"},{name:"Stephan Livera",profile_picture:"https://pbs.twimg.com/profile_images/1362551718110580740/v-W5Q2uo_400x400.jpg",ref_id:"72f57157-c96e-4466-8bf1-290cfe1f8a0b",twitter_handle:"stephanlivera"},{name:"Thomas J Lake",profile_picture:"https://pbs.twimg.com/profile_images/1529168328534769670/5cl2Y_k-_400x400.jpg",ref_id:"21541a47-0601-447c-99c2-312d1a63c19f",twitter_handle:"thomaslake"},{name:"Goodguy",profile_picture:"https://pbs.twimg.com/profile_images/1363216959576285185/unulY4yd_400x400.jpg",ref_id:"0c3fec75-9cc2-4c0f-8dbe-db7fae2b585b",twitter_handle:"goodguybiker"}],hosts:[{name:"Brady Swenson",profile_picture:"https://pbs.twimg.com/profile_images/1502564606836981763/fmqtNrNc_400x400.jpg",ref_id:"49966553-d55b-44c9-94ec-8fee09eee5c2",twitter_handle:"CitizenBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/35b20273-49f2-45ea-a9f4-dc479d86573c/7ae5315f-beb2-41e2-b672-65dd1f102017.mp3",node_type:"clip",pub_key:"",ref_id:"6faac813-7f72-4208-a6ea-a8f330da5d1e",show_title:"Swan.com",text:"one other thing real quick. The documentation that Sparrow has, in particular with Cold card, this is again from a boomer perspective, it is super easy to follow and it's almost conversational and step by step. And it was really easy for me to follow the Sparrow documentation when it came to integrating it with the Cold cart and spinning up the Cold card. Super easy. Can I make one small fun fact addition to this? You're not storing your Bitcoin in your hardware wallet. Your Bitcoin are safely stored in every copy of the blockchain everywhere in the world. I've got a couple of backups for you over here. What you're able to store is the private keys that nobody can recreate, that allow only the holder of the private key to spend the Bitcoin according to its rules. And what makes this kind of unique versus any other form of property that ever existed before is not only can you take custody of it, but you can back it up. So, like, if you were a gold investor and you took custody of some gold, you'd have to put it in some location. And if that location became inaccessible to you, you can't get at that gold. And it can only be in one location. You can put half of it one place half the other, but you lose half of it if that location disappears. The fact that you can back up your keys because they're just information means that you can have this self custody asset that's yours. It's not the banks, it's yours. And if you lose access to one location, you can recover it from another location or multiple locations. And that's one of the most extraordinary aspects of Bitcoin, and it's a fun fact. So I thought I'd add it because it's related to this question. Now that you're working on taking self custody, the beauty of it is you can back it up. You want to make sure nobody else gets their hands on any of your backups, but that's something you'll figure out what works best for you over time. ",timestamp:"01:20:45-01:22:43",topics:["Bitcoin hardware wallet","Bitcoin self-custody"],type:"twitter_space",weight:4.755598068237305},{boost:0,date:1671084129,description:"A quick reminder and some news on the Bitcoin Beach Show with DJSatoshi",episode_title:"The Orange Sun 🌞 Does Price = Value? #Bitcoin",guests:[{name:"ToxiKat27",profile_picture:"https://pbs.twimg.com/profile_images/1505791887415730177/d0YDQ3Xc_400x400.jpg",ref_id:"50023cce-8a6f-4974-ad3b-fd7a9c0abf19",twitter_handle:"ToxiKat27"},{name:"AnuragSaikia",profile_picture:"https://pbs.twimg.com/profile_images/1016367353762852864/gDL5h8jh_400x400.jpg",ref_id:"0bb60736-56c5-4964-a9c3-e881b0b313b6",twitter_handle:"AnuragSaikia"},{name:"fnicencool",profile_picture:"https://pbs.twimg.com/profile_images/1600143435775856641/uqgmtT23_400x400.jpg",ref_id:"bfef6a55-2d08-407e-b147-e04d68af7dd6",twitter_handle:"fnicencool"},{name:"MrlamilamiKosch",profile_picture:"https://pbs.twimg.com/profile_images/1538403135101800450/sO-RPI9U_400x400.jpg",ref_id:"f8c8f97a-f79a-4950-8e3d-d2e94d27b3c8",twitter_handle:"MrlamilamiKosch"}],hosts:[{name:"SatoshisJournal",profile_picture:"https://pbs.twimg.com/profile_images/1518661993103859712/y_QefqVZ_400x400.jpg",ref_id:"63fac069-bfe9-49ae-b52c-1d1f226b3275",twitter_handle:"SatoshisJournal"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/19874ad0-9c3f-451c-b82d-ac41de6aa3a3/62af50e6-2127-4e0d-804c-a3cec392fd0b.mp3",node_type:"clip",pub_key:"03eb026c3e6597055595e42299377a4e164982775cc67f1d2135d9f1cd3a89f526",ref_id:"1aec7881-31ab-4c1c-9f79-800cb8379ca1",show_title:"Satoshi’s Journal",text:"Okay. The next so I just remind you guys of the bitcoin beat show that Phil, my teammate and DJ satoshi have monday through Friday at 03:00 p.m., which is 03:00 p.m. Mountain standard time. And that would be 10:00 P.m. African time. And the intent of this show is pretty fun, actually. They play some bitcoin music, literally bitcoin music. There's some awesome bitcoin music artists that have done raps and parodies and just cool songs and they all revolve around bitcoin. So today, Phil actually had a lady come on, what was her name? Tips in the ships from music. She was awesome. She came on the show and she was talking to us and then we listened to her music, her bitcoin music. So if you guys remember, monday through Friday, 03:00 p.m. Mountain standard, 10:00 p.m. Nigerian time, you can go and listen to music. And then also, what's cool about the show is it's very random. Like you don't know what you're going to listen to because basically Phil will randomly choose small snippets of bitcoin education, whether that is from Andreas Antonopoulos, Robert Breedlove, Marty Benz, you name it. You'll hear something and it'll be so random and it will catch you by surprise, but it's really cool because you just get to hear Andrea Santanopolis in 2012 or whenever it was just talking to people about bitcoin or Robert Briel, a little snippet of him talking about whatever he talked about in his podcast about bitcoin. So, yeah, you guys can check it out. Today was a pretty cool show. I think today was the third day of the show. So he'll have it Monday through Friday and it lasts. I think he's going to run it for an hour. But today's session went for like freaking oh, jeez, almost 4 hours. 3 hours and 43 minutes. But they had a good time. There was a lot of people that came in and we're talking. I saw yellow on there, I saw Tomer, I saw the Kingo, I saw Oakland, and it was pretty cool. They had a good time. ",timestamp:"00:51:49-00:54:24",topics:["Bitcoin Beach Show"],type:"twitter_space",weight:9.72359306380532},{boost:0,date:1639803600,description:"[[Bitcoin]] Shorted as a [[Hedge Fund]] Against [[Traditional Market Equity Positions]]",episode_title:"WHY ARE WE BULLISH Michael Schmidt Jeff Ross Joseph Brown Greg Foss ep224",guests:[{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Joseph Brown",profile_picture:"",ref_id:"803206b6-7b9f-48e0-a5d5-7348f6842cca",twitter_handle:""},{name:"Michael Schmidt",profile_picture:"",ref_id:"e94a106d-cbea-4b30-b0cb-3825979179ca",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/728d91e9-025d-43a7-8467-2c8d264ddf59.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/45019495/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-11-18%2Fe04d11e7-ede5-a987-e943-f3fc2482fe80.mp3",node_type:"clip",pub_key:"",ref_id:"46c0e9e5-6d49-4830-b405-6021fd365979",show_title:"BTC Sessions",text:"traditional equity markets are sick, okay? I need people to understand how sick the traditional equity markets are. Jeff Ross probably understands this better as well as anyone. The breadth or the average stock in the Nasdaq, the small cap Nasdaq stocks have given it up by 66%. Ok? This year, if you look at Jim Cramer's list of have to own stocks, they're like, it's a piece of garbage. And yet Bitcoin is hung in there in the face of futures product that all the knuckleheads in the world are shorting Bitcoin as a hedge against their equity positions. Okay? How do I know? Because I just know how much stupid money there is out there. And I know they need to short something because they're long all this other garbage that they say, Well, I can't sell my other garbage. So I might as well short something and pretend it's a hedge. Let me tell you something. Bitcoin is a long, volatility asset. And most of the fucking world has no clue what that even means. Except I'm going to tell you, it means if you are hedging short ball assets, which are equities and credit, high yield bonds, investment grade bonds, and you're hedging those short ball assets by selling along or shorting a long ball asset. You're inverted, buddy, and you're going to get crushed on the way in and crushed on the way out. And that's what the dumb money is doing in this market, because they are absolutely. They're hedged and wedged, okay? They're in a fucking shit trade, and they're trying to make that trade better by shorting something because there's an instrument out there called Bitcoin futures that they think is overpriced. They need to do some mathematics. They need to understand that they're shorting a rounding error. And by the way, they're also shorting a long ball asset. Over time, Bitcoin will become to be appreciated as insurance. And what is insurance? It's long volatility, it's short credit. The two things are exactly synonymous. So Seb, Bunny and I wrote an article that we submitted to Bitcoin magazine this week, and it's gotten some really good feedback on ",timestamp:"00:25:57-00:28:10",topics:["bitcoin","hedge fund","traditional market equity positions"],type:"podcast",weight:4.755598081860736},{boost:0,date:null,description:"Revenue stream source, business competition and model of the Bold Bitcoin credit card",episode_title:"Café ₿: Bitcoin Credit Card w/ @BoldBitcoin @John_ely_21m",guests:[{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Wicked",profile_picture:"",ref_id:"fee44016-b05f-4961-a6d8-7dac655cd931",twitter_handle:""},{name:"@BoldBitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1559592705231044609/iJrNKxF9_400x400.png",ref_id:"dd4e1c4c-d111-4f01-ad95-18200d50cdb8",twitter_handle:"BoldBitcoin"},{name:"@John_ely_21m",profile_picture:"https://pbs.twimg.com/profile_images/1560444673046585346/VN8n2LtM_400x400.jpg",ref_id:"a24436b1-5992-4711-a4a5-0770546ea80a",twitter_handle:"John_Ely_21m"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/7061be6d-b144-4a81-a13b-3d125e3e2812/edf29ab4-2b4b-4fdf-9998-8a9b8e9437c8.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"3b4b6a17-9995-4f90-88d0-15cfd0b53be6",show_title:"Swan.com",text:"I was wondering a couple of things. One, I may have missed it. I was wondering where your revenue streams are coming from in this process and also who you see as your competition in this industry. Yeah, thanks. The business model is pretty simple. We're not lending out your bitcoin and trying to earn a yield on that stuff. Your bitcoin is sitting on the blockchain. So the way we make money is just like a regular credit card company. We make money on your purchases, the transaction fees that go through, we get a small percentage of the transaction fees. And then also, if you do choose to carry a balance month to month and there's interest accruing on that, then we would make money off of that. But if you do pay off your credit card statement every month, there's no interest and we're not making revenue that way. So, again, one of the things I love about this company is that they've got a vision for long term, and I think that that's sort of the business model that will get us there. So, quick follow up question. Are you going to set up a system or processes where it encourages people to pay off their balance monthly, or is that just something you're leaving up to the user? Right, yeah, I think it'll be similar to a typical credit card monthly statement with an option to pay in bitcoin or pay in US dollars. The idea is we want to encourage responsible use of credit and so we want people to pay off their balances and protect their bitcoin. So, yeah, it would be sort of a monthly statement sort of scenario. Hey, John, good to see you and thanks for coming to our party in Los Angeles. And quick shout out, Alex, to you and the whole swan team on that, the Pacific Bitcoin Conference. Honestly, best days of my life. Absolutely loved that you guys killed. It unbelievable that this was your first conference ever because that was to the T. It was so professional, so onto the topic here. John, my question for you. At what point do you margin call the client? So, let's say you have $10,000 worth of bitcoin, you spent three and a half thousand, and then the price of bitcoin drops. At what point do people have to post collateral to avoid their bitcoin being? Is that called rehypothecated or? I don't know. You know what I mean? Yeah, I know what you mean. Yeah, not rehypothecated, but yeah. When do you get a margin call? So, yeah, you've got a credit limit based on the value of your bitcoin, and if you get to 80% of your credit limit, you're going to start to get margin called. Again, we are coming up with any innovative ways we can to make sure that you keep as much of your bitcoin as you possibly can. But then, yes, we do have the ability to liquidate when you get over 100% of your credit limit, and obviously we're very upfront that the price of bitcoin can drop. So you have to be careful about your spending balances. And I appreciate the question, Anders, and yes, that party was off the hook. Thank you. Thank you. Actually, just there was one question I forgot to ask you. Like, so how long time would people have to replenish with new bitcoin all paid off with Fiat? Or is that basically what you're warning as you get near that 80% loan to value and then by the time it hits that you will take the collateral, which is totally understandable, just trying to understand the product. Yes, for sure. I mean, so we're still working at details, but you can expect to have something like a two day window to deposit your bitcoin to increase your collateral so that you're not underwater. And again, I don't have any specific details, but me and the guys, we're thinking up anyways we can to make sure that this doesn't happen. Right. Again, our business model is for you to save your bitcoin, spend Fiat dollars. So we're going to make sure you guys are happy and we don't want to take your bitcoin. Right? Thank you so much, John. Thank you, Anders. And looking forward to the party in Miami and straight. Thank you. Of course, we're going bigger and better all the time, for sure. ",timestamp:"01:42:54-01:48:38",topics:["Bold Bitcoin credit card"],type:"twitter_space",weight:4.754698872566223},{boost:0,date:1590465600,description:"What is the [[geopolitics sphere]] of Bitcoin?",episode_title:"Chat 39 - Bitcoin Renaissance - with Marty Bent John Vallis Alex Gladstein Elizabeth Prefontaine Brady Swenson",guests:[{name:"Alex Gladstein",profile_picture:"https://pbs.twimg.com/profile_images/1382371620669452292/VOPKOc8w_400x400.jpg",ref_id:"49445c1c-7c66-4b73-9eec-09a337befbec",twitter_handle:"gladstein"},{name:"Marty Bent",profile_picture:"https://pbs.twimg.com/profile_images/1362747135981199370/mSy97J12_400x400.jpg",ref_id:"655bdcb1-21c3-411c-aa24-fe7e4c7a248c",twitter_handle:"MartyBent"},{name:"John Vallis",profile_picture:"https://pbs.twimg.com/profile_images/1568743166035070976/4MyKww8A_400x400.jpg",ref_id:"c3a9fe29-3b78-4665-af54-e293e9d68962",twitter_handle:"johnkvallis"},{name:"& Brady Swenson",profile_picture:"",ref_id:"0b68a085-0680-44b8-891c-6e1e84ac4eb1",twitter_handle:""},{name:"Elizabeth Prefontaine",profile_picture:"https://pbs.twimg.com/profile_images/1382790711427354625/D09LMToL_400x400.jpg",ref_id:"4506df72-5de4-4144-abc4-011408b6b496",twitter_handle:"Eprefon"}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",keyword:!0,link:"https://traffic.megaphone.fm/CSN4002307424.mp3?updated=1627951379",node_type:"clip",pub_key:"",ref_id:"b241a91d-07ff-4169-9df8-16783be79ed1",show_title:"Bitcoin Audible",text:"The geopolitics also are really interesting because you would think that as we move forward let's say a decade, bitcoin continues to, I think, increase in value against fiat currencies governments are going to want to start to monopolize the mining businesses in their countries. It's just what they're going to try and do because they're going to have that power. Most of them, especially these dictatorships, have total monopoly over natural resources. So this will just inevitably contribute to this planetary decentralization because you're going to have all these different governments that don't agree with each other and are essentially in a cold conflict with each other, competing in a rivalry environment to mine so that they can get more bitcoin. And that could shake out where in 40 years from now, you have a very competitive framework of many different governments all sort of competing against each other. And that just kind of continues to build on bitcoin, censorship, resistance and uptime and strength. And it's just this brilliant way that I believe it will kind of unfold. It kind of takes our base worst flaws and somebody talking about with the. Rally bitcoin crew like a week ago or so. That when governments get involved. Like the more antagonistic governments are in trying to exert control over bitcoin. The stronger bitcoin becomes because you have more powerful invested interests that specifically want to either make sure they have the upper hand or make sure they have enough power to defend against the upper hand of someone else in order to play the game of the global value system. And I thought that was so crazy. Yeah, and there's going to be governments that have Manhattan Project style initiatives to get the cheapest energy possible. And who knows, a lot of it might be whether it's fission fusion, or if you just track the price of some of these renewable techs over the last 30 years, it's pretty expensive by the decade. So I agree with Marty. It's a very exciting part of bitcoin that I think will become more popular to discuss in the near future is the sort of energy geopolitics side of it. Yeah. Again, I don't know if Satoshi could receive this either, but luckily for us, like, the supply schedule so intensive in the beginning, that most bitcoins in the hands of individuals and corporations and state will be fighting over less and less bitcoin and have less economic yeah, that's. The crazy thing I always think about. They missed the boat. If governments had wanted to, they could have accumulated literally all the bitcoin and killed it early, but they didn't. And now you've got whatever it is. I think Nick Carter has some data on this, but some absurd percentage of bitcoin is not even held by regulated entities. It's in the hands of people. Some of them might be government officials or corporate leaders, but they're individually held and there's only so much more bitcoin to fight over. So there's like a couple of million bitcoin left to be mined and governments are going to fight really intensely over that remaining bitcoin. It's serious. So exciting. Marty, I love it when you recently been bringing people on to talk about this space and all the activity and following it very closely. Guys, go ahead. Again, the opportunity is massive. It's almost hard to fathom just here in North America, and it's such an easy sell. In practice, it may be harder because you got to sell people on bitcoin simultaneously. But just from an economics point of view, it seems like it would be an easy sell. It helps you meet your regulatory requirements. It reduces your cleanup cost, it subsidizes this and that. Has it been for you guys selling? Yeah, I mean, it's getting easier with the conditions of the market and the oil market specifically, people are sort of desperate to find alternative streams of revenue. Yeah, I think more people are coming around a bitcoin just naturally as it gets older. The natural gas sector, the stranded natural gas sector is really starting to come around to this. It's sort of different than what we're doing on the oil and gas fields. There's a lot of stranded natural gas reserves that are not being utilized at all that could really, with small minimal capital investments, could get bitcoin mining operations set up and start being turning into productive assets. Ever since we've sort of come publicly, we've had a bunch of people reach out to us. Guys, this is the last question, and I'm going to pose it to each of you, but I'm ",timestamp:"01:18:10-01:23:22",topics:["geopolitics sphere"],type:"podcast",weight:4.754698872566223},{boost:0,date:1675472948,description:"How Bitcoin empowers individuals",episode_title:"WHY ARE WE BULLISH? Mickey Koss, Nozomi Hayase, The Bitcoin Explorers ep320",guests:[{name:"Nozomi Hayase",profile_picture:"https://pbs.twimg.com/profile_images/1362950252823597060/i-UISQoY_400x400.jpg",ref_id:"f82d9145-3308-493d-aa13-1fc3e21b7dd4",twitter_handle:"nozomimagine"},{name:"The Bitcoin Explorers",profile_picture:"https://pbs.twimg.com/profile_images/1380933164596625408/vDK0Tf2r_400x400.jpg",ref_id:"a81905a1-3698-4c2d-b9d3-205e4b91a08f",twitter_handle:"BitcoinExplorer"},{name:"Mickey Koss",profile_picture:"https://abs.twimg.com/sticky/default_profile_images/default_profile_400x400.png",ref_id:"47e8b134-431a-40a8-8f56-21778cf6f927",twitter_handle:"MickeyKoss"}],hosts:[{name:"Ben Perrin",profile_picture:"https://pbs.twimg.com/profile_images/1181715113226596352/ipGVEcYH_400x400.jpg",ref_id:"e6b013ef-178b-4b41-95ee-423148a3dc3a",twitter_handle:"profbenperrin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/64479948/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-1-4%252F310976616-44100-2-e34c125fc6cf3.mp3",node_type:"clip",pub_key:"02545c14cbb18a61f20dd45f5e3dcbd9acae3de282369501040adce32a75311309",ref_id:"d865c803-93a1-47ae-b851-5bd6a683eda5",show_title:"BTC Sessions",text:"if you have thoughts, and then we'll go to the zombie. Yeah. So I think a lot of that story is kind of like how bitcoin empowers individual and small communities to kind of lift them up. Right? And so on the other side of that coin, the similar theme is how bitcoin lifts up societies. Right? And so I see a lot of this playing out with Brandon Quidom's pioneer species thesis. And so your story was like, business and all that, and I'm kind of thinking towards the integration of bitcoin mining and energy production, especially in Africa. Super bullish on Africa. And then we just had, I think it was the first small modular reactor in Canada. Right. And so that's kind of the new hotness in the energy space right now I see kind of this integration between bitcoin mining and energy lifting up societies in places like Africa, and then potentially even reinvigorating like the American Midwest. People call it the rust belt because they used to have so much manufacturing. If we can bring cheap and abundant energy to the world, that's a huge opportunity for everyone in society. Right. And that's what I'm really kind of excited about, in addition to, obviously the individuals and the businesses. ",timestamp:"01:06:00-01:07:22",topics:["individualism"],type:"podcast",weight:35.74698741708972},{boost:0,date:1675274375,description:"The value of a small government and Bitcoin ",episode_title:"Is Sound Money the Answer? with George Gammon (WiM268)",guests:[{name:"George Gammon",profile_picture:"https://pbs.twimg.com/profile_images/1246550014450700291/2n_iHigp_400x400.jpg",ref_id:"7ca1bc4f-3a57-4a6a-bedf-ef47a8b37297",twitter_handle:"GeorgeGammon"}],hosts:[{name:"Robert Breedlove",profile_picture:"https://pbs.twimg.com/profile_images/1592020087044591616/46enYwAc_400x400.jpg",ref_id:"0ed69c56-241c-4b63-87a5-8f2157fe51a5",twitter_handle:"Breedlove22"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ca3ab815-dc2e-408a-a0c5-8bbe50270a97.jpg",keyword:!0,link:"https://cdn.simplecast.com/audio/2effec98-bec5-4728-ba08-7a86d776e682/episodes/d6e8f010-e2d5-4489-bb8e-9b7446a4795b/audio/0ad4fb89-2eda-4ad7-8432-b6be08c8ce10/default_tc.mp3?aid=rss_feed&feed=MLdpYXYI",node_type:"clip",pub_key:"03a3451db4748e483d2e1ee5d0b3a6872253253b57edf4b084a56952b432a224b3",ref_id:"61f104e1-77d8-48c4-9def-92d74cbf0d64",show_title:'The "What is Money?" Show',text:"of time left here, but I think we have enough time to go through at least one more point here, I guess. Part core, even to your argument, I think, correct me if I'm wrong, is that we should be spending the right proportion of time on educating people about the value of small government, competing in the court of public opinion, if you will, to shrink government and the right. Because it's not a panacea. Yes, and some proportion to sound money as well, which is obviously important to some extent, depending on context, et cetera, et cetera. And I agree with you there. But a thought experiment I would like to advance is that the existence of fiat currency is actually a distortion of the voting mechanism which we traditionally depend upon in a democracy to express our political preferences. Now, this example, there's a book called The Ethics of Money Production by an author named Holzman, and this is where I get this example, and he's basically making the argument that the market economy could be understood as a system that's basically catering to the needs of consumers as expressed in money payments. So the example I always like to give is if I go into the market and I buy a car, I'm actually signaling to the market economy to produce more cars, right? I'm casting a vote to specifically the car that I buy, right? If I buy a 2020 Tesla, that's what I'm telling the market to make more of. And the inverse is also true. You go and sell a house, right? You're actually signaling to the market economy to produce less houses. So it's this, it's a real kind of grassroots democratic process taking place where one unit of currency or one unit of money is equal to one vote, if you will. And when you look at the market economy through that lens, and then you consider that there's a central bank sitting in the middle of every modern market economy, that it's effectively an institution that can create its own votes. It is able to expand currency supplies and manipulate that process of consumers expressing their preferences in the marketplace and creating all the distortions that we've described today. So when you ask that question earlier, right, would you rather live in a society that believed in small government but was run on fiat currency, or live in a society that believed in big government but was run on sound money? I feel like in a society running on fiat currency, it almost doesn't matter what the democratic collective wishes are or preferences are of the majority because they can't be adequately expressed through a democratic mechanism, when in fact it's the central bank. Or I'll put in the commercial banking system that surrounds the central bank as part of this as well, they get a disproportionate amount of influence because they're effectively creating these new votes called currency units out of nothing. Or to the extent that they are creating them out of nothing, they're able to disproportionately sway the vote of the market process, let's say. So how would you wrestle with that? Because this is a bit of a rabbit hole, because if you draw this conclusion to the end, you're like, oh, well, democracy is kind of a scam. It's really about the money that creates the votes and movements in society. Democracy maybe has at least a limited effect. But I'd love to just hear what you think about that in general. Well, first I think you have to compartmentalize the Fed in the commercial banking system, because what you just described again assumes that the Fed has control, or a significant amount of control over the amount of currency units that is contributing to those votes, as you said. So if we assume for a moment that the Fed really doesn't control the amount of M two, then the Fed isn't really impacting the voting system. So then it would be the commercial banks. Right. But if the commercial banks, then assuming that they don't have a perverse incentive, which is the bill, right, there you go. Like free banking, they would lend for productive means and they would lend to businesses that would produce more goods and services because those are the entities that have the highest probability of paying them back. And so although, yes, the banking system is controlling the amount of m two amount of currency units, I think if you could eliminate or reduce the size of government, then you would have a system where that additional increase might not be optimal. But I think that's debatable. But at least it's not a massive anchor. At least it isn't extremely detrimental. And another fun thought experiment is I get the people that say, well, listen, we want a fixed M two supply, full reserve banking because we want a consistent unit of measurement. We always want to have twelve inches in a foot as an example. You hear that all the time. But I don't know that if we have 5% deflation, you're still changing the amount of inches in the foot, just like 5% inflation. I would push back on that one again a bitcoin, or would again disentangle monetary inflation from price inflation in that case. So they're advocating for integrity of the money supply, not necessarily integrity of price consistency. Right. But the initial argument is that the economy is going to function better if you always have twelve inches in a foot. Meaning that if the value of that currency unit relative to goods and services. Remains constant that's where I'm disagreeing. I don't think it's about the constancy of the relationship between the currency unit and goods and services. It's just the integrity of the money supply itself. So the less the money supply changes, the more it adequately reflects changes in the productive economy. But if you get supply that changes, obviously price changes become distorted. You don't know if it's policy or supply and demand fundamentals. Right, okay, got it. So then the argument there is that if prices are going down by 5%, even though that may be an inconsistent amount of value currency relative to goods and services, that would be optimal because that's what the free market is producing. Because that's a result of the free market and the decisions that are being made by the individuals pursuing their own self interest. I think you could summarize the argument as the money supply that changes least is best. So an ideal money supply in a bitcoin or world is a fixed money supply, so the pricing signals that money, this would be everything. The other weird thing, in a bitcoin world, there is no difference between base money and broad, all right? You could say there's lending on top of it. If you introduce full reserve with a bitcoin base layer, right? Then there could be if there's IOUs that are produced by the fiduciary correct. Or the underlying base layer, then theoretically you could have an additional amount of broad relative to base, although that base could be used as broad. Very similar to the way gold was. Yes. And the theory there is that because bitcoin is more portable, because it's sound money, you're obviously dissuaded from taking on debt because it tends to increase in purchasing power over time, and because it's hyper portable, you don't need to centralize the custody and borrow currency units on top of it, necessarily. So I think there's less of an incentive for there to be a higher proportion of broad money to base money in a bitcoin world. Like another way of saying global debt to GDP would contract ten X, perhaps from what do we have? 20 or 30%? This is what I really wanted to discuss with you as well, because I think that we've really discussed the sound money component of it, but that doesn't necessarily mean that we've discussed the bitcoin standard component of it, because there is a difference between gold being old money. And bitcoin sound money. For sure. You got it. I don't think we should crack that can of worms right now, though, because if I'm going to get you off in 2 hours, we only got about five minutes. That one will definitely ",timestamp:"01:50:29-02:00:37",topics:["Small government","Bitcoin value"],type:"podcast",weight:34.26857319961412},{boost:0,date:1663767761,description:"what is Small modular reactors ?",episode_title:"Mining Bitcoin with Nuclear Energy with Ryan MacLeod",guests:[{name:"Ryan MacLeod",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"20a72757-923c-4a01-ad4f-7ccdc2a83e03",twitter_handle:"NuclearBitcoinr"}],hosts:[{name:"Peter McCormack",profile_picture:"https://pbs.twimg.com/profile_images/1524287442307723265/_59ITDbJ_400x400.jpg",ref_id:"887a65a7-a2d8-4371-887e-bc7a6ca6ff17",twitter_handle:"PeterMcCormack"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4e607036-8fde-48ef-ab76-9c2ac4bab031.jpg",keyword:!0,link:"https://chtbl.com/track/282487/traffic.libsyn.com/secure/whatbitcoindid/WBD557_-_Ryan_Macleod.mp3",node_type:"clip",pub_key:"032ff32727b06d20a13a0a8d8dfe09d39659c16deeaffbf94d6d21ec6bb28850b6",ref_id:"ccac3748-afc5-4404-8497-1710f501f49f",show_title:"What Bitcoin Did with Peter McCormack",text:"the SMR modules, when they're created and they're approved, will that wipe out any need to build these larger reactors? Is that the death of those? Is the desired just to only have SMRs? Not necessarily. There's potentially room for all the different types. There's still, like, the UAE's just built a few large reactors. The hinkley point C's. Almost finished in the UK. I think there's the reactors in Georgia that have been taking a while, but they're almost finished taking a while, 15 years. When you say the small reactors, what is the scale compared to, like, a normal nuclear reactor? The term Small modular reactor applies to reactors that are less than 300. Conventional reactors are in like 600, 700 megawatt units, and they benefit from the economies of scale so they can have a wider customer base to share the risk of the costs with I have. No idea what that amount of power, how many people that services. So if you had one of these SMRs, how many would we need in the UK to serve 70 million people? Well, it depends because it will be locally dependent. The difference is you can build one large reactor and then all the transmission infrastructure to get it to the customers, or you can build the SMRs in hyperlocal grids too. Do you have a look at how much grid the UK grid uses? I'd love to. I guess you might have an idea of what the Canada grid uses. Is Canada have a single grid? Because it's quite it's pretty spread out. Yeah, as soon as you start getting further north, it gets pretty remote and there's a lot of off grid that depends on diesel. That's the goal of the SMR action plan for off grid, is to get remote communities off of diesel, upgrade them to nuclear with these small modular reactors. OK, but I can't imagine the construction of a small modular modular reactor is going to be cheap. But they must be like the estimated cars. The first of a kind reactors are going to be in the orders of several hundreds of millions, a few billion. But the expected cost, once the technology is mature, the cost will be cut in half because once the manufacturing facilities are built and all of the supply chains are developed and the expertise is aligned, that will significantly drive the cost down as more reactors are deployed. But yeah, getting it over those initial hurdles is going to be quite costly and require like, public private risk sharing and capital investment. So it says Greater London uses just under 40,000 gigawatt hours and it says it could be supplied by two or so, like, large nuclear power plants. Okay, so that'd be like four SMRs? Depends on the type of SMR. If you're going with a 300 megawatt unit, then yeah, but if you want to apply it to like, a small community that only needs 15 to 20 MW, you can build either a few of the really small reactors that are going to be in the ten megawatt range. Oh, you can build like tiny versions of these? Yeah, that's the thing, because we want to build some that are in the one to ten megawatt range, in the 50 to 150 megawatt range, and then like the 200 to 300 megawatt range. So we'll have a wide variety of applications that these reactors can be applied to. So the smaller ones, one to 10 MW, what kind of size geography do they need? Like a track field hockey arena. Oh, wow. Yeah, not much. Okay. And do they know the construction time or something like that? They're expecting the smaller ones to be in the orders of like one to two years and then the larger ones being like, the five years ballpark so. It'S really important to get through that regulatory process then. Absolutely, yeah. And are there enough people out there who are available to be able to work to construct these, to work at these? Is that another thing that has to be worked on to train people up? Yeah. In many jurisdictions that is the case. That's why it is being so costly to build the Hinkley reactor in the Vocal reactor in Georgia for the UK and the US markets, because they let their supply chain atrophy by not building or refurbishing any of the reactors for decades. Whereas in Canada, we are actively refurbishing our reactors right now. The Darlington has undergone refurbishment. The point, Lapro. Reactor has undergone refurbishment. Bruce reactor is currently under refurbishment. So this will extend the life of those reactors for at least another four decades. What's involved in refurbishing it is essentially using the site to put in new technology. Yeah. A lot of the parts in these reactors are interchangeable. They can just be replaced with new parts, and the pressure tubes just get replaced with fresh zirconium pressure tubes, and they replace the turbines if they need to. Just anything that's starting to show its age just gets replaced. But the core of the reactor pretty much remains unchanged. And how much time goes into refurbing a reactor, as opposed to by building one from scratch? Each reactor probably takes, like, two to three years to refurb. Yeah. Okay. And that has the advantage of sustaining our supply chain and our workforce and making sure that the industry remains robust and doesn't lose our expertise. So ",timestamp:"00:20:06-00:25:51",topics:["Small modular reactors"],type:"podcast",weight:4.754855089440576},{boost:0,date:1673187067,description:"How do micro reactors contribute to the decentralization of the energy industry?",episode_title:"@NuclearBitcoinr - Mining #bitcoin With Small Modular Nuclear Reactors. #313",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"}],hosts:[{name:"Daniel Prince",profile_picture:"https://pbs.twimg.com/profile_images/1589940494364205056/rnHs5gI3_400x400.jpg",ref_id:"df2d4d35-3e96-44ed-b1cc-cb8a714bbe30",twitter_handle:"PrinceySOV"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e1eca67b-d372-4031-bf1f-8f0ff7fe6092.jpg",keyword:!0,link:"https://anchor.fm/s/1346f9e8/podcast/play/63208295/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-0-8%252F4a07b2fe-eb1d-2c82-677e-8f2808a09536.mp3",node_type:"clip",pub_key:"02545c14cbb18a61f20dd45f5e3dcbd9acae3de282369501040adce32a75311309",ref_id:"58d095b5-4c46-4586-888c-8b56a9afd883",show_title:`Once Bitten! A Bitcoin Podcast. `,text:"So I think it's all going to all going to fit together and like, the small modular reactors have so much potential. When you say small, how small are we talking? Small encompasses anything less than 300 MW. So, like, your typical nuclear reactor that we have out there is, depending on how old they are, 700, 800 MW. Like the new ones that are just being built in the UAE, they're like 1.4 gigawatts per unit. These reactors that are being built now are huge, but they have a narrow market that they can be built in once they're built. And if the market is there, that's great. But there's communities throughout Africa that could be better served by a reactor that generates just 5 MW instead of 500. So there's going to be a lot more applicability. And then the range goes from the micro reactors are anything less than 10 MW. Small is anything less than 300. And then there's the micro ones that they have, they're even smaller. And the micro ones are basically going to be able to fit a nearly complete reactor on the back of a transport trailer and just ship it to site and assemble the final components. Because the idea is that they're going to be mass produced in a factory type of setting on an assembly line so that they can take advantage of repeat construction and learning techniques to improve the construction process and get a lot of more standardized practices in the material and the supply chains that they use. So that's going to be going to reduce the costs dramatically. But then the problem is I'm trying to picture this in my mind. As. We all decentralize, this helps us get out of the cities, right? We don't need to be in cities anymore. And we could go out to areas of natural beauty and build communities around a micro reactor. Am I using the right words here? Yes. And that thing could be about the size of a shipping container or a little bit larger. Well, the main components would be in the shipping container. There would have to be a building built around it to house it. But even then it wouldn't be that size of maybe like a public school or like a hockey arena, something. So it would just be like a building because it would be built and it would be running and whatever else, but it wouldn't be like one of these massive eyesores. It's going to be pretty small. Oh, yeah. They'll be able to build them in a way that you wouldn't even know what it was unless you actually knew what it was. They'll just be a nondescript building that's just over there with a bunch of power lines coming out of it. And then the cool thing about the modularity is, say you've got a five megawatt reactor, but your community needs like 13 MW. You can build three of these units in tandem and then couple them all together. And then you can have just say, one central control room, or you can have one central turbine building. And then each of the the generator modules would be on their own. So instead of having three of each, you can kind of streamline that a bit. And then where I see a lot of, like, the bitcoin mining come in is like, perhaps you see that in the future. This community has the potential to develop up to 30 MW, but they're only consuming about 13 now. You can just build the full 30, fill that space with the bitcoin miners, and then as the community grows into its new energy profile, you can just peel off miners and deploy them somewhere else where it will make more sense to them. And then the locations where I'm talking about in northern Canada, we also have the added benefit that these little guys are space heaters if configured in the right way. And then like, on top of that, like Troy Cross was talking with, McCormick recently, threw out some interesting ideas about one being like, a lot of the carbon capture technology is basically just drawing air through a fan and through a medium that absorbs the carbon. And then out the other side, it's like, well, just run your miners through and then you can, you can take the fans to blow the air through the carbon capture, and then you can probably capture the heat and go send that off into a greenhouse or something nearby. Or you can take that carbon and you can distribute that into the greenhouse. There's so many different ways that this can be configured. And the ideas that I'm seeing with the modeling is very complex and convoluted with how they're trying to be like, oh, well, you can ramp up and down the reactors. That's a cool capability. But then you're either losing out on potential economic benefit or when you do ramp up and down your core, like any generator, even like a natural gas generator, that puts unnecessary wear and stress on the equipment and the lifetime of your generation station. So if you can just leave your reactor running at 100% all the time, regardless of what your local demand. Looks like that's going to have a significant improvement on the lifetime of your reactor. For one of these microreactors, sorry to jump in on my mind is racing one of these microreactors that you take and you build a community around. If I remember rightly, about half an hour ago, we were talking about the shelf life of the fuel rods. It's like one and a half or three years you might only need to take out before they get switched out. Is that correct? Yeah, that's typically like the lightwater reactors that we're familiar with, the traditional type, the one that we're going to be building at CNL or demonstrating, that's going to be the one we anticipate to deploy to remote off grid communities. It's going to have a 20 year fuel cycle. So basically so you don't even need to go to a uranium rich plane. You just turn up with your module, it gets built, the fuel cells turn up, and then you just need another delivery in 20 years and you're good to go. Pretty much, yeah. Or yeah, or you could just keep keep a second fuel pod just on hand. Right. And then yeah, then you've got 40 years worth of fuel available on site, and you're basically limited to how well you maintain your reactor and do your preventative maintenance. There are some parts that are going to wear over time, like anything like maintaining a classic car. There's some parts that you're going to need to swap out over time, but for the most part, you can keep the main components in good enough shape that you can push them 40, 60, 80 years. It's like the complete opposite of what happened in the Gold Rush. Instead of risking life and limb to cross mountain ranges and blizzards and people that wanted to basically kill you to get to the other side to hopefully find gold, you're taking all that shit with you already and just plugging in and building a community around it and civilization, immediate civilization. That's the idea. Sounds like the pioneer species idea in a nutshell. We go to where the power is, and now we have the ability to put the power wherever we want. Like there's going to be within reason, like there's going to be some limitations, but like, even some of these reactors are going to be designed in such a way that they're like, seismically stable so that even a strong earthquake is not even going to bother them. And I remember Ross Stevens talking about this in his interview with Michael Sailor. Did you watch that one when they did the MicroStrategy World Day start of 2021? With all the content that I consume? Yeah. I'm surprised I haven't gotten that one because those are two, two big brains for sure. Taylor interviewed Ross and it was the first time I'd ever even heard about Ross. He had never been on any podcast or appeared anywhere at all. In a bitcoin space. And that was the opening interview. And at some point in that interview, Ross did basically say bitcoin is going to communities give us the ability to move decentralize ourselves to areas of natural beauty where we can now build up around he used the example of a waterfall for a great example, because now you can mine bitcoin, but you guys are taking one step further, like yeah, no, just load up the truck guys. Let's go. Because we got the mini nuclear reactor and we're solid for 40 years. Yeah, it blows my mind. Oh, I know. When I started really digging into it, I was just trying to do the good kind of scientist thing where you're just like, well, how can this not work? And trying to come up and conceive of all the ways that it doesn't. But every pathway that I've gone down leads me to just like, this is the way forward. But it takes a lot of education for people to not only get nuclear power and bitcoin and how electricity systems work. These are things that a small fraction of the world understands, even one of the three of them. But putting all three of them together, I'm still pretty neophyte in my understanding of nuclear power. I'm not a nuclear engineer or anything. I work with tons of them, and I can pick their brains whenever I need to. ",timestamp:"01:07:09-01:17:31",topics:["micro reactors","reactors"],type:"podcast",weight:19.120022996014775},{boost:0,date:1528156800,description:"Store value of Bitcoin in a volatile market and its mass adoption barrier ",episode_title:"Cryptocurrency Price Volatility and Bitcoin Store-of-value",guests:[],hosts:[{name:"Andreas M. Antonopoulos",profile_picture:"https://pbs.twimg.com/profile_images/1362967502247129090/Q2ypSr9W_400x400.jpg",ref_id:"132bc4d2-c16e-466e-8ab2-6f8a9a9a6568",twitter_handle:"aantonop"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/1c3fe064-f637-41ea-8a4b-a533ef5985b1.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=wzzZT95ijTo",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"1806f209-3cd6-496a-baf3-0351b7f432aa",show_title:"aantonop",text:"James asks store value in a volatile market. My smart friend says that the biggest barrier to mass adoption is price volatility, which limits Bitcoin's use as a store. Store value. Its most convincing use case to date. It's a lousy story value if the price keeps changing. Is this right? Are there other obstacles to mass adoption? What are they, in your opinion? James, your friend may be smart, but I don't think they understand some of the basic economics at play here. So, first of all, I don't think price volatility really affects bitcoin's use as a store of value. Store value is definitely a longterm perspective. It certainly affects Bitcoin's use as a medium of exchange, but as a store of value. If you are buying and investing in bitcoin and using it as a store of value, then you have a long term perspective. Certainly more than a year. How is Bitcoin doing? In the last year. It's up about 600%. Sounds like a pretty good store of value to me. Over the last three years. Definitely pretty good store value. If you look at it over three months, it's probably not a good store of value. But that's not what store value means. Store value is definitely a long term perspective. The other thing about this is that it's a bit of a circular argument because volatility really is an expression of size. For example, in a follow up question, James said, we tend to harbor an expectation that this volatility, a key obstacle to bitcoin's wider success, will eventually calm down. But bitcoin's resistance to regulation is a feature, not a bug. So where will the stability come from? Absent of mass adoption and absent of regulation. I think there's a broad misunderstanding about how volatility is dealt with in capital markets and currency markets. The idea that regulators control volatility in the currency, I think is an illusion. Regulation doesn't control volatility. If anything, regulated markets that don't have enough flexibility and liquidity are more volatile. I would say the biggest contributor to volatility is the small size of a currency. And you've got to understand that Bitcoin is currently traded on a global basis. Unlike most other national currencies that have primarily domestic markets, bitcoin is a global market. And for a global market, it's tiny. It really is absolutely tiny. $100 billion is nothing in currencies, even for a currency that's only domestic, let alone for a currency that's traded globally. So this kind of sounds like a circular argument, basically saying the biggest barrier to mass adoption is the lack of mass adoption. And if only there was more mass adoption, then there'd be more mass adoption. The biggest barrier to bitcoin being big is that bitcoin is small. And if only bitcoin was bigger than it could be bigger, because that's what price volatility is. It's that this currency is small. And so if the fact that it's small is a barrier to it becoming big, that's kind of circular logic. As bitcoin gets bigger, volatility goes down. As the market becomes more liquid, as it is traded more and used for different purposes and not just speculation, I think that reduces volatility. The more companies depend on bitcoin as an input, or use it for payments to contractors or providers, or hold inventory and purchase things based on bitcoin, or sell things based on bitcoin, the more the price of volatility is reduced. Right now, it's mostly used for speculation, it's mostly dealt with as a short term basis. It's traded globally in a wide open market, and as a result, it's quite volatile. So yes, bitcoin will become less volatile as it grows, or at least I certainly hope it will. I think the economics ",timestamp:"00:00:00-00:04:24",topics:["Price volatility","Regulation resistance","Small size currency","Market liquidity"],type:"youtube",weight:4.673567056655884},{boost:0,date:1670943361,description:"Discussion on the percentage of Bitcoiners who self custody and the limitations of Layer 1s",episode_title:"Café ₿: SBF Arrested 🚨 🚨 #Bitcoin Not Crypto",guests:[{name:" Tone Vays",profile_picture:"https://pbs.twimg.com/profile_images/1416821178266787844/T1OkI9ZW_400x400.jpg",ref_id:"ac43b4f0-9056-4a6b-9d30-4a6250405ade",twitter_handle:"ToneVays"},{name:" 2140data",profile_picture:"https://pbs.twimg.com/profile_images/1598330787778232320/ZVFcRtet_400x400.jpg",ref_id:"c8fb52d1-fa69-410d-bf96-8a7559bba863",twitter_handle:"2140data"},{name:" BITVOLT7",profile_picture:"https://pbs.twimg.com/profile_images/1532194001511714818/O8nSTKcx_400x400.png",ref_id:"2b9913b7-393c-4125-9aeb-4a8bf32bfa44",twitter_handle:"BITVOLT7"},{name:" Tomer Strolight",profile_picture:"https://pbs.twimg.com/profile_images/1591960241008148481/HtyINxtU_400x400.jpg",ref_id:"4e0b6941-6d5c-439c-9d30-7c5691828930",twitter_handle:"TomerStrolight"},{name:"Neil Jacobs",profile_picture:"https://pbs.twimg.com/profile_images/1593645788978102277/UAQCQKeE_400x400.jpg",ref_id:"0bc759e0-b055-4800-a79d-2b950fe5cc53",twitter_handle:"NeilJacobs"},{name:" StackchainSig",profile_picture:"https://pbs.twimg.com/profile_images/1589791699571802117/n_Y1Qm7J_400x400.jpg",ref_id:"c000ebd6-1c05-4c6a-ad07-5e5c10cc3fb3",twitter_handle:"StackchainSig"},{name:" Joe Carlasare",profile_picture:"https://pbs.twimg.com/profile_images/1567374701667794944/2ghrkDx7_400x400.jpg",ref_id:"75b3a3fa-f118-4ea0-9477-25832844c900",twitter_handle:"JoeCarlasare"},{name:" w_s_bitcoin",profile_picture:"https://pbs.twimg.com/profile_images/1594796869233811474/g0_ZRshz_400x400.png",ref_id:"268a731a-0e21-4cb1-ad73-d8d21f433393",twitter_handle:"w_s_bitcoin"},{name:" TYonClubhouse",profile_picture:"https://pbs.twimg.com/profile_images/1575442322531274756/-ZdL-K9S_400x400.jpg",ref_id:"519d68be-1a96-4394-8bab-48f570f1a6cd",twitter_handle:"TYonClubhouse"}],hosts:[{name:"Alex Stanczyk",profile_picture:"https://pbs.twimg.com/profile_images/1539055022364708864/rwErK6x1_400x400.jpg",ref_id:"3126e2a3-bbe4-456b-b298-9714085fa286",twitter_handle:"alexstanczyk"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",keyword:!0,link:"https://stakwork-uploads.s3.amazonaws.com/uploads/customers/2707/media_to_local/ee6b20fb-2dd2-467b-8e0e-0c2301d9ff68/3f03e525-44df-4eeb-ad79-f6e66ccca86d.mp3",node_type:"clip",pub_key:"034248fa888690a85021cf117c168a535c53b92e1fdf3e4f9cefddfe09118d8207",ref_id:"b8d90bd0-45fb-40d9-87db-b9a908a8684a",show_title:"Swan.com",text:"I have a quick question, and it kind of just got sparked by what Nico said and what we've been talking about in general with the importance of self custody and the spreading of this message. But in its current form, right now, as it is, the protocol, what percentage of the world do we honestly think can actually self custody on the base layer? Like, realistically, do we know that number? Like 1-2-I don't know. That's a really good question. I mean, you could surmise from the glass node data about the number of bitcoin addresses with one bitcoin or more. I don't know what percentage, because that doesn't necessarily represent that one bitcoin is for each individual. Right, but I mean, you could surmise that a percentage of that is definitely individuals taking self custody. I think you could make a pretty good bet that there's definitely a record amount of individuals taking bitcoin into self custody. And every time one of these blow ups happen, which I believe is really the silver lining of this whole FTX disaster, is a lot of people burn their fingers on the stove and they realize, oh crap, not your keys, not your bitcoin. And it's interesting because it just came out that CZ sorry, that Binance is seeing record amount of outflows as well. Now, if you've been here for a while, this was before my time in Bitcoin malgax blew up, and that was one of the only exchanges at that time. And I guess a lot of people learned their lesson. So what I'm trying to say is that every wave of these disasters, I think a small percentage of people realize not your keys, not your Bitcoin. It's just unfortunate that these things need to happen in order for individuals to learn those types of lessons. Because I know a lot of like, there was this fund, it was like Travis Kling or something, the Coggy fund wrecked, totally gone. He had most of the funds on FTX. And there's been horror stories that I've read of people's, mothers, individuals, that just for some reason or the other, they left their wealth on FTX. And it's unfortunate that that's the price that had to be paid for people to realize the truth. I also want to give a shout out to Corey because he did great work and he got a ton of crap for it, for basically beating the battle drum about celsius about FTX and getting individuals to take self custody. It's just crazy how effective the shitcoiners are at just drowning out that. It's like, oh, these Bitcoin maxis, they're radicals, they're crazy. They call you all these names. But the bear market is kind of bittersweet. We get vindicated, but at the same time, a lot of people lose their life savings. And I think that's really tragic. Man yeah, I think kind of where I was getting at is I personally believe self custody is incredibly important and probably one of the key, if not the most important feature of Bitcoin. Without enough users controlling their bitcoin and having it in self custody and using it right, kind of growing the network in terms of its peer to peer connections, there's no Bitcoin failed. We need to have as many peer to peer connections as possible. Right? That's the whole fucking point of Bitcoin. But I guess what I was getting at is like, I don't want to oversell the technology either, though, and make it seem like everyone can do this, because that's just not true, at least in its current form. And maybe we'll make updates in the future that will make it that way, will make it possible for everyone to but it's actually I mean, in my opinion, it's very likely that we also may not, right? We may kind of choose to keep the base layer in a way where it's a settlement layer and the vast majority of people having their bitcoin on layers on top and they don't necessarily have their own private keys or they have kind of these other ways of having custodial relationships like fettiments or custodial lightning wallets or things like this. So it's like while I see the importance, at least especially in this moment when we are so early and everyone can at this very moment, who knows about Bitcoin and has Bitcoin, everyone who has it now, they really can take self custody, right? It's a few pennies. I don't say everyone, but a lot of people can take self custody. It only costs a few pennies of on chain fees and the block chain is not congested. The mempool is clearing regularly. But at a certain point we do have to like realize that it becomes difficult to onboard everyone. And so I don't want to oversell the technology when it's not really there yet. And it may never be. You see what I'm saying? I think that's a dangerous thing too, because then you have a bunch of people who are like, well, fuck, what am I going to do now? Right? Once we get to that point where it's like, well, sorry, train is full, I think you can hide a lot of the complexity of self custody behind a slick user interface and just kind of remove that's not what I'm talking about though, Nico. I'm talking about the literal limitations of the technology itself. There's only so much block space and right now we don't have good enough ways to batch transactions, which we might in the future, but at least now we don't on main chain. I don't even understand why this is an issue. Because you can't take self custody without taking self custody on the main chain. We're talking about man self custody. No, I guess that's a fair point. But I guess that also makes the assumption that all of these transactions are trying to not happen on layers above. I'm talking about what you're saying, storing their wealth in Bitcoin and then us banging the table saying it's not your Bitcoin unless you take self custody. But then when the rest of the world wakes up, they realize that they're too late. Do federations help with this at all? That's what I'm saying, is like I think that's why I'm saying it's kind of dangerous to be going down this narrative path of not your keys, not your coins, and that's the only option. But we're not there yet. Wicked. In the interim, we're not at the point where billions of people are trying to crowd into Bitcoin and everybody's trying to take self custody and it's the man. The pools got 3 billion transactions, though, and influential. And so I don't want people to come back and be like, man, those fucking early as bitches just didn't we weren't considering the realistic situation here, which is that the vast majority of people probably will never hold their own keys. At least in our current technological stack of Bitcoin. Things may change on the basis we're worried about that. I feel like you're over worried about something like who cares we don't know what I care. Look, calm down. Because about people being in control of their money. That's the whole fucking point. That's not what I'm saying. You just said you don't want people in the future to go back and listen to these and be like, hey, they said a bunch of stupid shit. It's like, look, nobody knows the future, man. I don't have a crystal. Like, my membership expired to the Seance network. I no longer have access to the ability to predict the future. So just don't even worry about it. We go one step at a time here. Okay? But we're talking about a future where everyone uses Bitcoin and we're saying that everyone needs to take self custody. But those two ideas do not jive. That's all I'm saying. Wicked. Wicked. Are you really worried that Kevin O'Leary, Peter Schiff, Charlie Munger are not going to be able to have self custody? Those motherfuckers will, man. They're going to be on the base layer settlement just like the rest of us because we're so early. It won't matter for us to pay the equivalent of $5,000 to settle a transaction on chain when it's wicked expensive. But everyone else in the fucking world is going to have to use Fetty Mint's and other custodial solutions to use bitcoin. And I think it's greatest be realistic about that in human history. It's going to happen. I agree with that. Yeah. But 80% of the people who are fucking poor and in developing nations who don't have the chance to get in on this transfer of wealth or are doing it in a way where they have a little bit of bitcoin, but it's in a custodial lightning wallet, so maybe they get fucked along the way anyways, you know what I'm saying? All I'm saying is we just have to be careful with how we word things and the expectations we set. I would push back against that man a little bit. Look, at this moment in time, I think the more individuals taking self custody of their Bitcoin, the better, and I think that perhaps in the future, those we agree on that and the circumstances will arise. Maybe, I have no idea. But right now, that isn't the case. Right now it's incredibly easy, incredibly cheap. Of course, I don't think it's very difficult because I've been doing it for a while. But the steps I don't think are very difficult. I don't think setting up a ledger or a treasure or a jade or a cold card, I don't think it's that hard, man. And I think that you can get a percentage of the population, specifically the people that have spent less time in the Fiat Matrix. I think you can get them accustomed to it, man. It's what I do, bro. I literally have a cabinet full of hardware wallets and I hand them out like candy bars. Yeah, man. I'm running out custody every single weekday morning this is what I thank you for doing that, by the way, we're planning on doing for a very long time moving forward. I think it's really important to spread this message. I'm not saying don't usually custody. I'm just saying we're going to reach a saturation point at some point, and it might be there. Well, we're not there yet, but it might come. Deep breath. It might sneak up on us. Angry Apple, take a deep breath. I can just see Nico at Halloween. And here's a treasure for you. And here's a ledger for you. I literally subsidize it, bro. So hold on, I have to tell you guys the story because it's a good story. So before I dropped out of college, this was 2016, by the way. My last class was public speaking, and they're like, what are you going to do your presentation on? So I did my presentation on bitcoin. At the very end, I said, guys, if you download a bitcoin wallet or something like that, I will literally give you $10 worth of bitcoin. Mind you, this was 2016. There was a class of 29 people. Only three people took up that offer like mad. Wow. Yeah, dude, it's interesting. But hey, ngu, I think, fixes a lot of this. Tommer has had his hand up for a long time. Let's go with Tomer, and then I have a question for the panel. Okay, I have a point to make, but just to weigh in on the last conversation, I think by the time this becomes what wicked's concern comes up, there will be good solutions for it. There'll be other things, but I don't want to really belabor that point. I shared another tweet that I made last night at the top of the nest, which I think for me at least, is an attempt to condense a lot of this conversation, which is, I said the most important feature of bitcoin is auditability. It's not that I'm just trying to make a case where it's not that there's 21 million coins or that even that this is a finite number of coins. It's that you can actually see where every coin is, including, most importantly, yours. And so you know that you've got what you've got. And that certainty is the invention that we've never seen before. We've never had that ability for you to have, knowingly what you have in a financial system, in a digital asset that is invulnerable to attack. I feel like I'm just kind of going over and over some of these things, but it's a different lens because everybody tends to focus at different times on different features of this thing. And now with all these custodial blow ups that we've seen, and we remember, why not your keys? Not your coins. And the reason your keys are so important is you can see what's on there, so can everyone else. And so all these games of, well, how many bitcoins actually exist in. The paper world. Nobody knows how many exist on chain. Everybody knows which coins are yours in custody. Nobody knows which coins are yours in self custody, you know, and everybody else knows. And so it's a night and day difference. It's incredibly stark contrast to what existed before. Even with things like gold that you can take self custody of, you don't know how much gold there is out there. You can't audit the global supply of gold. You can't actually verify for yourself that the thing that you hold in your hand that you think is gold is gold, but you can verify all of that easily trivially, inexpensively, instantly, continuously with Bitcoin. That's the that's a great point. Great point. How many diamonds are there out there? Does anybody know? Infinite. You can make diamonds out of carbon. So take your pencil that and squeeze it really hard. You get a diamond. There's a lot off the coast of South Africa, that's for sure. Angry Apple makes his own diamonds. He just grabs the carbon and crushes it in its vest until it becomes a diamond. That's right. And these man made diamonds are better than those shitty ones you find in the Earth crust anyway, so they're more perfect. ",timestamp:"01:22:31-01:37:39",topics:["Bitcoin self-custody","limitations of Layer 1s"],type:"twitter_space",weight:9.165734869028597},{boost:0,date:1624507200,description:"[[Ali]] background",episode_title:"Bitcoin Fixes This 48 Small Business with Ali",guests:[{name:"Ali",profile_picture:"",ref_id:"1169edf2-a89f-4d89-94a4-1be1a7b9aef0",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2536a974-d668-4ac2-8613-0b37aa0ca08c.jpg",keyword:!0,link:"https://anchor.fm/s/2a4e8034/podcast/play/36003846/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-5-23%2F969a4306-e9eb-95c5-0e15-42d37c0e61e8.mp3",node_type:"clip",pub_key:"",ref_id:"533a527d-5146-4c10-8091-329cbc8bf06a",show_title:"Bitcoin Fixes This",text:"of your Treasuries into Bitcoin. But before we get into all of that, can you tell us for my audience, just like how you got started and how you got into the business that you're in? Yeah, for sure. So I came to Canada from Egypt back in 2011. We were already Canadian citizens at that point. But I came with my brother to kind of start our careers here. And we came here. We were looking for a business to kind of buy outright or art together. And we found this cool restaurant in London, Ontario, that was doing pretty well. So we decided, you know what? Let's get into the restaurant industry. And we just bought that restaurant outright and we started from there. And then we grew that restaurant from small, like, little local place to a franchise. We now have over six locations in Ontario, and we're non stop growing the business. And ",timestamp:"00:01:25-00:02:30",topics:["ali"],type:"podcast",weight:4.660259485245579},{boost:0,date:1666137600,description:"Fastest way to grow connectivity for nodes?",episode_title:"Meet the Makers: Alan & Kwinten",guests:[{name:"Alan Plus",profile_picture:"https://pbs.twimg.com/profile_images/1565235279451103233/XD8pJuIo_400x400.jpg",ref_id:"e362fed6-ec06-4d8a-a052-3137b24f213f",twitter_handle:"alnboltn"},{name:"Kwinten De Backe",profile_picture:"https://pbs.twimg.com/profile_images/917859380699320320/p_v-fjmh_400x400.jpg",ref_id:"be68f240-1f4c-4b27-b4bb-752c90cbe0c3",twitter_handle:"QuintenDeBacke1"}],hosts:[{name:"Moritz Alby",profile_picture:"https://pbs.twimg.com/profile_images/859727763292512258/kiFpZ2vO_400x400.jpg",ref_id:"e88efbf8-3809-4508-a86a-d7bf9effb574",twitter_handle:"MoritzKaminski"},{name:"Zapp Ed",profile_picture:"https://pbs.twimg.com/profile_images/1519990234070540288/adGqlFoj_400x400.jpg",ref_id:"bbe7cf1d-cd8d-4d36-926d-76f41b775fbb",twitter_handle:"zapp_ed"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/965489b4-a414-4fd0-ab8c-55911b1596aa.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=GyA8tHNKmig",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"c9e0fbb2-302b-44c3-b69c-dfac38c97f98",show_title:"BOLT FUN",text:"could also take this question right now actually. What's the fastest way to grow connectivity capacity for your node? Is it better to open a few big channels or lots of small ones. I don't have all the data from all the node operators, but based on what I heard, what I've seen, there is no single strategy that is a winning strategy. So as I mentioned before, you could be a zero fee router and still make money by selling channels, or you could never sell channels and just make money on routing and have very high fees. But the same way as the question implied, you could have a lot of smaller channels, like 1 million set channels and to a bunch of nodes. So you connect a lot of different areas of the Lightning network, all kinds of services for micro payments. Or you could just decide that you're going to have ten channels, but they are very big between high capacity nodes. So all of these in my opinion and in my experience work, and you just have to find the right nodes to connect to. And this is a dynamic system, so there's no like one solution, it just changes and as soon as a new node enters the scene, it changes the whole dynamic. So it's a moving target. And if you find your sweet spot, you have to like continuously change that sweet spot a little bit. But it's there is a possibility to make money. There are some people who make serious money, I can tell you that. But yeah, just to answer directly the question, the fastest way really to grow your node is that two ways. One is you use a service like Lightningnetworkplus where you have, where you get two channels for every channel open. Technically, this is you doubling the speed of your growth. The other way is you can open channels to whoever you want to and whoever accepts your channels and then you empty those channels through an exchange or through loop. I mean, that is possible. It's expensive, but you can do this, you can buy channels if you have the capacity to do this. That's also a very fast way because you just keep opening chance you could build your node in a day technically if you have the money. ",timestamp:"00:23:26-00:26:32",topics:["Lightning nodes"],type:"youtube",weight:4.8936503202747375},{boost:0,date:1658548800,description:"Managing [[privacy keys]] is difficult",episode_title:"WHY ARE WE BULLISH Lisa Hough JC Crown Brandon Quittem ep274",guests:[{name:"Brandon Quittem",profile_picture:"https://pbs.twimg.com/profile_images/1502403738861940736/9J5VuTye_400x400.jpg",ref_id:"65512044-7810-4ece-8156-5519e072cb66",twitter_handle:"Bquittem"},{name:"JC Crown",profile_picture:"",ref_id:"79ae57b7-59d1-416a-961e-9e584ced2dfa",twitter_handle:""},{name:"Lisa Hough",profile_picture:"",ref_id:"a65a3362-03a6-4a6d-a901-3067f8b5dc81",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/55198112/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2022-6-22%2F277659593-44100-2-f891dab224966.mp3",node_type:"clip",pub_key:"",ref_id:"5992b639-b05a-4e6d-bd94-4c1b6907bda3",show_title:"BTC Sessions",text:"other thing is that managing private keys are hard and humans have no relationship to protecting information. And a Bitcoin that I'm sure everyone on this call is familiar with. Gigi, he explained it really well with the map is the territory meaning the information, your private keys or twelve word seats, that is your Bitcoin. And we have a lot of history and practice storing physical things we know to bury gold or put money under a mattress or in a bank fault. But we're not really good at information and so anything that makes that process easier is really important. And of course the reason is if the supply is held in individuals custody, it acts as a deterrent for any would be state level actor or other nefarious actor. Essentially says, good luck attacking us because it's going to be very hard and as long as you increase the cost of tyranny, I predict that that will repel the attacks because it's going to be really obvious how hard the attack would be to make. And so I don't know enough about the protocol to save it the finer details, but that's my sense. Yeah, I like that. And I like your Nigerian example. I think there'll probably be instances of even rather than even just countries, like even small tightening groups, small towns or something, having a sediment or whatever it may be, or in the future a FedRAMP for a citadel perhaps. We'll see how it goes. But yeah, no, I love that idea. JC. ",timestamp:"00:17:24-00:19:05",topics:["privacy keys"],type:"podcast",weight:4.651410079704728},{boost:0,date:1641859200,description:"About the Network mining simulator",episode_title:"Brink Projects: Research and Improvements for Bitcoin - TABConf 2021",guests:[{name:"Gloria Zhao",profile_picture:"https://pbs.twimg.com/profile_images/1144496084330266631/aPKPfoX3_400x400.png",ref_id:"cebd71c3-4ccf-452d-8ba7-4982f49fd060",twitter_handle:"GloriaHuiZhao"},{name:"Mike Schmidt",profile_picture:"https://pbs.twimg.com/profile_images/1320935020589158400/gFovyRlj_400x400.jpg",ref_id:"d503db9b-a7b1-49e1-8ef6-7541df3c2473",twitter_handle:"nytmike"},{name:"Jesse Posner",profile_picture:"https://pbs.twimg.com/profile_images/1467067234484830213/T6PtLZq1_400x400.jpg",ref_id:"bb55767f-dfbb-4182-8dd8-e1b08e0c6ad6",twitter_handle:"jesseposner"},{name:"Larry Ruane",profile_picture:"https://pbs.twimg.com/profile_images/1226076521/bike_crop_400x400.JPG",ref_id:"ce38f2dd-d41f-4957-ad83-671c3dc29cc5",twitter_handle:"larryruane"}],hosts:[{name:"TABConf (The Atlanta Bitcoin Conference)",profile_picture:"https://pbs.twimg.com/profile_images/1596233571521499138/YE8Us_Ml_400x400.jpg",ref_id:"e46f0c05-8cc5-4264-9c40-83b13f4edd0a",twitter_handle:"tabconf"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=UFro74sS8q0",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"6731ba0c-c57b-4fb1-a2f6-6e1ec641e830",show_title:"TABConf (The Atlanta Bitcoin Conference)",text:"rulane. I'm a part time Brink Grantee, so I hope to go full time someday. Most of what I do is PR review, but I thought it would be more interesting than just saying I do PR review and then go sit down. I thought I would present a project I started a couple of years ago, and that some of my break time. I've used to improve this little project and thought it might be interesting to present here. And it's something I call a network mining simulator. And there's a link to the repo here. And what does this simulator do? It can produce a million blocks in 10 seconds. Okay, so that's actually a higher block rate than many altcoins, believe it or not. So not really it's not creating real blocks, it's creating simulated blocks. So what the simulator does is it's what it is, is it's a command line program written and go. It's pretty small. It's like 400 lines of code. So it's very limited there. It's very simple. And I consider it a good tool for learning and actually chain code seminar. They're using this as part of their curriculum to bring in new developers and teach them some of these concepts. So it's really for learning and intuition building. And so what the level of the simulation is, is very, very basic. It's just a set of mining nodes, and there's only mining nodes, and each of them is creating blocks, generating blocks, according to Hassan distribution, which is like real bitcoin that we're all familiar with. And then these blocks are relayed across a simulated network and the network has latency. So each branch of the edge of the network has latency. The network is not fully connected necessarily. So what these nodes do is it's just like in real bitcoin, they generate new blocks, and as soon as they generate a new block, they forward it out. Or if they receive a block that is better than the one that they already know about, then they relay that to their peers. And then there's logic in there to make sure that we don't have infinite loops of forwarding. And then just like in the real bitcoin network, this kind of set up generates these temporary chain splits. And I'm not talking about hard forks or soft forks here, but just temporary chain splits due to timing. And then there ends up being these reorgs when mining nodes find out about a better chain, and that creates stale blocks. So this simulator is really to get at that aspect of bitcoin where we have these small reords that happen, they happen today in real life. And I said before, this is really mainly for learning, but this could be useful. I'm not really sure, but it could be useful for resisting harmful protocol modifications. I mean, there's people that are proposing all the time we had the block size war, right, in 2015 through 2017, and that's kind of settled down, but it's possible in the future you could have something like that where people are proposing larger blocks or more complex block validation. That's kind of analogous to slower block propagation if the blocks take a long time to validate. Or sometimes I haven't really heard this too much, but if people propose like a shorter block interval, then that will change the dynamics of these mining, these chain splits that I mentioned. So these are some of the results of these bad ideas if they were to be implemented. Higher scale block rate which represents a loss of security because miners will not make as much revenue and they're not going to be willing to put in as much ash rate. Also it will encourage the formation of specialized block relay networks. We actually had that a few years ago, but I think it's not being used anymore. But a specialized block relay network is easier to attack. There's also some of these bad ideas can cause greater incentive for geographic centralization. Now there's always a little bit of an incentive to do that, but if we make certain changes, larger blocks and smaller block interval and things like that, that increases the incentive for geographical centralization that's also easier to attack for especially state level attack. So the simulator runs off of a configuration. It's just a file that has a static set of mining nodes, each of which has a static hash rate. So like I said, it's very simple. And then there's a static network topology and each network connection has a static network latency. So time is a big thing in the simulator. There's also a block interval parameter so you can specify. So default is of course 600 seconds bitcoin. But you could play with that and change the block interval. So here's a quick example, like a really simple this took me five minutes to think of. It's a simple example of a configuration file for the simulators. There's only five minors here and each row or each line is a mining node. It has the name of the minor, then the then the hash rate and then, and then to the right of that is are the peers. So this is not a fully connected network with a delay. So for each configuration or each peer has a delay network delay. And so you run that, if you ran that configuration, it takes about 10 seconds. And then you can see like a bunch of statistics that prints out a summary at the end. And like one of the most interesting things is probably the stale block rate. So we see like 1% stale blocks in that with that configuration. And then you can see the per nodes have different stale block rates because depending on where they are in the network and then you can change the parameters of this. So here I increased a couple of the delays, network delays and then the stale rate went up. It more than doubled stale rate here with that change. And then this next one, I decreased the block size to two minutes from ten minutes to two minutes. And then the sale rate went crazy as a 10% sale rate. So this will show that's very bad for the network. You can also turn on detailed tracing mode T option on this, and then it'll print a line for everything that happens in the simulator so you can analyze exactly how the reords happen. It's kind of cool to study when those happen. It does print a line too, for reords, and I have some future improvements. And actually, that's it. That's all I have to COVID. ",timestamp:"00:23:07-00:30:34",topics:["Network mining simulator","mining nodes"],type:"youtube",weight:4.627060462133696},{boost:0,date:1676449800,description:"The ramifications of the Paxos BUSD stablecoin situation for all of crypto",episode_title:"The Chopping Block: The SEC Is Attacking Crypto – Will Gary Gensler Succeed? - Ep. 456",guests:[{name:"Marc Boiron",profile_picture:"https://pbs.twimg.com/profile_images/1486397784844496897/ZyNlahT2_400x400.jpg",ref_id:"3f27d12e-0a50-42c0-8b76-b3bb15fa1ce6",twitter_handle:"boironattorney"}],hosts:[{name:"Tarun Chitra",profile_picture:"https://pbs.twimg.com/profile_images/1587539091444432897/Z6_nmrCB_400x400.jpg",ref_id:"dfad4b23-92ff-4aa1-9aa4-abc1d54cd6d3",twitter_handle:"tarunchitra"},{name:"Tom Schmidt",profile_picture:"https://pbs.twimg.com/profile_images/1563232354277085189/xQL92DR4_400x400.jpg",ref_id:"bc9d3bfd-36b0-4cbc-a491-9370decf4c99",twitter_handle:"tomhschmidt"},{name:"Robert Leshner",profile_picture:"https://pbs.twimg.com/profile_images/1587956987786104833/1SiKVj-s_400x400.jpg",ref_id:"ebaa2166-7982-423d-9f43-add89e7d47f9",twitter_handle:"rleshner"},{name:"Haseeb Qureshi",profile_picture:"https://pbs.twimg.com/profile_images/1581025415551889408/thQwG4lb_400x400.jpg",ref_id:"790e4217-dd9f-416f-b9f8-ed596937f5b5",twitter_handle:"hosseeb"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/7de0d293-8ae3-4362-8500-8f7300f3fe41.jpg",keyword:!0,link:"https://pdrl.fm/98e0b1/traffic.megaphone.fm/LSHML5322156529.mp3?updated=1676422435",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"a3fd38b6-998f-4c62-ab60-554ef9275993",show_title:"Unchained",text:"Well, I think the worst case scenario that plays out is that Paxos is a smaller issuer than someone like center consortium that creates USD coin and that this creates some sort of precedent that gets used to attack other stablecoin issuers. $14 billion be USD is a lot, but it's the third largest stable coin. I think the bigger risk comes if there's precedent that gets used and established against other stable coins, USD coin and tether. And I think that's the sort of doomsday scenario in my mind, which is stable coins are like the primary on and off ramp and bridge between traditional markets and crypto. And however effective this attack on crypto is right now, by targeting banks and getting them to debank large crypto players. There's a lot of articles about this recently. I think by taking out stable coins, they're going to take out an even bigger on and offram for the majority of consumers and investors. And I think if it's successful, it draws into question how are people supposed to use this stuff? And fundamentally, I think this will take a long time to play out, especially if Paxos is going to take this through the legal system and defend themselves. I think it might be years, but it has the potential to put a shadow over stable coins for the two years that this takes to play out, potentially. And I think to the average user, I think this will be generally invisible. But I think the larger ramification is going to be the people that are saying, like, hey, I'm a traditional financial institution. Should I interact with stable coins? Or hey, I'm a bank, or hey, I'm a hedge fund. Should I interact with stable coins? And they're going to say, you know what, the last headline I saw on this was there's active litigation about the security nature of a stable coin and they're going to shy away from it. It just it creates a chilling effect for what I perceive to be the most important asset class in crypto. I think going after stable coins is impactful in a way that going after any individual company is not right. If Celsius is shuttered or if Kraken has a piece of its business shuttered, it doesn't really have a permanent effect on the rest of the ecosystem. But I think stable coins have an outsized impact on the rest of the ecosystem when they come under attack. And so I'm quite nervous, frankly, about this action against Paxos because of the ramifications and the knock on effects it'll have elsewhere. Well, I'm hoping that once we learn more about the nature of this lawsuit, that we see that there's some more explicit rationale that's not okay stable coin equal security, and it's something more idiosyncratic to what USD was doing or what finance was doing or something like that. That I think, is our best hope at the moment. If in fact, Gensler is going to say stable coins are securities. Bar none, unless Congress tells me otherwise. That's the way it is. Then the other counterside to that is that of course there does seem to be a lot of legislative energy behind having some kind of stable Coin legislative framework. And maybe that will be accelerated if in fact there is some regulatory action and public outcry and more attention on this question. Because the net effect of this, like I said, is going to be pushing stable coins overseas, right? If ultimately Circle can't issue it and Paxo can't issue it, well, Tether is not going to stop. And Tether, it's much harder to go after Tether, obviously, than it is to go after domestic US. Companies. That being said, BSD are any Americans using BOST? One, obviously Americans by and large don't need stable coins because they already have dollars. And then second, of course, Binance USD, binance is a small player in the US. They have very small market share with Binance US. And then of course in the US. USCC is by far the most well known stablecoin behind Tether. So it does feel like a weird target to choose. And I have to assume by the nature of that, that it's really a backdoor way of getting at finance than it is something more specific to stablecoin in general or even about Paxos. It's actually really unfortunate on the stablecoin legislation because that's just such a good point, that nothing's happened on that front. And unfortunately, right in the current Congress, it's just hard to see anything happening. But it is like the lowest hanging fruit possible. It's really easy legislation, honestly, when you think about what do we want to know? We want to know that you're holding assets that aren't just going to disappear and we want to know that you're actually holding them, basically, period. It's not that hard. And so it's just unfortunate that we're likely not going to see that anytime soon only because of the makeup of Congress, even though I think we've got a lot of folks in the House and Senate who frankly are really thoughtful on this issue and could deal with it quite easily. Yeah, it's a big hit to B and B as well, because again, speculation at the moment, but I think it seems to cast a bit of a specter that Gensler is going to be coming after Binance and especially with the affiliation with FTX. Again, I think this is kind of bullshit, but the narrative that propagated in the US by some parties that the downfall of FTX was caused by Binance or caused by CZ in some way makes him an easy target. And certainly, you know, now that he's consolidated market share and he's, you know, the the guy and the big guy on the block and the biggest overseas unregulated exchange or sort of underregulated, let's say, exchange, I think it's it's very clear that there's a lot of he's, he's he's the biggest game that there is to hunt in this industry. And I think Denzel is going to be going after him however he can, even if it causes some collateral damage along the way. When this news came out, was there any celebrating at Polygon that BNB was taking a hit? We never celebrate the failures of others more seriously. Honestly, it's not good for anyone in the industry. I mean, all L ones, all L two S do well with this industry growing. It sounds so typical, but it's just true. There's so much more to grow, and as you guys already know, plug and we're focused on a way bigger market. So the desire for anyone to go down is not big at all. It's really we just want to see the market grow, and this does not help that at all. ",timestamp:"00:22:50-00:29:30",topics:["stablecoins","BUSD","Paxos"],type:"podcast",weight:40.60979587666329},{boost:0,date:1672159829,description:"What is signature aggregation? How can it be done interactively and non-interactively?",episode_title:"Pieter Wuille and Tim Ruffing - Nesting, ROAST, Half-Aggregation, Adaptor Signatures (part 2)",guests:[{name:"Tim Ruffing",profile_picture:"https://pbs.twimg.com/profile_images/925128264502439936/XcmMIk8k_400x400.jpg",ref_id:"222f7374-6d68-4934-81ed-37567c515b59",twitter_handle:"real_or_random"},{name:"Pieter Wuille",profile_picture:"https://pbs.twimg.com/profile_images/1264051937172836353/n7gHdLbB_400x400.jpg",ref_id:"40260d2f-3480-47d6-8515-d2e780901273",twitter_handle:"pwuille"}],hosts:[{name:"John Newbery",profile_picture:"https://pbs.twimg.com/profile_images/1249773577659977728/T2e7Cy2W_400x400.jpg",ref_id:"76e8955c-952a-4700-a00c-ed0b1eecde92",twitter_handle:"jfnewbery"},{name:"Adam Jonas",profile_picture:"https://pbs.twimg.com/profile_images/672878026930032640/QKhWiMi3_400x400.jpg",ref_id:"6b623811-3131-4a29-8070-eb52a3fff63b",twitter_handle:"adamjonas"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/24a144b0-7ca3-40e9-9c42-86b9fce0b662.jpg",keyword:!0,link:"https://anchor.fm/s/12fe0620/podcast/play/62357551/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2022-11-18%252F1e2ca48f-a779-0eda-2bbd-357c9a24e294.mp3",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"c13cad10-b242-4812-ad19-3bce525dfeb0",show_title:"The Chaincode Podcast",text:"So Peter, you have mentioned cross input aggregation as the inspiration for a lot of the work that actually has been done to date. Let's talk about signature aggregation. Maybe start with interactive flow aggregation and sort of a cross input aggregation history and then we'll explore let's first say. What signature aggregation is. It's very closely related to a multisignature, but the difference is really think of a multisignature with multiple participants each signing, but they can all be signing a different message rather than signing all different. Allow all messages to be different rather than the same. Now, signature aggregation can be done interactively or non interactively, which refers to the rounds of interaction at signing time. Is it possible for them to just create their partial signature now once their individual one, and can a third party aggregate them? Or do they really need to collaborate in order to produce that signature? Now, if we're restricting ourselves to interactive ones, which is certainly the easier thing to build, there is a trivial way of turning any multisignature scheme into an aggregated signature scheme. Namely, everyone just signs everybody's message because it's interactive. They're talking anyway. Effectively the message could be like, here are all the messages and all the. Designers take all the individual messages, concatenate them these forms to message you or like put into the multi signature. Or you say the message is key one signs message this, key two signs message that, key three signs message that, and everybody signs that. That makes an interactive aggregated signature scheme. Just take a multi signature scheme and turn into that and you're there. That is modulus some subtle details. Yeah, let's not go into that, but just as a warning. So don't do this at home. Yes, of course. Still have your friendly neighborhood cryptographer have a look at it before you move on. That's just because of being able to actually tease out private keys based on reuse nonsense or what is the actual issue that you'd be most concerned if I did that? What would be the first mistake I would make? In the music paper, I remember Russell O'Connor came up with this fairly far fetched attack of like if you just do that what I just said and try to use that specifically in the context of Bitcoin transactions with one signature, there was a problem, I don't remember. There could be a problem. If you're a single party and you have multiple messages that you want to. Sign, you can be tricked into and you participate multiple times, you can be tricked into signing the same one instead of different one. Right? It's like you could be tricked into, I think, signing your message twice instead of only once. And it's not even clear if that is a problem. But I really may not remember the details. And if you're interested, look at the Music One paper. There's an appendix that exactly specifies the attack and then the problems. But yeah, because this was sort of. Full Glorial knowledge of like you can build an IAS out of a multi signature scheme. Here's a way of doing that. And that paper is like maybe don't do just that. Because apparently if you have a simple idea and it looks obviously correct and you try to insecure and you try to really prove it secure, it can turn out that there are actually subtle problems with it. Interactive aggregate signature scheme. We now know how to do that. So we can take music one, music two. Those can be turned into an aggregate signature scheme if needed. And so that is something that could be used for, say, cross inputs aggregation, but only under the condition that all the input signers are collaborating, right? And usually that is the case. Usually there's just one party involved. But say in a coin join transaction there are multiple participants. So if such a scheme were to be deployed and you have a coin join, then of course coin joins are at the same time the strongest motivation for wanting something like cross input signature aggregation, I think. Because think about it this way, every input in a bitcoin transaction today has one signature. In sort of a music taproot world, they will in fact all have exactly one signature. That signature takes up some block space. But if we were to be using a cross input signature aggregation scheme, there would just be one signature for the whole transaction. So that's a cost savings. And it is a cost savings that you shouldn't call it a coin join. But like a pay joint where A wants to pay B and C wants to pay D, they can join these two transactions into A and C pay B and D. And interestingly, in a cross input signature aggregation world, this aggregate transaction would be smaller than the sum of the individual ones because there's only one signature rather than two. So there's this economic motivation. Now that economic motivation is small. It's partially due to the fact that Seguid introduced a discount for witnesses. So those signature are already relatively inexpensive. They also have a relatively low cost on the ecosystem, but this makes the differential between the two fairly small. So it isn't like, wow, this is going to incentivize everyone to start merging their transactions. But it is a nice thing in the sense of like it gives a potential justification like, hi, I regulator, why are you merging your transactions? Being able to say, well, it's cheaper is a much better justification than like. Makes sense. So that's interactive aggregation, it has complications. All aggregate signature schemes that we want to do across more than individual inputs, like need consensus rules to work with them. In the same sense that, like, as explained, like, in a way, there's a relation with batch validation, where in batch validation we're thinking of, well, you first run all the scripts, pretend all the signatures succeed, but keep a list of all signature checks that have to be done and now do all those signature checks at the end. In a cross input signature aggregation world, it would be exactly the same, except there is now just a single signature provided rather than multiple signatures. And even technically these schemes are very similar. So that the math that's used for both is comparable. Except of course, in one case you have multiple signatures that need to be merged together versus just one. So another reason to see why this requires a consensus change is really like what consensus supports now is no signature verification. This is really like an algorithm that takes a single public key, a single message transaction and ",timestamp:"00:18:49-00:26:42",topics:["Signature aggregation scheme","signatures"],type:"podcast",weight:13.299509345139551},{boost:0,date:1669105800,description:"Statements of newly appointed FTX CEO John Ray in the first day declaration",episode_title:"The Chopping Block on FTX/Alameda: Is Sam Bankman-Fried 'Crypto Kanye'? - Ep. 424",guests:[{name:"N/A",profile_picture:"https://pbs.twimg.com/profile_images/1478260779522658306/rm6XqGZx_400x400.jpg",ref_id:"9862384f-b99b-4777-aa71-538d41591686",twitter_handle:"unchained_pod"}],hosts:[{name:"Haseeb Qureshi",profile_picture:"https://pbs.twimg.com/profile_images/1581025415551889408/thQwG4lb_400x400.jpg",ref_id:"790e4217-dd9f-416f-b9f8-ed596937f5b5",twitter_handle:"hosseeb"},{name:" Robert Leshner",profile_picture:"https://pbs.twimg.com/profile_images/1587956987786104833/1SiKVj-s_400x400.jpg",ref_id:"08f19db5-dbb2-4ca7-886a-d4aaa9de1e0d",twitter_handle:"rleshner"},{name:" Tom Schmidt",profile_picture:"https://pbs.twimg.com/profile_images/1563232354277085189/xQL92DR4_400x400.jpg",ref_id:"1c211a97-8535-426b-9091-9d23ae0fbc11",twitter_handle:"tomhschmidt"},{name:" Tarun Chitra",profile_picture:"https://pbs.twimg.com/profile_images/1587539091444432897/Z6_nmrCB_400x400.jpg",ref_id:"8d941896-7865-49b9-9505-cf91882986bb",twitter_handle:"tarunchitra"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/7de0d293-8ae3-4362-8500-8f7300f3fe41.jpg",keyword:!0,link:"https://traffic.megaphone.fm/LSHML8128135235.mp3?updated=1669122227",node_type:"clip",pub_key:"0201497bb9e66239cdf8fe218ee3e3c7c5b1bea880787ccdd433e7af55f88b53ed",ref_id:"51ecdc95-4e1d-448b-923c-5a7e1822f131",show_title:"Unchained",text:"you guys are at a brick wall. I take it you guys are trying to hide your location. They're in the same elementary school gymnasium. That's where they go and live from right now. This is a metaphor about the state of the industry, is what it is. That is true. It's been a pretty dark and depressing couple of weeks. Normally we run the show every couple of weeks. We're doing another show on basically one week after we did our previous show. Just because the amount of news and craziness was going on with this FTX fallout has been just absolutely incredible. I'm going to go to and get into it and kind of walk through what's happened since last Monday. If you recall, last Monday, FTX had already entered the bankruptcy proceedings on that Friday night before last week. Friday before last, there was this midnight massacre when FTX got hacked. And we've learned much more about each of these things to understand exactly what took place in this quote, unquote, unauthorized access to FTX accounts. So the first and most important thing that happened was that there was an affidavit released by the new CEO, John Ray, who is basically the liquidator who liquidated Enron. And he essentially described the absolute pandemonium that was the books and records and corporate controls at FTX. And so what he stated in the filing and it's absolutely incredible, incredible filing. I recommend you read it. It's pretty light reading if you can skim through like kind of the perfunctory stuff. But there's a choice. Quote, at the beginning of this filing, he says, Never in my career have I seen such a complete failure of corporate controls and such a complete absence of trustworthy financial information has occurred here. From compromised systems integrity and faulty regulatory oversight abroad to the concentration of control in the hands of a very small group of inexperienced, unsophisticated, and potentially compromised individuals, this situation is unprecedented. So there's all these revelations that we're now getting of just how horribly managed and horribly run FTX was to having all of the private keys in one shared Google spreadsheet that apparently everybody in the core team had access to private loans being given from the company to Sam personally, as well as to buy Bahamian property for employees. Almost negative accounting, just absolutely incredible oversights and just understanding where the money was going and keeping things running. Of course, I think we alluded last time to the Mickey Mouse accounting firm that actually did their audits for 2021 and John Ray basically stated in the affidavit, look, I do not believe that these audits should be considered to be reliable because these auditors are just not serious people. The way he called them out was pretty hilarious. He's like, FTX US was audited by Armanino, a firm I have heard of. FTX International was audited by whatever the name of the firm was, a firm I've never heard of, and whose only claim to fame is to have opened the first CPA in the Metaverse. That was like, amazing. There were so many Zingers that were like, I've read some pretty staid and boring bankruptcy filings, but that one has a lot of character in it. And bankruptcy filings aren't exactly where you're like, wow, the great American novel was written, but that one actually could be. There's a lot more in there as well. So beyond the selfdealing that was taking place on the balance sheet of FTX, it was also revealed in there that Alameda was explicitly exempted from liquidations within their risk engine. So confirming what many people had suspected, that there was an enshrined special relationship between Element and FDX. And now, again, we don't know the extent of it, but at the very least they had a different status in the risk engine compared to any other marketing. All I have to say is if you followed any Djen and on trading account since 2019, you would have already known that there was tons of evidence and analysis. I don't know how investors who invested in it did not look into that because that was like pretty public knowledge. In fact, actually, Alex PAX work with you actually talked about his experience investing in or not investing in Almata in 2019. And I feel like a lot of the stuff there should have been stood out as diligence for any future investor, but somehow everyone just kind of ignored it. Well, so my assumption was that that was obviously true in the early days, right? I mean, it was explicitly part of the strategy of FTX in the early days, was that Alameda was going to be the kind of point market maker, but the idea was that they cleaned up their act over time, right? If guinea was on Odlots, the founder of Winchmemt, and he said explicitly, like, yeah, we kind of assumed that they'd clean things up. Same thing that Kyle Davis said, the reason why Three Arrows was trading on FDX, that they assumed that there were just corporate controls in place that prevented this after they went big. So it's one thing to have this as a bootstrapping mechanism when you're a small Hong Kong exchange and you're kind of trying to get something up and running. It's another thing when you're a $40 billion company. You've got all these stall words investing on the captable. I would not be surprised if there were, again, misrepresentations that were made to investors about this because almost certainly it's one of the most obvious things investors would have asked for. And it's also almost certainly the case that they did not turn over source code to investors for Diligence. You can tell from all the stuff that we're hearing now about how Diligence went that it was gun to the head. It was very like, look, you've got to commit now, you've got to put money in now. These audits and this data room is all you're getting. And if you're not in, then we're going to go to the next guy, and there's many next guys that are lined up ready to put checks ",timestamp:"00:01:11-00:06:44",topics:["FTX","John Ray"],type:"podcast",weight:6.117964948082447},{boost:0,date:1632355200,description:"What parts of ASIC miners are the most difficult to obtain?",episode_title:"The ASIC Mining Hardware Market",guests:[{name:"Vincent Zhang",profile_picture:"https://pbs.twimg.com/profile_images/1158285609196109825/fuB-e6lm_400x400.jpg",ref_id:"98e7bc98-3a3b-4ddf-9b48-5dcd78973739",twitter_handle:"Whatsminer_MBT"},{name:"Vincent Vuong",profile_picture:"https://pbs.twimg.com/profile_images/1260974518547312640/n47yvbNL_400x400.jpg",ref_id:"8390e230-e36b-4e0d-9f5d-70c6635bf3c2",twitter_handle:"BitcoinVincent"}],hosts:[{name:"Will Foxley",profile_picture:"https://pbs.twimg.com/profile_images/1580970227193376776/9oQfeExj_400x400.jpg",ref_id:"704b9e82-3e40-40b6-874c-6bb8fadafbef",twitter_handle:"wsfoxley"},{name:"Zack Voell",profile_picture:"https://pbs.twimg.com/profile_images/1595803006737448961/fFrf7VJb_400x400.jpg",ref_id:"e32c7661-c635-4089-a620-ffce509eff0e",twitter_handle:"zackvoell"},{name:"Compass Mining",profile_picture:"https://pbs.twimg.com/profile_images/1425165074373791744/f2CgInvP_400x400.jpg",ref_id:"812e5d37-47fb-4077-915f-df52e2ef84d8",twitter_handle:"compass_mining"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=qKeUCNXa4Uc",node_type:"clip",pub_key:"03c18d0c6c35333f22bc524e21a5fd1d2d9886f5d4d958dc1de95d025de5c84cfc",ref_id:"d2273e47-dfdb-4847-8690-ef58fe22d5c0",show_title:"Compass Mining",text:"Totally. So I want to move back to an earlier question or earlier thought that you had. Vincent from compass. Damien, if you could share my screen really quickly, looking at just like ASIC parts in general, interested in knowing your thoughts on what parts of an ASIC are the most difficult to come by. So I'm not sure if you guys can see my screen currently, but if you guys can't see my screen right now but let me get a link over to Damon, he can throw this up. But basically, when you look inside an ASIC, there's a million different parts, right? And all those parts are kind of hard to come by. Some parts are harder than others. And I'm wondering, from your perspective in the procurement area, what parts inside an ASIC right now are so hard to come by that it might be causing a bottleneck? Like, we talk about the hash boards a lot and like the Wafer chips, but there's other parts inside of ASIC, like the PSU even, like going inside that. There's different parts inside that that are difficult to come by. So, Vincent, from what's fine, actually, I'll start with you since you are more on the development side of these machines. But yeah, if you could scroll down maybe a little bit more. Damian, we could take a look at some of the parts inside of an ASIC. Vince, I'll give you the floor. Yeah. So I can see that. Yes. Is there any part inside an ASIC minor that is particularly tough to come by with sanding? Of course, the hashboards themselves can be difficult to procure from chip manufacturers. Is there anything else others should be aware of given that there's a lot of demand right now to fix minors as well, and people are trying to find locations where they can be fixed? Okay, so this is a good question. So for the minus from our site, follow impulse can be used for all this. The fan is uniformed for all the minus. But yes, there's different for M 30 series and M 20 series. So the fence, the difference is M 20 series is four pin fence and six pin fence. And now we are supplying the four pin fence. In terms of Om 30 series, it can be used. All the models are used the same fence, and the control card and adapter card can be uniformed. However, as you said, the hashboard cannot be mixed with each other in case only when the hashboard are being produced with the same bin of the chips. So for example, M 30s plus may be produced with bin one, bin two, when the users want to replace the mix the hashboard from different miners. So what he needs to do is he need to make sure the model of the miners are same and the bin of those hashboard are the same due to the hashboard of the different miners may be different because, for example, some of the chips need to have 14 watts power to make them work. So if we put twelve watts power supply units on those miners, on those chips, it won't work. Right now, the power models, we have two types. One type is twelve. Watts and another type is 14 watts. Okay. You cannot mix use the twelve watts power supply unit to the minus. Need 14 watts power supply unit. Okay, so this is the difference why we cannot just make it simple just because the chips we can get, they are not as beautiful as just like one. Okay, so different chips from the same wafer, okay, so they have different performance and characters. So we have to make the minus based on the research on the chips we can get. So that's why all the minors, they are different. Okay. Only the same model of the minus. So we have a different version number for people can see M 30s plus, but the M 30s plus maybe have version one. Version two. Okay, so only version one the same version of the hardware so they can mix with the hashboard. So even with the same model of the minus, still we need to check the hashboard. So whether they are from the same bin or not from same bin of the chips, so we actually have the training and the documents to present. That awesome. Vincent, same question to you. Maybe like when you're looking at an ASIC and you're looking at the hardware market, North America, what are the hardest parts to come by currently inside of ASIC? The good thing about brand new Asics is they don't break that much, I hope. But it's really hard for us and a lot of people in the secondary markets to procure hash boards, control boards, and then just the general PS use. So the PSU is a the biggest failure point, mainly for bidding units, less so on the MicroBT units, thank God. But yeah, it's hard now because for MicroBT, just like Vincent said, there are multiple types of miners, right? And so each one, I think they had to create different power supplies for each different one. And so it's harder to mix and match and find the exact power supply that you need. Especially because some used to accept 277 involved and now they don't accept that anymore. And so those are the type of equipment that's what I'm usually looking at. And for the older machines, it's much easier to zombify them. So like the S nine S, you could interchange hashboards relatively simply, you can interchange every piece of equipment. Now it's becoming a lot harder to do that and I'm not sure if that's from a manufacturer's design point of view or they just want to limit it and reduce the amount of like interchanging and swapping of parts between miners. Yeah, no, that makes sense. Maybe Compass can become a spare part center in North America so you could change some power supply unit can joke and keep it there in North America. Exactly. Right now we already have multiple services center in North America, so we have two services center in Canada and so we should have two services center right now in united States, also one in Canada. So bit forms and heart rate, they are our repair centers. And in United States, one is HM. Tech. Okay. And I do not remember the name, but they should have some small quantity of the spares available. But recently the demand of the spills become huge. So specifically for power supply unit and the control board. Yeah, and I think that's also in part due to when you guys start dealing with more institutional clients. And a lot what they're trying to do is they want to stock up on these parts and then have repair technicians on site that can quickly repair them versus once the machine goes down, they order the part. And this is just so they can minimize the amount of downtime, because everybody wants to take advantage of this period of extremely high probability. And having even one machine down is a lot for even a couple of days, right? Yeah, for sure. Definitely. We can't make predictions necessarily too far in the future, but it's one of the most profitable times to be mining at all. That makes perfect sense. We know that miners are boarding Asics themselves, not only just spare parts, but it makes perfect sense to see the pattern repeat with spare parts. ",timestamp:"00:36:03-00:45:52",topics:["ASIC Miner Parts"],type:"youtube",weight:4.625530958293724},{boost:0,date:1624507200,description:"How [[Ali]] got into [[Bitcoin]]",episode_title:"Bitcoin Fixes This 48 Small Business with Ali",guests:[{name:"Ali",profile_picture:"",ref_id:"1169edf2-a89f-4d89-94a4-1be1a7b9aef0",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2536a974-d668-4ac2-8613-0b37aa0ca08c.jpg",keyword:!0,link:"https://anchor.fm/s/2a4e8034/podcast/play/36003846/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-5-23%2F969a4306-e9eb-95c5-0e15-42d37c0e61e8.mp3",node_type:"clip",pub_key:"",ref_id:"6565a1d2-53e0-48a8-bd22-9ea1080c4364",show_title:"Bitcoin Fixes This",text:"That's awesome. So how did you get into sort of Bitcoin in the first place? It didn't come out of nowhere. And how did you start putting some of your corporate treasures into Bitcoin? What's the story behind that? Yeah, so it started in 2020. We were a class of 2020. We're pretty new to this space. And after March of 2020, I had this feeling that there's something really messed up with the financial situation and that I needed to find a solution for my personal wealth. So I kind of went on this quest in search of a solution. And then I bumped into the Number Zero and Bitcoin by Robert Breedlove. And I bumped into Preston Pitch and say Fiden's book. And so I kept reading and learning. The more I learned, the more I buy Bitcoin. And then I bumped into Jeff Booth's book. I said, Tomorrow devoured that in like three days, and then bought more Bitcoin. And I just kept buying it more personally. And then I kept dragging my partners in with me and I felt like I found a solution and it grew from this cool investment idea to the best investment idea to a way of life where I need to incorporate my business into it, I need to incorporate my kids into it, I need to incorporate my family, everyone. Right? So it kind of consumed me personally. And then my partners. And then we were sitting and talking for two times, I believe, about putting the companies treasury into Bitcoin, but we didn't really pull the trigger on it. And as soon as we heard the MicroStrategy that first time buy that they ever did, it was like 250,000,000. I believe that's when it was like, that's what pushed us over the cliff. And we said, you know what? This is a race of accumulation. Everybody is going to want to own Bitcoin. Every Corporation is going to want to buy it eventually will. So we got to go all in and we did that. And then here we are. And you still haven't had to sell any Bitcoin, which is rather remarkable. How have you managed to do that? Well, good question, actually, Jimmy, because a lot of people are asking me about how do we take Bitcoin payments and all that. And the reason why we never have to sell any Bitcoin is because we never used it as a payment method. We just used it as a savings technology. So we operate 100% of Fiat. We pay our employees, our suppliers, our rent or electricity, and then whatever is left, whatever profits left, we just take that and we just convert it into Bitcoin. And that profit we never had to sell to this day to expand. The way we're able to do any of our expansions is we just finance it and then we just put it as an expense, we put those payments as an expense, and that's how we never sold any Bitcoin. It's a simple strategy, but not a lot of people realize that they can do it with their business, but it's very effective. It's very helpful for your business. I think any business right now is going to struggle with inflation and with monopolies of their industries. And you need some sort of edge. You need to have a balance sheet strategy. Otherwise you're just going to fall behind year after year and you're going to wake up five years down the road with your money being worthless. And you're going to say, Man, I wish I figured out this Bitcoin thing earlier and that's why we're promoting it here. We love it when small businesses get into Bitcoin. Yes, of course. It's nice when you hear the big Corporation announce their billion dollar buys or whatever. But for me, I get really pumped up when a small business DMs me and asks me about, hey, we're going to do the same thing, what you guys are doing, and we want to know how to do this or how to do that. And this is what keeps us going. This is why we promote human freedom and this is what gets us ",timestamp:"00:14:04-00:18:56",topics:["ali","bitcoin","bitcoin","bitcoin"],type:"podcast",weight:4.618438363076077},{boost:0,date:1610901076,description:"Moving away from the principles of America which is small government",episode_title:"Quoth the Raven #237 - Jake Ducey",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/710ac70a-11fc-40ec-a2a2-01b92fb8015e.jpg",keyword:!0,link:"https://mcdn.podbean.com/mf/web/6kaqr2/ducey.mp3",node_type:"clip",pub_key:"",ref_id:"7b4a8ab4-5254-4195-8546-183e6a078a7a",show_title:"Quoth the Raven",text:"I guess it's true. We're moving away from the principles of what America was about, which was small government, and we're electing psychopaths, and we're giving them free rein to bring as many psychopaths in as they want. And we have such a docile population that nobody's critical thinking, nobody's looking at the ramifications of this, and nobody's looking at all. They just do whatever they say. I hadn't thought of it like that, but I mean, it's hard to argue against that point. But we live in a representative republic, so these are the representatives we've chosen to represent us. And, I mean, we're reaping what we so to some degree. I think what you just said makes a lot of sense, though, because I said the exact same thing yesterday in a conversation, which is people are just doing what they're told. That's it. There's no pushback. There's no questions. There's no nothing. If Gavin Newsom told you to do your laundry on Tuesdays only do you do it? Most people would do it. Yeah, right. And he said the reason was because of global warming. And so only on Tuesdays. Yeah, I mean, if he said that, there would be scores of people lined up thinking like, all right, well, there must have been some committee, some task force, some focus group that got together to arrive at that conclusion. And the truth is, as you know and I know, they're really just kind of pulling things out of the sky. Yes. And it's not just with political rule, but that manifests itself in our world. I mean, most people have terrible health, terrible finances, and they, in general, have a very subpar life. And I think it's because we've been conditioned in our society to not think for ourselves. And I think, personally, that it's a long standing social programming that's been designed to ultimately get total control over the population. Isn't it weird when you kind of step back I was talking to somebody the other day about preventative medicine and two different types of medicine. One, where you are trying to address things before they occur, and the other one where traditional medicine where something goes wrong, and then you try to deal with it then. And when you step back and you look at the way that we live, not just we talk about macro all the time, which is this incessant and constant need to be spending and that that is the virtue of the economy, supposedly, as these people tell us. But also, you look at things like you're talking about you look at things like mental health, like physical health, exercise, diet. We've just been conditioned to make the worst possible choices when it comes to all of those things. Yeah, we have. I mean, I'm more sinister. I think it's all on purpose, and I think that there's very evil people in the world that want total control over the world. But yeah, I mean, my rule of thumb started when I was 19 in college, you know, when I started everything I was doing, and I raised my hand in economics class and asked my teacher why we couldn't audit the Federal Reserve as a freshman in college. It was 2011, I think maybe I think 2011. And he told me to shut up and memorize the textbook. So I dropped out. And my Mo has always been, never believe anything the government tells you, and basically, never do anything anyone else tells you, too. People don't tell you to start a business or any of that. And that's kind of always been my Mo. I don't advise it for everyone. It's worked out pretty good for me. Yeah, well, you're letting the market decide what your value is. You're not letting an econ professor put a dollar amount on it. You're not letting a degree put a dollar amount on it. Right? You went out and you started doing your own thing. And what the hell is your own thing, by the way? Because one of the things I wanted to talk to you about, we didn't talk about on your podcast. You have another podcast channel called I love Prosperity? And that's the one where me and you were chatting, but your main YouTube account is just called Jake Dosey. You got 600,000 subscribers. What the fuck is going on on this channel that you have 600,000 subscribers? What is Jake do see up to? ",timestamp:"00:14:09-00:18:47",topics:["America","Small government"],type:"podcast",weight:4.613381505012512},{boost:0,date:1590692100,description:"Concrete ways for companies to tap into blockchains",episode_title:"Episode 5: The Future of Corporations in the Age of Blockchains",guests:[{name:"Jason Potts",profile_picture:"https://pbs.twimg.com/profile_images/1444448536947396612/MWoMpiut_400x400.jpg",ref_id:"83de5ad8-399d-4d5e-beb6-036bc73f2e60",twitter_handle:"profjasonpotts"},{name:"Aaron Wright",profile_picture:"https://pbs.twimg.com/profile_images/1467700275209195530/MuLAUZ7l_400x400.jpg",ref_id:"926d7ff6-0327-49a0-811e-3f2e2db2fc5c",twitter_handle:"awrigh01"},{name:"Luis Cuende",profile_picture:"https://pbs.twimg.com/profile_images/1590314672640630784/SniHt1kT_400x400.jpg",ref_id:"bf8c4b16-8bdb-4249-8e34-9c4458808890",twitter_handle:"licuende"}],hosts:[{name:"Jeremy Allaire",profile_picture:"https://pbs.twimg.com/profile_images/1501707897641779208/cpB2Dk9__400x400.jpg",ref_id:"df622380-4129-458c-8e10-8088f172f002",twitter_handle:"jerallaire"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99d17d22-4448-4267-9065-f55b341f43d2.jpg",keyword:!0,link:"https://mcdn.podbean.com/mf/web/2jwy9x/secure_money-movement_episode-5.mp3",node_type:"clip",pub_key:"",ref_id:"4b80af11-a773-43bb-8ada-b5771e2cf481",show_title:"The Money Movement",text:"last item, which is for projects in the world today or companies in the world today, what are some concrete ways that they could begin tapping into this and using it? And if you want to share an example too, that'd be awesome. Yeah, definitely. I think murder like companies it's communities, I think I mean, companies can also use DAOs. Like we ourselves use dio. But communities are super interesting. For example, there's this virtual world in VR called the Central Anti, owned by its users, and they have this do that they use. So users absolutely govern everything in the platform. So it's extremely helpful. One thing that I've been also involved with is called Help out. And the idea is to allow for people to create, like, very small, localized health clubs or volunteers and supervisors who are able to donate funds and also receive donations all over the Internet and then give those donations to people in need. So the idea is that you don't need to wait for this big, kind of slow moving nonprofits to actually take action. You can make a thousand, like, decentralized organizations bloom that actually tackle these problems in a very small scale. So, yeah, I think online communities are wonderful, and I think we're moving towards a world where there's going to be more and more communities. With the employment we have right now and the need for meaning as a civilization, I think communities are the way to go. I love it. It's so exciting. Luis, really appreciate you joining us to share your vision and share where you guys are at. And we'll be tracking it really closely and wish you really continued success and we'll talk really soon. Louise, thank you so much. Thank you. ",timestamp:"00:25:49-00:27:22",topics:["Help squads","Luis Cuende","nonprofits"],type:"podcast",weight:4.587138891220093},{boost:0,date:1519171200,description:"The anti-vaccination movement in the 19th century",episode_title:"PFP063 | Anthony Daniels (Theodore Dalrymple) | “Public Health” as a Lever for Tyranny (PFS 2010)",guests:[],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/624262ef-b30f-4114-8061-e310187e6bb4.jpg",keyword:!0,link:"https://www.youtube.com/watch?v=-KZBCni4Mik",node_type:"clip",pub_key:"02574d6e8e787372184b6f17c40d6c6fe1777db9015801f95dfd24692784d767cd",ref_id:"04e7ce48-3c54-41ef-a7d5-59f923b85354",show_title:"Property and Freedom Society",text:"another very important example struggle over smallpox vaccination in England and Wales during the 19th century. In the first two or three decades of the 20th century, it probably come as a surprise to you to know that the anti vaccination movement was one of the strongest and most durable social movements of the 19th century, and it published mass circulation journals continuously for 50 or 60 years. In response to the British government's attempt in the 1850s to make the vaccination of children compulsory and instituted fines for those parents who did not have their children vaccinated. That compulsion and vaccination in the United States is still quite common. The arguments of antivaccinators were composed of two main strands. I have quite a large collection of anti vaccination literature. The first of these was that vaccination was, as a matter of empirical fact, either useless or harmful, responsible for spreading such diseases as syphilis and even leprosy, and also that it was ineffective against small bonds. Well, this is not a strand that I'm interested in here. There was a second strand according to which, even if compulsory retination were effective against smallpox, it would still not be justified because it would make the state, and not the parents of children the arbiter as to how they the children should be best looked after, and that this was the beginning of a slippery slope. Interestingly, this was a movement that was predominantly working class. Working class was asking for protection from the state, not protection of the state. And I'll quote just one ditty from here the flavor of England state. Men of England, claim your freedom, make the noble stand. Sweep the unjust law of tyrants from your native land. Strike the blows of vaccination, claim your liberty. Sound the echo through the nation. Britains shall be free. Well, in the event something like a compromise was reached in 1898, according to which parents could opt out of having their children vaccinated if they could persuade a magistrate that they were conscientious objectors to vaccination. The model for conscientious vaccination that conscientious objection during the first world war. In any case, as it happened, smallpox declined as a serious health threat in western countries for a variety of reasons. Only one of them vaccination and the passion they went out of the promises. Well, immunization against contagious disease is an interesting case because for no such diseases, somewhere between 80 and 90% of the population must be immune in order for there to develop what is called herd immunity. That is to say that the nonminis are protected against infection because an epidemic cannot take hold in the population. Well, the success of immunization campaign is in eradicating or controlling various contagious disease, as in my view encouraged the epidemiologists and the public health doctors and governments ever since. And of course the discovery of the damaging effect of smoking autoimcountry. And they hope to repeat these trials for the common diseases which are currently great significance both in terms of mobility and economically in western populations. Diseases such as hypertension, coronary artery disease, stroke, type two diabetes, osteoporosis and various forms of cancer which seem to be related to lifestyle. In most such cases, of course, causation is rather less tearcut or well established than it was for infectious diseases or even the connection between smoking and various kinds of disease. But nevertheless, measures of varying degrees of coerciveness are proposed to reduce the burdens of these conditions from the contents of food to denial of medical treatment to those whose lifestyle has brought on their own conditions. Well, the lockers stand out. Public health authorities to interfere in the lives of individuals of the general public derives in large part from the fact that while the risks are taken by the individuals, the costs of consequent illness, when it develops, are borne by others in the form of idle insurance or of course in Britain, by the state medical system. In other words, I smoke, but you pay for the treatment of my cancer. And the hope of many people on Britain, I think, is that eventually they'll have an extremely expensive procedure which will more than pay back the amount of taxes that they have paid. But of course, it's not possible for everyone to get more out of the system. Nevertheless, that is the hope. Now, it's again obvious that people who pay the taxation cannot be the administrators or controllers of it and a class of bureaucrats charged with reducing costs or sometimes making profits charged with the administration. And incidentally, they are likely to transfer as much as possible of the money raised by taxation or insurance into their own personal funds. And this is not a negligible thing. ",timestamp:"00:17:44-00:24:10",topics:["anti-vaccination movement","Small pox","vaccination"],type:"youtube",weight:4.582683563232422},{boost:0,date:1674635400,description:"The large percentage of vested Solana in FTX bankruptcy",episode_title:"The Chopping Block: Here's Why Gemini Could End Up Filing for Bankruptcy - Ep. 447",guests:[],hosts:[{name:"Haseeb Qureshi",profile_picture:"https://pbs.twimg.com/profile_images/1581025415551889408/thQwG4lb_400x400.jpg",ref_id:"790e4217-dd9f-416f-b9f8-ed596937f5b5",twitter_handle:"hosseeb"},{name:"Robert Leshner",profile_picture:"https://pbs.twimg.com/profile_images/1587956987786104833/1SiKVj-s_400x400.jpg",ref_id:"ebaa2166-7982-423d-9f43-add89e7d47f9",twitter_handle:"rleshner"},{name:"Tom Schmidt",profile_picture:"https://pbs.twimg.com/profile_images/1563232354277085189/xQL92DR4_400x400.jpg",ref_id:"bc9d3bfd-36b0-4cbc-a491-9370decf4c99",twitter_handle:"tomhschmidt"},{name:"Tarun Chitra",profile_picture:"https://pbs.twimg.com/profile_images/1587539091444432897/Z6_nmrCB_400x400.jpg",ref_id:"dfad4b23-92ff-4aa1-9aa4-abc1d54cd6d3",twitter_handle:"tarunchitra"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/7de0d293-8ae3-4362-8500-8f7300f3fe41.jpg",keyword:!0,link:"https://traffic.megaphone.fm/LSHML8027241616.mp3?updated=1674608143",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"ecaaa46f-b7ad-49b7-aae3-402befc21ab6",show_title:"Unchained",text:"who come in the door. I agree with this. I think what is interesting is how many people are clamoring for FTX to be restarted. Like even after FTX declared bankruptcy, it's sort of mildly related where people feel like there is some gap in the market because they're like, look, I loved the FTX, UX, I loved the cross margining, and yet now it's gone and nothing is really replacing it. And now even John J. Ray was discussing this week the possibility of restarting FTX. So it's like, I agree with respect to like, hey, this is sort of a small moment in time market for these bankruptcy claims, but there is a question of like, who's going to sort of come fill that gap or our binance and the other big exchange is going to develop their own sort of similar products. By the way, I just looked it up. So the FTX Almita combined had 50.5 million sole, which is over a billion now, and it completely vests in 2028. So I think the vast majority of it is actually because they did those crazy seven year vests even with their soul. What? Yes, there's a lot of ecosystem sales. Those were seven year vests, I guess. So you're talking about serum. I'm not talking about salana. No, I'm talking about salana. That's like the crazy part. They agreed to a longer vest than the default. What? That's insane. That's so insane crazy. Yeah, there's a Salana Foundation blog post talking about the 50.5 million so 54.5 million soul. You could definitely bootstrap a prediction market on betting on how that gets distributed. Well, I think that's enough. That's enough money. But it also means you need, like, a trustee for seven years to, like, manage the liquidation of this soul, you. Know, Make Madoff was much longer than that, so it's not that crazy. Yeah, I do think the whole wind down process has dust that they just continue to collect and report on for years and years and years. Yeah, it's going to be painful. Well, with respect to FTX, we did get a story that the liquidators identified 5.5 billion in liquid assets for the FTX total estate. We still don't have a good number on the liabilities, so we don't know what that represents in terms of a percentage recovery, but it's at least better than some people were originally ",timestamp:"00:40:52-00:43:17",topics:["Solana","FTX"],type:"podcast",weight:28.556055558933764},{boost:0,date:1632628800,description:"[[Bitcoin]] is a Money that Reflects Human Time Effort and Efficiency is Tied to [[Energy]]",episode_title:"WHY ARE WE BULLISH Denver Bitcoin CryptoMags Lord Fusitua Jim Crider ep203",guests:[{name:"Jim Crider",profile_picture:"",ref_id:"acb937b5-97e9-4881-a45e-0e9511382019",twitter_handle:""},{name:"Lord Fusitua",profile_picture:"https://pbs.twimg.com/profile_images/1511890587586560000/xGb_Dq_D_400x400.jpg",ref_id:"45559c92-d4f0-42a5-8dc4-a8cce65e95a1",twitter_handle:"LordFusitua"},{name:"CryptoMags",profile_picture:"",ref_id:"79cd9104-fa2c-4996-a179-8acb75642acd",twitter_handle:""},{name:"Denver Bitcoin",profile_picture:"",ref_id:"5ab53f2f-797f-4e1b-90d8-f2ca90e88af4",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/638c47da-8592-4d7b-aa1a-20e28fa0499f.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/40846589/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-8-25%2F381320f0-9d1f-9ee7-893f-57af427aca69.mp3",node_type:"clip",pub_key:"",ref_id:"1ac39cf4-fc11-47e7-8972-113c674860b2",show_title:"BTC Sessions",text:"go back three years, 2018. I remember watching Steve doing presentations in Edmonton like 3 hours north of where I am, and it was still small and it was like it was a struggle to get interest still. Oh, no, they laughed in the industry was really laughing at this. Yeah, it was crazy. And to see the inevitable success of what him and you have been talking about over these past years is fantastic. We have a money that actually reflects human time, effort and efficiency. Well, of course it's going to be tied to energy. Of course it was going to. And the people that made those connections early are the ones that I think will be incredibly successful. And apparently with my Freudian sleep and slip. Sexy. Well, successful. Well, no, you're right. But you make a good point. Point. It's one of those things where I think gold for the age of time was a representation because of its proof of work. Gold is scarce to a very high degree just because of its natural occurrence in the Earth's crust. And it's difficult to find and it's certainly difficult to refine and Polish and get into any kind of a jewelry and such. There's always been proof of work throughout the history. And there's a recent documentary Mags was mentioned in it, and I was as well featured in a recent documentary, what's it called? This machine Greens, I think. Yeah. Definitely check out that documentary, if anybody that's in the audience hasn't seen it yet, in my opinion, there's like a little bit of kind of green washing in there a Bitcoin. And I don't think Bitcoin we don't need to greenwash it. It's great. Bitcoin is great as it is, but it really into the history of how energy interacts with money. And obviously how Bitcoin is what I would call the most precise, most accurate representation of proof of work, the most accurate representation of energy input, because it truly comes down to the kilowatt hour. Right. What it takes to produce a kilowatt hour like Henry Ford predicted. Right. We have now a decentralized currency that is tied to kilowatt hours. I love it. I don't know if you were going to add in there, but feel free to if you had any thoughts on what Adam was saying, many thoughts. Which one would you like now? All of them just throw it at us. Mag. Well, ",timestamp:"00:33:52-00:36:48",topics:["bitcoin","energy"],type:"podcast",weight:4.565201282639802},{boost:0,date:1669389148,description:"Podcasting 2.0 would incentivize value signal instead of attention signal",episode_title:"BR011 - Podcasting 2.0 & Value-4-Value Experts Roundtable ft. Adam Curry, Oscar Merry, Gigi & Odell",guests:[{name:"Oscar Merry",profile_picture:"https://pbs.twimg.com/profile_images/1385168885071089664/3VHhMawv_400x400.jpg",ref_id:"485b9165-ae61-4698-8244-16ae10f4ccbc",twitter_handle:"MerryOscar"},{name:"Gigi",profile_picture:"https://pbs.twimg.com/profile_images/1566370176446119943/UeuACt-4_400x400.jpg",ref_id:"9d8917ab-730b-4b1a-8321-49fb00907644",twitter_handle:"dergigi"},{name:"Matt Odell",profile_picture:"https://pbs.twimg.com/profile_images/1421584695746338819/Z_7ZfAeP_400x400.jpg",ref_id:"4f2825ff-3b88-4595-84d4-36e81544b79a",twitter_handle:"ODELL"},{name:"Adam Curry",profile_picture:"https://pbs.twimg.com/profile_images/1401922551161442307/XjN2DdFD_400x400.jpg",ref_id:"c304fffc-7fe0-49a1-86b8-d3278f5c89dc",twitter_handle:"adamcurry"}],hosts:[{name:"NVK",profile_picture:"https://pbs.twimg.com/profile_images/608402052247658497/ENDv0BNd_400x400.png",ref_id:"d754e29b-2d3e-4280-8d72-f41d2a465a78",twitter_handle:"Coinkite"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/cd6b8d64-bd52-4f1e-86b3-ca8ba2eb169f.jpg",keyword:!0,link:"https://anchor.fm/s/9500fad8/podcast/play/61194167/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2022-10-25%252F7ed25489-c7da-b1a0-f01e-659dc80098be.mp3",node_type:"clip",pub_key:"037f7331a5bef6c6f880246747befcc3767f3bb9730bc5e6f7c3770f4184ed0bff",ref_id:"eba87a50-4628-4106-94ae-5aee0e5f3584",show_title:"Bitcoin.Review",text:"Think there's another point here which is often missed in the discussion, especially as the volumes of SATS that are being streamed are still quite low. It's definitely still early, I think. And it goes back to what Gigi and Adam were both saying about the incentives here and right now, if you're a content creator, the thing that you're incentivized to do is maximize your audience attention and that has terrible negative incentives for media consumption on the internet. It means that as a creator, you will say shocking things just to pull people's attention in. You will frame your content around a clickbait headline and also you will create content when there doesn't necessarily need to be content because you're stuck in the YouTube algorithm and you need to make a video every week just to kind of get paid because you get paid for every minute of attention that your audience give you. That is really messed up. And what we can actually do with value for value and streaming stats is flip the incentives so that it's based on a value signal rather than an attention signal. And that is a fundamentally different thing. And so especially when it's so early, especially when the onboarding for your mainstream audience who don't care about bitcoin is still quite challenging. Yes, the volumes are going to be small, but in the long term what this is going to allow is content creators to actually focus on just one thing, which is the value that they are providing to their audience, which is an amazing shift. If you look at every single big tech platform, it's all driven by that attention signal and look at all the problems we have. If we can change it to a value signal, we can create a much better internet. And it's going to take time to get there. But ultimately every now and again on YouTube is a great example because everybody knows it. Every now and again on YouTube you will find a hidden gem that provides you with so much value. And the reason that you don't discover those more often is because instead the YouTube algorithm will serve you up with a clickbait headline of some video that was created yesterday about the latest shocking news event and you don't get the. News to the 10 minutes in. Exactly. So this is so much bigger than just replacing the advertising income for creators on a weekly basis. So Oscar, it's fixing ",timestamp:"00:29:07-00:31:26",topics:["Podcasting 2.0"],type:"podcast",weight:6.314446555932114},{boost:0,date:1629172800,description:"People earning money by working for Bitcoin",episode_title:"WHY ARE WE BULLISH Tomer Walton Obi Gigi ep194",guests:[{name:"Walton",profile_picture:"https://pbs.twimg.com/profile_images/1579938510538153994/EYbT5PEr_400x400.jpg",ref_id:"ec8c8747-a001-42ba-ae87-bfdef751b781",twitter_handle:"beeforbacon1"},{name:"Gigi",profile_picture:"https://pbs.twimg.com/profile_images/1566370176446119943/UeuACt-4_400x400.jpg",ref_id:"9d8917ab-730b-4b1a-8321-49fb00907644",twitter_handle:"dergigi"},{name:"Obi",profile_picture:"",ref_id:"f5ce3cb3-d943-483c-a619-c60936181c0a",twitter_handle:""},{name:"Tomer",profile_picture:"",ref_id:"9dfdecd6-c851-4766-ac32-4c1818ef5a9a",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/38875088/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2021-7-16%2F212938750-44100-2-a8edaa1664f71.m4a",node_type:"clip",pub_key:"",ref_id:"315fbf52-eab1-4f1b-b3c7-e4e418498664",show_title:"BTC Sessions",text:"Obi, any thoughts on the creativity of Bitcoinners? Yeah, it was beautiful the way you recited it. Walton kind of doing this litany or this inventory of the different types of creativity that the community keeps growing into. And it is like a branching tree which keeps branching and branching and branching and welcoming more and more people with more and more skills. It's geographically decentralized, totally society. New society. Yeah, it's a new society. That all you have to do to enter the society. You can be anywhere in the world is to be honest and put in work, and it's honest work. This is the moral code of Bitcoin. Good, honest work and more and more people. And I think we're kind of at the stage because I've wanted to work in Bitcoin since I first heard about it and fell down the rabbit hole and the only opportunities were to work at exchanges. It also sold shit coins and I felt I wouldn't do it because I'd be working against Bitcoin if I was doing that. And now things have gotten to the point where I can say I'm going to write and there's going to be somebody who might pay me some time for writing. But the work is good, honest work and I appreciate it. And I get together at Bitcoin Meetups and more and more of the people are finding work opportunities at companies that do something that support Bitcoin and Bitcoin only some are Fiat miners, right? They run a restaurant, they do something else, they collect Fiat and they turn it into Bitcoin, which is perfectly moral as well. But it's also really exciting to see. I won't list off all the companies, but I was at a small Bitcoin meetup the other day and there were people there who are working at Casa, this was in Canada, so there were people there working at Bull, Bitcoin at hotel, hotel at Lydon. And it was just really nice to see that people are finding a way to work within the ecosystem, providing more and more value. And so this is a frontier that's being developed and there's more and more stores, if you will, in this new frontier. So I think it really is glorious and we watch it grow exponentially. Right. The fact that I'm actually getting together with people and everybody is getting an opportunity to earn money by working for Bitcoin is really profound. Obi, go ",timestamp:"01:14:25-01:16:48",topics:[],type:"podcast",weight:4.565201282516726},{boost:0,date:1642222800,description:"[[Sweden]] Banks Blocks Money Transfers Outside of [[EU]]",episode_title:"WHY ARE WE BULLISH Duczko Thomas Jestopher Morgen Rochard Rick Vanderhulst ep229",guests:[{name:"Rick Vanderhulst",profile_picture:"",ref_id:"4c184180-b77d-4e25-ac7c-4d2e86cdde85",twitter_handle:""},{name:"Morgen Rochard",profile_picture:"https://pbs.twimg.com/profile_images/1362921386256211972/IpIK8cwI_400x400.jpg",ref_id:"c29b26e9-82c8-4c0a-8130-aa083d33ec48",twitter_handle:"MorgenRochard"},{name:"Thomas Jestopher",profile_picture:"https://pbs.twimg.com/profile_images/1607521016368201730/6GSHGkGX_400x400.jpg",ref_id:"50388de7-3ec7-401b-8349-5ee1d8a004c0",twitter_handle:"Jestopher_BTC"},{name:"Duczko",profile_picture:"",ref_id:"2b6de75e-0cf5-4fec-b458-d1b8ee3f86df",twitter_handle:""}],hosts:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b87feb17-6926-4295-b2c2-d1c2e9d49ca8.jpg",keyword:!0,link:"https://anchor.fm/s/11e95d20/podcast/play/46171740/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2022-0-15%2F68b825e2-6752-7447-34ca-b27f0ea69256.mp3",node_type:"clip",pub_key:"",ref_id:"ef84d742-b332-4b77-8242-948a3737f91f",show_title:"BTC Sessions",text:"I predict Sweden is going to be the first country in the world after China to adopt a CBDC because we have, like, over 99% of all transactions are digital. Over 98% of all the population have a digital ID. And we are used to total control and we like it. So what's happening in Sweden right now is basically the banks have said you can't transfer money out of the EU. Several banks. Recently, I had an old investor of mine called me and like, Lucas, you live in Vietnam. I need to make a deposit to Vietnamese company. Okay. Or to Vietnamese account. I'm like, So why don't you do that yourself? He's like, Because you obviously have the money. He's like, yeah, but all the questions I'm getting from the bank, it's so freaky. I just don't want to deal with it. Yes, Bitcoin peace of mind in international transactions. Even the people that have the money just really don't want to deal with the banks at this point because it's so creepy. At one point, my cousin, who lives in Brussels, was transferring money to Sweden. Eventually, after two weeks of DD, he sent an email directly to the bank and like, do you want, do you want make a blood sample or P sample? Check if my urine is clean. What's up? It becomes invasive. It's just such a pain in the ass. I don't know if any of you recently have had to actually just go into a bank. Oh, my God. Oh, my God. Just standing in that lineup and you're like, this is still how people do things. Like, people still haven't experienced this. Oh, you need some money on the other side of the globe. Cool. It's there. Now that's as simple as it is. It's insane. And then just stand in line and have these long transfer times. And I don't know how it is in the US. I'm not familiar with exactly how ACH works and how quick it is. At least in Canada, we've got e transfers, which are pretty fast. So the small amount of dollars that I do get paid, I typically send over to like, a sats back Visa card so I can then make purchases. But when I want to fund that, it's like, I send it and it lands in like a minute. So that's nice. But that's local within Canada. What's ACH ",timestamp:"00:57:19-01:00:16",topics:["sweden","eu","sweden"],type:"podcast",weight:4.565201343093071},{boost:0,date:1673187067,description:"How Nuclear Bitcoiner got into Bitcoin and Bitcoin mining?",episode_title:"@NuclearBitcoinr - Mining #bitcoin With Small Modular Nuclear Reactors. #313",guests:[{name:"Nuclear Bitcoiner",profile_picture:"https://pbs.twimg.com/profile_images/1443185278525579278/_Yl1nao1_400x400.jpg",ref_id:"60f5891f-0864-4ed4-987a-81da4768b3ba",twitter_handle:"nuclearbitcoinr"}],hosts:[{name:"Daniel Prince",profile_picture:"https://pbs.twimg.com/profile_images/1589940494364205056/rnHs5gI3_400x400.jpg",ref_id:"df2d4d35-3e96-44ed-b1cc-cb8a714bbe30",twitter_handle:"PrinceySOV"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e1eca67b-d372-4031-bf1f-8f0ff7fe6092.jpg",keyword:!0,link:"https://anchor.fm/s/1346f9e8/podcast/play/63208295/https%253A%252F%252Fd3ctxlq1ktw2nl.cloudfront.net%252Fstaging%252F2023-0-8%252F4a07b2fe-eb1d-2c82-677e-8f2808a09536.mp3",node_type:"clip",pub_key:"02545c14cbb18a61f20dd45f5e3dcbd9acae3de282369501040adce32a75311309",ref_id:"50e012ee-2ed3-4fbe-9703-2b4b2695f5ef",show_title:`Once Bitten! @@ -3715,18 +3715,7 @@ A Bitcoin Podcast. `},{children:["1ba72c1d-ff22-4572-ad24-8171bfce9de3","5efbc2c3-e67a-4b16-9c9d-285bdd37e906"],episode_title:"Bitcoin Charlotte Book Club - Sovereign Individual Ch 1-7",guests:[{name:"Bolt",profile_picture:"https://pbs.twimg.com/profile_images/1352721439879786496/wfevZ8bG_400x400.jpg",ref_id:"b165e497-f255-4ce5-9762-30c90dcf776d",twitter_handle:"Bitcoin_CLT"},{name:"Victor",profile_picture:"https://pbs.twimg.com/profile_images/1519726025013350400/GHxSzgA3_400x400.jpg",ref_id:"d91fff8d-e4c6-4aeb-9f32-021e4a4ff9a6",twitter_handle:"victorwong"},{name:"George",profile_picture:"https://pbs.twimg.com/profile_images/1173474608856608768/vEBnPUdm_400x400.jpg",ref_id:"5946bdf6-8feb-43aa-b2ca-46b2944b0572",twitter_handle:"GeorgeNotFound"},{name:"Mark",profile_picture:"https://pbs.twimg.com/profile_images/1511102924310544387/j6E29xq6_400x400.jpg",ref_id:"c8cd0c95-c105-41c4-8fae-9dbfa76d84f2",twitter_handle:"markiplier"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/fe6bdbce-e91d-43cf-ab33-0e98bffabecc.jpg",node_type:"episode",ref_id:"9dcca755-0a20-45e5-8e4d-dfe2800b9c6f",show_title:"Bitcoin Charlotte"},{children:["821f7b5c-c6ad-422b-b4e1-ed34f915e4af"],episode_title:"TABConf Mixtape Vol 2: Sound Bites from TABConf",guests:[{name:"Michael",profile_picture:"https://pbs.twimg.com/profile_images/1558687629599657990/vf-bU14b_400x400.jpg",ref_id:"c7b4faa1-db77-4459-b03f-0e41e15efae7",twitter_handle:"MichaelHawaii"},{name:"Ben",profile_picture:"https://pbs.twimg.com/profile_images/1580596905721171969/0NnLeJWA_400x400.jpg",ref_id:"da0132b9-0d19-43e6-bc1a-9c7818c79ba4",twitter_handle:"benshapiro"},{name:"brandon",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"8a27da7a-c05c-44da-8247-3c5f68bc3164",twitter_handle:"ThrillerBitcoin"},{name:"shane",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"2e5ce678-7d04-4a48-8bd1-281329ea9424",twitter_handle:"ThrillerBitcoin"},{name:"exfrog",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"d0dc102c-404e-4753-9290-9a3fe27fe2ee",twitter_handle:"ThrillerBitcoin"},{name:"josh",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"34eb29e3-da86-485f-b20a-059f7d41f6ad",twitter_handle:"ThrillerBitcoin"},{name:"autumn",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"3224f2ec-3e77-485f-88b8-6930e19f8ac6",twitter_handle:"ThrillerBitcoin"},{name:"buck",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"00a55ec0-9b1a-482a-893a-345d350a33a0",twitter_handle:"ThrillerBitcoin"},{name:"stephen",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"9dc56711-eacc-4691-821e-fe2a26855ea9",twitter_handle:"ThrillerBitcoin"},{name:"hodl",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"b012eda0-b78c-46e7-ab46-6a7139584fc7",twitter_handle:"ThrillerBitcoin"},{name:"evan",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"9a8418e9-8976-425c-95ce-ed2fe307e380",twitter_handle:"ThrillerBitcoin"},{name:"muzz",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"444b8330-caa1-4bcf-8144-7d9110ae2242",twitter_handle:"ThrillerBitcoin"},{name:"thomas",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"e2140e58-314d-4425-bc97-20f52f951866",twitter_handle:"ThrillerBitcoin"},{name:"justin",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"2ce04090-b9b1-4e84-a87f-9c9dc9ececec",twitter_handle:"ThrillerBitcoin"},{name:"stakamoto",profile_picture:"https://pbs.twimg.com/profile_images/1575598727812812803/4FkPb0vt_400x400.jpg",ref_id:"8b249d9b-8521-4e0e-bf24-2d8b8721d26b",twitter_handle:"ThrillerBitcoin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4240c90e-0086-4ece-bfe5-84a282c5059e.jpg",node_type:"episode",ref_id:"b8289cbb-ec69-49a8-b6ab-c1fd808acc09",show_title:"Thriller Bitcoin"},{children:["c13cad10-b242-4812-ad19-3bce525dfeb0"],episode_title:"Pieter Wuille and Tim Ruffing - Nesting, ROAST, Half-Aggregation, Adaptor Signatures (part 2)",guests:[{name:"Tim Ruffing",profile_picture:"https://pbs.twimg.com/profile_images/925128264502439936/XcmMIk8k_400x400.jpg",ref_id:"222f7374-6d68-4934-81ed-37567c515b59",twitter_handle:"real_or_random"},{name:"Pieter Wuille",profile_picture:"https://pbs.twimg.com/profile_images/1264051937172836353/n7gHdLbB_400x400.jpg",ref_id:"40260d2f-3480-47d6-8515-d2e780901273",twitter_handle:"pwuille"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/24a144b0-7ca3-40e9-9c42-86b9fce0b662.jpg",node_type:"episode",ref_id:"daddd93e-7bc6-4c50-a150-5199b437afc9",show_title:"The Chaincode Podcast"},{children:["2a01dc8c-19f7-47a8-bfa8-92645a7314c0","1510e150-aee2-42cb-ac57-79b4997bb6cb","9abcd65c-f311-4a4a-ae65-bbef89f36fc7"],episode_title:"BR023 - OP_VAULT for Bitcoin Covenants Panel ft. James O'Beirne, Rijndael, Antoine Poinsot & Carman",guests:[{name:"Carman",profile_picture:"https://pbs.twimg.com/profile_images/1609775498971725824/5vyAafE3_400x400.jpg",ref_id:"09405d70-6fa6-4f2c-92f1-a2951ad56447",twitter_handle:"benthecarman"},{name:"Antoine Poinsot",profile_picture:"https://pbs.twimg.com/profile_images/1108377445936316423/ArRDGbr5_400x400.jpg",ref_id:"1ba10809-b3e6-4e37-a906-697a0368b814",twitter_handle:"darosior"},{name:"Rijndael",profile_picture:"https://pbs.twimg.com/profile_images/1542705395873058817/0zsy4Yur_400x400.jpg",ref_id:"861d5324-8ede-4059-826f-f29abca5d7e6",twitter_handle:"rot13maxi"},{name:"James O'Beirne",profile_picture:"https://pbs.twimg.com/profile_images/1542173995650408450/iDxrdmuj_400x400.jpg",ref_id:"e8e48fcf-9e54-4c66-9b20-aacf5c5b504e",twitter_handle:"jamesob"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f1879df9-9bc6-4a76-951f-24548da768ef.jpg",node_type:"episode",ref_id:"56bf65e9-41d5-42e1-95d6-239e4c835781",show_title:"Bitcoin.Review Podcast with NVK & Guests"},{children:["62034201-203b-42ff-9884-a850d6298caf"],episode_title:"BR020 - Zeus, Alby, Bitcoin Knots Keys Leaked +MORE ft. Sjors, Schmidty, Evan Kaloudis & Justin Moon",guests:[{name:"Sjors",profile_picture:"",ref_id:"fa5c587a-09ef-4cbd-b470-cfc78163f749",twitter_handle:""},{name:"Evan Kaloudis",profile_picture:"https://pbs.twimg.com/profile_images/1596923848997445633/DqxrGpkW_400x400.jpg",ref_id:"420172fa-9431-4ba4-965c-adab17648d1b",twitter_handle:"evankaloudis"},{name:"Schmidty",profile_picture:"https://pbs.twimg.com/profile_images/1334879848280494083/A6ssSEfV_400x400.jpg",ref_id:"28f55137-e733-4f5b-b988-7cb60ef0d330",twitter_handle:"bitschmidty"},{name:"Justin Moon",profile_picture:"https://pbs.twimg.com/profile_images/1512674225651335169/iYHDJQcy_400x400.jpg",ref_id:"1d2cdf64-358f-4b00-8f2b-0c94f798dc2c",twitter_handle:"_JustinMoon_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f1879df9-9bc6-4a76-951f-24548da768ef.jpg",node_type:"episode",ref_id:"ff88a8b8-bcd6-4d86-8a65-8a68def35b9f",show_title:"Bitcoin.Review Podcast with NVK & Guests"},{children:["08600eb8-a8b1-4be4-b505-3adc409da2f8","1958362b-b149-4466-b873-4d22a36d67d8"],episode_title:"BR019 - Proof of Keys Day Twitter Space ft. Lopp, Craig Raw, Lazy Ninja, mshodl, Rijndael & guests",guests:[],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f1879df9-9bc6-4a76-951f-24548da768ef.jpg",node_type:"episode",ref_id:"810a3acb-e30e-46bc-8c67-1d504b2e7c09",show_title:"Bitcoin.Review Podcast with NVK & Guests"},{children:["f9d1d228-19db-4a2d-bfb3-7853fd745ea0","88a4665a-7414-4ccd-96e4-3fb43f93d9bc"],episode_title:"Taproot Activation Q&A with Bitcoin Devs - TABConf 2021",guests:[{name:"Andrew Chow",profile_picture:"https://pbs.twimg.com/profile_images/1452266201770496010/44FHCtZM_400x400.jpg",ref_id:"f96d87ca-5060-4021-aeb9-61db03312027",twitter_handle:"andrewrchow"},{name:"Ben Carman",profile_picture:"https://pbs.twimg.com/profile_images/1550704386007089152/pLwUSeff_400x400.jpg",ref_id:"1d1e95ba-b4af-415f-aafe-85c6dd7571b8",twitter_handle:"benthecarman"},{name:"Matt Corallo",profile_picture:"https://pbs.twimg.com/profile_images/697361498587451394/_rX0-O0W_400x400.png",ref_id:"08cb3c45-c0bc-4a60-ae5b-a1283d352c8b",twitter_handle:"TheBlueMatt"},{name:"Pieter Wuille",profile_picture:"https://pbs.twimg.com/profile_images/1264051937172836353/n7gHdLbB_400x400.jpg",ref_id:"40260d2f-3480-47d6-8515-d2e780901273",twitter_handle:"pwuille"},{name:"Vivek Kasarabada",profile_picture:"",ref_id:"60ed22d0-8cf3-410e-8a7c-9c343ae109ca",twitter_handle:""},{name:"Murch",profile_picture:"https://pbs.twimg.com/profile_images/1269477743525130241/-U843Cmt_400x400.png",ref_id:"3e2c1c73-a057-4475-9782-3bb0d3d8cc62",twitter_handle:"murchandamus"},{name:"Andrew Poelstra",profile_picture:"https://pbs.twimg.com/profile_images/1316562683009921024/FSscAYvJ_400x400.jpg",ref_id:"15fb9c53-c988-4af1-bbf0-4832d71b0a01",twitter_handle:"Blockstream"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",node_type:"episode",ref_id:"f7e75069-adf6-41b0-9bb7-a6a2aa846493",show_title:"TABConf (The Atlanta Bitcoin Conference)"},{children:["cd29b1a1-f94b-4eee-84ce-ddf8a4fcb0c5"],episode_title:"Lightning for Plebs - TABConf 2021",guests:[{name:"ketominer",profile_picture:"https://pbs.twimg.com/profile_images/1245972079528329218/YDUD9N2Q_400x400.jpg",ref_id:"2f8b0b59-6f23-4c89-973c-668cc7666998",twitter_handle:"ketominer"},{name:"Ryan Gentry",profile_picture:"https://pbs.twimg.com/profile_images/1362751223217160203/ekMa_yY-_400x400.jpg",ref_id:"8fe78b55-bc38-40df-9cb5-ffd5c84166a2",twitter_handle:"RyanTheGentry"},{name:"Dread",profile_picture:"https://pbs.twimg.com/profile_images/1532557131819491328/vvs1cD-7_400x400.jpg",ref_id:"e61af76b-8fbd-4719-b753-0a70edd22fa8",twitter_handle:"PoleVaultDream"},{name:"Andre Neves",profile_picture:"https://pbs.twimg.com/profile_images/1604172627550969856/bYCGb7Ev_400x400.jpg",ref_id:"227e071d-f8a6-4137-8078-729fa9eb3a13",twitter_handle:"andreneves"},{name:"Nate G",profile_picture:"https://pbs.twimg.com/profile_images/1542983032507858944/9w_UUx5Z_400x400.jpg",ref_id:"bda29551-f17f-452c-9204-4d6cafdf4f3b",twitter_handle:"natecgriffin"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",node_type:"episode",ref_id:"6eb2a481-408f-4989-9f28-67789651259a",show_title:"TABConf (The Atlanta Bitcoin Conference)"},{children:["6731ba0c-c57b-4fb1-a2f6-6e1ec641e830"],episode_title:"Brink Projects: Research and Improvements for Bitcoin - TABConf 2021",guests:[{name:"Gloria Zhao",profile_picture:"https://pbs.twimg.com/profile_images/1144496084330266631/aPKPfoX3_400x400.png",ref_id:"cebd71c3-4ccf-452d-8ba7-4982f49fd060",twitter_handle:"GloriaHuiZhao"},{name:"Mike Schmidt",profile_picture:"https://pbs.twimg.com/profile_images/1320935020589158400/gFovyRlj_400x400.jpg",ref_id:"d503db9b-a7b1-49e1-8ef6-7541df3c2473",twitter_handle:"nytmike"},{name:"Jesse Posner",profile_picture:"https://pbs.twimg.com/profile_images/1467067234484830213/T6PtLZq1_400x400.jpg",ref_id:"bb55767f-dfbb-4182-8dd8-e1b08e0c6ad6",twitter_handle:"jesseposner"},{name:"Larry Ruane",profile_picture:"https://pbs.twimg.com/profile_images/1226076521/bike_crop_400x400.JPG",ref_id:"ce38f2dd-d41f-4957-ad83-671c3dc29cc5",twitter_handle:"larryruane"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",node_type:"episode",ref_id:"89049a1c-0171-4999-b003-57e1b57d92b2",show_title:"TABConf (The Atlanta Bitcoin Conference)"},{children:["acdb65ab-789f-480c-9f88-414599d19a43"],episode_title:"Scaling Bitcoin Off-Chain - TABConf 2021",guests:[{name:"Graham Krizek",profile_picture:"https://pbs.twimg.com/profile_images/1600169182347288582/yNztRz0g_400x400.jpg",ref_id:"186974f3-37dd-4d62-9d88-1b7fa88c6cce",twitter_handle:"gkrizek"},{name:"Stephen Livera",profile_picture:"https://pbs.twimg.com/profile_images/1362551718110580740/v-W5Q2uo_400x400.jpg",ref_id:"9c9974bd-6a59-480f-8d5a-12b634b15b39",twitter_handle:"stephanlivera"},{name:"Alex Bosworth",profile_picture:"https://pbs.twimg.com/profile_images/1364274244960481281/G5gNi3di_400x400.jpg",ref_id:"2389663a-f7f8-42a7-99da-551089a9ea6a",twitter_handle:"alexbosworth"},{name:"Matt Corallo",profile_picture:"https://pbs.twimg.com/profile_images/697361498587451394/_rX0-O0W_400x400.png",ref_id:"08cb3c45-c0bc-4a60-ae5b-a1283d352c8b",twitter_handle:"TheBlueMatt"},{name:"Niftynei",profile_picture:"https://pbs.twimg.com/profile_images/1594756549162975240/J-4dbH6W_400x400.jpg",ref_id:"5e9f617b-cc12-4e3d-9fb5-ad058f14b171",twitter_handle:"niftynei"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",node_type:"episode",ref_id:"d842ce17-a4c0-49a6-bdc5-5268f1d61779",show_title:"TABConf (The Atlanta Bitcoin Conference)"},{children:["65a9d9c6-3211-444a-a49f-f4a34b9ab5fb","d96fca70-c1c7-4b71-9d35-9aadf2820909"],episode_title:"Scaling Bitcoin On-Chain - TABConf 2021",guests:[{name:"Andrew Chow",profile_picture:"https://pbs.twimg.com/profile_images/1452266201770496010/44FHCtZM_400x400.jpg",ref_id:"f96d87ca-5060-4021-aeb9-61db03312027",twitter_handle:"andrewrchow"},{name:"Mark Erhardt Murch",profile_picture:"https://pbs.twimg.com/profile_images/1269477743525130241/-U843Cmt_400x400.png",ref_id:"ef2f2f68-ae16-4e78-80cb-0be9bd156988",twitter_handle:"Murchandamus"},{name:"Andrew Poelstra",profile_picture:"https://pbs.twimg.com/profile_images/1316562683009921024/FSscAYvJ_400x400.jpg",ref_id:"15fb9c53-c988-4af1-bbf0-4832d71b0a01",twitter_handle:"Blockstream"},{name:"Peter Wuille",profile_picture:"https://pbs.twimg.com/profile_images/1264051937172836353/n7gHdLbB_400x400.jpg",ref_id:"fb836ce4-a933-4419-99d8-932fe65219a1",twitter_handle:"pwuille"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",node_type:"episode",ref_id:"8d9b0689-2e69-44c1-afe2-3519e999390a",show_title:"TABConf (The Atlanta Bitcoin Conference)"},{children:["9f69933d-69fe-47a0-af4d-9d80726e60aa","f507641d-2514-41d3-a4f3-9b218136fa98","addee850-119f-472c-87c2-05fc0642abeb"],episode_title:"Cool Apps Built on Lightning - March 16, 2022 - Voltage Twitter Spaces",guests:[{name:"Chad Atkins",profile_picture:"https://pbs.twimg.com/profile_images/1200611447979544576/W9ocRJTb_400x400.jpg",ref_id:"62da3c50-0a46-400b-81a3-5f482f5b8fee",twitter_handle:"Chemchad"},{name:"Michael Atwood",profile_picture:"https://pbs.twimg.com/profile_images/1362207977470521345/Jy2_Ge60_400x400.jpg",ref_id:"16359ade-afb9-4a37-be0b-0844a6134327",twitter_handle:"Dooowta"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",node_type:"episode",ref_id:"3b818893-4605-499c-a467-5abcc23f9483",show_title:"Voltage"},{children:["c7beffcd-bb44-4cf9-a04a-a26f6439114c","3db5f375-817e-4275-980c-6475803c430b"],episode_title:"Lightning Networks Impact on Music w/ Michael Rhee, Founder of Wavlake - Voltage Twitter Spaces",guests:[{name:"Michael Rhee",profile_picture:"https://pbs.twimg.com/profile_images/1348612450/IMG_0298_400x400.JPG",ref_id:"91302fb9-2d08-400e-bd1f-2d52e0af5508",twitter_handle:"rheedio"},{name:"@rheedio",profile_picture:"https://pbs.twimg.com/profile_images/1348612450/IMG_0298_400x400.JPG",ref_id:"a20f5e1f-5969-47a6-b986-faf29c0c4da0",twitter_handle:"rheedio"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",node_type:"episode",ref_id:"a44e78cd-dc66-4b67-9523-7ddff0d3655f",show_title:"Voltage"},{children:["f10270d7-1cdc-4922-853a-1f8247750382","d2d3e71f-24ad-4cf3-b516-f63ac5283d50"],episode_title:"TRUBIT bringing Digital Loyalty Assets to Bitcoin - Voltage Twitter Spaces",guests:[{name:"@0xLinden",profile_picture:"https://pbs.twimg.com/profile_images/1439365331202437125/JBiXogun_400x400.jpg",ref_id:"b8bb4402-8f86-4220-9dee-0fa28ff8de72",twitter_handle:"0xLinden"},{name:"Stephen Doge",profile_picture:"https://pbs.twimg.com/profile_images/1215979900387184641/nZXkhgoP_400x400.jpg",ref_id:"076972a2-cdab-4766-8c66-618472b80772",twitter_handle:"StephenDodge20"},{name:"@617a7a",profile_picture:"https://pbs.twimg.com/profile_images/1548336437308715016/FUZFJf9k_400x400.jpg",ref_id:"148d77a5-6e95-4855-9e17-19e68f648898",twitter_handle:"617a7a"},{name:"@ian__major",profile_picture:"https://pbs.twimg.com/profile_images/1427414299169984517/Hw0ux6ie_400x400.jpg",ref_id:"7ed41a74-21a4-43a4-9a05-e977c981b6d3",twitter_handle:"ian__major"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",node_type:"episode",ref_id:"0c4f330b-a39d-4312-9775-58b42c7c9723",show_title:"Voltage"},{children:["076eecc3-0553-4bb7-8fe2-9f43a6d54f79","4310fd96-1c4f-42a7-b72f-60fc5968c75d","3d451e38-8616-43bc-8269-c3b8ce7d9b15","ca89bac3-188b-4e90-8d0b-fe42d0abf067","d0f57eb5-87ba-4180-ad39-96589093a0f0"],episode_title:"Small Businesses Embracing Bitcoin w/ Michael from Oshi App - Voltage Twitter Spaces",guests:[{name:"Michael Atwood",profile_picture:"https://pbs.twimg.com/profile_images/1362207977470521345/Jy2_Ge60_400x400.jpg",ref_id:"16359ade-afb9-4a37-be0b-0844a6134327",twitter_handle:"Dooowta"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",node_type:"episode",ref_id:"205a0650-fefe-4aaf-a894-faa8b72d966a",show_title:"Voltage"},{children:["e9443306-25af-42d3-830d-ed6a26721103"],episode_title:"Austin Bitcoin Design Club Interview w/ Sahil, FuturePaul, and Car",guests:[{name:"Car Gonzalez",profile_picture:"https://pbs.twimg.com/profile_images/1541855444720836608/F4v02BuD_400x400.jpg",ref_id:"b554604d-47eb-4c7c-b6c9-87a062e6a844",twitter_handle:"Car_mdq_2010"},{name:"Sahil Chaturvedi",profile_picture:"https://pbs.twimg.com/profile_images/1362511727066107904/yP4o43cz_400x400.jpg",ref_id:"8b56eaa4-c9d6-46e8-a313-fbccd0ee86b5",twitter_handle:"SahilC0"},{name:"Future Paul",profile_picture:"https://pbs.twimg.com/profile_images/1508452962917666821/1QheRD09_400x400.jpg",ref_id:"ec933e22-f395-4817-b608-4337eaaf60a4",twitter_handle:"futurepaul"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",node_type:"episode",ref_id:"a60dc641-5d14-4960-ab73-66ff199edd1d",show_title:"Voltage"},{children:["f3d0a35e-3e21-4c0c-874c-d6f2b1f37eed"],episode_title:"The Future of Bitcoin Technology with Pierre Rochard, Dhruv Bansal, Warren Togami and Guy Swann",guests:[{name:"Warren Togami",profile_picture:"https://pbs.twimg.com/profile_images/1577819570039128065/bBmumEx9_400x400.jpg",ref_id:"f082b94a-673f-4b99-b46e-49a342b5792a",twitter_handle:"wtogami"},{name:"Dhruv Bansal",profile_picture:"https://pbs.twimg.com/profile_images/908397811284172800/kR9kKNsE_400x400.jpg",ref_id:"6ed2b14a-d97d-4a3f-b5b5-4c3222d85624",twitter_handle:"dhruvbansal"},{name:"Pierre Rochard",profile_picture:"https://pbs.twimg.com/profile_images/1567258180861792256/EEEBkvQR_400x400.jpg",ref_id:"426b30ba-7c24-4558-b926-ec307756a876",twitter_handle:"BitcoinPierre"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/492cbcce-3744-4d8b-b2ca-3a7f063e798a.jpg",node_type:"episode",ref_id:"3af98dc1-5e7c-4ef3-ad74-b9b6afaee8b9",show_title:"Swan Bitcoin"},{children:["6e890ef3-7358-40d6-a01f-44f444dbabfc"],episode_title:"#Bitcoin Mining Saves the World - Brought to you by Marathon",guests:[{name:"Steve Barbour",profile_picture:"https://pbs.twimg.com/profile_images/1592714173469065216/q8kXPyQI_400x400.jpg",ref_id:"63a731b8-4759-4360-9e9d-d66f884e12d8",twitter_handle:"SGBarbour"},{name:"Nathaniel Harmon",profile_picture:"https://pbs.twimg.com/profile_images/1578090357102780416/etXW-RA9_400x400.jpg",ref_id:"9105fb4e-4150-4c25-90f1-8ea770585749",twitter_handle:"NateHawaii"},{name:"Taylor Monnig",profile_picture:"https://pbs.twimg.com/profile_images/1599563776621219840/mvb8y3zY_400x400.jpg",ref_id:"b8513b01-ff94-4d7f-944f-5c92e1126885",twitter_handle:"taylorbmonnig"},{name:"Harry Suddock",profile_picture:"",ref_id:"6440ea0f-c982-4b76-b7c2-9c6bf7e9a4a9",twitter_handle:""}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/492cbcce-3744-4d8b-b2ca-3a7f063e798a.jpg",node_type:"episode",ref_id:"625d9252-2f5e-4f53-b577-dd2dfd4d4749",show_title:"Swan Bitcoin"},{children:["876e20ef-be1b-44e6-a77d-4af5beb33ad4"],episode_title:"Austin Bitcoin Club: August - Value for Value Panel",guests:[{name:"Justin Rezvani",profile_picture:"https://pbs.twimg.com/profile_images/1574666257781104641/hWG0vkSQ_400x400.jpg",ref_id:"b00877d0-ccbe-4c77-9c8c-88ab15063150",twitter_handle:"justin_rezvani"},{name:"Lyle Pratt",profile_picture:"https://pbs.twimg.com/profile_images/1477702801962721285/KqnrA7oU_400x400.jpg",ref_id:"ab752a01-84bb-4260-a683-2eb5798b1dce",twitter_handle:"lylepratt"},{name:"Keyan Kousha",profile_picture:"https://pbs.twimg.com/profile_images/1403763601391951878/ybuppfHt_400x400.jpg",ref_id:"7ef39c9b-63ba-4dd0-989e-2230afb45129",twitter_handle:"k00bideh"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b29c81c8-cccd-4a6b-b78f-3c1591a54d27.jpg",node_type:"episode",ref_id:"8eef2f82-bbf9-4fef-ba3d-102679d4a1a5",show_title:"Austin Bitcoin Club"},{children:["b9fd54d3-49e8-44e1-a208-7780d50a3b3a"],episode_title:"Synonym Spaces Lightning Tokens",guests:[{name:"Paolo Ardoino",profile_picture:"https://pbs.twimg.com/profile_images/1583467513198923781/nCWMWFIn_400x400.jpg",ref_id:"9bb3e215-6065-4fe2-aac5-2b1d5545d48c",twitter_handle:"paoloardoino"},{name:"John Carvalho",profile_picture:"https://pbs.twimg.com/profile_images/1601964735016177676/c1mAfspt_400x400.jpg",ref_id:"f28f037f-a3af-48af-bdd3-28023219b524",twitter_handle:"BitcoinErrorLog"},{name:"Reza Bandegi",profile_picture:"https://pbs.twimg.com/profile_images/1446675390370500614/4LGHNSkl_400x400.jpg",ref_id:"ead50c13-2f13-4ffc-86b5-5a3eb49a5804",twitter_handle:"r32a_"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/63e0cbc0-731d-4ea0-9dd2-2b8b841eb28a.jpg",node_type:"episode",ref_id:"a1e3c3cf-2045-4c33-8152-0e162b7ca729",show_title:"Synonym"},{children:["d98bc278-4c35-4325-992c-78437ccf3569","144eff69-fd7a-48da-b92f-bb5b13e0b4f7","9f9305dd-fff2-4bb3-9e3f-698a55090999"],episode_title:"Blockware Intelligence Podcast: 2022 Highlights",guests:[{name:"Michael",profile_picture:"https://pbs.twimg.com/profile_images/1558687629599657990/vf-bU14b_400x400.jpg",ref_id:"c7b4faa1-db77-4459-b03f-0e41e15efae7",twitter_handle:"MichaelHawaii"},{name:"Cory Klippsten",profile_picture:"https://pbs.twimg.com/profile_images/1569687200857755648/fxiCeaqc_400x400.jpg",ref_id:"ddfb9b4c-4e6a-4f4c-a01b-e6bb1bc55464",twitter_handle:"coryklippsten"},{name:"Joe Consorti",profile_picture:"https://pbs.twimg.com/profile_images/1596902707511664640/GYGWVDts_400x400.jpg",ref_id:"8d2024b2-03bb-454d-9bd6-bb121904b76a",twitter_handle:"JoeConsorti"},{name:"Jeff Booth",profile_picture:"https://pbs.twimg.com/profile_images/1362957991410954241/spiaMAg2_400x400.jpg",ref_id:"f1143bcc-9ab9-4716-8259-0e5b026f8039",twitter_handle:"JeffBooth"},{name:"James Lavish",profile_picture:"https://pbs.twimg.com/profile_images/1466279082157502464/flD6cWI3_400x400.jpg",ref_id:"cf06ab2d-2ff3-4d7b-bef6-b996ae68517a",twitter_handle:"jameslavish"},{name:"Adam O",profile_picture:"https://pbs.twimg.com/profile_images/1395896857990160391/tJpgS2_p_400x400.jpg",ref_id:"95af0dd3-1e27-41b9-a36b-8a2c44438e85",twitter_handle:"denverbitcoin"},{name:"Jack Mallers",profile_picture:"https://pbs.twimg.com/profile_images/1599778945699909632/O0qc9ykA_400x400.jpg",ref_id:"d2e4aac5-e5e1-42fc-8f08-b3a77c076a64",twitter_handle:"jackmallers"},{name:"Lyn Alden",profile_picture:"https://pbs.twimg.com/profile_images/1521181379677073414/bm4LcJTr_400x400.jpg",ref_id:"903381dd-4b8a-4b59-8ecd-3281ae3ba297",twitter_handle:"LynAldenContact"},{name:"Dylan LeClair",profile_picture:"https://pbs.twimg.com/profile_images/1508157904913899522/3l7ctauV_400x400.jpg",ref_id:"283edea0-55cf-4245-95df-8d6d3dcb1851",twitter_handle:"DylanLeClair_"},{name:"Jeff Ross",profile_picture:"https://pbs.twimg.com/profile_images/1475554600094552064/DSlPG1lx_400x400.jpg",ref_id:"ae6ee2a2-1cf7-41a0-8366-ff6e94a6403c",twitter_handle:"VailshireCap"},{name:"Stacy Herbert",profile_picture:"https://pbs.twimg.com/profile_images/1546484196750905346/5WYPz-bc_400x400.jpg",ref_id:"7477463b-1f3a-4b83-94c3-9d5a63b576c0",twitter_handle:"Stacyherbert"},{name:"Greg Foss",profile_picture:"https://pbs.twimg.com/profile_images/1552599670945464320/3OgqRHNo_400x400.jpg",ref_id:"853d9f80-f6cf-490f-9d1e-f29cdc6acc6f",twitter_handle:"FossGregfoss"},{name:"Preston Pysh",profile_picture:"https://pbs.twimg.com/profile_images/1408783276081299462/f4Ye5n7-_400x400.jpg",ref_id:"01ad2c81-2d0c-44a9-93a1-42c07287aa80",twitter_handle:"PrestonPysh"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ea2cf2ae-76de-4185-818c-384b3b06228b.jpg",node_type:"episode",ref_id:"e06b030a-063e-4894-9914-d326220f75f8",show_title:"Blockware Intelligence"},{children:["87520be0-ad60-48d0-aba6-44aec1452a09"],episode_title:"A Christmas Trip! | EP 20",guests:[{name:"Erik Cason",profile_picture:"https://pbs.twimg.com/profile_images/1528431738145361921/roDCkAUy_400x400.jpg",ref_id:"345e1da8-42ed-442b-8b90-ecb44bab61a1",twitter_handle:"Erikcason"},{name:"FractalEncrypt",profile_picture:"https://pbs.twimg.com/profile_images/1588218887807680512/lFJArP4n_400x400.jpg",ref_id:"888ea071-8312-4aca-b229-7447217e59f0",twitter_handle:"FractalEncrypt"}],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e79b1a57-ecd0-4df3-b8ec-1a1a55d047e7.jpg",node_type:"episode",ref_id:"b707bbd8-1a9e-4aee-8e0e-2fe0be24c851",show_title:"Pleb UnderGround"},{children:["d4948551-6ec5-4649-a700-364592e09edd","25e36282-297b-4f9d-b6e9-da65731be8a8","53cab9be-0f22-42a2-aef5-87920c2431cf","6028f484-d0b9-424a-87e5-d0dcb39f9fc7","092e9794-afc9-41fe-a635-4802777415a1","092e9794-afc9-41fe-a635-4802777415a1","36f1f7e1-df70-4528-8474-4bba448b1ed0","36f1f7e1-df70-4528-8474-4bba448b1ed0","6d267cc1-22b1-42fc-9b60-9701e64a75d0","6d267cc1-22b1-42fc-9b60-9701e64a75d0"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/7de0d293-8ae3-4362-8500-8f7300f3fe41.jpg",node_type:"show",ref_id:"7de0d293-8ae3-4362-8500-8f7300f3fe41",show_title:"Unchained"},{children:["a7afaa66-6878-40c2-97fd-88a20ae007fd","910f5aab-7896-4c19-8649-64dcef44c369"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4e607036-8fde-48ef-ab76-9c2ac4bab031.jpg",node_type:"show",ref_id:"4e607036-8fde-48ef-ab76-9c2ac4bab031",show_title:"What Bitcoin Did with Peter McCormack"},{children:["47c54384-785c-4a4b-bad1-cac242d8f190","aa033894-120f-494e-9d6b-c6d62dfb0a69","aa033894-120f-494e-9d6b-c6d62dfb0a69","53402b84-7b30-4fec-a741-d9ef8fa03389","53402b84-7b30-4fec-a741-d9ef8fa03389","53402b84-7b30-4fec-a741-d9ef8fa03389","3a9db5f7-6722-469c-a0c6-6b157f44f33f","3a9db5f7-6722-469c-a0c6-6b157f44f33f","3a9db5f7-6722-469c-a0c6-6b157f44f33f"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9e7e229f-2631-4542-b5d7-7fcd502798dc.jpg",node_type:"show",ref_id:"9e7e229f-2631-4542-b5d7-7fcd502798dc",show_title:"Bitcoin Audible"},{children:["fccdc763-2b69-4418-9a7a-78cdfe615ba9"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b6c52903-5124-43f4-8632-bc9aeb941f2e.jpg",node_type:"show",ref_id:"b6c52903-5124-43f4-8632-bc9aeb941f2e",show_title:"The Kevin Rooke Show"},{children:["ae631d96-3b81-4308-bcc1-a57f81339b5c","ae631d96-3b81-4308-bcc1-a57f81339b5c","4bea6c89-43b4-4e5e-9fea-0662d9ee7c00","4bea6c89-43b4-4e5e-9fea-0662d9ee7c00"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b79a3eb8-bcd0-4338-b979-d32aef360785.jpg",node_type:"show",ref_id:"b79a3eb8-bcd0-4338-b979-d32aef360785",show_title:"Stephan Livera Podcast"},{children:["46277681-3564-4504-9ca8-e2f41d658d28","b05fa33c-fc91-4b55-a592-85eaa1a5b3fd","b723d81b-9c99-4797-b3a8-67f824924f0c","eaeec64e-8e03-4826-a7c5-e1969a71ca2d","922ae599-5631-4ffe-977e-a9174fc028bb","b534755c-92b6-4df1-b1f9-a28578661f48","b317d76a-25e6-42f6-bc97-3de9f6c3f081","94e1df77-e561-4361-b8ad-e98862d6e51a","94e1df77-e561-4361-b8ad-e98862d6e51a","94e1df77-e561-4361-b8ad-e98862d6e51a","10c6d370-de6e-4a37-9981-d2c27e69d9e0","a52e09df-91bc-4997-ad65-725ee971af2b","a52e09df-91bc-4997-ad65-725ee971af2b","95403824-42d5-4fe8-b50b-72e08ab368c8","2e6613fa-ef17-413b-9158-0e3be5d5ae51","2e6613fa-ef17-413b-9158-0e3be5d5ae51","2e6613fa-ef17-413b-9158-0e3be5d5ae51","c0895c34-042b-4f51-a884-2330d9f83bc7","638c47da-8592-4d7b-aa1a-20e28fa0499f","638c47da-8592-4d7b-aa1a-20e28fa0499f","2e84c98a-d7d8-4341-a129-3f4eaebe1e3e","6b8fbd46-fa4a-4d07-a142-9aeb242d249f","f3b67780-d9c2-4a20-ab5c-115032a05b3a","f3b67780-d9c2-4a20-ab5c-115032a05b3a","1bf7b1ea-f717-4c0f-ae66-0e00b26603df","7070839d-051e-48e4-bd9a-95c09b310db2","728d91e9-025d-43a7-8467-2c8d264ddf59","728d91e9-025d-43a7-8467-2c8d264ddf59","c8ae0def-c33c-4d17-af4e-31ddaeedaf8a","c8ae0def-c33c-4d17-af4e-31ddaeedaf8a","c8ae0def-c33c-4d17-af4e-31ddaeedaf8a","c8ae0def-c33c-4d17-af4e-31ddaeedaf8a","b87feb17-6926-4295-b2c2-d1c2e9d49ca8","b87feb17-6926-4295-b2c2-d1c2e9d49ca8","b87feb17-6926-4295-b2c2-d1c2e9d49ca8","f29a41a4-6764-439e-9fcf-74fefaffc681","065c0900-4e3c-48a0-87b8-4068dc441c82","87cd8227-9464-45ed-8512-4e545d3812c2","2f714adf-e499-4c1f-9864-016a00737153","bbf0a536-990b-49b4-a9c3-a2a40fa38f88","bbf0a536-990b-49b4-a9c3-a2a40fa38f88","0ade0cc4-6303-4e28-8b00-6b3e659c1e3a","9523aa00-daf4-42af-b25b-75d9682bc5a6"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/419512c2-e309-4b25-bfe2-cd481d53f66d.jpg",node_type:"show",ref_id:"419512c2-e309-4b25-bfe2-cd481d53f66d",show_title:"BTC Sessions"},{children:["919ca76f-b3c7-48f1-9f5f-872537d43632"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/7934bd86-9344-4f1a-9c36-ea5f63ae418e.jpg",node_type:"show",ref_id:"7934bd86-9344-4f1a-9c36-ea5f63ae418e",show_title:"The Pomp Podcast"},{children:["ded2e35d-9fec-4bad-90f7-f3102d4eebd5"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/5fc9c8b0-687f-487e-bde3-bea15e155e3e.jpg",node_type:"show",ref_id:"5fc9c8b0-687f-487e-bde3-bea15e155e3e",show_title:"Bitcoin Takeover Podcast"},{children:["2536a974-d668-4ac2-8613-0b37aa0ca08c","2536a974-d668-4ac2-8613-0b37aa0ca08c","2536a974-d668-4ac2-8613-0b37aa0ca08c","2536a974-d668-4ac2-8613-0b37aa0ca08c","2536a974-d668-4ac2-8613-0b37aa0ca08c"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/3e178b7d-b8b9-4fd4-ba36-017b834537da.jpg",node_type:"show",ref_id:"3e178b7d-b8b9-4fd4-ba36-017b834537da",show_title:"Bitcoin Fixes This"},{children:["43dd10a8-c5d5-4643-9432-93868289f163","6e8b01d5-df4f-4124-a13a-3ee9c93c8eb2","3475140b-3e58-494f-b929-59e6ec5f1636"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/1583c7c4-f4f2-4e52-8f27-a1eaeb6289fd.jpg",node_type:"show",ref_id:"1583c7c4-f4f2-4e52-8f27-a1eaeb6289fd",show_title:"Bitcoin Magazine Podcast"},{children:["68309686-0bf0-4156-8f95-615ba255fdc4","52f31c46-14c5-49f1-9836-70862c6f6567","665facde-c1bd-4091-a071-09e28606b863"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/a09a2c49-84f1-4d0b-b150-6e6103f4ee41.jpg",node_type:"show",ref_id:"a09a2c49-84f1-4d0b-b150-6e6103f4ee41",show_title:"Citadel Dispatch"},{children:["274ecab4-c5d8-4ad7-9e16-b1cb5dd39d13","274ecab4-c5d8-4ad7-9e16-b1cb5dd39d13","933d3953-2983-4a8b-a4dc-e9615eeecb88","8a89a96d-5877-4d00-9e11-c33d19ed7264","8a89a96d-5877-4d00-9e11-c33d19ed7264","8a89a96d-5877-4d00-9e11-c33d19ed7264","249e2426-55d6-473c-bbe0-4bebf74594e9","249e2426-55d6-473c-bbe0-4bebf74594e9","0f13f1e8-6031-4920-86bf-c2fbcaaed641","0f13f1e8-6031-4920-86bf-c2fbcaaed641"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/cd6b8d64-bd52-4f1e-86b3-ca8ba2eb169f.jpg",node_type:"show",ref_id:"cd6b8d64-bd52-4f1e-86b3-ca8ba2eb169f",show_title:"Bitcoin.Review"},{children:["993787ca-ce29-4d5b-b834-37a83ea2125a"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/afa24463-19f7-4875-b6f4-b261d1d6c648.jpg",node_type:"show",ref_id:"afa24463-19f7-4875-b6f4-b261d1d6c648",show_title:"Orange Pill Podcast"},{children:["72c4dd20-64fa-4d68-a0bd-ac50207ae1c0","cc447ce2-af39-4938-8ec8-2d70a6cfd851"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99d17d22-4448-4267-9065-f55b341f43d2.jpg",node_type:"show",ref_id:"99d17d22-4448-4267-9065-f55b341f43d2",show_title:"The Money Movement"},{children:["337981db-17c3-4c4e-8195-26cda6855ead","337981db-17c3-4c4e-8195-26cda6855ead"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ca3ab815-dc2e-408a-a0c5-8bbe50270a97.jpg",node_type:"show",ref_id:"ca3ab815-dc2e-408a-a0c5-8bbe50270a97",show_title:'The "What is Money?" Show'},{children:["b43f377d-6599-421b-af45-a8ecee409420","b43f377d-6599-421b-af45-a8ecee409420"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/abd94520-1490-42aa-b349-9e861494a654.jpg",node_type:"show",ref_id:"abd94520-1490-42aa-b349-9e861494a654",show_title:"Economy Guy"},{children:["705db675-bc09-4cba-b578-e9904f339f55"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/58189b3c-aa25-408d-8c5e-76f97c9501da.jpg",node_type:"show",ref_id:"58189b3c-aa25-408d-8c5e-76f97c9501da",show_title:"Mises University 2017"},{children:["a12faf50-f4fb-472d-b3a1-030747594fa5","a12faf50-f4fb-472d-b3a1-030747594fa5"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/5cdd0aef-f1a7-4d3b-8336-7f81c2db4a40.jpg",node_type:"show",ref_id:"5cdd0aef-f1a7-4d3b-8336-7f81c2db4a40",show_title:"The Bitcoin Standard Podcast"},{children:["87054fe7-6a5c-471a-b518-5e9414d0c644"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4bb9069b-a373-4b1c-9cda-024b2bf4dc84.jpg",node_type:"show",ref_id:"4bb9069b-a373-4b1c-9cda-024b2bf4dc84",show_title:"We Study Billionaires - The Investor’s Podcast Network"},{children:["04dd4023-ed42-4259-921c-e305af656389"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/3325efce-80a8-490c-8645-cad1b9a22d94.jpg",node_type:"show",ref_id:"3325efce-80a8-490c-8645-cad1b9a22d94",show_title:"Crypto Voices"},{children:["c6ecd519-ce8f-45b5-89ca-30a6a017f5d6"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/357dc2db-2643-49f0-9393-5a20ed21d0fe.jpg",node_type:"show",ref_id:"357dc2db-2643-49f0-9393-5a20ed21d0fe",show_title:"The Anita Posch Show: A Bitcoin only podcast"},{children:["b94dbd49-6ac1-497c-8f5b-d13140968920"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/710ac70a-11fc-40ec-a2a2-01b92fb8015e.jpg",node_type:"show",ref_id:"710ac70a-11fc-40ec-a2a2-01b92fb8015e",show_title:"Quoth the Raven"},{children:["406ce1e1-5f39-4c94-907c-eb5e501d2c64"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/da1bbdc0-4d0a-43ed-8345-ee43102db244.jpg",node_type:"show",ref_id:"da1bbdc0-4d0a-43ed-8345-ee43102db244",show_title:"Mercatus Policy Download"},{children:["9585c916-c55a-4284-b348-f8a52c24dc8d","9585c916-c55a-4284-b348-f8a52c24dc8d","9585c916-c55a-4284-b348-f8a52c24dc8d","1d938eb2-3bc2-4268-85d1-8967a1292a18","1d938eb2-3bc2-4268-85d1-8967a1292a18"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/93a6fe5b-364c-43f4-9f38-7da3e811460b.jpg",node_type:"show",ref_id:"93a6fe5b-364c-43f4-9f38-7da3e811460b",show_title:"CRYPTO 101"},{children:["50ab3e37-ccb3-4902-825b-a9da36579707","50ab3e37-ccb3-4902-825b-a9da36579707","50ab3e37-ccb3-4902-825b-a9da36579707"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/6ec51741-3d93-4116-a619-d62a7cee1feb.jpg",node_type:"show",ref_id:"6ec51741-3d93-4116-a619-d62a7cee1feb",show_title:"Radio Rothbard"},{children:["8ec14282-c5bc-4da6-b516-3140efaf6b8f","8ec14282-c5bc-4da6-b516-3140efaf6b8f","8ec14282-c5bc-4da6-b516-3140efaf6b8f","8ec14282-c5bc-4da6-b516-3140efaf6b8f","2fee3ffd-e6f5-4fbf-9cac-2b8977b93b79"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f2b2a2b2-8869-4256-94b9-a91c91c1ce7e.jpg",node_type:"show",ref_id:"f2b2a2b2-8869-4256-94b9-a91c91c1ce7e",show_title:"Economics For Business"},{children:["a77be405-8402-477a-9d72-b96d1e7ea63b","32aad837-d99a-4b5a-b6ea-e12c590b925a"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ef62c7ab-ef09-47b7-9af4-2ebe2384a72f.jpg",node_type:"show",ref_id:"ef62c7ab-ef09-47b7-9af4-2ebe2384a72f",show_title:"Austrian Economics: An Introductory Course"},{children:["62e4eee0-25ba-495a-a7e6-dd0685a75d13","23ea78f2-8e21-42fe-980a-8c6ff04c2748","23ea78f2-8e21-42fe-980a-8c6ff04c2748","b51b127d-9641-42a7-aac5-bd5b1228f52a"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/8e52e9c4-52e8-4dea-8ed9-8c6a7fcef25a.jpg",node_type:"show",ref_id:"8e52e9c4-52e8-4dea-8ed9-8c6a7fcef25a",show_title:"The Macro View"},{children:["f18bb143-9582-41f3-b65b-1dbe8de6cfc3"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/3ab6c599-bbcd-4c8f-beef-bcf509ed4afa.jpg",node_type:"show",ref_id:"3ab6c599-bbcd-4c8f-beef-bcf509ed4afa",show_title:"Voices of the Data Economy"},{children:["14dbb9b7-ec35-49e5-bbb9-1f2d626a5d6f"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/5e0220b3-7c70-4423-bb76-3b75bc132fad.jpg",node_type:"show",ref_id:"5e0220b3-7c70-4423-bb76-3b75bc132fad",show_title:"Carnivore Cast"},{children:["c6996d2f-8541-4622-968f-4e4dee7f78e4","41f7e1a4-f5b9-4a7e-8dbd-ee3fcb15260f"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/a8e3517b-b44d-4270-adaa-57587896b1e7.jpg",node_type:"show",ref_id:"a8e3517b-b44d-4270-adaa-57587896b1e7",show_title:"Keto Life Support"},{children:["4b228b78-99c7-4884-b91d-9dc711bde8e6"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4ae5cf53-106f-4ba8-9a77-3ef1de3b44b6.jpg",node_type:"show",ref_id:"4ae5cf53-106f-4ba8-9a77-3ef1de3b44b6",show_title:"Trading Bitcoin: The Tone Vays Podcast"},{children:["556a9506-357d-4dea-a6bb-75f391f7340d"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/1c3fe064-f637-41ea-8a4b-a533ef5985b1.jpg",node_type:"show",ref_id:"1c3fe064-f637-41ea-8a4b-a533ef5985b1",show_title:"aantonop"},{children:["1b47b05f-8f86-4e19-9694-d4255e9e89ac","1b47b05f-8f86-4e19-9694-d4255e9e89ac"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/56bbafde-60ef-4e4b-b930-978429c6a635.jpg",node_type:"show",ref_id:"56bbafde-60ef-4e4b-b930-978429c6a635",show_title:"Global Bitcoin Fest"},{children:["a0826cdb-6198-4416-bd12-1dd5aa09a075","c6447277-9a58-411f-85e1-5ac166884ce5","c6447277-9a58-411f-85e1-5ac166884ce5","c6447277-9a58-411f-85e1-5ac166884ce5","c6447277-9a58-411f-85e1-5ac166884ce5","8418f2a4-1874-403a-9e58-7a76a8e09d4f","a7dcf3bf-b9f2-41f1-a3f3-ffd2db3a0b96","a7dcf3bf-b9f2-41f1-a3f3-ffd2db3a0b96","a7dcf3bf-b9f2-41f1-a3f3-ffd2db3a0b96","47406d36-917a-47f7-b89e-26181d6070bc","47406d36-917a-47f7-b89e-26181d6070bc","47406d36-917a-47f7-b89e-26181d6070bc","dc7b8177-4cef-4da2-bb05-b12dfe4c05bb","dc7b8177-4cef-4da2-bb05-b12dfe4c05bb","dc7b8177-4cef-4da2-bb05-b12dfe4c05bb","dc7b8177-4cef-4da2-bb05-b12dfe4c05bb"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/9b2e17f2-71c5-4f1e-a3e7-720d06dab810.jpg",node_type:"show",ref_id:"9b2e17f2-71c5-4f1e-a3e7-720d06dab810",show_title:"Satoshi’s Journal"},{children:["fb60247a-9b2e-41d4-83f4-f4cf92eb20f4","fb60247a-9b2e-41d4-83f4-f4cf92eb20f4","fb60247a-9b2e-41d4-83f4-f4cf92eb20f4","87a2efa8-6b4c-486d-8511-d6a95cb84514","87a2efa8-6b4c-486d-8511-d6a95cb84514","87a2efa8-6b4c-486d-8511-d6a95cb84514","87a2efa8-6b4c-486d-8511-d6a95cb84514","87a2efa8-6b4c-486d-8511-d6a95cb84514","de9ef389-d0ee-4ce1-ad23-38bfafa28a35","de9ef389-d0ee-4ce1-ad23-38bfafa28a35"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/0c42d408-e518-4ecf-b282-d864a8c14002.jpg",node_type:"show",ref_id:"0c42d408-e518-4ecf-b282-d864a8c14002",show_title:"PUBLORD"},{children:["94726593-cead-47f6-8029-6848f277358c","2c2ac736-0711-4418-8a44-6f9de54cbe6f","2c2ac736-0711-4418-8a44-6f9de54cbe6f","2c2ac736-0711-4418-8a44-6f9de54cbe6f","883300ba-aeb4-42e5-bbd2-7c989e481a3b","883300ba-aeb4-42e5-bbd2-7c989e481a3b","883300ba-aeb4-42e5-bbd2-7c989e481a3b","883300ba-aeb4-42e5-bbd2-7c989e481a3b","a41902c1-9f41-4ea4-b135-0d2078f6074b","6334a91f-b1db-4f05-a381-bc68b121dfb3","3b7e4cc5-bc15-45e9-bb7a-373fa4cca6f1","3b7e4cc5-bc15-45e9-bb7a-373fa4cca6f1","3b7e4cc5-bc15-45e9-bb7a-373fa4cca6f1","3b7e4cc5-bc15-45e9-bb7a-373fa4cca6f1","3b7e4cc5-bc15-45e9-bb7a-373fa4cca6f1","f8a66979-3fac-4793-bad0-8ede604e211b","1d671494-3407-4619-92b0-99c7d6f95f86","9ae3fabe-5d43-47bc-9ab0-541df990773a","a119635b-a66a-4a90-a7e3-2a7929666a82","a119635b-a66a-4a90-a7e3-2a7929666a82","a119635b-a66a-4a90-a7e3-2a7929666a82","a119635b-a66a-4a90-a7e3-2a7929666a82","6fe2326f-7cad-4efb-abed-206db564556e","6fe2326f-7cad-4efb-abed-206db564556e","141ef1e6-e6ec-4d29-a52a-01be662b21ae","141ef1e6-e6ec-4d29-a52a-01be662b21ae","141ef1e6-e6ec-4d29-a52a-01be662b21ae","15cae8e2-7cb3-4c60-9b3a-32cb4b231c26","15cae8e2-7cb3-4c60-9b3a-32cb4b231c26","3bc946bc-82f4-48d3-9bd2-fab82353774d","3bc946bc-82f4-48d3-9bd2-fab82353774d","3bc946bc-82f4-48d3-9bd2-fab82353774d","3bc946bc-82f4-48d3-9bd2-fab82353774d","3bc946bc-82f4-48d3-9bd2-fab82353774d","80617a1c-8bf7-404d-928c-86fc32d643fe","80617a1c-8bf7-404d-928c-86fc32d643fe","d28e279c-4539-4ec8-b187-1b6447bdb6be"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/239722cb-4216-414a-a17b-5adf9d52e15a.jpg",node_type:"show",ref_id:"239722cb-4216-414a-a17b-5adf9d52e15a",show_title:"Swan.com"},{children:["aba10d42-f204-4853-99c4-c8a22f846945","6c6c782e-382c-44c3-9b0a-5c598ef73ddc"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f3a55dda-3dd5-4f62-99c1-bab3a88c27c1.jpg",node_type:"show",ref_id:"f3a55dda-3dd5-4f62-99c1-bab3a88c27c1",show_title:"Bitcoin Magazine"},{children:["7bebf6d3-5f24-4988-9141-7ed42c826983","7bebf6d3-5f24-4988-9141-7ed42c826983"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/7c53ad3c-1ce2-4661-8896-4c40dcc23b4d.jpg",node_type:"show",ref_id:"7c53ad3c-1ce2-4661-8896-4c40dcc23b4d",show_title:"Blockware Solutions"},{children:["de789489-56bc-4012-b7c3-9dc92a937161","62ca7c93-e509-438e-87b3-43400a320f8d","62ca7c93-e509-438e-87b3-43400a320f8d","62ca7c93-e509-438e-87b3-43400a320f8d"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/624262ef-b30f-4114-8061-e310187e6bb4.jpg",node_type:"show",ref_id:"624262ef-b30f-4114-8061-e310187e6bb4",show_title:"Property and Freedom Society"},{children:["0992287c-f653-4032-b06c-e8d65e2536e7","0992287c-f653-4032-b06c-e8d65e2536e7","0992287c-f653-4032-b06c-e8d65e2536e7","0992287c-f653-4032-b06c-e8d65e2536e7","0992287c-f653-4032-b06c-e8d65e2536e7","0992287c-f653-4032-b06c-e8d65e2536e7","0992287c-f653-4032-b06c-e8d65e2536e7"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/c9bb5d58-c781-464d-878a-8b6c469ba198.jpg",node_type:"show",ref_id:"c9bb5d58-c781-464d-878a-8b6c469ba198",show_title:"Geyser 🌊"},{children:["79ea2957-1161-4729-aacb-1981d9237e22","79ea2957-1161-4729-aacb-1981d9237e22","79ea2957-1161-4729-aacb-1981d9237e22","79ea2957-1161-4729-aacb-1981d9237e22"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/75ec86b1-cb6d-467f-a66e-5e642e5c126a.jpg",node_type:"show",ref_id:"75ec86b1-cb6d-467f-a66e-5e642e5c126a",show_title:"Bitcoin Venetians Book Club"},{children:["c0dabc11-aced-4078-93be-bca753fc2b14","c0dabc11-aced-4078-93be-bca753fc2b14","c0dabc11-aced-4078-93be-bca753fc2b14","c0dabc11-aced-4078-93be-bca753fc2b14","c0dabc11-aced-4078-93be-bca753fc2b14","d2e9db27-864c-4ee5-a7ae-abcf895bda98","d2e9db27-864c-4ee5-a7ae-abcf895bda98","d2e9db27-864c-4ee5-a7ae-abcf895bda98","d2e9db27-864c-4ee5-a7ae-abcf895bda98","d2e9db27-864c-4ee5-a7ae-abcf895bda98","6e8c90dc-12fa-415d-bf33-f286a4c5d1b1","6e8c90dc-12fa-415d-bf33-f286a4c5d1b1"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ae91fac6-a1af-4877-9a92-e793d556ee66.jpg",node_type:"show",ref_id:"ae91fac6-a1af-4877-9a92-e793d556ee66",show_title:"Compass Mining"},{children:["5c8bc8cf-4d41-4c71-8154-aafbd1ed20c1","f7310238-67ab-4a2d-8679-72f6511934be","f7310238-67ab-4a2d-8679-72f6511934be","f7310238-67ab-4a2d-8679-72f6511934be","f7310238-67ab-4a2d-8679-72f6511934be","99f0ab76-b0f5-4947-8341-759b5dff5341","99f0ab76-b0f5-4947-8341-759b5dff5341","99f0ab76-b0f5-4947-8341-759b5dff5341","c775e780-43ca-46c6-b5ef-e65b0103ee61","c775e780-43ca-46c6-b5ef-e65b0103ee61"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/965489b4-a414-4fd0-ab8c-55911b1596aa.jpg",node_type:"show",ref_id:"965489b4-a414-4fd0-ab8c-55911b1596aa",show_title:"BOLT FUN"},{children:["54fa34c9-0729-42ab-92d5-e5f8289ed32a","54fa34c9-0729-42ab-92d5-e5f8289ed32a","54fa34c9-0729-42ab-92d5-e5f8289ed32a"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2a1450bc-0649-4dc5-8ec9-1474af1ea1c3.jpg",node_type:"show",ref_id:"2a1450bc-0649-4dc5-8ec9-1474af1ea1c3",show_title:"Anders_🍆"},{children:["258c5ca5-52a6-4ce3-9994-e629263123d8"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4127f08c-505a-4a7d-935f-e93e87204089.jpg",node_type:"show",ref_id:"4127f08c-505a-4a7d-935f-e93e87204089",show_title:"Wicked Smart Bitcoin ∞/21M"},{children:["08c3748a-a85d-4d4f-a702-1fc3f1c46f33"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b2dd8be4-74b5-47b2-b470-e568657f3a0d.jpg",node_type:"show",ref_id:"b2dd8be4-74b5-47b2-b470-e568657f3a0d",show_title:"Art of Tomas"},{children:["d862511e-6330-48b3-9d4a-44e8f754f0a5","d862511e-6330-48b3-9d4a-44e8f754f0a5","d862511e-6330-48b3-9d4a-44e8f754f0a5"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e8ad867b-9cbe-4126-9f37-313b4d2329a5.jpg",node_type:"show",ref_id:"e8ad867b-9cbe-4126-9f37-313b4d2329a5",show_title:"Dr Karl Goldkamp - Keto Naturopath"},{children:["21d1d401-626c-4ec2-ba30-3c08f08ec3ea","21d1d401-626c-4ec2-ba30-3c08f08ec3ea"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/046c6869-0627-4825-8ecf-45ff0aed97b6.jpg",node_type:"show",ref_id:"046c6869-0627-4825-8ecf-45ff0aed97b6",show_title:"Alexandria The Great 🌋⛏🇿🇼"},{children:["18e340ea-90ef-4200-a19d-dc82e1e18e21"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/30180c4d-27f9-4215-81e0-6a22b16aba43.jpg",node_type:"show",ref_id:"30180c4d-27f9-4215-81e0-6a22b16aba43",show_title:"okin@8333.mobi ⚡️ 🏰"},{children:["9f12b8c2-175e-4078-9871-99a2edf2e0f3","9f12b8c2-175e-4078-9871-99a2edf2e0f3","9f12b8c2-175e-4078-9871-99a2edf2e0f3","9f12b8c2-175e-4078-9871-99a2edf2e0f3"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/99046513-2614-4eae-9de4-5781ba4b330a.jpg",node_type:"show",ref_id:"99046513-2614-4eae-9de4-5781ba4b330a",show_title:"STX:LDN"},{children:["03b5ca12-0aeb-4f04-aed0-746681d93b56"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/da64b29e-c2c0-41a6-ba29-acbaa2d022e8.jpg",node_type:"show",ref_id:"da64b29e-c2c0-41a6-ba29-acbaa2d022e8",show_title:"Rabbit Hole Recap"},{children:["70bb863d-7226-4b9e-b13e-673f94a3eb86","06494953-4c8e-4376-9450-9efb8b00acc3","06494953-4c8e-4376-9450-9efb8b00acc3","06494953-4c8e-4376-9450-9efb8b00acc3","06494953-4c8e-4376-9450-9efb8b00acc3","06494953-4c8e-4376-9450-9efb8b00acc3","06494953-4c8e-4376-9450-9efb8b00acc3","06494953-4c8e-4376-9450-9efb8b00acc3"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e1eca67b-d372-4031-bf1f-8f0ff7fe6092.jpg",node_type:"show",ref_id:"e1eca67b-d372-4031-bf1f-8f0ff7fe6092",show_title:`Once Bitten! A Bitcoin Podcast. -`},{children:["9dcca755-0a20-45e5-8e4d-dfe2800b9c6f","9dcca755-0a20-45e5-8e4d-dfe2800b9c6f"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/fe6bdbce-e91d-43cf-ab33-0e98bffabecc.jpg",node_type:"show",ref_id:"fe6bdbce-e91d-43cf-ab33-0e98bffabecc",show_title:"Bitcoin Charlotte"},{children:["b8289cbb-ec69-49a8-b6ab-c1fd808acc09"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/4240c90e-0086-4ece-bfe5-84a282c5059e.jpg",node_type:"show",ref_id:"4240c90e-0086-4ece-bfe5-84a282c5059e",show_title:"Thriller Bitcoin"},{children:["daddd93e-7bc6-4c50-a150-5199b437afc9"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/24a144b0-7ca3-40e9-9c42-86b9fce0b662.jpg",node_type:"show",ref_id:"24a144b0-7ca3-40e9-9c42-86b9fce0b662",show_title:"The Chaincode Podcast"},{children:["56bf65e9-41d5-42e1-95d6-239e4c835781","56bf65e9-41d5-42e1-95d6-239e4c835781","56bf65e9-41d5-42e1-95d6-239e4c835781","ff88a8b8-bcd6-4d86-8a65-8a68def35b9f","810a3acb-e30e-46bc-8c67-1d504b2e7c09","810a3acb-e30e-46bc-8c67-1d504b2e7c09"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/f1879df9-9bc6-4a76-951f-24548da768ef.jpg",node_type:"show",ref_id:"f1879df9-9bc6-4a76-951f-24548da768ef",show_title:"Bitcoin.Review Podcast with NVK & Guests"},{children:["f7e75069-adf6-41b0-9bb7-a6a2aa846493","f7e75069-adf6-41b0-9bb7-a6a2aa846493","6eb2a481-408f-4989-9f28-67789651259a","89049a1c-0171-4999-b003-57e1b57d92b2","d842ce17-a4c0-49a6-bdc5-5268f1d61779","8d9b0689-2e69-44c1-afe2-3519e999390a","8d9b0689-2e69-44c1-afe2-3519e999390a"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e7d2a4ca-6b44-4a45-a94c-6f48987979f7.jpg",node_type:"show",ref_id:"e7d2a4ca-6b44-4a45-a94c-6f48987979f7",show_title:"TABConf (The Atlanta Bitcoin Conference)"},{children:["3b818893-4605-499c-a467-5abcc23f9483","3b818893-4605-499c-a467-5abcc23f9483","3b818893-4605-499c-a467-5abcc23f9483","a44e78cd-dc66-4b67-9523-7ddff0d3655f","a44e78cd-dc66-4b67-9523-7ddff0d3655f","0c4f330b-a39d-4312-9775-58b42c7c9723","0c4f330b-a39d-4312-9775-58b42c7c9723","205a0650-fefe-4aaf-a894-faa8b72d966a","205a0650-fefe-4aaf-a894-faa8b72d966a","205a0650-fefe-4aaf-a894-faa8b72d966a","205a0650-fefe-4aaf-a894-faa8b72d966a","205a0650-fefe-4aaf-a894-faa8b72d966a","a60dc641-5d14-4960-ab73-66ff199edd1d"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/2ec62250-4755-4616-8342-096a2cfab95f.jpg",node_type:"show",ref_id:"2ec62250-4755-4616-8342-096a2cfab95f",show_title:"Voltage"},{children:["3af98dc1-5e7c-4ef3-ad74-b9b6afaee8b9","625d9252-2f5e-4f53-b577-dd2dfd4d4749"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/492cbcce-3744-4d8b-b2ca-3a7f063e798a.jpg",node_type:"show",ref_id:"492cbcce-3744-4d8b-b2ca-3a7f063e798a",show_title:"Swan Bitcoin"},{children:["8eef2f82-bbf9-4fef-ba3d-102679d4a1a5"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/b29c81c8-cccd-4a6b-b78f-3c1591a54d27.jpg",node_type:"show",ref_id:"b29c81c8-cccd-4a6b-b78f-3c1591a54d27",show_title:"Austin Bitcoin Club"},{children:["a1e3c3cf-2045-4c33-8152-0e162b7ca729"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/63e0cbc0-731d-4ea0-9dd2-2b8b841eb28a.jpg",node_type:"show",ref_id:"63e0cbc0-731d-4ea0-9dd2-2b8b841eb28a",show_title:"Synonym"},{children:["e06b030a-063e-4894-9914-d326220f75f8","e06b030a-063e-4894-9914-d326220f75f8","e06b030a-063e-4894-9914-d326220f75f8"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/ea2cf2ae-76de-4185-818c-384b3b06228b.jpg",node_type:"show",ref_id:"ea2cf2ae-76de-4185-818c-384b3b06228b",show_title:"Blockware Intelligence"},{children:["b707bbd8-1a9e-4aee-8e0e-2fe0be24c851"],image_url:"https://stakwork-uploads.s3.amazonaws.com/knowledge-graph-joe/content-images/e79b1a57-ecd0-4df3-b8ec-1a1a55d047e7.jpg",node_type:"show",ref_id:"e79b1a57-ecd0-4df3-b8ec-1a1a55d047e7",show_title:"Pleb UnderGround"}],related:[{episode_title:"The Orange Sun ☀️ #Bitcoin vs. Fiat",ref_id:"e5b1ad5b-2ce2-4192-a6d9-e99f0e3e88b5",show_title:"Satoshi’s Journal"},{episode_title:"Orange Sun 🌞 Why Ethereum is a shitcoin/scam & Bitcoin News",ref_id:"0645c5a3-b511-471d-9d8e-ef63b4dfe340",show_title:"Satoshi’s Journal"},{episode_title:"#Bitcoin Beats⚡🎶 by @SatoshisJournal Genesis Block walkthrough",ref_id:"aba7b4db-77bb-40c4-a0d4-4ce20da7b9ba",show_title:"Satoshi’s Journal"},{episode_title:"The Orange Sun 🌞 Does Price = Value? #Bitcoin",ref_id:"a0826cdb-6198-4416-bd12-1dd5aa09a075",show_title:"Satoshi’s Journal"},{episode_title:"#Bitcoin Beats⚡🎶 by @SatoshisJournal w @NEEDcreations & @DJSATOSHI18",ref_id:"fd00f285-c11e-40ba-8af9-b67265ac321b",show_title:"Satoshi’s Journal"},{episode_title:'The Orange Sun ☀️ Reading/Discussion of "The Book of Satoshi."',ref_id:"fcbe1196-c55d-476f-92d6-4dcba954eaf3",show_title:"Satoshi’s Journal"},{episode_title:'The Orange 🌞 Reading/Discussion "The Book of Satoshi" & Bitcoin News',ref_id:"c6447277-9a58-411f-85e1-5ac166884ce5",show_title:"Satoshi’s Journal"},{episode_title:"The Orange Sun 🌞 Bitcoin News and Talk - Happy Holidays!",ref_id:"d0b59017-ae64-47d4-be5c-c1531c9d480f",show_title:"Satoshi’s Journal"},{episode_title:`The Orange Sun 🌞 Reading/Discussion Tomer Strolight's "Why Bitcoin?"`,ref_id:"95848760-3863-4595-b049-f25826eba2d3",show_title:"Satoshi’s Journal"}]},typesWeighedByChildren=["show","episode"],getSuperficialNodeWeight=(tt,et)=>{var rt;return tt.weight?tt.weight:typesWeighedByChildren.includes(tt.node_type)?((rt=tt==null?void 0:tt.children)==null?void 0:rt.length)||0:et.filter(it=>it.sourceRef===tt.ref_id||it.targetRef===tt.ref_id).length},getMaxSuperficialWeightPerNodeType=(tt,et)=>{const nt={};return tt.forEach(rt=>{const it=getSuperficialNodeWeight(rt,et);(!nt[rt.node_type]||nt[rt.node_type]tt.clone().normalize().clone().negate().normalize().multiplyScalar(et).add(tt),getPositionFromLngLat=(tt,et,nt)=>{const rt=et*Math.PI/180,it=tt*Math.PI/180,ot=nt*Math.cos(rt)*Math.cos(it),at=nt*Math.sin(rt),st=nt*Math.cos(rt)*Math.sin(it);return new Vector3(ot,at,st)},generateEarthGraphPositions=tt=>{const et=tt.map(rt=>{const{lng:it,lat:ot}=rt.coordinates?rt.coordinates:{lng:getRandomLngLat(),lat:getRandomLngLat()},at=getPositionFromLngLat(it,ot,dataRadius);return{...rt,...at}}),nt=generateLinksFromNodeData(et,!0,!0);return{nodes:et,links:nt}};function forceCenter(tt,et,nt){var rt,it=1;tt==null&&(tt=0),et==null&&(et=0),nt==null&&(nt=0);function ot(){var at,st=rt.length,lt,ct=0,ut=0,ht=0;for(at=0;at=(lt=(at+st)/2))?at=lt:st=lt,rt=it,!(it=it[ht=+ut]))return rt[ht]=ot,tt;if(ct=+tt._x.call(null,it.data),et===ct)return ot.next=it,rt?rt[ht]=ot:tt._root=ot,tt;do rt=rt?rt[ht]=new Array(2):tt._root=new Array(2),(ut=et>=(lt=(at+st)/2))?at=lt:st=lt;while((ht=+ut)==(dt=+(ct>=lt)));return rt[dt]=it,rt[ht]=ot,tt}function addAll$2(tt){Array.isArray(tt)||(tt=Array.from(tt));const et=tt.length,nt=new Float64Array(et);let rt=1/0,it=-1/0;for(let ot=0,at;otit&&(it=at));if(rt>it)return this;this.cover(rt).cover(it);for(let ot=0;ottt||tt>=nt;)switch(at=+(ttat||(ot=ct.x1)=ht))&&(ct=st[st.length-1],st[st.length-1]=st[st.length-1-ut],st[st.length-1-ut]=ct)}else{var dt=Math.abs(tt-+this._x.call(null,lt.data));dt=(ct=(at+st)/2))?at=ct:st=ct,et=nt,!(nt=nt[ht=+ut]))return this;if(!nt.length)break;et[ht+1&1]&&(rt=et,dt=ht)}for(;nt.data!==tt;)if(it=nt,!(nt=nt.next))return this;return(ot=nt.next)&&delete nt.next,it?(ot?it.next=ot:delete it.next,this):et?(ot?et[ht]=ot:delete et[ht],(nt=et[0]||et[1])&&nt===(et[1]||et[0])&&!nt.length&&(rt?rt[dt]=nt:this._root=nt),this):(this._root=ot,this)}function removeAll$2(tt){for(var et=0,nt=tt.length;et=(ht=(st+ct)/2))?st=ht:ct=ht,(yt=nt>=(dt=(lt+ut)/2))?lt=dt:ut=dt,it=ot,!(ot=ot[bt=yt<<1|gt]))return it[bt]=at,tt;if(pt=+tt._x.call(null,ot.data),mt=+tt._y.call(null,ot.data),et===pt&&nt===mt)return at.next=ot,it?it[bt]=at:tt._root=at,tt;do it=it?it[bt]=new Array(4):tt._root=new Array(4),(gt=et>=(ht=(st+ct)/2))?st=ht:ct=ht,(yt=nt>=(dt=(lt+ut)/2))?lt=dt:ut=dt;while((bt=yt<<1|gt)===(wt=(mt>=dt)<<1|pt>=ht));return it[wt]=ot,it[bt]=at,tt}function addAll$1(tt){var et,nt,rt=tt.length,it,ot,at=new Array(rt),st=new Array(rt),lt=1/0,ct=1/0,ut=-1/0,ht=-1/0;for(nt=0;ntut&&(ut=it),otht&&(ht=ot));if(lt>ut||ct>ht)return this;for(this.cover(lt,ct).cover(ut,ht),nt=0;nttt||tt>=it||rt>et||et>=ot;)switch(ct=(etut||(st=mt.y0)>ht||(lt=mt.x1)=bt)<<1|tt>=yt)&&(mt=dt[dt.length-1],dt[dt.length-1]=dt[dt.length-1-gt],dt[dt.length-1-gt]=mt)}else{var wt=tt-+this._x.call(null,pt.data),vt=et-+this._y.call(null,pt.data),kt=wt*wt+vt*vt;if(kt=(dt=(at+lt)/2))?at=dt:lt=dt,(gt=ht>=(pt=(st+ct)/2))?st=pt:ct=pt,et=nt,!(nt=nt[yt=gt<<1|mt]))return this;if(!nt.length)break;(et[yt+1&3]||et[yt+2&3]||et[yt+3&3])&&(rt=et,bt=yt)}for(;nt.data!==tt;)if(it=nt,!(nt=nt.next))return this;return(ot=nt.next)&&delete nt.next,it?(ot?it.next=ot:delete it.next,this):et?(ot?et[yt]=ot:delete et[yt],(nt=et[0]||et[1]||et[2]||et[3])&&nt===(et[3]||et[2]||et[1]||et[0])&&!nt.length&&(rt?rt[bt]=nt:this._root=nt),this):(this._root=ot,this)}function removeAll$1(tt){for(var et=0,nt=tt.length;et=(mt=(lt+ht)/2))?lt=mt:ht=mt,(St=nt>=(gt=(ct+dt)/2))?ct=gt:dt=gt,(Tt=rt>=(yt=(ut+pt)/2))?ut=yt:pt=yt,ot=at,!(at=at[At=Tt<<2|St<<1|kt]))return ot[At]=st,tt;if(bt=+tt._x.call(null,at.data),wt=+tt._y.call(null,at.data),vt=+tt._z.call(null,at.data),et===bt&&nt===wt&&rt===vt)return st.next=at,ot?ot[At]=st:tt._root=st,tt;do ot=ot?ot[At]=new Array(8):tt._root=new Array(8),(kt=et>=(mt=(lt+ht)/2))?lt=mt:ht=mt,(St=nt>=(gt=(ct+dt)/2))?ct=gt:dt=gt,(Tt=rt>=(yt=(ut+pt)/2))?ut=yt:pt=yt;while((At=Tt<<2|St<<1|kt)===(Et=(vt>=yt)<<2|(wt>=gt)<<1|bt>=mt));return ot[Et]=at,ot[At]=st,tt}function addAll(tt){Array.isArray(tt)||(tt=Array.from(tt));const et=tt.length,nt=new Float64Array(et),rt=new Float64Array(et),it=new Float64Array(et);let ot=1/0,at=1/0,st=1/0,lt=-1/0,ct=-1/0,ut=-1/0;for(let ht=0,dt,pt,mt,gt;htlt&&(lt=pt),mtct&&(ct=mt),gtut&&(ut=gt));if(ot>lt||at>ct||st>ut)return this;this.cover(ot,at,st).cover(lt,ct,ut);for(let ht=0;httt||tt>=at||it>et||et>=st||ot>nt||nt>=lt;)switch(dt=(ntmt||(ct=vt.y0)>gt||(ut=vt.z0)>yt||(ht=vt.x1)=At)<<2|(et>=Tt)<<1|tt>=St)&&(vt=bt[bt.length-1],bt[bt.length-1]=bt[bt.length-1-kt],bt[bt.length-1-kt]=vt)}else{var Et=tt-+this._x.call(null,wt.data),Mt=et-+this._y.call(null,wt.data),Lt=nt-+this._z.call(null,wt.data),jt=Et*Et+Mt*Mt+Lt*Lt;if(jt=(gt=(at+ct)/2))?at=gt:ct=gt,(vt=pt>=(yt=(st+ut)/2))?st=yt:ut=yt,(kt=mt>=(bt=(lt+ht)/2))?lt=bt:ht=bt,et=nt,!(nt=nt[St=kt<<2|vt<<1|wt]))return this;if(!nt.length)break;(et[St+1&7]||et[St+2&7]||et[St+3&7]||et[St+4&7]||et[St+5&7]||et[St+6&7]||et[St+7&7])&&(rt=et,Tt=St)}for(;nt.data!==tt;)if(it=nt,!(nt=nt.next))return this;return(ot=nt.next)&&delete nt.next,it?(ot?it.next=ot:delete it.next,this):et?(ot?et[St]=ot:delete et[St],(nt=et[0]||et[1]||et[2]||et[3]||et[4]||et[5]||et[6]||et[7])&&nt===(et[7]||et[6]||et[5]||et[4]||et[3]||et[2]||et[1]||et[0])&&!nt.length&&(rt?rt[Tt]=nt:this._root=nt),this):(this._root=ot,this)}function removeAll(tt){for(var et=0,nt=tt.length;et1&&(gt=pt.y+pt.vy),nt>2&&(yt=pt.z+pt.vz),dt.visit(kt);function kt(St,Tt,At,Et,Mt,Lt,jt){var Rt=[Tt,At,Et,Mt,Lt,jt],$t=Rt[0],xt=Rt[1],It=Rt[2],Ot=Rt[nt],zt=Rt[nt+1],Ut=Rt[nt+2],Wt=St.data,Ft=St.r,Nt=bt+Ft;if(Wt){if(Wt.index>pt.index){var Ct=mt-Wt.x-Wt.vx,Ht=nt>1?gt-Wt.y-Wt.vy:0,Jt=nt>2?yt-Wt.z-Wt.vz:0,nn=Ct*Ct+Ht*Ht+Jt*Jt;nn1&&Ht===0&&(Ht=jiggle(it),nn+=Ht*Ht),nt>2&&Jt===0&&(Jt=jiggle(it),nn+=Jt*Jt),nn=(Nt-(nn=Math.sqrt(nn)))/nn*ot,pt.vx+=(Ct*=nn)*(Nt=(Ft*=Ft)/(wt+Ft)),nt>1&&(pt.vy+=(Ht*=nn)*Nt),nt>2&&(pt.vz+=(Jt*=nn)*Nt),Wt.vx-=Ct*(Nt=1-Nt),nt>1&&(Wt.vy-=Ht*Nt),nt>2&&(Wt.vz-=Jt*Nt))}return}return $t>mt+Nt||Ot1&&(xt>gt+Nt||zt2&&(It>yt+Nt||Utut.r&&(ut.r=ut[ht].r)}function ct(){if(et){var ut,ht=et.length,dt;for(rt=new Array(ht),ut=0;uttypeof dt=="function")||Math.random,nt=ht.find(dt=>[1,2,3].includes(dt))||2,ct()},st.iterations=function(ut){return arguments.length?(at=+ut,st):at},st.strength=function(ut){return arguments.length?(ot=+ut,st):ot},st.radius=function(ut){return arguments.length?(tt=typeof ut=="function"?ut:constant$4(+ut),ct(),st):tt},st}function index$1(tt){return tt.index}function find$1(tt,et){var nt=tt.get(et);if(!nt)throw new Error("node not found: "+et);return nt}function forceLink(tt){var et=index$1,nt=dt,rt,it=constant$4(30),ot,at,st,lt,ct,ut,ht=1;tt==null&&(tt=[]);function dt(bt){return 1/Math.min(lt[bt.source.index],lt[bt.target.index])}function pt(bt){for(var wt=0,vt=tt.length;wt1&&(Mt=At.y+At.vy-Tt.y-Tt.vy||jiggle(ut)),st>2&&(Lt=At.z+At.vz-Tt.z-Tt.vz||jiggle(ut)),jt=Math.sqrt(Et*Et+Mt*Mt+Lt*Lt),jt=(jt-ot[kt])/jt*bt*rt[kt],Et*=jt,Mt*=jt,Lt*=jt,At.vx-=Et*(Rt=ct[kt]),st>1&&(At.vy-=Mt*Rt),st>2&&(At.vz-=Lt*Rt),Tt.vx+=Et*(Rt=1-Rt),st>1&&(Tt.vy+=Mt*Rt),st>2&&(Tt.vz+=Lt*Rt)}function mt(){if(at){var bt,wt=at.length,vt=tt.length,kt=new Map(at.map((Tt,At)=>[et(Tt,At,at),Tt])),St;for(bt=0,lt=new Array(wt);bttypeof vt=="function")||Math.random,st=wt.find(vt=>[1,2,3].includes(vt))||2,mt()},pt.links=function(bt){return arguments.length?(tt=bt,mt(),pt):tt},pt.id=function(bt){return arguments.length?(et=bt,pt):et},pt.iterations=function(bt){return arguments.length?(ht=+bt,pt):ht},pt.strength=function(bt){return arguments.length?(nt=typeof bt=="function"?bt:constant$4(+bt),gt(),pt):nt},pt.distance=function(bt){return arguments.length?(it=typeof bt=="function"?bt:constant$4(+bt),yt(),pt):it},pt}var noop$5={value:()=>{}};function dispatch(){for(var tt=0,et=arguments.length,nt={},rt;tt=0&&(rt=nt.slice(it+1),nt=nt.slice(0,it)),nt&&!et.hasOwnProperty(nt))throw new Error("unknown type: "+nt);return{type:nt,name:rt}})}Dispatch.prototype=dispatch.prototype={constructor:Dispatch,on:function(tt,et){var nt=this._,rt=parseTypenames(tt+"",nt),it,ot=-1,at=rt.length;if(arguments.length<2){for(;++ot0)for(var nt=new Array(it),rt=0,it,ot;rt=0&&tt._call.call(void 0,et),tt=tt._next;--frame}function wake(){clockNow=(clockLast=clock.now())+clockSkew,frame=timeout=0;try{timerFlush()}finally{frame=0,nap(),clockNow=0}}function poke(){var tt=clock.now(),et=tt-clockLast;et>pokeDelay&&(clockSkew-=et,clockLast=tt)}function nap(){for(var tt,et=taskHead,nt,rt=1/0;et;)et._call?(rt>et._time&&(rt=et._time),tt=et,et=et._next):(nt=et._next,et._next=null,et=tt?tt._next=nt:taskHead=nt);taskTail=tt,sleep(rt)}function sleep(tt){if(!frame){timeout&&(timeout=clearTimeout(timeout));var et=tt-clockNow;et>24?(tt<1/0&&(timeout=setTimeout(wake,tt-clock.now()-clockSkew)),interval&&(interval=clearInterval(interval))):(interval||(clockLast=clock.now(),interval=setInterval(poke,pokeDelay)),frame=1,setFrame(wake))}}const a$2=1664525,c$4=1013904223,m$3=4294967296;function lcg(){let tt=1;return()=>(tt=(a$2*tt+c$4)%m$3)/m$3}var MAX_DIMENSIONS=3;function x$2(tt){return tt.x}function y$2(tt){return tt.y}function z$1(tt){return tt.z}var initialRadius=10,initialAngleRoll=Math.PI*(3-Math.sqrt(5)),initialAngleYaw=Math.PI*20/(9+Math.sqrt(221));function forceSimulation(tt,et){et=et||2;var nt=Math.min(MAX_DIMENSIONS,Math.max(1,Math.round(et))),rt,it=1,ot=.001,at=1-Math.pow(ot,1/300),st=0,lt=.6,ct=new Map,ut=timer$1(pt),ht=dispatch("tick","end"),dt=lcg();tt==null&&(tt=[]);function pt(){mt(),ht.call("tick",rt),it1&&(kt.fy==null?kt.y+=kt.vy*=lt:(kt.y=kt.fy,kt.vy=0)),nt>2&&(kt.fz==null?kt.z+=kt.vz*=lt:(kt.z=kt.fz,kt.vz=0));return rt}function gt(){for(var bt=0,wt=tt.length,vt;bt1&&isNaN(vt.y)||nt>2&&isNaN(vt.z)){var kt=initialRadius*(nt>2?Math.cbrt(.5+bt):nt>1?Math.sqrt(.5+bt):bt),St=bt*initialAngleRoll,Tt=bt*initialAngleYaw;nt===1?vt.x=kt:nt===2?(vt.x=kt*Math.cos(St),vt.y=kt*Math.sin(St)):(vt.x=kt*Math.sin(St)*Math.cos(Tt),vt.y=kt*Math.cos(St),vt.z=kt*Math.sin(St)*Math.sin(Tt))}(isNaN(vt.vx)||nt>1&&isNaN(vt.vy)||nt>2&&isNaN(vt.vz))&&(vt.vx=0,nt>1&&(vt.vy=0),nt>2&&(vt.vz=0))}}function yt(bt){return bt.initialize&&bt.initialize(tt,dt,nt),bt}return gt(),rt={tick:mt,restart:function(){return ut.restart(pt),rt},stop:function(){return ut.stop(),rt},numDimensions:function(bt){return arguments.length?(nt=Math.min(MAX_DIMENSIONS,Math.max(1,Math.round(bt))),ct.forEach(yt),rt):nt},nodes:function(bt){return arguments.length?(tt=bt,gt(),ct.forEach(yt),rt):tt},alpha:function(bt){return arguments.length?(it=+bt,rt):it},alphaMin:function(bt){return arguments.length?(ot=+bt,rt):ot},alphaDecay:function(bt){return arguments.length?(at=+bt,rt):+at},alphaTarget:function(bt){return arguments.length?(st=+bt,rt):st},velocityDecay:function(bt){return arguments.length?(lt=1-bt,rt):1-lt},randomSource:function(bt){return arguments.length?(dt=bt,ct.forEach(yt),rt):dt},force:function(bt,wt){return arguments.length>1?(wt==null?ct.delete(bt):ct.set(bt,yt(wt)),rt):ct.get(bt)},find:function(){var bt=Array.prototype.slice.call(arguments),wt=bt.shift()||0,vt=(nt>1?bt.shift():null)||0,kt=(nt>2?bt.shift():null)||0,St=bt.shift()||1/0,Tt=0,At=tt.length,Et,Mt,Lt,jt,Rt,$t;for(St*=St,Tt=0;Tt1?(ht.on(bt,wt),rt):ht.on(bt)}}}function forceManyBody(){var tt,et,nt,rt,it,ot=constant$4(-30),at,st=1,lt=1/0,ct=.81;function ut(mt){var gt,yt=tt.length,bt=(et===1?binarytree(tt,x$2):et===2?quadtree(tt,x$2,y$2):et===3?octree(tt,x$2,y$2,z$1):null).visitAfter(dt);for(it=mt,gt=0;gt1&&(mt.y=kt/wt),et>2&&(mt.z=St/wt)}else{yt=mt,yt.x=yt.data.x,et>1&&(yt.y=yt.data.y),et>2&&(yt.z=yt.data.z);do gt+=at[yt.data.index];while(yt=yt.next)}mt.value=gt}function pt(mt,gt,yt,bt,wt){if(!mt.value)return!0;var vt=[yt,bt,wt][et-1],kt=mt.x-nt.x,St=et>1?mt.y-nt.y:0,Tt=et>2?mt.z-nt.z:0,At=vt-gt,Et=kt*kt+St*St+Tt*Tt;if(At*At/ct1&&St===0&&(St=jiggle(rt),Et+=St*St),et>2&&Tt===0&&(Tt=jiggle(rt),Et+=Tt*Tt),Et1&&(nt.vy+=St*mt.value*it/Et),et>2&&(nt.vz+=Tt*mt.value*it/Et)),!0;if(mt.length||Et>=lt)return;(mt.data!==nt||mt.next)&&(kt===0&&(kt=jiggle(rt),Et+=kt*kt),et>1&&St===0&&(St=jiggle(rt),Et+=St*St),et>2&&Tt===0&&(Tt=jiggle(rt),Et+=Tt*Tt),Et1&&(nt.vy+=St*At),et>2&&(nt.vz+=Tt*At));while(mt=mt.next)}return ut.initialize=function(mt,...gt){tt=mt,rt=gt.find(yt=>typeof yt=="function")||Math.random,et=gt.find(yt=>[1,2,3].includes(yt))||2,ht()},ut.strength=function(mt){return arguments.length?(ot=typeof mt=="function"?mt:constant$4(+mt),ht(),ut):ot},ut.distanceMin=function(mt){return arguments.length?(st=mt*mt,ut):Math.sqrt(st)},ut.distanceMax=function(mt){return arguments.length?(lt=mt*mt,ut):Math.sqrt(lt)},ut.theta=function(mt){return arguments.length?(ct=mt*mt,ut):Math.sqrt(ct)},ut}const simulation=forceSimulation().stop(),defaults$2={numDimensions:3,velocityDecay:.9,forceChargeStrength:-20,forceChargeMinDistance:10,forceChargeMaxDistance:8e3,forceLinkStrength:.04,forceCenterStrength:.85,disableCollide:!1,disableCenter:!1,disableLink:!1,disableCharge:!1,forceCollideRadiusMethod:tt=>(tt.scale||1)*6+200,forceLinkDistanceMethod:tt=>{const et=tt.source.node_type;let nt=50;switch(et){case"topic":nt=30;break;case"guest":nt=30;break;case"clip":nt=10;break;case"episode":nt=15;break}return nt*2}},runForceSimulation=(tt,et,{numDimensions:nt=defaults$2.numDimensions,velocityDecay:rt=defaults$2.velocityDecay,forceChargeStrength:it=defaults$2.forceChargeStrength,forceChargeMinDistance:ot=defaults$2.forceChargeMinDistance,forceChargeMaxDistance:at=defaults$2.forceChargeMaxDistance,forceLinkStrength:st=defaults$2.forceLinkStrength,forceCenterStrength:lt=defaults$2.forceCenterStrength,forceLinkDistanceMethod:ct=defaults$2.forceLinkDistanceMethod,forceCollideRadiusMethod:ut=defaults$2.forceCollideRadiusMethod,disableCollide:ht=defaults$2.disableCollide,disableCenter:dt=defaults$2.disableCenter,disableLink:pt=defaults$2.disableLink,disableCharge:mt=defaults$2.disableCharge})=>(simulation.alpha(1).stop().numDimensions(nt).velocityDecay(rt).force("collide",ht?null:forceCollide().radius(ut).iterations(1)).force("center",dt?null:forceCenter().strength(lt)).force("charge",mt?null:forceManyBody().strength(it).distanceMin(ot).distanceMax(at)).nodes(tt).force("link",pt?null:forceLink().distance(ct).strength(st).id(gt=>gt.id).links(et.filter(gt=>!gt.onlyVisibleOnSelect))).alpha(1).restart(),simulation),simulationTicks$1=60,collisionTicks$1=20,runSimulationPhase$1=tt=>{for(let et=0;et{tt.force("collide",forceCollide().radius(et=>(et.scale||1)*20).iterations(1));for(let et=0;et{const et=tt.map(ot=>({...ot,x:0,y:0,z:0})),nt=generateLinksFromNodeData(et,!1,!1),rt=runForceSimulation(et,nt,{numDimensions:3,forceLinkStrength:.5,forceChargeStrength:-40,forceCenterStrength:.3,velocityDecay:.5});runSimulationPhase$1(rt),runCollisionPhase$1(rt),rt.stop();const it=nt.map(ot=>{const at=et.find(ht=>ht.ref_id===ot.sourceRef),st=et.find(ht=>ht.ref_id===ot.targetRef),lt=["guest","topic"].some(ht=>ht===(at==null?void 0:at.node_type)||ht===(st==null?void 0:st.node_type)),ct=new Vector3((at==null?void 0:at.x)||0,(at==null?void 0:at.y)||0,(at==null?void 0:at.z)||0),ut=new Vector3((st==null?void 0:st.x)||0,(st==null?void 0:st.y)||0,(st==null?void 0:st.z)||0);return{...ot,onlyVisibleOnSelect:lt,sourcePosition:ct,targetPosition:ut}});return{nodes:et,links:it}},sortAB=(tt,et,nt)=>{let rt=-2;return tt===nt&&et===nt?rt=0:tt===nt&&et!==nt?rt=-1:tt!==nt&&et===nt&&(rt=1),rt},sortNodesByHierarchy=tt=>tt.map(nt=>nt).sort((nt,rt)=>{let it=0;return nt.node_type==="show"||rt.node_type==="show"?it=sortAB(nt.node_type,rt.node_type,"show"):nt.node_type==="episode"||rt.node_type==="episode"?it=sortAB(nt.node_type,rt.node_type,"episode"):nt.node_type==="clip"||rt.node_type==="clip"?it=sortAB(nt.node_type,rt.node_type,"clip"):nt.node_type!=="guest"&&rt.node_type==="guest"?it=sortAB(nt.node_type,rt.node_type,"guest"):it=0,it});function getMyParents(tt,et){const{ref_id:nt}=tt;return!nt||!et?[]:et.filter(it=>{var ot;return(ot=it.children)==null?void 0:ot.includes(nt)})}function getMyChildren(tt,et){return et.filter(rt=>rt.ref_id&&tt.includes(rt.ref_id))}const simulationTicks=60,collisionTicks=20,universeScale$1=5e3,universeCube={scale:universeScale$1/2,position:{x:0,y:0,z:0}};function generateNodePosition$1(tt,et){const{scale:nt,position:rt}=universeCube,it={x:rt.x+Math.random()*nt-nt*.5,y:rt.y+Math.random()*nt-nt*.5,z:rt.z+Math.random()*nt-nt*.5},ot=getMyParents(tt,et),at=ot!=null&&ot.length?new Vector3(ot[0].x,ot[0].y,ot[0].z):null;return at&&(it.x=at.x,it.y=at.y,it.z=at.z),new Vector3(it.x,it.y,it.z)}const runSimulationPhase=tt=>{for(let et=0;et{tt.force("collide",forceCollide().radius(et=>(et.scale||1)*20).iterations(1));for(let et=0;et{const et=[],nt=tt.map(at=>{const st=generateNodePosition$1(at,et),lt={...at,...st};return et.push(lt),lt}),rt=generateLinksFromNodeData(nt,!0,!0),it=runForceSimulation(nt,rt,{numDimensions:3,forceLinkStrength:.01,forceChargeStrength:-80,velocityDecay:.5,disableCenter:!0,disableCharge:!0});runSimulationPhase(it),runCollisionPhase(it),it.stop();const ot=rt.map(at=>{const st=nt.find(dt=>dt.ref_id===at.sourceRef),lt=nt.find(dt=>dt.ref_id===at.targetRef),ct=new Vector3((st==null?void 0:st.x)||0,(st==null?void 0:st.y)||0,(st==null?void 0:st.z)||0),ut=new Vector3((lt==null?void 0:lt.x)||0,(lt==null?void 0:lt.y)||0,(lt==null?void 0:lt.z)||0);return{...at,onlyVisibleOnSelect:!0,sourcePosition:ct,targetPosition:ut}});return{nodes:nt,links:ot}},universeScale=5e3,padding=300,guestCube={scale:universeScale/2,position:{x:0,y:0,z:universeScale/2+padding}},topicCube={scale:universeScale/2,position:{x:0,y:0,z:-(universeScale/2+padding)}},dataCube={scale:universeScale/2,position:{x:0,y:0,z:0}};function generateGuestNodePosition(){const{scale:tt,position:et}=guestCube,nt={x:et.x+Math.random()*tt-tt*.5,y:et.y+Math.random()*tt-tt*.5,z:et.z+Math.random()*tt-tt*.5},rt=1,it=10;return new Vector3(nt.x+rt*it,nt.y+rt*it,nt.z+rt*it)}function generateTopicNodePosition(){const{scale:tt,position:et}=topicCube,nt={x:et.x+Math.random()*tt-tt*.5,y:et.y+Math.random()*tt-tt*.5,z:et.z+Math.random()*tt-tt*.5},rt=1,it=10;return new Vector3(nt.x+rt*it,nt.y+rt*it,nt.z+rt*it)}function generateNearbyPosition(tt,et,nt=1){let it=0,ot=10*1;const at=0;switch(et){case"episode":ot+=50*(nt||0);break;case"clip":ot=0,it+=50*(nt||0);break}const st=new Vector3;return st.x=tt.x+it,st.y=tt.y+ot,st.z=tt.z+at,st}function generateNodePosition(tt,et,nt){const{ref_id:rt}=tt,{scale:it,position:ot}=dataCube,at={x:ot.x+Math.random()*it-it*.5,y:ot.y+Math.random()*it-it*.5,z:ot.z+Math.random()*it-it*.5},st=getMyParents(tt,nt);let lt=null;if(st!=null&&st.length){const ht=st[0],pt=getMyChildren(ht.children||[],et).findIndex(mt=>mt.ref_id===rt);lt=generateNearbyPosition(new Vector3(ht.x,ht.y,ht.z),tt.node_type,pt+1)}lt&&(at.x=lt.x,at.y=lt.y,at.z=lt.z);const ct=1,ut=1;return new Vector3(at.x+ct*ut,at.y+ct*ut,at.z+ct*ut)}const generateSplitGraphPositions=tt=>{const et=sortNodesByHierarchy(tt),nt=[],rt=et.map(at=>{let st=new Vector3(0,0,0);switch(at.node_type){case"guest":st=generateGuestNodePosition();break;case"topic":st=generateTopicNodePosition();break;case"data_series":st=generateNodePosition({},et,nt);break;default:st=generateNodePosition(at,et,nt);break}const lt={...at,...st};return nt.push(lt),lt}),ot=generateLinksFromNodeData(rt,!0,!0).map(at=>{const st=rt.find(dt=>dt.ref_id===at.sourceRef),lt=rt.find(dt=>dt.ref_id===at.targetRef);let ct=!1;((st==null?void 0:st.node_type)==="guest"||(st==null?void 0:st.node_type)==="topic"||(lt==null?void 0:lt.node_type)==="guest"||(lt==null?void 0:lt.node_type)==="topic")&&(ct=!0);const ut=new Vector3((st==null?void 0:st.x)||0,(st==null?void 0:st.y)||0,(st==null?void 0:st.z)||0),ht=new Vector3((lt==null?void 0:lt.x)||0,(lt==null?void 0:lt.y)||0,(lt==null?void 0:lt.z)||0);return{...at,onlyVisibleOnSelect:ct,sourcePosition:ut,targetPosition:ht}});return rt.sort((at,st)=>(st.weight||0)-(at.weight||0)),{nodes:rt,links:ot}},getGraphDataPositions=(tt,et)=>tt==="split"?generateSplitGraphPositions(et):tt==="sphere"?generateSphereGraphPositions(et):tt==="earth"?generateEarthGraphPositions(et):generateForceGraphPositions(et),defaultData$8={links:[],nodes:[]},shouldIncludeTopics=!0,maxScale=26,fetchGraphData=async tt=>{try{return getGraphData(tt)}catch{return defaultData$8}},fetchNodes=async tt=>{if(!tt)try{return await api$1.get("/prediction/content/latest")}catch(nt){return console.error(nt),mock}if(isDevelopment||isE2E)return await api$1.get(`/v2/searching?word=${tt}&free=true`);const et=await getLSat("searching");if(!et)throw new Error("An error occured calling getLSat");return api$1.get(`/v2/search?word=${tt}`,{Authorization:et})},getSentimentData=async tt=>{const et=tt&&new URLSearchParams(tt),nt=et?`/sentiments?${et.toString()}`:"/sentiments";if(isE2E)return await api$1.get(nt);const rt=await getLSat("sentiments",et==null?void 0:et.toString());if(!rt)throw new Error("An error occured calling getLSat");return await api$1.get(nt,{Authorization:rt})},postTeachMe=async tt=>{const et=await getLSat("teachme");if(!et)throw new Error("An error occured calling getLSat");return api$1.post("/teachme",JSON.stringify(tt),{Authorization:et})},postAskQuestion=async tt=>{const et=await getLSat("ask_question");if(!et)throw new Error("An error occured calling getLSat");return api$1.post("/ask_question",JSON.stringify(tt),{Authorization:et})},getNodeScale=tt=>{switch(tt.node_type){case"guest":case"episode":case"document":return 2;case"show":return 3;default:return 1.5}};function generateTopicNodesFromMap(tt,et){Object.entries(tt).forEach(([nt,rt],it)=>{const{children:ot,position:at}=rt,{x:st,y:lt,z:ct}=at,ut=ot.length*2>maxScale?maxScale:ot.length*2,ht=`topic_node_${it}`;et({x:st,y:lt,z:ct,children:ot,colors:["#000"],id:ht,label:nt,name:nt,type:"topic",node_type:"topic",ref_id:ht,scale:ut,show_title:nt,text:nt,weight:0})})}function generateGuestNodesFromMap(tt,et){Object.entries(tt).forEach(([nt,rt],it)=>{const ot=rt.children,at=ot.length*2>maxScale?maxScale:ot.length*2,st=nt||`guestnode_${it}`,lt={...rt,x:0,y:0,z:0,colors:["#000"],id:st,image_url:rt.imageUrl,label:rt.name,name:rt.name,node_type:"guest",ref_id:st,scale:at,show_title:rt.name,text:rt.twitterHandle,type:"guest",weight:0};et(lt)})}const getGraphData=async tt=>{const{graphStyle:et}=useDataStore.getState();let nt=[];const rt={},it={};try{const ot=await fetchNodes(tt),at=ot.data_series?[{...ot.data_series,x:0,y:0,z:0,boost:null,image_url:"node_data.webp",label:ot.data_series.title,name:"Name",node_type:"data_series",ref_id:"",type:"data_series",weight:2}]:[],st=[...ot.exact,...ot.related,...at];let lt=0;st.length&&st.forEach((dt,pt)=>{var yt;if(dt.weight&<bt.ref_id===dt.ref_id))return;const gt=(yt=dt.image_url)==null?void 0:yt.replace(AWS_IMAGE_BUCKET_URL,CLOUDFRONT_IMAGE_BUCKET_URL).replace(".jpg","_s.jpg");nt.push({...dt,scale:getNodeScale(dt),id:dt.ref_id||dt.tweet_id||dt.id,image_url:gt,type:dt.type||dt.node_type}),dt.node_type==="episode"&&dt.ref_id&&(dt.guests||[]).forEach(wt=>{var kt;const vt=wt;vt.name&&vt.ref_id&&dt.ref_id&&(it[vt.ref_id]={children:[...((kt=it[vt.ref_id])==null?void 0:kt.children)||[],dt.ref_id],imageUrl:vt.profile_picture||"",name:vt.name,twitterHandle:vt.twitter_handle})})}),generateGuestNodesFromMap(it,dt=>{nt.push(dt)}),st.forEach(dt=>{const{topics:pt,ref_id:mt,show_title:gt}=dt;pt&&pt.forEach(yt=>{yt!==tt&>&&(rt[yt]&&!rt[yt].children.includes(mt||gt)?rt[yt].children.push(mt||gt):rt[yt]={position:new Vector3(0,0,0),children:[mt||gt]})})}),shouldIncludeTopics&&generateTopicNodesFromMap(rt,dt=>{nt.push(dt)});const ct=getGraphDataPositions(et,nt),{links:ut}=ct;nt=ct.nodes,nt.sort((dt,pt)=>(pt.weight||0)-(dt.weight||0));const ht=getMaxSuperficialWeightPerNodeType(nt,ut);return nt=addWeightNormalizationToNodes(lt,ht,nt,ut),{links:ut,nodes:nt}}catch(ot){return console.error(ot),defaultData$8}},getSegmentColor=(tt,et)=>tt==="topic"||et==="topic"?NODE_RELATIVE_HIGHLIGHT_COLORS.topics.segmentColor:tt==="guest"||et==="guest"?NODE_RELATIVE_HIGHLIGHT_COLORS.guests.segmentColor:NODE_RELATIVE_HIGHLIGHT_COLORS.children.segmentColor,generateLinksFromNodeData=(tt,et,nt)=>{const rt=[];return tt.forEach(it=>{const{children:ot,guests:at}=it;ot==null||ot.forEach(st=>{if(it.ref_id){const lt=tt.find(ht=>ht.ref_id===st)||null;if(!lt)return;const ct=new Vector3(it.x||0,it.y||0,it.z||0),ut=new Vector3((lt==null?void 0:lt.x)||0,(lt==null?void 0:lt.y)||0,(lt==null?void 0:lt.z)||0);rt.push({onlyVisibleOnSelect:et,color:getSegmentColor(it.node_type,(lt==null?void 0:lt.node_type)||""),source:it.ref_id,sourceRef:it.ref_id,sourcePosition:ct,target:st,targetRef:st,targetPosition:ut})}}),at==null||at.forEach(st=>{if(st&&typeof st!="string"&&it.ref_id){const lt=tt.find(ht=>ht.ref_id===(st==null?void 0:st.ref_id))||null;if(!lt)return;const ct=new Vector3(it.x||0,it.y||0,it.z||0),ut=new Vector3((lt==null?void 0:lt.x)||0,(lt==null?void 0:lt.y)||0,(lt==null?void 0:lt.z)||0);rt.push({onlyVisibleOnSelect:nt,color:getSegmentColor(it.node_type,"guest"),source:it.ref_id,sourceRef:it.ref_id,sourcePosition:ct,target:st==null?void 0:st.ref_id,targetRef:st==null?void 0:st.ref_id,targetPosition:ut})}})}),rt},addWeightNormalizationToNodes=(tt,et,nt,rt)=>nt.map(it=>{let ot=(it.weight||0)/tt;return!it.weight&&et[it.node_type]&&(ot=getSuperficialNodeWeight(it,rt)/et[it.node_type]),{...it,weight:ot}}),saveConsumedContent=async tt=>{await executeIfProd(async()=>{if(!await distExports$2.enable(!0)){console.error("Sphinx enable failed, means no pubkey and no budget (including budget of 0)");return}try{await distExports$2.saveGraphData({metaData:{date:Math.floor(new Date().getTime()/1e3),...tt},type:"second_brain_consumed_content"})}catch(nt){console.warn(nt)}})},saveSearchTerm=async()=>{await executeIfProd(async()=>{await distExports$2.enable(!0)||console.log("Sphinx enable failed, means no pubkey and no budget (including budget of 0)")})},graphStyles=["split","force","sphere","earth"],defaultData$7={categoryFilter:null,data:null,selectionGraphData:{nodes:[],links:[]},scrollEventsDisabled:!1,disableCameraRotation:!1,graphRadius:isChileGraph?1600:3056,graphStyle:"split",isFetching:!1,isTimestampLoaded:!1,queuedSources:null,hoveredNode:null,selectedNode:null,selectedTimestamp:null,sources:null,sphinxModalIsOpen:!1,cameraFocusTrigger:!1,selectedNodeRelativeIds:[],nearbyNodeIds:[],showSelectionGraph:!1,hideNodeDetails:!1},useDataStore=react((tt,et)=>({...defaultData$7,fetchData:async nt=>{if(et().isFetching)return;tt({isFetching:!0,sphinxModalIsOpen:!0});const rt=await fetchGraphData(nt||"");nt&&await saveSearchTerm(),tt({data:rt,isFetching:!1,sphinxModalIsOpen:!1,disableCameraRotation:!1,nearbyNodeIds:[],selectedNodeRelativeIds:[],showSelectionGraph:!1})},setIsFetching:nt=>tt({isFetching:nt}),setData:nt=>tt({data:nt}),setSelectionData:nt=>tt({selectionGraphData:nt}),setScrollEventsDisabled:nt=>tt({scrollEventsDisabled:nt}),setCategoryFilter:nt=>tt({categoryFilter:nt}),setDisableCameraRotation:nt=>tt({disableCameraRotation:nt}),setGraphRadius:nt=>tt({graphRadius:nt}),setGraphStyle:nt=>tt({graphStyle:nt}),setQueuedSources:nt=>tt({queuedSources:nt}),setHoveredNode:nt=>tt({hoveredNode:nt}),setSelectedNode:nt=>{const rt=et().selectedNode;if((rt==null?void 0:rt.ref_id)!==(nt==null?void 0:nt.ref_id)){const{data:it}=et(),ot=(it==null?void 0:it.nodes.filter(at=>at.ref_id&&nodesAreRelatives(at,nt)).map(at=>(at==null?void 0:at.ref_id)||""))||[];tt({hoveredNode:null,isTimestampLoaded:!1,selectedNode:nt,disableCameraRotation:!0,selectedNodeRelativeIds:ot})}},setSelectedTimestamp:nt=>tt({selectedTimestamp:nt}),setSources:nt=>tt({sources:nt}),setSphinxModalOpen:nt=>tt({sphinxModalIsOpen:nt}),setCameraFocusTrigger:nt=>tt({cameraFocusTrigger:nt}),setNearbyNodeIds:nt=>{const rt=et().nearbyNodeIds;(nt.length!==rt.length||nt[0]!==rt[0])&&tt({nearbyNodeIds:nt})},setShowSelectionGraph:nt=>tt({showSelectionGraph:nt}),setHideNodeDetails:nt=>tt({hideNodeDetails:nt})})),useSelectedNode=()=>useDataStore(tt=>tt.selectedNode),setIsTimestampLoaded=tt=>useDataStore.setState({isTimestampLoaded:tt}),topupFromToast=async()=>{try{const tt=await distExports$2.topup();if(!tt)throw new Error("Topup failed");if(tt.budget<5)throw new Error("You set a budget of less than 5 sats");toast(jsxRuntimeExports.jsx(ToastMessage,{message:`You set a budget of ${tt.budget} sats`}),{icon:!1,position:toast.POSITION.BOTTOM_CENTER,type:"success"})}catch(tt){tt instanceof Error&&toast(jsxRuntimeExports.jsx(ToastMessage,{message:tt.message}),{icon:!1,position:toast.POSITION.BOTTOM_CENTER,type:"error"})}},ToastMessage=({message:tt})=>tt===BOOST_ERROR_BUDGET?jsxRuntimeExports.jsxs("div",{children:[tt,jsxRuntimeExports.jsx(ButtonWrapper,{onClick:topupFromToast,type:"button",children:jsxRuntimeExports.jsx(Text$3,{color:"white",kind:"medium",children:"Topup"})})]}):jsxRuntimeExports.jsx("div",{children:tt}),ButtonWrapper=styled$4.button` - background: ${colors.gray200}; - border: 1px solid ${colors.white}; - border-radius: 2px; - margin: 10px; - padding: 5px; - - &:hover { - cursor: pointer; - background-color: ${colors.gray300}; - } -`;var lib$2={};const require$$0=getAugmentedNamespace(emotionStyledBase_browser_esm);var ClickOutside={};(function(tt){tt.__esModule=!0,tt.default=void 0;var et=nt(reactExports);nt(propTypesExports);function nt(ht){return ht&&ht.__esModule?ht:{default:ht}}function rt(ht){if(ht===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return ht}function it(ht,dt){ht.prototype=Object.create(dt.prototype),ht.prototype.constructor=ht,ot(ht,dt)}function ot(ht,dt){return ot=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(pt,mt){return pt.__proto__=mt,pt},ot(ht,dt)}function at(ht,dt,pt){return dt=st(dt),dt in ht?Object.defineProperty(ht,dt,{value:pt,enumerable:!0,configurable:!0,writable:!0}):ht[dt]=pt,ht}function st(ht){var dt=lt(ht,"string");return typeof dt=="symbol"?dt:dt+""}function lt(ht,dt){if(typeof ht!="object"||ht===null)return ht;var pt=ht[Symbol.toPrimitive];if(pt!==void 0){var mt=pt.call(ht,dt||"default");if(typeof mt!="object")return mt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(dt==="string"?String:Number)(ht)}var ct=function(ht){function dt(){for(var mt,gt=arguments.length,yt=Array(gt),bt=0;bt"u"&&(commonjsGlobal.window={}),window};tt.isomorphicWindow=st})(util);var constants$2={};(function(tt){tt.__esModule=!0,tt.LIB_NAME=void 0,tt.LIB_NAME="react-dropdown-select"})(constants$2);(function(tt){tt.__esModule=!0,tt.default=void 0;var et=ot(require$$0),nt=ot(reactExports),rt=util,it=constants$2;function ot(ct){return ct&&ct.__esModule?ct:{default:ct}}var at=function(ct){var ut=ct.item,ht=ct.props,dt=ct.state,pt=ct.methods;return ut&&ht.optionRenderer?ht.optionRenderer({item:ut,props:ht,state:dt,methods:pt}):nt.default.createElement(st,{role:"listitem",disabled:ht.disabled,direction:ht.direction,className:it.LIB_NAME+"-option",color:ht.color},nt.default.createElement("span",{className:it.LIB_NAME+"-option-label"},(0,rt.getByPath)(ut,ht.labelField)),nt.default.createElement("span",{className:it.LIB_NAME+"-option-remove",onClick:function(gt){return pt.removeItem(gt,ut,ht.closeOnSelect)}},"×"))},st=(0,et.default)("span",{target:"e1l4eby50"})("padding:0 5px;border-radius:2px;line-height:21px;margin:3px 0 3px 5px;background:",function(ct){var ut=ct.color;return ut},";color:#fff;display:flex;flex-direction:",function(ct){var ut=ct.direction;return ut==="rtl"?"row-reverse":"row"},";.",it.LIB_NAME,"-option-remove{cursor:pointer;width:22px;height:22px;display:inline-block;text-align:center;margin:0 -5px 0 0px;border-radius:0 3px 3px 0;:hover{color:tomato;}}:hover,:hover>span{opacity:0.9;}"),lt=at;tt.default=lt})(Option);var Input$1={};(function(tt){tt.__esModule=!0,tt.default=void 0;var et=st(require$$0),nt=at(reactExports),rt=util;at(propTypesExports);var it=constants$2;function ot(wt){if(typeof WeakMap!="function")return null;var vt=new WeakMap,kt=new WeakMap;return(ot=function(St){return St?kt:vt})(wt)}function at(wt,vt){if(!vt&&wt&&wt.__esModule)return wt;if(wt===null||typeof wt!="object"&&typeof wt!="function")return{default:wt};var kt=ot(vt);if(kt&&kt.has(wt))return kt.get(wt);var St={},Tt=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var At in wt)if(At!="default"&&Object.prototype.hasOwnProperty.call(wt,At)){var Et=Tt?Object.getOwnPropertyDescriptor(wt,At):null;Et&&(Et.get||Et.set)?Object.defineProperty(St,At,Et):St[At]=wt[At]}return St.default=wt,kt&&kt.set(wt,St),St}function st(wt){return wt&&wt.__esModule?wt:{default:wt}}function lt(wt){if(wt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return wt}function ct(wt,vt){wt.prototype=Object.create(vt.prototype),wt.prototype.constructor=wt,ut(wt,vt)}function ut(wt,vt){return ut=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(kt,St){return kt.__proto__=St,kt},ut(wt,vt)}function ht(wt,vt,kt){return vt=dt(vt),vt in wt?Object.defineProperty(wt,vt,{value:kt,enumerable:!0,configurable:!0,writable:!0}):wt[vt]=kt,wt}function dt(wt){var vt=pt(wt,"string");return typeof vt=="symbol"?vt:vt+""}function pt(wt,vt){if(typeof wt!="object"||wt===null)return wt;var kt=wt[Symbol.toPrimitive];if(kt!==void 0){var St=kt.call(wt,vt||"default");if(typeof St!="object")return St;throw new TypeError("@@toPrimitive must return a primitive value.")}return(vt==="string"?String:Number)(wt)}var mt=function(wt,vt){var kt=wt.addPlaceholder,St=wt.searchable,Tt=wt.placeholder,At=vt.values&&vt.values.length===0,Et=vt.values&&0{var rt;return tt.weight?tt.weight:typesWeighedByChildren.includes(tt.node_type)?((rt=tt==null?void 0:tt.children)==null?void 0:rt.length)||0:et.filter(it=>it.sourceRef===tt.ref_id||it.targetRef===tt.ref_id).length},getMaxSuperficialWeightPerNodeType=(tt,et)=>{const nt={};return tt.forEach(rt=>{const it=getSuperficialNodeWeight(rt,et);(!nt[rt.node_type]||nt[rt.node_type]tt.clone().normalize().clone().negate().normalize().multiplyScalar(et).add(tt),getPositionFromLngLat=(tt,et,nt)=>{const rt=et*Math.PI/180,it=tt*Math.PI/180,ot=nt*Math.cos(rt)*Math.cos(it),at=nt*Math.sin(rt),st=nt*Math.cos(rt)*Math.sin(it);return new Vector3(ot,at,st)},generateEarthGraphPositions=tt=>{const et=tt.map(rt=>{const{lng:it,lat:ot}=rt.coordinates?rt.coordinates:{lng:getRandomLngLat(),lat:getRandomLngLat()},at=getPositionFromLngLat(it,ot,dataRadius);return{...rt,...at}}),nt=generateLinksFromNodeData(et,!0,!0);return{nodes:et,links:nt}};function forceCenter(tt,et,nt){var rt,it=1;tt==null&&(tt=0),et==null&&(et=0),nt==null&&(nt=0);function ot(){var at,st=rt.length,lt,ct=0,ut=0,ht=0;for(at=0;at=(lt=(at+st)/2))?at=lt:st=lt,rt=it,!(it=it[ht=+ut]))return rt[ht]=ot,tt;if(ct=+tt._x.call(null,it.data),et===ct)return ot.next=it,rt?rt[ht]=ot:tt._root=ot,tt;do rt=rt?rt[ht]=new Array(2):tt._root=new Array(2),(ut=et>=(lt=(at+st)/2))?at=lt:st=lt;while((ht=+ut)==(dt=+(ct>=lt)));return rt[dt]=it,rt[ht]=ot,tt}function addAll$2(tt){Array.isArray(tt)||(tt=Array.from(tt));const et=tt.length,nt=new Float64Array(et);let rt=1/0,it=-1/0;for(let ot=0,at;otit&&(it=at));if(rt>it)return this;this.cover(rt).cover(it);for(let ot=0;ottt||tt>=nt;)switch(at=+(ttat||(ot=ct.x1)=ht))&&(ct=st[st.length-1],st[st.length-1]=st[st.length-1-ut],st[st.length-1-ut]=ct)}else{var dt=Math.abs(tt-+this._x.call(null,lt.data));dt=(ct=(at+st)/2))?at=ct:st=ct,et=nt,!(nt=nt[ht=+ut]))return this;if(!nt.length)break;et[ht+1&1]&&(rt=et,dt=ht)}for(;nt.data!==tt;)if(it=nt,!(nt=nt.next))return this;return(ot=nt.next)&&delete nt.next,it?(ot?it.next=ot:delete it.next,this):et?(ot?et[ht]=ot:delete et[ht],(nt=et[0]||et[1])&&nt===(et[1]||et[0])&&!nt.length&&(rt?rt[dt]=nt:this._root=nt),this):(this._root=ot,this)}function removeAll$2(tt){for(var et=0,nt=tt.length;et=(ht=(st+ct)/2))?st=ht:ct=ht,(yt=nt>=(dt=(lt+ut)/2))?lt=dt:ut=dt,it=ot,!(ot=ot[bt=yt<<1|gt]))return it[bt]=at,tt;if(pt=+tt._x.call(null,ot.data),mt=+tt._y.call(null,ot.data),et===pt&&nt===mt)return at.next=ot,it?it[bt]=at:tt._root=at,tt;do it=it?it[bt]=new Array(4):tt._root=new Array(4),(gt=et>=(ht=(st+ct)/2))?st=ht:ct=ht,(yt=nt>=(dt=(lt+ut)/2))?lt=dt:ut=dt;while((bt=yt<<1|gt)===(wt=(mt>=dt)<<1|pt>=ht));return it[wt]=ot,it[bt]=at,tt}function addAll$1(tt){var et,nt,rt=tt.length,it,ot,at=new Array(rt),st=new Array(rt),lt=1/0,ct=1/0,ut=-1/0,ht=-1/0;for(nt=0;ntut&&(ut=it),otht&&(ht=ot));if(lt>ut||ct>ht)return this;for(this.cover(lt,ct).cover(ut,ht),nt=0;nttt||tt>=it||rt>et||et>=ot;)switch(ct=(etut||(st=mt.y0)>ht||(lt=mt.x1)=bt)<<1|tt>=yt)&&(mt=dt[dt.length-1],dt[dt.length-1]=dt[dt.length-1-gt],dt[dt.length-1-gt]=mt)}else{var wt=tt-+this._x.call(null,pt.data),vt=et-+this._y.call(null,pt.data),kt=wt*wt+vt*vt;if(kt=(dt=(at+lt)/2))?at=dt:lt=dt,(gt=ht>=(pt=(st+ct)/2))?st=pt:ct=pt,et=nt,!(nt=nt[yt=gt<<1|mt]))return this;if(!nt.length)break;(et[yt+1&3]||et[yt+2&3]||et[yt+3&3])&&(rt=et,bt=yt)}for(;nt.data!==tt;)if(it=nt,!(nt=nt.next))return this;return(ot=nt.next)&&delete nt.next,it?(ot?it.next=ot:delete it.next,this):et?(ot?et[yt]=ot:delete et[yt],(nt=et[0]||et[1]||et[2]||et[3])&&nt===(et[3]||et[2]||et[1]||et[0])&&!nt.length&&(rt?rt[bt]=nt:this._root=nt),this):(this._root=ot,this)}function removeAll$1(tt){for(var et=0,nt=tt.length;et=(mt=(lt+ht)/2))?lt=mt:ht=mt,(St=nt>=(gt=(ct+dt)/2))?ct=gt:dt=gt,(Et=rt>=(yt=(ut+pt)/2))?ut=yt:pt=yt,ot=at,!(at=at[At=Et<<2|St<<1|kt]))return ot[At]=st,tt;if(bt=+tt._x.call(null,at.data),wt=+tt._y.call(null,at.data),vt=+tt._z.call(null,at.data),et===bt&&nt===wt&&rt===vt)return st.next=at,ot?ot[At]=st:tt._root=st,tt;do ot=ot?ot[At]=new Array(8):tt._root=new Array(8),(kt=et>=(mt=(lt+ht)/2))?lt=mt:ht=mt,(St=nt>=(gt=(ct+dt)/2))?ct=gt:dt=gt,(Et=rt>=(yt=(ut+pt)/2))?ut=yt:pt=yt;while((At=Et<<2|St<<1|kt)===(Tt=(vt>=yt)<<2|(wt>=gt)<<1|bt>=mt));return ot[Tt]=at,ot[At]=st,tt}function addAll(tt){Array.isArray(tt)||(tt=Array.from(tt));const et=tt.length,nt=new Float64Array(et),rt=new Float64Array(et),it=new Float64Array(et);let ot=1/0,at=1/0,st=1/0,lt=-1/0,ct=-1/0,ut=-1/0;for(let ht=0,dt,pt,mt,gt;htlt&&(lt=pt),mtct&&(ct=mt),gtut&&(ut=gt));if(ot>lt||at>ct||st>ut)return this;this.cover(ot,at,st).cover(lt,ct,ut);for(let ht=0;httt||tt>=at||it>et||et>=st||ot>nt||nt>=lt;)switch(dt=(ntmt||(ct=vt.y0)>gt||(ut=vt.z0)>yt||(ht=vt.x1)=At)<<2|(et>=Et)<<1|tt>=St)&&(vt=bt[bt.length-1],bt[bt.length-1]=bt[bt.length-1-kt],bt[bt.length-1-kt]=vt)}else{var Tt=tt-+this._x.call(null,wt.data),Mt=et-+this._y.call(null,wt.data),Lt=nt-+this._z.call(null,wt.data),jt=Tt*Tt+Mt*Mt+Lt*Lt;if(jt=(gt=(at+ct)/2))?at=gt:ct=gt,(vt=pt>=(yt=(st+ut)/2))?st=yt:ut=yt,(kt=mt>=(bt=(lt+ht)/2))?lt=bt:ht=bt,et=nt,!(nt=nt[St=kt<<2|vt<<1|wt]))return this;if(!nt.length)break;(et[St+1&7]||et[St+2&7]||et[St+3&7]||et[St+4&7]||et[St+5&7]||et[St+6&7]||et[St+7&7])&&(rt=et,Et=St)}for(;nt.data!==tt;)if(it=nt,!(nt=nt.next))return this;return(ot=nt.next)&&delete nt.next,it?(ot?it.next=ot:delete it.next,this):et?(ot?et[St]=ot:delete et[St],(nt=et[0]||et[1]||et[2]||et[3]||et[4]||et[5]||et[6]||et[7])&&nt===(et[7]||et[6]||et[5]||et[4]||et[3]||et[2]||et[1]||et[0])&&!nt.length&&(rt?rt[Et]=nt:this._root=nt),this):(this._root=ot,this)}function removeAll(tt){for(var et=0,nt=tt.length;et1&&(gt=pt.y+pt.vy),nt>2&&(yt=pt.z+pt.vz),dt.visit(kt);function kt(St,Et,At,Tt,Mt,Lt,jt){var Rt=[Et,At,Tt,Mt,Lt,jt],$t=Rt[0],xt=Rt[1],It=Rt[2],Ot=Rt[nt],zt=Rt[nt+1],Ut=Rt[nt+2],Wt=St.data,Ft=St.r,Nt=bt+Ft;if(Wt){if(Wt.index>pt.index){var Ct=mt-Wt.x-Wt.vx,Ht=nt>1?gt-Wt.y-Wt.vy:0,Jt=nt>2?yt-Wt.z-Wt.vz:0,nn=Ct*Ct+Ht*Ht+Jt*Jt;nn1&&Ht===0&&(Ht=jiggle(it),nn+=Ht*Ht),nt>2&&Jt===0&&(Jt=jiggle(it),nn+=Jt*Jt),nn=(Nt-(nn=Math.sqrt(nn)))/nn*ot,pt.vx+=(Ct*=nn)*(Nt=(Ft*=Ft)/(wt+Ft)),nt>1&&(pt.vy+=(Ht*=nn)*Nt),nt>2&&(pt.vz+=(Jt*=nn)*Nt),Wt.vx-=Ct*(Nt=1-Nt),nt>1&&(Wt.vy-=Ht*Nt),nt>2&&(Wt.vz-=Jt*Nt))}return}return $t>mt+Nt||Ot1&&(xt>gt+Nt||zt2&&(It>yt+Nt||Utut.r&&(ut.r=ut[ht].r)}function ct(){if(et){var ut,ht=et.length,dt;for(rt=new Array(ht),ut=0;uttypeof dt=="function")||Math.random,nt=ht.find(dt=>[1,2,3].includes(dt))||2,ct()},st.iterations=function(ut){return arguments.length?(at=+ut,st):at},st.strength=function(ut){return arguments.length?(ot=+ut,st):ot},st.radius=function(ut){return arguments.length?(tt=typeof ut=="function"?ut:constant$4(+ut),ct(),st):tt},st}function index$1(tt){return tt.index}function find$1(tt,et){var nt=tt.get(et);if(!nt)throw new Error("node not found: "+et);return nt}function forceLink(tt){var et=index$1,nt=dt,rt,it=constant$4(30),ot,at,st,lt,ct,ut,ht=1;tt==null&&(tt=[]);function dt(bt){return 1/Math.min(lt[bt.source.index],lt[bt.target.index])}function pt(bt){for(var wt=0,vt=tt.length;wt1&&(Mt=At.y+At.vy-Et.y-Et.vy||jiggle(ut)),st>2&&(Lt=At.z+At.vz-Et.z-Et.vz||jiggle(ut)),jt=Math.sqrt(Tt*Tt+Mt*Mt+Lt*Lt),jt=(jt-ot[kt])/jt*bt*rt[kt],Tt*=jt,Mt*=jt,Lt*=jt,At.vx-=Tt*(Rt=ct[kt]),st>1&&(At.vy-=Mt*Rt),st>2&&(At.vz-=Lt*Rt),Et.vx+=Tt*(Rt=1-Rt),st>1&&(Et.vy+=Mt*Rt),st>2&&(Et.vz+=Lt*Rt)}function mt(){if(at){var bt,wt=at.length,vt=tt.length,kt=new Map(at.map((Et,At)=>[et(Et,At,at),Et])),St;for(bt=0,lt=new Array(wt);bttypeof vt=="function")||Math.random,st=wt.find(vt=>[1,2,3].includes(vt))||2,mt()},pt.links=function(bt){return arguments.length?(tt=bt,mt(),pt):tt},pt.id=function(bt){return arguments.length?(et=bt,pt):et},pt.iterations=function(bt){return arguments.length?(ht=+bt,pt):ht},pt.strength=function(bt){return arguments.length?(nt=typeof bt=="function"?bt:constant$4(+bt),gt(),pt):nt},pt.distance=function(bt){return arguments.length?(it=typeof bt=="function"?bt:constant$4(+bt),yt(),pt):it},pt}var noop$5={value:()=>{}};function dispatch(){for(var tt=0,et=arguments.length,nt={},rt;tt=0&&(rt=nt.slice(it+1),nt=nt.slice(0,it)),nt&&!et.hasOwnProperty(nt))throw new Error("unknown type: "+nt);return{type:nt,name:rt}})}Dispatch.prototype=dispatch.prototype={constructor:Dispatch,on:function(tt,et){var nt=this._,rt=parseTypenames(tt+"",nt),it,ot=-1,at=rt.length;if(arguments.length<2){for(;++ot0)for(var nt=new Array(it),rt=0,it,ot;rt=0&&tt._call.call(void 0,et),tt=tt._next;--frame}function wake(){clockNow=(clockLast=clock.now())+clockSkew,frame=timeout=0;try{timerFlush()}finally{frame=0,nap(),clockNow=0}}function poke(){var tt=clock.now(),et=tt-clockLast;et>pokeDelay&&(clockSkew-=et,clockLast=tt)}function nap(){for(var tt,et=taskHead,nt,rt=1/0;et;)et._call?(rt>et._time&&(rt=et._time),tt=et,et=et._next):(nt=et._next,et._next=null,et=tt?tt._next=nt:taskHead=nt);taskTail=tt,sleep(rt)}function sleep(tt){if(!frame){timeout&&(timeout=clearTimeout(timeout));var et=tt-clockNow;et>24?(tt<1/0&&(timeout=setTimeout(wake,tt-clock.now()-clockSkew)),interval&&(interval=clearInterval(interval))):(interval||(clockLast=clock.now(),interval=setInterval(poke,pokeDelay)),frame=1,setFrame(wake))}}const a$2=1664525,c$4=1013904223,m$3=4294967296;function lcg(){let tt=1;return()=>(tt=(a$2*tt+c$4)%m$3)/m$3}var MAX_DIMENSIONS=3;function x$2(tt){return tt.x}function y$2(tt){return tt.y}function z$1(tt){return tt.z}var initialRadius=10,initialAngleRoll=Math.PI*(3-Math.sqrt(5)),initialAngleYaw=Math.PI*20/(9+Math.sqrt(221));function forceSimulation(tt,et){et=et||2;var nt=Math.min(MAX_DIMENSIONS,Math.max(1,Math.round(et))),rt,it=1,ot=.001,at=1-Math.pow(ot,1/300),st=0,lt=.6,ct=new Map,ut=timer$1(pt),ht=dispatch("tick","end"),dt=lcg();tt==null&&(tt=[]);function pt(){mt(),ht.call("tick",rt),it1&&(kt.fy==null?kt.y+=kt.vy*=lt:(kt.y=kt.fy,kt.vy=0)),nt>2&&(kt.fz==null?kt.z+=kt.vz*=lt:(kt.z=kt.fz,kt.vz=0));return rt}function gt(){for(var bt=0,wt=tt.length,vt;bt1&&isNaN(vt.y)||nt>2&&isNaN(vt.z)){var kt=initialRadius*(nt>2?Math.cbrt(.5+bt):nt>1?Math.sqrt(.5+bt):bt),St=bt*initialAngleRoll,Et=bt*initialAngleYaw;nt===1?vt.x=kt:nt===2?(vt.x=kt*Math.cos(St),vt.y=kt*Math.sin(St)):(vt.x=kt*Math.sin(St)*Math.cos(Et),vt.y=kt*Math.cos(St),vt.z=kt*Math.sin(St)*Math.sin(Et))}(isNaN(vt.vx)||nt>1&&isNaN(vt.vy)||nt>2&&isNaN(vt.vz))&&(vt.vx=0,nt>1&&(vt.vy=0),nt>2&&(vt.vz=0))}}function yt(bt){return bt.initialize&&bt.initialize(tt,dt,nt),bt}return gt(),rt={tick:mt,restart:function(){return ut.restart(pt),rt},stop:function(){return ut.stop(),rt},numDimensions:function(bt){return arguments.length?(nt=Math.min(MAX_DIMENSIONS,Math.max(1,Math.round(bt))),ct.forEach(yt),rt):nt},nodes:function(bt){return arguments.length?(tt=bt,gt(),ct.forEach(yt),rt):tt},alpha:function(bt){return arguments.length?(it=+bt,rt):it},alphaMin:function(bt){return arguments.length?(ot=+bt,rt):ot},alphaDecay:function(bt){return arguments.length?(at=+bt,rt):+at},alphaTarget:function(bt){return arguments.length?(st=+bt,rt):st},velocityDecay:function(bt){return arguments.length?(lt=1-bt,rt):1-lt},randomSource:function(bt){return arguments.length?(dt=bt,ct.forEach(yt),rt):dt},force:function(bt,wt){return arguments.length>1?(wt==null?ct.delete(bt):ct.set(bt,yt(wt)),rt):ct.get(bt)},find:function(){var bt=Array.prototype.slice.call(arguments),wt=bt.shift()||0,vt=(nt>1?bt.shift():null)||0,kt=(nt>2?bt.shift():null)||0,St=bt.shift()||1/0,Et=0,At=tt.length,Tt,Mt,Lt,jt,Rt,$t;for(St*=St,Et=0;Et1?(ht.on(bt,wt),rt):ht.on(bt)}}}function forceManyBody(){var tt,et,nt,rt,it,ot=constant$4(-30),at,st=1,lt=1/0,ct=.81;function ut(mt){var gt,yt=tt.length,bt=(et===1?binarytree(tt,x$2):et===2?quadtree(tt,x$2,y$2):et===3?octree(tt,x$2,y$2,z$1):null).visitAfter(dt);for(it=mt,gt=0;gt1&&(mt.y=kt/wt),et>2&&(mt.z=St/wt)}else{yt=mt,yt.x=yt.data.x,et>1&&(yt.y=yt.data.y),et>2&&(yt.z=yt.data.z);do gt+=at[yt.data.index];while(yt=yt.next)}mt.value=gt}function pt(mt,gt,yt,bt,wt){if(!mt.value)return!0;var vt=[yt,bt,wt][et-1],kt=mt.x-nt.x,St=et>1?mt.y-nt.y:0,Et=et>2?mt.z-nt.z:0,At=vt-gt,Tt=kt*kt+St*St+Et*Et;if(At*At/ct1&&St===0&&(St=jiggle(rt),Tt+=St*St),et>2&&Et===0&&(Et=jiggle(rt),Tt+=Et*Et),Tt1&&(nt.vy+=St*mt.value*it/Tt),et>2&&(nt.vz+=Et*mt.value*it/Tt)),!0;if(mt.length||Tt>=lt)return;(mt.data!==nt||mt.next)&&(kt===0&&(kt=jiggle(rt),Tt+=kt*kt),et>1&&St===0&&(St=jiggle(rt),Tt+=St*St),et>2&&Et===0&&(Et=jiggle(rt),Tt+=Et*Et),Tt1&&(nt.vy+=St*At),et>2&&(nt.vz+=Et*At));while(mt=mt.next)}return ut.initialize=function(mt,...gt){tt=mt,rt=gt.find(yt=>typeof yt=="function")||Math.random,et=gt.find(yt=>[1,2,3].includes(yt))||2,ht()},ut.strength=function(mt){return arguments.length?(ot=typeof mt=="function"?mt:constant$4(+mt),ht(),ut):ot},ut.distanceMin=function(mt){return arguments.length?(st=mt*mt,ut):Math.sqrt(st)},ut.distanceMax=function(mt){return arguments.length?(lt=mt*mt,ut):Math.sqrt(lt)},ut.theta=function(mt){return arguments.length?(ct=mt*mt,ut):Math.sqrt(ct)},ut}const simulation=forceSimulation().stop(),defaults$2={numDimensions:3,velocityDecay:.9,forceChargeStrength:-20,forceChargeMinDistance:10,forceChargeMaxDistance:8e3,forceLinkStrength:.04,forceCenterStrength:.85,disableCollide:!1,disableCenter:!1,disableLink:!1,disableCharge:!1,forceCollideRadiusMethod:tt=>(tt.scale||1)*6+200,forceLinkDistanceMethod:tt=>{const et=tt.source.node_type;let nt=50;switch(et){case"topic":nt=30;break;case"guest":nt=30;break;case"clip":nt=10;break;case"episode":nt=15;break}return nt*2}},runForceSimulation=(tt,et,{numDimensions:nt=defaults$2.numDimensions,velocityDecay:rt=defaults$2.velocityDecay,forceChargeStrength:it=defaults$2.forceChargeStrength,forceChargeMinDistance:ot=defaults$2.forceChargeMinDistance,forceChargeMaxDistance:at=defaults$2.forceChargeMaxDistance,forceLinkStrength:st=defaults$2.forceLinkStrength,forceCenterStrength:lt=defaults$2.forceCenterStrength,forceLinkDistanceMethod:ct=defaults$2.forceLinkDistanceMethod,forceCollideRadiusMethod:ut=defaults$2.forceCollideRadiusMethod,disableCollide:ht=defaults$2.disableCollide,disableCenter:dt=defaults$2.disableCenter,disableLink:pt=defaults$2.disableLink,disableCharge:mt=defaults$2.disableCharge})=>(simulation.alpha(1).stop().numDimensions(nt).velocityDecay(rt).force("collide",ht?null:forceCollide().radius(ut).iterations(1)).force("center",dt?null:forceCenter().strength(lt)).force("charge",mt?null:forceManyBody().strength(it).distanceMin(ot).distanceMax(at)).nodes(tt).force("link",pt?null:forceLink().distance(ct).strength(st).id(gt=>gt.id).links(et.filter(gt=>!gt.onlyVisibleOnSelect))).alpha(1).restart(),simulation),simulationTicks$1=60,collisionTicks$1=20,runSimulationPhase$1=tt=>{for(let et=0;et{tt.force("collide",forceCollide().radius(et=>(et.scale||1)*20).iterations(1));for(let et=0;et{const et=tt.map(ot=>({...ot,x:0,y:0,z:0})),nt=generateLinksFromNodeData(et,!1,!1),rt=runForceSimulation(et,nt,{numDimensions:3,forceLinkStrength:.5,forceChargeStrength:-40,forceCenterStrength:.3,velocityDecay:.5});runSimulationPhase$1(rt),runCollisionPhase$1(rt),rt.stop();const it=nt.map(ot=>{const at=et.find(ht=>ht.ref_id===ot.sourceRef),st=et.find(ht=>ht.ref_id===ot.targetRef),lt=["guest","topic"].some(ht=>ht===(at==null?void 0:at.node_type)||ht===(st==null?void 0:st.node_type)),ct=new Vector3((at==null?void 0:at.x)||0,(at==null?void 0:at.y)||0,(at==null?void 0:at.z)||0),ut=new Vector3((st==null?void 0:st.x)||0,(st==null?void 0:st.y)||0,(st==null?void 0:st.z)||0);return{...ot,onlyVisibleOnSelect:lt,sourcePosition:ct,targetPosition:ut}});return{nodes:et,links:it}},sortAB=(tt,et,nt)=>{let rt=-2;return tt===nt&&et===nt?rt=0:tt===nt&&et!==nt?rt=-1:tt!==nt&&et===nt&&(rt=1),rt},sortNodesByHierarchy=tt=>tt.map(nt=>nt).sort((nt,rt)=>{let it=0;return nt.node_type==="show"||rt.node_type==="show"?it=sortAB(nt.node_type,rt.node_type,"show"):nt.node_type==="episode"||rt.node_type==="episode"?it=sortAB(nt.node_type,rt.node_type,"episode"):nt.node_type==="clip"||rt.node_type==="clip"?it=sortAB(nt.node_type,rt.node_type,"clip"):nt.node_type!=="guest"&&rt.node_type==="guest"?it=sortAB(nt.node_type,rt.node_type,"guest"):it=0,it});function getMyParents(tt,et){const{ref_id:nt}=tt;return!nt||!et?[]:et.filter(it=>{var ot;return(ot=it.children)==null?void 0:ot.includes(nt)})}function getMyChildren(tt,et){return et.filter(rt=>rt.ref_id&&tt.includes(rt.ref_id))}const simulationTicks=60,collisionTicks=20,universeScale$1=5e3,universeCube={scale:universeScale$1/2,position:{x:0,y:0,z:0}};function generateNodePosition$1(tt,et){const{scale:nt,position:rt}=universeCube,it={x:rt.x+Math.random()*nt-nt*.5,y:rt.y+Math.random()*nt-nt*.5,z:rt.z+Math.random()*nt-nt*.5},ot=getMyParents(tt,et),at=ot!=null&&ot.length?new Vector3(ot[0].x,ot[0].y,ot[0].z):null;return at&&(it.x=at.x,it.y=at.y,it.z=at.z),new Vector3(it.x,it.y,it.z)}const runSimulationPhase=tt=>{for(let et=0;et{tt.force("collide",forceCollide().radius(et=>(et.scale||1)*20).iterations(1));for(let et=0;et{const et=[],nt=tt.map(at=>{const st=generateNodePosition$1(at,et),lt={...at,...st};return et.push(lt),lt}),rt=generateLinksFromNodeData(nt,!0,!0),it=runForceSimulation(nt,rt,{numDimensions:3,forceLinkStrength:.01,forceChargeStrength:-80,velocityDecay:.5,disableCenter:!0,disableCharge:!0});runSimulationPhase(it),runCollisionPhase(it),it.stop();const ot=rt.map(at=>{const st=nt.find(dt=>dt.ref_id===at.sourceRef),lt=nt.find(dt=>dt.ref_id===at.targetRef),ct=new Vector3((st==null?void 0:st.x)||0,(st==null?void 0:st.y)||0,(st==null?void 0:st.z)||0),ut=new Vector3((lt==null?void 0:lt.x)||0,(lt==null?void 0:lt.y)||0,(lt==null?void 0:lt.z)||0);return{...at,onlyVisibleOnSelect:!0,sourcePosition:ct,targetPosition:ut}});return{nodes:nt,links:ot}},universeScale=5e3,padding=300,guestCube={scale:universeScale/2,position:{x:0,y:0,z:universeScale/2+padding}},topicCube={scale:universeScale/2,position:{x:0,y:0,z:-(universeScale/2+padding)}},dataCube={scale:universeScale/2,position:{x:0,y:0,z:0}};function generateGuestNodePosition(){const{scale:tt,position:et}=guestCube,nt={x:et.x+Math.random()*tt-tt*.5,y:et.y+Math.random()*tt-tt*.5,z:et.z+Math.random()*tt-tt*.5},rt=1,it=10;return new Vector3(nt.x+rt*it,nt.y+rt*it,nt.z+rt*it)}function generateTopicNodePosition(){const{scale:tt,position:et}=topicCube,nt={x:et.x+Math.random()*tt-tt*.5,y:et.y+Math.random()*tt-tt*.5,z:et.z+Math.random()*tt-tt*.5},rt=1,it=10;return new Vector3(nt.x+rt*it,nt.y+rt*it,nt.z+rt*it)}function generateNearbyPosition(tt,et,nt=1){let it=0,ot=10*1;const at=0;switch(et){case"episode":ot+=50*(nt||0);break;case"clip":ot=0,it+=50*(nt||0);break}const st=new Vector3;return st.x=tt.x+it,st.y=tt.y+ot,st.z=tt.z+at,st}function generateNodePosition(tt,et,nt){const{ref_id:rt}=tt,{scale:it,position:ot}=dataCube,at={x:ot.x+Math.random()*it-it*.5,y:ot.y+Math.random()*it-it*.5,z:ot.z+Math.random()*it-it*.5},st=getMyParents(tt,nt);let lt=null;if(st!=null&&st.length){const ht=st[0],pt=getMyChildren(ht.children||[],et).findIndex(mt=>mt.ref_id===rt);lt=generateNearbyPosition(new Vector3(ht.x,ht.y,ht.z),tt.node_type,pt+1)}lt&&(at.x=lt.x,at.y=lt.y,at.z=lt.z);const ct=1,ut=1;return new Vector3(at.x+ct*ut,at.y+ct*ut,at.z+ct*ut)}const generateSplitGraphPositions=tt=>{const et=sortNodesByHierarchy(tt),nt=[],rt=et.map(at=>{let st=new Vector3(0,0,0);switch(at.node_type){case"guest":st=generateGuestNodePosition();break;case"topic":st=generateTopicNodePosition();break;case"data_series":st=generateNodePosition({},et,nt);break;default:st=generateNodePosition(at,et,nt);break}const lt={...at,...st};return nt.push(lt),lt}),ot=generateLinksFromNodeData(rt,!0,!0).map(at=>{const st=rt.find(dt=>dt.ref_id===at.sourceRef),lt=rt.find(dt=>dt.ref_id===at.targetRef);let ct=!1;((st==null?void 0:st.node_type)==="guest"||(st==null?void 0:st.node_type)==="topic"||(lt==null?void 0:lt.node_type)==="guest"||(lt==null?void 0:lt.node_type)==="topic")&&(ct=!0);const ut=new Vector3((st==null?void 0:st.x)||0,(st==null?void 0:st.y)||0,(st==null?void 0:st.z)||0),ht=new Vector3((lt==null?void 0:lt.x)||0,(lt==null?void 0:lt.y)||0,(lt==null?void 0:lt.z)||0);return{...at,onlyVisibleOnSelect:ct,sourcePosition:ut,targetPosition:ht}});return rt.sort((at,st)=>(st.weight||0)-(at.weight||0)),{nodes:rt,links:ot}},getGraphDataPositions=(tt,et)=>tt==="split"?generateSplitGraphPositions(et):tt==="sphere"?generateSphereGraphPositions(et):tt==="earth"?generateEarthGraphPositions(et):generateForceGraphPositions(et),defaultData$8={links:[],nodes:[]},shouldIncludeTopics=!0,maxScale=26,fetchGraphData=async tt=>{try{return getGraphData(tt)}catch{return defaultData$8}},fetchNodes=async tt=>{if(!tt)try{return await api$1.get("/prediction/content/latest")}catch(nt){return console.error(nt),mock}if(isDevelopment||isE2E)return await api$1.get(`/v2/searching?word=${tt}&free=true`);const et=await getLSat("searching");if(!et)throw new Error("An error occured calling getLSat");return api$1.get(`/v2/search?word=${tt}`,{Authorization:et})},getSentimentData=async tt=>{const et=tt&&new URLSearchParams(tt),nt=et?`/sentiments?${et.toString()}`:"/sentiments";if(isE2E)return await api$1.get(nt);const rt=await getLSat("sentiments",et==null?void 0:et.toString());if(!rt)throw new Error("An error occured calling getLSat");return await api$1.get(nt,{Authorization:rt})},postTeachMe=async tt=>{const et=await getLSat("teachme");if(!et)throw new Error("An error occured calling getLSat");return api$1.post("/teachme",JSON.stringify(tt),{Authorization:et})},postAskQuestion=async tt=>{const et=await getLSat("ask_question");if(!et)throw new Error("An error occured calling getLSat");return api$1.post("/ask_question",JSON.stringify(tt),{Authorization:et})},getNodeScale=tt=>{switch(tt.node_type){case"guest":case"episode":case"document":return 2;case"show":return 3;default:return 1.5}};function generateTopicNodesFromMap(tt,et){Object.entries(tt).forEach(([nt,rt],it)=>{const{children:ot,position:at}=rt,{x:st,y:lt,z:ct}=at,ut=ot.length*2>maxScale?maxScale:ot.length*2,ht=`topic_node_${it}`;et({x:st,y:lt,z:ct,children:ot,colors:["#000"],id:ht,label:nt,name:nt,type:"topic",node_type:"topic",ref_id:ht,scale:ut,show_title:nt,text:nt,weight:0})})}function generateGuestNodesFromMap(tt,et){Object.entries(tt).forEach(([nt,rt],it)=>{const ot=rt.children,at=ot.length*2>maxScale?maxScale:ot.length*2,st=nt||`guestnode_${it}`,lt={...rt,x:0,y:0,z:0,colors:["#000"],id:st,image_url:rt.imageUrl,label:rt.name,name:rt.name,node_type:"guest",ref_id:st,scale:at,show_title:rt.name,text:rt.twitterHandle,type:"guest",weight:0};et(lt)})}const getGraphData=async tt=>{const{graphStyle:et}=useDataStore.getState();let nt=[];const rt={},it={};try{const ot=await fetchNodes(tt),at=ot.data_series?[{...ot.data_series,x:0,y:0,z:0,boost:null,image_url:"node_data.webp",label:ot.data_series.title,name:"Name",node_type:"data_series",ref_id:"",type:"data_series",weight:2}]:[],st=[...ot.exact,...ot.related,...at];let lt=0;st.length&&st.forEach((dt,pt)=>{var yt;if(dt.weight&<bt.ref_id===dt.ref_id))return;const gt=(yt=dt.image_url)==null?void 0:yt.replace(AWS_IMAGE_BUCKET_URL,CLOUDFRONT_IMAGE_BUCKET_URL).replace(".jpg","_s.jpg");nt.push({...dt,scale:getNodeScale(dt),id:dt.ref_id||dt.tweet_id||dt.id,image_url:gt,type:dt.type||dt.node_type}),dt.node_type==="episode"&&dt.ref_id&&(dt.guests||[]).forEach(wt=>{var kt;const vt=wt;vt.name&&vt.ref_id&&dt.ref_id&&(it[vt.ref_id]={children:[...((kt=it[vt.ref_id])==null?void 0:kt.children)||[],dt.ref_id],imageUrl:vt.profile_picture||"",name:vt.name,twitterHandle:vt.twitter_handle})})}),generateGuestNodesFromMap(it,dt=>{nt.push(dt)}),st.forEach(dt=>{const{topics:pt,ref_id:mt,show_title:gt}=dt;pt&&pt.forEach(yt=>{yt!==tt&>&&(rt[yt]&&!rt[yt].children.includes(mt||gt)?rt[yt].children.push(mt||gt):rt[yt]={position:new Vector3(0,0,0),children:[mt||gt]})})}),shouldIncludeTopics&&generateTopicNodesFromMap(rt,dt=>{nt.push(dt)});const ct=getGraphDataPositions(et,nt),{links:ut}=ct;nt=ct.nodes,nt.sort((dt,pt)=>(pt.weight||0)-(dt.weight||0));const ht=getMaxSuperficialWeightPerNodeType(nt,ut);return nt=addWeightNormalizationToNodes(lt,ht,nt,ut),{links:ut,nodes:nt}}catch(ot){return console.error(ot),defaultData$8}},getSegmentColor=(tt,et)=>tt==="topic"||et==="topic"?NODE_RELATIVE_HIGHLIGHT_COLORS.topics.segmentColor:tt==="guest"||et==="guest"?NODE_RELATIVE_HIGHLIGHT_COLORS.guests.segmentColor:NODE_RELATIVE_HIGHLIGHT_COLORS.children.segmentColor,generateLinksFromNodeData=(tt,et,nt)=>{const rt=[];return tt.forEach(it=>{const{children:ot,guests:at}=it;ot==null||ot.forEach(st=>{if(it.ref_id){const lt=tt.find(ht=>ht.ref_id===st)||null;if(!lt)return;const ct=new Vector3(it.x||0,it.y||0,it.z||0),ut=new Vector3((lt==null?void 0:lt.x)||0,(lt==null?void 0:lt.y)||0,(lt==null?void 0:lt.z)||0);rt.push({onlyVisibleOnSelect:et,color:getSegmentColor(it.node_type,(lt==null?void 0:lt.node_type)||""),source:it.ref_id,sourceRef:it.ref_id,sourcePosition:ct,target:st,targetRef:st,targetPosition:ut})}}),at==null||at.forEach(st=>{if(st&&typeof st!="string"&&it.ref_id){const lt=tt.find(ht=>ht.ref_id===(st==null?void 0:st.ref_id))||null;if(!lt)return;const ct=new Vector3(it.x||0,it.y||0,it.z||0),ut=new Vector3((lt==null?void 0:lt.x)||0,(lt==null?void 0:lt.y)||0,(lt==null?void 0:lt.z)||0);rt.push({onlyVisibleOnSelect:nt,color:getSegmentColor(it.node_type,"guest"),source:it.ref_id,sourceRef:it.ref_id,sourcePosition:ct,target:st==null?void 0:st.ref_id,targetRef:st==null?void 0:st.ref_id,targetPosition:ut})}})}),rt},addWeightNormalizationToNodes=(tt,et,nt,rt)=>nt.map(it=>{let ot=(it.weight||0)/tt;return!it.weight&&et[it.node_type]&&(ot=getSuperficialNodeWeight(it,rt)/et[it.node_type]),{...it,weight:ot}}),saveConsumedContent=async tt=>{await executeIfProd(async()=>{if(!await distExports$2.enable(!0)){console.error("Sphinx enable failed, means no pubkey and no budget (including budget of 0)");return}try{await distExports$2.saveGraphData({metaData:{date:Math.floor(new Date().getTime()/1e3),...tt},type:"second_brain_consumed_content"})}catch(nt){console.warn(nt)}})},saveSearchTerm=async()=>{await executeIfProd(async()=>{await distExports$2.enable(!0)||console.log("Sphinx enable failed, means no pubkey and no budget (including budget of 0)")})},graphStyles=["split","force","sphere","earth"],defaultData$7={categoryFilter:null,data:null,selectionGraphData:{nodes:[],links:[]},scrollEventsDisabled:!1,disableCameraRotation:!1,graphRadius:isChileGraph?1600:3056,graphStyle:"split",isFetching:!1,isTimestampLoaded:!1,queuedSources:null,hoveredNode:null,selectedNode:null,selectedTimestamp:null,sources:null,sphinxModalIsOpen:!1,cameraFocusTrigger:!1,selectedNodeRelativeIds:[],nearbyNodeIds:[],showSelectionGraph:!1,hideNodeDetails:!1},useDataStore=react((tt,et)=>({...defaultData$7,fetchData:async nt=>{if(et().isFetching)return;tt({isFetching:!0,sphinxModalIsOpen:!0});const rt=await fetchGraphData(nt||"");nt&&await saveSearchTerm(),tt({data:rt,isFetching:!1,sphinxModalIsOpen:!1,disableCameraRotation:!1,nearbyNodeIds:[],selectedNodeRelativeIds:[],showSelectionGraph:!1})},setIsFetching:nt=>tt({isFetching:nt}),setData:nt=>tt({data:nt}),setSelectionData:nt=>tt({selectionGraphData:nt}),setScrollEventsDisabled:nt=>tt({scrollEventsDisabled:nt}),setCategoryFilter:nt=>tt({categoryFilter:nt}),setDisableCameraRotation:nt=>tt({disableCameraRotation:nt}),setGraphRadius:nt=>tt({graphRadius:nt}),setGraphStyle:nt=>tt({graphStyle:nt}),setQueuedSources:nt=>tt({queuedSources:nt}),setHoveredNode:nt=>tt({hoveredNode:nt}),setSelectedNode:nt=>{const rt=et().selectedNode;if((rt==null?void 0:rt.ref_id)!==(nt==null?void 0:nt.ref_id)){const{data:it}=et(),ot=(it==null?void 0:it.nodes.filter(at=>at.ref_id&&nodesAreRelatives(at,nt)).map(at=>(at==null?void 0:at.ref_id)||""))||[];tt({hoveredNode:null,isTimestampLoaded:!1,selectedNode:nt,disableCameraRotation:!0,selectedNodeRelativeIds:ot})}},setSelectedTimestamp:nt=>tt({selectedTimestamp:nt}),setSources:nt=>tt({sources:nt}),setSphinxModalOpen:nt=>tt({sphinxModalIsOpen:nt}),setCameraFocusTrigger:nt=>tt({cameraFocusTrigger:nt}),setNearbyNodeIds:nt=>{const rt=et().nearbyNodeIds;(nt.length!==rt.length||nt[0]!==rt[0])&&tt({nearbyNodeIds:nt})},setShowSelectionGraph:nt=>tt({showSelectionGraph:nt}),setHideNodeDetails:nt=>tt({hideNodeDetails:nt})})),useSelectedNode=()=>useDataStore(tt=>tt.selectedNode),setIsTimestampLoaded=tt=>useDataStore.setState({isTimestampLoaded:tt});var lib$2={};const require$$0=getAugmentedNamespace(emotionStyledBase_browser_esm);var ClickOutside={};(function(tt){tt.__esModule=!0,tt.default=void 0;var et=nt(reactExports);nt(propTypesExports);function nt(ht){return ht&&ht.__esModule?ht:{default:ht}}function rt(ht){if(ht===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return ht}function it(ht,dt){ht.prototype=Object.create(dt.prototype),ht.prototype.constructor=ht,ot(ht,dt)}function ot(ht,dt){return ot=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(pt,mt){return pt.__proto__=mt,pt},ot(ht,dt)}function at(ht,dt,pt){return dt=st(dt),dt in ht?Object.defineProperty(ht,dt,{value:pt,enumerable:!0,configurable:!0,writable:!0}):ht[dt]=pt,ht}function st(ht){var dt=lt(ht,"string");return typeof dt=="symbol"?dt:dt+""}function lt(ht,dt){if(typeof ht!="object"||ht===null)return ht;var pt=ht[Symbol.toPrimitive];if(pt!==void 0){var mt=pt.call(ht,dt||"default");if(typeof mt!="object")return mt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(dt==="string"?String:Number)(ht)}var ct=function(ht){function dt(){for(var mt,gt=arguments.length,yt=Array(gt),bt=0;bt"u"&&(commonjsGlobal.window={}),window};tt.isomorphicWindow=st})(util);var constants$2={};(function(tt){tt.__esModule=!0,tt.LIB_NAME=void 0,tt.LIB_NAME="react-dropdown-select"})(constants$2);(function(tt){tt.__esModule=!0,tt.default=void 0;var et=ot(require$$0),nt=ot(reactExports),rt=util,it=constants$2;function ot(ct){return ct&&ct.__esModule?ct:{default:ct}}var at=function(ct){var ut=ct.item,ht=ct.props,dt=ct.state,pt=ct.methods;return ut&&ht.optionRenderer?ht.optionRenderer({item:ut,props:ht,state:dt,methods:pt}):nt.default.createElement(st,{role:"listitem",disabled:ht.disabled,direction:ht.direction,className:it.LIB_NAME+"-option",color:ht.color},nt.default.createElement("span",{className:it.LIB_NAME+"-option-label"},(0,rt.getByPath)(ut,ht.labelField)),nt.default.createElement("span",{className:it.LIB_NAME+"-option-remove",onClick:function(gt){return pt.removeItem(gt,ut,ht.closeOnSelect)}},"×"))},st=(0,et.default)("span",{target:"e1l4eby50"})("padding:0 5px;border-radius:2px;line-height:21px;margin:3px 0 3px 5px;background:",function(ct){var ut=ct.color;return ut},";color:#fff;display:flex;flex-direction:",function(ct){var ut=ct.direction;return ut==="rtl"?"row-reverse":"row"},";.",it.LIB_NAME,"-option-remove{cursor:pointer;width:22px;height:22px;display:inline-block;text-align:center;margin:0 -5px 0 0px;border-radius:0 3px 3px 0;:hover{color:tomato;}}:hover,:hover>span{opacity:0.9;}"),lt=at;tt.default=lt})(Option);var Input$1={};(function(tt){tt.__esModule=!0,tt.default=void 0;var et=st(require$$0),nt=at(reactExports),rt=util;at(propTypesExports);var it=constants$2;function ot(wt){if(typeof WeakMap!="function")return null;var vt=new WeakMap,kt=new WeakMap;return(ot=function(St){return St?kt:vt})(wt)}function at(wt,vt){if(!vt&&wt&&wt.__esModule)return wt;if(wt===null||typeof wt!="object"&&typeof wt!="function")return{default:wt};var kt=ot(vt);if(kt&&kt.has(wt))return kt.get(wt);var St={},Et=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var At in wt)if(At!="default"&&Object.prototype.hasOwnProperty.call(wt,At)){var Tt=Et?Object.getOwnPropertyDescriptor(wt,At):null;Tt&&(Tt.get||Tt.set)?Object.defineProperty(St,At,Tt):St[At]=wt[At]}return St.default=wt,kt&&kt.set(wt,St),St}function st(wt){return wt&&wt.__esModule?wt:{default:wt}}function lt(wt){if(wt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return wt}function ct(wt,vt){wt.prototype=Object.create(vt.prototype),wt.prototype.constructor=wt,ut(wt,vt)}function ut(wt,vt){return ut=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(kt,St){return kt.__proto__=St,kt},ut(wt,vt)}function ht(wt,vt,kt){return vt=dt(vt),vt in wt?Object.defineProperty(wt,vt,{value:kt,enumerable:!0,configurable:!0,writable:!0}):wt[vt]=kt,wt}function dt(wt){var vt=pt(wt,"string");return typeof vt=="symbol"?vt:vt+""}function pt(wt,vt){if(typeof wt!="object"||wt===null)return wt;var kt=wt[Symbol.toPrimitive];if(kt!==void 0){var St=kt.call(wt,vt||"default");if(typeof St!="object")return St;throw new TypeError("@@toPrimitive must return a primitive value.")}return(vt==="string"?String:Number)(wt)}var mt=function(wt,vt){var kt=wt.addPlaceholder,St=wt.searchable,Et=wt.placeholder,At=vt.values&&vt.values.length===0,Tt=vt.values&&0(0,ht.getProp)(Wt,Ot)?1:0}),zt}),kt(bt(xt),"searchFn",function(It){var Ot=It.state,zt=It.methods,Ut=new RegExp(zt.safeString(Ot.search),"i");return zt.sortBy().filter(function(Wt){return Ut.test((0,ht.getByPath)(Wt,xt.props.searchBy)||(0,ht.getByPath)(Wt,xt.props.valueField))})}),kt(bt(xt),"searchResults",function(){var It={state:xt.state,props:xt.props,methods:xt.methods};return xt.props.searchFn(It)||xt.searchFn(It)}),kt(bt(xt),"activeCursorItem",function(It){return xt.setState({activeCursorItem:It})}),kt(bt(xt),"handleKeyDown",function(It){var Ot={event:It,state:xt.state,props:xt.props,methods:xt.methods,setState:xt.setState.bind(bt(xt))};return xt.props.handleKeyDownFn(Ot)||xt.handleKeyDownFn(Ot)}),kt(bt(xt),"handleKeyDownFn",function(It){var Ot=It.event,zt=It.state,Ut=It.props,Wt=It.methods,Ft=It.setState,Nt=zt.cursor,Ct=zt.searchResults,Ht=Ot.key==="Escape",Jt=Ot.key==="Enter",nn=Ot.key==="ArrowUp",Yt=Ot.key==="ArrowDown",fn=Ot.key==="Backspace",cn=Ot.key==="Tab"&&!Ot.shiftKey,_n=Ot.shiftKey&&Ot.key==="Tab";if(Yt&&!zt.dropdown)return Ot.preventDefault(),xt.dropDown("open"),Ft({cursor:0});if((Yt||cn&&zt.dropdown)&&Nt===null)return Ft({cursor:0});if((nn||Yt||_n&&zt.dropdown||cn&&zt.dropdown)&&Ot.preventDefault(),Ht&&xt.dropDown("close"),Jt){var En=Ct[Nt];if(En&&!En.disabled){if(Ut.create&&(0,ht.valueExistInSelected)(zt.search,zt.values,Ut))return null;Wt.addItem(En)}}return(Yt||cn&&zt.dropdown)&&Ct.length===Nt?Ft({cursor:0}):((Yt||cn&&zt.dropdown)&&Ft(function(an){return{cursor:an.cursor+1}}),(nn||_n&&zt.dropdown)&&0(0,ht.getProp)(Wt,Ot)?1:0}),zt}),kt(bt(xt),"searchFn",function(It){var Ot=It.state,zt=It.methods,Ut=new RegExp(zt.safeString(Ot.search),"i");return zt.sortBy().filter(function(Wt){return Ut.test((0,ht.getByPath)(Wt,xt.props.searchBy)||(0,ht.getByPath)(Wt,xt.props.valueField))})}),kt(bt(xt),"searchResults",function(){var It={state:xt.state,props:xt.props,methods:xt.methods};return xt.props.searchFn(It)||xt.searchFn(It)}),kt(bt(xt),"activeCursorItem",function(It){return xt.setState({activeCursorItem:It})}),kt(bt(xt),"handleKeyDown",function(It){var Ot={event:It,state:xt.state,props:xt.props,methods:xt.methods,setState:xt.setState.bind(bt(xt))};return xt.props.handleKeyDownFn(Ot)||xt.handleKeyDownFn(Ot)}),kt(bt(xt),"handleKeyDownFn",function(It){var Ot=It.event,zt=It.state,Ut=It.props,Wt=It.methods,Ft=It.setState,Nt=zt.cursor,Ct=zt.searchResults,Ht=Ot.key==="Escape",Jt=Ot.key==="Enter",nn=Ot.key==="ArrowUp",Yt=Ot.key==="ArrowDown",fn=Ot.key==="Backspace",cn=Ot.key==="Tab"&&!Ot.shiftKey,_n=Ot.shiftKey&&Ot.key==="Tab";if(Yt&&!zt.dropdown)return Ot.preventDefault(),xt.dropDown("open"),Ft({cursor:0});if((Yt||cn&&zt.dropdown)&&Nt===null)return Ft({cursor:0});if((nn||Yt||_n&&zt.dropdown||cn&&zt.dropdown)&&Ot.preventDefault(),Ht&&xt.dropDown("close"),Jt){var En=Ct[Nt];if(En&&!En.disabled){if(Ut.create&&(0,ht.valueExistInSelected)(zt.search,zt.values,Ut))return null;Wt.addItem(En)}}return(Yt||cn&&zt.dropdown)&&Ct.length===Nt?Ft({cursor:0}):((Yt||cn&&zt.dropdown)&&Ft(function(an){return{cursor:an.cursor+1}}),(nn||_n&&zt.dropdown)&&0{try{const tt=await distExports$2.topup();if(!tt)throw new Error("Topup failed");if(tt.budget<5)throw new Error("You set a budget of less than 5 sats");toast(jsxRuntimeExports.jsx(ToastMessage,{message:`You set a budget of ${tt.budget} sats`}),{icon:!1,position:toast.POSITION.BOTTOM_CENTER,type:"success"})}catch(tt){tt instanceof Error&&toast(jsxRuntimeExports.jsx(ToastMessage,{message:tt.message}),{icon:!1,position:toast.POSITION.BOTTOM_CENTER,type:"error"})}},ToastMessage=({message:tt})=>tt===BOOST_ERROR_BUDGET?jsxRuntimeExports.jsxs("div",{children:[tt,jsxRuntimeExports.jsx(ButtonWrapper,{onClick:topupFromToast,type:"button",children:jsxRuntimeExports.jsx(Text$3,{color:"white",kind:"medium",children:"Topup"})})]}):jsxRuntimeExports.jsx("div",{children:tt}),ButtonWrapper=styled$4.button` + background: ${colors.gray200}; + border: 1px solid ${colors.white}; + border-radius: 2px; + margin: 10px; + padding: 5px; + + &:hover { + cursor: pointer; + background-color: ${colors.gray300}; + } `;function FaCheck(tt){return GenIcon({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"}}]})(tt)}function FaRegQuestionCircle(tt){return GenIcon({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"}}]})(tt)}const defaultProps$3={colorName:"black",disabled:!1,maxLength:524288,placeholder:"",placeholderTextColor:"gray100",returnKeyType:"done",textAlign:"left",type:"text"},WebTextArea=styled$4.textarea` -webkit-appearance: none; -webkit-text-fill-color: ${({colorName:tt})=>colors[tt]}; @@ -3877,7 +3877,7 @@ A Bitcoin Podcast. color: ${colors.lightGray}; font-size: 14px; font-weight: 600; -`,message$5="Submit Text",Document=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextArea,{id:"cy-text-id",label:"Text",maxLength:50,message:message$5,name:"document",placeholder:"Type your text here...",rules:{...requiredRule$1}})});var reactInputMask={exports:{}},reactInputMask_production_min={exports:{}},invariant=function(tt,et,nt,rt,it,ot,at,st){if(!tt){var lt;if(et===void 0)lt=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var ct=[nt,rt,it,ot,at,st],ut=0;lt=new Error(et.replace(/%s/g,function(){return ct[ut++]})),lt.name="Invariant Violation"}throw lt.framesToPop=1,lt}},browser=invariant;const invariant$1=getDefaultExportFromCjs(browser);function t$1(tt){return tt&&typeof tt=="object"&&"default"in tt?tt.default:tt}var e$1=reactExports,n$1=t$1(e$1),i$3=reactDomExports,r$1=t$1(browser);function a$1(){return(a$1=Object.assign||function(tt){for(var et=1;et=0||(it[nt]=tt[nt]);return it}function u(tt){return requestAnimationFrame(tt)}function s$1(tt){cancelAnimationFrame(tt)}function c$3(tt){var et=tt.ownerDocument;return et.hasFocus()&&et.activeElement===tt}function f$1(tt){return tt==null?void 0:tt.ownerDocument}function h$2(tt){var et=function(nt){var rt;return(rt=f$1(nt))==null?void 0:rt.defaultView}(tt);return!!et&&tt instanceof et.HTMLElement}function g$1(tt){return e$1.useCallback(function(){var et=tt.current,nt=typeof window<"u"&&h$2(et);if(!et||!nt)return null;if(et.nodeName!=="INPUT"&&(et=et.querySelector("input")),!et)throw new Error("react-input-mask: inputComponent doesn't contain input node");return et},[tt])}function v$2(tt,et){var nt,rt,it,ot,at=e$1.useRef({start:null,end:null}),st=g$1(tt),lt=e$1.useCallback(function(){return function(gt){var yt=gt.selectionStart,bt=gt.selectionEnd;return{start:yt,end:bt,length:bt-yt}}(st())},[st]),ct=e$1.useCallback(function(){return at.current},[]),ut=e$1.useCallback(function(gt){var yt=st();yt&&c$3(yt)&&(function(bt,wt,vt){vt===void 0&&(vt=wt),bt.setSelectionRange(wt,vt)}(yt,gt.start,gt.end),at.current=lt())},[st,lt]),ht=e$1.useCallback(function(){at.current=lt()},[lt]),dt=(nt=ht,rt=e$1.useRef(null),it=e$1.useCallback(function(){rt.current===null&&function gt(){nt(),rt.current=u(gt)}()},[nt]),ot=e$1.useCallback(function(){s$1(rt.current),rt.current=null},[]),e$1.useEffect(function(){rt.current&&(ot(),it())},[it,ot]),e$1.useEffect(s$1,[]),[it,ot]),pt=dt[0],mt=dt[1];return e$1.useLayoutEffect(function(){if(et){var gt=st();return gt.addEventListener("focus",pt),gt.addEventListener("blur",mt),c$3(gt)&&pt(),function(){gt.removeEventListener("focus",pt),gt.removeEventListener("blur",mt),mt()}}}),{getSelection:lt,getLastSelection:ct,setSelection:ut}}function d$1(tt,et){var nt=e$1.useRef(),rt=v$2(nt,et),it=rt.getSelection,ot=rt.getLastSelection,at=rt.setSelection,st=function(ht,dt){var pt=g$1(ht),mt=e$1.useRef(dt);return{getValue:e$1.useCallback(function(){return pt().value},[pt]),getLastValue:e$1.useCallback(function(){return mt.current},[]),setValue:e$1.useCallback(function(gt){mt.current=gt;var yt=pt();yt&&(yt.value=gt)},[pt])}}(nt,tt),lt=st.getValue,ct=st.getLastValue,ut=st.setValue;return{inputRef:nt,getInputState:function(){return{value:lt(),selection:it()}},getLastInputState:function(){return{value:ct(),selection:ot()}},setInputState:function(ht){var dt=ht.value,pt=ht.selection;ut(dt),at(pt)}}}var p$2=["disabled","onBlur","onChange","onFocus","onMouseDown","readOnly","value"],m$2={9:/[0-9]/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},P$1=function(tt){var et=this;this.isCharacterAllowedAtPosition=function(nt,rt){var it=et.maskOptions.maskPlaceholder;return!!et.isCharacterFillingPosition(nt,rt)||!!it&&it[rt]===nt},this.isCharacterFillingPosition=function(nt,rt){var it=et.maskOptions.mask;if(!nt||rt>=it.length)return!1;if(!et.isPositionEditable(rt))return it[rt]===nt;var ot=it[rt];return new RegExp(ot).test(nt)},this.isPositionEditable=function(nt){var rt=et.maskOptions,it=rt.mask,ot=rt.permanents;return nt=0;ot--)if(it(rt[ot],ot))return ot;return-1}(nt.split(""),function(rt,it){return et.isPositionEditable(it)&&et.isCharacterFillingPosition(rt,it)})+1},this.getStringFillingLengthAtPosition=function(nt,rt){return nt.split("").reduce(function(it,ot){return et.insertCharacterAtPosition(it,ot,it.length)},function(it,ot){ot===void 0&&(ot=1);for(var at="",st=0;st=0;rt--)if(et.isPositionEditable(rt))return rt;return null},this.getRightEditablePosition=function(nt){for(var rt=et.maskOptions.mask,it=nt;it=ot&&!dt?"":ht=ot?ut:dt?st?st[ht]:"":lt[ht]}).join("");return et.formatValue(ct)},this.insertCharacterAtPosition=function(nt,rt,it){var ot=et.maskOptions,at=ot.mask,st=ot.maskPlaceholder;if(it>=at.length)return nt;var lt=et.isCharacterAllowedAtPosition(rt,it),ct=et.isPositionEditable(it),ut=et.getRightEditablePosition(it),ht=st&&ut?rt===st[ut]:null,dt=nt.slice(0,it);return!lt&&ct||(nt=dt+(lt?rt:at[it])),lt||ct||ht||(nt=et.insertCharacterAtPosition(nt,rt,it+1)),nt},this.insertStringAtPosition=function(nt,rt,it){var ot=et.maskOptions,at=ot.mask,st=ot.maskPlaceholder;if(!rt||it>=at.length)return nt;var lt=rt.split(""),ct=et.isValueFilled(nt)||!!st,ut=nt.slice(it);return nt=lt.reduce(function(ht,dt){return et.insertCharacterAtPosition(ht,dt,ht.length)},nt.slice(0,it)),ct?nt+=ut.slice(nt.length-it):et.isValueFilled(nt)?nt+=at.slice(nt.length).join(""):nt=ut.split("").filter(function(ht,dt){return et.isPositionEditable(it+dt)}).reduce(function(ht,dt){var pt=et.getRightEditablePosition(ht.length);return pt===null?ht:(et.isPositionEditable(ht.length)||(ht+=at.slice(ht.length,pt).join("")),et.insertCharacterAtPosition(ht,dt,ht.length))},nt),nt},this.processChange=function(nt,rt){var it=et.maskOptions,ot=it.mask,at=it.prefix,st=it.lastEditablePosition,lt=nt.value,ct=nt.selection,ut=rt.value,ht=rt.selection,dt=lt,pt="",mt=0,gt=0,yt=Math.min(ht.start,ct.start);return ct.end>ht.start?(pt=dt.slice(ht.start,ct.end),gt=(mt=et.getStringFillingLengthAtPosition(pt,yt))?ht.length:0):dt.length=ot.length?yt=ot.length:yt=at.length&&ytjsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextArea,{id:"cy-text-id",label:"Text",maxLength:50,message:message$5,name:"document",placeholder:"Type your text here...",rules:{...requiredRule$1}})});var reactInputMask={exports:{}},reactInputMask_production_min={exports:{}},invariant=function(tt,et,nt,rt,it,ot,at,st){if(!tt){var lt;if(et===void 0)lt=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var ct=[nt,rt,it,ot,at,st],ut=0;lt=new Error(et.replace(/%s/g,function(){return ct[ut++]})),lt.name="Invariant Violation"}throw lt.framesToPop=1,lt}},browser=invariant;const invariant$1=getDefaultExportFromCjs(browser);function t$1(tt){return tt&&typeof tt=="object"&&"default"in tt?tt.default:tt}var e$1=reactExports,n$1=t$1(e$1),i$3=reactDomExports,r$1=t$1(browser);function a$1(){return(a$1=Object.assign||function(tt){for(var et=1;et=0||(it[nt]=tt[nt]);return it}function u(tt){return requestAnimationFrame(tt)}function s$1(tt){cancelAnimationFrame(tt)}function c$3(tt){var et=tt.ownerDocument;return et.hasFocus()&&et.activeElement===tt}function f$1(tt){return tt==null?void 0:tt.ownerDocument}function h$2(tt){var et=function(nt){var rt;return(rt=f$1(nt))==null?void 0:rt.defaultView}(tt);return!!et&&tt instanceof et.HTMLElement}function g$1(tt){return e$1.useCallback(function(){var et=tt.current,nt=typeof window<"u"&&h$2(et);if(!et||!nt)return null;if(et.nodeName!=="INPUT"&&(et=et.querySelector("input")),!et)throw new Error("react-input-mask: inputComponent doesn't contain input node");return et},[tt])}function v$2(tt,et){var nt,rt,it,ot,at=e$1.useRef({start:null,end:null}),st=g$1(tt),lt=e$1.useCallback(function(){return function(gt){var yt=gt.selectionStart,bt=gt.selectionEnd;return{start:yt,end:bt,length:bt-yt}}(st())},[st]),ct=e$1.useCallback(function(){return at.current},[]),ut=e$1.useCallback(function(gt){var yt=st();yt&&c$3(yt)&&(function(bt,wt,vt){vt===void 0&&(vt=wt),bt.setSelectionRange(wt,vt)}(yt,gt.start,gt.end),at.current=lt())},[st,lt]),ht=e$1.useCallback(function(){at.current=lt()},[lt]),dt=(nt=ht,rt=e$1.useRef(null),it=e$1.useCallback(function(){rt.current===null&&function gt(){nt(),rt.current=u(gt)}()},[nt]),ot=e$1.useCallback(function(){s$1(rt.current),rt.current=null},[]),e$1.useEffect(function(){rt.current&&(ot(),it())},[it,ot]),e$1.useEffect(s$1,[]),[it,ot]),pt=dt[0],mt=dt[1];return e$1.useLayoutEffect(function(){if(et){var gt=st();return gt.addEventListener("focus",pt),gt.addEventListener("blur",mt),c$3(gt)&&pt(),function(){gt.removeEventListener("focus",pt),gt.removeEventListener("blur",mt),mt()}}}),{getSelection:lt,getLastSelection:ct,setSelection:ut}}function d$1(tt,et){var nt=e$1.useRef(),rt=v$2(nt,et),it=rt.getSelection,ot=rt.getLastSelection,at=rt.setSelection,st=function(ht,dt){var pt=g$1(ht),mt=e$1.useRef(dt);return{getValue:e$1.useCallback(function(){return pt().value},[pt]),getLastValue:e$1.useCallback(function(){return mt.current},[]),setValue:e$1.useCallback(function(gt){mt.current=gt;var yt=pt();yt&&(yt.value=gt)},[pt])}}(nt,tt),lt=st.getValue,ct=st.getLastValue,ut=st.setValue;return{inputRef:nt,getInputState:function(){return{value:lt(),selection:it()}},getLastInputState:function(){return{value:ct(),selection:ot()}},setInputState:function(ht){var dt=ht.value,pt=ht.selection;ut(dt),at(pt)}}}var p$2=["disabled","onBlur","onChange","onFocus","onMouseDown","readOnly","value"],m$2={9:/[0-9]/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},P$1=function(tt){var et=this;this.isCharacterAllowedAtPosition=function(nt,rt){var it=et.maskOptions.maskPlaceholder;return!!et.isCharacterFillingPosition(nt,rt)||!!it&&it[rt]===nt},this.isCharacterFillingPosition=function(nt,rt){var it=et.maskOptions.mask;if(!nt||rt>=it.length)return!1;if(!et.isPositionEditable(rt))return it[rt]===nt;var ot=it[rt];return new RegExp(ot).test(nt)},this.isPositionEditable=function(nt){var rt=et.maskOptions,it=rt.mask,ot=rt.permanents;return nt=0;ot--)if(it(rt[ot],ot))return ot;return-1}(nt.split(""),function(rt,it){return et.isPositionEditable(it)&&et.isCharacterFillingPosition(rt,it)})+1},this.getStringFillingLengthAtPosition=function(nt,rt){return nt.split("").reduce(function(it,ot){return et.insertCharacterAtPosition(it,ot,it.length)},function(it,ot){ot===void 0&&(ot=1);for(var at="",st=0;st=0;rt--)if(et.isPositionEditable(rt))return rt;return null},this.getRightEditablePosition=function(nt){for(var rt=et.maskOptions.mask,it=nt;it=ot&&!dt?"":ht=ot?ut:dt?st?st[ht]:"":lt[ht]}).join("");return et.formatValue(ct)},this.insertCharacterAtPosition=function(nt,rt,it){var ot=et.maskOptions,at=ot.mask,st=ot.maskPlaceholder;if(it>=at.length)return nt;var lt=et.isCharacterAllowedAtPosition(rt,it),ct=et.isPositionEditable(it),ut=et.getRightEditablePosition(it),ht=st&&ut?rt===st[ut]:null,dt=nt.slice(0,it);return!lt&&ct||(nt=dt+(lt?rt:at[it])),lt||ct||ht||(nt=et.insertCharacterAtPosition(nt,rt,it+1)),nt},this.insertStringAtPosition=function(nt,rt,it){var ot=et.maskOptions,at=ot.mask,st=ot.maskPlaceholder;if(!rt||it>=at.length)return nt;var lt=rt.split(""),ct=et.isValueFilled(nt)||!!st,ut=nt.slice(it);return nt=lt.reduce(function(ht,dt){return et.insertCharacterAtPosition(ht,dt,ht.length)},nt.slice(0,it)),ct?nt+=ut.slice(nt.length-it):et.isValueFilled(nt)?nt+=at.slice(nt.length).join(""):nt=ut.split("").filter(function(ht,dt){return et.isPositionEditable(it+dt)}).reduce(function(ht,dt){var pt=et.getRightEditablePosition(ht.length);return pt===null?ht:(et.isPositionEditable(ht.length)||(ht+=at.slice(ht.length,pt).join("")),et.insertCharacterAtPosition(ht,dt,ht.length))},nt),nt},this.processChange=function(nt,rt){var it=et.maskOptions,ot=it.mask,at=it.prefix,st=it.lastEditablePosition,lt=nt.value,ct=nt.selection,ut=rt.value,ht=rt.selection,dt=lt,pt="",mt=0,gt=0,yt=Math.min(ht.start,ct.start);return ct.end>ht.start?(pt=dt.slice(ht.start,ct.end),gt=(mt=et.getStringFillingLengthAtPosition(pt,yt))?ht.length:0):dt.length=ot.length?yt=ot.length:yt=at.length&&ytjsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"cy-github-repository-id",label:"Github repository",message:message$4,name:"source",placeholder:"Type github repository here...",rules:{...requiredRule$1}})}),message$3="Submit RSS feed",RSSFeed=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"cy-rss-feed-id",label:"RSS feed",maxLength:50,message:message$3,name:"source",placeholder:"Type RSS link here...",rules:{...requiredRule$1}})}),Wrapper$k=styled$4(Flex).attrs({background:"inputBg2",basis:"25%",px:8,py:12})` +`,message$4="Submit github repository",GithubRepository=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"cy-github-repository-id",label:"Github repository",message:message$4,name:"source",placeholder:"Type github repository here...",rules:{...requiredRule$1}})}),message$3="Submit RSS feed",RSSFeed=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"cy-rss-feed-id",label:"RSS feed",maxLength:50,message:message$3,name:"source",placeholder:"Type RSS link here...",rules:{...requiredRule$1}})}),latitudeReg=/^(-?\d{1,2}(\.\d+)?|90(\.0+)?)$/,longitudeReg=/^(-?\d{1,3}(\.\d+)?|180(\.0+)?)$/,Location=({setValue:tt,latitude:et,longitude:nt})=>{const[rt,it]=reactExports.useState(!1);console.log(et),console.log(nt);const ot=()=>{tt&&tt("withLocation",!rt),it(!rt)},at=lt=>{const ct=Number(lt);return ct<-90||ct>90?"Latitude must be between -90 and 90.":!ct&&ct!==0?"Latitude is required.":!0},st=lt=>lt<-180||lt>180?"Longitude must be between -180 and 180.":!lt&<!==0?"Longitude is required.":!0;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Flex,{direction:"row",pt:12,children:jsxRuntimeExports.jsxs(CheckBoxWrapper,{children:["Add location",jsxRuntimeExports.jsx("button",{className:"checkbox",id:"add-node-location-checkbox",onClick:ot,type:"button",children:rt&&jsxRuntimeExports.jsx(FaCheck,{color:colors.lightBlue500})})]})}),rt&&jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsxs(Flex,{direction:"row",pt:12,children:[jsxRuntimeExports.jsx(Flex,{basis:"50%",pr:16,children:jsxRuntimeExports.jsx(TextInput,{id:"add-node-latitude",label:"Latitude",message:"Enter latitude coordinates",name:"latitude",placeholder:"Enter latitude (-90 to 90)",rules:{...requiredRule$1,pattern:{message:"Incorrect longitude format",value:latitudeReg},validate:{latitude:at}}})}),jsxRuntimeExports.jsx(Flex,{basis:"50%",pl:16,children:jsxRuntimeExports.jsx(TextInput,{id:"add-node-location-longitude",label:"Longitude",message:"Enter longitude coordinates",name:"longitude",placeholder:"Enter longitude (-180 to 180)",rules:{...requiredRule$1,pattern:{message:"Incorrect longitude format",value:longitudeReg},validate:{longitude:st}}})})]})})]})},Wrapper$k=styled$4(Flex).attrs({background:"inputBg2",basis:"25%",px:8,py:12})` border-radius: 8px; margin-right: 8px; `,name="tags",TagInput=({id:tt,label:et,message:nt,rules:rt,...it})=>{const{setValue:ot,getValues:at,clearErrors:st,formState:{errors:lt}}=useFormContext(),ct=get$6(lt,name),[ut,ht]=reactExports.useState(""),dt=at(name),pt=reactExports.useCallback(yt=>{if(yt.type==="keydown"){if(yt.key!=="Enter")return;yt.preventDefault()}if(!ut.trim()||dt&&dt.length===15)return;const bt=new Set([...dt||[],ut]);ot(name,[...bt]),ht(""),st(name)},[ut,ot,dt,st]),mt=reactExports.useCallback(yt=>{if(!dt)return;const bt=dt.findIndex(wt=>wt===yt);dt.splice(bt,1),ot(name,[...dt],{shouldValidate:!0})},[ot,dt]),gt=reactExports.useCallback(yt=>{ht(yt)},[ht]);return jsxRuntimeExports.jsxs(Flex,{shrink:1,children:[jsxRuntimeExports.jsxs(Flex,{align:"center",direction:"row",pb:4,pl:4,children:[jsxRuntimeExports.jsx(Label$1,{htmlFor:tt,children:et}),jsxRuntimeExports.jsxs(QuestionIcon,{role:"tooltip",children:[jsxRuntimeExports.jsx(FaRegQuestionCircle,{color:colors.secondaryText4}),jsxRuntimeExports.jsx("div",{className:"tooltip",children:nt})]})]}),jsxRuntimeExports.jsxs(Flex,{direction:"row",children:[jsxRuntimeExports.jsx(Wrapper$k,{children:jsxRuntimeExports.jsx(Controller,{name,render:()=>jsxRuntimeExports.jsx(BaseTextInput,{...it,colorName:"white",id:tt,name,onChange:gt,onKeyDown:pt,placeholderTextColor:"inputPlaceholder",value:ut||""}),rules:rt})}),jsxRuntimeExports.jsxs(AddTagButton,{onClick:pt,role:"button",tabIndex:0,children:[jsxRuntimeExports.jsx(Text$3,{color:"lightGray",kind:"regular",children:"Add Tag"}),jsxRuntimeExports.jsx(MdAdd,{fontSize:16})]})]}),jsxRuntimeExports.jsx(Flex,{direction:"row",grow:0,pt:8,shrink:1,wrap:"wrap",children:dt==null?void 0:dt.map(yt=>jsxRuntimeExports.jsx(Flex,{pr:4,pt:4,children:jsxRuntimeExports.jsxs(Flex,{align:"center",background:"white",borderRadius:12,direction:"row",px:8,py:4,tabIndex:0,children:[jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(Text$3,{color:"black",children:yt})}),jsxRuntimeExports.jsx(CloseButton$6,{onClick:()=>mt(yt),role:"button",tabIndex:0,children:jsxRuntimeExports.jsx(MdRemove,{fontSize:12})})]})},yt))}),ct&&jsxRuntimeExports.jsx(Flex,{id:"tag-input-errors",pl:4,pt:8,shrink:1,tabIndex:0,children:jsxRuntimeExports.jsx(Text$3,{color:"primaryRed",kind:"regularBold",children:jsxRuntimeExports.jsxs(Flex,{align:"center",direction:"row",shrink:1,children:[jsxRuntimeExports.jsx(MdError,{fontSize:18}),jsxRuntimeExports.jsx(Flex,{pl:4,shrink:1,children:ct.message})]})})})]})},CloseButton$6=styled$4(Flex)` @@ -3995,7 +3995,7 @@ A Bitcoin Podcast. color: ${colors.lightGray}; font-size: 14px; font-weight: 600; -`,tagRule={required:{message:"You need to enter at least 1 topic tag to submit a node.",value:!0}},timeRegex=/^\d{2}:\d{2}:\d{2}$/,twitterOrYoutubeRegexOrMp3=/^(?:(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:watch\?v=|embed\/)|youtu\.be\/)[\w-]{11}(?:\S*)?|(?:https?:\/\/)?(?:www\.)?twitter\.com\/i\/spaces\/\d+.*$|.+\.mp3)$/i,SourceUrl=({setValue:tt,startTime:et})=>{const[nt,rt]=reactExports.useState(!1),it=()=>{tt&&tt("withTimeStamps",!nt),rt(!nt)};return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsxs(Flex,{children:[jsxRuntimeExports.jsx(TextInput,{id:"add-node-link",label:"Link",message:"Paste a valid YouTube or Twitter Space link here.",name:"link",placeholder:"Paste your link here...",rules:{...requiredRule$1,pattern:{message:"You must enter a valid YouTube, Twitter Space or mp3 link.",value:twitterOrYoutubeRegexOrMp3}}}),jsxRuntimeExports.jsx(Flex,{direction:"row",pt:12,children:jsxRuntimeExports.jsxs(CheckBoxWrapper,{children:["Add timestamps",jsxRuntimeExports.jsx("button",{className:"checkbox",id:"add-node-timestamps-checkbox",onClick:it,type:"button",children:nt&&jsxRuntimeExports.jsx(FaCheck,{color:colors.lightBlue500})})]})}),nt&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Flex,{direction:"row",pt:12,children:[jsxRuntimeExports.jsx(Flex,{basis:"50%",pr:16,children:jsxRuntimeExports.jsx(TextInput,{id:"add-node-start-time",label:"Start Time",mask:"99:99:99",maskPlaceholder:"_",message:"Enter start and end timestamps which will encompass the segment of video or audio you want to submit. [hh:mm:ss]",name:"startTime",placeholder:"00:00:00",rules:{...requiredRule$1,pattern:{message:"Timestamp must be in the format hh:mm:ss",value:timeRegex}},showMask:!0})}),jsxRuntimeExports.jsx(Flex,{basis:"50%",pl:16,children:jsxRuntimeExports.jsx(TextInput,{id:"add-node-end-time",label:"End Time",mask:"99:99:99",maskPlaceholder:"_",message:"Enter start and end timestamps which will encompass the segment of video or audio you want to submit. [hh:mm:ss]",name:"endTime",placeholder:"00:00:00",rules:{...requiredRule$1,pattern:{message:"Timestamp must be in the format hh:mm:ss",value:timeRegex},validate:{endTime:ot=>ot>(et||"00:00:00")||"End time should be greater than start time"}},showMask:!0})})]}),jsxRuntimeExports.jsx(Flex,{pt:12,children:jsxRuntimeExports.jsx(TextArea,{id:"add-node-description",label:"Clip Description",maxLength:100,message:"Enter a short description of your audio/video segment. Think of this as the title of your node. [max 100 characters]",name:"description",rules:requiredRule$1})}),jsxRuntimeExports.jsx(Flex,{pt:12,children:jsxRuntimeExports.jsx(TagInput,{id:"add-node-tags",label:"Tags",maxLength:50,message:"Enter some topic tags that capture the main ideas of your segment. Be specific! Generic tags aren't useful for anyone. Think, 'What term(s) would someone search to find my node? [max: 15, max characters per tag: 50]",rules:tagRule})})]})]})})},CheckBoxWrapper=styled$4.div` +`,tagRule={required:{message:"You need to enter at least 1 topic tag to submit a node.",value:!0}},timeRegex=/^\d{2}:\d{2}:\d{2}$/,twitterOrYoutubeRegexOrMp3=/^(?:(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:watch\?v=|embed\/)|youtu\.be\/)[\w-]{11}(?:\S*)?|(?:https?:\/\/)?(?:www\.)?twitter\.com\/i\/spaces\/\d+.*$|.+\.mp3)$/i,SourceUrl=({setValue:tt,startTime:et,latitude:nt,longitude:rt})=>{const[it,ot]=reactExports.useState(!1),at=()=>{tt&&tt("withTimeStamps",!it),ot(!it)};return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsxs(Flex,{children:[jsxRuntimeExports.jsx(TextInput,{id:"add-node-link",label:"Link",message:"Paste a valid YouTube or Twitter Space link here.",name:"link",placeholder:"Paste your link here...",rules:{...requiredRule$1,pattern:{message:"You must enter a valid YouTube, Twitter Space or mp3 link.",value:twitterOrYoutubeRegexOrMp3}}}),jsxRuntimeExports.jsx(Flex,{direction:"row",pt:12,children:jsxRuntimeExports.jsxs(CheckBoxWrapper,{children:["Add timestamps",jsxRuntimeExports.jsx("button",{className:"checkbox",id:"add-node-timestamps-checkbox",onClick:at,type:"button",children:it&&jsxRuntimeExports.jsx(FaCheck,{color:colors.lightBlue500})})]})}),it&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Flex,{direction:"row",pt:12,children:[jsxRuntimeExports.jsx(Flex,{basis:"50%",pr:16,children:jsxRuntimeExports.jsx(TextInput,{id:"add-node-start-time",label:"Start Time",mask:"99:99:99",maskPlaceholder:"_",message:"Enter start and end timestamps which will encompass the segment of video or audio you want to submit. [hh:mm:ss]",name:"startTime",placeholder:"00:00:00",rules:{...requiredRule$1,pattern:{message:"Timestamp must be in the format hh:mm:ss",value:timeRegex}},showMask:!0})}),jsxRuntimeExports.jsx(Flex,{basis:"50%",pl:16,children:jsxRuntimeExports.jsx(TextInput,{id:"add-node-end-time",label:"End Time",mask:"99:99:99",maskPlaceholder:"_",message:"Enter start and end timestamps which will encompass the segment of video or audio you want to submit. [hh:mm:ss]",name:"endTime",placeholder:"00:00:00",rules:{...requiredRule$1,pattern:{message:"Timestamp must be in the format hh:mm:ss",value:timeRegex},validate:{endTime:st=>st>(et||"00:00:00")||"End time should be greater than start time"}},showMask:!0})})]}),jsxRuntimeExports.jsx(Flex,{pt:12,children:jsxRuntimeExports.jsx(TextArea,{id:"add-node-description",label:"Clip Description",maxLength:100,message:"Enter a short description of your audio/video segment. Think of this as the title of your node. [max 100 characters]",name:"description",rules:requiredRule$1})}),jsxRuntimeExports.jsx(Flex,{pt:12,children:jsxRuntimeExports.jsx(TagInput,{id:"add-node-tags",label:"Tags",maxLength:50,message:"Enter some topic tags that capture the main ideas of your segment. Be specific! Generic tags aren't useful for anyone. Think, 'What term(s) would someone search to find my node? [max: 15, max characters per tag: 50]",rules:tagRule})})]}),jsxRuntimeExports.jsx(Location,{latitude:nt,longitude:rt,setValue:tt})]})})},CheckBoxWrapper=styled$4.div` color: ${colors.lightGray}; font-size: 14px; font-weight: 600; @@ -4015,11 +4015,11 @@ A Bitcoin Podcast. background: transparent; padding: 0; } -`,message$2="Submit a topic that you would like to monitor (for example, “inflation”, “bitcoin”, etc). We will continuously fetch the latest content associated with your topic and add them to your graph.",Topic$1=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"cy-topic-id",label:"Topic",maxLength:50,message:message$2,name:"source",placeholder:"Type your topic here...",rules:{...requiredRule$1}})}),TwitId=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"tweet-id",label:"Tweet id",message:"Paste a valid tweet url or tweet id.",name:"tweet",placeholder:"Paste your link or id here...",rules:{...requiredRule$1}})}),TwitterHandle$2=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"twitter-handle",label:"Twitter Handle",mask:"@***********************************",maxLength:16,message:"Paste a valid twitter handle.",name:"source",placeholder:"Paste your id here...",rules:{...requiredRule$1},showMask:!1})}),message$1="Submit a valid webpage url. If you find a webpage with great text content you’d like to add to the graph, use this option (e.g. A news article, a wiki page, etc). This is NOT for audio or video content.",urlRegex=/^(?:(?:https?|ftp):\/\/)?(?:www\.)?[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*\.[a-zA-Z]{2,10}(?:\/[^\s]*)?$/,WebPage=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"tweet-id",label:"Web page url",message:message$1,name:"web_page",placeholder:"Paste your url here...",rules:{...requiredRule$1,pattern:{message:"You must enter a valid webpage url",value:urlRegex}}})}),message="Submit youtube channel",YoutubeChannel=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"cy-youtube-channel-id",label:"Youtube channel",maxLength:50,message,name:"source",placeholder:"Type youtube channel here...",rules:{...requiredRule$1}})}),requiredRule$1={required:{message:"The field is required",value:!0}},infoMessageContent=`Come across an interesting or useful part of a video or audio you'd like to share? You can add it to the knowledge graph here! +`,message$2="Submit a topic that you would like to monitor (for example, “inflation”, “bitcoin”, etc). We will continuously fetch the latest content associated with your topic and add them to your graph.",Topic$1=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"cy-topic-id",label:"Topic",maxLength:50,message:message$2,name:"source",placeholder:"Type your topic here...",rules:{...requiredRule$1}})}),TwitId=({setValue:tt,latitude:et,longitude:nt})=>jsxRuntimeExports.jsxs(Flex,{children:[jsxRuntimeExports.jsx(TextInput,{id:"tweet-id",label:"Tweet id",message:"Paste a valid tweet url or tweet id.",name:"tweet",placeholder:"Paste your link or id here...",rules:{...requiredRule$1}}),jsxRuntimeExports.jsx(Location,{latitude:et,longitude:nt,setValue:tt})]}),TwitterHandle$2=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"twitter-handle",label:"Twitter Handle",mask:"@***********************************",maxLength:16,message:"Paste a valid twitter handle.",name:"source",placeholder:"Paste your id here...",rules:{...requiredRule$1},showMask:!1})}),message$1="Submit a valid webpage url. If you find a webpage with great text content you’d like to add to the graph, use this option (e.g. A news article, a wiki page, etc). This is NOT for audio or video content.",urlRegex=/^(?:(?:https?|ftp):\/\/)?(?:www\.)?[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*\.[a-zA-Z]{2,10}(?:\/[^\s]*)?$/,WebPage=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"tweet-id",label:"Web page url",message:message$1,name:"web_page",placeholder:"Paste your url here...",rules:{...requiredRule$1,pattern:{message:"You must enter a valid webpage url",value:urlRegex}}})}),message="Submit youtube channel",YoutubeChannel=()=>jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(TextInput,{id:"cy-youtube-channel-id",label:"Youtube channel",maxLength:50,message,name:"source",placeholder:"Type youtube channel here...",rules:{...requiredRule$1}})}),requiredRule$1={required:{message:"The field is required",value:!0}},infoMessageContent=`Come across an interesting or useful part of a video or audio you'd like to share? You can add it to the knowledge graph here! Enter a valid link to the YouTube video or Twitter Space you were watching, choose a start and end timestamp to encompass the segment you found interesting or useful, provide a brief description of what the segment is about, and add topic tags that are relevant to the segment. Hit "Add node", and your clip will be added to the graph shortly. -Your pubkey will be submitted with your clip, and any boosts your clip receives will go to you!`,infoMessageSource="If you come across a source that produces ongoing content (e.g. a twitter account, youtube channel, etc). You can add it to the source table for your graph. Once the source is added to the table we will gather new content produced by that source, process it, and add it to your graph.",notify$1=tt=>{toast(jsxRuntimeExports.jsx(ToastMessage,{message:tt}),{icon:tt===NODE_ADD_SUCCESS?jsxRuntimeExports.jsx(MdCheckCircle,{color:colors.primaryGreen}):jsxRuntimeExports.jsx(MdWarning,{color:colors.primaryRed}),position:toast.POSITION.BOTTOM_CENTER,type:tt===NODE_ADD_SUCCESS?"success":"error"})},handleSubmit=async(tt,et,nt,rt)=>{var st;const it={};if(nt===LINK)it.media_url=tt.link,tt.withTimeStamps?(it.content_type="clip",it.job_response={tags:[{description:tt.description,"end-time":timeToMilliseconds(tt.endTime),"start-time":timeToMilliseconds(tt.startTime),tag:(st=tt.tags)==null?void 0:st.join(", ")}]}):it.content_type;else if(nt===TWITTER_SOURCE){const lt=/(?:https?:\/\/)?(?:www\.)?twitter\.com\/\w+\/status\/\d+/,ct=/^[0-9]{16,}$/;if(lt.test(tt.tweet)){const ut=/\/status\/(\d+)/,ht=tt.tweet.match(ut);if(ht!=null&&ht[1]){const[,dt]=ht;it.tweet_id=dt}}else it.tweet_id=tt.tweet;if(!ct.test(it.tweet_id))return;it.content_type="tweet"}else nt===WEB_PAGE?(it.content_type="webpage",it.web_page=tt.web_page):nt===DOCUMENT?(it.content_type="document",it.text=tt.document):(it.source_type=nt,nt===TWITTER_HANDLE?it.source=(tt.source||"").replace(/[@]/g,""):it.source=tt.source);let ot=null;await executeIfProd(async()=>{const lt=await distExports$2.enable();if(it.pubkey=lt==null?void 0:lt.pubkey,ot=await getLSat("adding_node"),!ot)throw new Error("An error occured calling getLSat")});const at=CONTENT_TYPES.includes(nt)?"add_node":"radar";try{const lt=await api$1.post(`/${at}`,JSON.stringify(it),ot?{Authorization:ot}:{});if(lt.error){const{message:ct}=lt.error;throw new Error(ct)}at==="radar"&&await rt(),notify$1(NODE_ADD_SUCCESS),et()}catch(lt){lt instanceof Error&&(notify$1(NODE_ADD_ERROR),et())}},CONTENT_TYPE_OPTIONS={content:{[LINK]:{component:SourceUrl,label:"Youtube / Twitter space / Mp3"},[TWITTER_SOURCE]:{component:TwitId,label:"Tweet"},[WEB_PAGE]:{component:WebPage,label:"Webpage (Text)"},[DOCUMENT]:{component:Document,label:"Document"}},source:{[GITHUB_REPOSITORY]:{component:GithubRepository,label:"Github repository"},[RSS]:{component:RSSFeed,label:"RSS feed"},[TOPIC]:{component:Topic$1,label:"Topic"},[TWITTER_HANDLE]:{component:TwitterHandle$2,label:"Twitter handle"},[YOUTUBE_CHANNEL]:{component:YoutubeChannel,label:"Youtube channel"}}},CONTENT_TYPES=Object.keys(CONTENT_TYPE_OPTIONS.content),AddNodeModal=()=>{const{close:tt,addNodeModalData:et}=useModal("addNode"),[nt,rt]=reactExports.useState(""),it=useDataStore(kt=>kt.setSources),ot=et?CONTENT_TYPE_OPTIONS[et]:null,at=et==="source"?infoMessageSource:infoMessageContent,st=useForm({mode:"onSubmit"}),{reset:lt,watch:ct,setValue:ut}=st,{isSubmitting:ht}=st.formState,dt=()=>{rt(""),lt(),tt()},pt=async()=>{if([TWITTER_HANDLE,TOPIC].includes(nt))try{const kt=await getRadarData();it(kt.data)}catch(kt){console.warn(kt)}},mt=st.handleSubmit(async kt=>{await handleSubmit(kt,dt,nt,pt)}),gt=ot?Object.keys(ot).map(kt=>({label:ot[kt].label,value:kt})):[],yt=nt?[{label:nt,value:nt}]:[],bt=ct("startTime"),wt=nt&&ot?ot[nt].component:()=>null,vt={setValue:ut,startTime:bt};return ot&&jsxRuntimeExports.jsx(BaseModal,{id:"addNode",preventOutsideClose:!0,children:jsxRuntimeExports.jsx(FormProvider,{...st,children:jsxRuntimeExports.jsxs("form",{id:"add-node-form",onSubmit:mt,children:[jsxRuntimeExports.jsxs(Flex,{align:"center",direction:"row",justify:"space-between",pb:32,children:[jsxRuntimeExports.jsxs(Flex,{align:"center",direction:"row",children:[jsxRuntimeExports.jsxs(Flex,{align:"center",direction:"row",children:[nt&&jsxRuntimeExports.jsx(BackButton,{onClick:()=>rt(""),children:jsxRuntimeExports.jsx(MdKeyboardBackspace,{color:colors.white,size:24})}),jsxRuntimeExports.jsxs(Text$3,{kind:"bigHeadingBold",children:["Add ",et]})]}),jsxRuntimeExports.jsxs(InfoIcon,{role:"tooltip",tabIndex:0,children:[jsxRuntimeExports.jsx(MdInfo,{}),jsxRuntimeExports.jsx("div",{className:"tooltip",children:at})]})]}),jsxRuntimeExports.jsx(CloseButton$5,{id:"add-node-close-button",onClick:dt,onKeyDown:kt=>{(kt.key==="Enter"||kt.key==="Space")&&dt()},role:"button",tabIndex:0,children:jsxRuntimeExports.jsx(MdClose,{color:"white"})})]}),nt?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(wt,{...vt})}),jsxRuntimeExports.jsx(Flex,{pt:16,px:4,tabIndex:0,children:jsxRuntimeExports.jsx(Text$3,{color:"lightGray",kind:"tinyBold",children:"Your pubkey will be submitted with your input, so you can receive sats that your content earns."})}),jsxRuntimeExports.jsx(Flex,{pt:8,children:ht?jsxRuntimeExports.jsx(SubmitLoader$1,{children:jsxRuntimeExports.jsx(ClipLoader$2,{color:colors.white,size:20})}):jsxRuntimeExports.jsx(Button,{disabled:ht,id:"add-node-submit-cta",kind:"big",type:"submit",children:`Add ${et}`})})]}):jsxRuntimeExports.jsxs(Stack$5,{alignItems:{xs:"stretch",sm:"center"},component:"div",direction:{xs:"column",sm:"row"},justifyContent:"space-between",spacing:2,children:[jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(Text$3,{kind:"mediumBold",children:"What do you want to add?"})}),jsxRuntimeExports.jsx(Flex,{grow:1,children:jsxRuntimeExports.jsx(StyledSelect$1,{className:clsx(yt.length&&"hasSelected","cy-select-content-type"),clearable:!0,onChange:kt=>{rt(kt.length?kt[0].value:"")},options:gt,placeholder:`Select ${et} type`,searchable:!1,values:yt})})]})]})})})},CloseButton$5=styled$4(Flex)` +Your pubkey will be submitted with your clip, and any boosts your clip receives will go to you!`,infoMessageSource="If you come across a source that produces ongoing content (e.g. a twitter account, youtube channel, etc). You can add it to the source table for your graph. Once the source is added to the table we will gather new content produced by that source, process it, and add it to your graph.",notify$1=tt=>{toast(jsxRuntimeExports.jsx(ToastMessage,{message:tt}),{icon:tt===NODE_ADD_SUCCESS?jsxRuntimeExports.jsx(MdCheckCircle,{color:colors.primaryGreen}):jsxRuntimeExports.jsx(MdWarning,{color:colors.primaryRed}),position:toast.POSITION.BOTTOM_CENTER,type:tt===NODE_ADD_SUCCESS?"success":"error"})},handleSubmit=async(tt,et,nt,rt)=>{var st;const it={};if(nt===LINK)it.media_url=tt.link,tt.withTimeStamps?(it.content_type="clip",it.job_response={tags:[{description:tt.description,"end-time":timeToMilliseconds(tt.endTime),"start-time":timeToMilliseconds(tt.startTime),tag:(st=tt.tags)==null?void 0:st.join(", ")}]}):tt.withLocation?(it.latitude=tt.latitude,it.longitude=tt.longitude):it.content_type;else if(nt===TWITTER_SOURCE){const lt=/(?:https?:\/\/)?(?:www\.)?twitter\.com\/\w+\/status\/\d+/,ct=/^[0-9]{16,}$/;if(lt.test(tt.tweet)){const ut=/\/status\/(\d+)/,ht=tt.tweet.match(ut);if(ht!=null&&ht[1]){const[,dt]=ht;it.tweet_id=dt}}else it.tweet_id=tt.tweet;if(!ct.test(it.tweet_id))return;tt.withLocation&&(it.latitude=tt.latitude,it.longitude=tt.longitude),it.content_type="tweet"}else nt===WEB_PAGE?(it.content_type="webpage",it.web_page=tt.web_page):nt===DOCUMENT?(it.content_type="document",it.text=tt.document):(it.source_type=nt,nt===TWITTER_HANDLE?it.source=(tt.source||"").replace(/[@]/g,""):it.source=tt.source);let ot=null;await executeIfProd(async()=>{const lt=await distExports$2.enable();if(it.pubkey=lt==null?void 0:lt.pubkey,ot=await getLSat("adding_node"),!ot)throw new Error("An error occured calling getLSat")});const at=CONTENT_TYPES.includes(nt)?"add_node":"radar";try{const lt=await api$1.post(`/${at}`,JSON.stringify(it),ot?{Authorization:ot}:{});if(lt.error){const{message:ct}=lt.error;throw new Error(ct)}at==="radar"&&await rt(),notify$1(NODE_ADD_SUCCESS),et()}catch(lt){lt instanceof Error&&(notify$1(NODE_ADD_ERROR),et())}},CONTENT_TYPE_OPTIONS={content:{[LINK]:{component:SourceUrl,label:"Youtube / Twitter space / Mp3"},[TWITTER_SOURCE]:{component:TwitId,label:"Tweet"},[WEB_PAGE]:{component:WebPage,label:"Webpage (Text)"},[DOCUMENT]:{component:Document,label:"Document"}},source:{[GITHUB_REPOSITORY]:{component:GithubRepository,label:"Github repository"},[RSS]:{component:RSSFeed,label:"RSS feed"},[TOPIC]:{component:Topic$1,label:"Topic"},[TWITTER_HANDLE]:{component:TwitterHandle$2,label:"Twitter handle"},[YOUTUBE_CHANNEL]:{component:YoutubeChannel,label:"Youtube channel"}}},CONTENT_TYPES=Object.keys(CONTENT_TYPE_OPTIONS.content),AddNodeModal=()=>{const{close:tt,addNodeModalData:et}=useModal("addNode"),[nt,rt]=reactExports.useState(""),it=useDataStore(Et=>Et.setSources),ot=et?CONTENT_TYPE_OPTIONS[et]:null,at=et==="source"?infoMessageSource:infoMessageContent,st=useForm({mode:"onSubmit"}),{reset:lt,watch:ct,setValue:ut}=st,{isSubmitting:ht}=st.formState,dt=()=>{rt(""),lt(),tt()},pt=async()=>{if([TWITTER_HANDLE,TOPIC].includes(nt))try{const Et=await getRadarData();it(Et.data)}catch(Et){console.warn(Et)}},mt=st.handleSubmit(async Et=>{await handleSubmit(Et,dt,nt,pt)}),gt=ot?Object.keys(ot).map(Et=>({label:ot[Et].label,value:Et})):[],yt=nt?[{label:nt,value:nt}]:[],bt=ct("startTime"),wt=ct("longitude"),vt=ct("latitude"),kt=nt&&ot?ot[nt].component:()=>null,St={setValue:ut,startTime:bt,longitude:wt,latitude:vt};return ot&&jsxRuntimeExports.jsx(BaseModal,{id:"addNode",preventOutsideClose:!0,children:jsxRuntimeExports.jsx(FormProvider,{...st,children:jsxRuntimeExports.jsxs("form",{id:"add-node-form",onSubmit:mt,children:[jsxRuntimeExports.jsxs(Flex,{align:"center",direction:"row",justify:"space-between",pb:32,children:[jsxRuntimeExports.jsxs(Flex,{align:"center",direction:"row",children:[jsxRuntimeExports.jsxs(Flex,{align:"center",direction:"row",children:[nt&&jsxRuntimeExports.jsx(BackButton,{onClick:()=>rt(""),children:jsxRuntimeExports.jsx(MdKeyboardBackspace,{color:colors.white,size:24})}),jsxRuntimeExports.jsxs(Text$3,{kind:"bigHeadingBold",children:["Add ",et]})]}),jsxRuntimeExports.jsxs(InfoIcon,{role:"tooltip",tabIndex:0,children:[jsxRuntimeExports.jsx(MdInfo,{}),jsxRuntimeExports.jsx("div",{className:"tooltip",children:at})]})]}),jsxRuntimeExports.jsx(CloseButton$5,{id:"add-node-close-button",onClick:dt,onKeyDown:Et=>{(Et.key==="Enter"||Et.key==="Space")&&dt()},role:"button",tabIndex:0,children:jsxRuntimeExports.jsx(MdClose,{color:"white"})})]}),nt?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(kt,{...St})}),jsxRuntimeExports.jsx(Flex,{pt:16,px:4,tabIndex:0,children:jsxRuntimeExports.jsx(Text$3,{color:"lightGray",kind:"tinyBold",children:"Your pubkey will be submitted with your input, so you can receive sats that your content earns."})}),jsxRuntimeExports.jsx(Flex,{pt:8,children:ht?jsxRuntimeExports.jsx(SubmitLoader$1,{children:jsxRuntimeExports.jsx(ClipLoader$2,{color:colors.white,size:20})}):jsxRuntimeExports.jsx(Button,{disabled:ht,id:"add-node-submit-cta",kind:"big",type:"submit",children:`Add ${et}`})})]}):jsxRuntimeExports.jsxs(Stack$5,{alignItems:{xs:"stretch",sm:"flex-start",minHeight:"160px"},component:"div",direction:{xs:"column",sm:"row"},justifyContent:"space-between",spacing:2,children:[jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(Text$3,{kind:"mediumBold",children:"What do you want to add?"})}),jsxRuntimeExports.jsx(Flex,{grow:1,children:jsxRuntimeExports.jsx(StyledSelect$1,{className:clsx(yt.length&&"hasSelected","cy-select-content-type"),clearable:!0,onChange:Et=>{rt(Et.length?Et[0].value:"")},options:gt,placeholder:`Select ${et} type`,searchable:!1,values:yt})})]})]})})})},CloseButton$5=styled$4(Flex)` cursor: pointer; svg { @@ -4139,7 +4139,7 @@ Your pubkey will be submitted with your clip, and any boosts your clip receives * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(tt){function et(Ut,Wt){var Ft=Ut.length;Ut.push(Wt);e:for(;0>>1,Ct=Ut[Nt];if(0>>1;Ntit(nn,Ft))Ytit(fn,nn)?(Ut[Nt]=fn,Ut[Yt]=Ft,Nt=Yt):(Ut[Nt]=nn,Ut[Jt]=Ft,Nt=Jt);else if(Ytit(fn,Ft))Ut[Nt]=fn,Ut[Yt]=Ft,Nt=Yt;else break e}}return Wt}function it(Ut,Wt){var Ft=Ut.sortIndex-Wt.sortIndex;return Ft!==0?Ft:Ut.id-Wt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var ot=performance;tt.unstable_now=function(){return ot.now()}}else{var at=Date,st=at.now();tt.unstable_now=function(){return at.now()-st}}var lt=[],ct=[],ut=1,ht=null,dt=3,pt=!1,mt=!1,gt=!1,yt=typeof setTimeout=="function"?setTimeout:null,bt=typeof clearTimeout=="function"?clearTimeout:null,wt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function vt(Ut){for(var Wt=nt(ct);Wt!==null;){if(Wt.callback===null)rt(ct);else if(Wt.startTime<=Ut)rt(ct),Wt.sortIndex=Wt.expirationTime,et(lt,Wt);else break;Wt=nt(ct)}}function kt(Ut){if(gt=!1,vt(Ut),!mt)if(nt(lt)!==null)mt=!0,Ot(St);else{var Wt=nt(ct);Wt!==null&&zt(kt,Wt.startTime-Ut)}}function St(Ut,Wt){mt=!1,gt&&(gt=!1,bt(Et),Et=-1),pt=!0;var Ft=dt;try{for(vt(Wt),ht=nt(lt);ht!==null&&(!(ht.expirationTime>Wt)||Ut&&!jt());){var Nt=ht.callback;if(typeof Nt=="function"){ht.callback=null,dt=ht.priorityLevel;var Ct=Nt(ht.expirationTime<=Wt);Wt=tt.unstable_now(),typeof Ct=="function"?ht.callback=Ct:ht===nt(lt)&&rt(lt),vt(Wt)}else rt(lt);ht=nt(lt)}if(ht!==null)var Ht=!0;else{var Jt=nt(ct);Jt!==null&&zt(kt,Jt.startTime-Wt),Ht=!1}return Ht}finally{ht=null,dt=Ft,pt=!1}}var Tt=!1,At=null,Et=-1,Mt=5,Lt=-1;function jt(){return!(tt.unstable_now()-LtUt||125Nt?(Ut.sortIndex=Ft,et(ct,Ut),nt(lt)===null&&Ut===nt(ct)&&(gt?(bt(Et),Et=-1):gt=!0,zt(kt,Ft-Nt))):(Ut.sortIndex=Ct,et(lt,Ut),mt||pt||(mt=!0,Ot(St))),Ut},tt.unstable_shouldYield=jt,tt.unstable_wrapCallback=function(Ut){var Wt=dt;return function(){var Ft=dt;dt=Wt;try{return Ut.apply(this,arguments)}finally{dt=Ft}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** + */(function(tt){function et(Ut,Wt){var Ft=Ut.length;Ut.push(Wt);e:for(;0>>1,Ct=Ut[Nt];if(0>>1;Ntit(nn,Ft))Ytit(fn,nn)?(Ut[Nt]=fn,Ut[Yt]=Ft,Nt=Yt):(Ut[Nt]=nn,Ut[Jt]=Ft,Nt=Jt);else if(Ytit(fn,Ft))Ut[Nt]=fn,Ut[Yt]=Ft,Nt=Yt;else break e}}return Wt}function it(Ut,Wt){var Ft=Ut.sortIndex-Wt.sortIndex;return Ft!==0?Ft:Ut.id-Wt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var ot=performance;tt.unstable_now=function(){return ot.now()}}else{var at=Date,st=at.now();tt.unstable_now=function(){return at.now()-st}}var lt=[],ct=[],ut=1,ht=null,dt=3,pt=!1,mt=!1,gt=!1,yt=typeof setTimeout=="function"?setTimeout:null,bt=typeof clearTimeout=="function"?clearTimeout:null,wt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function vt(Ut){for(var Wt=nt(ct);Wt!==null;){if(Wt.callback===null)rt(ct);else if(Wt.startTime<=Ut)rt(ct),Wt.sortIndex=Wt.expirationTime,et(lt,Wt);else break;Wt=nt(ct)}}function kt(Ut){if(gt=!1,vt(Ut),!mt)if(nt(lt)!==null)mt=!0,Ot(St);else{var Wt=nt(ct);Wt!==null&&zt(kt,Wt.startTime-Ut)}}function St(Ut,Wt){mt=!1,gt&&(gt=!1,bt(Tt),Tt=-1),pt=!0;var Ft=dt;try{for(vt(Wt),ht=nt(lt);ht!==null&&(!(ht.expirationTime>Wt)||Ut&&!jt());){var Nt=ht.callback;if(typeof Nt=="function"){ht.callback=null,dt=ht.priorityLevel;var Ct=Nt(ht.expirationTime<=Wt);Wt=tt.unstable_now(),typeof Ct=="function"?ht.callback=Ct:ht===nt(lt)&&rt(lt),vt(Wt)}else rt(lt);ht=nt(lt)}if(ht!==null)var Ht=!0;else{var Jt=nt(ct);Jt!==null&&zt(kt,Jt.startTime-Wt),Ht=!1}return Ht}finally{ht=null,dt=Ft,pt=!1}}var Et=!1,At=null,Tt=-1,Mt=5,Lt=-1;function jt(){return!(tt.unstable_now()-LtUt||125Nt?(Ut.sortIndex=Ft,et(ct,Ut),nt(lt)===null&&Ut===nt(ct)&&(gt?(bt(Tt),Tt=-1):gt=!0,zt(kt,Ft-Nt))):(Ut.sortIndex=Ct,et(lt,Ut),mt||pt||(mt=!0,Ot(St))),Ut},tt.unstable_shouldYield=jt,tt.unstable_wrapCallback=function(Ut){var Wt=dt;return function(){var Ft=dt;dt=Wt;try{return Ut.apply(this,arguments)}finally{dt=Ft}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** * @license React * react-reconciler.production.min.js * @@ -4147,17 +4147,17 @@ Your pubkey will be submitted with your clip, and any boosts your clip receives * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var reactReconciler_production_min=function(et){var nt={},rt=reactExports,it=schedulerExports,ot=Object.assign;function at(Bt){for(var Dt="https://reactjs.org/docs/error-decoder.html?invariant="+Bt,Gt=1;Gtrr||pn[Hn]!==In[rr]){var vr=` -`+pn[Hn].replace(" at new "," at ");return Bt.displayName&&vr.includes("")&&(vr=vr.replace("",Bt.displayName)),vr}while(1<=Hn&&0<=rr);break}}}finally{Wr=!1,Error.prepareStackTrace=Gt}return(Bt=Bt?Bt.displayName||Bt.name:"")?$r(Bt):""}var Pr=Object.prototype.hasOwnProperty,Lr=[],Nr=-1;function Cr(Bt){return{current:Bt}}function er(Bt){0>Nr||(Bt.current=Lr[Nr],Lr[Nr]=null,Nr--)}function ir(Bt,Dt){Nr++,Lr[Nr]=Bt.current,Bt.current=Dt}var Sr={},dr=Cr(Sr),br=Cr(!1),Ir=Sr;function ro(Bt,Dt){var Gt=Bt.type.contextTypes;if(!Gt)return Sr;var tn=Bt.stateNode;if(tn&&tn.__reactInternalMemoizedUnmaskedChildContext===Dt)return tn.__reactInternalMemoizedMaskedChildContext;var pn={},In;for(In in Gt)pn[In]=Dt[In];return tn&&(Bt=Bt.stateNode,Bt.__reactInternalMemoizedUnmaskedChildContext=Dt,Bt.__reactInternalMemoizedMaskedChildContext=pn),pn}function ao(Bt){return Bt=Bt.childContextTypes,Bt!=null}function mo(){er(br),er(dr)}function fo(Bt,Dt,Gt){if(dr.current!==Sr)throw Error(at(168));ir(dr,Dt),ir(br,Gt)}function Gn(Bt,Dt,Gt){var tn=Bt.stateNode;if(Dt=Dt.childContextTypes,typeof tn.getChildContext!="function")return Gt;tn=tn.getChildContext();for(var pn in tn)if(!(pn in Dt))throw Error(at(108,Et(Bt)||"Unknown",pn));return ot({},Gt,tn)}function bo(Bt){return Bt=(Bt=Bt.stateNode)&&Bt.__reactInternalMemoizedMergedChildContext||Sr,Ir=dr.current,ir(dr,Bt),ir(br,br.current),!0}function jo(Bt,Dt,Gt){var tn=Bt.stateNode;if(!tn)throw Error(at(169));Gt?(Bt=Gn(Bt,Dt,Ir),tn.__reactInternalMemoizedMergedChildContext=Bt,er(br),er(dr),ir(dr,Bt)):er(br),ir(br,Gt)}var go=Math.clz32?Math.clz32:Mo,vo=Math.log,Ao=Math.LN2;function Mo(Bt){return Bt>>>=0,Bt===0?32:31-(vo(Bt)/Ao|0)|0}var Vo=64,$o=4194304;function Uo(Bt){switch(Bt&-Bt){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return Bt&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return Bt&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return Bt}}function Go(Bt,Dt){var Gt=Bt.pendingLanes;if(Gt===0)return 0;var tn=0,pn=Bt.suspendedLanes,In=Bt.pingedLanes,Hn=Gt&268435455;if(Hn!==0){var rr=Hn&~pn;rr!==0?tn=Uo(rr):(In&=Hn,In!==0&&(tn=Uo(In)))}else Hn=Gt&~pn,Hn!==0?tn=Uo(Hn):In!==0&&(tn=Uo(In));if(tn===0)return 0;if(Dt!==0&&Dt!==tn&&!(Dt&pn)&&(pn=tn&-tn,In=Dt&-Dt,pn>=In||pn===16&&(In&4194240)!==0))return Dt;if(tn&4&&(tn|=Gt&16),Dt=Bt.entangledLanes,Dt!==0)for(Bt=Bt.entanglements,Dt&=tn;0Gt;Gt++)Dt.push(Bt);return Dt}function Zo(Bt,Dt,Gt){Bt.pendingLanes|=Dt,Dt!==536870912&&(Bt.suspendedLanes=0,Bt.pingedLanes=0),Bt=Bt.eventTimes,Dt=31-go(Dt),Bt[Dt]=Gt}function mu(Bt,Dt){var Gt=Bt.pendingLanes&~Dt;Bt.pendingLanes=Dt,Bt.suspendedLanes=0,Bt.pingedLanes=0,Bt.expiredLanes&=Dt,Bt.mutableReadLanes&=Dt,Bt.entangledLanes&=Dt,Dt=Bt.entanglements;var tn=Bt.eventTimes;for(Bt=Bt.expirationTimes;0>=Hn,pn-=Hn,bu=1<<32-go(Dt)+pn|Gt<Oo?(gs=Io,Io=null):gs=Io.sibling;var Wo=ho(ur,Io,yr[Oo],Jr);if(Wo===null){Io===null&&(Io=gs);break}Bt&&Io&&Wo.alternate===null&&Dt(ur,Io),or=In(Wo,or,Oo),Bo===null?co=Wo:Bo.sibling=Wo,Bo=Wo,Io=gs}if(Oo===yr.length)return Gt(ur,Io),_a&&wu(ur,Oo),co;if(Io===null){for(;OoOo?(gs=Io,Io=null):gs=Io.sibling;var du=ho(ur,Io,Wo.value,Jr);if(du===null){Io===null&&(Io=gs);break}Bt&&Io&&du.alternate===null&&Dt(ur,Io),or=In(du,or,Oo),Bo===null?co=du:Bo.sibling=du,Bo=du,Io=gs}if(Wo.done)return Gt(ur,Io),_a&&wu(ur,Oo),co;if(Io===null){for(;!Wo.done;Oo++,Wo=yr.next())Wo=To(ur,Wo.value,Jr),Wo!==null&&(or=In(Wo,or,Oo),Bo===null?co=Wo:Bo.sibling=Wo,Bo=Wo);return _a&&wu(ur,Oo),co}for(Io=tn(ur,Io);!Wo.done;Oo++,Wo=yr.next())Wo=Jo(Io,ur,Oo,Wo.value,Jr),Wo!==null&&(Bt&&Wo.alternate!==null&&Io.delete(Wo.key===null?Oo:Wo.key),or=In(Wo,or,Oo),Bo===null?co=Wo:Bo.sibling=Wo,Bo=Wo);return Bt&&Io.forEach(function(Um){return Dt(ur,Um)}),_a&&wu(ur,Oo),co}function El(ur,or,yr,Jr){if(typeof yr=="object"&&yr!==null&&yr.type===ut&&yr.key===null&&(yr=yr.props.children),typeof yr=="object"&&yr!==null){switch(yr.$$typeof){case lt:e:{for(var co=yr.key,Bo=or;Bo!==null;){if(Bo.key===co){if(co=yr.type,co===ut){if(Bo.tag===7){Gt(ur,Bo.sibling),or=pn(Bo,yr.props.children),or.return=ur,ur=or;break e}}else if(Bo.elementType===co||typeof co=="object"&&co!==null&&co.$$typeof===vt&&Wp(co)===Bo.type){Gt(ur,Bo.sibling),or=pn(Bo,yr.props),or.ref=hp(ur,Bo,yr),or.return=ur,ur=or;break e}Gt(ur,Bo);break}else Dt(ur,Bo);Bo=Bo.sibling}yr.type===ut?(or=Wu(yr.props.children,ur.mode,Jr,yr.key),or.return=ur,ur=or):(Jr=Nm(yr.type,yr.key,yr.props,null,ur.mode,Jr),Jr.ref=hp(ur,or,yr),Jr.return=ur,ur=Jr)}return Hn(ur);case ct:e:{for(Bo=yr.key;or!==null;){if(or.key===Bo)if(or.tag===4&&or.stateNode.containerInfo===yr.containerInfo&&or.stateNode.implementation===yr.implementation){Gt(ur,or.sibling),or=pn(or,yr.children||[]),or.return=ur,ur=or;break e}else{Gt(ur,or);break}else Dt(ur,or);or=or.sibling}or=Ml(yr,ur.mode,Jr),or.return=ur,ur=or}return Hn(ur);case vt:return Bo=yr._init,El(ur,or,Bo(yr._payload),Jr)}if(It(yr))return lo(ur,or,yr,Jr);if(Tt(yr))return Ns(ur,or,yr,Jr);Vl(ur,yr)}return typeof yr=="string"&&yr!==""||typeof yr=="number"?(yr=""+yr,or!==null&&or.tag===6?(Gt(ur,or.sibling),or=pn(or,yr),or.return=ur,ur=or):(Gt(ur,or),or=Ls(yr,ur.mode,Jr),or.return=ur,ur=or),Hn(ur)):Gt(ur,or)}return El}var dp=Fy(!0),Uy=Fy(!1),iu={},ls=Cr(iu),fp=Cr(iu),pp=Cr(iu);function ou(Bt){if(Bt===iu)throw Error(at(174));return Bt}function Jm(Bt,Dt){ir(pp,Dt),ir(fp,Bt),ir(ls,iu),Bt=zt(Dt),er(ls),ir(ls,Bt)}function mp(){er(ls),er(fp),er(pp)}function zy(Bt){var Dt=ou(pp.current),Gt=ou(ls.current);Dt=Ut(Gt,Bt.type,Dt),Gt!==Dt&&(ir(fp,Bt),ir(ls,Dt))}function $u(Bt){fp.current===Bt&&(er(ls),er(fp))}var Qn=Cr(0);function xr(Bt){for(var Dt=Bt;Dt!==null;){if(Dt.tag===13){var Gt=Dt.memoizedState;if(Gt!==null&&(Gt=Gt.dehydrated,Gt===null||vn(Gt)||Pn(Gt)))return Dt}else if(Dt.tag===19&&Dt.memoizedProps.revealOrder!==void 0){if(Dt.flags&128)return Dt}else if(Dt.child!==null){Dt.child.return=Dt,Dt=Dt.child;continue}if(Dt===Bt)break;for(;Dt.sibling===null;){if(Dt.return===null||Dt.return===Bt)return null;Dt=Dt.return}Dt.sibling.return=Dt.return,Dt=Dt.sibling}return null}var gr=[];function no(){for(var Bt=0;BtGt?Gt:4,Bt(!0);var tn=Co.transition;Co.transition={};try{Bt(!1),Dt()}finally{No=Gt,Co.transition=tn}}function Gy(){return Js().memoizedState}function xs(Bt,Dt,Gt){var tn=uu(Bt);Gt={lane:tn,action:Gt,hasEagerState:!1,eagerState:null,next:null},qy(Bt)?Yy(Dt,Gt):(ry(Bt,Dt,Gt),Gt=Os(),Bt=$l(Bt,tn,Gt),Bt!==null&&Ky(Bt,Dt,tn))}function Ms(Bt,Dt,Gt){var tn=uu(Bt),pn={lane:tn,action:Gt,hasEagerState:!1,eagerState:null,next:null};if(qy(Bt))Yy(Dt,pn);else{ry(Bt,Dt,pn);var In=Bt.alternate;if(Bt.lanes===0&&(In===null||In.lanes===0)&&(In=Dt.lastRenderedReducer,In!==null))try{var Hn=Dt.lastRenderedState,rr=In(Hn,Gt);if(pn.hasEagerState=!0,pn.eagerState=rr,Zs(rr,Hn))return}catch{}finally{}Gt=Os(),Bt=$l(Bt,tn,Gt),Bt!==null&&Ky(Bt,Dt,tn)}}function qy(Bt){var Dt=Bt.alternate;return Bt===xo||Dt!==null&&Dt===xo}function Yy(Bt,Dt){Pu=Gs=!0;var Gt=Bt.pending;Gt===null?Dt.next=Dt:(Dt.next=Gt.next,Gt.next=Dt),Bt.pending=Dt}function ry(Bt,Dt,Gt){ps!==null&&Bt.mode&1&&!(Ro&2)?(Bt=Dt.interleaved,Bt===null?(Gt.next=Gt,vs===null?vs=[Dt]:vs.push(Dt)):(Gt.next=Bt.next,Bt.next=Gt),Dt.interleaved=Gt):(Bt=Dt.pending,Bt===null?Gt.next=Gt:(Gt.next=Bt.next,Bt.next=Gt),Dt.pending=Gt)}function Ky(Bt,Dt,Gt){if(Gt&4194240){var tn=Dt.lanes;tn&=Bt.pendingLanes,Gt|=tn,Dt.lanes=Gt,eu(Bt,Gt)}}var wp={readContext:Do,useCallback:_s,useContext:_s,useEffect:_s,useImperativeHandle:_s,useInsertionEffect:_s,useLayoutEffect:_s,useMemo:_s,useReducer:_s,useRef:_s,useState:_s,useDebugValue:_s,useDeferredValue:_s,useTransition:_s,useMutableSource:_s,useSyncExternalStore:_s,useId:_s,unstable_isNewReconciler:!1},Jp={readContext:Do,useCallback:function(Bt,Dt){return au().memoizedState=[Bt,Dt===void 0?null:Dt],Bt},useContext:Do,useEffect:bp,useImperativeHandle:function(Bt,Dt,Gt){return Gt=Gt!=null?Gt.concat([Bt]):null,Ru(4194308,4,Kp.bind(null,Dt,Bt),Gt)},useLayoutEffect:function(Bt,Dt){return Ru(4194308,4,Bt,Dt)},useInsertionEffect:function(Bt,Dt){return Ru(4,2,Bt,Dt)},useMemo:function(Bt,Dt){var Gt=au();return Dt=Dt===void 0?null:Dt,Bt=Bt(),Gt.memoizedState=[Bt,Dt],Bt},useReducer:function(Bt,Dt,Gt){var tn=au();return Dt=Gt!==void 0?Gt(Dt):Dt,tn.memoizedState=tn.baseState=Dt,Bt={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Bt,lastRenderedState:Dt},tn.queue=Bt,Bt=Bt.dispatch=xs.bind(null,xo,Bt),[tn.memoizedState,Bt]},useRef:function(Bt){var Dt=au();return Bt={current:Bt},Dt.memoizedState=Bt},useState:xm,useDebugValue:Zp,useDeferredValue:function(Bt){var Dt=xm(Bt),Gt=Dt[0],tn=Dt[1];return bp(function(){var pn=Co.transition;Co.transition={};try{tn(Bt)}finally{Co.transition=pn}},[Bt]),Gt},useTransition:function(){var Bt=xm(!1),Dt=Bt[0];return Bt=L0.bind(null,Bt[1]),au().memoizedState=Bt,[Dt,Bt]},useMutableSource:function(){},useSyncExternalStore:function(Bt,Dt,Gt){var tn=xo,pn=au();if(_a){if(Gt===void 0)throw Error(at(407));Gt=Gt()}else{if(Gt=Dt(),ps===null)throw Error(at(349));ts&30||Gp(tn,Dt,Gt)}pn.memoizedState=Gt;var In={value:Gt,getSnapshot:Dt};return pn.queue=In,bp(qp.bind(null,tn,In,Bt),[Bt]),tn.flags|=2048,Mu(9,_g.bind(null,tn,In,Gt,Dt),void 0,null),Gt},useId:function(){var Bt=au(),Dt=ps.identifierPrefix;if(_a){var Gt=Ul,tn=bu;Gt=(tn&~(1<<32-go(tn)-1)).toString(32)+Gt,Dt=":"+Dt+"R"+Gt,Gt=Vp++,0")&&(vr=vr.replace("",Bt.displayName)),vr}while(1<=Hn&&0<=rr);break}}}finally{Wr=!1,Error.prepareStackTrace=Gt}return(Bt=Bt?Bt.displayName||Bt.name:"")?$r(Bt):""}var Pr=Object.prototype.hasOwnProperty,Lr=[],Nr=-1;function Cr(Bt){return{current:Bt}}function er(Bt){0>Nr||(Bt.current=Lr[Nr],Lr[Nr]=null,Nr--)}function ir(Bt,Dt){Nr++,Lr[Nr]=Bt.current,Bt.current=Dt}var Sr={},dr=Cr(Sr),br=Cr(!1),Ir=Sr;function ro(Bt,Dt){var Gt=Bt.type.contextTypes;if(!Gt)return Sr;var tn=Bt.stateNode;if(tn&&tn.__reactInternalMemoizedUnmaskedChildContext===Dt)return tn.__reactInternalMemoizedMaskedChildContext;var pn={},In;for(In in Gt)pn[In]=Dt[In];return tn&&(Bt=Bt.stateNode,Bt.__reactInternalMemoizedUnmaskedChildContext=Dt,Bt.__reactInternalMemoizedMaskedChildContext=pn),pn}function ao(Bt){return Bt=Bt.childContextTypes,Bt!=null}function mo(){er(br),er(dr)}function fo(Bt,Dt,Gt){if(dr.current!==Sr)throw Error(at(168));ir(dr,Dt),ir(br,Gt)}function Gn(Bt,Dt,Gt){var tn=Bt.stateNode;if(Dt=Dt.childContextTypes,typeof tn.getChildContext!="function")return Gt;tn=tn.getChildContext();for(var pn in tn)if(!(pn in Dt))throw Error(at(108,Tt(Bt)||"Unknown",pn));return ot({},Gt,tn)}function bo(Bt){return Bt=(Bt=Bt.stateNode)&&Bt.__reactInternalMemoizedMergedChildContext||Sr,Ir=dr.current,ir(dr,Bt),ir(br,br.current),!0}function jo(Bt,Dt,Gt){var tn=Bt.stateNode;if(!tn)throw Error(at(169));Gt?(Bt=Gn(Bt,Dt,Ir),tn.__reactInternalMemoizedMergedChildContext=Bt,er(br),er(dr),ir(dr,Bt)):er(br),ir(br,Gt)}var go=Math.clz32?Math.clz32:Mo,vo=Math.log,Ao=Math.LN2;function Mo(Bt){return Bt>>>=0,Bt===0?32:31-(vo(Bt)/Ao|0)|0}var Vo=64,$o=4194304;function Uo(Bt){switch(Bt&-Bt){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return Bt&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return Bt&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return Bt}}function Go(Bt,Dt){var Gt=Bt.pendingLanes;if(Gt===0)return 0;var tn=0,pn=Bt.suspendedLanes,In=Bt.pingedLanes,Hn=Gt&268435455;if(Hn!==0){var rr=Hn&~pn;rr!==0?tn=Uo(rr):(In&=Hn,In!==0&&(tn=Uo(In)))}else Hn=Gt&~pn,Hn!==0?tn=Uo(Hn):In!==0&&(tn=Uo(In));if(tn===0)return 0;if(Dt!==0&&Dt!==tn&&!(Dt&pn)&&(pn=tn&-tn,In=Dt&-Dt,pn>=In||pn===16&&(In&4194240)!==0))return Dt;if(tn&4&&(tn|=Gt&16),Dt=Bt.entangledLanes,Dt!==0)for(Bt=Bt.entanglements,Dt&=tn;0Gt;Gt++)Dt.push(Bt);return Dt}function Zo(Bt,Dt,Gt){Bt.pendingLanes|=Dt,Dt!==536870912&&(Bt.suspendedLanes=0,Bt.pingedLanes=0),Bt=Bt.eventTimes,Dt=31-go(Dt),Bt[Dt]=Gt}function mu(Bt,Dt){var Gt=Bt.pendingLanes&~Dt;Bt.pendingLanes=Dt,Bt.suspendedLanes=0,Bt.pingedLanes=0,Bt.expiredLanes&=Dt,Bt.mutableReadLanes&=Dt,Bt.entangledLanes&=Dt,Dt=Bt.entanglements;var tn=Bt.eventTimes;for(Bt=Bt.expirationTimes;0>=Hn,pn-=Hn,bu=1<<32-go(Dt)+pn|Gt<Oo?(gs=Io,Io=null):gs=Io.sibling;var Wo=ho(ur,Io,yr[Oo],Jr);if(Wo===null){Io===null&&(Io=gs);break}Bt&&Io&&Wo.alternate===null&&Dt(ur,Io),or=In(Wo,or,Oo),Bo===null?co=Wo:Bo.sibling=Wo,Bo=Wo,Io=gs}if(Oo===yr.length)return Gt(ur,Io),_a&&wu(ur,Oo),co;if(Io===null){for(;OoOo?(gs=Io,Io=null):gs=Io.sibling;var du=ho(ur,Io,Wo.value,Jr);if(du===null){Io===null&&(Io=gs);break}Bt&&Io&&du.alternate===null&&Dt(ur,Io),or=In(du,or,Oo),Bo===null?co=du:Bo.sibling=du,Bo=du,Io=gs}if(Wo.done)return Gt(ur,Io),_a&&wu(ur,Oo),co;if(Io===null){for(;!Wo.done;Oo++,Wo=yr.next())Wo=To(ur,Wo.value,Jr),Wo!==null&&(or=In(Wo,or,Oo),Bo===null?co=Wo:Bo.sibling=Wo,Bo=Wo);return _a&&wu(ur,Oo),co}for(Io=tn(ur,Io);!Wo.done;Oo++,Wo=yr.next())Wo=Jo(Io,ur,Oo,Wo.value,Jr),Wo!==null&&(Bt&&Wo.alternate!==null&&Io.delete(Wo.key===null?Oo:Wo.key),or=In(Wo,or,Oo),Bo===null?co=Wo:Bo.sibling=Wo,Bo=Wo);return Bt&&Io.forEach(function(Um){return Dt(ur,Um)}),_a&&wu(ur,Oo),co}function El(ur,or,yr,Jr){if(typeof yr=="object"&&yr!==null&&yr.type===ut&&yr.key===null&&(yr=yr.props.children),typeof yr=="object"&&yr!==null){switch(yr.$$typeof){case lt:e:{for(var co=yr.key,Bo=or;Bo!==null;){if(Bo.key===co){if(co=yr.type,co===ut){if(Bo.tag===7){Gt(ur,Bo.sibling),or=pn(Bo,yr.props.children),or.return=ur,ur=or;break e}}else if(Bo.elementType===co||typeof co=="object"&&co!==null&&co.$$typeof===vt&&Wp(co)===Bo.type){Gt(ur,Bo.sibling),or=pn(Bo,yr.props),or.ref=hp(ur,Bo,yr),or.return=ur,ur=or;break e}Gt(ur,Bo);break}else Dt(ur,Bo);Bo=Bo.sibling}yr.type===ut?(or=Wu(yr.props.children,ur.mode,Jr,yr.key),or.return=ur,ur=or):(Jr=Nm(yr.type,yr.key,yr.props,null,ur.mode,Jr),Jr.ref=hp(ur,or,yr),Jr.return=ur,ur=Jr)}return Hn(ur);case ct:e:{for(Bo=yr.key;or!==null;){if(or.key===Bo)if(or.tag===4&&or.stateNode.containerInfo===yr.containerInfo&&or.stateNode.implementation===yr.implementation){Gt(ur,or.sibling),or=pn(or,yr.children||[]),or.return=ur,ur=or;break e}else{Gt(ur,or);break}else Dt(ur,or);or=or.sibling}or=Ml(yr,ur.mode,Jr),or.return=ur,ur=or}return Hn(ur);case vt:return Bo=yr._init,El(ur,or,Bo(yr._payload),Jr)}if(It(yr))return lo(ur,or,yr,Jr);if(Et(yr))return Ns(ur,or,yr,Jr);Vl(ur,yr)}return typeof yr=="string"&&yr!==""||typeof yr=="number"?(yr=""+yr,or!==null&&or.tag===6?(Gt(ur,or.sibling),or=pn(or,yr),or.return=ur,ur=or):(Gt(ur,or),or=Ls(yr,ur.mode,Jr),or.return=ur,ur=or),Hn(ur)):Gt(ur,or)}return El}var dp=Fy(!0),Uy=Fy(!1),iu={},ls=Cr(iu),fp=Cr(iu),pp=Cr(iu);function ou(Bt){if(Bt===iu)throw Error(at(174));return Bt}function Jm(Bt,Dt){ir(pp,Dt),ir(fp,Bt),ir(ls,iu),Bt=zt(Dt),er(ls),ir(ls,Bt)}function mp(){er(ls),er(fp),er(pp)}function zy(Bt){var Dt=ou(pp.current),Gt=ou(ls.current);Dt=Ut(Gt,Bt.type,Dt),Gt!==Dt&&(ir(fp,Bt),ir(ls,Dt))}function $u(Bt){fp.current===Bt&&(er(ls),er(fp))}var Qn=Cr(0);function xr(Bt){for(var Dt=Bt;Dt!==null;){if(Dt.tag===13){var Gt=Dt.memoizedState;if(Gt!==null&&(Gt=Gt.dehydrated,Gt===null||vn(Gt)||Pn(Gt)))return Dt}else if(Dt.tag===19&&Dt.memoizedProps.revealOrder!==void 0){if(Dt.flags&128)return Dt}else if(Dt.child!==null){Dt.child.return=Dt,Dt=Dt.child;continue}if(Dt===Bt)break;for(;Dt.sibling===null;){if(Dt.return===null||Dt.return===Bt)return null;Dt=Dt.return}Dt.sibling.return=Dt.return,Dt=Dt.sibling}return null}var gr=[];function no(){for(var Bt=0;BtGt?Gt:4,Bt(!0);var tn=Co.transition;Co.transition={};try{Bt(!1),Dt()}finally{No=Gt,Co.transition=tn}}function Gy(){return Js().memoizedState}function xs(Bt,Dt,Gt){var tn=uu(Bt);Gt={lane:tn,action:Gt,hasEagerState:!1,eagerState:null,next:null},qy(Bt)?Yy(Dt,Gt):(ry(Bt,Dt,Gt),Gt=Os(),Bt=$l(Bt,tn,Gt),Bt!==null&&Ky(Bt,Dt,tn))}function Ms(Bt,Dt,Gt){var tn=uu(Bt),pn={lane:tn,action:Gt,hasEagerState:!1,eagerState:null,next:null};if(qy(Bt))Yy(Dt,pn);else{ry(Bt,Dt,pn);var In=Bt.alternate;if(Bt.lanes===0&&(In===null||In.lanes===0)&&(In=Dt.lastRenderedReducer,In!==null))try{var Hn=Dt.lastRenderedState,rr=In(Hn,Gt);if(pn.hasEagerState=!0,pn.eagerState=rr,Zs(rr,Hn))return}catch{}finally{}Gt=Os(),Bt=$l(Bt,tn,Gt),Bt!==null&&Ky(Bt,Dt,tn)}}function qy(Bt){var Dt=Bt.alternate;return Bt===xo||Dt!==null&&Dt===xo}function Yy(Bt,Dt){Pu=Gs=!0;var Gt=Bt.pending;Gt===null?Dt.next=Dt:(Dt.next=Gt.next,Gt.next=Dt),Bt.pending=Dt}function ry(Bt,Dt,Gt){ps!==null&&Bt.mode&1&&!(Ro&2)?(Bt=Dt.interleaved,Bt===null?(Gt.next=Gt,vs===null?vs=[Dt]:vs.push(Dt)):(Gt.next=Bt.next,Bt.next=Gt),Dt.interleaved=Gt):(Bt=Dt.pending,Bt===null?Gt.next=Gt:(Gt.next=Bt.next,Bt.next=Gt),Dt.pending=Gt)}function Ky(Bt,Dt,Gt){if(Gt&4194240){var tn=Dt.lanes;tn&=Bt.pendingLanes,Gt|=tn,Dt.lanes=Gt,eu(Bt,Gt)}}var wp={readContext:Do,useCallback:_s,useContext:_s,useEffect:_s,useImperativeHandle:_s,useInsertionEffect:_s,useLayoutEffect:_s,useMemo:_s,useReducer:_s,useRef:_s,useState:_s,useDebugValue:_s,useDeferredValue:_s,useTransition:_s,useMutableSource:_s,useSyncExternalStore:_s,useId:_s,unstable_isNewReconciler:!1},Jp={readContext:Do,useCallback:function(Bt,Dt){return au().memoizedState=[Bt,Dt===void 0?null:Dt],Bt},useContext:Do,useEffect:bp,useImperativeHandle:function(Bt,Dt,Gt){return Gt=Gt!=null?Gt.concat([Bt]):null,Ru(4194308,4,Kp.bind(null,Dt,Bt),Gt)},useLayoutEffect:function(Bt,Dt){return Ru(4194308,4,Bt,Dt)},useInsertionEffect:function(Bt,Dt){return Ru(4,2,Bt,Dt)},useMemo:function(Bt,Dt){var Gt=au();return Dt=Dt===void 0?null:Dt,Bt=Bt(),Gt.memoizedState=[Bt,Dt],Bt},useReducer:function(Bt,Dt,Gt){var tn=au();return Dt=Gt!==void 0?Gt(Dt):Dt,tn.memoizedState=tn.baseState=Dt,Bt={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Bt,lastRenderedState:Dt},tn.queue=Bt,Bt=Bt.dispatch=xs.bind(null,xo,Bt),[tn.memoizedState,Bt]},useRef:function(Bt){var Dt=au();return Bt={current:Bt},Dt.memoizedState=Bt},useState:xm,useDebugValue:Zp,useDeferredValue:function(Bt){var Dt=xm(Bt),Gt=Dt[0],tn=Dt[1];return bp(function(){var pn=Co.transition;Co.transition={};try{tn(Bt)}finally{Co.transition=pn}},[Bt]),Gt},useTransition:function(){var Bt=xm(!1),Dt=Bt[0];return Bt=L0.bind(null,Bt[1]),au().memoizedState=Bt,[Dt,Bt]},useMutableSource:function(){},useSyncExternalStore:function(Bt,Dt,Gt){var tn=xo,pn=au();if(_a){if(Gt===void 0)throw Error(at(407));Gt=Gt()}else{if(Gt=Dt(),ps===null)throw Error(at(349));ts&30||Gp(tn,Dt,Gt)}pn.memoizedState=Gt;var In={value:Gt,getSnapshot:Dt};return pn.queue=In,bp(qp.bind(null,tn,In,Bt),[Bt]),tn.flags|=2048,Mu(9,_g.bind(null,tn,In,Gt,Dt),void 0,null),Gt},useId:function(){var Bt=au(),Dt=ps.identifierPrefix;if(_a){var Gt=Ul,tn=bu;Gt=(tn&~(1<<32-go(tn)-1)).toString(32)+Gt,Dt=":"+Dt+"R"+Gt,Gt=Vp++,0om&&(Dt.flags|=128,tn=!0,Rs(pn,!1),Dt.lanes=4194304)}else{if(!tn)if(Bt=xr(In),Bt!==null){if(Dt.flags|=128,tn=!0,Bt=Bt.updateQueue,Bt!==null&&(Dt.updateQueue=Bt,Dt.flags|=4),Rs(pn,!0),pn.tail===null&&pn.tailMode==="hidden"&&!In.alternate&&!_a)return yo(Dt),null}else 2*es()-pn.renderingStartTime>om&&Gt!==1073741824&&(Dt.flags|=128,tn=!0,Rs(pn,!1),Dt.lanes=4194304);pn.isBackwards?(In.sibling=Dt.child,Dt.child=In):(Bt=pn.last,Bt!==null?Bt.sibling=In:Dt.child=In,pn.last=In)}return pn.tail!==null?(Dt=pn.tail,pn.rendering=Dt,pn.tail=Dt.sibling,pn.renderingStartTime=es(),Dt.sibling=null,Bt=Qn.current,ir(Qn,tn?Bt&1|2:Bt&1),Dt):(yo(Dt),null);case 22:case 23:return xy(),tn=Dt.memoizedState!==null,Bt!==null&&Bt.memoizedState!==null!==tn&&(Dt.flags|=8192),tn&&Dt.mode&1?xl&1073741824&&(yo(Dt),an&&Dt.subtreeFlags&6&&(Dt.flags|=8192)):yo(Dt),null;case 24:return null;case 25:return null}throw Error(at(156,Dt.tag))}var F0=st.ReactCurrentOwner,Qs=!1;function us(Bt,Dt,Gt,tn){Dt.child=Bt===null?Uy(Dt,null,Gt,tn):dp(Dt,Bt.child,Gt,tn)}function e0(Bt,Dt,Gt,tn,pn){Gt=Gt.render;var In=Dt.ref;return ws(Dt,pn),tn=Yo(Bt,Dt,Gt,tn,In,pn),Gt=Qm(),Bt!==null&&!Qs?(Dt.updateQueue=Bt.updateQueue,Dt.flags&=-2053,Bt.lanes&=~pn,ks(Bt,Dt,pn)):(_a&&Gt&&wm(Dt),Dt.flags|=1,us(Bt,Dt,tn,pn),Dt.child)}function n0(Bt,Dt,Gt,tn,pn){if(Bt===null){var In=Gt.type;return typeof In=="function"&&!Cy(In)&&In.defaultProps===void 0&&Gt.compare===null&&Gt.defaultProps===void 0?(Dt.tag=15,Dt.type=In,r0(Bt,Dt,In,tn,pn)):(Bt=Nm(Gt.type,null,tn,Dt,Dt.mode,pn),Bt.ref=Dt.ref,Bt.return=Dt,Dt.child=Bt)}if(In=Bt.child,!(Bt.lanes&pn)){var Hn=In.memoizedProps;if(Gt=Gt.compare,Gt=Gt!==null?Gt:ns,Gt(Hn,tn)&&Bt.ref===Dt.ref)return ks(Bt,Dt,pn)}return Dt.flags|=1,Bt=Su(In,tn),Bt.ref=Dt.ref,Bt.return=Dt,Dt.child=Bt}function r0(Bt,Dt,Gt,tn,pn){if(Bt!==null&&ns(Bt.memoizedProps,tn)&&Bt.ref===Dt.ref)if(Qs=!1,(Bt.lanes&pn)!==0)Bt.flags&131072&&(Qs=!0);else return Dt.lanes=Bt.lanes,ks(Bt,Dt,pn);return Hl(Bt,Dt,Gt,tn,pn)}function i0(Bt,Dt,Gt){var tn=Dt.pendingProps,pn=tn.children,In=Bt!==null?Bt.memoizedState:null;if(tn.mode==="hidden")if(!(Dt.mode&1))Dt.memoizedState={baseLanes:0,cachePool:null},ir(Ep,xl),xl|=Gt;else if(Gt&1073741824)Dt.memoizedState={baseLanes:0,cachePool:null},tn=In!==null?In.baseLanes:Gt,ir(Ep,xl),xl|=tn;else return Bt=In!==null?In.baseLanes|Gt:Gt,Dt.lanes=Dt.childLanes=1073741824,Dt.memoizedState={baseLanes:Bt,cachePool:null},Dt.updateQueue=null,ir(Ep,xl),xl|=Bt,null;else In!==null?(tn=In.baseLanes|Gt,Dt.memoizedState=null):tn=Gt,ir(Ep,xl),xl|=tn;return us(Bt,Dt,pn,Gt),Dt.child}function o0(Bt,Dt){var Gt=Dt.ref;(Bt===null&&Gt!==null||Bt!==null&&Bt.ref!==Gt)&&(Dt.flags|=512,Dt.flags|=2097152)}function Hl(Bt,Dt,Gt,tn,pn){var In=ao(Gt)?Ir:dr.current;return In=ro(Dt,In),ws(Dt,pn),Gt=Yo(Bt,Dt,Gt,tn,In,pn),tn=Qm(),Bt!==null&&!Qs?(Dt.updateQueue=Bt.updateQueue,Dt.flags&=-2053,Bt.lanes&=~pn,ks(Bt,Dt,pn)):(_a&&tn&&wm(Dt),Dt.flags|=1,us(Bt,Dt,Gt,pn),Dt.child)}function a0(Bt,Dt,Gt,tn,pn){if(ao(Gt)){var In=!0;bo(Dt)}else In=!1;if(ws(Dt,pn),Dt.stateNode===null)Bt!==null&&(Bt.alternate=null,Dt.alternate=null,Dt.flags|=2),jy(Dt,Gt,tn),sp(Dt,Gt,tn,pn),tn=!0;else if(Bt===null){var Hn=Dt.stateNode,rr=Dt.memoizedProps;Hn.props=rr;var vr=Hn.context,Ur=Gt.contextType;typeof Ur=="object"&&Ur!==null?Ur=Do(Ur):(Ur=ao(Gt)?Ir:dr.current,Ur=ro(Dt,Ur));var io=Gt.getDerivedStateFromProps,To=typeof io=="function"||typeof Hn.getSnapshotBeforeUpdate=="function";To||typeof Hn.UNSAFE_componentWillReceiveProps!="function"&&typeof Hn.componentWillReceiveProps!="function"||(rr!==tn||vr!==Ur)&&Km(Dt,Hn,tn,Ur),ss=!1;var ho=Dt.memoizedState;Hn.state=ho,Nl(Dt,tn,Hn,pn),vr=Dt.memoizedState,rr!==tn||ho!==vr||br.current||ss?(typeof io=="function"&&(Lp(Dt,Gt,io,tn),vr=Dt.memoizedState),(rr=ss||Oy(Dt,Gt,rr,tn,ho,vr,Ur))?(To||typeof Hn.UNSAFE_componentWillMount!="function"&&typeof Hn.componentWillMount!="function"||(typeof Hn.componentWillMount=="function"&&Hn.componentWillMount(),typeof Hn.UNSAFE_componentWillMount=="function"&&Hn.UNSAFE_componentWillMount()),typeof Hn.componentDidMount=="function"&&(Dt.flags|=4194308)):(typeof Hn.componentDidMount=="function"&&(Dt.flags|=4194308),Dt.memoizedProps=tn,Dt.memoizedState=vr),Hn.props=tn,Hn.state=vr,Hn.context=Ur,tn=rr):(typeof Hn.componentDidMount=="function"&&(Dt.flags|=4194308),tn=!1)}else{Hn=Dt.stateNode,Ym(Bt,Dt),rr=Dt.memoizedProps,Ur=Dt.type===Dt.elementType?rr:rs(Dt.type,rr),Hn.props=Ur,To=Dt.pendingProps,ho=Hn.context,vr=Gt.contextType,typeof vr=="object"&&vr!==null?vr=Do(vr):(vr=ao(Gt)?Ir:dr.current,vr=ro(Dt,vr));var Jo=Gt.getDerivedStateFromProps;(io=typeof Jo=="function"||typeof Hn.getSnapshotBeforeUpdate=="function")||typeof Hn.UNSAFE_componentWillReceiveProps!="function"&&typeof Hn.componentWillReceiveProps!="function"||(rr!==To||ho!==vr)&&Km(Dt,Hn,tn,vr),ss=!1,ho=Dt.memoizedState,Hn.state=ho,Nl(Dt,tn,Hn,pn);var lo=Dt.memoizedState;rr!==To||ho!==lo||br.current||ss?(typeof Jo=="function"&&(Lp(Dt,Gt,Jo,tn),lo=Dt.memoizedState),(Ur=ss||Oy(Dt,Gt,Ur,tn,ho,lo,vr)||!1)?(io||typeof Hn.UNSAFE_componentWillUpdate!="function"&&typeof Hn.componentWillUpdate!="function"||(typeof Hn.componentWillUpdate=="function"&&Hn.componentWillUpdate(tn,lo,vr),typeof Hn.UNSAFE_componentWillUpdate=="function"&&Hn.UNSAFE_componentWillUpdate(tn,lo,vr)),typeof Hn.componentDidUpdate=="function"&&(Dt.flags|=4),typeof Hn.getSnapshotBeforeUpdate=="function"&&(Dt.flags|=1024)):(typeof Hn.componentDidUpdate!="function"||rr===Bt.memoizedProps&&ho===Bt.memoizedState||(Dt.flags|=4),typeof Hn.getSnapshotBeforeUpdate!="function"||rr===Bt.memoizedProps&&ho===Bt.memoizedState||(Dt.flags|=1024),Dt.memoizedProps=tn,Dt.memoizedState=lo),Hn.props=tn,Hn.state=lo,Hn.context=vr,tn=Ur):(typeof Hn.componentDidUpdate!="function"||rr===Bt.memoizedProps&&ho===Bt.memoizedState||(Dt.flags|=4),typeof Hn.getSnapshotBeforeUpdate!="function"||rr===Bt.memoizedProps&&ho===Bt.memoizedState||(Dt.flags|=1024),tn=!1)}return oy(Bt,Dt,Gt,tn,In,pn)}function oy(Bt,Dt,Gt,tn,pn,In){o0(Bt,Dt);var Hn=(Dt.flags&128)!==0;if(!tn&&!Hn)return pn&&jo(Dt,Gt,!1),ks(Bt,Dt,In);tn=Dt.stateNode,F0.current=Dt;var rr=Hn&&typeof Gt.getDerivedStateFromError!="function"?null:tn.render();return Dt.flags|=1,Bt!==null&&Hn?(Dt.child=dp(Dt,Bt.child,null,In),Dt.child=dp(Dt,null,rr,In)):us(Bt,Dt,rr,In),Dt.memoizedState=tn.state,pn&&jo(Dt,Gt,!0),Dt.child}function s0(Bt){var Dt=Bt.stateNode;Dt.pendingContext?fo(Bt,Dt.pendingContext,Dt.pendingContext!==Dt.context):Dt.context&&fo(Bt,Dt.context,!1),Jm(Bt,Dt.containerInfo)}function l0(Bt,Dt,Gt,tn,pn){return up(),zp(pn),Dt.flags|=256,us(Bt,Dt,Gt,tn),Dt.child}var Sm={dehydrated:null,treeContext:null,retryLane:0};function Cl(Bt){return{baseLanes:Bt,cachePool:null}}function c0(Bt,Dt,Gt){var tn=Dt.pendingProps,pn=Qn.current,In=!1,Hn=(Dt.flags&128)!==0,rr;if((rr=Hn)||(rr=Bt!==null&&Bt.memoizedState===null?!1:(pn&2)!==0),rr?(In=!0,Dt.flags&=-129):(Bt===null||Bt.memoizedState!==null)&&(pn|=1),ir(Qn,pn&1),Bt===null)return Zm(Dt),Bt=Dt.memoizedState,Bt!==null&&(Bt=Bt.dehydrated,Bt!==null)?(Dt.mode&1?Pn(Bt)?Dt.lanes=8:Dt.lanes=1073741824:Dt.lanes=1,null):(pn=tn.children,Bt=tn.fallback,In?(tn=Dt.mode,In=Dt.child,pn={mode:"hidden",children:pn},!(tn&1)&&In!==null?(In.childLanes=0,In.pendingProps=pn):In=um(pn,tn,0,null),Bt=Wu(Bt,tn,Gt,null),In.return=Dt,Bt.return=Dt,In.sibling=Bt,Dt.child=In,Dt.child.memoizedState=Cl(Gt),Dt.memoizedState=Sm,Bt):ay(Dt,pn));if(pn=Bt.memoizedState,pn!==null){if(rr=pn.dehydrated,rr!==null){if(Hn)return Dt.flags&256?(Dt.flags&=-257,Em(Bt,Dt,Gt,Error(at(422)))):Dt.memoizedState!==null?(Dt.child=Bt.child,Dt.flags|=128,null):(In=tn.fallback,pn=Dt.mode,tn=um({mode:"visible",children:tn.children},pn,0,null),In=Wu(In,pn,Gt,null),In.flags|=2,tn.return=Dt,In.return=Dt,tn.sibling=In,Dt.child=tn,Dt.mode&1&&dp(Dt,Bt.child,null,Gt),Dt.child.memoizedState=Cl(Gt),Dt.memoizedState=Sm,In);if(!(Dt.mode&1))Dt=Em(Bt,Dt,Gt,null);else if(Pn(rr))Dt=Em(Bt,Dt,Gt,Error(at(419)));else if(tn=(Gt&Bt.childLanes)!==0,Qs||tn){if(tn=ps,tn!==null){switch(Gt&-Gt){case 4:In=2;break;case 16:In=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:In=32;break;case 536870912:In=268435456;break;default:In=0}tn=In&(tn.suspendedLanes|Gt)?0:In,tn!==0&&tn!==pn.retryLane&&(pn.retryLane=tn,$l(Bt,tn,-1))}jm(),Dt=Em(Bt,Dt,Gt,Error(at(421)))}else vn(rr)?(Dt.flags|=128,Dt.child=Bt.child,Dt=zu.bind(null,Bt),sn(rr,Dt),Dt=null):(Gt=pn.treeContext,Tn&&(Cs=Fn(rr),Hs=Dt,_a=!0,Wl=null,cp=!1,Gt!==null&&(qs[Ys++]=bu,qs[Ys++]=Ul,qs[Ys++]=Cu,bu=Gt.id,Ul=Gt.overflow,Cu=Dt)),Dt=ay(Dt,Dt.pendingProps.children),Dt.flags|=4096);return Dt}return In?(tn=h0(Bt,Dt,tn.children,tn.fallback,Gt),In=Dt.child,pn=Bt.child.memoizedState,In.memoizedState=pn===null?Cl(Gt):{baseLanes:pn.baseLanes|Gt,cachePool:null},In.childLanes=Bt.childLanes&~Gt,Dt.memoizedState=Sm,tn):(Gt=u0(Bt,Dt,tn.children,Gt),Dt.memoizedState=null,Gt)}return In?(tn=h0(Bt,Dt,tn.children,tn.fallback,Gt),In=Dt.child,pn=Bt.child.memoizedState,In.memoizedState=pn===null?Cl(Gt):{baseLanes:pn.baseLanes|Gt,cachePool:null},In.childLanes=Bt.childLanes&~Gt,Dt.memoizedState=Sm,tn):(Gt=u0(Bt,Dt,tn.children,Gt),Dt.memoizedState=null,Gt)}function ay(Bt,Dt){return Dt=um({mode:"visible",children:Dt},Bt.mode,0,null),Dt.return=Bt,Bt.child=Dt}function u0(Bt,Dt,Gt,tn){var pn=Bt.child;return Bt=pn.sibling,Gt=Su(pn,{mode:"visible",children:Gt}),!(Dt.mode&1)&&(Gt.lanes=tn),Gt.return=Dt,Gt.sibling=null,Bt!==null&&(tn=Dt.deletions,tn===null?(Dt.deletions=[Bt],Dt.flags|=16):tn.push(Bt)),Dt.child=Gt}function h0(Bt,Dt,Gt,tn,pn){var In=Dt.mode;Bt=Bt.child;var Hn=Bt.sibling,rr={mode:"hidden",children:Gt};return!(In&1)&&Dt.child!==Bt?(Gt=Dt.child,Gt.childLanes=0,Gt.pendingProps=rr,Dt.deletions=null):(Gt=Su(Bt,rr),Gt.subtreeFlags=Bt.subtreeFlags&14680064),Hn!==null?tn=Su(Hn,tn):(tn=Wu(tn,In,pn,null),tn.flags|=2),tn.return=Dt,Gt.return=Dt,Gt.sibling=tn,Dt.child=Gt,tn}function Em(Bt,Dt,Gt,tn){return tn!==null&&zp(tn),dp(Dt,Bt.child,null,Gt),Bt=ay(Dt,Dt.pendingProps.children),Bt.flags|=2,Dt.memoizedState=null,Bt}function Bu(Bt,Dt,Gt){Bt.lanes|=Dt;var tn=Bt.alternate;tn!==null&&(tn.lanes|=Dt),cs(Bt.return,Dt,Gt)}function sy(Bt,Dt,Gt,tn,pn){var In=Bt.memoizedState;In===null?Bt.memoizedState={isBackwards:Dt,rendering:null,renderingStartTime:0,last:tn,tail:Gt,tailMode:pn}:(In.isBackwards=Dt,In.rendering=null,In.renderingStartTime=0,In.last=tn,In.tail=Gt,In.tailMode=pn)}function d0(Bt,Dt,Gt){var tn=Dt.pendingProps,pn=tn.revealOrder,In=tn.tail;if(us(Bt,Dt,tn.children,Gt),tn=Qn.current,tn&2)tn=tn&1|2,Dt.flags|=128;else{if(Bt!==null&&Bt.flags&128)e:for(Bt=Dt.child;Bt!==null;){if(Bt.tag===13)Bt.memoizedState!==null&&Bu(Bt,Gt,Dt);else if(Bt.tag===19)Bu(Bt,Gt,Dt);else if(Bt.child!==null){Bt.child.return=Bt,Bt=Bt.child;continue}if(Bt===Dt)break e;for(;Bt.sibling===null;){if(Bt.return===null||Bt.return===Dt)break e;Bt=Bt.return}Bt.sibling.return=Bt.return,Bt=Bt.sibling}tn&=1}if(ir(Qn,tn),!(Dt.mode&1))Dt.memoizedState=null;else switch(pn){case"forwards":for(Gt=Dt.child,pn=null;Gt!==null;)Bt=Gt.alternate,Bt!==null&&xr(Bt)===null&&(pn=Gt),Gt=Gt.sibling;Gt=pn,Gt===null?(pn=Dt.child,Dt.child=null):(pn=Gt.sibling,Gt.sibling=null),sy(Dt,!1,pn,Gt,In);break;case"backwards":for(Gt=null,pn=Dt.child,Dt.child=null;pn!==null;){if(Bt=pn.alternate,Bt!==null&&xr(Bt)===null){Dt.child=pn;break}Bt=pn.sibling,pn.sibling=Gt,Gt=pn,pn=Bt}sy(Dt,!0,Gt,null,In);break;case"together":sy(Dt,!1,null,null,void 0);break;default:Dt.memoizedState=null}return Dt.child}function ks(Bt,Dt,Gt){if(Bt!==null&&(Dt.dependencies=Bt.dependencies),Ip|=Dt.lanes,!(Gt&Dt.childLanes))return null;if(Bt!==null&&Dt.child!==Bt.child)throw Error(at(153));if(Dt.child!==null){for(Bt=Dt.child,Gt=Su(Bt,Bt.pendingProps),Dt.child=Gt,Gt.return=Dt;Bt.sibling!==null;)Bt=Bt.sibling,Gt=Gt.sibling=Su(Bt,Bt.pendingProps),Gt.return=Dt;Gt.sibling=null}return Dt.child}function U0(Bt,Dt,Gt){switch(Dt.tag){case 3:s0(Dt),up();break;case 5:zy(Dt);break;case 1:ao(Dt.type)&&bo(Dt);break;case 4:Jm(Dt,Dt.stateNode.containerInfo);break;case 10:Dp(Dt,Dt.type._context,Dt.memoizedProps.value);break;case 13:var tn=Dt.memoizedState;if(tn!==null)return tn.dehydrated!==null?(ir(Qn,Qn.current&1),Dt.flags|=128,null):Gt&Dt.child.childLanes?c0(Bt,Dt,Gt):(ir(Qn,Qn.current&1),Bt=ks(Bt,Dt,Gt),Bt!==null?Bt.sibling:null);ir(Qn,Qn.current&1);break;case 19:if(tn=(Gt&Dt.childLanes)!==0,Bt.flags&128){if(tn)return d0(Bt,Dt,Gt);Dt.flags|=128}var pn=Dt.memoizedState;if(pn!==null&&(pn.rendering=null,pn.tail=null,pn.lastEffect=null),ir(Qn,Qn.current),tn)break;return null;case 22:case 23:return Dt.lanes=0,i0(Bt,Dt,Gt)}return ks(Bt,Dt,Gt)}function z0(Bt,Dt){switch(Vs(Dt),Dt.tag){case 1:return ao(Dt.type)&&mo(),Bt=Dt.flags,Bt&65536?(Dt.flags=Bt&-65537|128,Dt):null;case 3:return mp(),er(br),er(dr),no(),Bt=Dt.flags,Bt&65536&&!(Bt&128)?(Dt.flags=Bt&-65537|128,Dt):null;case 5:return $u(Dt),null;case 13:if(er(Qn),Bt=Dt.memoizedState,Bt!==null&&Bt.dehydrated!==null){if(Dt.alternate===null)throw Error(at(340));up()}return Bt=Dt.flags,Bt&65536?(Dt.flags=Bt&-65537|128,Dt):null;case 19:return er(Qn),null;case 4:return mp(),null;case 10:return Dl(Dt.type._context),null;case 22:case 23:return xy(),null;case 24:return null;default:return null}}var Tm=!1,Ju=!1,W0=typeof WeakSet=="function"?WeakSet:Set,Yr=null;function tm(Bt,Dt){var Gt=Bt.ref;if(Gt!==null)if(typeof Gt=="function")try{Gt(null)}catch(tn){Ds(Bt,Dt,tn)}else Gt.current=null}function ly(Bt,Dt,Gt){try{Gt()}catch(tn){Ds(Bt,Dt,tn)}}var f0=!1;function cy(Bt,Dt){for(Wt(Bt.containerInfo),Yr=Dt;Yr!==null;)if(Bt=Yr,Dt=Bt.child,(Bt.subtreeFlags&1028)!==0&&Dt!==null)Dt.return=Bt,Yr=Dt;else for(;Yr!==null;){Bt=Yr;try{var Gt=Bt.alternate;if(Bt.flags&1024)switch(Bt.tag){case 0:case 11:case 15:break;case 1:if(Gt!==null){var tn=Gt.memoizedProps,pn=Gt.memoizedState,In=Bt.stateNode,Hn=In.getSnapshotBeforeUpdate(Bt.elementType===Bt.type?tn:rs(Bt.type,tn),pn);In.__reactInternalSnapshotBeforeUpdate=Hn}break;case 3:an&&Er(Bt.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(at(163))}}catch(rr){Ds(Bt,Bt.return,rr)}if(Dt=Bt.sibling,Dt!==null){Dt.return=Bt.return,Yr=Dt;break}Yr=Bt.return}return Gt=f0,f0=!1,Gt}function Gl(Bt,Dt,Gt){var tn=Dt.updateQueue;if(tn=tn!==null?tn.lastEffect:null,tn!==null){var pn=tn=tn.next;do{if((pn.tag&Bt)===Bt){var In=pn.destroy;pn.destroy=void 0,In!==void 0&&ly(Dt,Gt,In)}pn=pn.next}while(pn!==tn)}}function Ou(Bt,Dt){if(Dt=Dt.updateQueue,Dt=Dt!==null?Dt.lastEffect:null,Dt!==null){var Gt=Dt=Dt.next;do{if((Gt.tag&Bt)===Bt){var tn=Gt.create;Gt.destroy=tn()}Gt=Gt.next}while(Gt!==Dt)}}function uy(Bt){var Dt=Bt.ref;if(Dt!==null){var Gt=Bt.stateNode;switch(Bt.tag){case 5:Bt=Ot(Gt);break;default:Bt=Gt}typeof Dt=="function"?Dt(Bt):Dt.current=Bt}}function hy(Bt,Dt,Gt){if(Xs&&typeof Xs.onCommitFiberUnmount=="function")try{Xs.onCommitFiberUnmount(Iu,Dt)}catch{}switch(Dt.tag){case 0:case 11:case 14:case 15:if(Bt=Dt.updateQueue,Bt!==null&&(Bt=Bt.lastEffect,Bt!==null)){var tn=Bt=Bt.next;do{var pn=tn,In=pn.destroy;pn=pn.tag,In!==void 0&&(pn&2||pn&4)&&ly(Dt,Gt,In),tn=tn.next}while(tn!==Bt)}break;case 1:if(tm(Dt,Gt),Bt=Dt.stateNode,typeof Bt.componentWillUnmount=="function")try{Bt.props=Dt.memoizedProps,Bt.state=Dt.memoizedState,Bt.componentWillUnmount()}catch(Hn){Ds(Dt,Gt,Hn)}break;case 5:tm(Dt,Gt);break;case 4:an?fy(Bt,Dt,Gt):en&&en&&(Dt=Dt.stateNode.containerInfo,Gt=Dr(Dt),Vr(Dt,Gt))}}function p0(Bt,Dt,Gt){for(var tn=Dt;;)if(hy(Bt,tn,Gt),tn.child===null||an&&tn.tag===4){if(tn===Dt)break;for(;tn.sibling===null;){if(tn.return===null||tn.return===Dt)return;tn=tn.return}tn.sibling.return=tn.return,tn=tn.sibling}else tn.child.return=tn,tn=tn.child}function cu(Bt){var Dt=Bt.alternate;Dt!==null&&(Bt.alternate=null,cu(Dt)),Bt.child=null,Bt.deletions=null,Bt.sibling=null,Bt.tag===5&&(Dt=Bt.stateNode,Dt!==null&&kn(Dt)),Bt.stateNode=null,Bt.return=null,Bt.dependencies=null,Bt.memoizedProps=null,Bt.memoizedState=null,Bt.pendingProps=null,Bt.stateNode=null,Bt.updateQueue=null}function Im(Bt){return Bt.tag===5||Bt.tag===3||Bt.tag===4}function ju(Bt){e:for(;;){for(;Bt.sibling===null;){if(Bt.return===null||Im(Bt.return))return null;Bt=Bt.return}for(Bt.sibling.return=Bt.return,Bt=Bt.sibling;Bt.tag!==5&&Bt.tag!==6&&Bt.tag!==18;){if(Bt.flags&2||Bt.child===null||Bt.tag===4)continue e;Bt.child.return=Bt,Bt=Bt.child}if(!(Bt.flags&2))return Bt.stateNode}}function yl(Bt){if(an){e:{for(var Dt=Bt.return;Dt!==null;){if(Im(Dt))break e;Dt=Dt.return}throw Error(at(160))}var Gt=Dt;switch(Gt.tag){case 5:Dt=Gt.stateNode,Gt.flags&32&&(Wn(Dt),Gt.flags&=-33),Gt=ju(Bt),Am(Bt,Gt,Dt);break;case 3:case 4:Dt=Gt.stateNode.containerInfo,Gt=ju(Bt),dy(Bt,Gt,Dt);break;default:throw Error(at(161))}}}function dy(Bt,Dt,Gt){var tn=Bt.tag;if(tn===5||tn===6)Bt=Bt.stateNode,Dt?tr(Gt,Bt,Dt):Zt(Gt,Bt);else if(tn!==4&&(Bt=Bt.child,Bt!==null))for(dy(Bt,Dt,Gt),Bt=Bt.sibling;Bt!==null;)dy(Bt,Dt,Gt),Bt=Bt.sibling}function Am(Bt,Dt,Gt){var tn=Bt.tag;if(tn===5||tn===6)Bt=Bt.stateNode,Dt?Un(Gt,Bt,Dt):Qt(Gt,Bt);else if(tn!==4&&(Bt=Bt.child,Bt!==null))for(Am(Bt,Dt,Gt),Bt=Bt.sibling;Bt!==null;)Am(Bt,Dt,Gt),Bt=Bt.sibling}function fy(Bt,Dt,Gt){for(var tn=Dt,pn=!1,In,Hn;;){if(!pn){pn=tn.return;e:for(;;){if(pn===null)throw Error(at(160));switch(In=pn.stateNode,pn.tag){case 5:Hn=!1;break e;case 3:In=In.containerInfo,Hn=!0;break e;case 4:In=In.containerInfo,Hn=!0;break e}pn=pn.return}pn=!0}if(tn.tag===5||tn.tag===6)p0(Bt,tn,Gt),Hn?Xn(In,tn.stateNode):qn(In,tn.stateNode);else if(tn.tag===18)Hn?Gr(In,tn.stateNode):jr(In,tn.stateNode);else if(tn.tag===4){if(tn.child!==null){In=tn.stateNode.containerInfo,Hn=!0,tn.child.return=tn,tn=tn.child;continue}}else if(hy(Bt,tn,Gt),tn.child!==null){tn.child.return=tn,tn=tn.child;continue}if(tn===Dt)break;for(;tn.sibling===null;){if(tn.return===null||tn.return===Dt)return;tn=tn.return,tn.tag===4&&(pn=!1)}tn.sibling.return=tn.return,tn=tn.sibling}}function Qu(Bt,Dt){if(an){switch(Dt.tag){case 0:case 11:case 14:case 15:Gl(3,Dt,Dt.return),Ou(3,Dt),Gl(5,Dt,Dt.return);return;case 1:return;case 5:var Gt=Dt.stateNode;if(Gt!=null){var tn=Dt.memoizedProps;Bt=Bt!==null?Bt.memoizedProps:tn;var pn=Dt.type,In=Dt.updateQueue;Dt.updateQueue=null,In!==null&&jn(Gt,In,pn,Bt,tn,Dt)}return;case 6:if(Dt.stateNode===null)throw Error(at(162));Gt=Dt.memoizedProps,wn(Dt.stateNode,Bt!==null?Bt.memoizedProps:Gt,Gt);return;case 3:Tn&&Bt!==null&&Bt.memoizedState.isDehydrated&&Hr(Dt.stateNode.containerInfo);return;case 12:return;case 13:Yl(Dt);return;case 19:Yl(Dt);return;case 17:return}throw Error(at(163))}switch(Dt.tag){case 0:case 11:case 14:case 15:Gl(3,Dt,Dt.return),Ou(3,Dt),Gl(5,Dt,Dt.return);return;case 12:return;case 13:Yl(Dt);return;case 19:Yl(Dt);return;case 3:Tn&&Bt!==null&&Bt.memoizedState.isDehydrated&&Hr(Dt.stateNode.containerInfo);break;case 22:case 23:return}e:if(en){switch(Dt.tag){case 1:case 5:case 6:break e;case 3:case 4:Dt=Dt.stateNode,Vr(Dt.containerInfo,Dt.pendingChildren);break e}throw Error(at(163))}}function Yl(Bt){var Dt=Bt.updateQueue;if(Dt!==null){Bt.updateQueue=null;var Gt=Bt.stateNode;Gt===null&&(Gt=Bt.stateNode=new W0),Dt.forEach(function(tn){var pn=x0.bind(null,Bt,tn);Gt.has(tn)||(Gt.add(tn),tn.then(pn,pn))})}}function m0(Bt,Dt){for(Yr=Dt;Yr!==null;){Dt=Yr;var Gt=Dt.deletions;if(Gt!==null)for(var tn=0;tn";case rm:return":has("+(im(Bt)||"")+")";case _l:return'[role="'+Bt.value+'"]';case _h:return'"'+Bt.value+'"';case kp:return'[data-testname="'+Bt.value+'"]';default:throw Error(at(365))}}function y0(Bt,Dt){var Gt=[];Bt=[Bt,0];for(var tn=0;tnpn&&(pn=Hn),tn&=~In}if(tn=pn,tn=es()-tn,tn=(120>tn?120:480>tn?480:1080>tn?1080:1920>tn?1920:3e3>tn?3e3:4320>tn?4320:1960*H0(tn/1960))-tn,10Bt?16:Bt,ku===null)var tn=!1;else{if(Bt=ku,ku=null,sm=0,Ro&6)throw Error(at(331));var pn=Ro;for(Ro|=4,Yr=Bt.current;Yr!==null;){var In=Yr,Hn=In.child;if(Yr.flags&16){var rr=In.deletions;if(rr!==null){for(var vr=0;vres()-wy?hu(Bt,0):by|=Gt),po(Bt,Dt)}function _0(Bt,Dt){Dt===0&&(Bt.mode&1?(Dt=$o,$o<<=1,!($o&130023424)&&($o=4194304)):Dt=1);var Gt=Os();Bt=$p(Bt,Dt),Bt!==null&&(Zo(Bt,Dt,Gt),po(Bt,Gt))}function zu(Bt){var Dt=Bt.memoizedState,Gt=0;Dt!==null&&(Gt=Dt.retryLane),_0(Bt,Gt)}function x0(Bt,Dt){var Gt=0;switch(Bt.tag){case 13:var tn=Bt.stateNode,pn=Bt.memoizedState;pn!==null&&(Gt=pn.retryLane);break;case 19:tn=Bt.stateNode;break;default:throw Error(at(314))}tn!==null&&tn.delete(Dt),_0(Bt,Gt)}var Ay;Ay=function(Bt,Dt,Gt){if(Bt!==null)if(Bt.memoizedProps!==Dt.pendingProps||br.current)Qs=!0;else{if(!(Bt.lanes&Gt)&&!(Dt.flags&128))return Qs=!1,U0(Bt,Dt,Gt);Qs=!!(Bt.flags&131072)}else Qs=!1,_a&&Dt.flags&1048576&&Dy(Dt,Fp,Dt.index);switch(Dt.lanes=0,Dt.tag){case 2:var tn=Dt.type;Bt!==null&&(Bt.alternate=null,Dt.alternate=null,Dt.flags|=2),Bt=Dt.pendingProps;var pn=ro(Dt,dr.current);ws(Dt,Gt),pn=Yo(null,Dt,tn,Bt,pn,Gt);var In=Qm();return Dt.flags|=1,typeof pn=="object"&&pn!==null&&typeof pn.render=="function"&&pn.$$typeof===void 0?(Dt.tag=1,Dt.memoizedState=null,Dt.updateQueue=null,ao(tn)?(In=!0,bo(Dt)):In=!1,Dt.memoizedState=pn.state!==null&&pn.state!==void 0?pn.state:null,qm(Dt),pn.updater=bm,Dt.stateNode=pn,pn._reactInternals=Dt,sp(Dt,tn,Bt,Gt),Dt=oy(null,Dt,tn,!0,In,Gt)):(Dt.tag=0,_a&&In&&wm(Dt),us(null,Dt,pn,Gt),Dt=Dt.child),Dt;case 16:tn=Dt.elementType;e:{switch(Bt!==null&&(Bt.alternate=null,Dt.alternate=null,Dt.flags|=2),Bt=Dt.pendingProps,pn=tn._init,tn=pn(tn._payload),Dt.type=tn,pn=Dt.tag=k0(tn),Bt=rs(tn,Bt),pn){case 0:Dt=Hl(null,Dt,tn,Bt,Gt);break e;case 1:Dt=a0(null,Dt,tn,Bt,Gt);break e;case 11:Dt=e0(null,Dt,tn,Bt,Gt);break e;case 14:Dt=n0(null,Dt,tn,rs(tn.type,Bt),Gt);break e}throw Error(at(306,tn,""))}return Dt;case 0:return tn=Dt.type,pn=Dt.pendingProps,pn=Dt.elementType===tn?pn:rs(tn,pn),Hl(Bt,Dt,tn,pn,Gt);case 1:return tn=Dt.type,pn=Dt.pendingProps,pn=Dt.elementType===tn?pn:rs(tn,pn),a0(Bt,Dt,tn,pn,Gt);case 3:e:{if(s0(Dt),Bt===null)throw Error(at(387));tn=Dt.pendingProps,In=Dt.memoizedState,pn=In.element,Ym(Bt,Dt),Nl(Dt,tn,null,Gt);var Hn=Dt.memoizedState;if(tn=Hn.element,Tn&&In.isDehydrated)if(In={element:tn,isDehydrated:!1,cache:Hn.cache,transitions:Hn.transitions},Dt.updateQueue.baseState=In,Dt.memoizedState=In,Dt.flags&256){pn=Error(at(423)),Dt=l0(Bt,Dt,tn,Gt,pn);break e}else if(tn!==pn){pn=Error(at(424)),Dt=l0(Bt,Dt,tn,Gt,pn);break e}else for(Tn&&(Cs=Dn(Dt.stateNode.containerInfo),Hs=Dt,_a=!0,Wl=null,cp=!1),Gt=Uy(Dt,null,tn,Gt),Dt.child=Gt;Gt;)Gt.flags=Gt.flags&-3|4096,Gt=Gt.sibling;else{if(up(),tn===pn){Dt=ks(Bt,Dt,Gt);break e}us(Bt,Dt,tn,Gt)}Dt=Dt.child}return Dt;case 5:return zy(Dt),Bt===null&&Zm(Dt),tn=Dt.type,pn=Dt.pendingProps,In=Bt!==null?Bt.memoizedProps:null,Hn=pn.children,nn(tn,pn)?Hn=null:In!==null&&nn(tn,In)&&(Dt.flags|=32),o0(Bt,Dt),us(Bt,Dt,Hn,Gt),Dt.child;case 6:return Bt===null&&Zm(Dt),null;case 13:return c0(Bt,Dt,Gt);case 4:return Jm(Dt,Dt.stateNode.containerInfo),tn=Dt.pendingProps,Bt===null?Dt.child=dp(Dt,null,tn,Gt):us(Bt,Dt,tn,Gt),Dt.child;case 11:return tn=Dt.type,pn=Dt.pendingProps,pn=Dt.elementType===tn?pn:rs(tn,pn),e0(Bt,Dt,tn,pn,Gt);case 7:return us(Bt,Dt,Dt.pendingProps,Gt),Dt.child;case 8:return us(Bt,Dt,Dt.pendingProps.children,Gt),Dt.child;case 12:return us(Bt,Dt,Dt.pendingProps.children,Gt),Dt.child;case 10:e:{if(tn=Dt.type._context,pn=Dt.pendingProps,In=Dt.memoizedProps,Hn=pn.value,Dp(Dt,tn,Hn),In!==null)if(Zs(In.value,Hn)){if(In.children===pn.children&&!br.current){Dt=ks(Bt,Dt,Gt);break e}}else for(In=Dt.child,In!==null&&(In.return=Dt);In!==null;){var rr=In.dependencies;if(rr!==null){Hn=In.child;for(var vr=rr.firstContext;vr!==null;){if(vr.context===tn){if(In.tag===1){vr=Ps(-1,Gt&-Gt),vr.tag=2;var Ur=In.updateQueue;if(Ur!==null){Ur=Ur.shared;var io=Ur.pending;io===null?vr.next=vr:(vr.next=io.next,io.next=vr),Ur.pending=vr}}In.lanes|=Gt,vr=In.alternate,vr!==null&&(vr.lanes|=Gt),cs(In.return,Gt,Dt),rr.lanes|=Gt;break}vr=vr.next}}else if(In.tag===10)Hn=In.type===Dt.type?null:In.child;else if(In.tag===18){if(Hn=In.return,Hn===null)throw Error(at(341));Hn.lanes|=Gt,rr=Hn.alternate,rr!==null&&(rr.lanes|=Gt),cs(Hn,Gt,Dt),Hn=In.sibling}else Hn=In.child;if(Hn!==null)Hn.return=In;else for(Hn=In;Hn!==null;){if(Hn===Dt){Hn=null;break}if(In=Hn.sibling,In!==null){In.return=Hn.return,Hn=In;break}Hn=Hn.return}In=Hn}us(Bt,Dt,pn.children,Gt),Dt=Dt.child}return Dt;case 9:return pn=Dt.type,tn=Dt.pendingProps.children,ws(Dt,Gt),pn=Do(pn),tn=tn(pn),Dt.flags|=1,us(Bt,Dt,tn,Gt),Dt.child;case 14:return tn=Dt.type,pn=rs(tn,Dt.pendingProps),pn=rs(tn.type,pn),n0(Bt,Dt,tn,pn,Gt);case 15:return r0(Bt,Dt,Dt.type,Dt.pendingProps,Gt);case 17:return tn=Dt.type,pn=Dt.pendingProps,pn=Dt.elementType===tn?pn:rs(tn,pn),Bt!==null&&(Bt.alternate=null,Dt.alternate=null,Dt.flags|=2),Dt.tag=1,ao(tn)?(Bt=!0,bo(Dt)):Bt=!1,ws(Dt,Gt),jy(Dt,tn,pn),sp(Dt,tn,pn,Gt),oy(null,Dt,tn,!0,Bt,Gt);case 19:return d0(Bt,Dt,Gt);case 22:return i0(Bt,Dt,Gt)}throw Error(at(156,Dt.tag))};function Lm(Bt,Dt){return tu(Bt,Dt)}function G0(Bt,Dt,Gt,tn){this.tag=Bt,this.key=Gt,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=Dt,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=tn,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pl(Bt,Dt,Gt,tn){return new G0(Bt,Dt,Gt,tn)}function Cy(Bt){return Bt=Bt.prototype,!(!Bt||!Bt.isReactComponent)}function k0(Bt){if(typeof Bt=="function")return Cy(Bt)?1:0;if(Bt!=null){if(Bt=Bt.$$typeof,Bt===gt)return 11;if(Bt===wt)return 14}return 2}function Su(Bt,Dt){var Gt=Bt.alternate;return Gt===null?(Gt=Pl(Bt.tag,Dt,Bt.key,Bt.mode),Gt.elementType=Bt.elementType,Gt.type=Bt.type,Gt.stateNode=Bt.stateNode,Gt.alternate=Bt,Bt.alternate=Gt):(Gt.pendingProps=Dt,Gt.type=Bt.type,Gt.flags=0,Gt.subtreeFlags=0,Gt.deletions=null),Gt.flags=Bt.flags&14680064,Gt.childLanes=Bt.childLanes,Gt.lanes=Bt.lanes,Gt.child=Bt.child,Gt.memoizedProps=Bt.memoizedProps,Gt.memoizedState=Bt.memoizedState,Gt.updateQueue=Bt.updateQueue,Dt=Bt.dependencies,Gt.dependencies=Dt===null?null:{lanes:Dt.lanes,firstContext:Dt.firstContext},Gt.sibling=Bt.sibling,Gt.index=Bt.index,Gt.ref=Bt.ref,Gt}function Nm(Bt,Dt,Gt,tn,pn,In){var Hn=2;if(tn=Bt,typeof Bt=="function")Cy(Bt)&&(Hn=1);else if(typeof Bt=="string")Hn=5;else e:switch(Bt){case ut:return Wu(Gt.children,pn,In,Dt);case ht:Hn=8,pn|=8;break;case dt:return Bt=Pl(12,Gt,Dt,pn|2),Bt.elementType=dt,Bt.lanes=In,Bt;case yt:return Bt=Pl(13,Gt,Dt,pn),Bt.elementType=yt,Bt.lanes=In,Bt;case bt:return Bt=Pl(19,Gt,Dt,pn),Bt.elementType=bt,Bt.lanes=In,Bt;case kt:return um(Gt,pn,In,Dt);default:if(typeof Bt=="object"&&Bt!==null)switch(Bt.$$typeof){case pt:Hn=10;break e;case mt:Hn=9;break e;case gt:Hn=11;break e;case wt:Hn=14;break e;case vt:Hn=16,tn=null;break e}throw Error(at(130,Bt==null?Bt:typeof Bt,""))}return Dt=Pl(Hn,Gt,Dt,pn),Dt.elementType=Bt,Dt.type=tn,Dt.lanes=In,Dt}function Wu(Bt,Dt,Gt,tn){return Bt=Pl(7,Bt,tn,Dt),Bt.lanes=Gt,Bt}function um(Bt,Dt,Gt,tn){return Bt=Pl(22,Bt,tn,Dt),Bt.elementType=kt,Bt.lanes=Gt,Bt.stateNode={},Bt}function Ls(Bt,Dt,Gt){return Bt=Pl(6,Bt,null,Dt),Bt.lanes=Gt,Bt}function Ml(Bt,Dt,Gt){return Dt=Pl(4,Bt.children!==null?Bt.children:[],Bt.key,Dt),Dt.lanes=Gt,Dt.stateNode={containerInfo:Bt.containerInfo,pendingChildren:null,implementation:Bt.implementation},Dt}function q0(Bt,Dt,Gt,tn,pn){this.tag=Dt,this.containerInfo=Bt,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=_n,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=$a(0),this.expirationTimes=$a(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$a(0),this.identifierPrefix=tn,this.onRecoverableError=pn,Tn&&(this.mutableSourceEagerHydrationData=null)}function S0(Bt,Dt,Gt,tn,pn,In,Hn,rr,vr){return Bt=new q0(Bt,Dt,Gt,rr,vr),Dt===1?(Dt=1,In===!0&&(Dt|=8)):Dt=0,In=Pl(3,null,null,Dt),Bt.current=In,In.stateNode=Bt,In.memoizedState={element:tn,isDehydrated:Gt,cache:null,transitions:null},qm(In),Bt}function hm(Bt){if(!Bt)return Sr;Bt=Bt._reactInternals;e:{if(Mt(Bt)!==Bt||Bt.tag!==1)throw Error(at(170));var Dt=Bt;do{switch(Dt.tag){case 3:Dt=Dt.stateNode.context;break e;case 1:if(ao(Dt.type)){Dt=Dt.stateNode.__reactInternalMemoizedMergedChildContext;break e}}Dt=Dt.return}while(Dt!==null);throw Error(at(171))}if(Bt.tag===1){var Gt=Bt.type;if(ao(Gt))return Gn(Bt,Gt,Dt)}return Dt}function ep(Bt){var Dt=Bt._reactInternals;if(Dt===void 0)throw typeof Bt.render=="function"?Error(at(188)):(Bt=Object.keys(Bt).join(","),Error(at(268,Bt)));return Bt=Rt(Dt),Bt===null?null:Bt.stateNode}function $y(Bt,Dt){if(Bt=Bt.memoizedState,Bt!==null&&Bt.dehydrated!==null){var Gt=Bt.retryLane;Bt.retryLane=Gt!==0&&Gt=Ur&&In>=To&&pn<=io&&Hn<=ho){Bt.splice(Dt,1);break}else if(tn!==Ur||Gt.width!==vr.width||hoHn){if(!(In!==To||Gt.height!==vr.height||iopn)){Ur>tn&&(vr.width+=Ur-tn,vr.x=tn),ioIn&&(vr.height+=To-In,vr.y=In),hoGt&&(Gt=Hn)),Hn ")+` No matching component was found for: - `)+Bt.join(" > ")}return null},nt.getPublicRootInstance=function(Bt){if(Bt=Bt.current,!Bt.child)return null;switch(Bt.child.tag){case 5:return Ot(Bt.child.stateNode);default:return Bt.child.stateNode}},nt.injectIntoDevTools=function(Bt){if(Bt={bundleType:Bt.bundleType,version:Bt.version,rendererPackageName:Bt.rendererPackageName,rendererConfig:Bt.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:st.ReactCurrentDispatcher,findHostInstanceByFiber:Y0,findFiberByHostInstance:Bt.findFiberByHostInstance||E0,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")Bt=!1;else{var Dt=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(Dt.isDisabled||!Dt.supportsFiber)Bt=!0;else{try{Iu=Dt.inject(Bt),Xs=Dt}catch{}Bt=!!Dt.checkDCE}}return Bt},nt.isAlreadyRendering=function(){return!1},nt.observeVisibleRects=function(Bt,Dt,Gt,tn){if(!Cn)throw Error(at(363));Bt=gy(Bt,Dt);var pn=hn(Bt,Gt,tn).disconnect;return{disconnect:function(){pn()}}},nt.registerMutableSourceForHydration=function(Bt,Dt){var Gt=Dt._getVersion;Gt=Gt(Dt._source),Bt.mutableSourceEagerHydrationData==null?Bt.mutableSourceEagerHydrationData=[Dt,Gt]:Bt.mutableSourceEagerHydrationData.push(Dt,Gt)},nt.runWithPriority=function(Bt,Dt){var Gt=No;try{return No=Bt,Dt()}finally{No=Gt}},nt.shouldError=function(){return null},nt.shouldSuspend=function(){return!1},nt.updateContainer=function(Bt,Dt,Gt,tn){var pn=Dt.current,In=Os(),Hn=uu(pn);return Gt=hm(Gt),Dt.context===null?Dt.context=Gt:Dt.pendingContext=Gt,Dt=Ps(In,Hn),Dt.payload={element:Bt},tn=tn===void 0?null:tn,tn!==null&&(Dt.callback=tn),Ll(pn,Dt),Bt=$l(pn,Hn,In),Bt!==null&&ap(Bt,pn,Hn),Hn},nt};reactReconciler.exports=reactReconciler_production_min;var reactReconcilerExports=reactReconciler.exports;const Reconciler=getDefaultExportFromCjs(reactReconcilerExports),isPromise=tt=>typeof tt=="object"&&typeof tt.then=="function",globalCache$1=[];function shallowEqualArrays$1(tt,et,nt=(rt,it)=>rt===it){if(tt===et)return!0;if(!tt||!et)return!1;const rt=tt.length;if(et.length!==rt)return!1;for(let it=0;it0&&(ot.timeout&&clearTimeout(ot.timeout),ot.timeout=setTimeout(ot.remove,rt.lifespan)),ot.response;if(!nt)throw ot.promise}const it={keys:et,equal:rt.equal,remove:()=>{const ot=globalCache$1.indexOf(it);ot!==-1&&globalCache$1.splice(ot,1)},promise:(isPromise(tt)?tt:tt(...et)).then(ot=>{it.response=ot,rt.lifespan&&rt.lifespan>0&&(it.timeout=setTimeout(it.remove,rt.lifespan))}).catch(ot=>it.error=ot)};if(globalCache$1.push(it),!nt)throw it.promise}const suspend$1=(tt,et,nt)=>query$1(tt,et,!1,nt),preload=(tt,et,nt)=>void query$1(tt,et,!0,nt),clear=tt=>{if(tt===void 0||tt.length===0)globalCache$1.splice(0,globalCache$1.length);else{const et=globalCache$1.find(nt=>shallowEqualArrays$1(tt,nt.keys,nt.equal));et&&et.remove()}},catalogue={},extend$2=tt=>void Object.assign(catalogue,tt);function createRenderer(tt,et){function nt(ut,{args:ht=[],attach:dt,...pt},mt){let gt=`${ut[0].toUpperCase()}${ut.slice(1)}`,yt;if(ut==="primitive"){if(pt.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const bt=pt.object;yt=prepare(bt,{type:ut,root:mt,attach:dt,primitive:!0})}else{const bt=catalogue[gt];if(!bt)throw new Error(`R3F: ${gt} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(ht))throw new Error("R3F: The args prop must be an array!");yt=prepare(new bt(...ht),{type:ut,root:mt,attach:dt,memoizedProps:{args:ht}})}return yt.__r3f.attach===void 0&&(yt instanceof BufferGeometry?yt.__r3f.attach="geometry":yt instanceof Material&&(yt.__r3f.attach="material")),gt!=="inject"&&applyProps$1(yt,pt),yt}function rt(ut,ht){let dt=!1;if(ht){var pt,mt;(pt=ht.__r3f)!=null&&pt.attach?attach(ut,ht,ht.__r3f.attach):ht.isObject3D&&ut.isObject3D&&(ut.add(ht),dt=!0),dt||(mt=ut.__r3f)==null||mt.objects.push(ht),ht.__r3f||prepare(ht,{}),ht.__r3f.parent=ut,updateInstance(ht),invalidateInstance(ht)}}function it(ut,ht,dt){let pt=!1;if(ht){var mt,gt;if((mt=ht.__r3f)!=null&&mt.attach)attach(ut,ht,ht.__r3f.attach);else if(ht.isObject3D&&ut.isObject3D){ht.parent=ut,ht.dispatchEvent({type:"added"});const yt=ut.children.filter(wt=>wt!==ht),bt=yt.indexOf(dt);ut.children=[...yt.slice(0,bt),ht,...yt.slice(bt)],pt=!0}pt||(gt=ut.__r3f)==null||gt.objects.push(ht),ht.__r3f||prepare(ht,{}),ht.__r3f.parent=ut,updateInstance(ht),invalidateInstance(ht)}}function ot(ut,ht,dt=!1){ut&&[...ut].forEach(pt=>at(ht,pt,dt))}function at(ut,ht,dt){if(ht){var pt,mt,gt;if(ht.__r3f&&(ht.__r3f.parent=null),(pt=ut.__r3f)!=null&&pt.objects&&(ut.__r3f.objects=ut.__r3f.objects.filter(kt=>kt!==ht)),(mt=ht.__r3f)!=null&&mt.attach)detach(ut,ht,ht.__r3f.attach);else if(ht.isObject3D&&ut.isObject3D){var yt;ut.remove(ht),(yt=ht.__r3f)!=null&&yt.root&&removeInteractivity(ht.__r3f.root,ht)}const wt=(gt=ht.__r3f)==null?void 0:gt.primitive,vt=dt===void 0?ht.dispose!==null&&!wt:dt;if(!wt){var bt;ot((bt=ht.__r3f)==null?void 0:bt.objects,ht,vt),ot(ht.children,ht,vt)}delete ht.__r3f,vt&&ht.dispose&&ht.type!=="Scene"&&schedulerExports.unstable_scheduleCallback(schedulerExports.unstable_IdlePriority,()=>{try{ht.dispose()}catch{}}),invalidateInstance(ut)}}function st(ut,ht,dt,pt){var mt;const gt=(mt=ut.__r3f)==null?void 0:mt.parent;if(!gt)return;const yt=nt(ht,dt,ut.__r3f.root);if(ut.children){for(const bt of ut.children)bt.__r3f&&rt(yt,bt);ut.children=ut.children.filter(bt=>!bt.__r3f)}ut.__r3f.objects.forEach(bt=>rt(yt,bt)),ut.__r3f.objects=[],ut.__r3f.autoRemovedBeforeAppend||at(gt,ut),yt.parent&&(yt.__r3f.autoRemovedBeforeAppend=!0),rt(gt,yt),yt.raycast&&yt.__r3f.eventCount&&yt.__r3f.root.getState().internal.interaction.push(yt),[pt,pt.alternate].forEach(bt=>{bt!==null&&(bt.stateNode=yt,bt.ref&&(typeof bt.ref=="function"?bt.ref(yt):bt.ref.current=yt))})}const lt=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:Reconciler({createInstance:nt,removeChild:at,appendChild:rt,appendInitialChild:rt,insertBefore:it,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(ut,ht)=>{if(!ht)return;const dt=ut.getState().scene;dt.__r3f&&(dt.__r3f.root=ut,rt(dt,ht))},removeChildFromContainer:(ut,ht)=>{ht&&at(ut.getState().scene,ht)},insertInContainerBefore:(ut,ht,dt)=>{if(!ht||!dt)return;const pt=ut.getState().scene;pt.__r3f&&it(pt,ht,dt)},getRootHostContext:()=>null,getChildHostContext:ut=>ut,finalizeInitialChildren(ut){var ht;return!!((ht=ut==null?void 0:ut.__r3f)!=null?ht:{}).handlers},prepareUpdate(ut,ht,dt,pt){var mt;if(((mt=ut==null?void 0:ut.__r3f)!=null?mt:{}).primitive&&pt.object&&pt.object!==ut)return[!0];{const{args:yt=[],children:bt,...wt}=pt,{args:vt=[],children:kt,...St}=dt;if(!Array.isArray(yt))throw new Error("R3F: the args prop must be an array!");if(yt.some((At,Et)=>At!==vt[Et]))return[!0];const Tt=diffProps(ut,wt,St,!0);return Tt.changes.length?[!1,Tt]:null}},commitUpdate(ut,[ht,dt],pt,mt,gt,yt){ht?st(ut,pt,gt,yt):applyProps$1(ut,dt)},commitMount(ut,ht,dt,pt){var mt;const gt=(mt=ut.__r3f)!=null?mt:{};ut.raycast&>.handlers&>.eventCount&&ut.__r3f.root.getState().internal.interaction.push(ut)},getPublicInstance:ut=>ut,prepareForCommit:()=>null,preparePortalMount:ut=>prepare(ut.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(ut){var ht;const{attach:dt,parent:pt}=(ht=ut.__r3f)!=null?ht:{};dt&&pt&&detach(pt,ut,dt),ut.isObject3D&&(ut.visible=!1),invalidateInstance(ut)},unhideInstance(ut,ht){var dt;const{attach:pt,parent:mt}=(dt=ut.__r3f)!=null?dt:{};pt&&mt&&attach(mt,ut,pt),(ut.isObject3D&&ht.visible==null||ht.visible)&&(ut.visible=!0),invalidateInstance(ut)},createTextInstance:lt,hideTextInstance:lt,unhideTextInstance:lt,getCurrentEventPriority:()=>et?et():constantsExports.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&is$1.fun(performance.now)?performance.now:is$1.fun(Date.now)?Date.now:()=>0,scheduleTimeout:is$1.fun(setTimeout)?setTimeout:void 0,cancelTimeout:is$1.fun(clearTimeout)?clearTimeout:void 0}),applyProps:applyProps$1}}var _window$document,_window$navigator;const hasColorSpace=tt=>"colorSpace"in tt||"outputColorSpace"in tt,getColorManagement=()=>{var tt;return(tt=catalogue.ColorManagement)!=null?tt:null},isOrthographicCamera$1=tt=>tt&&tt.isOrthographicCamera,isRef=tt=>tt&&tt.hasOwnProperty("current"),useIsomorphicLayoutEffect$1=typeof window<"u"&&((_window$document=window.document)!=null&&_window$document.createElement||((_window$navigator=window.navigator)==null?void 0:_window$navigator.product)==="ReactNative")?reactExports.useLayoutEffect:reactExports.useEffect;function useMutableCallback(tt){const et=reactExports.useRef(tt);return useIsomorphicLayoutEffect$1(()=>void(et.current=tt),[tt]),et}function Block({set:tt}){return useIsomorphicLayoutEffect$1(()=>(tt(new Promise(()=>null)),()=>tt(!1)),[tt]),null}class ErrorBoundary extends reactExports.Component{constructor(...et){super(...et),this.state={error:!1}}componentDidCatch(et){this.props.set(et)}render(){return this.state.error?null:this.props.children}}ErrorBoundary.getDerivedStateFromError=()=>({error:!0});const DEFAULT="__default",DEFAULTS=new Map,isDiffSet=tt=>tt&&!!tt.memoized&&!!tt.changes;function calculateDpr(tt){var et;const nt=typeof window<"u"?(et=window.devicePixelRatio)!=null?et:2:1;return Array.isArray(tt)?Math.min(Math.max(tt[0],nt),tt[1]):tt}const getRootState=tt=>{var et;return(et=tt.__r3f)==null?void 0:et.root.getState()},is$1={obj:tt=>tt===Object(tt)&&!is$1.arr(tt)&&typeof tt!="function",fun:tt=>typeof tt=="function",str:tt=>typeof tt=="string",num:tt=>typeof tt=="number",boo:tt=>typeof tt=="boolean",und:tt=>tt===void 0,arr:tt=>Array.isArray(tt),equ(tt,et,{arrays:nt="shallow",objects:rt="reference",strict:it=!0}={}){if(typeof tt!=typeof et||!!tt!=!!et)return!1;if(is$1.str(tt)||is$1.num(tt))return tt===et;const ot=is$1.obj(tt);if(ot&&rt==="reference")return tt===et;const at=is$1.arr(tt);if(at&&nt==="reference")return tt===et;if((at||ot)&&tt===et)return!0;let st;for(st in tt)if(!(st in et))return!1;if(ot&&nt==="shallow"&&rt==="shallow"){for(st in it?et:tt)if(!is$1.equ(tt[st],et[st],{strict:it,objects:"reference"}))return!1}else for(st in it?et:tt)if(tt[st]!==et[st])return!1;if(is$1.und(st)){if(at&&tt.length===0&&et.length===0||ot&&Object.keys(tt).length===0&&Object.keys(et).length===0)return!0;if(tt!==et)return!1}return!0}};function buildGraph(tt){const et={nodes:{},materials:{}};return tt&&tt.traverse(nt=>{nt.name&&(et.nodes[nt.name]=nt),nt.material&&!et.materials[nt.material.name]&&(et.materials[nt.material.name]=nt.material)}),et}function dispose(tt){tt.dispose&&tt.type!=="Scene"&&tt.dispose();for(const et in tt)et.dispose==null||et.dispose(),delete tt[et]}function prepare(tt,et){const nt=tt;return nt.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...et},tt}function resolve(tt,et){let nt=tt;if(et.includes("-")){const rt=et.split("-"),it=rt.pop();return nt=rt.reduce((ot,at)=>ot[at],tt),{target:nt,key:it}}else return{target:nt,key:et}}const INDEX_REGEX=/-\d+$/;function attach(tt,et,nt){if(is$1.str(nt)){if(INDEX_REGEX.test(nt)){const ot=nt.replace(INDEX_REGEX,""),{target:at,key:st}=resolve(tt,ot);Array.isArray(at[st])||(at[st]=[])}const{target:rt,key:it}=resolve(tt,nt);et.__r3f.previousAttach=rt[it],rt[it]=et}else et.__r3f.previousAttach=nt(tt,et)}function detach(tt,et,nt){var rt,it;if(is$1.str(nt)){const{target:ot,key:at}=resolve(tt,nt),st=et.__r3f.previousAttach;st===void 0?delete ot[at]:ot[at]=st}else(rt=et.__r3f)==null||rt.previousAttach==null||rt.previousAttach(tt,et);(it=et.__r3f)==null||delete it.previousAttach}function diffProps(tt,{children:et,key:nt,ref:rt,...it},{children:ot,key:at,ref:st,...lt}={},ct=!1){var ut;const ht=(ut=tt==null?void 0:tt.__r3f)!=null?ut:{},dt=Object.entries(it),pt=[];if(ct){const gt=Object.keys(lt);for(let yt=0;yt{var bt;if((bt=tt.__r3f)!=null&&bt.primitive&>==="object"||is$1.equ(yt,lt[gt]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(gt))return pt.push([gt,yt,!0,[]]);let wt=[];gt.includes("-")&&(wt=gt.split("-")),pt.push([gt,yt,!1,wt]);for(const vt in it){const kt=it[vt];vt.startsWith(`${gt}-`)&&pt.push([vt,kt,!1,vt.split("-")])}});const mt={...it};return ht.memoizedProps&&ht.memoizedProps.args&&(mt.args=ht.memoizedProps.args),ht.memoizedProps&&ht.memoizedProps.attach&&(mt.attach=ht.memoizedProps.attach),{memoized:mt,changes:pt}}function applyProps$1(tt,et){var nt,rt,it;const ot=(nt=tt.__r3f)!=null?nt:{},at=ot.root,st=(rt=at==null||at.getState==null?void 0:at.getState())!=null?rt:{},{memoized:lt,changes:ct}=isDiffSet(et)?et:diffProps(tt,et),ut=ot.eventCount;tt.__r3f&&(tt.__r3f.memoizedProps=lt);for(let dt=0;dtvt[kt],tt),!(wt&&wt.set))){const[vt,...kt]=yt.reverse();bt=kt.reverse().reduce((St,Tt)=>St[Tt],tt),pt=vt}if(mt===DEFAULT+"remove")if(bt.constructor){let vt=DEFAULTS.get(bt.constructor);vt||(vt=new bt.constructor,DEFAULTS.set(bt.constructor,vt)),mt=vt[pt]}else mt=0;if(gt)mt?ot.handlers[pt]=mt:delete ot.handlers[pt],ot.eventCount=Object.keys(ot.handlers).length;else if(wt&&wt.set&&(wt.copy||wt instanceof Layers)){if(Array.isArray(mt))wt.fromArray?wt.fromArray(mt):wt.set(...mt);else if(wt.copy&&mt&&mt.constructor&&wt.constructor===mt.constructor)wt.copy(mt);else if(mt!==void 0){const vt=wt instanceof Color$1;!vt&&wt.setScalar?wt.setScalar(mt):wt instanceof Layers&&mt instanceof Layers?wt.mask=mt.mask:wt.set(mt),!getColorManagement()&&!st.linear&&vt&&wt.convertSRGBToLinear()}}else if(bt[pt]=mt,bt[pt]instanceof Texture&&bt[pt].format===RGBAFormat&&bt[pt].type===UnsignedByteType){const vt=bt[pt];hasColorSpace(vt)&&hasColorSpace(st.gl)?vt.colorSpace=st.gl.outputColorSpace:vt.encoding=st.gl.outputEncoding}invalidateInstance(tt)}if(ot.parent&&st.internal&&tt.raycast&&ut!==ot.eventCount){const dt=st.internal.interaction.indexOf(tt);dt>-1&&st.internal.interaction.splice(dt,1),ot.eventCount&&st.internal.interaction.push(tt)}return!(ct.length===1&&ct[0][0]==="onUpdate")&&ct.length&&(it=tt.__r3f)!=null&&it.parent&&updateInstance(tt),tt}function invalidateInstance(tt){var et,nt;const rt=(et=tt.__r3f)==null||(nt=et.root)==null||nt.getState==null?void 0:nt.getState();rt&&rt.internal.frames===0&&rt.invalidate()}function updateInstance(tt){tt.onUpdate==null||tt.onUpdate(tt)}function updateCamera(tt,et){tt.manual||(isOrthographicCamera$1(tt)?(tt.left=et.width/-2,tt.right=et.width/2,tt.top=et.height/2,tt.bottom=et.height/-2):tt.aspect=et.width/et.height,tt.updateProjectionMatrix(),tt.updateMatrixWorld())}function makeId(tt){return(tt.eventObject||tt.object).uuid+"/"+tt.index+tt.instanceId}function getEventPriority(){var tt;const et=typeof self<"u"&&self||typeof window<"u"&&window;if(!et)return constantsExports.DefaultEventPriority;switch((tt=et.event)==null?void 0:tt.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return constantsExports.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return constantsExports.ContinuousEventPriority;default:return constantsExports.DefaultEventPriority}}function releaseInternalPointerCapture(tt,et,nt,rt){const it=nt.get(et);it&&(nt.delete(et),nt.size===0&&(tt.delete(rt),it.target.releasePointerCapture(rt)))}function removeInteractivity(tt,et){const{internal:nt}=tt.getState();nt.interaction=nt.interaction.filter(rt=>rt!==et),nt.initialHits=nt.initialHits.filter(rt=>rt!==et),nt.hovered.forEach((rt,it)=>{(rt.eventObject===et||rt.object===et)&&nt.hovered.delete(it)}),nt.capturedMap.forEach((rt,it)=>{releaseInternalPointerCapture(nt.capturedMap,et,rt,it)})}function createEvents(tt){function et(lt){const{internal:ct}=tt.getState(),ut=lt.offsetX-ct.initialClick[0],ht=lt.offsetY-ct.initialClick[1];return Math.round(Math.sqrt(ut*ut+ht*ht))}function nt(lt){return lt.filter(ct=>["Move","Over","Enter","Out","Leave"].some(ut=>{var ht;return(ht=ct.__r3f)==null?void 0:ht.handlers["onPointer"+ut]}))}function rt(lt,ct){const ut=tt.getState(),ht=new Set,dt=[],pt=ct?ct(ut.internal.interaction):ut.internal.interaction;for(let bt=0;bt{const vt=getRootState(bt.object),kt=getRootState(wt.object);return!vt||!kt?bt.distance-wt.distance:kt.events.priority-vt.events.priority||bt.distance-wt.distance}).filter(bt=>{const wt=makeId(bt);return ht.has(wt)?!1:(ht.add(wt),!0)});ut.events.filter&&(gt=ut.events.filter(gt,ut));for(const bt of gt){let wt=bt.object;for(;wt;){var yt;(yt=wt.__r3f)!=null&&yt.eventCount&&dt.push({...bt,eventObject:wt}),wt=wt.parent}}if("pointerId"in lt&&ut.internal.capturedMap.has(lt.pointerId))for(let bt of ut.internal.capturedMap.get(lt.pointerId).values())ht.has(makeId(bt.intersection))||dt.push(bt.intersection);return dt}function it(lt,ct,ut,ht){const dt=tt.getState();if(lt.length){const pt={stopped:!1};for(const mt of lt){const gt=getRootState(mt.object)||dt,{raycaster:yt,pointer:bt,camera:wt,internal:vt}=gt,kt=new Vector3(bt.x,bt.y,0).unproject(wt),St=Lt=>{var jt,Rt;return(jt=(Rt=vt.capturedMap.get(Lt))==null?void 0:Rt.has(mt.eventObject))!=null?jt:!1},Tt=Lt=>{const jt={intersection:mt,target:ct.target};vt.capturedMap.has(Lt)?vt.capturedMap.get(Lt).set(mt.eventObject,jt):vt.capturedMap.set(Lt,new Map([[mt.eventObject,jt]])),ct.target.setPointerCapture(Lt)},At=Lt=>{const jt=vt.capturedMap.get(Lt);jt&&releaseInternalPointerCapture(vt.capturedMap,mt.eventObject,jt,Lt)};let Et={};for(let Lt in ct){let jt=ct[Lt];typeof jt!="function"&&(Et[Lt]=jt)}let Mt={...mt,...Et,pointer:bt,intersections:lt,stopped:pt.stopped,delta:ut,unprojectedPoint:kt,ray:yt.ray,camera:wt,stopPropagation(){const Lt="pointerId"in ct&&vt.capturedMap.get(ct.pointerId);if((!Lt||Lt.has(mt.eventObject))&&(Mt.stopped=pt.stopped=!0,vt.hovered.size&&Array.from(vt.hovered.values()).find(jt=>jt.eventObject===mt.eventObject))){const jt=lt.slice(0,lt.indexOf(mt));ot([...jt,mt])}},target:{hasPointerCapture:St,setPointerCapture:Tt,releasePointerCapture:At},currentTarget:{hasPointerCapture:St,setPointerCapture:Tt,releasePointerCapture:At},nativeEvent:ct};if(ht(Mt),pt.stopped===!0)break}}return lt}function ot(lt){const{internal:ct}=tt.getState();for(const ut of ct.hovered.values())if(!lt.length||!lt.find(ht=>ht.object===ut.object&&ht.index===ut.index&&ht.instanceId===ut.instanceId)){const dt=ut.eventObject.__r3f,pt=dt==null?void 0:dt.handlers;if(ct.hovered.delete(makeId(ut)),dt!=null&&dt.eventCount){const mt={...ut,intersections:lt};pt.onPointerOut==null||pt.onPointerOut(mt),pt.onPointerLeave==null||pt.onPointerLeave(mt)}}}function at(lt,ct){for(let ut=0;utot([]);case"onLostPointerCapture":return ct=>{const{internal:ut}=tt.getState();"pointerId"in ct&&ut.capturedMap.has(ct.pointerId)&&requestAnimationFrame(()=>{ut.capturedMap.has(ct.pointerId)&&(ut.capturedMap.delete(ct.pointerId),ot([]))})}}return function(ut){const{onPointerMissed:ht,internal:dt}=tt.getState();dt.lastEvent.current=ut;const pt=lt==="onPointerMove",mt=lt==="onClick"||lt==="onContextMenu"||lt==="onDoubleClick",yt=rt(ut,pt?nt:void 0),bt=mt?et(ut):0;lt==="onPointerDown"&&(dt.initialClick=[ut.offsetX,ut.offsetY],dt.initialHits=yt.map(vt=>vt.eventObject)),mt&&!yt.length&&bt<=2&&(at(ut,dt.interaction),ht&&ht(ut)),pt&&ot(yt);function wt(vt){const kt=vt.eventObject,St=kt.__r3f,Tt=St==null?void 0:St.handlers;if(St!=null&&St.eventCount)if(pt){if(Tt.onPointerOver||Tt.onPointerEnter||Tt.onPointerOut||Tt.onPointerLeave){const At=makeId(vt),Et=dt.hovered.get(At);Et?Et.stopped&&vt.stopPropagation():(dt.hovered.set(At,vt),Tt.onPointerOver==null||Tt.onPointerOver(vt),Tt.onPointerEnter==null||Tt.onPointerEnter(vt))}Tt.onPointerMove==null||Tt.onPointerMove(vt)}else{const At=Tt[lt];At?(!mt||dt.initialHits.includes(kt))&&(at(ut,dt.interaction.filter(Et=>!dt.initialHits.includes(Et))),At(vt)):mt&&dt.initialHits.includes(kt)&&at(ut,dt.interaction.filter(Et=>!dt.initialHits.includes(Et)))}}it(yt,ut,bt,wt)}}return{handlePointer:st}}const privateKeys=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],isRenderer=tt=>!!(tt!=null&&tt.render),context$2=reactExports.createContext(null),createStore$1=(tt,et)=>{const nt=create$1((st,lt)=>{const ct=new Vector3,ut=new Vector3,ht=new Vector3;function dt(bt=lt().camera,wt=ut,vt=lt().size){const{width:kt,height:St,top:Tt,left:At}=vt,Et=kt/St;wt instanceof Vector3?ht.copy(wt):ht.set(...wt);const Mt=bt.getWorldPosition(ct).distanceTo(ht);if(isOrthographicCamera$1(bt))return{width:kt/bt.zoom,height:St/bt.zoom,top:Tt,left:At,factor:1,distance:Mt,aspect:Et};{const Lt=bt.fov*Math.PI/180,jt=2*Math.tan(Lt/2)*Mt,Rt=jt*(kt/St);return{width:Rt,height:jt,top:Tt,left:At,factor:kt/Rt,distance:Mt,aspect:Et}}}let pt;const mt=bt=>st(wt=>({performance:{...wt.performance,current:bt}})),gt=new Vector2;return{set:st,get:lt,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(bt=1)=>tt(lt(),bt),advance:(bt,wt)=>et(bt,wt,lt()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new Clock$1,pointer:gt,mouse:gt,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const bt=lt();pt&&clearTimeout(pt),bt.performance.current!==bt.performance.min&&mt(bt.performance.min),pt=setTimeout(()=>mt(lt().performance.max),bt.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:dt},setEvents:bt=>st(wt=>({...wt,events:{...wt.events,...bt}})),setSize:(bt,wt,vt,kt,St)=>{const Tt=lt().camera,At={width:bt,height:wt,top:kt||0,left:St||0,updateStyle:vt};st(Et=>({size:At,viewport:{...Et.viewport,...dt(Tt,ut,At)}}))},setDpr:bt=>st(wt=>{const vt=calculateDpr(bt);return{viewport:{...wt.viewport,dpr:vt,initialDpr:wt.viewport.initialDpr||vt}}}),setFrameloop:(bt="always")=>{const wt=lt().clock;wt.stop(),wt.elapsedTime=0,bt!=="never"&&(wt.start(),wt.elapsedTime=0),st(()=>({frameloop:bt}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:reactExports.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(bt,wt,vt)=>{const kt=lt().internal;return kt.priority=kt.priority+(wt>0?1:0),kt.subscribers.push({ref:bt,priority:wt,store:vt}),kt.subscribers=kt.subscribers.sort((St,Tt)=>St.priority-Tt.priority),()=>{const St=lt().internal;St!=null&&St.subscribers&&(St.priority=St.priority-(wt>0?1:0),St.subscribers=St.subscribers.filter(Tt=>Tt.ref!==bt))}}}}}),rt=nt.getState();let it=rt.size,ot=rt.viewport.dpr,at=rt.camera;return nt.subscribe(()=>{const{camera:st,size:lt,viewport:ct,gl:ut,set:ht}=nt.getState();if(lt!==it||ct.dpr!==ot){var dt;it=lt,ot=ct.dpr,updateCamera(st,lt),ut.setPixelRatio(ct.dpr);const pt=(dt=lt.updateStyle)!=null?dt:typeof HTMLCanvasElement<"u"&&ut.domElement instanceof HTMLCanvasElement;ut.setSize(lt.width,lt.height,pt)}st!==at&&(at=st,ht(pt=>({viewport:{...pt.viewport,...pt.viewport.getCurrentViewport(st)}})))}),nt.subscribe(st=>tt(st)),nt};function createSubs(tt,et){const nt={callback:tt};return et.add(nt),()=>void et.delete(nt)}let i$2,globalEffects=new Set,globalAfterEffects=new Set,globalTailEffects=new Set;const addEffect=tt=>createSubs(tt,globalEffects),addAfterEffect=tt=>createSubs(tt,globalAfterEffects),addTail=tt=>createSubs(tt,globalTailEffects);function run(tt,et){if(tt.size)for(const{callback:nt}of tt.values())nt(et)}function flushGlobalEffects(tt,et){switch(tt){case"before":return run(globalEffects,et);case"after":return run(globalAfterEffects,et);case"tail":return run(globalTailEffects,et)}}let subscribers,subscription;function render$1(tt,et,nt){let rt=et.clock.getDelta();for(et.frameloop==="never"&&typeof tt=="number"&&(rt=tt-et.clock.elapsedTime,et.clock.oldTime=et.clock.elapsedTime,et.clock.elapsedTime=tt),subscribers=et.internal.subscribers,i$2=0;i$20)&&!((ct=it.gl.xr)!=null&&ct.isPresenting)&&(nt+=render$1(lt,it))}if(flushGlobalEffects("after",lt),nt===0)return flushGlobalEffects("tail",lt),et=!1,cancelAnimationFrame(rt)}function at(lt,ct=1){var ut;if(!lt)return tt.forEach(ht=>at(ht.store.getState()),ct);(ut=lt.gl.xr)!=null&&ut.isPresenting||!lt.internal.active||lt.frameloop==="never"||(lt.internal.frames=Math.min(60,lt.internal.frames+ct),et||(et=!0,requestAnimationFrame(ot)))}function st(lt,ct=!0,ut,ht){if(ct&&flushGlobalEffects("before",lt),ut)render$1(lt,ut,ht);else for(const dt of tt.values())render$1(lt,dt.store.getState());ct&&flushGlobalEffects("after",lt)}return{loop:ot,invalidate:at,advance:st}}function useInstanceHandle(tt){const et=reactExports.useRef(null);return useIsomorphicLayoutEffect$1(()=>void(et.current=tt.current.__r3f),[tt]),et}function useStore(){const tt=reactExports.useContext(context$2);if(!tt)throw new Error("R3F: Hooks can only be used within the Canvas component!");return tt}function useThree(tt=nt=>nt,et){return useStore()(tt,et)}function useFrame(tt,et=0){const nt=useStore(),rt=nt.getState().internal.subscribe,it=useMutableCallback(tt);return useIsomorphicLayoutEffect$1(()=>rt(it,et,nt),[et,rt,nt]),null}function loadingFn(tt,et){return function(nt,...rt){const it=new nt;return tt&&tt(it),Promise.all(rt.map(ot=>new Promise((at,st)=>it.load(ot,lt=>{lt.scene&&Object.assign(lt,buildGraph(lt.scene)),at(lt)},et,lt=>st(new Error(`Could not load ${ot}: ${lt.message}`))))))}}function useLoader(tt,et,nt,rt){const it=Array.isArray(et)?et:[et],ot=suspend$1(loadingFn(nt,rt),[tt,...it],{equal:is$1.equ});return Array.isArray(et)?ot:ot[0]}useLoader.preload=function(tt,et,nt){const rt=Array.isArray(et)?et:[et];return preload(loadingFn(nt),[tt,...rt])};useLoader.clear=function(tt,et){const nt=Array.isArray(et)?et:[et];return clear([tt,...nt])};const roots=new Map,{invalidate,advance}=createLoop(roots),{reconciler,applyProps}=createRenderer(roots,getEventPriority),shallowLoose={objects:"shallow",strict:!1},createRendererInstance=(tt,et)=>{const nt=typeof tt=="function"?tt(et):tt;return isRenderer(nt)?nt:new WebGLRenderer({powerPreference:"high-performance",canvas:et,antialias:!0,alpha:!0,...tt})};function computeInitialSize(tt,et){if(et)return et;if(typeof HTMLCanvasElement<"u"&&tt instanceof HTMLCanvasElement&&tt.parentElement){const{width:nt,height:rt,top:it,left:ot}=tt.parentElement.getBoundingClientRect();return{width:nt,height:rt,top:it,left:ot}}else if(typeof OffscreenCanvas<"u"&&tt instanceof OffscreenCanvas)return{width:tt.width,height:tt.height,top:0,left:0};return{width:0,height:0,top:0,left:0}}function createRoot(tt){const et=roots.get(tt),nt=et==null?void 0:et.fiber,rt=et==null?void 0:et.store;et&&console.warn("R3F.createRoot should only be called once!");const it=typeof reportError=="function"?reportError:console.error,ot=rt||createStore$1(invalidate,advance),at=nt||reconciler.createContainer(ot,constantsExports.ConcurrentRoot,null,!1,null,"",it,null);et||roots.set(tt,{fiber:at,store:ot});let st,lt=!1,ct;return{configure(ut={}){let{gl:ht,size:dt,scene:pt,events:mt,onCreated:gt,shadows:yt=!1,linear:bt=!1,flat:wt=!1,legacy:vt=!1,orthographic:kt=!1,frameloop:St="always",dpr:Tt=[1,2],performance:At,raycaster:Et,camera:Mt,onPointerMissed:Lt}=ut,jt=ot.getState(),Rt=jt.gl;jt.gl||jt.set({gl:Rt=createRendererInstance(ht,tt)});let $t=jt.raycaster;$t||jt.set({raycaster:$t=new Raycaster});const{params:xt,...It}=Et||{};if(is$1.equ(It,$t,shallowLoose)||applyProps($t,{...It}),is$1.equ(xt,$t.params,shallowLoose)||applyProps($t,{params:{...$t.params,...xt}}),!jt.camera||jt.camera===ct&&!is$1.equ(ct,Mt,shallowLoose)){ct=Mt;const Ct=Mt instanceof Camera,Ht=Ct?Mt:kt?new OrthographicCamera(0,0,0,0,.1,1e3):new PerspectiveCamera(75,0,.1,1e3);Ct||(Ht.position.z=5,Mt&&applyProps(Ht,Mt),!jt.camera&&!(Mt!=null&&Mt.rotation)&&Ht.lookAt(0,0,0)),jt.set({camera:Ht})}if(!jt.scene){let Ct;pt instanceof Scene?Ct=pt:(Ct=new Scene,pt&&applyProps(Ct,pt)),jt.set({scene:prepare(Ct)})}if(!jt.xr){var Ot;const Ct=(nn,Yt)=>{const fn=ot.getState();fn.frameloop!=="never"&&advance(nn,!0,fn,Yt)},Ht=()=>{const nn=ot.getState();nn.gl.xr.enabled=nn.gl.xr.isPresenting,nn.gl.xr.setAnimationLoop(nn.gl.xr.isPresenting?Ct:null),nn.gl.xr.isPresenting||invalidate(nn)},Jt={connect(){const nn=ot.getState().gl;nn.xr.addEventListener("sessionstart",Ht),nn.xr.addEventListener("sessionend",Ht)},disconnect(){const nn=ot.getState().gl;nn.xr.removeEventListener("sessionstart",Ht),nn.xr.removeEventListener("sessionend",Ht)}};typeof((Ot=Rt.xr)==null?void 0:Ot.addEventListener)=="function"&&Jt.connect(),jt.set({xr:Jt})}if(Rt.shadowMap){const Ct=Rt.shadowMap.enabled,Ht=Rt.shadowMap.type;if(Rt.shadowMap.enabled=!!yt,is$1.boo(yt))Rt.shadowMap.type=PCFSoftShadowMap;else if(is$1.str(yt)){var zt;const Jt={basic:BasicShadowMap,percentage:PCFShadowMap,soft:PCFSoftShadowMap,variance:VSMShadowMap};Rt.shadowMap.type=(zt=Jt[yt])!=null?zt:PCFSoftShadowMap}else is$1.obj(yt)&&Object.assign(Rt.shadowMap,yt);(Ct!==Rt.shadowMap.enabled||Ht!==Rt.shadowMap.type)&&(Rt.shadowMap.needsUpdate=!0)}const Ut=getColorManagement();Ut&&("enabled"in Ut?Ut.enabled=!vt:"legacyMode"in Ut&&(Ut.legacyMode=vt)),applyProps(Rt,{outputEncoding:bt?3e3:3001,toneMapping:wt?NoToneMapping:ACESFilmicToneMapping}),jt.legacy!==vt&&jt.set(()=>({legacy:vt})),jt.linear!==bt&&jt.set(()=>({linear:bt})),jt.flat!==wt&&jt.set(()=>({flat:wt})),ht&&!is$1.fun(ht)&&!isRenderer(ht)&&!is$1.equ(ht,Rt,shallowLoose)&&applyProps(Rt,ht),mt&&!jt.events.handlers&&jt.set({events:mt(ot)});const Nt=computeInitialSize(tt,dt);return is$1.equ(Nt,jt.size,shallowLoose)||jt.setSize(Nt.width,Nt.height,Nt.updateStyle,Nt.top,Nt.left),Tt&&jt.viewport.dpr!==calculateDpr(Tt)&&jt.setDpr(Tt),jt.frameloop!==St&&jt.setFrameloop(St),jt.onPointerMissed||jt.set({onPointerMissed:Lt}),At&&!is$1.equ(At,jt.performance,shallowLoose)&&jt.set(Ct=>({performance:{...Ct.performance,...At}})),st=gt,lt=!0,this},render(ut){return lt||this.configure(),reconciler.updateContainer(reactExports.createElement(Provider,{store:ot,children:ut,onCreated:st,rootElement:tt}),at,null,()=>{}),ot},unmount(){unmountComponentAtNode(tt)}}}function Provider({store:tt,children:et,onCreated:nt,rootElement:rt}){return useIsomorphicLayoutEffect$1(()=>{const it=tt.getState();it.set(ot=>({internal:{...ot.internal,active:!0}})),nt&&nt(it),tt.getState().events.connected||it.events.connect==null||it.events.connect(rt)},[]),reactExports.createElement(context$2.Provider,{value:tt},et)}function unmountComponentAtNode(tt,et){const nt=roots.get(tt),rt=nt==null?void 0:nt.fiber;if(rt){const it=nt==null?void 0:nt.store.getState();it&&(it.internal.active=!1),reconciler.updateContainer(null,rt,null,()=>{it&&setTimeout(()=>{try{var ot,at,st,lt;it.events.disconnect==null||it.events.disconnect(),(ot=it.gl)==null||(at=ot.renderLists)==null||at.dispose==null||at.dispose(),(st=it.gl)==null||st.forceContextLoss==null||st.forceContextLoss(),(lt=it.gl)!=null&<.xr&&it.xr.disconnect(),dispose(it),roots.delete(tt),et&&et(tt)}catch{}},500)})}}function createPortal(tt,et,nt){return reactExports.createElement(Portal,{key:et.uuid,children:tt,container:et,state:nt})}function Portal({state:tt={},children:et,container:nt}){const{events:rt,size:it,...ot}=tt,at=useStore(),[st]=reactExports.useState(()=>new Raycaster),[lt]=reactExports.useState(()=>new Vector2),ct=reactExports.useCallback((ht,dt)=>{const pt={...ht};Object.keys(ht).forEach(gt=>{(privateKeys.includes(gt)||ht[gt]!==dt[gt]&&dt[gt])&&delete pt[gt]});let mt;if(dt&&it){const gt=dt.camera;mt=ht.viewport.getCurrentViewport(gt,new Vector3,it),gt!==ht.camera&&updateCamera(gt,it)}return{...pt,scene:nt,raycaster:st,pointer:lt,mouse:lt,previousRoot:at,events:{...ht.events,...dt==null?void 0:dt.events,...rt},size:{...ht.size,...it},viewport:{...ht.viewport,...mt},...ot}},[tt]),[ut]=reactExports.useState(()=>{const ht=at.getState();return create$1((pt,mt)=>({...ht,scene:nt,raycaster:st,pointer:lt,mouse:lt,previousRoot:at,events:{...ht.events,...rt},size:{...ht.size,...it},...ot,set:pt,get:mt,setEvents:gt=>pt(yt=>({...yt,events:{...yt.events,...gt}}))}))});return reactExports.useEffect(()=>{const ht=at.subscribe(dt=>ut.setState(pt=>ct(dt,pt)));return()=>{ht(),ut.destroy()}},[]),reactExports.useEffect(()=>{ut.setState(ht=>ct(at.getState(),ht))},[ct]),reactExports.createElement(reactExports.Fragment,null,reconciler.createPortal(reactExports.createElement(context$2.Provider,{value:ut},et),ut,null))}reconciler.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:reactExports.version});function debounce$3(tt,et,nt){var rt,it,ot,at,st;et==null&&(et=100);function lt(){var ut=Date.now()-at;ut=0?rt=setTimeout(lt,et-ut):(rt=null,nt||(st=tt.apply(ot,it),ot=it=null))}var ct=function(){ot=this,it=arguments,at=Date.now();var ut=nt&&!rt;return rt||(rt=setTimeout(lt,et)),ut&&(st=tt.apply(ot,it),ot=it=null),st};return ct.clear=function(){rt&&(clearTimeout(rt),rt=null)},ct.flush=function(){rt&&(st=tt.apply(ot,it),ot=it=null,clearTimeout(rt),rt=null)},ct}debounce$3.debounce=debounce$3;var debounce_1$1=debounce$3;const createDebounce=getDefaultExportFromCjs(debounce_1$1);function useMeasure(tt){let{debounce:et,scroll:nt,polyfill:rt,offsetSize:it}=tt===void 0?{debounce:0,scroll:!1,offsetSize:!1}:tt;const ot=rt||(typeof window>"u"?class{}:window.ResizeObserver);if(!ot)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[at,st]=reactExports.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),lt=reactExports.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:at}),ct=et?typeof et=="number"?et:et.scroll:null,ut=et?typeof et=="number"?et:et.resize:null,ht=reactExports.useRef(!1);reactExports.useEffect(()=>(ht.current=!0,()=>void(ht.current=!1)));const[dt,pt,mt]=reactExports.useMemo(()=>{const wt=()=>{if(!lt.current.element)return;const{left:vt,top:kt,width:St,height:Tt,bottom:At,right:Et,x:Mt,y:Lt}=lt.current.element.getBoundingClientRect(),jt={left:vt,top:kt,width:St,height:Tt,bottom:At,right:Et,x:Mt,y:Lt};lt.current.element instanceof HTMLElement&&it&&(jt.height=lt.current.element.offsetHeight,jt.width=lt.current.element.offsetWidth),Object.freeze(jt),ht.current&&!areBoundsEqual(lt.current.lastBounds,jt)&&st(lt.current.lastBounds=jt)};return[wt,ut?createDebounce(wt,ut):wt,ct?createDebounce(wt,ct):wt]},[st,it,ct,ut]);function gt(){lt.current.scrollContainers&&(lt.current.scrollContainers.forEach(wt=>wt.removeEventListener("scroll",mt,!0)),lt.current.scrollContainers=null),lt.current.resizeObserver&&(lt.current.resizeObserver.disconnect(),lt.current.resizeObserver=null)}function yt(){lt.current.element&&(lt.current.resizeObserver=new ot(mt),lt.current.resizeObserver.observe(lt.current.element),nt&<.current.scrollContainers&<.current.scrollContainers.forEach(wt=>wt.addEventListener("scroll",mt,{capture:!0,passive:!0})))}const bt=wt=>{!wt||wt===lt.current.element||(gt(),lt.current.element=wt,lt.current.scrollContainers=findScrollContainers(wt),yt())};return useOnWindowScroll(mt,!!nt),useOnWindowResize(pt),reactExports.useEffect(()=>{gt(),yt()},[nt,mt,pt]),reactExports.useEffect(()=>gt,[]),[bt,at,dt]}function useOnWindowResize(tt){reactExports.useEffect(()=>{const et=tt;return window.addEventListener("resize",et),()=>void window.removeEventListener("resize",et)},[tt])}function useOnWindowScroll(tt,et){reactExports.useEffect(()=>{if(et){const nt=tt;return window.addEventListener("scroll",nt,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",nt,!0)}},[tt,et])}function findScrollContainers(tt){const et=[];if(!tt||tt===document.body)return et;const{overflow:nt,overflowX:rt,overflowY:it}=window.getComputedStyle(tt);return[nt,rt,it].some(ot=>ot==="auto"||ot==="scroll")&&et.push(tt),[...et,...findScrollContainers(tt.parentElement)]}const keys$5=["x","y","top","bottom","left","right","width","height"],areBoundsEqual=(tt,et)=>keys$5.every(nt=>tt[nt]===et[nt]);var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(tt,et,nt)=>et in tt?__defProp(tt,et,{enumerable:!0,configurable:!0,writable:!0,value:nt}):tt[et]=nt,__spreadValues=(tt,et)=>{for(var nt in et||(et={}))__hasOwnProp.call(et,nt)&&__defNormalProp(tt,nt,et[nt]);if(__getOwnPropSymbols)for(var nt of __getOwnPropSymbols(et))__propIsEnum.call(et,nt)&&__defNormalProp(tt,nt,et[nt]);return tt},__spreadProps=(tt,et)=>__defProps(tt,__getOwnPropDescs(et));function traverseFiber(tt,et,nt){if(!tt)return;if(nt(tt)===!0)return tt;let rt=et?tt.return:tt.child;for(;rt;){const it=traverseFiber(rt,et,nt);if(it)return it;rt=et?null:rt.sibling}}function wrapContext(tt){try{return Object.defineProperties(tt,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return tt}}const FiberContext=wrapContext(reactExports.createContext(null));class FiberProvider extends reactExports.Component{render(){return reactExports.createElement(FiberContext.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner,ReactCurrentDispatcher}=reactExports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function useFiber(){const tt=reactExports.useContext(FiberContext);if(tt===null)throw new Error("its-fine: useFiber must be called within a !");const et=reactExports.useId();return reactExports.useMemo(()=>{for(const rt of[ReactCurrentOwner==null?void 0:ReactCurrentOwner.current,tt,tt==null?void 0:tt.alternate]){if(!rt)continue;const it=traverseFiber(rt,!1,ot=>{let at=ot.memoizedState;for(;at;){if(at.memoizedState===et)return!0;at=at.next}});if(it)return it}},[tt,et])}function useContextMap(){var tt,et;const nt=useFiber(),[rt]=reactExports.useState(()=>new Map);rt.clear();let it=nt;for(;it;){const ot=(tt=it.type)==null?void 0:tt._context;ot&&ot!==FiberContext&&!rt.has(ot)&&rt.set(ot,(et=ReactCurrentDispatcher==null?void 0:ReactCurrentDispatcher.current)==null?void 0:et.readContext(wrapContext(ot))),it=it.return}return rt}function useContextBridge(){const tt=useContextMap();return reactExports.useMemo(()=>Array.from(tt.keys()).reduce((et,nt)=>rt=>reactExports.createElement(et,null,reactExports.createElement(nt.Provider,__spreadProps(__spreadValues({},rt),{value:tt.get(nt)}))),et=>reactExports.createElement(FiberProvider,__spreadValues({},et))),[tt])}const DOM_EVENTS={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function createPointerEvents(tt){const{handlePointer:et}=createEvents(tt);return{priority:1,enabled:!0,compute(nt,rt,it){rt.pointer.set(nt.offsetX/rt.size.width*2-1,-(nt.offsetY/rt.size.height)*2+1),rt.raycaster.setFromCamera(rt.pointer,rt.camera)},connected:void 0,handlers:Object.keys(DOM_EVENTS).reduce((nt,rt)=>({...nt,[rt]:et(rt)}),{}),update:()=>{var nt;const{events:rt,internal:it}=tt.getState();(nt=it.lastEvent)!=null&&nt.current&&rt.handlers&&rt.handlers.onPointerMove(it.lastEvent.current)},connect:nt=>{var rt;const{set:it,events:ot}=tt.getState();ot.disconnect==null||ot.disconnect(),it(at=>({events:{...at.events,connected:nt}})),Object.entries((rt=ot.handlers)!=null?rt:[]).forEach(([at,st])=>{const[lt,ct]=DOM_EVENTS[at];nt.addEventListener(lt,st,{passive:ct})})},disconnect:()=>{const{set:nt,events:rt}=tt.getState();if(rt.connected){var it;Object.entries((it=rt.handlers)!=null?it:[]).forEach(([ot,at])=>{if(rt&&rt.connected instanceof HTMLElement){const[st]=DOM_EVENTS[ot];rt.connected.removeEventListener(st,at)}}),nt(ot=>({events:{...ot.events,connected:void 0}}))}}}}const CanvasImpl=reactExports.forwardRef(function({children:et,fallback:nt,resize:rt,style:it,gl:ot,events:at=createPointerEvents,eventSource:st,eventPrefix:lt,shadows:ct,linear:ut,flat:ht,legacy:dt,orthographic:pt,frameloop:mt,dpr:gt,performance:yt,raycaster:bt,camera:wt,onPointerMissed:vt,onCreated:kt,...St},Tt){reactExports.useMemo(()=>extend$2(THREE$1),[]);const At=useContextBridge(),[Et,Mt]=useMeasure({scroll:!0,debounce:{scroll:50,resize:0},...rt}),Lt=reactExports.useRef(null),jt=reactExports.useRef(null);reactExports.useImperativeHandle(Tt,()=>Lt.current);const Rt=useMutableCallback(vt),[$t,xt]=reactExports.useState(!1),[It,Ot]=reactExports.useState(!1);if($t)throw $t;if(It)throw It;const zt=reactExports.useRef(null);useIsomorphicLayoutEffect$1(()=>{const Wt=Lt.current;Mt.width>0&&Mt.height>0&&Wt&&(zt.current||(zt.current=createRoot(Wt)),zt.current.configure({gl:ot,events:at,shadows:ct,linear:ut,flat:ht,legacy:dt,orthographic:pt,frameloop:mt,dpr:gt,performance:yt,raycaster:bt,camera:wt,size:Mt,onPointerMissed:(...Ft)=>Rt.current==null?void 0:Rt.current(...Ft),onCreated:Ft=>{Ft.events.connect==null||Ft.events.connect(st?isRef(st)?st.current:st:jt.current),lt&&Ft.setEvents({compute:(Nt,Ct)=>{const Ht=Nt[lt+"X"],Jt=Nt[lt+"Y"];Ct.pointer.set(Ht/Ct.size.width*2-1,-(Jt/Ct.size.height)*2+1),Ct.raycaster.setFromCamera(Ct.pointer,Ct.camera)}}),kt==null||kt(Ft)}}),zt.current.render(reactExports.createElement(At,null,reactExports.createElement(ErrorBoundary,{set:Ot},reactExports.createElement(reactExports.Suspense,{fallback:reactExports.createElement(Block,{set:xt})},et)))))}),reactExports.useEffect(()=>{const Wt=Lt.current;if(Wt)return()=>unmountComponentAtNode(Wt)},[]);const Ut=st?"none":"auto";return reactExports.createElement("div",_extends$r({ref:jt,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:Ut,...it}},St),reactExports.createElement("div",{ref:Et,style:{width:"100%",height:"100%"}},reactExports.createElement("canvas",{ref:Lt,style:{display:"block"}},nt)))}),Canvas$1=reactExports.forwardRef(function(et,nt){return reactExports.createElement(FiberProvider,null,reactExports.createElement(CanvasImpl,_extends$r({},et,{ref:nt})))}),v1=new Vector3,v2=new Vector3,v3=new Vector3;function defaultCalculatePosition(tt,et,nt){const rt=v1.setFromMatrixPosition(tt.matrixWorld);rt.project(et);const it=nt.width/2,ot=nt.height/2;return[rt.x*it+it,-(rt.y*ot)+ot]}function isObjectBehindCamera(tt,et){const nt=v1.setFromMatrixPosition(tt.matrixWorld),rt=v2.setFromMatrixPosition(et.matrixWorld),it=nt.sub(rt),ot=et.getWorldDirection(v3);return it.angleTo(ot)>Math.PI/2}function isObjectVisible(tt,et,nt,rt){const it=v1.setFromMatrixPosition(tt.matrixWorld),ot=it.clone();ot.project(et),nt.setFromCamera(ot,et);const at=nt.intersectObjects(rt,!0);if(at.length){const st=at[0].distance;return it.distanceTo(nt.ray.origin)Math.abs(tt)<1e-10?0:tt;function getCSSMatrix(tt,et,nt=""){let rt="matrix3d(";for(let it=0;it!==16;it++)rt+=epsilon$1(et[it]*tt.elements[it])+(it!==15?",":")");return nt+rt}const getCameraCSSMatrix=(tt=>et=>getCSSMatrix(et,tt))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),getObjectCSSMatrix=(tt=>(et,nt)=>getCSSMatrix(et,tt(nt),"translate(-50%,-50%)"))(tt=>[1/tt,1/tt,1/tt,1,-1/tt,-1/tt,-1/tt,-1,1/tt,1/tt,1/tt,1,1,1,1,1]);function isRefObject(tt){return tt&&typeof tt=="object"&&"current"in tt}const Html$1=reactExports.forwardRef(({children:tt,eps:et=.001,style:nt,className:rt,prepend:it,center:ot,fullscreen:at,portal:st,distanceFactor:lt,sprite:ct=!1,transform:ut=!1,occlude:ht,onOcclude:dt,castShadow:pt,receiveShadow:mt,material:gt,geometry:yt,zIndexRange:bt=[16777271,0],calculatePosition:wt=defaultCalculatePosition,as:vt="div",wrapperClass:kt,pointerEvents:St="auto",...Tt},At)=>{const{gl:Et,camera:Mt,scene:Lt,size:jt,raycaster:Rt,events:$t,viewport:xt}=useThree(),[It]=reactExports.useState(()=>document.createElement(vt)),Ot=reactExports.useRef(),zt=reactExports.useRef(null),Ut=reactExports.useRef(0),Wt=reactExports.useRef([0,0]),Ft=reactExports.useRef(null),Nt=reactExports.useRef(null),Ct=(st==null?void 0:st.current)||$t.connected||Et.domElement.parentNode,Ht=reactExports.useRef(null),Jt=reactExports.useRef(!1),nn=reactExports.useMemo(()=>ht&&ht!=="blending"||Array.isArray(ht)&&ht.length&&isRefObject(ht[0]),[ht]);reactExports.useLayoutEffect(()=>{const En=Et.domElement;ht&&ht==="blending"?(En.style.zIndex=`${Math.floor(bt[0]/2)}`,En.style.position="absolute",En.style.pointerEvents="none"):(En.style.zIndex=null,En.style.position=null,En.style.pointerEvents=null)},[ht]),reactExports.useLayoutEffect(()=>{if(zt.current){const En=Ot.current=createRoot$1(It);if(Lt.updateMatrixWorld(),ut)It.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const an=wt(zt.current,Mt,jt);It.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${an[0]}px,${an[1]}px,0);transform-origin:0 0;`}return Ct&&(it?Ct.prepend(It):Ct.appendChild(It)),()=>{Ct&&Ct.removeChild(It),En.unmount()}}},[Ct,ut]),reactExports.useLayoutEffect(()=>{kt&&(It.className=kt)},[kt]);const Yt=reactExports.useMemo(()=>ut?{position:"absolute",top:0,left:0,width:jt.width,height:jt.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:ot?"translate3d(-50%,-50%,0)":"none",...at&&{top:-jt.height/2,left:-jt.width/2,width:jt.width,height:jt.height},...nt},[nt,ot,at,jt,ut]),fn=reactExports.useMemo(()=>({position:"absolute",pointerEvents:St}),[St]);reactExports.useLayoutEffect(()=>{if(Jt.current=!1,ut){var En;(En=Ot.current)==null||En.render(reactExports.createElement("div",{ref:Ft,style:Yt},reactExports.createElement("div",{ref:Nt,style:fn},reactExports.createElement("div",{ref:At,className:rt,style:nt,children:tt}))))}else{var an;(an=Ot.current)==null||an.render(reactExports.createElement("div",{ref:At,style:Yt,className:rt,children:tt}))}});const cn=reactExports.useRef(!0);useFrame(En=>{if(zt.current){Mt.updateMatrixWorld(),zt.current.updateWorldMatrix(!0,!1);const an=ut?Wt.current:wt(zt.current,Mt,jt);if(ut||Math.abs(Ut.current-Mt.zoom)>et||Math.abs(Wt.current[0]-an[0])>et||Math.abs(Wt.current[1]-an[1])>et){const en=isObjectBehindCamera(zt.current,Mt);let Tn=!1;nn&&(ht!=="blending"?Tn=[Lt]:Array.isArray(ht)&&(Tn=ht.map(kn=>kn.current)));const Rn=cn.current;if(Tn){const kn=isObjectVisible(zt.current,Mt,Rt,Tn);cn.current=kn&&!en}else cn.current=!en;Rn!==cn.current&&(dt?dt(!cn.current):It.style.display=cn.current?"block":"none");const An=Math.floor(bt[0]/2),yn=ht?nn?[bt[0],An]:[An-1,0]:bt;if(It.style.zIndex=`${objectZIndex(zt.current,Mt,yn)}`,ut){const[kn,dn]=[jt.width/2,jt.height/2],gn=Mt.projectionMatrix.elements[5]*dn,{isOrthographicCamera:Cn,top:$n,left:un,bottom:rn,right:Sn}=Mt,Mn=getCameraCSSMatrix(Mt.matrixWorldInverse),Nn=Cn?`scale(${gn})translate(${epsilon$1(-(Sn+un)/2)}px,${epsilon$1(($n+rn)/2)}px)`:`translateZ(${gn}px)`;let hn=zt.current.matrixWorld;ct&&(hn=Mt.matrixWorldInverse.clone().transpose().copyPosition(hn).scale(zt.current.scale),hn.elements[3]=hn.elements[7]=hn.elements[11]=0,hn.elements[15]=1),It.style.width=jt.width+"px",It.style.height=jt.height+"px",It.style.perspective=Cn?"":`${gn}px`,Ft.current&&Nt.current&&(Ft.current.style.transform=`${Nn}${Mn}translate(${kn}px,${dn}px)`,Nt.current.style.transform=getObjectCSSMatrix(hn,1/((lt||10)/400)))}else{const kn=lt===void 0?1:objectScale(zt.current,Mt)*lt;It.style.transform=`translate3d(${an[0]}px,${an[1]}px,0) scale(${kn})`}Wt.current=an,Ut.current=Mt.zoom}}if(!nn&&Ht.current&&!Jt.current)if(ut){if(Ft.current){const an=Ft.current.children[0];if(an!=null&&an.clientWidth&&an!=null&&an.clientHeight){const{isOrthographicCamera:en}=Mt;if(en||yt)Tt.scale&&(Array.isArray(Tt.scale)?Tt.scale instanceof Vector3?Ht.current.scale.copy(Tt.scale.clone().divideScalar(1)):Ht.current.scale.set(1/Tt.scale[0],1/Tt.scale[1],1/Tt.scale[2]):Ht.current.scale.setScalar(1/Tt.scale));else{const Tn=(lt||10)/400,Rn=an.clientWidth*Tn,An=an.clientHeight*Tn;Ht.current.scale.set(Rn,An,1)}Jt.current=!0}}}else{const an=It.children[0];if(an!=null&&an.clientWidth&&an!=null&&an.clientHeight){const en=1/xt.factor,Tn=an.clientWidth*en,Rn=an.clientHeight*en;Ht.current.scale.set(Tn,Rn,1),Jt.current=!0}Ht.current.lookAt(En.camera.position)}});const _n=reactExports.useMemo(()=>({vertexShader:ut?void 0:` + `)+Bt.join(" > ")}return null},nt.getPublicRootInstance=function(Bt){if(Bt=Bt.current,!Bt.child)return null;switch(Bt.child.tag){case 5:return Ot(Bt.child.stateNode);default:return Bt.child.stateNode}},nt.injectIntoDevTools=function(Bt){if(Bt={bundleType:Bt.bundleType,version:Bt.version,rendererPackageName:Bt.rendererPackageName,rendererConfig:Bt.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:st.ReactCurrentDispatcher,findHostInstanceByFiber:Y0,findFiberByHostInstance:Bt.findFiberByHostInstance||E0,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.0.0-fc46dba67-20220329"},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")Bt=!1;else{var Dt=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(Dt.isDisabled||!Dt.supportsFiber)Bt=!0;else{try{Iu=Dt.inject(Bt),Xs=Dt}catch{}Bt=!!Dt.checkDCE}}return Bt},nt.isAlreadyRendering=function(){return!1},nt.observeVisibleRects=function(Bt,Dt,Gt,tn){if(!Cn)throw Error(at(363));Bt=gy(Bt,Dt);var pn=hn(Bt,Gt,tn).disconnect;return{disconnect:function(){pn()}}},nt.registerMutableSourceForHydration=function(Bt,Dt){var Gt=Dt._getVersion;Gt=Gt(Dt._source),Bt.mutableSourceEagerHydrationData==null?Bt.mutableSourceEagerHydrationData=[Dt,Gt]:Bt.mutableSourceEagerHydrationData.push(Dt,Gt)},nt.runWithPriority=function(Bt,Dt){var Gt=No;try{return No=Bt,Dt()}finally{No=Gt}},nt.shouldError=function(){return null},nt.shouldSuspend=function(){return!1},nt.updateContainer=function(Bt,Dt,Gt,tn){var pn=Dt.current,In=Os(),Hn=uu(pn);return Gt=hm(Gt),Dt.context===null?Dt.context=Gt:Dt.pendingContext=Gt,Dt=Ps(In,Hn),Dt.payload={element:Bt},tn=tn===void 0?null:tn,tn!==null&&(Dt.callback=tn),Ll(pn,Dt),Bt=$l(pn,Hn,In),Bt!==null&&ap(Bt,pn,Hn),Hn},nt};reactReconciler.exports=reactReconciler_production_min;var reactReconcilerExports=reactReconciler.exports;const Reconciler=getDefaultExportFromCjs(reactReconcilerExports),isPromise=tt=>typeof tt=="object"&&typeof tt.then=="function",globalCache$1=[];function shallowEqualArrays$1(tt,et,nt=(rt,it)=>rt===it){if(tt===et)return!0;if(!tt||!et)return!1;const rt=tt.length;if(et.length!==rt)return!1;for(let it=0;it0&&(ot.timeout&&clearTimeout(ot.timeout),ot.timeout=setTimeout(ot.remove,rt.lifespan)),ot.response;if(!nt)throw ot.promise}const it={keys:et,equal:rt.equal,remove:()=>{const ot=globalCache$1.indexOf(it);ot!==-1&&globalCache$1.splice(ot,1)},promise:(isPromise(tt)?tt:tt(...et)).then(ot=>{it.response=ot,rt.lifespan&&rt.lifespan>0&&(it.timeout=setTimeout(it.remove,rt.lifespan))}).catch(ot=>it.error=ot)};if(globalCache$1.push(it),!nt)throw it.promise}const suspend$1=(tt,et,nt)=>query$1(tt,et,!1,nt),preload=(tt,et,nt)=>void query$1(tt,et,!0,nt),clear=tt=>{if(tt===void 0||tt.length===0)globalCache$1.splice(0,globalCache$1.length);else{const et=globalCache$1.find(nt=>shallowEqualArrays$1(tt,nt.keys,nt.equal));et&&et.remove()}},catalogue={},extend$2=tt=>void Object.assign(catalogue,tt);function createRenderer(tt,et){function nt(ut,{args:ht=[],attach:dt,...pt},mt){let gt=`${ut[0].toUpperCase()}${ut.slice(1)}`,yt;if(ut==="primitive"){if(pt.object===void 0)throw new Error("R3F: Primitives without 'object' are invalid!");const bt=pt.object;yt=prepare(bt,{type:ut,root:mt,attach:dt,primitive:!0})}else{const bt=catalogue[gt];if(!bt)throw new Error(`R3F: ${gt} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(ht))throw new Error("R3F: The args prop must be an array!");yt=prepare(new bt(...ht),{type:ut,root:mt,attach:dt,memoizedProps:{args:ht}})}return yt.__r3f.attach===void 0&&(yt instanceof BufferGeometry?yt.__r3f.attach="geometry":yt instanceof Material&&(yt.__r3f.attach="material")),gt!=="inject"&&applyProps$1(yt,pt),yt}function rt(ut,ht){let dt=!1;if(ht){var pt,mt;(pt=ht.__r3f)!=null&&pt.attach?attach(ut,ht,ht.__r3f.attach):ht.isObject3D&&ut.isObject3D&&(ut.add(ht),dt=!0),dt||(mt=ut.__r3f)==null||mt.objects.push(ht),ht.__r3f||prepare(ht,{}),ht.__r3f.parent=ut,updateInstance(ht),invalidateInstance(ht)}}function it(ut,ht,dt){let pt=!1;if(ht){var mt,gt;if((mt=ht.__r3f)!=null&&mt.attach)attach(ut,ht,ht.__r3f.attach);else if(ht.isObject3D&&ut.isObject3D){ht.parent=ut,ht.dispatchEvent({type:"added"});const yt=ut.children.filter(wt=>wt!==ht),bt=yt.indexOf(dt);ut.children=[...yt.slice(0,bt),ht,...yt.slice(bt)],pt=!0}pt||(gt=ut.__r3f)==null||gt.objects.push(ht),ht.__r3f||prepare(ht,{}),ht.__r3f.parent=ut,updateInstance(ht),invalidateInstance(ht)}}function ot(ut,ht,dt=!1){ut&&[...ut].forEach(pt=>at(ht,pt,dt))}function at(ut,ht,dt){if(ht){var pt,mt,gt;if(ht.__r3f&&(ht.__r3f.parent=null),(pt=ut.__r3f)!=null&&pt.objects&&(ut.__r3f.objects=ut.__r3f.objects.filter(kt=>kt!==ht)),(mt=ht.__r3f)!=null&&mt.attach)detach(ut,ht,ht.__r3f.attach);else if(ht.isObject3D&&ut.isObject3D){var yt;ut.remove(ht),(yt=ht.__r3f)!=null&&yt.root&&removeInteractivity(ht.__r3f.root,ht)}const wt=(gt=ht.__r3f)==null?void 0:gt.primitive,vt=dt===void 0?ht.dispose!==null&&!wt:dt;if(!wt){var bt;ot((bt=ht.__r3f)==null?void 0:bt.objects,ht,vt),ot(ht.children,ht,vt)}delete ht.__r3f,vt&&ht.dispose&&ht.type!=="Scene"&&schedulerExports.unstable_scheduleCallback(schedulerExports.unstable_IdlePriority,()=>{try{ht.dispose()}catch{}}),invalidateInstance(ut)}}function st(ut,ht,dt,pt){var mt;const gt=(mt=ut.__r3f)==null?void 0:mt.parent;if(!gt)return;const yt=nt(ht,dt,ut.__r3f.root);if(ut.children){for(const bt of ut.children)bt.__r3f&&rt(yt,bt);ut.children=ut.children.filter(bt=>!bt.__r3f)}ut.__r3f.objects.forEach(bt=>rt(yt,bt)),ut.__r3f.objects=[],ut.__r3f.autoRemovedBeforeAppend||at(gt,ut),yt.parent&&(yt.__r3f.autoRemovedBeforeAppend=!0),rt(gt,yt),yt.raycast&&yt.__r3f.eventCount&&yt.__r3f.root.getState().internal.interaction.push(yt),[pt,pt.alternate].forEach(bt=>{bt!==null&&(bt.stateNode=yt,bt.ref&&(typeof bt.ref=="function"?bt.ref(yt):bt.ref.current=yt))})}const lt=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:Reconciler({createInstance:nt,removeChild:at,appendChild:rt,appendInitialChild:rt,insertBefore:it,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(ut,ht)=>{if(!ht)return;const dt=ut.getState().scene;dt.__r3f&&(dt.__r3f.root=ut,rt(dt,ht))},removeChildFromContainer:(ut,ht)=>{ht&&at(ut.getState().scene,ht)},insertInContainerBefore:(ut,ht,dt)=>{if(!ht||!dt)return;const pt=ut.getState().scene;pt.__r3f&&it(pt,ht,dt)},getRootHostContext:()=>null,getChildHostContext:ut=>ut,finalizeInitialChildren(ut){var ht;return!!((ht=ut==null?void 0:ut.__r3f)!=null?ht:{}).handlers},prepareUpdate(ut,ht,dt,pt){var mt;if(((mt=ut==null?void 0:ut.__r3f)!=null?mt:{}).primitive&&pt.object&&pt.object!==ut)return[!0];{const{args:yt=[],children:bt,...wt}=pt,{args:vt=[],children:kt,...St}=dt;if(!Array.isArray(yt))throw new Error("R3F: the args prop must be an array!");if(yt.some((At,Tt)=>At!==vt[Tt]))return[!0];const Et=diffProps(ut,wt,St,!0);return Et.changes.length?[!1,Et]:null}},commitUpdate(ut,[ht,dt],pt,mt,gt,yt){ht?st(ut,pt,gt,yt):applyProps$1(ut,dt)},commitMount(ut,ht,dt,pt){var mt;const gt=(mt=ut.__r3f)!=null?mt:{};ut.raycast&>.handlers&>.eventCount&&ut.__r3f.root.getState().internal.interaction.push(ut)},getPublicInstance:ut=>ut,prepareForCommit:()=>null,preparePortalMount:ut=>prepare(ut.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(ut){var ht;const{attach:dt,parent:pt}=(ht=ut.__r3f)!=null?ht:{};dt&&pt&&detach(pt,ut,dt),ut.isObject3D&&(ut.visible=!1),invalidateInstance(ut)},unhideInstance(ut,ht){var dt;const{attach:pt,parent:mt}=(dt=ut.__r3f)!=null?dt:{};pt&&mt&&attach(mt,ut,pt),(ut.isObject3D&&ht.visible==null||ht.visible)&&(ut.visible=!0),invalidateInstance(ut)},createTextInstance:lt,hideTextInstance:lt,unhideTextInstance:lt,getCurrentEventPriority:()=>et?et():constantsExports.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:typeof performance<"u"&&is$1.fun(performance.now)?performance.now:is$1.fun(Date.now)?Date.now:()=>0,scheduleTimeout:is$1.fun(setTimeout)?setTimeout:void 0,cancelTimeout:is$1.fun(clearTimeout)?clearTimeout:void 0}),applyProps:applyProps$1}}var _window$document,_window$navigator;const hasColorSpace=tt=>"colorSpace"in tt||"outputColorSpace"in tt,getColorManagement=()=>{var tt;return(tt=catalogue.ColorManagement)!=null?tt:null},isOrthographicCamera$1=tt=>tt&&tt.isOrthographicCamera,isRef=tt=>tt&&tt.hasOwnProperty("current"),useIsomorphicLayoutEffect$1=typeof window<"u"&&((_window$document=window.document)!=null&&_window$document.createElement||((_window$navigator=window.navigator)==null?void 0:_window$navigator.product)==="ReactNative")?reactExports.useLayoutEffect:reactExports.useEffect;function useMutableCallback(tt){const et=reactExports.useRef(tt);return useIsomorphicLayoutEffect$1(()=>void(et.current=tt),[tt]),et}function Block({set:tt}){return useIsomorphicLayoutEffect$1(()=>(tt(new Promise(()=>null)),()=>tt(!1)),[tt]),null}class ErrorBoundary extends reactExports.Component{constructor(...et){super(...et),this.state={error:!1}}componentDidCatch(et){this.props.set(et)}render(){return this.state.error?null:this.props.children}}ErrorBoundary.getDerivedStateFromError=()=>({error:!0});const DEFAULT="__default",DEFAULTS=new Map,isDiffSet=tt=>tt&&!!tt.memoized&&!!tt.changes;function calculateDpr(tt){var et;const nt=typeof window<"u"?(et=window.devicePixelRatio)!=null?et:2:1;return Array.isArray(tt)?Math.min(Math.max(tt[0],nt),tt[1]):tt}const getRootState=tt=>{var et;return(et=tt.__r3f)==null?void 0:et.root.getState()},is$1={obj:tt=>tt===Object(tt)&&!is$1.arr(tt)&&typeof tt!="function",fun:tt=>typeof tt=="function",str:tt=>typeof tt=="string",num:tt=>typeof tt=="number",boo:tt=>typeof tt=="boolean",und:tt=>tt===void 0,arr:tt=>Array.isArray(tt),equ(tt,et,{arrays:nt="shallow",objects:rt="reference",strict:it=!0}={}){if(typeof tt!=typeof et||!!tt!=!!et)return!1;if(is$1.str(tt)||is$1.num(tt))return tt===et;const ot=is$1.obj(tt);if(ot&&rt==="reference")return tt===et;const at=is$1.arr(tt);if(at&&nt==="reference")return tt===et;if((at||ot)&&tt===et)return!0;let st;for(st in tt)if(!(st in et))return!1;if(ot&&nt==="shallow"&&rt==="shallow"){for(st in it?et:tt)if(!is$1.equ(tt[st],et[st],{strict:it,objects:"reference"}))return!1}else for(st in it?et:tt)if(tt[st]!==et[st])return!1;if(is$1.und(st)){if(at&&tt.length===0&&et.length===0||ot&&Object.keys(tt).length===0&&Object.keys(et).length===0)return!0;if(tt!==et)return!1}return!0}};function buildGraph(tt){const et={nodes:{},materials:{}};return tt&&tt.traverse(nt=>{nt.name&&(et.nodes[nt.name]=nt),nt.material&&!et.materials[nt.material.name]&&(et.materials[nt.material.name]=nt.material)}),et}function dispose(tt){tt.dispose&&tt.type!=="Scene"&&tt.dispose();for(const et in tt)et.dispose==null||et.dispose(),delete tt[et]}function prepare(tt,et){const nt=tt;return nt.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...et},tt}function resolve(tt,et){let nt=tt;if(et.includes("-")){const rt=et.split("-"),it=rt.pop();return nt=rt.reduce((ot,at)=>ot[at],tt),{target:nt,key:it}}else return{target:nt,key:et}}const INDEX_REGEX=/-\d+$/;function attach(tt,et,nt){if(is$1.str(nt)){if(INDEX_REGEX.test(nt)){const ot=nt.replace(INDEX_REGEX,""),{target:at,key:st}=resolve(tt,ot);Array.isArray(at[st])||(at[st]=[])}const{target:rt,key:it}=resolve(tt,nt);et.__r3f.previousAttach=rt[it],rt[it]=et}else et.__r3f.previousAttach=nt(tt,et)}function detach(tt,et,nt){var rt,it;if(is$1.str(nt)){const{target:ot,key:at}=resolve(tt,nt),st=et.__r3f.previousAttach;st===void 0?delete ot[at]:ot[at]=st}else(rt=et.__r3f)==null||rt.previousAttach==null||rt.previousAttach(tt,et);(it=et.__r3f)==null||delete it.previousAttach}function diffProps(tt,{children:et,key:nt,ref:rt,...it},{children:ot,key:at,ref:st,...lt}={},ct=!1){var ut;const ht=(ut=tt==null?void 0:tt.__r3f)!=null?ut:{},dt=Object.entries(it),pt=[];if(ct){const gt=Object.keys(lt);for(let yt=0;yt{var bt;if((bt=tt.__r3f)!=null&&bt.primitive&>==="object"||is$1.equ(yt,lt[gt]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(gt))return pt.push([gt,yt,!0,[]]);let wt=[];gt.includes("-")&&(wt=gt.split("-")),pt.push([gt,yt,!1,wt]);for(const vt in it){const kt=it[vt];vt.startsWith(`${gt}-`)&&pt.push([vt,kt,!1,vt.split("-")])}});const mt={...it};return ht.memoizedProps&&ht.memoizedProps.args&&(mt.args=ht.memoizedProps.args),ht.memoizedProps&&ht.memoizedProps.attach&&(mt.attach=ht.memoizedProps.attach),{memoized:mt,changes:pt}}function applyProps$1(tt,et){var nt,rt,it;const ot=(nt=tt.__r3f)!=null?nt:{},at=ot.root,st=(rt=at==null||at.getState==null?void 0:at.getState())!=null?rt:{},{memoized:lt,changes:ct}=isDiffSet(et)?et:diffProps(tt,et),ut=ot.eventCount;tt.__r3f&&(tt.__r3f.memoizedProps=lt);for(let dt=0;dtvt[kt],tt),!(wt&&wt.set))){const[vt,...kt]=yt.reverse();bt=kt.reverse().reduce((St,Et)=>St[Et],tt),pt=vt}if(mt===DEFAULT+"remove")if(bt.constructor){let vt=DEFAULTS.get(bt.constructor);vt||(vt=new bt.constructor,DEFAULTS.set(bt.constructor,vt)),mt=vt[pt]}else mt=0;if(gt)mt?ot.handlers[pt]=mt:delete ot.handlers[pt],ot.eventCount=Object.keys(ot.handlers).length;else if(wt&&wt.set&&(wt.copy||wt instanceof Layers)){if(Array.isArray(mt))wt.fromArray?wt.fromArray(mt):wt.set(...mt);else if(wt.copy&&mt&&mt.constructor&&wt.constructor===mt.constructor)wt.copy(mt);else if(mt!==void 0){const vt=wt instanceof Color$1;!vt&&wt.setScalar?wt.setScalar(mt):wt instanceof Layers&&mt instanceof Layers?wt.mask=mt.mask:wt.set(mt),!getColorManagement()&&!st.linear&&vt&&wt.convertSRGBToLinear()}}else if(bt[pt]=mt,bt[pt]instanceof Texture&&bt[pt].format===RGBAFormat&&bt[pt].type===UnsignedByteType){const vt=bt[pt];hasColorSpace(vt)&&hasColorSpace(st.gl)?vt.colorSpace=st.gl.outputColorSpace:vt.encoding=st.gl.outputEncoding}invalidateInstance(tt)}if(ot.parent&&st.internal&&tt.raycast&&ut!==ot.eventCount){const dt=st.internal.interaction.indexOf(tt);dt>-1&&st.internal.interaction.splice(dt,1),ot.eventCount&&st.internal.interaction.push(tt)}return!(ct.length===1&&ct[0][0]==="onUpdate")&&ct.length&&(it=tt.__r3f)!=null&&it.parent&&updateInstance(tt),tt}function invalidateInstance(tt){var et,nt;const rt=(et=tt.__r3f)==null||(nt=et.root)==null||nt.getState==null?void 0:nt.getState();rt&&rt.internal.frames===0&&rt.invalidate()}function updateInstance(tt){tt.onUpdate==null||tt.onUpdate(tt)}function updateCamera(tt,et){tt.manual||(isOrthographicCamera$1(tt)?(tt.left=et.width/-2,tt.right=et.width/2,tt.top=et.height/2,tt.bottom=et.height/-2):tt.aspect=et.width/et.height,tt.updateProjectionMatrix(),tt.updateMatrixWorld())}function makeId(tt){return(tt.eventObject||tt.object).uuid+"/"+tt.index+tt.instanceId}function getEventPriority(){var tt;const et=typeof self<"u"&&self||typeof window<"u"&&window;if(!et)return constantsExports.DefaultEventPriority;switch((tt=et.event)==null?void 0:tt.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return constantsExports.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return constantsExports.ContinuousEventPriority;default:return constantsExports.DefaultEventPriority}}function releaseInternalPointerCapture(tt,et,nt,rt){const it=nt.get(et);it&&(nt.delete(et),nt.size===0&&(tt.delete(rt),it.target.releasePointerCapture(rt)))}function removeInteractivity(tt,et){const{internal:nt}=tt.getState();nt.interaction=nt.interaction.filter(rt=>rt!==et),nt.initialHits=nt.initialHits.filter(rt=>rt!==et),nt.hovered.forEach((rt,it)=>{(rt.eventObject===et||rt.object===et)&&nt.hovered.delete(it)}),nt.capturedMap.forEach((rt,it)=>{releaseInternalPointerCapture(nt.capturedMap,et,rt,it)})}function createEvents(tt){function et(lt){const{internal:ct}=tt.getState(),ut=lt.offsetX-ct.initialClick[0],ht=lt.offsetY-ct.initialClick[1];return Math.round(Math.sqrt(ut*ut+ht*ht))}function nt(lt){return lt.filter(ct=>["Move","Over","Enter","Out","Leave"].some(ut=>{var ht;return(ht=ct.__r3f)==null?void 0:ht.handlers["onPointer"+ut]}))}function rt(lt,ct){const ut=tt.getState(),ht=new Set,dt=[],pt=ct?ct(ut.internal.interaction):ut.internal.interaction;for(let bt=0;bt{const vt=getRootState(bt.object),kt=getRootState(wt.object);return!vt||!kt?bt.distance-wt.distance:kt.events.priority-vt.events.priority||bt.distance-wt.distance}).filter(bt=>{const wt=makeId(bt);return ht.has(wt)?!1:(ht.add(wt),!0)});ut.events.filter&&(gt=ut.events.filter(gt,ut));for(const bt of gt){let wt=bt.object;for(;wt;){var yt;(yt=wt.__r3f)!=null&&yt.eventCount&&dt.push({...bt,eventObject:wt}),wt=wt.parent}}if("pointerId"in lt&&ut.internal.capturedMap.has(lt.pointerId))for(let bt of ut.internal.capturedMap.get(lt.pointerId).values())ht.has(makeId(bt.intersection))||dt.push(bt.intersection);return dt}function it(lt,ct,ut,ht){const dt=tt.getState();if(lt.length){const pt={stopped:!1};for(const mt of lt){const gt=getRootState(mt.object)||dt,{raycaster:yt,pointer:bt,camera:wt,internal:vt}=gt,kt=new Vector3(bt.x,bt.y,0).unproject(wt),St=Lt=>{var jt,Rt;return(jt=(Rt=vt.capturedMap.get(Lt))==null?void 0:Rt.has(mt.eventObject))!=null?jt:!1},Et=Lt=>{const jt={intersection:mt,target:ct.target};vt.capturedMap.has(Lt)?vt.capturedMap.get(Lt).set(mt.eventObject,jt):vt.capturedMap.set(Lt,new Map([[mt.eventObject,jt]])),ct.target.setPointerCapture(Lt)},At=Lt=>{const jt=vt.capturedMap.get(Lt);jt&&releaseInternalPointerCapture(vt.capturedMap,mt.eventObject,jt,Lt)};let Tt={};for(let Lt in ct){let jt=ct[Lt];typeof jt!="function"&&(Tt[Lt]=jt)}let Mt={...mt,...Tt,pointer:bt,intersections:lt,stopped:pt.stopped,delta:ut,unprojectedPoint:kt,ray:yt.ray,camera:wt,stopPropagation(){const Lt="pointerId"in ct&&vt.capturedMap.get(ct.pointerId);if((!Lt||Lt.has(mt.eventObject))&&(Mt.stopped=pt.stopped=!0,vt.hovered.size&&Array.from(vt.hovered.values()).find(jt=>jt.eventObject===mt.eventObject))){const jt=lt.slice(0,lt.indexOf(mt));ot([...jt,mt])}},target:{hasPointerCapture:St,setPointerCapture:Et,releasePointerCapture:At},currentTarget:{hasPointerCapture:St,setPointerCapture:Et,releasePointerCapture:At},nativeEvent:ct};if(ht(Mt),pt.stopped===!0)break}}return lt}function ot(lt){const{internal:ct}=tt.getState();for(const ut of ct.hovered.values())if(!lt.length||!lt.find(ht=>ht.object===ut.object&&ht.index===ut.index&&ht.instanceId===ut.instanceId)){const dt=ut.eventObject.__r3f,pt=dt==null?void 0:dt.handlers;if(ct.hovered.delete(makeId(ut)),dt!=null&&dt.eventCount){const mt={...ut,intersections:lt};pt.onPointerOut==null||pt.onPointerOut(mt),pt.onPointerLeave==null||pt.onPointerLeave(mt)}}}function at(lt,ct){for(let ut=0;utot([]);case"onLostPointerCapture":return ct=>{const{internal:ut}=tt.getState();"pointerId"in ct&&ut.capturedMap.has(ct.pointerId)&&requestAnimationFrame(()=>{ut.capturedMap.has(ct.pointerId)&&(ut.capturedMap.delete(ct.pointerId),ot([]))})}}return function(ut){const{onPointerMissed:ht,internal:dt}=tt.getState();dt.lastEvent.current=ut;const pt=lt==="onPointerMove",mt=lt==="onClick"||lt==="onContextMenu"||lt==="onDoubleClick",yt=rt(ut,pt?nt:void 0),bt=mt?et(ut):0;lt==="onPointerDown"&&(dt.initialClick=[ut.offsetX,ut.offsetY],dt.initialHits=yt.map(vt=>vt.eventObject)),mt&&!yt.length&&bt<=2&&(at(ut,dt.interaction),ht&&ht(ut)),pt&&ot(yt);function wt(vt){const kt=vt.eventObject,St=kt.__r3f,Et=St==null?void 0:St.handlers;if(St!=null&&St.eventCount)if(pt){if(Et.onPointerOver||Et.onPointerEnter||Et.onPointerOut||Et.onPointerLeave){const At=makeId(vt),Tt=dt.hovered.get(At);Tt?Tt.stopped&&vt.stopPropagation():(dt.hovered.set(At,vt),Et.onPointerOver==null||Et.onPointerOver(vt),Et.onPointerEnter==null||Et.onPointerEnter(vt))}Et.onPointerMove==null||Et.onPointerMove(vt)}else{const At=Et[lt];At?(!mt||dt.initialHits.includes(kt))&&(at(ut,dt.interaction.filter(Tt=>!dt.initialHits.includes(Tt))),At(vt)):mt&&dt.initialHits.includes(kt)&&at(ut,dt.interaction.filter(Tt=>!dt.initialHits.includes(Tt)))}}it(yt,ut,bt,wt)}}return{handlePointer:st}}const privateKeys=["set","get","setSize","setFrameloop","setDpr","events","invalidate","advance","size","viewport"],isRenderer=tt=>!!(tt!=null&&tt.render),context$2=reactExports.createContext(null),createStore$1=(tt,et)=>{const nt=create$1((st,lt)=>{const ct=new Vector3,ut=new Vector3,ht=new Vector3;function dt(bt=lt().camera,wt=ut,vt=lt().size){const{width:kt,height:St,top:Et,left:At}=vt,Tt=kt/St;wt instanceof Vector3?ht.copy(wt):ht.set(...wt);const Mt=bt.getWorldPosition(ct).distanceTo(ht);if(isOrthographicCamera$1(bt))return{width:kt/bt.zoom,height:St/bt.zoom,top:Et,left:At,factor:1,distance:Mt,aspect:Tt};{const Lt=bt.fov*Math.PI/180,jt=2*Math.tan(Lt/2)*Mt,Rt=jt*(kt/St);return{width:Rt,height:jt,top:Et,left:At,factor:kt/Rt,distance:Mt,aspect:Tt}}}let pt;const mt=bt=>st(wt=>({performance:{...wt.performance,current:bt}})),gt=new Vector2;return{set:st,get:lt,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(bt=1)=>tt(lt(),bt),advance:(bt,wt)=>et(bt,wt,lt()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new Clock$1,pointer:gt,mouse:gt,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const bt=lt();pt&&clearTimeout(pt),bt.performance.current!==bt.performance.min&&mt(bt.performance.min),pt=setTimeout(()=>mt(lt().performance.max),bt.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:dt},setEvents:bt=>st(wt=>({...wt,events:{...wt.events,...bt}})),setSize:(bt,wt,vt,kt,St)=>{const Et=lt().camera,At={width:bt,height:wt,top:kt||0,left:St||0,updateStyle:vt};st(Tt=>({size:At,viewport:{...Tt.viewport,...dt(Et,ut,At)}}))},setDpr:bt=>st(wt=>{const vt=calculateDpr(bt);return{viewport:{...wt.viewport,dpr:vt,initialDpr:wt.viewport.initialDpr||vt}}}),setFrameloop:(bt="always")=>{const wt=lt().clock;wt.stop(),wt.elapsedTime=0,bt!=="never"&&(wt.start(),wt.elapsedTime=0),st(()=>({frameloop:bt}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:reactExports.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(bt,wt,vt)=>{const kt=lt().internal;return kt.priority=kt.priority+(wt>0?1:0),kt.subscribers.push({ref:bt,priority:wt,store:vt}),kt.subscribers=kt.subscribers.sort((St,Et)=>St.priority-Et.priority),()=>{const St=lt().internal;St!=null&&St.subscribers&&(St.priority=St.priority-(wt>0?1:0),St.subscribers=St.subscribers.filter(Et=>Et.ref!==bt))}}}}}),rt=nt.getState();let it=rt.size,ot=rt.viewport.dpr,at=rt.camera;return nt.subscribe(()=>{const{camera:st,size:lt,viewport:ct,gl:ut,set:ht}=nt.getState();if(lt!==it||ct.dpr!==ot){var dt;it=lt,ot=ct.dpr,updateCamera(st,lt),ut.setPixelRatio(ct.dpr);const pt=(dt=lt.updateStyle)!=null?dt:typeof HTMLCanvasElement<"u"&&ut.domElement instanceof HTMLCanvasElement;ut.setSize(lt.width,lt.height,pt)}st!==at&&(at=st,ht(pt=>({viewport:{...pt.viewport,...pt.viewport.getCurrentViewport(st)}})))}),nt.subscribe(st=>tt(st)),nt};function createSubs(tt,et){const nt={callback:tt};return et.add(nt),()=>void et.delete(nt)}let i$2,globalEffects=new Set,globalAfterEffects=new Set,globalTailEffects=new Set;const addEffect=tt=>createSubs(tt,globalEffects),addAfterEffect=tt=>createSubs(tt,globalAfterEffects),addTail=tt=>createSubs(tt,globalTailEffects);function run(tt,et){if(tt.size)for(const{callback:nt}of tt.values())nt(et)}function flushGlobalEffects(tt,et){switch(tt){case"before":return run(globalEffects,et);case"after":return run(globalAfterEffects,et);case"tail":return run(globalTailEffects,et)}}let subscribers,subscription;function render$1(tt,et,nt){let rt=et.clock.getDelta();for(et.frameloop==="never"&&typeof tt=="number"&&(rt=tt-et.clock.elapsedTime,et.clock.oldTime=et.clock.elapsedTime,et.clock.elapsedTime=tt),subscribers=et.internal.subscribers,i$2=0;i$20)&&!((ct=it.gl.xr)!=null&&ct.isPresenting)&&(nt+=render$1(lt,it))}if(flushGlobalEffects("after",lt),nt===0)return flushGlobalEffects("tail",lt),et=!1,cancelAnimationFrame(rt)}function at(lt,ct=1){var ut;if(!lt)return tt.forEach(ht=>at(ht.store.getState()),ct);(ut=lt.gl.xr)!=null&&ut.isPresenting||!lt.internal.active||lt.frameloop==="never"||(lt.internal.frames=Math.min(60,lt.internal.frames+ct),et||(et=!0,requestAnimationFrame(ot)))}function st(lt,ct=!0,ut,ht){if(ct&&flushGlobalEffects("before",lt),ut)render$1(lt,ut,ht);else for(const dt of tt.values())render$1(lt,dt.store.getState());ct&&flushGlobalEffects("after",lt)}return{loop:ot,invalidate:at,advance:st}}function useInstanceHandle(tt){const et=reactExports.useRef(null);return useIsomorphicLayoutEffect$1(()=>void(et.current=tt.current.__r3f),[tt]),et}function useStore(){const tt=reactExports.useContext(context$2);if(!tt)throw new Error("R3F: Hooks can only be used within the Canvas component!");return tt}function useThree(tt=nt=>nt,et){return useStore()(tt,et)}function useFrame(tt,et=0){const nt=useStore(),rt=nt.getState().internal.subscribe,it=useMutableCallback(tt);return useIsomorphicLayoutEffect$1(()=>rt(it,et,nt),[et,rt,nt]),null}function loadingFn(tt,et){return function(nt,...rt){const it=new nt;return tt&&tt(it),Promise.all(rt.map(ot=>new Promise((at,st)=>it.load(ot,lt=>{lt.scene&&Object.assign(lt,buildGraph(lt.scene)),at(lt)},et,lt=>st(new Error(`Could not load ${ot}: ${lt.message}`))))))}}function useLoader(tt,et,nt,rt){const it=Array.isArray(et)?et:[et],ot=suspend$1(loadingFn(nt,rt),[tt,...it],{equal:is$1.equ});return Array.isArray(et)?ot:ot[0]}useLoader.preload=function(tt,et,nt){const rt=Array.isArray(et)?et:[et];return preload(loadingFn(nt),[tt,...rt])};useLoader.clear=function(tt,et){const nt=Array.isArray(et)?et:[et];return clear([tt,...nt])};const roots=new Map,{invalidate,advance}=createLoop(roots),{reconciler,applyProps}=createRenderer(roots,getEventPriority),shallowLoose={objects:"shallow",strict:!1},createRendererInstance=(tt,et)=>{const nt=typeof tt=="function"?tt(et):tt;return isRenderer(nt)?nt:new WebGLRenderer({powerPreference:"high-performance",canvas:et,antialias:!0,alpha:!0,...tt})};function computeInitialSize(tt,et){if(et)return et;if(typeof HTMLCanvasElement<"u"&&tt instanceof HTMLCanvasElement&&tt.parentElement){const{width:nt,height:rt,top:it,left:ot}=tt.parentElement.getBoundingClientRect();return{width:nt,height:rt,top:it,left:ot}}else if(typeof OffscreenCanvas<"u"&&tt instanceof OffscreenCanvas)return{width:tt.width,height:tt.height,top:0,left:0};return{width:0,height:0,top:0,left:0}}function createRoot(tt){const et=roots.get(tt),nt=et==null?void 0:et.fiber,rt=et==null?void 0:et.store;et&&console.warn("R3F.createRoot should only be called once!");const it=typeof reportError=="function"?reportError:console.error,ot=rt||createStore$1(invalidate,advance),at=nt||reconciler.createContainer(ot,constantsExports.ConcurrentRoot,null,!1,null,"",it,null);et||roots.set(tt,{fiber:at,store:ot});let st,lt=!1,ct;return{configure(ut={}){let{gl:ht,size:dt,scene:pt,events:mt,onCreated:gt,shadows:yt=!1,linear:bt=!1,flat:wt=!1,legacy:vt=!1,orthographic:kt=!1,frameloop:St="always",dpr:Et=[1,2],performance:At,raycaster:Tt,camera:Mt,onPointerMissed:Lt}=ut,jt=ot.getState(),Rt=jt.gl;jt.gl||jt.set({gl:Rt=createRendererInstance(ht,tt)});let $t=jt.raycaster;$t||jt.set({raycaster:$t=new Raycaster});const{params:xt,...It}=Tt||{};if(is$1.equ(It,$t,shallowLoose)||applyProps($t,{...It}),is$1.equ(xt,$t.params,shallowLoose)||applyProps($t,{params:{...$t.params,...xt}}),!jt.camera||jt.camera===ct&&!is$1.equ(ct,Mt,shallowLoose)){ct=Mt;const Ct=Mt instanceof Camera,Ht=Ct?Mt:kt?new OrthographicCamera(0,0,0,0,.1,1e3):new PerspectiveCamera(75,0,.1,1e3);Ct||(Ht.position.z=5,Mt&&applyProps(Ht,Mt),!jt.camera&&!(Mt!=null&&Mt.rotation)&&Ht.lookAt(0,0,0)),jt.set({camera:Ht})}if(!jt.scene){let Ct;pt instanceof Scene?Ct=pt:(Ct=new Scene,pt&&applyProps(Ct,pt)),jt.set({scene:prepare(Ct)})}if(!jt.xr){var Ot;const Ct=(nn,Yt)=>{const fn=ot.getState();fn.frameloop!=="never"&&advance(nn,!0,fn,Yt)},Ht=()=>{const nn=ot.getState();nn.gl.xr.enabled=nn.gl.xr.isPresenting,nn.gl.xr.setAnimationLoop(nn.gl.xr.isPresenting?Ct:null),nn.gl.xr.isPresenting||invalidate(nn)},Jt={connect(){const nn=ot.getState().gl;nn.xr.addEventListener("sessionstart",Ht),nn.xr.addEventListener("sessionend",Ht)},disconnect(){const nn=ot.getState().gl;nn.xr.removeEventListener("sessionstart",Ht),nn.xr.removeEventListener("sessionend",Ht)}};typeof((Ot=Rt.xr)==null?void 0:Ot.addEventListener)=="function"&&Jt.connect(),jt.set({xr:Jt})}if(Rt.shadowMap){const Ct=Rt.shadowMap.enabled,Ht=Rt.shadowMap.type;if(Rt.shadowMap.enabled=!!yt,is$1.boo(yt))Rt.shadowMap.type=PCFSoftShadowMap;else if(is$1.str(yt)){var zt;const Jt={basic:BasicShadowMap,percentage:PCFShadowMap,soft:PCFSoftShadowMap,variance:VSMShadowMap};Rt.shadowMap.type=(zt=Jt[yt])!=null?zt:PCFSoftShadowMap}else is$1.obj(yt)&&Object.assign(Rt.shadowMap,yt);(Ct!==Rt.shadowMap.enabled||Ht!==Rt.shadowMap.type)&&(Rt.shadowMap.needsUpdate=!0)}const Ut=getColorManagement();Ut&&("enabled"in Ut?Ut.enabled=!vt:"legacyMode"in Ut&&(Ut.legacyMode=vt)),applyProps(Rt,{outputEncoding:bt?3e3:3001,toneMapping:wt?NoToneMapping:ACESFilmicToneMapping}),jt.legacy!==vt&&jt.set(()=>({legacy:vt})),jt.linear!==bt&&jt.set(()=>({linear:bt})),jt.flat!==wt&&jt.set(()=>({flat:wt})),ht&&!is$1.fun(ht)&&!isRenderer(ht)&&!is$1.equ(ht,Rt,shallowLoose)&&applyProps(Rt,ht),mt&&!jt.events.handlers&&jt.set({events:mt(ot)});const Nt=computeInitialSize(tt,dt);return is$1.equ(Nt,jt.size,shallowLoose)||jt.setSize(Nt.width,Nt.height,Nt.updateStyle,Nt.top,Nt.left),Et&&jt.viewport.dpr!==calculateDpr(Et)&&jt.setDpr(Et),jt.frameloop!==St&&jt.setFrameloop(St),jt.onPointerMissed||jt.set({onPointerMissed:Lt}),At&&!is$1.equ(At,jt.performance,shallowLoose)&&jt.set(Ct=>({performance:{...Ct.performance,...At}})),st=gt,lt=!0,this},render(ut){return lt||this.configure(),reconciler.updateContainer(reactExports.createElement(Provider,{store:ot,children:ut,onCreated:st,rootElement:tt}),at,null,()=>{}),ot},unmount(){unmountComponentAtNode(tt)}}}function Provider({store:tt,children:et,onCreated:nt,rootElement:rt}){return useIsomorphicLayoutEffect$1(()=>{const it=tt.getState();it.set(ot=>({internal:{...ot.internal,active:!0}})),nt&&nt(it),tt.getState().events.connected||it.events.connect==null||it.events.connect(rt)},[]),reactExports.createElement(context$2.Provider,{value:tt},et)}function unmountComponentAtNode(tt,et){const nt=roots.get(tt),rt=nt==null?void 0:nt.fiber;if(rt){const it=nt==null?void 0:nt.store.getState();it&&(it.internal.active=!1),reconciler.updateContainer(null,rt,null,()=>{it&&setTimeout(()=>{try{var ot,at,st,lt;it.events.disconnect==null||it.events.disconnect(),(ot=it.gl)==null||(at=ot.renderLists)==null||at.dispose==null||at.dispose(),(st=it.gl)==null||st.forceContextLoss==null||st.forceContextLoss(),(lt=it.gl)!=null&<.xr&&it.xr.disconnect(),dispose(it),roots.delete(tt),et&&et(tt)}catch{}},500)})}}function createPortal(tt,et,nt){return reactExports.createElement(Portal,{key:et.uuid,children:tt,container:et,state:nt})}function Portal({state:tt={},children:et,container:nt}){const{events:rt,size:it,...ot}=tt,at=useStore(),[st]=reactExports.useState(()=>new Raycaster),[lt]=reactExports.useState(()=>new Vector2),ct=reactExports.useCallback((ht,dt)=>{const pt={...ht};Object.keys(ht).forEach(gt=>{(privateKeys.includes(gt)||ht[gt]!==dt[gt]&&dt[gt])&&delete pt[gt]});let mt;if(dt&&it){const gt=dt.camera;mt=ht.viewport.getCurrentViewport(gt,new Vector3,it),gt!==ht.camera&&updateCamera(gt,it)}return{...pt,scene:nt,raycaster:st,pointer:lt,mouse:lt,previousRoot:at,events:{...ht.events,...dt==null?void 0:dt.events,...rt},size:{...ht.size,...it},viewport:{...ht.viewport,...mt},...ot}},[tt]),[ut]=reactExports.useState(()=>{const ht=at.getState();return create$1((pt,mt)=>({...ht,scene:nt,raycaster:st,pointer:lt,mouse:lt,previousRoot:at,events:{...ht.events,...rt},size:{...ht.size,...it},...ot,set:pt,get:mt,setEvents:gt=>pt(yt=>({...yt,events:{...yt.events,...gt}}))}))});return reactExports.useEffect(()=>{const ht=at.subscribe(dt=>ut.setState(pt=>ct(dt,pt)));return()=>{ht(),ut.destroy()}},[]),reactExports.useEffect(()=>{ut.setState(ht=>ct(at.getState(),ht))},[ct]),reactExports.createElement(reactExports.Fragment,null,reconciler.createPortal(reactExports.createElement(context$2.Provider,{value:ut},et),ut,null))}reconciler.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:reactExports.version});function debounce$3(tt,et,nt){var rt,it,ot,at,st;et==null&&(et=100);function lt(){var ut=Date.now()-at;ut=0?rt=setTimeout(lt,et-ut):(rt=null,nt||(st=tt.apply(ot,it),ot=it=null))}var ct=function(){ot=this,it=arguments,at=Date.now();var ut=nt&&!rt;return rt||(rt=setTimeout(lt,et)),ut&&(st=tt.apply(ot,it),ot=it=null),st};return ct.clear=function(){rt&&(clearTimeout(rt),rt=null)},ct.flush=function(){rt&&(st=tt.apply(ot,it),ot=it=null,clearTimeout(rt),rt=null)},ct}debounce$3.debounce=debounce$3;var debounce_1$1=debounce$3;const createDebounce=getDefaultExportFromCjs(debounce_1$1);function useMeasure(tt){let{debounce:et,scroll:nt,polyfill:rt,offsetSize:it}=tt===void 0?{debounce:0,scroll:!1,offsetSize:!1}:tt;const ot=rt||(typeof window>"u"?class{}:window.ResizeObserver);if(!ot)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[at,st]=reactExports.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),lt=reactExports.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:at}),ct=et?typeof et=="number"?et:et.scroll:null,ut=et?typeof et=="number"?et:et.resize:null,ht=reactExports.useRef(!1);reactExports.useEffect(()=>(ht.current=!0,()=>void(ht.current=!1)));const[dt,pt,mt]=reactExports.useMemo(()=>{const wt=()=>{if(!lt.current.element)return;const{left:vt,top:kt,width:St,height:Et,bottom:At,right:Tt,x:Mt,y:Lt}=lt.current.element.getBoundingClientRect(),jt={left:vt,top:kt,width:St,height:Et,bottom:At,right:Tt,x:Mt,y:Lt};lt.current.element instanceof HTMLElement&&it&&(jt.height=lt.current.element.offsetHeight,jt.width=lt.current.element.offsetWidth),Object.freeze(jt),ht.current&&!areBoundsEqual(lt.current.lastBounds,jt)&&st(lt.current.lastBounds=jt)};return[wt,ut?createDebounce(wt,ut):wt,ct?createDebounce(wt,ct):wt]},[st,it,ct,ut]);function gt(){lt.current.scrollContainers&&(lt.current.scrollContainers.forEach(wt=>wt.removeEventListener("scroll",mt,!0)),lt.current.scrollContainers=null),lt.current.resizeObserver&&(lt.current.resizeObserver.disconnect(),lt.current.resizeObserver=null)}function yt(){lt.current.element&&(lt.current.resizeObserver=new ot(mt),lt.current.resizeObserver.observe(lt.current.element),nt&<.current.scrollContainers&<.current.scrollContainers.forEach(wt=>wt.addEventListener("scroll",mt,{capture:!0,passive:!0})))}const bt=wt=>{!wt||wt===lt.current.element||(gt(),lt.current.element=wt,lt.current.scrollContainers=findScrollContainers(wt),yt())};return useOnWindowScroll(mt,!!nt),useOnWindowResize(pt),reactExports.useEffect(()=>{gt(),yt()},[nt,mt,pt]),reactExports.useEffect(()=>gt,[]),[bt,at,dt]}function useOnWindowResize(tt){reactExports.useEffect(()=>{const et=tt;return window.addEventListener("resize",et),()=>void window.removeEventListener("resize",et)},[tt])}function useOnWindowScroll(tt,et){reactExports.useEffect(()=>{if(et){const nt=tt;return window.addEventListener("scroll",nt,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",nt,!0)}},[tt,et])}function findScrollContainers(tt){const et=[];if(!tt||tt===document.body)return et;const{overflow:nt,overflowX:rt,overflowY:it}=window.getComputedStyle(tt);return[nt,rt,it].some(ot=>ot==="auto"||ot==="scroll")&&et.push(tt),[...et,...findScrollContainers(tt.parentElement)]}const keys$5=["x","y","top","bottom","left","right","width","height"],areBoundsEqual=(tt,et)=>keys$5.every(nt=>tt[nt]===et[nt]);var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(tt,et,nt)=>et in tt?__defProp(tt,et,{enumerable:!0,configurable:!0,writable:!0,value:nt}):tt[et]=nt,__spreadValues=(tt,et)=>{for(var nt in et||(et={}))__hasOwnProp.call(et,nt)&&__defNormalProp(tt,nt,et[nt]);if(__getOwnPropSymbols)for(var nt of __getOwnPropSymbols(et))__propIsEnum.call(et,nt)&&__defNormalProp(tt,nt,et[nt]);return tt},__spreadProps=(tt,et)=>__defProps(tt,__getOwnPropDescs(et));function traverseFiber(tt,et,nt){if(!tt)return;if(nt(tt)===!0)return tt;let rt=et?tt.return:tt.child;for(;rt;){const it=traverseFiber(rt,et,nt);if(it)return it;rt=et?null:rt.sibling}}function wrapContext(tt){try{return Object.defineProperties(tt,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return tt}}const FiberContext=wrapContext(reactExports.createContext(null));class FiberProvider extends reactExports.Component{render(){return reactExports.createElement(FiberContext.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner,ReactCurrentDispatcher}=reactExports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function useFiber(){const tt=reactExports.useContext(FiberContext);if(tt===null)throw new Error("its-fine: useFiber must be called within a !");const et=reactExports.useId();return reactExports.useMemo(()=>{for(const rt of[ReactCurrentOwner==null?void 0:ReactCurrentOwner.current,tt,tt==null?void 0:tt.alternate]){if(!rt)continue;const it=traverseFiber(rt,!1,ot=>{let at=ot.memoizedState;for(;at;){if(at.memoizedState===et)return!0;at=at.next}});if(it)return it}},[tt,et])}function useContextMap(){var tt,et;const nt=useFiber(),[rt]=reactExports.useState(()=>new Map);rt.clear();let it=nt;for(;it;){const ot=(tt=it.type)==null?void 0:tt._context;ot&&ot!==FiberContext&&!rt.has(ot)&&rt.set(ot,(et=ReactCurrentDispatcher==null?void 0:ReactCurrentDispatcher.current)==null?void 0:et.readContext(wrapContext(ot))),it=it.return}return rt}function useContextBridge(){const tt=useContextMap();return reactExports.useMemo(()=>Array.from(tt.keys()).reduce((et,nt)=>rt=>reactExports.createElement(et,null,reactExports.createElement(nt.Provider,__spreadProps(__spreadValues({},rt),{value:tt.get(nt)}))),et=>reactExports.createElement(FiberProvider,__spreadValues({},et))),[tt])}const DOM_EVENTS={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function createPointerEvents(tt){const{handlePointer:et}=createEvents(tt);return{priority:1,enabled:!0,compute(nt,rt,it){rt.pointer.set(nt.offsetX/rt.size.width*2-1,-(nt.offsetY/rt.size.height)*2+1),rt.raycaster.setFromCamera(rt.pointer,rt.camera)},connected:void 0,handlers:Object.keys(DOM_EVENTS).reduce((nt,rt)=>({...nt,[rt]:et(rt)}),{}),update:()=>{var nt;const{events:rt,internal:it}=tt.getState();(nt=it.lastEvent)!=null&&nt.current&&rt.handlers&&rt.handlers.onPointerMove(it.lastEvent.current)},connect:nt=>{var rt;const{set:it,events:ot}=tt.getState();ot.disconnect==null||ot.disconnect(),it(at=>({events:{...at.events,connected:nt}})),Object.entries((rt=ot.handlers)!=null?rt:[]).forEach(([at,st])=>{const[lt,ct]=DOM_EVENTS[at];nt.addEventListener(lt,st,{passive:ct})})},disconnect:()=>{const{set:nt,events:rt}=tt.getState();if(rt.connected){var it;Object.entries((it=rt.handlers)!=null?it:[]).forEach(([ot,at])=>{if(rt&&rt.connected instanceof HTMLElement){const[st]=DOM_EVENTS[ot];rt.connected.removeEventListener(st,at)}}),nt(ot=>({events:{...ot.events,connected:void 0}}))}}}}const CanvasImpl=reactExports.forwardRef(function({children:et,fallback:nt,resize:rt,style:it,gl:ot,events:at=createPointerEvents,eventSource:st,eventPrefix:lt,shadows:ct,linear:ut,flat:ht,legacy:dt,orthographic:pt,frameloop:mt,dpr:gt,performance:yt,raycaster:bt,camera:wt,onPointerMissed:vt,onCreated:kt,...St},Et){reactExports.useMemo(()=>extend$2(THREE$1),[]);const At=useContextBridge(),[Tt,Mt]=useMeasure({scroll:!0,debounce:{scroll:50,resize:0},...rt}),Lt=reactExports.useRef(null),jt=reactExports.useRef(null);reactExports.useImperativeHandle(Et,()=>Lt.current);const Rt=useMutableCallback(vt),[$t,xt]=reactExports.useState(!1),[It,Ot]=reactExports.useState(!1);if($t)throw $t;if(It)throw It;const zt=reactExports.useRef(null);useIsomorphicLayoutEffect$1(()=>{const Wt=Lt.current;Mt.width>0&&Mt.height>0&&Wt&&(zt.current||(zt.current=createRoot(Wt)),zt.current.configure({gl:ot,events:at,shadows:ct,linear:ut,flat:ht,legacy:dt,orthographic:pt,frameloop:mt,dpr:gt,performance:yt,raycaster:bt,camera:wt,size:Mt,onPointerMissed:(...Ft)=>Rt.current==null?void 0:Rt.current(...Ft),onCreated:Ft=>{Ft.events.connect==null||Ft.events.connect(st?isRef(st)?st.current:st:jt.current),lt&&Ft.setEvents({compute:(Nt,Ct)=>{const Ht=Nt[lt+"X"],Jt=Nt[lt+"Y"];Ct.pointer.set(Ht/Ct.size.width*2-1,-(Jt/Ct.size.height)*2+1),Ct.raycaster.setFromCamera(Ct.pointer,Ct.camera)}}),kt==null||kt(Ft)}}),zt.current.render(reactExports.createElement(At,null,reactExports.createElement(ErrorBoundary,{set:Ot},reactExports.createElement(reactExports.Suspense,{fallback:reactExports.createElement(Block,{set:xt})},et)))))}),reactExports.useEffect(()=>{const Wt=Lt.current;if(Wt)return()=>unmountComponentAtNode(Wt)},[]);const Ut=st?"none":"auto";return reactExports.createElement("div",_extends$r({ref:jt,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:Ut,...it}},St),reactExports.createElement("div",{ref:Tt,style:{width:"100%",height:"100%"}},reactExports.createElement("canvas",{ref:Lt,style:{display:"block"}},nt)))}),Canvas$1=reactExports.forwardRef(function(et,nt){return reactExports.createElement(FiberProvider,null,reactExports.createElement(CanvasImpl,_extends$r({},et,{ref:nt})))}),v1=new Vector3,v2=new Vector3,v3=new Vector3;function defaultCalculatePosition(tt,et,nt){const rt=v1.setFromMatrixPosition(tt.matrixWorld);rt.project(et);const it=nt.width/2,ot=nt.height/2;return[rt.x*it+it,-(rt.y*ot)+ot]}function isObjectBehindCamera(tt,et){const nt=v1.setFromMatrixPosition(tt.matrixWorld),rt=v2.setFromMatrixPosition(et.matrixWorld),it=nt.sub(rt),ot=et.getWorldDirection(v3);return it.angleTo(ot)>Math.PI/2}function isObjectVisible(tt,et,nt,rt){const it=v1.setFromMatrixPosition(tt.matrixWorld),ot=it.clone();ot.project(et),nt.setFromCamera(ot,et);const at=nt.intersectObjects(rt,!0);if(at.length){const st=at[0].distance;return it.distanceTo(nt.ray.origin)Math.abs(tt)<1e-10?0:tt;function getCSSMatrix(tt,et,nt=""){let rt="matrix3d(";for(let it=0;it!==16;it++)rt+=epsilon$1(et[it]*tt.elements[it])+(it!==15?",":")");return nt+rt}const getCameraCSSMatrix=(tt=>et=>getCSSMatrix(et,tt))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),getObjectCSSMatrix=(tt=>(et,nt)=>getCSSMatrix(et,tt(nt),"translate(-50%,-50%)"))(tt=>[1/tt,1/tt,1/tt,1,-1/tt,-1/tt,-1/tt,-1,1/tt,1/tt,1/tt,1,1,1,1,1]);function isRefObject(tt){return tt&&typeof tt=="object"&&"current"in tt}const Html$1=reactExports.forwardRef(({children:tt,eps:et=.001,style:nt,className:rt,prepend:it,center:ot,fullscreen:at,portal:st,distanceFactor:lt,sprite:ct=!1,transform:ut=!1,occlude:ht,onOcclude:dt,castShadow:pt,receiveShadow:mt,material:gt,geometry:yt,zIndexRange:bt=[16777271,0],calculatePosition:wt=defaultCalculatePosition,as:vt="div",wrapperClass:kt,pointerEvents:St="auto",...Et},At)=>{const{gl:Tt,camera:Mt,scene:Lt,size:jt,raycaster:Rt,events:$t,viewport:xt}=useThree(),[It]=reactExports.useState(()=>document.createElement(vt)),Ot=reactExports.useRef(),zt=reactExports.useRef(null),Ut=reactExports.useRef(0),Wt=reactExports.useRef([0,0]),Ft=reactExports.useRef(null),Nt=reactExports.useRef(null),Ct=(st==null?void 0:st.current)||$t.connected||Tt.domElement.parentNode,Ht=reactExports.useRef(null),Jt=reactExports.useRef(!1),nn=reactExports.useMemo(()=>ht&&ht!=="blending"||Array.isArray(ht)&&ht.length&&isRefObject(ht[0]),[ht]);reactExports.useLayoutEffect(()=>{const En=Tt.domElement;ht&&ht==="blending"?(En.style.zIndex=`${Math.floor(bt[0]/2)}`,En.style.position="absolute",En.style.pointerEvents="none"):(En.style.zIndex=null,En.style.position=null,En.style.pointerEvents=null)},[ht]),reactExports.useLayoutEffect(()=>{if(zt.current){const En=Ot.current=createRoot$1(It);if(Lt.updateMatrixWorld(),ut)It.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const an=wt(zt.current,Mt,jt);It.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${an[0]}px,${an[1]}px,0);transform-origin:0 0;`}return Ct&&(it?Ct.prepend(It):Ct.appendChild(It)),()=>{Ct&&Ct.removeChild(It),En.unmount()}}},[Ct,ut]),reactExports.useLayoutEffect(()=>{kt&&(It.className=kt)},[kt]);const Yt=reactExports.useMemo(()=>ut?{position:"absolute",top:0,left:0,width:jt.width,height:jt.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:ot?"translate3d(-50%,-50%,0)":"none",...at&&{top:-jt.height/2,left:-jt.width/2,width:jt.width,height:jt.height},...nt},[nt,ot,at,jt,ut]),fn=reactExports.useMemo(()=>({position:"absolute",pointerEvents:St}),[St]);reactExports.useLayoutEffect(()=>{if(Jt.current=!1,ut){var En;(En=Ot.current)==null||En.render(reactExports.createElement("div",{ref:Ft,style:Yt},reactExports.createElement("div",{ref:Nt,style:fn},reactExports.createElement("div",{ref:At,className:rt,style:nt,children:tt}))))}else{var an;(an=Ot.current)==null||an.render(reactExports.createElement("div",{ref:At,style:Yt,className:rt,children:tt}))}});const cn=reactExports.useRef(!0);useFrame(En=>{if(zt.current){Mt.updateMatrixWorld(),zt.current.updateWorldMatrix(!0,!1);const an=ut?Wt.current:wt(zt.current,Mt,jt);if(ut||Math.abs(Ut.current-Mt.zoom)>et||Math.abs(Wt.current[0]-an[0])>et||Math.abs(Wt.current[1]-an[1])>et){const en=isObjectBehindCamera(zt.current,Mt);let Tn=!1;nn&&(ht!=="blending"?Tn=[Lt]:Array.isArray(ht)&&(Tn=ht.map(kn=>kn.current)));const Rn=cn.current;if(Tn){const kn=isObjectVisible(zt.current,Mt,Rt,Tn);cn.current=kn&&!en}else cn.current=!en;Rn!==cn.current&&(dt?dt(!cn.current):It.style.display=cn.current?"block":"none");const An=Math.floor(bt[0]/2),yn=ht?nn?[bt[0],An]:[An-1,0]:bt;if(It.style.zIndex=`${objectZIndex(zt.current,Mt,yn)}`,ut){const[kn,dn]=[jt.width/2,jt.height/2],gn=Mt.projectionMatrix.elements[5]*dn,{isOrthographicCamera:Cn,top:$n,left:un,bottom:rn,right:Sn}=Mt,Mn=getCameraCSSMatrix(Mt.matrixWorldInverse),Nn=Cn?`scale(${gn})translate(${epsilon$1(-(Sn+un)/2)}px,${epsilon$1(($n+rn)/2)}px)`:`translateZ(${gn}px)`;let hn=zt.current.matrixWorld;ct&&(hn=Mt.matrixWorldInverse.clone().transpose().copyPosition(hn).scale(zt.current.scale),hn.elements[3]=hn.elements[7]=hn.elements[11]=0,hn.elements[15]=1),It.style.width=jt.width+"px",It.style.height=jt.height+"px",It.style.perspective=Cn?"":`${gn}px`,Ft.current&&Nt.current&&(Ft.current.style.transform=`${Nn}${Mn}translate(${kn}px,${dn}px)`,Nt.current.style.transform=getObjectCSSMatrix(hn,1/((lt||10)/400)))}else{const kn=lt===void 0?1:objectScale(zt.current,Mt)*lt;It.style.transform=`translate3d(${an[0]}px,${an[1]}px,0) scale(${kn})`}Wt.current=an,Ut.current=Mt.zoom}}if(!nn&&Ht.current&&!Jt.current)if(ut){if(Ft.current){const an=Ft.current.children[0];if(an!=null&&an.clientWidth&&an!=null&&an.clientHeight){const{isOrthographicCamera:en}=Mt;if(en||yt)Et.scale&&(Array.isArray(Et.scale)?Et.scale instanceof Vector3?Ht.current.scale.copy(Et.scale.clone().divideScalar(1)):Ht.current.scale.set(1/Et.scale[0],1/Et.scale[1],1/Et.scale[2]):Ht.current.scale.setScalar(1/Et.scale));else{const Tn=(lt||10)/400,Rn=an.clientWidth*Tn,An=an.clientHeight*Tn;Ht.current.scale.set(Rn,An,1)}Jt.current=!0}}}else{const an=It.children[0];if(an!=null&&an.clientWidth&&an!=null&&an.clientHeight){const en=1/xt.factor,Tn=an.clientWidth*en,Rn=an.clientHeight*en;Ht.current.scale.set(Tn,Rn,1),Jt.current=!0}Ht.current.lookAt(En.camera.position)}});const _n=reactExports.useMemo(()=>({vertexShader:ut?void 0:` /* This shader is from the THREE's SpriteMaterial. We need to turn the backing plane into a Sprite @@ -4194,7 +4194,7 @@ No matching component was found for: void main() { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); } - `}),[ut]);return reactExports.createElement("group",_extends$r({},Tt,{ref:zt}),ht&&!nn&&reactExports.createElement("mesh",{castShadow:pt,receiveShadow:mt,ref:Ht},yt||reactExports.createElement("planeGeometry",null),gt||reactExports.createElement("shaderMaterial",{side:DoubleSide,vertexShader:_n.vertexShader,fragmentShader:_n.fragmentShader})))});function createStore(tt){let et;const nt=new Set,rt=(ct,ut)=>{const ht=typeof ct=="function"?ct(et):ct;if(ht!==et){const dt=et;et=ut?ht:Object.assign({},et,ht),nt.forEach(pt=>pt(et,dt))}},it=()=>et,ot=(ct,ut=it,ht=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let dt=ut(et);function pt(){const mt=ut(et);if(!ht(dt,mt)){const gt=dt;ct(dt=mt,gt)}}return nt.add(pt),()=>nt.delete(pt)},lt={setState:rt,getState:it,subscribe:(ct,ut,ht)=>ut||ht?ot(ct,ut,ht):(nt.add(ct),()=>nt.delete(ct)),destroy:()=>nt.clear()};return et=tt(rt,it,lt),lt}const isSSR$1=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),useIsomorphicLayoutEffect=isSSR$1?reactExports.useEffect:reactExports.useLayoutEffect;function create(tt){const et=typeof tt=="function"?createStore(tt):tt,nt=(rt=et.getState,it=Object.is)=>{const[,ot]=reactExports.useReducer(yt=>yt+1,0),at=et.getState(),st=reactExports.useRef(at),lt=reactExports.useRef(rt),ct=reactExports.useRef(it),ut=reactExports.useRef(!1),ht=reactExports.useRef();ht.current===void 0&&(ht.current=rt(at));let dt,pt=!1;(st.current!==at||lt.current!==rt||ct.current!==it||ut.current)&&(dt=rt(at),pt=!it(ht.current,dt)),useIsomorphicLayoutEffect(()=>{pt&&(ht.current=dt),st.current=at,lt.current=rt,ct.current=it,ut.current=!1});const mt=reactExports.useRef(at);useIsomorphicLayoutEffect(()=>{const yt=()=>{try{const wt=et.getState(),vt=lt.current(wt);ct.current(ht.current,vt)||(st.current=wt,ht.current=vt,ot())}catch{ut.current=!0,ot()}},bt=et.subscribe(yt);return et.getState()!==mt.current&&yt(),bt},[]);const gt=pt?dt:ht.current;return reactExports.useDebugValue(gt),gt};return Object.assign(nt,et),nt[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const rt=[nt,et];return{next(){const it=rt.length<=0;return{value:rt.shift(),done:it}}}},nt}let saveLastTotalLoaded=0;const useProgress=create(tt=>(DefaultLoadingManager.onStart=(et,nt,rt)=>{tt({active:!0,item:et,loaded:nt,total:rt,progress:(nt-saveLastTotalLoaded)/(rt-saveLastTotalLoaded)*100})},DefaultLoadingManager.onLoad=()=>{tt({active:!1})},DefaultLoadingManager.onError=et=>tt(nt=>({errors:[...nt.errors,et]})),DefaultLoadingManager.onProgress=(et,nt,rt)=>{nt===rt&&(saveLastTotalLoaded=rt),tt({active:!0,item:et,loaded:nt,total:rt,progress:(nt-saveLastTotalLoaded)/(rt-saveLastTotalLoaded)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0})),defaultDataInterpolation=tt=>`Loading ${tt.toFixed(2)}%`;function Loader$1({containerStyles:tt,innerStyles:et,barStyles:nt,dataStyles:rt,dataInterpolation:it=defaultDataInterpolation,initialState:ot=at=>at}){const{active:at,progress:st}=useProgress(),lt=reactExports.useRef(0),ct=reactExports.useRef(0),ut=reactExports.useRef(null),[ht,dt]=reactExports.useState(ot(at));reactExports.useEffect(()=>{let mt;return at!==ht&&(mt=setTimeout(()=>dt(at),300)),()=>clearTimeout(mt)},[ht,at]);const pt=reactExports.useCallback(()=>{ut.current&&(lt.current+=(st-lt.current)/2,(lt.current>.95*st||st===100)&&(lt.current=st),ut.current.innerText=it(lt.current),lt.current(pt(),()=>cancelAnimationFrame(ct.current)),[pt]),ht?reactExports.createElement("div",{style:{...styles$1.container,opacity:at?1:0,...tt}},reactExports.createElement("div",null,reactExports.createElement("div",{style:{...styles$1.inner,...et}},reactExports.createElement("div",{style:{...styles$1.bar,transform:`scaleX(${st/100})`,...nt}}),reactExports.createElement("span",{ref:ut,style:{...styles$1.data,...rt}})))):null}const styles$1={container:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"#171717",display:"flex",alignItems:"center",justifyContent:"center",transition:"opacity 300ms ease",zIndex:1e3},inner:{width:100,height:3,background:"#272727",textAlign:"center"},bar:{height:3,width:"100%",background:"white",transition:"transform 200ms",transformOrigin:"left center"},data:{display:"inline-block",position:"relative",fontVariantNumeric:"tabular-nums",marginTop:"0.8em",color:"#f0f0f0",fontSize:"0.6em",fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "Helvetica Neue", Helvetica, Arial, Roboto, Ubuntu, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',whiteSpace:"nowrap"}};function mergeRefs(tt){return function(et){tt.forEach(function(nt){typeof nt=="function"?nt(et):nt!=null&&(nt.current=et)})}}let webGL2Available;function isWebGL2Available$1(){var tt;if(webGL2Available!==void 0)return webGL2Available;try{let et;const nt=document.createElement("canvas");return webGL2Available=!!(window.WebGL2RenderingContext&&(et=nt.getContext("webgl2"))),et&&((tt=et.getExtension("WEBGL_lose_context"))==null||tt.loseContext()),webGL2Available}catch{return webGL2Available=!1}}function estimateBytesUsed(tt){let et=0;for(let rt in tt.attributes){const it=tt.getAttribute(rt);et+=it.count*it.itemSize*it.array.BYTES_PER_ELEMENT}const nt=tt.getIndex();return et+=nt?nt.count*nt.itemSize*nt.array.BYTES_PER_ELEMENT:0,et}const frustum=new Frustum,center$2=new Vector3,tmpPoint=new Vector3,vecNear=new Vector3,vecTopLeft=new Vector3,vecTopRight=new Vector3,vecDownRight=new Vector3,vecDownLeft=new Vector3,vecFarTopLeft=new Vector3,vecFarTopRight=new Vector3,vecFarDownRight=new Vector3,vecFarDownLeft=new Vector3,vectemp1=new Vector3,vectemp2=new Vector3,vectemp3=new Vector3;class SelectionBox{constructor(et,nt,rt){this.camera=et,this.scene=nt,this.startPoint=new Vector3,this.endPoint=new Vector3,this.collection=[],this.deep=rt||Number.MAX_VALUE}select(et,nt){return this.startPoint=et||this.startPoint,this.endPoint=nt||this.endPoint,this.collection=[],this.updateFrustum(this.startPoint,this.endPoint),this.searchChildInFrustum(frustum,this.scene),this.collection}updateFrustum(et,nt){if(et=et||this.startPoint,nt=nt||this.endPoint,et.x===nt.x&&(nt.x+=Number.EPSILON),et.y===nt.y&&(nt.y+=Number.EPSILON),this.camera.updateProjectionMatrix(),this.camera.updateMatrixWorld(),this.camera.isPerspectiveCamera){tmpPoint.copy(et),tmpPoint.x=Math.min(et.x,nt.x),tmpPoint.y=Math.max(et.y,nt.y),nt.x=Math.max(et.x,nt.x),nt.y=Math.min(et.y,nt.y),vecNear.setFromMatrixPosition(this.camera.matrixWorld),vecTopLeft.copy(tmpPoint),vecTopRight.set(nt.x,tmpPoint.y,0),vecDownRight.copy(nt),vecDownLeft.set(tmpPoint.x,nt.y,0),vecTopLeft.unproject(this.camera),vecTopRight.unproject(this.camera),vecDownRight.unproject(this.camera),vecDownLeft.unproject(this.camera),vectemp1.copy(vecTopLeft).sub(vecNear),vectemp2.copy(vecTopRight).sub(vecNear),vectemp3.copy(vecDownRight).sub(vecNear),vectemp1.normalize(),vectemp2.normalize(),vectemp3.normalize(),vectemp1.multiplyScalar(this.deep),vectemp2.multiplyScalar(this.deep),vectemp3.multiplyScalar(this.deep),vectemp1.add(vecNear),vectemp2.add(vecNear),vectemp3.add(vecNear);var rt=frustum.planes;rt[0].setFromCoplanarPoints(vecNear,vecTopLeft,vecTopRight),rt[1].setFromCoplanarPoints(vecNear,vecTopRight,vecDownRight),rt[2].setFromCoplanarPoints(vecDownRight,vecDownLeft,vecNear),rt[3].setFromCoplanarPoints(vecDownLeft,vecTopLeft,vecNear),rt[4].setFromCoplanarPoints(vecTopRight,vecDownRight,vecDownLeft),rt[5].setFromCoplanarPoints(vectemp3,vectemp2,vectemp1),rt[5].normal.multiplyScalar(-1)}else if(this.camera.isOrthographicCamera){const it=Math.min(et.x,nt.x),ot=Math.max(et.y,nt.y),at=Math.max(et.x,nt.x),st=Math.min(et.y,nt.y);vecTopLeft.set(it,ot,-1),vecTopRight.set(at,ot,-1),vecDownRight.set(at,st,-1),vecDownLeft.set(it,st,-1),vecFarTopLeft.set(it,ot,1),vecFarTopRight.set(at,ot,1),vecFarDownRight.set(at,st,1),vecFarDownLeft.set(it,st,1),vecTopLeft.unproject(this.camera),vecTopRight.unproject(this.camera),vecDownRight.unproject(this.camera),vecDownLeft.unproject(this.camera),vecFarTopLeft.unproject(this.camera),vecFarTopRight.unproject(this.camera),vecFarDownRight.unproject(this.camera),vecFarDownLeft.unproject(this.camera);var rt=frustum.planes;rt[0].setFromCoplanarPoints(vecTopLeft,vecFarTopLeft,vecFarTopRight),rt[1].setFromCoplanarPoints(vecTopRight,vecFarTopRight,vecFarDownRight),rt[2].setFromCoplanarPoints(vecFarDownRight,vecFarDownLeft,vecDownLeft),rt[3].setFromCoplanarPoints(vecFarDownLeft,vecFarTopLeft,vecTopLeft),rt[4].setFromCoplanarPoints(vecTopRight,vecDownRight,vecDownLeft),rt[5].setFromCoplanarPoints(vecFarDownRight,vecFarTopRight,vecFarTopLeft),rt[5].normal.multiplyScalar(-1)}else console.error("THREE.SelectionBox: Unsupported camera type.")}searchChildInFrustum(et,nt){if((nt.isMesh||nt.isLine||nt.isPoints)&&nt.material!==void 0&&(nt.geometry.boundingSphere===null&&nt.geometry.computeBoundingSphere(),center$2.copy(nt.geometry.boundingSphere.center),center$2.applyMatrix4(nt.matrixWorld),et.containsPoint(center$2)&&this.collection.push(nt)),nt.children.length>0)for(let rt=0;rtst))return!1;var ct=ot.get(tt),ut=ot.get(et);if(ct&&ut)return ct==et&&ut==tt;var ht=-1,dt=!0,pt=nt&COMPARE_UNORDERED_FLAG$3?new SetCache$1:void 0;for(ot.set(tt,et),ot.set(et,tt);++htit?0:it+et),nt=nt>it?it:nt,nt<0&&(nt+=it),it=et>nt?0:nt-et>>>0,et>>>=0;for(var ot=Array(it);++rt0){if(++et>=HOT_COUNT)return arguments[0]}else et=0;return tt.apply(void 0,arguments)}}var _shortOut=shortOut$1,baseSetToString=_baseSetToString,shortOut=_shortOut,setToString$1=shortOut(baseSetToString),_setToString=setToString$1,identity$8=identity_1,overRest=_overRest,setToString=_setToString;function baseRest$1(tt,et){return setToString(overRest(tt,et,identity$8),tt+"")}var _baseRest=baseRest$1,eq=eq_1,isArrayLike$1=isArrayLike_1,isIndex=_isIndex,isObject$5=isObject_1;function isIterateeCall$4(tt,et,nt){if(!isObject$5(nt))return!1;var rt=typeof et;return(rt=="number"?isArrayLike$1(nt)&&isIndex(et,nt.length):rt=="string"&&et in nt)?eq(nt[et],tt):!1}var _isIterateeCall=isIterateeCall$4,baseEach$1=_baseEach;function baseSome$1(tt,et){var nt;return baseEach$1(tt,function(rt,it,ot){return nt=et(rt,it,ot),!nt}),!!nt}var _baseSome=baseSome$1,arraySome=_arraySome,baseIteratee$6=_baseIteratee,baseSome=_baseSome,isArray$6=isArray_1,isIterateeCall$3=_isIterateeCall;function some$1(tt,et,nt){var rt=isArray$6(tt)?arraySome:baseSome;return nt&&isIterateeCall$3(tt,et,nt)&&(et=void 0),rt(tt,baseIteratee$6(et))}var some_1=some$1;const _some=getDefaultExportFromCjs(some_1);function arrayEvery$1(tt,et){for(var nt=-1,rt=tt==null?0:tt.length;++nt0&&nt(st)?et>1?baseFlatten$2(st,et-1,nt,rt,it):arrayPush(it,st):rt||(it[it.length]=st)}return it}var _baseFlatten=baseFlatten$2,baseIndexOf=_baseIndexOf;function arrayIncludes$2(tt,et){var nt=tt==null?0:tt.length;return!!nt&&baseIndexOf(tt,et,0)>-1}var _arrayIncludes=arrayIncludes$2;function arrayIncludesWith$1(tt,et,nt){for(var rt=-1,it=tt==null?0:tt.length;++rt=LARGE_ARRAY_SIZE){var ct=et?null:createSet(tt);if(ct)return setToArray(ct);at=!1,it=cacheHas,lt=new SetCache}else lt=et?[]:st;e:for(;++rt-1?it[ot?et[at]:at]:void 0}}var _createFind=createFind$1,baseFindIndex=_baseFindIndex,baseIteratee$3=_baseIteratee,toInteger=toInteger_1,nativeMax$2=Math.max;function findIndex$1(tt,et,nt){var rt=tt==null?0:tt.length;if(!rt)return-1;var it=nt==null?0:toInteger(nt);return it<0&&(it=nativeMax$2(rt+it,0)),baseFindIndex(tt,baseIteratee$3(et),it)}var findIndex_1=findIndex$1,createFind=_createFind,findIndex=findIndex_1,find=createFind(findIndex),find_1=find;const _find=getDefaultExportFromCjs(find_1);function last(tt){var et=tt==null?0:tt.length;return et?tt[et-1]:void 0}var last_1=last;const _last=getDefaultExportFromCjs(last_1);var baseFlatten$1=_baseFlatten,map$4=map_1;function flatMap(tt,et){return baseFlatten$1(map$4(tt,et),1)}var flatMap_1=flatMap;const _flatMap=getDefaultExportFromCjs(flatMap_1);var baseSlice=_baseSlice;function castSlice$1(tt,et,nt){var rt=tt.length;return nt=nt===void 0?rt:nt,!et&&nt>=rt?tt:baseSlice(tt,et,nt)}var _castSlice=castSlice$1,rsAstralRange$1="\\ud800-\\udfff",rsComboMarksRange$1="\\u0300-\\u036f",reComboHalfMarksRange$1="\\ufe20-\\ufe2f",rsComboSymbolsRange$1="\\u20d0-\\u20ff",rsComboRange$1=rsComboMarksRange$1+reComboHalfMarksRange$1+rsComboSymbolsRange$1,rsVarRange$1="\\ufe0e\\ufe0f",rsZWJ$1="\\u200d",reHasUnicode=RegExp("["+rsZWJ$1+rsAstralRange$1+rsComboRange$1+rsVarRange$1+"]");function hasUnicode$2(tt){return reHasUnicode.test(tt)}var _hasUnicode=hasUnicode$2;function asciiToArray$1(tt){return tt.split("")}var _asciiToArray=asciiToArray$1,rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange+"]",rsCombo="["+rsComboRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeToArray$1(tt){return tt.match(reUnicode)||[]}var _unicodeToArray=unicodeToArray$1,asciiToArray=_asciiToArray,hasUnicode$1=_hasUnicode,unicodeToArray=_unicodeToArray;function stringToArray$1(tt){return hasUnicode$1(tt)?unicodeToArray(tt):asciiToArray(tt)}var _stringToArray=stringToArray$1,castSlice=_castSlice,hasUnicode=_hasUnicode,stringToArray=_stringToArray,toString$3=toString_1;function createCaseFirst$1(tt){return function(et){et=toString$3(et);var nt=hasUnicode(et)?stringToArray(et):void 0,rt=nt?nt[0]:et.charAt(0),it=nt?castSlice(nt,1).join(""):et.slice(1);return rt[tt]()+it}}var _createCaseFirst=createCaseFirst$1,createCaseFirst=_createCaseFirst,upperFirst=createCaseFirst("toUpperCase"),upperFirst_1=upperFirst;const _upperFirst=getDefaultExportFromCjs(upperFirst_1),_box$1=new Box3,_vector=new Vector3;class LineSegmentsGeometry extends InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";const et=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],nt=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],rt=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];this.setIndex(rt),this.setAttribute("position",new Float32BufferAttribute(et,3)),this.setAttribute("uv",new Float32BufferAttribute(nt,2))}applyMatrix4(et){const nt=this.attributes.instanceStart,rt=this.attributes.instanceEnd;return nt!==void 0&&(nt.applyMatrix4(et),rt.applyMatrix4(et),nt.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(et){let nt;et instanceof Float32Array?nt=et:Array.isArray(et)&&(nt=new Float32Array(et));const rt=new InstancedInterleavedBuffer(nt,6,1);return this.setAttribute("instanceStart",new InterleavedBufferAttribute(rt,3,0)),this.setAttribute("instanceEnd",new InterleavedBufferAttribute(rt,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(et){let nt;et instanceof Float32Array?nt=et:Array.isArray(et)&&(nt=new Float32Array(et));const rt=new InstancedInterleavedBuffer(nt,6,1);return this.setAttribute("instanceColorStart",new InterleavedBufferAttribute(rt,3,0)),this.setAttribute("instanceColorEnd",new InterleavedBufferAttribute(rt,3,3)),this}fromWireframeGeometry(et){return this.setPositions(et.attributes.position.array),this}fromEdgesGeometry(et){return this.setPositions(et.attributes.position.array),this}fromMesh(et){return this.fromWireframeGeometry(new WireframeGeometry(et.geometry)),this}fromLineSegments(et){const nt=et.geometry;return this.setPositions(nt.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const et=this.attributes.instanceStart,nt=this.attributes.instanceEnd;et!==void 0&&nt!==void 0&&(this.boundingBox.setFromBufferAttribute(et),_box$1.setFromBufferAttribute(nt),this.boundingBox.union(_box$1))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Sphere),this.boundingBox===null&&this.computeBoundingBox();const et=this.attributes.instanceStart,nt=this.attributes.instanceEnd;if(et!==void 0&&nt!==void 0){const rt=this.boundingSphere.center;this.boundingBox.getCenter(rt);let it=0;for(let ot=0,at=et.count;ot{const ht=typeof ct=="function"?ct(et):ct;if(ht!==et){const dt=et;et=ut?ht:Object.assign({},et,ht),nt.forEach(pt=>pt(et,dt))}},it=()=>et,ot=(ct,ut=it,ht=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let dt=ut(et);function pt(){const mt=ut(et);if(!ht(dt,mt)){const gt=dt;ct(dt=mt,gt)}}return nt.add(pt),()=>nt.delete(pt)},lt={setState:rt,getState:it,subscribe:(ct,ut,ht)=>ut||ht?ot(ct,ut,ht):(nt.add(ct),()=>nt.delete(ct)),destroy:()=>nt.clear()};return et=tt(rt,it,lt),lt}const isSSR$1=typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),useIsomorphicLayoutEffect=isSSR$1?reactExports.useEffect:reactExports.useLayoutEffect;function create(tt){const et=typeof tt=="function"?createStore(tt):tt,nt=(rt=et.getState,it=Object.is)=>{const[,ot]=reactExports.useReducer(yt=>yt+1,0),at=et.getState(),st=reactExports.useRef(at),lt=reactExports.useRef(rt),ct=reactExports.useRef(it),ut=reactExports.useRef(!1),ht=reactExports.useRef();ht.current===void 0&&(ht.current=rt(at));let dt,pt=!1;(st.current!==at||lt.current!==rt||ct.current!==it||ut.current)&&(dt=rt(at),pt=!it(ht.current,dt)),useIsomorphicLayoutEffect(()=>{pt&&(ht.current=dt),st.current=at,lt.current=rt,ct.current=it,ut.current=!1});const mt=reactExports.useRef(at);useIsomorphicLayoutEffect(()=>{const yt=()=>{try{const wt=et.getState(),vt=lt.current(wt);ct.current(ht.current,vt)||(st.current=wt,ht.current=vt,ot())}catch{ut.current=!0,ot()}},bt=et.subscribe(yt);return et.getState()!==mt.current&&yt(),bt},[]);const gt=pt?dt:ht.current;return reactExports.useDebugValue(gt),gt};return Object.assign(nt,et),nt[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const rt=[nt,et];return{next(){const it=rt.length<=0;return{value:rt.shift(),done:it}}}},nt}let saveLastTotalLoaded=0;const useProgress=create(tt=>(DefaultLoadingManager.onStart=(et,nt,rt)=>{tt({active:!0,item:et,loaded:nt,total:rt,progress:(nt-saveLastTotalLoaded)/(rt-saveLastTotalLoaded)*100})},DefaultLoadingManager.onLoad=()=>{tt({active:!1})},DefaultLoadingManager.onError=et=>tt(nt=>({errors:[...nt.errors,et]})),DefaultLoadingManager.onProgress=(et,nt,rt)=>{nt===rt&&(saveLastTotalLoaded=rt),tt({active:!0,item:et,loaded:nt,total:rt,progress:(nt-saveLastTotalLoaded)/(rt-saveLastTotalLoaded)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0})),defaultDataInterpolation=tt=>`Loading ${tt.toFixed(2)}%`;function Loader$1({containerStyles:tt,innerStyles:et,barStyles:nt,dataStyles:rt,dataInterpolation:it=defaultDataInterpolation,initialState:ot=at=>at}){const{active:at,progress:st}=useProgress(),lt=reactExports.useRef(0),ct=reactExports.useRef(0),ut=reactExports.useRef(null),[ht,dt]=reactExports.useState(ot(at));reactExports.useEffect(()=>{let mt;return at!==ht&&(mt=setTimeout(()=>dt(at),300)),()=>clearTimeout(mt)},[ht,at]);const pt=reactExports.useCallback(()=>{ut.current&&(lt.current+=(st-lt.current)/2,(lt.current>.95*st||st===100)&&(lt.current=st),ut.current.innerText=it(lt.current),lt.current(pt(),()=>cancelAnimationFrame(ct.current)),[pt]),ht?reactExports.createElement("div",{style:{...styles$1.container,opacity:at?1:0,...tt}},reactExports.createElement("div",null,reactExports.createElement("div",{style:{...styles$1.inner,...et}},reactExports.createElement("div",{style:{...styles$1.bar,transform:`scaleX(${st/100})`,...nt}}),reactExports.createElement("span",{ref:ut,style:{...styles$1.data,...rt}})))):null}const styles$1={container:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"#171717",display:"flex",alignItems:"center",justifyContent:"center",transition:"opacity 300ms ease",zIndex:1e3},inner:{width:100,height:3,background:"#272727",textAlign:"center"},bar:{height:3,width:"100%",background:"white",transition:"transform 200ms",transformOrigin:"left center"},data:{display:"inline-block",position:"relative",fontVariantNumeric:"tabular-nums",marginTop:"0.8em",color:"#f0f0f0",fontSize:"0.6em",fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "Helvetica Neue", Helvetica, Arial, Roboto, Ubuntu, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',whiteSpace:"nowrap"}};function mergeRefs(tt){return function(et){tt.forEach(function(nt){typeof nt=="function"?nt(et):nt!=null&&(nt.current=et)})}}let webGL2Available;function isWebGL2Available$1(){var tt;if(webGL2Available!==void 0)return webGL2Available;try{let et;const nt=document.createElement("canvas");return webGL2Available=!!(window.WebGL2RenderingContext&&(et=nt.getContext("webgl2"))),et&&((tt=et.getExtension("WEBGL_lose_context"))==null||tt.loseContext()),webGL2Available}catch{return webGL2Available=!1}}function estimateBytesUsed(tt){let et=0;for(let rt in tt.attributes){const it=tt.getAttribute(rt);et+=it.count*it.itemSize*it.array.BYTES_PER_ELEMENT}const nt=tt.getIndex();return et+=nt?nt.count*nt.itemSize*nt.array.BYTES_PER_ELEMENT:0,et}const frustum=new Frustum,center$2=new Vector3,tmpPoint=new Vector3,vecNear=new Vector3,vecTopLeft=new Vector3,vecTopRight=new Vector3,vecDownRight=new Vector3,vecDownLeft=new Vector3,vecFarTopLeft=new Vector3,vecFarTopRight=new Vector3,vecFarDownRight=new Vector3,vecFarDownLeft=new Vector3,vectemp1=new Vector3,vectemp2=new Vector3,vectemp3=new Vector3;class SelectionBox{constructor(et,nt,rt){this.camera=et,this.scene=nt,this.startPoint=new Vector3,this.endPoint=new Vector3,this.collection=[],this.deep=rt||Number.MAX_VALUE}select(et,nt){return this.startPoint=et||this.startPoint,this.endPoint=nt||this.endPoint,this.collection=[],this.updateFrustum(this.startPoint,this.endPoint),this.searchChildInFrustum(frustum,this.scene),this.collection}updateFrustum(et,nt){if(et=et||this.startPoint,nt=nt||this.endPoint,et.x===nt.x&&(nt.x+=Number.EPSILON),et.y===nt.y&&(nt.y+=Number.EPSILON),this.camera.updateProjectionMatrix(),this.camera.updateMatrixWorld(),this.camera.isPerspectiveCamera){tmpPoint.copy(et),tmpPoint.x=Math.min(et.x,nt.x),tmpPoint.y=Math.max(et.y,nt.y),nt.x=Math.max(et.x,nt.x),nt.y=Math.min(et.y,nt.y),vecNear.setFromMatrixPosition(this.camera.matrixWorld),vecTopLeft.copy(tmpPoint),vecTopRight.set(nt.x,tmpPoint.y,0),vecDownRight.copy(nt),vecDownLeft.set(tmpPoint.x,nt.y,0),vecTopLeft.unproject(this.camera),vecTopRight.unproject(this.camera),vecDownRight.unproject(this.camera),vecDownLeft.unproject(this.camera),vectemp1.copy(vecTopLeft).sub(vecNear),vectemp2.copy(vecTopRight).sub(vecNear),vectemp3.copy(vecDownRight).sub(vecNear),vectemp1.normalize(),vectemp2.normalize(),vectemp3.normalize(),vectemp1.multiplyScalar(this.deep),vectemp2.multiplyScalar(this.deep),vectemp3.multiplyScalar(this.deep),vectemp1.add(vecNear),vectemp2.add(vecNear),vectemp3.add(vecNear);var rt=frustum.planes;rt[0].setFromCoplanarPoints(vecNear,vecTopLeft,vecTopRight),rt[1].setFromCoplanarPoints(vecNear,vecTopRight,vecDownRight),rt[2].setFromCoplanarPoints(vecDownRight,vecDownLeft,vecNear),rt[3].setFromCoplanarPoints(vecDownLeft,vecTopLeft,vecNear),rt[4].setFromCoplanarPoints(vecTopRight,vecDownRight,vecDownLeft),rt[5].setFromCoplanarPoints(vectemp3,vectemp2,vectemp1),rt[5].normal.multiplyScalar(-1)}else if(this.camera.isOrthographicCamera){const it=Math.min(et.x,nt.x),ot=Math.max(et.y,nt.y),at=Math.max(et.x,nt.x),st=Math.min(et.y,nt.y);vecTopLeft.set(it,ot,-1),vecTopRight.set(at,ot,-1),vecDownRight.set(at,st,-1),vecDownLeft.set(it,st,-1),vecFarTopLeft.set(it,ot,1),vecFarTopRight.set(at,ot,1),vecFarDownRight.set(at,st,1),vecFarDownLeft.set(it,st,1),vecTopLeft.unproject(this.camera),vecTopRight.unproject(this.camera),vecDownRight.unproject(this.camera),vecDownLeft.unproject(this.camera),vecFarTopLeft.unproject(this.camera),vecFarTopRight.unproject(this.camera),vecFarDownRight.unproject(this.camera),vecFarDownLeft.unproject(this.camera);var rt=frustum.planes;rt[0].setFromCoplanarPoints(vecTopLeft,vecFarTopLeft,vecFarTopRight),rt[1].setFromCoplanarPoints(vecTopRight,vecFarTopRight,vecFarDownRight),rt[2].setFromCoplanarPoints(vecFarDownRight,vecFarDownLeft,vecDownLeft),rt[3].setFromCoplanarPoints(vecFarDownLeft,vecFarTopLeft,vecTopLeft),rt[4].setFromCoplanarPoints(vecTopRight,vecDownRight,vecDownLeft),rt[5].setFromCoplanarPoints(vecFarDownRight,vecFarTopRight,vecFarTopLeft),rt[5].normal.multiplyScalar(-1)}else console.error("THREE.SelectionBox: Unsupported camera type.")}searchChildInFrustum(et,nt){if((nt.isMesh||nt.isLine||nt.isPoints)&&nt.material!==void 0&&(nt.geometry.boundingSphere===null&&nt.geometry.computeBoundingSphere(),center$2.copy(nt.geometry.boundingSphere.center),center$2.applyMatrix4(nt.matrixWorld),et.containsPoint(center$2)&&this.collection.push(nt)),nt.children.length>0)for(let rt=0;rtst))return!1;var ct=ot.get(tt),ut=ot.get(et);if(ct&&ut)return ct==et&&ut==tt;var ht=-1,dt=!0,pt=nt&COMPARE_UNORDERED_FLAG$3?new SetCache$1:void 0;for(ot.set(tt,et),ot.set(et,tt);++htit?0:it+et),nt=nt>it?it:nt,nt<0&&(nt+=it),it=et>nt?0:nt-et>>>0,et>>>=0;for(var ot=Array(it);++rt0){if(++et>=HOT_COUNT)return arguments[0]}else et=0;return tt.apply(void 0,arguments)}}var _shortOut=shortOut$1,baseSetToString=_baseSetToString,shortOut=_shortOut,setToString$1=shortOut(baseSetToString),_setToString=setToString$1,identity$8=identity_1,overRest=_overRest,setToString=_setToString;function baseRest$1(tt,et){return setToString(overRest(tt,et,identity$8),tt+"")}var _baseRest=baseRest$1,eq=eq_1,isArrayLike$1=isArrayLike_1,isIndex=_isIndex,isObject$5=isObject_1;function isIterateeCall$4(tt,et,nt){if(!isObject$5(nt))return!1;var rt=typeof et;return(rt=="number"?isArrayLike$1(nt)&&isIndex(et,nt.length):rt=="string"&&et in nt)?eq(nt[et],tt):!1}var _isIterateeCall=isIterateeCall$4,baseEach$1=_baseEach;function baseSome$1(tt,et){var nt;return baseEach$1(tt,function(rt,it,ot){return nt=et(rt,it,ot),!nt}),!!nt}var _baseSome=baseSome$1,arraySome=_arraySome,baseIteratee$6=_baseIteratee,baseSome=_baseSome,isArray$6=isArray_1,isIterateeCall$3=_isIterateeCall;function some$1(tt,et,nt){var rt=isArray$6(tt)?arraySome:baseSome;return nt&&isIterateeCall$3(tt,et,nt)&&(et=void 0),rt(tt,baseIteratee$6(et))}var some_1=some$1;const _some=getDefaultExportFromCjs(some_1);function arrayEvery$1(tt,et){for(var nt=-1,rt=tt==null?0:tt.length;++nt0&&nt(st)?et>1?baseFlatten$2(st,et-1,nt,rt,it):arrayPush(it,st):rt||(it[it.length]=st)}return it}var _baseFlatten=baseFlatten$2,baseIndexOf=_baseIndexOf;function arrayIncludes$2(tt,et){var nt=tt==null?0:tt.length;return!!nt&&baseIndexOf(tt,et,0)>-1}var _arrayIncludes=arrayIncludes$2;function arrayIncludesWith$1(tt,et,nt){for(var rt=-1,it=tt==null?0:tt.length;++rt=LARGE_ARRAY_SIZE){var ct=et?null:createSet(tt);if(ct)return setToArray(ct);at=!1,it=cacheHas,lt=new SetCache}else lt=et?[]:st;e:for(;++rt-1?it[ot?et[at]:at]:void 0}}var _createFind=createFind$1,baseFindIndex=_baseFindIndex,baseIteratee$3=_baseIteratee,toInteger=toInteger_1,nativeMax$2=Math.max;function findIndex$1(tt,et,nt){var rt=tt==null?0:tt.length;if(!rt)return-1;var it=nt==null?0:toInteger(nt);return it<0&&(it=nativeMax$2(rt+it,0)),baseFindIndex(tt,baseIteratee$3(et),it)}var findIndex_1=findIndex$1,createFind=_createFind,findIndex=findIndex_1,find=createFind(findIndex),find_1=find;const _find=getDefaultExportFromCjs(find_1);function last(tt){var et=tt==null?0:tt.length;return et?tt[et-1]:void 0}var last_1=last;const _last=getDefaultExportFromCjs(last_1);var baseFlatten$1=_baseFlatten,map$4=map_1;function flatMap(tt,et){return baseFlatten$1(map$4(tt,et),1)}var flatMap_1=flatMap;const _flatMap=getDefaultExportFromCjs(flatMap_1);var baseSlice=_baseSlice;function castSlice$1(tt,et,nt){var rt=tt.length;return nt=nt===void 0?rt:nt,!et&&nt>=rt?tt:baseSlice(tt,et,nt)}var _castSlice=castSlice$1,rsAstralRange$1="\\ud800-\\udfff",rsComboMarksRange$1="\\u0300-\\u036f",reComboHalfMarksRange$1="\\ufe20-\\ufe2f",rsComboSymbolsRange$1="\\u20d0-\\u20ff",rsComboRange$1=rsComboMarksRange$1+reComboHalfMarksRange$1+rsComboSymbolsRange$1,rsVarRange$1="\\ufe0e\\ufe0f",rsZWJ$1="\\u200d",reHasUnicode=RegExp("["+rsZWJ$1+rsAstralRange$1+rsComboRange$1+rsVarRange$1+"]");function hasUnicode$2(tt){return reHasUnicode.test(tt)}var _hasUnicode=hasUnicode$2;function asciiToArray$1(tt){return tt.split("")}var _asciiToArray=asciiToArray$1,rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange+"]",rsCombo="["+rsComboRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeToArray$1(tt){return tt.match(reUnicode)||[]}var _unicodeToArray=unicodeToArray$1,asciiToArray=_asciiToArray,hasUnicode$1=_hasUnicode,unicodeToArray=_unicodeToArray;function stringToArray$1(tt){return hasUnicode$1(tt)?unicodeToArray(tt):asciiToArray(tt)}var _stringToArray=stringToArray$1,castSlice=_castSlice,hasUnicode=_hasUnicode,stringToArray=_stringToArray,toString$3=toString_1;function createCaseFirst$1(tt){return function(et){et=toString$3(et);var nt=hasUnicode(et)?stringToArray(et):void 0,rt=nt?nt[0]:et.charAt(0),it=nt?castSlice(nt,1).join(""):et.slice(1);return rt[tt]()+it}}var _createCaseFirst=createCaseFirst$1,createCaseFirst=_createCaseFirst,upperFirst=createCaseFirst("toUpperCase"),upperFirst_1=upperFirst;const _upperFirst=getDefaultExportFromCjs(upperFirst_1),_box$1=new Box3,_vector=new Vector3;class LineSegmentsGeometry extends InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";const et=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],nt=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],rt=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];this.setIndex(rt),this.setAttribute("position",new Float32BufferAttribute(et,3)),this.setAttribute("uv",new Float32BufferAttribute(nt,2))}applyMatrix4(et){const nt=this.attributes.instanceStart,rt=this.attributes.instanceEnd;return nt!==void 0&&(nt.applyMatrix4(et),rt.applyMatrix4(et),nt.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(et){let nt;et instanceof Float32Array?nt=et:Array.isArray(et)&&(nt=new Float32Array(et));const rt=new InstancedInterleavedBuffer(nt,6,1);return this.setAttribute("instanceStart",new InterleavedBufferAttribute(rt,3,0)),this.setAttribute("instanceEnd",new InterleavedBufferAttribute(rt,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(et){let nt;et instanceof Float32Array?nt=et:Array.isArray(et)&&(nt=new Float32Array(et));const rt=new InstancedInterleavedBuffer(nt,6,1);return this.setAttribute("instanceColorStart",new InterleavedBufferAttribute(rt,3,0)),this.setAttribute("instanceColorEnd",new InterleavedBufferAttribute(rt,3,3)),this}fromWireframeGeometry(et){return this.setPositions(et.attributes.position.array),this}fromEdgesGeometry(et){return this.setPositions(et.attributes.position.array),this}fromMesh(et){return this.fromWireframeGeometry(new WireframeGeometry(et.geometry)),this}fromLineSegments(et){const nt=et.geometry;return this.setPositions(nt.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Box3);const et=this.attributes.instanceStart,nt=this.attributes.instanceEnd;et!==void 0&&nt!==void 0&&(this.boundingBox.setFromBufferAttribute(et),_box$1.setFromBufferAttribute(nt),this.boundingBox.union(_box$1))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Sphere),this.boundingBox===null&&this.computeBoundingBox();const et=this.attributes.instanceStart,nt=this.attributes.instanceEnd;if(et!==void 0&&nt!==void 0){const rt=this.boundingSphere.center;this.boundingBox.getCenter(rt);let it=0;for(let ot=0,at=et.count;ot #include #include @@ -4581,7 +4581,7 @@ No matching component was found for: #include } - `,clipping:!0}),this.isLineMaterial=!0,Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(nt){this.uniforms.diffuse.value=nt}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(nt){nt===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(nt){this.uniforms.linewidth.value=nt}},dashed:{enumerable:!0,get:function(){return"USE_DASH"in this.defines},set(nt){!!nt!="USE_DASH"in this.defines&&(this.needsUpdate=!0),nt===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(nt){this.uniforms.dashScale.value=nt}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(nt){this.uniforms.dashSize.value=nt}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(nt){this.uniforms.dashOffset.value=nt}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(nt){this.uniforms.gapSize.value=nt}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(nt){this.uniforms.opacity.value=nt}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(nt){this.uniforms.resolution.value.copy(nt)}},alphaToCoverage:{enumerable:!0,get:function(){return"USE_ALPHA_TO_COVERAGE"in this.defines},set:function(nt){!!nt!="USE_ALPHA_TO_COVERAGE"in this.defines&&(this.needsUpdate=!0),nt===!0?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(et)}}const _start=new Vector3,_end=new Vector3,_start4=new Vector4,_end4=new Vector4,_ssOrigin=new Vector4,_ssOrigin3=new Vector3,_mvMatrix=new Matrix4,_line=new Line3,_closestPoint=new Vector3,_box=new Box3,_sphere$1=new Sphere,_clipToWorldVector=new Vector4;let _ray,_instanceStart,_instanceEnd,_lineWidth;function getWorldSpaceHalfWidth(tt,et,nt){return _clipToWorldVector.set(0,0,-et,1).applyMatrix4(tt.projectionMatrix),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),_clipToWorldVector.x=_lineWidth/nt.width,_clipToWorldVector.y=_lineWidth/nt.height,_clipToWorldVector.applyMatrix4(tt.projectionMatrixInverse),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),Math.abs(Math.max(_clipToWorldVector.x,_clipToWorldVector.y))}function raycastWorldUnits(tt,et){for(let nt=0,rt=_instanceStart.count;ntut&&_end4.z>ut)continue;if(_start4.z>ut){const wt=_start4.z-_end4.z,vt=(_start4.z-ut)/wt;_start4.lerp(_end4,vt)}else if(_end4.z>ut){const wt=_end4.z-_start4.z,vt=(_end4.z-ut)/wt;_end4.lerp(_start4,vt)}_start4.applyMatrix4(rt),_end4.applyMatrix4(rt),_start4.multiplyScalar(1/_start4.w),_end4.multiplyScalar(1/_end4.w),_start4.x*=ot.x/2,_start4.y*=ot.y/2,_end4.x*=ot.x/2,_end4.y*=ot.y/2,_line.start.copy(_start4),_line.start.z=0,_line.end.copy(_end4),_line.end.z=0;const mt=_line.closestPointToPointParameter(_ssOrigin3,!0);_line.at(mt,_closestPoint);const gt=MathUtils.lerp(_start4.z,_end4.z,mt),yt=gt>=-1&><=1,bt=_ssOrigin3.distanceTo(_closestPoint)<_lineWidth*.5;if(yt&&bt){_line.start.fromBufferAttribute(lt,ht),_line.end.fromBufferAttribute(ct,ht),_line.start.applyMatrix4(at),_line.end.applyMatrix4(at);const wt=new Vector3,vt=new Vector3;_ray.distanceSqToSegment(_line.start,_line.end,vt,wt),nt.push({point:vt,pointOnLine:wt,distance:_ray.origin.distanceTo(vt),object:tt,face:null,faceIndex:ht,uv:null,uv2:null})}}}class LineSegments2 extends Mesh{constructor(et=new LineSegmentsGeometry,nt=new LineMaterial({color:Math.random()*16777215})){super(et,nt),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const et=this.geometry,nt=et.attributes.instanceStart,rt=et.attributes.instanceEnd,it=new Float32Array(2*nt.count);for(let at=0,st=0,lt=nt.count;atlt,...st}){const{setEvents:lt,camera:ct,raycaster:ut,gl:ht,controls:dt,size:pt,get:mt}=useThree(),[gt,yt]=reactExports.useState(!1),[bt,wt]=reactExports.useReducer((Tt,{object:At,shift:Et})=>At===void 0?[]:Array.isArray(At)?At:Et?Tt.includes(At)?Tt.filter(Mt=>Mt!==At):[At,...Tt]:Tt[0]===At?[]:[At],[]);reactExports.useEffect(()=>void(rt==null?void 0:rt(bt)),[bt]);const vt=reactExports.useCallback(Tt=>{Tt.stopPropagation(),wt({object:at([Tt.object])[0],shift:et&&Tt.shiftKey})},[]),kt=reactExports.useCallback(Tt=>!gt&&wt({}),[gt]),St=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!tt||!et)return;const Tt=new SelectionBox(ct,St.current),At=document.createElement("div");At.style.pointerEvents="none",At.style.border=it,At.style.backgroundColor=ot,At.style.position="fixed";const Et=new Vector2,Mt=new Vector2,Lt=new Vector2,jt=mt().events.enabled,Rt=dt==null?void 0:dt.enabled;let $t=!1;function xt(Ct,Ht){const{offsetX:Jt,offsetY:nn}=Ct,{width:Yt,height:fn}=pt;Ht.set(Jt/Yt*2-1,-(nn/fn)*2+1)}function It(Ct){var Ht;dt&&(dt.enabled=!1),lt({enabled:!1}),$t=!0,(Ht=ht.domElement.parentElement)==null||Ht.appendChild(At),At.style.left=`${Ct.clientX}px`,At.style.top=`${Ct.clientY}px`,At.style.width="0px",At.style.height="0px",Et.x=Ct.clientX,Et.y=Ct.clientY}function Ot(Ct){Lt.x=Math.max(Et.x,Ct.clientX),Lt.y=Math.max(Et.y,Ct.clientY),Mt.x=Math.min(Et.x,Ct.clientX),Mt.y=Math.min(Et.y,Ct.clientY),At.style.left=`${Mt.x}px`,At.style.top=`${Mt.y}px`,At.style.width=`${Lt.x-Mt.x}px`,At.style.height=`${Lt.y-Mt.y}px`}function zt(){if($t){var Ct;dt&&(dt.enabled=Rt),lt({enabled:jt}),$t=!1,(Ct=At.parentElement)==null||Ct.removeChild(At)}}function Ut(Ct){Ct.shiftKey&&(It(Ct),xt(Ct,Tt.startPoint))}let Wt=[];function Ft(Ct){if($t){Ot(Ct),xt(Ct,Tt.endPoint);const Ht=Tt.select().sort(Jt=>Jt.uuid).filter(Jt=>Jt.isMesh);shallow(Ht,Wt)||(Wt=Ht,wt({object:at(Ht)}))}}function Nt(Ct){$t&&zt()}return document.addEventListener("pointerdown",Ut,{passive:!0}),document.addEventListener("pointermove",Ft,{passive:!0,capture:!0}),document.addEventListener("pointerup",Nt,{passive:!0}),()=>{document.removeEventListener("pointerdown",Ut),document.removeEventListener("pointermove",Ft),document.removeEventListener("pointerup",Nt)}},[pt.width,pt.height,ut,ct,dt,ht]),reactExports.createElement("group",_extends$r({ref:St,onClick:vt,onPointerOver:()=>yt(!0),onPointerOut:()=>yt(!1),onPointerMissed:kt},st),reactExports.createElement(context$1.Provider,{value:bt},nt))}const Line$1=reactExports.forwardRef(function({points:et,color:nt="black",vertexColors:rt,linewidth:it,lineWidth:ot,segments:at,dashed:st,...lt},ct){const ut=useThree(mt=>mt.size),ht=reactExports.useMemo(()=>at?new LineSegments2:new Line2,[at]),[dt]=reactExports.useState(()=>new LineMaterial),pt=reactExports.useMemo(()=>{const mt=at?new LineSegmentsGeometry:new LineGeometry,gt=et.map(yt=>{const bt=Array.isArray(yt);return yt instanceof Vector3?[yt.x,yt.y,yt.z]:yt instanceof Vector2?[yt.x,yt.y,0]:bt&&yt.length===3?[yt[0],yt[1],yt[2]]:bt&&yt.length===2?[yt[0],yt[1],0]:yt});if(mt.setPositions(gt.flat()),rt){const yt=rt.map(bt=>bt instanceof Color$1?bt.toArray():bt);mt.setColors(yt.flat())}return mt},[et,at,rt]);return reactExports.useLayoutEffect(()=>{ht.computeLineDistances()},[et,ht]),reactExports.useLayoutEffect(()=>{st?dt.defines.USE_DASH="":delete dt.defines.USE_DASH,dt.needsUpdate=!0},[st,dt]),reactExports.useEffect(()=>()=>pt.dispose(),[pt]),reactExports.createElement("primitive",_extends$r({object:ht,ref:ct},lt),reactExports.createElement("primitive",{object:pt,attach:"geometry"}),reactExports.createElement("primitive",_extends$r({object:dt,attach:"material",color:nt,vertexColors:!!rt,resolution:[ut.width,ut.height],linewidth:it??ot,dashed:st},lt)))});function workerBootstrap(){var tt=Object.create(null);function et(it,ot){var at=it.id,st=it.name,lt=it.dependencies;lt===void 0&&(lt=[]);var ct=it.init;ct===void 0&&(ct=function(){});var ut=it.getTransferables;if(ut===void 0&&(ut=null),!tt[at])try{lt=lt.map(function(dt){return dt&&dt.isWorkerModule&&(et(dt,function(pt){if(pt instanceof Error)throw pt}),dt=tt[dt.id].value),dt}),ct=rt("<"+st+">.init",ct),ut&&(ut=rt("<"+st+">.getTransferables",ut));var ht=null;typeof ct=="function"?ht=ct.apply(void 0,lt):console.error("worker module init function failed to rehydrate"),tt[at]={id:at,value:ht,getTransferables:ut},ot(ht)}catch(dt){dt&&dt.noLog||console.error(dt),ot(dt)}}function nt(it,ot){var at,st=it.id,lt=it.args;(!tt[st]||typeof tt[st].value!="function")&&ot(new Error("Worker module "+st+": not found or its 'init' did not return a function"));try{var ct=(at=tt[st]).value.apply(at,lt);ct&&typeof ct.then=="function"?ct.then(ut,function(ht){return ot(ht instanceof Error?ht:new Error(""+ht))}):ut(ct)}catch(ht){ot(ht)}function ut(ht){try{var dt=tt[st].getTransferables&&tt[st].getTransferables(ht);(!dt||!Array.isArray(dt)||!dt.length)&&(dt=void 0),ot(ht,dt)}catch(pt){console.error(pt),ot(pt)}}}function rt(it,ot){var at=void 0;self.troikaDefine=function(lt){return at=lt};var st=URL.createObjectURL(new Blob(["/** "+it.replace(/\*/g,"")+` **/ + `,clipping:!0}),this.isLineMaterial=!0,Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(nt){this.uniforms.diffuse.value=nt}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(nt){nt===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(nt){this.uniforms.linewidth.value=nt}},dashed:{enumerable:!0,get:function(){return"USE_DASH"in this.defines},set(nt){!!nt!="USE_DASH"in this.defines&&(this.needsUpdate=!0),nt===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(nt){this.uniforms.dashScale.value=nt}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(nt){this.uniforms.dashSize.value=nt}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(nt){this.uniforms.dashOffset.value=nt}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(nt){this.uniforms.gapSize.value=nt}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(nt){this.uniforms.opacity.value=nt}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(nt){this.uniforms.resolution.value.copy(nt)}},alphaToCoverage:{enumerable:!0,get:function(){return"USE_ALPHA_TO_COVERAGE"in this.defines},set:function(nt){!!nt!="USE_ALPHA_TO_COVERAGE"in this.defines&&(this.needsUpdate=!0),nt===!0?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(et)}}const _start=new Vector3,_end=new Vector3,_start4=new Vector4,_end4=new Vector4,_ssOrigin=new Vector4,_ssOrigin3=new Vector3,_mvMatrix=new Matrix4,_line=new Line3,_closestPoint=new Vector3,_box=new Box3,_sphere$1=new Sphere,_clipToWorldVector=new Vector4;let _ray,_instanceStart,_instanceEnd,_lineWidth;function getWorldSpaceHalfWidth(tt,et,nt){return _clipToWorldVector.set(0,0,-et,1).applyMatrix4(tt.projectionMatrix),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),_clipToWorldVector.x=_lineWidth/nt.width,_clipToWorldVector.y=_lineWidth/nt.height,_clipToWorldVector.applyMatrix4(tt.projectionMatrixInverse),_clipToWorldVector.multiplyScalar(1/_clipToWorldVector.w),Math.abs(Math.max(_clipToWorldVector.x,_clipToWorldVector.y))}function raycastWorldUnits(tt,et){for(let nt=0,rt=_instanceStart.count;ntut&&_end4.z>ut)continue;if(_start4.z>ut){const wt=_start4.z-_end4.z,vt=(_start4.z-ut)/wt;_start4.lerp(_end4,vt)}else if(_end4.z>ut){const wt=_end4.z-_start4.z,vt=(_end4.z-ut)/wt;_end4.lerp(_start4,vt)}_start4.applyMatrix4(rt),_end4.applyMatrix4(rt),_start4.multiplyScalar(1/_start4.w),_end4.multiplyScalar(1/_end4.w),_start4.x*=ot.x/2,_start4.y*=ot.y/2,_end4.x*=ot.x/2,_end4.y*=ot.y/2,_line.start.copy(_start4),_line.start.z=0,_line.end.copy(_end4),_line.end.z=0;const mt=_line.closestPointToPointParameter(_ssOrigin3,!0);_line.at(mt,_closestPoint);const gt=MathUtils.lerp(_start4.z,_end4.z,mt),yt=gt>=-1&><=1,bt=_ssOrigin3.distanceTo(_closestPoint)<_lineWidth*.5;if(yt&&bt){_line.start.fromBufferAttribute(lt,ht),_line.end.fromBufferAttribute(ct,ht),_line.start.applyMatrix4(at),_line.end.applyMatrix4(at);const wt=new Vector3,vt=new Vector3;_ray.distanceSqToSegment(_line.start,_line.end,vt,wt),nt.push({point:vt,pointOnLine:wt,distance:_ray.origin.distanceTo(vt),object:tt,face:null,faceIndex:ht,uv:null,uv2:null})}}}class LineSegments2 extends Mesh{constructor(et=new LineSegmentsGeometry,nt=new LineMaterial({color:Math.random()*16777215})){super(et,nt),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const et=this.geometry,nt=et.attributes.instanceStart,rt=et.attributes.instanceEnd,it=new Float32Array(2*nt.count);for(let at=0,st=0,lt=nt.count;atlt,...st}){const{setEvents:lt,camera:ct,raycaster:ut,gl:ht,controls:dt,size:pt,get:mt}=useThree(),[gt,yt]=reactExports.useState(!1),[bt,wt]=reactExports.useReducer((Et,{object:At,shift:Tt})=>At===void 0?[]:Array.isArray(At)?At:Tt?Et.includes(At)?Et.filter(Mt=>Mt!==At):[At,...Et]:Et[0]===At?[]:[At],[]);reactExports.useEffect(()=>void(rt==null?void 0:rt(bt)),[bt]);const vt=reactExports.useCallback(Et=>{Et.stopPropagation(),wt({object:at([Et.object])[0],shift:et&&Et.shiftKey})},[]),kt=reactExports.useCallback(Et=>!gt&&wt({}),[gt]),St=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!tt||!et)return;const Et=new SelectionBox(ct,St.current),At=document.createElement("div");At.style.pointerEvents="none",At.style.border=it,At.style.backgroundColor=ot,At.style.position="fixed";const Tt=new Vector2,Mt=new Vector2,Lt=new Vector2,jt=mt().events.enabled,Rt=dt==null?void 0:dt.enabled;let $t=!1;function xt(Ct,Ht){const{offsetX:Jt,offsetY:nn}=Ct,{width:Yt,height:fn}=pt;Ht.set(Jt/Yt*2-1,-(nn/fn)*2+1)}function It(Ct){var Ht;dt&&(dt.enabled=!1),lt({enabled:!1}),$t=!0,(Ht=ht.domElement.parentElement)==null||Ht.appendChild(At),At.style.left=`${Ct.clientX}px`,At.style.top=`${Ct.clientY}px`,At.style.width="0px",At.style.height="0px",Tt.x=Ct.clientX,Tt.y=Ct.clientY}function Ot(Ct){Lt.x=Math.max(Tt.x,Ct.clientX),Lt.y=Math.max(Tt.y,Ct.clientY),Mt.x=Math.min(Tt.x,Ct.clientX),Mt.y=Math.min(Tt.y,Ct.clientY),At.style.left=`${Mt.x}px`,At.style.top=`${Mt.y}px`,At.style.width=`${Lt.x-Mt.x}px`,At.style.height=`${Lt.y-Mt.y}px`}function zt(){if($t){var Ct;dt&&(dt.enabled=Rt),lt({enabled:jt}),$t=!1,(Ct=At.parentElement)==null||Ct.removeChild(At)}}function Ut(Ct){Ct.shiftKey&&(It(Ct),xt(Ct,Et.startPoint))}let Wt=[];function Ft(Ct){if($t){Ot(Ct),xt(Ct,Et.endPoint);const Ht=Et.select().sort(Jt=>Jt.uuid).filter(Jt=>Jt.isMesh);shallow(Ht,Wt)||(Wt=Ht,wt({object:at(Ht)}))}}function Nt(Ct){$t&&zt()}return document.addEventListener("pointerdown",Ut,{passive:!0}),document.addEventListener("pointermove",Ft,{passive:!0,capture:!0}),document.addEventListener("pointerup",Nt,{passive:!0}),()=>{document.removeEventListener("pointerdown",Ut),document.removeEventListener("pointermove",Ft),document.removeEventListener("pointerup",Nt)}},[pt.width,pt.height,ut,ct,dt,ht]),reactExports.createElement("group",_extends$r({ref:St,onClick:vt,onPointerOver:()=>yt(!0),onPointerOut:()=>yt(!1),onPointerMissed:kt},st),reactExports.createElement(context$1.Provider,{value:bt},nt))}const Line$1=reactExports.forwardRef(function({points:et,color:nt="black",vertexColors:rt,linewidth:it,lineWidth:ot,segments:at,dashed:st,...lt},ct){const ut=useThree(mt=>mt.size),ht=reactExports.useMemo(()=>at?new LineSegments2:new Line2,[at]),[dt]=reactExports.useState(()=>new LineMaterial),pt=reactExports.useMemo(()=>{const mt=at?new LineSegmentsGeometry:new LineGeometry,gt=et.map(yt=>{const bt=Array.isArray(yt);return yt instanceof Vector3?[yt.x,yt.y,yt.z]:yt instanceof Vector2?[yt.x,yt.y,0]:bt&&yt.length===3?[yt[0],yt[1],yt[2]]:bt&&yt.length===2?[yt[0],yt[1],0]:yt});if(mt.setPositions(gt.flat()),rt){const yt=rt.map(bt=>bt instanceof Color$1?bt.toArray():bt);mt.setColors(yt.flat())}return mt},[et,at,rt]);return reactExports.useLayoutEffect(()=>{ht.computeLineDistances()},[et,ht]),reactExports.useLayoutEffect(()=>{st?dt.defines.USE_DASH="":delete dt.defines.USE_DASH,dt.needsUpdate=!0},[st,dt]),reactExports.useEffect(()=>()=>pt.dispose(),[pt]),reactExports.createElement("primitive",_extends$r({object:ht,ref:ct},lt),reactExports.createElement("primitive",{object:pt,attach:"geometry"}),reactExports.createElement("primitive",_extends$r({object:dt,attach:"material",color:nt,vertexColors:!!rt,resolution:[ut.width,ut.height],linewidth:it??ot,dashed:st},lt)))});function workerBootstrap(){var tt=Object.create(null);function et(it,ot){var at=it.id,st=it.name,lt=it.dependencies;lt===void 0&&(lt=[]);var ct=it.init;ct===void 0&&(ct=function(){});var ut=it.getTransferables;if(ut===void 0&&(ut=null),!tt[at])try{lt=lt.map(function(dt){return dt&&dt.isWorkerModule&&(et(dt,function(pt){if(pt instanceof Error)throw pt}),dt=tt[dt.id].value),dt}),ct=rt("<"+st+">.init",ct),ut&&(ut=rt("<"+st+">.getTransferables",ut));var ht=null;typeof ct=="function"?ht=ct.apply(void 0,lt):console.error("worker module init function failed to rehydrate"),tt[at]={id:at,value:ht,getTransferables:ut},ot(ht)}catch(dt){dt&&dt.noLog||console.error(dt),ot(dt)}}function nt(it,ot){var at,st=it.id,lt=it.args;(!tt[st]||typeof tt[st].value!="function")&&ot(new Error("Worker module "+st+": not found or its 'init' did not return a function"));try{var ct=(at=tt[st]).value.apply(at,lt);ct&&typeof ct.then=="function"?ct.then(ut,function(ht){return ot(ht instanceof Error?ht:new Error(""+ht))}):ut(ct)}catch(ht){ot(ht)}function ut(ht){try{var dt=tt[st].getTransferables&&tt[st].getTransferables(ht);(!dt||!Array.isArray(dt)||!dt.length)&&(dt=void 0),ot(ht,dt)}catch(pt){console.error(pt),ot(pt)}}}function rt(it,ot){var at=void 0;self.troikaDefine=function(lt){return at=lt};var st=URL.createObjectURL(new Blob(["/** "+it.replace(/\*/g,"")+` **/ troikaDefine( `+ot+` @@ -4589,7 +4589,7 @@ troikaDefine( `+stringifyFunction(ct)+` )}`}),_allowInitAsString=!1),ct&&ct.workerModuleData&&(ct=ct.workerModuleData),ct});function lt(){for(var ct=[],ut=arguments.length;ut--;)ct[ut]=arguments[ut];if(!st){st=callWorker(it,"registerModule",lt.workerModuleData);var ht=function(){st=null,registeredModules[it].delete(ht)};(registeredModules[it]||(registeredModules[it]=new Set)).add(ht)}return st.then(function(dt){var pt=dt.isCallable;if(pt)return callWorker(it,"callModule",{id:ot,args:ct});throw new Error("Worker module function was called but `init` did not return a callable function")})}return lt.workerModuleData={isWorkerModule:!0,id:ot,name:at,dependencies:et,init:stringifyFunction(nt),getTransferables:rt&&stringifyFunction(rt)},lt}function terminateWorker(tt){registeredModules[tt]&®isteredModules[tt].forEach(function(et){et()}),workers[tt]&&(workers[tt].terminate(),delete workers[tt])}function stringifyFunction(tt){var et=tt.toString();return!/^function/.test(et)&&/^\w+\s*\(/.test(et)&&(et="function "+et),et}function getWorker(tt){var et=workers[tt];if(!et){var nt=stringifyFunction(workerBootstrap);et=workers[tt]=new Worker(URL.createObjectURL(new Blob(["/** Worker Module Bootstrap: "+tt.replace(/\*/g,"")+` **/ -;(`+nt+")()"],{type:"application/javascript"}))),et.onmessage=function(rt){var it=rt.data,ot=it.messageId,at=openRequests[ot];if(!at)throw new Error("WorkerModule response with empty or unknown messageId");delete openRequests[ot],at(it)}}return et}function callWorker(tt,et,nt){return new Promise(function(rt,it){var ot=++_messageId;openRequests[ot]=function(at){at.success?rt(at.result):it(new Error("Error in worker "+et+" call: "+at.error))},getWorker(tt).postMessage({messageId:ot,action:et,data:nt})})}function SDFGenerator(){var tt=function(et){function nt(Wt,Ft,Nt,Ct,Ht,Jt,nn,Yt){var fn=1-nn;Yt.x=fn*fn*Wt+2*fn*nn*Nt+nn*nn*Ht,Yt.y=fn*fn*Ft+2*fn*nn*Ct+nn*nn*Jt}function rt(Wt,Ft,Nt,Ct,Ht,Jt,nn,Yt,fn,cn){var _n=1-fn;cn.x=_n*_n*_n*Wt+3*_n*_n*fn*Nt+3*_n*fn*fn*Ht+fn*fn*fn*nn,cn.y=_n*_n*_n*Ft+3*_n*_n*fn*Ct+3*_n*fn*fn*Jt+fn*fn*fn*Yt}function it(Wt,Ft){for(var Nt=/([MLQCZ])([^MLQCZ]*)/g,Ct,Ht,Jt,nn,Yt;Ct=Nt.exec(Wt);){var fn=Ct[2].replace(/^\s*|\s*$/g,"").split(/[,\s]+/).map(function(cn){return parseFloat(cn)});switch(Ct[1]){case"M":nn=Ht=fn[0],Yt=Jt=fn[1];break;case"L":(fn[0]!==nn||fn[1]!==Yt)&&Ft("L",nn,Yt,nn=fn[0],Yt=fn[1]);break;case"Q":{Ft("Q",nn,Yt,nn=fn[2],Yt=fn[3],fn[0],fn[1]);break}case"C":{Ft("C",nn,Yt,nn=fn[4],Yt=fn[5],fn[0],fn[1],fn[2],fn[3]);break}case"Z":(nn!==Ht||Yt!==Jt)&&Ft("L",nn,Yt,Ht,Jt);break}}}function ot(Wt,Ft,Nt){Nt===void 0&&(Nt=16);var Ct={x:0,y:0};it(Wt,function(Ht,Jt,nn,Yt,fn,cn,_n,En,an){switch(Ht){case"L":Ft(Jt,nn,Yt,fn);break;case"Q":{for(var en=Jt,Tn=nn,Rn=1;Rn0;)Un[tr]=arguments[tr+2];var qn=Nn[jn]||(Nn[jn]=Nt.getUniformLocation(hn,jn));Nt["uniform"+On].apply(Nt,[qn].concat(Un))},setAttribute:function(On,jn,Un,tr,qn){var Xn=Mn[On];Xn||(Xn=Mn[On]={buf:Nt.createBuffer(),loc:Nt.getAttribLocation(hn,On),data:null}),Nt.bindBuffer(Nt.ARRAY_BUFFER,Xn.buf),Nt.vertexAttribPointer(Xn.loc,jn,Nt.FLOAT,!1,0,0),Nt.enableVertexAttribArray(Xn.loc),Ht?Nt.vertexAttribDivisor(Xn.loc,tr):An("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(Xn.loc,tr),qn!==Xn.data&&(Nt.bufferData(Nt.ARRAY_BUFFER,qn,Un),Xn.data=qn)}})}}}nn[$n].transaction(Sn)},dn=function($n,un){fn++;try{Nt.activeTexture(Nt.TEXTURE0+fn);var rn=Yt[$n];rn||(rn=Yt[$n]=Nt.createTexture(),Nt.bindTexture(Nt.TEXTURE_2D,rn),Nt.texParameteri(Nt.TEXTURE_2D,Nt.TEXTURE_MIN_FILTER,Nt.NEAREST),Nt.texParameteri(Nt.TEXTURE_2D,Nt.TEXTURE_MAG_FILTER,Nt.NEAREST)),Nt.bindTexture(Nt.TEXTURE_2D,rn),un(rn,fn)}finally{fn--}},gn=function($n,un,rn){var Sn=Nt.createFramebuffer();cn.push(Sn),Nt.bindFramebuffer(Nt.FRAMEBUFFER,Sn),Nt.activeTexture(Nt.TEXTURE0+un),Nt.bindTexture(Nt.TEXTURE_2D,$n),Nt.framebufferTexture2D(Nt.FRAMEBUFFER,Nt.COLOR_ATTACHMENT0,Nt.TEXTURE_2D,$n,0);try{rn(Sn)}finally{Nt.deleteFramebuffer(Sn),Nt.bindFramebuffer(Nt.FRAMEBUFFER,cn[--cn.length-1]||null)}},Cn=function(){Jt={},nn={},Yt={},fn=-1,cn.length=0};var _n=An,En=yn,an=kn,en=dn,Tn=gn,Rn=Cn,Ht=typeof WebGL2RenderingContext<"u"&&Nt instanceof WebGL2RenderingContext,Jt={},nn={},Yt={},fn=-1,cn=[];Nt.canvas.addEventListener("webglcontextlost",function($n){Cn(),$n.preventDefault()},!1),lt.set(Nt,Ct={gl:Nt,isWebGL2:Ht,getExtension:An,withProgram:kn,withTexture:dn,withTextureFramebuffer:gn,handleContextLoss:Cn})}Ft(Ct)}function ht(Wt,Ft,Nt,Ct,Ht,Jt,nn,Yt){nn===void 0&&(nn=15),Yt===void 0&&(Yt=null),ut(Wt,function(fn){var cn=fn.gl,_n=fn.withProgram,En=fn.withTexture;En("copy",function(an,en){cn.texImage2D(cn.TEXTURE_2D,0,cn.RGBA,Ht,Jt,0,cn.RGBA,cn.UNSIGNED_BYTE,Ft),_n("copy",at,st,function(Tn){var Rn=Tn.setUniform,An=Tn.setAttribute;An("aUV",2,cn.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),Rn("1i","image",en),cn.bindFramebuffer(cn.FRAMEBUFFER,Yt||null),cn.disable(cn.BLEND),cn.colorMask(nn&8,nn&4,nn&2,nn&1),cn.viewport(Nt,Ct,Ht,Jt),cn.scissor(Nt,Ct,Ht,Jt),cn.drawArrays(cn.TRIANGLES,0,3)})})})}function dt(Wt,Ft,Nt){var Ct=Wt.width,Ht=Wt.height;ut(Wt,function(Jt){var nn=Jt.gl,Yt=new Uint8Array(Ct*Ht*4);nn.readPixels(0,0,Ct,Ht,nn.RGBA,nn.UNSIGNED_BYTE,Yt),Wt.width=Ft,Wt.height=Nt,ht(nn,Yt,0,0,Ct,Ht)})}var pt=Object.freeze({__proto__:null,withWebGLContext:ut,renderImageData:ht,resizeWebGLCanvasWithoutClearing:dt});function mt(Wt,Ft,Nt,Ct,Ht,Jt){Jt===void 0&&(Jt=1);var nn=new Uint8Array(Wt*Ft),Yt=Ct[2]-Ct[0],fn=Ct[3]-Ct[1],cn=[];ot(Nt,function(An,yn,kn,dn){cn.push({x1:An,y1:yn,x2:kn,y2:dn,minX:Math.min(An,kn),minY:Math.min(yn,dn),maxX:Math.max(An,kn),maxY:Math.max(yn,dn)})}),cn.sort(function(An,yn){return An.maxX-yn.maxX});for(var _n=0;_nCn.minX&&yn-dnCn.minY){var $n=bt(An,yn,Cn.x1,Cn.y1,Cn.x2,Cn.y2);$nyn!=gn.y2>yn&&An<(gn.x2-gn.x1)*(yn-gn.y1)/(gn.y2-gn.y1)+gn.x1;Cn&&(kn+=gn.y1p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",canonical:"6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye"};function gt(dn,gn){var Cn=36,$n=0,un=new Map,rn=gn&&new Map,Sn;return dn.split(",").forEach(function Mn(Nn){if(Nn.indexOf("+")!==-1)for(var hn=+Nn;hn--;)Mn(Sn);else{Sn=Nn;var Qt=Nn.split(">"),Zt=Qt[0],wn=Qt[1];Zt=String.fromCodePoint($n+=parseInt(Zt,Cn)),wn=String.fromCodePoint($n+=parseInt(wn,Cn)),un.set(Zt,wn),gn&&rn.set(wn,Zt)}}),{map:un,reverseMap:rn}}var yt,bt,wt;function vt(){if(!yt){var dn=gt(mt.pairs,!0),gn=dn.map,Cn=dn.reverseMap;yt=gn,bt=Cn,wt=gt(mt.canonical,!1).map}}function kt(dn){return vt(),yt.get(dn)||null}function St(dn){return vt(),bt.get(dn)||null}function Tt(dn){return vt(),wt.get(dn)||null}var At=rt.L,Et=rt.R,Mt=rt.EN,Lt=rt.ES,jt=rt.ET,Rt=rt.AN,$t=rt.CS,xt=rt.B,It=rt.S,Ot=rt.ON,zt=rt.BN,Ut=rt.NSM,Wt=rt.AL,Ft=rt.LRO,Nt=rt.RLO,Ct=rt.LRE,Ht=rt.RLE,Jt=rt.PDF,nn=rt.LRI,Yt=rt.RLI,fn=rt.FSI,cn=rt.PDI;function _n(dn,gn){for(var Cn=125,$n=new Uint32Array(dn.length),un=0;un0)Xn--;else if(Zn>0){for(Wn=0;!tr[tr.length-1]._isolate;)tr.pop();var Dr=tr[tr.length-1]._isolInitIndex;Dr!=null&&(Nn.set(Dr,Vn),Nn.set(Vn,Dr)),tr.pop(),Zn--}qn=tr[tr.length-1],Mn[Vn]=qn._level,qn._override&&Sn(Vn,qn._override)}else pr&Jt?(Xn===0&&(Wn>0?Wn--:!qn._isolate&&tr.length>1&&(tr.pop(),qn=tr[tr.length-1])),Mn[Vn]=qn._level):pr&xt&&(Mn[Vn]=Qt.level);else Mn[Vn]=qn._level,qn._override&&pr!==zt&&Sn(Vn,qn._override)}for(var Rr=[],Xr=null,Vr=Qt.start;Vr<=Qt.end;Vr++){var Fr=$n[Vr];if(!(Fr<)){var so=Mn[Vr],qr=Fr&ot,Or=Fr===cn;Xr&&so===Xr._level?(Xr._end=Vr,Xr._endsWithIsolInit=qr):Rr.push(Xr={_start:Vr,_end:Vr,_level:so,_startsWithPDI:Or,_endsWithIsolInit:qr})}}for(var wo=[],vn=0;vn=0;Hr--)if(!($n[Hr]<)){cr=Mn[Hr];break}var _r=Dn[Dn.length-1],jr=Mn[_r],Gr=Qt.level;if(!($n[_r]&ot)){for(var eo=_r+1;eo<=Qt.end;eo++)if(!($n[eo]<)){Gr=Mn[eo];break}}wo.push({_seqIndices:Dn,_sosType:Math.max(cr,lr)%2?Et:At,_eosType:Math.max(Gr,jr)%2?Et:At})}}for(var Qr=0;Qr=0;Nr--)if(!($n[wr[Nr]]<)){Lr=$n[wr[Nr]];break}Sn(Pr,Lr&(ot|cn)?Ot:Lr)}}if(rn.get(Mt))for(var Cr=0;Cr=-1;ir--){var Sr=ir===-1?$r:$n[wr[ir]];if(Sr&at){Sr===Wt&&Sn(er,Rt);break}}}if(rn.get(Wt))for(var dr=0;dr=0&&(ao=$n[wr[fo]],!!(ao<));fo--);for(var Gn=Ir+1;Gn=0&&$n[wr[go]]&(jt|lt);go--)Sn(wr[go],Mt);for(var vo=bo+1;vo=0&&$n[wr[Vo]]<Vo--)Sn(wr[Vo],Ot);for(var $o=Ao+1;$o=0;tu--){var op=mu[tu].char;if(op===Mp||op===St(Tt(No))||kt(Tt(op))===No){Zo.push([mu[tu].seqIndex,eu]),mu.length=tu;break}}}Zo.sort(function(cs,ws){return cs[0]-ws[0]})}for(var Rp=0;Rp=0;Ko--){var qo=wr[Ko];if($n[qo]&$a){var Zs=$n[qo]&na?Et:At;Zs!==Dl(qo)?Us=Zs:Us=Dl(qo);break}}}if(Us){if($n[wr[es]]=$n[wr[nu]]=Us,Us!==Dl(wr[es])){for(var zs=es+1;zs=0;Hu--)if($n[wr[Hu]]<)Op=Hu;else{Ws=$n[wr[Hu]]&na?Et:At;break}for(var ns=Wr,gu=Al+1;gu=0&&dt(dn[yu])&ct;yu--)Mn[yu]=Qt.level}}return{levels:Mn,paragraphs:hn};function Gu(cs,ws){for(var Do=cs;Do=Mn&&dt(dn[Qt])&ct;Qt--)hn[Qt]=Sn.level;for(var Zt=Sn.level,wn=1/0,On=0;OnZt&&(Zt=jn),jn=wn;Un--)for(var tr=0;tr=Un){for(var qn=tr;tr+1=Un;)tr++;tr>qn&&rn.push([qn+Cn,tr+Cn])}}}),rn}function yn(dn,gn,Cn,$n){var un=kn(dn,gn,Cn,$n),rn=[].concat(dn);return un.forEach(function(Sn,Mn){rn[Mn]=(gn.levels[Sn]&1?Tn(dn[Sn]):null)||dn[Sn]}),rn.join("")}function kn(dn,gn,Cn,$n){for(var un=An(dn,gn,Cn,$n),rn=[],Sn=0;Sn/gm;function nt(rt,it){let ot=ShaderChunk[it];return ot?expandShaderIncludes(ot):rt}return tt.replace(et,nt)}const _lut=[];for(let tt=0;tt<256;tt++)_lut[tt]=(tt<16?"0":"")+tt.toString(16);function generateUUID(){const tt=Math.random()*4294967295|0,et=Math.random()*4294967295|0,nt=Math.random()*4294967295|0,rt=Math.random()*4294967295|0;return(_lut[tt&255]+_lut[tt>>8&255]+_lut[tt>>16&255]+_lut[tt>>24&255]+"-"+_lut[et&255]+_lut[et>>8&255]+"-"+_lut[et>>16&15|64]+_lut[et>>24&255]+"-"+_lut[nt&63|128]+_lut[nt>>8&255]+"-"+_lut[nt>>16&255]+_lut[nt>>24&255]+_lut[rt&255]+_lut[rt>>8&255]+_lut[rt>>16&255]+_lut[rt>>24&255]).toUpperCase()}const assign$2=Object.assign||function(){let tt=arguments[0];for(let et=1,nt=arguments.length;et/gm,` +;(`+nt+")()"],{type:"application/javascript"}))),et.onmessage=function(rt){var it=rt.data,ot=it.messageId,at=openRequests[ot];if(!at)throw new Error("WorkerModule response with empty or unknown messageId");delete openRequests[ot],at(it)}}return et}function callWorker(tt,et,nt){return new Promise(function(rt,it){var ot=++_messageId;openRequests[ot]=function(at){at.success?rt(at.result):it(new Error("Error in worker "+et+" call: "+at.error))},getWorker(tt).postMessage({messageId:ot,action:et,data:nt})})}function SDFGenerator(){var tt=function(et){function nt(Wt,Ft,Nt,Ct,Ht,Jt,nn,Yt){var fn=1-nn;Yt.x=fn*fn*Wt+2*fn*nn*Nt+nn*nn*Ht,Yt.y=fn*fn*Ft+2*fn*nn*Ct+nn*nn*Jt}function rt(Wt,Ft,Nt,Ct,Ht,Jt,nn,Yt,fn,cn){var _n=1-fn;cn.x=_n*_n*_n*Wt+3*_n*_n*fn*Nt+3*_n*fn*fn*Ht+fn*fn*fn*nn,cn.y=_n*_n*_n*Ft+3*_n*_n*fn*Ct+3*_n*fn*fn*Jt+fn*fn*fn*Yt}function it(Wt,Ft){for(var Nt=/([MLQCZ])([^MLQCZ]*)/g,Ct,Ht,Jt,nn,Yt;Ct=Nt.exec(Wt);){var fn=Ct[2].replace(/^\s*|\s*$/g,"").split(/[,\s]+/).map(function(cn){return parseFloat(cn)});switch(Ct[1]){case"M":nn=Ht=fn[0],Yt=Jt=fn[1];break;case"L":(fn[0]!==nn||fn[1]!==Yt)&&Ft("L",nn,Yt,nn=fn[0],Yt=fn[1]);break;case"Q":{Ft("Q",nn,Yt,nn=fn[2],Yt=fn[3],fn[0],fn[1]);break}case"C":{Ft("C",nn,Yt,nn=fn[4],Yt=fn[5],fn[0],fn[1],fn[2],fn[3]);break}case"Z":(nn!==Ht||Yt!==Jt)&&Ft("L",nn,Yt,Ht,Jt);break}}}function ot(Wt,Ft,Nt){Nt===void 0&&(Nt=16);var Ct={x:0,y:0};it(Wt,function(Ht,Jt,nn,Yt,fn,cn,_n,En,an){switch(Ht){case"L":Ft(Jt,nn,Yt,fn);break;case"Q":{for(var en=Jt,Tn=nn,Rn=1;Rn0;)Un[tr]=arguments[tr+2];var qn=Nn[jn]||(Nn[jn]=Nt.getUniformLocation(hn,jn));Nt["uniform"+On].apply(Nt,[qn].concat(Un))},setAttribute:function(On,jn,Un,tr,qn){var Xn=Mn[On];Xn||(Xn=Mn[On]={buf:Nt.createBuffer(),loc:Nt.getAttribLocation(hn,On),data:null}),Nt.bindBuffer(Nt.ARRAY_BUFFER,Xn.buf),Nt.vertexAttribPointer(Xn.loc,jn,Nt.FLOAT,!1,0,0),Nt.enableVertexAttribArray(Xn.loc),Ht?Nt.vertexAttribDivisor(Xn.loc,tr):An("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(Xn.loc,tr),qn!==Xn.data&&(Nt.bufferData(Nt.ARRAY_BUFFER,qn,Un),Xn.data=qn)}})}}}nn[$n].transaction(Sn)},dn=function($n,un){fn++;try{Nt.activeTexture(Nt.TEXTURE0+fn);var rn=Yt[$n];rn||(rn=Yt[$n]=Nt.createTexture(),Nt.bindTexture(Nt.TEXTURE_2D,rn),Nt.texParameteri(Nt.TEXTURE_2D,Nt.TEXTURE_MIN_FILTER,Nt.NEAREST),Nt.texParameteri(Nt.TEXTURE_2D,Nt.TEXTURE_MAG_FILTER,Nt.NEAREST)),Nt.bindTexture(Nt.TEXTURE_2D,rn),un(rn,fn)}finally{fn--}},gn=function($n,un,rn){var Sn=Nt.createFramebuffer();cn.push(Sn),Nt.bindFramebuffer(Nt.FRAMEBUFFER,Sn),Nt.activeTexture(Nt.TEXTURE0+un),Nt.bindTexture(Nt.TEXTURE_2D,$n),Nt.framebufferTexture2D(Nt.FRAMEBUFFER,Nt.COLOR_ATTACHMENT0,Nt.TEXTURE_2D,$n,0);try{rn(Sn)}finally{Nt.deleteFramebuffer(Sn),Nt.bindFramebuffer(Nt.FRAMEBUFFER,cn[--cn.length-1]||null)}},Cn=function(){Jt={},nn={},Yt={},fn=-1,cn.length=0};var _n=An,En=yn,an=kn,en=dn,Tn=gn,Rn=Cn,Ht=typeof WebGL2RenderingContext<"u"&&Nt instanceof WebGL2RenderingContext,Jt={},nn={},Yt={},fn=-1,cn=[];Nt.canvas.addEventListener("webglcontextlost",function($n){Cn(),$n.preventDefault()},!1),lt.set(Nt,Ct={gl:Nt,isWebGL2:Ht,getExtension:An,withProgram:kn,withTexture:dn,withTextureFramebuffer:gn,handleContextLoss:Cn})}Ft(Ct)}function ht(Wt,Ft,Nt,Ct,Ht,Jt,nn,Yt){nn===void 0&&(nn=15),Yt===void 0&&(Yt=null),ut(Wt,function(fn){var cn=fn.gl,_n=fn.withProgram,En=fn.withTexture;En("copy",function(an,en){cn.texImage2D(cn.TEXTURE_2D,0,cn.RGBA,Ht,Jt,0,cn.RGBA,cn.UNSIGNED_BYTE,Ft),_n("copy",at,st,function(Tn){var Rn=Tn.setUniform,An=Tn.setAttribute;An("aUV",2,cn.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),Rn("1i","image",en),cn.bindFramebuffer(cn.FRAMEBUFFER,Yt||null),cn.disable(cn.BLEND),cn.colorMask(nn&8,nn&4,nn&2,nn&1),cn.viewport(Nt,Ct,Ht,Jt),cn.scissor(Nt,Ct,Ht,Jt),cn.drawArrays(cn.TRIANGLES,0,3)})})})}function dt(Wt,Ft,Nt){var Ct=Wt.width,Ht=Wt.height;ut(Wt,function(Jt){var nn=Jt.gl,Yt=new Uint8Array(Ct*Ht*4);nn.readPixels(0,0,Ct,Ht,nn.RGBA,nn.UNSIGNED_BYTE,Yt),Wt.width=Ft,Wt.height=Nt,ht(nn,Yt,0,0,Ct,Ht)})}var pt=Object.freeze({__proto__:null,withWebGLContext:ut,renderImageData:ht,resizeWebGLCanvasWithoutClearing:dt});function mt(Wt,Ft,Nt,Ct,Ht,Jt){Jt===void 0&&(Jt=1);var nn=new Uint8Array(Wt*Ft),Yt=Ct[2]-Ct[0],fn=Ct[3]-Ct[1],cn=[];ot(Nt,function(An,yn,kn,dn){cn.push({x1:An,y1:yn,x2:kn,y2:dn,minX:Math.min(An,kn),minY:Math.min(yn,dn),maxX:Math.max(An,kn),maxY:Math.max(yn,dn)})}),cn.sort(function(An,yn){return An.maxX-yn.maxX});for(var _n=0;_nCn.minX&&yn-dnCn.minY){var $n=bt(An,yn,Cn.x1,Cn.y1,Cn.x2,Cn.y2);$nyn!=gn.y2>yn&&An<(gn.x2-gn.x1)*(yn-gn.y1)/(gn.y2-gn.y1)+gn.x1;Cn&&(kn+=gn.y1p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",canonical:"6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye"};function gt(dn,gn){var Cn=36,$n=0,un=new Map,rn=gn&&new Map,Sn;return dn.split(",").forEach(function Mn(Nn){if(Nn.indexOf("+")!==-1)for(var hn=+Nn;hn--;)Mn(Sn);else{Sn=Nn;var Qt=Nn.split(">"),Zt=Qt[0],wn=Qt[1];Zt=String.fromCodePoint($n+=parseInt(Zt,Cn)),wn=String.fromCodePoint($n+=parseInt(wn,Cn)),un.set(Zt,wn),gn&&rn.set(wn,Zt)}}),{map:un,reverseMap:rn}}var yt,bt,wt;function vt(){if(!yt){var dn=gt(mt.pairs,!0),gn=dn.map,Cn=dn.reverseMap;yt=gn,bt=Cn,wt=gt(mt.canonical,!1).map}}function kt(dn){return vt(),yt.get(dn)||null}function St(dn){return vt(),bt.get(dn)||null}function Et(dn){return vt(),wt.get(dn)||null}var At=rt.L,Tt=rt.R,Mt=rt.EN,Lt=rt.ES,jt=rt.ET,Rt=rt.AN,$t=rt.CS,xt=rt.B,It=rt.S,Ot=rt.ON,zt=rt.BN,Ut=rt.NSM,Wt=rt.AL,Ft=rt.LRO,Nt=rt.RLO,Ct=rt.LRE,Ht=rt.RLE,Jt=rt.PDF,nn=rt.LRI,Yt=rt.RLI,fn=rt.FSI,cn=rt.PDI;function _n(dn,gn){for(var Cn=125,$n=new Uint32Array(dn.length),un=0;un0)Xn--;else if(Zn>0){for(Wn=0;!tr[tr.length-1]._isolate;)tr.pop();var Dr=tr[tr.length-1]._isolInitIndex;Dr!=null&&(Nn.set(Dr,Vn),Nn.set(Vn,Dr)),tr.pop(),Zn--}qn=tr[tr.length-1],Mn[Vn]=qn._level,qn._override&&Sn(Vn,qn._override)}else pr&Jt?(Xn===0&&(Wn>0?Wn--:!qn._isolate&&tr.length>1&&(tr.pop(),qn=tr[tr.length-1])),Mn[Vn]=qn._level):pr&xt&&(Mn[Vn]=Qt.level);else Mn[Vn]=qn._level,qn._override&&pr!==zt&&Sn(Vn,qn._override)}for(var Rr=[],Xr=null,Vr=Qt.start;Vr<=Qt.end;Vr++){var Fr=$n[Vr];if(!(Fr<)){var so=Mn[Vr],qr=Fr&ot,Or=Fr===cn;Xr&&so===Xr._level?(Xr._end=Vr,Xr._endsWithIsolInit=qr):Rr.push(Xr={_start:Vr,_end:Vr,_level:so,_startsWithPDI:Or,_endsWithIsolInit:qr})}}for(var wo=[],vn=0;vn=0;Hr--)if(!($n[Hr]<)){cr=Mn[Hr];break}var _r=Dn[Dn.length-1],jr=Mn[_r],Gr=Qt.level;if(!($n[_r]&ot)){for(var eo=_r+1;eo<=Qt.end;eo++)if(!($n[eo]<)){Gr=Mn[eo];break}}wo.push({_seqIndices:Dn,_sosType:Math.max(cr,lr)%2?Tt:At,_eosType:Math.max(Gr,jr)%2?Tt:At})}}for(var Qr=0;Qr=0;Nr--)if(!($n[wr[Nr]]<)){Lr=$n[wr[Nr]];break}Sn(Pr,Lr&(ot|cn)?Ot:Lr)}}if(rn.get(Mt))for(var Cr=0;Cr=-1;ir--){var Sr=ir===-1?$r:$n[wr[ir]];if(Sr&at){Sr===Wt&&Sn(er,Rt);break}}}if(rn.get(Wt))for(var dr=0;dr=0&&(ao=$n[wr[fo]],!!(ao<));fo--);for(var Gn=Ir+1;Gn=0&&$n[wr[go]]&(jt|lt);go--)Sn(wr[go],Mt);for(var vo=bo+1;vo=0&&$n[wr[Vo]]<Vo--)Sn(wr[Vo],Ot);for(var $o=Ao+1;$o=0;tu--){var op=mu[tu].char;if(op===Mp||op===St(Et(No))||kt(Et(op))===No){Zo.push([mu[tu].seqIndex,eu]),mu.length=tu;break}}}Zo.sort(function(cs,ws){return cs[0]-ws[0]})}for(var Rp=0;Rp=0;Ko--){var qo=wr[Ko];if($n[qo]&$a){var Zs=$n[qo]&na?Tt:At;Zs!==Dl(qo)?Us=Zs:Us=Dl(qo);break}}}if(Us){if($n[wr[es]]=$n[wr[nu]]=Us,Us!==Dl(wr[es])){for(var zs=es+1;zs=0;Hu--)if($n[wr[Hu]]<)Op=Hu;else{Ws=$n[wr[Hu]]&na?Tt:At;break}for(var ns=Wr,gu=Al+1;gu=0&&dt(dn[yu])&ct;yu--)Mn[yu]=Qt.level}}return{levels:Mn,paragraphs:hn};function Gu(cs,ws){for(var Do=cs;Do=Mn&&dt(dn[Qt])&ct;Qt--)hn[Qt]=Sn.level;for(var Zt=Sn.level,wn=1/0,On=0;OnZt&&(Zt=jn),jn=wn;Un--)for(var tr=0;tr=Un){for(var qn=tr;tr+1=Un;)tr++;tr>qn&&rn.push([qn+Cn,tr+Cn])}}}),rn}function yn(dn,gn,Cn,$n){var un=kn(dn,gn,Cn,$n),rn=[].concat(dn);return un.forEach(function(Sn,Mn){rn[Mn]=(gn.levels[Sn]&1?Tn(dn[Sn]):null)||dn[Sn]}),rn.join("")}function kn(dn,gn,Cn,$n){for(var un=An(dn,gn,Cn,$n),rn=[],Sn=0;Sn/gm;function nt(rt,it){let ot=ShaderChunk[it];return ot?expandShaderIncludes(ot):rt}return tt.replace(et,nt)}const _lut=[];for(let tt=0;tt<256;tt++)_lut[tt]=(tt<16?"0":"")+tt.toString(16);function generateUUID(){const tt=Math.random()*4294967295|0,et=Math.random()*4294967295|0,nt=Math.random()*4294967295|0,rt=Math.random()*4294967295|0;return(_lut[tt&255]+_lut[tt>>8&255]+_lut[tt>>16&255]+_lut[tt>>24&255]+"-"+_lut[et&255]+_lut[et>>8&255]+"-"+_lut[et>>16&15|64]+_lut[et>>24&255]+"-"+_lut[nt&63|128]+_lut[nt>>8&255]+"-"+_lut[nt>>16&255]+_lut[nt>>24&255]+_lut[rt&255]+_lut[rt>>8&255]+_lut[rt>>16&255]+_lut[rt>>24&255]).toUpperCase()}const assign$2=Object.assign||function(){let tt=arguments[0];for(let et=1,nt=arguments.length;et/gm,` //!BEGIN_POST_CHUNK $1 $& //!END_POST_CHUNK @@ -4619,19 +4619,19 @@ void main() { ${rt} troikaOrigMain${et}(); ${it} -}`),tt}function optionsJsonReplacer(tt,et){return tt==="uniforms"?void 0:typeof et=="function"?et.toString():et}let _idCtr=0;const optionsHashesToIds=new Map;function getKeyForOptions(tt){const et=JSON.stringify(tt,optionsJsonReplacer);let nt=optionsHashesToIds.get(et);return nt==null&&optionsHashesToIds.set(et,nt=++_idCtr),nt}function createTypesetter(tt,et,nt){const{defaultFontURL:rt}=nt,it=Object.create(null),ot=1/0,at=/[\u00AD\u034F\u061C\u115F-\u1160\u17B4-\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8]/,st="[^\\S\\u00A0]",lt=new RegExp(`${st}|[\\-\\u007C\\u00AD\\u2010\\u2012-\\u2014\\u2027\\u2056\\u2E17\\u2E40]`);function ct(wt,vt){function kt(){const St=Tt=>{console.error(`Failure loading font ${wt}${wt===rt?"":"; trying fallback"}`,Tt),wt!==rt&&(wt=rt,kt())};try{const Tt=new XMLHttpRequest;Tt.open("get",wt,!0),Tt.responseType="arraybuffer",Tt.onload=function(){if(Tt.status>=400)St(new Error(Tt.statusText));else if(Tt.status>0)try{const At=tt(Tt.response);vt(At)}catch(At){St(At)}},Tt.onerror=St,Tt.send()}catch(Tt){St(Tt)}}kt()}function ut(wt,vt){wt||(wt=rt);let kt=it[wt];kt?kt.pending?kt.pending.push(vt):vt(kt):(it[wt]={pending:[vt]},ct(wt,St=>{let Tt=it[wt].pending;it[wt]=St,Tt.forEach(At=>At(St))}))}function ht({text:wt="",font:vt=rt,sdfGlyphSize:kt=64,fontSize:St=1,letterSpacing:Tt=0,lineHeight:At="normal",maxWidth:Et=ot,direction:Mt,textAlign:Lt="left",textIndent:jt=0,whiteSpace:Rt="normal",overflowWrap:$t="normal",anchorX:xt=0,anchorY:It=0,includeCaretPositions:Ot=!1,chunkedBoundsSize:zt=8192,colorRanges:Ut=null},Wt,Ft=!1){const Nt=gt(),Ct={fontLoad:0,typesetting:0};wt.indexOf("\r")>-1&&(console.info("Typesetter: got text with \\r chars; normalizing to \\n"),wt=wt.replace(/\r\n/g,` +}`),tt}function optionsJsonReplacer(tt,et){return tt==="uniforms"?void 0:typeof et=="function"?et.toString():et}let _idCtr=0;const optionsHashesToIds=new Map;function getKeyForOptions(tt){const et=JSON.stringify(tt,optionsJsonReplacer);let nt=optionsHashesToIds.get(et);return nt==null&&optionsHashesToIds.set(et,nt=++_idCtr),nt}function createTypesetter(tt,et,nt){const{defaultFontURL:rt}=nt,it=Object.create(null),ot=1/0,at=/[\u00AD\u034F\u061C\u115F-\u1160\u17B4-\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8]/,st="[^\\S\\u00A0]",lt=new RegExp(`${st}|[\\-\\u007C\\u00AD\\u2010\\u2012-\\u2014\\u2027\\u2056\\u2E17\\u2E40]`);function ct(wt,vt){function kt(){const St=Et=>{console.error(`Failure loading font ${wt}${wt===rt?"":"; trying fallback"}`,Et),wt!==rt&&(wt=rt,kt())};try{const Et=new XMLHttpRequest;Et.open("get",wt,!0),Et.responseType="arraybuffer",Et.onload=function(){if(Et.status>=400)St(new Error(Et.statusText));else if(Et.status>0)try{const At=tt(Et.response);vt(At)}catch(At){St(At)}},Et.onerror=St,Et.send()}catch(Et){St(Et)}}kt()}function ut(wt,vt){wt||(wt=rt);let kt=it[wt];kt?kt.pending?kt.pending.push(vt):vt(kt):(it[wt]={pending:[vt]},ct(wt,St=>{let Et=it[wt].pending;it[wt]=St,Et.forEach(At=>At(St))}))}function ht({text:wt="",font:vt=rt,sdfGlyphSize:kt=64,fontSize:St=1,letterSpacing:Et=0,lineHeight:At="normal",maxWidth:Tt=ot,direction:Mt,textAlign:Lt="left",textIndent:jt=0,whiteSpace:Rt="normal",overflowWrap:$t="normal",anchorX:xt=0,anchorY:It=0,includeCaretPositions:Ot=!1,chunkedBoundsSize:zt=8192,colorRanges:Ut=null},Wt,Ft=!1){const Nt=gt(),Ct={fontLoad:0,typesetting:0};wt.indexOf("\r")>-1&&(console.info("Typesetter: got text with \\r chars; normalizing to \\n"),wt=wt.replace(/\r\n/g,` `).replace(/\r/g,` -`)),St=+St,Tt=+Tt,Et=+Et,At=At||"normal",jt=+jt,ut(vt,Ht=>{const Jt=isFinite(Et);let nn=null,Yt=null,fn=null,cn=null,_n=null,En=null,an=null,en=0,Tn=0,Rn=Rt!=="nowrap";const{ascender:An,descender:yn,unitsPerEm:kn,lineGap:dn,capHeight:gn,xHeight:Cn}=Ht;Ct.fontLoad=gt()-Nt;const $n=gt(),un=St/kn;At==="normal"&&(At=(An-yn+dn)/kn),At=At*St;const rn=(At-(An-yn)*un)/2,Sn=-(An*un+rn),Mn=Math.min(At,(An-yn)*un),Nn=(An+yn)/2*un-Mn/2;let hn=jt,Qt=new yt;const Zt=[Qt];Ht.forEachGlyph(wt,St,Tt,(jn,Un,tr)=>{const qn=wt.charAt(tr),Xn=jn.advanceWidth*un,Wn=Qt.count;let Zn;if("isEmpty"in jn||(jn.isWhitespace=!!qn&&new RegExp(st).test(qn),jn.canBreakAfter=!!qn&<.test(qn),jn.isEmpty=jn.xMin===jn.xMax||jn.yMin===jn.yMax||at.test(qn)),!jn.isWhitespace&&!jn.isEmpty&&Tn++,Rn&&Jt&&!jn.isWhitespace&&Un+Xn+hn>Et&&Wn){if(Qt.glyphAt(Wn-1).glyphObj.canBreakAfter)Zn=new yt,hn=-Un;else for(let pr=Wn;pr--;)if(pr===0&&$t==="break-word"){Zn=new yt,hn=-Un;break}else if(Qt.glyphAt(pr).glyphObj.canBreakAfter){Zn=Qt.splitAt(pr+1);const fr=Zn.glyphAt(0).x;hn-=fr;for(let Er=Zn.count;Er--;)Zn.glyphAt(Er).x-=fr;break}Zn&&(Qt.isSoftWrapped=!0,Qt=Zn,Zt.push(Qt),en=Et)}let Vn=Qt.glyphAt(Qt.count);Vn.glyphObj=jn,Vn.x=Un+hn,Vn.width=Xn,Vn.charIndex=tr,qn===` -`&&(Qt=new yt,Zt.push(Qt),hn=-(Un+Xn+Tt*St)+jt)}),Zt.forEach(jn=>{for(let Un=jn.count;Un--;){let{glyphObj:tr,x:qn,width:Xn}=jn.glyphAt(Un);if(!tr.isWhitespace){jn.width=qn+Xn,jn.width>en&&(en=jn.width);return}}});let wn=0,On=0;if(xt&&(typeof xt=="number"?wn=-xt:typeof xt=="string"&&(wn=-en*(xt==="left"?0:xt==="center"?.5:xt==="right"?1:pt(xt)))),It){if(typeof It=="number")On=-It;else if(typeof It=="string"){let jn=Zt.length*At;On=It==="top"?0:It==="top-baseline"?-Sn:It==="top-cap"?-Sn-gn*un:It==="top-ex"?-Sn-Cn*un:It==="middle"?jn/2:It==="bottom"?jn:It==="bottom-baseline"?jn-rn+yn*un:pt(It)*jn}}if(!Ft){const jn=et.getEmbeddingLevels(wt,Mt);nn=new Uint16Array(Tn),Yt=new Float32Array(Tn*2),fn={},En=[ot,ot,-ot,-ot],an=[];let Un=Sn;Ot&&(_n=new Float32Array(wt.length*3)),Ut&&(cn=new Uint8Array(Tn*3));let tr=0,qn=-1,Xn=-1,Wn,Zn;if(Zt.forEach((Vn,pr)=>{let{count:fr,width:Er}=Vn;if(fr>0){let oo=0;for(let so=fr;so--&&Vn.glyphAt(so).glyphObj.isWhitespace;)oo++;let Dr=0,Rr=0;if(Lt==="center")Dr=(en-Er)/2;else if(Lt==="right")Dr=en-Er;else if(Lt==="justify"&&Vn.isSoftWrapped){let so=0;for(let qr=fr-oo;qr--;)Vn.glyphAt(qr).glyphObj.isWhitespace&&so++;Rr=(en-Er)/so}if(Rr||Dr){let so=0;for(let qr=0;qr=qr){let sn=Pn,Xt=Pn;for(;XtOr)break;XtVr=so;for(let so=0;so1&&mt(_n,qn,Xt),qn=vn}if(Ut){const{charIndex:vn}=qr;for(;vn>Xn;)Xn++,Ut.hasOwnProperty(Xn)&&(Zn=Ut[Xn])}if(!Vr.isWhitespace&&!Vr.isEmpty){const vn=tr++;fn[Or]||(fn[Or]={path:Vr.path,pathBounds:[Vr.xMin,Vr.yMin,Vr.xMax,Vr.yMax]});const Pn=qr.x+wn,sn=Un+On;Yt[vn*2]=Pn,Yt[vn*2+1]=sn;const Xt=Pn+Vr.xMin*un,xn=sn+Vr.yMin*un,Dn=Pn+Vr.xMax*un,Fn=sn+Vr.yMax*un;XtEn[2]&&(En[2]=Dn),Fn>En[3]&&(En[3]=Fn),vn%zt===0&&(Wn={start:vn,end:vn,rect:[ot,ot,-ot,-ot]},an.push(Wn)),Wn.end++;const Kn=Wn.rect;if(XtKn[2]&&(Kn[2]=Dn),Fn>Kn[3]&&(Kn[3]=Fn),nn[vn]=Or,Ut){const nr=vn*3;cn[nr]=Zn>>16&255,cn[nr+1]=Zn>>8&255,cn[nr+2]=Zn&255}}}}Un-=At}),_n){const Vn=wt.length-qn;Vn>1&&mt(_n,qn,Vn)}}Ct.typesetting=gt()-$n,Wt({glyphIds:nn,glyphPositions:Yt,glyphData:fn,caretPositions:_n,caretHeight:Mn,glyphColors:cn,chunkedBounds:an,fontSize:St,unitsPerEm:kn,ascender:An*un,descender:yn*un,capHeight:gn*un,xHeight:Cn*un,lineHeight:At,topBaseline:Sn,blockBounds:[wn,On-Zt.length*At,wn+en,On],visibleBounds:En,timings:Ct})})}function dt(wt,vt){ht(wt,kt=>{const[St,Tt,At,Et]=kt.blockBounds;vt({width:At-St,height:Et-Tt})},{metricsOnly:!0})}function pt(wt){let vt=wt.match(/^([\d.]+)%$/),kt=vt?parseFloat(vt[1]):NaN;return isNaN(kt)?0:kt/100}function mt(wt,vt,kt){const St=wt[vt*3],Tt=wt[vt*3+1],At=wt[vt*3+2],Et=(Tt-St)/kt;for(let Mt=0;Mt(Object.defineProperty(wt,vt,{get(){return this.data[this.index*bt.length+kt]},set(Tt){this.data[this.index*bt.length+kt]=Tt}}),wt),{data:null,index:0}),{typeset:ht,measure:dt,loadFont:ut}}const now$3=()=>(self.performance||Date).now(),mainThreadGenerator=SDFGenerator();let warned;function generateSDF(tt,et,nt,rt,it,ot,at,st,lt,ct,ut=!0){return ut?generateSDF_GL(tt,et,nt,rt,it,ot,at,st,lt,ct).then(null,ht=>(warned||(console.warn("WebGL SDF generation failed, falling back to JS",ht),warned=!0),generateSDF_JS_Worker(tt,et,nt,rt,it,ot,at,st,lt,ct))):generateSDF_JS_Worker(tt,et,nt,rt,it,ot,at,st,lt,ct)}const queue=[],chunkTimeBudget=5;let timer=0;function nextChunk(){const tt=now$3();for(;queue.length&&now$3()-ttnew Promise((et,nt)=>{queue.push(()=>{const rt=now$3();try{mainThreadGenerator.webgl.generateIntoCanvas(...tt),et({timing:now$3()-rt})}catch(it){nt(it)}}),timer||(timer=setTimeout(nextChunk,0))}),threadCount=4,idleTimeout=2e3,threads={};let callNum=0;function generateSDF_JS_Worker(tt,et,nt,rt,it,ot,at,st,lt,ct){const ut="TroikaTextSDFGenerator_JS_"+callNum++%threadCount;let ht=threads[ut];return ht||(ht=threads[ut]={workerModule:defineWorkerModule({name:ut,workerId:ut,dependencies:[SDFGenerator,now$3],init(dt,pt){const mt=dt().javascript.generate;return function(...gt){const yt=pt();return{textureData:mt(...gt),timing:pt()-yt}}},getTransferables(dt){return[dt.textureData.buffer]}}),requests:0,idleTimer:null}),ht.requests++,clearTimeout(ht.idleTimer),ht.workerModule(tt,et,nt,rt,it,ot).then(({textureData:dt,timing:pt})=>{const mt=now$3(),gt=new Uint8Array(dt.length*4);for(let yt=0;yt{terminateWorker(ut)},idleTimeout)),{timing:pt}})}function warmUpSDFCanvas(tt){tt._warm||(mainThreadGenerator.webgl.isSupported(tt),tt._warm=!0)}const resizeWebGLCanvasWithoutClearing=mainThreadGenerator.webglUtils.resizeWebGLCanvasWithoutClearing;/*! +`)),St=+St,Et=+Et,Tt=+Tt,At=At||"normal",jt=+jt,ut(vt,Ht=>{const Jt=isFinite(Tt);let nn=null,Yt=null,fn=null,cn=null,_n=null,En=null,an=null,en=0,Tn=0,Rn=Rt!=="nowrap";const{ascender:An,descender:yn,unitsPerEm:kn,lineGap:dn,capHeight:gn,xHeight:Cn}=Ht;Ct.fontLoad=gt()-Nt;const $n=gt(),un=St/kn;At==="normal"&&(At=(An-yn+dn)/kn),At=At*St;const rn=(At-(An-yn)*un)/2,Sn=-(An*un+rn),Mn=Math.min(At,(An-yn)*un),Nn=(An+yn)/2*un-Mn/2;let hn=jt,Qt=new yt;const Zt=[Qt];Ht.forEachGlyph(wt,St,Et,(jn,Un,tr)=>{const qn=wt.charAt(tr),Xn=jn.advanceWidth*un,Wn=Qt.count;let Zn;if("isEmpty"in jn||(jn.isWhitespace=!!qn&&new RegExp(st).test(qn),jn.canBreakAfter=!!qn&<.test(qn),jn.isEmpty=jn.xMin===jn.xMax||jn.yMin===jn.yMax||at.test(qn)),!jn.isWhitespace&&!jn.isEmpty&&Tn++,Rn&&Jt&&!jn.isWhitespace&&Un+Xn+hn>Tt&&Wn){if(Qt.glyphAt(Wn-1).glyphObj.canBreakAfter)Zn=new yt,hn=-Un;else for(let pr=Wn;pr--;)if(pr===0&&$t==="break-word"){Zn=new yt,hn=-Un;break}else if(Qt.glyphAt(pr).glyphObj.canBreakAfter){Zn=Qt.splitAt(pr+1);const fr=Zn.glyphAt(0).x;hn-=fr;for(let Er=Zn.count;Er--;)Zn.glyphAt(Er).x-=fr;break}Zn&&(Qt.isSoftWrapped=!0,Qt=Zn,Zt.push(Qt),en=Tt)}let Vn=Qt.glyphAt(Qt.count);Vn.glyphObj=jn,Vn.x=Un+hn,Vn.width=Xn,Vn.charIndex=tr,qn===` +`&&(Qt=new yt,Zt.push(Qt),hn=-(Un+Xn+Et*St)+jt)}),Zt.forEach(jn=>{for(let Un=jn.count;Un--;){let{glyphObj:tr,x:qn,width:Xn}=jn.glyphAt(Un);if(!tr.isWhitespace){jn.width=qn+Xn,jn.width>en&&(en=jn.width);return}}});let wn=0,On=0;if(xt&&(typeof xt=="number"?wn=-xt:typeof xt=="string"&&(wn=-en*(xt==="left"?0:xt==="center"?.5:xt==="right"?1:pt(xt)))),It){if(typeof It=="number")On=-It;else if(typeof It=="string"){let jn=Zt.length*At;On=It==="top"?0:It==="top-baseline"?-Sn:It==="top-cap"?-Sn-gn*un:It==="top-ex"?-Sn-Cn*un:It==="middle"?jn/2:It==="bottom"?jn:It==="bottom-baseline"?jn-rn+yn*un:pt(It)*jn}}if(!Ft){const jn=et.getEmbeddingLevels(wt,Mt);nn=new Uint16Array(Tn),Yt=new Float32Array(Tn*2),fn={},En=[ot,ot,-ot,-ot],an=[];let Un=Sn;Ot&&(_n=new Float32Array(wt.length*3)),Ut&&(cn=new Uint8Array(Tn*3));let tr=0,qn=-1,Xn=-1,Wn,Zn;if(Zt.forEach((Vn,pr)=>{let{count:fr,width:Er}=Vn;if(fr>0){let oo=0;for(let so=fr;so--&&Vn.glyphAt(so).glyphObj.isWhitespace;)oo++;let Dr=0,Rr=0;if(Lt==="center")Dr=(en-Er)/2;else if(Lt==="right")Dr=en-Er;else if(Lt==="justify"&&Vn.isSoftWrapped){let so=0;for(let qr=fr-oo;qr--;)Vn.glyphAt(qr).glyphObj.isWhitespace&&so++;Rr=(en-Er)/so}if(Rr||Dr){let so=0;for(let qr=0;qr=qr){let sn=Pn,Xt=Pn;for(;XtOr)break;XtVr=so;for(let so=0;so1&&mt(_n,qn,Xt),qn=vn}if(Ut){const{charIndex:vn}=qr;for(;vn>Xn;)Xn++,Ut.hasOwnProperty(Xn)&&(Zn=Ut[Xn])}if(!Vr.isWhitespace&&!Vr.isEmpty){const vn=tr++;fn[Or]||(fn[Or]={path:Vr.path,pathBounds:[Vr.xMin,Vr.yMin,Vr.xMax,Vr.yMax]});const Pn=qr.x+wn,sn=Un+On;Yt[vn*2]=Pn,Yt[vn*2+1]=sn;const Xt=Pn+Vr.xMin*un,xn=sn+Vr.yMin*un,Dn=Pn+Vr.xMax*un,Fn=sn+Vr.yMax*un;XtEn[2]&&(En[2]=Dn),Fn>En[3]&&(En[3]=Fn),vn%zt===0&&(Wn={start:vn,end:vn,rect:[ot,ot,-ot,-ot]},an.push(Wn)),Wn.end++;const Kn=Wn.rect;if(XtKn[2]&&(Kn[2]=Dn),Fn>Kn[3]&&(Kn[3]=Fn),nn[vn]=Or,Ut){const nr=vn*3;cn[nr]=Zn>>16&255,cn[nr+1]=Zn>>8&255,cn[nr+2]=Zn&255}}}}Un-=At}),_n){const Vn=wt.length-qn;Vn>1&&mt(_n,qn,Vn)}}Ct.typesetting=gt()-$n,Wt({glyphIds:nn,glyphPositions:Yt,glyphData:fn,caretPositions:_n,caretHeight:Mn,glyphColors:cn,chunkedBounds:an,fontSize:St,unitsPerEm:kn,ascender:An*un,descender:yn*un,capHeight:gn*un,xHeight:Cn*un,lineHeight:At,topBaseline:Sn,blockBounds:[wn,On-Zt.length*At,wn+en,On],visibleBounds:En,timings:Ct})})}function dt(wt,vt){ht(wt,kt=>{const[St,Et,At,Tt]=kt.blockBounds;vt({width:At-St,height:Tt-Et})},{metricsOnly:!0})}function pt(wt){let vt=wt.match(/^([\d.]+)%$/),kt=vt?parseFloat(vt[1]):NaN;return isNaN(kt)?0:kt/100}function mt(wt,vt,kt){const St=wt[vt*3],Et=wt[vt*3+1],At=wt[vt*3+2],Tt=(Et-St)/kt;for(let Mt=0;Mt(Object.defineProperty(wt,vt,{get(){return this.data[this.index*bt.length+kt]},set(Et){this.data[this.index*bt.length+kt]=Et}}),wt),{data:null,index:0}),{typeset:ht,measure:dt,loadFont:ut}}const now$3=()=>(self.performance||Date).now(),mainThreadGenerator=SDFGenerator();let warned;function generateSDF(tt,et,nt,rt,it,ot,at,st,lt,ct,ut=!0){return ut?generateSDF_GL(tt,et,nt,rt,it,ot,at,st,lt,ct).then(null,ht=>(warned||(console.warn("WebGL SDF generation failed, falling back to JS",ht),warned=!0),generateSDF_JS_Worker(tt,et,nt,rt,it,ot,at,st,lt,ct))):generateSDF_JS_Worker(tt,et,nt,rt,it,ot,at,st,lt,ct)}const queue=[],chunkTimeBudget=5;let timer=0;function nextChunk(){const tt=now$3();for(;queue.length&&now$3()-ttnew Promise((et,nt)=>{queue.push(()=>{const rt=now$3();try{mainThreadGenerator.webgl.generateIntoCanvas(...tt),et({timing:now$3()-rt})}catch(it){nt(it)}}),timer||(timer=setTimeout(nextChunk,0))}),threadCount=4,idleTimeout=2e3,threads={};let callNum=0;function generateSDF_JS_Worker(tt,et,nt,rt,it,ot,at,st,lt,ct){const ut="TroikaTextSDFGenerator_JS_"+callNum++%threadCount;let ht=threads[ut];return ht||(ht=threads[ut]={workerModule:defineWorkerModule({name:ut,workerId:ut,dependencies:[SDFGenerator,now$3],init(dt,pt){const mt=dt().javascript.generate;return function(...gt){const yt=pt();return{textureData:mt(...gt),timing:pt()-yt}}},getTransferables(dt){return[dt.textureData.buffer]}}),requests:0,idleTimer:null}),ht.requests++,clearTimeout(ht.idleTimer),ht.workerModule(tt,et,nt,rt,it,ot).then(({textureData:dt,timing:pt})=>{const mt=now$3(),gt=new Uint8Array(dt.length*4);for(let yt=0;yt{terminateWorker(ut)},idleTimeout)),{timing:pt}})}function warmUpSDFCanvas(tt){tt._warm||(mainThreadGenerator.webgl.isSupported(tt),tt._warm=!0)}const resizeWebGLCanvasWithoutClearing=mainThreadGenerator.webglUtils.resizeWebGLCanvasWithoutClearing;/*! Custom build of Typr.ts (https://github.com/fredli74/Typr.ts) for use in Troika text rendering. Original MIT license applies: https://github.com/fredli74/Typr.ts/blob/master/LICENSE -*/function typrFactory(){return typeof window>"u"&&(self.window=self),function(tt){var et={parse:function(it){var ot=et._bin,at=new Uint8Array(it);if(ot.readASCII(at,0,4)=="ttcf"){var st=4;ot.readUshort(at,st),st+=2,ot.readUshort(at,st),st+=2;var lt=ot.readUint(at,st);st+=4;for(var ct=[],ut=0;ut>>at&1&&ot++;return ot},et._lctf.readClassDef=function(it,ot){var at=et._bin,st=[],lt=at.readUshort(it,ot);if(ot+=2,lt==1){var ct=at.readUshort(it,ot);ot+=2;var ut=at.readUshort(it,ot);ot+=2;for(var ht=0;ht0&&(lt.featureParams=st+ct);var ut=at.readUshort(it,ot);ot+=2,lt.tab=[];for(var ht=0;ht255?-1:et.CFF.glyphByUnicode(it,et.CFF.tableSE[ot])},et.CFF.readEncoding=function(it,ot,at){et._bin;var st=[".notdef"],lt=it[ot];if(ot++,lt!=0)throw"error: unknown encoding format: "+lt;var ct=it[ot];ot++;for(var ut=0;ut>4,wt=15&yt;if(bt!=15&>.push(bt),wt!=15&>.push(wt),wt==15)break}for(var vt="",kt=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"],St=0;St=ct.xMax||ct.yMin>=ct.yMax)return null;if(ct.noc>0){ct.endPts=[];for(var ut=0;ut=1&&ut.fmt<=2){dt=lt.readUshort(it,at),at+=2;var mt=lt.readUshort(it,at);at+=2,pt=et._lctf.numOfOnes(dt);var gt=et._lctf.numOfOnes(mt);if(ut.fmt==1){ut.pairsets=[];var yt=lt.readUshort(it,at);at+=2;for(var bt=0;bt=1&&ut.fmt<=2){if(ut.fmt==1)ut.delta=lt.readShort(it,at),at+=2;else if(ut.fmt==2){var dt=lt.readUshort(it,at);at+=2,ut.newg=lt.readUshorts(it,at,dt),at+=2*ut.newg.length}}else if(ot==4){ut.vals=[],dt=lt.readUshort(it,at),at+=2;for(var pt=0;pt>>8;if((mt&=15)!=0)throw"unknown kern table format: "+mt;ot=et.kern.readFormat0(it,ot,ht)}return ht},et.kern.parseV1=function(it,ot,at,st){var lt=et._bin;lt.readFixed(it,ot),ot+=4;var ct=lt.readUint(it,ot);ot+=4;for(var ut={glyph1:[],rval:[]},ht=0;ht>>8;if((pt&=15)!=0)throw"unknown kern table format: "+pt;ot=et.kern.readFormat0(it,ot,ut)}return ut},et.kern.readFormat0=function(it,ot,at){var st=et._bin,lt=-1,ct=st.readUshort(it,ot);ot+=2,st.readUshort(it,ot),ot+=2,st.readUshort(it,ot),ot+=2,st.readUshort(it,ot),ot+=2;for(var ut=0;ut=lt.map.length?0:lt.map[ot];if(lt.format==4){for(var ct=-1,ut=0;utot?0:65535&(lt.idRangeOffset[ct]!=0?lt.glyphIdArray[ot-lt.startCount[ct]+(lt.idRangeOffset[ct]>>1)-(lt.idRangeOffset.length-ct)]:ot+lt.idDelta[ct])}if(lt.format==12){if(ot>lt.groups[lt.groups.length-1][1])return 0;for(ut=0;ut-1?et.U._simpleGlyph(st,at):et.U._compoGlyph(st,ot,at))},et.U._simpleGlyph=function(it,ot){for(var at=0;atlt)){for(var yt=!0,bt=0,wt=0;wtlt)){for(yt=!0,wt=0;wt>1,ct.length=0,ht=!0;else if(Rt=="o3"||Rt=="o23")ct.length%2!=0&&!ht&&(dt=ct.shift()+st.nominalWidthX),ut+=ct.length>>1,ct.length=0,ht=!0;else if(Rt=="o4")ct.length>1&&!ht&&(dt=ct.shift()+st.nominalWidthX,ht=!0),pt&&et.U.P.closePath(lt),yt+=ct.pop(),et.U.P.moveTo(lt,gt,yt),pt=!0;else if(Rt=="o5")for(;ct.length>0;)gt+=ct.shift(),yt+=ct.shift(),et.U.P.lineTo(lt,gt,yt);else if(Rt=="o6"||Rt=="o7")for(var $t=ct.length,xt=Rt=="o6",It=0;It<$t;It++){var Ot=ct.shift();xt?gt+=Ot:yt+=Ot,xt=!xt,et.U.P.lineTo(lt,gt,yt)}else if(Rt=="o8"||Rt=="o24"){$t=ct.length;for(var zt=0;zt+6<=$t;)bt=gt+ct.shift(),wt=yt+ct.shift(),vt=bt+ct.shift(),kt=wt+ct.shift(),gt=vt+ct.shift(),yt=kt+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,gt,yt),zt+=6;Rt=="o24"&&(gt+=ct.shift(),yt+=ct.shift(),et.U.P.lineTo(lt,gt,yt))}else{if(Rt=="o11")break;if(Rt=="o1234"||Rt=="o1235"||Rt=="o1236"||Rt=="o1237")Rt=="o1234"&&(wt=yt,vt=(bt=gt+ct.shift())+ct.shift(),Lt=kt=wt+ct.shift(),Tt=kt,Et=yt,gt=(At=(St=(Mt=vt+ct.shift())+ct.shift())+ct.shift())+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,Mt,Lt),et.U.P.curveTo(lt,St,Tt,At,Et,gt,yt)),Rt=="o1235"&&(bt=gt+ct.shift(),wt=yt+ct.shift(),vt=bt+ct.shift(),kt=wt+ct.shift(),Mt=vt+ct.shift(),Lt=kt+ct.shift(),St=Mt+ct.shift(),Tt=Lt+ct.shift(),At=St+ct.shift(),Et=Tt+ct.shift(),gt=At+ct.shift(),yt=Et+ct.shift(),ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,Mt,Lt),et.U.P.curveTo(lt,St,Tt,At,Et,gt,yt)),Rt=="o1236"&&(bt=gt+ct.shift(),wt=yt+ct.shift(),vt=bt+ct.shift(),Lt=kt=wt+ct.shift(),Tt=kt,At=(St=(Mt=vt+ct.shift())+ct.shift())+ct.shift(),Et=Tt+ct.shift(),gt=At+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,Mt,Lt),et.U.P.curveTo(lt,St,Tt,At,Et,gt,yt)),Rt=="o1237"&&(bt=gt+ct.shift(),wt=yt+ct.shift(),vt=bt+ct.shift(),kt=wt+ct.shift(),Mt=vt+ct.shift(),Lt=kt+ct.shift(),St=Mt+ct.shift(),Tt=Lt+ct.shift(),At=St+ct.shift(),Et=Tt+ct.shift(),Math.abs(At-gt)>Math.abs(Et-yt)?gt=At+ct.shift():yt=Et+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,Mt,Lt),et.U.P.curveTo(lt,St,Tt,At,Et,gt,yt));else if(Rt=="o14"){if(ct.length>0&&!ht&&(dt=ct.shift()+at.nominalWidthX,ht=!0),ct.length==4){var Ut=ct.shift(),Wt=ct.shift(),Ft=ct.shift(),Nt=ct.shift(),Ct=et.CFF.glyphBySE(at,Ft),Ht=et.CFF.glyphBySE(at,Nt);et.U._drawCFF(at.CharStrings[Ct],ot,at,st,lt),ot.x=Ut,ot.y=Wt,et.U._drawCFF(at.CharStrings[Ht],ot,at,st,lt)}pt&&(et.U.P.closePath(lt),pt=!1)}else if(Rt=="o19"||Rt=="o20")ct.length%2!=0&&!ht&&(dt=ct.shift()+st.nominalWidthX),ut+=ct.length>>1,ct.length=0,ht=!0,mt+=ut+7>>3;else if(Rt=="o21")ct.length>2&&!ht&&(dt=ct.shift()+st.nominalWidthX,ht=!0),yt+=ct.pop(),gt+=ct.pop(),pt&&et.U.P.closePath(lt),et.U.P.moveTo(lt,gt,yt),pt=!0;else if(Rt=="o22")ct.length>1&&!ht&&(dt=ct.shift()+st.nominalWidthX,ht=!0),gt+=ct.pop(),pt&&et.U.P.closePath(lt),et.U.P.moveTo(lt,gt,yt),pt=!0;else if(Rt=="o25"){for(;ct.length>6;)gt+=ct.shift(),yt+=ct.shift(),et.U.P.lineTo(lt,gt,yt);bt=gt+ct.shift(),wt=yt+ct.shift(),vt=bt+ct.shift(),kt=wt+ct.shift(),gt=vt+ct.shift(),yt=kt+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,gt,yt)}else if(Rt=="o26")for(ct.length%2&&(gt+=ct.shift());ct.length>0;)bt=gt,wt=yt+ct.shift(),gt=vt=bt+ct.shift(),yt=(kt=wt+ct.shift())+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,gt,yt);else if(Rt=="o27")for(ct.length%2&&(yt+=ct.shift());ct.length>0;)wt=yt,vt=(bt=gt+ct.shift())+ct.shift(),kt=wt+ct.shift(),gt=vt+ct.shift(),yt=kt,et.U.P.curveTo(lt,bt,wt,vt,kt,gt,yt);else if(Rt=="o10"||Rt=="o29"){var Jt=Rt=="o10"?st:at;if(ct.length==0)console.debug("error: empty stack");else{var nn=ct.pop(),Yt=Jt.Subrs[nn+Jt.Bias];ot.x=gt,ot.y=yt,ot.nStems=ut,ot.haveWidth=ht,ot.width=dt,ot.open=pt,et.U._drawCFF(Yt,ot,at,st,lt),gt=ot.x,yt=ot.y,ut=ot.nStems,ht=ot.haveWidth,dt=ot.width,pt=ot.open}}else if(Rt=="o30"||Rt=="o31"){var fn=ct.length,cn=(zt=0,Rt=="o31");for(zt+=fn-($t=-3&fn);zt<$t;)cn?(wt=yt,vt=(bt=gt+ct.shift())+ct.shift(),yt=(kt=wt+ct.shift())+ct.shift(),$t-zt==5?(gt=vt+ct.shift(),zt++):gt=vt,cn=!1):(bt=gt,wt=yt+ct.shift(),vt=bt+ct.shift(),kt=wt+ct.shift(),gt=vt+ct.shift(),$t-zt==5?(yt=kt+ct.shift(),zt++):yt=kt,cn=!0),et.U.P.curveTo(lt,bt,wt,vt,kt,gt,yt),zt+=4}else{if((Rt+"").charAt(0)=="o")throw console.debug("Unknown operation: "+Rt,it),Rt;ct.push(Rt)}}}ot.x=gt,ot.y=yt,ot.nStems=ut,ot.haveWidth=ht,ot.width=dt,ot.open=pt};var nt=et,rt={Typr:nt};return tt.Typr=nt,tt.default=rt,Object.defineProperty(tt,"__esModule",{value:!0}),tt}({}).Typr}/*! +*/function typrFactory(){return typeof window>"u"&&(self.window=self),function(tt){var et={parse:function(it){var ot=et._bin,at=new Uint8Array(it);if(ot.readASCII(at,0,4)=="ttcf"){var st=4;ot.readUshort(at,st),st+=2,ot.readUshort(at,st),st+=2;var lt=ot.readUint(at,st);st+=4;for(var ct=[],ut=0;ut>>at&1&&ot++;return ot},et._lctf.readClassDef=function(it,ot){var at=et._bin,st=[],lt=at.readUshort(it,ot);if(ot+=2,lt==1){var ct=at.readUshort(it,ot);ot+=2;var ut=at.readUshort(it,ot);ot+=2;for(var ht=0;ht0&&(lt.featureParams=st+ct);var ut=at.readUshort(it,ot);ot+=2,lt.tab=[];for(var ht=0;ht255?-1:et.CFF.glyphByUnicode(it,et.CFF.tableSE[ot])},et.CFF.readEncoding=function(it,ot,at){et._bin;var st=[".notdef"],lt=it[ot];if(ot++,lt!=0)throw"error: unknown encoding format: "+lt;var ct=it[ot];ot++;for(var ut=0;ut>4,wt=15&yt;if(bt!=15&>.push(bt),wt!=15&>.push(wt),wt==15)break}for(var vt="",kt=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"],St=0;St=ct.xMax||ct.yMin>=ct.yMax)return null;if(ct.noc>0){ct.endPts=[];for(var ut=0;ut=1&&ut.fmt<=2){dt=lt.readUshort(it,at),at+=2;var mt=lt.readUshort(it,at);at+=2,pt=et._lctf.numOfOnes(dt);var gt=et._lctf.numOfOnes(mt);if(ut.fmt==1){ut.pairsets=[];var yt=lt.readUshort(it,at);at+=2;for(var bt=0;bt=1&&ut.fmt<=2){if(ut.fmt==1)ut.delta=lt.readShort(it,at),at+=2;else if(ut.fmt==2){var dt=lt.readUshort(it,at);at+=2,ut.newg=lt.readUshorts(it,at,dt),at+=2*ut.newg.length}}else if(ot==4){ut.vals=[],dt=lt.readUshort(it,at),at+=2;for(var pt=0;pt>>8;if((mt&=15)!=0)throw"unknown kern table format: "+mt;ot=et.kern.readFormat0(it,ot,ht)}return ht},et.kern.parseV1=function(it,ot,at,st){var lt=et._bin;lt.readFixed(it,ot),ot+=4;var ct=lt.readUint(it,ot);ot+=4;for(var ut={glyph1:[],rval:[]},ht=0;ht>>8;if((pt&=15)!=0)throw"unknown kern table format: "+pt;ot=et.kern.readFormat0(it,ot,ut)}return ut},et.kern.readFormat0=function(it,ot,at){var st=et._bin,lt=-1,ct=st.readUshort(it,ot);ot+=2,st.readUshort(it,ot),ot+=2,st.readUshort(it,ot),ot+=2,st.readUshort(it,ot),ot+=2;for(var ut=0;ut=lt.map.length?0:lt.map[ot];if(lt.format==4){for(var ct=-1,ut=0;utot?0:65535&(lt.idRangeOffset[ct]!=0?lt.glyphIdArray[ot-lt.startCount[ct]+(lt.idRangeOffset[ct]>>1)-(lt.idRangeOffset.length-ct)]:ot+lt.idDelta[ct])}if(lt.format==12){if(ot>lt.groups[lt.groups.length-1][1])return 0;for(ut=0;ut-1?et.U._simpleGlyph(st,at):et.U._compoGlyph(st,ot,at))},et.U._simpleGlyph=function(it,ot){for(var at=0;atlt)){for(var yt=!0,bt=0,wt=0;wtlt)){for(yt=!0,wt=0;wt>1,ct.length=0,ht=!0;else if(Rt=="o3"||Rt=="o23")ct.length%2!=0&&!ht&&(dt=ct.shift()+st.nominalWidthX),ut+=ct.length>>1,ct.length=0,ht=!0;else if(Rt=="o4")ct.length>1&&!ht&&(dt=ct.shift()+st.nominalWidthX,ht=!0),pt&&et.U.P.closePath(lt),yt+=ct.pop(),et.U.P.moveTo(lt,gt,yt),pt=!0;else if(Rt=="o5")for(;ct.length>0;)gt+=ct.shift(),yt+=ct.shift(),et.U.P.lineTo(lt,gt,yt);else if(Rt=="o6"||Rt=="o7")for(var $t=ct.length,xt=Rt=="o6",It=0;It<$t;It++){var Ot=ct.shift();xt?gt+=Ot:yt+=Ot,xt=!xt,et.U.P.lineTo(lt,gt,yt)}else if(Rt=="o8"||Rt=="o24"){$t=ct.length;for(var zt=0;zt+6<=$t;)bt=gt+ct.shift(),wt=yt+ct.shift(),vt=bt+ct.shift(),kt=wt+ct.shift(),gt=vt+ct.shift(),yt=kt+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,gt,yt),zt+=6;Rt=="o24"&&(gt+=ct.shift(),yt+=ct.shift(),et.U.P.lineTo(lt,gt,yt))}else{if(Rt=="o11")break;if(Rt=="o1234"||Rt=="o1235"||Rt=="o1236"||Rt=="o1237")Rt=="o1234"&&(wt=yt,vt=(bt=gt+ct.shift())+ct.shift(),Lt=kt=wt+ct.shift(),Et=kt,Tt=yt,gt=(At=(St=(Mt=vt+ct.shift())+ct.shift())+ct.shift())+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,Mt,Lt),et.U.P.curveTo(lt,St,Et,At,Tt,gt,yt)),Rt=="o1235"&&(bt=gt+ct.shift(),wt=yt+ct.shift(),vt=bt+ct.shift(),kt=wt+ct.shift(),Mt=vt+ct.shift(),Lt=kt+ct.shift(),St=Mt+ct.shift(),Et=Lt+ct.shift(),At=St+ct.shift(),Tt=Et+ct.shift(),gt=At+ct.shift(),yt=Tt+ct.shift(),ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,Mt,Lt),et.U.P.curveTo(lt,St,Et,At,Tt,gt,yt)),Rt=="o1236"&&(bt=gt+ct.shift(),wt=yt+ct.shift(),vt=bt+ct.shift(),Lt=kt=wt+ct.shift(),Et=kt,At=(St=(Mt=vt+ct.shift())+ct.shift())+ct.shift(),Tt=Et+ct.shift(),gt=At+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,Mt,Lt),et.U.P.curveTo(lt,St,Et,At,Tt,gt,yt)),Rt=="o1237"&&(bt=gt+ct.shift(),wt=yt+ct.shift(),vt=bt+ct.shift(),kt=wt+ct.shift(),Mt=vt+ct.shift(),Lt=kt+ct.shift(),St=Mt+ct.shift(),Et=Lt+ct.shift(),At=St+ct.shift(),Tt=Et+ct.shift(),Math.abs(At-gt)>Math.abs(Tt-yt)?gt=At+ct.shift():yt=Tt+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,Mt,Lt),et.U.P.curveTo(lt,St,Et,At,Tt,gt,yt));else if(Rt=="o14"){if(ct.length>0&&!ht&&(dt=ct.shift()+at.nominalWidthX,ht=!0),ct.length==4){var Ut=ct.shift(),Wt=ct.shift(),Ft=ct.shift(),Nt=ct.shift(),Ct=et.CFF.glyphBySE(at,Ft),Ht=et.CFF.glyphBySE(at,Nt);et.U._drawCFF(at.CharStrings[Ct],ot,at,st,lt),ot.x=Ut,ot.y=Wt,et.U._drawCFF(at.CharStrings[Ht],ot,at,st,lt)}pt&&(et.U.P.closePath(lt),pt=!1)}else if(Rt=="o19"||Rt=="o20")ct.length%2!=0&&!ht&&(dt=ct.shift()+st.nominalWidthX),ut+=ct.length>>1,ct.length=0,ht=!0,mt+=ut+7>>3;else if(Rt=="o21")ct.length>2&&!ht&&(dt=ct.shift()+st.nominalWidthX,ht=!0),yt+=ct.pop(),gt+=ct.pop(),pt&&et.U.P.closePath(lt),et.U.P.moveTo(lt,gt,yt),pt=!0;else if(Rt=="o22")ct.length>1&&!ht&&(dt=ct.shift()+st.nominalWidthX,ht=!0),gt+=ct.pop(),pt&&et.U.P.closePath(lt),et.U.P.moveTo(lt,gt,yt),pt=!0;else if(Rt=="o25"){for(;ct.length>6;)gt+=ct.shift(),yt+=ct.shift(),et.U.P.lineTo(lt,gt,yt);bt=gt+ct.shift(),wt=yt+ct.shift(),vt=bt+ct.shift(),kt=wt+ct.shift(),gt=vt+ct.shift(),yt=kt+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,gt,yt)}else if(Rt=="o26")for(ct.length%2&&(gt+=ct.shift());ct.length>0;)bt=gt,wt=yt+ct.shift(),gt=vt=bt+ct.shift(),yt=(kt=wt+ct.shift())+ct.shift(),et.U.P.curveTo(lt,bt,wt,vt,kt,gt,yt);else if(Rt=="o27")for(ct.length%2&&(yt+=ct.shift());ct.length>0;)wt=yt,vt=(bt=gt+ct.shift())+ct.shift(),kt=wt+ct.shift(),gt=vt+ct.shift(),yt=kt,et.U.P.curveTo(lt,bt,wt,vt,kt,gt,yt);else if(Rt=="o10"||Rt=="o29"){var Jt=Rt=="o10"?st:at;if(ct.length==0)console.debug("error: empty stack");else{var nn=ct.pop(),Yt=Jt.Subrs[nn+Jt.Bias];ot.x=gt,ot.y=yt,ot.nStems=ut,ot.haveWidth=ht,ot.width=dt,ot.open=pt,et.U._drawCFF(Yt,ot,at,st,lt),gt=ot.x,yt=ot.y,ut=ot.nStems,ht=ot.haveWidth,dt=ot.width,pt=ot.open}}else if(Rt=="o30"||Rt=="o31"){var fn=ct.length,cn=(zt=0,Rt=="o31");for(zt+=fn-($t=-3&fn);zt<$t;)cn?(wt=yt,vt=(bt=gt+ct.shift())+ct.shift(),yt=(kt=wt+ct.shift())+ct.shift(),$t-zt==5?(gt=vt+ct.shift(),zt++):gt=vt,cn=!1):(bt=gt,wt=yt+ct.shift(),vt=bt+ct.shift(),kt=wt+ct.shift(),gt=vt+ct.shift(),$t-zt==5?(yt=kt+ct.shift(),zt++):yt=kt,cn=!0),et.U.P.curveTo(lt,bt,wt,vt,kt,gt,yt),zt+=4}else{if((Rt+"").charAt(0)=="o")throw console.debug("Unknown operation: "+Rt,it),Rt;ct.push(Rt)}}}ot.x=gt,ot.y=yt,ot.nStems=ut,ot.haveWidth=ht,ot.width=dt,ot.open=pt};var nt=et,rt={Typr:nt};return tt.Typr=nt,tt.default=rt,Object.defineProperty(tt,"__esModule",{value:!0}),tt}({}).Typr}/*! Custom bundle of woff2otf (https://github.com/arty-name/woff2otf) with fflate (https://github.com/101arrowz/fflate) for use in Troika text rendering. Original licenses apply: - fflate: https://github.com/101arrowz/fflate/blob/master/LICENSE (MIT) - woff2otf.js: https://github.com/arty-name/woff2otf/blob/master/woff2otf.js (Apache2) -*/function woff2otfFactory(){return function(tt){var et=Uint8Array,nt=Uint16Array,rt=Uint32Array,it=new et([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ot=new et([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),at=new et([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),st=function(Rt,$t){for(var xt=new nt(31),It=0;It<31;++It)xt[It]=$t+=1<>>1|(21845&pt)<<1;mt=(61680&(mt=(52428&mt)>>>2|(13107&mt)<<2))>>>4|(3855&mt)<<4,dt[pt]=((65280&mt)>>>8|(255&mt)<<8)>>>1}var gt=function(Rt,$t,xt){for(var It=Rt.length,Ot=0,zt=new nt($t);Ot>>Ft]=Nt}else for(Ut=new nt(It),Ot=0;Ot>>15-Rt[Ot]);return Ut},yt=new et(288);for(pt=0;pt<144;++pt)yt[pt]=8;for(pt=144;pt<256;++pt)yt[pt]=9;for(pt=256;pt<280;++pt)yt[pt]=7;for(pt=280;pt<288;++pt)yt[pt]=8;var bt=new et(32);for(pt=0;pt<32;++pt)bt[pt]=5;var wt=gt(yt,9,1),vt=gt(bt,5,1),kt=function(Rt){for(var $t=Rt[0],xt=1;xt$t&&($t=Rt[xt]);return $t},St=function(Rt,$t,xt){var It=$t/8|0;return(Rt[It]|Rt[It+1]<<8)>>(7&$t)&xt},Tt=function(Rt,$t){var xt=$t/8|0;return(Rt[xt]|Rt[xt+1]<<8|Rt[xt+2]<<16)>>(7&$t)},At=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Et=function(Rt,$t,xt){var It=new Error($t||At[Rt]);if(It.code=Rt,Error.captureStackTrace&&Error.captureStackTrace(It,Et),!xt)throw It;return It},Mt=function(Rt,$t,xt){var It=Rt.length;if(!It||xt&&!xt.l&&It<5)return $t||new et(0);var Ot=!$t||xt,zt=!xt||xt.i;xt||(xt={}),$t||($t=new et(3*It));var Ut,Wt=function(qn){var Xn=$t.length;if(qn>Xn){var Wn=new et(Math.max(2*Xn,qn));Wn.set($t),$t=Wn}},Ft=xt.f||0,Nt=xt.p||0,Ct=xt.b||0,Ht=xt.l,Jt=xt.d,nn=xt.m,Yt=xt.n,fn=8*It;do{if(!Ht){xt.f=Ft=St(Rt,Nt,1);var cn=St(Rt,Nt+1,3);if(Nt+=3,!cn){var _n=Rt[(Cn=((Ut=Nt)/8|0)+(7&Ut&&1)+4)-4]|Rt[Cn-3]<<8,En=Cn+_n;if(En>It){zt&&Et(0);break}Ot&&Wt(Ct+_n),$t.set(Rt.subarray(Cn,En),Ct),xt.b=Ct+=_n,xt.p=Nt=8*En;continue}if(cn==1)Ht=wt,Jt=vt,nn=9,Yt=5;else if(cn==2){var an=St(Rt,Nt,31)+257,en=St(Rt,Nt+10,15)+4,Tn=an+St(Rt,Nt+5,31)+1;Nt+=14;for(var Rn=new et(Tn),An=new et(19),yn=0;yn>>4)<16)Rn[yn++]=Cn;else{var un=0,rn=0;for(Cn==16?(rn=3+St(Rt,Nt,3),Nt+=2,un=Rn[yn-1]):Cn==17?(rn=3+St(Rt,Nt,7),Nt+=3):Cn==18&&(rn=11+St(Rt,Nt,127),Nt+=7);rn--;)Rn[yn++]=un}}var Sn=Rn.subarray(0,an),Mn=Rn.subarray(an);nn=kt(Sn),Yt=kt(Mn),Ht=gt(Sn,nn,1),Jt=gt(Mn,Yt,1)}else Et(1);if(Nt>fn){zt&&Et(0);break}}Ot&&Wt(Ct+131072);for(var Nn=(1<>>4;if((Nt+=15&un)>fn){zt&&Et(0);break}if(un||Et(2),Zt<256)$t[Ct++]=Zt;else{if(Zt==256){Qt=Nt,Ht=null;break}var wn=Zt-254;if(Zt>264){var On=it[yn=Zt-257];wn=St(Rt,Nt,(1<>>4;if(jn||Et(3),Nt+=15&jn,Mn=ht[Un],Un>3&&(On=ot[Un],Mn+=Tt(Rt,Nt)&(1<fn){zt&&Et(0);break}Ot&&Wt(Ct+131072);for(var tr=Ct+wn;Ctqn.length)&&(Wn=qn.length);var Zn=new(qn instanceof nt?nt:qn instanceof rt?rt:et)(Wn-Xn);return Zn.set(qn.subarray(Xn,Wn)),Zn}($t,0,Ct)},Lt=new et(0),jt=typeof TextDecoder<"u"&&new TextDecoder;try{jt.decode(Lt,{stream:!0})}catch{}return tt.convert_streams=function(Rt){var $t=new DataView(Rt),xt=0;function It(){var an=$t.getUint16(xt);return xt+=2,an}function Ot(){var an=$t.getUint32(xt);return xt+=4,an}function zt(an){_n.setUint16(En,an),En+=2}function Ut(an){_n.setUint32(En,an),En+=4}for(var Wt={signature:Ot(),flavor:Ot(),length:Ot(),numTables:It(),reserved:It(),totalSfntSize:Ot(),majorVersion:It(),minorVersion:It(),metaOffset:Ot(),metaLength:Ot(),metaOrigLength:Ot(),privOffset:Ot(),privLength:Ot()},Ft=0;Math.pow(2,Ft)<=Wt.numTables;)Ft++;Ft--;for(var Nt=16*Math.pow(2,Ft),Ct=16*Wt.numTables-Nt,Ht=12,Jt=[],nn=0;nn{let[Lt,jt]=Mt.split("+");Lt=parseInt(Lt,36),jt=jt?parseInt(jt,36):0,ut.set(Et+=Lt,Tt[At]);for(let Rt=jt;Rt--;)ut.set(++Et,Tt[At])})}}return ut.get(St)||ct}const dt=1,pt=2,mt=3,gt=4,yt=[null,"isol","init","fina","medi"];function bt(St){const Tt=new Uint8Array(St.length);let At=ct,Et=dt,Mt=-1;for(let Lt=0;Lt65535&&Lt++)}return Tt}function wt(St,Tt){const At=[];for(let Mt=0;Mt65535&&Mt++,At.push(tt.U.codeToGlyph(St,Lt))}const Et=St.GSUB;if(Et){const{lookupList:Mt,featureList:Lt}=Et;let jt;const Rt=/^(rlig|liga|mset|isol|init|fina|medi|half|pres|blws)$/,$t=[];Lt.forEach(xt=>{if(Rt.test(xt.tag))for(let It=0;It{if(Nt!==-1){let Ht=Tt[Nt];if(!Ht){const{cmds:Jt,crds:nn}=tt.U.glyphToPath(St,Nt);let Yt="",fn=0;for(let en=0,Tn=Jt.length;en1?",":"")+nn[fn++]}let cn,_n,En,an;if(nn.length){cn=_n=1/0,En=an=-1/0;for(let en=0,Tn=nn.length;enEn&&(En=Rn),An>an&&(an=An)}}else cn=En=_n=an=0;Ht=Tt[Nt]={index:Nt,advanceWidth:St.hmtx.aWidth[Nt],xMin:cn,yMin:_n,xMax:En,yMax:an,path:Yt,pathCommandCount:Jt.length}}Ft!==-1&&(Ot+=tt.U.getPairAdjustment(St,Ft,Nt)*zt),It.call(null,Ht,Ot,Wt),Ht.advanceWidth&&(Ot+=Ht.advanceWidth*zt),xt&&(Ot+=xt*$t),Ft=Nt}Wt+=Rt.codePointAt(Wt)>65535?2:1}),Ot}};return jt}return function(Tt){const At=new Uint8Array(Tt,0,4),Et=tt._bin.readASCII(At,0,4);if(Et==="wOFF")Tt=et(Tt);else if(Et==="wOF2")throw new Error("woff2 fonts not supported");return kt(tt.parse(Tt)[0])}}const workerModule=defineWorkerModule({name:"Typr Font Parser",dependencies:[typrFactory,woff2otfFactory,parserFactory],init(tt,et,nt){const rt=tt(),it=et();return nt(rt,it)}}),CONFIG={defaultFontURL:"https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxM.woff",sdfGlyphSize:64,sdfMargin:1/16,sdfExponent:9,textureWidth:2048},tempColor=new Color$1;function now$1$1(){return(self.performance||Date).now()}const atlases=Object.create(null);function getTextRenderInfo(tt,et){tt=assign$1({},tt);const nt=now$1$1();if(tt.font=toAbsoluteURL(tt.font||CONFIG.defaultFontURL),tt.text=""+tt.text,tt.sdfGlyphSize=tt.sdfGlyphSize||CONFIG.sdfGlyphSize,tt.colorRanges!=null){let ht={};for(let dt in tt.colorRanges)if(tt.colorRanges.hasOwnProperty(dt)){let pt=tt.colorRanges[dt];typeof pt!="number"&&(pt=tempColor.set(pt).getHex()),ht[dt]=pt}tt.colorRanges=ht}Object.freeze(tt);const{textureWidth:rt,sdfExponent:it}=CONFIG,{sdfGlyphSize:ot}=tt,at=rt/ot*4;let st=atlases[ot];if(!st){const ht=document.createElement("canvas");ht.width=rt,ht.height=ot*256/at,st=atlases[ot]={glyphCount:0,sdfGlyphSize:ot,sdfCanvas:ht,sdfTexture:new Texture(ht,void 0,void 0,void 0,LinearFilter,LinearFilter),contextLost:!1,glyphsByFont:new Map},st.sdfTexture.generateMipmaps=!1,initContextLossHandling(st)}const{sdfTexture:lt,sdfCanvas:ct}=st;let ut=st.glyphsByFont.get(tt.font);ut||st.glyphsByFont.set(tt.font,ut=new Map),typesetInWorker(tt).then(ht=>{const{glyphIds:dt,glyphPositions:pt,fontSize:mt,unitsPerEm:gt,timings:yt}=ht,bt=[],wt=new Float32Array(dt.length*4),vt=mt/gt;let kt=0,St=0;const Tt=now$1$1();dt.forEach((jt,Rt)=>{let $t=ut.get(jt);if(!$t){const{path:zt,pathBounds:Ut}=ht.glyphData[jt],Wt=Math.max(Ut[2]-Ut[0],Ut[3]-Ut[1])/ot*(CONFIG.sdfMargin*ot+.5),Ft=st.glyphCount++,Nt=[Ut[0]-Wt,Ut[1]-Wt,Ut[2]+Wt,Ut[3]+Wt];ut.set(jt,$t={path:zt,atlasIndex:Ft,sdfViewBox:Nt}),bt.push($t)}const{sdfViewBox:xt}=$t,It=pt[St++],Ot=pt[St++];wt[kt++]=It+xt[0]*vt,wt[kt++]=Ot+xt[1]*vt,wt[kt++]=It+xt[2]*vt,wt[kt++]=Ot+xt[3]*vt,dt[Rt]=$t.atlasIndex}),yt.quads=(yt.quads||0)+(now$1$1()-Tt);const At=now$1$1();yt.sdf={};const Et=ct.height,Mt=Math.ceil(st.glyphCount/at),Lt=Math.pow(2,Math.ceil(Math.log2(Mt*ot)));Lt>Et&&(console.info(`Increasing SDF texture size ${Et}->${Lt}`),resizeWebGLCanvasWithoutClearing(ct,rt,Lt),lt.dispose()),Promise.all(bt.map(jt=>generateGlyphSDF(jt,st,tt.gpuAccelerateSDF).then(({timing:Rt})=>{yt.sdf[jt.atlasIndex]=Rt}))).then(()=>{bt.length&&!st.contextLost&&(safariPre15Workaround(st),lt.needsUpdate=!0),yt.sdfTotal=now$1$1()-At,yt.total=now$1$1()-nt,et(Object.freeze({parameters:tt,sdfTexture:lt,sdfGlyphSize:ot,sdfExponent:it,glyphBounds:wt,glyphAtlasIndices:dt,glyphColors:ht.glyphColors,caretPositions:ht.caretPositions,caretHeight:ht.caretHeight,chunkedBounds:ht.chunkedBounds,ascender:ht.ascender,descender:ht.descender,lineHeight:ht.lineHeight,capHeight:ht.capHeight,xHeight:ht.xHeight,topBaseline:ht.topBaseline,blockBounds:ht.blockBounds,visibleBounds:ht.visibleBounds,timings:ht.timings}))})}),Promise.resolve().then(()=>{st.contextLost||warmUpSDFCanvas(ct)})}function generateGlyphSDF({path:tt,atlasIndex:et,sdfViewBox:nt},{sdfGlyphSize:rt,sdfCanvas:it,contextLost:ot},at){if(ot)return Promise.resolve({timing:-1});const{textureWidth:st,sdfExponent:lt}=CONFIG,ct=Math.max(nt[2]-nt[0],nt[3]-nt[1]),ut=Math.floor(et/4),ht=ut%(st/rt)*rt,dt=Math.floor(ut/(st/rt))*rt,pt=et%4;return generateSDF(rt,rt,tt,nt,ct,lt,it,ht,dt,pt,at)}function initContextLossHandling(tt){const et=tt.sdfCanvas;et.addEventListener("webglcontextlost",nt=>{console.log("Context Lost",nt),nt.preventDefault(),tt.contextLost=!0}),et.addEventListener("webglcontextrestored",nt=>{console.log("Context Restored",nt),tt.contextLost=!1;const rt=[];tt.glyphsByFont.forEach(it=>{it.forEach(ot=>{rt.push(generateGlyphSDF(ot,tt,!0))})}),Promise.all(rt).then(()=>{safariPre15Workaround(tt),tt.sdfTexture.needsUpdate=!0})})}function preloadFont({font:tt,characters:et,sdfGlyphSize:nt},rt){let it=Array.isArray(et)?et.join(` +*/function woff2otfFactory(){return function(tt){var et=Uint8Array,nt=Uint16Array,rt=Uint32Array,it=new et([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ot=new et([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),at=new et([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),st=function(Rt,$t){for(var xt=new nt(31),It=0;It<31;++It)xt[It]=$t+=1<>>1|(21845&pt)<<1;mt=(61680&(mt=(52428&mt)>>>2|(13107&mt)<<2))>>>4|(3855&mt)<<4,dt[pt]=((65280&mt)>>>8|(255&mt)<<8)>>>1}var gt=function(Rt,$t,xt){for(var It=Rt.length,Ot=0,zt=new nt($t);Ot>>Ft]=Nt}else for(Ut=new nt(It),Ot=0;Ot>>15-Rt[Ot]);return Ut},yt=new et(288);for(pt=0;pt<144;++pt)yt[pt]=8;for(pt=144;pt<256;++pt)yt[pt]=9;for(pt=256;pt<280;++pt)yt[pt]=7;for(pt=280;pt<288;++pt)yt[pt]=8;var bt=new et(32);for(pt=0;pt<32;++pt)bt[pt]=5;var wt=gt(yt,9,1),vt=gt(bt,5,1),kt=function(Rt){for(var $t=Rt[0],xt=1;xt$t&&($t=Rt[xt]);return $t},St=function(Rt,$t,xt){var It=$t/8|0;return(Rt[It]|Rt[It+1]<<8)>>(7&$t)&xt},Et=function(Rt,$t){var xt=$t/8|0;return(Rt[xt]|Rt[xt+1]<<8|Rt[xt+2]<<16)>>(7&$t)},At=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Tt=function(Rt,$t,xt){var It=new Error($t||At[Rt]);if(It.code=Rt,Error.captureStackTrace&&Error.captureStackTrace(It,Tt),!xt)throw It;return It},Mt=function(Rt,$t,xt){var It=Rt.length;if(!It||xt&&!xt.l&&It<5)return $t||new et(0);var Ot=!$t||xt,zt=!xt||xt.i;xt||(xt={}),$t||($t=new et(3*It));var Ut,Wt=function(qn){var Xn=$t.length;if(qn>Xn){var Wn=new et(Math.max(2*Xn,qn));Wn.set($t),$t=Wn}},Ft=xt.f||0,Nt=xt.p||0,Ct=xt.b||0,Ht=xt.l,Jt=xt.d,nn=xt.m,Yt=xt.n,fn=8*It;do{if(!Ht){xt.f=Ft=St(Rt,Nt,1);var cn=St(Rt,Nt+1,3);if(Nt+=3,!cn){var _n=Rt[(Cn=((Ut=Nt)/8|0)+(7&Ut&&1)+4)-4]|Rt[Cn-3]<<8,En=Cn+_n;if(En>It){zt&&Tt(0);break}Ot&&Wt(Ct+_n),$t.set(Rt.subarray(Cn,En),Ct),xt.b=Ct+=_n,xt.p=Nt=8*En;continue}if(cn==1)Ht=wt,Jt=vt,nn=9,Yt=5;else if(cn==2){var an=St(Rt,Nt,31)+257,en=St(Rt,Nt+10,15)+4,Tn=an+St(Rt,Nt+5,31)+1;Nt+=14;for(var Rn=new et(Tn),An=new et(19),yn=0;yn>>4)<16)Rn[yn++]=Cn;else{var un=0,rn=0;for(Cn==16?(rn=3+St(Rt,Nt,3),Nt+=2,un=Rn[yn-1]):Cn==17?(rn=3+St(Rt,Nt,7),Nt+=3):Cn==18&&(rn=11+St(Rt,Nt,127),Nt+=7);rn--;)Rn[yn++]=un}}var Sn=Rn.subarray(0,an),Mn=Rn.subarray(an);nn=kt(Sn),Yt=kt(Mn),Ht=gt(Sn,nn,1),Jt=gt(Mn,Yt,1)}else Tt(1);if(Nt>fn){zt&&Tt(0);break}}Ot&&Wt(Ct+131072);for(var Nn=(1<>>4;if((Nt+=15&un)>fn){zt&&Tt(0);break}if(un||Tt(2),Zt<256)$t[Ct++]=Zt;else{if(Zt==256){Qt=Nt,Ht=null;break}var wn=Zt-254;if(Zt>264){var On=it[yn=Zt-257];wn=St(Rt,Nt,(1<>>4;if(jn||Tt(3),Nt+=15&jn,Mn=ht[Un],Un>3&&(On=ot[Un],Mn+=Et(Rt,Nt)&(1<fn){zt&&Tt(0);break}Ot&&Wt(Ct+131072);for(var tr=Ct+wn;Ctqn.length)&&(Wn=qn.length);var Zn=new(qn instanceof nt?nt:qn instanceof rt?rt:et)(Wn-Xn);return Zn.set(qn.subarray(Xn,Wn)),Zn}($t,0,Ct)},Lt=new et(0),jt=typeof TextDecoder<"u"&&new TextDecoder;try{jt.decode(Lt,{stream:!0})}catch{}return tt.convert_streams=function(Rt){var $t=new DataView(Rt),xt=0;function It(){var an=$t.getUint16(xt);return xt+=2,an}function Ot(){var an=$t.getUint32(xt);return xt+=4,an}function zt(an){_n.setUint16(En,an),En+=2}function Ut(an){_n.setUint32(En,an),En+=4}for(var Wt={signature:Ot(),flavor:Ot(),length:Ot(),numTables:It(),reserved:It(),totalSfntSize:Ot(),majorVersion:It(),minorVersion:It(),metaOffset:Ot(),metaLength:Ot(),metaOrigLength:Ot(),privOffset:Ot(),privLength:Ot()},Ft=0;Math.pow(2,Ft)<=Wt.numTables;)Ft++;Ft--;for(var Nt=16*Math.pow(2,Ft),Ct=16*Wt.numTables-Nt,Ht=12,Jt=[],nn=0;nn{let[Lt,jt]=Mt.split("+");Lt=parseInt(Lt,36),jt=jt?parseInt(jt,36):0,ut.set(Tt+=Lt,Et[At]);for(let Rt=jt;Rt--;)ut.set(++Tt,Et[At])})}}return ut.get(St)||ct}const dt=1,pt=2,mt=3,gt=4,yt=[null,"isol","init","fina","medi"];function bt(St){const Et=new Uint8Array(St.length);let At=ct,Tt=dt,Mt=-1;for(let Lt=0;Lt65535&&Lt++)}return Et}function wt(St,Et){const At=[];for(let Mt=0;Mt65535&&Mt++,At.push(tt.U.codeToGlyph(St,Lt))}const Tt=St.GSUB;if(Tt){const{lookupList:Mt,featureList:Lt}=Tt;let jt;const Rt=/^(rlig|liga|mset|isol|init|fina|medi|half|pres|blws)$/,$t=[];Lt.forEach(xt=>{if(Rt.test(xt.tag))for(let It=0;It{if(Nt!==-1){let Ht=Et[Nt];if(!Ht){const{cmds:Jt,crds:nn}=tt.U.glyphToPath(St,Nt);let Yt="",fn=0;for(let en=0,Tn=Jt.length;en1?",":"")+nn[fn++]}let cn,_n,En,an;if(nn.length){cn=_n=1/0,En=an=-1/0;for(let en=0,Tn=nn.length;enEn&&(En=Rn),An>an&&(an=An)}}else cn=En=_n=an=0;Ht=Et[Nt]={index:Nt,advanceWidth:St.hmtx.aWidth[Nt],xMin:cn,yMin:_n,xMax:En,yMax:an,path:Yt,pathCommandCount:Jt.length}}Ft!==-1&&(Ot+=tt.U.getPairAdjustment(St,Ft,Nt)*zt),It.call(null,Ht,Ot,Wt),Ht.advanceWidth&&(Ot+=Ht.advanceWidth*zt),xt&&(Ot+=xt*$t),Ft=Nt}Wt+=Rt.codePointAt(Wt)>65535?2:1}),Ot}};return jt}return function(Et){const At=new Uint8Array(Et,0,4),Tt=tt._bin.readASCII(At,0,4);if(Tt==="wOFF")Et=et(Et);else if(Tt==="wOF2")throw new Error("woff2 fonts not supported");return kt(tt.parse(Et)[0])}}const workerModule=defineWorkerModule({name:"Typr Font Parser",dependencies:[typrFactory,woff2otfFactory,parserFactory],init(tt,et,nt){const rt=tt(),it=et();return nt(rt,it)}}),CONFIG={defaultFontURL:"https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxM.woff",sdfGlyphSize:64,sdfMargin:1/16,sdfExponent:9,textureWidth:2048},tempColor=new Color$1;function now$1$1(){return(self.performance||Date).now()}const atlases=Object.create(null);function getTextRenderInfo(tt,et){tt=assign$1({},tt);const nt=now$1$1();if(tt.font=toAbsoluteURL(tt.font||CONFIG.defaultFontURL),tt.text=""+tt.text,tt.sdfGlyphSize=tt.sdfGlyphSize||CONFIG.sdfGlyphSize,tt.colorRanges!=null){let ht={};for(let dt in tt.colorRanges)if(tt.colorRanges.hasOwnProperty(dt)){let pt=tt.colorRanges[dt];typeof pt!="number"&&(pt=tempColor.set(pt).getHex()),ht[dt]=pt}tt.colorRanges=ht}Object.freeze(tt);const{textureWidth:rt,sdfExponent:it}=CONFIG,{sdfGlyphSize:ot}=tt,at=rt/ot*4;let st=atlases[ot];if(!st){const ht=document.createElement("canvas");ht.width=rt,ht.height=ot*256/at,st=atlases[ot]={glyphCount:0,sdfGlyphSize:ot,sdfCanvas:ht,sdfTexture:new Texture(ht,void 0,void 0,void 0,LinearFilter,LinearFilter),contextLost:!1,glyphsByFont:new Map},st.sdfTexture.generateMipmaps=!1,initContextLossHandling(st)}const{sdfTexture:lt,sdfCanvas:ct}=st;let ut=st.glyphsByFont.get(tt.font);ut||st.glyphsByFont.set(tt.font,ut=new Map),typesetInWorker(tt).then(ht=>{const{glyphIds:dt,glyphPositions:pt,fontSize:mt,unitsPerEm:gt,timings:yt}=ht,bt=[],wt=new Float32Array(dt.length*4),vt=mt/gt;let kt=0,St=0;const Et=now$1$1();dt.forEach((jt,Rt)=>{let $t=ut.get(jt);if(!$t){const{path:zt,pathBounds:Ut}=ht.glyphData[jt],Wt=Math.max(Ut[2]-Ut[0],Ut[3]-Ut[1])/ot*(CONFIG.sdfMargin*ot+.5),Ft=st.glyphCount++,Nt=[Ut[0]-Wt,Ut[1]-Wt,Ut[2]+Wt,Ut[3]+Wt];ut.set(jt,$t={path:zt,atlasIndex:Ft,sdfViewBox:Nt}),bt.push($t)}const{sdfViewBox:xt}=$t,It=pt[St++],Ot=pt[St++];wt[kt++]=It+xt[0]*vt,wt[kt++]=Ot+xt[1]*vt,wt[kt++]=It+xt[2]*vt,wt[kt++]=Ot+xt[3]*vt,dt[Rt]=$t.atlasIndex}),yt.quads=(yt.quads||0)+(now$1$1()-Et);const At=now$1$1();yt.sdf={};const Tt=ct.height,Mt=Math.ceil(st.glyphCount/at),Lt=Math.pow(2,Math.ceil(Math.log2(Mt*ot)));Lt>Tt&&(console.info(`Increasing SDF texture size ${Tt}->${Lt}`),resizeWebGLCanvasWithoutClearing(ct,rt,Lt),lt.dispose()),Promise.all(bt.map(jt=>generateGlyphSDF(jt,st,tt.gpuAccelerateSDF).then(({timing:Rt})=>{yt.sdf[jt.atlasIndex]=Rt}))).then(()=>{bt.length&&!st.contextLost&&(safariPre15Workaround(st),lt.needsUpdate=!0),yt.sdfTotal=now$1$1()-At,yt.total=now$1$1()-nt,et(Object.freeze({parameters:tt,sdfTexture:lt,sdfGlyphSize:ot,sdfExponent:it,glyphBounds:wt,glyphAtlasIndices:dt,glyphColors:ht.glyphColors,caretPositions:ht.caretPositions,caretHeight:ht.caretHeight,chunkedBounds:ht.chunkedBounds,ascender:ht.ascender,descender:ht.descender,lineHeight:ht.lineHeight,capHeight:ht.capHeight,xHeight:ht.xHeight,topBaseline:ht.topBaseline,blockBounds:ht.blockBounds,visibleBounds:ht.visibleBounds,timings:ht.timings}))})}),Promise.resolve().then(()=>{st.contextLost||warmUpSDFCanvas(ct)})}function generateGlyphSDF({path:tt,atlasIndex:et,sdfViewBox:nt},{sdfGlyphSize:rt,sdfCanvas:it,contextLost:ot},at){if(ot)return Promise.resolve({timing:-1});const{textureWidth:st,sdfExponent:lt}=CONFIG,ct=Math.max(nt[2]-nt[0],nt[3]-nt[1]),ut=Math.floor(et/4),ht=ut%(st/rt)*rt,dt=Math.floor(ut/(st/rt))*rt,pt=et%4;return generateSDF(rt,rt,tt,nt,ct,lt,it,ht,dt,pt,at)}function initContextLossHandling(tt){const et=tt.sdfCanvas;et.addEventListener("webglcontextlost",nt=>{console.log("Context Lost",nt),nt.preventDefault(),tt.contextLost=!0}),et.addEventListener("webglcontextrestored",nt=>{console.log("Context Restored",nt),tt.contextLost=!1;const rt=[];tt.glyphsByFont.forEach(it=>{it.forEach(ot=>{rt.push(generateGlyphSDF(ot,tt,!0))})}),Promise.all(rt).then(()=>{safariPre15Workaround(tt),tt.sdfTexture.needsUpdate=!0})})}function preloadFont({font:tt,characters:et,sdfGlyphSize:nt},rt){let it=Array.isArray(et)?et.join(` `):""+et;getTextRenderInfo({font:tt,sdfGlyphSize:nt,text:it},rt)}function assign$1(tt,et){for(let nt in et)et.hasOwnProperty(nt)&&(tt[nt]=et[nt]);return tt}let linkEl;function toAbsoluteURL(tt){return linkEl||(linkEl=typeof document>"u"?{}:document.createElement("a")),linkEl.href=tt,linkEl.href}function safariPre15Workaround(tt){if(typeof createImageBitmap!="function"){console.info("Safari<15: applying SDF canvas workaround");const{sdfCanvas:et,sdfTexture:nt}=tt,{width:rt,height:it}=et,ot=tt.sdfCanvas.getContext("webgl");let at=nt.image.data;(!at||at.length!==rt*it*4)&&(at=new Uint8Array(rt*it*4),nt.image={width:rt,height:it,data:at},nt.flipY=!1,nt.isDataTexture=!0),ot.readPixels(0,0,rt,it,ot.RGBA,ot.UNSIGNED_BYTE,at)}}const typesetterWorkerModule=defineWorkerModule({name:"Typesetter",dependencies:[CONFIG,workerModule,createTypesetter,bidiFactory],init(tt,et,nt,rt){const{defaultFontURL:it}=tt;return nt(et,rt(),{defaultFontURL:it})}}),typesetInWorker=defineWorkerModule({name:"Typesetter",dependencies:[typesetterWorkerModule],init(tt){return function(et){return new Promise(nt=>{tt.typeset(et,nt)})}},getTransferables(tt){const et=[tt.glyphPositions.buffer,tt.glyphIds.buffer];return tt.caretPositions&&et.push(tt.caretPositions.buffer),tt.glyphColors&&et.push(tt.glyphColors.buffer),et}}),templateGeometries={};function getTemplateGeometry(tt){let et=templateGeometries[tt];if(!et){const nt=new PlaneGeometry(1,1,tt,tt),rt=nt.clone(),it=nt.attributes,ot=rt.attributes,at=new BufferGeometry,st=it.uv.count;for(let lt=0;lt{at.setAttribute(lt,new Float32BufferAttribute([...it[lt].array,...ot[lt].array],it[lt].itemSize))}),at.setIndex([...nt.index.array,...rt.index.array.map(lt=>lt+st)]),at.translate(.5,.5,0),et=templateGeometries[tt]=at}return et}const glyphBoundsAttrName="aTroikaGlyphBounds",glyphIndexAttrName="aTroikaGlyphIndex",glyphColorAttrName="aTroikaGlyphColor";class GlyphsGeometry extends InstancedBufferGeometry{constructor(){super(),this.detail=1,this.curveRadius=0,this.groups=[{start:0,count:1/0,materialIndex:0},{start:0,count:1/0,materialIndex:1}],this.boundingSphere=new Sphere,this.boundingBox=new Box3}computeBoundingSphere(){}computeBoundingBox(){}setSide(et){const nt=this.getIndex().count;this.setDrawRange(et===BackSide?nt/2:0,et===DoubleSide?nt:nt/2)}set detail(et){if(et!==this._detail){this._detail=et,(typeof et!="number"||et<1)&&(et=1);let nt=getTemplateGeometry(et);["position","normal","uv"].forEach(rt=>{this.attributes[rt]=nt.attributes[rt].clone()}),this.setIndex(nt.getIndex().clone())}}get detail(){return this._detail}set curveRadius(et){et!==this._curveRadius&&(this._curveRadius=et,this._updateBounds())}get curveRadius(){return this._curveRadius}updateGlyphs(et,nt,rt,it,ot){updateBufferAttr(this,glyphBoundsAttrName,et,4),updateBufferAttr(this,glyphIndexAttrName,nt,1),updateBufferAttr(this,glyphColorAttrName,ot,3),this._blockBounds=rt,this._chunkedBounds=it,this.instanceCount=nt.length,this._updateBounds()}_updateBounds(){const et=this._blockBounds;if(et){const{curveRadius:nt,boundingBox:rt}=this;if(nt){const{PI:it,floor:ot,min:at,max:st,sin:lt,cos:ct}=Math,ut=it/2,ht=it*2,dt=Math.abs(nt),pt=et[0]/dt,mt=et[2]/dt,gt=ot((pt+ut)/ht)!==ot((mt+ut)/ht)?-dt:at(lt(pt)*dt,lt(mt)*dt),yt=ot((pt-ut)/ht)!==ot((mt-ut)/ht)?dt:st(lt(pt)*dt,lt(mt)*dt),bt=ot((pt+it)/ht)!==ot((mt+it)/ht)?dt*2:st(dt-ct(pt)*dt,dt-ct(mt)*dt);rt.min.set(gt,et[1],nt<0?-bt:0),rt.max.set(yt,et[3],nt<0?0:bt)}else rt.min.set(et[0],et[1],0),rt.max.set(et[2],et[3],0);rt.getBoundingSphere(this.boundingSphere)}}applyClipRect(et){let nt=this.getAttribute(glyphIndexAttrName).count,rt=this._chunkedBounds;if(rt)for(let it=rt.length;it--;){nt=rt[it].end;let ot=rt[it].rect;if(ot[1]et.y&&ot[0]et.x)break}this.instanceCount=nt}}function updateBufferAttr(tt,et,nt,rt){const it=tt.getAttribute(et);nt?it&&it.array.length===nt.length?(it.array.set(nt),it.needsUpdate=!0):(tt.setAttribute(et,new InstancedBufferAttribute(nt,rt)),delete tt._maxInstanceCount,tt.dispose()):it&&tt.deleteAttribute(et)}const VERTEX_DEFS=` uniform vec2 uTroikaSDFTextureSize; uniform float uTroikaSDFGlyphSize; @@ -4793,12 +4793,12 @@ if (edgeAlpha == 0.0) { `;function createTextDerivedMaterial(tt){const et=createDerivedMaterial(tt,{chained:!0,extensions:{derivatives:!0},uniforms:{uTroikaSDFTexture:{value:null},uTroikaSDFTextureSize:{value:new Vector2},uTroikaSDFGlyphSize:{value:0},uTroikaSDFExponent:{value:0},uTroikaTotalBounds:{value:new Vector4(0,0,0,0)},uTroikaClipRect:{value:new Vector4(0,0,0,0)},uTroikaDistanceOffset:{value:0},uTroikaOutlineOpacity:{value:0},uTroikaFillOpacity:{value:1},uTroikaPositionOffset:{value:new Vector2},uTroikaCurveRadius:{value:0},uTroikaBlurRadius:{value:0},uTroikaStrokeWidth:{value:0},uTroikaStrokeColor:{value:new Color$1},uTroikaStrokeOpacity:{value:1},uTroikaOrient:{value:new Matrix3},uTroikaUseGlyphColors:{value:!0},uTroikaSDFDebug:{value:!1}},vertexDefs:VERTEX_DEFS,vertexTransform:VERTEX_TRANSFORM,fragmentDefs:FRAGMENT_DEFS,fragmentColorTransform:FRAGMENT_TRANSFORM,customRewriter({vertexShader:nt,fragmentShader:rt}){let it=/\buniform\s+vec3\s+diffuse\b/;return it.test(rt)&&(rt=rt.replace(it,"varying vec3 vTroikaGlyphColor").replace(/\bdiffuse\b/g,"vTroikaGlyphColor"),it.test(nt)||(nt=nt.replace(voidMainRegExp,`uniform vec3 diffuse; $& vTroikaGlyphColor = uTroikaUseGlyphColors ? aTroikaGlyphColor / 255.0 : diffuse; -`))),{vertexShader:nt,fragmentShader:rt}}});return et.transparent=!0,Object.defineProperties(et,{isTroikaTextMaterial:{value:!0},shadowSide:{get(){return this.side},set(){}}}),et}const defaultMaterial=new MeshBasicMaterial({color:16777215,side:DoubleSide,transparent:!0}),defaultStrokeColor=8421504,tempMat4=new Matrix4,tempVec3a=new Vector3,tempVec3b=new Vector3,tempArray=[],origin=new Vector3,defaultOrient="+x+y";function first(tt){return Array.isArray(tt)?tt[0]:tt}let getFlatRaycastMesh=()=>{const tt=new Mesh(new PlaneGeometry(1,1),defaultMaterial);return getFlatRaycastMesh=()=>tt,tt},getCurvedRaycastMesh=()=>{const tt=new Mesh(new PlaneGeometry(1,1,32,1),defaultMaterial);return getCurvedRaycastMesh=()=>tt,tt};const syncStartEvent={type:"syncstart"},syncCompleteEvent={type:"synccomplete"},SYNCABLE_PROPS=["font","fontSize","letterSpacing","lineHeight","maxWidth","overflowWrap","text","direction","textAlign","textIndent","whiteSpace","anchorX","anchorY","colorRanges","sdfGlyphSize"],COPYABLE_PROPS=SYNCABLE_PROPS.concat("material","color","depthOffset","clipRect","curveRadius","orientation","glyphGeometryDetail");let Text$2=class extends Mesh{constructor(){const et=new GlyphsGeometry;super(et,null),this.text="",this.anchorX=0,this.anchorY=0,this.curveRadius=0,this.direction="auto",this.font=null,this.fontSize=.1,this.letterSpacing=0,this.lineHeight="normal",this.maxWidth=1/0,this.overflowWrap="normal",this.textAlign="left",this.textIndent=0,this.whiteSpace="normal",this.material=null,this.color=null,this.colorRanges=null,this.outlineWidth=0,this.outlineColor=0,this.outlineOpacity=1,this.outlineBlur=0,this.outlineOffsetX=0,this.outlineOffsetY=0,this.strokeWidth=0,this.strokeColor=defaultStrokeColor,this.strokeOpacity=1,this.fillOpacity=1,this.depthOffset=0,this.clipRect=null,this.orientation=defaultOrient,this.glyphGeometryDetail=1,this.sdfGlyphSize=null,this.gpuAccelerateSDF=!0,this.debugSDF=!1}sync(et){this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(et):(this._isSyncing=!0,this.dispatchEvent(syncStartEvent),getTextRenderInfo({text:this.text,font:this.font,fontSize:this.fontSize||.1,letterSpacing:this.letterSpacing||0,lineHeight:this.lineHeight||"normal",maxWidth:this.maxWidth,direction:this.direction||"auto",textAlign:this.textAlign,textIndent:this.textIndent,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchorX:this.anchorX,anchorY:this.anchorY,colorRanges:this.colorRanges,includeCaretPositions:!0,sdfGlyphSize:this.sdfGlyphSize,gpuAccelerateSDF:this.gpuAccelerateSDF},nt=>{this._isSyncing=!1,this._textRenderInfo=nt,this.geometry.updateGlyphs(nt.glyphBounds,nt.glyphAtlasIndices,nt.blockBounds,nt.chunkedBounds,nt.glyphColors);const rt=this._queuedSyncs;rt&&(this._queuedSyncs=null,this._needsSync=!0,this.sync(()=>{rt.forEach(it=>it&&it())})),this.dispatchEvent(syncCompleteEvent),et&&et()})))}onBeforeRender(et,nt,rt,it,ot,at){this.sync(),ot.isTroikaTextMaterial&&this._prepareForRender(ot),ot._hadOwnSide=ot.hasOwnProperty("side"),this.geometry.setSide(ot._actualSide=ot.side),ot.side=FrontSide}onAfterRender(et,nt,rt,it,ot,at){ot._hadOwnSide?ot.side=ot._actualSide:delete ot.side}dispose(){this.geometry.dispose()}get textRenderInfo(){return this._textRenderInfo||null}get material(){let et=this._derivedMaterial;const nt=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=defaultMaterial.clone());if((!et||et.baseMaterial!==nt)&&(et=this._derivedMaterial=createTextDerivedMaterial(nt),nt.addEventListener("dispose",function rt(){nt.removeEventListener("dispose",rt),et.dispose()})),this.outlineWidth||this.outlineBlur||this.outlineOffsetX||this.outlineOffsetY){let rt=et._outlineMtl;return rt||(rt=et._outlineMtl=Object.create(et,{id:{value:et.id+.1}}),rt.isTextOutlineMaterial=!0,rt.depthWrite=!1,rt.map=null,et.addEventListener("dispose",function it(){et.removeEventListener("dispose",it),rt.dispose()})),[rt,et]}else return et}set material(et){et&&et.isTroikaTextMaterial?(this._derivedMaterial=et,this._baseMaterial=et.baseMaterial):this._baseMaterial=et}get glyphGeometryDetail(){return this.geometry.detail}set glyphGeometryDetail(et){this.geometry.detail=et}get curveRadius(){return this.geometry.curveRadius}set curveRadius(et){this.geometry.curveRadius=et}get customDepthMaterial(){return first(this.material).getDepthMaterial()}get customDistanceMaterial(){return first(this.material).getDistanceMaterial()}_prepareForRender(et){const nt=et.isTextOutlineMaterial,rt=et.uniforms,it=this.textRenderInfo;if(it){const{sdfTexture:st,blockBounds:lt}=it;rt.uTroikaSDFTexture.value=st,rt.uTroikaSDFTextureSize.value.set(st.image.width,st.image.height),rt.uTroikaSDFGlyphSize.value=it.sdfGlyphSize,rt.uTroikaSDFExponent.value=it.sdfExponent,rt.uTroikaTotalBounds.value.fromArray(lt),rt.uTroikaUseGlyphColors.value=!nt&&!!it.glyphColors;let ct=0,ut=0,ht=0,dt,pt,mt,gt=0,yt=0;if(nt){let{outlineWidth:wt,outlineOffsetX:vt,outlineOffsetY:kt,outlineBlur:St,outlineOpacity:Tt}=this;ct=this._parsePercent(wt)||0,ut=Math.max(0,this._parsePercent(St)||0),dt=Tt,gt=this._parsePercent(vt)||0,yt=this._parsePercent(kt)||0}else ht=Math.max(0,this._parsePercent(this.strokeWidth)||0),ht&&(mt=this.strokeColor,rt.uTroikaStrokeColor.value.set(mt??defaultStrokeColor),pt=this.strokeOpacity,pt==null&&(pt=1)),dt=this.fillOpacity;rt.uTroikaDistanceOffset.value=ct,rt.uTroikaPositionOffset.value.set(gt,yt),rt.uTroikaBlurRadius.value=ut,rt.uTroikaStrokeWidth.value=ht,rt.uTroikaStrokeOpacity.value=pt,rt.uTroikaFillOpacity.value=dt??1,rt.uTroikaCurveRadius.value=this.curveRadius||0;let bt=this.clipRect;if(bt&&Array.isArray(bt)&&bt.length===4)rt.uTroikaClipRect.value.fromArray(bt);else{const wt=(this.fontSize||.1)*100;rt.uTroikaClipRect.value.set(lt[0]-wt,lt[1]-wt,lt[2]+wt,lt[3]+wt)}this.geometry.applyClipRect(rt.uTroikaClipRect.value)}rt.uTroikaSDFDebug.value=!!this.debugSDF,et.polygonOffset=!!this.depthOffset,et.polygonOffsetFactor=et.polygonOffsetUnits=this.depthOffset||0;const ot=nt?this.outlineColor||0:this.color;if(ot==null)delete et.color;else{const st=et.hasOwnProperty("color")?et.color:et.color=new Color$1;(ot!==st._input||typeof ot=="object")&&st.set(st._input=ot)}let at=this.orientation||defaultOrient;if(at!==et._orientation){let st=rt.uTroikaOrient.value;at=at.replace(/[^-+xyz]/g,"");let lt=at!==defaultOrient&&at.match(/^([-+])([xyz])([-+])([xyz])$/);if(lt){let[,ct,ut,ht,dt]=lt;tempVec3a.set(0,0,0)[ut]=ct==="-"?1:-1,tempVec3b.set(0,0,0)[dt]=ht==="-"?-1:1,tempMat4.lookAt(origin,tempVec3a.cross(tempVec3b),tempVec3b),st.setFromMatrix4(tempMat4)}else st.identity();et._orientation=at}}_parsePercent(et){if(typeof et=="string"){let nt=et.match(/^(-?[\d.]+)%$/),rt=nt?parseFloat(nt[1]):NaN;et=(isNaN(rt)?0:rt/100)*this.fontSize}return et}localPositionToTextCoords(et,nt=new Vector2){nt.copy(et);const rt=this.curveRadius;return rt&&(nt.x=Math.atan2(et.x,Math.abs(rt)-Math.abs(et.z))*Math.abs(rt)),nt}worldPositionToTextCoords(et,nt=new Vector2){return tempVec3a.copy(et),this.localPositionToTextCoords(this.worldToLocal(tempVec3a),nt)}raycast(et,nt){const{textRenderInfo:rt,curveRadius:it}=this;if(rt){const ot=rt.blockBounds,at=it?getCurvedRaycastMesh():getFlatRaycastMesh(),st=at.geometry,{position:lt,uv:ct}=st.attributes;for(let ut=0;ut{this[rt]=et[rt]}),this}clone(){return new this.constructor().copy(this)}};SYNCABLE_PROPS.forEach(tt=>{const et="_private_"+tt;Object.defineProperty(Text$2.prototype,tt,{get(){return this[et]},set(nt){nt!==this[et]&&(this[et]=nt,this._needsSync=!0)}})});function shallowEqualArrays(tt,et,nt=(rt,it)=>rt===it){if(tt===et)return!0;if(!tt||!et)return!1;const rt=tt.length;if(et.length!==rt)return!1;for(let it=0;itit.response=ot).then(()=>{rt.lifespan&&rt.lifespan>0&&setTimeout(()=>{const ot=globalCache.indexOf(it);ot!==-1&&globalCache.splice(ot,1)},rt.lifespan)}).catch(ot=>it.error=ot)};if(globalCache.push(it),!nt)throw it.promise}const suspend=(tt,et,nt)=>query(tt,et,!1,nt),Text$1=reactExports.forwardRef(({anchorX:tt="center",anchorY:et="middle",font:nt,fontSize:rt=1,children:it,characters:ot,onSync:at,...st},lt)=>{const ct=useThree(({invalidate:pt})=>pt),[ut]=reactExports.useState(()=>new Text$2),[ht,dt]=reactExports.useMemo(()=>{const pt=[];let mt="";return reactExports.Children.forEach(it,gt=>{typeof gt=="string"||typeof gt=="number"?mt+=gt:pt.push(gt)}),[pt,mt]},[it]);return suspend(()=>new Promise(pt=>preloadFont({font:nt,characters:ot},pt)),["troika-text",nt,ot]),reactExports.useLayoutEffect(()=>void ut.sync(()=>{ct(),at&&at(ut)})),reactExports.useEffect(()=>()=>ut.dispose(),[ut]),reactExports.createElement("primitive",_extends$r({object:ut,ref:lt,font:nt,text:dt,anchorX:tt,anchorY:et,fontSize:rt},st),ht)}),IsObject=tt=>tt===Object(tt)&&!Array.isArray(tt)&&typeof tt!="function";function useTexture(tt,et){const nt=useThree(it=>it.gl),rt=useLoader(TextureLoader,IsObject(tt)?Object.values(tt):tt);if(reactExports.useLayoutEffect(()=>{et==null||et(rt)},[et]),reactExports.useEffect(()=>{(Array.isArray(rt)?rt:[rt]).forEach(nt.initTexture)},[nt,rt]),IsObject(tt)){const it=Object.keys(tt),ot={};return it.forEach(at=>Object.assign(ot,{[at]:rt[it.indexOf(at)]})),ot}else return rt}useTexture.preload=tt=>useLoader.preload(TextureLoader,tt);useTexture.clear=tt=>useLoader.clear(TextureLoader,tt);/*! +`))),{vertexShader:nt,fragmentShader:rt}}});return et.transparent=!0,Object.defineProperties(et,{isTroikaTextMaterial:{value:!0},shadowSide:{get(){return this.side},set(){}}}),et}const defaultMaterial=new MeshBasicMaterial({color:16777215,side:DoubleSide,transparent:!0}),defaultStrokeColor=8421504,tempMat4=new Matrix4,tempVec3a=new Vector3,tempVec3b=new Vector3,tempArray=[],origin=new Vector3,defaultOrient="+x+y";function first(tt){return Array.isArray(tt)?tt[0]:tt}let getFlatRaycastMesh=()=>{const tt=new Mesh(new PlaneGeometry(1,1),defaultMaterial);return getFlatRaycastMesh=()=>tt,tt},getCurvedRaycastMesh=()=>{const tt=new Mesh(new PlaneGeometry(1,1,32,1),defaultMaterial);return getCurvedRaycastMesh=()=>tt,tt};const syncStartEvent={type:"syncstart"},syncCompleteEvent={type:"synccomplete"},SYNCABLE_PROPS=["font","fontSize","letterSpacing","lineHeight","maxWidth","overflowWrap","text","direction","textAlign","textIndent","whiteSpace","anchorX","anchorY","colorRanges","sdfGlyphSize"],COPYABLE_PROPS=SYNCABLE_PROPS.concat("material","color","depthOffset","clipRect","curveRadius","orientation","glyphGeometryDetail");let Text$2=class extends Mesh{constructor(){const et=new GlyphsGeometry;super(et,null),this.text="",this.anchorX=0,this.anchorY=0,this.curveRadius=0,this.direction="auto",this.font=null,this.fontSize=.1,this.letterSpacing=0,this.lineHeight="normal",this.maxWidth=1/0,this.overflowWrap="normal",this.textAlign="left",this.textIndent=0,this.whiteSpace="normal",this.material=null,this.color=null,this.colorRanges=null,this.outlineWidth=0,this.outlineColor=0,this.outlineOpacity=1,this.outlineBlur=0,this.outlineOffsetX=0,this.outlineOffsetY=0,this.strokeWidth=0,this.strokeColor=defaultStrokeColor,this.strokeOpacity=1,this.fillOpacity=1,this.depthOffset=0,this.clipRect=null,this.orientation=defaultOrient,this.glyphGeometryDetail=1,this.sdfGlyphSize=null,this.gpuAccelerateSDF=!0,this.debugSDF=!1}sync(et){this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(et):(this._isSyncing=!0,this.dispatchEvent(syncStartEvent),getTextRenderInfo({text:this.text,font:this.font,fontSize:this.fontSize||.1,letterSpacing:this.letterSpacing||0,lineHeight:this.lineHeight||"normal",maxWidth:this.maxWidth,direction:this.direction||"auto",textAlign:this.textAlign,textIndent:this.textIndent,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchorX:this.anchorX,anchorY:this.anchorY,colorRanges:this.colorRanges,includeCaretPositions:!0,sdfGlyphSize:this.sdfGlyphSize,gpuAccelerateSDF:this.gpuAccelerateSDF},nt=>{this._isSyncing=!1,this._textRenderInfo=nt,this.geometry.updateGlyphs(nt.glyphBounds,nt.glyphAtlasIndices,nt.blockBounds,nt.chunkedBounds,nt.glyphColors);const rt=this._queuedSyncs;rt&&(this._queuedSyncs=null,this._needsSync=!0,this.sync(()=>{rt.forEach(it=>it&&it())})),this.dispatchEvent(syncCompleteEvent),et&&et()})))}onBeforeRender(et,nt,rt,it,ot,at){this.sync(),ot.isTroikaTextMaterial&&this._prepareForRender(ot),ot._hadOwnSide=ot.hasOwnProperty("side"),this.geometry.setSide(ot._actualSide=ot.side),ot.side=FrontSide}onAfterRender(et,nt,rt,it,ot,at){ot._hadOwnSide?ot.side=ot._actualSide:delete ot.side}dispose(){this.geometry.dispose()}get textRenderInfo(){return this._textRenderInfo||null}get material(){let et=this._derivedMaterial;const nt=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=defaultMaterial.clone());if((!et||et.baseMaterial!==nt)&&(et=this._derivedMaterial=createTextDerivedMaterial(nt),nt.addEventListener("dispose",function rt(){nt.removeEventListener("dispose",rt),et.dispose()})),this.outlineWidth||this.outlineBlur||this.outlineOffsetX||this.outlineOffsetY){let rt=et._outlineMtl;return rt||(rt=et._outlineMtl=Object.create(et,{id:{value:et.id+.1}}),rt.isTextOutlineMaterial=!0,rt.depthWrite=!1,rt.map=null,et.addEventListener("dispose",function it(){et.removeEventListener("dispose",it),rt.dispose()})),[rt,et]}else return et}set material(et){et&&et.isTroikaTextMaterial?(this._derivedMaterial=et,this._baseMaterial=et.baseMaterial):this._baseMaterial=et}get glyphGeometryDetail(){return this.geometry.detail}set glyphGeometryDetail(et){this.geometry.detail=et}get curveRadius(){return this.geometry.curveRadius}set curveRadius(et){this.geometry.curveRadius=et}get customDepthMaterial(){return first(this.material).getDepthMaterial()}get customDistanceMaterial(){return first(this.material).getDistanceMaterial()}_prepareForRender(et){const nt=et.isTextOutlineMaterial,rt=et.uniforms,it=this.textRenderInfo;if(it){const{sdfTexture:st,blockBounds:lt}=it;rt.uTroikaSDFTexture.value=st,rt.uTroikaSDFTextureSize.value.set(st.image.width,st.image.height),rt.uTroikaSDFGlyphSize.value=it.sdfGlyphSize,rt.uTroikaSDFExponent.value=it.sdfExponent,rt.uTroikaTotalBounds.value.fromArray(lt),rt.uTroikaUseGlyphColors.value=!nt&&!!it.glyphColors;let ct=0,ut=0,ht=0,dt,pt,mt,gt=0,yt=0;if(nt){let{outlineWidth:wt,outlineOffsetX:vt,outlineOffsetY:kt,outlineBlur:St,outlineOpacity:Et}=this;ct=this._parsePercent(wt)||0,ut=Math.max(0,this._parsePercent(St)||0),dt=Et,gt=this._parsePercent(vt)||0,yt=this._parsePercent(kt)||0}else ht=Math.max(0,this._parsePercent(this.strokeWidth)||0),ht&&(mt=this.strokeColor,rt.uTroikaStrokeColor.value.set(mt??defaultStrokeColor),pt=this.strokeOpacity,pt==null&&(pt=1)),dt=this.fillOpacity;rt.uTroikaDistanceOffset.value=ct,rt.uTroikaPositionOffset.value.set(gt,yt),rt.uTroikaBlurRadius.value=ut,rt.uTroikaStrokeWidth.value=ht,rt.uTroikaStrokeOpacity.value=pt,rt.uTroikaFillOpacity.value=dt??1,rt.uTroikaCurveRadius.value=this.curveRadius||0;let bt=this.clipRect;if(bt&&Array.isArray(bt)&&bt.length===4)rt.uTroikaClipRect.value.fromArray(bt);else{const wt=(this.fontSize||.1)*100;rt.uTroikaClipRect.value.set(lt[0]-wt,lt[1]-wt,lt[2]+wt,lt[3]+wt)}this.geometry.applyClipRect(rt.uTroikaClipRect.value)}rt.uTroikaSDFDebug.value=!!this.debugSDF,et.polygonOffset=!!this.depthOffset,et.polygonOffsetFactor=et.polygonOffsetUnits=this.depthOffset||0;const ot=nt?this.outlineColor||0:this.color;if(ot==null)delete et.color;else{const st=et.hasOwnProperty("color")?et.color:et.color=new Color$1;(ot!==st._input||typeof ot=="object")&&st.set(st._input=ot)}let at=this.orientation||defaultOrient;if(at!==et._orientation){let st=rt.uTroikaOrient.value;at=at.replace(/[^-+xyz]/g,"");let lt=at!==defaultOrient&&at.match(/^([-+])([xyz])([-+])([xyz])$/);if(lt){let[,ct,ut,ht,dt]=lt;tempVec3a.set(0,0,0)[ut]=ct==="-"?1:-1,tempVec3b.set(0,0,0)[dt]=ht==="-"?-1:1,tempMat4.lookAt(origin,tempVec3a.cross(tempVec3b),tempVec3b),st.setFromMatrix4(tempMat4)}else st.identity();et._orientation=at}}_parsePercent(et){if(typeof et=="string"){let nt=et.match(/^(-?[\d.]+)%$/),rt=nt?parseFloat(nt[1]):NaN;et=(isNaN(rt)?0:rt/100)*this.fontSize}return et}localPositionToTextCoords(et,nt=new Vector2){nt.copy(et);const rt=this.curveRadius;return rt&&(nt.x=Math.atan2(et.x,Math.abs(rt)-Math.abs(et.z))*Math.abs(rt)),nt}worldPositionToTextCoords(et,nt=new Vector2){return tempVec3a.copy(et),this.localPositionToTextCoords(this.worldToLocal(tempVec3a),nt)}raycast(et,nt){const{textRenderInfo:rt,curveRadius:it}=this;if(rt){const ot=rt.blockBounds,at=it?getCurvedRaycastMesh():getFlatRaycastMesh(),st=at.geometry,{position:lt,uv:ct}=st.attributes;for(let ut=0;ut{this[rt]=et[rt]}),this}clone(){return new this.constructor().copy(this)}};SYNCABLE_PROPS.forEach(tt=>{const et="_private_"+tt;Object.defineProperty(Text$2.prototype,tt,{get(){return this[et]},set(nt){nt!==this[et]&&(this[et]=nt,this._needsSync=!0)}})});function shallowEqualArrays(tt,et,nt=(rt,it)=>rt===it){if(tt===et)return!0;if(!tt||!et)return!1;const rt=tt.length;if(et.length!==rt)return!1;for(let it=0;itit.response=ot).then(()=>{rt.lifespan&&rt.lifespan>0&&setTimeout(()=>{const ot=globalCache.indexOf(it);ot!==-1&&globalCache.splice(ot,1)},rt.lifespan)}).catch(ot=>it.error=ot)};if(globalCache.push(it),!nt)throw it.promise}const suspend=(tt,et,nt)=>query(tt,et,!1,nt),Text$1=reactExports.forwardRef(({anchorX:tt="center",anchorY:et="middle",font:nt,fontSize:rt=1,children:it,characters:ot,onSync:at,...st},lt)=>{const ct=useThree(({invalidate:pt})=>pt),[ut]=reactExports.useState(()=>new Text$2),[ht,dt]=reactExports.useMemo(()=>{const pt=[];let mt="";return reactExports.Children.forEach(it,gt=>{typeof gt=="string"||typeof gt=="number"?mt+=gt:pt.push(gt)}),[pt,mt]},[it]);return suspend(()=>new Promise(pt=>preloadFont({font:nt,characters:ot},pt)),["troika-text",nt,ot]),reactExports.useLayoutEffect(()=>void ut.sync(()=>{ct(),at&&at(ut)})),reactExports.useEffect(()=>()=>ut.dispose(),[ut]),reactExports.createElement("primitive",_extends$r({object:ut,ref:lt,font:nt,text:dt,anchorX:tt,anchorY:et,fontSize:rt},st),ht)}),IsObject=tt=>tt===Object(tt)&&!Array.isArray(tt)&&typeof tt!="function";function useTexture(tt,et){const nt=useThree(it=>it.gl),rt=useLoader(TextureLoader,IsObject(tt)?Object.values(tt):tt);if(reactExports.useLayoutEffect(()=>{et==null||et(rt)},[et]),reactExports.useEffect(()=>{(Array.isArray(rt)?rt:[rt]).forEach(nt.initTexture)},[nt,rt]),IsObject(tt)){const it=Object.keys(tt),ot={};return it.forEach(at=>Object.assign(ot,{[at]:rt[it.indexOf(at)]})),ot}else return rt}useTexture.preload=tt=>useLoader.preload(TextureLoader,tt);useTexture.clear=tt=>useLoader.clear(TextureLoader,tt);/*! * camera-controls * https://github.com/yomotsu/camera-controls * (c) 2017 @yomotsu * Released under the MIT License. - */const MOUSE_BUTTON={LEFT:1,RIGHT:2,MIDDLE:4},ACTION=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768}),DOLLY_DIRECTION={NONE:0,IN:1,OUT:-1};function isPerspectiveCamera(tt){return tt.isPerspectiveCamera}function isOrthographicCamera(tt){return tt.isOrthographicCamera}const PI_2=Math.PI*2,PI_HALF=Math.PI/2,EPSILON$1=1e-5,DEG2RAD=Math.PI/180;function clamp$3(tt,et,nt){return Math.max(et,Math.min(nt,tt))}function approxZero(tt,et=EPSILON$1){return Math.abs(tt)0==pt>ut&&(pt=ut,nt.value=(pt-ut)/ot),pt}function smoothDampVec3(tt,et,nt,rt,it=1/0,ot,at){rt=Math.max(1e-4,rt);const st=2/rt,lt=st*ot,ct=1/(1+lt+.48*lt*lt+.235*lt*lt*lt);let ut=et.x,ht=et.y,dt=et.z,pt=tt.x-ut,mt=tt.y-ht,gt=tt.z-dt;const yt=ut,bt=ht,wt=dt,vt=it*rt,kt=vt*vt,St=pt*pt+mt*mt+gt*gt;if(St>kt){const It=Math.sqrt(St);pt=pt/It*vt,mt=mt/It*vt,gt=gt/It*vt}ut=tt.x-pt,ht=tt.y-mt,dt=tt.z-gt;const Tt=(nt.x+st*pt)*ot,At=(nt.y+st*mt)*ot,Et=(nt.z+st*gt)*ot;nt.x=(nt.x-st*Tt)*ct,nt.y=(nt.y-st*At)*ct,nt.z=(nt.z-st*Et)*ct,at.x=ut+(pt+Tt)*ct,at.y=ht+(mt+At)*ct,at.z=dt+(gt+Et)*ct;const Mt=yt-tt.x,Lt=bt-tt.y,jt=wt-tt.z,Rt=at.x-yt,$t=at.y-bt,xt=at.z-wt;return Mt*Rt+Lt*$t+jt*xt>0&&(at.x=yt,at.y=bt,at.z=wt,nt.x=(at.x-yt)/ot,nt.y=(at.y-bt)/ot,nt.z=(at.z-wt)/ot),at}function extractClientCoordFromEvent(tt,et){et.set(0,0),tt.forEach(nt=>{et.x+=nt.clientX,et.y+=nt.clientY}),et.x/=tt.length,et.y/=tt.length}function notSupportedInOrthographicCamera(tt,et){return isOrthographicCamera(tt)?(console.warn(`${et} is not supported in OrthographicCamera`),!0):!1}class EventDispatcher{constructor(){this._listeners={}}addEventListener(et,nt){const rt=this._listeners;rt[et]===void 0&&(rt[et]=[]),rt[et].indexOf(nt)===-1&&rt[et].push(nt)}hasEventListener(et,nt){const rt=this._listeners;return rt[et]!==void 0&&rt[et].indexOf(nt)!==-1}removeEventListener(et,nt){const it=this._listeners[et];if(it!==void 0){const ot=it.indexOf(nt);ot!==-1&&it.splice(ot,1)}}removeAllEventListeners(et){if(!et){this._listeners={};return}Array.isArray(this._listeners[et])&&(this._listeners[et].length=0)}dispatchEvent(et){const rt=this._listeners[et.type];if(rt!==void 0){et.target=this;const it=rt.slice(0);for(let ot=0,at=it.length;ot{},this._enabled=!0,this._state=ACTION.NONE,this._viewport=null,this._changedDolly=0,this._changedZoom=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=new DOMRect,this._isDragging=!1,this._activePointers=[],this._lockedPointer=null,this._interactiveArea=new DOMRect(0,0,1,1),this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._isUserControllingOffset=!1,this._isUserControllingZoom=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._thetaVelocity={value:0},this._phiVelocity={value:0},this._radiusVelocity={value:0},this._targetVelocity=new THREE.Vector3,this._focalOffsetVelocity=new THREE.Vector3,this._zoomVelocity={value:0},this._truckInternal=(kt,St,Tt)=>{let At,Et;if(isPerspectiveCamera(this._camera)){const Mt=_v3A.copy(this._camera.position).sub(this._target),Lt=this._camera.getEffectiveFOV()*DEG2RAD,jt=Mt.length()*Math.tan(Lt*.5);At=this.truckSpeed*kt*jt/this._elementRect.height,Et=this.truckSpeed*St*jt/this._elementRect.height}else if(isOrthographicCamera(this._camera)){const Mt=this._camera;At=kt*(Mt.right-Mt.left)/Mt.zoom/this._elementRect.width,Et=St*(Mt.top-Mt.bottom)/Mt.zoom/this._elementRect.height}else return;this.verticalDragToForward?(Tt?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(At,0,!0),this.forward(-Et,!0)):Tt?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y+Et,this._focalOffsetEnd.z,!0):this.truck(At,Et,!0)},this._rotateInternal=(kt,St)=>{const Tt=PI_2*this.azimuthRotateSpeed*kt/this._elementRect.height,At=PI_2*this.polarRotateSpeed*St/this._elementRect.height;this.rotate(Tt,At,!0)},this._dollyInternal=(kt,St,Tt)=>{const At=Math.pow(.95,-kt*this.dollySpeed),Et=this._sphericalEnd.radius,Mt=this._sphericalEnd.radius*At,Lt=THREE.MathUtils.clamp(Mt,this.minDistance,this.maxDistance),jt=Lt-Mt;this.infinityDolly&&this.dollyToCursor?this._dollyToNoClamp(Mt,!0):this.infinityDolly&&!this.dollyToCursor?(this.dollyInFixed(jt,!0),this._dollyToNoClamp(Lt,!0)):this._dollyToNoClamp(Lt,!0),this.dollyToCursor&&(this._changedDolly+=(this.infinityDolly?Mt:Lt)-Et,this._dollyControlCoord.set(St,Tt)),this._lastDollyDirection=Math.sign(-kt)},this._zoomInternal=(kt,St,Tt)=>{const At=Math.pow(.95,kt*this.dollySpeed),Et=this._zoom,Mt=this._zoom*At;this.zoomTo(Mt,!0),this.dollyToCursor&&(this._changedZoom+=Mt-Et,this._dollyControlCoord.set(St,Tt))},typeof THREE>"u"&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=et,this._yAxisUpSpace=new THREE.Quaternion().setFromUnitVectors(this._camera.up,_AXIS_Y),this._yAxisUpSpaceInverse=this._yAxisUpSpace.clone().invert(),this._state=ACTION.NONE,this._target=new THREE.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new THREE.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=new THREE.Spherical().setFromVector3(_v3A.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._lastDistance=this._spherical.radius,this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._lastZoom=this._zoom,this._nearPlaneCorners=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3],this._updateNearPlaneCorners(),this._boundary=new THREE.Box3(new THREE.Vector3(-1/0,-1/0,-1/0),new THREE.Vector3(1/0,1/0,1/0)),this._cameraUp0=this._camera.up.clone(),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlCoord=new THREE.Vector2,this.mouseButtons={left:ACTION.ROTATE,middle:ACTION.DOLLY,right:ACTION.TRUCK,wheel:isPerspectiveCamera(this._camera)?ACTION.DOLLY:isOrthographicCamera(this._camera)?ACTION.ZOOM:ACTION.NONE},this.touches={one:ACTION.TOUCH_ROTATE,two:isPerspectiveCamera(this._camera)?ACTION.TOUCH_DOLLY_TRUCK:isOrthographicCamera(this._camera)?ACTION.TOUCH_ZOOM_TRUCK:ACTION.NONE,three:ACTION.TOUCH_TRUCK};const rt=new THREE.Vector2,it=new THREE.Vector2,ot=new THREE.Vector2,at=kt=>{if(!this._enabled||!this._domElement)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Et=kt.clientX/At.width,Mt=kt.clientY/At.height;if(Etthis._interactiveArea.right||Mtthis._interactiveArea.bottom)return}const St=kt.pointerType!=="mouse"?null:(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(St!==null){const At=this._findPointerByMouseButton(St);At&&this._disposePointer(At)}if((kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&this._lockedPointer)return;const Tt={pointerId:kt.pointerId,clientX:kt.clientX,clientY:kt.clientY,deltaX:0,deltaY:0,mouseButton:St};this._activePointers.push(Tt),this._domElement.ownerDocument.removeEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",ut),this._domElement.ownerDocument.addEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",ut),this._isDragging=!0,gt(kt)},st=kt=>{if(!this._enabled||!this._domElement||this._lockedPointer)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Et=kt.clientX/At.width,Mt=kt.clientY/At.height;if(Etthis._interactiveArea.right||Mtthis._interactiveArea.bottom)return}const St=(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(St!==null){const At=this._findPointerByMouseButton(St);At&&this._disposePointer(At)}const Tt={pointerId:1,clientX:kt.clientX,clientY:kt.clientY,deltaX:0,deltaY:0,mouseButton:(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.MIDDLE:(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.RIGHT:null};this._activePointers.push(Tt),this._domElement.ownerDocument.removeEventListener("mousemove",ct),this._domElement.ownerDocument.removeEventListener("mouseup",ht),this._domElement.ownerDocument.addEventListener("mousemove",ct),this._domElement.ownerDocument.addEventListener("mouseup",ht),this._isDragging=!0,gt(kt)},lt=kt=>{kt.cancelable&&kt.preventDefault();const St=kt.pointerId,Tt=this._lockedPointer||this._findPointerById(St);if(Tt){if(Tt.clientX=kt.clientX,Tt.clientY=kt.clientY,Tt.deltaX=kt.movementX,Tt.deltaY=kt.movementY,this._state=0,kt.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else(!this._isDragging&&this._lockedPointer||this._isDragging&&(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),this._isDragging&&(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),this._isDragging&&(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);yt()}},ct=kt=>{const St=this._lockedPointer||this._findPointerById(1);St&&(St.clientX=kt.clientX,St.clientY=kt.clientY,St.deltaX=kt.movementX,St.deltaY=kt.movementY,this._state=0,(this._lockedPointer||(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right),yt())},ut=kt=>{const St=this._findPointerById(kt.pointerId);if(!(St&&St===this._lockedPointer)){if(St&&this._disposePointer(St),kt.pointerType==="touch")switch(this._activePointers.length){case 0:this._state=ACTION.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else this._state=ACTION.NONE;bt()}},ht=()=>{const kt=this._findPointerById(1);kt&&kt===this._lockedPointer||(kt&&this._disposePointer(kt),this._state=ACTION.NONE,bt())};let dt=-1;const pt=kt=>{if(!this._domElement||!this._enabled||this.mouseButtons.wheel===ACTION.NONE)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const Mt=this._domElement.getBoundingClientRect(),Lt=kt.clientX/Mt.width,jt=kt.clientY/Mt.height;if(Ltthis._interactiveArea.right||jtthis._interactiveArea.bottom)return}if(kt.preventDefault(),this.dollyToCursor||this.mouseButtons.wheel===ACTION.ROTATE||this.mouseButtons.wheel===ACTION.TRUCK){const Mt=performance.now();dt-Mt<1e3&&this._getClientRect(this._elementRect),dt=Mt}const St=isMac?-1:-3,Tt=kt.deltaMode===1?kt.deltaY/St:kt.deltaY/(St*10),At=this.dollyToCursor?(kt.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,Et=this.dollyToCursor?(kt.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case ACTION.ROTATE:{this._rotateInternal(kt.deltaX,kt.deltaY),this._isUserControllingRotate=!0;break}case ACTION.TRUCK:{this._truckInternal(kt.deltaX,kt.deltaY,!1),this._isUserControllingTruck=!0;break}case ACTION.OFFSET:{this._truckInternal(kt.deltaX,kt.deltaY,!0),this._isUserControllingOffset=!0;break}case ACTION.DOLLY:{this._dollyInternal(-Tt,At,Et),this._isUserControllingDolly=!0;break}case ACTION.ZOOM:{this._zoomInternal(-Tt,At,Et),this._isUserControllingZoom=!0;break}}this.dispatchEvent({type:"control"})},mt=kt=>{if(!(!this._domElement||!this._enabled)){if(this.mouseButtons.right===y1.ACTION.NONE){const St=kt instanceof PointerEvent?kt.pointerId:(kt instanceof MouseEvent,0),Tt=this._findPointerById(St);Tt&&this._disposePointer(Tt),this._domElement.ownerDocument.removeEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",ut),this._domElement.ownerDocument.removeEventListener("mousemove",ct),this._domElement.ownerDocument.removeEventListener("mouseup",ht);return}kt.preventDefault()}},gt=kt=>{if(!this._enabled)return;if(extractClientCoordFromEvent(this._activePointers,_v2),this._getClientRect(this._elementRect),rt.copy(_v2),it.copy(_v2),this._activePointers.length>=2){const Tt=_v2.x-this._activePointers[1].clientX,At=_v2.y-this._activePointers[1].clientY,Et=Math.sqrt(Tt*Tt+At*At);ot.set(0,Et);const Mt=(this._activePointers[0].clientX+this._activePointers[1].clientX)*.5,Lt=(this._activePointers[0].clientY+this._activePointers[1].clientY)*.5;it.set(Mt,Lt)}if(this._state=0,!kt)this._lockedPointer&&(this._state=this._state|this.mouseButtons.left);else if("pointerType"in kt&&kt.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else!this._lockedPointer&&(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&(this._state=this._state|this.mouseButtons.left),(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._sphericalEnd.theta=this._spherical.theta,this._sphericalEnd.phi=this._spherical.phi,this._thetaVelocity.value=0,this._phiVelocity.value=0),((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._targetEnd.copy(this._target),this._targetVelocity.set(0,0,0)),((this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE)&&(this._sphericalEnd.radius=this._spherical.radius,this._radiusVelocity.value=0),((this._state&ACTION.ZOOM)===ACTION.ZOOM||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._zoomEnd=this._zoom,this._zoomVelocity.value=0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._focalOffsetEnd.copy(this._focalOffset),this._focalOffsetVelocity.set(0,0,0)),this.dispatchEvent({type:"controlstart"})},yt=()=>{if(!this._enabled)return;extractClientCoordFromEvent(this._activePointers,_v2);const St=this._domElement&&document.pointerLockElement===this._domElement?this._lockedPointer||this._activePointers[0]:null,Tt=St?-St.deltaX:it.x-_v2.x,At=St?-St.deltaY:it.y-_v2.y;if(it.copy(_v2),((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._rotateInternal(Tt,At),this._isUserControllingRotate=!0),(this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.ZOOM)===ACTION.ZOOM){const Et=this.dollyToCursor?(rt.x-this._elementRect.x)/this._elementRect.width*2-1:0,Mt=this.dollyToCursor?(rt.y-this._elementRect.y)/this._elementRect.height*-2+1:0,Lt=this.dollyDragInverted?-1:1;(this._state&ACTION.DOLLY)===ACTION.DOLLY?(this._dollyInternal(Lt*At*TOUCH_DOLLY_FACTOR,Et,Mt),this._isUserControllingDolly=!0):(this._zoomInternal(Lt*At*TOUCH_DOLLY_FACTOR,Et,Mt),this._isUserControllingZoom=!0)}if((this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE){const Et=_v2.x-this._activePointers[1].clientX,Mt=_v2.y-this._activePointers[1].clientY,Lt=Math.sqrt(Et*Et+Mt*Mt),jt=ot.y-Lt;ot.set(0,Lt);const Rt=this.dollyToCursor?(it.x-this._elementRect.x)/this._elementRect.width*2-1:0,$t=this.dollyToCursor?(it.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET?(this._dollyInternal(jt*TOUCH_DOLLY_FACTOR,Rt,$t),this._isUserControllingDolly=!0):(this._zoomInternal(jt*TOUCH_DOLLY_FACTOR,Rt,$t),this._isUserControllingZoom=!0)}((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._truckInternal(Tt,At,!1),this._isUserControllingTruck=!0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._truckInternal(Tt,At,!0),this._isUserControllingOffset=!0),this.dispatchEvent({type:"control"})},bt=()=>{extractClientCoordFromEvent(this._activePointers,_v2),it.copy(_v2),(this._activePointers.length===0||this._activePointers.length===1&&this._activePointers[0]===this._lockedPointer)&&(this._isDragging=!1),this._activePointers.length===0&&this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",ct),this._domElement.ownerDocument.removeEventListener("pointerup",ut),this._domElement.ownerDocument.removeEventListener("mouseup",ht),this.dispatchEvent({type:"controlend"}))};this.lockPointer=()=>{!this._enabled||!this._domElement||(this.cancel(),this._lockedPointer={pointerId:-1,clientX:0,clientY:0,deltaX:0,deltaY:0,mouseButton:null},this._activePointers.push(this._lockedPointer),this._domElement.ownerDocument.removeEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",ut),this._domElement.requestPointerLock(),this._domElement.ownerDocument.addEventListener("pointerlockchange",wt),this._domElement.ownerDocument.addEventListener("pointerlockerror",vt),this._domElement.ownerDocument.addEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",ut),gt())},this.unlockPointer=()=>{this._lockedPointer!==null&&(this._disposePointer(this._lockedPointer),this._lockedPointer=null),document.exitPointerLock(),this.cancel(),this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointerlockchange",wt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",vt))};const wt=()=>{this._domElement&&this._domElement.ownerDocument.pointerLockElement===this._domElement||this.unlockPointer()},vt=()=>{this.unlockPointer()};this._addAllEventListeners=kt=>{this._domElement=kt,this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none",this._domElement.addEventListener("pointerdown",at),isPointerEventsNotSupported&&this._domElement.addEventListener("mousedown",st),this._domElement.addEventListener("pointercancel",ut),this._domElement.addEventListener("wheel",pt,{passive:!1}),this._domElement.addEventListener("contextmenu",mt)},this._removeAllEventListeners=()=>{this._domElement&&(this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect="",this._domElement.removeEventListener("pointerdown",at),this._domElement.removeEventListener("mousedown",st),this._domElement.removeEventListener("pointercancel",ut),this._domElement.removeEventListener("wheel",pt,{passive:!1}),this._domElement.removeEventListener("contextmenu",mt),this._domElement.ownerDocument.removeEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",ct),this._domElement.ownerDocument.removeEventListener("pointerup",ut),this._domElement.ownerDocument.removeEventListener("mouseup",ht),this._domElement.ownerDocument.removeEventListener("pointerlockchange",wt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",vt))},this.cancel=()=>{this._state!==ACTION.NONE&&(this._state=ACTION.NONE,this._activePointers.length=0,bt())},nt&&this.connect(nt),this.update(0)}get camera(){return this._camera}set camera(et){this._camera=et,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(et){this._enabled=et,this._domElement&&(et?(this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none"):(this.cancel(),this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect=""))}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(et){this._spherical.radius===et&&this._sphericalEnd.radius===et||(this._spherical.radius=et,this._sphericalEnd.radius=et,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(et){this._spherical.theta===et&&this._sphericalEnd.theta===et||(this._spherical.theta=et,this._sphericalEnd.theta=et,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(et){this._spherical.phi===et&&this._sphericalEnd.phi===et||(this._spherical.phi=et,this._sphericalEnd.phi=et,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(et){this._boundaryEnclosesCamera=et,this._needsUpdate=!0}set interactiveArea(et){this._interactiveArea.width=clamp$3(et.width,0,1),this._interactiveArea.height=clamp$3(et.height,0,1),this._interactiveArea.x=clamp$3(et.x,0,1-this._interactiveArea.width),this._interactiveArea.y=clamp$3(et.x,0,1-this._interactiveArea.height)}addEventListener(et,nt){super.addEventListener(et,nt)}removeEventListener(et,nt){super.removeEventListener(et,nt)}rotate(et,nt,rt=!1){return this.rotateTo(this._sphericalEnd.theta+et,this._sphericalEnd.phi+nt,rt)}rotateAzimuthTo(et,nt=!1){return this.rotateTo(et,this._sphericalEnd.phi,nt)}rotatePolarTo(et,nt=!1){return this.rotateTo(this._sphericalEnd.theta,et,nt)}rotateTo(et,nt,rt=!1){this._isUserControllingRotate=!1;const it=clamp$3(et,this.minAzimuthAngle,this.maxAzimuthAngle),ot=clamp$3(nt,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=it,this._sphericalEnd.phi=ot,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,rt||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);const at=!rt||approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(at)}dolly(et,nt=!1){return this.dollyTo(this._sphericalEnd.radius-et,nt)}dollyTo(et,nt=!1){return this._isUserControllingDolly=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0,this._dollyToNoClamp(clamp$3(et,this.minDistance,this.maxDistance),nt)}_dollyToNoClamp(et,nt=!1){const rt=this._sphericalEnd.radius;if(this.colliderMeshes.length>=1){const at=this._collisionTest(),st=approxEquals(at,this._spherical.radius);if(!(rt>et)&&st)return Promise.resolve();this._sphericalEnd.radius=Math.min(et,at)}else this._sphericalEnd.radius=et;this._needsUpdate=!0,nt||(this._spherical.radius=this._sphericalEnd.radius);const ot=!nt||approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(ot)}dollyInFixed(et,nt=!1){this._targetEnd.add(this._getCameraDirection(_cameraDirection).multiplyScalar(et)),nt||this._target.copy(this._targetEnd);const rt=!nt||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(rt)}zoom(et,nt=!1){return this.zoomTo(this._zoomEnd+et,nt)}zoomTo(et,nt=!1){this._isUserControllingZoom=!1,this._zoomEnd=clamp$3(et,this.minZoom,this.maxZoom),this._needsUpdate=!0,nt||(this._zoom=this._zoomEnd);const rt=!nt||approxEquals(this._zoom,this._zoomEnd,this.restThreshold);return this._changedZoom=0,this._createOnRestPromise(rt)}pan(et,nt,rt=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(et,nt,rt)}truck(et,nt,rt=!1){this._camera.updateMatrix(),_xColumn.setFromMatrixColumn(this._camera.matrix,0),_yColumn.setFromMatrixColumn(this._camera.matrix,1),_xColumn.multiplyScalar(et),_yColumn.multiplyScalar(-nt);const it=_v3A.copy(_xColumn).add(_yColumn),ot=_v3B.copy(this._targetEnd).add(it);return this.moveTo(ot.x,ot.y,ot.z,rt)}forward(et,nt=!1){_v3A.setFromMatrixColumn(this._camera.matrix,0),_v3A.crossVectors(this._camera.up,_v3A),_v3A.multiplyScalar(et);const rt=_v3B.copy(this._targetEnd).add(_v3A);return this.moveTo(rt.x,rt.y,rt.z,nt)}elevate(et,nt=!1){return _v3A.copy(this._camera.up).multiplyScalar(et),this.moveTo(this._targetEnd.x+_v3A.x,this._targetEnd.y+_v3A.y,this._targetEnd.z+_v3A.z,nt)}moveTo(et,nt,rt,it=!1){this._isUserControllingTruck=!1;const ot=_v3A.set(et,nt,rt).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,ot,this.boundaryFriction),this._needsUpdate=!0,it||this._target.copy(this._targetEnd);const at=!it||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(at)}lookInDirectionOf(et,nt,rt,it=!1){const st=_v3A.set(et,nt,rt).sub(this._targetEnd).normalize().multiplyScalar(-this._sphericalEnd.radius);return this.setPosition(st.x,st.y,st.z,it)}fitToBox(et,nt,{cover:rt=!1,paddingLeft:it=0,paddingRight:ot=0,paddingBottom:at=0,paddingTop:st=0}={}){const lt=[],ct=et.isBox3?_box3A.copy(et):_box3A.setFromObject(et);ct.isEmpty()&&(console.warn("camera-controls: fitTo() cannot be used with an empty box. Aborting"),Promise.resolve());const ut=roundToStep(this._sphericalEnd.theta,PI_HALF),ht=roundToStep(this._sphericalEnd.phi,PI_HALF);lt.push(this.rotateTo(ut,ht,nt));const dt=_v3A.setFromSpherical(this._sphericalEnd).normalize(),pt=_quaternionA.setFromUnitVectors(dt,_AXIS_Z),mt=approxEquals(Math.abs(dt.y),1);mt&&pt.multiply(_quaternionB.setFromAxisAngle(_AXIS_Y,ut)),pt.multiply(this._yAxisUpSpaceInverse);const gt=_box3B.makeEmpty();_v3B.copy(ct.min).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.min).setX(ct.max.x).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.min).setY(ct.max.y).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.max).setZ(ct.min.z).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.min).setZ(ct.max.z).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.max).setY(ct.min.y).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.max).setX(ct.min.x).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.max).applyQuaternion(pt),gt.expandByPoint(_v3B),gt.min.x-=it,gt.min.y-=at,gt.max.x+=ot,gt.max.y+=st,pt.setFromUnitVectors(_AXIS_Z,dt),mt&&pt.premultiply(_quaternionB.invert()),pt.premultiply(this._yAxisUpSpace);const yt=gt.getSize(_v3A),bt=gt.getCenter(_v3B).applyQuaternion(pt);if(isPerspectiveCamera(this._camera)){const wt=this.getDistanceToFitBox(yt.x,yt.y,yt.z,rt);lt.push(this.moveTo(bt.x,bt.y,bt.z,nt)),lt.push(this.dollyTo(wt,nt)),lt.push(this.setFocalOffset(0,0,0,nt))}else if(isOrthographicCamera(this._camera)){const wt=this._camera,vt=wt.right-wt.left,kt=wt.top-wt.bottom,St=rt?Math.max(vt/yt.x,kt/yt.y):Math.min(vt/yt.x,kt/yt.y);lt.push(this.moveTo(bt.x,bt.y,bt.z,nt)),lt.push(this.zoomTo(St,nt)),lt.push(this.setFocalOffset(0,0,0,nt))}return Promise.all(lt)}fitToSphere(et,nt){const rt=[],ot=et instanceof THREE.Sphere?_sphere.copy(et):y1.createBoundingSphere(et,_sphere);if(rt.push(this.moveTo(ot.center.x,ot.center.y,ot.center.z,nt)),isPerspectiveCamera(this._camera)){const at=this.getDistanceToFitSphere(ot.radius);rt.push(this.dollyTo(at,nt))}else if(isOrthographicCamera(this._camera)){const at=this._camera.right-this._camera.left,st=this._camera.top-this._camera.bottom,lt=2*ot.radius,ct=Math.min(at/lt,st/lt);rt.push(this.zoomTo(ct,nt))}return rt.push(this.setFocalOffset(0,0,0,nt)),Promise.all(rt)}setLookAt(et,nt,rt,it,ot,at,st=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const lt=_v3B.set(it,ot,at),ct=_v3A.set(et,nt,rt);this._targetEnd.copy(lt),this._sphericalEnd.setFromVector3(ct.sub(lt).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,st||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const ut=!st||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(ut)}lerpLookAt(et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt,pt,mt=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const gt=_v3A.set(it,ot,at),yt=_v3B.set(et,nt,rt);_sphericalA.setFromVector3(yt.sub(gt).applyQuaternion(this._yAxisUpSpace));const bt=_v3C.set(ut,ht,dt),wt=_v3B.set(st,lt,ct);_sphericalB.setFromVector3(wt.sub(bt).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(gt.lerp(bt,pt));const vt=_sphericalB.theta-_sphericalA.theta,kt=_sphericalB.phi-_sphericalA.phi,St=_sphericalB.radius-_sphericalA.radius;this._sphericalEnd.set(_sphericalA.radius+St*pt,_sphericalA.phi+kt*pt,_sphericalA.theta+vt*pt),this.normalizeRotations(),this._needsUpdate=!0,mt||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const Tt=!mt||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(Tt)}setPosition(et,nt,rt,it=!1){return this.setLookAt(et,nt,rt,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,it)}setTarget(et,nt,rt,it=!1){const ot=this.getPosition(_v3A),at=this.setLookAt(ot.x,ot.y,ot.z,et,nt,rt,it);return this._sphericalEnd.phi=clamp$3(this._sphericalEnd.phi,this.minPolarAngle,this.maxPolarAngle),at}setFocalOffset(et,nt,rt,it=!1){this._isUserControllingOffset=!1,this._focalOffsetEnd.set(et,nt,rt),this._needsUpdate=!0,it||this._focalOffset.copy(this._focalOffsetEnd);const ot=!it||approxEquals(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&approxEquals(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&approxEquals(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(ot)}setOrbitPoint(et,nt,rt){this._camera.updateMatrixWorld(),_xColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,0),_yColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,1),_zColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,2);const it=_v3A.set(et,nt,rt),ot=it.distanceTo(this._camera.position),at=it.sub(this._camera.position);_xColumn.multiplyScalar(at.x),_yColumn.multiplyScalar(at.y),_zColumn.multiplyScalar(at.z),_v3A.copy(_xColumn).add(_yColumn).add(_zColumn),_v3A.z=_v3A.z+ot,this.dollyTo(ot,!1),this.setFocalOffset(-_v3A.x,_v3A.y,-_v3A.z,!1),this.moveTo(et,nt,rt,!1)}setBoundary(et){if(!et){this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),this._needsUpdate=!0;return}this._boundary.copy(et),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(et,nt,rt,it){if(et===null){this._viewport=null;return}this._viewport=this._viewport||new THREE.Vector4,typeof et=="number"?this._viewport.set(et,nt,rt,it):this._viewport.copy(et)}getDistanceToFitBox(et,nt,rt,it=!1){if(notSupportedInOrthographicCamera(this._camera,"getDistanceToFitBox"))return this._spherical.radius;const ot=et/nt,at=this._camera.getEffectiveFOV()*DEG2RAD,st=this._camera.aspect;return((it?ot>st:otnt.pointerId===et)}_findPointerByMouseButton(et){return this._activePointers.find(nt=>nt.mouseButton===et)}_disposePointer(et){this._activePointers.splice(this._activePointers.indexOf(et),1)}_encloseToBoundary(et,nt,rt){const it=nt.lengthSq();if(it===0)return et;const ot=_v3B.copy(nt).add(et),st=this._boundary.clampPoint(ot,_v3C).sub(ot),lt=st.lengthSq();if(lt===0)return et.add(nt);if(lt===it)return et;if(rt===0)return et.add(nt).add(st);{const ct=1+rt*lt/nt.dot(st);return et.add(_v3B.copy(nt).multiplyScalar(ct)).add(st.multiplyScalar(1-rt))}}_updateNearPlaneCorners(){if(isPerspectiveCamera(this._camera)){const et=this._camera,nt=et.near,rt=et.getEffectiveFOV()*DEG2RAD,it=Math.tan(rt*.5)*nt,ot=it*et.aspect;this._nearPlaneCorners[0].set(-ot,-it,0),this._nearPlaneCorners[1].set(ot,-it,0),this._nearPlaneCorners[2].set(ot,it,0),this._nearPlaneCorners[3].set(-ot,it,0)}else if(isOrthographicCamera(this._camera)){const et=this._camera,nt=1/et.zoom,rt=et.left*nt,it=et.right*nt,ot=et.top*nt,at=et.bottom*nt;this._nearPlaneCorners[0].set(rt,ot,0),this._nearPlaneCorners[1].set(it,ot,0),this._nearPlaneCorners[2].set(it,at,0),this._nearPlaneCorners[3].set(rt,at,0)}}_collisionTest(){let et=1/0;if(!(this.colliderMeshes.length>=1)||notSupportedInOrthographicCamera(this._camera,"_collisionTest"))return et;const rt=this._getTargetDirection(_cameraDirection);_rotationMatrix.lookAt(_ORIGIN,rt,this._camera.up);for(let it=0;it<4;it++){const ot=_v3B.copy(this._nearPlaneCorners[it]);ot.applyMatrix4(_rotationMatrix);const at=_v3C.addVectors(this._target,ot);_raycaster.set(at,rt),_raycaster.far=this._spherical.radius+1;const st=_raycaster.intersectObjects(this.colliderMeshes);st.length!==0&&st[0].distance{const rt=()=>{this.removeEventListener("rest",rt),nt()};this.addEventListener("rest",rt)}))}_addAllEventListeners(et){}_removeAllEventListeners(){}get dampingFactor(){return console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead."),0}set dampingFactor(et){console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead.")}get draggingDampingFactor(){return console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead."),0}set draggingDampingFactor(et){console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.")}static createBoundingSphere(et,nt=new THREE.Sphere){const rt=nt,it=rt.center;_box3A.makeEmpty(),et.traverseVisible(at=>{at.isMesh&&_box3A.expandByObject(at)}),_box3A.getCenter(it);let ot=0;return et.traverseVisible(at=>{if(!at.isMesh)return;const st=at,lt=st.geometry.clone();lt.applyMatrix4(st.matrixWorld);const ut=lt.attributes.position;for(let ht=0,dt=ut.count;ht{reactExports.useMemo(()=>{CameraControls$1.install({THREE:THREE$1}),extend$2({CameraControlsImpl:CameraControls$1})},[]);const{camera:nt,domElement:rt,makeDefault:it,onStart:ot,onEnd:at,onChange:st,regress:lt,...ct}=tt,ut=useThree(St=>St.camera),ht=useThree(St=>St.gl),dt=useThree(St=>St.invalidate),pt=useThree(St=>St.events),mt=useThree(St=>St.setEvents),gt=useThree(St=>St.set),yt=useThree(St=>St.get),bt=useThree(St=>St.performance),wt=nt||ut,vt=rt||pt.connected||ht.domElement,kt=reactExports.useMemo(()=>new CameraControls$1(wt),[wt]);return useFrame((St,Tt)=>{kt.enabled&&kt.update(Tt)},-1),reactExports.useEffect(()=>(kt.connect(vt),()=>void kt.disconnect()),[vt,kt]),reactExports.useEffect(()=>{const St=Et=>{dt(),lt&&bt.regress(),st&&st(Et)},Tt=Et=>{ot&&ot(Et)},At=Et=>{at&&at(Et)};return kt.addEventListener("update",St),kt.addEventListener("controlstart",Tt),kt.addEventListener("controlend",At),()=>{kt.removeEventListener("update",St),kt.removeEventListener("controlstart",Tt),kt.removeEventListener("controlend",At)}},[kt,ot,at,dt,mt,lt,st]),reactExports.useEffect(()=>{if(it){const St=yt().controls;return gt({controls:kt}),()=>gt({controls:St})}},[it,kt]),reactExports.createElement("primitive",_extends$r({ref:et,object:kt},ct))}),Float=reactExports.forwardRef(({children:tt,speed:et=1,rotationIntensity:nt=1,floatIntensity:rt=1,floatingRange:it=[-.1,.1],...ot},at)=>{const st=reactExports.useRef(null),lt=reactExports.useRef(Math.random()*1e4);return useFrame(ct=>{var ut,ht;const dt=lt.current+ct.clock.getElapsedTime();st.current.rotation.x=Math.cos(dt/4*et)/8*nt,st.current.rotation.y=Math.sin(dt/4*et)/8*nt,st.current.rotation.z=Math.sin(dt/4*et)/20*nt;let pt=Math.sin(dt/4*et)/10;pt=MathUtils.mapLinear(pt,-.1,.1,(ut=it==null?void 0:it[0])!==null&&ut!==void 0?ut:-.1,(ht=it==null?void 0:it[1])!==null&&ht!==void 0?ht:.1),st.current.position.y=pt*rt}),reactExports.createElement("group",ot,reactExports.createElement("group",{ref:mergeRefs([st,at])},tt))});PropTypes.func.isRequired,PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.element,PropTypes.func])).isRequired;const _instanceLocalMatrix=new Matrix4,_instanceWorldMatrix=new Matrix4,_instanceIntersects=[],_mesh=new Mesh;class PositionMesh extends Group{constructor(){super(),this.color=new Color$1("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var et;return(et=this.instance.current)==null?void 0:et.geometry}raycast(et,nt){const rt=this.instance.current;if(!rt||!rt.geometry||!rt.material)return;_mesh.geometry=rt.geometry;const it=rt.matrixWorld,ot=rt.userData.instances.indexOf(this.instanceKey);if(!(ot===-1||ot>rt.count)){rt.getMatrixAt(ot,_instanceLocalMatrix),_instanceWorldMatrix.multiplyMatrices(it,_instanceLocalMatrix),_mesh.matrixWorld=_instanceWorldMatrix,rt.material instanceof Material?_mesh.material.side=rt.material.side:_mesh.material.side=rt.material[0].side,_mesh.raycast(et,_instanceIntersects);for(let at=0,st=_instanceIntersects.length;at{reactExports.useMemo(()=>extend$2({PositionMesh}),[]);const it=reactExports.useRef(),{subscribe:ot,getParent:at}=reactExports.useContext(tt||globalContext$1);return reactExports.useLayoutEffect(()=>ot(it),[]),reactExports.createElement("positionMesh",_extends$r({instance:at(),instanceKey:it,ref:mergeRefs([rt,it])},nt),et)}),Instances=reactExports.forwardRef(({children:tt,range:et,limit:nt=1e3,frames:rt=1/0,...it},ot)=>{const[{context:at,instance:st}]=reactExports.useState(()=>{const yt=reactExports.createContext(null);return{context:yt,instance:reactExports.forwardRef((bt,wt)=>reactExports.createElement(Instance,_extends$r({context:yt},bt,{ref:wt})))}}),lt=reactExports.useRef(null),[ct,ut]=reactExports.useState([]),[[ht,dt]]=reactExports.useState(()=>{const yt=new Float32Array(nt*16);for(let bt=0;bt1))]});reactExports.useEffect(()=>{lt.current.instanceMatrix.needsUpdate=!0});let pt=0,mt=0;useFrame(()=>{if(rt===1/0||pt({getParent:()=>lt,subscribe:yt=>(ut(bt=>[...bt,yt]),()=>ut(bt=>bt.filter(wt=>wt.current!==yt.current)))}),[]);return reactExports.createElement("instancedMesh",_extends$r({userData:{instances:ct},matrixAutoUpdate:!1,ref:mergeRefs([ot,lt]),args:[null,null,0],raycast:()=>null},it),reactExports.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:ht.length/16,array:ht,itemSize:16,usage:DynamicDrawUsage}),reactExports.createElement("instancedBufferAttribute",{attach:"instanceColor",count:dt.length/3,array:dt,itemSize:3,usage:DynamicDrawUsage}),typeof tt=="function"?reactExports.createElement(at.Provider,{value:gt},tt(st)):reactExports.createElement(globalContext$1.Provider,{value:gt},tt))}),context=reactExports.createContext(null),Segments=reactExports.forwardRef((tt,et)=>{reactExports.useMemo(()=>extend$2({SegmentObject}),[]);const{limit:nt=1e3,lineWidth:rt=1,children:it,...ot}=tt,[at,st]=reactExports.useState([]),[lt]=reactExports.useState(()=>new Line2),[ct]=reactExports.useState(()=>new LineMaterial),[ut]=reactExports.useState(()=>new LineSegmentsGeometry),[ht]=reactExports.useState(()=>new Vector2(512,512)),[dt]=reactExports.useState(()=>Array(nt*6).fill(0)),[pt]=reactExports.useState(()=>Array(nt*6).fill(0)),mt=reactExports.useMemo(()=>({subscribe:gt=>(st(yt=>[...yt,gt]),()=>st(yt=>yt.filter(bt=>bt.current!==gt.current)))}),[]);return useFrame(()=>{for(let yt=0;yttt instanceof Vector3?tt:new Vector3(...typeof tt=="number"?[tt,tt,tt]:tt),Segment$1=reactExports.forwardRef(({color:tt,start:et,end:nt},rt)=>{const it=reactExports.useContext(context);if(!it)throw"Segment must used inside Segments component.";const ot=reactExports.useRef(null);return reactExports.useLayoutEffect(()=>it.subscribe(ot),[]),reactExports.createElement("segmentObject",{ref:mergeRefs([ot,rt]),color:tt,start:normPos(et),end:normPos(nt)})});function Preload({all:tt,scene:et,camera:nt}){const rt=useThree(({gl:at})=>at),it=useThree(({camera:at})=>at),ot=useThree(({scene:at})=>at);return reactExports.useLayoutEffect(()=>{const at=[];tt&&(et||ot).traverse(ct=>{ct.visible===!1&&(at.push(ct),ct.visible=!0)}),rt.compile(et||ot,nt||it);const st=new WebGLCubeRenderTarget(128);new CubeCamera(.01,1e5,st).update(rt,et||ot),st.dispose(),at.forEach(ct=>ct.visible=!1)},[]),null}function AdaptiveDpr({pixelated:tt}){const et=useThree(at=>at.gl),nt=useThree(at=>at.internal.active),rt=useThree(at=>at.performance.current),it=useThree(at=>at.viewport.initialDpr),ot=useThree(at=>at.setDpr);return reactExports.useEffect(()=>{const at=et.domElement;return()=>{nt&&ot(it),tt&&at&&(at.style.imageRendering="auto")}},[]),reactExports.useEffect(()=>{ot(rt*it),tt&&et.domElement&&(et.domElement.style.imageRendering=rt===1?"auto":"pixelated")},[rt]),null}function AdaptiveEvents(){const tt=useThree(rt=>rt.get),et=useThree(rt=>rt.setEvents),nt=useThree(rt=>rt.performance.current);return reactExports.useEffect(()=>{const rt=tt().events.enabled;return()=>et({enabled:rt})},[]),reactExports.useEffect(()=>et({enabled:nt===1}),[nt]),null}/** + */const MOUSE_BUTTON={LEFT:1,RIGHT:2,MIDDLE:4},ACTION=Object.freeze({NONE:0,ROTATE:1,TRUCK:2,OFFSET:4,DOLLY:8,ZOOM:16,TOUCH_ROTATE:32,TOUCH_TRUCK:64,TOUCH_OFFSET:128,TOUCH_DOLLY:256,TOUCH_ZOOM:512,TOUCH_DOLLY_TRUCK:1024,TOUCH_DOLLY_OFFSET:2048,TOUCH_DOLLY_ROTATE:4096,TOUCH_ZOOM_TRUCK:8192,TOUCH_ZOOM_OFFSET:16384,TOUCH_ZOOM_ROTATE:32768}),DOLLY_DIRECTION={NONE:0,IN:1,OUT:-1};function isPerspectiveCamera(tt){return tt.isPerspectiveCamera}function isOrthographicCamera(tt){return tt.isOrthographicCamera}const PI_2=Math.PI*2,PI_HALF=Math.PI/2,EPSILON$1=1e-5,DEG2RAD=Math.PI/180;function clamp$3(tt,et,nt){return Math.max(et,Math.min(nt,tt))}function approxZero(tt,et=EPSILON$1){return Math.abs(tt)0==pt>ut&&(pt=ut,nt.value=(pt-ut)/ot),pt}function smoothDampVec3(tt,et,nt,rt,it=1/0,ot,at){rt=Math.max(1e-4,rt);const st=2/rt,lt=st*ot,ct=1/(1+lt+.48*lt*lt+.235*lt*lt*lt);let ut=et.x,ht=et.y,dt=et.z,pt=tt.x-ut,mt=tt.y-ht,gt=tt.z-dt;const yt=ut,bt=ht,wt=dt,vt=it*rt,kt=vt*vt,St=pt*pt+mt*mt+gt*gt;if(St>kt){const It=Math.sqrt(St);pt=pt/It*vt,mt=mt/It*vt,gt=gt/It*vt}ut=tt.x-pt,ht=tt.y-mt,dt=tt.z-gt;const Et=(nt.x+st*pt)*ot,At=(nt.y+st*mt)*ot,Tt=(nt.z+st*gt)*ot;nt.x=(nt.x-st*Et)*ct,nt.y=(nt.y-st*At)*ct,nt.z=(nt.z-st*Tt)*ct,at.x=ut+(pt+Et)*ct,at.y=ht+(mt+At)*ct,at.z=dt+(gt+Tt)*ct;const Mt=yt-tt.x,Lt=bt-tt.y,jt=wt-tt.z,Rt=at.x-yt,$t=at.y-bt,xt=at.z-wt;return Mt*Rt+Lt*$t+jt*xt>0&&(at.x=yt,at.y=bt,at.z=wt,nt.x=(at.x-yt)/ot,nt.y=(at.y-bt)/ot,nt.z=(at.z-wt)/ot),at}function extractClientCoordFromEvent(tt,et){et.set(0,0),tt.forEach(nt=>{et.x+=nt.clientX,et.y+=nt.clientY}),et.x/=tt.length,et.y/=tt.length}function notSupportedInOrthographicCamera(tt,et){return isOrthographicCamera(tt)?(console.warn(`${et} is not supported in OrthographicCamera`),!0):!1}class EventDispatcher{constructor(){this._listeners={}}addEventListener(et,nt){const rt=this._listeners;rt[et]===void 0&&(rt[et]=[]),rt[et].indexOf(nt)===-1&&rt[et].push(nt)}hasEventListener(et,nt){const rt=this._listeners;return rt[et]!==void 0&&rt[et].indexOf(nt)!==-1}removeEventListener(et,nt){const it=this._listeners[et];if(it!==void 0){const ot=it.indexOf(nt);ot!==-1&&it.splice(ot,1)}}removeAllEventListeners(et){if(!et){this._listeners={};return}Array.isArray(this._listeners[et])&&(this._listeners[et].length=0)}dispatchEvent(et){const rt=this._listeners[et.type];if(rt!==void 0){et.target=this;const it=rt.slice(0);for(let ot=0,at=it.length;ot{},this._enabled=!0,this._state=ACTION.NONE,this._viewport=null,this._changedDolly=0,this._changedZoom=0,this._hasRested=!0,this._boundaryEnclosesCamera=!1,this._needsUpdate=!0,this._updatedLastTime=!1,this._elementRect=new DOMRect,this._isDragging=!1,this._activePointers=[],this._lockedPointer=null,this._interactiveArea=new DOMRect(0,0,1,1),this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._isUserControllingOffset=!1,this._isUserControllingZoom=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._thetaVelocity={value:0},this._phiVelocity={value:0},this._radiusVelocity={value:0},this._targetVelocity=new THREE.Vector3,this._focalOffsetVelocity=new THREE.Vector3,this._zoomVelocity={value:0},this._truckInternal=(kt,St,Et)=>{let At,Tt;if(isPerspectiveCamera(this._camera)){const Mt=_v3A.copy(this._camera.position).sub(this._target),Lt=this._camera.getEffectiveFOV()*DEG2RAD,jt=Mt.length()*Math.tan(Lt*.5);At=this.truckSpeed*kt*jt/this._elementRect.height,Tt=this.truckSpeed*St*jt/this._elementRect.height}else if(isOrthographicCamera(this._camera)){const Mt=this._camera;At=kt*(Mt.right-Mt.left)/Mt.zoom/this._elementRect.width,Tt=St*(Mt.top-Mt.bottom)/Mt.zoom/this._elementRect.height}else return;this.verticalDragToForward?(Et?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y,this._focalOffsetEnd.z,!0):this.truck(At,0,!0),this.forward(-Tt,!0)):Et?this.setFocalOffset(this._focalOffsetEnd.x+At,this._focalOffsetEnd.y+Tt,this._focalOffsetEnd.z,!0):this.truck(At,Tt,!0)},this._rotateInternal=(kt,St)=>{const Et=PI_2*this.azimuthRotateSpeed*kt/this._elementRect.height,At=PI_2*this.polarRotateSpeed*St/this._elementRect.height;this.rotate(Et,At,!0)},this._dollyInternal=(kt,St,Et)=>{const At=Math.pow(.95,-kt*this.dollySpeed),Tt=this._sphericalEnd.radius,Mt=this._sphericalEnd.radius*At,Lt=THREE.MathUtils.clamp(Mt,this.minDistance,this.maxDistance),jt=Lt-Mt;this.infinityDolly&&this.dollyToCursor?this._dollyToNoClamp(Mt,!0):this.infinityDolly&&!this.dollyToCursor?(this.dollyInFixed(jt,!0),this._dollyToNoClamp(Lt,!0)):this._dollyToNoClamp(Lt,!0),this.dollyToCursor&&(this._changedDolly+=(this.infinityDolly?Mt:Lt)-Tt,this._dollyControlCoord.set(St,Et)),this._lastDollyDirection=Math.sign(-kt)},this._zoomInternal=(kt,St,Et)=>{const At=Math.pow(.95,kt*this.dollySpeed),Tt=this._zoom,Mt=this._zoom*At;this.zoomTo(Mt,!0),this.dollyToCursor&&(this._changedZoom+=Mt-Tt,this._dollyControlCoord.set(St,Et))},typeof THREE>"u"&&console.error("camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information."),this._camera=et,this._yAxisUpSpace=new THREE.Quaternion().setFromUnitVectors(this._camera.up,_AXIS_Y),this._yAxisUpSpaceInverse=this._yAxisUpSpace.clone().invert(),this._state=ACTION.NONE,this._target=new THREE.Vector3,this._targetEnd=this._target.clone(),this._focalOffset=new THREE.Vector3,this._focalOffsetEnd=this._focalOffset.clone(),this._spherical=new THREE.Spherical().setFromVector3(_v3A.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace)),this._sphericalEnd=this._spherical.clone(),this._lastDistance=this._spherical.radius,this._zoom=this._camera.zoom,this._zoomEnd=this._zoom,this._lastZoom=this._zoom,this._nearPlaneCorners=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3],this._updateNearPlaneCorners(),this._boundary=new THREE.Box3(new THREE.Vector3(-1/0,-1/0,-1/0),new THREE.Vector3(1/0,1/0,1/0)),this._cameraUp0=this._camera.up.clone(),this._target0=this._target.clone(),this._position0=this._camera.position.clone(),this._zoom0=this._zoom,this._focalOffset0=this._focalOffset.clone(),this._dollyControlCoord=new THREE.Vector2,this.mouseButtons={left:ACTION.ROTATE,middle:ACTION.DOLLY,right:ACTION.TRUCK,wheel:isPerspectiveCamera(this._camera)?ACTION.DOLLY:isOrthographicCamera(this._camera)?ACTION.ZOOM:ACTION.NONE},this.touches={one:ACTION.TOUCH_ROTATE,two:isPerspectiveCamera(this._camera)?ACTION.TOUCH_DOLLY_TRUCK:isOrthographicCamera(this._camera)?ACTION.TOUCH_ZOOM_TRUCK:ACTION.NONE,three:ACTION.TOUCH_TRUCK};const rt=new THREE.Vector2,it=new THREE.Vector2,ot=new THREE.Vector2,at=kt=>{if(!this._enabled||!this._domElement)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Tt=kt.clientX/At.width,Mt=kt.clientY/At.height;if(Ttthis._interactiveArea.right||Mtthis._interactiveArea.bottom)return}const St=kt.pointerType!=="mouse"?null:(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(St!==null){const At=this._findPointerByMouseButton(St);At&&this._disposePointer(At)}if((kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&this._lockedPointer)return;const Et={pointerId:kt.pointerId,clientX:kt.clientX,clientY:kt.clientY,deltaX:0,deltaY:0,mouseButton:St};this._activePointers.push(Et),this._domElement.ownerDocument.removeEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",ut),this._domElement.ownerDocument.addEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",ut),this._isDragging=!0,gt(kt)},st=kt=>{if(!this._enabled||!this._domElement||this._lockedPointer)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const At=this._domElement.getBoundingClientRect(),Tt=kt.clientX/At.width,Mt=kt.clientY/At.height;if(Ttthis._interactiveArea.right||Mtthis._interactiveArea.bottom)return}const St=(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE?MOUSE_BUTTON.MIDDLE:(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT?MOUSE_BUTTON.RIGHT:null;if(St!==null){const At=this._findPointerByMouseButton(St);At&&this._disposePointer(At)}const Et={pointerId:1,clientX:kt.clientX,clientY:kt.clientY,deltaX:0,deltaY:0,mouseButton:(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.LEFT:(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.MIDDLE:(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.LEFT?MOUSE_BUTTON.RIGHT:null};this._activePointers.push(Et),this._domElement.ownerDocument.removeEventListener("mousemove",ct),this._domElement.ownerDocument.removeEventListener("mouseup",ht),this._domElement.ownerDocument.addEventListener("mousemove",ct),this._domElement.ownerDocument.addEventListener("mouseup",ht),this._isDragging=!0,gt(kt)},lt=kt=>{kt.cancelable&&kt.preventDefault();const St=kt.pointerId,Et=this._lockedPointer||this._findPointerById(St);if(Et){if(Et.clientX=kt.clientX,Et.clientY=kt.clientY,Et.deltaX=kt.movementX,Et.deltaY=kt.movementY,this._state=0,kt.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else(!this._isDragging&&this._lockedPointer||this._isDragging&&(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),this._isDragging&&(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),this._isDragging&&(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);yt()}},ct=kt=>{const St=this._lockedPointer||this._findPointerById(1);St&&(St.clientX=kt.clientX,St.clientY=kt.clientY,St.deltaX=kt.movementX,St.deltaY=kt.movementY,this._state=0,(this._lockedPointer||(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT)&&(this._state=this._state|this.mouseButtons.left),(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right),yt())},ut=kt=>{const St=this._findPointerById(kt.pointerId);if(!(St&&St===this._lockedPointer)){if(St&&this._disposePointer(St),kt.pointerType==="touch")switch(this._activePointers.length){case 0:this._state=ACTION.NONE;break;case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else this._state=ACTION.NONE;bt()}},ht=()=>{const kt=this._findPointerById(1);kt&&kt===this._lockedPointer||(kt&&this._disposePointer(kt),this._state=ACTION.NONE,bt())};let dt=-1;const pt=kt=>{if(!this._domElement||!this._enabled||this.mouseButtons.wheel===ACTION.NONE)return;if(this._interactiveArea.left!==0||this._interactiveArea.top!==0||this._interactiveArea.width!==1||this._interactiveArea.height!==1){const Mt=this._domElement.getBoundingClientRect(),Lt=kt.clientX/Mt.width,jt=kt.clientY/Mt.height;if(Ltthis._interactiveArea.right||jtthis._interactiveArea.bottom)return}if(kt.preventDefault(),this.dollyToCursor||this.mouseButtons.wheel===ACTION.ROTATE||this.mouseButtons.wheel===ACTION.TRUCK){const Mt=performance.now();dt-Mt<1e3&&this._getClientRect(this._elementRect),dt=Mt}const St=isMac?-1:-3,Et=kt.deltaMode===1?kt.deltaY/St:kt.deltaY/(St*10),At=this.dollyToCursor?(kt.clientX-this._elementRect.x)/this._elementRect.width*2-1:0,Tt=this.dollyToCursor?(kt.clientY-this._elementRect.y)/this._elementRect.height*-2+1:0;switch(this.mouseButtons.wheel){case ACTION.ROTATE:{this._rotateInternal(kt.deltaX,kt.deltaY),this._isUserControllingRotate=!0;break}case ACTION.TRUCK:{this._truckInternal(kt.deltaX,kt.deltaY,!1),this._isUserControllingTruck=!0;break}case ACTION.OFFSET:{this._truckInternal(kt.deltaX,kt.deltaY,!0),this._isUserControllingOffset=!0;break}case ACTION.DOLLY:{this._dollyInternal(-Et,At,Tt),this._isUserControllingDolly=!0;break}case ACTION.ZOOM:{this._zoomInternal(-Et,At,Tt),this._isUserControllingZoom=!0;break}}this.dispatchEvent({type:"control"})},mt=kt=>{if(!(!this._domElement||!this._enabled)){if(this.mouseButtons.right===y1.ACTION.NONE){const St=kt instanceof PointerEvent?kt.pointerId:(kt instanceof MouseEvent,0),Et=this._findPointerById(St);Et&&this._disposePointer(Et),this._domElement.ownerDocument.removeEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",ut),this._domElement.ownerDocument.removeEventListener("mousemove",ct),this._domElement.ownerDocument.removeEventListener("mouseup",ht);return}kt.preventDefault()}},gt=kt=>{if(!this._enabled)return;if(extractClientCoordFromEvent(this._activePointers,_v2),this._getClientRect(this._elementRect),rt.copy(_v2),it.copy(_v2),this._activePointers.length>=2){const Et=_v2.x-this._activePointers[1].clientX,At=_v2.y-this._activePointers[1].clientY,Tt=Math.sqrt(Et*Et+At*At);ot.set(0,Tt);const Mt=(this._activePointers[0].clientX+this._activePointers[1].clientX)*.5,Lt=(this._activePointers[0].clientY+this._activePointers[1].clientY)*.5;it.set(Mt,Lt)}if(this._state=0,!kt)this._lockedPointer&&(this._state=this._state|this.mouseButtons.left);else if("pointerType"in kt&&kt.pointerType==="touch")switch(this._activePointers.length){case 1:this._state=this.touches.one;break;case 2:this._state=this.touches.two;break;case 3:this._state=this.touches.three;break}else!this._lockedPointer&&(kt.buttons&MOUSE_BUTTON.LEFT)===MOUSE_BUTTON.LEFT&&(this._state=this._state|this.mouseButtons.left),(kt.buttons&MOUSE_BUTTON.MIDDLE)===MOUSE_BUTTON.MIDDLE&&(this._state=this._state|this.mouseButtons.middle),(kt.buttons&MOUSE_BUTTON.RIGHT)===MOUSE_BUTTON.RIGHT&&(this._state=this._state|this.mouseButtons.right);((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._sphericalEnd.theta=this._spherical.theta,this._sphericalEnd.phi=this._spherical.phi,this._thetaVelocity.value=0,this._phiVelocity.value=0),((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._targetEnd.copy(this._target),this._targetVelocity.set(0,0,0)),((this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE)&&(this._sphericalEnd.radius=this._spherical.radius,this._radiusVelocity.value=0),((this._state&ACTION.ZOOM)===ACTION.ZOOM||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._zoomEnd=this._zoom,this._zoomVelocity.value=0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._focalOffsetEnd.copy(this._focalOffset),this._focalOffsetVelocity.set(0,0,0)),this.dispatchEvent({type:"controlstart"})},yt=()=>{if(!this._enabled)return;extractClientCoordFromEvent(this._activePointers,_v2);const St=this._domElement&&document.pointerLockElement===this._domElement?this._lockedPointer||this._activePointers[0]:null,Et=St?-St.deltaX:it.x-_v2.x,At=St?-St.deltaY:it.y-_v2.y;if(it.copy(_v2),((this._state&ACTION.ROTATE)===ACTION.ROTATE||(this._state&ACTION.TOUCH_ROTATE)===ACTION.TOUCH_ROTATE||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE)&&(this._rotateInternal(Et,At),this._isUserControllingRotate=!0),(this._state&ACTION.DOLLY)===ACTION.DOLLY||(this._state&ACTION.ZOOM)===ACTION.ZOOM){const Tt=this.dollyToCursor?(rt.x-this._elementRect.x)/this._elementRect.width*2-1:0,Mt=this.dollyToCursor?(rt.y-this._elementRect.y)/this._elementRect.height*-2+1:0,Lt=this.dollyDragInverted?-1:1;(this._state&ACTION.DOLLY)===ACTION.DOLLY?(this._dollyInternal(Lt*At*TOUCH_DOLLY_FACTOR,Tt,Mt),this._isUserControllingDolly=!0):(this._zoomInternal(Lt*At*TOUCH_DOLLY_FACTOR,Tt,Mt),this._isUserControllingZoom=!0)}if((this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_ZOOM)===ACTION.TOUCH_ZOOM||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_ZOOM_ROTATE)===ACTION.TOUCH_ZOOM_ROTATE){const Tt=_v2.x-this._activePointers[1].clientX,Mt=_v2.y-this._activePointers[1].clientY,Lt=Math.sqrt(Tt*Tt+Mt*Mt),jt=ot.y-Lt;ot.set(0,Lt);const Rt=this.dollyToCursor?(it.x-this._elementRect.x)/this._elementRect.width*2-1:0,$t=this.dollyToCursor?(it.y-this._elementRect.y)/this._elementRect.height*-2+1:0;(this._state&ACTION.TOUCH_DOLLY)===ACTION.TOUCH_DOLLY||(this._state&ACTION.TOUCH_DOLLY_ROTATE)===ACTION.TOUCH_DOLLY_ROTATE||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET?(this._dollyInternal(jt*TOUCH_DOLLY_FACTOR,Rt,$t),this._isUserControllingDolly=!0):(this._zoomInternal(jt*TOUCH_DOLLY_FACTOR,Rt,$t),this._isUserControllingZoom=!0)}((this._state&ACTION.TRUCK)===ACTION.TRUCK||(this._state&ACTION.TOUCH_TRUCK)===ACTION.TOUCH_TRUCK||(this._state&ACTION.TOUCH_DOLLY_TRUCK)===ACTION.TOUCH_DOLLY_TRUCK||(this._state&ACTION.TOUCH_ZOOM_TRUCK)===ACTION.TOUCH_ZOOM_TRUCK)&&(this._truckInternal(Et,At,!1),this._isUserControllingTruck=!0),((this._state&ACTION.OFFSET)===ACTION.OFFSET||(this._state&ACTION.TOUCH_OFFSET)===ACTION.TOUCH_OFFSET||(this._state&ACTION.TOUCH_DOLLY_OFFSET)===ACTION.TOUCH_DOLLY_OFFSET||(this._state&ACTION.TOUCH_ZOOM_OFFSET)===ACTION.TOUCH_ZOOM_OFFSET)&&(this._truckInternal(Et,At,!0),this._isUserControllingOffset=!0),this.dispatchEvent({type:"control"})},bt=()=>{extractClientCoordFromEvent(this._activePointers,_v2),it.copy(_v2),(this._activePointers.length===0||this._activePointers.length===1&&this._activePointers[0]===this._lockedPointer)&&(this._isDragging=!1),this._activePointers.length===0&&this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",ct),this._domElement.ownerDocument.removeEventListener("pointerup",ut),this._domElement.ownerDocument.removeEventListener("mouseup",ht),this.dispatchEvent({type:"controlend"}))};this.lockPointer=()=>{!this._enabled||!this._domElement||(this.cancel(),this._lockedPointer={pointerId:-1,clientX:0,clientY:0,deltaX:0,deltaY:0,mouseButton:null},this._activePointers.push(this._lockedPointer),this._domElement.ownerDocument.removeEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.removeEventListener("pointerup",ut),this._domElement.requestPointerLock(),this._domElement.ownerDocument.addEventListener("pointerlockchange",wt),this._domElement.ownerDocument.addEventListener("pointerlockerror",vt),this._domElement.ownerDocument.addEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.addEventListener("pointerup",ut),gt())},this.unlockPointer=()=>{this._lockedPointer!==null&&(this._disposePointer(this._lockedPointer),this._lockedPointer=null),document.exitPointerLock(),this.cancel(),this._domElement&&(this._domElement.ownerDocument.removeEventListener("pointerlockchange",wt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",vt))};const wt=()=>{this._domElement&&this._domElement.ownerDocument.pointerLockElement===this._domElement||this.unlockPointer()},vt=()=>{this.unlockPointer()};this._addAllEventListeners=kt=>{this._domElement=kt,this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none",this._domElement.addEventListener("pointerdown",at),isPointerEventsNotSupported&&this._domElement.addEventListener("mousedown",st),this._domElement.addEventListener("pointercancel",ut),this._domElement.addEventListener("wheel",pt,{passive:!1}),this._domElement.addEventListener("contextmenu",mt)},this._removeAllEventListeners=()=>{this._domElement&&(this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect="",this._domElement.removeEventListener("pointerdown",at),this._domElement.removeEventListener("mousedown",st),this._domElement.removeEventListener("pointercancel",ut),this._domElement.removeEventListener("wheel",pt,{passive:!1}),this._domElement.removeEventListener("contextmenu",mt),this._domElement.ownerDocument.removeEventListener("pointermove",lt,{passive:!1}),this._domElement.ownerDocument.removeEventListener("mousemove",ct),this._domElement.ownerDocument.removeEventListener("pointerup",ut),this._domElement.ownerDocument.removeEventListener("mouseup",ht),this._domElement.ownerDocument.removeEventListener("pointerlockchange",wt),this._domElement.ownerDocument.removeEventListener("pointerlockerror",vt))},this.cancel=()=>{this._state!==ACTION.NONE&&(this._state=ACTION.NONE,this._activePointers.length=0,bt())},nt&&this.connect(nt),this.update(0)}get camera(){return this._camera}set camera(et){this._camera=et,this.updateCameraUp(),this._camera.updateProjectionMatrix(),this._updateNearPlaneCorners(),this._needsUpdate=!0}get enabled(){return this._enabled}set enabled(et){this._enabled=et,this._domElement&&(et?(this._domElement.style.touchAction="none",this._domElement.style.userSelect="none",this._domElement.style.webkitUserSelect="none"):(this.cancel(),this._domElement.style.touchAction="",this._domElement.style.userSelect="",this._domElement.style.webkitUserSelect=""))}get active(){return!this._hasRested}get currentAction(){return this._state}get distance(){return this._spherical.radius}set distance(et){this._spherical.radius===et&&this._sphericalEnd.radius===et||(this._spherical.radius=et,this._sphericalEnd.radius=et,this._needsUpdate=!0)}get azimuthAngle(){return this._spherical.theta}set azimuthAngle(et){this._spherical.theta===et&&this._sphericalEnd.theta===et||(this._spherical.theta=et,this._sphericalEnd.theta=et,this._needsUpdate=!0)}get polarAngle(){return this._spherical.phi}set polarAngle(et){this._spherical.phi===et&&this._sphericalEnd.phi===et||(this._spherical.phi=et,this._sphericalEnd.phi=et,this._needsUpdate=!0)}get boundaryEnclosesCamera(){return this._boundaryEnclosesCamera}set boundaryEnclosesCamera(et){this._boundaryEnclosesCamera=et,this._needsUpdate=!0}set interactiveArea(et){this._interactiveArea.width=clamp$3(et.width,0,1),this._interactiveArea.height=clamp$3(et.height,0,1),this._interactiveArea.x=clamp$3(et.x,0,1-this._interactiveArea.width),this._interactiveArea.y=clamp$3(et.x,0,1-this._interactiveArea.height)}addEventListener(et,nt){super.addEventListener(et,nt)}removeEventListener(et,nt){super.removeEventListener(et,nt)}rotate(et,nt,rt=!1){return this.rotateTo(this._sphericalEnd.theta+et,this._sphericalEnd.phi+nt,rt)}rotateAzimuthTo(et,nt=!1){return this.rotateTo(et,this._sphericalEnd.phi,nt)}rotatePolarTo(et,nt=!1){return this.rotateTo(this._sphericalEnd.theta,et,nt)}rotateTo(et,nt,rt=!1){this._isUserControllingRotate=!1;const it=clamp$3(et,this.minAzimuthAngle,this.maxAzimuthAngle),ot=clamp$3(nt,this.minPolarAngle,this.maxPolarAngle);this._sphericalEnd.theta=it,this._sphericalEnd.phi=ot,this._sphericalEnd.makeSafe(),this._needsUpdate=!0,rt||(this._spherical.theta=this._sphericalEnd.theta,this._spherical.phi=this._sphericalEnd.phi);const at=!rt||approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold);return this._createOnRestPromise(at)}dolly(et,nt=!1){return this.dollyTo(this._sphericalEnd.radius-et,nt)}dollyTo(et,nt=!1){return this._isUserControllingDolly=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0,this._dollyToNoClamp(clamp$3(et,this.minDistance,this.maxDistance),nt)}_dollyToNoClamp(et,nt=!1){const rt=this._sphericalEnd.radius;if(this.colliderMeshes.length>=1){const at=this._collisionTest(),st=approxEquals(at,this._spherical.radius);if(!(rt>et)&&st)return Promise.resolve();this._sphericalEnd.radius=Math.min(et,at)}else this._sphericalEnd.radius=et;this._needsUpdate=!0,nt||(this._spherical.radius=this._sphericalEnd.radius);const ot=!nt||approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(ot)}dollyInFixed(et,nt=!1){this._targetEnd.add(this._getCameraDirection(_cameraDirection).multiplyScalar(et)),nt||this._target.copy(this._targetEnd);const rt=!nt||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(rt)}zoom(et,nt=!1){return this.zoomTo(this._zoomEnd+et,nt)}zoomTo(et,nt=!1){this._isUserControllingZoom=!1,this._zoomEnd=clamp$3(et,this.minZoom,this.maxZoom),this._needsUpdate=!0,nt||(this._zoom=this._zoomEnd);const rt=!nt||approxEquals(this._zoom,this._zoomEnd,this.restThreshold);return this._changedZoom=0,this._createOnRestPromise(rt)}pan(et,nt,rt=!1){return console.warn("`pan` has been renamed to `truck`"),this.truck(et,nt,rt)}truck(et,nt,rt=!1){this._camera.updateMatrix(),_xColumn.setFromMatrixColumn(this._camera.matrix,0),_yColumn.setFromMatrixColumn(this._camera.matrix,1),_xColumn.multiplyScalar(et),_yColumn.multiplyScalar(-nt);const it=_v3A.copy(_xColumn).add(_yColumn),ot=_v3B.copy(this._targetEnd).add(it);return this.moveTo(ot.x,ot.y,ot.z,rt)}forward(et,nt=!1){_v3A.setFromMatrixColumn(this._camera.matrix,0),_v3A.crossVectors(this._camera.up,_v3A),_v3A.multiplyScalar(et);const rt=_v3B.copy(this._targetEnd).add(_v3A);return this.moveTo(rt.x,rt.y,rt.z,nt)}elevate(et,nt=!1){return _v3A.copy(this._camera.up).multiplyScalar(et),this.moveTo(this._targetEnd.x+_v3A.x,this._targetEnd.y+_v3A.y,this._targetEnd.z+_v3A.z,nt)}moveTo(et,nt,rt,it=!1){this._isUserControllingTruck=!1;const ot=_v3A.set(et,nt,rt).sub(this._targetEnd);this._encloseToBoundary(this._targetEnd,ot,this.boundaryFriction),this._needsUpdate=!0,it||this._target.copy(this._targetEnd);const at=!it||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold);return this._createOnRestPromise(at)}lookInDirectionOf(et,nt,rt,it=!1){const st=_v3A.set(et,nt,rt).sub(this._targetEnd).normalize().multiplyScalar(-this._sphericalEnd.radius);return this.setPosition(st.x,st.y,st.z,it)}fitToBox(et,nt,{cover:rt=!1,paddingLeft:it=0,paddingRight:ot=0,paddingBottom:at=0,paddingTop:st=0}={}){const lt=[],ct=et.isBox3?_box3A.copy(et):_box3A.setFromObject(et);ct.isEmpty()&&(console.warn("camera-controls: fitTo() cannot be used with an empty box. Aborting"),Promise.resolve());const ut=roundToStep(this._sphericalEnd.theta,PI_HALF),ht=roundToStep(this._sphericalEnd.phi,PI_HALF);lt.push(this.rotateTo(ut,ht,nt));const dt=_v3A.setFromSpherical(this._sphericalEnd).normalize(),pt=_quaternionA.setFromUnitVectors(dt,_AXIS_Z),mt=approxEquals(Math.abs(dt.y),1);mt&&pt.multiply(_quaternionB.setFromAxisAngle(_AXIS_Y,ut)),pt.multiply(this._yAxisUpSpaceInverse);const gt=_box3B.makeEmpty();_v3B.copy(ct.min).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.min).setX(ct.max.x).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.min).setY(ct.max.y).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.max).setZ(ct.min.z).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.min).setZ(ct.max.z).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.max).setY(ct.min.y).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.max).setX(ct.min.x).applyQuaternion(pt),gt.expandByPoint(_v3B),_v3B.copy(ct.max).applyQuaternion(pt),gt.expandByPoint(_v3B),gt.min.x-=it,gt.min.y-=at,gt.max.x+=ot,gt.max.y+=st,pt.setFromUnitVectors(_AXIS_Z,dt),mt&&pt.premultiply(_quaternionB.invert()),pt.premultiply(this._yAxisUpSpace);const yt=gt.getSize(_v3A),bt=gt.getCenter(_v3B).applyQuaternion(pt);if(isPerspectiveCamera(this._camera)){const wt=this.getDistanceToFitBox(yt.x,yt.y,yt.z,rt);lt.push(this.moveTo(bt.x,bt.y,bt.z,nt)),lt.push(this.dollyTo(wt,nt)),lt.push(this.setFocalOffset(0,0,0,nt))}else if(isOrthographicCamera(this._camera)){const wt=this._camera,vt=wt.right-wt.left,kt=wt.top-wt.bottom,St=rt?Math.max(vt/yt.x,kt/yt.y):Math.min(vt/yt.x,kt/yt.y);lt.push(this.moveTo(bt.x,bt.y,bt.z,nt)),lt.push(this.zoomTo(St,nt)),lt.push(this.setFocalOffset(0,0,0,nt))}return Promise.all(lt)}fitToSphere(et,nt){const rt=[],ot=et instanceof THREE.Sphere?_sphere.copy(et):y1.createBoundingSphere(et,_sphere);if(rt.push(this.moveTo(ot.center.x,ot.center.y,ot.center.z,nt)),isPerspectiveCamera(this._camera)){const at=this.getDistanceToFitSphere(ot.radius);rt.push(this.dollyTo(at,nt))}else if(isOrthographicCamera(this._camera)){const at=this._camera.right-this._camera.left,st=this._camera.top-this._camera.bottom,lt=2*ot.radius,ct=Math.min(at/lt,st/lt);rt.push(this.zoomTo(ct,nt))}return rt.push(this.setFocalOffset(0,0,0,nt)),Promise.all(rt)}setLookAt(et,nt,rt,it,ot,at,st=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const lt=_v3B.set(it,ot,at),ct=_v3A.set(et,nt,rt);this._targetEnd.copy(lt),this._sphericalEnd.setFromVector3(ct.sub(lt).applyQuaternion(this._yAxisUpSpace)),this.normalizeRotations(),this._needsUpdate=!0,st||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const ut=!st||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(ut)}lerpLookAt(et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt,pt,mt=!1){this._isUserControllingRotate=!1,this._isUserControllingDolly=!1,this._isUserControllingTruck=!1,this._lastDollyDirection=DOLLY_DIRECTION.NONE,this._changedDolly=0;const gt=_v3A.set(it,ot,at),yt=_v3B.set(et,nt,rt);_sphericalA.setFromVector3(yt.sub(gt).applyQuaternion(this._yAxisUpSpace));const bt=_v3C.set(ut,ht,dt),wt=_v3B.set(st,lt,ct);_sphericalB.setFromVector3(wt.sub(bt).applyQuaternion(this._yAxisUpSpace)),this._targetEnd.copy(gt.lerp(bt,pt));const vt=_sphericalB.theta-_sphericalA.theta,kt=_sphericalB.phi-_sphericalA.phi,St=_sphericalB.radius-_sphericalA.radius;this._sphericalEnd.set(_sphericalA.radius+St*pt,_sphericalA.phi+kt*pt,_sphericalA.theta+vt*pt),this.normalizeRotations(),this._needsUpdate=!0,mt||(this._target.copy(this._targetEnd),this._spherical.copy(this._sphericalEnd));const Et=!mt||approxEquals(this._target.x,this._targetEnd.x,this.restThreshold)&&approxEquals(this._target.y,this._targetEnd.y,this.restThreshold)&&approxEquals(this._target.z,this._targetEnd.z,this.restThreshold)&&approxEquals(this._spherical.theta,this._sphericalEnd.theta,this.restThreshold)&&approxEquals(this._spherical.phi,this._sphericalEnd.phi,this.restThreshold)&&approxEquals(this._spherical.radius,this._sphericalEnd.radius,this.restThreshold);return this._createOnRestPromise(Et)}setPosition(et,nt,rt,it=!1){return this.setLookAt(et,nt,rt,this._targetEnd.x,this._targetEnd.y,this._targetEnd.z,it)}setTarget(et,nt,rt,it=!1){const ot=this.getPosition(_v3A),at=this.setLookAt(ot.x,ot.y,ot.z,et,nt,rt,it);return this._sphericalEnd.phi=clamp$3(this._sphericalEnd.phi,this.minPolarAngle,this.maxPolarAngle),at}setFocalOffset(et,nt,rt,it=!1){this._isUserControllingOffset=!1,this._focalOffsetEnd.set(et,nt,rt),this._needsUpdate=!0,it||this._focalOffset.copy(this._focalOffsetEnd);const ot=!it||approxEquals(this._focalOffset.x,this._focalOffsetEnd.x,this.restThreshold)&&approxEquals(this._focalOffset.y,this._focalOffsetEnd.y,this.restThreshold)&&approxEquals(this._focalOffset.z,this._focalOffsetEnd.z,this.restThreshold);return this._createOnRestPromise(ot)}setOrbitPoint(et,nt,rt){this._camera.updateMatrixWorld(),_xColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,0),_yColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,1),_zColumn.setFromMatrixColumn(this._camera.matrixWorldInverse,2);const it=_v3A.set(et,nt,rt),ot=it.distanceTo(this._camera.position),at=it.sub(this._camera.position);_xColumn.multiplyScalar(at.x),_yColumn.multiplyScalar(at.y),_zColumn.multiplyScalar(at.z),_v3A.copy(_xColumn).add(_yColumn).add(_zColumn),_v3A.z=_v3A.z+ot,this.dollyTo(ot,!1),this.setFocalOffset(-_v3A.x,_v3A.y,-_v3A.z,!1),this.moveTo(et,nt,rt,!1)}setBoundary(et){if(!et){this._boundary.min.set(-1/0,-1/0,-1/0),this._boundary.max.set(1/0,1/0,1/0),this._needsUpdate=!0;return}this._boundary.copy(et),this._boundary.clampPoint(this._targetEnd,this._targetEnd),this._needsUpdate=!0}setViewport(et,nt,rt,it){if(et===null){this._viewport=null;return}this._viewport=this._viewport||new THREE.Vector4,typeof et=="number"?this._viewport.set(et,nt,rt,it):this._viewport.copy(et)}getDistanceToFitBox(et,nt,rt,it=!1){if(notSupportedInOrthographicCamera(this._camera,"getDistanceToFitBox"))return this._spherical.radius;const ot=et/nt,at=this._camera.getEffectiveFOV()*DEG2RAD,st=this._camera.aspect;return((it?ot>st:otnt.pointerId===et)}_findPointerByMouseButton(et){return this._activePointers.find(nt=>nt.mouseButton===et)}_disposePointer(et){this._activePointers.splice(this._activePointers.indexOf(et),1)}_encloseToBoundary(et,nt,rt){const it=nt.lengthSq();if(it===0)return et;const ot=_v3B.copy(nt).add(et),st=this._boundary.clampPoint(ot,_v3C).sub(ot),lt=st.lengthSq();if(lt===0)return et.add(nt);if(lt===it)return et;if(rt===0)return et.add(nt).add(st);{const ct=1+rt*lt/nt.dot(st);return et.add(_v3B.copy(nt).multiplyScalar(ct)).add(st.multiplyScalar(1-rt))}}_updateNearPlaneCorners(){if(isPerspectiveCamera(this._camera)){const et=this._camera,nt=et.near,rt=et.getEffectiveFOV()*DEG2RAD,it=Math.tan(rt*.5)*nt,ot=it*et.aspect;this._nearPlaneCorners[0].set(-ot,-it,0),this._nearPlaneCorners[1].set(ot,-it,0),this._nearPlaneCorners[2].set(ot,it,0),this._nearPlaneCorners[3].set(-ot,it,0)}else if(isOrthographicCamera(this._camera)){const et=this._camera,nt=1/et.zoom,rt=et.left*nt,it=et.right*nt,ot=et.top*nt,at=et.bottom*nt;this._nearPlaneCorners[0].set(rt,ot,0),this._nearPlaneCorners[1].set(it,ot,0),this._nearPlaneCorners[2].set(it,at,0),this._nearPlaneCorners[3].set(rt,at,0)}}_collisionTest(){let et=1/0;if(!(this.colliderMeshes.length>=1)||notSupportedInOrthographicCamera(this._camera,"_collisionTest"))return et;const rt=this._getTargetDirection(_cameraDirection);_rotationMatrix.lookAt(_ORIGIN,rt,this._camera.up);for(let it=0;it<4;it++){const ot=_v3B.copy(this._nearPlaneCorners[it]);ot.applyMatrix4(_rotationMatrix);const at=_v3C.addVectors(this._target,ot);_raycaster.set(at,rt),_raycaster.far=this._spherical.radius+1;const st=_raycaster.intersectObjects(this.colliderMeshes);st.length!==0&&st[0].distance{const rt=()=>{this.removeEventListener("rest",rt),nt()};this.addEventListener("rest",rt)}))}_addAllEventListeners(et){}_removeAllEventListeners(){}get dampingFactor(){return console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead."),0}set dampingFactor(et){console.warn(".dampingFactor has been deprecated. use smoothTime (in seconds) instead.")}get draggingDampingFactor(){return console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead."),0}set draggingDampingFactor(et){console.warn(".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.")}static createBoundingSphere(et,nt=new THREE.Sphere){const rt=nt,it=rt.center;_box3A.makeEmpty(),et.traverseVisible(at=>{at.isMesh&&_box3A.expandByObject(at)}),_box3A.getCenter(it);let ot=0;return et.traverseVisible(at=>{if(!at.isMesh)return;const st=at,lt=st.geometry.clone();lt.applyMatrix4(st.matrixWorld);const ut=lt.attributes.position;for(let ht=0,dt=ut.count;ht{reactExports.useMemo(()=>{CameraControls$1.install({THREE:THREE$1}),extend$2({CameraControlsImpl:CameraControls$1})},[]);const{camera:nt,domElement:rt,makeDefault:it,onStart:ot,onEnd:at,onChange:st,regress:lt,...ct}=tt,ut=useThree(St=>St.camera),ht=useThree(St=>St.gl),dt=useThree(St=>St.invalidate),pt=useThree(St=>St.events),mt=useThree(St=>St.setEvents),gt=useThree(St=>St.set),yt=useThree(St=>St.get),bt=useThree(St=>St.performance),wt=nt||ut,vt=rt||pt.connected||ht.domElement,kt=reactExports.useMemo(()=>new CameraControls$1(wt),[wt]);return useFrame((St,Et)=>{kt.enabled&&kt.update(Et)},-1),reactExports.useEffect(()=>(kt.connect(vt),()=>void kt.disconnect()),[vt,kt]),reactExports.useEffect(()=>{const St=Tt=>{dt(),lt&&bt.regress(),st&&st(Tt)},Et=Tt=>{ot&&ot(Tt)},At=Tt=>{at&&at(Tt)};return kt.addEventListener("update",St),kt.addEventListener("controlstart",Et),kt.addEventListener("controlend",At),()=>{kt.removeEventListener("update",St),kt.removeEventListener("controlstart",Et),kt.removeEventListener("controlend",At)}},[kt,ot,at,dt,mt,lt,st]),reactExports.useEffect(()=>{if(it){const St=yt().controls;return gt({controls:kt}),()=>gt({controls:St})}},[it,kt]),reactExports.createElement("primitive",_extends$r({ref:et,object:kt},ct))}),Float=reactExports.forwardRef(({children:tt,speed:et=1,rotationIntensity:nt=1,floatIntensity:rt=1,floatingRange:it=[-.1,.1],...ot},at)=>{const st=reactExports.useRef(null),lt=reactExports.useRef(Math.random()*1e4);return useFrame(ct=>{var ut,ht;const dt=lt.current+ct.clock.getElapsedTime();st.current.rotation.x=Math.cos(dt/4*et)/8*nt,st.current.rotation.y=Math.sin(dt/4*et)/8*nt,st.current.rotation.z=Math.sin(dt/4*et)/20*nt;let pt=Math.sin(dt/4*et)/10;pt=MathUtils.mapLinear(pt,-.1,.1,(ut=it==null?void 0:it[0])!==null&&ut!==void 0?ut:-.1,(ht=it==null?void 0:it[1])!==null&&ht!==void 0?ht:.1),st.current.position.y=pt*rt}),reactExports.createElement("group",ot,reactExports.createElement("group",{ref:mergeRefs([st,at])},tt))});PropTypes.func.isRequired,PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.element,PropTypes.func])).isRequired;const _instanceLocalMatrix=new Matrix4,_instanceWorldMatrix=new Matrix4,_instanceIntersects=[],_mesh=new Mesh;class PositionMesh extends Group{constructor(){super(),this.color=new Color$1("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var et;return(et=this.instance.current)==null?void 0:et.geometry}raycast(et,nt){const rt=this.instance.current;if(!rt||!rt.geometry||!rt.material)return;_mesh.geometry=rt.geometry;const it=rt.matrixWorld,ot=rt.userData.instances.indexOf(this.instanceKey);if(!(ot===-1||ot>rt.count)){rt.getMatrixAt(ot,_instanceLocalMatrix),_instanceWorldMatrix.multiplyMatrices(it,_instanceLocalMatrix),_mesh.matrixWorld=_instanceWorldMatrix,rt.material instanceof Material?_mesh.material.side=rt.material.side:_mesh.material.side=rt.material[0].side,_mesh.raycast(et,_instanceIntersects);for(let at=0,st=_instanceIntersects.length;at{reactExports.useMemo(()=>extend$2({PositionMesh}),[]);const it=reactExports.useRef(),{subscribe:ot,getParent:at}=reactExports.useContext(tt||globalContext$1);return reactExports.useLayoutEffect(()=>ot(it),[]),reactExports.createElement("positionMesh",_extends$r({instance:at(),instanceKey:it,ref:mergeRefs([rt,it])},nt),et)}),Instances=reactExports.forwardRef(({children:tt,range:et,limit:nt=1e3,frames:rt=1/0,...it},ot)=>{const[{context:at,instance:st}]=reactExports.useState(()=>{const yt=reactExports.createContext(null);return{context:yt,instance:reactExports.forwardRef((bt,wt)=>reactExports.createElement(Instance,_extends$r({context:yt},bt,{ref:wt})))}}),lt=reactExports.useRef(null),[ct,ut]=reactExports.useState([]),[[ht,dt]]=reactExports.useState(()=>{const yt=new Float32Array(nt*16);for(let bt=0;bt1))]});reactExports.useEffect(()=>{lt.current.instanceMatrix.needsUpdate=!0});let pt=0,mt=0;useFrame(()=>{if(rt===1/0||pt({getParent:()=>lt,subscribe:yt=>(ut(bt=>[...bt,yt]),()=>ut(bt=>bt.filter(wt=>wt.current!==yt.current)))}),[]);return reactExports.createElement("instancedMesh",_extends$r({userData:{instances:ct},matrixAutoUpdate:!1,ref:mergeRefs([ot,lt]),args:[null,null,0],raycast:()=>null},it),reactExports.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:ht.length/16,array:ht,itemSize:16,usage:DynamicDrawUsage}),reactExports.createElement("instancedBufferAttribute",{attach:"instanceColor",count:dt.length/3,array:dt,itemSize:3,usage:DynamicDrawUsage}),typeof tt=="function"?reactExports.createElement(at.Provider,{value:gt},tt(st)):reactExports.createElement(globalContext$1.Provider,{value:gt},tt))}),context=reactExports.createContext(null),Segments=reactExports.forwardRef((tt,et)=>{reactExports.useMemo(()=>extend$2({SegmentObject}),[]);const{limit:nt=1e3,lineWidth:rt=1,children:it,...ot}=tt,[at,st]=reactExports.useState([]),[lt]=reactExports.useState(()=>new Line2),[ct]=reactExports.useState(()=>new LineMaterial),[ut]=reactExports.useState(()=>new LineSegmentsGeometry),[ht]=reactExports.useState(()=>new Vector2(512,512)),[dt]=reactExports.useState(()=>Array(nt*6).fill(0)),[pt]=reactExports.useState(()=>Array(nt*6).fill(0)),mt=reactExports.useMemo(()=>({subscribe:gt=>(st(yt=>[...yt,gt]),()=>st(yt=>yt.filter(bt=>bt.current!==gt.current)))}),[]);return useFrame(()=>{for(let yt=0;yttt instanceof Vector3?tt:new Vector3(...typeof tt=="number"?[tt,tt,tt]:tt),Segment$1=reactExports.forwardRef(({color:tt,start:et,end:nt},rt)=>{const it=reactExports.useContext(context);if(!it)throw"Segment must used inside Segments component.";const ot=reactExports.useRef(null);return reactExports.useLayoutEffect(()=>it.subscribe(ot),[]),reactExports.createElement("segmentObject",{ref:mergeRefs([ot,rt]),color:tt,start:normPos(et),end:normPos(nt)})});function Preload({all:tt,scene:et,camera:nt}){const rt=useThree(({gl:at})=>at),it=useThree(({camera:at})=>at),ot=useThree(({scene:at})=>at);return reactExports.useLayoutEffect(()=>{const at=[];tt&&(et||ot).traverse(ct=>{ct.visible===!1&&(at.push(ct),ct.visible=!0)}),rt.compile(et||ot,nt||it);const st=new WebGLCubeRenderTarget(128);new CubeCamera(.01,1e5,st).update(rt,et||ot),st.dispose(),at.forEach(ct=>ct.visible=!1)},[]),null}function AdaptiveDpr({pixelated:tt}){const et=useThree(at=>at.gl),nt=useThree(at=>at.internal.active),rt=useThree(at=>at.performance.current),it=useThree(at=>at.viewport.initialDpr),ot=useThree(at=>at.setDpr);return reactExports.useEffect(()=>{const at=et.domElement;return()=>{nt&&ot(it),tt&&at&&(at.style.imageRendering="auto")}},[]),reactExports.useEffect(()=>{ot(rt*it),tt&&et.domElement&&(et.domElement.style.imageRendering=rt===1?"auto":"pixelated")},[rt]),null}function AdaptiveEvents(){const tt=useThree(rt=>rt.get),et=useThree(rt=>rt.setEvents),nt=useThree(rt=>rt.performance.current);return reactExports.useEffect(()=>{const rt=tt().events.enabled;return()=>et({enabled:rt})},[]),reactExports.useEffect(()=>et({enabled:nt===1}),[nt]),null}/** * postprocessing v6.32.2 build Sat Jul 01 2023 * https://github.com/pmndrs/postprocessing * Copyright 2015-2023 Raoul van Rüschen @@ -5326,7 +5326,7 @@ outputColor=vec4(1.0-ao*(1.0-color),inputColor.a); #else outputColor=vec4(vec3(1.0-ao),inputColor.a); #endif -}`,NOISE_TEXTURE_SIZE=64,SSAOEffect=class extends Effect$1{constructor(tt,et,{blendFunction:nt=BlendFunction.MULTIPLY,samples:rt=9,rings:it=7,normalDepthBuffer:ot=null,depthAwareUpsampling:at=!0,worldDistanceThreshold:st,worldDistanceFalloff:lt,worldProximityThreshold:ct,worldProximityFalloff:ut,distanceThreshold:ht=.97,distanceFalloff:dt=.03,rangeThreshold:pt=5e-4,rangeFalloff:mt=.001,minRadiusScale:gt=.1,luminanceInfluence:yt=.7,radius:bt=.1825,intensity:wt=1,bias:vt=.025,fade:kt=.01,color:St=null,resolutionScale:Tt=1,width:At=Resolution.AUTO_SIZE,height:Et=Resolution.AUTO_SIZE,resolutionX:Mt=At,resolutionY:Lt=Et}={}){super("SSAOEffect",ssao_default3,{blendFunction:nt,attributes:EffectAttribute.DEPTH,defines:new Map([["THRESHOLD","0.997"]]),uniforms:new Map([["aoBuffer",new Uniform(null)],["normalDepthBuffer",new Uniform(ot)],["luminanceInfluence",new Uniform(yt)],["color",new Uniform(null)],["intensity",new Uniform(wt)],["scale",new Uniform(0)]])}),this.renderTarget=new WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="AO.Target",this.uniforms.get("aoBuffer").value=this.renderTarget.texture;const jt=this.resolution=new Resolution(this,Mt,Lt,Tt);jt.addEventListener("change",xt=>this.setSize(jt.baseWidth,jt.baseHeight)),this.camera=tt,this.depthDownsamplingPass=new DepthDownsamplingPass({normalBuffer:et,resolutionScale:Tt}),this.depthDownsamplingPass.enabled=ot===null,this.ssaoPass=new ShaderPass(new SSAOMaterial(tt));const Rt=new NoiseTexture(NOISE_TEXTURE_SIZE,NOISE_TEXTURE_SIZE,RGBAFormat);Rt.wrapS=Rt.wrapT=RepeatWrapping;const $t=this.ssaoMaterial;$t.normalBuffer=et,$t.noiseTexture=Rt,$t.minRadiusScale=gt,$t.samples=rt,$t.radius=bt,$t.rings=it,$t.fade=kt,$t.bias=vt,$t.distanceThreshold=ht,$t.distanceFalloff=dt,$t.proximityThreshold=pt,$t.proximityFalloff=mt,st!==void 0&&($t.worldDistanceThreshold=st),lt!==void 0&&($t.worldDistanceFalloff=lt),ct!==void 0&&($t.worldProximityThreshold=ct),ut!==void 0&&($t.worldProximityFalloff=ut),ot!==null&&(this.ssaoMaterial.normalDepthBuffer=ot,this.defines.set("NORMAL_DEPTH","1")),this.depthAwareUpsampling=at,this.color=St}set mainCamera(tt){this.camera=tt,this.ssaoMaterial.copyCameraSettings(tt)}get normalBuffer(){return this.ssaoMaterial.normalBuffer}set normalBuffer(tt){this.ssaoMaterial.normalBuffer=tt,this.depthDownsamplingPass.fullscreenMaterial.normalBuffer=tt}getResolution(){return this.resolution}get ssaoMaterial(){return this.ssaoPass.fullscreenMaterial}getSSAOMaterial(){return this.ssaoMaterial}get samples(){return this.ssaoMaterial.samples}set samples(tt){this.ssaoMaterial.samples=tt}get rings(){return this.ssaoMaterial.rings}set rings(tt){this.ssaoMaterial.rings=tt}get radius(){return this.ssaoMaterial.radius}set radius(tt){this.ssaoMaterial.radius=tt}get depthAwareUpsampling(){return this.defines.has("DEPTH_AWARE_UPSAMPLING")}set depthAwareUpsampling(tt){this.depthAwareUpsampling!==tt&&(tt?this.defines.set("DEPTH_AWARE_UPSAMPLING","1"):this.defines.delete("DEPTH_AWARE_UPSAMPLING"),this.setChanged())}isDepthAwareUpsamplingEnabled(){return this.depthAwareUpsampling}setDepthAwareUpsamplingEnabled(tt){this.depthAwareUpsampling=tt}get distanceScaling(){return!0}set distanceScaling(tt){}get color(){return this.uniforms.get("color").value}set color(tt){const et=this.uniforms,nt=this.defines;tt!==null?nt.has("COLORIZE")?et.get("color").value.set(tt):(nt.set("COLORIZE","1"),et.get("color").value=new Color$1(tt),this.setChanged()):nt.has("COLORIZE")&&(nt.delete("COLORIZE"),et.get("color").value=null,this.setChanged())}get luminanceInfluence(){return this.uniforms.get("luminanceInfluence").value}set luminanceInfluence(tt){this.uniforms.get("luminanceInfluence").value=tt}get intensity(){return this.uniforms.get("intensity").value}set intensity(tt){this.uniforms.get("intensity").value=tt}getColor(){return this.color}setColor(tt){this.color=tt}setDistanceCutoff(tt,et){this.ssaoMaterial.distanceThreshold=tt,this.ssaoMaterial.distanceFalloff=et}setProximityCutoff(tt,et){this.ssaoMaterial.proximityThreshold=tt,this.ssaoMaterial.proximityFalloff=et}setDepthTexture(tt,et=BasicDepthPacking){this.depthDownsamplingPass.setDepthTexture(tt,et),this.ssaoMaterial.depthBuffer=tt,this.ssaoMaterial.depthPacking=et}update(tt,et,nt){const rt=this.renderTarget;this.depthDownsamplingPass.enabled&&this.depthDownsamplingPass.render(tt),this.ssaoPass.render(tt,null,rt)}setSize(tt,et){const nt=this.resolution;nt.setBaseSize(tt,et);const rt=nt.width,it=nt.height;this.ssaoMaterial.copyCameraSettings(this.camera),this.ssaoMaterial.setSize(rt,it),this.renderTarget.setSize(rt,it),this.depthDownsamplingPass.resolution.scale=nt.scale,this.depthDownsamplingPass.setSize(tt,et)}initialize(tt,et,nt){try{let rt=this.uniforms.get("normalDepthBuffer").value;rt===null&&(this.depthDownsamplingPass.initialize(tt,et,nt),rt=this.depthDownsamplingPass.texture,this.uniforms.get("normalDepthBuffer").value=rt,this.ssaoMaterial.normalDepthBuffer=rt,this.defines.set("NORMAL_DEPTH","1"))}catch{this.depthDownsamplingPass.enabled=!1}}},texture_default=`#ifdef TEXTURE_PRECISION_HIGH +}`,NOISE_TEXTURE_SIZE=64,SSAOEffect=class extends Effect$1{constructor(tt,et,{blendFunction:nt=BlendFunction.MULTIPLY,samples:rt=9,rings:it=7,normalDepthBuffer:ot=null,depthAwareUpsampling:at=!0,worldDistanceThreshold:st,worldDistanceFalloff:lt,worldProximityThreshold:ct,worldProximityFalloff:ut,distanceThreshold:ht=.97,distanceFalloff:dt=.03,rangeThreshold:pt=5e-4,rangeFalloff:mt=.001,minRadiusScale:gt=.1,luminanceInfluence:yt=.7,radius:bt=.1825,intensity:wt=1,bias:vt=.025,fade:kt=.01,color:St=null,resolutionScale:Et=1,width:At=Resolution.AUTO_SIZE,height:Tt=Resolution.AUTO_SIZE,resolutionX:Mt=At,resolutionY:Lt=Tt}={}){super("SSAOEffect",ssao_default3,{blendFunction:nt,attributes:EffectAttribute.DEPTH,defines:new Map([["THRESHOLD","0.997"]]),uniforms:new Map([["aoBuffer",new Uniform(null)],["normalDepthBuffer",new Uniform(ot)],["luminanceInfluence",new Uniform(yt)],["color",new Uniform(null)],["intensity",new Uniform(wt)],["scale",new Uniform(0)]])}),this.renderTarget=new WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="AO.Target",this.uniforms.get("aoBuffer").value=this.renderTarget.texture;const jt=this.resolution=new Resolution(this,Mt,Lt,Et);jt.addEventListener("change",xt=>this.setSize(jt.baseWidth,jt.baseHeight)),this.camera=tt,this.depthDownsamplingPass=new DepthDownsamplingPass({normalBuffer:et,resolutionScale:Et}),this.depthDownsamplingPass.enabled=ot===null,this.ssaoPass=new ShaderPass(new SSAOMaterial(tt));const Rt=new NoiseTexture(NOISE_TEXTURE_SIZE,NOISE_TEXTURE_SIZE,RGBAFormat);Rt.wrapS=Rt.wrapT=RepeatWrapping;const $t=this.ssaoMaterial;$t.normalBuffer=et,$t.noiseTexture=Rt,$t.minRadiusScale=gt,$t.samples=rt,$t.radius=bt,$t.rings=it,$t.fade=kt,$t.bias=vt,$t.distanceThreshold=ht,$t.distanceFalloff=dt,$t.proximityThreshold=pt,$t.proximityFalloff=mt,st!==void 0&&($t.worldDistanceThreshold=st),lt!==void 0&&($t.worldDistanceFalloff=lt),ct!==void 0&&($t.worldProximityThreshold=ct),ut!==void 0&&($t.worldProximityFalloff=ut),ot!==null&&(this.ssaoMaterial.normalDepthBuffer=ot,this.defines.set("NORMAL_DEPTH","1")),this.depthAwareUpsampling=at,this.color=St}set mainCamera(tt){this.camera=tt,this.ssaoMaterial.copyCameraSettings(tt)}get normalBuffer(){return this.ssaoMaterial.normalBuffer}set normalBuffer(tt){this.ssaoMaterial.normalBuffer=tt,this.depthDownsamplingPass.fullscreenMaterial.normalBuffer=tt}getResolution(){return this.resolution}get ssaoMaterial(){return this.ssaoPass.fullscreenMaterial}getSSAOMaterial(){return this.ssaoMaterial}get samples(){return this.ssaoMaterial.samples}set samples(tt){this.ssaoMaterial.samples=tt}get rings(){return this.ssaoMaterial.rings}set rings(tt){this.ssaoMaterial.rings=tt}get radius(){return this.ssaoMaterial.radius}set radius(tt){this.ssaoMaterial.radius=tt}get depthAwareUpsampling(){return this.defines.has("DEPTH_AWARE_UPSAMPLING")}set depthAwareUpsampling(tt){this.depthAwareUpsampling!==tt&&(tt?this.defines.set("DEPTH_AWARE_UPSAMPLING","1"):this.defines.delete("DEPTH_AWARE_UPSAMPLING"),this.setChanged())}isDepthAwareUpsamplingEnabled(){return this.depthAwareUpsampling}setDepthAwareUpsamplingEnabled(tt){this.depthAwareUpsampling=tt}get distanceScaling(){return!0}set distanceScaling(tt){}get color(){return this.uniforms.get("color").value}set color(tt){const et=this.uniforms,nt=this.defines;tt!==null?nt.has("COLORIZE")?et.get("color").value.set(tt):(nt.set("COLORIZE","1"),et.get("color").value=new Color$1(tt),this.setChanged()):nt.has("COLORIZE")&&(nt.delete("COLORIZE"),et.get("color").value=null,this.setChanged())}get luminanceInfluence(){return this.uniforms.get("luminanceInfluence").value}set luminanceInfluence(tt){this.uniforms.get("luminanceInfluence").value=tt}get intensity(){return this.uniforms.get("intensity").value}set intensity(tt){this.uniforms.get("intensity").value=tt}getColor(){return this.color}setColor(tt){this.color=tt}setDistanceCutoff(tt,et){this.ssaoMaterial.distanceThreshold=tt,this.ssaoMaterial.distanceFalloff=et}setProximityCutoff(tt,et){this.ssaoMaterial.proximityThreshold=tt,this.ssaoMaterial.proximityFalloff=et}setDepthTexture(tt,et=BasicDepthPacking){this.depthDownsamplingPass.setDepthTexture(tt,et),this.ssaoMaterial.depthBuffer=tt,this.ssaoMaterial.depthPacking=et}update(tt,et,nt){const rt=this.renderTarget;this.depthDownsamplingPass.enabled&&this.depthDownsamplingPass.render(tt),this.ssaoPass.render(tt,null,rt)}setSize(tt,et){const nt=this.resolution;nt.setBaseSize(tt,et);const rt=nt.width,it=nt.height;this.ssaoMaterial.copyCameraSettings(this.camera),this.ssaoMaterial.setSize(rt,it),this.renderTarget.setSize(rt,it),this.depthDownsamplingPass.resolution.scale=nt.scale,this.depthDownsamplingPass.setSize(tt,et)}initialize(tt,et,nt){try{let rt=this.uniforms.get("normalDepthBuffer").value;rt===null&&(this.depthDownsamplingPass.initialize(tt,et,nt),rt=this.depthDownsamplingPass.texture,this.uniforms.get("normalDepthBuffer").value=rt,this.ssaoMaterial.normalDepthBuffer=rt,this.defines.set("NORMAL_DEPTH","1"))}catch{this.depthDownsamplingPass.enabled=!1}}},texture_default=`#ifdef TEXTURE_PRECISION_HIGH uniform mediump sampler2D map; #else uniform lowp sampler2D map; @@ -5355,7 +5355,7 @@ float d=distance(uv,center);color*=smoothstep(0.8,offset*0.799,d*(darkness+offse vec2 coord=(uv-center)*vec2(offset);color=mix(color,vec3(1.0-darkness),dot(coord,coord)); #endif outputColor=vec4(color,inputColor.a);}`,VignetteEffect=class extends Effect$1{constructor({blendFunction:tt,technique:et=VignetteTechnique.DEFAULT,eskil:nt=!1,offset:rt=.5,darkness:it=.5}={}){super("VignetteEffect",vignette_default,{blendFunction:tt,defines:new Map([["VIGNETTE_TECHNIQUE",et.toFixed(0)]]),uniforms:new Map([["offset",new Uniform(rt)],["darkness",new Uniform(it)]])})}get technique(){return Number(this.defines.get("VIGNETTE_TECHNIQUE"))}set technique(tt){this.technique!==tt&&(this.defines.set("VIGNETTE_TECHNIQUE",tt.toFixed(0)),this.setChanged())}get eskil(){return this.technique===VignetteTechnique.ESKIL}set eskil(tt){this.technique=tt?VignetteTechnique.ESKIL:VignetteTechnique.DEFAULT}getTechnique(){return this.technique}setTechnique(tt){this.technique=tt}get offset(){return this.uniforms.get("offset").value}set offset(tt){this.uniforms.get("offset").value=tt}getOffset(){return this.offset}setOffset(tt){this.offset=tt}get darkness(){return this.uniforms.get("darkness").value}set darkness(tt){this.uniforms.get("darkness").value=tt}getDarkness(){return this.darkness}setDarkness(tt){this.darkness=tt}};function _defineProperty$t(tt,et,nt){return et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _arrayLikeToArray$n(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);ntMath.PI&&(nt-=Math.PI*2),nt}function _classCallCheck$d(tt,et){if(!(tt instanceof et))throw new TypeError("Cannot call a class as a function")}var Grad=function tt(et,nt,rt){var it=this;_classCallCheck$d(this,tt),_defineProperty$t(this,"dot2",function(ot,at){return it.x*ot+it.y*at}),_defineProperty$t(this,"dot3",function(ot,at,st){return it.x*ot+it.y*at+it.z*st}),this.x=et,this.y=nt,this.z=rt},grad3=[new Grad(1,1,0),new Grad(-1,1,0),new Grad(1,-1,0),new Grad(-1,-1,0),new Grad(1,0,1),new Grad(-1,0,1),new Grad(1,0,-1),new Grad(-1,0,-1),new Grad(0,1,1),new Grad(0,-1,1),new Grad(0,1,-1),new Grad(0,-1,-1)],p$1=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],perm=new Array(512),gradP=new Array(512),seed$1=function(et){et>0&&et<1&&(et*=65536),et=Math.floor(et),et<256&&(et|=et<<8);for(var nt=0;nt<256;nt++){var rt;nt&1?rt=p$1[nt]^et&255:rt=p$1[nt]^et>>8&255,perm[nt]=perm[nt+256]=rt,gradP[nt]=gradP[nt+256]=grad3[rt%12]}};seed$1(0);function normalizeSeed(tt){if(typeof tt=="number")tt=Math.abs(tt);else if(typeof tt=="string"){var et=tt;tt=0;for(var nt=0;nt1&&arguments[1]!==void 0?arguments[1]:.01,rt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,it=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1/(2*Math.PI);return rt/Math.atan(1/nt)*Math.atan(Math.sin(2*Math.PI*et*it)/nt)},exp$1=function(et){return 1/(1+et+.48*et*et+.235*et*et*et)};function damp(tt,et,nt){var rt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:.25,it=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.01,ot=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1/0,at=arguments.length>6&&arguments[6]!==void 0?arguments[6]:exp$1,st=arguments.length>7&&arguments[7]!==void 0?arguments[7]:.001,lt="velocity_"+et;if(tt.__damp===void 0&&(tt.__damp={}),tt.__damp[lt]===void 0&&(tt.__damp[lt]=0),Math.abs(tt[et]-nt)<=st)return tt[et]=nt,!1;rt=Math.max(1e-4,rt);var ct=2/rt,ut=at(ct*it),ht=tt[et]-nt,dt=nt,pt=ot*rt;ht=Math.min(Math.max(ht,-pt),pt),nt=tt[et]-ht;var mt=(tt.__damp[lt]+ct*ht)*it;tt.__damp[lt]=(tt.__damp[lt]-ct*mt)*ut;var gt=nt+(ht+mt)*ut;return dt-tt[et]>0==gt>dt&&(gt=dt,tt.__damp[lt]=(gt-dt)/it),tt[et]=gt,!0}function dampAngle(tt,et,nt,rt,it,ot,at,st){return damp(tt,et,tt[et]+deltaAngle(tt[et],nt),rt,it,ot,at,st)}var v2d=new Vector2,a2,b2;function damp2(tt,et,nt,rt,it,ot,at){return typeof et=="number"?v2d.setScalar(et):Array.isArray(et)?v2d.set(et[0],et[1]):v2d.copy(et),a2=damp(tt,"x",v2d.x,nt,rt,it,ot,at),b2=damp(tt,"y",v2d.y,nt,rt,it,ot,at),a2||b2}var v3d=new Vector3,a3,b3,c3;function damp3(tt,et,nt,rt,it,ot,at){return typeof et=="number"?v3d.setScalar(et):Array.isArray(et)?v3d.set(et[0],et[1],et[2]):v3d.copy(et),a3=damp(tt,"x",v3d.x,nt,rt,it,ot,at),b3=damp(tt,"y",v3d.y,nt,rt,it,ot,at),c3=damp(tt,"z",v3d.z,nt,rt,it,ot,at),a3||b3||c3}var v4d=new Vector4,a4,b4,c4,d4;function damp4(tt,et,nt,rt,it,ot,at){return typeof et=="number"?v4d.setScalar(et):Array.isArray(et)?v4d.set(et[0],et[1],et[2],et[3]):v4d.copy(et),a4=damp(tt,"x",v4d.x,nt,rt,it,ot,at),b4=damp(tt,"y",v4d.y,nt,rt,it,ot,at),c4=damp(tt,"z",v4d.z,nt,rt,it,ot,at),d4=damp(tt,"w",v4d.w,nt,rt,it,ot,at),a4||b4||c4||d4}var rot=new Euler,aE,bE,cE;function dampE(tt,et,nt,rt,it,ot,at){return Array.isArray(et)?rot.set(et[0],et[1],et[2],et[3]):rot.copy(et),aE=dampAngle(tt,"x",rot.x,nt,rt,it,ot,at),bE=dampAngle(tt,"y",rot.y,nt,rt,it,ot,at),cE=dampAngle(tt,"z",rot.z,nt,rt,it,ot,at),aE||bE||cE}var col=new Color$1,aC,bC,cC;function dampC(tt,et,nt,rt,it,ot,at){return et instanceof Color$1?col.copy(et):Array.isArray(et)?col.setRGB(et[0],et[1],et[2]):col.set(et),aC=damp(tt,"r",col.r,nt,rt,it,ot,at),bC=damp(tt,"g",col.g,nt,rt,it,ot,at),cC=damp(tt,"b",col.b,nt,rt,it,ot,at),aC||bC||cC}var qt=new Quaternion,v4result=new Vector4,v4velocity=new Vector4,v4error=new Vector4,aQ,bQ,cQ,dQ;function dampQ(tt,et,nt,rt,it,ot,at){var st=tt;Array.isArray(et)?qt.set(et[0],et[1],et[2],et[3]):qt.copy(et);var lt=tt.dot(qt)>0?1:-1;return qt.x*=lt,qt.y*=lt,qt.z*=lt,qt.w*=lt,aQ=damp(tt,"x",qt.x,nt,rt,it,ot,at),bQ=damp(tt,"y",qt.y,nt,rt,it,ot,at),cQ=damp(tt,"z",qt.z,nt,rt,it,ot,at),dQ=damp(tt,"w",qt.w,nt,rt,it,ot,at),v4result.set(tt.x,tt.y,tt.z,tt.w).normalize(),v4velocity.set(st.__damp.velocity_x,st.__damp.velocity_y,st.__damp.velocity_z,st.__damp.velocity_w),v4error.copy(v4result).multiplyScalar(v4velocity.dot(v4result)/v4result.dot(v4result)),st.__damp.velocity_x-=v4error.x,st.__damp.velocity_y-=v4error.y,st.__damp.velocity_z-=v4error.z,st.__damp.velocity_w-=v4error.w,tt.set(v4result.x,v4result.y,v4result.z,v4result.w),aQ||bQ||cQ||dQ}var spherical=new Spherical,aS,bS,cS;function dampS(tt,et,nt,rt,it,ot,at){return Array.isArray(et)?spherical.set(et[0],et[1],et[2]):spherical.copy(et),aS=damp(tt,"radius",spherical.radius,nt,rt,it,ot,at),bS=dampAngle(tt,"phi",spherical.phi,nt,rt,it,ot,at),cS=dampAngle(tt,"theta",spherical.theta,nt,rt,it,ot,at),aS||bS||cS}var mat=new Matrix4,mPos=new Vector3,mRot=new Quaternion,mSca=new Vector3,aM,bM,cM;function dampM(tt,et,nt,rt,it,ot,at){var st=tt;return st.__damp===void 0&&(st.__damp={position:new Vector3,rotation:new Quaternion,scale:new Vector3},tt.decompose(st.__damp.position,st.__damp.rotation,st.__damp.scale)),Array.isArray(et)?mat.set.apply(mat,_toConsumableArray$d(et)):mat.copy(et),mat.decompose(mPos,mRot,mSca),aM=damp3(st.__damp.position,mPos,nt,rt,it,ot,at),bM=dampQ(st.__damp.rotation,mRot,nt,rt,it,ot,at),cM=damp3(st.__damp.scale,mSca,nt,rt,it,ot,at),tt.compose(st.__damp.position,st.__damp.rotation,st.__damp.scale),aM||bM||cM}var easing=Object.freeze({__proto__:null,rsqw,exp:exp$1,damp,dampAngle,damp2,damp3,damp4,dampE,dampC,dampQ,dampS,dampM});const selectionContext=reactExports.createContext(null);function Selection({children:tt,enabled:et=!0}){const[nt,rt]=reactExports.useState([]),it=reactExports.useMemo(()=>({selected:nt,select:rt,enabled:et}),[nt,rt,et]);return jsxRuntimeExports.jsx(selectionContext.Provider,{value:it,children:tt})}function Select({enabled:tt=!1,children:et,...nt}){const rt=reactExports.useRef(null),it=reactExports.useContext(selectionContext);return reactExports.useEffect(()=>{if(it&&tt){let ot=!1;const at=[];if(rt.current.traverse(st=>{st.type==="Mesh"&&at.push(st),it.selected.indexOf(st)===-1&&(ot=!0)}),ot)return it.select(st=>[...st,...at]),()=>{it.select(st=>st.filter(lt=>!at.includes(lt)))}}},[tt,et,it]),jsxRuntimeExports.jsx("group",{ref:rt,...nt,children:et})}const EffectComposerContext=reactExports.createContext(null),EffectComposer=React$1.memo(reactExports.forwardRef(({children:tt,camera:et,scene:nt,resolutionScale:rt,enabled:it=!0,renderPriority:ot=1,autoClear:at=!0,depthBuffer:st,disableNormalPass:lt,stencilBuffer:ct,multisampling:ut=8,frameBufferType:ht=HalfFloatType},dt)=>{const{gl:pt,scene:mt,camera:gt,size:yt}=useThree(),bt=nt||mt,wt=et||gt,[vt,kt,St]=reactExports.useMemo(()=>{const Mt=isWebGL2Available$1(),Lt=new EffectComposer$1(pt,{depthBuffer:st,stencilBuffer:ct,multisampling:ut>0&&Mt?ut:0,frameBufferType:ht});Lt.addPass(new RenderPass(bt,wt));let jt=null,Rt=null;return lt||(Rt=new NormalPass(bt,wt),Rt.enabled=!1,Lt.addPass(Rt),rt!==void 0&&Mt&&(jt=new DepthDownsamplingPass({normalBuffer:Rt.texture,resolutionScale:rt}),jt.enabled=!1,Lt.addPass(jt))),[Lt,Rt,jt]},[wt,pt,st,ct,ut,ht,bt,lt,rt]);reactExports.useEffect(()=>vt==null?void 0:vt.setSize(yt.width,yt.height),[vt,yt]),useFrame((Mt,Lt)=>{if(it){const jt=pt.autoClear;pt.autoClear=at,ct&&!at&&pt.clearStencil(),vt.render(Lt),pt.autoClear=jt}},it?ot:0);const Tt=reactExports.useRef(null),At=useInstanceHandle(Tt);reactExports.useLayoutEffect(()=>{const Mt=[];if(Tt.current&&At.current&&vt){const Lt=At.current.objects;for(let jt=0;jt{for(const Lt of Mt)vt==null||vt.removePass(Lt);kt&&(kt.enabled=!1),St&&(St.enabled=!1)}},[vt,tt,wt,kt,St,At]);const Et=reactExports.useMemo(()=>({composer:vt,normalPass:kt,downSamplingPass:St,resolutionScale:rt,camera:wt,scene:bt}),[vt,kt,St,rt,wt,bt]);return reactExports.useImperativeHandle(dt,()=>vt,[vt]),jsxRuntimeExports.jsx(EffectComposerContext.Provider,{value:Et,children:jsxRuntimeExports.jsx("group",{ref:Tt,children:tt})})})),resolveRef=tt=>typeof tt=="object"&&tt!=null&&"current"in tt?tt.current:tt;let i$1=0;const components=new WeakMap,wrapEffect=(tt,et)=>React$1.forwardRef(function({blendFunction:rt=et==null?void 0:et.blendFunction,opacity:it=et==null?void 0:et.opacity,...ot},at){let st=components.get(tt);if(!st){const ut=`@react-three/postprocessing/${tt.name}-${i$1++}`;extend$2({[ut]:tt}),components.set(tt,st=ut)}const lt=useThree(ut=>ut.camera),ct=React$1.useMemo(()=>{var ut,ht;return[...(ut=et==null?void 0:et.args)!=null?ut:[],...(ht=ot.args)!=null?ht:[{...et,...ot}]]},[JSON.stringify(ot)]);return jsxRuntimeExports.jsx(st,{camera:lt,"blendMode-blendFunction":rt,"blendMode-opacity-value":it,...ot,ref:at,args:ct})}),useVector2=(tt,et)=>{const nt=tt[et];return React$1.useMemo(()=>typeof nt=="number"?new Vector2(nt,nt):nt?new Vector2(...nt):new Vector2,[nt])},DepthOfField=reactExports.forwardRef(function({target:et,depthTexture:nt,...rt},it){const ot=useThree(lt=>lt.invalidate),{camera:at}=reactExports.useContext(EffectComposerContext),st=reactExports.useMemo(()=>{const lt=new DepthOfFieldEffect(at,rt),ct=lt.maskPass.getFullscreenMaterial();return ct.maskFunction=MaskFunction.MULTIPLY_RGB_SET_ALPHA,lt},[at,rt]);return reactExports.useLayoutEffect(()=>{if(et&&typeof et!="number"){const lt=et instanceof Vector3?new Vector3().set(et.x,et.y,et.z):new Vector3().set(et[0],et[1],et[2]);st.target=lt}nt&&st.setDepthTexture(nt.texture,nt.packing),ot()},[et,nt,st]),jsxRuntimeExports.jsx("primitive",{ref:it,object:st,dispose:null})});reactExports.forwardRef(({target:tt=void 0,mouse:et=!1,debug:nt=void 0,manual:rt=!1,smoothTime:it=.25,...ot},at)=>{const st=reactExports.useRef(null),lt=reactExports.useRef(null),ct=reactExports.useRef(null),ut=useThree(({scene:St})=>St),ht=useThree(({pointer:St})=>St),{composer:dt,camera:pt}=reactExports.useContext(EffectComposerContext),[mt]=reactExports.useState(()=>new DepthPickingPass),[gt]=reactExports.useState(()=>new CopyPass);reactExports.useEffect(()=>(dt.addPass(mt),dt.addPass(gt),()=>{dt.removePass(mt),dt.removePass(gt)}),[dt,mt,gt]),reactExports.useEffect(()=>()=>{mt.dispose(),gt.dispose()},[mt,gt]);const[yt]=reactExports.useState(()=>new Vector3(0,0,0)),[bt]=reactExports.useState(()=>new Vector3(0,0,0)),wt=reactExports.useCallback(async(St,Tt)=>(bt.x=St,bt.y=Tt,bt.z=await mt.readDepth(bt),bt.z=bt.z*2-1,1-bt.z>1e-7?bt.unproject(pt):!1),[bt,mt,pt]),vt=reactExports.useCallback(async(St,Tt=!0)=>{var At;if(tt)yt.set(...tt);else{const{x:Et,y:Mt}=et?ht:{x:0,y:0},Lt=await wt(Et,Mt);Lt&&yt.copy(Lt)}Tt&&((At=st.current)!=null&&At.target)&&(it>0&&St>0?easing.damp3(st.current.target,yt,it,St):st.current.target.copy(yt))},[tt,yt,et,wt,it,ht]);useFrame(async(St,Tt)=>{var At;rt||vt(Tt),lt.current&<.current.position.copy(yt),ct.current&&((At=st.current)!=null&&At.target)&&ct.current.position.copy(st.current.target)});const kt=reactExports.useMemo(()=>({dofRef:st,hitpoint:yt,update:vt}),[yt,vt]);return reactExports.useImperativeHandle(at,()=>kt,[kt]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[nt?createPortal(jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("mesh",{ref:lt,children:[jsxRuntimeExports.jsx("sphereGeometry",{args:[nt,16,16]}),jsxRuntimeExports.jsx("meshBasicMaterial",{color:"#00ff00",opacity:1,transparent:!0,depthWrite:!1})]}),jsxRuntimeExports.jsxs("mesh",{ref:ct,children:[jsxRuntimeExports.jsx("sphereGeometry",{args:[nt/2,16,16]}),jsxRuntimeExports.jsx("meshBasicMaterial",{color:"#00ff00",opacity:.5,transparent:!0,depthWrite:!1})]})]}),ut):null,jsxRuntimeExports.jsx(DepthOfField,{ref:st,...ot,target:yt})]})});const LensFlareShader={fragmentShader:` +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _toConsumableArray$d(tt){return _arrayWithoutHoles$d(tt)||_iterableToArray$e(tt)||_unsupportedIterableToArray$n(tt)||_nonIterableSpread$d()}new Vector2;new Vector2;function clamp$2(tt,et,nt){return Math.max(et,Math.min(nt,tt))}function repeat(tt,et){return clamp$2(tt-Math.floor(tt/et)*et,0,et)}function deltaAngle(tt,et){var nt=repeat(et-tt,Math.PI*2);return nt>Math.PI&&(nt-=Math.PI*2),nt}function _classCallCheck$d(tt,et){if(!(tt instanceof et))throw new TypeError("Cannot call a class as a function")}var Grad=function tt(et,nt,rt){var it=this;_classCallCheck$d(this,tt),_defineProperty$t(this,"dot2",function(ot,at){return it.x*ot+it.y*at}),_defineProperty$t(this,"dot3",function(ot,at,st){return it.x*ot+it.y*at+it.z*st}),this.x=et,this.y=nt,this.z=rt},grad3=[new Grad(1,1,0),new Grad(-1,1,0),new Grad(1,-1,0),new Grad(-1,-1,0),new Grad(1,0,1),new Grad(-1,0,1),new Grad(1,0,-1),new Grad(-1,0,-1),new Grad(0,1,1),new Grad(0,-1,1),new Grad(0,1,-1),new Grad(0,-1,-1)],p$1=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],perm=new Array(512),gradP=new Array(512),seed$1=function(et){et>0&&et<1&&(et*=65536),et=Math.floor(et),et<256&&(et|=et<<8);for(var nt=0;nt<256;nt++){var rt;nt&1?rt=p$1[nt]^et&255:rt=p$1[nt]^et>>8&255,perm[nt]=perm[nt+256]=rt,gradP[nt]=gradP[nt+256]=grad3[rt%12]}};seed$1(0);function normalizeSeed(tt){if(typeof tt=="number")tt=Math.abs(tt);else if(typeof tt=="string"){var et=tt;tt=0;for(var nt=0;nt1&&arguments[1]!==void 0?arguments[1]:.01,rt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,it=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1/(2*Math.PI);return rt/Math.atan(1/nt)*Math.atan(Math.sin(2*Math.PI*et*it)/nt)},exp$1=function(et){return 1/(1+et+.48*et*et+.235*et*et*et)};function damp(tt,et,nt){var rt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:.25,it=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.01,ot=arguments.length>5&&arguments[5]!==void 0?arguments[5]:1/0,at=arguments.length>6&&arguments[6]!==void 0?arguments[6]:exp$1,st=arguments.length>7&&arguments[7]!==void 0?arguments[7]:.001,lt="velocity_"+et;if(tt.__damp===void 0&&(tt.__damp={}),tt.__damp[lt]===void 0&&(tt.__damp[lt]=0),Math.abs(tt[et]-nt)<=st)return tt[et]=nt,!1;rt=Math.max(1e-4,rt);var ct=2/rt,ut=at(ct*it),ht=tt[et]-nt,dt=nt,pt=ot*rt;ht=Math.min(Math.max(ht,-pt),pt),nt=tt[et]-ht;var mt=(tt.__damp[lt]+ct*ht)*it;tt.__damp[lt]=(tt.__damp[lt]-ct*mt)*ut;var gt=nt+(ht+mt)*ut;return dt-tt[et]>0==gt>dt&&(gt=dt,tt.__damp[lt]=(gt-dt)/it),tt[et]=gt,!0}function dampAngle(tt,et,nt,rt,it,ot,at,st){return damp(tt,et,tt[et]+deltaAngle(tt[et],nt),rt,it,ot,at,st)}var v2d=new Vector2,a2,b2;function damp2(tt,et,nt,rt,it,ot,at){return typeof et=="number"?v2d.setScalar(et):Array.isArray(et)?v2d.set(et[0],et[1]):v2d.copy(et),a2=damp(tt,"x",v2d.x,nt,rt,it,ot,at),b2=damp(tt,"y",v2d.y,nt,rt,it,ot,at),a2||b2}var v3d=new Vector3,a3,b3,c3;function damp3(tt,et,nt,rt,it,ot,at){return typeof et=="number"?v3d.setScalar(et):Array.isArray(et)?v3d.set(et[0],et[1],et[2]):v3d.copy(et),a3=damp(tt,"x",v3d.x,nt,rt,it,ot,at),b3=damp(tt,"y",v3d.y,nt,rt,it,ot,at),c3=damp(tt,"z",v3d.z,nt,rt,it,ot,at),a3||b3||c3}var v4d=new Vector4,a4,b4,c4,d4;function damp4(tt,et,nt,rt,it,ot,at){return typeof et=="number"?v4d.setScalar(et):Array.isArray(et)?v4d.set(et[0],et[1],et[2],et[3]):v4d.copy(et),a4=damp(tt,"x",v4d.x,nt,rt,it,ot,at),b4=damp(tt,"y",v4d.y,nt,rt,it,ot,at),c4=damp(tt,"z",v4d.z,nt,rt,it,ot,at),d4=damp(tt,"w",v4d.w,nt,rt,it,ot,at),a4||b4||c4||d4}var rot=new Euler,aE,bE,cE;function dampE(tt,et,nt,rt,it,ot,at){return Array.isArray(et)?rot.set(et[0],et[1],et[2],et[3]):rot.copy(et),aE=dampAngle(tt,"x",rot.x,nt,rt,it,ot,at),bE=dampAngle(tt,"y",rot.y,nt,rt,it,ot,at),cE=dampAngle(tt,"z",rot.z,nt,rt,it,ot,at),aE||bE||cE}var col=new Color$1,aC,bC,cC;function dampC(tt,et,nt,rt,it,ot,at){return et instanceof Color$1?col.copy(et):Array.isArray(et)?col.setRGB(et[0],et[1],et[2]):col.set(et),aC=damp(tt,"r",col.r,nt,rt,it,ot,at),bC=damp(tt,"g",col.g,nt,rt,it,ot,at),cC=damp(tt,"b",col.b,nt,rt,it,ot,at),aC||bC||cC}var qt=new Quaternion,v4result=new Vector4,v4velocity=new Vector4,v4error=new Vector4,aQ,bQ,cQ,dQ;function dampQ(tt,et,nt,rt,it,ot,at){var st=tt;Array.isArray(et)?qt.set(et[0],et[1],et[2],et[3]):qt.copy(et);var lt=tt.dot(qt)>0?1:-1;return qt.x*=lt,qt.y*=lt,qt.z*=lt,qt.w*=lt,aQ=damp(tt,"x",qt.x,nt,rt,it,ot,at),bQ=damp(tt,"y",qt.y,nt,rt,it,ot,at),cQ=damp(tt,"z",qt.z,nt,rt,it,ot,at),dQ=damp(tt,"w",qt.w,nt,rt,it,ot,at),v4result.set(tt.x,tt.y,tt.z,tt.w).normalize(),v4velocity.set(st.__damp.velocity_x,st.__damp.velocity_y,st.__damp.velocity_z,st.__damp.velocity_w),v4error.copy(v4result).multiplyScalar(v4velocity.dot(v4result)/v4result.dot(v4result)),st.__damp.velocity_x-=v4error.x,st.__damp.velocity_y-=v4error.y,st.__damp.velocity_z-=v4error.z,st.__damp.velocity_w-=v4error.w,tt.set(v4result.x,v4result.y,v4result.z,v4result.w),aQ||bQ||cQ||dQ}var spherical=new Spherical,aS,bS,cS;function dampS(tt,et,nt,rt,it,ot,at){return Array.isArray(et)?spherical.set(et[0],et[1],et[2]):spherical.copy(et),aS=damp(tt,"radius",spherical.radius,nt,rt,it,ot,at),bS=dampAngle(tt,"phi",spherical.phi,nt,rt,it,ot,at),cS=dampAngle(tt,"theta",spherical.theta,nt,rt,it,ot,at),aS||bS||cS}var mat=new Matrix4,mPos=new Vector3,mRot=new Quaternion,mSca=new Vector3,aM,bM,cM;function dampM(tt,et,nt,rt,it,ot,at){var st=tt;return st.__damp===void 0&&(st.__damp={position:new Vector3,rotation:new Quaternion,scale:new Vector3},tt.decompose(st.__damp.position,st.__damp.rotation,st.__damp.scale)),Array.isArray(et)?mat.set.apply(mat,_toConsumableArray$d(et)):mat.copy(et),mat.decompose(mPos,mRot,mSca),aM=damp3(st.__damp.position,mPos,nt,rt,it,ot,at),bM=dampQ(st.__damp.rotation,mRot,nt,rt,it,ot,at),cM=damp3(st.__damp.scale,mSca,nt,rt,it,ot,at),tt.compose(st.__damp.position,st.__damp.rotation,st.__damp.scale),aM||bM||cM}var easing=Object.freeze({__proto__:null,rsqw,exp:exp$1,damp,dampAngle,damp2,damp3,damp4,dampE,dampC,dampQ,dampS,dampM});const selectionContext=reactExports.createContext(null);function Selection({children:tt,enabled:et=!0}){const[nt,rt]=reactExports.useState([]),it=reactExports.useMemo(()=>({selected:nt,select:rt,enabled:et}),[nt,rt,et]);return jsxRuntimeExports.jsx(selectionContext.Provider,{value:it,children:tt})}function Select({enabled:tt=!1,children:et,...nt}){const rt=reactExports.useRef(null),it=reactExports.useContext(selectionContext);return reactExports.useEffect(()=>{if(it&&tt){let ot=!1;const at=[];if(rt.current.traverse(st=>{st.type==="Mesh"&&at.push(st),it.selected.indexOf(st)===-1&&(ot=!0)}),ot)return it.select(st=>[...st,...at]),()=>{it.select(st=>st.filter(lt=>!at.includes(lt)))}}},[tt,et,it]),jsxRuntimeExports.jsx("group",{ref:rt,...nt,children:et})}const EffectComposerContext=reactExports.createContext(null),EffectComposer=React$1.memo(reactExports.forwardRef(({children:tt,camera:et,scene:nt,resolutionScale:rt,enabled:it=!0,renderPriority:ot=1,autoClear:at=!0,depthBuffer:st,disableNormalPass:lt,stencilBuffer:ct,multisampling:ut=8,frameBufferType:ht=HalfFloatType},dt)=>{const{gl:pt,scene:mt,camera:gt,size:yt}=useThree(),bt=nt||mt,wt=et||gt,[vt,kt,St]=reactExports.useMemo(()=>{const Mt=isWebGL2Available$1(),Lt=new EffectComposer$1(pt,{depthBuffer:st,stencilBuffer:ct,multisampling:ut>0&&Mt?ut:0,frameBufferType:ht});Lt.addPass(new RenderPass(bt,wt));let jt=null,Rt=null;return lt||(Rt=new NormalPass(bt,wt),Rt.enabled=!1,Lt.addPass(Rt),rt!==void 0&&Mt&&(jt=new DepthDownsamplingPass({normalBuffer:Rt.texture,resolutionScale:rt}),jt.enabled=!1,Lt.addPass(jt))),[Lt,Rt,jt]},[wt,pt,st,ct,ut,ht,bt,lt,rt]);reactExports.useEffect(()=>vt==null?void 0:vt.setSize(yt.width,yt.height),[vt,yt]),useFrame((Mt,Lt)=>{if(it){const jt=pt.autoClear;pt.autoClear=at,ct&&!at&&pt.clearStencil(),vt.render(Lt),pt.autoClear=jt}},it?ot:0);const Et=reactExports.useRef(null),At=useInstanceHandle(Et);reactExports.useLayoutEffect(()=>{const Mt=[];if(Et.current&&At.current&&vt){const Lt=At.current.objects;for(let jt=0;jt{for(const Lt of Mt)vt==null||vt.removePass(Lt);kt&&(kt.enabled=!1),St&&(St.enabled=!1)}},[vt,tt,wt,kt,St,At]);const Tt=reactExports.useMemo(()=>({composer:vt,normalPass:kt,downSamplingPass:St,resolutionScale:rt,camera:wt,scene:bt}),[vt,kt,St,rt,wt,bt]);return reactExports.useImperativeHandle(dt,()=>vt,[vt]),jsxRuntimeExports.jsx(EffectComposerContext.Provider,{value:Tt,children:jsxRuntimeExports.jsx("group",{ref:Et,children:tt})})})),resolveRef=tt=>typeof tt=="object"&&tt!=null&&"current"in tt?tt.current:tt;let i$1=0;const components=new WeakMap,wrapEffect=(tt,et)=>React$1.forwardRef(function({blendFunction:rt=et==null?void 0:et.blendFunction,opacity:it=et==null?void 0:et.opacity,...ot},at){let st=components.get(tt);if(!st){const ut=`@react-three/postprocessing/${tt.name}-${i$1++}`;extend$2({[ut]:tt}),components.set(tt,st=ut)}const lt=useThree(ut=>ut.camera),ct=React$1.useMemo(()=>{var ut,ht;return[...(ut=et==null?void 0:et.args)!=null?ut:[],...(ht=ot.args)!=null?ht:[{...et,...ot}]]},[JSON.stringify(ot)]);return jsxRuntimeExports.jsx(st,{camera:lt,"blendMode-blendFunction":rt,"blendMode-opacity-value":it,...ot,ref:at,args:ct})}),useVector2=(tt,et)=>{const nt=tt[et];return React$1.useMemo(()=>typeof nt=="number"?new Vector2(nt,nt):nt?new Vector2(...nt):new Vector2,[nt])},DepthOfField=reactExports.forwardRef(function({target:et,depthTexture:nt,...rt},it){const ot=useThree(lt=>lt.invalidate),{camera:at}=reactExports.useContext(EffectComposerContext),st=reactExports.useMemo(()=>{const lt=new DepthOfFieldEffect(at,rt),ct=lt.maskPass.getFullscreenMaterial();return ct.maskFunction=MaskFunction.MULTIPLY_RGB_SET_ALPHA,lt},[at,rt]);return reactExports.useLayoutEffect(()=>{if(et&&typeof et!="number"){const lt=et instanceof Vector3?new Vector3().set(et.x,et.y,et.z):new Vector3().set(et[0],et[1],et[2]);st.target=lt}nt&&st.setDepthTexture(nt.texture,nt.packing),ot()},[et,nt,st]),jsxRuntimeExports.jsx("primitive",{ref:it,object:st,dispose:null})});reactExports.forwardRef(({target:tt=void 0,mouse:et=!1,debug:nt=void 0,manual:rt=!1,smoothTime:it=.25,...ot},at)=>{const st=reactExports.useRef(null),lt=reactExports.useRef(null),ct=reactExports.useRef(null),ut=useThree(({scene:St})=>St),ht=useThree(({pointer:St})=>St),{composer:dt,camera:pt}=reactExports.useContext(EffectComposerContext),[mt]=reactExports.useState(()=>new DepthPickingPass),[gt]=reactExports.useState(()=>new CopyPass);reactExports.useEffect(()=>(dt.addPass(mt),dt.addPass(gt),()=>{dt.removePass(mt),dt.removePass(gt)}),[dt,mt,gt]),reactExports.useEffect(()=>()=>{mt.dispose(),gt.dispose()},[mt,gt]);const[yt]=reactExports.useState(()=>new Vector3(0,0,0)),[bt]=reactExports.useState(()=>new Vector3(0,0,0)),wt=reactExports.useCallback(async(St,Et)=>(bt.x=St,bt.y=Et,bt.z=await mt.readDepth(bt),bt.z=bt.z*2-1,1-bt.z>1e-7?bt.unproject(pt):!1),[bt,mt,pt]),vt=reactExports.useCallback(async(St,Et=!0)=>{var At;if(tt)yt.set(...tt);else{const{x:Tt,y:Mt}=et?ht:{x:0,y:0},Lt=await wt(Tt,Mt);Lt&&yt.copy(Lt)}Et&&((At=st.current)!=null&&At.target)&&(it>0&&St>0?easing.damp3(st.current.target,yt,it,St):st.current.target.copy(yt))},[tt,yt,et,wt,it,ht]);useFrame(async(St,Et)=>{var At;rt||vt(Et),lt.current&<.current.position.copy(yt),ct.current&&((At=st.current)!=null&&At.target)&&ct.current.position.copy(st.current.target)});const kt=reactExports.useMemo(()=>({dofRef:st,hitpoint:yt,update:vt}),[yt,vt]);return reactExports.useImperativeHandle(at,()=>kt,[kt]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[nt?createPortal(jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("mesh",{ref:lt,children:[jsxRuntimeExports.jsx("sphereGeometry",{args:[nt,16,16]}),jsxRuntimeExports.jsx("meshBasicMaterial",{color:"#00ff00",opacity:1,transparent:!0,depthWrite:!1})]}),jsxRuntimeExports.jsxs("mesh",{ref:ct,children:[jsxRuntimeExports.jsx("sphereGeometry",{args:[nt/2,16,16]}),jsxRuntimeExports.jsx("meshBasicMaterial",{color:"#00ff00",opacity:.5,transparent:!0,depthWrite:!1})]})]}),ut):null,jsxRuntimeExports.jsx(DepthOfField,{ref:st,...ot,target:yt})]})});const LensFlareShader={fragmentShader:` uniform float iTime; uniform vec2 lensPosition; @@ -5399,7 +5399,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho vec4 txD(sampler2D tex, vec2 xtC, vec2 dir, vec3 ditn) {return vec4(txL(tex, (xtC + (dir * ditn.r))).r,txL(tex, (xtC + (dir * ditn.g))).g,txL(tex, (xtC + (dir * ditn.b))).b,1.0);} vec4 strB(){vec2 aspXtc = vec2(1.0) - (((vxtC - vec2(0.5)) * vec2(1.0)) + vec2(0.5)); vec2 xtC = vec2(1.0) - vxtC; vec2 ghvc = (vec2(0.5) - xtC) * 0.3 - lensPosition; vec2 ghNm = normalize(ghvc * vec2(1.0)) * vec2(1.0);vec2 haloVec = normalize(ghvc) * 0.6;vec2 hlNm = ghNm * 0.6;vec2 texelSize = vec2(1.0) / vec2(iResolution.xy);vec3 ditn = vec3(-(texelSize.x * 1.5), 0.2, texelSize.x * 1.5);vec4 c = vec4(0.0);for (int i = 0; i < 8; i++) {vec2 offset = xtC + (ghvc * float(i));c += txD(lensDirtTexture, offset, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - offset) / length(vec2(0.5)))), 10.0);}vec2 uyTrz = xtC + hlNm; return (c * geLC((length(vec2(0.5) - aspXtc) / length(vec2(haloScale))))) +(txD(lensDirtTexture, uyTrz, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - uyTrz) / length(vec2(0.5)))), 10.0));} void mainImage(vec4 v,vec2 r,out vec4 i){vec2 g=r-.5;g.y*=iResolution.y/iResolution.x;vec2 l=lensPosition*.5;l.y*=iResolution.y/iResolution.x;vec3 f=mLs(g,l)*20.*colorGain/256.;if(aditionalStreaks){vec3 o=vec3(.9,.2,.1),p=vec3(.3,.1,.9);for(float n=0.;n<10.;n++)f+=drC(g,pow(rnd(n*2e3)*2.8,.1)+1.41,0.,o+n,p+n,rnd(n*20.)*3.+.2-.5,lensPosition);}if(secondaryGhosts){vec3 n=vec3(0);n+=rHx(g,-lensPosition*.25,ghostScale*1.4,vec3(.25,.35,0));n+=rHx(g,lensPosition*.25,ghostScale*.5,vec3(1,.5,.5));n+=rHx(g,lensPosition*.1,ghostScale*1.6,vec3(1));n+=rHx(g,lensPosition*1.8,ghostScale*2.,vec3(0,.5,.75));n+=rHx(g,lensPosition*1.25,ghostScale*.8,vec3(1,1,.5));n+=rHx(g,-lensPosition*1.25,ghostScale*5.,vec3(.5,.5,.25));n+=fpow(1.-abs(distance(lensPosition*.8,g)-.7),.985)*colorGain/2100.;f+=n;}if(starBurst){vxtC=g+.5;vec4 n=geLD(g);float o=1.-clamp(0.5,0.,.5)*2.;n+=mix(n,pow(n*2.,vec4(2))*.5,o);float s=(g.x+g.y)*(1./6.);vec2 d=mat2(cos(s),-sin(s),sin(s),cos(s))*vxtC;n+=geLS(d)*2.;f+=clamp(n.xyz*strB().xyz,.01,1.);}i=enabled?vec4(mix(f,vec3(0),opacity)+v.xyz,v.w):vec4(v);} -`};class LensFlareEffect extends Effect$1{constructor({blendFunction:et=BlendFunction.NORMAL,enabled:nt=!0,glareSize:rt=.2,lensPosition:it=[.01,.01],iResolution:ot=[0,0],starPoints:at=6,flareSize:st=.01,flareSpeed:lt=.01,flareShape:ct=.01,animated:ut=!0,anamorphic:ht=!1,colorGain:dt=new Color$1(20,20,20),lensDirtTexture:pt=null,haloScale:mt=.5,secondaryGhosts:gt=!0,aditionalStreaks:yt=!0,ghostScale:bt=0,opacity:wt=1,starBurst:vt=!1}={}){super("LensFlareEffect",LensFlareShader.fragmentShader,{blendFunction:et,uniforms:new Map([["enabled",new Uniform(nt)],["glareSize",new Uniform(rt)],["lensPosition",new Uniform(it)],["iTime",new Uniform(0)],["iResolution",new Uniform(ot)],["starPoints",new Uniform(at)],["flareSize",new Uniform(st)],["flareSpeed",new Uniform(lt)],["flareShape",new Uniform(ct)],["animated",new Uniform(ut)],["anamorphic",new Uniform(ht)],["colorGain",new Uniform(dt)],["lensDirtTexture",new Uniform(pt)],["haloScale",new Uniform(mt)],["secondaryGhosts",new Uniform(gt)],["aditionalStreaks",new Uniform(yt)],["ghostScale",new Uniform(bt)],["starBurst",new Uniform(vt)],["opacity",new Uniform(wt)]])})}update(et,nt,rt){const it=this.uniforms.get("iTime");it&&(it.value+=rt)}}reactExports.forwardRef(({position:tt=new Vector3(-25,6,-60),followMouse:et=!1,smoothTime:nt=.07,...rt},it)=>{const ot=useThree(({viewport:pt})=>pt),at=useThree(({raycaster:pt})=>pt),st=useThree(({pointer:pt})=>pt),{scene:lt,camera:ct}=reactExports.useContext(EffectComposerContext),[ut]=reactExports.useState(()=>new Vector3),[ht]=reactExports.useState(()=>new Vector2),dt=reactExports.useMemo(()=>new LensFlareEffect(rt),[rt]);return useFrame((pt,mt)=>{var gt,yt,bt;const wt=dt.uniforms.get("lensPosition"),vt=dt.uniforms.get("opacity");if(!wt||!vt)return;let kt=1;if(et)wt.value.x=st.x,wt.value.y=st.y,kt=0;else{if(ut.copy(tt).project(ct),ut.z>1)return;wt.value.x=ut.x,wt.value.y=ut.y,ht.set(ut.x,ut.y),at.setFromCamera(ht,ct);const St=at.intersectObjects(lt.children,!0),{object:Tt}=St[0];Tt&&(((gt=Tt.userData)==null?void 0:gt.lensflare)==="no-occlusion"?kt=0:Tt instanceof Mesh&&(((bt=(yt=Tt.material.uniforms)==null?void 0:yt._transmission)==null?void 0:bt.value)>.2||Tt.material._transmission&&Tt.material._transmission>.2?kt=.2:Tt.material.transparent&&(kt=Tt.material.opacity)))}easing.damp(vt,"value",kt,nt,mt)}),reactExports.useEffect(()=>{const pt=dt.uniforms.get("iResolution");pt&&(pt.value.x=ot.width,pt.value.y=ot.height)},[dt,ot]),jsxRuntimeExports.jsx("primitive",{ref:it,object:dt,dispose:null})});const Bloom=wrapEffect(BloomEffect,{blendFunction:BlendFunction.ADD});reactExports.forwardRef(function({blendFunction:et=BlendFunction.NORMAL},nt){const rt=reactExports.useMemo(()=>new ColorAverageEffect(et),[et]);return jsxRuntimeExports.jsx("primitive",{ref:nt,object:rt,dispose:null})});reactExports.forwardRef(function({active:et=!0,...nt},rt){const it=useThree(ut=>ut.invalidate),ot=useVector2(nt,"delay"),at=useVector2(nt,"duration"),st=useVector2(nt,"strength"),lt=useVector2(nt,"chromaticAberrationOffset"),ct=reactExports.useMemo(()=>new GlitchEffect({...nt,delay:ot,duration:at,strength:st,chromaticAberrationOffset:lt}),[ot,at,nt,st,lt]);return reactExports.useLayoutEffect(()=>{ct.mode=et?nt.mode||GlitchMode.SPORADIC:GlitchMode.DISABLED,it()},[et,ct,it,nt.mode]),reactExports.useEffect(()=>()=>{ct.dispose()},[ct]),jsxRuntimeExports.jsx("primitive",{ref:rt,object:ct,dispose:null})});reactExports.forwardRef(function(et,nt){const{camera:rt}=reactExports.useContext(EffectComposerContext),it=reactExports.useMemo(()=>new GodRaysEffect(rt,resolveRef(et.sun),et),[rt,et]);return reactExports.useLayoutEffect(()=>void(it.lightSource=resolveRef(et.sun)),[it,et.sun]),jsxRuntimeExports.jsx("primitive",{ref:nt,object:it,dispose:null})});reactExports.forwardRef(function({size:et,...nt},rt){const it=useThree(at=>at.invalidate),ot=reactExports.useMemo(()=>new GridEffect(nt),[nt]);return reactExports.useLayoutEffect(()=>{et&&ot.setSize(et.width,et.height),it()},[ot,et]),jsxRuntimeExports.jsx("primitive",{ref:rt,object:ot,dispose:null})});const Outline=reactExports.forwardRef(function({selection:et=[],selectionLayer:nt=10,blendFunction:rt,patternTexture:it,edgeStrength:ot,pulseSpeed:at,visibleEdgeColor:st,hiddenEdgeColor:lt,width:ct,height:ut,kernelSize:ht,blur:dt,xRay:pt,...mt},gt){const yt=useThree(St=>St.invalidate),{scene:bt,camera:wt}=reactExports.useContext(EffectComposerContext),vt=reactExports.useMemo(()=>new OutlineEffect(bt,wt,{blendFunction:rt,patternTexture:it,edgeStrength:ot,pulseSpeed:at,visibleEdgeColor:st,hiddenEdgeColor:lt,width:ct,height:ut,kernelSize:ht,blur:dt,xRay:pt,...mt}),[rt,dt,wt,ot,ut,lt,ht,it,at,bt,st,ct,pt]),kt=reactExports.useContext(selectionContext);return reactExports.useEffect(()=>{if(!kt&&et)return vt.selection.set(Array.isArray(et)?et.map(resolveRef):[resolveRef(et)]),yt(),()=>{vt.selection.clear(),yt()}},[vt,et,kt,yt]),reactExports.useEffect(()=>{vt.selectionLayer=nt,yt()},[vt,yt,nt]),reactExports.useRef(),reactExports.useEffect(()=>{var St;if(kt&&kt.enabled&&(St=kt.selected)!=null&&St.length)return vt.selection.set(kt.selected),yt(),()=>{vt.selection.clear(),yt()}},[kt,vt.selection,yt]),jsxRuntimeExports.jsx("primitive",{ref:gt,object:vt})});reactExports.forwardRef(function({granularity:et=5},nt){const rt=reactExports.useMemo(()=>new PixelationEffect(et),[et]);return jsxRuntimeExports.jsx("primitive",{ref:nt,object:rt,dispose:null})});const addLight=(tt,et)=>tt.layers.enable(et.selection.layer),removeLight=(tt,et)=>tt.layers.disable(et.selection.layer);reactExports.forwardRef(function({selection:et=[],selectionLayer:nt=10,lights:rt=[],luminanceThreshold:it,luminanceSmoothing:ot,intensity:at,width:st,height:lt,kernelSize:ct,mipmapBlur:ut,...ht},dt){rt.length===0&&console.warn("SelectiveBloom requires lights to work.");const pt=useThree(wt=>wt.invalidate),{scene:mt,camera:gt}=reactExports.useContext(EffectComposerContext),yt=reactExports.useMemo(()=>new SelectiveBloomEffect(mt,gt,{blendFunction:BlendFunction.ADD,luminanceThreshold:it,luminanceSmoothing:ot,intensity:at,width:st,height:lt,kernelSize:ct,mipmapBlur:ut,...ht}),[mt,gt,it,ot,at,st,lt,ct,ut,ht]),bt=reactExports.useContext(selectionContext);return reactExports.useEffect(()=>{if(!bt&&et)return yt.selection.set(Array.isArray(et)?et.map(resolveRef):[resolveRef(et)]),pt(),()=>{yt.selection.clear(),pt()}},[yt,et,bt,pt]),reactExports.useEffect(()=>{yt.selection.layer=nt,pt()},[yt,pt,nt]),reactExports.useEffect(()=>{if(rt&&rt.length>0)return rt.forEach(wt=>addLight(resolveRef(wt),yt)),pt(),()=>{rt.forEach(wt=>removeLight(resolveRef(wt),yt)),pt()}},[yt,pt,rt,nt]),reactExports.useEffect(()=>{var wt;if(bt&&bt.enabled&&(wt=bt.selected)!=null&&wt.length)return yt.selection.set(bt.selected),pt(),()=>{yt.selection.clear(),pt()}},[bt,yt.selection,pt]),jsxRuntimeExports.jsx("primitive",{ref:dt,object:yt,dispose:null})});reactExports.forwardRef(function(et,nt){const{camera:rt,normalPass:it,downSamplingPass:ot,resolutionScale:at}=reactExports.useContext(EffectComposerContext),st=reactExports.useMemo(()=>it===null&&ot===null?(console.error("Please enable the NormalPass in the EffectComposer in order to use SSAO."),{}):new SSAOEffect(rt,it&&!ot?it.texture:null,{blendFunction:BlendFunction.MULTIPLY,samples:30,rings:4,distanceThreshold:1,distanceFalloff:0,rangeThreshold:.5,rangeFalloff:.1,luminanceInfluence:.9,radius:20,bias:.5,intensity:1,color:void 0,normalDepthBuffer:ot?ot.texture:null,resolutionScale:at??1,depthAwareUpsampling:!0,...et}),[rt,it,et]);return jsxRuntimeExports.jsx("primitive",{ref:nt,object:st,dispose:null})});reactExports.forwardRef(function({textureSrc:et,texture:nt,...rt},it){const ot=useLoader(TextureLoader,et);reactExports.useLayoutEffect(()=>{ot.encoding=sRGBEncoding,ot.wrapS=ot.wrapT=RepeatWrapping},[ot]);const at=reactExports.useMemo(()=>new TextureEffect({...rt,texture:ot||nt}),[rt,ot,nt]);return jsxRuntimeExports.jsx("primitive",{ref:it,object:at,dispose:null})});const Vignette=wrapEffect(VignetteEffect);reactExports.forwardRef(function({lut:et,tetrahedralInterpolation:nt,...rt},it){const ot=reactExports.useMemo(()=>new LUT3DEffect(et,rt),[et,rt]),at=useThree(st=>st.invalidate);return reactExports.useLayoutEffect(()=>{nt&&(ot.tetrahedralInterpolation=nt),et&&(ot.lut=et),at()},[ot,at,et,nt]),jsxRuntimeExports.jsx("primitive",{ref:it,object:ot,dispose:null})});const fragment=` +`};class LensFlareEffect extends Effect$1{constructor({blendFunction:et=BlendFunction.NORMAL,enabled:nt=!0,glareSize:rt=.2,lensPosition:it=[.01,.01],iResolution:ot=[0,0],starPoints:at=6,flareSize:st=.01,flareSpeed:lt=.01,flareShape:ct=.01,animated:ut=!0,anamorphic:ht=!1,colorGain:dt=new Color$1(20,20,20),lensDirtTexture:pt=null,haloScale:mt=.5,secondaryGhosts:gt=!0,aditionalStreaks:yt=!0,ghostScale:bt=0,opacity:wt=1,starBurst:vt=!1}={}){super("LensFlareEffect",LensFlareShader.fragmentShader,{blendFunction:et,uniforms:new Map([["enabled",new Uniform(nt)],["glareSize",new Uniform(rt)],["lensPosition",new Uniform(it)],["iTime",new Uniform(0)],["iResolution",new Uniform(ot)],["starPoints",new Uniform(at)],["flareSize",new Uniform(st)],["flareSpeed",new Uniform(lt)],["flareShape",new Uniform(ct)],["animated",new Uniform(ut)],["anamorphic",new Uniform(ht)],["colorGain",new Uniform(dt)],["lensDirtTexture",new Uniform(pt)],["haloScale",new Uniform(mt)],["secondaryGhosts",new Uniform(gt)],["aditionalStreaks",new Uniform(yt)],["ghostScale",new Uniform(bt)],["starBurst",new Uniform(vt)],["opacity",new Uniform(wt)]])})}update(et,nt,rt){const it=this.uniforms.get("iTime");it&&(it.value+=rt)}}reactExports.forwardRef(({position:tt=new Vector3(-25,6,-60),followMouse:et=!1,smoothTime:nt=.07,...rt},it)=>{const ot=useThree(({viewport:pt})=>pt),at=useThree(({raycaster:pt})=>pt),st=useThree(({pointer:pt})=>pt),{scene:lt,camera:ct}=reactExports.useContext(EffectComposerContext),[ut]=reactExports.useState(()=>new Vector3),[ht]=reactExports.useState(()=>new Vector2),dt=reactExports.useMemo(()=>new LensFlareEffect(rt),[rt]);return useFrame((pt,mt)=>{var gt,yt,bt;const wt=dt.uniforms.get("lensPosition"),vt=dt.uniforms.get("opacity");if(!wt||!vt)return;let kt=1;if(et)wt.value.x=st.x,wt.value.y=st.y,kt=0;else{if(ut.copy(tt).project(ct),ut.z>1)return;wt.value.x=ut.x,wt.value.y=ut.y,ht.set(ut.x,ut.y),at.setFromCamera(ht,ct);const St=at.intersectObjects(lt.children,!0),{object:Et}=St[0];Et&&(((gt=Et.userData)==null?void 0:gt.lensflare)==="no-occlusion"?kt=0:Et instanceof Mesh&&(((bt=(yt=Et.material.uniforms)==null?void 0:yt._transmission)==null?void 0:bt.value)>.2||Et.material._transmission&&Et.material._transmission>.2?kt=.2:Et.material.transparent&&(kt=Et.material.opacity)))}easing.damp(vt,"value",kt,nt,mt)}),reactExports.useEffect(()=>{const pt=dt.uniforms.get("iResolution");pt&&(pt.value.x=ot.width,pt.value.y=ot.height)},[dt,ot]),jsxRuntimeExports.jsx("primitive",{ref:it,object:dt,dispose:null})});const Bloom=wrapEffect(BloomEffect,{blendFunction:BlendFunction.ADD});reactExports.forwardRef(function({blendFunction:et=BlendFunction.NORMAL},nt){const rt=reactExports.useMemo(()=>new ColorAverageEffect(et),[et]);return jsxRuntimeExports.jsx("primitive",{ref:nt,object:rt,dispose:null})});reactExports.forwardRef(function({active:et=!0,...nt},rt){const it=useThree(ut=>ut.invalidate),ot=useVector2(nt,"delay"),at=useVector2(nt,"duration"),st=useVector2(nt,"strength"),lt=useVector2(nt,"chromaticAberrationOffset"),ct=reactExports.useMemo(()=>new GlitchEffect({...nt,delay:ot,duration:at,strength:st,chromaticAberrationOffset:lt}),[ot,at,nt,st,lt]);return reactExports.useLayoutEffect(()=>{ct.mode=et?nt.mode||GlitchMode.SPORADIC:GlitchMode.DISABLED,it()},[et,ct,it,nt.mode]),reactExports.useEffect(()=>()=>{ct.dispose()},[ct]),jsxRuntimeExports.jsx("primitive",{ref:rt,object:ct,dispose:null})});reactExports.forwardRef(function(et,nt){const{camera:rt}=reactExports.useContext(EffectComposerContext),it=reactExports.useMemo(()=>new GodRaysEffect(rt,resolveRef(et.sun),et),[rt,et]);return reactExports.useLayoutEffect(()=>void(it.lightSource=resolveRef(et.sun)),[it,et.sun]),jsxRuntimeExports.jsx("primitive",{ref:nt,object:it,dispose:null})});reactExports.forwardRef(function({size:et,...nt},rt){const it=useThree(at=>at.invalidate),ot=reactExports.useMemo(()=>new GridEffect(nt),[nt]);return reactExports.useLayoutEffect(()=>{et&&ot.setSize(et.width,et.height),it()},[ot,et]),jsxRuntimeExports.jsx("primitive",{ref:rt,object:ot,dispose:null})});const Outline=reactExports.forwardRef(function({selection:et=[],selectionLayer:nt=10,blendFunction:rt,patternTexture:it,edgeStrength:ot,pulseSpeed:at,visibleEdgeColor:st,hiddenEdgeColor:lt,width:ct,height:ut,kernelSize:ht,blur:dt,xRay:pt,...mt},gt){const yt=useThree(St=>St.invalidate),{scene:bt,camera:wt}=reactExports.useContext(EffectComposerContext),vt=reactExports.useMemo(()=>new OutlineEffect(bt,wt,{blendFunction:rt,patternTexture:it,edgeStrength:ot,pulseSpeed:at,visibleEdgeColor:st,hiddenEdgeColor:lt,width:ct,height:ut,kernelSize:ht,blur:dt,xRay:pt,...mt}),[rt,dt,wt,ot,ut,lt,ht,it,at,bt,st,ct,pt]),kt=reactExports.useContext(selectionContext);return reactExports.useEffect(()=>{if(!kt&&et)return vt.selection.set(Array.isArray(et)?et.map(resolveRef):[resolveRef(et)]),yt(),()=>{vt.selection.clear(),yt()}},[vt,et,kt,yt]),reactExports.useEffect(()=>{vt.selectionLayer=nt,yt()},[vt,yt,nt]),reactExports.useRef(),reactExports.useEffect(()=>{var St;if(kt&&kt.enabled&&(St=kt.selected)!=null&&St.length)return vt.selection.set(kt.selected),yt(),()=>{vt.selection.clear(),yt()}},[kt,vt.selection,yt]),jsxRuntimeExports.jsx("primitive",{ref:gt,object:vt})});reactExports.forwardRef(function({granularity:et=5},nt){const rt=reactExports.useMemo(()=>new PixelationEffect(et),[et]);return jsxRuntimeExports.jsx("primitive",{ref:nt,object:rt,dispose:null})});const addLight=(tt,et)=>tt.layers.enable(et.selection.layer),removeLight=(tt,et)=>tt.layers.disable(et.selection.layer);reactExports.forwardRef(function({selection:et=[],selectionLayer:nt=10,lights:rt=[],luminanceThreshold:it,luminanceSmoothing:ot,intensity:at,width:st,height:lt,kernelSize:ct,mipmapBlur:ut,...ht},dt){rt.length===0&&console.warn("SelectiveBloom requires lights to work.");const pt=useThree(wt=>wt.invalidate),{scene:mt,camera:gt}=reactExports.useContext(EffectComposerContext),yt=reactExports.useMemo(()=>new SelectiveBloomEffect(mt,gt,{blendFunction:BlendFunction.ADD,luminanceThreshold:it,luminanceSmoothing:ot,intensity:at,width:st,height:lt,kernelSize:ct,mipmapBlur:ut,...ht}),[mt,gt,it,ot,at,st,lt,ct,ut,ht]),bt=reactExports.useContext(selectionContext);return reactExports.useEffect(()=>{if(!bt&&et)return yt.selection.set(Array.isArray(et)?et.map(resolveRef):[resolveRef(et)]),pt(),()=>{yt.selection.clear(),pt()}},[yt,et,bt,pt]),reactExports.useEffect(()=>{yt.selection.layer=nt,pt()},[yt,pt,nt]),reactExports.useEffect(()=>{if(rt&&rt.length>0)return rt.forEach(wt=>addLight(resolveRef(wt),yt)),pt(),()=>{rt.forEach(wt=>removeLight(resolveRef(wt),yt)),pt()}},[yt,pt,rt,nt]),reactExports.useEffect(()=>{var wt;if(bt&&bt.enabled&&(wt=bt.selected)!=null&&wt.length)return yt.selection.set(bt.selected),pt(),()=>{yt.selection.clear(),pt()}},[bt,yt.selection,pt]),jsxRuntimeExports.jsx("primitive",{ref:dt,object:yt,dispose:null})});reactExports.forwardRef(function(et,nt){const{camera:rt,normalPass:it,downSamplingPass:ot,resolutionScale:at}=reactExports.useContext(EffectComposerContext),st=reactExports.useMemo(()=>it===null&&ot===null?(console.error("Please enable the NormalPass in the EffectComposer in order to use SSAO."),{}):new SSAOEffect(rt,it&&!ot?it.texture:null,{blendFunction:BlendFunction.MULTIPLY,samples:30,rings:4,distanceThreshold:1,distanceFalloff:0,rangeThreshold:.5,rangeFalloff:.1,luminanceInfluence:.9,radius:20,bias:.5,intensity:1,color:void 0,normalDepthBuffer:ot?ot.texture:null,resolutionScale:at??1,depthAwareUpsampling:!0,...et}),[rt,it,et]);return jsxRuntimeExports.jsx("primitive",{ref:nt,object:st,dispose:null})});reactExports.forwardRef(function({textureSrc:et,texture:nt,...rt},it){const ot=useLoader(TextureLoader,et);reactExports.useLayoutEffect(()=>{ot.encoding=sRGBEncoding,ot.wrapS=ot.wrapT=RepeatWrapping},[ot]);const at=reactExports.useMemo(()=>new TextureEffect({...rt,texture:ot||nt}),[rt,ot,nt]);return jsxRuntimeExports.jsx("primitive",{ref:it,object:at,dispose:null})});const Vignette=wrapEffect(VignetteEffect);reactExports.forwardRef(function({lut:et,tetrahedralInterpolation:nt,...rt},it){const ot=reactExports.useMemo(()=>new LUT3DEffect(et,rt),[et,rt]),at=useThree(st=>st.invalidate);return reactExports.useLayoutEffect(()=>{nt&&(ot.tetrahedralInterpolation=nt),et&&(ot.lut=et),at()},[ot,at,et,nt]),jsxRuntimeExports.jsx("primitive",{ref:it,object:ot,dispose:null})});const fragment=` uniform sampler2D uCharacters; uniform float uCharactersCount; uniform float uCellSize; @@ -6444,7 +6444,7 @@ void main() { `+nt.fragmentShader),this.configuration.halfRes&&this.configuration.depthAwareUpsampling&&(nt.fragmentShader=`#define HALFRES `+nt.fragmentShader),this.effectCompositerQuad?(this.effectCompositerQuad.material.dispose(),this.effectCompositerQuad.material=new ShaderMaterial(nt)):this.effectCompositerQuad=new $e4ca8dcb0218f846$export$dcd670d73db751f5(new ShaderMaterial(nt))}generateHemisphereSamples(et){const nt=[];for(let rt=0;rttt.charCodeAt(0));reactExports.forwardRef(({halfRes:tt,screenSpaceRadius:et,quality:nt,depthAwareUpsampling:rt=!0,aoRadius:it=5,aoSamples:ot=16,denoiseSamples:at=4,denoiseRadius:st=12,distanceFalloff:lt=1,intensity:ct=1,color:ut,renderMode:ht=0},dt)=>{const{camera:pt,scene:mt}=useThree(),gt=reactExports.useMemo(()=>new $87431ee93b037844$export$2489f9981ab0fa82(mt,pt),[]);return reactExports.useLayoutEffect(()=>{applyProps(gt.configuration,{color:ut,aoRadius:it,distanceFalloff:lt,intensity:ct,aoSamples:ot,denoiseSamples:at,denoiseRadius:st,screenSpaceRadius:et,renderMode:ht,halfRes:tt,depthAwareUpsampling:rt})},[et,ut,it,lt,ct,ot,at,st,ht,tt,rt]),reactExports.useLayoutEffect(()=>{nt&>.setQualityMode(nt.charAt(0).toUpperCase()+nt.slice(1))},[nt]),jsxRuntimeExports.jsx("primitive",{ref:dt,object:gt})});function _objectWithoutPropertiesLoose$e(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}var _excluded$1$1=["color"],ActivityLogIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$1$1);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M0 1.5C0 1.22386 0.223858 1 0.5 1H2.5C2.77614 1 3 1.22386 3 1.5C3 1.77614 2.77614 2 2.5 2H0.5C0.223858 2 0 1.77614 0 1.5ZM4 1.5C4 1.22386 4.22386 1 4.5 1H14.5C14.7761 1 15 1.22386 15 1.5C15 1.77614 14.7761 2 14.5 2H4.5C4.22386 2 4 1.77614 4 1.5ZM4 4.5C4 4.22386 4.22386 4 4.5 4H11.5C11.7761 4 12 4.22386 12 4.5C12 4.77614 11.7761 5 11.5 5H4.5C4.22386 5 4 4.77614 4 4.5ZM0 7.5C0 7.22386 0.223858 7 0.5 7H2.5C2.77614 7 3 7.22386 3 7.5C3 7.77614 2.77614 8 2.5 8H0.5C0.223858 8 0 7.77614 0 7.5ZM4 7.5C4 7.22386 4.22386 7 4.5 7H14.5C14.7761 7 15 7.22386 15 7.5C15 7.77614 14.7761 8 14.5 8H4.5C4.22386 8 4 7.77614 4 7.5ZM4 10.5C4 10.2239 4.22386 10 4.5 10H11.5C11.7761 10 12 10.2239 12 10.5C12 10.7761 11.7761 11 11.5 11H4.5C4.22386 11 4 10.7761 4 10.5ZM0 13.5C0 13.2239 0.223858 13 0.5 13H2.5C2.77614 13 3 13.2239 3 13.5C3 13.7761 2.77614 14 2.5 14H0.5C0.223858 14 0 13.7761 0 13.5ZM4 13.5C4 13.2239 4.22386 13 4.5 13H14.5C14.7761 13 15 13.2239 15 13.5C15 13.7761 14.7761 14 14.5 14H4.5C4.22386 14 4 13.7761 4 13.5Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$o$1=["color"],BarChartIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$o$1);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M11.5 1C11.7761 1 12 1.22386 12 1.5V13.5C12 13.7761 11.7761 14 11.5 14C11.2239 14 11 13.7761 11 13.5V1.5C11 1.22386 11.2239 1 11.5 1ZM9.5 3C9.77614 3 10 3.22386 10 3.5V13.5C10 13.7761 9.77614 14 9.5 14C9.22386 14 9 13.7761 9 13.5V3.5C9 3.22386 9.22386 3 9.5 3ZM13.5 3C13.7761 3 14 3.22386 14 3.5V13.5C14 13.7761 13.7761 14 13.5 14C13.2239 14 13 13.7761 13 13.5V3.5C13 3.22386 13.2239 3 13.5 3ZM5.5 4C5.77614 4 6 4.22386 6 4.5V13.5C6 13.7761 5.77614 14 5.5 14C5.22386 14 5 13.7761 5 13.5V4.5C5 4.22386 5.22386 4 5.5 4ZM1.5 5C1.77614 5 2 5.22386 2 5.5V13.5C2 13.7761 1.77614 14 1.5 14C1.22386 14 1 13.7761 1 13.5V5.5C1 5.22386 1.22386 5 1.5 5ZM7.5 5C7.77614 5 8 5.22386 8 5.5V13.5C8 13.7761 7.77614 14 7.5 14C7.22386 14 7 13.7761 7 13.5V5.5C7 5.22386 7.22386 5 7.5 5ZM3.5 7C3.77614 7 4 7.22386 4 7.5V13.5C4 13.7761 3.77614 14 3.5 14C3.22386 14 3 13.7761 3 13.5V7.5C3 7.22386 3.22386 7 3.5 7Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$H=["color"],ButtonIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$H);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M2 5H13C13.5523 5 14 5.44772 14 6V9C14 9.55228 13.5523 10 13 10H2C1.44772 10 1 9.55228 1 9V6C1 5.44772 1.44772 5 2 5ZM0 6C0 4.89543 0.895431 4 2 4H13C14.1046 4 15 4.89543 15 6V9C15 10.1046 14.1046 11 13 11H2C0.89543 11 0 10.1046 0 9V6ZM4.5 6.75C4.08579 6.75 3.75 7.08579 3.75 7.5C3.75 7.91421 4.08579 8.25 4.5 8.25C4.91421 8.25 5.25 7.91421 5.25 7.5C5.25 7.08579 4.91421 6.75 4.5 6.75ZM6.75 7.5C6.75 7.08579 7.08579 6.75 7.5 6.75C7.91421 6.75 8.25 7.08579 8.25 7.5C8.25 7.91421 7.91421 8.25 7.5 8.25C7.08579 8.25 6.75 7.91421 6.75 7.5ZM10.5 6.75C10.0858 6.75 9.75 7.08579 9.75 7.5C9.75 7.91421 10.0858 8.25 10.5 8.25C10.9142 8.25 11.25 7.91421 11.25 7.5C11.25 7.08579 10.9142 6.75 10.5 6.75Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$1w=["color"],CubeIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$1w);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M7.28856 0.796908C7.42258 0.734364 7.57742 0.734364 7.71144 0.796908L13.7114 3.59691C13.8875 3.67906 14 3.85574 14 4.05V10.95C14 11.1443 13.8875 11.3209 13.7114 11.4031L7.71144 14.2031C7.57742 14.2656 7.42258 14.2656 7.28856 14.2031L1.28856 11.4031C1.11252 11.3209 1 11.1443 1 10.95V4.05C1 3.85574 1.11252 3.67906 1.28856 3.59691L7.28856 0.796908ZM2 4.80578L7 6.93078V12.9649L2 10.6316V4.80578ZM8 12.9649L13 10.6316V4.80578L8 6.93078V12.9649ZM7.5 6.05672L12.2719 4.02866L7.5 1.80176L2.72809 4.02866L7.5 6.05672Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$1H=["color"],DotIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$1H);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M7.5 9.125C8.39746 9.125 9.125 8.39746 9.125 7.5C9.125 6.60254 8.39746 5.875 7.5 5.875C6.60254 5.875 5.875 6.60254 5.875 7.5C5.875 8.39746 6.60254 9.125 7.5 9.125ZM7.5 10.125C8.94975 10.125 10.125 8.94975 10.125 7.5C10.125 6.05025 8.94975 4.875 7.5 4.875C6.05025 4.875 4.875 6.05025 4.875 7.5C4.875 8.94975 6.05025 10.125 7.5 10.125Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$1W=["color"],DropdownMenuIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$1W);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M7.49999 3.09998C7.27907 3.09998 7.09999 3.27906 7.09999 3.49998C7.09999 3.72089 7.27907 3.89998 7.49999 3.89998H14.5C14.7209 3.89998 14.9 3.72089 14.9 3.49998C14.9 3.27906 14.7209 3.09998 14.5 3.09998H7.49999ZM7.49998 5.1C7.27907 5.1 7.09998 5.27908 7.09998 5.5C7.09998 5.72091 7.27907 5.9 7.49998 5.9H14.5C14.7209 5.9 14.9 5.72091 14.9 5.5C14.9 5.27908 14.7209 5.1 14.5 5.1H7.49998ZM7.1 7.5C7.1 7.27908 7.27909 7.1 7.5 7.1H14.5C14.7209 7.1 14.9 7.27908 14.9 7.5C14.9 7.72091 14.7209 7.9 14.5 7.9H7.5C7.27909 7.9 7.1 7.72091 7.1 7.5ZM7.49998 9.1C7.27907 9.1 7.09998 9.27908 7.09998 9.5C7.09998 9.72091 7.27907 9.9 7.49998 9.9H14.5C14.7209 9.9 14.9 9.72091 14.9 9.5C14.9 9.27908 14.7209 9.1 14.5 9.1H7.49998ZM7.09998 11.5C7.09998 11.2791 7.27907 11.1 7.49998 11.1H14.5C14.7209 11.1 14.9 11.2791 14.9 11.5C14.9 11.7209 14.7209 11.9 14.5 11.9H7.49998C7.27907 11.9 7.09998 11.7209 7.09998 11.5ZM2.5 9.25003L5 6.00003H0L2.5 9.25003Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$25=["color"],EyeNoneIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$25);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M13.3536 2.35355C13.5488 2.15829 13.5488 1.84171 13.3536 1.64645C13.1583 1.45118 12.8417 1.45118 12.6464 1.64645L10.6828 3.61012C9.70652 3.21671 8.63759 3 7.5 3C4.30786 3 1.65639 4.70638 0.0760002 7.23501C-0.0253338 7.39715 -0.0253334 7.60288 0.0760014 7.76501C0.902945 9.08812 2.02314 10.1861 3.36061 10.9323L1.64645 12.6464C1.45118 12.8417 1.45118 13.1583 1.64645 13.3536C1.84171 13.5488 2.15829 13.5488 2.35355 13.3536L4.31723 11.3899C5.29348 11.7833 6.36241 12 7.5 12C10.6921 12 13.3436 10.2936 14.924 7.76501C15.0253 7.60288 15.0253 7.39715 14.924 7.23501C14.0971 5.9119 12.9769 4.81391 11.6394 4.06771L13.3536 2.35355ZM9.90428 4.38861C9.15332 4.1361 8.34759 4 7.5 4C4.80285 4 2.52952 5.37816 1.09622 7.50001C1.87284 8.6497 2.89609 9.58106 4.09974 10.1931L9.90428 4.38861ZM5.09572 10.6114L10.9003 4.80685C12.1039 5.41894 13.1272 6.35031 13.9038 7.50001C12.4705 9.62183 10.1971 11 7.5 11C6.65241 11 5.84668 10.8639 5.09572 10.6114Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$26=["color"],EyeOpenIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$26);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M7.5 11C4.80285 11 2.52952 9.62184 1.09622 7.50001C2.52952 5.37816 4.80285 4 7.5 4C10.1971 4 12.4705 5.37816 13.9038 7.50001C12.4705 9.62183 10.1971 11 7.5 11ZM7.5 3C4.30786 3 1.65639 4.70638 0.0760002 7.23501C-0.0253338 7.39715 -0.0253334 7.60288 0.0760014 7.76501C1.65639 10.2936 4.30786 12 7.5 12C10.6921 12 13.3436 10.2936 14.924 7.76501C15.0253 7.60288 15.0253 7.39715 14.924 7.23501C13.3436 4.70638 10.6921 3 7.5 3ZM7.5 9.5C8.60457 9.5 9.5 8.60457 9.5 7.5C9.5 6.39543 8.60457 5.5 7.5 5.5C6.39543 5.5 5.5 6.39543 5.5 7.5C5.5 8.60457 6.39543 9.5 7.5 9.5Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$2C=["color"],ImageIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$2C);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M2.5 1H12.5C13.3284 1 14 1.67157 14 2.5V12.5C14 13.3284 13.3284 14 12.5 14H2.5C1.67157 14 1 13.3284 1 12.5V2.5C1 1.67157 1.67157 1 2.5 1ZM2.5 2C2.22386 2 2 2.22386 2 2.5V8.3636L3.6818 6.6818C3.76809 6.59551 3.88572 6.54797 4.00774 6.55007C4.12975 6.55216 4.24568 6.60372 4.32895 6.69293L7.87355 10.4901L10.6818 7.6818C10.8575 7.50607 11.1425 7.50607 11.3182 7.6818L13 9.3636V2.5C13 2.22386 12.7761 2 12.5 2H2.5ZM2 12.5V9.6364L3.98887 7.64753L7.5311 11.4421L8.94113 13H2.5C2.22386 13 2 12.7761 2 12.5ZM12.5 13H10.155L8.48336 11.153L11 8.6364L13 10.6364V12.5C13 12.7761 12.7761 13 12.5 13ZM6.64922 5.5C6.64922 5.03013 7.03013 4.64922 7.5 4.64922C7.96987 4.64922 8.35078 5.03013 8.35078 5.5C8.35078 5.96987 7.96987 6.35078 7.5 6.35078C7.03013 6.35078 6.64922 5.96987 6.64922 5.5ZM7.5 3.74922C6.53307 3.74922 5.74922 4.53307 5.74922 5.5C5.74922 6.46693 6.53307 7.25078 7.5 7.25078C8.46693 7.25078 9.25078 6.46693 9.25078 5.5C9.25078 4.53307 8.46693 3.74922 7.5 3.74922Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$2H=["color"],LapTimerIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$2H);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M5.49998 0.5C5.49998 0.223858 5.72383 0 5.99998 0H7.49998H8.99998C9.27612 0 9.49998 0.223858 9.49998 0.5C9.49998 0.776142 9.27612 1 8.99998 1H7.99998V2.11922C9.09832 2.20409 10.119 2.56622 10.992 3.13572C11.0116 3.10851 11.0336 3.08252 11.058 3.05806L12.058 2.05806C12.3021 1.81398 12.6978 1.81398 12.9419 2.05806C13.186 2.30214 13.186 2.69786 12.9419 2.94194L11.967 3.91682C13.1595 5.07925 13.9 6.70314 13.9 8.49998C13.9 12.0346 11.0346 14.9 7.49998 14.9C3.96535 14.9 1.09998 12.0346 1.09998 8.49998C1.09998 5.13361 3.69904 2.3743 6.99998 2.11922V1H5.99998C5.72383 1 5.49998 0.776142 5.49998 0.5ZM2.09998 8.49998C2.09998 5.51764 4.51764 3.09998 7.49998 3.09998C10.4823 3.09998 12.9 5.51764 12.9 8.49998C12.9 11.4823 10.4823 13.9 7.49998 13.9C4.51764 13.9 2.09998 11.4823 2.09998 8.49998ZM7.49998 8.49998V4.09998C5.06992 4.09998 3.09998 6.06992 3.09998 8.49998C3.09998 10.93 5.06992 12.9 7.49998 12.9C8.715 12.9 9.815 12.4075 10.6112 11.6112L7.49998 8.49998Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$2J=["color"],LayersIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$2J);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M7.75432 0.819537C7.59742 0.726821 7.4025 0.726821 7.24559 0.819537L1.74559 4.06954C1.59336 4.15949 1.49996 4.32317 1.49996 4.5C1.49996 4.67683 1.59336 4.84051 1.74559 4.93046L7.24559 8.18046C7.4025 8.27318 7.59742 8.27318 7.75432 8.18046L13.2543 4.93046C13.4066 4.84051 13.5 4.67683 13.5 4.5C13.5 4.32317 13.4066 4.15949 13.2543 4.06954L7.75432 0.819537ZM7.49996 7.16923L2.9828 4.5L7.49996 1.83077L12.0171 4.5L7.49996 7.16923ZM1.5695 7.49564C1.70998 7.2579 2.01659 7.17906 2.25432 7.31954L7.49996 10.4192L12.7456 7.31954C12.9833 7.17906 13.2899 7.2579 13.4304 7.49564C13.5709 7.73337 13.4921 8.03998 13.2543 8.18046L7.75432 11.4305C7.59742 11.5232 7.4025 11.5232 7.24559 11.4305L1.74559 8.18046C1.50786 8.03998 1.42901 7.73337 1.5695 7.49564ZM1.56949 10.4956C1.70998 10.2579 2.01658 10.1791 2.25432 10.3195L7.49996 13.4192L12.7456 10.3195C12.9833 10.1791 13.2899 10.2579 13.4304 10.4956C13.5709 10.7334 13.4921 11.04 13.2543 11.1805L7.75432 14.4305C7.59742 14.5232 7.4025 14.5232 7.24559 14.4305L1.74559 11.1805C1.50785 11.04 1.42901 10.7334 1.56949 10.4956Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$2Q=["color"],LightningBoltIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$2Q);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M8.69667 0.0403541C8.90859 0.131038 9.03106 0.354857 8.99316 0.582235L8.0902 6.00001H12.5C12.6893 6.00001 12.8625 6.10701 12.9472 6.27641C13.0319 6.4458 13.0136 6.6485 12.8999 6.80001L6.89997 14.8C6.76167 14.9844 6.51521 15.0503 6.30328 14.9597C6.09135 14.869 5.96888 14.6452 6.00678 14.4178L6.90974 9H2.49999C2.31061 9 2.13748 8.893 2.05278 8.72361C1.96809 8.55422 1.98636 8.35151 2.09999 8.2L8.09997 0.200038C8.23828 0.0156255 8.48474 -0.0503301 8.69667 0.0403541ZM3.49999 8.00001H7.49997C7.64695 8.00001 7.78648 8.06467 7.88148 8.17682C7.97648 8.28896 8.01733 8.43723 7.99317 8.5822L7.33027 12.5596L11.5 7.00001H7.49997C7.353 7.00001 7.21347 6.93534 7.11846 6.8232C7.02346 6.71105 6.98261 6.56279 7.00678 6.41781L7.66968 2.44042L3.49999 8.00001Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$34=["color"],MarginIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$34);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M1.49988 2.00012C1.77602 2.00012 1.99988 1.77626 1.99988 1.50012C1.99988 1.22398 1.77602 1.00012 1.49988 1.00012C1.22374 1.00012 0.999878 1.22398 0.999878 1.50012C0.999878 1.77626 1.22374 2.00012 1.49988 2.00012ZM4.49988 2.00012C4.77602 2.00012 4.99988 1.77626 4.99988 1.50012C4.99988 1.22398 4.77602 1.00012 4.49988 1.00012C4.22374 1.00012 3.99988 1.22398 3.99988 1.50012C3.99988 1.77626 4.22374 2.00012 4.49988 2.00012ZM7.99988 1.50012C7.99988 1.77626 7.77602 2.00012 7.49988 2.00012C7.22374 2.00012 6.99988 1.77626 6.99988 1.50012C6.99988 1.22398 7.22374 1.00012 7.49988 1.00012C7.77602 1.00012 7.99988 1.22398 7.99988 1.50012ZM10.4999 2.00012C10.776 2.00012 10.9999 1.77626 10.9999 1.50012C10.9999 1.22398 10.776 1.00012 10.4999 1.00012C10.2237 1.00012 9.99988 1.22398 9.99988 1.50012C9.99988 1.77626 10.2237 2.00012 10.4999 2.00012ZM13.9999 1.50012C13.9999 1.77626 13.776 2.00012 13.4999 2.00012C13.2237 2.00012 12.9999 1.77626 12.9999 1.50012C12.9999 1.22398 13.2237 1.00012 13.4999 1.00012C13.776 1.00012 13.9999 1.22398 13.9999 1.50012ZM1.49988 14.0001C1.77602 14.0001 1.99988 13.7763 1.99988 13.5001C1.99988 13.224 1.77602 13.0001 1.49988 13.0001C1.22374 13.0001 0.999878 13.224 0.999878 13.5001C0.999878 13.7763 1.22374 14.0001 1.49988 14.0001ZM1.99988 10.5001C1.99988 10.7763 1.77602 11.0001 1.49988 11.0001C1.22374 11.0001 0.999878 10.7763 0.999878 10.5001C0.999878 10.224 1.22374 10.0001 1.49988 10.0001C1.77602 10.0001 1.99988 10.224 1.99988 10.5001ZM1.49988 8.00012C1.77602 8.00012 1.99988 7.77626 1.99988 7.50012C1.99988 7.22398 1.77602 7.00012 1.49988 7.00012C1.22374 7.00012 0.999878 7.22398 0.999878 7.50012C0.999878 7.77626 1.22374 8.00012 1.49988 8.00012ZM1.99988 4.50012C1.99988 4.77626 1.77602 5.00012 1.49988 5.00012C1.22374 5.00012 0.999878 4.77626 0.999878 4.50012C0.999878 4.22398 1.22374 4.00012 1.49988 4.00012C1.77602 4.00012 1.99988 4.22398 1.99988 4.50012ZM13.4999 11.0001C13.776 11.0001 13.9999 10.7763 13.9999 10.5001C13.9999 10.224 13.776 10.0001 13.4999 10.0001C13.2237 10.0001 12.9999 10.224 12.9999 10.5001C12.9999 10.7763 13.2237 11.0001 13.4999 11.0001ZM13.9999 7.50012C13.9999 7.77626 13.776 8.00012 13.4999 8.00012C13.2237 8.00012 12.9999 7.77626 12.9999 7.50012C12.9999 7.22398 13.2237 7.00012 13.4999 7.00012C13.776 7.00012 13.9999 7.22398 13.9999 7.50012ZM13.4999 5.00012C13.776 5.00012 13.9999 4.77626 13.9999 4.50012C13.9999 4.22398 13.776 4.00012 13.4999 4.00012C13.2237 4.00012 12.9999 4.22398 12.9999 4.50012C12.9999 4.77626 13.2237 5.00012 13.4999 5.00012ZM4.99988 13.5001C4.99988 13.7763 4.77602 14.0001 4.49988 14.0001C4.22374 14.0001 3.99988 13.7763 3.99988 13.5001C3.99988 13.224 4.22374 13.0001 4.49988 13.0001C4.77602 13.0001 4.99988 13.224 4.99988 13.5001ZM7.49988 14.0001C7.77602 14.0001 7.99988 13.7763 7.99988 13.5001C7.99988 13.224 7.77602 13.0001 7.49988 13.0001C7.22374 13.0001 6.99988 13.224 6.99988 13.5001C6.99988 13.7763 7.22374 14.0001 7.49988 14.0001ZM10.9999 13.5001C10.9999 13.7763 10.776 14.0001 10.4999 14.0001C10.2237 14.0001 9.99988 13.7763 9.99988 13.5001C9.99988 13.224 10.2237 13.0001 10.4999 13.0001C10.776 13.0001 10.9999 13.224 10.9999 13.5001ZM13.4999 14.0001C13.776 14.0001 13.9999 13.7763 13.9999 13.5001C13.9999 13.224 13.776 13.0001 13.4999 13.0001C13.2237 13.0001 12.9999 13.224 12.9999 13.5001C12.9999 13.7763 13.2237 14.0001 13.4999 14.0001ZM3.99988 5.00012C3.99988 4.44784 4.44759 4.00012 4.99988 4.00012H9.99988C10.5522 4.00012 10.9999 4.44784 10.9999 5.00012V10.0001C10.9999 10.5524 10.5522 11.0001 9.99988 11.0001H4.99988C4.44759 11.0001 3.99988 10.5524 3.99988 10.0001V5.00012ZM4.99988 5.00012H9.99988V10.0001H4.99988V5.00012Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$37=["color"],MinusIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$37);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M2.25 7.5C2.25 7.22386 2.47386 7 2.75 7H12.25C12.5261 7 12.75 7.22386 12.75 7.5C12.75 7.77614 12.5261 8 12.25 8H2.75C2.47386 8 2.25 7.77614 2.25 7.5Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$3m=["color"],PauseIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$3m);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M6.04995 2.74998C6.04995 2.44623 5.80371 2.19998 5.49995 2.19998C5.19619 2.19998 4.94995 2.44623 4.94995 2.74998V12.25C4.94995 12.5537 5.19619 12.8 5.49995 12.8C5.80371 12.8 6.04995 12.5537 6.04995 12.25V2.74998ZM10.05 2.74998C10.05 2.44623 9.80371 2.19998 9.49995 2.19998C9.19619 2.19998 8.94995 2.44623 8.94995 2.74998V12.25C8.94995 12.5537 9.19619 12.8 9.49995 12.8C9.80371 12.8 10.05 12.5537 10.05 12.25V2.74998Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$3H=["color"],RocketIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$3H);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M6.85357 3.85355L7.65355 3.05353C8.2981 2.40901 9.42858 1.96172 10.552 1.80125C11.1056 1.72217 11.6291 1.71725 12.0564 1.78124C12.4987 1.84748 12.7698 1.97696 12.8965 2.10357C13.0231 2.23018 13.1526 2.50125 13.2188 2.94357C13.2828 3.37086 13.2779 3.89439 13.1988 4.44801C13.0383 5.57139 12.591 6.70188 11.9464 7.34645L7.49999 11.7929L6.35354 10.6465C6.15827 10.4512 5.84169 10.4512 5.64643 10.6465C5.45117 10.8417 5.45117 11.1583 5.64643 11.3536L7.14644 12.8536C7.34171 13.0488 7.65829 13.0488 7.85355 12.8536L8.40073 12.3064L9.57124 14.2572C9.65046 14.3893 9.78608 14.4774 9.9389 14.4963C10.0917 14.5151 10.2447 14.4624 10.3535 14.3536L12.3535 12.3536C12.4648 12.2423 12.5172 12.0851 12.495 11.9293L12.0303 8.67679L12.6536 8.05355C13.509 7.19808 14.0117 5.82855 14.1887 4.58943C14.2784 3.9618 14.2891 3.33847 14.2078 2.79546C14.1287 2.26748 13.9519 1.74482 13.6035 1.39645C13.2552 1.04809 12.7325 0.871332 12.2045 0.792264C11.6615 0.710945 11.0382 0.721644 10.4105 0.8113C9.17143 0.988306 7.80189 1.491 6.94644 2.34642L6.32322 2.96968L3.07071 2.50504C2.91492 2.48278 2.75773 2.53517 2.64645 2.64646L0.646451 4.64645C0.537579 4.75533 0.484938 4.90829 0.50375 5.0611C0.522563 5.21391 0.61073 5.34954 0.742757 5.42876L2.69364 6.59928L2.14646 7.14645C2.0527 7.24022 2.00002 7.3674 2.00002 7.50001C2.00002 7.63261 2.0527 7.75979 2.14646 7.85356L3.64647 9.35356C3.84173 9.54883 4.15831 9.54883 4.35357 9.35356C4.54884 9.1583 4.54884 8.84172 4.35357 8.64646L3.20712 7.50001L3.85357 6.85356L6.85357 3.85355ZM10.0993 13.1936L9.12959 11.5775L11.1464 9.56067L11.4697 11.8232L10.0993 13.1936ZM3.42251 5.87041L5.43935 3.85356L3.17678 3.53034L1.80638 4.90074L3.42251 5.87041ZM2.35356 10.3535C2.54882 10.1583 2.54882 9.8417 2.35356 9.64644C2.1583 9.45118 1.84171 9.45118 1.64645 9.64644L0.646451 10.6464C0.451188 10.8417 0.451188 11.1583 0.646451 11.3535C0.841713 11.5488 1.1583 11.5488 1.35356 11.3535L2.35356 10.3535ZM3.85358 11.8536C4.04884 11.6583 4.04885 11.3417 3.85359 11.1465C3.65833 10.9512 3.34175 10.9512 3.14648 11.1465L1.14645 13.1464C0.95119 13.3417 0.951187 13.6583 1.14645 13.8535C1.34171 14.0488 1.65829 14.0488 1.85355 13.8536L3.85358 11.8536ZM5.35356 13.3535C5.54882 13.1583 5.54882 12.8417 5.35356 12.6464C5.1583 12.4512 4.84171 12.4512 4.64645 12.6464L3.64645 13.6464C3.45119 13.8417 3.45119 14.1583 3.64645 14.3535C3.84171 14.5488 4.1583 14.5488 4.35356 14.3535L5.35356 13.3535ZM9.49997 6.74881C10.1897 6.74881 10.7488 6.1897 10.7488 5.5C10.7488 4.8103 10.1897 4.25118 9.49997 4.25118C8.81026 4.25118 8.25115 4.8103 8.25115 5.5C8.25115 6.1897 8.81026 6.74881 9.49997 6.74881Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$3L=["color"],RulerHorizontalIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$3L);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M0.5 4C0.223858 4 0 4.22386 0 4.5V10.5C0 10.7761 0.223858 11 0.5 11H14.5C14.7761 11 15 10.7761 15 10.5V4.5C15 4.22386 14.7761 4 14.5 4H0.5ZM1 10V5H2.075V7.5C2.075 7.73472 2.26528 7.925 2.5 7.925C2.73472 7.925 2.925 7.73472 2.925 7.5V5H4.075V6.5C4.075 6.73472 4.26528 6.925 4.5 6.925C4.73472 6.925 4.925 6.73472 4.925 6.5V5H6.075V6.5C6.075 6.73472 6.26528 6.925 6.5 6.925C6.73472 6.925 6.925 6.73472 6.925 6.5V5H8.075V7.5C8.075 7.73472 8.26528 7.925 8.5 7.925C8.73472 7.925 8.925 7.73472 8.925 7.5V5H10.075V6.5C10.075 6.73472 10.2653 6.925 10.5 6.925C10.7347 6.925 10.925 6.73472 10.925 6.5V5H12.075V6.5C12.075 6.73472 12.2653 6.925 12.5 6.925C12.7347 6.925 12.925 6.73472 12.925 6.5V5H14V10H1Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$4q=["color"],TextAlignJustifyIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$4q);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M2.5 4C2.22386 4 2 4.22386 2 4.5C2 4.77614 2.22386 5 2.5 5H12.5C12.7761 5 13 4.77614 13 4.5C13 4.22386 12.7761 4 12.5 4H2.5ZM2 7.5C2 7.22386 2.22386 7 2.5 7H12.5C12.7761 7 13 7.22386 13 7.5C13 7.77614 12.7761 8 12.5 8H2.5C2.22386 8 2 7.77614 2 7.5ZM2 10.5C2 10.2239 2.22386 10 2.5 10H12.5C12.7761 10 13 10.2239 13 10.5C13 10.7761 12.7761 11 12.5 11H2.5C2.22386 11 2 10.7761 2 10.5Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))}),_excluded$4H=["color"],TriangleDownIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$4H);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M4 6H11L7.5 10.5L4 6Z",fill:rt}))}),_excluded$4K=["color"],TriangleUpIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$4K);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M4 9H11L7.5 4.5L4 9Z",fill:rt}))}),_excluded$4R=["color"],VercelLogoIcon=reactExports.forwardRef(function(tt,et){var nt=tt.color,rt=nt===void 0?"currentColor":nt,it=_objectWithoutPropertiesLoose$e(tt,_excluded$4R);return reactExports.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},it,{ref:et}),reactExports.createElement("path",{d:"M7.49998 1L6.92321 2.00307L1.17498 12L0.599976 13H1.7535H13.2464H14.4L13.825 12L8.07674 2.00307L7.49998 1ZM7.49998 3.00613L2.3285 12H12.6714L7.49998 3.00613Z",fill:rt,fillRule:"evenodd",clipRule:"evenodd"}))});function _toPrimitive$r(tt,et){if(typeof tt!="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(typeof rt!="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}function _toPropertyKey$r(tt){var et=_toPrimitive$r(tt,"string");return typeof et=="symbol"?et:String(et)}function _defineProperty$s(tt,et,nt){return et=_toPropertyKey$r(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function ownKeys$r(tt,et){var nt=Object.keys(tt);if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(tt);et&&(rt=rt.filter(function(it){return Object.getOwnPropertyDescriptor(tt,it).enumerable})),nt.push.apply(nt,rt)}return nt}function _objectSpread2(tt){for(var et=1;et(tt==null?void 0:tt.reduce((et,nt)=>et+nt,0))/tt.length;class GLPerf{constructor(et={}){this.names=[""],this.finished=[],this.gl=void 0,this.extension=void 0,this.query=void 0,this.paused=!1,this.overClock=!1,this.queryHasResult=!1,this.queryCreated=!1,this.isWebGL2=!0,this.memAccums=[],this.gpuAccums=[],this.activeAccums=[],this.logsAccums={mem:[],gpu:[],cpu:[],fps:[],fpsFixed:[]},this.fpsChart=[],this.gpuChart=[],this.cpuChart=[],this.memChart=[],this.paramLogger=()=>{},this.glFinish=()=>{},this.chartLogger=()=>{},this.chartLen=60,this.maxMemory=1500,this.chartHz=10,this.startCpuProfiling=!1,this.lastCalculateFixed=0,this.chartFrame=0,this.gpuTimeProcess=0,this.chartTime=0,this.activeQueries=0,this.circularId=0,this.detected=0,this.frameId=0,this.rafId=0,this.idleCbId=0,this.checkQueryId=0,this.uuid=void 0,this.currentCpu=0,this.currentMem=0,this.paramFrame=0,this.paramTime=0,this.now=()=>{},this.t0=0,window.GLPerf=window.GLPerf||{},Object.assign(this,et),this.fpsChart=new Array(this.chartLen).fill(0),this.gpuChart=new Array(this.chartLen).fill(0),this.cpuChart=new Array(this.chartLen).fill(0),this.memChart=new Array(this.chartLen).fill(0),this.now=()=>window.performance&&window.performance.now?window.performance.now():Date.now(),this.initGpu(),this.is120hz()}initGpu(){this.uuid=MathUtils.generateUUID(),this.gl&&(this.isWebGL2=!0,this.extension||(this.extension=this.gl.getExtension("EXT_disjoint_timer_query_webgl2")),this.extension===null&&(this.isWebGL2=!1))}is120hz(){let et=0;const nt=rt=>{++et<20?this.rafId=window.requestAnimationFrame(nt):(this.detected=Math.ceil(1e3*et/(rt-this.t0)/70),window.cancelAnimationFrame(this.rafId)),this.t0||(this.t0=rt)};this.rafId=window.requestAnimationFrame(nt)}addUI(et){this.names.indexOf(et)===-1&&(this.names.push(et),this.gpuAccums.push(0),this.activeAccums.push(!1))}nextFps(et){const nt=16.666666666666668,rt=nt-et.timeRemaining(),it=nt*overLimitFps.fpsLimit/10/rt;it<0||(overLimitFps.value=it,overLimitFps.isOverLimit<25?overLimitFps.isOverLimit++:usePerfStore.setState({overclockingFps:!0}))}nextFrame(et){this.frameId++;const nt=et||this.now();let rt=nt-this.paramTime,it=0;if(this.frameId<=1)this.paramFrame=this.frameId,this.paramTime=nt;else if(nt>=this.paramTime){this.maxMemory=window.performance.memory?window.performance.memory.jsHeapSizeLimit/1048576:0;const ot=this.frameId-this.paramFrame,at=ot*1e3/rt,st=usePerfStore.getState().overclockingFps?overLimitFps.value:at;if(it=this.isWebGL2?this.gpuAccums[0]:this.gpuAccums[0]/rt,this.isWebGL2?this.gpuAccums[0]=0:Promise.all(this.finished).then(()=>{this.gpuAccums[0]=0,this.finished=[]}),this.currentMem=Math.round(window.performance&&window.performance.memory?window.performance.memory.usedJSHeapSize/1048576:0),window.performance&&this.startCpuProfiling){window.performance.mark("cpu-finished");const lt=performance.measure("cpu-duration","cpu-started","cpu-finished");this.currentCpu=lt.duration,this.logsAccums.cpu.push(this.currentCpu),this.startCpuProfiling=!1}this.logsAccums.mem.push(this.currentMem),this.logsAccums.fpsFixed.push(at),this.logsAccums.fps.push(st),this.logsAccums.gpu.push(it),this.overClock&&typeof window.requestIdleCallback<"u"&&(overLimitFps.isOverLimit>0&&st>at?overLimitFps.isOverLimit--:usePerfStore.getState().overclockingFps&&usePerfStore.setState({overclockingFps:!1})),nt>=this.paramTime+180&&(this.paramLogger({cpu:average(this.logsAccums.cpu),gpu:average(this.logsAccums.gpu),mem:average(this.logsAccums.mem),fps:average(this.logsAccums.fps),duration:Math.round(rt),maxMemory:this.maxMemory,frameCount:ot}),this.logsAccums.mem=[],this.logsAccums.fps=[],this.logsAccums.gpu=[],this.logsAccums.cpu=[],this.paramFrame=this.frameId,this.paramTime=nt),this.overClock&&nt-this.lastCalculateFixed>=2*1e3&&(this.lastCalculateFixed=et,overLimitFps.fpsLimit=Math.round(average(this.logsAccums.fpsFixed)/10)*100,usePerfStore.setState({fpsLimit:overLimitFps.fpsLimit/10}),this.logsAccums.fpsFixed=[],this.paramFrame=this.frameId,this.paramTime=nt)}if(!this.detected||!this.chartFrame)this.chartFrame=this.frameId,this.chartTime=nt,this.circularId=0;else{const ot=nt-this.chartTime;let at=this.chartHz*ot/1e3;for(;--at>0&&this.detected;){const lt=(this.frameId-this.chartFrame)/ot*1e3,ct=usePerfStore.getState().overclockingFps?overLimitFps.value:lt;this.fpsChart[this.circularId%this.chartLen]=ct;const ut=1e3/this.currentMem,ht=this.currentCpu,dt=(this.isWebGL2?this.gpuAccums[1]*2:Math.round(this.gpuAccums[1]/rt*100))+4;dt>0&&(this.gpuChart[this.circularId%this.chartLen]=dt),ht>0&&(this.cpuChart[this.circularId%this.chartLen]=ht),ut>0&&(this.memChart[this.circularId%this.chartLen]=ut);for(let pt=0;pt0&&(it||this.activeAccums.forEach((lt,ct)=>{this.gpuAccums[ct]=st}))}}(rt||!this.query)&&(this.queryCreated=!0,this.query=et.createQuery(),et.beginQuery(nt.TIME_ELAPSED_EXT,this.query))}}endGpu(){const et=this.extension,nt=this.gl;this.isWebGL2&&this.queryCreated&&nt.getQuery(et.TIME_ELAPSED_EXT,nt.CURRENT_QUERY)&&nt.endQuery(et.TIME_ELAPSED_EXT)}begin(et){this.startGpu(),this.updateAccums(et)}end(et){this.endGpu(),this.updateAccums(et)}updateAccums(et){let nt=this.names.indexOf(et);nt===-1&&(nt=this.names.length,this.addUI(et));const rt=this.now();this.activeAccums[nt]=!this.activeAccums[nt],this.t0=rt}}const countGeoDrawCalls=tt=>{tt.forEach((et,nt)=>{const{meshes:rt}=et;if(!rt)return;let it={total:0,type:"Triangle",data:[]};Object.keys(rt).forEach(ot=>{const at=rt[ot],{geometry:st,material:lt}=at;let ct=st.index;const ut=st.attributes.position;if(!ut)return;let ht=1;lt.wireframe===!0&&(ht=0);const dt=ct!==null?ct.count:ut.count,pt=st.drawRange.start*ht,mt=st.drawRange.count*ht,gt=pt,yt=Math.min(dt,pt+mt)-1;let bt=1;const wt=at.count||1;let vt="Triangle",kt=0;at.isMesh?lt.wireframe===!0?(vt="Line",bt=bt/2):(vt="Triangle",bt=bt/3):at.isLine?(vt="Line",at.isLineSegments?bt=bt/2:at.isLineLoop?bt=bt:bt=bt-1):at.isPoints?(vt="Point",bt=bt):at.isSprite&&(vt="Triangle",bt=bt/3);const St=Math.round(Math.max(0,yt-gt+1)*(bt*wt));St>kt&&(kt=St,it.type=vt),it.total+=St,it.data.push({drawCount:St,type:vt}),at.userData.drawCount={type:vt,count:St}}),et.drawCounts=it})},updateMatrixWorldTemp=Object3D.prototype.updateMatrixWorld,updateWorldMatrixTemp=Object3D.prototype.updateWorldMatrix,updateMatrixTemp=Object3D.prototype.updateMatrix;let matriceWorldCount={value:0},matriceCount={value:0};const isUUID=tt=>{let et=""+tt;return et=et.match("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"),et!==null},addMuiPerfID=(tt,et)=>{tt.defines||(tt.defines={}),tt.defines&&!tt.defines.muiPerf&&(tt.defines=Object.assign(tt.defines||{},{muiPerf:tt.uuid}));const nt=tt.uuid;return et[nt]||(et[nt]={meshes:{},material:tt},tt.needsUpdate=!0),tt.needsUpdate=!1,nt},getMUIIndex=tt=>tt==="muiPerf",usePerfStore=react(tt=>({log:null,paused:!1,triggerProgramsUpdate:0,customData:0,fpsLimit:60,overclockingFps:!1,chart:{data:{fps:[],cpu:[],gpu:[],mem:[]},circularId:0},gl:void 0,objectWithMaterials:null,scene:void 0,programs:new Map,sceneLength:void 0,tab:"infos"})),Headless=({trackCPU:tt,overClock:et,chart:nt,deepAnalyze:rt,matrixUpdate:it})=>{const{gl:ot,scene:at}=useThree();usePerfStore.setState({gl:ot,scene:at});const st=reactExports.useMemo(()=>{const lt=new GLPerf({trackGPU:!0,overClock:et,chartLen:nt?nt.length:120,chartHz:nt?nt.hz:60,gl:ot.getContext(),chartLogger:ht=>{usePerfStore.setState({chart:ht})},paramLogger:ht=>{usePerfStore.setState({log:{maxMemory:ht.maxMemory,gpu:ht.gpu,cpu:ht.cpu,mem:ht.mem,fps:ht.fps,totalTime:ht.duration,frameCount:ht.frameCount}})}}),ct=new Map,ut=new Map;return Object.defineProperty(Scene.prototype,"onBeforeRender",{get(){return(...ht)=>{var dt;lt&<.begin("profiler"),(dt=ct.get(this))===null||dt===void 0||dt(...ht)}},set(ht){ct.set(this,ht)},configurable:!0}),Object.defineProperty(Scene.prototype,"onAfterRender",{get(){return(...ht)=>{var dt;lt&<.end("profiler"),(dt=ut.get(this))===null||dt===void 0||dt(...ht)}},set(ht){ut.set(this,ht)},configurable:!0}),lt},[]);return reactExports.useEffect(()=>{st&&(st.overClock=et||!1,et===!1&&(usePerfStore.setState({overclockingFps:!1}),overLimitFps.value=0,overLimitFps.isOverLimit=0),st.chartHz=(nt==null?void 0:nt.hz)||60,st.chartLen=(nt==null?void 0:nt.length)||120)},[et,st,nt==null?void 0:nt.length,nt==null?void 0:nt.hz]),reactExports.useEffect(()=>{it&&(Object3D.prototype.updateMatrixWorld=function(){(this.matrixWorldNeedsUpdate||arguments[0])&&matriceWorldCount.value++,updateMatrixWorldTemp.apply(this,arguments)},Object3D.prototype.updateWorldMatrix=function(){matriceWorldCount.value++,updateWorldMatrixTemp.apply(this,arguments)},Object3D.prototype.updateMatrix=function(){matriceCount.value++,updateMatrixTemp.apply(this,arguments)}),ot.info.autoReset=!1;let lt=null,ct=null;if(ot.info)return lt=addEffect(function(){usePerfStore.getState().paused&&usePerfStore.setState({paused:!1}),window.performance&&(window.performance.mark("cpu-started"),st.startCpuProfiling=!0),matriceCount.value-=1,matriceWorldCount.value=0,matriceCount.value=0,ot.info&&ot.info.reset()}),ct=addAfterEffect(function(){if(st&&!st.paused&&(st.nextFrame(window.performance.now()),et&&typeof window.requestIdleCallback<"u"&&(st.idleCbId=requestIdleCallback(st.nextFps))),rt){var ht,dt;const pt={},mt=new Map;at.traverse(function(yt){if((yt instanceof Mesh||yt instanceof Points)&&yt.material){let bt=yt.material.uuid;Array.isArray(yt.material)&&yt.material.length>1?bt=addMuiPerfID(yt.material[1],pt):bt=addMuiPerfID(yt.material,pt),pt[bt].meshes[yt.uuid]=yt}}),ot==null||(ht=ot.info)===null||ht===void 0||(dt=ht.programs)===null||dt===void 0||dt.forEach(gt=>{const yt=gt.cacheKey.split(","),bt=yt[yt.findIndex(getMUIIndex)+1];if(isUUID(bt)&&pt[bt]){const{material:wt,meshes:vt}=pt[bt];mt.set(bt,{program:gt,material:wt,meshes:vt,drawCounts:{total:0,type:"triangle",data:[]},expand:!1,visible:!0})}}),mt.size!==usePerfStore.getState().programs.size&&(countGeoDrawCalls(mt),usePerfStore.setState({programs:mt,triggerProgramsUpdate:usePerfStore.getState().triggerProgramsUpdate++}))}}),()=>{st&&(typeof window.cancelIdleCallback<"u"&&window.cancelIdleCallback(st.idleCbId),window.cancelAnimationFrame(st.rafId),window.cancelAnimationFrame(st.checkQueryId)),it&&(Object3D.prototype.updateMatrixWorld=updateMatrixTemp),lt(),ct()}},[st,ot,tt,nt,it]),reactExports.useEffect(()=>{const lt=addTail(function(){return st&&(st.paused=!0,matriceCount.value=0,matriceWorldCount.value=0,usePerfStore.setState({paused:!0,log:{maxMemory:0,gpu:0,mem:0,cpu:0,fps:0,totalTime:0,frameCount:0}})),!1});return()=>{lt()}},[]),null},PerfS=re$4("div",{position:"fixed",top:0,right:0,zIndex:9999,fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif`,backgroundColor:"rgba(36, 36, 36, .9)",color:"#fff",margin:0,minHeight:"100px",padding:"4px 0","-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale",userSelect:"none","&.top-left":{right:"initial",left:0},"&.bottom-left":{right:"initial",top:"initial",bottom:0,left:0,".__perf_toggle":{top:"-20px",bottom:"initial"}},"&.bottom-right":{top:"initial",bottom:0,".__perf_toggle":{top:"-20px",bottom:"initial"}},"&.minimal":{backgroundColor:"rgba(36, 36, 36, .75)"},"*":{margin:"0",padding:"0",border:"0",fontSize:"100%",lineHeight:"1",verticalAlign:"baseline"}}),PerfSmallI=re$4("small",{position:"absolute",right:0,fontSize:"10px"}),PerfI=re$4("div",{display:"inline-flex",fontStyle:"normal",padding:0,lineHeight:"13px",fontSize:"14px",width:"62px",position:"relative",pointerEvents:"auto",cursor:"default",fontWeight:500,letterSpacing:"0px",textAlign:"left",height:"29px",whiteSpace:"nowrap",justifyContent:"space-evenly",fontVariantNumeric:"tabular-nums",small:{paddingLeft:"12px"},svg:{padding:0,color:"rgba(145, 145, 145, 0.3)",fontSize:"40px",position:"absolute",zIndex:1,maxHeight:"20px",left:" 50%",marginLeft:"-23px",top:"4px"}}),PerfB=re$4("span",{verticalAlign:"bottom",position:"absolute",bottom:"5px",color:"rgba(101, 197, 188, 1)",textAlign:"right",letterSpacing:"1px",fontSize:"8px",fontWeight:"500",width:"60px"}),PerfIContainer=re$4("div",{display:"flex"}),ProgramHeader=re$4("div",{backgroundColor:"#404040",padding:"6px",display:"block",fontSize:"12px",marginBottom:"6px",cursor:"pointer","*":{cursor:"pointer !important"},"> span":{},small:{fontSize:"9px"},"> b":{marginRight:"4px",cursor:"pointer"}}),Graph$1=re$4("div",{height:"66px",overflow:"hidden",position:"absolute",pointerEvents:"none",display:"flex",top:"0px",justifyContent:"center",width:"100%",minWidth:"310px",margin:"0 auto",canvas:{background:"transparent !important",position:"absolute !important"}}),Graphpc=re$4("div",{textAlign:"center",fontWeight:700,fontSize:"12px",lineHeight:"12px",display:"flex",justifyContent:"center",alignItems:"center",verticalAlign:"middle",color:"#f1f1f1",padding:"7px",width:"100%",backgroundColor:"rgba(36, 36, 37, 0.8)",zIndex:1,position:"absolute",height:"100%"}),Toggle=re$4("div",{pointerEvents:"auto",justifyContent:"center",cursor:"pointer",fontSize:"12px",backgroundColor:"rgb(41, 43, 45)",marginTop:"6px",width:"auto",margin:"0",color:"rgba(145, 145, 145, 1)",textAlign:"center",display:"inline-block",verticalAlign:"middle",padding:"4px 6px","&.__perf_toggle_tab_active":{backgroundColor:"rgb(31 31 31)"},svg:{width:"12px",height:"12px",float:"left"}}),ToggleVisible=re$4("div",{pointerEvents:"auto",justifyContent:"center",cursor:"pointer",fontSize:"12px",float:"right",backgroundColor:"rgb(41, 43, 45)",width:"auto",margin:"0",color:"rgba(145, 145, 145, 1)",textAlign:"center",display:"inline-block",verticalAlign:"middle",padding:"4px 6px","&.__perf_toggle_tab_active":{backgroundColor:"rgb(31 31 31)"},svg:{width:"12px",height:"12px",float:"left"}}),ProgramGeo=re$4("div",{padding:"4px 6px",fontSize:"12px",pointerEvents:"auto"}),ProgramTitle=re$4("span",{fontWeight:"bold",letterSpacing:"0.08em",maxWidth:"145px",overflow:"hidden",textOverflow:"ellipsis",display:"inline-block",verticalAlign:"middle",fontSize:"11px",marginRight:"10px"}),ContainerScroll=re$4("div",{maxHeight:"50vh",overflowY:"auto",marginTop:"38px"}),ProgramsContainer=re$4("div",{marginTop:"0"}),ProgramsULHeader=re$4("div",{display:"flex",position:"relative",fontWeight:"bold",color:"#fff",lineHeight:"14px",svg:{marginRight:"4px",display:"inline-block"}}),ProgramsUL=re$4("ul",{display:"block",position:"relative",paddingLeft:"10px",margin:"6px 6px",img:{maxHeight:"60px",maxWidth:"100%",margin:"6px auto",display:"block"},"&:after":{content:"",position:"absolute",left:"0px",top:"0px",width:"1px",height:"100%",backgroundColor:"grey",transform:"translateX(-50%)",maxHeight:"50vh",overflowY:"auto"},li:{borderBottom:"1px solid #313131",display:"block",padding:"4px",margin:0,lineHeight:1,verticalAlign:"middle",height:"24px"},b:{fontWeight:"bold"},small:{textAlign:"revert",letterSpacing:"1px",fontSize:"10px",fontWeight:"500",marginLeft:"2px",color:"rgb(101, 197, 188)"}}),ProgramConsole=re$4("button",{fontWeight:"bold",letterSpacing:"0.02em",backgroundColor:"rgb(41, 43, 45)",color:"rgb(211, 211, 211)",overflow:"hidden",textOverflow:"ellipsis",cursor:"pointer",display:"block",verticalAlign:"middle",fontSize:"11px",padding:"5px",margin:"4px auto"}),ToggleContainer=re$4("div",{display:"flex",justifyContent:"center",cursor:"pointer",fontSize:"12px",backgroundColor:"rgb(41, 43, 45)",marginTop:"6px",width:"auto",margin:"0 auto",color:"rgba(145, 145, 145, 1)",textAlign:"center",position:"absolute",right:0,bottom:" -20px",svg:{width:"12px",height:"12px",float:"left"}}),ProgramsGeoLi=re$4("li",{display:"flex !important",height:"auto !important",span:{height:"40px",display:"block",position:"relative"},b:{paddingLeft:"12px"}}),TextHighHZ=reactExports.memo(({isPerf:tt,color:et,colorBlind:nt,customData:rt,isMemory:it,isShadersInfo:ot,metric:at,fontSize:st,offsetY:lt=0,offsetX:ct,round:ut,hasInstance:ht})=>{const{width:dt,height:pt}=useThree(yt=>yt.viewport),mt=reactExports.useRef(null),gt=reactExports.useRef(null);return useFrame(function(){const bt=usePerfStore.getState().gl,wt=usePerfStore.getState().log;if(!wt||!mt.current||(rt&&(mt.current.text=usePerfStore.getState().customData),!at))return;let vt=wt[at];if(ot){var kt;vt=(kt=bt.info.programs)===null||kt===void 0?void 0:kt.length}else at==="matriceCount"?vt=matriceCount.value:!tt&&bt.info.render&&(vt=(it?bt.info.memory:bt.info.render)[at]);if(at==="fps"&&(mt.current.color=usePerfStore.getState().overclockingFps?colorsGraph(nt).overClock.toString():`rgb(${colorsGraph(nt).fps.toString()})`),mt.current.text=(Math.round(vt*Math.pow(10,ut))/Math.pow(10,ut)).toFixed(ut),ht){const St=bt.info.instance;if(typeof St>"u"&&at!=="matriceCount")return;let Tt;at==="matriceCount"?Tt=matriceWorldCount.value:Tt=St[at],Tt>0?(mt.current.fontSize=st/1.15,gt.current.fontSize=vt>0?st/1.4:st,mt.current.position.y=pt/2-lt-st/1.9,gt.current.text=" ± "+(Math.round(Tt*Math.pow(10,ut))/Math.pow(10,ut)).toFixed(ut)):(mt.current.position.y=pt/2-lt-st,mt.current.fontSize=st)}matriceCount.value-=1,mt.current.updateMatrix(),mt.current.matrixWorld.copy(mt.current.matrix)}),jsxRuntimeExports.jsxs(reactExports.Suspense,{fallback:null,children:[jsxRuntimeExports.jsxs(Text$1,{textAlign:"justify",matrixAutoUpdate:!1,ref:mt,fontSize:st,position:[-dt/2+ct+st,pt/2-lt-st,0],color:et,characters:"0123456789",onUpdate:yt=>{yt.updateMatrix(),matriceCount.value-=1,yt.matrixWorld.copy(yt.matrix)},children:[jsxRuntimeExports.jsx("meshBasicMaterial",{blending:NormalBlending}),"0"]}),ht&&jsxRuntimeExports.jsx(Text$1,{textAlign:"justify",matrixAutoUpdate:!1,ref:gt,fontSize:8,position:[-dt/2+ct+st,pt/2-lt-st*1.15,0],color:"lightgrey",characters:"0123456789",onUpdate:yt=>{yt.updateMatrix(),matriceCount.value-=1,yt.matrixWorld.copy(yt.matrix)},children:jsxRuntimeExports.jsx("meshBasicMaterial",{blending:NormalBlending})})]})}),TextsHighHZ=({colorBlind:tt,customData:et,minimal:nt,matrixUpdate:rt})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(TextHighHZ,{colorBlind:tt,color:`rgb(${colorsGraph(tt).fps.toString()})`,isPerf:!0,metric:"fps",fontSize:14,offsetX:140,round:0}),jsxRuntimeExports.jsx(TextHighHZ,{color:`rgb(${colorsGraph(tt).cpu.toString()})`,isPerf:!0,metric:"cpu",fontSize:14,offsetX:72,round:3}),jsxRuntimeExports.jsx(TextHighHZ,{color:`rgb(${colorsGraph(tt).gpu.toString()})`,isPerf:!0,metric:"gpu",fontSize:14,offsetX:10,round:3}),nt?null:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(TextHighHZ,{metric:"calls",fontSize:14,offsetX:200,round:0,hasInstance:!0}),jsxRuntimeExports.jsx(TextHighHZ,{metric:"triangles",fontSize:14,offsetX:260,round:0,hasInstance:!0}),jsxRuntimeExports.jsx(TextHighHZ,{isMemory:!0,metric:"geometries",fontSize:14,offsetY:30,offsetX:0,round:0}),jsxRuntimeExports.jsx(TextHighHZ,{isMemory:!0,metric:"textures",fontSize:14,offsetY:30,offsetX:80,round:0}),jsxRuntimeExports.jsx(TextHighHZ,{isShadersInfo:!0,metric:"programs",fontSize:14,offsetY:30,offsetX:140,round:0}),jsxRuntimeExports.jsx(TextHighHZ,{metric:"lines",fontSize:14,offsetY:30,offsetX:200,round:0,hasInstance:!0}),jsxRuntimeExports.jsx(TextHighHZ,{metric:"points",fontSize:14,offsetY:30,offsetX:260,round:0,hasInstance:!0}),rt&&jsxRuntimeExports.jsx(TextHighHZ,{isPerf:!0,metric:"matriceCount",fontSize:14,offsetY:30,offsetX:320,round:0,hasInstance:!0})]}),et&&jsxRuntimeExports.jsx(TextHighHZ,{color:`rgb(${colorsGraph(tt).custom.toString()})`,customData:et,fontSize:14,offsetY:0,offsetX:nt?200:320,round:0})]}),ChartCurve=({colorBlind:tt,minimal:et,chart:nt={length:30,hz:15}})=>{const rt=reactExports.useMemo(()=>({fps:new Float32Array(nt.length*3),cpu:new Float32Array(nt.length*3),gpu:new Float32Array(nt.length*3)}),[nt]),it=reactExports.useRef(null),ot=reactExports.useRef(null),at=reactExports.useRef(null),st=reactExports.useRef(null),lt=reactExports.useMemo(()=>new Vector3(0,0,0),[]),ct=(ut,ht=1,dt,pt)=>{let mt=0;const{width:gt,height:yt}=pt,bt=usePerfStore.getState().chart.data[ut];if(!bt||bt.length===0)return;const wt=et?2:6,vt=et?12:50;let kt=bt.length;for(let St=0;Stmt&&(mt=bt[Tt]*ht),lt.set(wt+St/(kt-1)*(gt-wt*2)-gt/2,Math.min(100,bt[Tt])*ht/100*(yt-wt*2-vt)-yt/2,0),lt.toArray(dt.attributes.position.array,St*3))}dt.attributes.position.needsUpdate=!0};return useFrame(function({viewport:ht}){ct("fps",1,it.current,ht),ot.current&&ot.current.color.set(usePerfStore.getState().overclockingFps?colorsGraph(tt).overClock.toString():`rgb(${colorsGraph(tt).fps.toString()})`),ct("gpu",5,at.current,ht),ct("cpu",5,st.current,ht)}),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("line",{children:[jsxRuntimeExports.jsx("bufferGeometry",{ref:it,children:jsxRuntimeExports.jsx("bufferAttribute",{attach:"attributes-position",count:nt.length,array:rt.fps,itemSize:3,usage:DynamicDrawUsage,needsUpdate:!0})}),jsxRuntimeExports.jsx("lineBasicMaterial",{ref:ot,color:`rgb(${colorsGraph(tt).fps.toString()})`,transparent:!0,opacity:.5})]}),jsxRuntimeExports.jsxs("line",{children:[jsxRuntimeExports.jsx("bufferGeometry",{ref:at,children:jsxRuntimeExports.jsx("bufferAttribute",{attach:"attributes-position",count:nt.length,array:rt.gpu,itemSize:3,usage:DynamicDrawUsage,needsUpdate:!0})}),jsxRuntimeExports.jsx("lineBasicMaterial",{color:`rgb(${colorsGraph(tt).gpu.toString()})`,transparent:!0,opacity:.5})]}),jsxRuntimeExports.jsxs("line",{children:[jsxRuntimeExports.jsx("bufferGeometry",{ref:st,children:jsxRuntimeExports.jsx("bufferAttribute",{attach:"attributes-position",count:nt.length,array:rt.cpu,itemSize:3,usage:DynamicDrawUsage,needsUpdate:!0})}),jsxRuntimeExports.jsx("lineBasicMaterial",{color:`rgb(${colorsGraph(tt).cpu.toString()})`,transparent:!0,opacity:.5})]})]})},ChartUI=({colorBlind:tt,chart:et,customData:nt,matrixUpdate:rt,showGraph:it=!0,antialias:ot=!0,minimal:at})=>{const st=reactExports.useRef(void 0),lt=usePerfStore(ct=>ct.paused);return jsxRuntimeExports.jsxs(Graph$1,{style:{display:"flex",position:"absolute",height:`${at?37:it?100:60}px`,minWidth:`${at?"100px":nt?"370px":"310px"}`},children:[jsxRuntimeExports.jsx(Canvas$1,{ref:st,orthographic:!0,dpr:ot?[1,2]:1,gl:{antialias:!0,alpha:!0,stencil:!1,depth:!1},onCreated:({scene:ct})=>{ct.traverse(ut=>{ut.matrixWorldAutoUpdate=!1,ut.matrixAutoUpdate=!1})},flat:!0,style:{marginBottom:"-42px",position:"relative",pointerEvents:"none",background:"transparent !important",height:`${at?37:it?100:60}px`},children:lt?null:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Renderer,{}),jsxRuntimeExports.jsx(TextsHighHZ,{customData:nt,minimal:at,matrixUpdate:rt}),it&&jsxRuntimeExports.jsx(ChartCurve,{colorBlind:tt,minimal:at,chart:et})]})}),lt&&jsxRuntimeExports.jsxs(Graphpc,{children:[jsxRuntimeExports.jsx(PauseIcon,{})," PAUSED"]})]})},Renderer=()=>(useFrame(function({gl:et,scene:nt,camera:rt}){rt.updateMatrix(),matriceCount.value-=1,rt.matrixWorld.copy(rt.matrix),rt.matrixWorldInverse.copy(rt.matrixWorld).invert(),et.render(nt,rt),matriceWorldCount.value=0,matriceCount.value=0},1/0),null);function _objectWithoutPropertiesLoose$d(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _objectWithoutProperties$d(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$d(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}const _excluded$y=["portal","className","children"],Html=reactExports.forwardRef((tt,et)=>{let{portal:nt,className:rt,children:it}=tt,ot=_objectWithoutProperties$d(tt,_excluded$y);const at=useThree(ut=>ut.gl),st=reactExports.useRef(null),lt=reactExports.useRef(null),ct=(nt==null?void 0:nt.current)!=null?nt.current:at.domElement.parentNode;return reactExports.useLayoutEffect(()=>{if(!st.current||!ct)return;const ut=document.createElement("div"),ht=lt.current=createRoot$1(ut);return ct.appendChild(ut),()=>{ht.unmount(),lt.current=null,ct.removeChild(ut)}},[ct]),reactExports.useLayoutEffect(()=>{const ut=lt.current;ut&&ut.render(jsxRuntimeExports.jsx("div",{ref:et,className:rt,children:it}))}),jsxRuntimeExports.jsx("group",_objectSpread2(_objectSpread2({},ot),{},{ref:st}))}),addTextureUniforms=(tt,et)=>{const nt=it=>{switch(it){case 1e3:return"RepeatWrapping";case 1001:return"ClampToEdgeWrapping";case 1002:return"MirroredRepeatWrapping";default:return"ClampToEdgeWrapping"}},rt=it=>{switch(it){case 3e3:return"LinearEncoding";case 3001:return"sRGBEncoding";case 3002:return"RGBEEncoding";case 3003:return"LogLuvEncoding";case 3004:return"RGBM7Encoding";case 3005:return"RGBM16Encoding";case 3006:return"RGBDEncoding";case 3007:return"GammaEncoding";default:return"ClampToEdgeWrapping"}};return{name:tt,url:et.image.currentSrc,encoding:rt(et.encoding),wrapT:nt(et.image.wrapT),flipY:et.flipY.toString()}},UniformsGL=({program:tt,material:et,setTexNumber:nt})=>{const rt=usePerfStore(at=>at.gl),[it,ot]=reactExports.useState(null);return reactExports.useEffect(()=>{if(rt){const at=tt==null?void 0:tt.getUniforms();let st=0;const lt=new Map;at.seq.forEach(ct=>{if(!ct.id.includes("uTroika")&&ct.id!=="isOrthographic"&&ct.id!=="uvTransform"&&ct.id!=="lightProbe"&&ct.id!=="projectionMatrix"&&ct.id!=="viewMatrix"&&ct.id!=="normalMatrix"&&ct.id!=="modelMatrix"&&ct.id!=="modelViewMatrix"){let ut=[],ht={name:ct.id};ct.cache&&(ct.cache.forEach(dt=>{typeof dt<"u"&&ut.push(dt.toString().substring(0,4))}),ht.value=ut.join(),et[ct.id]&&et[ct.id].image&&et[ct.id].image&&(st++,ht.value=addTextureUniforms(ct.id,et[ct.id])),ht.value||(ht.value="empty"),lt.set(ct.id,ht))}}),et.uniforms&&Object.keys(et.uniforms).forEach(ct=>{const ut=et.uniforms[ct];if(ut.value){const{value:ht}=ut;let dt={name:ct};if(ct.includes("uTroika"))return;if(ht instanceof Texture)st++,dt.value=addTextureUniforms(ct,ht);else{let pt=JSON.stringify(ht);try{pt=JSON.stringify(ht)}catch{pt=ht.toString()}dt.value=pt}lt.set(ct,dt)}}),st>0&&nt(st),ot(lt)}},[]),jsxRuntimeExports.jsx(ProgramsUL,{children:it&&Array.from(it.values()).map(at=>jsxRuntimeExports.jsx("span",{children:typeof at.value=="string"?jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsxs("span",{children:[at.name," :"," ",jsxRuntimeExports.jsxs("b",{children:[at.value.substring(0,30),at.value.length>30?"...":""]})]})}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsxs("b",{children:[at.value.name,":"]})}),jsxRuntimeExports.jsxs("div",{children:[Object.keys(at.value).map(st=>st!=="name"?jsxRuntimeExports.jsx("div",{children:st==="url"?jsxRuntimeExports.jsx("a",{href:at.value[st],target:"_blank",children:jsxRuntimeExports.jsx("img",{src:at.value[st]})}):jsxRuntimeExports.jsxs("li",{children:[st,": ",jsxRuntimeExports.jsx("b",{children:at.value[st]})]})},st):null),jsxRuntimeExports.jsxs(ProgramConsole,{onClick:()=>{var st;console.info(et[at.value.name]||(et==null||(st=et.uniforms[at.value.name])===null||st===void 0?void 0:st.value))},children:["console.info(",at.value.name,");"]})]})]})},at.name))})},DynamicDrawCallInfo=({el:tt})=>{usePerfStore(rt=>rt.log);const et=usePerfStore(rt=>rt.gl),nt=rt=>{if(!et)return 0;const it=Math.round(rt.drawCounts.total/(et.info.render.triangles+et.info.render.lines+et.info.render.points)*100*10)/10;return isFinite(it)&&it||0};return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:tt.drawCounts.total>0&&jsxRuntimeExports.jsxs(PerfI,{style:{height:"auto",width:"auto",margin:"0 4px"},children:[tt.drawCounts.type==="Triangle"?jsxRuntimeExports.jsx(VercelLogoIcon,{style:{top:"-1px"}}):jsxRuntimeExports.jsx(ActivityLogIcon,{style:{top:"-1px"}}),tt.drawCounts.total,jsxRuntimeExports.jsxs("small",{children:[tt.drawCounts.type,"s"]}),et&&jsxRuntimeExports.jsxs(PerfB,{style:{bottom:"-10px",width:"40px",fontWeight:"bold"},children:[tt.visible&&!tt.material.wireframe?nt(tt):0,"%"]})]})})},ProgramUI=({el:tt})=>{const[et,nt]=reactExports.useState(tt.visible),[rt,it]=reactExports.useState(tt.expand),[ot,at]=reactExports.useState(0),{meshes:st,program:lt,material:ct}=tt;return jsxRuntimeExports.jsxs(ProgramGeo,{children:[jsxRuntimeExports.jsxs(ProgramHeader,{onClick:()=>{tt.expand=!rt,Object.keys(st).forEach(ut=>{const ht=st[ut];ht.material.wireframe=!1}),it(!rt)},children:[jsxRuntimeExports.jsx(Toggle,{style:{marginRight:"6px"},children:rt?jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx(TriangleDownIcon,{})}):jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx(TriangleUpIcon,{})})}),lt&&jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx(ProgramTitle,{children:lt.name}),jsxRuntimeExports.jsxs(PerfI,{style:{height:"auto",width:"auto",margin:"0 4px"},children:[jsxRuntimeExports.jsx(LayersIcon,{style:{top:"-1px"}}),Object.keys(st).length,jsxRuntimeExports.jsx("small",{children:Object.keys(st).length>1?"users":"user"})]}),ot>0&&jsxRuntimeExports.jsxs(PerfI,{style:{height:"auto",width:"auto",margin:"0 4px"},children:[ot>1?jsxRuntimeExports.jsx(ImageIcon,{style:{top:"-1px"}}):jsxRuntimeExports.jsx(ImageIcon,{style:{top:"-1px"}}),ot,jsxRuntimeExports.jsx("small",{children:"tex"})]}),jsxRuntimeExports.jsx(DynamicDrawCallInfo,{el:tt}),ct.glslVersion==="300 es"&&jsxRuntimeExports.jsxs(PerfI,{style:{height:"auto",width:"auto",margin:"0 4px"},children:[jsxRuntimeExports.jsx(RocketIcon,{style:{top:"-1px"}}),"300",jsxRuntimeExports.jsx("small",{children:"es"}),jsxRuntimeExports.jsx(PerfB,{style:{bottom:"-10px",width:"40px"},children:"glsl"})]})]}),jsxRuntimeExports.jsx(ToggleVisible,{onPointerEnter:()=>{Object.keys(st).forEach(ut=>{const ht=st[ut];ht.material.wireframe=!0})},onPointerLeave:()=>{Object.keys(st).forEach(ut=>{const ht=st[ut];ht.material.wireframe=!1})},onClick:ut=>{ut.stopPropagation(),Object.keys(st).forEach(ht=>{const dt=st[ht],pt=!et;dt.visible=pt,tt.visible=pt,nt(pt)})},children:et?jsxRuntimeExports.jsx(EyeOpenIcon,{}):jsxRuntimeExports.jsx(EyeNoneIcon,{})})]}),jsxRuntimeExports.jsxs("div",{style:{maxHeight:rt?"9999px":0,overflow:"hidden"},children:[jsxRuntimeExports.jsxs(ProgramsULHeader,{children:[jsxRuntimeExports.jsx(ButtonIcon,{})," Uniforms:"]}),jsxRuntimeExports.jsx(UniformsGL,{program:lt,material:ct,setTexNumber:at}),jsxRuntimeExports.jsxs(ProgramsULHeader,{children:[jsxRuntimeExports.jsx(CubeIcon,{})," Geometries:"]}),jsxRuntimeExports.jsx(ProgramsUL,{children:st&&Object.keys(st).map(ut=>st[ut]&&st[ut].geometry&&jsxRuntimeExports.jsxs(ProgramsGeoLi,{children:[jsxRuntimeExports.jsxs("span",{children:[st[ut].geometry.type,": "]}),st[ut].userData&&st[ut].userData.drawCount&&jsxRuntimeExports.jsxs("b",{children:[jsxRuntimeExports.jsxs("div",{children:[st[ut].userData.drawCount.count,jsxRuntimeExports.jsxs("small",{children:[" ",st[ut].userData.drawCount.type,"s"]})]}),jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsxs("div",{children:[Math.round(estimateBytesUsed(st[ut].geometry)/1024*1e3)/1e3,"Kb",jsxRuntimeExports.jsx("small",{children:" memory used"})]})]})]},ut))}),jsxRuntimeExports.jsxs(ProgramConsole,{onClick:()=>{console.info(ct)},children:["console.info(",ct.type,")"]})]})]})},ProgramsUI=()=>{usePerfStore(et=>et.triggerProgramsUpdate);const tt=usePerfStore(et=>et.programs);return jsxRuntimeExports.jsx(ProgramsContainer,{children:tt&&Array.from(tt.values()).map(et=>et&&et?jsxRuntimeExports.jsx(ProgramUI,{el:et},et.material.uuid):null)})},colorsGraph=tt=>({overClock:"#ff6eff",fps:tt?"100, 143, 255":"238,38,110",cpu:tt?"254, 254, 98":"66,226,46",gpu:tt?"254,254,254":"253,151,31",custom:tt?"86,180,233":"40,255,255"}),DynamicUIPerf=({showGraph:tt,colorBlind:et})=>{const nt=usePerfStore(it=>it.overclockingFps),rt=usePerfStore(it=>it.fpsLimit);return jsxRuntimeExports.jsxs(PerfB,{style:tt?{color:nt?colorsGraph(et).overClock.toString():`rgb(${colorsGraph(et).fps})`}:{},children:["FPS ",nt?`${rt}🚀`:""]})},DynamicUI=({showGraph:tt,colorBlind:et,customData:nt,minimal:rt})=>{const it=usePerfStore(ot=>ot.gl);return it?jsxRuntimeExports.jsxs(PerfIContainer,{children:[jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(LightningBoltIcon,{}),jsxRuntimeExports.jsx(PerfB,{style:tt?{color:`rgb(${colorsGraph(et).gpu.toString()})`}:{},children:"GPU"}),jsxRuntimeExports.jsx(PerfSmallI,{children:"ms"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(RulerHorizontalIcon,{}),jsxRuntimeExports.jsx(PerfB,{style:tt?{color:`rgb(${colorsGraph(et).cpu.toString()})`}:{},children:"CPU"}),jsxRuntimeExports.jsx(PerfSmallI,{children:"ms"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(LapTimerIcon,{}),jsxRuntimeExports.jsx(DynamicUIPerf,{showGraph:tt,colorBlind:et})]}),!rt&&it&&jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(TextAlignJustifyIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:it.info.render.calls===1?"call":"calls"})]}),!rt&&it&&jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(VercelLogoIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Triangles"})]}),nt&&jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(BarChartIcon,{}),jsxRuntimeExports.jsx(PerfB,{style:tt?{color:`rgb(${colorsGraph(et).custom})`}:{},children:nt.name}),nt.info&&jsxRuntimeExports.jsx(PerfSmallI,{children:nt.info})]})]}):null},PerfUI=({showGraph:tt,colorBlind:et,deepAnalyze:nt,customData:rt,matrixUpdate:it,openByDefault:ot,minimal:at})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(DynamicUI,{showGraph:tt,colorBlind:et,customData:rt,minimal:at}),!at&&jsxRuntimeExports.jsx(PerfThree,{matrixUpdate:it,openByDefault:ot,deepAnalyze:nt,showGraph:tt})]}),InfoUI=({matrixUpdate:tt})=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(MarginIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Geometries"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(ImageIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Textures"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(ActivityLogIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"shaders"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(MinusIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Lines"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(DotIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Points"})]}),tt&&jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(DropdownMenuIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Matrices"})]})]}),ToggleEl=({tab:tt,title:et,set:nt})=>{const rt=usePerfStore(it=>it.tab);return jsxRuntimeExports.jsx(Toggle,{className:`${rt===tt?" __perf_toggle_tab_active":""}`,onClick:()=>{nt(!0),usePerfStore.setState({tab:tt})},children:jsxRuntimeExports.jsx("span",{children:et})})},PerfThree=({openByDefault:tt,showGraph:et,deepAnalyze:nt,matrixUpdate:rt})=>{const[it,ot]=React$1.useState(tt);return jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx(TabContainers,{show:it,showGraph:et,matrixUpdate:rt}),tt&&!nt?null:jsxRuntimeExports.jsxs(ToggleContainer,{className:"__perf_toggle",children:[nt&&jsxRuntimeExports.jsx(ToggleEl,{tab:"programs",title:"Programs",set:ot}),nt&&jsxRuntimeExports.jsx(ToggleEl,{tab:"infos",title:"Infos",set:ot}),jsxRuntimeExports.jsx(Toggle,{onClick:()=>{ot(!it)},children:it?jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx(TriangleDownIcon,{})," Minimize"]}):jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx(TriangleUpIcon,{})," More"]})})]})]})},TabContainers=({show:tt,showGraph:et,matrixUpdate:nt})=>{const rt=usePerfStore(it=>it.tab);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(InfoUI,{matrixUpdate:nt}),tt&&jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(ContainerScroll,{style:{marginTop:et?"38px":0},children:rt==="programs"&&jsxRuntimeExports.jsx(ProgramsUI,{})})})]})},Gui=({showGraph:tt,colorBlind:et,openByDefault:nt,className:rt,overClock:it,style:ot,position:at,chart:st,deepAnalyze:lt,antialias:ct,customData:ut,matrixUpdate:ht,minimal:dt})=>{const pt=reactExports.useRef(null);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Headless,{chart:st,overClock:it,deepAnalyze:lt,matrixUpdate:ht}),jsxRuntimeExports.jsx(Html,{transform:!1,children:jsxRuntimeExports.jsxs(PerfS,{className:(rt?" ".concat(rt):" ")+` ${at||""} ${dt?"minimal":""}`,style:_objectSpread2({minHeight:dt?"37px":tt?"100px":"60px"},ot),ref:pt,children:[jsxRuntimeExports.jsx(ChartUI,{perfContainerRef:pt,colorBlind:et,chart:st,showGraph:tt,antialias:ct,customData:ut,minimal:dt,matrixUpdate:ht}),jsxRuntimeExports.jsx(PerfUI,{colorBlind:et,showGraph:tt,deepAnalyze:lt,openByDefault:nt,customData:ut,matrixUpdate:ht,minimal:dt})]})})]})},Perf=({headless:tt=!1,colorBlind:et=!1,overClock:nt=!1,showGraph:rt=!0,trackCPU:it=!1,deepAnalyze:ot=!1,antialias:at=!0,openByDefault:st=!0,customData:lt,matrixUpdate:ct=!1,position:ut="top-right",chart:ht={length:30,hz:15},className:dt,style:pt,minimal:mt=!1})=>tt?jsxRuntimeExports.jsx(Headless,{chart:ht,deepAnalyze:ot,matrixUpdate:ct,overClock:nt}):jsxRuntimeExports.jsx(Gui,{colorBlind:et,showGraph:rt,trackCPU:it,openByDefault:st,className:dt,style:pt,overClock:nt,position:ut,antialias:at,chart:ht,deepAnalyze:ot,minimal:mt,customData:lt,matrixUpdate:ct}),UNIVERSE_SCALE=5e3,DATA_COLOR_PALETTE={show:"#FF723C",clip:"#FFFF00",episode:"#FF7F50",guest:"#E066FF",topic:"#F8F8FF"},getNodeColorByType=(tt,et)=>{const nt=DATA_COLOR_PALETTE[tt]||"#F8F8FF";return et?nt:parseInt(nt.replace("#","0x"),16)},defaultData$5={isUserDragging:!1,isUserScrolling:!1,userMovedCamera:!1,isUserScrollingOnHtmlPanel:!1},useControlStore=react(tt=>({...defaultData$5,setIsUserDragging:et=>tt({isUserDragging:et}),setIsUserScrolling:et=>tt({isUserScrolling:et}),setUserMovedCamera:et=>tt({userMovedCamera:et}),setIsUserScrollingOnHtmlPanel:et=>tt({isUserScrollingOnHtmlPanel:et})}));function _assertThisInitialized$b(tt){if(tt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return tt}function _inheritsLoose(tt,et){tt.prototype=Object.create(et.prototype),tt.prototype.constructor=tt,tt.__proto__=et}/*! + sans-serif`,backgroundColor:"rgba(36, 36, 36, .9)",color:"#fff",margin:0,minHeight:"100px",padding:"4px 0","-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale",userSelect:"none","&.top-left":{right:"initial",left:0},"&.bottom-left":{right:"initial",top:"initial",bottom:0,left:0,".__perf_toggle":{top:"-20px",bottom:"initial"}},"&.bottom-right":{top:"initial",bottom:0,".__perf_toggle":{top:"-20px",bottom:"initial"}},"&.minimal":{backgroundColor:"rgba(36, 36, 36, .75)"},"*":{margin:"0",padding:"0",border:"0",fontSize:"100%",lineHeight:"1",verticalAlign:"baseline"}}),PerfSmallI=re$4("small",{position:"absolute",right:0,fontSize:"10px"}),PerfI=re$4("div",{display:"inline-flex",fontStyle:"normal",padding:0,lineHeight:"13px",fontSize:"14px",width:"62px",position:"relative",pointerEvents:"auto",cursor:"default",fontWeight:500,letterSpacing:"0px",textAlign:"left",height:"29px",whiteSpace:"nowrap",justifyContent:"space-evenly",fontVariantNumeric:"tabular-nums",small:{paddingLeft:"12px"},svg:{padding:0,color:"rgba(145, 145, 145, 0.3)",fontSize:"40px",position:"absolute",zIndex:1,maxHeight:"20px",left:" 50%",marginLeft:"-23px",top:"4px"}}),PerfB=re$4("span",{verticalAlign:"bottom",position:"absolute",bottom:"5px",color:"rgba(101, 197, 188, 1)",textAlign:"right",letterSpacing:"1px",fontSize:"8px",fontWeight:"500",width:"60px"}),PerfIContainer=re$4("div",{display:"flex"}),ProgramHeader=re$4("div",{backgroundColor:"#404040",padding:"6px",display:"block",fontSize:"12px",marginBottom:"6px",cursor:"pointer","*":{cursor:"pointer !important"},"> span":{},small:{fontSize:"9px"},"> b":{marginRight:"4px",cursor:"pointer"}}),Graph$1=re$4("div",{height:"66px",overflow:"hidden",position:"absolute",pointerEvents:"none",display:"flex",top:"0px",justifyContent:"center",width:"100%",minWidth:"310px",margin:"0 auto",canvas:{background:"transparent !important",position:"absolute !important"}}),Graphpc=re$4("div",{textAlign:"center",fontWeight:700,fontSize:"12px",lineHeight:"12px",display:"flex",justifyContent:"center",alignItems:"center",verticalAlign:"middle",color:"#f1f1f1",padding:"7px",width:"100%",backgroundColor:"rgba(36, 36, 37, 0.8)",zIndex:1,position:"absolute",height:"100%"}),Toggle=re$4("div",{pointerEvents:"auto",justifyContent:"center",cursor:"pointer",fontSize:"12px",backgroundColor:"rgb(41, 43, 45)",marginTop:"6px",width:"auto",margin:"0",color:"rgba(145, 145, 145, 1)",textAlign:"center",display:"inline-block",verticalAlign:"middle",padding:"4px 6px","&.__perf_toggle_tab_active":{backgroundColor:"rgb(31 31 31)"},svg:{width:"12px",height:"12px",float:"left"}}),ToggleVisible=re$4("div",{pointerEvents:"auto",justifyContent:"center",cursor:"pointer",fontSize:"12px",float:"right",backgroundColor:"rgb(41, 43, 45)",width:"auto",margin:"0",color:"rgba(145, 145, 145, 1)",textAlign:"center",display:"inline-block",verticalAlign:"middle",padding:"4px 6px","&.__perf_toggle_tab_active":{backgroundColor:"rgb(31 31 31)"},svg:{width:"12px",height:"12px",float:"left"}}),ProgramGeo=re$4("div",{padding:"4px 6px",fontSize:"12px",pointerEvents:"auto"}),ProgramTitle=re$4("span",{fontWeight:"bold",letterSpacing:"0.08em",maxWidth:"145px",overflow:"hidden",textOverflow:"ellipsis",display:"inline-block",verticalAlign:"middle",fontSize:"11px",marginRight:"10px"}),ContainerScroll=re$4("div",{maxHeight:"50vh",overflowY:"auto",marginTop:"38px"}),ProgramsContainer=re$4("div",{marginTop:"0"}),ProgramsULHeader=re$4("div",{display:"flex",position:"relative",fontWeight:"bold",color:"#fff",lineHeight:"14px",svg:{marginRight:"4px",display:"inline-block"}}),ProgramsUL=re$4("ul",{display:"block",position:"relative",paddingLeft:"10px",margin:"6px 6px",img:{maxHeight:"60px",maxWidth:"100%",margin:"6px auto",display:"block"},"&:after":{content:"",position:"absolute",left:"0px",top:"0px",width:"1px",height:"100%",backgroundColor:"grey",transform:"translateX(-50%)",maxHeight:"50vh",overflowY:"auto"},li:{borderBottom:"1px solid #313131",display:"block",padding:"4px",margin:0,lineHeight:1,verticalAlign:"middle",height:"24px"},b:{fontWeight:"bold"},small:{textAlign:"revert",letterSpacing:"1px",fontSize:"10px",fontWeight:"500",marginLeft:"2px",color:"rgb(101, 197, 188)"}}),ProgramConsole=re$4("button",{fontWeight:"bold",letterSpacing:"0.02em",backgroundColor:"rgb(41, 43, 45)",color:"rgb(211, 211, 211)",overflow:"hidden",textOverflow:"ellipsis",cursor:"pointer",display:"block",verticalAlign:"middle",fontSize:"11px",padding:"5px",margin:"4px auto"}),ToggleContainer=re$4("div",{display:"flex",justifyContent:"center",cursor:"pointer",fontSize:"12px",backgroundColor:"rgb(41, 43, 45)",marginTop:"6px",width:"auto",margin:"0 auto",color:"rgba(145, 145, 145, 1)",textAlign:"center",position:"absolute",right:0,bottom:" -20px",svg:{width:"12px",height:"12px",float:"left"}}),ProgramsGeoLi=re$4("li",{display:"flex !important",height:"auto !important",span:{height:"40px",display:"block",position:"relative"},b:{paddingLeft:"12px"}}),TextHighHZ=reactExports.memo(({isPerf:tt,color:et,colorBlind:nt,customData:rt,isMemory:it,isShadersInfo:ot,metric:at,fontSize:st,offsetY:lt=0,offsetX:ct,round:ut,hasInstance:ht})=>{const{width:dt,height:pt}=useThree(yt=>yt.viewport),mt=reactExports.useRef(null),gt=reactExports.useRef(null);return useFrame(function(){const bt=usePerfStore.getState().gl,wt=usePerfStore.getState().log;if(!wt||!mt.current||(rt&&(mt.current.text=usePerfStore.getState().customData),!at))return;let vt=wt[at];if(ot){var kt;vt=(kt=bt.info.programs)===null||kt===void 0?void 0:kt.length}else at==="matriceCount"?vt=matriceCount.value:!tt&&bt.info.render&&(vt=(it?bt.info.memory:bt.info.render)[at]);if(at==="fps"&&(mt.current.color=usePerfStore.getState().overclockingFps?colorsGraph(nt).overClock.toString():`rgb(${colorsGraph(nt).fps.toString()})`),mt.current.text=(Math.round(vt*Math.pow(10,ut))/Math.pow(10,ut)).toFixed(ut),ht){const St=bt.info.instance;if(typeof St>"u"&&at!=="matriceCount")return;let Et;at==="matriceCount"?Et=matriceWorldCount.value:Et=St[at],Et>0?(mt.current.fontSize=st/1.15,gt.current.fontSize=vt>0?st/1.4:st,mt.current.position.y=pt/2-lt-st/1.9,gt.current.text=" ± "+(Math.round(Et*Math.pow(10,ut))/Math.pow(10,ut)).toFixed(ut)):(mt.current.position.y=pt/2-lt-st,mt.current.fontSize=st)}matriceCount.value-=1,mt.current.updateMatrix(),mt.current.matrixWorld.copy(mt.current.matrix)}),jsxRuntimeExports.jsxs(reactExports.Suspense,{fallback:null,children:[jsxRuntimeExports.jsxs(Text$1,{textAlign:"justify",matrixAutoUpdate:!1,ref:mt,fontSize:st,position:[-dt/2+ct+st,pt/2-lt-st,0],color:et,characters:"0123456789",onUpdate:yt=>{yt.updateMatrix(),matriceCount.value-=1,yt.matrixWorld.copy(yt.matrix)},children:[jsxRuntimeExports.jsx("meshBasicMaterial",{blending:NormalBlending}),"0"]}),ht&&jsxRuntimeExports.jsx(Text$1,{textAlign:"justify",matrixAutoUpdate:!1,ref:gt,fontSize:8,position:[-dt/2+ct+st,pt/2-lt-st*1.15,0],color:"lightgrey",characters:"0123456789",onUpdate:yt=>{yt.updateMatrix(),matriceCount.value-=1,yt.matrixWorld.copy(yt.matrix)},children:jsxRuntimeExports.jsx("meshBasicMaterial",{blending:NormalBlending})})]})}),TextsHighHZ=({colorBlind:tt,customData:et,minimal:nt,matrixUpdate:rt})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(TextHighHZ,{colorBlind:tt,color:`rgb(${colorsGraph(tt).fps.toString()})`,isPerf:!0,metric:"fps",fontSize:14,offsetX:140,round:0}),jsxRuntimeExports.jsx(TextHighHZ,{color:`rgb(${colorsGraph(tt).cpu.toString()})`,isPerf:!0,metric:"cpu",fontSize:14,offsetX:72,round:3}),jsxRuntimeExports.jsx(TextHighHZ,{color:`rgb(${colorsGraph(tt).gpu.toString()})`,isPerf:!0,metric:"gpu",fontSize:14,offsetX:10,round:3}),nt?null:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(TextHighHZ,{metric:"calls",fontSize:14,offsetX:200,round:0,hasInstance:!0}),jsxRuntimeExports.jsx(TextHighHZ,{metric:"triangles",fontSize:14,offsetX:260,round:0,hasInstance:!0}),jsxRuntimeExports.jsx(TextHighHZ,{isMemory:!0,metric:"geometries",fontSize:14,offsetY:30,offsetX:0,round:0}),jsxRuntimeExports.jsx(TextHighHZ,{isMemory:!0,metric:"textures",fontSize:14,offsetY:30,offsetX:80,round:0}),jsxRuntimeExports.jsx(TextHighHZ,{isShadersInfo:!0,metric:"programs",fontSize:14,offsetY:30,offsetX:140,round:0}),jsxRuntimeExports.jsx(TextHighHZ,{metric:"lines",fontSize:14,offsetY:30,offsetX:200,round:0,hasInstance:!0}),jsxRuntimeExports.jsx(TextHighHZ,{metric:"points",fontSize:14,offsetY:30,offsetX:260,round:0,hasInstance:!0}),rt&&jsxRuntimeExports.jsx(TextHighHZ,{isPerf:!0,metric:"matriceCount",fontSize:14,offsetY:30,offsetX:320,round:0,hasInstance:!0})]}),et&&jsxRuntimeExports.jsx(TextHighHZ,{color:`rgb(${colorsGraph(tt).custom.toString()})`,customData:et,fontSize:14,offsetY:0,offsetX:nt?200:320,round:0})]}),ChartCurve=({colorBlind:tt,minimal:et,chart:nt={length:30,hz:15}})=>{const rt=reactExports.useMemo(()=>({fps:new Float32Array(nt.length*3),cpu:new Float32Array(nt.length*3),gpu:new Float32Array(nt.length*3)}),[nt]),it=reactExports.useRef(null),ot=reactExports.useRef(null),at=reactExports.useRef(null),st=reactExports.useRef(null),lt=reactExports.useMemo(()=>new Vector3(0,0,0),[]),ct=(ut,ht=1,dt,pt)=>{let mt=0;const{width:gt,height:yt}=pt,bt=usePerfStore.getState().chart.data[ut];if(!bt||bt.length===0)return;const wt=et?2:6,vt=et?12:50;let kt=bt.length;for(let St=0;Stmt&&(mt=bt[Et]*ht),lt.set(wt+St/(kt-1)*(gt-wt*2)-gt/2,Math.min(100,bt[Et])*ht/100*(yt-wt*2-vt)-yt/2,0),lt.toArray(dt.attributes.position.array,St*3))}dt.attributes.position.needsUpdate=!0};return useFrame(function({viewport:ht}){ct("fps",1,it.current,ht),ot.current&&ot.current.color.set(usePerfStore.getState().overclockingFps?colorsGraph(tt).overClock.toString():`rgb(${colorsGraph(tt).fps.toString()})`),ct("gpu",5,at.current,ht),ct("cpu",5,st.current,ht)}),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("line",{children:[jsxRuntimeExports.jsx("bufferGeometry",{ref:it,children:jsxRuntimeExports.jsx("bufferAttribute",{attach:"attributes-position",count:nt.length,array:rt.fps,itemSize:3,usage:DynamicDrawUsage,needsUpdate:!0})}),jsxRuntimeExports.jsx("lineBasicMaterial",{ref:ot,color:`rgb(${colorsGraph(tt).fps.toString()})`,transparent:!0,opacity:.5})]}),jsxRuntimeExports.jsxs("line",{children:[jsxRuntimeExports.jsx("bufferGeometry",{ref:at,children:jsxRuntimeExports.jsx("bufferAttribute",{attach:"attributes-position",count:nt.length,array:rt.gpu,itemSize:3,usage:DynamicDrawUsage,needsUpdate:!0})}),jsxRuntimeExports.jsx("lineBasicMaterial",{color:`rgb(${colorsGraph(tt).gpu.toString()})`,transparent:!0,opacity:.5})]}),jsxRuntimeExports.jsxs("line",{children:[jsxRuntimeExports.jsx("bufferGeometry",{ref:st,children:jsxRuntimeExports.jsx("bufferAttribute",{attach:"attributes-position",count:nt.length,array:rt.cpu,itemSize:3,usage:DynamicDrawUsage,needsUpdate:!0})}),jsxRuntimeExports.jsx("lineBasicMaterial",{color:`rgb(${colorsGraph(tt).cpu.toString()})`,transparent:!0,opacity:.5})]})]})},ChartUI=({colorBlind:tt,chart:et,customData:nt,matrixUpdate:rt,showGraph:it=!0,antialias:ot=!0,minimal:at})=>{const st=reactExports.useRef(void 0),lt=usePerfStore(ct=>ct.paused);return jsxRuntimeExports.jsxs(Graph$1,{style:{display:"flex",position:"absolute",height:`${at?37:it?100:60}px`,minWidth:`${at?"100px":nt?"370px":"310px"}`},children:[jsxRuntimeExports.jsx(Canvas$1,{ref:st,orthographic:!0,dpr:ot?[1,2]:1,gl:{antialias:!0,alpha:!0,stencil:!1,depth:!1},onCreated:({scene:ct})=>{ct.traverse(ut=>{ut.matrixWorldAutoUpdate=!1,ut.matrixAutoUpdate=!1})},flat:!0,style:{marginBottom:"-42px",position:"relative",pointerEvents:"none",background:"transparent !important",height:`${at?37:it?100:60}px`},children:lt?null:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Renderer,{}),jsxRuntimeExports.jsx(TextsHighHZ,{customData:nt,minimal:at,matrixUpdate:rt}),it&&jsxRuntimeExports.jsx(ChartCurve,{colorBlind:tt,minimal:at,chart:et})]})}),lt&&jsxRuntimeExports.jsxs(Graphpc,{children:[jsxRuntimeExports.jsx(PauseIcon,{})," PAUSED"]})]})},Renderer=()=>(useFrame(function({gl:et,scene:nt,camera:rt}){rt.updateMatrix(),matriceCount.value-=1,rt.matrixWorld.copy(rt.matrix),rt.matrixWorldInverse.copy(rt.matrixWorld).invert(),et.render(nt,rt),matriceWorldCount.value=0,matriceCount.value=0},1/0),null);function _objectWithoutPropertiesLoose$d(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _objectWithoutProperties$d(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$d(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}const _excluded$y=["portal","className","children"],Html=reactExports.forwardRef((tt,et)=>{let{portal:nt,className:rt,children:it}=tt,ot=_objectWithoutProperties$d(tt,_excluded$y);const at=useThree(ut=>ut.gl),st=reactExports.useRef(null),lt=reactExports.useRef(null),ct=(nt==null?void 0:nt.current)!=null?nt.current:at.domElement.parentNode;return reactExports.useLayoutEffect(()=>{if(!st.current||!ct)return;const ut=document.createElement("div"),ht=lt.current=createRoot$1(ut);return ct.appendChild(ut),()=>{ht.unmount(),lt.current=null,ct.removeChild(ut)}},[ct]),reactExports.useLayoutEffect(()=>{const ut=lt.current;ut&&ut.render(jsxRuntimeExports.jsx("div",{ref:et,className:rt,children:it}))}),jsxRuntimeExports.jsx("group",_objectSpread2(_objectSpread2({},ot),{},{ref:st}))}),addTextureUniforms=(tt,et)=>{const nt=it=>{switch(it){case 1e3:return"RepeatWrapping";case 1001:return"ClampToEdgeWrapping";case 1002:return"MirroredRepeatWrapping";default:return"ClampToEdgeWrapping"}},rt=it=>{switch(it){case 3e3:return"LinearEncoding";case 3001:return"sRGBEncoding";case 3002:return"RGBEEncoding";case 3003:return"LogLuvEncoding";case 3004:return"RGBM7Encoding";case 3005:return"RGBM16Encoding";case 3006:return"RGBDEncoding";case 3007:return"GammaEncoding";default:return"ClampToEdgeWrapping"}};return{name:tt,url:et.image.currentSrc,encoding:rt(et.encoding),wrapT:nt(et.image.wrapT),flipY:et.flipY.toString()}},UniformsGL=({program:tt,material:et,setTexNumber:nt})=>{const rt=usePerfStore(at=>at.gl),[it,ot]=reactExports.useState(null);return reactExports.useEffect(()=>{if(rt){const at=tt==null?void 0:tt.getUniforms();let st=0;const lt=new Map;at.seq.forEach(ct=>{if(!ct.id.includes("uTroika")&&ct.id!=="isOrthographic"&&ct.id!=="uvTransform"&&ct.id!=="lightProbe"&&ct.id!=="projectionMatrix"&&ct.id!=="viewMatrix"&&ct.id!=="normalMatrix"&&ct.id!=="modelMatrix"&&ct.id!=="modelViewMatrix"){let ut=[],ht={name:ct.id};ct.cache&&(ct.cache.forEach(dt=>{typeof dt<"u"&&ut.push(dt.toString().substring(0,4))}),ht.value=ut.join(),et[ct.id]&&et[ct.id].image&&et[ct.id].image&&(st++,ht.value=addTextureUniforms(ct.id,et[ct.id])),ht.value||(ht.value="empty"),lt.set(ct.id,ht))}}),et.uniforms&&Object.keys(et.uniforms).forEach(ct=>{const ut=et.uniforms[ct];if(ut.value){const{value:ht}=ut;let dt={name:ct};if(ct.includes("uTroika"))return;if(ht instanceof Texture)st++,dt.value=addTextureUniforms(ct,ht);else{let pt=JSON.stringify(ht);try{pt=JSON.stringify(ht)}catch{pt=ht.toString()}dt.value=pt}lt.set(ct,dt)}}),st>0&&nt(st),ot(lt)}},[]),jsxRuntimeExports.jsx(ProgramsUL,{children:it&&Array.from(it.values()).map(at=>jsxRuntimeExports.jsx("span",{children:typeof at.value=="string"?jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsxs("span",{children:[at.name," :"," ",jsxRuntimeExports.jsxs("b",{children:[at.value.substring(0,30),at.value.length>30?"...":""]})]})}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("li",{children:jsxRuntimeExports.jsxs("b",{children:[at.value.name,":"]})}),jsxRuntimeExports.jsxs("div",{children:[Object.keys(at.value).map(st=>st!=="name"?jsxRuntimeExports.jsx("div",{children:st==="url"?jsxRuntimeExports.jsx("a",{href:at.value[st],target:"_blank",children:jsxRuntimeExports.jsx("img",{src:at.value[st]})}):jsxRuntimeExports.jsxs("li",{children:[st,": ",jsxRuntimeExports.jsx("b",{children:at.value[st]})]})},st):null),jsxRuntimeExports.jsxs(ProgramConsole,{onClick:()=>{var st;console.info(et[at.value.name]||(et==null||(st=et.uniforms[at.value.name])===null||st===void 0?void 0:st.value))},children:["console.info(",at.value.name,");"]})]})]})},at.name))})},DynamicDrawCallInfo=({el:tt})=>{usePerfStore(rt=>rt.log);const et=usePerfStore(rt=>rt.gl),nt=rt=>{if(!et)return 0;const it=Math.round(rt.drawCounts.total/(et.info.render.triangles+et.info.render.lines+et.info.render.points)*100*10)/10;return isFinite(it)&&it||0};return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:tt.drawCounts.total>0&&jsxRuntimeExports.jsxs(PerfI,{style:{height:"auto",width:"auto",margin:"0 4px"},children:[tt.drawCounts.type==="Triangle"?jsxRuntimeExports.jsx(VercelLogoIcon,{style:{top:"-1px"}}):jsxRuntimeExports.jsx(ActivityLogIcon,{style:{top:"-1px"}}),tt.drawCounts.total,jsxRuntimeExports.jsxs("small",{children:[tt.drawCounts.type,"s"]}),et&&jsxRuntimeExports.jsxs(PerfB,{style:{bottom:"-10px",width:"40px",fontWeight:"bold"},children:[tt.visible&&!tt.material.wireframe?nt(tt):0,"%"]})]})})},ProgramUI=({el:tt})=>{const[et,nt]=reactExports.useState(tt.visible),[rt,it]=reactExports.useState(tt.expand),[ot,at]=reactExports.useState(0),{meshes:st,program:lt,material:ct}=tt;return jsxRuntimeExports.jsxs(ProgramGeo,{children:[jsxRuntimeExports.jsxs(ProgramHeader,{onClick:()=>{tt.expand=!rt,Object.keys(st).forEach(ut=>{const ht=st[ut];ht.material.wireframe=!1}),it(!rt)},children:[jsxRuntimeExports.jsx(Toggle,{style:{marginRight:"6px"},children:rt?jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx(TriangleDownIcon,{})}):jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx(TriangleUpIcon,{})})}),lt&&jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx(ProgramTitle,{children:lt.name}),jsxRuntimeExports.jsxs(PerfI,{style:{height:"auto",width:"auto",margin:"0 4px"},children:[jsxRuntimeExports.jsx(LayersIcon,{style:{top:"-1px"}}),Object.keys(st).length,jsxRuntimeExports.jsx("small",{children:Object.keys(st).length>1?"users":"user"})]}),ot>0&&jsxRuntimeExports.jsxs(PerfI,{style:{height:"auto",width:"auto",margin:"0 4px"},children:[ot>1?jsxRuntimeExports.jsx(ImageIcon,{style:{top:"-1px"}}):jsxRuntimeExports.jsx(ImageIcon,{style:{top:"-1px"}}),ot,jsxRuntimeExports.jsx("small",{children:"tex"})]}),jsxRuntimeExports.jsx(DynamicDrawCallInfo,{el:tt}),ct.glslVersion==="300 es"&&jsxRuntimeExports.jsxs(PerfI,{style:{height:"auto",width:"auto",margin:"0 4px"},children:[jsxRuntimeExports.jsx(RocketIcon,{style:{top:"-1px"}}),"300",jsxRuntimeExports.jsx("small",{children:"es"}),jsxRuntimeExports.jsx(PerfB,{style:{bottom:"-10px",width:"40px"},children:"glsl"})]})]}),jsxRuntimeExports.jsx(ToggleVisible,{onPointerEnter:()=>{Object.keys(st).forEach(ut=>{const ht=st[ut];ht.material.wireframe=!0})},onPointerLeave:()=>{Object.keys(st).forEach(ut=>{const ht=st[ut];ht.material.wireframe=!1})},onClick:ut=>{ut.stopPropagation(),Object.keys(st).forEach(ht=>{const dt=st[ht],pt=!et;dt.visible=pt,tt.visible=pt,nt(pt)})},children:et?jsxRuntimeExports.jsx(EyeOpenIcon,{}):jsxRuntimeExports.jsx(EyeNoneIcon,{})})]}),jsxRuntimeExports.jsxs("div",{style:{maxHeight:rt?"9999px":0,overflow:"hidden"},children:[jsxRuntimeExports.jsxs(ProgramsULHeader,{children:[jsxRuntimeExports.jsx(ButtonIcon,{})," Uniforms:"]}),jsxRuntimeExports.jsx(UniformsGL,{program:lt,material:ct,setTexNumber:at}),jsxRuntimeExports.jsxs(ProgramsULHeader,{children:[jsxRuntimeExports.jsx(CubeIcon,{})," Geometries:"]}),jsxRuntimeExports.jsx(ProgramsUL,{children:st&&Object.keys(st).map(ut=>st[ut]&&st[ut].geometry&&jsxRuntimeExports.jsxs(ProgramsGeoLi,{children:[jsxRuntimeExports.jsxs("span",{children:[st[ut].geometry.type,": "]}),st[ut].userData&&st[ut].userData.drawCount&&jsxRuntimeExports.jsxs("b",{children:[jsxRuntimeExports.jsxs("div",{children:[st[ut].userData.drawCount.count,jsxRuntimeExports.jsxs("small",{children:[" ",st[ut].userData.drawCount.type,"s"]})]}),jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsxs("div",{children:[Math.round(estimateBytesUsed(st[ut].geometry)/1024*1e3)/1e3,"Kb",jsxRuntimeExports.jsx("small",{children:" memory used"})]})]})]},ut))}),jsxRuntimeExports.jsxs(ProgramConsole,{onClick:()=>{console.info(ct)},children:["console.info(",ct.type,")"]})]})]})},ProgramsUI=()=>{usePerfStore(et=>et.triggerProgramsUpdate);const tt=usePerfStore(et=>et.programs);return jsxRuntimeExports.jsx(ProgramsContainer,{children:tt&&Array.from(tt.values()).map(et=>et&&et?jsxRuntimeExports.jsx(ProgramUI,{el:et},et.material.uuid):null)})},colorsGraph=tt=>({overClock:"#ff6eff",fps:tt?"100, 143, 255":"238,38,110",cpu:tt?"254, 254, 98":"66,226,46",gpu:tt?"254,254,254":"253,151,31",custom:tt?"86,180,233":"40,255,255"}),DynamicUIPerf=({showGraph:tt,colorBlind:et})=>{const nt=usePerfStore(it=>it.overclockingFps),rt=usePerfStore(it=>it.fpsLimit);return jsxRuntimeExports.jsxs(PerfB,{style:tt?{color:nt?colorsGraph(et).overClock.toString():`rgb(${colorsGraph(et).fps})`}:{},children:["FPS ",nt?`${rt}🚀`:""]})},DynamicUI=({showGraph:tt,colorBlind:et,customData:nt,minimal:rt})=>{const it=usePerfStore(ot=>ot.gl);return it?jsxRuntimeExports.jsxs(PerfIContainer,{children:[jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(LightningBoltIcon,{}),jsxRuntimeExports.jsx(PerfB,{style:tt?{color:`rgb(${colorsGraph(et).gpu.toString()})`}:{},children:"GPU"}),jsxRuntimeExports.jsx(PerfSmallI,{children:"ms"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(RulerHorizontalIcon,{}),jsxRuntimeExports.jsx(PerfB,{style:tt?{color:`rgb(${colorsGraph(et).cpu.toString()})`}:{},children:"CPU"}),jsxRuntimeExports.jsx(PerfSmallI,{children:"ms"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(LapTimerIcon,{}),jsxRuntimeExports.jsx(DynamicUIPerf,{showGraph:tt,colorBlind:et})]}),!rt&&it&&jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(TextAlignJustifyIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:it.info.render.calls===1?"call":"calls"})]}),!rt&&it&&jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(VercelLogoIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Triangles"})]}),nt&&jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(BarChartIcon,{}),jsxRuntimeExports.jsx(PerfB,{style:tt?{color:`rgb(${colorsGraph(et).custom})`}:{},children:nt.name}),nt.info&&jsxRuntimeExports.jsx(PerfSmallI,{children:nt.info})]})]}):null},PerfUI=({showGraph:tt,colorBlind:et,deepAnalyze:nt,customData:rt,matrixUpdate:it,openByDefault:ot,minimal:at})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(DynamicUI,{showGraph:tt,colorBlind:et,customData:rt,minimal:at}),!at&&jsxRuntimeExports.jsx(PerfThree,{matrixUpdate:it,openByDefault:ot,deepAnalyze:nt,showGraph:tt})]}),InfoUI=({matrixUpdate:tt})=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(MarginIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Geometries"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(ImageIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Textures"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(ActivityLogIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"shaders"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(MinusIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Lines"})]}),jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(DotIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Points"})]}),tt&&jsxRuntimeExports.jsxs(PerfI,{children:[jsxRuntimeExports.jsx(DropdownMenuIcon,{}),jsxRuntimeExports.jsx(PerfB,{children:"Matrices"})]})]}),ToggleEl=({tab:tt,title:et,set:nt})=>{const rt=usePerfStore(it=>it.tab);return jsxRuntimeExports.jsx(Toggle,{className:`${rt===tt?" __perf_toggle_tab_active":""}`,onClick:()=>{nt(!0),usePerfStore.setState({tab:tt})},children:jsxRuntimeExports.jsx("span",{children:et})})},PerfThree=({openByDefault:tt,showGraph:et,deepAnalyze:nt,matrixUpdate:rt})=>{const[it,ot]=React$1.useState(tt);return jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx(TabContainers,{show:it,showGraph:et,matrixUpdate:rt}),tt&&!nt?null:jsxRuntimeExports.jsxs(ToggleContainer,{className:"__perf_toggle",children:[nt&&jsxRuntimeExports.jsx(ToggleEl,{tab:"programs",title:"Programs",set:ot}),nt&&jsxRuntimeExports.jsx(ToggleEl,{tab:"infos",title:"Infos",set:ot}),jsxRuntimeExports.jsx(Toggle,{onClick:()=>{ot(!it)},children:it?jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx(TriangleDownIcon,{})," Minimize"]}):jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx(TriangleUpIcon,{})," More"]})})]})]})},TabContainers=({show:tt,showGraph:et,matrixUpdate:nt})=>{const rt=usePerfStore(it=>it.tab);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(InfoUI,{matrixUpdate:nt}),tt&&jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(ContainerScroll,{style:{marginTop:et?"38px":0},children:rt==="programs"&&jsxRuntimeExports.jsx(ProgramsUI,{})})})]})},Gui=({showGraph:tt,colorBlind:et,openByDefault:nt,className:rt,overClock:it,style:ot,position:at,chart:st,deepAnalyze:lt,antialias:ct,customData:ut,matrixUpdate:ht,minimal:dt})=>{const pt=reactExports.useRef(null);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Headless,{chart:st,overClock:it,deepAnalyze:lt,matrixUpdate:ht}),jsxRuntimeExports.jsx(Html,{transform:!1,children:jsxRuntimeExports.jsxs(PerfS,{className:(rt?" ".concat(rt):" ")+` ${at||""} ${dt?"minimal":""}`,style:_objectSpread2({minHeight:dt?"37px":tt?"100px":"60px"},ot),ref:pt,children:[jsxRuntimeExports.jsx(ChartUI,{perfContainerRef:pt,colorBlind:et,chart:st,showGraph:tt,antialias:ct,customData:ut,minimal:dt,matrixUpdate:ht}),jsxRuntimeExports.jsx(PerfUI,{colorBlind:et,showGraph:tt,deepAnalyze:lt,openByDefault:nt,customData:ut,matrixUpdate:ht,minimal:dt})]})})]})},Perf=({headless:tt=!1,colorBlind:et=!1,overClock:nt=!1,showGraph:rt=!0,trackCPU:it=!1,deepAnalyze:ot=!1,antialias:at=!0,openByDefault:st=!0,customData:lt,matrixUpdate:ct=!1,position:ut="top-right",chart:ht={length:30,hz:15},className:dt,style:pt,minimal:mt=!1})=>tt?jsxRuntimeExports.jsx(Headless,{chart:ht,deepAnalyze:ot,matrixUpdate:ct,overClock:nt}):jsxRuntimeExports.jsx(Gui,{colorBlind:et,showGraph:rt,trackCPU:it,openByDefault:st,className:dt,style:pt,overClock:nt,position:ut,antialias:at,chart:ht,deepAnalyze:ot,minimal:mt,customData:lt,matrixUpdate:ct}),UNIVERSE_SCALE=5e3,DATA_COLOR_PALETTE={show:"#FF723C",clip:"#FFFF00",episode:"#FF7F50",guest:"#E066FF",topic:"#F8F8FF"},getNodeColorByType=(tt,et)=>{const nt=DATA_COLOR_PALETTE[tt]||"#F8F8FF";return et?nt:parseInt(nt.replace("#","0x"),16)},defaultData$5={isUserDragging:!1,isUserScrolling:!1,userMovedCamera:!1,isUserScrollingOnHtmlPanel:!1},useControlStore=react(tt=>({...defaultData$5,setIsUserDragging:et=>tt({isUserDragging:et}),setIsUserScrolling:et=>tt({isUserScrolling:et}),setUserMovedCamera:et=>tt({userMovedCamera:et}),setIsUserScrollingOnHtmlPanel:et=>tt({isUserScrollingOnHtmlPanel:et})}));function _assertThisInitialized$b(tt){if(tt===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return tt}function _inheritsLoose(tt,et){tt.prototype=Object.create(et.prototype),tt.prototype.constructor=tt,tt.__proto__=et}/*! * GSAP 3.12.2 * https://greensock.com * @@ -6452,7 +6452,7 @@ void main() { * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com -*/var _config={autoSleep:120,force3D:"auto",nullTargetWarn:1,units:{lineHeight:""}},_defaults={duration:.5,overwrite:!1,delay:0},_suppressOverwrites,_reverting$1,_context,_bigNum$1=1e8,_tinyNum=1/_bigNum$1,_2PI=Math.PI*2,_HALF_PI=_2PI/4,_gsID=0,_sqrt=Math.sqrt,_cos=Math.cos,_sin=Math.sin,_isString=function(et){return typeof et=="string"},_isFunction=function(et){return typeof et=="function"},_isNumber$1=function(et){return typeof et=="number"},_isUndefined=function(et){return typeof et>"u"},_isObject=function(et){return typeof et=="object"},_isNotFalse=function(et){return et!==!1},_windowExists$1=function(){return typeof window<"u"},_isFuncOrString=function(et){return _isFunction(et)||_isString(et)},_isTypedArray=typeof ArrayBuffer=="function"&&ArrayBuffer.isView||function(){},_isArray=Array.isArray,_strictNumExp=/(?:-?\.?\d|\.)+/gi,_numExp=/[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,_numWithUnitExp=/[-+=.]*\d+[.e-]*\d*[a-z%]*/g,_complexStringNumExp=/[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,_relExp=/[+-]=-?[.\d]+/,_delimitedValueExp=/[^,'"\[\]\s]+/gi,_unitExp=/^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,_globalTimeline,_win$1,_coreInitted,_doc$1,_globals={},_installScope={},_coreReady,_install=function(et){return(_installScope=_merge(et,_globals))&&gsap},_missingPlugin=function(et,nt){return console.warn("Invalid property",et,"set to",nt,"Missing plugin? gsap.registerPlugin()")},_warn=function(et,nt){return!nt&&console.warn(et)},_addGlobal=function(et,nt){return et&&(_globals[et]=nt)&&_installScope&&(_installScope[et]=nt)||_globals},_emptyFunc=function(){return 0},_startAtRevertConfig={suppressEvents:!0,isStart:!0,kill:!1},_revertConfigNoKill={suppressEvents:!0,kill:!1},_revertConfig={suppressEvents:!0},_reservedProps={},_lazyTweens=[],_lazyLookup={},_lastRenderedFrame,_plugins={},_effects={},_nextGCFrame=30,_harnessPlugins=[],_callbackNames="",_harness=function(et){var nt=et[0],rt,it;if(_isObject(nt)||_isFunction(nt)||(et=[et]),!(rt=(nt._gsap||{}).harness)){for(it=_harnessPlugins.length;it--&&!_harnessPlugins[it].targetTest(nt););rt=_harnessPlugins[it]}for(it=et.length;it--;)et[it]&&(et[it]._gsap||(et[it]._gsap=new GSCache(et[it],rt)))||et.splice(it,1);return et},_getCache=function(et){return et._gsap||_harness(toArray$3(et))[0]._gsap},_getProperty=function(et,nt,rt){return(rt=et[nt])&&_isFunction(rt)?et[nt]():_isUndefined(rt)&&et.getAttribute&&et.getAttribute(nt)||rt},_forEachName=function(et,nt){return(et=et.split(",")).forEach(nt)||et},_round=function(et){return Math.round(et*1e5)/1e5||0},_roundPrecise=function(et){return Math.round(et*1e7)/1e7||0},_parseRelative=function(et,nt){var rt=nt.charAt(0),it=parseFloat(nt.substr(2));return et=parseFloat(et),rt==="+"?et+it:rt==="-"?et-it:rt==="*"?et*it:et/it},_arrayContainsAny=function(et,nt){for(var rt=nt.length,it=0;et.indexOf(nt[it])<0&&++itst;)at=at._prev;return at?(nt._next=at._next,at._next=nt):(nt._next=et[rt],et[rt]=nt),nt._next?nt._next._prev=nt:et[it]=nt,nt._prev=at,nt.parent=nt._dp=et,nt},_removeLinkedListItem=function(et,nt,rt,it){rt===void 0&&(rt="_first"),it===void 0&&(it="_last");var ot=nt._prev,at=nt._next;ot?ot._next=at:et[rt]===nt&&(et[rt]=at),at?at._prev=ot:et[it]===nt&&(et[it]=ot),nt._next=nt._prev=nt.parent=null},_removeFromParent=function(et,nt){et.parent&&(!nt||et.parent.autoRemoveChildren)&&et.parent.remove&&et.parent.remove(et),et._act=0},_uncache=function(et,nt){if(et&&(!nt||nt._end>et._dur||nt._start<0))for(var rt=et;rt;)rt._dirty=1,rt=rt.parent;return et},_recacheAncestors=function(et){for(var nt=et.parent;nt&&nt.parent;)nt._dirty=1,nt.totalDuration(),nt=nt.parent;return et},_rewindStartAt=function(et,nt,rt,it){return et._startAt&&(_reverting$1?et._startAt.revert(_revertConfigNoKill):et.vars.immediateRender&&!et.vars.autoRevert||et._startAt.render(nt,!0,it))},_hasNoPausedAncestors=function tt(et){return!et||et._ts&&tt(et.parent)},_elapsedCycleDuration=function(et){return et._repeat?_animationCycle(et._tTime,et=et.duration()+et._rDelay)*et:0},_animationCycle=function(et,nt){var rt=Math.floor(et/=nt);return et&&rt===et?rt-1:rt},_parentToChildTotalTime=function(et,nt){return(et-nt._start)*nt._ts+(nt._ts>=0?0:nt._dirty?nt.totalDuration():nt._tDur)},_setEnd=function(et){return et._end=_roundPrecise(et._start+(et._tDur/Math.abs(et._ts||et._rts||_tinyNum)||0))},_alignPlayhead=function(et,nt){var rt=et._dp;return rt&&rt.smoothChildTiming&&et._ts&&(et._start=_roundPrecise(rt._time-(et._ts>0?nt/et._ts:((et._dirty?et.totalDuration():et._tDur)-nt)/-et._ts)),_setEnd(et),rt._dirty||_uncache(rt,et)),et},_postAddChecks=function(et,nt){var rt;if((nt._time||!nt._dur&&nt._initted||nt._start_tinyNum)&&nt.render(rt,!0)),_uncache(et,nt)._dp&&et._initted&&et._time>=et._dur&&et._ts){if(et._dur=0&&rt.totalTime(rt._tTime),rt=rt._dp;et._zTime=-_tinyNum}},_addToTimeline=function(et,nt,rt,it){return nt.parent&&_removeFromParent(nt),nt._start=_roundPrecise((_isNumber$1(rt)?rt:rt||et!==_globalTimeline?_parsePosition(et,rt,nt):et._time)+nt._delay),nt._end=_roundPrecise(nt._start+(nt.totalDuration()/Math.abs(nt.timeScale())||0)),_addLinkedListItem(et,nt,"_first","_last",et._sort?"_start":0),_isFromOrFromStart(nt)||(et._recent=nt),it||_postAddChecks(et,nt),et._ts<0&&_alignPlayhead(et,et._tTime),et},_scrollTrigger=function(et,nt){return(_globals.ScrollTrigger||_missingPlugin("scrollTrigger",nt))&&_globals.ScrollTrigger.create(nt,et)},_attemptInitTween=function(et,nt,rt,it,ot){if(_initTween(et,nt,ot),!et._initted)return 1;if(!rt&&et._pt&&!_reverting$1&&(et._dur&&et.vars.lazy!==!1||!et._dur&&et.vars.lazy)&&_lastRenderedFrame!==_ticker.frame)return _lazyTweens.push(et),et._lazy=[ot,it],1},_parentPlayheadIsBeforeStart=function tt(et){var nt=et.parent;return nt&&nt._ts&&nt._initted&&!nt._lock&&(nt.rawTime()<0||tt(nt))},_isFromOrFromStart=function(et){var nt=et.data;return nt==="isFromStart"||nt==="isStart"},_renderZeroDurationTween=function(et,nt,rt,it){var ot=et.ratio,at=nt<0||!nt&&(!et._start&&_parentPlayheadIsBeforeStart(et)&&!(!et._initted&&_isFromOrFromStart(et))||(et._ts<0||et._dp._ts<0)&&!_isFromOrFromStart(et))?0:1,st=et._rDelay,lt=0,ct,ut,ht;if(st&&et._repeat&&(lt=_clamp(0,et._tDur,nt),ut=_animationCycle(lt,st),et._yoyo&&ut&1&&(at=1-at),ut!==_animationCycle(et._tTime,st)&&(ot=1-at,et.vars.repeatRefresh&&et._initted&&et.invalidate())),at!==ot||_reverting$1||it||et._zTime===_tinyNum||!nt&&et._zTime){if(!et._initted&&_attemptInitTween(et,nt,it,rt,lt))return;for(ht=et._zTime,et._zTime=nt||(rt?_tinyNum:0),rt||(rt=nt&&!ht),et.ratio=at,et._from&&(at=1-at),et._time=0,et._tTime=lt,ct=et._pt;ct;)ct.r(at,ct.d),ct=ct._next;nt<0&&_rewindStartAt(et,nt,rt,!0),et._onUpdate&&!rt&&_callback(et,"onUpdate"),lt&&et._repeat&&!rt&&et.parent&&_callback(et,"onRepeat"),(nt>=et._tDur||nt<0)&&et.ratio===at&&(at&&_removeFromParent(et,1),!rt&&!_reverting$1&&(_callback(et,at?"onComplete":"onReverseComplete",!0),et._prom&&et._prom()))}else et._zTime||(et._zTime=nt)},_findNextPauseTween=function(et,nt,rt){var it;if(rt>nt)for(it=et._first;it&&it._start<=rt;){if(it.data==="isPause"&&it._start>nt)return it;it=it._next}else for(it=et._last;it&&it._start>=rt;){if(it.data==="isPause"&&it._start0&&!it&&_alignPlayhead(et,et._tTime=et._tDur*st),et.parent&&_setEnd(et),rt||_uncache(et.parent,et),et},_onUpdateTotalDuration=function(et){return et instanceof Timeline$1?_uncache(et):_setDuration(et,et._dur)},_zeroPosition={_start:0,endTime:_emptyFunc,totalDuration:_emptyFunc},_parsePosition=function tt(et,nt,rt){var it=et.labels,ot=et._recent||_zeroPosition,at=et.duration()>=_bigNum$1?ot.endTime(!1):et._dur,st,lt,ct;return _isString(nt)&&(isNaN(nt)||nt in it)?(lt=nt.charAt(0),ct=nt.substr(-1)==="%",st=nt.indexOf("="),lt==="<"||lt===">"?(st>=0&&(nt=nt.replace(/=/,"")),(lt==="<"?ot._start:ot.endTime(ot._repeat>=0))+(parseFloat(nt.substr(1))||0)*(ct?(st<0?ot:rt).totalDuration()/100:1)):st<0?(nt in it||(it[nt]=at),it[nt]):(lt=parseFloat(nt.charAt(st-1)+nt.substr(st+1)),ct&&rt&&(lt=lt/100*(_isArray(rt)?rt[0]:rt).totalDuration()),st>1?tt(et,nt.substr(0,st-1),rt)+lt:at+lt)):nt==null?at:+nt},_createTweenType=function(et,nt,rt){var it=_isNumber$1(nt[1]),ot=(it?2:1)+(et<2?0:1),at=nt[ot],st,lt;if(it&&(at.duration=nt[1]),at.parent=rt,et){for(st=at,lt=rt;lt&&!("immediateRender"in st);)st=lt.vars.defaults||{},lt=_isNotFalse(lt.vars.inherit)&<.parent;at.immediateRender=_isNotFalse(st.immediateRender),et<2?at.runBackwards=1:at.startAt=nt[ot-1]}return new Tween(nt[0],at,nt[ot+1])},_conditionalReturn=function(et,nt){return et||et===0?nt(et):nt},_clamp=function(et,nt,rt){return rtnt?nt:rt},getUnit=function(et,nt){return!_isString(et)||!(nt=_unitExp.exec(et))?"":nt[1]},clamp$1=function(et,nt,rt){return _conditionalReturn(rt,function(it){return _clamp(et,nt,it)})},_slice=[].slice,_isArrayLike=function(et,nt){return et&&_isObject(et)&&"length"in et&&(!nt&&!et.length||et.length-1 in et&&_isObject(et[0]))&&!et.nodeType&&et!==_win$1},_flatten=function(et,nt,rt){return rt===void 0&&(rt=[]),et.forEach(function(it){var ot;return _isString(it)&&!nt||_isArrayLike(it,1)?(ot=rt).push.apply(ot,toArray$3(it)):rt.push(it)})||rt},toArray$3=function(et,nt,rt){return _context&&!nt&&_context.selector?_context.selector(et):_isString(et)&&!rt&&(_coreInitted||!_wake())?_slice.call((nt||_doc$1).querySelectorAll(et),0):_isArray(et)?_flatten(et,rt):_isArrayLike(et)?_slice.call(et,0):et?[et]:[]},selector=function(et){return et=toArray$3(et)[0]||_warn("Invalid scope")||{},function(nt){var rt=et.current||et.nativeElement||et;return toArray$3(nt,rt.querySelectorAll?rt:rt===et?_warn("Invalid scope")||_doc$1.createElement("div"):et)}},shuffle=function(et){return et.sort(function(){return .5-Math.random()})},distribute=function(et){if(_isFunction(et))return et;var nt=_isObject(et)?et:{each:et},rt=_parseEase(nt.ease),it=nt.from||0,ot=parseFloat(nt.base)||0,at={},st=it>0&&it<1,lt=isNaN(it)||st,ct=nt.axis,ut=it,ht=it;return _isString(it)?ut=ht={center:.5,edges:.5,end:1}[it]||0:!st&<&&(ut=it[0],ht=it[1]),function(dt,pt,mt){var gt=(mt||nt).length,yt=at[gt],bt,wt,vt,kt,St,Tt,At,Et,Mt;if(!yt){if(Mt=nt.grid==="auto"?0:(nt.grid||[1,_bigNum$1])[1],!Mt){for(At=-_bigNum$1;At<(At=mt[Mt++].getBoundingClientRect().left)&&MtAt&&(At=St),Stgt?gt-1:ct?ct==="y"?gt/Mt:Mt:Math.max(Mt,gt/Mt))||0)*(it==="edges"?-1:1),yt.b=gt<0?ot-gt:ot,yt.u=getUnit(nt.amount||nt.each)||0,rt=rt&><0?_invertEase(rt):rt}return gt=(yt[dt]-yt.min)/yt.max||0,_roundPrecise(yt.b+(rt?rt(gt):gt)*yt.v)+yt.u}},_roundModifier=function(et){var nt=Math.pow(10,((et+"").split(".")[1]||"").length);return function(rt){var it=_roundPrecise(Math.round(parseFloat(rt)/et)*et*nt);return(it-it%1)/nt+(_isNumber$1(rt)?0:getUnit(rt))}},snap=function(et,nt){var rt=_isArray(et),it,ot;return!rt&&_isObject(et)&&(it=rt=et.radius||_bigNum$1,et.values?(et=toArray$3(et.values),(ot=!_isNumber$1(et[0]))&&(it*=it)):et=_roundModifier(et.increment)),_conditionalReturn(nt,rt?_isFunction(et)?function(at){return ot=et(at),Math.abs(ot-at)<=it?ot:at}:function(at){for(var st=parseFloat(ot?at.x:at),lt=parseFloat(ot?at.y:0),ct=_bigNum$1,ut=0,ht=et.length,dt,pt;ht--;)ot?(dt=et[ht].x-st,pt=et[ht].y-lt,dt=dt*dt+pt*pt):dt=Math.abs(et[ht]-st),dtit?ot-at:at)})},_replaceRandom=function(et){for(var nt=0,rt="",it,ot,at,st;~(it=et.indexOf("random(",nt));)at=et.indexOf(")",it),st=et.charAt(it+7)==="[",ot=et.substr(it+7,at-it-7).match(st?_delimitedValueExp:_strictNumExp),rt+=et.substr(nt,it-nt)+random(st?ot:+ot[0],st?0:+ot[1],+ot[2]||1e-5),nt=at+1;return rt+et.substr(nt,et.length-nt)},mapRange=function(et,nt,rt,it,ot){var at=nt-et,st=it-rt;return _conditionalReturn(ot,function(lt){return rt+((lt-et)/at*st||0)})},interpolate$1=function tt(et,nt,rt,it){var ot=isNaN(et+nt)?0:function(pt){return(1-pt)*et+pt*nt};if(!ot){var at=_isString(et),st={},lt,ct,ut,ht,dt;if(rt===!0&&(it=1)&&(rt=null),at)et={p:et},nt={p:nt};else if(_isArray(et)&&!_isArray(nt)){for(ut=[],ht=et.length,dt=ht-2,ct=1;ct(st=Math.abs(st))&&(lt=at,ot=st);return lt},_callback=function(et,nt,rt){var it=et.vars,ot=it[nt],at=_context,st=et._ctx,lt,ct,ut;if(ot)return lt=it[nt+"Params"],ct=it.callbackScope||et,rt&&_lazyTweens.length&&_lazyRender(),st&&(_context=st),ut=lt?ot.apply(ct,lt):ot.call(ct),_context=at,ut},_interrupt=function(et){return _removeFromParent(et),et.scrollTrigger&&et.scrollTrigger.kill(!!_reverting$1),et.progress()<1&&_callback(et,"onInterrupt"),et},_quickTween,_registerPluginQueue=[],_createPlugin=function(et){if(_windowExists$1()&&et){et=!et.name&&et.default||et;var nt=et.name,rt=_isFunction(et),it=nt&&!rt&&et.init?function(){this._props=[]}:et,ot={init:_emptyFunc,render:_renderPropTweens,add:_addPropTween,kill:_killPropTweensOf,modifier:_addPluginModifier,rawVars:0},at={targetTest:0,get:0,getSetter:_getSetter,aliases:{},register:0};if(_wake(),et!==it){if(_plugins[nt])return;_setDefaults(it,_setDefaults(_copyExcluding(et,ot),at)),_merge(it.prototype,_merge(ot,_copyExcluding(et,at))),_plugins[it.prop=nt]=it,et.targetTest&&(_harnessPlugins.push(it),_reservedProps[nt]=1),nt=(nt==="css"?"CSS":nt.charAt(0).toUpperCase()+nt.substr(1))+"Plugin"}_addGlobal(nt,it),et.register&&et.register(gsap,it,PropTween)}else et&&_registerPluginQueue.push(et)},_255=255,_colorLookup={aqua:[0,_255,_255],lime:[0,_255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,_255],navy:[0,0,128],white:[_255,_255,_255],olive:[128,128,0],yellow:[_255,_255,0],orange:[_255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[_255,0,0],pink:[_255,192,203],cyan:[0,_255,_255],transparent:[_255,_255,_255,0]},_hue=function(et,nt,rt){return et+=et<0?1:et>1?-1:0,(et*6<1?nt+(rt-nt)*et*6:et<.5?rt:et*3<2?nt+(rt-nt)*(2/3-et)*6:nt)*_255+.5|0},splitColor=function(et,nt,rt){var it=et?_isNumber$1(et)?[et>>16,et>>8&_255,et&_255]:0:_colorLookup.black,ot,at,st,lt,ct,ut,ht,dt,pt,mt;if(!it){if(et.substr(-1)===","&&(et=et.substr(0,et.length-1)),_colorLookup[et])it=_colorLookup[et];else if(et.charAt(0)==="#"){if(et.length<6&&(ot=et.charAt(1),at=et.charAt(2),st=et.charAt(3),et="#"+ot+ot+at+at+st+st+(et.length===5?et.charAt(4)+et.charAt(4):"")),et.length===9)return it=parseInt(et.substr(1,6),16),[it>>16,it>>8&_255,it&_255,parseInt(et.substr(7),16)/255];et=parseInt(et.substr(1),16),it=[et>>16,et>>8&_255,et&_255]}else if(et.substr(0,3)==="hsl"){if(it=mt=et.match(_strictNumExp),!nt)lt=+it[0]%360/360,ct=+it[1]/100,ut=+it[2]/100,at=ut<=.5?ut*(ct+1):ut+ct-ut*ct,ot=ut*2-at,it.length>3&&(it[3]*=1),it[0]=_hue(lt+1/3,ot,at),it[1]=_hue(lt,ot,at),it[2]=_hue(lt-1/3,ot,at);else if(~et.indexOf("="))return it=et.match(_numExp),rt&&it.length<4&&(it[3]=1),it}else it=et.match(_strictNumExp)||_colorLookup.transparent;it=it.map(Number)}return nt&&!mt&&(ot=it[0]/_255,at=it[1]/_255,st=it[2]/_255,ht=Math.max(ot,at,st),dt=Math.min(ot,at,st),ut=(ht+dt)/2,ht===dt?lt=ct=0:(pt=ht-dt,ct=ut>.5?pt/(2-ht-dt):pt/(ht+dt),lt=ht===ot?(at-st)/pt+(atet&&(rt+=bt-nt),it+=bt,St=it-rt,vt=St-at,(vt>0||wt)&&(Tt=++ht.frame,dt=St-ht.time*1e3,ht.time=St=St/1e3,at+=vt+(vt>=ot?4:ot-vt),kt=1),wt||(lt=ct(gt)),kt)for(pt=0;pt=bt&&pt--},_listeners:st},ht}(),_wake=function(){return!_tickerActive&&_ticker.wake()},_easeMap={},_customEaseExp=/^[\d.\-M][\d.\-,\s]/,_quotesExp=/["']/g,_parseObjectInString=function(et){for(var nt={},rt=et.substr(1,et.length-3).split(":"),it=rt[0],ot=1,at=rt.length,st,lt,ct;ot1&&rt.config?rt.config.apply(null,~et.indexOf("{")?[_parseObjectInString(nt[1])]:_valueInParentheses(et).split(",").map(_numericIfPossible)):_easeMap._CE&&_customEaseExp.test(et)?_easeMap._CE("",et):rt},_invertEase=function(et){return function(nt){return 1-et(1-nt)}},_propagateYoyoEase=function tt(et,nt){for(var rt=et._first,it;rt;)rt instanceof Timeline$1?tt(rt,nt):rt.vars.yoyoEase&&(!rt._yoyo||!rt._repeat)&&rt._yoyo!==nt&&(rt.timeline?tt(rt.timeline,nt):(it=rt._ease,rt._ease=rt._yEase,rt._yEase=it,rt._yoyo=nt)),rt=rt._next},_parseEase=function(et,nt){return et&&(_isFunction(et)?et:_easeMap[et]||_configEaseFromString(et))||nt},_insertEase=function(et,nt,rt,it){rt===void 0&&(rt=function(lt){return 1-nt(1-lt)}),it===void 0&&(it=function(lt){return lt<.5?nt(lt*2)/2:1-nt((1-lt)*2)/2});var ot={easeIn:nt,easeOut:rt,easeInOut:it},at;return _forEachName(et,function(st){_easeMap[st]=_globals[st]=ot,_easeMap[at=st.toLowerCase()]=rt;for(var lt in ot)_easeMap[at+(lt==="easeIn"?".in":lt==="easeOut"?".out":".inOut")]=_easeMap[st+"."+lt]=ot[lt]}),ot},_easeInOutFromOut=function(et){return function(nt){return nt<.5?(1-et(1-nt*2))/2:.5+et((nt-.5)*2)/2}},_configElastic=function tt(et,nt,rt){var it=nt>=1?nt:1,ot=(rt||(et?.3:.45))/(nt<1?nt:1),at=ot/_2PI*(Math.asin(1/it)||0),st=function(ut){return ut===1?1:it*Math.pow(2,-10*ut)*_sin((ut-at)*ot)+1},lt=et==="out"?st:et==="in"?function(ct){return 1-st(1-ct)}:_easeInOutFromOut(st);return ot=_2PI/ot,lt.config=function(ct,ut){return tt(et,ct,ut)},lt},_configBack=function tt(et,nt){nt===void 0&&(nt=1.70158);var rt=function(at){return at?--at*at*((nt+1)*at+nt)+1:0},it=et==="out"?rt:et==="in"?function(ot){return 1-rt(1-ot)}:_easeInOutFromOut(rt);return it.config=function(ot){return tt(et,ot)},it};_forEachName("Linear,Quad,Cubic,Quart,Quint,Strong",function(tt,et){var nt=et<5?et+1:et;_insertEase(tt+",Power"+(nt-1),et?function(rt){return Math.pow(rt,nt)}:function(rt){return rt},function(rt){return 1-Math.pow(1-rt,nt)},function(rt){return rt<.5?Math.pow(rt*2,nt)/2:1-Math.pow((1-rt)*2,nt)/2})});_easeMap.Linear.easeNone=_easeMap.none=_easeMap.Linear.easeIn;_insertEase("Elastic",_configElastic("in"),_configElastic("out"),_configElastic());(function(tt,et){var nt=1/et,rt=2*nt,it=2.5*nt,ot=function(st){return st0?rt+(rt+this._rDelay)*this._repeat:rt):this.totalDuration()&&this._dur},et.totalDuration=function(rt){return arguments.length?(this._dirty=0,_setDuration(this,this._repeat<0?rt:(rt-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},et.totalTime=function(rt,it){if(_wake(),!arguments.length)return this._tTime;var ot=this._dp;if(ot&&ot.smoothChildTiming&&this._ts){for(_alignPlayhead(this,rt),!ot._dp||ot.parent||_postAddChecks(ot,this);ot&&ot.parent;)ot.parent._time!==ot._start+(ot._ts>=0?ot._tTime/ot._ts:(ot.totalDuration()-ot._tTime)/-ot._ts)&&ot.totalTime(ot._tTime,!0),ot=ot.parent;!this.parent&&this._dp.autoRemoveChildren&&(this._ts>0&&rt0||!this._tDur&&!rt)&&_addToTimeline(this._dp,this,this._start-this._delay)}return(this._tTime!==rt||!this._dur&&!it||this._initted&&Math.abs(this._zTime)===_tinyNum||!rt&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=rt),_lazySafeRender(this,rt,it)),this},et.time=function(rt,it){return arguments.length?this.totalTime(Math.min(this.totalDuration(),rt+_elapsedCycleDuration(this))%(this._dur+this._rDelay)||(rt?this._dur:0),it):this._time},et.totalProgress=function(rt,it){return arguments.length?this.totalTime(this.totalDuration()*rt,it):this.totalDuration()?Math.min(1,this._tTime/this._tDur):this.ratio},et.progress=function(rt,it){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&!(this.iteration()&1)?1-rt:rt)+_elapsedCycleDuration(this),it):this.duration()?Math.min(1,this._time/this._dur):this.ratio},et.iteration=function(rt,it){var ot=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(rt-1)*ot,it):this._repeat?_animationCycle(this._tTime,ot)+1:1},et.timeScale=function(rt){if(!arguments.length)return this._rts===-_tinyNum?0:this._rts;if(this._rts===rt)return this;var it=this.parent&&this._ts?_parentToChildTotalTime(this.parent._time,this):this._tTime;return this._rts=+rt||0,this._ts=this._ps||rt===-_tinyNum?0:this._rts,this.totalTime(_clamp(-Math.abs(this._delay),this._tDur,it),!0),_setEnd(this),_recacheAncestors(this)},et.paused=function(rt){return arguments.length?(this._ps!==rt&&(this._ps=rt,rt?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(_wake(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,this.progress()===1&&Math.abs(this._zTime)!==_tinyNum&&(this._tTime-=_tinyNum)))),this):this._ps},et.startTime=function(rt){if(arguments.length){this._start=rt;var it=this.parent||this._dp;return it&&(it._sort||!this.parent)&&_addToTimeline(it,this,rt-this._delay),this}return this._start},et.endTime=function(rt){return this._start+(_isNotFalse(rt)?this.totalDuration():this.duration())/Math.abs(this._ts||1)},et.rawTime=function(rt){var it=this.parent||this._dp;return it?rt&&(!this._ts||this._repeat&&this._time&&this.totalProgress()<1)?this._tTime%(this._dur+this._rDelay):this._ts?_parentToChildTotalTime(it.rawTime(rt),this):this._tTime:this._tTime},et.revert=function(rt){rt===void 0&&(rt=_revertConfig);var it=_reverting$1;return _reverting$1=rt,(this._initted||this._startAt)&&(this.timeline&&this.timeline.revert(rt),this.totalTime(-.01,rt.suppressEvents)),this.data!=="nested"&&rt.kill!==!1&&this.kill(),_reverting$1=it,this},et.globalTime=function(rt){for(var it=this,ot=arguments.length?rt:it.rawTime();it;)ot=it._start+ot/(it._ts||1),it=it._dp;return!this.parent&&this._sat?this._sat.vars.immediateRender?-1/0:this._sat.globalTime(rt):ot},et.repeat=function(rt){return arguments.length?(this._repeat=rt===1/0?-2:rt,_onUpdateTotalDuration(this)):this._repeat===-2?1/0:this._repeat},et.repeatDelay=function(rt){if(arguments.length){var it=this._time;return this._rDelay=rt,_onUpdateTotalDuration(this),it?this.time(it):this}return this._rDelay},et.yoyo=function(rt){return arguments.length?(this._yoyo=rt,this):this._yoyo},et.seek=function(rt,it){return this.totalTime(_parsePosition(this,rt),_isNotFalse(it))},et.restart=function(rt,it){return this.play().totalTime(rt?-this._delay:0,_isNotFalse(it))},et.play=function(rt,it){return rt!=null&&this.seek(rt,it),this.reversed(!1).paused(!1)},et.reverse=function(rt,it){return rt!=null&&this.seek(rt||this.totalDuration(),it),this.reversed(!0).paused(!1)},et.pause=function(rt,it){return rt!=null&&this.seek(rt,it),this.paused(!0)},et.resume=function(){return this.paused(!1)},et.reversed=function(rt){return arguments.length?(!!rt!==this.reversed()&&this.timeScale(-this._rts||(rt?-_tinyNum:0)),this):this._rts<0},et.invalidate=function(){return this._initted=this._act=0,this._zTime=-_tinyNum,this},et.isActive=function(){var rt=this.parent||this._dp,it=this._start,ot;return!!(!rt||this._ts&&this._initted&&rt.isActive()&&(ot=rt.rawTime(!0))>=it&&ot1?(it?(at[rt]=it,ot&&(at[rt+"Params"]=ot),rt==="onUpdate"&&(this._onUpdate=it)):delete at[rt],this):at[rt]},et.then=function(rt){var it=this;return new Promise(function(ot){var at=_isFunction(rt)?rt:_passThrough,st=function(){var ct=it.then;it.then=null,_isFunction(at)&&(at=at(it))&&(at.then||at===it)&&(it.then=ct),ot(at),it.then=ct};it._initted&&it.totalProgress()===1&&it._ts>=0||!it._tTime&&it._ts<0?st():it._prom=st})},et.kill=function(){_interrupt(this)},tt}();_setDefaults(Animation.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-_tinyNum,_prom:0,_ps:!1,_rts:1});var Timeline$1=function(tt){_inheritsLoose(et,tt);function et(rt,it){var ot;return rt===void 0&&(rt={}),ot=tt.call(this,rt)||this,ot.labels={},ot.smoothChildTiming=!!rt.smoothChildTiming,ot.autoRemoveChildren=!!rt.autoRemoveChildren,ot._sort=_isNotFalse(rt.sortChildren),_globalTimeline&&_addToTimeline(rt.parent||_globalTimeline,_assertThisInitialized$b(ot),it),rt.reversed&&ot.reverse(),rt.paused&&ot.paused(!0),rt.scrollTrigger&&_scrollTrigger(_assertThisInitialized$b(ot),rt.scrollTrigger),ot}var nt=et.prototype;return nt.to=function(it,ot,at){return _createTweenType(0,arguments,this),this},nt.from=function(it,ot,at){return _createTweenType(1,arguments,this),this},nt.fromTo=function(it,ot,at,st){return _createTweenType(2,arguments,this),this},nt.set=function(it,ot,at){return ot.duration=0,ot.parent=this,_inheritDefaults(ot).repeatDelay||(ot.repeat=0),ot.immediateRender=!!ot.immediateRender,new Tween(it,ot,_parsePosition(this,at),1),this},nt.call=function(it,ot,at){return _addToTimeline(this,Tween.delayedCall(0,it,ot),at)},nt.staggerTo=function(it,ot,at,st,lt,ct,ut){return at.duration=ot,at.stagger=at.stagger||st,at.onComplete=ct,at.onCompleteParams=ut,at.parent=this,new Tween(it,at,_parsePosition(this,lt)),this},nt.staggerFrom=function(it,ot,at,st,lt,ct,ut){return at.runBackwards=1,_inheritDefaults(at).immediateRender=_isNotFalse(at.immediateRender),this.staggerTo(it,ot,at,st,lt,ct,ut)},nt.staggerFromTo=function(it,ot,at,st,lt,ct,ut,ht){return st.startAt=at,_inheritDefaults(st).immediateRender=_isNotFalse(st.immediateRender),this.staggerTo(it,ot,st,lt,ct,ut,ht)},nt.render=function(it,ot,at){var st=this._time,lt=this._dirty?this.totalDuration():this._tDur,ct=this._dur,ut=it<=0?0:_roundPrecise(it),ht=this._zTime<0!=it<0&&(this._initted||!ct),dt,pt,mt,gt,yt,bt,wt,vt,kt,St,Tt,At;if(this!==_globalTimeline&&ut>lt&&it>=0&&(ut=lt),ut!==this._tTime||at||ht){if(st!==this._time&&ct&&(ut+=this._time-st,it+=this._time-st),dt=ut,kt=this._start,vt=this._ts,bt=!vt,ht&&(ct||(st=this._zTime),(it||!ot)&&(this._zTime=it)),this._repeat){if(Tt=this._yoyo,yt=ct+this._rDelay,this._repeat<-1&&it<0)return this.totalTime(yt*100+it,ot,at);if(dt=_roundPrecise(ut%yt),ut===lt?(gt=this._repeat,dt=ct):(gt=~~(ut/yt),gt&>===ut/yt&&(dt=ct,gt--),dt>ct&&(dt=ct)),St=_animationCycle(this._tTime,yt),!st&&this._tTime&&St!==gt&&this._tTime-St*yt-this._dur<=0&&(St=gt),Tt&>&1&&(dt=ct-dt,At=1),gt!==St&&!this._lock){var Et=Tt&&St&1,Mt=Et===(Tt&>&1);if(gt=st&&it>=0)for(pt=this._first;pt;){if(mt=pt._next,(pt._act||dt>=pt._start)&&pt._ts&&wt!==pt){if(pt.parent!==this)return this.render(it,ot,at);if(pt.render(pt._ts>0?(dt-pt._start)*pt._ts:(pt._dirty?pt.totalDuration():pt._tDur)+(dt-pt._start)*pt._ts,ot,at),dt!==this._time||!this._ts&&!bt){wt=0,mt&&(ut+=this._zTime=-_tinyNum);break}}pt=mt}else{pt=this._last;for(var Lt=it<0?it:dt;pt;){if(mt=pt._prev,(pt._act||Lt<=pt._end)&&pt._ts&&wt!==pt){if(pt.parent!==this)return this.render(it,ot,at);if(pt.render(pt._ts>0?(Lt-pt._start)*pt._ts:(pt._dirty?pt.totalDuration():pt._tDur)+(Lt-pt._start)*pt._ts,ot,at||_reverting$1&&(pt._initted||pt._startAt)),dt!==this._time||!this._ts&&!bt){wt=0,mt&&(ut+=this._zTime=Lt?-_tinyNum:_tinyNum);break}}pt=mt}}if(wt&&!ot&&(this.pause(),wt.render(dt>=st?0:-_tinyNum)._zTime=dt>=st?1:-1,this._ts))return this._start=kt,_setEnd(this),this.render(it,ot,at);this._onUpdate&&!ot&&_callback(this,"onUpdate",!0),(ut===lt&&this._tTime>=this.totalDuration()||!ut&&st)&&(kt===this._start||Math.abs(vt)!==Math.abs(this._ts))&&(this._lock||((it||!ct)&&(ut===lt&&this._ts>0||!ut&&this._ts<0)&&_removeFromParent(this,1),!ot&&!(it<0&&!st)&&(ut||st||!lt)&&(_callback(this,ut===lt&&it>=0?"onComplete":"onReverseComplete",!0),this._prom&&!(ut0)&&this._prom())))}return this},nt.add=function(it,ot){var at=this;if(_isNumber$1(ot)||(ot=_parsePosition(this,ot,it)),!(it instanceof Animation)){if(_isArray(it))return it.forEach(function(st){return at.add(st,ot)}),this;if(_isString(it))return this.addLabel(it,ot);if(_isFunction(it))it=Tween.delayedCall(0,it);else return this}return this!==it?_addToTimeline(this,it,ot):this},nt.getChildren=function(it,ot,at,st){it===void 0&&(it=!0),ot===void 0&&(ot=!0),at===void 0&&(at=!0),st===void 0&&(st=-_bigNum$1);for(var lt=[],ct=this._first;ct;)ct._start>=st&&(ct instanceof Tween?ot&<.push(ct):(at&<.push(ct),it&<.push.apply(lt,ct.getChildren(!0,ot,at)))),ct=ct._next;return lt},nt.getById=function(it){for(var ot=this.getChildren(1,1,1),at=ot.length;at--;)if(ot[at].vars.id===it)return ot[at]},nt.remove=function(it){return _isString(it)?this.removeLabel(it):_isFunction(it)?this.killTweensOf(it):(_removeLinkedListItem(this,it),it===this._recent&&(this._recent=this._last),_uncache(this))},nt.totalTime=function(it,ot){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=_roundPrecise(_ticker.time-(this._ts>0?it/this._ts:(this.totalDuration()-it)/-this._ts))),tt.prototype.totalTime.call(this,it,ot),this._forcing=0,this):this._tTime},nt.addLabel=function(it,ot){return this.labels[it]=_parsePosition(this,ot),this},nt.removeLabel=function(it){return delete this.labels[it],this},nt.addPause=function(it,ot,at){var st=Tween.delayedCall(0,ot||_emptyFunc,at);return st.data="isPause",this._hasPause=1,_addToTimeline(this,st,_parsePosition(this,it))},nt.removePause=function(it){var ot=this._first;for(it=_parsePosition(this,it);ot;)ot._start===it&&ot.data==="isPause"&&_removeFromParent(ot),ot=ot._next},nt.killTweensOf=function(it,ot,at){for(var st=this.getTweensOf(it,at),lt=st.length;lt--;)_overwritingTween!==st[lt]&&st[lt].kill(it,ot);return this},nt.getTweensOf=function(it,ot){for(var at=[],st=toArray$3(it),lt=this._first,ct=_isNumber$1(ot),ut;lt;)lt instanceof Tween?_arrayContainsAny(lt._targets,st)&&(ct?(!_overwritingTween||lt._initted&<._ts)&<.globalTime(0)<=ot&<.globalTime(lt.totalDuration())>ot:!ot||lt.isActive())&&at.push(lt):(ut=lt.getTweensOf(st,ot)).length&&at.push.apply(at,ut),lt=lt._next;return at},nt.tweenTo=function(it,ot){ot=ot||{};var at=this,st=_parsePosition(at,it),lt=ot,ct=lt.startAt,ut=lt.onStart,ht=lt.onStartParams,dt=lt.immediateRender,pt,mt=Tween.to(at,_setDefaults({ease:ot.ease||"none",lazy:!1,immediateRender:!1,time:st,overwrite:"auto",duration:ot.duration||Math.abs((st-(ct&&"time"in ct?ct.time:at._time))/at.timeScale())||_tinyNum,onStart:function(){if(at.pause(),!pt){var yt=ot.duration||Math.abs((st-(ct&&"time"in ct?ct.time:at._time))/at.timeScale());mt._dur!==yt&&_setDuration(mt,yt,0,1).render(mt._time,!0,!0),pt=1}ut&&ut.apply(mt,ht||[])}},ot));return dt?mt.render(0):mt},nt.tweenFromTo=function(it,ot,at){return this.tweenTo(ot,_setDefaults({startAt:{time:_parsePosition(this,it)}},at))},nt.recent=function(){return this._recent},nt.nextLabel=function(it){return it===void 0&&(it=this._time),_getLabelInDirection(this,_parsePosition(this,it))},nt.previousLabel=function(it){return it===void 0&&(it=this._time),_getLabelInDirection(this,_parsePosition(this,it),1)},nt.currentLabel=function(it){return arguments.length?this.seek(it,!0):this.previousLabel(this._time+_tinyNum)},nt.shiftChildren=function(it,ot,at){at===void 0&&(at=0);for(var st=this._first,lt=this.labels,ct;st;)st._start>=at&&(st._start+=it,st._end+=it),st=st._next;if(ot)for(ct in lt)lt[ct]>=at&&(lt[ct]+=it);return _uncache(this)},nt.invalidate=function(it){var ot=this._first;for(this._lock=0;ot;)ot.invalidate(it),ot=ot._next;return tt.prototype.invalidate.call(this,it)},nt.clear=function(it){it===void 0&&(it=!0);for(var ot=this._first,at;ot;)at=ot._next,this.remove(ot),ot=at;return this._dp&&(this._time=this._tTime=this._pTime=0),it&&(this.labels={}),_uncache(this)},nt.totalDuration=function(it){var ot=0,at=this,st=at._last,lt=_bigNum$1,ct,ut,ht;if(arguments.length)return at.timeScale((at._repeat<0?at.duration():at.totalDuration())/(at.reversed()?-it:it));if(at._dirty){for(ht=at.parent;st;)ct=st._prev,st._dirty&&st.totalDuration(),ut=st._start,ut>lt&&at._sort&&st._ts&&!at._lock?(at._lock=1,_addToTimeline(at,st,ut-st._delay,1)._lock=0):lt=ut,ut<0&&st._ts&&(ot-=ut,(!ht&&!at._dp||ht&&ht.smoothChildTiming)&&(at._start+=ut/at._ts,at._time-=ut,at._tTime-=ut),at.shiftChildren(-ut,!1,-1/0),lt=0),st._end>ot&&st._ts&&(ot=st._end),st=ct;_setDuration(at,at===_globalTimeline&&at._time>ot?at._time:ot,1,1),at._dirty=0}return at._tDur},et.updateRoot=function(it){if(_globalTimeline._ts&&(_lazySafeRender(_globalTimeline,_parentToChildTotalTime(it,_globalTimeline)),_lastRenderedFrame=_ticker.frame),_ticker.frame>=_nextGCFrame){_nextGCFrame+=_config.autoSleep||120;var ot=_globalTimeline._first;if((!ot||!ot._ts)&&_config.autoSleep&&_ticker._listeners.length<2){for(;ot&&!ot._ts;)ot=ot._next;ot||_ticker.sleep()}}},et}(Animation);_setDefaults(Timeline$1.prototype,{_lock:0,_hasPause:0,_forcing:0});var _addComplexStringPropTween=function(et,nt,rt,it,ot,at,st){var lt=new PropTween(this._pt,et,nt,0,1,_renderComplexString,null,ot),ct=0,ut=0,ht,dt,pt,mt,gt,yt,bt,wt;for(lt.b=rt,lt.e=it,rt+="",it+="",(bt=~it.indexOf("random("))&&(it=_replaceRandom(it)),at&&(wt=[rt,it],at(wt,et,nt),rt=wt[0],it=wt[1]),dt=rt.match(_complexStringNumExp)||[];ht=_complexStringNumExp.exec(it);)mt=ht[0],gt=it.substring(ct,ht.index),pt?pt=(pt+1)%5:gt.substr(-5)==="rgba("&&(pt=1),mt!==dt[ut++]&&(yt=parseFloat(dt[ut-1])||0,lt._pt={_next:lt._pt,p:gt||ut===1?gt:",",s:yt,c:mt.charAt(1)==="="?_parseRelative(yt,mt)-yt:parseFloat(mt)-yt,m:pt&&pt<4?Math.round:0},ct=_complexStringNumExp.lastIndex);return lt.c=ct")}),kt.duration();else{Tt={};for(Et in mt)Et==="ease"||Et==="easeEach"||_parseKeyframe(Et,mt[Et],Tt,mt.easeEach);for(Et in Tt)for($t=Tt[Et].sort(function(Ot,zt){return Ot.t-zt.t}),Rt=0,St=0;St<$t.length;St++)xt=$t[St],It={ease:xt.e,duration:(xt.t-(St?$t[St-1].t:0))/100*ct},It[Et]=xt.v,kt.to(vt,It,Rt),Rt+=It.duration;kt.duration()lt-_tinyNum&&!ut?lt:it<_tinyNum?0:it,dt,pt,mt,gt,yt,bt,wt,vt,kt;if(!ct)_renderZeroDurationTween(this,it,ot,at);else if(ht!==this._tTime||!it||at||!this._initted&&this._tTime||this._startAt&&this._zTime<0!==ut){if(dt=ht,vt=this.timeline,this._repeat){if(gt=ct+this._rDelay,this._repeat<-1&&ut)return this.totalTime(gt*100+it,ot,at);if(dt=_roundPrecise(ht%gt),ht===lt?(mt=this._repeat,dt=ct):(mt=~~(ht/gt),mt&&mt===ht/gt&&(dt=ct,mt--),dt>ct&&(dt=ct)),bt=this._yoyo&&mt&1,bt&&(kt=this._yEase,dt=ct-dt),yt=_animationCycle(this._tTime,gt),dt===st&&!at&&this._initted)return this._tTime=ht,this;mt!==yt&&(vt&&this._yEase&&_propagateYoyoEase(vt,bt),this.vars.repeatRefresh&&!bt&&!this._lock&&(this._lock=at=1,this.render(_roundPrecise(gt*mt),!0).invalidate()._lock=0))}if(!this._initted){if(_attemptInitTween(this,ut?it:dt,at,ot,ht))return this._tTime=0,this;if(st!==this._time)return this;if(ct!==this._dur)return this.render(it,ot,at)}if(this._tTime=ht,this._time=dt,!this._act&&this._ts&&(this._act=1,this._lazy=0),this.ratio=wt=(kt||this._ease)(dt/ct),this._from&&(this.ratio=wt=1-wt),dt&&!st&&!ot&&!mt&&(_callback(this,"onStart"),this._tTime!==ht))return this;for(pt=this._pt;pt;)pt.r(wt,pt.d),pt=pt._next;vt&&vt.render(it<0?it:!dt&&bt?-_tinyNum:vt._dur*vt._ease(dt/this._dur),ot,at)||this._startAt&&(this._zTime=it),this._onUpdate&&!ot&&(ut&&_rewindStartAt(this,it,ot,at),_callback(this,"onUpdate")),this._repeat&&mt!==yt&&this.vars.onRepeat&&!ot&&this.parent&&_callback(this,"onRepeat"),(ht===this._tDur||!ht)&&this._tTime===ht&&(ut&&!this._onUpdate&&_rewindStartAt(this,it,!0,!0),(it||!ct)&&(ht===this._tDur&&this._ts>0||!ht&&this._ts<0)&&_removeFromParent(this,1),!ot&&!(ut&&!st)&&(ht||st||bt)&&(_callback(this,ht===lt?"onComplete":"onReverseComplete",!0),this._prom&&!(ht0)&&this._prom()))}return this},nt.targets=function(){return this._targets},nt.invalidate=function(it){return(!it||!this.vars.runBackwards)&&(this._startAt=0),this._pt=this._op=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(it),tt.prototype.invalidate.call(this,it)},nt.resetTo=function(it,ot,at,st){_tickerActive||_ticker.wake(),this._ts||this.play();var lt=Math.min(this._dur,(this._dp._time-this._start)*this._ts),ct;return this._initted||_initTween(this,lt),ct=this._ease(lt/this._dur),_updatePropTweens(this,it,ot,at,st,ct,lt)?this.resetTo(it,ot,at,st):(_alignPlayhead(this,0),this.parent||_addLinkedListItem(this._dp,this,"_first","_last",this._dp._sort?"_start":0),this.render(0))},nt.kill=function(it,ot){if(ot===void 0&&(ot="all"),!it&&(!ot||ot==="all"))return this._lazy=this._pt=0,this.parent?_interrupt(this):this;if(this.timeline){var at=this.timeline.totalDuration();return this.timeline.killTweensOf(it,ot,_overwritingTween&&_overwritingTween.vars.overwrite!==!0)._first||_interrupt(this),this.parent&&at!==this.timeline.totalDuration()&&_setDuration(this,this._dur*this.timeline._tDur/at,0,1),this}var st=this._targets,lt=it?toArray$3(it):st,ct=this._ptLookup,ut=this._pt,ht,dt,pt,mt,gt,yt,bt;if((!ot||ot==="all")&&_arraysMatch(st,lt))return ot==="all"&&(this._pt=0),_interrupt(this);for(ht=this._op=this._op||[],ot!=="all"&&(_isString(ot)&&(gt={},_forEachName(ot,function(wt){return gt[wt]=1}),ot=gt),ot=_addAliasesToVars(st,ot)),bt=st.length;bt--;)if(~lt.indexOf(st[bt])){dt=ct[bt],ot==="all"?(ht[bt]=ot,mt=dt,pt={}):(pt=ht[bt]=ht[bt]||{},mt=ot);for(gt in mt)yt=dt&&dt[gt],yt&&((!("kill"in yt.d)||yt.d.kill(gt)===!0)&&_removeLinkedListItem(this,yt,"_pt"),delete dt[gt]),pt!=="all"&&(pt[gt]=1)}return this._initted&&!this._pt&&ut&&_interrupt(this),this},et.to=function(it,ot){return new et(it,ot,arguments[2])},et.from=function(it,ot){return _createTweenType(1,arguments)},et.delayedCall=function(it,ot,at,st){return new et(ot,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:it,onComplete:ot,onReverseComplete:ot,onCompleteParams:at,onReverseCompleteParams:at,callbackScope:st})},et.fromTo=function(it,ot,at){return _createTweenType(2,arguments)},et.set=function(it,ot){return ot.duration=0,ot.repeatDelay||(ot.repeat=0),new et(it,ot)},et.killTweensOf=function(it,ot,at){return _globalTimeline.killTweensOf(it,ot,at)},et}(Animation);_setDefaults(Tween.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0});_forEachName("staggerTo,staggerFrom,staggerFromTo",function(tt){Tween[tt]=function(){var et=new Timeline$1,nt=_slice.call(arguments,0);return nt.splice(tt==="staggerFromTo"?5:4,0,0),et[tt].apply(et,nt)}});var _setterPlain=function(et,nt,rt){return et[nt]=rt},_setterFunc=function(et,nt,rt){return et[nt](rt)},_setterFuncWithParam=function(et,nt,rt,it){return et[nt](it.fp,rt)},_setterAttribute=function(et,nt,rt){return et.setAttribute(nt,rt)},_getSetter=function(et,nt){return _isFunction(et[nt])?_setterFunc:_isUndefined(et[nt])&&et.setAttribute?_setterAttribute:_setterPlain},_renderPlain=function(et,nt){return nt.set(nt.t,nt.p,Math.round((nt.s+nt.c*et)*1e6)/1e6,nt)},_renderBoolean=function(et,nt){return nt.set(nt.t,nt.p,!!(nt.s+nt.c*et),nt)},_renderComplexString=function(et,nt){var rt=nt._pt,it="";if(!et&&nt.b)it=nt.b;else if(et===1&&nt.e)it=nt.e;else{for(;rt;)it=rt.p+(rt.m?rt.m(rt.s+rt.c*et):Math.round((rt.s+rt.c*et)*1e4)/1e4)+it,rt=rt._next;it+=nt.c}nt.set(nt.t,nt.p,it,nt)},_renderPropTweens=function(et,nt){for(var rt=nt._pt;rt;)rt.r(et,rt.d),rt=rt._next},_addPluginModifier=function(et,nt,rt,it){for(var ot=this._pt,at;ot;)at=ot._next,ot.p===it&&ot.modifier(et,nt,rt),ot=at},_killPropTweensOf=function(et){for(var nt=this._pt,rt,it;nt;)it=nt._next,nt.p===et&&!nt.op||nt.op===et?_removeLinkedListItem(this,nt,"_pt"):nt.dep||(rt=1),nt=it;return!rt},_setterWithModifier=function(et,nt,rt,it){it.mSet(et,nt,it.m.call(it.tween,rt,it.mt),it)},_sortPropTweensByPriority=function(et){for(var nt=et._pt,rt,it,ot,at;nt;){for(rt=nt._next,it=ot;it&&it.pr>nt.pr;)it=it._next;(nt._prev=it?it._prev:at)?nt._prev._next=nt:ot=nt,(nt._next=it)?it._prev=nt:at=nt,nt=rt}et._pt=ot},PropTween=function(){function tt(nt,rt,it,ot,at,st,lt,ct,ut){this.t=rt,this.s=ot,this.c=at,this.p=it,this.r=st||_renderPlain,this.d=lt||this,this.set=ct||_setterPlain,this.pr=ut||0,this._next=nt,nt&&(nt._prev=this)}var et=tt.prototype;return et.modifier=function(rt,it,ot){this.mSet=this.mSet||this.set,this.set=_setterWithModifier,this.m=rt,this.mt=ot,this.tween=it},tt}();_forEachName(_callbackNames+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger",function(tt){return _reservedProps[tt]=1});_globals.TweenMax=_globals.TweenLite=Tween;_globals.TimelineLite=_globals.TimelineMax=Timeline$1;_globalTimeline=new Timeline$1({sortChildren:!1,defaults:_defaults,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0});_config.stringFilter=_colorStringFilter;var _media=[],_listeners={},_emptyArray=[],_lastMediaTime=0,_contextID=0,_dispatch=function(et){return(_listeners[et]||_emptyArray).map(function(nt){return nt()})},_onMediaChange=function(){var et=Date.now(),nt=[];et-_lastMediaTime>2&&(_dispatch("matchMediaInit"),_media.forEach(function(rt){var it=rt.queries,ot=rt.conditions,at,st,lt,ct;for(st in it)at=_win$1.matchMedia(it[st]).matches,at&&(lt=1),at!==ot[st]&&(ot[st]=at,ct=1);ct&&(rt.revert(),lt&&nt.push(rt))}),_dispatch("matchMediaRevert"),nt.forEach(function(rt){return rt.onMatch(rt)}),_lastMediaTime=et,_dispatch("matchMedia"))},Context$1=function(){function tt(nt,rt){this.selector=rt&&selector(rt),this.data=[],this._r=[],this.isReverted=!1,this.id=_contextID++,nt&&this.add(nt)}var et=tt.prototype;return et.add=function(rt,it,ot){_isFunction(rt)&&(ot=it,it=rt,rt=_isFunction);var at=this,st=function(){var ct=_context,ut=at.selector,ht;return ct&&ct!==at&&ct.data.push(at),ot&&(at.selector=selector(ot)),_context=at,ht=it.apply(at,arguments),_isFunction(ht)&&at._r.push(ht),_context=ct,at.selector=ut,at.isReverted=!1,ht};return at.last=st,rt===_isFunction?st(at):rt?at[rt]=st:st},et.ignore=function(rt){var it=_context;_context=null,rt(this),_context=it},et.getTweens=function(){var rt=[];return this.data.forEach(function(it){return it instanceof tt?rt.push.apply(rt,it.getTweens()):it instanceof Tween&&!(it.parent&&it.parent.data==="nested")&&rt.push(it)}),rt},et.clear=function(){this._r.length=this.data.length=0},et.kill=function(rt,it){var ot=this;if(rt){var at=this.getTweens();this.data.forEach(function(lt){lt.data==="isFlip"&&(lt.revert(),lt.getChildren(!0,!0,!1).forEach(function(ct){return at.splice(at.indexOf(ct),1)}))}),at.map(function(lt){return{g:lt.globalTime(0),t:lt}}).sort(function(lt,ct){return ct.g-lt.g||-1/0}).forEach(function(lt){return lt.t.revert(rt)}),this.data.forEach(function(lt){return!(lt instanceof Tween)&<.revert&<.revert(rt)}),this._r.forEach(function(lt){return lt(rt,ot)}),this.isReverted=!0}else this.data.forEach(function(lt){return lt.kill&<.kill()});if(this.clear(),it)for(var st=_media.length;st--;)_media[st].id===this.id&&_media.splice(st,1)},et.revert=function(rt){this.kill(rt||{})},tt}(),MatchMedia=function(){function tt(nt){this.contexts=[],this.scope=nt}var et=tt.prototype;return et.add=function(rt,it,ot){_isObject(rt)||(rt={matches:rt});var at=new Context$1(0,ot||this.scope),st=at.conditions={},lt,ct,ut;_context&&!at.selector&&(at.selector=_context.selector),this.contexts.push(at),it=at.add("onMatch",it),at.queries=rt;for(ct in rt)ct==="all"?ut=1:(lt=_win$1.matchMedia(rt[ct]),lt&&(_media.indexOf(at)<0&&_media.push(at),(st[ct]=lt.matches)&&(ut=1),lt.addListener?lt.addListener(_onMediaChange):lt.addEventListener("change",_onMediaChange)));return ut&&it(at),this},et.revert=function(rt){this.kill(rt||{})},et.kill=function(rt){this.contexts.forEach(function(it){return it.kill(rt,!0)})},tt}(),_gsap={registerPlugin:function(){for(var et=arguments.length,nt=new Array(et),rt=0;rt1){var it=et.map(function(ut){return gsap.quickSetter(ut,nt,rt)}),ot=it.length;return function(ut){for(var ht=ot;ht--;)it[ht](ut)}}et=et[0]||{};var at=_plugins[nt],st=_getCache(et),lt=st.harness&&(st.harness.aliases||{})[nt]||nt,ct=at?function(ut){var ht=new at;_quickTween._pt=0,ht.init(et,rt?ut+rt:ut,_quickTween,0,[et]),ht.render(1,ht),_quickTween._pt&&_renderPropTweens(1,_quickTween)}:st.set(et,lt);return at?ct:function(ut){return ct(et,lt,rt?ut+rt:ut,st,1)}},quickTo:function(et,nt,rt){var it,ot=gsap.to(et,_merge((it={},it[nt]="+=0.1",it.paused=!0,it),rt||{})),at=function(lt,ct,ut){return ot.resetTo(nt,lt,ct,ut)};return at.tween=ot,at},isTweening:function(et){return _globalTimeline.getTweensOf(et,!0).length>0},defaults:function(et){return et&&et.ease&&(et.ease=_parseEase(et.ease,_defaults.ease)),_mergeDeep(_defaults,et||{})},config:function(et){return _mergeDeep(_config,et||{})},registerEffect:function(et){var nt=et.name,rt=et.effect,it=et.plugins,ot=et.defaults,at=et.extendTimeline;(it||"").split(",").forEach(function(st){return st&&!_plugins[st]&&!_globals[st]&&_warn(nt+" effect requires "+st+" plugin.")}),_effects[nt]=function(st,lt,ct){return rt(toArray$3(st),_setDefaults(lt||{},ot),ct)},at&&(Timeline$1.prototype[nt]=function(st,lt,ct){return this.add(_effects[nt](st,_isObject(lt)?lt:(ct=lt)&&{},this),ct)})},registerEase:function(et,nt){_easeMap[et]=_parseEase(nt)},parseEase:function(et,nt){return arguments.length?_parseEase(et,nt):_easeMap},getById:function(et){return _globalTimeline.getById(et)},exportRoot:function(et,nt){et===void 0&&(et={});var rt=new Timeline$1(et),it,ot;for(rt.smoothChildTiming=_isNotFalse(et.smoothChildTiming),_globalTimeline.remove(rt),rt._dp=0,rt._time=rt._tTime=_globalTimeline._time,it=_globalTimeline._first;it;)ot=it._next,(nt||!(!it._dur&&it instanceof Tween&&it.vars.onComplete===it._targets[0]))&&_addToTimeline(rt,it,it._start-it._delay),it=ot;return _addToTimeline(_globalTimeline,rt,0),rt},context:function(et,nt){return et?new Context$1(et,nt):_context},matchMedia:function(et){return new MatchMedia(et)},matchMediaRefresh:function(){return _media.forEach(function(et){var nt=et.conditions,rt,it;for(it in nt)nt[it]&&(nt[it]=!1,rt=1);rt&&et.revert()})||_onMediaChange()},addEventListener:function(et,nt){var rt=_listeners[et]||(_listeners[et]=[]);~rt.indexOf(nt)||rt.push(nt)},removeEventListener:function(et,nt){var rt=_listeners[et],it=rt&&rt.indexOf(nt);it>=0&&rt.splice(it,1)},utils:{wrap,wrapYoyo,distribute,random,snap,normalize:normalize$1,getUnit,clamp:clamp$1,splitColor,toArray:toArray$3,selector,mapRange,pipe,unitize,interpolate:interpolate$1,shuffle},install:_install,effects:_effects,ticker:_ticker,updateRoot:Timeline$1.updateRoot,plugins:_plugins,globalTimeline:_globalTimeline,core:{PropTween,globals:_addGlobal,Tween,Timeline:Timeline$1,Animation,getCache:_getCache,_removeLinkedListItem,reverting:function(){return _reverting$1},context:function(et){return et&&_context&&(_context.data.push(et),et._ctx=_context),_context},suppressOverwrites:function(et){return _suppressOverwrites=et}}};_forEachName("to,from,fromTo,delayedCall,set,killTweensOf",function(tt){return _gsap[tt]=Tween[tt]});_ticker.add(Timeline$1.updateRoot);_quickTween=_gsap.to({},{duration:0});var _getPluginPropTween=function(et,nt){for(var rt=et._pt;rt&&rt.p!==nt&&rt.op!==nt&&rt.fp!==nt;)rt=rt._next;return rt},_addModifiers=function(et,nt){var rt=et._targets,it,ot,at;for(it in nt)for(ot=rt.length;ot--;)at=et._ptLookup[ot][it],at&&(at=at.d)&&(at._pt&&(at=_getPluginPropTween(at,it)),at&&at.modifier&&at.modifier(nt[it],et,rt[ot],it))},_buildModifierPlugin=function(et,nt){return{name:et,rawVars:1,init:function(it,ot,at){at._onInit=function(st){var lt,ct;if(_isString(ot)&&(lt={},_forEachName(ot,function(ut){return lt[ut]=1}),ot=lt),nt){lt={};for(ct in ot)lt[ct]=nt(ot[ct]);ot=lt}_addModifiers(st,ot)}}}},gsap=_gsap.registerPlugin({name:"attr",init:function(et,nt,rt,it,ot){var at,st,lt;this.tween=rt;for(at in nt)lt=et.getAttribute(at)||"",st=this.add(et,"setAttribute",(lt||0)+"",nt[at],it,ot,0,0,at),st.op=at,st.b=lt,this._props.push(at)},render:function(et,nt){for(var rt=nt._pt;rt;)_reverting$1?rt.set(rt.t,rt.p,rt.b,rt):rt.r(et,rt.d),rt=rt._next}},{name:"endArray",init:function(et,nt){for(var rt=nt.length;rt--;)this.add(et,rt,et[rt]||0,nt[rt],0,0,0,0,0,1)}},_buildModifierPlugin("roundProps",_roundModifier),_buildModifierPlugin("modifiers"),_buildModifierPlugin("snap",snap))||_gsap;Tween.version=Timeline$1.version=gsap.version="3.12.2";_coreReady=1;_windowExists$1()&&_wake();_easeMap.Power0;_easeMap.Power1;_easeMap.Power2;_easeMap.Power3;_easeMap.Power4;_easeMap.Linear;_easeMap.Quad;_easeMap.Cubic;_easeMap.Quart;_easeMap.Quint;_easeMap.Strong;_easeMap.Elastic;_easeMap.Back;_easeMap.SteppedEase;_easeMap.Bounce;_easeMap.Sine;_easeMap.Expo;_easeMap.Circ;/*! +*/var _config={autoSleep:120,force3D:"auto",nullTargetWarn:1,units:{lineHeight:""}},_defaults={duration:.5,overwrite:!1,delay:0},_suppressOverwrites,_reverting$1,_context,_bigNum$1=1e8,_tinyNum=1/_bigNum$1,_2PI=Math.PI*2,_HALF_PI=_2PI/4,_gsID=0,_sqrt=Math.sqrt,_cos=Math.cos,_sin=Math.sin,_isString=function(et){return typeof et=="string"},_isFunction=function(et){return typeof et=="function"},_isNumber$1=function(et){return typeof et=="number"},_isUndefined=function(et){return typeof et>"u"},_isObject=function(et){return typeof et=="object"},_isNotFalse=function(et){return et!==!1},_windowExists$1=function(){return typeof window<"u"},_isFuncOrString=function(et){return _isFunction(et)||_isString(et)},_isTypedArray=typeof ArrayBuffer=="function"&&ArrayBuffer.isView||function(){},_isArray=Array.isArray,_strictNumExp=/(?:-?\.?\d|\.)+/gi,_numExp=/[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,_numWithUnitExp=/[-+=.]*\d+[.e-]*\d*[a-z%]*/g,_complexStringNumExp=/[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,_relExp=/[+-]=-?[.\d]+/,_delimitedValueExp=/[^,'"\[\]\s]+/gi,_unitExp=/^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,_globalTimeline,_win$1,_coreInitted,_doc$1,_globals={},_installScope={},_coreReady,_install=function(et){return(_installScope=_merge(et,_globals))&&gsap},_missingPlugin=function(et,nt){return console.warn("Invalid property",et,"set to",nt,"Missing plugin? gsap.registerPlugin()")},_warn=function(et,nt){return!nt&&console.warn(et)},_addGlobal=function(et,nt){return et&&(_globals[et]=nt)&&_installScope&&(_installScope[et]=nt)||_globals},_emptyFunc=function(){return 0},_startAtRevertConfig={suppressEvents:!0,isStart:!0,kill:!1},_revertConfigNoKill={suppressEvents:!0,kill:!1},_revertConfig={suppressEvents:!0},_reservedProps={},_lazyTweens=[],_lazyLookup={},_lastRenderedFrame,_plugins={},_effects={},_nextGCFrame=30,_harnessPlugins=[],_callbackNames="",_harness=function(et){var nt=et[0],rt,it;if(_isObject(nt)||_isFunction(nt)||(et=[et]),!(rt=(nt._gsap||{}).harness)){for(it=_harnessPlugins.length;it--&&!_harnessPlugins[it].targetTest(nt););rt=_harnessPlugins[it]}for(it=et.length;it--;)et[it]&&(et[it]._gsap||(et[it]._gsap=new GSCache(et[it],rt)))||et.splice(it,1);return et},_getCache=function(et){return et._gsap||_harness(toArray$3(et))[0]._gsap},_getProperty=function(et,nt,rt){return(rt=et[nt])&&_isFunction(rt)?et[nt]():_isUndefined(rt)&&et.getAttribute&&et.getAttribute(nt)||rt},_forEachName=function(et,nt){return(et=et.split(",")).forEach(nt)||et},_round=function(et){return Math.round(et*1e5)/1e5||0},_roundPrecise=function(et){return Math.round(et*1e7)/1e7||0},_parseRelative=function(et,nt){var rt=nt.charAt(0),it=parseFloat(nt.substr(2));return et=parseFloat(et),rt==="+"?et+it:rt==="-"?et-it:rt==="*"?et*it:et/it},_arrayContainsAny=function(et,nt){for(var rt=nt.length,it=0;et.indexOf(nt[it])<0&&++itst;)at=at._prev;return at?(nt._next=at._next,at._next=nt):(nt._next=et[rt],et[rt]=nt),nt._next?nt._next._prev=nt:et[it]=nt,nt._prev=at,nt.parent=nt._dp=et,nt},_removeLinkedListItem=function(et,nt,rt,it){rt===void 0&&(rt="_first"),it===void 0&&(it="_last");var ot=nt._prev,at=nt._next;ot?ot._next=at:et[rt]===nt&&(et[rt]=at),at?at._prev=ot:et[it]===nt&&(et[it]=ot),nt._next=nt._prev=nt.parent=null},_removeFromParent=function(et,nt){et.parent&&(!nt||et.parent.autoRemoveChildren)&&et.parent.remove&&et.parent.remove(et),et._act=0},_uncache=function(et,nt){if(et&&(!nt||nt._end>et._dur||nt._start<0))for(var rt=et;rt;)rt._dirty=1,rt=rt.parent;return et},_recacheAncestors=function(et){for(var nt=et.parent;nt&&nt.parent;)nt._dirty=1,nt.totalDuration(),nt=nt.parent;return et},_rewindStartAt=function(et,nt,rt,it){return et._startAt&&(_reverting$1?et._startAt.revert(_revertConfigNoKill):et.vars.immediateRender&&!et.vars.autoRevert||et._startAt.render(nt,!0,it))},_hasNoPausedAncestors=function tt(et){return!et||et._ts&&tt(et.parent)},_elapsedCycleDuration=function(et){return et._repeat?_animationCycle(et._tTime,et=et.duration()+et._rDelay)*et:0},_animationCycle=function(et,nt){var rt=Math.floor(et/=nt);return et&&rt===et?rt-1:rt},_parentToChildTotalTime=function(et,nt){return(et-nt._start)*nt._ts+(nt._ts>=0?0:nt._dirty?nt.totalDuration():nt._tDur)},_setEnd=function(et){return et._end=_roundPrecise(et._start+(et._tDur/Math.abs(et._ts||et._rts||_tinyNum)||0))},_alignPlayhead=function(et,nt){var rt=et._dp;return rt&&rt.smoothChildTiming&&et._ts&&(et._start=_roundPrecise(rt._time-(et._ts>0?nt/et._ts:((et._dirty?et.totalDuration():et._tDur)-nt)/-et._ts)),_setEnd(et),rt._dirty||_uncache(rt,et)),et},_postAddChecks=function(et,nt){var rt;if((nt._time||!nt._dur&&nt._initted||nt._start_tinyNum)&&nt.render(rt,!0)),_uncache(et,nt)._dp&&et._initted&&et._time>=et._dur&&et._ts){if(et._dur=0&&rt.totalTime(rt._tTime),rt=rt._dp;et._zTime=-_tinyNum}},_addToTimeline=function(et,nt,rt,it){return nt.parent&&_removeFromParent(nt),nt._start=_roundPrecise((_isNumber$1(rt)?rt:rt||et!==_globalTimeline?_parsePosition(et,rt,nt):et._time)+nt._delay),nt._end=_roundPrecise(nt._start+(nt.totalDuration()/Math.abs(nt.timeScale())||0)),_addLinkedListItem(et,nt,"_first","_last",et._sort?"_start":0),_isFromOrFromStart(nt)||(et._recent=nt),it||_postAddChecks(et,nt),et._ts<0&&_alignPlayhead(et,et._tTime),et},_scrollTrigger=function(et,nt){return(_globals.ScrollTrigger||_missingPlugin("scrollTrigger",nt))&&_globals.ScrollTrigger.create(nt,et)},_attemptInitTween=function(et,nt,rt,it,ot){if(_initTween(et,nt,ot),!et._initted)return 1;if(!rt&&et._pt&&!_reverting$1&&(et._dur&&et.vars.lazy!==!1||!et._dur&&et.vars.lazy)&&_lastRenderedFrame!==_ticker.frame)return _lazyTweens.push(et),et._lazy=[ot,it],1},_parentPlayheadIsBeforeStart=function tt(et){var nt=et.parent;return nt&&nt._ts&&nt._initted&&!nt._lock&&(nt.rawTime()<0||tt(nt))},_isFromOrFromStart=function(et){var nt=et.data;return nt==="isFromStart"||nt==="isStart"},_renderZeroDurationTween=function(et,nt,rt,it){var ot=et.ratio,at=nt<0||!nt&&(!et._start&&_parentPlayheadIsBeforeStart(et)&&!(!et._initted&&_isFromOrFromStart(et))||(et._ts<0||et._dp._ts<0)&&!_isFromOrFromStart(et))?0:1,st=et._rDelay,lt=0,ct,ut,ht;if(st&&et._repeat&&(lt=_clamp(0,et._tDur,nt),ut=_animationCycle(lt,st),et._yoyo&&ut&1&&(at=1-at),ut!==_animationCycle(et._tTime,st)&&(ot=1-at,et.vars.repeatRefresh&&et._initted&&et.invalidate())),at!==ot||_reverting$1||it||et._zTime===_tinyNum||!nt&&et._zTime){if(!et._initted&&_attemptInitTween(et,nt,it,rt,lt))return;for(ht=et._zTime,et._zTime=nt||(rt?_tinyNum:0),rt||(rt=nt&&!ht),et.ratio=at,et._from&&(at=1-at),et._time=0,et._tTime=lt,ct=et._pt;ct;)ct.r(at,ct.d),ct=ct._next;nt<0&&_rewindStartAt(et,nt,rt,!0),et._onUpdate&&!rt&&_callback(et,"onUpdate"),lt&&et._repeat&&!rt&&et.parent&&_callback(et,"onRepeat"),(nt>=et._tDur||nt<0)&&et.ratio===at&&(at&&_removeFromParent(et,1),!rt&&!_reverting$1&&(_callback(et,at?"onComplete":"onReverseComplete",!0),et._prom&&et._prom()))}else et._zTime||(et._zTime=nt)},_findNextPauseTween=function(et,nt,rt){var it;if(rt>nt)for(it=et._first;it&&it._start<=rt;){if(it.data==="isPause"&&it._start>nt)return it;it=it._next}else for(it=et._last;it&&it._start>=rt;){if(it.data==="isPause"&&it._start0&&!it&&_alignPlayhead(et,et._tTime=et._tDur*st),et.parent&&_setEnd(et),rt||_uncache(et.parent,et),et},_onUpdateTotalDuration=function(et){return et instanceof Timeline$1?_uncache(et):_setDuration(et,et._dur)},_zeroPosition={_start:0,endTime:_emptyFunc,totalDuration:_emptyFunc},_parsePosition=function tt(et,nt,rt){var it=et.labels,ot=et._recent||_zeroPosition,at=et.duration()>=_bigNum$1?ot.endTime(!1):et._dur,st,lt,ct;return _isString(nt)&&(isNaN(nt)||nt in it)?(lt=nt.charAt(0),ct=nt.substr(-1)==="%",st=nt.indexOf("="),lt==="<"||lt===">"?(st>=0&&(nt=nt.replace(/=/,"")),(lt==="<"?ot._start:ot.endTime(ot._repeat>=0))+(parseFloat(nt.substr(1))||0)*(ct?(st<0?ot:rt).totalDuration()/100:1)):st<0?(nt in it||(it[nt]=at),it[nt]):(lt=parseFloat(nt.charAt(st-1)+nt.substr(st+1)),ct&&rt&&(lt=lt/100*(_isArray(rt)?rt[0]:rt).totalDuration()),st>1?tt(et,nt.substr(0,st-1),rt)+lt:at+lt)):nt==null?at:+nt},_createTweenType=function(et,nt,rt){var it=_isNumber$1(nt[1]),ot=(it?2:1)+(et<2?0:1),at=nt[ot],st,lt;if(it&&(at.duration=nt[1]),at.parent=rt,et){for(st=at,lt=rt;lt&&!("immediateRender"in st);)st=lt.vars.defaults||{},lt=_isNotFalse(lt.vars.inherit)&<.parent;at.immediateRender=_isNotFalse(st.immediateRender),et<2?at.runBackwards=1:at.startAt=nt[ot-1]}return new Tween(nt[0],at,nt[ot+1])},_conditionalReturn=function(et,nt){return et||et===0?nt(et):nt},_clamp=function(et,nt,rt){return rtnt?nt:rt},getUnit=function(et,nt){return!_isString(et)||!(nt=_unitExp.exec(et))?"":nt[1]},clamp$1=function(et,nt,rt){return _conditionalReturn(rt,function(it){return _clamp(et,nt,it)})},_slice=[].slice,_isArrayLike=function(et,nt){return et&&_isObject(et)&&"length"in et&&(!nt&&!et.length||et.length-1 in et&&_isObject(et[0]))&&!et.nodeType&&et!==_win$1},_flatten=function(et,nt,rt){return rt===void 0&&(rt=[]),et.forEach(function(it){var ot;return _isString(it)&&!nt||_isArrayLike(it,1)?(ot=rt).push.apply(ot,toArray$3(it)):rt.push(it)})||rt},toArray$3=function(et,nt,rt){return _context&&!nt&&_context.selector?_context.selector(et):_isString(et)&&!rt&&(_coreInitted||!_wake())?_slice.call((nt||_doc$1).querySelectorAll(et),0):_isArray(et)?_flatten(et,rt):_isArrayLike(et)?_slice.call(et,0):et?[et]:[]},selector=function(et){return et=toArray$3(et)[0]||_warn("Invalid scope")||{},function(nt){var rt=et.current||et.nativeElement||et;return toArray$3(nt,rt.querySelectorAll?rt:rt===et?_warn("Invalid scope")||_doc$1.createElement("div"):et)}},shuffle=function(et){return et.sort(function(){return .5-Math.random()})},distribute=function(et){if(_isFunction(et))return et;var nt=_isObject(et)?et:{each:et},rt=_parseEase(nt.ease),it=nt.from||0,ot=parseFloat(nt.base)||0,at={},st=it>0&&it<1,lt=isNaN(it)||st,ct=nt.axis,ut=it,ht=it;return _isString(it)?ut=ht={center:.5,edges:.5,end:1}[it]||0:!st&<&&(ut=it[0],ht=it[1]),function(dt,pt,mt){var gt=(mt||nt).length,yt=at[gt],bt,wt,vt,kt,St,Et,At,Tt,Mt;if(!yt){if(Mt=nt.grid==="auto"?0:(nt.grid||[1,_bigNum$1])[1],!Mt){for(At=-_bigNum$1;At<(At=mt[Mt++].getBoundingClientRect().left)&&MtAt&&(At=St),Stgt?gt-1:ct?ct==="y"?gt/Mt:Mt:Math.max(Mt,gt/Mt))||0)*(it==="edges"?-1:1),yt.b=gt<0?ot-gt:ot,yt.u=getUnit(nt.amount||nt.each)||0,rt=rt&><0?_invertEase(rt):rt}return gt=(yt[dt]-yt.min)/yt.max||0,_roundPrecise(yt.b+(rt?rt(gt):gt)*yt.v)+yt.u}},_roundModifier=function(et){var nt=Math.pow(10,((et+"").split(".")[1]||"").length);return function(rt){var it=_roundPrecise(Math.round(parseFloat(rt)/et)*et*nt);return(it-it%1)/nt+(_isNumber$1(rt)?0:getUnit(rt))}},snap=function(et,nt){var rt=_isArray(et),it,ot;return!rt&&_isObject(et)&&(it=rt=et.radius||_bigNum$1,et.values?(et=toArray$3(et.values),(ot=!_isNumber$1(et[0]))&&(it*=it)):et=_roundModifier(et.increment)),_conditionalReturn(nt,rt?_isFunction(et)?function(at){return ot=et(at),Math.abs(ot-at)<=it?ot:at}:function(at){for(var st=parseFloat(ot?at.x:at),lt=parseFloat(ot?at.y:0),ct=_bigNum$1,ut=0,ht=et.length,dt,pt;ht--;)ot?(dt=et[ht].x-st,pt=et[ht].y-lt,dt=dt*dt+pt*pt):dt=Math.abs(et[ht]-st),dtit?ot-at:at)})},_replaceRandom=function(et){for(var nt=0,rt="",it,ot,at,st;~(it=et.indexOf("random(",nt));)at=et.indexOf(")",it),st=et.charAt(it+7)==="[",ot=et.substr(it+7,at-it-7).match(st?_delimitedValueExp:_strictNumExp),rt+=et.substr(nt,it-nt)+random(st?ot:+ot[0],st?0:+ot[1],+ot[2]||1e-5),nt=at+1;return rt+et.substr(nt,et.length-nt)},mapRange=function(et,nt,rt,it,ot){var at=nt-et,st=it-rt;return _conditionalReturn(ot,function(lt){return rt+((lt-et)/at*st||0)})},interpolate$1=function tt(et,nt,rt,it){var ot=isNaN(et+nt)?0:function(pt){return(1-pt)*et+pt*nt};if(!ot){var at=_isString(et),st={},lt,ct,ut,ht,dt;if(rt===!0&&(it=1)&&(rt=null),at)et={p:et},nt={p:nt};else if(_isArray(et)&&!_isArray(nt)){for(ut=[],ht=et.length,dt=ht-2,ct=1;ct(st=Math.abs(st))&&(lt=at,ot=st);return lt},_callback=function(et,nt,rt){var it=et.vars,ot=it[nt],at=_context,st=et._ctx,lt,ct,ut;if(ot)return lt=it[nt+"Params"],ct=it.callbackScope||et,rt&&_lazyTweens.length&&_lazyRender(),st&&(_context=st),ut=lt?ot.apply(ct,lt):ot.call(ct),_context=at,ut},_interrupt=function(et){return _removeFromParent(et),et.scrollTrigger&&et.scrollTrigger.kill(!!_reverting$1),et.progress()<1&&_callback(et,"onInterrupt"),et},_quickTween,_registerPluginQueue=[],_createPlugin=function(et){if(_windowExists$1()&&et){et=!et.name&&et.default||et;var nt=et.name,rt=_isFunction(et),it=nt&&!rt&&et.init?function(){this._props=[]}:et,ot={init:_emptyFunc,render:_renderPropTweens,add:_addPropTween,kill:_killPropTweensOf,modifier:_addPluginModifier,rawVars:0},at={targetTest:0,get:0,getSetter:_getSetter,aliases:{},register:0};if(_wake(),et!==it){if(_plugins[nt])return;_setDefaults(it,_setDefaults(_copyExcluding(et,ot),at)),_merge(it.prototype,_merge(ot,_copyExcluding(et,at))),_plugins[it.prop=nt]=it,et.targetTest&&(_harnessPlugins.push(it),_reservedProps[nt]=1),nt=(nt==="css"?"CSS":nt.charAt(0).toUpperCase()+nt.substr(1))+"Plugin"}_addGlobal(nt,it),et.register&&et.register(gsap,it,PropTween)}else et&&_registerPluginQueue.push(et)},_255=255,_colorLookup={aqua:[0,_255,_255],lime:[0,_255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,_255],navy:[0,0,128],white:[_255,_255,_255],olive:[128,128,0],yellow:[_255,_255,0],orange:[_255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[_255,0,0],pink:[_255,192,203],cyan:[0,_255,_255],transparent:[_255,_255,_255,0]},_hue=function(et,nt,rt){return et+=et<0?1:et>1?-1:0,(et*6<1?nt+(rt-nt)*et*6:et<.5?rt:et*3<2?nt+(rt-nt)*(2/3-et)*6:nt)*_255+.5|0},splitColor=function(et,nt,rt){var it=et?_isNumber$1(et)?[et>>16,et>>8&_255,et&_255]:0:_colorLookup.black,ot,at,st,lt,ct,ut,ht,dt,pt,mt;if(!it){if(et.substr(-1)===","&&(et=et.substr(0,et.length-1)),_colorLookup[et])it=_colorLookup[et];else if(et.charAt(0)==="#"){if(et.length<6&&(ot=et.charAt(1),at=et.charAt(2),st=et.charAt(3),et="#"+ot+ot+at+at+st+st+(et.length===5?et.charAt(4)+et.charAt(4):"")),et.length===9)return it=parseInt(et.substr(1,6),16),[it>>16,it>>8&_255,it&_255,parseInt(et.substr(7),16)/255];et=parseInt(et.substr(1),16),it=[et>>16,et>>8&_255,et&_255]}else if(et.substr(0,3)==="hsl"){if(it=mt=et.match(_strictNumExp),!nt)lt=+it[0]%360/360,ct=+it[1]/100,ut=+it[2]/100,at=ut<=.5?ut*(ct+1):ut+ct-ut*ct,ot=ut*2-at,it.length>3&&(it[3]*=1),it[0]=_hue(lt+1/3,ot,at),it[1]=_hue(lt,ot,at),it[2]=_hue(lt-1/3,ot,at);else if(~et.indexOf("="))return it=et.match(_numExp),rt&&it.length<4&&(it[3]=1),it}else it=et.match(_strictNumExp)||_colorLookup.transparent;it=it.map(Number)}return nt&&!mt&&(ot=it[0]/_255,at=it[1]/_255,st=it[2]/_255,ht=Math.max(ot,at,st),dt=Math.min(ot,at,st),ut=(ht+dt)/2,ht===dt?lt=ct=0:(pt=ht-dt,ct=ut>.5?pt/(2-ht-dt):pt/(ht+dt),lt=ht===ot?(at-st)/pt+(atet&&(rt+=bt-nt),it+=bt,St=it-rt,vt=St-at,(vt>0||wt)&&(Et=++ht.frame,dt=St-ht.time*1e3,ht.time=St=St/1e3,at+=vt+(vt>=ot?4:ot-vt),kt=1),wt||(lt=ct(gt)),kt)for(pt=0;pt=bt&&pt--},_listeners:st},ht}(),_wake=function(){return!_tickerActive&&_ticker.wake()},_easeMap={},_customEaseExp=/^[\d.\-M][\d.\-,\s]/,_quotesExp=/["']/g,_parseObjectInString=function(et){for(var nt={},rt=et.substr(1,et.length-3).split(":"),it=rt[0],ot=1,at=rt.length,st,lt,ct;ot1&&rt.config?rt.config.apply(null,~et.indexOf("{")?[_parseObjectInString(nt[1])]:_valueInParentheses(et).split(",").map(_numericIfPossible)):_easeMap._CE&&_customEaseExp.test(et)?_easeMap._CE("",et):rt},_invertEase=function(et){return function(nt){return 1-et(1-nt)}},_propagateYoyoEase=function tt(et,nt){for(var rt=et._first,it;rt;)rt instanceof Timeline$1?tt(rt,nt):rt.vars.yoyoEase&&(!rt._yoyo||!rt._repeat)&&rt._yoyo!==nt&&(rt.timeline?tt(rt.timeline,nt):(it=rt._ease,rt._ease=rt._yEase,rt._yEase=it,rt._yoyo=nt)),rt=rt._next},_parseEase=function(et,nt){return et&&(_isFunction(et)?et:_easeMap[et]||_configEaseFromString(et))||nt},_insertEase=function(et,nt,rt,it){rt===void 0&&(rt=function(lt){return 1-nt(1-lt)}),it===void 0&&(it=function(lt){return lt<.5?nt(lt*2)/2:1-nt((1-lt)*2)/2});var ot={easeIn:nt,easeOut:rt,easeInOut:it},at;return _forEachName(et,function(st){_easeMap[st]=_globals[st]=ot,_easeMap[at=st.toLowerCase()]=rt;for(var lt in ot)_easeMap[at+(lt==="easeIn"?".in":lt==="easeOut"?".out":".inOut")]=_easeMap[st+"."+lt]=ot[lt]}),ot},_easeInOutFromOut=function(et){return function(nt){return nt<.5?(1-et(1-nt*2))/2:.5+et((nt-.5)*2)/2}},_configElastic=function tt(et,nt,rt){var it=nt>=1?nt:1,ot=(rt||(et?.3:.45))/(nt<1?nt:1),at=ot/_2PI*(Math.asin(1/it)||0),st=function(ut){return ut===1?1:it*Math.pow(2,-10*ut)*_sin((ut-at)*ot)+1},lt=et==="out"?st:et==="in"?function(ct){return 1-st(1-ct)}:_easeInOutFromOut(st);return ot=_2PI/ot,lt.config=function(ct,ut){return tt(et,ct,ut)},lt},_configBack=function tt(et,nt){nt===void 0&&(nt=1.70158);var rt=function(at){return at?--at*at*((nt+1)*at+nt)+1:0},it=et==="out"?rt:et==="in"?function(ot){return 1-rt(1-ot)}:_easeInOutFromOut(rt);return it.config=function(ot){return tt(et,ot)},it};_forEachName("Linear,Quad,Cubic,Quart,Quint,Strong",function(tt,et){var nt=et<5?et+1:et;_insertEase(tt+",Power"+(nt-1),et?function(rt){return Math.pow(rt,nt)}:function(rt){return rt},function(rt){return 1-Math.pow(1-rt,nt)},function(rt){return rt<.5?Math.pow(rt*2,nt)/2:1-Math.pow((1-rt)*2,nt)/2})});_easeMap.Linear.easeNone=_easeMap.none=_easeMap.Linear.easeIn;_insertEase("Elastic",_configElastic("in"),_configElastic("out"),_configElastic());(function(tt,et){var nt=1/et,rt=2*nt,it=2.5*nt,ot=function(st){return st0?rt+(rt+this._rDelay)*this._repeat:rt):this.totalDuration()&&this._dur},et.totalDuration=function(rt){return arguments.length?(this._dirty=0,_setDuration(this,this._repeat<0?rt:(rt-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},et.totalTime=function(rt,it){if(_wake(),!arguments.length)return this._tTime;var ot=this._dp;if(ot&&ot.smoothChildTiming&&this._ts){for(_alignPlayhead(this,rt),!ot._dp||ot.parent||_postAddChecks(ot,this);ot&&ot.parent;)ot.parent._time!==ot._start+(ot._ts>=0?ot._tTime/ot._ts:(ot.totalDuration()-ot._tTime)/-ot._ts)&&ot.totalTime(ot._tTime,!0),ot=ot.parent;!this.parent&&this._dp.autoRemoveChildren&&(this._ts>0&&rt0||!this._tDur&&!rt)&&_addToTimeline(this._dp,this,this._start-this._delay)}return(this._tTime!==rt||!this._dur&&!it||this._initted&&Math.abs(this._zTime)===_tinyNum||!rt&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=rt),_lazySafeRender(this,rt,it)),this},et.time=function(rt,it){return arguments.length?this.totalTime(Math.min(this.totalDuration(),rt+_elapsedCycleDuration(this))%(this._dur+this._rDelay)||(rt?this._dur:0),it):this._time},et.totalProgress=function(rt,it){return arguments.length?this.totalTime(this.totalDuration()*rt,it):this.totalDuration()?Math.min(1,this._tTime/this._tDur):this.ratio},et.progress=function(rt,it){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&!(this.iteration()&1)?1-rt:rt)+_elapsedCycleDuration(this),it):this.duration()?Math.min(1,this._time/this._dur):this.ratio},et.iteration=function(rt,it){var ot=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(rt-1)*ot,it):this._repeat?_animationCycle(this._tTime,ot)+1:1},et.timeScale=function(rt){if(!arguments.length)return this._rts===-_tinyNum?0:this._rts;if(this._rts===rt)return this;var it=this.parent&&this._ts?_parentToChildTotalTime(this.parent._time,this):this._tTime;return this._rts=+rt||0,this._ts=this._ps||rt===-_tinyNum?0:this._rts,this.totalTime(_clamp(-Math.abs(this._delay),this._tDur,it),!0),_setEnd(this),_recacheAncestors(this)},et.paused=function(rt){return arguments.length?(this._ps!==rt&&(this._ps=rt,rt?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(_wake(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,this.progress()===1&&Math.abs(this._zTime)!==_tinyNum&&(this._tTime-=_tinyNum)))),this):this._ps},et.startTime=function(rt){if(arguments.length){this._start=rt;var it=this.parent||this._dp;return it&&(it._sort||!this.parent)&&_addToTimeline(it,this,rt-this._delay),this}return this._start},et.endTime=function(rt){return this._start+(_isNotFalse(rt)?this.totalDuration():this.duration())/Math.abs(this._ts||1)},et.rawTime=function(rt){var it=this.parent||this._dp;return it?rt&&(!this._ts||this._repeat&&this._time&&this.totalProgress()<1)?this._tTime%(this._dur+this._rDelay):this._ts?_parentToChildTotalTime(it.rawTime(rt),this):this._tTime:this._tTime},et.revert=function(rt){rt===void 0&&(rt=_revertConfig);var it=_reverting$1;return _reverting$1=rt,(this._initted||this._startAt)&&(this.timeline&&this.timeline.revert(rt),this.totalTime(-.01,rt.suppressEvents)),this.data!=="nested"&&rt.kill!==!1&&this.kill(),_reverting$1=it,this},et.globalTime=function(rt){for(var it=this,ot=arguments.length?rt:it.rawTime();it;)ot=it._start+ot/(it._ts||1),it=it._dp;return!this.parent&&this._sat?this._sat.vars.immediateRender?-1/0:this._sat.globalTime(rt):ot},et.repeat=function(rt){return arguments.length?(this._repeat=rt===1/0?-2:rt,_onUpdateTotalDuration(this)):this._repeat===-2?1/0:this._repeat},et.repeatDelay=function(rt){if(arguments.length){var it=this._time;return this._rDelay=rt,_onUpdateTotalDuration(this),it?this.time(it):this}return this._rDelay},et.yoyo=function(rt){return arguments.length?(this._yoyo=rt,this):this._yoyo},et.seek=function(rt,it){return this.totalTime(_parsePosition(this,rt),_isNotFalse(it))},et.restart=function(rt,it){return this.play().totalTime(rt?-this._delay:0,_isNotFalse(it))},et.play=function(rt,it){return rt!=null&&this.seek(rt,it),this.reversed(!1).paused(!1)},et.reverse=function(rt,it){return rt!=null&&this.seek(rt||this.totalDuration(),it),this.reversed(!0).paused(!1)},et.pause=function(rt,it){return rt!=null&&this.seek(rt,it),this.paused(!0)},et.resume=function(){return this.paused(!1)},et.reversed=function(rt){return arguments.length?(!!rt!==this.reversed()&&this.timeScale(-this._rts||(rt?-_tinyNum:0)),this):this._rts<0},et.invalidate=function(){return this._initted=this._act=0,this._zTime=-_tinyNum,this},et.isActive=function(){var rt=this.parent||this._dp,it=this._start,ot;return!!(!rt||this._ts&&this._initted&&rt.isActive()&&(ot=rt.rawTime(!0))>=it&&ot1?(it?(at[rt]=it,ot&&(at[rt+"Params"]=ot),rt==="onUpdate"&&(this._onUpdate=it)):delete at[rt],this):at[rt]},et.then=function(rt){var it=this;return new Promise(function(ot){var at=_isFunction(rt)?rt:_passThrough,st=function(){var ct=it.then;it.then=null,_isFunction(at)&&(at=at(it))&&(at.then||at===it)&&(it.then=ct),ot(at),it.then=ct};it._initted&&it.totalProgress()===1&&it._ts>=0||!it._tTime&&it._ts<0?st():it._prom=st})},et.kill=function(){_interrupt(this)},tt}();_setDefaults(Animation.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-_tinyNum,_prom:0,_ps:!1,_rts:1});var Timeline$1=function(tt){_inheritsLoose(et,tt);function et(rt,it){var ot;return rt===void 0&&(rt={}),ot=tt.call(this,rt)||this,ot.labels={},ot.smoothChildTiming=!!rt.smoothChildTiming,ot.autoRemoveChildren=!!rt.autoRemoveChildren,ot._sort=_isNotFalse(rt.sortChildren),_globalTimeline&&_addToTimeline(rt.parent||_globalTimeline,_assertThisInitialized$b(ot),it),rt.reversed&&ot.reverse(),rt.paused&&ot.paused(!0),rt.scrollTrigger&&_scrollTrigger(_assertThisInitialized$b(ot),rt.scrollTrigger),ot}var nt=et.prototype;return nt.to=function(it,ot,at){return _createTweenType(0,arguments,this),this},nt.from=function(it,ot,at){return _createTweenType(1,arguments,this),this},nt.fromTo=function(it,ot,at,st){return _createTweenType(2,arguments,this),this},nt.set=function(it,ot,at){return ot.duration=0,ot.parent=this,_inheritDefaults(ot).repeatDelay||(ot.repeat=0),ot.immediateRender=!!ot.immediateRender,new Tween(it,ot,_parsePosition(this,at),1),this},nt.call=function(it,ot,at){return _addToTimeline(this,Tween.delayedCall(0,it,ot),at)},nt.staggerTo=function(it,ot,at,st,lt,ct,ut){return at.duration=ot,at.stagger=at.stagger||st,at.onComplete=ct,at.onCompleteParams=ut,at.parent=this,new Tween(it,at,_parsePosition(this,lt)),this},nt.staggerFrom=function(it,ot,at,st,lt,ct,ut){return at.runBackwards=1,_inheritDefaults(at).immediateRender=_isNotFalse(at.immediateRender),this.staggerTo(it,ot,at,st,lt,ct,ut)},nt.staggerFromTo=function(it,ot,at,st,lt,ct,ut,ht){return st.startAt=at,_inheritDefaults(st).immediateRender=_isNotFalse(st.immediateRender),this.staggerTo(it,ot,st,lt,ct,ut,ht)},nt.render=function(it,ot,at){var st=this._time,lt=this._dirty?this.totalDuration():this._tDur,ct=this._dur,ut=it<=0?0:_roundPrecise(it),ht=this._zTime<0!=it<0&&(this._initted||!ct),dt,pt,mt,gt,yt,bt,wt,vt,kt,St,Et,At;if(this!==_globalTimeline&&ut>lt&&it>=0&&(ut=lt),ut!==this._tTime||at||ht){if(st!==this._time&&ct&&(ut+=this._time-st,it+=this._time-st),dt=ut,kt=this._start,vt=this._ts,bt=!vt,ht&&(ct||(st=this._zTime),(it||!ot)&&(this._zTime=it)),this._repeat){if(Et=this._yoyo,yt=ct+this._rDelay,this._repeat<-1&&it<0)return this.totalTime(yt*100+it,ot,at);if(dt=_roundPrecise(ut%yt),ut===lt?(gt=this._repeat,dt=ct):(gt=~~(ut/yt),gt&>===ut/yt&&(dt=ct,gt--),dt>ct&&(dt=ct)),St=_animationCycle(this._tTime,yt),!st&&this._tTime&&St!==gt&&this._tTime-St*yt-this._dur<=0&&(St=gt),Et&>&1&&(dt=ct-dt,At=1),gt!==St&&!this._lock){var Tt=Et&&St&1,Mt=Tt===(Et&>&1);if(gt=st&&it>=0)for(pt=this._first;pt;){if(mt=pt._next,(pt._act||dt>=pt._start)&&pt._ts&&wt!==pt){if(pt.parent!==this)return this.render(it,ot,at);if(pt.render(pt._ts>0?(dt-pt._start)*pt._ts:(pt._dirty?pt.totalDuration():pt._tDur)+(dt-pt._start)*pt._ts,ot,at),dt!==this._time||!this._ts&&!bt){wt=0,mt&&(ut+=this._zTime=-_tinyNum);break}}pt=mt}else{pt=this._last;for(var Lt=it<0?it:dt;pt;){if(mt=pt._prev,(pt._act||Lt<=pt._end)&&pt._ts&&wt!==pt){if(pt.parent!==this)return this.render(it,ot,at);if(pt.render(pt._ts>0?(Lt-pt._start)*pt._ts:(pt._dirty?pt.totalDuration():pt._tDur)+(Lt-pt._start)*pt._ts,ot,at||_reverting$1&&(pt._initted||pt._startAt)),dt!==this._time||!this._ts&&!bt){wt=0,mt&&(ut+=this._zTime=Lt?-_tinyNum:_tinyNum);break}}pt=mt}}if(wt&&!ot&&(this.pause(),wt.render(dt>=st?0:-_tinyNum)._zTime=dt>=st?1:-1,this._ts))return this._start=kt,_setEnd(this),this.render(it,ot,at);this._onUpdate&&!ot&&_callback(this,"onUpdate",!0),(ut===lt&&this._tTime>=this.totalDuration()||!ut&&st)&&(kt===this._start||Math.abs(vt)!==Math.abs(this._ts))&&(this._lock||((it||!ct)&&(ut===lt&&this._ts>0||!ut&&this._ts<0)&&_removeFromParent(this,1),!ot&&!(it<0&&!st)&&(ut||st||!lt)&&(_callback(this,ut===lt&&it>=0?"onComplete":"onReverseComplete",!0),this._prom&&!(ut0)&&this._prom())))}return this},nt.add=function(it,ot){var at=this;if(_isNumber$1(ot)||(ot=_parsePosition(this,ot,it)),!(it instanceof Animation)){if(_isArray(it))return it.forEach(function(st){return at.add(st,ot)}),this;if(_isString(it))return this.addLabel(it,ot);if(_isFunction(it))it=Tween.delayedCall(0,it);else return this}return this!==it?_addToTimeline(this,it,ot):this},nt.getChildren=function(it,ot,at,st){it===void 0&&(it=!0),ot===void 0&&(ot=!0),at===void 0&&(at=!0),st===void 0&&(st=-_bigNum$1);for(var lt=[],ct=this._first;ct;)ct._start>=st&&(ct instanceof Tween?ot&<.push(ct):(at&<.push(ct),it&<.push.apply(lt,ct.getChildren(!0,ot,at)))),ct=ct._next;return lt},nt.getById=function(it){for(var ot=this.getChildren(1,1,1),at=ot.length;at--;)if(ot[at].vars.id===it)return ot[at]},nt.remove=function(it){return _isString(it)?this.removeLabel(it):_isFunction(it)?this.killTweensOf(it):(_removeLinkedListItem(this,it),it===this._recent&&(this._recent=this._last),_uncache(this))},nt.totalTime=function(it,ot){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=_roundPrecise(_ticker.time-(this._ts>0?it/this._ts:(this.totalDuration()-it)/-this._ts))),tt.prototype.totalTime.call(this,it,ot),this._forcing=0,this):this._tTime},nt.addLabel=function(it,ot){return this.labels[it]=_parsePosition(this,ot),this},nt.removeLabel=function(it){return delete this.labels[it],this},nt.addPause=function(it,ot,at){var st=Tween.delayedCall(0,ot||_emptyFunc,at);return st.data="isPause",this._hasPause=1,_addToTimeline(this,st,_parsePosition(this,it))},nt.removePause=function(it){var ot=this._first;for(it=_parsePosition(this,it);ot;)ot._start===it&&ot.data==="isPause"&&_removeFromParent(ot),ot=ot._next},nt.killTweensOf=function(it,ot,at){for(var st=this.getTweensOf(it,at),lt=st.length;lt--;)_overwritingTween!==st[lt]&&st[lt].kill(it,ot);return this},nt.getTweensOf=function(it,ot){for(var at=[],st=toArray$3(it),lt=this._first,ct=_isNumber$1(ot),ut;lt;)lt instanceof Tween?_arrayContainsAny(lt._targets,st)&&(ct?(!_overwritingTween||lt._initted&<._ts)&<.globalTime(0)<=ot&<.globalTime(lt.totalDuration())>ot:!ot||lt.isActive())&&at.push(lt):(ut=lt.getTweensOf(st,ot)).length&&at.push.apply(at,ut),lt=lt._next;return at},nt.tweenTo=function(it,ot){ot=ot||{};var at=this,st=_parsePosition(at,it),lt=ot,ct=lt.startAt,ut=lt.onStart,ht=lt.onStartParams,dt=lt.immediateRender,pt,mt=Tween.to(at,_setDefaults({ease:ot.ease||"none",lazy:!1,immediateRender:!1,time:st,overwrite:"auto",duration:ot.duration||Math.abs((st-(ct&&"time"in ct?ct.time:at._time))/at.timeScale())||_tinyNum,onStart:function(){if(at.pause(),!pt){var yt=ot.duration||Math.abs((st-(ct&&"time"in ct?ct.time:at._time))/at.timeScale());mt._dur!==yt&&_setDuration(mt,yt,0,1).render(mt._time,!0,!0),pt=1}ut&&ut.apply(mt,ht||[])}},ot));return dt?mt.render(0):mt},nt.tweenFromTo=function(it,ot,at){return this.tweenTo(ot,_setDefaults({startAt:{time:_parsePosition(this,it)}},at))},nt.recent=function(){return this._recent},nt.nextLabel=function(it){return it===void 0&&(it=this._time),_getLabelInDirection(this,_parsePosition(this,it))},nt.previousLabel=function(it){return it===void 0&&(it=this._time),_getLabelInDirection(this,_parsePosition(this,it),1)},nt.currentLabel=function(it){return arguments.length?this.seek(it,!0):this.previousLabel(this._time+_tinyNum)},nt.shiftChildren=function(it,ot,at){at===void 0&&(at=0);for(var st=this._first,lt=this.labels,ct;st;)st._start>=at&&(st._start+=it,st._end+=it),st=st._next;if(ot)for(ct in lt)lt[ct]>=at&&(lt[ct]+=it);return _uncache(this)},nt.invalidate=function(it){var ot=this._first;for(this._lock=0;ot;)ot.invalidate(it),ot=ot._next;return tt.prototype.invalidate.call(this,it)},nt.clear=function(it){it===void 0&&(it=!0);for(var ot=this._first,at;ot;)at=ot._next,this.remove(ot),ot=at;return this._dp&&(this._time=this._tTime=this._pTime=0),it&&(this.labels={}),_uncache(this)},nt.totalDuration=function(it){var ot=0,at=this,st=at._last,lt=_bigNum$1,ct,ut,ht;if(arguments.length)return at.timeScale((at._repeat<0?at.duration():at.totalDuration())/(at.reversed()?-it:it));if(at._dirty){for(ht=at.parent;st;)ct=st._prev,st._dirty&&st.totalDuration(),ut=st._start,ut>lt&&at._sort&&st._ts&&!at._lock?(at._lock=1,_addToTimeline(at,st,ut-st._delay,1)._lock=0):lt=ut,ut<0&&st._ts&&(ot-=ut,(!ht&&!at._dp||ht&&ht.smoothChildTiming)&&(at._start+=ut/at._ts,at._time-=ut,at._tTime-=ut),at.shiftChildren(-ut,!1,-1/0),lt=0),st._end>ot&&st._ts&&(ot=st._end),st=ct;_setDuration(at,at===_globalTimeline&&at._time>ot?at._time:ot,1,1),at._dirty=0}return at._tDur},et.updateRoot=function(it){if(_globalTimeline._ts&&(_lazySafeRender(_globalTimeline,_parentToChildTotalTime(it,_globalTimeline)),_lastRenderedFrame=_ticker.frame),_ticker.frame>=_nextGCFrame){_nextGCFrame+=_config.autoSleep||120;var ot=_globalTimeline._first;if((!ot||!ot._ts)&&_config.autoSleep&&_ticker._listeners.length<2){for(;ot&&!ot._ts;)ot=ot._next;ot||_ticker.sleep()}}},et}(Animation);_setDefaults(Timeline$1.prototype,{_lock:0,_hasPause:0,_forcing:0});var _addComplexStringPropTween=function(et,nt,rt,it,ot,at,st){var lt=new PropTween(this._pt,et,nt,0,1,_renderComplexString,null,ot),ct=0,ut=0,ht,dt,pt,mt,gt,yt,bt,wt;for(lt.b=rt,lt.e=it,rt+="",it+="",(bt=~it.indexOf("random("))&&(it=_replaceRandom(it)),at&&(wt=[rt,it],at(wt,et,nt),rt=wt[0],it=wt[1]),dt=rt.match(_complexStringNumExp)||[];ht=_complexStringNumExp.exec(it);)mt=ht[0],gt=it.substring(ct,ht.index),pt?pt=(pt+1)%5:gt.substr(-5)==="rgba("&&(pt=1),mt!==dt[ut++]&&(yt=parseFloat(dt[ut-1])||0,lt._pt={_next:lt._pt,p:gt||ut===1?gt:",",s:yt,c:mt.charAt(1)==="="?_parseRelative(yt,mt)-yt:parseFloat(mt)-yt,m:pt&&pt<4?Math.round:0},ct=_complexStringNumExp.lastIndex);return lt.c=ct")}),kt.duration();else{Et={};for(Tt in mt)Tt==="ease"||Tt==="easeEach"||_parseKeyframe(Tt,mt[Tt],Et,mt.easeEach);for(Tt in Et)for($t=Et[Tt].sort(function(Ot,zt){return Ot.t-zt.t}),Rt=0,St=0;St<$t.length;St++)xt=$t[St],It={ease:xt.e,duration:(xt.t-(St?$t[St-1].t:0))/100*ct},It[Tt]=xt.v,kt.to(vt,It,Rt),Rt+=It.duration;kt.duration()lt-_tinyNum&&!ut?lt:it<_tinyNum?0:it,dt,pt,mt,gt,yt,bt,wt,vt,kt;if(!ct)_renderZeroDurationTween(this,it,ot,at);else if(ht!==this._tTime||!it||at||!this._initted&&this._tTime||this._startAt&&this._zTime<0!==ut){if(dt=ht,vt=this.timeline,this._repeat){if(gt=ct+this._rDelay,this._repeat<-1&&ut)return this.totalTime(gt*100+it,ot,at);if(dt=_roundPrecise(ht%gt),ht===lt?(mt=this._repeat,dt=ct):(mt=~~(ht/gt),mt&&mt===ht/gt&&(dt=ct,mt--),dt>ct&&(dt=ct)),bt=this._yoyo&&mt&1,bt&&(kt=this._yEase,dt=ct-dt),yt=_animationCycle(this._tTime,gt),dt===st&&!at&&this._initted)return this._tTime=ht,this;mt!==yt&&(vt&&this._yEase&&_propagateYoyoEase(vt,bt),this.vars.repeatRefresh&&!bt&&!this._lock&&(this._lock=at=1,this.render(_roundPrecise(gt*mt),!0).invalidate()._lock=0))}if(!this._initted){if(_attemptInitTween(this,ut?it:dt,at,ot,ht))return this._tTime=0,this;if(st!==this._time)return this;if(ct!==this._dur)return this.render(it,ot,at)}if(this._tTime=ht,this._time=dt,!this._act&&this._ts&&(this._act=1,this._lazy=0),this.ratio=wt=(kt||this._ease)(dt/ct),this._from&&(this.ratio=wt=1-wt),dt&&!st&&!ot&&!mt&&(_callback(this,"onStart"),this._tTime!==ht))return this;for(pt=this._pt;pt;)pt.r(wt,pt.d),pt=pt._next;vt&&vt.render(it<0?it:!dt&&bt?-_tinyNum:vt._dur*vt._ease(dt/this._dur),ot,at)||this._startAt&&(this._zTime=it),this._onUpdate&&!ot&&(ut&&_rewindStartAt(this,it,ot,at),_callback(this,"onUpdate")),this._repeat&&mt!==yt&&this.vars.onRepeat&&!ot&&this.parent&&_callback(this,"onRepeat"),(ht===this._tDur||!ht)&&this._tTime===ht&&(ut&&!this._onUpdate&&_rewindStartAt(this,it,!0,!0),(it||!ct)&&(ht===this._tDur&&this._ts>0||!ht&&this._ts<0)&&_removeFromParent(this,1),!ot&&!(ut&&!st)&&(ht||st||bt)&&(_callback(this,ht===lt?"onComplete":"onReverseComplete",!0),this._prom&&!(ht0)&&this._prom()))}return this},nt.targets=function(){return this._targets},nt.invalidate=function(it){return(!it||!this.vars.runBackwards)&&(this._startAt=0),this._pt=this._op=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(it),tt.prototype.invalidate.call(this,it)},nt.resetTo=function(it,ot,at,st){_tickerActive||_ticker.wake(),this._ts||this.play();var lt=Math.min(this._dur,(this._dp._time-this._start)*this._ts),ct;return this._initted||_initTween(this,lt),ct=this._ease(lt/this._dur),_updatePropTweens(this,it,ot,at,st,ct,lt)?this.resetTo(it,ot,at,st):(_alignPlayhead(this,0),this.parent||_addLinkedListItem(this._dp,this,"_first","_last",this._dp._sort?"_start":0),this.render(0))},nt.kill=function(it,ot){if(ot===void 0&&(ot="all"),!it&&(!ot||ot==="all"))return this._lazy=this._pt=0,this.parent?_interrupt(this):this;if(this.timeline){var at=this.timeline.totalDuration();return this.timeline.killTweensOf(it,ot,_overwritingTween&&_overwritingTween.vars.overwrite!==!0)._first||_interrupt(this),this.parent&&at!==this.timeline.totalDuration()&&_setDuration(this,this._dur*this.timeline._tDur/at,0,1),this}var st=this._targets,lt=it?toArray$3(it):st,ct=this._ptLookup,ut=this._pt,ht,dt,pt,mt,gt,yt,bt;if((!ot||ot==="all")&&_arraysMatch(st,lt))return ot==="all"&&(this._pt=0),_interrupt(this);for(ht=this._op=this._op||[],ot!=="all"&&(_isString(ot)&&(gt={},_forEachName(ot,function(wt){return gt[wt]=1}),ot=gt),ot=_addAliasesToVars(st,ot)),bt=st.length;bt--;)if(~lt.indexOf(st[bt])){dt=ct[bt],ot==="all"?(ht[bt]=ot,mt=dt,pt={}):(pt=ht[bt]=ht[bt]||{},mt=ot);for(gt in mt)yt=dt&&dt[gt],yt&&((!("kill"in yt.d)||yt.d.kill(gt)===!0)&&_removeLinkedListItem(this,yt,"_pt"),delete dt[gt]),pt!=="all"&&(pt[gt]=1)}return this._initted&&!this._pt&&ut&&_interrupt(this),this},et.to=function(it,ot){return new et(it,ot,arguments[2])},et.from=function(it,ot){return _createTweenType(1,arguments)},et.delayedCall=function(it,ot,at,st){return new et(ot,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:it,onComplete:ot,onReverseComplete:ot,onCompleteParams:at,onReverseCompleteParams:at,callbackScope:st})},et.fromTo=function(it,ot,at){return _createTweenType(2,arguments)},et.set=function(it,ot){return ot.duration=0,ot.repeatDelay||(ot.repeat=0),new et(it,ot)},et.killTweensOf=function(it,ot,at){return _globalTimeline.killTweensOf(it,ot,at)},et}(Animation);_setDefaults(Tween.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0});_forEachName("staggerTo,staggerFrom,staggerFromTo",function(tt){Tween[tt]=function(){var et=new Timeline$1,nt=_slice.call(arguments,0);return nt.splice(tt==="staggerFromTo"?5:4,0,0),et[tt].apply(et,nt)}});var _setterPlain=function(et,nt,rt){return et[nt]=rt},_setterFunc=function(et,nt,rt){return et[nt](rt)},_setterFuncWithParam=function(et,nt,rt,it){return et[nt](it.fp,rt)},_setterAttribute=function(et,nt,rt){return et.setAttribute(nt,rt)},_getSetter=function(et,nt){return _isFunction(et[nt])?_setterFunc:_isUndefined(et[nt])&&et.setAttribute?_setterAttribute:_setterPlain},_renderPlain=function(et,nt){return nt.set(nt.t,nt.p,Math.round((nt.s+nt.c*et)*1e6)/1e6,nt)},_renderBoolean=function(et,nt){return nt.set(nt.t,nt.p,!!(nt.s+nt.c*et),nt)},_renderComplexString=function(et,nt){var rt=nt._pt,it="";if(!et&&nt.b)it=nt.b;else if(et===1&&nt.e)it=nt.e;else{for(;rt;)it=rt.p+(rt.m?rt.m(rt.s+rt.c*et):Math.round((rt.s+rt.c*et)*1e4)/1e4)+it,rt=rt._next;it+=nt.c}nt.set(nt.t,nt.p,it,nt)},_renderPropTweens=function(et,nt){for(var rt=nt._pt;rt;)rt.r(et,rt.d),rt=rt._next},_addPluginModifier=function(et,nt,rt,it){for(var ot=this._pt,at;ot;)at=ot._next,ot.p===it&&ot.modifier(et,nt,rt),ot=at},_killPropTweensOf=function(et){for(var nt=this._pt,rt,it;nt;)it=nt._next,nt.p===et&&!nt.op||nt.op===et?_removeLinkedListItem(this,nt,"_pt"):nt.dep||(rt=1),nt=it;return!rt},_setterWithModifier=function(et,nt,rt,it){it.mSet(et,nt,it.m.call(it.tween,rt,it.mt),it)},_sortPropTweensByPriority=function(et){for(var nt=et._pt,rt,it,ot,at;nt;){for(rt=nt._next,it=ot;it&&it.pr>nt.pr;)it=it._next;(nt._prev=it?it._prev:at)?nt._prev._next=nt:ot=nt,(nt._next=it)?it._prev=nt:at=nt,nt=rt}et._pt=ot},PropTween=function(){function tt(nt,rt,it,ot,at,st,lt,ct,ut){this.t=rt,this.s=ot,this.c=at,this.p=it,this.r=st||_renderPlain,this.d=lt||this,this.set=ct||_setterPlain,this.pr=ut||0,this._next=nt,nt&&(nt._prev=this)}var et=tt.prototype;return et.modifier=function(rt,it,ot){this.mSet=this.mSet||this.set,this.set=_setterWithModifier,this.m=rt,this.mt=ot,this.tween=it},tt}();_forEachName(_callbackNames+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger",function(tt){return _reservedProps[tt]=1});_globals.TweenMax=_globals.TweenLite=Tween;_globals.TimelineLite=_globals.TimelineMax=Timeline$1;_globalTimeline=new Timeline$1({sortChildren:!1,defaults:_defaults,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0});_config.stringFilter=_colorStringFilter;var _media=[],_listeners={},_emptyArray=[],_lastMediaTime=0,_contextID=0,_dispatch=function(et){return(_listeners[et]||_emptyArray).map(function(nt){return nt()})},_onMediaChange=function(){var et=Date.now(),nt=[];et-_lastMediaTime>2&&(_dispatch("matchMediaInit"),_media.forEach(function(rt){var it=rt.queries,ot=rt.conditions,at,st,lt,ct;for(st in it)at=_win$1.matchMedia(it[st]).matches,at&&(lt=1),at!==ot[st]&&(ot[st]=at,ct=1);ct&&(rt.revert(),lt&&nt.push(rt))}),_dispatch("matchMediaRevert"),nt.forEach(function(rt){return rt.onMatch(rt)}),_lastMediaTime=et,_dispatch("matchMedia"))},Context$1=function(){function tt(nt,rt){this.selector=rt&&selector(rt),this.data=[],this._r=[],this.isReverted=!1,this.id=_contextID++,nt&&this.add(nt)}var et=tt.prototype;return et.add=function(rt,it,ot){_isFunction(rt)&&(ot=it,it=rt,rt=_isFunction);var at=this,st=function(){var ct=_context,ut=at.selector,ht;return ct&&ct!==at&&ct.data.push(at),ot&&(at.selector=selector(ot)),_context=at,ht=it.apply(at,arguments),_isFunction(ht)&&at._r.push(ht),_context=ct,at.selector=ut,at.isReverted=!1,ht};return at.last=st,rt===_isFunction?st(at):rt?at[rt]=st:st},et.ignore=function(rt){var it=_context;_context=null,rt(this),_context=it},et.getTweens=function(){var rt=[];return this.data.forEach(function(it){return it instanceof tt?rt.push.apply(rt,it.getTweens()):it instanceof Tween&&!(it.parent&&it.parent.data==="nested")&&rt.push(it)}),rt},et.clear=function(){this._r.length=this.data.length=0},et.kill=function(rt,it){var ot=this;if(rt){var at=this.getTweens();this.data.forEach(function(lt){lt.data==="isFlip"&&(lt.revert(),lt.getChildren(!0,!0,!1).forEach(function(ct){return at.splice(at.indexOf(ct),1)}))}),at.map(function(lt){return{g:lt.globalTime(0),t:lt}}).sort(function(lt,ct){return ct.g-lt.g||-1/0}).forEach(function(lt){return lt.t.revert(rt)}),this.data.forEach(function(lt){return!(lt instanceof Tween)&<.revert&<.revert(rt)}),this._r.forEach(function(lt){return lt(rt,ot)}),this.isReverted=!0}else this.data.forEach(function(lt){return lt.kill&<.kill()});if(this.clear(),it)for(var st=_media.length;st--;)_media[st].id===this.id&&_media.splice(st,1)},et.revert=function(rt){this.kill(rt||{})},tt}(),MatchMedia=function(){function tt(nt){this.contexts=[],this.scope=nt}var et=tt.prototype;return et.add=function(rt,it,ot){_isObject(rt)||(rt={matches:rt});var at=new Context$1(0,ot||this.scope),st=at.conditions={},lt,ct,ut;_context&&!at.selector&&(at.selector=_context.selector),this.contexts.push(at),it=at.add("onMatch",it),at.queries=rt;for(ct in rt)ct==="all"?ut=1:(lt=_win$1.matchMedia(rt[ct]),lt&&(_media.indexOf(at)<0&&_media.push(at),(st[ct]=lt.matches)&&(ut=1),lt.addListener?lt.addListener(_onMediaChange):lt.addEventListener("change",_onMediaChange)));return ut&&it(at),this},et.revert=function(rt){this.kill(rt||{})},et.kill=function(rt){this.contexts.forEach(function(it){return it.kill(rt,!0)})},tt}(),_gsap={registerPlugin:function(){for(var et=arguments.length,nt=new Array(et),rt=0;rt1){var it=et.map(function(ut){return gsap.quickSetter(ut,nt,rt)}),ot=it.length;return function(ut){for(var ht=ot;ht--;)it[ht](ut)}}et=et[0]||{};var at=_plugins[nt],st=_getCache(et),lt=st.harness&&(st.harness.aliases||{})[nt]||nt,ct=at?function(ut){var ht=new at;_quickTween._pt=0,ht.init(et,rt?ut+rt:ut,_quickTween,0,[et]),ht.render(1,ht),_quickTween._pt&&_renderPropTweens(1,_quickTween)}:st.set(et,lt);return at?ct:function(ut){return ct(et,lt,rt?ut+rt:ut,st,1)}},quickTo:function(et,nt,rt){var it,ot=gsap.to(et,_merge((it={},it[nt]="+=0.1",it.paused=!0,it),rt||{})),at=function(lt,ct,ut){return ot.resetTo(nt,lt,ct,ut)};return at.tween=ot,at},isTweening:function(et){return _globalTimeline.getTweensOf(et,!0).length>0},defaults:function(et){return et&&et.ease&&(et.ease=_parseEase(et.ease,_defaults.ease)),_mergeDeep(_defaults,et||{})},config:function(et){return _mergeDeep(_config,et||{})},registerEffect:function(et){var nt=et.name,rt=et.effect,it=et.plugins,ot=et.defaults,at=et.extendTimeline;(it||"").split(",").forEach(function(st){return st&&!_plugins[st]&&!_globals[st]&&_warn(nt+" effect requires "+st+" plugin.")}),_effects[nt]=function(st,lt,ct){return rt(toArray$3(st),_setDefaults(lt||{},ot),ct)},at&&(Timeline$1.prototype[nt]=function(st,lt,ct){return this.add(_effects[nt](st,_isObject(lt)?lt:(ct=lt)&&{},this),ct)})},registerEase:function(et,nt){_easeMap[et]=_parseEase(nt)},parseEase:function(et,nt){return arguments.length?_parseEase(et,nt):_easeMap},getById:function(et){return _globalTimeline.getById(et)},exportRoot:function(et,nt){et===void 0&&(et={});var rt=new Timeline$1(et),it,ot;for(rt.smoothChildTiming=_isNotFalse(et.smoothChildTiming),_globalTimeline.remove(rt),rt._dp=0,rt._time=rt._tTime=_globalTimeline._time,it=_globalTimeline._first;it;)ot=it._next,(nt||!(!it._dur&&it instanceof Tween&&it.vars.onComplete===it._targets[0]))&&_addToTimeline(rt,it,it._start-it._delay),it=ot;return _addToTimeline(_globalTimeline,rt,0),rt},context:function(et,nt){return et?new Context$1(et,nt):_context},matchMedia:function(et){return new MatchMedia(et)},matchMediaRefresh:function(){return _media.forEach(function(et){var nt=et.conditions,rt,it;for(it in nt)nt[it]&&(nt[it]=!1,rt=1);rt&&et.revert()})||_onMediaChange()},addEventListener:function(et,nt){var rt=_listeners[et]||(_listeners[et]=[]);~rt.indexOf(nt)||rt.push(nt)},removeEventListener:function(et,nt){var rt=_listeners[et],it=rt&&rt.indexOf(nt);it>=0&&rt.splice(it,1)},utils:{wrap,wrapYoyo,distribute,random,snap,normalize:normalize$1,getUnit,clamp:clamp$1,splitColor,toArray:toArray$3,selector,mapRange,pipe,unitize,interpolate:interpolate$1,shuffle},install:_install,effects:_effects,ticker:_ticker,updateRoot:Timeline$1.updateRoot,plugins:_plugins,globalTimeline:_globalTimeline,core:{PropTween,globals:_addGlobal,Tween,Timeline:Timeline$1,Animation,getCache:_getCache,_removeLinkedListItem,reverting:function(){return _reverting$1},context:function(et){return et&&_context&&(_context.data.push(et),et._ctx=_context),_context},suppressOverwrites:function(et){return _suppressOverwrites=et}}};_forEachName("to,from,fromTo,delayedCall,set,killTweensOf",function(tt){return _gsap[tt]=Tween[tt]});_ticker.add(Timeline$1.updateRoot);_quickTween=_gsap.to({},{duration:0});var _getPluginPropTween=function(et,nt){for(var rt=et._pt;rt&&rt.p!==nt&&rt.op!==nt&&rt.fp!==nt;)rt=rt._next;return rt},_addModifiers=function(et,nt){var rt=et._targets,it,ot,at;for(it in nt)for(ot=rt.length;ot--;)at=et._ptLookup[ot][it],at&&(at=at.d)&&(at._pt&&(at=_getPluginPropTween(at,it)),at&&at.modifier&&at.modifier(nt[it],et,rt[ot],it))},_buildModifierPlugin=function(et,nt){return{name:et,rawVars:1,init:function(it,ot,at){at._onInit=function(st){var lt,ct;if(_isString(ot)&&(lt={},_forEachName(ot,function(ut){return lt[ut]=1}),ot=lt),nt){lt={};for(ct in ot)lt[ct]=nt(ot[ct]);ot=lt}_addModifiers(st,ot)}}}},gsap=_gsap.registerPlugin({name:"attr",init:function(et,nt,rt,it,ot){var at,st,lt;this.tween=rt;for(at in nt)lt=et.getAttribute(at)||"",st=this.add(et,"setAttribute",(lt||0)+"",nt[at],it,ot,0,0,at),st.op=at,st.b=lt,this._props.push(at)},render:function(et,nt){for(var rt=nt._pt;rt;)_reverting$1?rt.set(rt.t,rt.p,rt.b,rt):rt.r(et,rt.d),rt=rt._next}},{name:"endArray",init:function(et,nt){for(var rt=nt.length;rt--;)this.add(et,rt,et[rt]||0,nt[rt],0,0,0,0,0,1)}},_buildModifierPlugin("roundProps",_roundModifier),_buildModifierPlugin("modifiers"),_buildModifierPlugin("snap",snap))||_gsap;Tween.version=Timeline$1.version=gsap.version="3.12.2";_coreReady=1;_windowExists$1()&&_wake();_easeMap.Power0;_easeMap.Power1;_easeMap.Power2;_easeMap.Power3;_easeMap.Power4;_easeMap.Linear;_easeMap.Quad;_easeMap.Cubic;_easeMap.Quart;_easeMap.Quint;_easeMap.Strong;_easeMap.Elastic;_easeMap.Back;_easeMap.SteppedEase;_easeMap.Bounce;_easeMap.Sine;_easeMap.Expo;_easeMap.Circ;/*! * CSSPlugin 3.12.2 * https://greensock.com * @@ -6460,9 +6460,9 @@ void main() { * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com -*/var _win,_doc,_docElement,_pluginInitted,_tempDiv,_recentSetterPlugin,_reverting,_windowExists=function(){return typeof window<"u"},_transformProps={},_RAD2DEG=180/Math.PI,_DEG2RAD=Math.PI/180,_atan2=Math.atan2,_bigNum=1e8,_capsExp=/([A-Z])/g,_horizontalExp=/(left|right|width|margin|padding|x)/i,_complexExp=/[\s,\(]\S/,_propertyAliases={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},_renderCSSProp=function(et,nt){return nt.set(nt.t,nt.p,Math.round((nt.s+nt.c*et)*1e4)/1e4+nt.u,nt)},_renderPropWithEnd=function(et,nt){return nt.set(nt.t,nt.p,et===1?nt.e:Math.round((nt.s+nt.c*et)*1e4)/1e4+nt.u,nt)},_renderCSSPropWithBeginning=function(et,nt){return nt.set(nt.t,nt.p,et?Math.round((nt.s+nt.c*et)*1e4)/1e4+nt.u:nt.b,nt)},_renderRoundedCSSProp=function(et,nt){var rt=nt.s+nt.c*et;nt.set(nt.t,nt.p,~~(rt+(rt<0?-.5:.5))+nt.u,nt)},_renderNonTweeningValue=function(et,nt){return nt.set(nt.t,nt.p,et?nt.e:nt.b,nt)},_renderNonTweeningValueOnlyAtEnd=function(et,nt){return nt.set(nt.t,nt.p,et!==1?nt.b:nt.e,nt)},_setterCSSStyle=function(et,nt,rt){return et.style[nt]=rt},_setterCSSProp=function(et,nt,rt){return et.style.setProperty(nt,rt)},_setterTransform=function(et,nt,rt){return et._gsap[nt]=rt},_setterScale=function(et,nt,rt){return et._gsap.scaleX=et._gsap.scaleY=rt},_setterScaleWithRender=function(et,nt,rt,it,ot){var at=et._gsap;at.scaleX=at.scaleY=rt,at.renderTransform(ot,at)},_setterTransformWithRender=function(et,nt,rt,it,ot){var at=et._gsap;at[nt]=rt,at.renderTransform(ot,at)},_transformProp="transform",_transformOriginProp=_transformProp+"Origin",_saveStyle=function tt(et,nt){var rt=this,it=this.target,ot=it.style;if(et in _transformProps&&ot){if(this.tfm=this.tfm||{},et!=="transform")et=_propertyAliases[et]||et,~et.indexOf(",")?et.split(",").forEach(function(at){return rt.tfm[at]=_get(it,at)}):this.tfm[et]=it._gsap.x?it._gsap[et]:_get(it,et);else return _propertyAliases.transform.split(",").forEach(function(at){return tt.call(rt,at,nt)});if(this.props.indexOf(_transformProp)>=0)return;it._gsap.svg&&(this.svgo=it.getAttribute("data-svg-origin"),this.props.push(_transformOriginProp,nt,"")),et=_transformProp}(ot||nt)&&this.props.push(et,nt,ot[et])},_removeIndependentTransforms=function(et){et.translate&&(et.removeProperty("translate"),et.removeProperty("scale"),et.removeProperty("rotate"))},_revertStyle=function(){var et=this.props,nt=this.target,rt=nt.style,it=nt._gsap,ot,at;for(ot=0;ot=0?_prefixes[at]:"")+et},_initCore=function(){_windowExists()&&window.document&&(_win=window,_doc=_win.document,_docElement=_doc.documentElement,_tempDiv=_createElement("div")||{style:{}},_createElement("div"),_transformProp=_checkPropPrefix(_transformProp),_transformOriginProp=_transformProp+"Origin",_tempDiv.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",_supports3D=!!_checkPropPrefix("perspective"),_reverting=gsap.core.reverting,_pluginInitted=1)},_getBBoxHack=function tt(et){var nt=_createElement("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),rt=this.parentNode,it=this.nextSibling,ot=this.style.cssText,at;if(_docElement.appendChild(nt),nt.appendChild(this),this.style.display="block",et)try{at=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=tt}catch{}else this._gsapBBox&&(at=this._gsapBBox());return rt&&(it?rt.insertBefore(this,it):rt.appendChild(this)),_docElement.removeChild(nt),this.style.cssText=ot,at},_getAttributeFallbacks=function(et,nt){for(var rt=nt.length;rt--;)if(et.hasAttribute(nt[rt]))return et.getAttribute(nt[rt])},_getBBox=function(et){var nt;try{nt=et.getBBox()}catch{nt=_getBBoxHack.call(et,!0)}return nt&&(nt.width||nt.height)||et.getBBox===_getBBoxHack||(nt=_getBBoxHack.call(et,!0)),nt&&!nt.width&&!nt.x&&!nt.y?{x:+_getAttributeFallbacks(et,["x","cx","x1"])||0,y:+_getAttributeFallbacks(et,["y","cy","y1"])||0,width:0,height:0}:nt},_isSVG=function(et){return!!(et.getCTM&&(!et.parentNode||et.ownerSVGElement)&&_getBBox(et))},_removeProperty=function(et,nt){if(nt){var rt=et.style;nt in _transformProps&&nt!==_transformOriginProp&&(nt=_transformProp),rt.removeProperty?((nt.substr(0,2)==="ms"||nt.substr(0,6)==="webkit")&&(nt="-"+nt),rt.removeProperty(nt.replace(_capsExp,"-$1").toLowerCase())):rt.removeAttribute(nt)}},_addNonTweeningPT=function(et,nt,rt,it,ot,at){var st=new PropTween(et._pt,nt,rt,0,1,at?_renderNonTweeningValueOnlyAtEnd:_renderNonTweeningValue);return et._pt=st,st.b=it,st.e=ot,et._props.push(rt),st},_nonConvertibleUnits={deg:1,rad:1,turn:1},_nonStandardLayouts={grid:1,flex:1},_convertToUnit=function tt(et,nt,rt,it){var ot=parseFloat(rt)||0,at=(rt+"").trim().substr((ot+"").length)||"px",st=_tempDiv.style,lt=_horizontalExp.test(nt),ct=et.tagName.toLowerCase()==="svg",ut=(ct?"client":"offset")+(lt?"Width":"Height"),ht=100,dt=it==="px",pt=it==="%",mt,gt,yt,bt;return it===at||!ot||_nonConvertibleUnits[it]||_nonConvertibleUnits[at]?ot:(at!=="px"&&!dt&&(ot=tt(et,nt,rt,"px")),bt=et.getCTM&&_isSVG(et),(pt||at==="%")&&(_transformProps[nt]||~nt.indexOf("adius"))?(mt=bt?et.getBBox()[lt?"width":"height"]:et[ut],_round(pt?ot/mt*ht:ot/100*mt)):(st[lt?"width":"height"]=ht+(dt?at:it),gt=~nt.indexOf("adius")||it==="em"&&et.appendChild&&!ct?et:et.parentNode,bt&&(gt=(et.ownerSVGElement||{}).parentNode),(!gt||gt===_doc||!gt.appendChild)&&(gt=_doc.body),yt=gt._gsap,yt&&pt&&yt.width&<&&yt.time===_ticker.time&&!yt.uncache?_round(ot/yt.width*ht):((pt||at==="%")&&!_nonStandardLayouts[_getComputedProperty(gt,"display")]&&(st.position=_getComputedProperty(et,"position")),gt===et&&(st.position="static"),gt.appendChild(_tempDiv),mt=_tempDiv[ut],gt.removeChild(_tempDiv),st.position="absolute",lt&&pt&&(yt=_getCache(gt),yt.time=_ticker.time,yt.width=gt[ut]),_round(dt?mt*ot/ht:mt&&ot?ht/mt*ot:0))))},_get=function(et,nt,rt,it){var ot;return _pluginInitted||_initCore(),nt in _propertyAliases&&nt!=="transform"&&(nt=_propertyAliases[nt],~nt.indexOf(",")&&(nt=nt.split(",")[0])),_transformProps[nt]&&nt!=="transform"?(ot=_parseTransform(et,it),ot=nt!=="transformOrigin"?ot[nt]:ot.svg?ot.origin:_firstTwoOnly(_getComputedProperty(et,_transformOriginProp))+" "+ot.zOrigin+"px"):(ot=et.style[nt],(!ot||ot==="auto"||it||~(ot+"").indexOf("calc("))&&(ot=_specialProps[nt]&&_specialProps[nt](et,nt,rt)||_getComputedProperty(et,nt)||_getProperty(et,nt)||(nt==="opacity"?1:0))),rt&&!~(ot+"").trim().indexOf(" ")?_convertToUnit(et,nt,ot,rt)+rt:ot},_tweenComplexCSSString=function(et,nt,rt,it){if(!rt||rt==="none"){var ot=_checkPropPrefix(nt,et,1),at=ot&&_getComputedProperty(et,ot,1);at&&at!==rt?(nt=ot,rt=at):nt==="borderColor"&&(rt=_getComputedProperty(et,"borderTopColor"))}var st=new PropTween(this._pt,et.style,nt,0,1,_renderComplexString),lt=0,ct=0,ut,ht,dt,pt,mt,gt,yt,bt,wt,vt,kt,St;if(st.b=rt,st.e=it,rt+="",it+="",it==="auto"&&(et.style[nt]=it,it=_getComputedProperty(et,nt)||it,et.style[nt]=rt),ut=[rt,it],_colorStringFilter(ut),rt=ut[0],it=ut[1],dt=rt.match(_numWithUnitExp)||[],St=it.match(_numWithUnitExp)||[],St.length){for(;ht=_numWithUnitExp.exec(it);)yt=ht[0],wt=it.substring(lt,ht.index),mt?mt=(mt+1)%5:(wt.substr(-5)==="rgba("||wt.substr(-5)==="hsla(")&&(mt=1),yt!==(gt=dt[ct++]||"")&&(pt=parseFloat(gt)||0,kt=gt.substr((pt+"").length),yt.charAt(1)==="="&&(yt=_parseRelative(pt,yt)+kt),bt=parseFloat(yt),vt=yt.substr((bt+"").length),lt=_numWithUnitExp.lastIndex-vt.length,vt||(vt=vt||_config.units[nt]||kt,lt===it.length&&(it+=vt,st.e+=vt)),kt!==vt&&(pt=_convertToUnit(et,nt,gt,vt)||0),st._pt={_next:st._pt,p:wt||ct===1?wt:",",s:pt,c:bt-pt,m:mt&&mt<4||nt==="zIndex"?Math.round:0});st.c=lt-1;)st=ot[ct],_transformProps[st]&&(lt=1,st=st==="transformOrigin"?_transformOriginProp:_transformProp),_removeProperty(rt,st);lt&&(_removeProperty(rt,_transformProp),at&&(at.svg&&rt.removeAttribute("transform"),_parseTransform(rt,1),at.uncache=1,_removeIndependentTransforms(it)))}},_specialProps={clearProps:function(et,nt,rt,it,ot){if(ot.data!=="isFromStart"){var at=et._pt=new PropTween(et._pt,nt,rt,0,0,_renderClearProps);return at.u=it,at.pr=-10,at.tween=ot,et._props.push(rt),1}}},_identity2DMatrix=[1,0,0,1,0,0],_rotationalProperties={},_isNullTransform=function(et){return et==="matrix(1, 0, 0, 1, 0, 0)"||et==="none"||!et},_getComputedTransformMatrixAsArray=function(et){var nt=_getComputedProperty(et,_transformProp);return _isNullTransform(nt)?_identity2DMatrix:nt.substr(7).match(_numExp).map(_round)},_getMatrix=function(et,nt){var rt=et._gsap||_getCache(et),it=et.style,ot=_getComputedTransformMatrixAsArray(et),at,st,lt,ct;return rt.svg&&et.getAttribute("transform")?(lt=et.transform.baseVal.consolidate().matrix,ot=[lt.a,lt.b,lt.c,lt.d,lt.e,lt.f],ot.join(",")==="1,0,0,1,0,0"?_identity2DMatrix:ot):(ot===_identity2DMatrix&&!et.offsetParent&&et!==_docElement&&!rt.svg&&(lt=it.display,it.display="block",at=et.parentNode,(!at||!et.offsetParent)&&(ct=1,st=et.nextElementSibling,_docElement.appendChild(et)),ot=_getComputedTransformMatrixAsArray(et),lt?it.display=lt:_removeProperty(et,"display"),ct&&(st?at.insertBefore(et,st):at?at.appendChild(et):_docElement.removeChild(et))),nt&&ot.length>6?[ot[0],ot[1],ot[4],ot[5],ot[12],ot[13]]:ot)},_applySVGOrigin=function(et,nt,rt,it,ot,at){var st=et._gsap,lt=ot||_getMatrix(et,!0),ct=st.xOrigin||0,ut=st.yOrigin||0,ht=st.xOffset||0,dt=st.yOffset||0,pt=lt[0],mt=lt[1],gt=lt[2],yt=lt[3],bt=lt[4],wt=lt[5],vt=nt.split(" "),kt=parseFloat(vt[0])||0,St=parseFloat(vt[1])||0,Tt,At,Et,Mt;rt?lt!==_identity2DMatrix&&(At=pt*yt-mt*gt)&&(Et=kt*(yt/At)+St*(-gt/At)+(gt*wt-yt*bt)/At,Mt=kt*(-mt/At)+St*(pt/At)-(pt*wt-mt*bt)/At,kt=Et,St=Mt):(Tt=_getBBox(et),kt=Tt.x+(~vt[0].indexOf("%")?kt/100*Tt.width:kt),St=Tt.y+(~(vt[1]||vt[0]).indexOf("%")?St/100*Tt.height:St)),it||it!==!1&&st.smooth?(bt=kt-ct,wt=St-ut,st.xOffset=ht+(bt*pt+wt*gt)-bt,st.yOffset=dt+(bt*mt+wt*yt)-wt):st.xOffset=st.yOffset=0,st.xOrigin=kt,st.yOrigin=St,st.smooth=!!it,st.origin=nt,st.originIsAbsolute=!!rt,et.style[_transformOriginProp]="0px 0px",at&&(_addNonTweeningPT(at,st,"xOrigin",ct,kt),_addNonTweeningPT(at,st,"yOrigin",ut,St),_addNonTweeningPT(at,st,"xOffset",ht,st.xOffset),_addNonTweeningPT(at,st,"yOffset",dt,st.yOffset)),et.setAttribute("data-svg-origin",kt+" "+St)},_parseTransform=function(et,nt){var rt=et._gsap||new GSCache(et);if("x"in rt&&!nt&&!rt.uncache)return rt;var it=et.style,ot=rt.scaleX<0,at="px",st="deg",lt=getComputedStyle(et),ct=_getComputedProperty(et,_transformOriginProp)||"0",ut,ht,dt,pt,mt,gt,yt,bt,wt,vt,kt,St,Tt,At,Et,Mt,Lt,jt,Rt,$t,xt,It,Ot,zt,Ut,Wt,Ft,Nt,Ct,Ht,Jt,nn;return ut=ht=dt=gt=yt=bt=wt=vt=kt=0,pt=mt=1,rt.svg=!!(et.getCTM&&_isSVG(et)),lt.translate&&((lt.translate!=="none"||lt.scale!=="none"||lt.rotate!=="none")&&(it[_transformProp]=(lt.translate!=="none"?"translate3d("+(lt.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+(lt.rotate!=="none"?"rotate("+lt.rotate+") ":"")+(lt.scale!=="none"?"scale("+lt.scale.split(" ").join(",")+") ":"")+(lt[_transformProp]!=="none"?lt[_transformProp]:"")),it.scale=it.rotate=it.translate="none"),At=_getMatrix(et,rt.svg),rt.svg&&(rt.uncache?(Ut=et.getBBox(),ct=rt.xOrigin-Ut.x+"px "+(rt.yOrigin-Ut.y)+"px",zt=""):zt=!nt&&et.getAttribute("data-svg-origin"),_applySVGOrigin(et,zt||ct,!!zt||rt.originIsAbsolute,rt.smooth!==!1,At)),St=rt.xOrigin||0,Tt=rt.yOrigin||0,At!==_identity2DMatrix&&(jt=At[0],Rt=At[1],$t=At[2],xt=At[3],ut=It=At[4],ht=Ot=At[5],At.length===6?(pt=Math.sqrt(jt*jt+Rt*Rt),mt=Math.sqrt(xt*xt+$t*$t),gt=jt||Rt?_atan2(Rt,jt)*_RAD2DEG:0,wt=$t||xt?_atan2($t,xt)*_RAD2DEG+gt:0,wt&&(mt*=Math.abs(Math.cos(wt*_DEG2RAD))),rt.svg&&(ut-=St-(St*jt+Tt*$t),ht-=Tt-(St*Rt+Tt*xt))):(nn=At[6],Ht=At[7],Ft=At[8],Nt=At[9],Ct=At[10],Jt=At[11],ut=At[12],ht=At[13],dt=At[14],Et=_atan2(nn,Ct),yt=Et*_RAD2DEG,Et&&(Mt=Math.cos(-Et),Lt=Math.sin(-Et),zt=It*Mt+Ft*Lt,Ut=Ot*Mt+Nt*Lt,Wt=nn*Mt+Ct*Lt,Ft=It*-Lt+Ft*Mt,Nt=Ot*-Lt+Nt*Mt,Ct=nn*-Lt+Ct*Mt,Jt=Ht*-Lt+Jt*Mt,It=zt,Ot=Ut,nn=Wt),Et=_atan2(-$t,Ct),bt=Et*_RAD2DEG,Et&&(Mt=Math.cos(-Et),Lt=Math.sin(-Et),zt=jt*Mt-Ft*Lt,Ut=Rt*Mt-Nt*Lt,Wt=$t*Mt-Ct*Lt,Jt=xt*Lt+Jt*Mt,jt=zt,Rt=Ut,$t=Wt),Et=_atan2(Rt,jt),gt=Et*_RAD2DEG,Et&&(Mt=Math.cos(Et),Lt=Math.sin(Et),zt=jt*Mt+Rt*Lt,Ut=It*Mt+Ot*Lt,Rt=Rt*Mt-jt*Lt,Ot=Ot*Mt-It*Lt,jt=zt,It=Ut),yt&&Math.abs(yt)+Math.abs(gt)>359.9&&(yt=gt=0,bt=180-bt),pt=_round(Math.sqrt(jt*jt+Rt*Rt+$t*$t)),mt=_round(Math.sqrt(Ot*Ot+nn*nn)),Et=_atan2(It,Ot),wt=Math.abs(Et)>2e-4?Et*_RAD2DEG:0,kt=Jt?1/(Jt<0?-Jt:Jt):0),rt.svg&&(zt=et.getAttribute("transform"),rt.forceCSS=et.setAttribute("transform","")||!_isNullTransform(_getComputedProperty(et,_transformProp)),zt&&et.setAttribute("transform",zt))),Math.abs(wt)>90&&Math.abs(wt)<270&&(ot?(pt*=-1,wt+=gt<=0?180:-180,gt+=gt<=0?180:-180):(mt*=-1,wt+=wt<=0?180:-180)),nt=nt||rt.uncache,rt.x=ut-((rt.xPercent=ut&&(!nt&&rt.xPercent||(Math.round(et.offsetWidth/2)===Math.round(-ut)?-50:0)))?et.offsetWidth*rt.xPercent/100:0)+at,rt.y=ht-((rt.yPercent=ht&&(!nt&&rt.yPercent||(Math.round(et.offsetHeight/2)===Math.round(-ht)?-50:0)))?et.offsetHeight*rt.yPercent/100:0)+at,rt.z=dt+at,rt.scaleX=_round(pt),rt.scaleY=_round(mt),rt.rotation=_round(gt)+st,rt.rotationX=_round(yt)+st,rt.rotationY=_round(bt)+st,rt.skewX=wt+st,rt.skewY=vt+st,rt.transformPerspective=kt+at,(rt.zOrigin=parseFloat(ct.split(" ")[2])||0)&&(it[_transformOriginProp]=_firstTwoOnly(ct)),rt.xOffset=rt.yOffset=0,rt.force3D=_config.force3D,rt.renderTransform=rt.svg?_renderSVGTransforms:_supports3D?_renderCSSTransforms:_renderNon3DTransforms,rt.uncache=0,rt},_firstTwoOnly=function(et){return(et=et.split(" "))[0]+" "+et[1]},_addPxTranslate=function(et,nt,rt){var it=getUnit(nt);return _round(parseFloat(nt)+parseFloat(_convertToUnit(et,"x",rt+"px",it)))+it},_renderNon3DTransforms=function(et,nt){nt.z="0px",nt.rotationY=nt.rotationX="0deg",nt.force3D=0,_renderCSSTransforms(et,nt)},_zeroDeg="0deg",_zeroPx="0px",_endParenthesis=") ",_renderCSSTransforms=function(et,nt){var rt=nt||this,it=rt.xPercent,ot=rt.yPercent,at=rt.x,st=rt.y,lt=rt.z,ct=rt.rotation,ut=rt.rotationY,ht=rt.rotationX,dt=rt.skewX,pt=rt.skewY,mt=rt.scaleX,gt=rt.scaleY,yt=rt.transformPerspective,bt=rt.force3D,wt=rt.target,vt=rt.zOrigin,kt="",St=bt==="auto"&&et&&et!==1||bt===!0;if(vt&&(ht!==_zeroDeg||ut!==_zeroDeg)){var Tt=parseFloat(ut)*_DEG2RAD,At=Math.sin(Tt),Et=Math.cos(Tt),Mt;Tt=parseFloat(ht)*_DEG2RAD,Mt=Math.cos(Tt),at=_addPxTranslate(wt,at,At*Mt*-vt),st=_addPxTranslate(wt,st,-Math.sin(Tt)*-vt),lt=_addPxTranslate(wt,lt,Et*Mt*-vt+vt)}yt!==_zeroPx&&(kt+="perspective("+yt+_endParenthesis),(it||ot)&&(kt+="translate("+it+"%, "+ot+"%) "),(St||at!==_zeroPx||st!==_zeroPx||lt!==_zeroPx)&&(kt+=lt!==_zeroPx||St?"translate3d("+at+", "+st+", "+lt+") ":"translate("+at+", "+st+_endParenthesis),ct!==_zeroDeg&&(kt+="rotate("+ct+_endParenthesis),ut!==_zeroDeg&&(kt+="rotateY("+ut+_endParenthesis),ht!==_zeroDeg&&(kt+="rotateX("+ht+_endParenthesis),(dt!==_zeroDeg||pt!==_zeroDeg)&&(kt+="skew("+dt+", "+pt+_endParenthesis),(mt!==1||gt!==1)&&(kt+="scale("+mt+", "+gt+_endParenthesis),wt.style[_transformProp]=kt||"translate(0, 0)"},_renderSVGTransforms=function(et,nt){var rt=nt||this,it=rt.xPercent,ot=rt.yPercent,at=rt.x,st=rt.y,lt=rt.rotation,ct=rt.skewX,ut=rt.skewY,ht=rt.scaleX,dt=rt.scaleY,pt=rt.target,mt=rt.xOrigin,gt=rt.yOrigin,yt=rt.xOffset,bt=rt.yOffset,wt=rt.forceCSS,vt=parseFloat(at),kt=parseFloat(st),St,Tt,At,Et,Mt;lt=parseFloat(lt),ct=parseFloat(ct),ut=parseFloat(ut),ut&&(ut=parseFloat(ut),ct+=ut,lt+=ut),lt||ct?(lt*=_DEG2RAD,ct*=_DEG2RAD,St=Math.cos(lt)*ht,Tt=Math.sin(lt)*ht,At=Math.sin(lt-ct)*-dt,Et=Math.cos(lt-ct)*dt,ct&&(ut*=_DEG2RAD,Mt=Math.tan(ct-ut),Mt=Math.sqrt(1+Mt*Mt),At*=Mt,Et*=Mt,ut&&(Mt=Math.tan(ut),Mt=Math.sqrt(1+Mt*Mt),St*=Mt,Tt*=Mt)),St=_round(St),Tt=_round(Tt),At=_round(At),Et=_round(Et)):(St=ht,Et=dt,Tt=At=0),(vt&&!~(at+"").indexOf("px")||kt&&!~(st+"").indexOf("px"))&&(vt=_convertToUnit(pt,"x",at,"px"),kt=_convertToUnit(pt,"y",st,"px")),(mt||gt||yt||bt)&&(vt=_round(vt+mt-(mt*St+gt*At)+yt),kt=_round(kt+gt-(mt*Tt+gt*Et)+bt)),(it||ot)&&(Mt=pt.getBBox(),vt=_round(vt+it/100*Mt.width),kt=_round(kt+ot/100*Mt.height)),Mt="matrix("+St+","+Tt+","+At+","+Et+","+vt+","+kt+")",pt.setAttribute("transform",Mt),wt&&(pt.style[_transformProp]=Mt)},_addRotationalPropTween=function(et,nt,rt,it,ot){var at=360,st=_isString(ot),lt=parseFloat(ot)*(st&&~ot.indexOf("rad")?_RAD2DEG:1),ct=lt-it,ut=it+ct+"deg",ht,dt;return st&&(ht=ot.split("_")[1],ht==="short"&&(ct%=at,ct!==ct%(at/2)&&(ct+=ct<0?at:-at)),ht==="cw"&&ct<0?ct=(ct+at*_bigNum)%at-~~(ct/at)*at:ht==="ccw"&&ct>0&&(ct=(ct-at*_bigNum)%at-~~(ct/at)*at)),et._pt=dt=new PropTween(et._pt,nt,rt,it,ct,_renderPropWithEnd),dt.e=ut,dt.u="deg",et._props.push(rt),dt},_assign=function(et,nt){for(var rt in nt)et[rt]=nt[rt];return et},_addRawTransformPTs=function(et,nt,rt){var it=_assign({},rt._gsap),ot="perspective,force3D,transformOrigin,svgOrigin",at=rt.style,st,lt,ct,ut,ht,dt,pt,mt;it.svg?(ct=rt.getAttribute("transform"),rt.setAttribute("transform",""),at[_transformProp]=nt,st=_parseTransform(rt,1),_removeProperty(rt,_transformProp),rt.setAttribute("transform",ct)):(ct=getComputedStyle(rt)[_transformProp],at[_transformProp]=nt,st=_parseTransform(rt,1),at[_transformProp]=ct);for(lt in _transformProps)ct=it[lt],ut=st[lt],ct!==ut&&ot.indexOf(lt)<0&&(pt=getUnit(ct),mt=getUnit(ut),ht=pt!==mt?_convertToUnit(rt,lt,ct,mt):parseFloat(ct),dt=parseFloat(ut),et._pt=new PropTween(et._pt,st,lt,ht,dt-ht,_renderCSSProp),et._pt.u=mt||0,et._props.push(lt));_assign(st,it)};_forEachName("padding,margin,Width,Radius",function(tt,et){var nt="Top",rt="Right",it="Bottom",ot="Left",at=(et<3?[nt,rt,it,ot]:[nt+ot,nt+rt,it+rt,it+ot]).map(function(st){return et<2?tt+st:"border"+st+tt});_specialProps[et>1?"border"+tt:tt]=function(st,lt,ct,ut,ht){var dt,pt;if(arguments.length<4)return dt=at.map(function(mt){return _get(st,mt,ct)}),pt=dt.join(" "),pt.split(dt[0]).length===5?dt[0]:pt;dt=(ut+"").split(" "),pt={},at.forEach(function(mt,gt){return pt[mt]=dt[gt]=dt[gt]||dt[(gt-1)/2|0]}),st.init(lt,pt,ht)}});var CSSPlugin={name:"css",register:_initCore,targetTest:function(et){return et.style&&et.nodeType},init:function(et,nt,rt,it,ot){var at=this._props,st=et.style,lt=rt.vars.startAt,ct,ut,ht,dt,pt,mt,gt,yt,bt,wt,vt,kt,St,Tt,At,Et;_pluginInitted||_initCore(),this.styles=this.styles||_getStyleSaver(et),Et=this.styles.props,this.tween=rt;for(gt in nt)if(gt!=="autoRound"&&(ut=nt[gt],!(_plugins[gt]&&_checkPlugin(gt,nt,rt,it,et,ot)))){if(pt=typeof ut,mt=_specialProps[gt],pt==="function"&&(ut=ut.call(rt,it,et,ot),pt=typeof ut),pt==="string"&&~ut.indexOf("random(")&&(ut=_replaceRandom(ut)),mt)mt(this,et,gt,ut,rt)&&(At=1);else if(gt.substr(0,2)==="--")ct=(getComputedStyle(et).getPropertyValue(gt)+"").trim(),ut+="",_colorExp.lastIndex=0,_colorExp.test(ct)||(yt=getUnit(ct),bt=getUnit(ut)),bt?yt!==bt&&(ct=_convertToUnit(et,gt,ct,bt)+bt):yt&&(ut+=yt),this.add(st,"setProperty",ct,ut,it,ot,0,0,gt),at.push(gt),Et.push(gt,0,st[gt]);else if(pt!=="undefined"){if(lt&> in lt?(ct=typeof lt[gt]=="function"?lt[gt].call(rt,it,et,ot):lt[gt],_isString(ct)&&~ct.indexOf("random(")&&(ct=_replaceRandom(ct)),getUnit(ct+"")||(ct+=_config.units[gt]||getUnit(_get(et,gt))||""),(ct+"").charAt(1)==="="&&(ct=_get(et,gt))):ct=_get(et,gt),dt=parseFloat(ct),wt=pt==="string"&&ut.charAt(1)==="="&&ut.substr(0,2),wt&&(ut=ut.substr(2)),ht=parseFloat(ut),gt in _propertyAliases&&(gt==="autoAlpha"&&(dt===1&&_get(et,"visibility")==="hidden"&&ht&&(dt=0),Et.push("visibility",0,st.visibility),_addNonTweeningPT(this,st,"visibility",dt?"inherit":"hidden",ht?"inherit":"hidden",!ht)),gt!=="scale"&>!=="transform"&&(gt=_propertyAliases[gt],~gt.indexOf(",")&&(gt=gt.split(",")[0]))),vt=gt in _transformProps,vt){if(this.styles.save(gt),kt||(St=et._gsap,St.renderTransform&&!nt.parseTransform||_parseTransform(et,nt.parseTransform),Tt=nt.smoothOrigin!==!1&&St.smooth,kt=this._pt=new PropTween(this._pt,st,_transformProp,0,1,St.renderTransform,St,0,-1),kt.dep=1),gt==="scale")this._pt=new PropTween(this._pt,St,"scaleY",St.scaleY,(wt?_parseRelative(St.scaleY,wt+ht):ht)-St.scaleY||0,_renderCSSProp),this._pt.u=0,at.push("scaleY",gt),gt+="X";else if(gt==="transformOrigin"){Et.push(_transformOriginProp,0,st[_transformOriginProp]),ut=_convertKeywordsToPercentages(ut),St.svg?_applySVGOrigin(et,ut,0,Tt,0,this):(bt=parseFloat(ut.split(" ")[2])||0,bt!==St.zOrigin&&_addNonTweeningPT(this,St,"zOrigin",St.zOrigin,bt),_addNonTweeningPT(this,st,gt,_firstTwoOnly(ct),_firstTwoOnly(ut)));continue}else if(gt==="svgOrigin"){_applySVGOrigin(et,ut,1,Tt,0,this);continue}else if(gt in _rotationalProperties){_addRotationalPropTween(this,St,gt,dt,wt?_parseRelative(dt,wt+ut):ut);continue}else if(gt==="smoothOrigin"){_addNonTweeningPT(this,St,"smooth",St.smooth,ut);continue}else if(gt==="force3D"){St[gt]=ut;continue}else if(gt==="transform"){_addRawTransformPTs(this,ut,et);continue}}else gt in st||(gt=_checkPropPrefix(gt)||gt);if(vt||(ht||ht===0)&&(dt||dt===0)&&!_complexExp.test(ut)&> in st)yt=(ct+"").substr((dt+"").length),ht||(ht=0),bt=getUnit(ut)||(gt in _config.units?_config.units[gt]:yt),yt!==bt&&(dt=_convertToUnit(et,gt,ct,bt)),this._pt=new PropTween(this._pt,vt?St:st,gt,dt,(wt?_parseRelative(dt,wt+ht):ht)-dt,!vt&&(bt==="px"||gt==="zIndex")&&nt.autoRound!==!1?_renderRoundedCSSProp:_renderCSSProp),this._pt.u=bt||0,yt!==bt&&bt!=="%"&&(this._pt.b=ct,this._pt.r=_renderCSSPropWithBeginning);else if(gt in st)_tweenComplexCSSString.call(this,et,gt,ct,wt?wt+ut:ut);else if(gt in et)this.add(et,gt,ct||et[gt],wt?wt+ut:ut,it,ot);else if(gt!=="parseTransform"){_missingPlugin(gt,ut);continue}vt||(gt in st?Et.push(gt,0,st[gt]):Et.push(gt,1,ct||et[gt])),at.push(gt)}}At&&_sortPropTweensByPriority(this)},render:function(et,nt){if(nt.tween._time||!_reverting())for(var rt=nt._pt;rt;)rt.r(et,rt.d),rt=rt._next;else nt.styles.revert()},get:_get,aliases:_propertyAliases,getSetter:function(et,nt,rt){var it=_propertyAliases[nt];return it&&it.indexOf(",")<0&&(nt=it),nt in _transformProps&&nt!==_transformOriginProp&&(et._gsap.x||_get(et,"x"))?rt&&_recentSetterPlugin===rt?nt==="scale"?_setterScale:_setterTransform:(_recentSetterPlugin=rt||{})&&(nt==="scale"?_setterScaleWithRender:_setterTransformWithRender):et.style&&!_isUndefined(et.style[nt])?_setterCSSStyle:~nt.indexOf("-")?_setterCSSProp:_getSetter(et,nt)},core:{_removeProperty,_getMatrix}};gsap.utils.checkPrefix=_checkPropPrefix;gsap.core.getStyleSaver=_getStyleSaver;(function(tt,et,nt,rt){var it=_forEachName(tt+","+et+","+nt,function(ot){_transformProps[ot]=1});_forEachName(et,function(ot){_config.units[ot]="deg",_rotationalProperties[ot]=1}),_propertyAliases[it[13]]=tt+","+et,_forEachName(rt,function(ot){var at=ot.split(":");_propertyAliases[at[1]]=it[at[0]]})})("x,y,z,scale,scaleX,scaleY,xPercent,yPercent","rotation,rotationX,rotationY,skewX,skewY","transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective","0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY");_forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(tt){_config.units[tt]="px"});gsap.registerPlugin(CSSPlugin);var gsapWithCSS=gsap.registerPlugin(CSSPlugin)||gsap;gsapWithCSS.core.Tween;const createRoundedBoxGeometry=(tt,et,nt,rt,it)=>{const ot=new Shape,at=1e-5;ot.absarc(at,at,at,-Math.PI/2,-Math.PI,!0),ot.absarc(at,et-rt*2,at,Math.PI,Math.PI/2,!0),ot.absarc(tt-rt*2,et-rt*2,at,Math.PI/2,0,!0),ot.absarc(tt-rt*2,at,at,0,-Math.PI/2,!0);const st=new ExtrudeGeometry(ot,{depth:nt-rt*2,bevelEnabled:!0,bevelSegments:it,steps:2,bevelSize:rt,bevelThickness:rt,curveSegments:it});st.center();const lt=[],ct=st.getAttribute("normal"),ut=st.getAttribute("position");for(let ht=0;ht.9?(mt=pt.x/tt+.5,gt=1-(pt.z/nt+.5)):Math.abs(dt.x)>.9?(mt=-pt.z/nt+.5,gt=1-(-pt.y/et+.5)):Math.abs(dt.z)>.9&&(mt=pt.x/tt+.5,gt=1-(-pt.y/et+.5)),lt.push(mt,gt)}return st.setAttribute("uv",new Float32BufferAttribute(lt,2)),st};createRoundedBoxGeometry(10,10,10,2,10);const boxGeometry=new BoxGeometry(10,10,10),isMainTopic=tt=>tt.node_type==="topic"&&(tt.scale||1)>5,meshRenderLimit=500,meshRenderRadius=800;let nearbyNodeTimeout=null;const nearbyNodeTimeoutCycle=500,getNearbyNodeIds=(tt,et)=>{if(nearbyNodeTimeout)return null;nearbyNodeTimeout=setTimeout(()=>{nearbyNodeTimeout&&(clearTimeout(nearbyNodeTimeout),nearbyNodeTimeout=null)},nearbyNodeTimeoutCycle);const nt=[];return tt.forEach(it=>{const ot=et.position.distanceTo(variableVector3$1.set(it.x,it.y,it.z));otit.distance-ot.distance).slice(0,meshRenderLimit).map(it=>it.id)},initialCameraPosition=new Vector3(5e3,600,1600),arriveDistance=300,topicArriveDistance=600,selectionGraphDistance=2e3,selectionGraphCameraPosition={x:172.7392402058252,y:-239.04675366094037,z:-2e3},version$1="14.8.49",createExtendedExponentialRampToValueAutomationEvent=(tt,et,nt)=>({endTime:et,insertTime:nt,type:"exponentialRampToValue",value:tt}),createExtendedLinearRampToValueAutomationEvent=(tt,et,nt)=>({endTime:et,insertTime:nt,type:"linearRampToValue",value:tt}),createSetValueAutomationEvent=(tt,et)=>({startTime:et,type:"setValue",value:tt}),createSetValueCurveAutomationEvent=(tt,et,nt)=>({duration:nt,startTime:et,type:"setValueCurve",values:tt}),getTargetValueAtTime=(tt,et,{startTime:nt,target:rt,timeConstant:it})=>rt+(et-rt)*Math.exp((nt-tt)/it),isExponentialRampToValueAutomationEvent=tt=>tt.type==="exponentialRampToValue",isLinearRampToValueAutomationEvent=tt=>tt.type==="linearRampToValue",isAnyRampToValueAutomationEvent=tt=>isExponentialRampToValueAutomationEvent(tt)||isLinearRampToValueAutomationEvent(tt),isSetValueAutomationEvent=tt=>tt.type==="setValue",isSetValueCurveAutomationEvent=tt=>tt.type==="setValueCurve",getValueOfAutomationEventAtIndexAtTime=(tt,et,nt,rt)=>{const it=tt[et];return it===void 0?rt:isAnyRampToValueAutomationEvent(it)||isSetValueAutomationEvent(it)?it.value:isSetValueCurveAutomationEvent(it)?it.values[it.values.length-1]:getTargetValueAtTime(nt,getValueOfAutomationEventAtIndexAtTime(tt,et-1,it.startTime,rt),it)},getEndTimeAndValueOfPreviousAutomationEvent=(tt,et,nt,rt,it)=>nt===void 0?[rt.insertTime,it]:isAnyRampToValueAutomationEvent(nt)?[nt.endTime,nt.value]:isSetValueAutomationEvent(nt)?[nt.startTime,nt.value]:isSetValueCurveAutomationEvent(nt)?[nt.startTime+nt.duration,nt.values[nt.values.length-1]]:[nt.startTime,getValueOfAutomationEventAtIndexAtTime(tt,et-1,nt.startTime,it)],isCancelAndHoldAutomationEvent=tt=>tt.type==="cancelAndHold",isCancelScheduledValuesAutomationEvent=tt=>tt.type==="cancelScheduledValues",getEventTime=tt=>isCancelAndHoldAutomationEvent(tt)||isCancelScheduledValuesAutomationEvent(tt)?tt.cancelTime:isExponentialRampToValueAutomationEvent(tt)||isLinearRampToValueAutomationEvent(tt)?tt.endTime:tt.startTime,getExponentialRampValueAtTime=(tt,et,nt,{endTime:rt,value:it})=>nt===it?it:0nt+(tt-et)/(rt-et)*(it-nt),interpolateValue=(tt,et)=>{const nt=Math.floor(et),rt=Math.ceil(et);return nt===rt?tt[nt]:(1-(et-nt))*tt[nt]+(1-(rt-et))*tt[rt]},getValueCurveValueAtTime=(tt,{duration:et,startTime:nt,values:rt})=>{const it=(tt-nt)/et*(rt.length-1);return interpolateValue(rt,it)},isSetTargetAutomationEvent=tt=>tt.type==="setTarget";class AutomationEventList{constructor(et){this._automationEvents=[],this._currenTime=0,this._defaultValue=et}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(et){const nt=getEventTime(et);if(isCancelAndHoldAutomationEvent(et)||isCancelScheduledValuesAutomationEvent(et)){const rt=this._automationEvents.findIndex(ot=>isCancelScheduledValuesAutomationEvent(et)&&isSetValueCurveAutomationEvent(ot)?ot.startTime+ot.duration>=nt:getEventTime(ot)>=nt),it=this._automationEvents[rt];if(rt!==-1&&(this._automationEvents=this._automationEvents.slice(0,rt)),isCancelAndHoldAutomationEvent(et)){const ot=this._automationEvents[this._automationEvents.length-1];if(it!==void 0&&isAnyRampToValueAutomationEvent(it)){if(ot!==void 0&&isSetTargetAutomationEvent(ot))throw new Error("The internal list is malformed.");const at=ot===void 0?it.insertTime:isSetValueCurveAutomationEvent(ot)?ot.startTime+ot.duration:getEventTime(ot),st=ot===void 0?this._defaultValue:isSetValueCurveAutomationEvent(ot)?ot.values[ot.values.length-1]:ot.value,lt=isExponentialRampToValueAutomationEvent(it)?getExponentialRampValueAtTime(nt,at,st,it):getLinearRampValueAtTime(nt,at,st,it),ct=isExponentialRampToValueAutomationEvent(it)?createExtendedExponentialRampToValueAutomationEvent(lt,nt,this._currenTime):createExtendedLinearRampToValueAutomationEvent(lt,nt,this._currenTime);this._automationEvents.push(ct)}if(ot!==void 0&&isSetTargetAutomationEvent(ot)&&this._automationEvents.push(createSetValueAutomationEvent(this.getValue(nt),nt)),ot!==void 0&&isSetValueCurveAutomationEvent(ot)&&ot.startTime+ot.duration>nt){const at=nt-ot.startTime,st=(ot.values.length-1)/ot.duration,lt=Math.max(2,1+Math.ceil(at*st)),ct=at/(lt-1)*st,ut=ot.values.slice(0,lt);if(ct<1)for(let ht=1;htgetEventTime(at)>nt),it=rt===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[rt-1];if(it!==void 0&&isSetValueCurveAutomationEvent(it)&&getEventTime(it)+it.duration>nt)return!1;const ot=isExponentialRampToValueAutomationEvent(et)?createExtendedExponentialRampToValueAutomationEvent(et.value,et.endTime,this._currenTime):isLinearRampToValueAutomationEvent(et)?createExtendedLinearRampToValueAutomationEvent(et.value,nt,this._currenTime):et;if(rt===-1)this._automationEvents.push(ot);else{if(isSetValueCurveAutomationEvent(et)&&nt+et.duration>getEventTime(this._automationEvents[rt]))return!1;this._automationEvents.splice(rt,0,ot)}}return!0}flush(et){const nt=this._automationEvents.findIndex(rt=>getEventTime(rt)>et);if(nt>1){const rt=this._automationEvents.slice(nt-1),it=rt[0];isSetTargetAutomationEvent(it)&&rt.unshift(createSetValueAutomationEvent(getValueOfAutomationEventAtIndexAtTime(this._automationEvents,nt-2,it.startTime,this._defaultValue),it.startTime)),this._automationEvents=rt}}getValue(et){if(this._automationEvents.length===0)return this._defaultValue;const nt=this._automationEvents.findIndex(at=>getEventTime(at)>et),rt=this._automationEvents[nt],it=(nt===-1?this._automationEvents.length:nt)-1,ot=this._automationEvents[it];if(ot!==void 0&&isSetTargetAutomationEvent(ot)&&(rt===void 0||!isAnyRampToValueAutomationEvent(rt)||rt.insertTime>et))return getTargetValueAtTime(et,getValueOfAutomationEventAtIndexAtTime(this._automationEvents,it-1,ot.startTime,this._defaultValue),ot);if(ot!==void 0&&isSetValueAutomationEvent(ot)&&(rt===void 0||!isAnyRampToValueAutomationEvent(rt)))return ot.value;if(ot!==void 0&&isSetValueCurveAutomationEvent(ot)&&(rt===void 0||!isAnyRampToValueAutomationEvent(rt)||ot.startTime+ot.duration>et))return et({cancelTime:tt,type:"cancelAndHold"}),createCancelScheduledValuesAutomationEvent=tt=>({cancelTime:tt,type:"cancelScheduledValues"}),createExponentialRampToValueAutomationEvent=(tt,et)=>({endTime:et,type:"exponentialRampToValue",value:tt}),createLinearRampToValueAutomationEvent=(tt,et)=>({endTime:et,type:"linearRampToValue",value:tt}),createSetTargetAutomationEvent=(tt,et,nt)=>({startTime:et,target:tt,timeConstant:nt,type:"setTarget"}),createAbortError=()=>new DOMException("","AbortError"),createAddActiveInputConnectionToAudioNode=tt=>(et,nt,[rt,it,ot],at)=>{tt(et[it],[nt,rt,ot],st=>st[0]===nt&&st[1]===rt,at)},createAddAudioNodeConnections=tt=>(et,nt,rt)=>{const it=[];for(let ot=0;ot(et,nt)=>{tt.set(et,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:nt})},ACTIVE_AUDIO_NODE_STORE=new WeakSet,AUDIO_NODE_CONNECTIONS_STORE=new WeakMap,AUDIO_NODE_STORE=new WeakMap,AUDIO_PARAM_CONNECTIONS_STORE=new WeakMap,AUDIO_PARAM_STORE=new WeakMap,CONTEXT_STORE=new WeakMap,EVENT_LISTENERS=new WeakMap,CYCLE_COUNTERS=new WeakMap,NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS=new WeakMap,NODE_TO_PROCESSOR_MAPS=new WeakMap,handler={construct(){return handler}},isConstructible=tt=>{try{const et=new Proxy(tt,handler);new et}catch{return!1}return!0},IMPORT_STATEMENT_REGEX=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,splitImportStatements=(tt,et)=>{const nt=[];let rt=tt.replace(/^[\s]+/,""),it=rt.match(IMPORT_STATEMENT_REGEX);for(;it!==null;){const ot=it[1].slice(1,-1),at=it[0].replace(/([\s]+)?;?$/,"").replace(ot,new URL(ot,et).toString());nt.push(at),rt=rt.slice(it[0].length).replace(/^[\s]+/,""),it=rt.match(IMPORT_STATEMENT_REGEX)}return[nt.join(";"),rt]},verifyParameterDescriptors=tt=>{if(tt!==void 0&&!Array.isArray(tt))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},verifyProcessorCtor=tt=>{if(!isConstructible(tt))throw new TypeError("The given value for processorCtor should be a constructor.");if(tt.prototype===null||typeof tt.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},createAddAudioWorkletModule=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt)=>{let pt=0;return(mt,gt,yt={credentials:"omit"})=>{const bt=ut.get(mt);if(bt!==void 0&&bt.has(gt))return Promise.resolve();const wt=ct.get(mt);if(wt!==void 0){const St=wt.get(gt);if(St!==void 0)return St}const vt=ot(mt),kt=vt.audioWorklet===void 0?it(gt).then(([St,Tt])=>{const[At,Et]=splitImportStatements(St,Tt),Mt=`${At};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${Et} -})})(window,'_AWGS')`;return nt(Mt)}).then(()=>{const St=dt._AWGS.pop();if(St===void 0)throw new SyntaxError;rt(vt.currentTime,vt.sampleRate,()=>St(class{},void 0,(Tt,At)=>{if(Tt.trim()==="")throw et();const Et=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(vt);if(Et!==void 0){if(Et.has(Tt))throw et();verifyProcessorCtor(At),verifyParameterDescriptors(At.parameterDescriptors),Et.set(Tt,At)}else verifyProcessorCtor(At),verifyParameterDescriptors(At.parameterDescriptors),NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.set(vt,new Map([[Tt,At]]))},vt.sampleRate,void 0,void 0))}):Promise.all([it(gt),Promise.resolve(tt(ht,ht))]).then(([[St,Tt],At])=>{const Et=pt+1;pt=Et;const[Mt,Lt]=splitImportStatements(St,Tt),xt=`${Mt};((AudioWorkletProcessor,registerProcessor)=>{${Lt} -})(${At?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${At?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${At?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${Et}',class extends AudioWorkletProcessor{process(){return !1}})`,It=new Blob([xt],{type:"application/javascript; charset=utf-8"}),Ot=URL.createObjectURL(It);return vt.audioWorklet.addModule(Ot,yt).then(()=>{if(st(vt))return vt;const zt=at(vt);return zt.audioWorklet.addModule(Ot,yt).then(()=>zt)}).then(zt=>{if(lt===null)throw new SyntaxError;try{new lt(zt,`__sac${Et}`)}catch{throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(Ot))});return wt===void 0?ct.set(mt,new Map([[gt,kt]])):wt.set(gt,kt),kt.then(()=>{const St=ut.get(mt);St===void 0?ut.set(mt,new Set([gt])):St.add(gt)}).finally(()=>{const St=ct.get(mt);St!==void 0&&St.delete(gt)}),kt}},getValueForKey=(tt,et)=>{const nt=tt.get(et);if(nt===void 0)throw new Error("A value with the given key could not be found.");return nt},pickElementFromSet=(tt,et)=>{const nt=Array.from(tt).filter(et);if(nt.length>1)throw Error("More than one element was found.");if(nt.length===0)throw Error("No element was found.");const[rt]=nt;return tt.delete(rt),rt},deletePassiveInputConnectionToAudioNode=(tt,et,nt,rt)=>{const it=getValueForKey(tt,et),ot=pickElementFromSet(it,at=>at[0]===nt&&at[1]===rt);return it.size===0&&tt.delete(et),ot},getEventListenersOfAudioNode=tt=>getValueForKey(EVENT_LISTENERS,tt),setInternalStateToActive=tt=>{if(ACTIVE_AUDIO_NODE_STORE.has(tt))throw new Error("The AudioNode is already stored.");ACTIVE_AUDIO_NODE_STORE.add(tt),getEventListenersOfAudioNode(tt).forEach(et=>et(!0))},isAudioWorkletNode=tt=>"port"in tt,setInternalStateToPassive=tt=>{if(!ACTIVE_AUDIO_NODE_STORE.has(tt))throw new Error("The AudioNode is not stored.");ACTIVE_AUDIO_NODE_STORE.delete(tt),getEventListenersOfAudioNode(tt).forEach(et=>et(!1))},setInternalStateToPassiveWhenNecessary=(tt,et)=>{!isAudioWorkletNode(tt)&&et.every(nt=>nt.size===0)&&setInternalStateToPassive(tt)},createAddConnectionToAudioNode=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt)=>{const pt=new WeakMap;return(mt,gt,yt,bt,wt)=>{const{activeInputs:vt,passiveInputs:kt}=ot(gt),{outputs:St}=ot(mt),Tt=st(mt),At=Et=>{const Mt=lt(gt),Lt=lt(mt);if(Et){const jt=deletePassiveInputConnectionToAudioNode(kt,mt,yt,bt);tt(vt,mt,jt,!1),!wt&&!ht(mt)&&nt(Lt,Mt,yt,bt),dt(gt)&&setInternalStateToActive(gt)}else{const jt=rt(vt,mt,yt,bt);et(kt,bt,jt,!1),!wt&&!ht(mt)&&it(Lt,Mt,yt,bt);const Rt=at(gt);if(Rt===0)ut(gt)&&setInternalStateToPassiveWhenNecessary(gt,vt);else{const $t=pt.get(gt);$t!==void 0&&clearTimeout($t),pt.set(gt,setTimeout(()=>{ut(gt)&&setInternalStateToPassiveWhenNecessary(gt,vt)},Rt*1e3))}}};return ct(St,[gt,yt,bt],Et=>Et[0]===gt&&Et[1]===yt&&Et[2]===bt,!0)?(Tt.add(At),ut(mt)?tt(vt,mt,[yt,bt,At],!0):et(kt,bt,[mt,yt,At],!0),!0):!1}},createAddPassiveInputConnectionToAudioNode=tt=>(et,nt,[rt,it,ot],at)=>{const st=et.get(rt);st===void 0?et.set(rt,new Set([[it,nt,ot]])):tt(st,[it,nt,ot],lt=>lt[0]===it&<[1]===nt,at)},createAddSilentConnection=tt=>(et,nt)=>{const rt=tt(et,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});nt.connect(rt).connect(et.destination);const it=()=>{nt.removeEventListener("ended",it),nt.disconnect(rt),rt.disconnect()};nt.addEventListener("ended",it)},createAddUnrenderedAudioWorkletNode=tt=>(et,nt)=>{tt(et).add(nt)},DEFAULT_OPTIONS$j={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},createAnalyserNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=it(st),ut={...DEFAULT_OPTIONS$j,...lt},ht=rt(ct,ut),dt=ot(ct)?et():null;super(st,!1,ht,dt),this._nativeAnalyserNode=ht}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(st){this._nativeAnalyserNode.fftSize=st}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(st){const lt=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=st,!(st>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=lt,nt()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(st){const lt=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=st,!(this._nativeAnalyserNode.maxDecibels>st))throw this._nativeAnalyserNode.minDecibels=lt,nt()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(st){this._nativeAnalyserNode.smoothingTimeConstant=st}getByteFrequencyData(st){this._nativeAnalyserNode.getByteFrequencyData(st)}getByteTimeDomainData(st){this._nativeAnalyserNode.getByteTimeDomainData(st)}getFloatFrequencyData(st){this._nativeAnalyserNode.getFloatFrequencyData(st)}getFloatTimeDomainData(st){this._nativeAnalyserNode.getFloatTimeDomainData(st)}},isOwnedByContext=(tt,et)=>tt.context===et,createAnalyserNodeRendererFactory=(tt,et,nt)=>()=>{const rt=new WeakMap,it=async(ot,at)=>{let st=et(ot);if(!isOwnedByContext(st,at)){const ct={channelCount:st.channelCount,channelCountMode:st.channelCountMode,channelInterpretation:st.channelInterpretation,fftSize:st.fftSize,maxDecibels:st.maxDecibels,minDecibels:st.minDecibels,smoothingTimeConstant:st.smoothingTimeConstant};st=tt(at,ct)}return rt.set(at,st),await nt(ot,at,st),st};return{render(ot,at){const st=rt.get(at);return st!==void 0?Promise.resolve(st):it(ot,at)}}},testAudioBufferCopyChannelMethodsOutOfBoundsSupport=tt=>{try{tt.copyToChannel(new Float32Array(1),0,-1)}catch{return!1}return!0},createIndexSizeError=()=>new DOMException("","IndexSizeError"),wrapAudioBufferGetChannelDataMethod=tt=>{tt.getChannelData=(et=>nt=>{try{return et.call(tt,nt)}catch(rt){throw rt.code===12?createIndexSizeError():rt}})(tt.getChannelData)},DEFAULT_OPTIONS$i={numberOfChannels:1},createAudioBufferConstructor=(tt,et,nt,rt,it,ot,at,st)=>{let lt=null;return class bw{constructor(ut){if(it===null)throw new Error("Missing the native OfflineAudioContext constructor.");const{length:ht,numberOfChannels:dt,sampleRate:pt}={...DEFAULT_OPTIONS$i,...ut};lt===null&&(lt=new it(1,1,44100));const mt=rt!==null&&et(ot,ot)?new rt({length:ht,numberOfChannels:dt,sampleRate:pt}):lt.createBuffer(dt,ht,pt);if(mt.numberOfChannels===0)throw nt();return typeof mt.copyFromChannel!="function"?(at(mt),wrapAudioBufferGetChannelDataMethod(mt)):et(testAudioBufferCopyChannelMethodsOutOfBoundsSupport,()=>testAudioBufferCopyChannelMethodsOutOfBoundsSupport(mt))||st(mt),tt.add(mt),mt}static[Symbol.hasInstance](ut){return ut!==null&&typeof ut=="object"&&Object.getPrototypeOf(ut)===bw.prototype||tt.has(ut)}}},MOST_NEGATIVE_SINGLE_FLOAT=-34028234663852886e22,MOST_POSITIVE_SINGLE_FLOAT=-MOST_NEGATIVE_SINGLE_FLOAT,isActiveAudioNode=tt=>ACTIVE_AUDIO_NODE_STORE.has(tt),DEFAULT_OPTIONS$h={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},createAudioBufferSourceNodeConstructor=(tt,et,nt,rt,it,ot,at,st)=>class extends tt{constructor(ct,ut){const ht=ot(ct),dt={...DEFAULT_OPTIONS$h,...ut},pt=it(ht,dt),mt=at(ht),gt=mt?et():null;super(ct,!1,pt,gt),this._audioBufferSourceNodeRenderer=gt,this._isBufferNullified=!1,this._isBufferSet=dt.buffer!==null,this._nativeAudioBufferSourceNode=pt,this._onended=null,this._playbackRate=nt(this,mt,pt.playbackRate,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer(ct){if(this._nativeAudioBufferSourceNode.buffer=ct,ct!==null){if(this._isBufferSet)throw rt();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop(ct){this._nativeAudioBufferSourceNode.loop=ct}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd(ct){this._nativeAudioBufferSourceNode.loopEnd=ct}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart(ct){this._nativeAudioBufferSourceNode.loopStart=ct}get onended(){return this._onended}set onended(ct){const ut=typeof ct=="function"?st(this,ct):null;this._nativeAudioBufferSourceNode.onended=ut;const ht=this._nativeAudioBufferSourceNode.onended;this._onended=ht!==null&&ht===ut?ct:ht}get playbackRate(){return this._playbackRate}start(ct=0,ut=0,ht){if(this._nativeAudioBufferSourceNode.start(ct,ut,ht),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=ht===void 0?[ct,ut]:[ct,ut,ht]),this.context.state!=="closed"){setInternalStateToActive(this);const dt=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",dt),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",dt)}}stop(ct=0){this._nativeAudioBufferSourceNode.stop(ct),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=ct)}},createAudioBufferSourceNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap;let at=null,st=null;const lt=async(ct,ut)=>{let ht=nt(ct);const dt=isOwnedByContext(ht,ut);if(!dt){const pt={buffer:ht.buffer,channelCount:ht.channelCount,channelCountMode:ht.channelCountMode,channelInterpretation:ht.channelInterpretation,loop:ht.loop,loopEnd:ht.loopEnd,loopStart:ht.loopStart,playbackRate:ht.playbackRate.value};ht=et(ut,pt),at!==null&&ht.start(...at),st!==null&&ht.stop(st)}return ot.set(ut,ht),dt?await tt(ut,ct.playbackRate,ht.playbackRate):await rt(ut,ct.playbackRate,ht.playbackRate),await it(ct,ut,ht),ht};return{set start(ct){at=ct},set stop(ct){st=ct},render(ct,ut){const ht=ot.get(ut);return ht!==void 0?Promise.resolve(ht):lt(ct,ut)}}},isAudioBufferSourceNode=tt=>"playbackRate"in tt,isBiquadFilterNode=tt=>"frequency"in tt&&"gain"in tt,isConstantSourceNode=tt=>"offset"in tt,isGainNode=tt=>!("frequency"in tt)&&"gain"in tt,isOscillatorNode=tt=>"detune"in tt&&"frequency"in tt,isStereoPannerNode=tt=>"pan"in tt,getAudioNodeConnections=tt=>getValueForKey(AUDIO_NODE_CONNECTIONS_STORE,tt),getAudioParamConnections=tt=>getValueForKey(AUDIO_PARAM_CONNECTIONS_STORE,tt),deactivateActiveAudioNodeInputConnections=(tt,et)=>{const{activeInputs:nt}=getAudioNodeConnections(tt);nt.forEach(it=>it.forEach(([ot])=>{et.includes(tt)||deactivateActiveAudioNodeInputConnections(ot,[...et,tt])}));const rt=isAudioBufferSourceNode(tt)?[tt.playbackRate]:isAudioWorkletNode(tt)?Array.from(tt.parameters.values()):isBiquadFilterNode(tt)?[tt.Q,tt.detune,tt.frequency,tt.gain]:isConstantSourceNode(tt)?[tt.offset]:isGainNode(tt)?[tt.gain]:isOscillatorNode(tt)?[tt.detune,tt.frequency]:isStereoPannerNode(tt)?[tt.pan]:[];for(const it of rt){const ot=getAudioParamConnections(it);ot!==void 0&&ot.activeInputs.forEach(([at])=>deactivateActiveAudioNodeInputConnections(at,et))}isActiveAudioNode(tt)&&setInternalStateToPassive(tt)},deactivateAudioGraph=tt=>{deactivateActiveAudioNodeInputConnections(tt.destination,[])},isValidLatencyHint=tt=>tt===void 0||typeof tt=="number"||typeof tt=="string"&&(tt==="balanced"||tt==="interactive"||tt==="playback"),createAudioContextConstructor=(tt,et,nt,rt,it,ot,at,st,lt)=>class extends tt{constructor(ut={}){if(lt===null)throw new Error("Missing the native AudioContext constructor.");let ht;try{ht=new lt(ut)}catch(mt){throw mt.code===12&&mt.message==="sampleRate is not in range"?nt():mt}if(ht===null)throw rt();if(!isValidLatencyHint(ut.latencyHint))throw new TypeError(`The provided value '${ut.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(ut.sampleRate!==void 0&&ht.sampleRate!==ut.sampleRate)throw nt();super(ht,2);const{latencyHint:dt}=ut,{sampleRate:pt}=ht;if(this._baseLatency=typeof ht.baseLatency=="number"?ht.baseLatency:dt==="balanced"?512/pt:dt==="interactive"||dt===void 0?256/pt:dt==="playback"?1024/pt:Math.max(2,Math.min(128,Math.round(dt*pt/128)))*128/pt,this._nativeAudioContext=ht,lt.name==="webkitAudioContext"?(this._nativeGainNode=ht.createGain(),this._nativeOscillatorNode=ht.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(ht.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,ht.state==="running"){this._state="suspended";const mt=()=>{this._state==="suspended"&&(this._state=null),ht.removeEventListener("statechange",mt)};ht.addEventListener("statechange",mt)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw et()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),deactivateAudioGraph(this)}))}createMediaElementSource(ut){return new it(this,{mediaElement:ut})}createMediaStreamDestination(){return new ot(this)}createMediaStreamSource(ut){return new at(this,{mediaStream:ut})}createMediaStreamTrackSource(ut){return new st(this,{mediaStreamTrack:ut})}resume(){return this._state==="suspended"?new Promise((ut,ht)=>{const dt=()=>{this._nativeAudioContext.removeEventListener("statechange",dt),this._nativeAudioContext.state==="running"?ut():this.resume().then(ut,ht)};this._nativeAudioContext.addEventListener("statechange",dt)}):this._nativeAudioContext.resume().catch(ut=>{throw ut===void 0||ut.code===15?et():ut})}suspend(){return this._nativeAudioContext.suspend().catch(ut=>{throw ut===void 0?et():ut})}},createAudioDestinationNodeConstructor=(tt,et,nt,rt,it,ot,at,st)=>class extends tt{constructor(ct,ut){const ht=ot(ct),dt=at(ht),pt=it(ht,ut,dt),mt=dt?et(st):null;super(ct,!1,pt,mt),this._isNodeOfNativeOfflineAudioContext=dt,this._nativeAudioDestinationNode=pt}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(ct){if(this._isNodeOfNativeOfflineAudioContext)throw rt();if(ct>this._nativeAudioDestinationNode.maxChannelCount)throw nt();this._nativeAudioDestinationNode.channelCount=ct}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(ct){if(this._isNodeOfNativeOfflineAudioContext)throw rt();this._nativeAudioDestinationNode.channelCountMode=ct}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}},createAudioDestinationNodeRenderer=tt=>{const et=new WeakMap,nt=async(rt,it)=>{const ot=it.destination;return et.set(it,ot),await tt(rt,it,ot),ot};return{render(rt,it){const ot=et.get(it);return ot!==void 0?Promise.resolve(ot):nt(rt,it)}}},createAudioListenerFactory=(tt,et,nt,rt,it,ot,at,st)=>(lt,ct)=>{const ut=ct.listener,ht=()=>{const St=new Float32Array(1),Tt=et(ct,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),At=at(ct);let Et=!1,Mt=[0,0,-1,0,1,0],Lt=[0,0,0];const jt=()=>{if(Et)return;Et=!0;const It=rt(ct,256,9,0);It.onaudioprocess=({inputBuffer:Ot})=>{const zt=[ot(Ot,St,0),ot(Ot,St,1),ot(Ot,St,2),ot(Ot,St,3),ot(Ot,St,4),ot(Ot,St,5)];zt.some((Wt,Ft)=>Wt!==Mt[Ft])&&(ut.setOrientation(...zt),Mt=zt);const Ut=[ot(Ot,St,6),ot(Ot,St,7),ot(Ot,St,8)];Ut.some((Wt,Ft)=>Wt!==Lt[Ft])&&(ut.setPosition(...Ut),Lt=Ut)},Tt.connect(It)},Rt=It=>Ot=>{Ot!==Mt[It]&&(Mt[It]=Ot,ut.setOrientation(...Mt))},$t=It=>Ot=>{Ot!==Lt[It]&&(Lt[It]=Ot,ut.setPosition(...Lt))},xt=(It,Ot,zt)=>{const Ut=nt(ct,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:Ot});Ut.connect(Tt,0,It),Ut.start(),Object.defineProperty(Ut.offset,"defaultValue",{get(){return Ot}});const Wt=tt({context:lt},At,Ut.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT);return st(Wt,"value",Ft=>()=>Ft.call(Wt),Ft=>Nt=>{try{Ft.call(Wt,Nt)}catch(Ct){if(Ct.code!==9)throw Ct}jt(),At&&zt(Nt)}),Wt.cancelAndHoldAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.cancelAndHoldAtTime),Wt.cancelScheduledValues=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.cancelScheduledValues),Wt.exponentialRampToValueAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.exponentialRampToValueAtTime),Wt.linearRampToValueAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.linearRampToValueAtTime),Wt.setTargetAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.setTargetAtTime),Wt.setValueAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.setValueAtTime),Wt.setValueCurveAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.setValueCurveAtTime),Wt};return{forwardX:xt(0,0,Rt(0)),forwardY:xt(1,0,Rt(1)),forwardZ:xt(2,-1,Rt(2)),positionX:xt(6,0,$t(0)),positionY:xt(7,0,$t(1)),positionZ:xt(8,0,$t(2)),upX:xt(3,0,Rt(3)),upY:xt(4,1,Rt(4)),upZ:xt(5,0,Rt(5))}},{forwardX:dt,forwardY:pt,forwardZ:mt,positionX:gt,positionY:yt,positionZ:bt,upX:wt,upY:vt,upZ:kt}=ut.forwardX===void 0?ht():ut;return{get forwardX(){return dt},get forwardY(){return pt},get forwardZ(){return mt},get positionX(){return gt},get positionY(){return yt},get positionZ(){return bt},get upX(){return wt},get upY(){return vt},get upZ(){return kt}}},isAudioNode$1=tt=>"context"in tt,isAudioNodeOutputConnection=tt=>isAudioNode$1(tt[0]),insertElementInSet=(tt,et,nt,rt)=>{for(const it of tt)if(nt(it)){if(rt)return!1;throw Error("The set contains at least one similar element.")}return tt.add(et),!0},addActiveInputConnectionToAudioParam=(tt,et,[nt,rt],it)=>{insertElementInSet(tt,[et,nt,rt],ot=>ot[0]===et&&ot[1]===nt,it)},addPassiveInputConnectionToAudioParam=(tt,[et,nt,rt],it)=>{const ot=tt.get(et);ot===void 0?tt.set(et,new Set([[nt,rt]])):insertElementInSet(ot,[nt,rt],at=>at[0]===nt,it)},isNativeAudioNodeFaker=tt=>"inputs"in tt,connectNativeAudioNodeToNativeAudioNode=(tt,et,nt,rt)=>{if(isNativeAudioNodeFaker(et)){const it=et.inputs[rt];return tt.connect(it,nt,0),[it,nt,0]}return tt.connect(et,nt,rt),[et,nt,rt]},deleteActiveInputConnection=(tt,et,nt)=>{for(const rt of tt)if(rt[0]===et&&rt[1]===nt)return tt.delete(rt),rt;return null},deleteActiveInputConnectionToAudioParam=(tt,et,nt)=>pickElementFromSet(tt,rt=>rt[0]===et&&rt[1]===nt),deleteEventListenerOfAudioNode=(tt,et)=>{if(!getEventListenersOfAudioNode(tt).delete(et))throw new Error("Missing the expected event listener.")},deletePassiveInputConnectionToAudioParam=(tt,et,nt)=>{const rt=getValueForKey(tt,et),it=pickElementFromSet(rt,ot=>ot[0]===nt);return rt.size===0&&tt.delete(et),it},disconnectNativeAudioNodeFromNativeAudioNode=(tt,et,nt,rt)=>{isNativeAudioNodeFaker(et)?tt.disconnect(et.inputs[rt],nt,0):tt.disconnect(et,nt,rt)},getNativeAudioNode=tt=>getValueForKey(AUDIO_NODE_STORE,tt),getNativeAudioParam=tt=>getValueForKey(AUDIO_PARAM_STORE,tt),isPartOfACycle=tt=>CYCLE_COUNTERS.has(tt),isPassiveAudioNode=tt=>!ACTIVE_AUDIO_NODE_STORE.has(tt),testAudioNodeDisconnectMethodSupport=(tt,et)=>new Promise(nt=>{if(et!==null)nt(!0);else{const rt=tt.createScriptProcessor(256,1,1),it=tt.createGain(),ot=tt.createBuffer(1,2,44100),at=ot.getChannelData(0);at[0]=1,at[1]=1;const st=tt.createBufferSource();st.buffer=ot,st.loop=!0,st.connect(rt).connect(tt.destination),st.connect(it),st.disconnect(it),rt.onaudioprocess=lt=>{const ct=lt.inputBuffer.getChannelData(0);Array.prototype.some.call(ct,ut=>ut===1)?nt(!0):nt(!1),st.stop(),rt.onaudioprocess=null,st.disconnect(rt),rt.disconnect(tt.destination)},st.start()}}),visitEachAudioNodeOnce=(tt,et)=>{const nt=new Map;for(const rt of tt)for(const it of rt){const ot=nt.get(it);nt.set(it,ot===void 0?1:ot+1)}nt.forEach((rt,it)=>et(it,rt))},isNativeAudioNode$1=tt=>"context"in tt,wrapAudioNodeDisconnectMethod=tt=>{const et=new Map;tt.connect=(nt=>(rt,it=0,ot=0)=>{const at=isNativeAudioNode$1(rt)?nt(rt,it,ot):nt(rt,it),st=et.get(rt);return st===void 0?et.set(rt,[{input:ot,output:it}]):st.every(lt=>lt.input!==ot||lt.output!==it)&&st.push({input:ot,output:it}),at})(tt.connect.bind(tt)),tt.disconnect=(nt=>(rt,it,ot)=>{if(nt.apply(tt),rt===void 0)et.clear();else if(typeof rt=="number")for(const[at,st]of et){const lt=st.filter(ct=>ct.output!==rt);lt.length===0?et.delete(at):et.set(at,lt)}else if(et.has(rt))if(it===void 0)et.delete(rt);else{const at=et.get(rt);if(at!==void 0){const st=at.filter(lt=>lt.output!==it&&(lt.input!==ot||ot===void 0));st.length===0?et.delete(rt):et.set(rt,st)}}for(const[at,st]of et)st.forEach(lt=>{isNativeAudioNode$1(at)?tt.connect(at,lt.output,lt.input):tt.connect(at,lt.output)})})(tt.disconnect)},addConnectionToAudioParamOfAudioContext=(tt,et,nt,rt)=>{const{activeInputs:it,passiveInputs:ot}=getAudioParamConnections(et),{outputs:at}=getAudioNodeConnections(tt),st=getEventListenersOfAudioNode(tt),lt=ct=>{const ut=getNativeAudioNode(tt),ht=getNativeAudioParam(et);if(ct){const dt=deletePassiveInputConnectionToAudioParam(ot,tt,nt);addActiveInputConnectionToAudioParam(it,tt,dt,!1),!rt&&!isPartOfACycle(tt)&&ut.connect(ht,nt)}else{const dt=deleteActiveInputConnectionToAudioParam(it,tt,nt);addPassiveInputConnectionToAudioParam(ot,dt,!1),!rt&&!isPartOfACycle(tt)&&ut.disconnect(ht,nt)}};return insertElementInSet(at,[et,nt],ct=>ct[0]===et&&ct[1]===nt,!0)?(st.add(lt),isActiveAudioNode(tt)?addActiveInputConnectionToAudioParam(it,tt,[nt,lt],!0):addPassiveInputConnectionToAudioParam(ot,[tt,nt,lt],!0),!0):!1},deleteInputConnectionOfAudioNode=(tt,et,nt,rt)=>{const{activeInputs:it,passiveInputs:ot}=getAudioNodeConnections(et),at=deleteActiveInputConnection(it[rt],tt,nt);return at===null?[deletePassiveInputConnectionToAudioNode(ot,tt,nt,rt)[2],!1]:[at[2],!0]},deleteInputConnectionOfAudioParam=(tt,et,nt)=>{const{activeInputs:rt,passiveInputs:it}=getAudioParamConnections(et),ot=deleteActiveInputConnection(rt,tt,nt);return ot===null?[deletePassiveInputConnectionToAudioParam(it,tt,nt)[1],!1]:[ot[2],!0]},deleteInputsOfAudioNode=(tt,et,nt,rt,it)=>{const[ot,at]=deleteInputConnectionOfAudioNode(tt,nt,rt,it);if(ot!==null&&(deleteEventListenerOfAudioNode(tt,ot),at&&!et&&!isPartOfACycle(tt)&&disconnectNativeAudioNodeFromNativeAudioNode(getNativeAudioNode(tt),getNativeAudioNode(nt),rt,it)),isActiveAudioNode(nt)){const{activeInputs:st}=getAudioNodeConnections(nt);setInternalStateToPassiveWhenNecessary(nt,st)}},deleteInputsOfAudioParam=(tt,et,nt,rt)=>{const[it,ot]=deleteInputConnectionOfAudioParam(tt,nt,rt);it!==null&&(deleteEventListenerOfAudioNode(tt,it),ot&&!et&&!isPartOfACycle(tt)&&getNativeAudioNode(tt).disconnect(getNativeAudioParam(nt),rt))},deleteAnyConnection=(tt,et)=>{const nt=getAudioNodeConnections(tt),rt=[];for(const it of nt.outputs)isAudioNodeOutputConnection(it)?deleteInputsOfAudioNode(tt,et,...it):deleteInputsOfAudioParam(tt,et,...it),rt.push(it[0]);return nt.outputs.clear(),rt},deleteConnectionAtOutput=(tt,et,nt)=>{const rt=getAudioNodeConnections(tt),it=[];for(const ot of rt.outputs)ot[1]===nt&&(isAudioNodeOutputConnection(ot)?deleteInputsOfAudioNode(tt,et,...ot):deleteInputsOfAudioParam(tt,et,...ot),it.push(ot[0]),rt.outputs.delete(ot));return it},deleteConnectionToDestination=(tt,et,nt,rt,it)=>{const ot=getAudioNodeConnections(tt);return Array.from(ot.outputs).filter(at=>at[0]===nt&&(rt===void 0||at[1]===rt)&&(it===void 0||at[2]===it)).map(at=>(isAudioNodeOutputConnection(at)?deleteInputsOfAudioNode(tt,et,...at):deleteInputsOfAudioParam(tt,et,...at),ot.outputs.delete(at),at[0]))},createAudioNodeConstructor=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt,pt,mt,gt)=>class extends ct{constructor(bt,wt,vt,kt){super(vt),this._context=bt,this._nativeAudioNode=vt;const St=ut(bt);ht(St)&&nt(testAudioNodeDisconnectMethodSupport,()=>testAudioNodeDisconnectMethodSupport(St,gt))!==!0&&wrapAudioNodeDisconnectMethod(vt),AUDIO_NODE_STORE.set(this,vt),EVENT_LISTENERS.set(this,new Set),bt.state!=="closed"&&wt&&setInternalStateToActive(this),tt(this,kt,vt)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(bt){this._nativeAudioNode.channelCount=bt}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(bt){this._nativeAudioNode.channelCountMode=bt}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(bt){this._nativeAudioNode.channelInterpretation=bt}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(bt,wt=0,vt=0){if(wt<0||wt>=this._nativeAudioNode.numberOfOutputs)throw it();const kt=ut(this._context),St=mt(kt);if(dt(bt)||pt(bt))throw ot();if(isAudioNode$1(bt)){const Et=getNativeAudioNode(bt);try{const Lt=connectNativeAudioNodeToNativeAudioNode(this._nativeAudioNode,Et,wt,vt),jt=isPassiveAudioNode(this);(St||jt)&&this._nativeAudioNode.disconnect(...Lt),this.context.state!=="closed"&&!jt&&isPassiveAudioNode(bt)&&setInternalStateToActive(bt)}catch(Lt){throw Lt.code===12?ot():Lt}if(et(this,bt,wt,vt,St)){const Lt=lt([this],bt);visitEachAudioNodeOnce(Lt,rt(St))}return bt}const Tt=getNativeAudioParam(bt);if(Tt.name==="playbackRate"&&Tt.maxValue===1024)throw at();try{this._nativeAudioNode.connect(Tt,wt),(St||isPassiveAudioNode(this))&&this._nativeAudioNode.disconnect(Tt,wt)}catch(Et){throw Et.code===12?ot():Et}if(addConnectionToAudioParamOfAudioContext(this,bt,wt,St)){const Et=lt([this],bt);visitEachAudioNodeOnce(Et,rt(St))}}disconnect(bt,wt,vt){let kt;const St=ut(this._context),Tt=mt(St);if(bt===void 0)kt=deleteAnyConnection(this,Tt);else if(typeof bt=="number"){if(bt<0||bt>=this.numberOfOutputs)throw it();kt=deleteConnectionAtOutput(this,Tt,bt)}else{if(wt!==void 0&&(wt<0||wt>=this.numberOfOutputs)||isAudioNode$1(bt)&&vt!==void 0&&(vt<0||vt>=bt.numberOfInputs))throw it();if(kt=deleteConnectionToDestination(this,Tt,bt,wt,vt),kt.length===0)throw ot()}for(const At of kt){const Et=lt([this],At);visitEachAudioNodeOnce(Et,st)}}},createAudioParamFactory=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt)=>(pt,mt,gt,yt=null,bt=null)=>{const wt=gt.value,vt=new AutomationEventList(wt),kt=mt?rt(vt):null,St={get defaultValue(){return wt},get maxValue(){return yt===null?gt.maxValue:yt},get minValue(){return bt===null?gt.minValue:bt},get value(){return gt.value},set value(Tt){gt.value=Tt,St.setValueAtTime(Tt,pt.context.currentTime)},cancelAndHoldAtTime(Tt){if(typeof gt.cancelAndHoldAtTime=="function")kt===null&&vt.flush(pt.context.currentTime),vt.add(it(Tt)),gt.cancelAndHoldAtTime(Tt);else{const At=Array.from(vt).pop();kt===null&&vt.flush(pt.context.currentTime),vt.add(it(Tt));const Et=Array.from(vt).pop();gt.cancelScheduledValues(Tt),At!==Et&&Et!==void 0&&(Et.type==="exponentialRampToValue"?gt.exponentialRampToValueAtTime(Et.value,Et.endTime):Et.type==="linearRampToValue"?gt.linearRampToValueAtTime(Et.value,Et.endTime):Et.type==="setValue"?gt.setValueAtTime(Et.value,Et.startTime):Et.type==="setValueCurve"&>.setValueCurveAtTime(Et.values,Et.startTime,Et.duration))}return St},cancelScheduledValues(Tt){return kt===null&&vt.flush(pt.context.currentTime),vt.add(ot(Tt)),gt.cancelScheduledValues(Tt),St},exponentialRampToValueAtTime(Tt,At){if(Tt===0)throw new RangeError;if(!Number.isFinite(At)||At<0)throw new RangeError;const Et=pt.context.currentTime;return kt===null&&vt.flush(Et),Array.from(vt).length===0&&(vt.add(ct(wt,Et)),gt.setValueAtTime(wt,Et)),vt.add(at(Tt,At)),gt.exponentialRampToValueAtTime(Tt,At),St},linearRampToValueAtTime(Tt,At){const Et=pt.context.currentTime;return kt===null&&vt.flush(Et),Array.from(vt).length===0&&(vt.add(ct(wt,Et)),gt.setValueAtTime(wt,Et)),vt.add(st(Tt,At)),gt.linearRampToValueAtTime(Tt,At),St},setTargetAtTime(Tt,At,Et){return kt===null&&vt.flush(pt.context.currentTime),vt.add(lt(Tt,At,Et)),gt.setTargetAtTime(Tt,At,Et),St},setValueAtTime(Tt,At){return kt===null&&vt.flush(pt.context.currentTime),vt.add(ct(Tt,At)),gt.setValueAtTime(Tt,At),St},setValueCurveAtTime(Tt,At,Et){const Mt=Tt instanceof Float32Array?Tt:new Float32Array(Tt);if(ht!==null&&ht.name==="webkitAudioContext"){const Lt=At+Et,jt=pt.context.sampleRate,Rt=Math.ceil(At*jt),$t=Math.floor(Lt*jt),xt=$t-Rt,It=new Float32Array(xt);for(let zt=0;zt({replay(et){for(const nt of tt)if(nt.type==="exponentialRampToValue"){const{endTime:rt,value:it}=nt;et.exponentialRampToValueAtTime(it,rt)}else if(nt.type==="linearRampToValue"){const{endTime:rt,value:it}=nt;et.linearRampToValueAtTime(it,rt)}else if(nt.type==="setTarget"){const{startTime:rt,target:it,timeConstant:ot}=nt;et.setTargetAtTime(it,rt,ot)}else if(nt.type==="setValue"){const{startTime:rt,value:it}=nt;et.setValueAtTime(it,rt)}else if(nt.type==="setValueCurve"){const{duration:rt,startTime:it,values:ot}=nt;et.setValueCurveAtTime(ot,it,rt)}else throw new Error("Can't apply an unknown automation.")}});class ReadOnlyMap{constructor(et){this._map=new Map(et)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(et,nt=null){return this._map.forEach((rt,it)=>et.call(nt,rt,it,this))}get(et){return this._map.get(et)}has(et){return this._map.has(et)}keys(){return this._map.keys()}values(){return this._map.values()}}const DEFAULT_OPTIONS$g={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},createAudioWorkletNodeConstructor=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt,pt)=>class extends et{constructor(gt,yt,bt){var wt;const vt=st(gt),kt=lt(vt),St=ut({...DEFAULT_OPTIONS$g,...bt});dt(St);const Tt=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(vt),At=Tt==null?void 0:Tt.get(yt),Et=kt||vt.state!=="closed"?vt:(wt=at(vt))!==null&&wt!==void 0?wt:vt,Mt=it(Et,kt?null:gt.baseLatency,ct,yt,At,St),Lt=kt?rt(yt,St,At):null;super(gt,!0,Mt,Lt);const jt=[];Mt.parameters.forEach(($t,xt)=>{const It=nt(this,kt,$t);jt.push([xt,It])}),this._nativeAudioWorkletNode=Mt,this._onprocessorerror=null,this._parameters=new ReadOnlyMap(jt),kt&&tt(vt,this);const{activeInputs:Rt}=ot(this);ht(Mt,Rt)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(gt){const yt=typeof gt=="function"?pt(this,gt):null;this._nativeAudioWorkletNode.onprocessorerror=yt;const bt=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=bt!==null&&bt===yt?gt:bt}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function copyFromChannel(tt,et,nt,rt,it){if(typeof tt.copyFromChannel=="function")et[nt].byteLength===0&&(et[nt]=new Float32Array(128)),tt.copyFromChannel(et[nt],rt,it);else{const ot=tt.getChannelData(rt);if(et[nt].byteLength===0)et[nt]=ot.slice(it,it+128);else{const at=new Float32Array(ot.buffer,it*Float32Array.BYTES_PER_ELEMENT,128);et[nt].set(at)}}}const copyToChannel=(tt,et,nt,rt,it)=>{typeof tt.copyToChannel=="function"?et[nt].byteLength!==0&&tt.copyToChannel(et[nt],rt,it):et[nt].byteLength!==0&&tt.getChannelData(rt).set(et[nt],it)},createNestedArrays=(tt,et)=>{const nt=[];for(let rt=0;rt{const nt=getValueForKey(NODE_TO_PROCESSOR_MAPS,tt),rt=getNativeAudioNode(et);return getValueForKey(nt,rt)},processBuffer=async(tt,et,nt,rt,it,ot,at)=>{const st=et===null?Math.ceil(tt.context.length/128)*128:et.length,lt=rt.channelCount*rt.numberOfInputs,ct=it.reduce((yt,bt)=>yt+bt,0),ut=ct===0?null:nt.createBuffer(ct,st,nt.sampleRate);if(ot===void 0)throw new Error("Missing the processor constructor.");const ht=getAudioNodeConnections(tt),dt=await getAudioWorkletProcessor(nt,tt),pt=createNestedArrays(rt.numberOfInputs,rt.channelCount),mt=createNestedArrays(rt.numberOfOutputs,it),gt=Array.from(tt.parameters.keys()).reduce((yt,bt)=>({...yt,[bt]:new Float32Array(128)}),{});for(let yt=0;yt0&&et!==null)for(let bt=0;bt{copyFromChannel(et,gt,bt,lt+wt,yt)});for(let bt=0;btht.activeInputs[kt].size===0?[]:vt),wt=at(yt/nt.sampleRate,nt.sampleRate,()=>dt.process(bt,mt,gt));if(ut!==null)for(let vt=0,kt=0;vt(yt,bt,wt)=>{const vt=new WeakMap;let kt=null;const St=async(Tt,At)=>{let Et=ut(Tt),Mt=null;const Lt=isOwnedByContext(Et,At),jt=Array.isArray(bt.outputChannelCount)?bt.outputChannelCount:Array.from(bt.outputChannelCount);if(ht===null){const Rt=jt.reduce((Ot,zt)=>Ot+zt,0),$t=it(At,{channelCount:Math.max(1,Rt),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,Rt)}),xt=[];for(let Ot=0;Ot{const Nt=new dt(Wt,Math.ceil(Tt.context.length/128)*128,At.sampleRate),Ct=[],Ht=[];for(let Yt=0;Yt{const fn=ot(Nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:Yt.value});return await pt(Nt,Yt,fn.offset),fn})),nn=rt(Nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,zt+Ut)});for(let Yt=0;Ytmt(Tt,Nt,Yt))),gt(Nt)})(),At,bt,jt,wt,ct)}const Rt=await kt,$t=nt(At,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[xt,It,Ot]=Mt;Rt!==null&&($t.buffer=Rt,$t.start(0)),$t.connect(xt);for(let zt=0,Ut=0;ztclass extends mt{constructor(St,Tt){super(St,Tt),this._nativeContext=St,this._audioWorklet=tt===void 0?void 0:{addModule:(At,Et)=>tt(this,At,Et)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new et(this)}createBiquadFilter(){return new it(this)}createBuffer(St,Tt,At){return new nt({length:Tt,numberOfChannels:St,sampleRate:At})}createBufferSource(){return new rt(this)}createChannelMerger(St=6){return new ot(this,{numberOfInputs:St})}createChannelSplitter(St=6){return new at(this,{numberOfOutputs:St})}createConstantSource(){return new st(this)}createConvolver(){return new lt(this)}createDelay(St=1){return new ut(this,{maxDelayTime:St})}createDynamicsCompressor(){return new ht(this)}createGain(){return new dt(this)}createIIRFilter(St,Tt){return new pt(this,{feedback:Tt,feedforward:St})}createOscillator(){return new gt(this)}createPanner(){return new yt(this)}createPeriodicWave(St,Tt,At={disableNormalization:!1}){return new bt(this,{...At,imag:Tt,real:St})}createStereoPanner(){return new wt(this)}createWaveShaper(){return new vt(this)}decodeAudioData(St,Tt,At){return ct(this._nativeContext,St).then(Et=>(typeof Tt=="function"&&Tt(Et),Et),Et=>{throw typeof At=="function"&&At(Et),Et})}},DEFAULT_OPTIONS$f={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},createBiquadFilterNodeConstructor=(tt,et,nt,rt,it,ot,at,st)=>class extends tt{constructor(ct,ut){const ht=ot(ct),dt={...DEFAULT_OPTIONS$f,...ut},pt=it(ht,dt),mt=at(ht),gt=mt?nt():null;super(ct,!1,pt,gt),this._Q=et(this,mt,pt.Q,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._detune=et(this,mt,pt.detune,1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT),-1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT)),this._frequency=et(this,mt,pt.frequency,ct.sampleRate/2,0),this._gain=et(this,mt,pt.gain,40*Math.log10(MOST_POSITIVE_SINGLE_FLOAT),MOST_NEGATIVE_SINGLE_FLOAT),this._nativeBiquadFilterNode=pt,st(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(ct){this._nativeBiquadFilterNode.type=ct}getFrequencyResponse(ct,ut,ht){try{this._nativeBiquadFilterNode.getFrequencyResponse(ct,ut,ht)}catch(dt){throw dt.code===11?rt():dt}if(ct.length!==ut.length||ut.length!==ht.length)throw rt()}},createBiquadFilterNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap,at=async(st,lt)=>{let ct=nt(st);const ut=isOwnedByContext(ct,lt);if(!ut){const ht={Q:ct.Q.value,channelCount:ct.channelCount,channelCountMode:ct.channelCountMode,channelInterpretation:ct.channelInterpretation,detune:ct.detune.value,frequency:ct.frequency.value,gain:ct.gain.value,type:ct.type};ct=et(lt,ht)}return ot.set(lt,ct),ut?(await tt(lt,st.Q,ct.Q),await tt(lt,st.detune,ct.detune),await tt(lt,st.frequency,ct.frequency),await tt(lt,st.gain,ct.gain)):(await rt(lt,st.Q,ct.Q),await rt(lt,st.detune,ct.detune),await rt(lt,st.frequency,ct.frequency),await rt(lt,st.gain,ct.gain)),await it(st,lt,ct),ct};return{render(st,lt){const ct=ot.get(lt);return ct!==void 0?Promise.resolve(ct):at(st,lt)}}},createCacheTestResult=(tt,et)=>(nt,rt)=>{const it=et.get(nt);if(it!==void 0)return it;const ot=tt.get(nt);if(ot!==void 0)return ot;try{const at=rt();return at instanceof Promise?(tt.set(nt,at),at.catch(()=>!1).then(st=>(tt.delete(nt),et.set(nt,st),st))):(et.set(nt,at),at)}catch{return et.set(nt,!1),!1}},DEFAULT_OPTIONS$e={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},createChannelMergerNodeConstructor=(tt,et,nt,rt,it)=>class extends tt{constructor(at,st){const lt=rt(at),ct={...DEFAULT_OPTIONS$e,...st},ut=nt(lt,ct),ht=it(lt)?et():null;super(at,!1,ut,ht)}},createChannelMergerNodeRendererFactory=(tt,et,nt)=>()=>{const rt=new WeakMap,it=async(ot,at)=>{let st=et(ot);if(!isOwnedByContext(st,at)){const ct={channelCount:st.channelCount,channelCountMode:st.channelCountMode,channelInterpretation:st.channelInterpretation,numberOfInputs:st.numberOfInputs};st=tt(at,ct)}return rt.set(at,st),await nt(ot,at,st),st};return{render(ot,at){const st=rt.get(at);return st!==void 0?Promise.resolve(st):it(ot,at)}}},DEFAULT_OPTIONS$d={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},createChannelSplitterNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=rt(st),ut=ot({...DEFAULT_OPTIONS$d,...lt}),ht=nt(ct,ut),dt=it(ct)?et():null;super(st,!1,ht,dt)}},createChannelSplitterNodeRendererFactory=(tt,et,nt)=>()=>{const rt=new WeakMap,it=async(ot,at)=>{let st=et(ot);if(!isOwnedByContext(st,at)){const ct={channelCount:st.channelCount,channelCountMode:st.channelCountMode,channelInterpretation:st.channelInterpretation,numberOfOutputs:st.numberOfOutputs};st=tt(at,ct)}return rt.set(at,st),await nt(ot,at,st),st};return{render(ot,at){const st=rt.get(at);return st!==void 0?Promise.resolve(st):it(ot,at)}}},createConnectAudioParam=tt=>(et,nt,rt)=>tt(nt,et,rt),createConnectMultipleOutputs=tt=>(et,nt,rt=0,it=0)=>{const ot=et[rt];if(ot===void 0)throw tt();return isNativeAudioNode$1(nt)?ot.connect(nt,0,it):ot.connect(nt,0)},createConnectedNativeAudioBufferSourceNodeFactory=tt=>(et,nt)=>{const rt=tt(et,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),it=et.createBuffer(1,2,44100);return rt.buffer=it,rt.loop=!0,rt.connect(nt),rt.start(),()=>{rt.stop(),rt.disconnect(nt)}},DEFAULT_OPTIONS$c={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},createConstantSourceNodeConstructor=(tt,et,nt,rt,it,ot,at)=>class extends tt{constructor(lt,ct){const ut=it(lt),ht={...DEFAULT_OPTIONS$c,...ct},dt=rt(ut,ht),pt=ot(ut),mt=pt?nt():null;super(lt,!1,dt,mt),this._constantSourceNodeRenderer=mt,this._nativeConstantSourceNode=dt,this._offset=et(this,pt,dt.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(lt){const ct=typeof lt=="function"?at(this,lt):null;this._nativeConstantSourceNode.onended=ct;const ut=this._nativeConstantSourceNode.onended;this._onended=ut!==null&&ut===ct?lt:ut}start(lt=0){if(this._nativeConstantSourceNode.start(lt),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=lt),this.context.state!=="closed"){setInternalStateToActive(this);const ct=()=>{this._nativeConstantSourceNode.removeEventListener("ended",ct),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeConstantSourceNode.addEventListener("ended",ct)}}stop(lt=0){this._nativeConstantSourceNode.stop(lt),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=lt)}},createConstantSourceNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap;let at=null,st=null;const lt=async(ct,ut)=>{let ht=nt(ct);const dt=isOwnedByContext(ht,ut);if(!dt){const pt={channelCount:ht.channelCount,channelCountMode:ht.channelCountMode,channelInterpretation:ht.channelInterpretation,offset:ht.offset.value};ht=et(ut,pt),at!==null&&ht.start(at),st!==null&&ht.stop(st)}return ot.set(ut,ht),dt?await tt(ut,ct.offset,ht.offset):await rt(ut,ct.offset,ht.offset),await it(ct,ut,ht),ht};return{set start(ct){at=ct},set stop(ct){st=ct},render(ct,ut){const ht=ot.get(ut);return ht!==void 0?Promise.resolve(ht):lt(ct,ut)}}},createConvertNumberToUnsignedLong=tt=>et=>(tt[0]=et,tt[0]),DEFAULT_OPTIONS$b={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},createConvolverNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=rt(st),ut={...DEFAULT_OPTIONS$b,...lt},ht=nt(ct,ut),pt=it(ct)?et():null;super(st,!1,ht,pt),this._isBufferNullified=!1,this._nativeConvolverNode=ht,ut.buffer!==null&&ot(this,ut.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(st){if(this._nativeConvolverNode.buffer=st,st===null&&this._nativeConvolverNode.buffer!==null){const lt=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=lt.createBuffer(1,1,lt.sampleRate),this._isBufferNullified=!0,ot(this,0)}else this._isBufferNullified=!1,ot(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(st){this._nativeConvolverNode.normalize=st}},createConvolverNodeRendererFactory=(tt,et,nt)=>()=>{const rt=new WeakMap,it=async(ot,at)=>{let st=et(ot);if(!isOwnedByContext(st,at)){const ct={buffer:st.buffer,channelCount:st.channelCount,channelCountMode:st.channelCountMode,channelInterpretation:st.channelInterpretation,disableNormalization:!st.normalize};st=tt(at,ct)}return rt.set(at,st),isNativeAudioNodeFaker(st)?await nt(ot,at,st.inputs[0]):await nt(ot,at,st),st};return{render(ot,at){const st=rt.get(at);return st!==void 0?Promise.resolve(st):it(ot,at)}}},createCreateNativeOfflineAudioContext=(tt,et)=>(nt,rt,it)=>{if(et===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new et(nt,rt,it)}catch(ot){throw ot.name==="SyntaxError"?tt():ot}},createDataCloneError=()=>new DOMException("","DataCloneError"),detachArrayBuffer=tt=>{const{port1:et,port2:nt}=new MessageChannel;return new Promise(rt=>{const it=()=>{nt.onmessage=null,et.close(),nt.close(),rt()};nt.onmessage=()=>it();try{et.postMessage(tt,[tt])}catch{}finally{it()}})},createDecodeAudioData=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut)=>(ht,dt)=>{const pt=at(ht)?ht:ot(ht);if(it.has(dt)){const mt=nt();return Promise.reject(mt)}try{it.add(dt)}catch{}return et(lt,()=>lt(pt))?pt.decodeAudioData(dt).then(mt=>(detachArrayBuffer(dt).catch(()=>{}),et(st,()=>st(mt))||ut(mt),tt.add(mt),mt)):new Promise((mt,gt)=>{const yt=async()=>{try{await detachArrayBuffer(dt)}catch{}},bt=wt=>{gt(wt),yt()};try{pt.decodeAudioData(dt,wt=>{typeof wt.copyFromChannel!="function"&&(ct(wt),wrapAudioBufferGetChannelDataMethod(wt)),tt.add(wt),yt().then(()=>mt(wt))},wt=>{bt(wt===null?rt():wt)})}catch(wt){bt(wt)}})},createDecrementCycleCounter=(tt,et,nt,rt,it,ot,at,st)=>(lt,ct)=>{const ut=et.get(lt);if(ut===void 0)throw new Error("Missing the expected cycle count.");const ht=ot(lt.context),dt=st(ht);if(ut===ct){if(et.delete(lt),!dt&&at(lt)){const pt=rt(lt),{outputs:mt}=nt(lt);for(const gt of mt)if(isAudioNodeOutputConnection(gt)){const yt=rt(gt[0]);tt(pt,yt,gt[1],gt[2])}else{const yt=it(gt[0]);pt.connect(yt,gt[1])}}}else et.set(lt,ut-ct)},DEFAULT_OPTIONS$a={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},createDelayNodeConstructor=(tt,et,nt,rt,it,ot,at)=>class extends tt{constructor(lt,ct){const ut=it(lt),ht={...DEFAULT_OPTIONS$a,...ct},dt=rt(ut,ht),pt=ot(ut),mt=pt?nt(ht.maxDelayTime):null;super(lt,!1,dt,mt),this._delayTime=et(this,pt,dt.delayTime),at(this,ht.maxDelayTime)}get delayTime(){return this._delayTime}},createDelayNodeRendererFactory=(tt,et,nt,rt,it)=>ot=>{const at=new WeakMap,st=async(lt,ct)=>{let ut=nt(lt);const ht=isOwnedByContext(ut,ct);if(!ht){const dt={channelCount:ut.channelCount,channelCountMode:ut.channelCountMode,channelInterpretation:ut.channelInterpretation,delayTime:ut.delayTime.value,maxDelayTime:ot};ut=et(ct,dt)}return at.set(ct,ut),ht?await tt(ct,lt.delayTime,ut.delayTime):await rt(ct,lt.delayTime,ut.delayTime),await it(lt,ct,ut),ut};return{render(lt,ct){const ut=at.get(ct);return ut!==void 0?Promise.resolve(ut):st(lt,ct)}}},createDeleteActiveInputConnectionToAudioNode=tt=>(et,nt,rt,it)=>tt(et[it],ot=>ot[0]===nt&&ot[1]===rt),createDeleteUnrenderedAudioWorkletNode=tt=>(et,nt)=>{tt(et).delete(nt)},isDelayNode=tt=>"delayTime"in tt,createDetectCycles=(tt,et,nt)=>function rt(it,ot){const at=isAudioNode$1(ot)?ot:nt(tt,ot);if(isDelayNode(at))return[];if(it[0]===at)return[it];if(it.includes(at))return[];const{outputs:st}=et(at);return Array.from(st).map(lt=>rt([...it,at],lt[0])).reduce((lt,ct)=>lt.concat(ct),[])},getOutputAudioNodeAtIndex=(tt,et,nt)=>{const rt=et[nt];if(rt===void 0)throw tt();return rt},createDisconnectMultipleOutputs=tt=>(et,nt=void 0,rt=void 0,it=0)=>nt===void 0?et.forEach(ot=>ot.disconnect()):typeof nt=="number"?getOutputAudioNodeAtIndex(tt,et,nt).disconnect():isNativeAudioNode$1(nt)?rt===void 0?et.forEach(ot=>ot.disconnect(nt)):it===void 0?getOutputAudioNodeAtIndex(tt,et,rt).disconnect(nt,0):getOutputAudioNodeAtIndex(tt,et,rt).disconnect(nt,0,it):rt===void 0?et.forEach(ot=>ot.disconnect(nt)):getOutputAudioNodeAtIndex(tt,et,rt).disconnect(nt,0),DEFAULT_OPTIONS$9={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},createDynamicsCompressorNodeConstructor=(tt,et,nt,rt,it,ot,at,st)=>class extends tt{constructor(ct,ut){const ht=ot(ct),dt={...DEFAULT_OPTIONS$9,...ut},pt=rt(ht,dt),mt=at(ht),gt=mt?nt():null;super(ct,!1,pt,gt),this._attack=et(this,mt,pt.attack),this._knee=et(this,mt,pt.knee),this._nativeDynamicsCompressorNode=pt,this._ratio=et(this,mt,pt.ratio),this._release=et(this,mt,pt.release),this._threshold=et(this,mt,pt.threshold),st(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(ct){const ut=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=ct,ct>2)throw this._nativeDynamicsCompressorNode.channelCount=ut,it()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(ct){const ut=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=ct,ct==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=ut,it()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}},createDynamicsCompressorNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap,at=async(st,lt)=>{let ct=nt(st);const ut=isOwnedByContext(ct,lt);if(!ut){const ht={attack:ct.attack.value,channelCount:ct.channelCount,channelCountMode:ct.channelCountMode,channelInterpretation:ct.channelInterpretation,knee:ct.knee.value,ratio:ct.ratio.value,release:ct.release.value,threshold:ct.threshold.value};ct=et(lt,ht)}return ot.set(lt,ct),ut?(await tt(lt,st.attack,ct.attack),await tt(lt,st.knee,ct.knee),await tt(lt,st.ratio,ct.ratio),await tt(lt,st.release,ct.release),await tt(lt,st.threshold,ct.threshold)):(await rt(lt,st.attack,ct.attack),await rt(lt,st.knee,ct.knee),await rt(lt,st.ratio,ct.ratio),await rt(lt,st.release,ct.release),await rt(lt,st.threshold,ct.threshold)),await it(st,lt,ct),ct};return{render(st,lt){const ct=ot.get(lt);return ct!==void 0?Promise.resolve(ct):at(st,lt)}}},createEncodingError=()=>new DOMException("","EncodingError"),createEvaluateSource=tt=>et=>new Promise((nt,rt)=>{if(tt===null){rt(new SyntaxError);return}const it=tt.document.head;if(it===null)rt(new SyntaxError);else{const ot=tt.document.createElement("script"),at=new Blob([et],{type:"application/javascript"}),st=URL.createObjectURL(at),lt=tt.onerror,ct=()=>{tt.onerror=lt,URL.revokeObjectURL(st)};tt.onerror=(ut,ht,dt,pt,mt)=>{if(ht===st||ht===tt.location.href&&dt===1&&pt===1)return ct(),rt(mt),!1;if(lt!==null)return lt(ut,ht,dt,pt,mt)},ot.onerror=()=>{ct(),rt(new SyntaxError)},ot.onload=()=>{ct(),nt()},ot.src=st,ot.type="module",it.appendChild(ot)}}),createEventTargetConstructor=tt=>class{constructor(nt){this._nativeEventTarget=nt,this._listeners=new WeakMap}addEventListener(nt,rt,it){if(rt!==null){let ot=this._listeners.get(rt);ot===void 0&&(ot=tt(this,rt),typeof rt=="function"&&this._listeners.set(rt,ot)),this._nativeEventTarget.addEventListener(nt,ot,it)}}dispatchEvent(nt){return this._nativeEventTarget.dispatchEvent(nt)}removeEventListener(nt,rt,it){const ot=rt===null?void 0:this._listeners.get(rt);this._nativeEventTarget.removeEventListener(nt,ot===void 0?null:ot,it)}},createExposeCurrentFrameAndCurrentTime=tt=>(et,nt,rt)=>{Object.defineProperties(tt,{currentFrame:{configurable:!0,get(){return Math.round(et*nt)}},currentTime:{configurable:!0,get(){return et}}});try{return rt()}finally{tt!==null&&(delete tt.currentFrame,delete tt.currentTime)}},createFetchSource=tt=>async et=>{try{const nt=await fetch(et);if(nt.ok)return[await nt.text(),nt.url]}catch{}throw tt()},DEFAULT_OPTIONS$8={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},createGainNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=it(st),ut={...DEFAULT_OPTIONS$8,...lt},ht=rt(ct,ut),dt=ot(ct),pt=dt?nt():null;super(st,!1,ht,pt),this._gain=et(this,dt,ht.gain,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get gain(){return this._gain}},createGainNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap,at=async(st,lt)=>{let ct=nt(st);const ut=isOwnedByContext(ct,lt);if(!ut){const ht={channelCount:ct.channelCount,channelCountMode:ct.channelCountMode,channelInterpretation:ct.channelInterpretation,gain:ct.gain.value};ct=et(lt,ht)}return ot.set(lt,ct),ut?await tt(lt,st.gain,ct.gain):await rt(lt,st.gain,ct.gain),await it(st,lt,ct),ct};return{render(st,lt){const ct=ot.get(lt);return ct!==void 0?Promise.resolve(ct):at(st,lt)}}},createGetActiveAudioWorkletNodeInputs=(tt,et)=>nt=>et(tt,nt),createGetAudioNodeRenderer=tt=>et=>{const nt=tt(et);if(nt.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return nt.renderer},createGetAudioNodeTailTime=tt=>et=>{var nt;return(nt=tt.get(et))!==null&&nt!==void 0?nt:0},createGetAudioParamRenderer=tt=>et=>{const nt=tt(et);if(nt.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return nt.renderer},createGetBackupOfflineAudioContext=tt=>et=>tt.get(et),createInvalidStateError=()=>new DOMException("","InvalidStateError"),createGetNativeContext=tt=>et=>{const nt=tt.get(et);if(nt===void 0)throw createInvalidStateError();return nt},createGetOrCreateBackupOfflineAudioContext=(tt,et)=>nt=>{let rt=tt.get(nt);if(rt!==void 0)return rt;if(et===null)throw new Error("Missing the native OfflineAudioContext constructor.");return rt=new et(1,1,44100),tt.set(nt,rt),rt},createGetUnrenderedAudioWorkletNodes=tt=>et=>{const nt=tt.get(et);if(nt===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return nt},createInvalidAccessError=()=>new DOMException("","InvalidAccessError"),wrapIIRFilterNodeGetFrequencyResponseMethod=tt=>{tt.getFrequencyResponse=(et=>(nt,rt,it)=>{if(nt.length!==rt.length||rt.length!==it.length)throw createInvalidAccessError();return et.call(tt,nt,rt,it)})(tt.getFrequencyResponse)},DEFAULT_OPTIONS$7={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},createIIRFilterNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=rt(st),ut=it(ct),ht={...DEFAULT_OPTIONS$7,...lt},dt=et(ct,ut?null:st.baseLatency,ht),pt=ut?nt(ht.feedback,ht.feedforward):null;super(st,!1,dt,pt),wrapIIRFilterNodeGetFrequencyResponseMethod(dt),this._nativeIIRFilterNode=dt,ot(this,1)}getFrequencyResponse(st,lt,ct){return this._nativeIIRFilterNode.getFrequencyResponse(st,lt,ct)}},filterBuffer=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut)=>{const ht=ct.length;let dt=st;for(let pt=0;pt{const it=nt instanceof Float64Array?nt:new Float64Array(nt),ot=rt instanceof Float64Array?rt:new Float64Array(rt),at=it.length,st=ot.length,lt=Math.min(at,st);if(it[0]!==1){for(let mt=0;mt(ot,at)=>{const st=new WeakMap;let lt=null;const ct=async(ut,ht)=>{let dt=null,pt=et(ut);const mt=isOwnedByContext(pt,ht);if(ht.createIIRFilter===void 0?dt=tt(ht,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):mt||(pt=ht.createIIRFilter(at,ot)),st.set(ht,dt===null?pt:dt),dt!==null){if(lt===null){if(nt===null)throw new Error("Missing the native OfflineAudioContext constructor.");const yt=new nt(ut.context.destination.channelCount,ut.context.length,ht.sampleRate);lt=(async()=>{await rt(ut,yt,yt.destination);const bt=await it(yt);return filterFullBuffer(bt,ht,ot,at)})()}const gt=await lt;return dt.buffer=gt,dt.start(0),dt}return await rt(ut,ht,pt),pt};return{render(ut,ht){const dt=st.get(ht);return dt!==void 0?Promise.resolve(dt):ct(ut,ht)}}},createIncrementCycleCounterFactory=(tt,et,nt,rt,it,ot)=>at=>(st,lt)=>{const ct=tt.get(st);if(ct===void 0){if(!at&&ot(st)){const ut=rt(st),{outputs:ht}=nt(st);for(const dt of ht)if(isAudioNodeOutputConnection(dt)){const pt=rt(dt[0]);et(ut,pt,dt[1],dt[2])}else{const pt=it(dt[0]);ut.disconnect(pt,dt[1])}}tt.set(st,lt)}else tt.set(st,ct+lt)},createIsAnyAudioContext=(tt,et)=>nt=>{const rt=tt.get(nt);return et(rt)||et(nt)},createIsAnyAudioNode=(tt,et)=>nt=>tt.has(nt)||et(nt),createIsAnyAudioParam=(tt,et)=>nt=>tt.has(nt)||et(nt),createIsAnyOfflineAudioContext=(tt,et)=>nt=>{const rt=tt.get(nt);return et(rt)||et(nt)},createIsNativeAudioContext=tt=>et=>tt!==null&&et instanceof tt,createIsNativeAudioNode=tt=>et=>tt!==null&&typeof tt.AudioNode=="function"&&et instanceof tt.AudioNode,createIsNativeAudioParam=tt=>et=>tt!==null&&typeof tt.AudioParam=="function"&&et instanceof tt.AudioParam,createIsNativeContext=(tt,et)=>nt=>tt(nt)||et(nt),createIsNativeOfflineAudioContext=tt=>et=>tt!==null&&et instanceof tt,createIsSecureContext=tt=>tt!==null&&tt.isSecureContext,createMediaElementAudioSourceNodeConstructor=(tt,et,nt,rt)=>class extends tt{constructor(ot,at){const st=nt(ot),lt=et(st,at);if(rt(st))throw TypeError();super(ot,!0,lt,null),this._nativeMediaElementAudioSourceNode=lt}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}},DEFAULT_OPTIONS$6={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},createMediaStreamAudioDestinationNodeConstructor=(tt,et,nt,rt)=>class extends tt{constructor(ot,at){const st=nt(ot);if(rt(st))throw new TypeError;const lt={...DEFAULT_OPTIONS$6,...at},ct=et(st,lt);super(ot,!1,ct,null),this._nativeMediaStreamAudioDestinationNode=ct}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}},createMediaStreamAudioSourceNodeConstructor=(tt,et,nt,rt)=>class extends tt{constructor(ot,at){const st=nt(ot),lt=et(st,at);if(rt(st))throw new TypeError;super(ot,!0,lt,null),this._nativeMediaStreamAudioSourceNode=lt}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}},createMediaStreamTrackAudioSourceNodeConstructor=(tt,et,nt)=>class extends tt{constructor(it,ot){const at=nt(it),st=et(at,ot);super(it,!0,st,null)}},createMinimalBaseAudioContextConstructor=(tt,et,nt,rt,it,ot)=>class extends nt{constructor(st,lt){super(st),this._nativeContext=st,CONTEXT_STORE.set(this,st),rt(st)&&it.set(st,new Set),this._destination=new tt(this,lt),this._listener=et(this,st),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(st){const lt=typeof st=="function"?ot(this,st):null;this._nativeContext.onstatechange=lt;const ct=this._nativeContext.onstatechange;this._onstatechange=ct!==null&&ct===lt?st:ct}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}},testPromiseSupport=tt=>{const et=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{const nt=tt.decodeAudioData(et.buffer,()=>{});return nt===void 0?!1:(nt.catch(()=>{}),!0)}catch{}return!1},createMonitorConnections=(tt,et)=>(nt,rt,it)=>{const ot=new Set;return nt.connect=(at=>(st,lt=0,ct=0)=>{const ut=ot.size===0;if(et(st))return at.call(nt,st,lt,ct),tt(ot,[st,lt,ct],ht=>ht[0]===st&&ht[1]===lt&&ht[2]===ct,!0),ut&&rt(),st;at.call(nt,st,lt),tt(ot,[st,lt],ht=>ht[0]===st&&ht[1]===lt,!0),ut&&rt()})(nt.connect),nt.disconnect=(at=>(st,lt,ct)=>{const ut=ot.size>0;if(st===void 0)at.apply(nt),ot.clear();else if(typeof st=="number"){at.call(nt,st);for(const dt of ot)dt[1]===st&&ot.delete(dt)}else{et(st)?at.call(nt,st,lt,ct):at.call(nt,st,lt);for(const dt of ot)dt[0]===st&&(lt===void 0||dt[1]===lt)&&(ct===void 0||dt[2]===ct)&&ot.delete(dt)}const ht=ot.size===0;ut&&ht&&it()})(nt.disconnect),nt},assignNativeAudioNodeOption=(tt,et,nt)=>{const rt=et[nt];rt!==void 0&&rt!==tt[nt]&&(tt[nt]=rt)},assignNativeAudioNodeOptions=(tt,et)=>{assignNativeAudioNodeOption(tt,et,"channelCount"),assignNativeAudioNodeOption(tt,et,"channelCountMode"),assignNativeAudioNodeOption(tt,et,"channelInterpretation")},testAnalyserNodeGetFloatTimeDomainDataMethodSupport=tt=>typeof tt.getFloatTimeDomainData=="function",wrapAnalyserNodeGetFloatTimeDomainDataMethod=tt=>{tt.getFloatTimeDomainData=et=>{const nt=new Uint8Array(et.length);tt.getByteTimeDomainData(nt);const rt=Math.max(nt.length,tt.fftSize);for(let it=0;it(nt,rt)=>{const it=nt.createAnalyser();if(assignNativeAudioNodeOptions(it,rt),!(rt.maxDecibels>rt.minDecibels))throw et();return assignNativeAudioNodeOption(it,rt,"fftSize"),assignNativeAudioNodeOption(it,rt,"maxDecibels"),assignNativeAudioNodeOption(it,rt,"minDecibels"),assignNativeAudioNodeOption(it,rt,"smoothingTimeConstant"),tt(testAnalyserNodeGetFloatTimeDomainDataMethodSupport,()=>testAnalyserNodeGetFloatTimeDomainDataMethodSupport(it))||wrapAnalyserNodeGetFloatTimeDomainDataMethod(it),it},createNativeAudioBufferConstructor=tt=>tt===null?null:tt.hasOwnProperty("AudioBuffer")?tt.AudioBuffer:null,assignNativeAudioNodeAudioParamValue=(tt,et,nt)=>{const rt=et[nt];rt!==void 0&&rt!==tt[nt].value&&(tt[nt].value=rt)},wrapAudioBufferSourceNodeStartMethodConsecutiveCalls=tt=>{tt.start=(et=>{let nt=!1;return(rt=0,it=0,ot)=>{if(nt)throw createInvalidStateError();et.call(tt,rt,it,ot),nt=!0}})(tt.start)},wrapAudioScheduledSourceNodeStartMethodNegativeParameters=tt=>{tt.start=(et=>(nt=0,rt=0,it)=>{if(typeof it=="number"&&it<0||rt<0||nt<0)throw new RangeError("The parameters can't be negative.");et.call(tt,nt,rt,it)})(tt.start)},wrapAudioScheduledSourceNodeStopMethodNegativeParameters=tt=>{tt.stop=(et=>(nt=0)=>{if(nt<0)throw new RangeError("The parameter can't be negative.");et.call(tt,nt)})(tt.stop)},createNativeAudioBufferSourceNodeFactory=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut)=>(ht,dt)=>{const pt=ht.createBufferSource();return assignNativeAudioNodeOptions(pt,dt),assignNativeAudioNodeAudioParamValue(pt,dt,"playbackRate"),assignNativeAudioNodeOption(pt,dt,"buffer"),assignNativeAudioNodeOption(pt,dt,"loop"),assignNativeAudioNodeOption(pt,dt,"loopEnd"),assignNativeAudioNodeOption(pt,dt,"loopStart"),et(nt,()=>nt(ht))||wrapAudioBufferSourceNodeStartMethodConsecutiveCalls(pt),et(rt,()=>rt(ht))||lt(pt),et(it,()=>it(ht))||ct(pt,ht),et(ot,()=>ot(ht))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(pt),et(at,()=>at(ht))||ut(pt,ht),et(st,()=>st(ht))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(pt),tt(ht,pt),pt},createNativeAudioContextConstructor=tt=>tt===null?null:tt.hasOwnProperty("AudioContext")?tt.AudioContext:tt.hasOwnProperty("webkitAudioContext")?tt.webkitAudioContext:null,createNativeAudioDestinationNodeFactory=(tt,et)=>(nt,rt,it)=>{const ot=nt.destination;if(ot.channelCount!==rt)try{ot.channelCount=rt}catch{}it&&ot.channelCountMode!=="explicit"&&(ot.channelCountMode="explicit"),ot.maxChannelCount===0&&Object.defineProperty(ot,"maxChannelCount",{value:rt});const at=tt(nt,{channelCount:rt,channelCountMode:ot.channelCountMode,channelInterpretation:ot.channelInterpretation,gain:1});return et(at,"channelCount",st=>()=>st.call(at),st=>lt=>{st.call(at,lt);try{ot.channelCount=lt}catch(ct){if(lt>ot.maxChannelCount)throw ct}}),et(at,"channelCountMode",st=>()=>st.call(at),st=>lt=>{st.call(at,lt),ot.channelCountMode=lt}),et(at,"channelInterpretation",st=>()=>st.call(at),st=>lt=>{st.call(at,lt),ot.channelInterpretation=lt}),Object.defineProperty(at,"maxChannelCount",{get:()=>ot.maxChannelCount}),at.connect(ot),at},createNativeAudioWorkletNodeConstructor=tt=>tt===null?null:tt.hasOwnProperty("AudioWorkletNode")?tt.AudioWorkletNode:null,testClonabilityOfAudioWorkletNodeOptions=tt=>{const{port1:et}=new MessageChannel;try{et.postMessage(tt)}finally{et.close()}},createNativeAudioWorkletNodeFactory=(tt,et,nt,rt,it)=>(ot,at,st,lt,ct,ut)=>{if(st!==null)try{const ht=new st(ot,lt,ut),dt=new Map;let pt=null;if(Object.defineProperties(ht,{channelCount:{get:()=>ut.channelCount,set:()=>{throw tt()}},channelCountMode:{get:()=>"explicit",set:()=>{throw tt()}},onprocessorerror:{get:()=>pt,set:mt=>{typeof pt=="function"&&ht.removeEventListener("processorerror",pt),pt=typeof mt=="function"?mt:null,typeof pt=="function"&&ht.addEventListener("processorerror",pt)}}}),ht.addEventListener=(mt=>(...gt)=>{if(gt[0]==="processorerror"){const yt=typeof gt[1]=="function"?gt[1]:typeof gt[1]=="object"&>[1]!==null&&typeof gt[1].handleEvent=="function"?gt[1].handleEvent:null;if(yt!==null){const bt=dt.get(gt[1]);bt!==void 0?gt[1]=bt:(gt[1]=wt=>{wt.type==="error"?(Object.defineProperties(wt,{type:{value:"processorerror"}}),yt(wt)):yt(new ErrorEvent(gt[0],{...wt}))},dt.set(yt,gt[1]))}}return mt.call(ht,"error",gt[1],gt[2]),mt.call(ht,...gt)})(ht.addEventListener),ht.removeEventListener=(mt=>(...gt)=>{if(gt[0]==="processorerror"){const yt=dt.get(gt[1]);yt!==void 0&&(dt.delete(gt[1]),gt[1]=yt)}return mt.call(ht,"error",gt[1],gt[2]),mt.call(ht,gt[0],gt[1],gt[2])})(ht.removeEventListener),ut.numberOfOutputs!==0){const mt=nt(ot,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return ht.connect(mt).connect(ot.destination),it(ht,()=>mt.disconnect(),()=>mt.connect(ot.destination))}return ht}catch(ht){throw ht.code===11?rt():ht}if(ct===void 0)throw rt();return testClonabilityOfAudioWorkletNodeOptions(ut),et(ot,at,ct,ut)},computeBufferSize=(tt,et)=>tt===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(tt*et))))),cloneAudioWorkletNodeOptions=tt=>new Promise((et,nt)=>{const{port1:rt,port2:it}=new MessageChannel;rt.onmessage=({data:ot})=>{rt.close(),it.close(),et(ot)},rt.onmessageerror=({data:ot})=>{rt.close(),it.close(),nt(ot)},it.postMessage(tt)}),createAudioWorkletProcessorPromise=async(tt,et)=>{const nt=await cloneAudioWorkletNodeOptions(et);return new tt(nt)},createAudioWorkletProcessor=(tt,et,nt,rt)=>{let it=NODE_TO_PROCESSOR_MAPS.get(tt);it===void 0&&(it=new WeakMap,NODE_TO_PROCESSOR_MAPS.set(tt,it));const ot=createAudioWorkletProcessorPromise(nt,rt);return it.set(et,ot),ot},createNativeAudioWorkletNodeFakerFactory=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt)=>(pt,mt,gt,yt)=>{if(yt.numberOfInputs===0&&yt.numberOfOutputs===0)throw lt();const bt=Array.isArray(yt.outputChannelCount)?yt.outputChannelCount:Array.from(yt.outputChannelCount);if(bt.some(An=>An<1))throw lt();if(bt.length!==yt.numberOfOutputs)throw et();if(yt.channelCountMode!=="explicit")throw lt();const wt=yt.channelCount*yt.numberOfInputs,vt=bt.reduce((An,yn)=>An+yn,0),kt=gt.parameterDescriptors===void 0?0:gt.parameterDescriptors.length;if(wt+kt>6||vt>6)throw lt();const St=new MessageChannel,Tt=[],At=[];for(let An=0;AnAn===void 0?0:An},maxValue:{get:()=>yn===void 0?MOST_POSITIVE_SINGLE_FLOAT:yn},minValue:{get:()=>kn===void 0?MOST_NEGATIVE_SINGLE_FLOAT:kn}}),Et.push(gn)}const Mt=rt(pt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,wt+kt)}),Lt=computeBufferSize(mt,pt.sampleRate),jt=st(pt,Lt,wt+kt,Math.max(1,vt)),Rt=it(pt,{channelCount:Math.max(1,vt),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,vt)}),$t=[];for(let An=0;An{const kn=Et[yn];return kn.connect(Mt,0,wt+yn),kn.start(0),[An,kn.offset]}));Mt.connect(jt);let It=yt.channelInterpretation,Ot=null;const zt=yt.numberOfOutputs===0?[jt]:$t,Ut={get bufferSize(){return Lt},get channelCount(){return yt.channelCount},set channelCount(An){throw nt()},get channelCountMode(){return yt.channelCountMode},set channelCountMode(An){throw nt()},get channelInterpretation(){return It},set channelInterpretation(An){for(const yn of Tt)yn.channelInterpretation=An;It=An},get context(){return jt.context},get inputs(){return Tt},get numberOfInputs(){return yt.numberOfInputs},get numberOfOutputs(){return yt.numberOfOutputs},get onprocessorerror(){return Ot},set onprocessorerror(An){typeof Ot=="function"&&Ut.removeEventListener("processorerror",Ot),Ot=typeof An=="function"?An:null,typeof Ot=="function"&&Ut.addEventListener("processorerror",Ot)},get parameters(){return xt},get port(){return St.port2},addEventListener(...An){return jt.addEventListener(An[0],An[1],An[2])},connect:tt.bind(null,zt),disconnect:ct.bind(null,zt),dispatchEvent(...An){return jt.dispatchEvent(An[0])},removeEventListener(...An){return jt.removeEventListener(An[0],An[1],An[2])}},Wt=new Map;St.port1.addEventListener=(An=>(...yn)=>{if(yn[0]==="message"){const kn=typeof yn[1]=="function"?yn[1]:typeof yn[1]=="object"&&yn[1]!==null&&typeof yn[1].handleEvent=="function"?yn[1].handleEvent:null;if(kn!==null){const dn=Wt.get(yn[1]);dn!==void 0?yn[1]=dn:(yn[1]=gn=>{ut(pt.currentTime,pt.sampleRate,()=>kn(gn))},Wt.set(kn,yn[1]))}}return An.call(St.port1,yn[0],yn[1],yn[2])})(St.port1.addEventListener),St.port1.removeEventListener=(An=>(...yn)=>{if(yn[0]==="message"){const kn=Wt.get(yn[1]);kn!==void 0&&(Wt.delete(yn[1]),yn[1]=kn)}return An.call(St.port1,yn[0],yn[1],yn[2])})(St.port1.removeEventListener);let Ft=null;Object.defineProperty(St.port1,"onmessage",{get:()=>Ft,set:An=>{typeof Ft=="function"&&St.port1.removeEventListener("message",Ft),Ft=typeof An=="function"?An:null,typeof Ft=="function"&&(St.port1.addEventListener("message",Ft),St.port1.start())}}),gt.prototype.port=St.port1;let Nt=null;createAudioWorkletProcessor(pt,Ut,gt,yt).then(An=>Nt=An);const Ht=createNestedArrays(yt.numberOfInputs,yt.channelCount),Jt=createNestedArrays(yt.numberOfOutputs,bt),nn=gt.parameterDescriptors===void 0?[]:gt.parameterDescriptors.reduce((An,{name:yn})=>({...An,[yn]:new Float32Array(128)}),{});let Yt=!0;const fn=()=>{yt.numberOfOutputs>0&&jt.disconnect(Rt);for(let An=0,yn=0;An{if(Nt!==null){const kn=ht(Ut);for(let dn=0;dn{copyFromChannel(An,nn,gn,wt+Cn,dn)});for(let gn=0;gn{if(kn[un].size>0)return cn.set(un,Lt/128),$n;const Sn=cn.get(un);return Sn===void 0?[]:($n.every(Mn=>Mn.every(Nn=>Nn===0))&&(Sn===1?cn.delete(un):cn.set(un,Sn-1)),$n)});Yt=ut(pt.currentTime+dn/pt.sampleRate,pt.sampleRate,()=>Nt.process(gn,Jt,nn));for(let $n=0,un=0;$njt.connect(En).connect(pt.destination),en=()=>{jt.disconnect(En),En.disconnect()},Tn=()=>{if(Yt){en(),yt.numberOfOutputs>0&&jt.connect(Rt);for(let An=0,yn=0;An{Yt&&(an(),fn()),_n=!1};return an(),dt(Ut,Tn,Rn)},createNativeBiquadFilterNode=(tt,et)=>{const nt=tt.createBiquadFilter();return assignNativeAudioNodeOptions(nt,et),assignNativeAudioNodeAudioParamValue(nt,et,"Q"),assignNativeAudioNodeAudioParamValue(nt,et,"detune"),assignNativeAudioNodeAudioParamValue(nt,et,"frequency"),assignNativeAudioNodeAudioParamValue(nt,et,"gain"),assignNativeAudioNodeOption(nt,et,"type"),nt},createNativeChannelMergerNodeFactory=(tt,et)=>(nt,rt)=>{const it=nt.createChannelMerger(rt.numberOfInputs);return tt!==null&&tt.name==="webkitAudioContext"&&et(nt,it),assignNativeAudioNodeOptions(it,rt),it},wrapChannelSplitterNode=tt=>{const et=tt.numberOfOutputs;Object.defineProperty(tt,"channelCount",{get:()=>et,set:nt=>{if(nt!==et)throw createInvalidStateError()}}),Object.defineProperty(tt,"channelCountMode",{get:()=>"explicit",set:nt=>{if(nt!=="explicit")throw createInvalidStateError()}}),Object.defineProperty(tt,"channelInterpretation",{get:()=>"discrete",set:nt=>{if(nt!=="discrete")throw createInvalidStateError()}})},createNativeChannelSplitterNode=(tt,et)=>{const nt=tt.createChannelSplitter(et.numberOfOutputs);return assignNativeAudioNodeOptions(nt,et),wrapChannelSplitterNode(nt),nt},createNativeConstantSourceNodeFactory=(tt,et,nt,rt,it)=>(ot,at)=>{if(ot.createConstantSource===void 0)return nt(ot,at);const st=ot.createConstantSource();return assignNativeAudioNodeOptions(st,at),assignNativeAudioNodeAudioParamValue(st,at,"offset"),et(rt,()=>rt(ot))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(st),et(it,()=>it(ot))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(st),tt(ot,st),st},interceptConnections=(tt,et)=>(tt.connect=et.connect.bind(et),tt.disconnect=et.disconnect.bind(et),tt),createNativeConstantSourceNodeFakerFactory=(tt,et,nt,rt)=>(it,{offset:ot,...at})=>{const st=it.createBuffer(1,2,44100),lt=et(it,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),ct=nt(it,{...at,gain:ot}),ut=st.getChannelData(0);ut[0]=1,ut[1]=1,lt.buffer=st,lt.loop=!0;const ht={get bufferSize(){},get channelCount(){return ct.channelCount},set channelCount(mt){ct.channelCount=mt},get channelCountMode(){return ct.channelCountMode},set channelCountMode(mt){ct.channelCountMode=mt},get channelInterpretation(){return ct.channelInterpretation},set channelInterpretation(mt){ct.channelInterpretation=mt},get context(){return ct.context},get inputs(){return[]},get numberOfInputs(){return lt.numberOfInputs},get numberOfOutputs(){return ct.numberOfOutputs},get offset(){return ct.gain},get onended(){return lt.onended},set onended(mt){lt.onended=mt},addEventListener(...mt){return lt.addEventListener(mt[0],mt[1],mt[2])},dispatchEvent(...mt){return lt.dispatchEvent(mt[0])},removeEventListener(...mt){return lt.removeEventListener(mt[0],mt[1],mt[2])},start(mt=0){lt.start.call(lt,mt)},stop(mt=0){lt.stop.call(lt,mt)}},dt=()=>lt.connect(ct),pt=()=>lt.disconnect(ct);return tt(it,lt),rt(interceptConnections(ht,ct),dt,pt)},createNativeConvolverNodeFactory=(tt,et)=>(nt,rt)=>{const it=nt.createConvolver();if(assignNativeAudioNodeOptions(it,rt),rt.disableNormalization===it.normalize&&(it.normalize=!rt.disableNormalization),assignNativeAudioNodeOption(it,rt,"buffer"),rt.channelCount>2||(et(it,"channelCount",ot=>()=>ot.call(it),ot=>at=>{if(at>2)throw tt();return ot.call(it,at)}),rt.channelCountMode==="max"))throw tt();return et(it,"channelCountMode",ot=>()=>ot.call(it),ot=>at=>{if(at==="max")throw tt();return ot.call(it,at)}),it},createNativeDelayNode=(tt,et)=>{const nt=tt.createDelay(et.maxDelayTime);return assignNativeAudioNodeOptions(nt,et),assignNativeAudioNodeAudioParamValue(nt,et,"delayTime"),nt},createNativeDynamicsCompressorNodeFactory=tt=>(et,nt)=>{const rt=et.createDynamicsCompressor();if(assignNativeAudioNodeOptions(rt,nt),nt.channelCount>2||nt.channelCountMode==="max")throw tt();return assignNativeAudioNodeAudioParamValue(rt,nt,"attack"),assignNativeAudioNodeAudioParamValue(rt,nt,"knee"),assignNativeAudioNodeAudioParamValue(rt,nt,"ratio"),assignNativeAudioNodeAudioParamValue(rt,nt,"release"),assignNativeAudioNodeAudioParamValue(rt,nt,"threshold"),rt},createNativeGainNode=(tt,et)=>{const nt=tt.createGain();return assignNativeAudioNodeOptions(nt,et),assignNativeAudioNodeAudioParamValue(nt,et,"gain"),nt},createNativeIIRFilterNodeFactory=tt=>(et,nt,rt)=>{if(et.createIIRFilter===void 0)return tt(et,nt,rt);const it=et.createIIRFilter(rt.feedforward,rt.feedback);return assignNativeAudioNodeOptions(it,rt),it};function divide$1(tt,et){const nt=et[0]*et[0]+et[1]*et[1];return[(tt[0]*et[0]+tt[1]*et[1])/nt,(tt[1]*et[0]-tt[0]*et[1])/nt]}function multiply(tt,et){return[tt[0]*et[0]-tt[1]*et[1],tt[0]*et[1]+tt[1]*et[0]]}function evaluatePolynomial(tt,et){let nt=[0,0];for(let rt=tt.length-1;rt>=0;rt-=1)nt=multiply(nt,et),nt[0]+=tt[rt];return nt}const createNativeIIRFilterNodeFakerFactory=(tt,et,nt,rt)=>(it,ot,{channelCount:at,channelCountMode:st,channelInterpretation:lt,feedback:ct,feedforward:ut})=>{const ht=computeBufferSize(ot,it.sampleRate),dt=ct instanceof Float64Array?ct:new Float64Array(ct),pt=ut instanceof Float64Array?ut:new Float64Array(ut),mt=dt.length,gt=pt.length,yt=Math.min(mt,gt);if(mt===0||mt>20)throw rt();if(dt[0]===0)throw et();if(gt===0||gt>20)throw rt();if(pt[0]===0)throw et();if(dt[0]!==1){for(let Et=0;Et{const Mt=Et.inputBuffer,Lt=Et.outputBuffer,jt=Mt.numberOfChannels;for(let Rt=0;Rttt.createMediaElementSource(et.mediaElement),createNativeMediaStreamAudioDestinationNode=(tt,et)=>{const nt=tt.createMediaStreamDestination();return assignNativeAudioNodeOptions(nt,et),nt.numberOfOutputs===1&&Object.defineProperty(nt,"numberOfOutputs",{get:()=>0}),nt},createNativeMediaStreamAudioSourceNode=(tt,{mediaStream:et})=>{const nt=et.getAudioTracks();nt.sort((ot,at)=>ot.idat.id?1:0);const rt=nt.slice(0,1),it=tt.createMediaStreamSource(new MediaStream(rt));return Object.defineProperty(it,"mediaStream",{value:et}),it},createNativeMediaStreamTrackAudioSourceNodeFactory=(tt,et)=>(nt,{mediaStreamTrack:rt})=>{if(typeof nt.createMediaStreamTrackSource=="function")return nt.createMediaStreamTrackSource(rt);const it=new MediaStream([rt]),ot=nt.createMediaStreamSource(it);if(rt.kind!=="audio")throw tt();if(et(nt))throw new TypeError;return ot},createNativeOfflineAudioContextConstructor=tt=>tt===null?null:tt.hasOwnProperty("OfflineAudioContext")?tt.OfflineAudioContext:tt.hasOwnProperty("webkitOfflineAudioContext")?tt.webkitOfflineAudioContext:null,createNativeOscillatorNodeFactory=(tt,et,nt,rt,it,ot)=>(at,st)=>{const lt=at.createOscillator();return assignNativeAudioNodeOptions(lt,st),assignNativeAudioNodeAudioParamValue(lt,st,"detune"),assignNativeAudioNodeAudioParamValue(lt,st,"frequency"),st.periodicWave!==void 0?lt.setPeriodicWave(st.periodicWave):assignNativeAudioNodeOption(lt,st,"type"),et(nt,()=>nt(at))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(lt),et(rt,()=>rt(at))||ot(lt,at),et(it,()=>it(at))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(lt),tt(at,lt),lt},createNativePannerNodeFactory=tt=>(et,nt)=>{const rt=et.createPanner();return rt.orientationX===void 0?tt(et,nt):(assignNativeAudioNodeOptions(rt,nt),assignNativeAudioNodeAudioParamValue(rt,nt,"orientationX"),assignNativeAudioNodeAudioParamValue(rt,nt,"orientationY"),assignNativeAudioNodeAudioParamValue(rt,nt,"orientationZ"),assignNativeAudioNodeAudioParamValue(rt,nt,"positionX"),assignNativeAudioNodeAudioParamValue(rt,nt,"positionY"),assignNativeAudioNodeAudioParamValue(rt,nt,"positionZ"),assignNativeAudioNodeOption(rt,nt,"coneInnerAngle"),assignNativeAudioNodeOption(rt,nt,"coneOuterAngle"),assignNativeAudioNodeOption(rt,nt,"coneOuterGain"),assignNativeAudioNodeOption(rt,nt,"distanceModel"),assignNativeAudioNodeOption(rt,nt,"maxDistance"),assignNativeAudioNodeOption(rt,nt,"panningModel"),assignNativeAudioNodeOption(rt,nt,"refDistance"),assignNativeAudioNodeOption(rt,nt,"rolloffFactor"),rt)},createNativePannerNodeFakerFactory=(tt,et,nt,rt,it,ot,at,st,lt,ct)=>(ut,{coneInnerAngle:ht,coneOuterAngle:dt,coneOuterGain:pt,distanceModel:mt,maxDistance:gt,orientationX:yt,orientationY:bt,orientationZ:wt,panningModel:vt,positionX:kt,positionY:St,positionZ:Tt,refDistance:At,rolloffFactor:Et,...Mt})=>{const Lt=ut.createPanner();if(Mt.channelCount>2||Mt.channelCountMode==="max")throw at();assignNativeAudioNodeOptions(Lt,Mt);const jt={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},Rt=nt(ut,{...jt,channelInterpretation:"speakers",numberOfInputs:6}),$t=rt(ut,{...Mt,gain:1}),xt=rt(ut,{...jt,gain:1}),It=rt(ut,{...jt,gain:0}),Ot=rt(ut,{...jt,gain:0}),zt=rt(ut,{...jt,gain:0}),Ut=rt(ut,{...jt,gain:0}),Wt=rt(ut,{...jt,gain:0}),Ft=it(ut,256,6,1),Nt=ot(ut,{...jt,curve:new Float32Array([1,1]),oversample:"none"});let Ct=[yt,bt,wt],Ht=[kt,St,Tt];const Jt=new Float32Array(1);Ft.onaudioprocess=({inputBuffer:cn})=>{const _n=[lt(cn,Jt,0),lt(cn,Jt,1),lt(cn,Jt,2)];_n.some((an,en)=>an!==Ct[en])&&(Lt.setOrientation(..._n),Ct=_n);const En=[lt(cn,Jt,3),lt(cn,Jt,4),lt(cn,Jt,5)];En.some((an,en)=>an!==Ht[en])&&(Lt.setPosition(...En),Ht=En)},Object.defineProperty(It.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Ot.gain,"defaultValue",{get:()=>0}),Object.defineProperty(zt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Ut.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Wt.gain,"defaultValue",{get:()=>0});const nn={get bufferSize(){},get channelCount(){return Lt.channelCount},set channelCount(cn){if(cn>2)throw at();$t.channelCount=cn,Lt.channelCount=cn},get channelCountMode(){return Lt.channelCountMode},set channelCountMode(cn){if(cn==="max")throw at();$t.channelCountMode=cn,Lt.channelCountMode=cn},get channelInterpretation(){return Lt.channelInterpretation},set channelInterpretation(cn){$t.channelInterpretation=cn,Lt.channelInterpretation=cn},get coneInnerAngle(){return Lt.coneInnerAngle},set coneInnerAngle(cn){Lt.coneInnerAngle=cn},get coneOuterAngle(){return Lt.coneOuterAngle},set coneOuterAngle(cn){Lt.coneOuterAngle=cn},get coneOuterGain(){return Lt.coneOuterGain},set coneOuterGain(cn){if(cn<0||cn>1)throw et();Lt.coneOuterGain=cn},get context(){return Lt.context},get distanceModel(){return Lt.distanceModel},set distanceModel(cn){Lt.distanceModel=cn},get inputs(){return[$t]},get maxDistance(){return Lt.maxDistance},set maxDistance(cn){if(cn<0)throw new RangeError;Lt.maxDistance=cn},get numberOfInputs(){return Lt.numberOfInputs},get numberOfOutputs(){return Lt.numberOfOutputs},get orientationX(){return xt.gain},get orientationY(){return It.gain},get orientationZ(){return Ot.gain},get panningModel(){return Lt.panningModel},set panningModel(cn){Lt.panningModel=cn},get positionX(){return zt.gain},get positionY(){return Ut.gain},get positionZ(){return Wt.gain},get refDistance(){return Lt.refDistance},set refDistance(cn){if(cn<0)throw new RangeError;Lt.refDistance=cn},get rolloffFactor(){return Lt.rolloffFactor},set rolloffFactor(cn){if(cn<0)throw new RangeError;Lt.rolloffFactor=cn},addEventListener(...cn){return $t.addEventListener(cn[0],cn[1],cn[2])},dispatchEvent(...cn){return $t.dispatchEvent(cn[0])},removeEventListener(...cn){return $t.removeEventListener(cn[0],cn[1],cn[2])}};ht!==nn.coneInnerAngle&&(nn.coneInnerAngle=ht),dt!==nn.coneOuterAngle&&(nn.coneOuterAngle=dt),pt!==nn.coneOuterGain&&(nn.coneOuterGain=pt),mt!==nn.distanceModel&&(nn.distanceModel=mt),gt!==nn.maxDistance&&(nn.maxDistance=gt),yt!==nn.orientationX.value&&(nn.orientationX.value=yt),bt!==nn.orientationY.value&&(nn.orientationY.value=bt),wt!==nn.orientationZ.value&&(nn.orientationZ.value=wt),vt!==nn.panningModel&&(nn.panningModel=vt),kt!==nn.positionX.value&&(nn.positionX.value=kt),St!==nn.positionY.value&&(nn.positionY.value=St),Tt!==nn.positionZ.value&&(nn.positionZ.value=Tt),At!==nn.refDistance&&(nn.refDistance=At),Et!==nn.rolloffFactor&&(nn.rolloffFactor=Et),(Ct[0]!==1||Ct[1]!==0||Ct[2]!==0)&&Lt.setOrientation(...Ct),(Ht[0]!==0||Ht[1]!==0||Ht[2]!==0)&&Lt.setPosition(...Ht);const Yt=()=>{$t.connect(Lt),tt($t,Nt,0,0),Nt.connect(xt).connect(Rt,0,0),Nt.connect(It).connect(Rt,0,1),Nt.connect(Ot).connect(Rt,0,2),Nt.connect(zt).connect(Rt,0,3),Nt.connect(Ut).connect(Rt,0,4),Nt.connect(Wt).connect(Rt,0,5),Rt.connect(Ft).connect(ut.destination)},fn=()=>{$t.disconnect(Lt),st($t,Nt,0,0),Nt.disconnect(xt),xt.disconnect(Rt),Nt.disconnect(It),It.disconnect(Rt),Nt.disconnect(Ot),Ot.disconnect(Rt),Nt.disconnect(zt),zt.disconnect(Rt),Nt.disconnect(Ut),Ut.disconnect(Rt),Nt.disconnect(Wt),Wt.disconnect(Rt),Rt.disconnect(Ft),Ft.disconnect(ut.destination)};return ct(interceptConnections(nn,Lt),Yt,fn)},createNativePeriodicWaveFactory=tt=>(et,{disableNormalization:nt,imag:rt,real:it})=>{const ot=rt instanceof Float32Array?rt:new Float32Array(rt),at=it instanceof Float32Array?it:new Float32Array(it),st=et.createPeriodicWave(at,ot,{disableNormalization:nt});if(Array.from(rt).length<2)throw tt();return st},createNativeScriptProcessorNode=(tt,et,nt,rt)=>tt.createScriptProcessor(et,nt,rt),createNativeStereoPannerNodeFactory=(tt,et)=>(nt,rt)=>{const it=rt.channelCountMode;if(it==="clamped-max")throw et();if(nt.createStereoPanner===void 0)return tt(nt,rt);const ot=nt.createStereoPanner();return assignNativeAudioNodeOptions(ot,rt),assignNativeAudioNodeAudioParamValue(ot,rt,"pan"),Object.defineProperty(ot,"channelCountMode",{get:()=>it,set:at=>{if(at!==it)throw et()}}),ot},createNativeStereoPannerNodeFakerFactory=(tt,et,nt,rt,it,ot)=>{const st=new Float32Array([1,1]),lt=Math.PI/2,ct={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},ut={...ct,oversample:"none"},ht=(mt,gt,yt,bt)=>{const wt=new Float32Array(16385),vt=new Float32Array(16385);for(let Mt=0;Mt<16385;Mt+=1){const Lt=Mt/16384*lt;wt[Mt]=Math.cos(Lt),vt[Mt]=Math.sin(Lt)}const kt=nt(mt,{...ct,gain:0}),St=rt(mt,{...ut,curve:wt}),Tt=rt(mt,{...ut,curve:st}),At=nt(mt,{...ct,gain:0}),Et=rt(mt,{...ut,curve:vt});return{connectGraph(){gt.connect(kt),gt.connect(Tt.inputs===void 0?Tt:Tt.inputs[0]),gt.connect(At),Tt.connect(yt),yt.connect(St.inputs===void 0?St:St.inputs[0]),yt.connect(Et.inputs===void 0?Et:Et.inputs[0]),St.connect(kt.gain),Et.connect(At.gain),kt.connect(bt,0,0),At.connect(bt,0,1)},disconnectGraph(){gt.disconnect(kt),gt.disconnect(Tt.inputs===void 0?Tt:Tt.inputs[0]),gt.disconnect(At),Tt.disconnect(yt),yt.disconnect(St.inputs===void 0?St:St.inputs[0]),yt.disconnect(Et.inputs===void 0?Et:Et.inputs[0]),St.disconnect(kt.gain),Et.disconnect(At.gain),kt.disconnect(bt,0,0),At.disconnect(bt,0,1)}}},dt=(mt,gt,yt,bt)=>{const wt=new Float32Array(16385),vt=new Float32Array(16385),kt=new Float32Array(16385),St=new Float32Array(16385),Tt=Math.floor(16385/2);for(let zt=0;zt<16385;zt+=1)if(zt>Tt){const Ut=(zt-Tt)/(16384-Tt)*lt;wt[zt]=Math.cos(Ut),vt[zt]=Math.sin(Ut),kt[zt]=0,St[zt]=1}else{const Ut=zt/(16384-Tt)*lt;wt[zt]=1,vt[zt]=0,kt[zt]=Math.cos(Ut),St[zt]=Math.sin(Ut)}const At=et(mt,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),Et=nt(mt,{...ct,gain:0}),Mt=rt(mt,{...ut,curve:wt}),Lt=nt(mt,{...ct,gain:0}),jt=rt(mt,{...ut,curve:vt}),Rt=rt(mt,{...ut,curve:st}),$t=nt(mt,{...ct,gain:0}),xt=rt(mt,{...ut,curve:kt}),It=nt(mt,{...ct,gain:0}),Ot=rt(mt,{...ut,curve:St});return{connectGraph(){gt.connect(At),gt.connect(Rt.inputs===void 0?Rt:Rt.inputs[0]),At.connect(Et,0),At.connect(Lt,0),At.connect($t,1),At.connect(It,1),Rt.connect(yt),yt.connect(Mt.inputs===void 0?Mt:Mt.inputs[0]),yt.connect(jt.inputs===void 0?jt:jt.inputs[0]),yt.connect(xt.inputs===void 0?xt:xt.inputs[0]),yt.connect(Ot.inputs===void 0?Ot:Ot.inputs[0]),Mt.connect(Et.gain),jt.connect(Lt.gain),xt.connect($t.gain),Ot.connect(It.gain),Et.connect(bt,0,0),$t.connect(bt,0,0),Lt.connect(bt,0,1),It.connect(bt,0,1)},disconnectGraph(){gt.disconnect(At),gt.disconnect(Rt.inputs===void 0?Rt:Rt.inputs[0]),At.disconnect(Et,0),At.disconnect(Lt,0),At.disconnect($t,1),At.disconnect(It,1),Rt.disconnect(yt),yt.disconnect(Mt.inputs===void 0?Mt:Mt.inputs[0]),yt.disconnect(jt.inputs===void 0?jt:jt.inputs[0]),yt.disconnect(xt.inputs===void 0?xt:xt.inputs[0]),yt.disconnect(Ot.inputs===void 0?Ot:Ot.inputs[0]),Mt.disconnect(Et.gain),jt.disconnect(Lt.gain),xt.disconnect($t.gain),Ot.disconnect(It.gain),Et.disconnect(bt,0,0),$t.disconnect(bt,0,0),Lt.disconnect(bt,0,1),It.disconnect(bt,0,1)}}},pt=(mt,gt,yt,bt,wt)=>{if(gt===1)return ht(mt,yt,bt,wt);if(gt===2)return dt(mt,yt,bt,wt);throw it()};return(mt,{channelCount:gt,channelCountMode:yt,pan:bt,...wt})=>{if(yt==="max")throw it();const vt=tt(mt,{...wt,channelCount:1,channelCountMode:yt,numberOfInputs:2}),kt=nt(mt,{...wt,channelCount:gt,channelCountMode:yt,gain:1}),St=nt(mt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:bt});let{connectGraph:Tt,disconnectGraph:At}=pt(mt,gt,kt,St,vt);Object.defineProperty(St.gain,"defaultValue",{get:()=>0}),Object.defineProperty(St.gain,"maxValue",{get:()=>1}),Object.defineProperty(St.gain,"minValue",{get:()=>-1});const Et={get bufferSize(){},get channelCount(){return kt.channelCount},set channelCount(Rt){kt.channelCount!==Rt&&(Mt&&At(),{connectGraph:Tt,disconnectGraph:At}=pt(mt,Rt,kt,St,vt),Mt&&Tt()),kt.channelCount=Rt},get channelCountMode(){return kt.channelCountMode},set channelCountMode(Rt){if(Rt==="clamped-max"||Rt==="max")throw it();kt.channelCountMode=Rt},get channelInterpretation(){return kt.channelInterpretation},set channelInterpretation(Rt){kt.channelInterpretation=Rt},get context(){return kt.context},get inputs(){return[kt]},get numberOfInputs(){return kt.numberOfInputs},get numberOfOutputs(){return kt.numberOfOutputs},get pan(){return St.gain},addEventListener(...Rt){return kt.addEventListener(Rt[0],Rt[1],Rt[2])},dispatchEvent(...Rt){return kt.dispatchEvent(Rt[0])},removeEventListener(...Rt){return kt.removeEventListener(Rt[0],Rt[1],Rt[2])}};let Mt=!1;const Lt=()=>{Tt(),Mt=!0},jt=()=>{At(),Mt=!1};return ot(interceptConnections(Et,vt),Lt,jt)}},createNativeWaveShaperNodeFactory=(tt,et,nt,rt,it,ot,at)=>(st,lt)=>{const ct=st.createWaveShaper();if(ot!==null&&ot.name==="webkitAudioContext"&&st.createGain().gain.automationRate===void 0)return nt(st,lt);assignNativeAudioNodeOptions(ct,lt);const ut=lt.curve===null||lt.curve instanceof Float32Array?lt.curve:new Float32Array(lt.curve);if(ut!==null&&ut.length<2)throw et();assignNativeAudioNodeOption(ct,{curve:ut},"curve"),assignNativeAudioNodeOption(ct,lt,"oversample");let ht=null,dt=!1;return at(ct,"curve",gt=>()=>gt.call(ct),gt=>yt=>(gt.call(ct,yt),dt&&(rt(yt)&&ht===null?ht=tt(st,ct):!rt(yt)&&ht!==null&&(ht(),ht=null)),yt)),it(ct,()=>{dt=!0,rt(ct.curve)&&(ht=tt(st,ct))},()=>{dt=!1,ht!==null&&(ht(),ht=null)})},createNativeWaveShaperNodeFakerFactory=(tt,et,nt,rt,it)=>(ot,{curve:at,oversample:st,...lt})=>{const ct=ot.createWaveShaper(),ut=ot.createWaveShaper();assignNativeAudioNodeOptions(ct,lt),assignNativeAudioNodeOptions(ut,lt);const ht=nt(ot,{...lt,gain:1}),dt=nt(ot,{...lt,gain:-1}),pt=nt(ot,{...lt,gain:1}),mt=nt(ot,{...lt,gain:-1});let gt=null,yt=!1,bt=null;const wt={get bufferSize(){},get channelCount(){return ct.channelCount},set channelCount(St){ht.channelCount=St,dt.channelCount=St,ct.channelCount=St,pt.channelCount=St,ut.channelCount=St,mt.channelCount=St},get channelCountMode(){return ct.channelCountMode},set channelCountMode(St){ht.channelCountMode=St,dt.channelCountMode=St,ct.channelCountMode=St,pt.channelCountMode=St,ut.channelCountMode=St,mt.channelCountMode=St},get channelInterpretation(){return ct.channelInterpretation},set channelInterpretation(St){ht.channelInterpretation=St,dt.channelInterpretation=St,ct.channelInterpretation=St,pt.channelInterpretation=St,ut.channelInterpretation=St,mt.channelInterpretation=St},get context(){return ct.context},get curve(){return bt},set curve(St){if(St!==null&&St.length<2)throw et();if(St===null)ct.curve=St,ut.curve=St;else{const Tt=St.length,At=new Float32Array(Tt+2-Tt%2),Et=new Float32Array(Tt+2-Tt%2);At[0]=St[0],Et[0]=-St[Tt-1];const Mt=Math.ceil((Tt+1)/2),Lt=(Tt+1)/2-1;for(let jt=1;jt{ht.connect(ct).connect(pt),ht.connect(dt).connect(ut).connect(mt).connect(pt),yt=!0,rt(bt)&&(gt=tt(ot,ht))},kt=()=>{ht.disconnect(ct),ct.disconnect(pt),ht.disconnect(dt),dt.disconnect(ut),ut.disconnect(mt),mt.disconnect(pt),yt=!1,gt!==null&&(gt(),gt=null)};return it(interceptConnections(wt,pt),vt,kt)},createNotSupportedError=()=>new DOMException("","NotSupportedError"),DEFAULT_OPTIONS$5={numberOfChannels:1},createOfflineAudioContextConstructor=(tt,et,nt,rt,it)=>class extends tt{constructor(at,st,lt){let ct;if(typeof at=="number"&&st!==void 0&<!==void 0)ct={length:st,numberOfChannels:at,sampleRate:lt};else if(typeof at=="object")ct=at;else throw new Error("The given parameters are not valid.");const{length:ut,numberOfChannels:ht,sampleRate:dt}={...DEFAULT_OPTIONS$5,...ct},pt=rt(ht,ut,dt);et(testPromiseSupport,()=>testPromiseSupport(pt))||pt.addEventListener("statechange",(()=>{let mt=0;const gt=yt=>{this._state==="running"&&(mt>0?(pt.removeEventListener("statechange",gt),yt.stopImmediatePropagation(),this._waitForThePromiseToSettle(yt)):mt+=1)};return gt})()),super(pt,ht),this._length=ut,this._nativeOfflineAudioContext=pt,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(nt()):(this._state="running",it(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,deactivateAudioGraph(this)}))}_waitForThePromiseToSettle(at){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(at):setTimeout(()=>this._waitForThePromiseToSettle(at))}},DEFAULT_OPTIONS$4={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},createOscillatorNodeConstructor=(tt,et,nt,rt,it,ot,at)=>class extends tt{constructor(lt,ct){const ut=it(lt),ht={...DEFAULT_OPTIONS$4,...ct},dt=nt(ut,ht),pt=ot(ut),mt=pt?rt():null,gt=lt.sampleRate/2;super(lt,!1,dt,mt),this._detune=et(this,pt,dt.detune,153600,-153600),this._frequency=et(this,pt,dt.frequency,gt,-gt),this._nativeOscillatorNode=dt,this._onended=null,this._oscillatorNodeRenderer=mt,this._oscillatorNodeRenderer!==null&&ht.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=ht.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(lt){const ct=typeof lt=="function"?at(this,lt):null;this._nativeOscillatorNode.onended=ct;const ut=this._nativeOscillatorNode.onended;this._onended=ut!==null&&ut===ct?lt:ut}get type(){return this._nativeOscillatorNode.type}set type(lt){this._nativeOscillatorNode.type=lt,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(lt){this._nativeOscillatorNode.setPeriodicWave(lt),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=lt)}start(lt=0){if(this._nativeOscillatorNode.start(lt),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=lt),this.context.state!=="closed"){setInternalStateToActive(this);const ct=()=>{this._nativeOscillatorNode.removeEventListener("ended",ct),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeOscillatorNode.addEventListener("ended",ct)}}stop(lt=0){this._nativeOscillatorNode.stop(lt),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=lt)}},createOscillatorNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap;let at=null,st=null,lt=null;const ct=async(ut,ht)=>{let dt=nt(ut);const pt=isOwnedByContext(dt,ht);if(!pt){const mt={channelCount:dt.channelCount,channelCountMode:dt.channelCountMode,channelInterpretation:dt.channelInterpretation,detune:dt.detune.value,frequency:dt.frequency.value,periodicWave:at===null?void 0:at,type:dt.type};dt=et(ht,mt),st!==null&&dt.start(st),lt!==null&&dt.stop(lt)}return ot.set(ht,dt),pt?(await tt(ht,ut.detune,dt.detune),await tt(ht,ut.frequency,dt.frequency)):(await rt(ht,ut.detune,dt.detune),await rt(ht,ut.frequency,dt.frequency)),await it(ut,ht,dt),dt};return{set periodicWave(ut){at=ut},set start(ut){st=ut},set stop(ut){lt=ut},render(ut,ht){const dt=ot.get(ht);return dt!==void 0?Promise.resolve(dt):ct(ut,ht)}}},DEFAULT_OPTIONS$3={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},createPannerNodeConstructor=(tt,et,nt,rt,it,ot,at)=>class extends tt{constructor(lt,ct){const ut=it(lt),ht={...DEFAULT_OPTIONS$3,...ct},dt=nt(ut,ht),pt=ot(ut),mt=pt?rt():null;super(lt,!1,dt,mt),this._nativePannerNode=dt,this._orientationX=et(this,pt,dt.orientationX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationY=et(this,pt,dt.orientationY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationZ=et(this,pt,dt.orientationZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionX=et(this,pt,dt.positionX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionY=et(this,pt,dt.positionY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionZ=et(this,pt,dt.positionZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),at(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(lt){this._nativePannerNode.coneInnerAngle=lt}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(lt){this._nativePannerNode.coneOuterAngle=lt}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(lt){this._nativePannerNode.coneOuterGain=lt}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(lt){this._nativePannerNode.distanceModel=lt}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(lt){this._nativePannerNode.maxDistance=lt}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(lt){this._nativePannerNode.panningModel=lt}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(lt){this._nativePannerNode.refDistance=lt}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(lt){this._nativePannerNode.rolloffFactor=lt}},createPannerNodeRendererFactory=(tt,et,nt,rt,it,ot,at,st,lt,ct)=>()=>{const ut=new WeakMap;let ht=null;const dt=async(pt,mt)=>{let gt=null,yt=ot(pt);const bt={channelCount:yt.channelCount,channelCountMode:yt.channelCountMode,channelInterpretation:yt.channelInterpretation},wt={...bt,coneInnerAngle:yt.coneInnerAngle,coneOuterAngle:yt.coneOuterAngle,coneOuterGain:yt.coneOuterGain,distanceModel:yt.distanceModel,maxDistance:yt.maxDistance,panningModel:yt.panningModel,refDistance:yt.refDistance,rolloffFactor:yt.rolloffFactor},vt=isOwnedByContext(yt,mt);if("bufferSize"in yt)gt=rt(mt,{...bt,gain:1});else if(!vt){const kt={...wt,orientationX:yt.orientationX.value,orientationY:yt.orientationY.value,orientationZ:yt.orientationZ.value,positionX:yt.positionX.value,positionY:yt.positionY.value,positionZ:yt.positionZ.value};yt=it(mt,kt)}if(ut.set(mt,gt===null?yt:gt),gt!==null){if(ht===null){if(at===null)throw new Error("Missing the native OfflineAudioContext constructor.");const jt=new at(6,pt.context.length,mt.sampleRate),Rt=et(jt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});Rt.connect(jt.destination),ht=(async()=>{const $t=await Promise.all([pt.orientationX,pt.orientationY,pt.orientationZ,pt.positionX,pt.positionY,pt.positionZ].map(async(xt,It)=>{const Ot=nt(jt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:It===0?1:0});return await st(jt,xt,Ot.offset),Ot}));for(let xt=0;xt<6;xt+=1)$t[xt].connect(Rt,0,xt),$t[xt].start(0);return ct(jt)})()}const kt=await ht,St=rt(mt,{...bt,gain:1});await lt(pt,mt,St);const Tt=[];for(let jt=0;jtxt!==At[It])||$t.some((xt,It)=>xt!==Et[It])){At=Rt,Et=$t;const xt=jt/mt.sampleRate;Mt.gain.setValueAtTime(0,xt),Mt=rt(mt,{...bt,gain:0}),Lt=it(mt,{...wt,orientationX:At[0],orientationY:At[1],orientationZ:At[2],positionX:Et[0],positionY:Et[1],positionZ:Et[2]}),Mt.gain.setValueAtTime(1,xt),St.connect(Mt).connect(Lt.inputs[0]),Lt.connect(gt)}}return gt}return vt?(await tt(mt,pt.orientationX,yt.orientationX),await tt(mt,pt.orientationY,yt.orientationY),await tt(mt,pt.orientationZ,yt.orientationZ),await tt(mt,pt.positionX,yt.positionX),await tt(mt,pt.positionY,yt.positionY),await tt(mt,pt.positionZ,yt.positionZ)):(await st(mt,pt.orientationX,yt.orientationX),await st(mt,pt.orientationY,yt.orientationY),await st(mt,pt.orientationZ,yt.orientationZ),await st(mt,pt.positionX,yt.positionX),await st(mt,pt.positionY,yt.positionY),await st(mt,pt.positionZ,yt.positionZ)),isNativeAudioNodeFaker(yt)?await lt(pt,mt,yt.inputs[0]):await lt(pt,mt,yt),yt};return{render(pt,mt){const gt=ut.get(mt);return gt!==void 0?Promise.resolve(gt):dt(pt,mt)}}},DEFAULT_OPTIONS$2={disableNormalization:!1},createPeriodicWaveConstructor=(tt,et,nt,rt)=>class ww{constructor(ot,at){const st=et(ot),lt=rt({...DEFAULT_OPTIONS$2,...at}),ct=tt(st,lt);return nt.add(ct),ct}static[Symbol.hasInstance](ot){return ot!==null&&typeof ot=="object"&&Object.getPrototypeOf(ot)===ww.prototype||nt.has(ot)}},createRenderAutomation=(tt,et)=>(nt,rt,it)=>(tt(rt).replay(it),et(rt,nt,it)),createRenderInputsOfAudioNode=(tt,et,nt)=>async(rt,it,ot)=>{const at=tt(rt);await Promise.all(at.activeInputs.map((st,lt)=>Array.from(st).map(async([ct,ut])=>{const dt=await et(ct).render(ct,it),pt=rt.context.destination;!nt(ct)&&(rt!==pt||!nt(rt))&&dt.connect(ot,ut,lt)})).reduce((st,lt)=>[...st,...lt],[]))},createRenderInputsOfAudioParam=(tt,et,nt)=>async(rt,it,ot)=>{const at=et(rt);await Promise.all(Array.from(at.activeInputs).map(async([st,lt])=>{const ut=await tt(st).render(st,it);nt(st)||ut.connect(ot,lt)}))},createRenderNativeOfflineAudioContext=(tt,et,nt,rt)=>it=>tt(testPromiseSupport,()=>testPromiseSupport(it))?Promise.resolve(tt(rt,rt)).then(ot=>{if(!ot){const at=nt(it,512,0,1);it.oncomplete=()=>{at.onaudioprocess=null,at.disconnect()},at.onaudioprocess=()=>it.currentTime,at.connect(it.destination)}return it.startRendering()}):new Promise(ot=>{const at=et(it,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});it.oncomplete=st=>{at.disconnect(),ot(st.renderedBuffer)},at.connect(it.destination),it.startRendering()}),createSetActiveAudioWorkletNodeInputs=tt=>(et,nt)=>{tt.set(et,nt)},createSetAudioNodeTailTime=tt=>(et,nt)=>tt.set(et,nt),createStartRendering=(tt,et,nt,rt,it,ot,at,st)=>(lt,ct)=>nt(lt).render(lt,ct).then(()=>Promise.all(Array.from(rt(ct)).map(ut=>nt(ut).render(ut,ct)))).then(()=>it(ct)).then(ut=>(typeof ut.copyFromChannel!="function"?(at(ut),wrapAudioBufferGetChannelDataMethod(ut)):et(ot,()=>ot(ut))||st(ut),tt.add(ut),ut)),DEFAULT_OPTIONS$1={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},createStereoPannerNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=it(st),ut={...DEFAULT_OPTIONS$1,...lt},ht=nt(ct,ut),dt=ot(ct),pt=dt?rt():null;super(st,!1,ht,pt),this._pan=et(this,dt,ht.pan)}get pan(){return this._pan}},createStereoPannerNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap,at=async(st,lt)=>{let ct=nt(st);const ut=isOwnedByContext(ct,lt);if(!ut){const ht={channelCount:ct.channelCount,channelCountMode:ct.channelCountMode,channelInterpretation:ct.channelInterpretation,pan:ct.pan.value};ct=et(lt,ht)}return ot.set(lt,ct),ut?await tt(lt,st.pan,ct.pan):await rt(lt,st.pan,ct.pan),isNativeAudioNodeFaker(ct)?await it(st,lt,ct.inputs[0]):await it(st,lt,ct),ct};return{render(st,lt){const ct=ot.get(lt);return ct!==void 0?Promise.resolve(ct):at(st,lt)}}},createTestAudioBufferConstructorSupport=tt=>()=>{if(tt===null)return!1;try{new tt({length:1,sampleRate:44100})}catch{return!1}return!0},createTestAudioWorkletProcessorPostMessageSupport=(tt,et)=>async()=>{if(tt===null)return!0;if(et===null)return!1;const nt=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),rt=new et(1,128,44100),it=URL.createObjectURL(nt);let ot=!1,at=!1;try{await rt.audioWorklet.addModule(it);const st=new tt(rt,"a",{numberOfOutputs:0}),lt=rt.createOscillator();st.port.onmessage=()=>ot=!0,st.onprocessorerror=()=>at=!0,lt.connect(st),lt.start(0),await rt.startRendering()}catch{}finally{URL.revokeObjectURL(it)}return ot&&!at},createTestOfflineAudioContextCurrentTimeSupport=(tt,et)=>()=>{if(et===null)return Promise.resolve(!1);const nt=new et(1,1,44100),rt=tt(nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(it=>{nt.oncomplete=()=>{rt.disconnect(),it(nt.currentTime!==0)},nt.startRendering()})},createUnknownError=()=>new DOMException("","UnknownError"),DEFAULT_OPTIONS={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},createWaveShaperNodeConstructor=(tt,et,nt,rt,it,ot,at)=>class extends tt{constructor(lt,ct){const ut=it(lt),ht={...DEFAULT_OPTIONS,...ct},dt=nt(ut,ht),mt=ot(ut)?rt():null;super(lt,!0,dt,mt),this._isCurveNullified=!1,this._nativeWaveShaperNode=dt,at(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(lt){if(lt===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(lt.length<2)throw et();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=lt}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(lt){this._nativeWaveShaperNode.oversample=lt}},createWaveShaperNodeRendererFactory=(tt,et,nt)=>()=>{const rt=new WeakMap,it=async(ot,at)=>{let st=et(ot);if(!isOwnedByContext(st,at)){const ct={channelCount:st.channelCount,channelCountMode:st.channelCountMode,channelInterpretation:st.channelInterpretation,curve:st.curve,oversample:st.oversample};st=tt(at,ct)}return rt.set(at,st),isNativeAudioNodeFaker(st)?await nt(ot,at,st.inputs[0]):await nt(ot,at,st),st};return{render(ot,at){const st=rt.get(at);return st!==void 0?Promise.resolve(st):it(ot,at)}}},createWindow=()=>typeof window>"u"?null:window,createWrapAudioBufferCopyChannelMethods=(tt,et)=>nt=>{nt.copyFromChannel=(rt,it,ot=0)=>{const at=tt(ot),st=tt(it);if(st>=nt.numberOfChannels)throw et();const lt=nt.length,ct=nt.getChannelData(st),ut=rt.length;for(let ht=at<0?-at:0;ht+at{const at=tt(ot),st=tt(it);if(st>=nt.numberOfChannels)throw et();const lt=nt.length,ct=nt.getChannelData(st),ut=rt.length;for(let ht=at<0?-at:0;ht+atet=>{et.copyFromChannel=(nt=>(rt,it,ot=0)=>{const at=tt(ot),st=tt(it);if(at(rt,it,ot=0)=>{const at=tt(ot),st=tt(it);if(at(et,nt)=>{const rt=nt.createBuffer(1,1,44100);et.buffer===null&&(et.buffer=rt),tt(et,"buffer",it=>()=>{const ot=it.call(et);return ot===rt?null:ot},it=>ot=>it.call(et,ot===null?rt:ot))},createWrapChannelMergerNode=(tt,et)=>(nt,rt)=>{rt.channelCount=1,rt.channelCountMode="explicit",Object.defineProperty(rt,"channelCount",{get:()=>1,set:()=>{throw tt()}}),Object.defineProperty(rt,"channelCountMode",{get:()=>"explicit",set:()=>{throw tt()}});const it=nt.createBufferSource();et(rt,()=>{const st=rt.numberOfInputs;for(let lt=0;ltit.disconnect(rt))},getFirstSample=(tt,et,nt)=>tt.copyFromChannel===void 0?tt.getChannelData(nt)[0]:(tt.copyFromChannel(et,nt),et[0]),isDCCurve=tt=>{if(tt===null)return!1;const et=tt.length;return et%2!==0?tt[Math.floor(et/2)]!==0:tt[et/2-1]+tt[et/2]!==0},overwriteAccessors=(tt,et,nt,rt)=>{let it=tt;for(;!it.hasOwnProperty(et);)it=Object.getPrototypeOf(it);const{get:ot,set:at}=Object.getOwnPropertyDescriptor(it,et);Object.defineProperty(tt,et,{get:nt(ot),set:rt(at)})},sanitizeAudioWorkletNodeOptions=tt=>({...tt,outputChannelCount:tt.outputChannelCount!==void 0?tt.outputChannelCount:tt.numberOfInputs===1&&tt.numberOfOutputs===1?[tt.channelCount]:Array.from({length:tt.numberOfOutputs},()=>1)}),sanitizeChannelSplitterOptions=tt=>({...tt,channelCount:tt.numberOfOutputs}),sanitizePeriodicWaveOptions=tt=>{const{imag:et,real:nt}=tt;return et===void 0?nt===void 0?{...tt,imag:[0,0],real:[0,0]}:{...tt,imag:Array.from(nt,()=>0),real:nt}:nt===void 0?{...tt,imag:et,real:Array.from(et,()=>0)}:{...tt,imag:et,real:nt}},setValueAtTimeUntilPossible=(tt,et,nt)=>{try{tt.setValueAtTime(et,nt)}catch(rt){if(rt.code!==9)throw rt;setValueAtTimeUntilPossible(tt,et,nt+1e-7)}},testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport=tt=>{const et=tt.createBufferSource();et.start();try{et.start()}catch{return!0}return!1},testAudioBufferSourceNodeStartMethodOffsetClampingSupport=tt=>{const et=tt.createBufferSource(),nt=tt.createBuffer(1,1,44100);et.buffer=nt;try{et.start(0,1)}catch{return!1}return!0},testAudioBufferSourceNodeStopMethodNullifiedBufferSupport=tt=>{const et=tt.createBufferSource();et.start();try{et.stop()}catch{return!1}return!0},testAudioScheduledSourceNodeStartMethodNegativeParametersSupport=tt=>{const et=tt.createOscillator();try{et.start(-1)}catch(nt){return nt instanceof RangeError}return!1},testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport=tt=>{const et=tt.createBuffer(1,1,44100),nt=tt.createBufferSource();nt.buffer=et,nt.start(),nt.stop();try{return nt.stop(),!0}catch{return!1}},testAudioScheduledSourceNodeStopMethodNegativeParametersSupport=tt=>{const et=tt.createOscillator();try{et.stop(-1)}catch(nt){return nt instanceof RangeError}return!1},testAudioWorkletNodeOptionsClonability=tt=>{const{port1:et,port2:nt}=new MessageChannel;try{et.postMessage(tt)}finally{et.close(),nt.close()}},wrapAudioBufferSourceNodeStartMethodOffsetClamping=tt=>{tt.start=(et=>(nt=0,rt=0,it)=>{const ot=tt.buffer,at=ot===null?rt:Math.min(ot.duration,rt);ot!==null&&at>ot.duration-.5/tt.context.sampleRate?et.call(tt,nt,0,0):et.call(tt,nt,at,it)})(tt.start)},wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls=(tt,et)=>{const nt=et.createGain();tt.connect(nt);const rt=(it=>()=>{it.call(tt,nt),tt.removeEventListener("ended",rt)})(tt.disconnect);tt.addEventListener("ended",rt),interceptConnections(tt,nt),tt.stop=(it=>{let ot=!1;return(at=0)=>{if(ot)try{it.call(tt,at)}catch{nt.gain.setValueAtTime(0,at)}else it.call(tt,at),ot=!0}})(tt.stop)},wrapEventListener=(tt,et)=>nt=>{const rt={value:tt};return Object.defineProperties(nt,{currentTarget:rt,target:rt}),typeof et=="function"?et.call(tt,nt):et.handleEvent.call(tt,nt)},addActiveInputConnectionToAudioNode=createAddActiveInputConnectionToAudioNode(insertElementInSet),addPassiveInputConnectionToAudioNode=createAddPassiveInputConnectionToAudioNode(insertElementInSet),deleteActiveInputConnectionToAudioNode=createDeleteActiveInputConnectionToAudioNode(pickElementFromSet),audioNodeTailTimeStore=new WeakMap,getAudioNodeTailTime=createGetAudioNodeTailTime(audioNodeTailTimeStore),cacheTestResult=createCacheTestResult(new Map,new WeakMap),window$1=createWindow(),createNativeAnalyserNode=createNativeAnalyserNodeFactory(cacheTestResult,createIndexSizeError),getAudioNodeRenderer=createGetAudioNodeRenderer(getAudioNodeConnections),renderInputsOfAudioNode=createRenderInputsOfAudioNode(getAudioNodeConnections,getAudioNodeRenderer,isPartOfACycle),createAnalyserNodeRenderer=createAnalyserNodeRendererFactory(createNativeAnalyserNode,getNativeAudioNode,renderInputsOfAudioNode),getNativeContext=createGetNativeContext(CONTEXT_STORE),nativeOfflineAudioContextConstructor=createNativeOfflineAudioContextConstructor(window$1),isNativeOfflineAudioContext=createIsNativeOfflineAudioContext(nativeOfflineAudioContextConstructor),audioParamAudioNodeStore=new WeakMap,eventTargetConstructor=createEventTargetConstructor(wrapEventListener),nativeAudioContextConstructor=createNativeAudioContextConstructor(window$1),isNativeAudioContext=createIsNativeAudioContext(nativeAudioContextConstructor),isNativeAudioNode=createIsNativeAudioNode(window$1),isNativeAudioParam=createIsNativeAudioParam(window$1),nativeAudioWorkletNodeConstructor=createNativeAudioWorkletNodeConstructor(window$1),audioNodeConstructor=createAudioNodeConstructor(createAddAudioNodeConnections(AUDIO_NODE_CONNECTIONS_STORE),createAddConnectionToAudioNode(addActiveInputConnectionToAudioNode,addPassiveInputConnectionToAudioNode,connectNativeAudioNodeToNativeAudioNode,deleteActiveInputConnectionToAudioNode,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getAudioNodeTailTime,getEventListenersOfAudioNode,getNativeAudioNode,insertElementInSet,isActiveAudioNode,isPartOfACycle,isPassiveAudioNode),cacheTestResult,createIncrementCycleCounterFactory(CYCLE_COUNTERS,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,isActiveAudioNode),createIndexSizeError,createInvalidAccessError,createNotSupportedError,createDecrementCycleCounter(connectNativeAudioNodeToNativeAudioNode,CYCLE_COUNTERS,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,getNativeContext,isActiveAudioNode,isNativeOfflineAudioContext),createDetectCycles(audioParamAudioNodeStore,getAudioNodeConnections,getValueForKey),eventTargetConstructor,getNativeContext,isNativeAudioContext,isNativeAudioNode,isNativeAudioParam,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor),analyserNodeConstructor=createAnalyserNodeConstructor(audioNodeConstructor,createAnalyserNodeRenderer,createIndexSizeError,createNativeAnalyserNode,getNativeContext,isNativeOfflineAudioContext),audioBufferStore=new WeakSet,nativeAudioBufferConstructor=createNativeAudioBufferConstructor(window$1),convertNumberToUnsignedLong=createConvertNumberToUnsignedLong(new Uint32Array(1)),wrapAudioBufferCopyChannelMethods=createWrapAudioBufferCopyChannelMethods(convertNumberToUnsignedLong,createIndexSizeError),wrapAudioBufferCopyChannelMethodsOutOfBounds=createWrapAudioBufferCopyChannelMethodsOutOfBounds(convertNumberToUnsignedLong),audioBufferConstructor=createAudioBufferConstructor(audioBufferStore,cacheTestResult,createNotSupportedError,nativeAudioBufferConstructor,nativeOfflineAudioContextConstructor,createTestAudioBufferConstructorSupport(nativeAudioBufferConstructor),wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),addSilentConnection=createAddSilentConnection(createNativeGainNode),renderInputsOfAudioParam=createRenderInputsOfAudioParam(getAudioNodeRenderer,getAudioParamConnections,isPartOfACycle),connectAudioParam=createConnectAudioParam(renderInputsOfAudioParam),createNativeAudioBufferSourceNode=createNativeAudioBufferSourceNodeFactory(addSilentConnection,cacheTestResult,testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport,testAudioBufferSourceNodeStartMethodOffsetClampingSupport,testAudioBufferSourceNodeStopMethodNullifiedBufferSupport,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioBufferSourceNodeStartMethodOffsetClamping,createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer(overwriteAccessors),wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),renderAutomation=createRenderAutomation(createGetAudioParamRenderer(getAudioParamConnections),renderInputsOfAudioParam),createAudioBufferSourceNodeRenderer=createAudioBufferSourceNodeRendererFactory(connectAudioParam,createNativeAudioBufferSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),createAudioParam=createAudioParamFactory(createAddAudioParamConnections(AUDIO_PARAM_CONNECTIONS_STORE),audioParamAudioNodeStore,AUDIO_PARAM_STORE,createAudioParamRenderer,createCancelAndHoldAutomationEvent,createCancelScheduledValuesAutomationEvent,createExponentialRampToValueAutomationEvent,createLinearRampToValueAutomationEvent,createSetTargetAutomationEvent,createSetValueAutomationEvent,createSetValueCurveAutomationEvent,nativeAudioContextConstructor,setValueAtTimeUntilPossible),audioBufferSourceNodeConstructor=createAudioBufferSourceNodeConstructor(audioNodeConstructor,createAudioBufferSourceNodeRenderer,createAudioParam,createInvalidStateError,createNativeAudioBufferSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),audioDestinationNodeConstructor=createAudioDestinationNodeConstructor(audioNodeConstructor,createAudioDestinationNodeRenderer,createIndexSizeError,createInvalidStateError,createNativeAudioDestinationNodeFactory(createNativeGainNode,overwriteAccessors),getNativeContext,isNativeOfflineAudioContext,renderInputsOfAudioNode),createBiquadFilterNodeRenderer=createBiquadFilterNodeRendererFactory(connectAudioParam,createNativeBiquadFilterNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),setAudioNodeTailTime=createSetAudioNodeTailTime(audioNodeTailTimeStore),biquadFilterNodeConstructor=createBiquadFilterNodeConstructor(audioNodeConstructor,createAudioParam,createBiquadFilterNodeRenderer,createInvalidAccessError,createNativeBiquadFilterNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),monitorConnections=createMonitorConnections(insertElementInSet,isNativeAudioNode),wrapChannelMergerNode=createWrapChannelMergerNode(createInvalidStateError,monitorConnections),createNativeChannelMergerNode=createNativeChannelMergerNodeFactory(nativeAudioContextConstructor,wrapChannelMergerNode),createChannelMergerNodeRenderer=createChannelMergerNodeRendererFactory(createNativeChannelMergerNode,getNativeAudioNode,renderInputsOfAudioNode),channelMergerNodeConstructor=createChannelMergerNodeConstructor(audioNodeConstructor,createChannelMergerNodeRenderer,createNativeChannelMergerNode,getNativeContext,isNativeOfflineAudioContext),createChannelSplitterNodeRenderer=createChannelSplitterNodeRendererFactory(createNativeChannelSplitterNode,getNativeAudioNode,renderInputsOfAudioNode),channelSplitterNodeConstructor=createChannelSplitterNodeConstructor(audioNodeConstructor,createChannelSplitterNodeRenderer,createNativeChannelSplitterNode,getNativeContext,isNativeOfflineAudioContext,sanitizeChannelSplitterOptions),createNativeConstantSourceNodeFaker=createNativeConstantSourceNodeFakerFactory(addSilentConnection,createNativeAudioBufferSourceNode,createNativeGainNode,monitorConnections),createNativeConstantSourceNode=createNativeConstantSourceNodeFactory(addSilentConnection,cacheTestResult,createNativeConstantSourceNodeFaker,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport),createConstantSourceNodeRenderer=createConstantSourceNodeRendererFactory(connectAudioParam,createNativeConstantSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),constantSourceNodeConstructor=createConstantSourceNodeConstructor(audioNodeConstructor,createAudioParam,createConstantSourceNodeRenderer,createNativeConstantSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createNativeConvolverNode=createNativeConvolverNodeFactory(createNotSupportedError,overwriteAccessors),createConvolverNodeRenderer=createConvolverNodeRendererFactory(createNativeConvolverNode,getNativeAudioNode,renderInputsOfAudioNode),convolverNodeConstructor=createConvolverNodeConstructor(audioNodeConstructor,createConvolverNodeRenderer,createNativeConvolverNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createDelayNodeRenderer=createDelayNodeRendererFactory(connectAudioParam,createNativeDelayNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),delayNodeConstructor=createDelayNodeConstructor(audioNodeConstructor,createAudioParam,createDelayNodeRenderer,createNativeDelayNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativeDynamicsCompressorNode=createNativeDynamicsCompressorNodeFactory(createNotSupportedError),createDynamicsCompressorNodeRenderer=createDynamicsCompressorNodeRendererFactory(connectAudioParam,createNativeDynamicsCompressorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),dynamicsCompressorNodeConstructor=createDynamicsCompressorNodeConstructor(audioNodeConstructor,createAudioParam,createDynamicsCompressorNodeRenderer,createNativeDynamicsCompressorNode,createNotSupportedError,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createGainNodeRenderer=createGainNodeRendererFactory(connectAudioParam,createNativeGainNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),gainNodeConstructor=createGainNodeConstructor(audioNodeConstructor,createAudioParam,createGainNodeRenderer,createNativeGainNode,getNativeContext,isNativeOfflineAudioContext),createNativeIIRFilterNodeFaker=createNativeIIRFilterNodeFakerFactory(createInvalidAccessError,createInvalidStateError,createNativeScriptProcessorNode,createNotSupportedError),renderNativeOfflineAudioContext=createRenderNativeOfflineAudioContext(cacheTestResult,createNativeGainNode,createNativeScriptProcessorNode,createTestOfflineAudioContextCurrentTimeSupport(createNativeGainNode,nativeOfflineAudioContextConstructor)),createIIRFilterNodeRenderer=createIIRFilterNodeRendererFactory(createNativeAudioBufferSourceNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderInputsOfAudioNode,renderNativeOfflineAudioContext),createNativeIIRFilterNode=createNativeIIRFilterNodeFactory(createNativeIIRFilterNodeFaker),iIRFilterNodeConstructor=createIIRFilterNodeConstructor(audioNodeConstructor,createNativeIIRFilterNode,createIIRFilterNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createAudioListener=createAudioListenerFactory(createAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeScriptProcessorNode,createNotSupportedError,getFirstSample,isNativeOfflineAudioContext,overwriteAccessors),unrenderedAudioWorkletNodeStore=new WeakMap,minimalBaseAudioContextConstructor=createMinimalBaseAudioContextConstructor(audioDestinationNodeConstructor,createAudioListener,eventTargetConstructor,isNativeOfflineAudioContext,unrenderedAudioWorkletNodeStore,wrapEventListener),createNativeOscillatorNode=createNativeOscillatorNodeFactory(addSilentConnection,cacheTestResult,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),createOscillatorNodeRenderer=createOscillatorNodeRendererFactory(connectAudioParam,createNativeOscillatorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),oscillatorNodeConstructor=createOscillatorNodeConstructor(audioNodeConstructor,createAudioParam,createNativeOscillatorNode,createOscillatorNodeRenderer,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createConnectedNativeAudioBufferSourceNode=createConnectedNativeAudioBufferSourceNodeFactory(createNativeAudioBufferSourceNode),createNativeWaveShaperNodeFaker=createNativeWaveShaperNodeFakerFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeGainNode,isDCCurve,monitorConnections),createNativeWaveShaperNode=createNativeWaveShaperNodeFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeWaveShaperNodeFaker,isDCCurve,monitorConnections,nativeAudioContextConstructor,overwriteAccessors),createNativePannerNodeFaker=createNativePannerNodeFakerFactory(connectNativeAudioNodeToNativeAudioNode,createInvalidStateError,createNativeChannelMergerNode,createNativeGainNode,createNativeScriptProcessorNode,createNativeWaveShaperNode,createNotSupportedError,disconnectNativeAudioNodeFromNativeAudioNode,getFirstSample,monitorConnections),createNativePannerNode=createNativePannerNodeFactory(createNativePannerNodeFaker),createPannerNodeRenderer=createPannerNodeRendererFactory(connectAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeGainNode,createNativePannerNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),pannerNodeConstructor=createPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativePannerNode,createPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativePeriodicWave=createNativePeriodicWaveFactory(createIndexSizeError),periodicWaveConstructor=createPeriodicWaveConstructor(createNativePeriodicWave,getNativeContext,new WeakSet,sanitizePeriodicWaveOptions),nativeStereoPannerNodeFakerFactory=createNativeStereoPannerNodeFakerFactory(createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeGainNode,createNativeWaveShaperNode,createNotSupportedError,monitorConnections),createNativeStereoPannerNode=createNativeStereoPannerNodeFactory(nativeStereoPannerNodeFakerFactory,createNotSupportedError),createStereoPannerNodeRenderer=createStereoPannerNodeRendererFactory(connectAudioParam,createNativeStereoPannerNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),stereoPannerNodeConstructor=createStereoPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativeStereoPannerNode,createStereoPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext),createWaveShaperNodeRenderer=createWaveShaperNodeRendererFactory(createNativeWaveShaperNode,getNativeAudioNode,renderInputsOfAudioNode),waveShaperNodeConstructor=createWaveShaperNodeConstructor(audioNodeConstructor,createInvalidStateError,createNativeWaveShaperNode,createWaveShaperNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),isSecureContext=createIsSecureContext(window$1),exposeCurrentFrameAndCurrentTime=createExposeCurrentFrameAndCurrentTime(window$1),backupOfflineAudioContextStore=new WeakMap,getOrCreateBackupOfflineAudioContext=createGetOrCreateBackupOfflineAudioContext(backupOfflineAudioContextStore,nativeOfflineAudioContextConstructor),addAudioWorkletModule=isSecureContext?createAddAudioWorkletModule(cacheTestResult,createNotSupportedError,createEvaluateSource(window$1),exposeCurrentFrameAndCurrentTime,createFetchSource(createAbortError),getNativeContext,getOrCreateBackupOfflineAudioContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,new WeakMap,new WeakMap,createTestAudioWorkletProcessorPostMessageSupport(nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor),window$1):void 0,isNativeContext=createIsNativeContext(isNativeAudioContext,isNativeOfflineAudioContext),decodeAudioData=createDecodeAudioData(audioBufferStore,cacheTestResult,createDataCloneError,createEncodingError,new WeakSet,getNativeContext,isNativeContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,testPromiseSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),baseAudioContextConstructor=createBaseAudioContextConstructor(addAudioWorkletModule,analyserNodeConstructor,audioBufferConstructor,audioBufferSourceNodeConstructor,biquadFilterNodeConstructor,channelMergerNodeConstructor,channelSplitterNodeConstructor,constantSourceNodeConstructor,convolverNodeConstructor,decodeAudioData,delayNodeConstructor,dynamicsCompressorNodeConstructor,gainNodeConstructor,iIRFilterNodeConstructor,minimalBaseAudioContextConstructor,oscillatorNodeConstructor,pannerNodeConstructor,periodicWaveConstructor,stereoPannerNodeConstructor,waveShaperNodeConstructor),mediaElementAudioSourceNodeConstructor=createMediaElementAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaElementAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioDestinationNodeConstructor=createMediaStreamAudioDestinationNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioDestinationNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioSourceNodeConstructor=createMediaStreamAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),createNativeMediaStreamTrackAudioSourceNode=createNativeMediaStreamTrackAudioSourceNodeFactory(createInvalidStateError,isNativeOfflineAudioContext),mediaStreamTrackAudioSourceNodeConstructor=createMediaStreamTrackAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamTrackAudioSourceNode,getNativeContext),audioContextConstructor=createAudioContextConstructor(baseAudioContextConstructor,createInvalidStateError,createNotSupportedError,createUnknownError,mediaElementAudioSourceNodeConstructor,mediaStreamAudioDestinationNodeConstructor,mediaStreamAudioSourceNodeConstructor,mediaStreamTrackAudioSourceNodeConstructor,nativeAudioContextConstructor),getUnrenderedAudioWorkletNodes=createGetUnrenderedAudioWorkletNodes(unrenderedAudioWorkletNodeStore),addUnrenderedAudioWorkletNode=createAddUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),connectMultipleOutputs=createConnectMultipleOutputs(createIndexSizeError),deleteUnrenderedAudioWorkletNode=createDeleteUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),disconnectMultipleOutputs=createDisconnectMultipleOutputs(createIndexSizeError),activeAudioWorkletNodeInputsStore=new WeakMap,getActiveAudioWorkletNodeInputs=createGetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore,getValueForKey),createNativeAudioWorkletNodeFaker=createNativeAudioWorkletNodeFakerFactory(connectMultipleOutputs,createIndexSizeError,createInvalidStateError,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,createNativeScriptProcessorNode,createNotSupportedError,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getActiveAudioWorkletNodeInputs,monitorConnections),createNativeAudioWorkletNode=createNativeAudioWorkletNodeFactory(createInvalidStateError,createNativeAudioWorkletNodeFaker,createNativeGainNode,createNotSupportedError,monitorConnections),createAudioWorkletNodeRenderer=createAudioWorkletNodeRendererFactory(connectAudioParam,connectMultipleOutputs,createNativeAudioBufferSourceNode,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,deleteUnrenderedAudioWorkletNode,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getNativeAudioNode,nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),getBackupOfflineAudioContext=createGetBackupOfflineAudioContext(backupOfflineAudioContextStore),setActiveAudioWorkletNodeInputs=createSetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore),audioWorkletNodeConstructor=isSecureContext?createAudioWorkletNodeConstructor(addUnrenderedAudioWorkletNode,audioNodeConstructor,createAudioParam,createAudioWorkletNodeRenderer,createNativeAudioWorkletNode,getAudioNodeConnections,getBackupOfflineAudioContext,getNativeContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,sanitizeAudioWorkletNodeOptions,setActiveAudioWorkletNodeInputs,testAudioWorkletNodeOptionsClonability,wrapEventListener):void 0,createNativeOfflineAudioContext=createCreateNativeOfflineAudioContext(createNotSupportedError,nativeOfflineAudioContextConstructor),startRendering=createStartRendering(audioBufferStore,cacheTestResult,getAudioNodeRenderer,getUnrenderedAudioWorkletNodes,renderNativeOfflineAudioContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),offlineAudioContextConstructor=createOfflineAudioContextConstructor(baseAudioContextConstructor,cacheTestResult,createInvalidStateError,createNativeOfflineAudioContext,startRendering),isAnyAudioContext=createIsAnyAudioContext(CONTEXT_STORE,isNativeAudioContext),isAnyAudioNode=createIsAnyAudioNode(AUDIO_NODE_STORE,isNativeAudioNode),isAnyAudioParam=createIsAnyAudioParam(AUDIO_PARAM_STORE,isNativeAudioParam),isAnyOfflineAudioContext=createIsAnyOfflineAudioContext(CONTEXT_STORE,isNativeOfflineAudioContext);function isUndef(tt){return typeof tt>"u"}function isDefined(tt){return!isUndef(tt)}function isFunction$2(tt){return typeof tt=="function"}function isNumber$4(tt){return typeof tt=="number"}function isObject$4(tt){return Object.prototype.toString.call(tt)==="[object Object]"&&tt.constructor===Object}function isBoolean$1(tt){return typeof tt=="boolean"}function isArray$3(tt){return Array.isArray(tt)}function isString$1(tt){return typeof tt=="string"}function isNote(tt){return isString$1(tt)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(tt)}function assert$1(tt,et){if(!tt)throw new Error(et)}function assertRange(tt,et,nt=1/0){if(!(et<=tt&&tt<=nt))throw new RangeError(`Value must be within [${et}, ${nt}], got: ${tt}`)}function assertContextRunning(tt){!tt.isOffline&&tt.state!=="running"&&warn$2('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}let isInsideScheduledCallback=!1,printedScheduledWarning=!1;function enterScheduledCallback(tt){isInsideScheduledCallback=tt}function assertUsedScheduleTime(tt){isUndef(tt)&&isInsideScheduledCallback&&!printedScheduledWarning&&(printedScheduledWarning=!0,warn$2("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}let defaultLogger=console;function log$1(...tt){defaultLogger.log(...tt)}function warn$2(...tt){defaultLogger.warn(...tt)}function createAudioContext(tt){return new audioContextConstructor(tt)}function createOfflineAudioContext(tt,et,nt){return new offlineAudioContextConstructor(tt,et,nt)}const theWindow=typeof self=="object"?self:null,hasAudioContext=theWindow&&(theWindow.hasOwnProperty("AudioContext")||theWindow.hasOwnProperty("webkitAudioContext"));function createAudioWorkletNode(tt,et,nt){return assert$1(isDefined(audioWorkletNodeConstructor),"This node only works in a secure context (https or localhost)"),new audioWorkletNodeConstructor(tt,et,nt)}class Ticker{constructor(et,nt,rt,it){this._callback=et,this._type=nt,this._minimumUpdateInterval=Math.max(128/(it||44100),.001),this.updateInterval=rt,this._createClock()}_createWorker(){const et=new Blob([` +*/var _win,_doc,_docElement,_pluginInitted,_tempDiv,_recentSetterPlugin,_reverting,_windowExists=function(){return typeof window<"u"},_transformProps={},_RAD2DEG=180/Math.PI,_DEG2RAD=Math.PI/180,_atan2=Math.atan2,_bigNum=1e8,_capsExp=/([A-Z])/g,_horizontalExp=/(left|right|width|margin|padding|x)/i,_complexExp=/[\s,\(]\S/,_propertyAliases={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},_renderCSSProp=function(et,nt){return nt.set(nt.t,nt.p,Math.round((nt.s+nt.c*et)*1e4)/1e4+nt.u,nt)},_renderPropWithEnd=function(et,nt){return nt.set(nt.t,nt.p,et===1?nt.e:Math.round((nt.s+nt.c*et)*1e4)/1e4+nt.u,nt)},_renderCSSPropWithBeginning=function(et,nt){return nt.set(nt.t,nt.p,et?Math.round((nt.s+nt.c*et)*1e4)/1e4+nt.u:nt.b,nt)},_renderRoundedCSSProp=function(et,nt){var rt=nt.s+nt.c*et;nt.set(nt.t,nt.p,~~(rt+(rt<0?-.5:.5))+nt.u,nt)},_renderNonTweeningValue=function(et,nt){return nt.set(nt.t,nt.p,et?nt.e:nt.b,nt)},_renderNonTweeningValueOnlyAtEnd=function(et,nt){return nt.set(nt.t,nt.p,et!==1?nt.b:nt.e,nt)},_setterCSSStyle=function(et,nt,rt){return et.style[nt]=rt},_setterCSSProp=function(et,nt,rt){return et.style.setProperty(nt,rt)},_setterTransform=function(et,nt,rt){return et._gsap[nt]=rt},_setterScale=function(et,nt,rt){return et._gsap.scaleX=et._gsap.scaleY=rt},_setterScaleWithRender=function(et,nt,rt,it,ot){var at=et._gsap;at.scaleX=at.scaleY=rt,at.renderTransform(ot,at)},_setterTransformWithRender=function(et,nt,rt,it,ot){var at=et._gsap;at[nt]=rt,at.renderTransform(ot,at)},_transformProp="transform",_transformOriginProp=_transformProp+"Origin",_saveStyle=function tt(et,nt){var rt=this,it=this.target,ot=it.style;if(et in _transformProps&&ot){if(this.tfm=this.tfm||{},et!=="transform")et=_propertyAliases[et]||et,~et.indexOf(",")?et.split(",").forEach(function(at){return rt.tfm[at]=_get(it,at)}):this.tfm[et]=it._gsap.x?it._gsap[et]:_get(it,et);else return _propertyAliases.transform.split(",").forEach(function(at){return tt.call(rt,at,nt)});if(this.props.indexOf(_transformProp)>=0)return;it._gsap.svg&&(this.svgo=it.getAttribute("data-svg-origin"),this.props.push(_transformOriginProp,nt,"")),et=_transformProp}(ot||nt)&&this.props.push(et,nt,ot[et])},_removeIndependentTransforms=function(et){et.translate&&(et.removeProperty("translate"),et.removeProperty("scale"),et.removeProperty("rotate"))},_revertStyle=function(){var et=this.props,nt=this.target,rt=nt.style,it=nt._gsap,ot,at;for(ot=0;ot=0?_prefixes[at]:"")+et},_initCore=function(){_windowExists()&&window.document&&(_win=window,_doc=_win.document,_docElement=_doc.documentElement,_tempDiv=_createElement("div")||{style:{}},_createElement("div"),_transformProp=_checkPropPrefix(_transformProp),_transformOriginProp=_transformProp+"Origin",_tempDiv.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",_supports3D=!!_checkPropPrefix("perspective"),_reverting=gsap.core.reverting,_pluginInitted=1)},_getBBoxHack=function tt(et){var nt=_createElement("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),rt=this.parentNode,it=this.nextSibling,ot=this.style.cssText,at;if(_docElement.appendChild(nt),nt.appendChild(this),this.style.display="block",et)try{at=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=tt}catch{}else this._gsapBBox&&(at=this._gsapBBox());return rt&&(it?rt.insertBefore(this,it):rt.appendChild(this)),_docElement.removeChild(nt),this.style.cssText=ot,at},_getAttributeFallbacks=function(et,nt){for(var rt=nt.length;rt--;)if(et.hasAttribute(nt[rt]))return et.getAttribute(nt[rt])},_getBBox=function(et){var nt;try{nt=et.getBBox()}catch{nt=_getBBoxHack.call(et,!0)}return nt&&(nt.width||nt.height)||et.getBBox===_getBBoxHack||(nt=_getBBoxHack.call(et,!0)),nt&&!nt.width&&!nt.x&&!nt.y?{x:+_getAttributeFallbacks(et,["x","cx","x1"])||0,y:+_getAttributeFallbacks(et,["y","cy","y1"])||0,width:0,height:0}:nt},_isSVG=function(et){return!!(et.getCTM&&(!et.parentNode||et.ownerSVGElement)&&_getBBox(et))},_removeProperty=function(et,nt){if(nt){var rt=et.style;nt in _transformProps&&nt!==_transformOriginProp&&(nt=_transformProp),rt.removeProperty?((nt.substr(0,2)==="ms"||nt.substr(0,6)==="webkit")&&(nt="-"+nt),rt.removeProperty(nt.replace(_capsExp,"-$1").toLowerCase())):rt.removeAttribute(nt)}},_addNonTweeningPT=function(et,nt,rt,it,ot,at){var st=new PropTween(et._pt,nt,rt,0,1,at?_renderNonTweeningValueOnlyAtEnd:_renderNonTweeningValue);return et._pt=st,st.b=it,st.e=ot,et._props.push(rt),st},_nonConvertibleUnits={deg:1,rad:1,turn:1},_nonStandardLayouts={grid:1,flex:1},_convertToUnit=function tt(et,nt,rt,it){var ot=parseFloat(rt)||0,at=(rt+"").trim().substr((ot+"").length)||"px",st=_tempDiv.style,lt=_horizontalExp.test(nt),ct=et.tagName.toLowerCase()==="svg",ut=(ct?"client":"offset")+(lt?"Width":"Height"),ht=100,dt=it==="px",pt=it==="%",mt,gt,yt,bt;return it===at||!ot||_nonConvertibleUnits[it]||_nonConvertibleUnits[at]?ot:(at!=="px"&&!dt&&(ot=tt(et,nt,rt,"px")),bt=et.getCTM&&_isSVG(et),(pt||at==="%")&&(_transformProps[nt]||~nt.indexOf("adius"))?(mt=bt?et.getBBox()[lt?"width":"height"]:et[ut],_round(pt?ot/mt*ht:ot/100*mt)):(st[lt?"width":"height"]=ht+(dt?at:it),gt=~nt.indexOf("adius")||it==="em"&&et.appendChild&&!ct?et:et.parentNode,bt&&(gt=(et.ownerSVGElement||{}).parentNode),(!gt||gt===_doc||!gt.appendChild)&&(gt=_doc.body),yt=gt._gsap,yt&&pt&&yt.width&<&&yt.time===_ticker.time&&!yt.uncache?_round(ot/yt.width*ht):((pt||at==="%")&&!_nonStandardLayouts[_getComputedProperty(gt,"display")]&&(st.position=_getComputedProperty(et,"position")),gt===et&&(st.position="static"),gt.appendChild(_tempDiv),mt=_tempDiv[ut],gt.removeChild(_tempDiv),st.position="absolute",lt&&pt&&(yt=_getCache(gt),yt.time=_ticker.time,yt.width=gt[ut]),_round(dt?mt*ot/ht:mt&&ot?ht/mt*ot:0))))},_get=function(et,nt,rt,it){var ot;return _pluginInitted||_initCore(),nt in _propertyAliases&&nt!=="transform"&&(nt=_propertyAliases[nt],~nt.indexOf(",")&&(nt=nt.split(",")[0])),_transformProps[nt]&&nt!=="transform"?(ot=_parseTransform(et,it),ot=nt!=="transformOrigin"?ot[nt]:ot.svg?ot.origin:_firstTwoOnly(_getComputedProperty(et,_transformOriginProp))+" "+ot.zOrigin+"px"):(ot=et.style[nt],(!ot||ot==="auto"||it||~(ot+"").indexOf("calc("))&&(ot=_specialProps[nt]&&_specialProps[nt](et,nt,rt)||_getComputedProperty(et,nt)||_getProperty(et,nt)||(nt==="opacity"?1:0))),rt&&!~(ot+"").trim().indexOf(" ")?_convertToUnit(et,nt,ot,rt)+rt:ot},_tweenComplexCSSString=function(et,nt,rt,it){if(!rt||rt==="none"){var ot=_checkPropPrefix(nt,et,1),at=ot&&_getComputedProperty(et,ot,1);at&&at!==rt?(nt=ot,rt=at):nt==="borderColor"&&(rt=_getComputedProperty(et,"borderTopColor"))}var st=new PropTween(this._pt,et.style,nt,0,1,_renderComplexString),lt=0,ct=0,ut,ht,dt,pt,mt,gt,yt,bt,wt,vt,kt,St;if(st.b=rt,st.e=it,rt+="",it+="",it==="auto"&&(et.style[nt]=it,it=_getComputedProperty(et,nt)||it,et.style[nt]=rt),ut=[rt,it],_colorStringFilter(ut),rt=ut[0],it=ut[1],dt=rt.match(_numWithUnitExp)||[],St=it.match(_numWithUnitExp)||[],St.length){for(;ht=_numWithUnitExp.exec(it);)yt=ht[0],wt=it.substring(lt,ht.index),mt?mt=(mt+1)%5:(wt.substr(-5)==="rgba("||wt.substr(-5)==="hsla(")&&(mt=1),yt!==(gt=dt[ct++]||"")&&(pt=parseFloat(gt)||0,kt=gt.substr((pt+"").length),yt.charAt(1)==="="&&(yt=_parseRelative(pt,yt)+kt),bt=parseFloat(yt),vt=yt.substr((bt+"").length),lt=_numWithUnitExp.lastIndex-vt.length,vt||(vt=vt||_config.units[nt]||kt,lt===it.length&&(it+=vt,st.e+=vt)),kt!==vt&&(pt=_convertToUnit(et,nt,gt,vt)||0),st._pt={_next:st._pt,p:wt||ct===1?wt:",",s:pt,c:bt-pt,m:mt&&mt<4||nt==="zIndex"?Math.round:0});st.c=lt-1;)st=ot[ct],_transformProps[st]&&(lt=1,st=st==="transformOrigin"?_transformOriginProp:_transformProp),_removeProperty(rt,st);lt&&(_removeProperty(rt,_transformProp),at&&(at.svg&&rt.removeAttribute("transform"),_parseTransform(rt,1),at.uncache=1,_removeIndependentTransforms(it)))}},_specialProps={clearProps:function(et,nt,rt,it,ot){if(ot.data!=="isFromStart"){var at=et._pt=new PropTween(et._pt,nt,rt,0,0,_renderClearProps);return at.u=it,at.pr=-10,at.tween=ot,et._props.push(rt),1}}},_identity2DMatrix=[1,0,0,1,0,0],_rotationalProperties={},_isNullTransform=function(et){return et==="matrix(1, 0, 0, 1, 0, 0)"||et==="none"||!et},_getComputedTransformMatrixAsArray=function(et){var nt=_getComputedProperty(et,_transformProp);return _isNullTransform(nt)?_identity2DMatrix:nt.substr(7).match(_numExp).map(_round)},_getMatrix=function(et,nt){var rt=et._gsap||_getCache(et),it=et.style,ot=_getComputedTransformMatrixAsArray(et),at,st,lt,ct;return rt.svg&&et.getAttribute("transform")?(lt=et.transform.baseVal.consolidate().matrix,ot=[lt.a,lt.b,lt.c,lt.d,lt.e,lt.f],ot.join(",")==="1,0,0,1,0,0"?_identity2DMatrix:ot):(ot===_identity2DMatrix&&!et.offsetParent&&et!==_docElement&&!rt.svg&&(lt=it.display,it.display="block",at=et.parentNode,(!at||!et.offsetParent)&&(ct=1,st=et.nextElementSibling,_docElement.appendChild(et)),ot=_getComputedTransformMatrixAsArray(et),lt?it.display=lt:_removeProperty(et,"display"),ct&&(st?at.insertBefore(et,st):at?at.appendChild(et):_docElement.removeChild(et))),nt&&ot.length>6?[ot[0],ot[1],ot[4],ot[5],ot[12],ot[13]]:ot)},_applySVGOrigin=function(et,nt,rt,it,ot,at){var st=et._gsap,lt=ot||_getMatrix(et,!0),ct=st.xOrigin||0,ut=st.yOrigin||0,ht=st.xOffset||0,dt=st.yOffset||0,pt=lt[0],mt=lt[1],gt=lt[2],yt=lt[3],bt=lt[4],wt=lt[5],vt=nt.split(" "),kt=parseFloat(vt[0])||0,St=parseFloat(vt[1])||0,Et,At,Tt,Mt;rt?lt!==_identity2DMatrix&&(At=pt*yt-mt*gt)&&(Tt=kt*(yt/At)+St*(-gt/At)+(gt*wt-yt*bt)/At,Mt=kt*(-mt/At)+St*(pt/At)-(pt*wt-mt*bt)/At,kt=Tt,St=Mt):(Et=_getBBox(et),kt=Et.x+(~vt[0].indexOf("%")?kt/100*Et.width:kt),St=Et.y+(~(vt[1]||vt[0]).indexOf("%")?St/100*Et.height:St)),it||it!==!1&&st.smooth?(bt=kt-ct,wt=St-ut,st.xOffset=ht+(bt*pt+wt*gt)-bt,st.yOffset=dt+(bt*mt+wt*yt)-wt):st.xOffset=st.yOffset=0,st.xOrigin=kt,st.yOrigin=St,st.smooth=!!it,st.origin=nt,st.originIsAbsolute=!!rt,et.style[_transformOriginProp]="0px 0px",at&&(_addNonTweeningPT(at,st,"xOrigin",ct,kt),_addNonTweeningPT(at,st,"yOrigin",ut,St),_addNonTweeningPT(at,st,"xOffset",ht,st.xOffset),_addNonTweeningPT(at,st,"yOffset",dt,st.yOffset)),et.setAttribute("data-svg-origin",kt+" "+St)},_parseTransform=function(et,nt){var rt=et._gsap||new GSCache(et);if("x"in rt&&!nt&&!rt.uncache)return rt;var it=et.style,ot=rt.scaleX<0,at="px",st="deg",lt=getComputedStyle(et),ct=_getComputedProperty(et,_transformOriginProp)||"0",ut,ht,dt,pt,mt,gt,yt,bt,wt,vt,kt,St,Et,At,Tt,Mt,Lt,jt,Rt,$t,xt,It,Ot,zt,Ut,Wt,Ft,Nt,Ct,Ht,Jt,nn;return ut=ht=dt=gt=yt=bt=wt=vt=kt=0,pt=mt=1,rt.svg=!!(et.getCTM&&_isSVG(et)),lt.translate&&((lt.translate!=="none"||lt.scale!=="none"||lt.rotate!=="none")&&(it[_transformProp]=(lt.translate!=="none"?"translate3d("+(lt.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+(lt.rotate!=="none"?"rotate("+lt.rotate+") ":"")+(lt.scale!=="none"?"scale("+lt.scale.split(" ").join(",")+") ":"")+(lt[_transformProp]!=="none"?lt[_transformProp]:"")),it.scale=it.rotate=it.translate="none"),At=_getMatrix(et,rt.svg),rt.svg&&(rt.uncache?(Ut=et.getBBox(),ct=rt.xOrigin-Ut.x+"px "+(rt.yOrigin-Ut.y)+"px",zt=""):zt=!nt&&et.getAttribute("data-svg-origin"),_applySVGOrigin(et,zt||ct,!!zt||rt.originIsAbsolute,rt.smooth!==!1,At)),St=rt.xOrigin||0,Et=rt.yOrigin||0,At!==_identity2DMatrix&&(jt=At[0],Rt=At[1],$t=At[2],xt=At[3],ut=It=At[4],ht=Ot=At[5],At.length===6?(pt=Math.sqrt(jt*jt+Rt*Rt),mt=Math.sqrt(xt*xt+$t*$t),gt=jt||Rt?_atan2(Rt,jt)*_RAD2DEG:0,wt=$t||xt?_atan2($t,xt)*_RAD2DEG+gt:0,wt&&(mt*=Math.abs(Math.cos(wt*_DEG2RAD))),rt.svg&&(ut-=St-(St*jt+Et*$t),ht-=Et-(St*Rt+Et*xt))):(nn=At[6],Ht=At[7],Ft=At[8],Nt=At[9],Ct=At[10],Jt=At[11],ut=At[12],ht=At[13],dt=At[14],Tt=_atan2(nn,Ct),yt=Tt*_RAD2DEG,Tt&&(Mt=Math.cos(-Tt),Lt=Math.sin(-Tt),zt=It*Mt+Ft*Lt,Ut=Ot*Mt+Nt*Lt,Wt=nn*Mt+Ct*Lt,Ft=It*-Lt+Ft*Mt,Nt=Ot*-Lt+Nt*Mt,Ct=nn*-Lt+Ct*Mt,Jt=Ht*-Lt+Jt*Mt,It=zt,Ot=Ut,nn=Wt),Tt=_atan2(-$t,Ct),bt=Tt*_RAD2DEG,Tt&&(Mt=Math.cos(-Tt),Lt=Math.sin(-Tt),zt=jt*Mt-Ft*Lt,Ut=Rt*Mt-Nt*Lt,Wt=$t*Mt-Ct*Lt,Jt=xt*Lt+Jt*Mt,jt=zt,Rt=Ut,$t=Wt),Tt=_atan2(Rt,jt),gt=Tt*_RAD2DEG,Tt&&(Mt=Math.cos(Tt),Lt=Math.sin(Tt),zt=jt*Mt+Rt*Lt,Ut=It*Mt+Ot*Lt,Rt=Rt*Mt-jt*Lt,Ot=Ot*Mt-It*Lt,jt=zt,It=Ut),yt&&Math.abs(yt)+Math.abs(gt)>359.9&&(yt=gt=0,bt=180-bt),pt=_round(Math.sqrt(jt*jt+Rt*Rt+$t*$t)),mt=_round(Math.sqrt(Ot*Ot+nn*nn)),Tt=_atan2(It,Ot),wt=Math.abs(Tt)>2e-4?Tt*_RAD2DEG:0,kt=Jt?1/(Jt<0?-Jt:Jt):0),rt.svg&&(zt=et.getAttribute("transform"),rt.forceCSS=et.setAttribute("transform","")||!_isNullTransform(_getComputedProperty(et,_transformProp)),zt&&et.setAttribute("transform",zt))),Math.abs(wt)>90&&Math.abs(wt)<270&&(ot?(pt*=-1,wt+=gt<=0?180:-180,gt+=gt<=0?180:-180):(mt*=-1,wt+=wt<=0?180:-180)),nt=nt||rt.uncache,rt.x=ut-((rt.xPercent=ut&&(!nt&&rt.xPercent||(Math.round(et.offsetWidth/2)===Math.round(-ut)?-50:0)))?et.offsetWidth*rt.xPercent/100:0)+at,rt.y=ht-((rt.yPercent=ht&&(!nt&&rt.yPercent||(Math.round(et.offsetHeight/2)===Math.round(-ht)?-50:0)))?et.offsetHeight*rt.yPercent/100:0)+at,rt.z=dt+at,rt.scaleX=_round(pt),rt.scaleY=_round(mt),rt.rotation=_round(gt)+st,rt.rotationX=_round(yt)+st,rt.rotationY=_round(bt)+st,rt.skewX=wt+st,rt.skewY=vt+st,rt.transformPerspective=kt+at,(rt.zOrigin=parseFloat(ct.split(" ")[2])||0)&&(it[_transformOriginProp]=_firstTwoOnly(ct)),rt.xOffset=rt.yOffset=0,rt.force3D=_config.force3D,rt.renderTransform=rt.svg?_renderSVGTransforms:_supports3D?_renderCSSTransforms:_renderNon3DTransforms,rt.uncache=0,rt},_firstTwoOnly=function(et){return(et=et.split(" "))[0]+" "+et[1]},_addPxTranslate=function(et,nt,rt){var it=getUnit(nt);return _round(parseFloat(nt)+parseFloat(_convertToUnit(et,"x",rt+"px",it)))+it},_renderNon3DTransforms=function(et,nt){nt.z="0px",nt.rotationY=nt.rotationX="0deg",nt.force3D=0,_renderCSSTransforms(et,nt)},_zeroDeg="0deg",_zeroPx="0px",_endParenthesis=") ",_renderCSSTransforms=function(et,nt){var rt=nt||this,it=rt.xPercent,ot=rt.yPercent,at=rt.x,st=rt.y,lt=rt.z,ct=rt.rotation,ut=rt.rotationY,ht=rt.rotationX,dt=rt.skewX,pt=rt.skewY,mt=rt.scaleX,gt=rt.scaleY,yt=rt.transformPerspective,bt=rt.force3D,wt=rt.target,vt=rt.zOrigin,kt="",St=bt==="auto"&&et&&et!==1||bt===!0;if(vt&&(ht!==_zeroDeg||ut!==_zeroDeg)){var Et=parseFloat(ut)*_DEG2RAD,At=Math.sin(Et),Tt=Math.cos(Et),Mt;Et=parseFloat(ht)*_DEG2RAD,Mt=Math.cos(Et),at=_addPxTranslate(wt,at,At*Mt*-vt),st=_addPxTranslate(wt,st,-Math.sin(Et)*-vt),lt=_addPxTranslate(wt,lt,Tt*Mt*-vt+vt)}yt!==_zeroPx&&(kt+="perspective("+yt+_endParenthesis),(it||ot)&&(kt+="translate("+it+"%, "+ot+"%) "),(St||at!==_zeroPx||st!==_zeroPx||lt!==_zeroPx)&&(kt+=lt!==_zeroPx||St?"translate3d("+at+", "+st+", "+lt+") ":"translate("+at+", "+st+_endParenthesis),ct!==_zeroDeg&&(kt+="rotate("+ct+_endParenthesis),ut!==_zeroDeg&&(kt+="rotateY("+ut+_endParenthesis),ht!==_zeroDeg&&(kt+="rotateX("+ht+_endParenthesis),(dt!==_zeroDeg||pt!==_zeroDeg)&&(kt+="skew("+dt+", "+pt+_endParenthesis),(mt!==1||gt!==1)&&(kt+="scale("+mt+", "+gt+_endParenthesis),wt.style[_transformProp]=kt||"translate(0, 0)"},_renderSVGTransforms=function(et,nt){var rt=nt||this,it=rt.xPercent,ot=rt.yPercent,at=rt.x,st=rt.y,lt=rt.rotation,ct=rt.skewX,ut=rt.skewY,ht=rt.scaleX,dt=rt.scaleY,pt=rt.target,mt=rt.xOrigin,gt=rt.yOrigin,yt=rt.xOffset,bt=rt.yOffset,wt=rt.forceCSS,vt=parseFloat(at),kt=parseFloat(st),St,Et,At,Tt,Mt;lt=parseFloat(lt),ct=parseFloat(ct),ut=parseFloat(ut),ut&&(ut=parseFloat(ut),ct+=ut,lt+=ut),lt||ct?(lt*=_DEG2RAD,ct*=_DEG2RAD,St=Math.cos(lt)*ht,Et=Math.sin(lt)*ht,At=Math.sin(lt-ct)*-dt,Tt=Math.cos(lt-ct)*dt,ct&&(ut*=_DEG2RAD,Mt=Math.tan(ct-ut),Mt=Math.sqrt(1+Mt*Mt),At*=Mt,Tt*=Mt,ut&&(Mt=Math.tan(ut),Mt=Math.sqrt(1+Mt*Mt),St*=Mt,Et*=Mt)),St=_round(St),Et=_round(Et),At=_round(At),Tt=_round(Tt)):(St=ht,Tt=dt,Et=At=0),(vt&&!~(at+"").indexOf("px")||kt&&!~(st+"").indexOf("px"))&&(vt=_convertToUnit(pt,"x",at,"px"),kt=_convertToUnit(pt,"y",st,"px")),(mt||gt||yt||bt)&&(vt=_round(vt+mt-(mt*St+gt*At)+yt),kt=_round(kt+gt-(mt*Et+gt*Tt)+bt)),(it||ot)&&(Mt=pt.getBBox(),vt=_round(vt+it/100*Mt.width),kt=_round(kt+ot/100*Mt.height)),Mt="matrix("+St+","+Et+","+At+","+Tt+","+vt+","+kt+")",pt.setAttribute("transform",Mt),wt&&(pt.style[_transformProp]=Mt)},_addRotationalPropTween=function(et,nt,rt,it,ot){var at=360,st=_isString(ot),lt=parseFloat(ot)*(st&&~ot.indexOf("rad")?_RAD2DEG:1),ct=lt-it,ut=it+ct+"deg",ht,dt;return st&&(ht=ot.split("_")[1],ht==="short"&&(ct%=at,ct!==ct%(at/2)&&(ct+=ct<0?at:-at)),ht==="cw"&&ct<0?ct=(ct+at*_bigNum)%at-~~(ct/at)*at:ht==="ccw"&&ct>0&&(ct=(ct-at*_bigNum)%at-~~(ct/at)*at)),et._pt=dt=new PropTween(et._pt,nt,rt,it,ct,_renderPropWithEnd),dt.e=ut,dt.u="deg",et._props.push(rt),dt},_assign=function(et,nt){for(var rt in nt)et[rt]=nt[rt];return et},_addRawTransformPTs=function(et,nt,rt){var it=_assign({},rt._gsap),ot="perspective,force3D,transformOrigin,svgOrigin",at=rt.style,st,lt,ct,ut,ht,dt,pt,mt;it.svg?(ct=rt.getAttribute("transform"),rt.setAttribute("transform",""),at[_transformProp]=nt,st=_parseTransform(rt,1),_removeProperty(rt,_transformProp),rt.setAttribute("transform",ct)):(ct=getComputedStyle(rt)[_transformProp],at[_transformProp]=nt,st=_parseTransform(rt,1),at[_transformProp]=ct);for(lt in _transformProps)ct=it[lt],ut=st[lt],ct!==ut&&ot.indexOf(lt)<0&&(pt=getUnit(ct),mt=getUnit(ut),ht=pt!==mt?_convertToUnit(rt,lt,ct,mt):parseFloat(ct),dt=parseFloat(ut),et._pt=new PropTween(et._pt,st,lt,ht,dt-ht,_renderCSSProp),et._pt.u=mt||0,et._props.push(lt));_assign(st,it)};_forEachName("padding,margin,Width,Radius",function(tt,et){var nt="Top",rt="Right",it="Bottom",ot="Left",at=(et<3?[nt,rt,it,ot]:[nt+ot,nt+rt,it+rt,it+ot]).map(function(st){return et<2?tt+st:"border"+st+tt});_specialProps[et>1?"border"+tt:tt]=function(st,lt,ct,ut,ht){var dt,pt;if(arguments.length<4)return dt=at.map(function(mt){return _get(st,mt,ct)}),pt=dt.join(" "),pt.split(dt[0]).length===5?dt[0]:pt;dt=(ut+"").split(" "),pt={},at.forEach(function(mt,gt){return pt[mt]=dt[gt]=dt[gt]||dt[(gt-1)/2|0]}),st.init(lt,pt,ht)}});var CSSPlugin={name:"css",register:_initCore,targetTest:function(et){return et.style&&et.nodeType},init:function(et,nt,rt,it,ot){var at=this._props,st=et.style,lt=rt.vars.startAt,ct,ut,ht,dt,pt,mt,gt,yt,bt,wt,vt,kt,St,Et,At,Tt;_pluginInitted||_initCore(),this.styles=this.styles||_getStyleSaver(et),Tt=this.styles.props,this.tween=rt;for(gt in nt)if(gt!=="autoRound"&&(ut=nt[gt],!(_plugins[gt]&&_checkPlugin(gt,nt,rt,it,et,ot)))){if(pt=typeof ut,mt=_specialProps[gt],pt==="function"&&(ut=ut.call(rt,it,et,ot),pt=typeof ut),pt==="string"&&~ut.indexOf("random(")&&(ut=_replaceRandom(ut)),mt)mt(this,et,gt,ut,rt)&&(At=1);else if(gt.substr(0,2)==="--")ct=(getComputedStyle(et).getPropertyValue(gt)+"").trim(),ut+="",_colorExp.lastIndex=0,_colorExp.test(ct)||(yt=getUnit(ct),bt=getUnit(ut)),bt?yt!==bt&&(ct=_convertToUnit(et,gt,ct,bt)+bt):yt&&(ut+=yt),this.add(st,"setProperty",ct,ut,it,ot,0,0,gt),at.push(gt),Tt.push(gt,0,st[gt]);else if(pt!=="undefined"){if(lt&> in lt?(ct=typeof lt[gt]=="function"?lt[gt].call(rt,it,et,ot):lt[gt],_isString(ct)&&~ct.indexOf("random(")&&(ct=_replaceRandom(ct)),getUnit(ct+"")||(ct+=_config.units[gt]||getUnit(_get(et,gt))||""),(ct+"").charAt(1)==="="&&(ct=_get(et,gt))):ct=_get(et,gt),dt=parseFloat(ct),wt=pt==="string"&&ut.charAt(1)==="="&&ut.substr(0,2),wt&&(ut=ut.substr(2)),ht=parseFloat(ut),gt in _propertyAliases&&(gt==="autoAlpha"&&(dt===1&&_get(et,"visibility")==="hidden"&&ht&&(dt=0),Tt.push("visibility",0,st.visibility),_addNonTweeningPT(this,st,"visibility",dt?"inherit":"hidden",ht?"inherit":"hidden",!ht)),gt!=="scale"&>!=="transform"&&(gt=_propertyAliases[gt],~gt.indexOf(",")&&(gt=gt.split(",")[0]))),vt=gt in _transformProps,vt){if(this.styles.save(gt),kt||(St=et._gsap,St.renderTransform&&!nt.parseTransform||_parseTransform(et,nt.parseTransform),Et=nt.smoothOrigin!==!1&&St.smooth,kt=this._pt=new PropTween(this._pt,st,_transformProp,0,1,St.renderTransform,St,0,-1),kt.dep=1),gt==="scale")this._pt=new PropTween(this._pt,St,"scaleY",St.scaleY,(wt?_parseRelative(St.scaleY,wt+ht):ht)-St.scaleY||0,_renderCSSProp),this._pt.u=0,at.push("scaleY",gt),gt+="X";else if(gt==="transformOrigin"){Tt.push(_transformOriginProp,0,st[_transformOriginProp]),ut=_convertKeywordsToPercentages(ut),St.svg?_applySVGOrigin(et,ut,0,Et,0,this):(bt=parseFloat(ut.split(" ")[2])||0,bt!==St.zOrigin&&_addNonTweeningPT(this,St,"zOrigin",St.zOrigin,bt),_addNonTweeningPT(this,st,gt,_firstTwoOnly(ct),_firstTwoOnly(ut)));continue}else if(gt==="svgOrigin"){_applySVGOrigin(et,ut,1,Et,0,this);continue}else if(gt in _rotationalProperties){_addRotationalPropTween(this,St,gt,dt,wt?_parseRelative(dt,wt+ut):ut);continue}else if(gt==="smoothOrigin"){_addNonTweeningPT(this,St,"smooth",St.smooth,ut);continue}else if(gt==="force3D"){St[gt]=ut;continue}else if(gt==="transform"){_addRawTransformPTs(this,ut,et);continue}}else gt in st||(gt=_checkPropPrefix(gt)||gt);if(vt||(ht||ht===0)&&(dt||dt===0)&&!_complexExp.test(ut)&> in st)yt=(ct+"").substr((dt+"").length),ht||(ht=0),bt=getUnit(ut)||(gt in _config.units?_config.units[gt]:yt),yt!==bt&&(dt=_convertToUnit(et,gt,ct,bt)),this._pt=new PropTween(this._pt,vt?St:st,gt,dt,(wt?_parseRelative(dt,wt+ht):ht)-dt,!vt&&(bt==="px"||gt==="zIndex")&&nt.autoRound!==!1?_renderRoundedCSSProp:_renderCSSProp),this._pt.u=bt||0,yt!==bt&&bt!=="%"&&(this._pt.b=ct,this._pt.r=_renderCSSPropWithBeginning);else if(gt in st)_tweenComplexCSSString.call(this,et,gt,ct,wt?wt+ut:ut);else if(gt in et)this.add(et,gt,ct||et[gt],wt?wt+ut:ut,it,ot);else if(gt!=="parseTransform"){_missingPlugin(gt,ut);continue}vt||(gt in st?Tt.push(gt,0,st[gt]):Tt.push(gt,1,ct||et[gt])),at.push(gt)}}At&&_sortPropTweensByPriority(this)},render:function(et,nt){if(nt.tween._time||!_reverting())for(var rt=nt._pt;rt;)rt.r(et,rt.d),rt=rt._next;else nt.styles.revert()},get:_get,aliases:_propertyAliases,getSetter:function(et,nt,rt){var it=_propertyAliases[nt];return it&&it.indexOf(",")<0&&(nt=it),nt in _transformProps&&nt!==_transformOriginProp&&(et._gsap.x||_get(et,"x"))?rt&&_recentSetterPlugin===rt?nt==="scale"?_setterScale:_setterTransform:(_recentSetterPlugin=rt||{})&&(nt==="scale"?_setterScaleWithRender:_setterTransformWithRender):et.style&&!_isUndefined(et.style[nt])?_setterCSSStyle:~nt.indexOf("-")?_setterCSSProp:_getSetter(et,nt)},core:{_removeProperty,_getMatrix}};gsap.utils.checkPrefix=_checkPropPrefix;gsap.core.getStyleSaver=_getStyleSaver;(function(tt,et,nt,rt){var it=_forEachName(tt+","+et+","+nt,function(ot){_transformProps[ot]=1});_forEachName(et,function(ot){_config.units[ot]="deg",_rotationalProperties[ot]=1}),_propertyAliases[it[13]]=tt+","+et,_forEachName(rt,function(ot){var at=ot.split(":");_propertyAliases[at[1]]=it[at[0]]})})("x,y,z,scale,scaleX,scaleY,xPercent,yPercent","rotation,rotationX,rotationY,skewX,skewY","transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective","0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY");_forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(tt){_config.units[tt]="px"});gsap.registerPlugin(CSSPlugin);var gsapWithCSS=gsap.registerPlugin(CSSPlugin)||gsap;gsapWithCSS.core.Tween;const createRoundedBoxGeometry=(tt,et,nt,rt,it)=>{const ot=new Shape,at=1e-5;ot.absarc(at,at,at,-Math.PI/2,-Math.PI,!0),ot.absarc(at,et-rt*2,at,Math.PI,Math.PI/2,!0),ot.absarc(tt-rt*2,et-rt*2,at,Math.PI/2,0,!0),ot.absarc(tt-rt*2,at,at,0,-Math.PI/2,!0);const st=new ExtrudeGeometry(ot,{depth:nt-rt*2,bevelEnabled:!0,bevelSegments:it,steps:2,bevelSize:rt,bevelThickness:rt,curveSegments:it});st.center();const lt=[],ct=st.getAttribute("normal"),ut=st.getAttribute("position");for(let ht=0;ht.9?(mt=pt.x/tt+.5,gt=1-(pt.z/nt+.5)):Math.abs(dt.x)>.9?(mt=-pt.z/nt+.5,gt=1-(-pt.y/et+.5)):Math.abs(dt.z)>.9&&(mt=pt.x/tt+.5,gt=1-(-pt.y/et+.5)),lt.push(mt,gt)}return st.setAttribute("uv",new Float32BufferAttribute(lt,2)),st};createRoundedBoxGeometry(10,10,10,2,10);const boxGeometry=new BoxGeometry(10,10,10),isMainTopic=tt=>tt.node_type==="topic"&&(tt.scale||1)>5,meshRenderLimit=500,meshRenderRadius=800;let nearbyNodeTimeout=null;const nearbyNodeTimeoutCycle=500,getNearbyNodeIds=(tt,et)=>{if(nearbyNodeTimeout)return null;nearbyNodeTimeout=setTimeout(()=>{nearbyNodeTimeout&&(clearTimeout(nearbyNodeTimeout),nearbyNodeTimeout=null)},nearbyNodeTimeoutCycle);const nt=[];return tt.forEach(it=>{const ot=et.position.distanceTo(variableVector3$1.set(it.x,it.y,it.z));otit.distance-ot.distance).slice(0,meshRenderLimit).map(it=>it.id)},initialCameraPosition=new Vector3(5e3,600,1600),arriveDistance=300,topicArriveDistance=600,selectionGraphDistance=2e3,selectionGraphCameraPosition={x:172.7392402058252,y:-239.04675366094037,z:-2e3},version$1="14.8.49",createExtendedExponentialRampToValueAutomationEvent=(tt,et,nt)=>({endTime:et,insertTime:nt,type:"exponentialRampToValue",value:tt}),createExtendedLinearRampToValueAutomationEvent=(tt,et,nt)=>({endTime:et,insertTime:nt,type:"linearRampToValue",value:tt}),createSetValueAutomationEvent=(tt,et)=>({startTime:et,type:"setValue",value:tt}),createSetValueCurveAutomationEvent=(tt,et,nt)=>({duration:nt,startTime:et,type:"setValueCurve",values:tt}),getTargetValueAtTime=(tt,et,{startTime:nt,target:rt,timeConstant:it})=>rt+(et-rt)*Math.exp((nt-tt)/it),isExponentialRampToValueAutomationEvent=tt=>tt.type==="exponentialRampToValue",isLinearRampToValueAutomationEvent=tt=>tt.type==="linearRampToValue",isAnyRampToValueAutomationEvent=tt=>isExponentialRampToValueAutomationEvent(tt)||isLinearRampToValueAutomationEvent(tt),isSetValueAutomationEvent=tt=>tt.type==="setValue",isSetValueCurveAutomationEvent=tt=>tt.type==="setValueCurve",getValueOfAutomationEventAtIndexAtTime=(tt,et,nt,rt)=>{const it=tt[et];return it===void 0?rt:isAnyRampToValueAutomationEvent(it)||isSetValueAutomationEvent(it)?it.value:isSetValueCurveAutomationEvent(it)?it.values[it.values.length-1]:getTargetValueAtTime(nt,getValueOfAutomationEventAtIndexAtTime(tt,et-1,it.startTime,rt),it)},getEndTimeAndValueOfPreviousAutomationEvent=(tt,et,nt,rt,it)=>nt===void 0?[rt.insertTime,it]:isAnyRampToValueAutomationEvent(nt)?[nt.endTime,nt.value]:isSetValueAutomationEvent(nt)?[nt.startTime,nt.value]:isSetValueCurveAutomationEvent(nt)?[nt.startTime+nt.duration,nt.values[nt.values.length-1]]:[nt.startTime,getValueOfAutomationEventAtIndexAtTime(tt,et-1,nt.startTime,it)],isCancelAndHoldAutomationEvent=tt=>tt.type==="cancelAndHold",isCancelScheduledValuesAutomationEvent=tt=>tt.type==="cancelScheduledValues",getEventTime=tt=>isCancelAndHoldAutomationEvent(tt)||isCancelScheduledValuesAutomationEvent(tt)?tt.cancelTime:isExponentialRampToValueAutomationEvent(tt)||isLinearRampToValueAutomationEvent(tt)?tt.endTime:tt.startTime,getExponentialRampValueAtTime=(tt,et,nt,{endTime:rt,value:it})=>nt===it?it:0nt+(tt-et)/(rt-et)*(it-nt),interpolateValue=(tt,et)=>{const nt=Math.floor(et),rt=Math.ceil(et);return nt===rt?tt[nt]:(1-(et-nt))*tt[nt]+(1-(rt-et))*tt[rt]},getValueCurveValueAtTime=(tt,{duration:et,startTime:nt,values:rt})=>{const it=(tt-nt)/et*(rt.length-1);return interpolateValue(rt,it)},isSetTargetAutomationEvent=tt=>tt.type==="setTarget";class AutomationEventList{constructor(et){this._automationEvents=[],this._currenTime=0,this._defaultValue=et}[Symbol.iterator](){return this._automationEvents[Symbol.iterator]()}add(et){const nt=getEventTime(et);if(isCancelAndHoldAutomationEvent(et)||isCancelScheduledValuesAutomationEvent(et)){const rt=this._automationEvents.findIndex(ot=>isCancelScheduledValuesAutomationEvent(et)&&isSetValueCurveAutomationEvent(ot)?ot.startTime+ot.duration>=nt:getEventTime(ot)>=nt),it=this._automationEvents[rt];if(rt!==-1&&(this._automationEvents=this._automationEvents.slice(0,rt)),isCancelAndHoldAutomationEvent(et)){const ot=this._automationEvents[this._automationEvents.length-1];if(it!==void 0&&isAnyRampToValueAutomationEvent(it)){if(ot!==void 0&&isSetTargetAutomationEvent(ot))throw new Error("The internal list is malformed.");const at=ot===void 0?it.insertTime:isSetValueCurveAutomationEvent(ot)?ot.startTime+ot.duration:getEventTime(ot),st=ot===void 0?this._defaultValue:isSetValueCurveAutomationEvent(ot)?ot.values[ot.values.length-1]:ot.value,lt=isExponentialRampToValueAutomationEvent(it)?getExponentialRampValueAtTime(nt,at,st,it):getLinearRampValueAtTime(nt,at,st,it),ct=isExponentialRampToValueAutomationEvent(it)?createExtendedExponentialRampToValueAutomationEvent(lt,nt,this._currenTime):createExtendedLinearRampToValueAutomationEvent(lt,nt,this._currenTime);this._automationEvents.push(ct)}if(ot!==void 0&&isSetTargetAutomationEvent(ot)&&this._automationEvents.push(createSetValueAutomationEvent(this.getValue(nt),nt)),ot!==void 0&&isSetValueCurveAutomationEvent(ot)&&ot.startTime+ot.duration>nt){const at=nt-ot.startTime,st=(ot.values.length-1)/ot.duration,lt=Math.max(2,1+Math.ceil(at*st)),ct=at/(lt-1)*st,ut=ot.values.slice(0,lt);if(ct<1)for(let ht=1;htgetEventTime(at)>nt),it=rt===-1?this._automationEvents[this._automationEvents.length-1]:this._automationEvents[rt-1];if(it!==void 0&&isSetValueCurveAutomationEvent(it)&&getEventTime(it)+it.duration>nt)return!1;const ot=isExponentialRampToValueAutomationEvent(et)?createExtendedExponentialRampToValueAutomationEvent(et.value,et.endTime,this._currenTime):isLinearRampToValueAutomationEvent(et)?createExtendedLinearRampToValueAutomationEvent(et.value,nt,this._currenTime):et;if(rt===-1)this._automationEvents.push(ot);else{if(isSetValueCurveAutomationEvent(et)&&nt+et.duration>getEventTime(this._automationEvents[rt]))return!1;this._automationEvents.splice(rt,0,ot)}}return!0}flush(et){const nt=this._automationEvents.findIndex(rt=>getEventTime(rt)>et);if(nt>1){const rt=this._automationEvents.slice(nt-1),it=rt[0];isSetTargetAutomationEvent(it)&&rt.unshift(createSetValueAutomationEvent(getValueOfAutomationEventAtIndexAtTime(this._automationEvents,nt-2,it.startTime,this._defaultValue),it.startTime)),this._automationEvents=rt}}getValue(et){if(this._automationEvents.length===0)return this._defaultValue;const nt=this._automationEvents.findIndex(at=>getEventTime(at)>et),rt=this._automationEvents[nt],it=(nt===-1?this._automationEvents.length:nt)-1,ot=this._automationEvents[it];if(ot!==void 0&&isSetTargetAutomationEvent(ot)&&(rt===void 0||!isAnyRampToValueAutomationEvent(rt)||rt.insertTime>et))return getTargetValueAtTime(et,getValueOfAutomationEventAtIndexAtTime(this._automationEvents,it-1,ot.startTime,this._defaultValue),ot);if(ot!==void 0&&isSetValueAutomationEvent(ot)&&(rt===void 0||!isAnyRampToValueAutomationEvent(rt)))return ot.value;if(ot!==void 0&&isSetValueCurveAutomationEvent(ot)&&(rt===void 0||!isAnyRampToValueAutomationEvent(rt)||ot.startTime+ot.duration>et))return et({cancelTime:tt,type:"cancelAndHold"}),createCancelScheduledValuesAutomationEvent=tt=>({cancelTime:tt,type:"cancelScheduledValues"}),createExponentialRampToValueAutomationEvent=(tt,et)=>({endTime:et,type:"exponentialRampToValue",value:tt}),createLinearRampToValueAutomationEvent=(tt,et)=>({endTime:et,type:"linearRampToValue",value:tt}),createSetTargetAutomationEvent=(tt,et,nt)=>({startTime:et,target:tt,timeConstant:nt,type:"setTarget"}),createAbortError=()=>new DOMException("","AbortError"),createAddActiveInputConnectionToAudioNode=tt=>(et,nt,[rt,it,ot],at)=>{tt(et[it],[nt,rt,ot],st=>st[0]===nt&&st[1]===rt,at)},createAddAudioNodeConnections=tt=>(et,nt,rt)=>{const it=[];for(let ot=0;ot(et,nt)=>{tt.set(et,{activeInputs:new Set,passiveInputs:new WeakMap,renderer:nt})},ACTIVE_AUDIO_NODE_STORE=new WeakSet,AUDIO_NODE_CONNECTIONS_STORE=new WeakMap,AUDIO_NODE_STORE=new WeakMap,AUDIO_PARAM_CONNECTIONS_STORE=new WeakMap,AUDIO_PARAM_STORE=new WeakMap,CONTEXT_STORE=new WeakMap,EVENT_LISTENERS=new WeakMap,CYCLE_COUNTERS=new WeakMap,NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS=new WeakMap,NODE_TO_PROCESSOR_MAPS=new WeakMap,handler={construct(){return handler}},isConstructible=tt=>{try{const et=new Proxy(tt,handler);new et}catch{return!1}return!0},IMPORT_STATEMENT_REGEX=/^import(?:(?:[\s]+[\w]+|(?:[\s]+[\w]+[\s]*,)?[\s]*\{[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?(?:[\s]*,[\s]*[\w]+(?:[\s]+as[\s]+[\w]+)?)*[\s]*}|(?:[\s]+[\w]+[\s]*,)?[\s]*\*[\s]+as[\s]+[\w]+)[\s]+from)?(?:[\s]*)("([^"\\]|\\.)+"|'([^'\\]|\\.)+')(?:[\s]*);?/,splitImportStatements=(tt,et)=>{const nt=[];let rt=tt.replace(/^[\s]+/,""),it=rt.match(IMPORT_STATEMENT_REGEX);for(;it!==null;){const ot=it[1].slice(1,-1),at=it[0].replace(/([\s]+)?;?$/,"").replace(ot,new URL(ot,et).toString());nt.push(at),rt=rt.slice(it[0].length).replace(/^[\s]+/,""),it=rt.match(IMPORT_STATEMENT_REGEX)}return[nt.join(";"),rt]},verifyParameterDescriptors=tt=>{if(tt!==void 0&&!Array.isArray(tt))throw new TypeError("The parameterDescriptors property of given value for processorCtor is not an array.")},verifyProcessorCtor=tt=>{if(!isConstructible(tt))throw new TypeError("The given value for processorCtor should be a constructor.");if(tt.prototype===null||typeof tt.prototype!="object")throw new TypeError("The given value for processorCtor should have a prototype.")},createAddAudioWorkletModule=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt)=>{let pt=0;return(mt,gt,yt={credentials:"omit"})=>{const bt=ut.get(mt);if(bt!==void 0&&bt.has(gt))return Promise.resolve();const wt=ct.get(mt);if(wt!==void 0){const St=wt.get(gt);if(St!==void 0)return St}const vt=ot(mt),kt=vt.audioWorklet===void 0?it(gt).then(([St,Et])=>{const[At,Tt]=splitImportStatements(St,Et),Mt=`${At};((a,b)=>{(a[b]=a[b]||[]).push((AudioWorkletProcessor,global,registerProcessor,sampleRate,self,window)=>{${Tt} +})})(window,'_AWGS')`;return nt(Mt)}).then(()=>{const St=dt._AWGS.pop();if(St===void 0)throw new SyntaxError;rt(vt.currentTime,vt.sampleRate,()=>St(class{},void 0,(Et,At)=>{if(Et.trim()==="")throw et();const Tt=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(vt);if(Tt!==void 0){if(Tt.has(Et))throw et();verifyProcessorCtor(At),verifyParameterDescriptors(At.parameterDescriptors),Tt.set(Et,At)}else verifyProcessorCtor(At),verifyParameterDescriptors(At.parameterDescriptors),NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.set(vt,new Map([[Et,At]]))},vt.sampleRate,void 0,void 0))}):Promise.all([it(gt),Promise.resolve(tt(ht,ht))]).then(([[St,Et],At])=>{const Tt=pt+1;pt=Tt;const[Mt,Lt]=splitImportStatements(St,Et),xt=`${Mt};((AudioWorkletProcessor,registerProcessor)=>{${Lt} +})(${At?"AudioWorkletProcessor":"class extends AudioWorkletProcessor {__b=new WeakSet();constructor(){super();(p=>p.postMessage=(q=>(m,t)=>q.call(p,m,t?t.filter(u=>!this.__b.has(u)):t))(p.postMessage))(this.port)}}"},(n,p)=>registerProcessor(n,class extends p{${At?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${At?"":"i.forEach(this.__c);o.forEach(this.__c);this.__c(Object.values(p));"}return super.process(i.map(j=>j.some(k=>k.length===0)?[]:j),o,p)}}));registerProcessor('__sac${Tt}',class extends AudioWorkletProcessor{process(){return !1}})`,It=new Blob([xt],{type:"application/javascript; charset=utf-8"}),Ot=URL.createObjectURL(It);return vt.audioWorklet.addModule(Ot,yt).then(()=>{if(st(vt))return vt;const zt=at(vt);return zt.audioWorklet.addModule(Ot,yt).then(()=>zt)}).then(zt=>{if(lt===null)throw new SyntaxError;try{new lt(zt,`__sac${Tt}`)}catch{throw new SyntaxError}}).finally(()=>URL.revokeObjectURL(Ot))});return wt===void 0?ct.set(mt,new Map([[gt,kt]])):wt.set(gt,kt),kt.then(()=>{const St=ut.get(mt);St===void 0?ut.set(mt,new Set([gt])):St.add(gt)}).finally(()=>{const St=ct.get(mt);St!==void 0&&St.delete(gt)}),kt}},getValueForKey=(tt,et)=>{const nt=tt.get(et);if(nt===void 0)throw new Error("A value with the given key could not be found.");return nt},pickElementFromSet=(tt,et)=>{const nt=Array.from(tt).filter(et);if(nt.length>1)throw Error("More than one element was found.");if(nt.length===0)throw Error("No element was found.");const[rt]=nt;return tt.delete(rt),rt},deletePassiveInputConnectionToAudioNode=(tt,et,nt,rt)=>{const it=getValueForKey(tt,et),ot=pickElementFromSet(it,at=>at[0]===nt&&at[1]===rt);return it.size===0&&tt.delete(et),ot},getEventListenersOfAudioNode=tt=>getValueForKey(EVENT_LISTENERS,tt),setInternalStateToActive=tt=>{if(ACTIVE_AUDIO_NODE_STORE.has(tt))throw new Error("The AudioNode is already stored.");ACTIVE_AUDIO_NODE_STORE.add(tt),getEventListenersOfAudioNode(tt).forEach(et=>et(!0))},isAudioWorkletNode=tt=>"port"in tt,setInternalStateToPassive=tt=>{if(!ACTIVE_AUDIO_NODE_STORE.has(tt))throw new Error("The AudioNode is not stored.");ACTIVE_AUDIO_NODE_STORE.delete(tt),getEventListenersOfAudioNode(tt).forEach(et=>et(!1))},setInternalStateToPassiveWhenNecessary=(tt,et)=>{!isAudioWorkletNode(tt)&&et.every(nt=>nt.size===0)&&setInternalStateToPassive(tt)},createAddConnectionToAudioNode=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt)=>{const pt=new WeakMap;return(mt,gt,yt,bt,wt)=>{const{activeInputs:vt,passiveInputs:kt}=ot(gt),{outputs:St}=ot(mt),Et=st(mt),At=Tt=>{const Mt=lt(gt),Lt=lt(mt);if(Tt){const jt=deletePassiveInputConnectionToAudioNode(kt,mt,yt,bt);tt(vt,mt,jt,!1),!wt&&!ht(mt)&&nt(Lt,Mt,yt,bt),dt(gt)&&setInternalStateToActive(gt)}else{const jt=rt(vt,mt,yt,bt);et(kt,bt,jt,!1),!wt&&!ht(mt)&&it(Lt,Mt,yt,bt);const Rt=at(gt);if(Rt===0)ut(gt)&&setInternalStateToPassiveWhenNecessary(gt,vt);else{const $t=pt.get(gt);$t!==void 0&&clearTimeout($t),pt.set(gt,setTimeout(()=>{ut(gt)&&setInternalStateToPassiveWhenNecessary(gt,vt)},Rt*1e3))}}};return ct(St,[gt,yt,bt],Tt=>Tt[0]===gt&&Tt[1]===yt&&Tt[2]===bt,!0)?(Et.add(At),ut(mt)?tt(vt,mt,[yt,bt,At],!0):et(kt,bt,[mt,yt,At],!0),!0):!1}},createAddPassiveInputConnectionToAudioNode=tt=>(et,nt,[rt,it,ot],at)=>{const st=et.get(rt);st===void 0?et.set(rt,new Set([[it,nt,ot]])):tt(st,[it,nt,ot],lt=>lt[0]===it&<[1]===nt,at)},createAddSilentConnection=tt=>(et,nt)=>{const rt=tt(et,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});nt.connect(rt).connect(et.destination);const it=()=>{nt.removeEventListener("ended",it),nt.disconnect(rt),rt.disconnect()};nt.addEventListener("ended",it)},createAddUnrenderedAudioWorkletNode=tt=>(et,nt)=>{tt(et).add(nt)},DEFAULT_OPTIONS$j={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",fftSize:2048,maxDecibels:-30,minDecibels:-100,smoothingTimeConstant:.8},createAnalyserNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=it(st),ut={...DEFAULT_OPTIONS$j,...lt},ht=rt(ct,ut),dt=ot(ct)?et():null;super(st,!1,ht,dt),this._nativeAnalyserNode=ht}get fftSize(){return this._nativeAnalyserNode.fftSize}set fftSize(st){this._nativeAnalyserNode.fftSize=st}get frequencyBinCount(){return this._nativeAnalyserNode.frequencyBinCount}get maxDecibels(){return this._nativeAnalyserNode.maxDecibels}set maxDecibels(st){const lt=this._nativeAnalyserNode.maxDecibels;if(this._nativeAnalyserNode.maxDecibels=st,!(st>this._nativeAnalyserNode.minDecibels))throw this._nativeAnalyserNode.maxDecibels=lt,nt()}get minDecibels(){return this._nativeAnalyserNode.minDecibels}set minDecibels(st){const lt=this._nativeAnalyserNode.minDecibels;if(this._nativeAnalyserNode.minDecibels=st,!(this._nativeAnalyserNode.maxDecibels>st))throw this._nativeAnalyserNode.minDecibels=lt,nt()}get smoothingTimeConstant(){return this._nativeAnalyserNode.smoothingTimeConstant}set smoothingTimeConstant(st){this._nativeAnalyserNode.smoothingTimeConstant=st}getByteFrequencyData(st){this._nativeAnalyserNode.getByteFrequencyData(st)}getByteTimeDomainData(st){this._nativeAnalyserNode.getByteTimeDomainData(st)}getFloatFrequencyData(st){this._nativeAnalyserNode.getFloatFrequencyData(st)}getFloatTimeDomainData(st){this._nativeAnalyserNode.getFloatTimeDomainData(st)}},isOwnedByContext=(tt,et)=>tt.context===et,createAnalyserNodeRendererFactory=(tt,et,nt)=>()=>{const rt=new WeakMap,it=async(ot,at)=>{let st=et(ot);if(!isOwnedByContext(st,at)){const ct={channelCount:st.channelCount,channelCountMode:st.channelCountMode,channelInterpretation:st.channelInterpretation,fftSize:st.fftSize,maxDecibels:st.maxDecibels,minDecibels:st.minDecibels,smoothingTimeConstant:st.smoothingTimeConstant};st=tt(at,ct)}return rt.set(at,st),await nt(ot,at,st),st};return{render(ot,at){const st=rt.get(at);return st!==void 0?Promise.resolve(st):it(ot,at)}}},testAudioBufferCopyChannelMethodsOutOfBoundsSupport=tt=>{try{tt.copyToChannel(new Float32Array(1),0,-1)}catch{return!1}return!0},createIndexSizeError=()=>new DOMException("","IndexSizeError"),wrapAudioBufferGetChannelDataMethod=tt=>{tt.getChannelData=(et=>nt=>{try{return et.call(tt,nt)}catch(rt){throw rt.code===12?createIndexSizeError():rt}})(tt.getChannelData)},DEFAULT_OPTIONS$i={numberOfChannels:1},createAudioBufferConstructor=(tt,et,nt,rt,it,ot,at,st)=>{let lt=null;return class bw{constructor(ut){if(it===null)throw new Error("Missing the native OfflineAudioContext constructor.");const{length:ht,numberOfChannels:dt,sampleRate:pt}={...DEFAULT_OPTIONS$i,...ut};lt===null&&(lt=new it(1,1,44100));const mt=rt!==null&&et(ot,ot)?new rt({length:ht,numberOfChannels:dt,sampleRate:pt}):lt.createBuffer(dt,ht,pt);if(mt.numberOfChannels===0)throw nt();return typeof mt.copyFromChannel!="function"?(at(mt),wrapAudioBufferGetChannelDataMethod(mt)):et(testAudioBufferCopyChannelMethodsOutOfBoundsSupport,()=>testAudioBufferCopyChannelMethodsOutOfBoundsSupport(mt))||st(mt),tt.add(mt),mt}static[Symbol.hasInstance](ut){return ut!==null&&typeof ut=="object"&&Object.getPrototypeOf(ut)===bw.prototype||tt.has(ut)}}},MOST_NEGATIVE_SINGLE_FLOAT=-34028234663852886e22,MOST_POSITIVE_SINGLE_FLOAT=-MOST_NEGATIVE_SINGLE_FLOAT,isActiveAudioNode=tt=>ACTIVE_AUDIO_NODE_STORE.has(tt),DEFAULT_OPTIONS$h={buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1},createAudioBufferSourceNodeConstructor=(tt,et,nt,rt,it,ot,at,st)=>class extends tt{constructor(ct,ut){const ht=ot(ct),dt={...DEFAULT_OPTIONS$h,...ut},pt=it(ht,dt),mt=at(ht),gt=mt?et():null;super(ct,!1,pt,gt),this._audioBufferSourceNodeRenderer=gt,this._isBufferNullified=!1,this._isBufferSet=dt.buffer!==null,this._nativeAudioBufferSourceNode=pt,this._onended=null,this._playbackRate=nt(this,mt,pt.playbackRate,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get buffer(){return this._isBufferNullified?null:this._nativeAudioBufferSourceNode.buffer}set buffer(ct){if(this._nativeAudioBufferSourceNode.buffer=ct,ct!==null){if(this._isBufferSet)throw rt();this._isBufferSet=!0}}get loop(){return this._nativeAudioBufferSourceNode.loop}set loop(ct){this._nativeAudioBufferSourceNode.loop=ct}get loopEnd(){return this._nativeAudioBufferSourceNode.loopEnd}set loopEnd(ct){this._nativeAudioBufferSourceNode.loopEnd=ct}get loopStart(){return this._nativeAudioBufferSourceNode.loopStart}set loopStart(ct){this._nativeAudioBufferSourceNode.loopStart=ct}get onended(){return this._onended}set onended(ct){const ut=typeof ct=="function"?st(this,ct):null;this._nativeAudioBufferSourceNode.onended=ut;const ht=this._nativeAudioBufferSourceNode.onended;this._onended=ht!==null&&ht===ut?ct:ht}get playbackRate(){return this._playbackRate}start(ct=0,ut=0,ht){if(this._nativeAudioBufferSourceNode.start(ct,ut,ht),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.start=ht===void 0?[ct,ut]:[ct,ut,ht]),this.context.state!=="closed"){setInternalStateToActive(this);const dt=()=>{this._nativeAudioBufferSourceNode.removeEventListener("ended",dt),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeAudioBufferSourceNode.addEventListener("ended",dt)}}stop(ct=0){this._nativeAudioBufferSourceNode.stop(ct),this._audioBufferSourceNodeRenderer!==null&&(this._audioBufferSourceNodeRenderer.stop=ct)}},createAudioBufferSourceNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap;let at=null,st=null;const lt=async(ct,ut)=>{let ht=nt(ct);const dt=isOwnedByContext(ht,ut);if(!dt){const pt={buffer:ht.buffer,channelCount:ht.channelCount,channelCountMode:ht.channelCountMode,channelInterpretation:ht.channelInterpretation,loop:ht.loop,loopEnd:ht.loopEnd,loopStart:ht.loopStart,playbackRate:ht.playbackRate.value};ht=et(ut,pt),at!==null&&ht.start(...at),st!==null&&ht.stop(st)}return ot.set(ut,ht),dt?await tt(ut,ct.playbackRate,ht.playbackRate):await rt(ut,ct.playbackRate,ht.playbackRate),await it(ct,ut,ht),ht};return{set start(ct){at=ct},set stop(ct){st=ct},render(ct,ut){const ht=ot.get(ut);return ht!==void 0?Promise.resolve(ht):lt(ct,ut)}}},isAudioBufferSourceNode=tt=>"playbackRate"in tt,isBiquadFilterNode=tt=>"frequency"in tt&&"gain"in tt,isConstantSourceNode=tt=>"offset"in tt,isGainNode=tt=>!("frequency"in tt)&&"gain"in tt,isOscillatorNode=tt=>"detune"in tt&&"frequency"in tt,isStereoPannerNode=tt=>"pan"in tt,getAudioNodeConnections=tt=>getValueForKey(AUDIO_NODE_CONNECTIONS_STORE,tt),getAudioParamConnections=tt=>getValueForKey(AUDIO_PARAM_CONNECTIONS_STORE,tt),deactivateActiveAudioNodeInputConnections=(tt,et)=>{const{activeInputs:nt}=getAudioNodeConnections(tt);nt.forEach(it=>it.forEach(([ot])=>{et.includes(tt)||deactivateActiveAudioNodeInputConnections(ot,[...et,tt])}));const rt=isAudioBufferSourceNode(tt)?[tt.playbackRate]:isAudioWorkletNode(tt)?Array.from(tt.parameters.values()):isBiquadFilterNode(tt)?[tt.Q,tt.detune,tt.frequency,tt.gain]:isConstantSourceNode(tt)?[tt.offset]:isGainNode(tt)?[tt.gain]:isOscillatorNode(tt)?[tt.detune,tt.frequency]:isStereoPannerNode(tt)?[tt.pan]:[];for(const it of rt){const ot=getAudioParamConnections(it);ot!==void 0&&ot.activeInputs.forEach(([at])=>deactivateActiveAudioNodeInputConnections(at,et))}isActiveAudioNode(tt)&&setInternalStateToPassive(tt)},deactivateAudioGraph=tt=>{deactivateActiveAudioNodeInputConnections(tt.destination,[])},isValidLatencyHint=tt=>tt===void 0||typeof tt=="number"||typeof tt=="string"&&(tt==="balanced"||tt==="interactive"||tt==="playback"),createAudioContextConstructor=(tt,et,nt,rt,it,ot,at,st,lt)=>class extends tt{constructor(ut={}){if(lt===null)throw new Error("Missing the native AudioContext constructor.");let ht;try{ht=new lt(ut)}catch(mt){throw mt.code===12&&mt.message==="sampleRate is not in range"?nt():mt}if(ht===null)throw rt();if(!isValidLatencyHint(ut.latencyHint))throw new TypeError(`The provided value '${ut.latencyHint}' is not a valid enum value of type AudioContextLatencyCategory.`);if(ut.sampleRate!==void 0&&ht.sampleRate!==ut.sampleRate)throw nt();super(ht,2);const{latencyHint:dt}=ut,{sampleRate:pt}=ht;if(this._baseLatency=typeof ht.baseLatency=="number"?ht.baseLatency:dt==="balanced"?512/pt:dt==="interactive"||dt===void 0?256/pt:dt==="playback"?1024/pt:Math.max(2,Math.min(128,Math.round(dt*pt/128)))*128/pt,this._nativeAudioContext=ht,lt.name==="webkitAudioContext"?(this._nativeGainNode=ht.createGain(),this._nativeOscillatorNode=ht.createOscillator(),this._nativeGainNode.gain.value=1e-37,this._nativeOscillatorNode.connect(this._nativeGainNode).connect(ht.destination),this._nativeOscillatorNode.start()):(this._nativeGainNode=null,this._nativeOscillatorNode=null),this._state=null,ht.state==="running"){this._state="suspended";const mt=()=>{this._state==="suspended"&&(this._state=null),ht.removeEventListener("statechange",mt)};ht.addEventListener("statechange",mt)}}get baseLatency(){return this._baseLatency}get state(){return this._state!==null?this._state:this._nativeAudioContext.state}close(){return this.state==="closed"?this._nativeAudioContext.close().then(()=>{throw et()}):(this._state==="suspended"&&(this._state=null),this._nativeAudioContext.close().then(()=>{this._nativeGainNode!==null&&this._nativeOscillatorNode!==null&&(this._nativeOscillatorNode.stop(),this._nativeGainNode.disconnect(),this._nativeOscillatorNode.disconnect()),deactivateAudioGraph(this)}))}createMediaElementSource(ut){return new it(this,{mediaElement:ut})}createMediaStreamDestination(){return new ot(this)}createMediaStreamSource(ut){return new at(this,{mediaStream:ut})}createMediaStreamTrackSource(ut){return new st(this,{mediaStreamTrack:ut})}resume(){return this._state==="suspended"?new Promise((ut,ht)=>{const dt=()=>{this._nativeAudioContext.removeEventListener("statechange",dt),this._nativeAudioContext.state==="running"?ut():this.resume().then(ut,ht)};this._nativeAudioContext.addEventListener("statechange",dt)}):this._nativeAudioContext.resume().catch(ut=>{throw ut===void 0||ut.code===15?et():ut})}suspend(){return this._nativeAudioContext.suspend().catch(ut=>{throw ut===void 0?et():ut})}},createAudioDestinationNodeConstructor=(tt,et,nt,rt,it,ot,at,st)=>class extends tt{constructor(ct,ut){const ht=ot(ct),dt=at(ht),pt=it(ht,ut,dt),mt=dt?et(st):null;super(ct,!1,pt,mt),this._isNodeOfNativeOfflineAudioContext=dt,this._nativeAudioDestinationNode=pt}get channelCount(){return this._nativeAudioDestinationNode.channelCount}set channelCount(ct){if(this._isNodeOfNativeOfflineAudioContext)throw rt();if(ct>this._nativeAudioDestinationNode.maxChannelCount)throw nt();this._nativeAudioDestinationNode.channelCount=ct}get channelCountMode(){return this._nativeAudioDestinationNode.channelCountMode}set channelCountMode(ct){if(this._isNodeOfNativeOfflineAudioContext)throw rt();this._nativeAudioDestinationNode.channelCountMode=ct}get maxChannelCount(){return this._nativeAudioDestinationNode.maxChannelCount}},createAudioDestinationNodeRenderer=tt=>{const et=new WeakMap,nt=async(rt,it)=>{const ot=it.destination;return et.set(it,ot),await tt(rt,it,ot),ot};return{render(rt,it){const ot=et.get(it);return ot!==void 0?Promise.resolve(ot):nt(rt,it)}}},createAudioListenerFactory=(tt,et,nt,rt,it,ot,at,st)=>(lt,ct)=>{const ut=ct.listener,ht=()=>{const St=new Float32Array(1),Et=et(ct,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),At=at(ct);let Tt=!1,Mt=[0,0,-1,0,1,0],Lt=[0,0,0];const jt=()=>{if(Tt)return;Tt=!0;const It=rt(ct,256,9,0);It.onaudioprocess=({inputBuffer:Ot})=>{const zt=[ot(Ot,St,0),ot(Ot,St,1),ot(Ot,St,2),ot(Ot,St,3),ot(Ot,St,4),ot(Ot,St,5)];zt.some((Wt,Ft)=>Wt!==Mt[Ft])&&(ut.setOrientation(...zt),Mt=zt);const Ut=[ot(Ot,St,6),ot(Ot,St,7),ot(Ot,St,8)];Ut.some((Wt,Ft)=>Wt!==Lt[Ft])&&(ut.setPosition(...Ut),Lt=Ut)},Et.connect(It)},Rt=It=>Ot=>{Ot!==Mt[It]&&(Mt[It]=Ot,ut.setOrientation(...Mt))},$t=It=>Ot=>{Ot!==Lt[It]&&(Lt[It]=Ot,ut.setPosition(...Lt))},xt=(It,Ot,zt)=>{const Ut=nt(ct,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:Ot});Ut.connect(Et,0,It),Ut.start(),Object.defineProperty(Ut.offset,"defaultValue",{get(){return Ot}});const Wt=tt({context:lt},At,Ut.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT);return st(Wt,"value",Ft=>()=>Ft.call(Wt),Ft=>Nt=>{try{Ft.call(Wt,Nt)}catch(Ct){if(Ct.code!==9)throw Ct}jt(),At&&zt(Nt)}),Wt.cancelAndHoldAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.cancelAndHoldAtTime),Wt.cancelScheduledValues=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.cancelScheduledValues),Wt.exponentialRampToValueAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.exponentialRampToValueAtTime),Wt.linearRampToValueAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.linearRampToValueAtTime),Wt.setTargetAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.setTargetAtTime),Wt.setValueAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.setValueAtTime),Wt.setValueCurveAtTime=(Ft=>At?()=>{throw it()}:(...Nt)=>{const Ct=Ft.apply(Wt,Nt);return jt(),Ct})(Wt.setValueCurveAtTime),Wt};return{forwardX:xt(0,0,Rt(0)),forwardY:xt(1,0,Rt(1)),forwardZ:xt(2,-1,Rt(2)),positionX:xt(6,0,$t(0)),positionY:xt(7,0,$t(1)),positionZ:xt(8,0,$t(2)),upX:xt(3,0,Rt(3)),upY:xt(4,1,Rt(4)),upZ:xt(5,0,Rt(5))}},{forwardX:dt,forwardY:pt,forwardZ:mt,positionX:gt,positionY:yt,positionZ:bt,upX:wt,upY:vt,upZ:kt}=ut.forwardX===void 0?ht():ut;return{get forwardX(){return dt},get forwardY(){return pt},get forwardZ(){return mt},get positionX(){return gt},get positionY(){return yt},get positionZ(){return bt},get upX(){return wt},get upY(){return vt},get upZ(){return kt}}},isAudioNode$1=tt=>"context"in tt,isAudioNodeOutputConnection=tt=>isAudioNode$1(tt[0]),insertElementInSet=(tt,et,nt,rt)=>{for(const it of tt)if(nt(it)){if(rt)return!1;throw Error("The set contains at least one similar element.")}return tt.add(et),!0},addActiveInputConnectionToAudioParam=(tt,et,[nt,rt],it)=>{insertElementInSet(tt,[et,nt,rt],ot=>ot[0]===et&&ot[1]===nt,it)},addPassiveInputConnectionToAudioParam=(tt,[et,nt,rt],it)=>{const ot=tt.get(et);ot===void 0?tt.set(et,new Set([[nt,rt]])):insertElementInSet(ot,[nt,rt],at=>at[0]===nt,it)},isNativeAudioNodeFaker=tt=>"inputs"in tt,connectNativeAudioNodeToNativeAudioNode=(tt,et,nt,rt)=>{if(isNativeAudioNodeFaker(et)){const it=et.inputs[rt];return tt.connect(it,nt,0),[it,nt,0]}return tt.connect(et,nt,rt),[et,nt,rt]},deleteActiveInputConnection=(tt,et,nt)=>{for(const rt of tt)if(rt[0]===et&&rt[1]===nt)return tt.delete(rt),rt;return null},deleteActiveInputConnectionToAudioParam=(tt,et,nt)=>pickElementFromSet(tt,rt=>rt[0]===et&&rt[1]===nt),deleteEventListenerOfAudioNode=(tt,et)=>{if(!getEventListenersOfAudioNode(tt).delete(et))throw new Error("Missing the expected event listener.")},deletePassiveInputConnectionToAudioParam=(tt,et,nt)=>{const rt=getValueForKey(tt,et),it=pickElementFromSet(rt,ot=>ot[0]===nt);return rt.size===0&&tt.delete(et),it},disconnectNativeAudioNodeFromNativeAudioNode=(tt,et,nt,rt)=>{isNativeAudioNodeFaker(et)?tt.disconnect(et.inputs[rt],nt,0):tt.disconnect(et,nt,rt)},getNativeAudioNode=tt=>getValueForKey(AUDIO_NODE_STORE,tt),getNativeAudioParam=tt=>getValueForKey(AUDIO_PARAM_STORE,tt),isPartOfACycle=tt=>CYCLE_COUNTERS.has(tt),isPassiveAudioNode=tt=>!ACTIVE_AUDIO_NODE_STORE.has(tt),testAudioNodeDisconnectMethodSupport=(tt,et)=>new Promise(nt=>{if(et!==null)nt(!0);else{const rt=tt.createScriptProcessor(256,1,1),it=tt.createGain(),ot=tt.createBuffer(1,2,44100),at=ot.getChannelData(0);at[0]=1,at[1]=1;const st=tt.createBufferSource();st.buffer=ot,st.loop=!0,st.connect(rt).connect(tt.destination),st.connect(it),st.disconnect(it),rt.onaudioprocess=lt=>{const ct=lt.inputBuffer.getChannelData(0);Array.prototype.some.call(ct,ut=>ut===1)?nt(!0):nt(!1),st.stop(),rt.onaudioprocess=null,st.disconnect(rt),rt.disconnect(tt.destination)},st.start()}}),visitEachAudioNodeOnce=(tt,et)=>{const nt=new Map;for(const rt of tt)for(const it of rt){const ot=nt.get(it);nt.set(it,ot===void 0?1:ot+1)}nt.forEach((rt,it)=>et(it,rt))},isNativeAudioNode$1=tt=>"context"in tt,wrapAudioNodeDisconnectMethod=tt=>{const et=new Map;tt.connect=(nt=>(rt,it=0,ot=0)=>{const at=isNativeAudioNode$1(rt)?nt(rt,it,ot):nt(rt,it),st=et.get(rt);return st===void 0?et.set(rt,[{input:ot,output:it}]):st.every(lt=>lt.input!==ot||lt.output!==it)&&st.push({input:ot,output:it}),at})(tt.connect.bind(tt)),tt.disconnect=(nt=>(rt,it,ot)=>{if(nt.apply(tt),rt===void 0)et.clear();else if(typeof rt=="number")for(const[at,st]of et){const lt=st.filter(ct=>ct.output!==rt);lt.length===0?et.delete(at):et.set(at,lt)}else if(et.has(rt))if(it===void 0)et.delete(rt);else{const at=et.get(rt);if(at!==void 0){const st=at.filter(lt=>lt.output!==it&&(lt.input!==ot||ot===void 0));st.length===0?et.delete(rt):et.set(rt,st)}}for(const[at,st]of et)st.forEach(lt=>{isNativeAudioNode$1(at)?tt.connect(at,lt.output,lt.input):tt.connect(at,lt.output)})})(tt.disconnect)},addConnectionToAudioParamOfAudioContext=(tt,et,nt,rt)=>{const{activeInputs:it,passiveInputs:ot}=getAudioParamConnections(et),{outputs:at}=getAudioNodeConnections(tt),st=getEventListenersOfAudioNode(tt),lt=ct=>{const ut=getNativeAudioNode(tt),ht=getNativeAudioParam(et);if(ct){const dt=deletePassiveInputConnectionToAudioParam(ot,tt,nt);addActiveInputConnectionToAudioParam(it,tt,dt,!1),!rt&&!isPartOfACycle(tt)&&ut.connect(ht,nt)}else{const dt=deleteActiveInputConnectionToAudioParam(it,tt,nt);addPassiveInputConnectionToAudioParam(ot,dt,!1),!rt&&!isPartOfACycle(tt)&&ut.disconnect(ht,nt)}};return insertElementInSet(at,[et,nt],ct=>ct[0]===et&&ct[1]===nt,!0)?(st.add(lt),isActiveAudioNode(tt)?addActiveInputConnectionToAudioParam(it,tt,[nt,lt],!0):addPassiveInputConnectionToAudioParam(ot,[tt,nt,lt],!0),!0):!1},deleteInputConnectionOfAudioNode=(tt,et,nt,rt)=>{const{activeInputs:it,passiveInputs:ot}=getAudioNodeConnections(et),at=deleteActiveInputConnection(it[rt],tt,nt);return at===null?[deletePassiveInputConnectionToAudioNode(ot,tt,nt,rt)[2],!1]:[at[2],!0]},deleteInputConnectionOfAudioParam=(tt,et,nt)=>{const{activeInputs:rt,passiveInputs:it}=getAudioParamConnections(et),ot=deleteActiveInputConnection(rt,tt,nt);return ot===null?[deletePassiveInputConnectionToAudioParam(it,tt,nt)[1],!1]:[ot[2],!0]},deleteInputsOfAudioNode=(tt,et,nt,rt,it)=>{const[ot,at]=deleteInputConnectionOfAudioNode(tt,nt,rt,it);if(ot!==null&&(deleteEventListenerOfAudioNode(tt,ot),at&&!et&&!isPartOfACycle(tt)&&disconnectNativeAudioNodeFromNativeAudioNode(getNativeAudioNode(tt),getNativeAudioNode(nt),rt,it)),isActiveAudioNode(nt)){const{activeInputs:st}=getAudioNodeConnections(nt);setInternalStateToPassiveWhenNecessary(nt,st)}},deleteInputsOfAudioParam=(tt,et,nt,rt)=>{const[it,ot]=deleteInputConnectionOfAudioParam(tt,nt,rt);it!==null&&(deleteEventListenerOfAudioNode(tt,it),ot&&!et&&!isPartOfACycle(tt)&&getNativeAudioNode(tt).disconnect(getNativeAudioParam(nt),rt))},deleteAnyConnection=(tt,et)=>{const nt=getAudioNodeConnections(tt),rt=[];for(const it of nt.outputs)isAudioNodeOutputConnection(it)?deleteInputsOfAudioNode(tt,et,...it):deleteInputsOfAudioParam(tt,et,...it),rt.push(it[0]);return nt.outputs.clear(),rt},deleteConnectionAtOutput=(tt,et,nt)=>{const rt=getAudioNodeConnections(tt),it=[];for(const ot of rt.outputs)ot[1]===nt&&(isAudioNodeOutputConnection(ot)?deleteInputsOfAudioNode(tt,et,...ot):deleteInputsOfAudioParam(tt,et,...ot),it.push(ot[0]),rt.outputs.delete(ot));return it},deleteConnectionToDestination=(tt,et,nt,rt,it)=>{const ot=getAudioNodeConnections(tt);return Array.from(ot.outputs).filter(at=>at[0]===nt&&(rt===void 0||at[1]===rt)&&(it===void 0||at[2]===it)).map(at=>(isAudioNodeOutputConnection(at)?deleteInputsOfAudioNode(tt,et,...at):deleteInputsOfAudioParam(tt,et,...at),ot.outputs.delete(at),at[0]))},createAudioNodeConstructor=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt,pt,mt,gt)=>class extends ct{constructor(bt,wt,vt,kt){super(vt),this._context=bt,this._nativeAudioNode=vt;const St=ut(bt);ht(St)&&nt(testAudioNodeDisconnectMethodSupport,()=>testAudioNodeDisconnectMethodSupport(St,gt))!==!0&&wrapAudioNodeDisconnectMethod(vt),AUDIO_NODE_STORE.set(this,vt),EVENT_LISTENERS.set(this,new Set),bt.state!=="closed"&&wt&&setInternalStateToActive(this),tt(this,kt,vt)}get channelCount(){return this._nativeAudioNode.channelCount}set channelCount(bt){this._nativeAudioNode.channelCount=bt}get channelCountMode(){return this._nativeAudioNode.channelCountMode}set channelCountMode(bt){this._nativeAudioNode.channelCountMode=bt}get channelInterpretation(){return this._nativeAudioNode.channelInterpretation}set channelInterpretation(bt){this._nativeAudioNode.channelInterpretation=bt}get context(){return this._context}get numberOfInputs(){return this._nativeAudioNode.numberOfInputs}get numberOfOutputs(){return this._nativeAudioNode.numberOfOutputs}connect(bt,wt=0,vt=0){if(wt<0||wt>=this._nativeAudioNode.numberOfOutputs)throw it();const kt=ut(this._context),St=mt(kt);if(dt(bt)||pt(bt))throw ot();if(isAudioNode$1(bt)){const Tt=getNativeAudioNode(bt);try{const Lt=connectNativeAudioNodeToNativeAudioNode(this._nativeAudioNode,Tt,wt,vt),jt=isPassiveAudioNode(this);(St||jt)&&this._nativeAudioNode.disconnect(...Lt),this.context.state!=="closed"&&!jt&&isPassiveAudioNode(bt)&&setInternalStateToActive(bt)}catch(Lt){throw Lt.code===12?ot():Lt}if(et(this,bt,wt,vt,St)){const Lt=lt([this],bt);visitEachAudioNodeOnce(Lt,rt(St))}return bt}const Et=getNativeAudioParam(bt);if(Et.name==="playbackRate"&&Et.maxValue===1024)throw at();try{this._nativeAudioNode.connect(Et,wt),(St||isPassiveAudioNode(this))&&this._nativeAudioNode.disconnect(Et,wt)}catch(Tt){throw Tt.code===12?ot():Tt}if(addConnectionToAudioParamOfAudioContext(this,bt,wt,St)){const Tt=lt([this],bt);visitEachAudioNodeOnce(Tt,rt(St))}}disconnect(bt,wt,vt){let kt;const St=ut(this._context),Et=mt(St);if(bt===void 0)kt=deleteAnyConnection(this,Et);else if(typeof bt=="number"){if(bt<0||bt>=this.numberOfOutputs)throw it();kt=deleteConnectionAtOutput(this,Et,bt)}else{if(wt!==void 0&&(wt<0||wt>=this.numberOfOutputs)||isAudioNode$1(bt)&&vt!==void 0&&(vt<0||vt>=bt.numberOfInputs))throw it();if(kt=deleteConnectionToDestination(this,Et,bt,wt,vt),kt.length===0)throw ot()}for(const At of kt){const Tt=lt([this],At);visitEachAudioNodeOnce(Tt,st)}}},createAudioParamFactory=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt)=>(pt,mt,gt,yt=null,bt=null)=>{const wt=gt.value,vt=new AutomationEventList(wt),kt=mt?rt(vt):null,St={get defaultValue(){return wt},get maxValue(){return yt===null?gt.maxValue:yt},get minValue(){return bt===null?gt.minValue:bt},get value(){return gt.value},set value(Et){gt.value=Et,St.setValueAtTime(Et,pt.context.currentTime)},cancelAndHoldAtTime(Et){if(typeof gt.cancelAndHoldAtTime=="function")kt===null&&vt.flush(pt.context.currentTime),vt.add(it(Et)),gt.cancelAndHoldAtTime(Et);else{const At=Array.from(vt).pop();kt===null&&vt.flush(pt.context.currentTime),vt.add(it(Et));const Tt=Array.from(vt).pop();gt.cancelScheduledValues(Et),At!==Tt&&Tt!==void 0&&(Tt.type==="exponentialRampToValue"?gt.exponentialRampToValueAtTime(Tt.value,Tt.endTime):Tt.type==="linearRampToValue"?gt.linearRampToValueAtTime(Tt.value,Tt.endTime):Tt.type==="setValue"?gt.setValueAtTime(Tt.value,Tt.startTime):Tt.type==="setValueCurve"&>.setValueCurveAtTime(Tt.values,Tt.startTime,Tt.duration))}return St},cancelScheduledValues(Et){return kt===null&&vt.flush(pt.context.currentTime),vt.add(ot(Et)),gt.cancelScheduledValues(Et),St},exponentialRampToValueAtTime(Et,At){if(Et===0)throw new RangeError;if(!Number.isFinite(At)||At<0)throw new RangeError;const Tt=pt.context.currentTime;return kt===null&&vt.flush(Tt),Array.from(vt).length===0&&(vt.add(ct(wt,Tt)),gt.setValueAtTime(wt,Tt)),vt.add(at(Et,At)),gt.exponentialRampToValueAtTime(Et,At),St},linearRampToValueAtTime(Et,At){const Tt=pt.context.currentTime;return kt===null&&vt.flush(Tt),Array.from(vt).length===0&&(vt.add(ct(wt,Tt)),gt.setValueAtTime(wt,Tt)),vt.add(st(Et,At)),gt.linearRampToValueAtTime(Et,At),St},setTargetAtTime(Et,At,Tt){return kt===null&&vt.flush(pt.context.currentTime),vt.add(lt(Et,At,Tt)),gt.setTargetAtTime(Et,At,Tt),St},setValueAtTime(Et,At){return kt===null&&vt.flush(pt.context.currentTime),vt.add(ct(Et,At)),gt.setValueAtTime(Et,At),St},setValueCurveAtTime(Et,At,Tt){const Mt=Et instanceof Float32Array?Et:new Float32Array(Et);if(ht!==null&&ht.name==="webkitAudioContext"){const Lt=At+Tt,jt=pt.context.sampleRate,Rt=Math.ceil(At*jt),$t=Math.floor(Lt*jt),xt=$t-Rt,It=new Float32Array(xt);for(let zt=0;zt({replay(et){for(const nt of tt)if(nt.type==="exponentialRampToValue"){const{endTime:rt,value:it}=nt;et.exponentialRampToValueAtTime(it,rt)}else if(nt.type==="linearRampToValue"){const{endTime:rt,value:it}=nt;et.linearRampToValueAtTime(it,rt)}else if(nt.type==="setTarget"){const{startTime:rt,target:it,timeConstant:ot}=nt;et.setTargetAtTime(it,rt,ot)}else if(nt.type==="setValue"){const{startTime:rt,value:it}=nt;et.setValueAtTime(it,rt)}else if(nt.type==="setValueCurve"){const{duration:rt,startTime:it,values:ot}=nt;et.setValueCurveAtTime(ot,it,rt)}else throw new Error("Can't apply an unknown automation.")}});class ReadOnlyMap{constructor(et){this._map=new Map(et)}get size(){return this._map.size}entries(){return this._map.entries()}forEach(et,nt=null){return this._map.forEach((rt,it)=>et.call(nt,rt,it,this))}get(et){return this._map.get(et)}has(et){return this._map.has(et)}keys(){return this._map.keys()}values(){return this._map.values()}}const DEFAULT_OPTIONS$g={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,parameterData:{},processorOptions:{}},createAudioWorkletNodeConstructor=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt,pt)=>class extends et{constructor(gt,yt,bt){var wt;const vt=st(gt),kt=lt(vt),St=ut({...DEFAULT_OPTIONS$g,...bt});dt(St);const Et=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(vt),At=Et==null?void 0:Et.get(yt),Tt=kt||vt.state!=="closed"?vt:(wt=at(vt))!==null&&wt!==void 0?wt:vt,Mt=it(Tt,kt?null:gt.baseLatency,ct,yt,At,St),Lt=kt?rt(yt,St,At):null;super(gt,!0,Mt,Lt);const jt=[];Mt.parameters.forEach(($t,xt)=>{const It=nt(this,kt,$t);jt.push([xt,It])}),this._nativeAudioWorkletNode=Mt,this._onprocessorerror=null,this._parameters=new ReadOnlyMap(jt),kt&&tt(vt,this);const{activeInputs:Rt}=ot(this);ht(Mt,Rt)}get onprocessorerror(){return this._onprocessorerror}set onprocessorerror(gt){const yt=typeof gt=="function"?pt(this,gt):null;this._nativeAudioWorkletNode.onprocessorerror=yt;const bt=this._nativeAudioWorkletNode.onprocessorerror;this._onprocessorerror=bt!==null&&bt===yt?gt:bt}get parameters(){return this._parameters===null?this._nativeAudioWorkletNode.parameters:this._parameters}get port(){return this._nativeAudioWorkletNode.port}};function copyFromChannel(tt,et,nt,rt,it){if(typeof tt.copyFromChannel=="function")et[nt].byteLength===0&&(et[nt]=new Float32Array(128)),tt.copyFromChannel(et[nt],rt,it);else{const ot=tt.getChannelData(rt);if(et[nt].byteLength===0)et[nt]=ot.slice(it,it+128);else{const at=new Float32Array(ot.buffer,it*Float32Array.BYTES_PER_ELEMENT,128);et[nt].set(at)}}}const copyToChannel=(tt,et,nt,rt,it)=>{typeof tt.copyToChannel=="function"?et[nt].byteLength!==0&&tt.copyToChannel(et[nt],rt,it):et[nt].byteLength!==0&&tt.getChannelData(rt).set(et[nt],it)},createNestedArrays=(tt,et)=>{const nt=[];for(let rt=0;rt{const nt=getValueForKey(NODE_TO_PROCESSOR_MAPS,tt),rt=getNativeAudioNode(et);return getValueForKey(nt,rt)},processBuffer=async(tt,et,nt,rt,it,ot,at)=>{const st=et===null?Math.ceil(tt.context.length/128)*128:et.length,lt=rt.channelCount*rt.numberOfInputs,ct=it.reduce((yt,bt)=>yt+bt,0),ut=ct===0?null:nt.createBuffer(ct,st,nt.sampleRate);if(ot===void 0)throw new Error("Missing the processor constructor.");const ht=getAudioNodeConnections(tt),dt=await getAudioWorkletProcessor(nt,tt),pt=createNestedArrays(rt.numberOfInputs,rt.channelCount),mt=createNestedArrays(rt.numberOfOutputs,it),gt=Array.from(tt.parameters.keys()).reduce((yt,bt)=>({...yt,[bt]:new Float32Array(128)}),{});for(let yt=0;yt0&&et!==null)for(let bt=0;bt{copyFromChannel(et,gt,bt,lt+wt,yt)});for(let bt=0;btht.activeInputs[kt].size===0?[]:vt),wt=at(yt/nt.sampleRate,nt.sampleRate,()=>dt.process(bt,mt,gt));if(ut!==null)for(let vt=0,kt=0;vt(yt,bt,wt)=>{const vt=new WeakMap;let kt=null;const St=async(Et,At)=>{let Tt=ut(Et),Mt=null;const Lt=isOwnedByContext(Tt,At),jt=Array.isArray(bt.outputChannelCount)?bt.outputChannelCount:Array.from(bt.outputChannelCount);if(ht===null){const Rt=jt.reduce((Ot,zt)=>Ot+zt,0),$t=it(At,{channelCount:Math.max(1,Rt),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,Rt)}),xt=[];for(let Ot=0;Ot{const Nt=new dt(Wt,Math.ceil(Et.context.length/128)*128,At.sampleRate),Ct=[],Ht=[];for(let Yt=0;Yt{const fn=ot(Nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:Yt.value});return await pt(Nt,Yt,fn.offset),fn})),nn=rt(Nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,zt+Ut)});for(let Yt=0;Ytmt(Et,Nt,Yt))),gt(Nt)})(),At,bt,jt,wt,ct)}const Rt=await kt,$t=nt(At,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[xt,It,Ot]=Mt;Rt!==null&&($t.buffer=Rt,$t.start(0)),$t.connect(xt);for(let zt=0,Ut=0;ztclass extends mt{constructor(St,Et){super(St,Et),this._nativeContext=St,this._audioWorklet=tt===void 0?void 0:{addModule:(At,Tt)=>tt(this,At,Tt)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new et(this)}createBiquadFilter(){return new it(this)}createBuffer(St,Et,At){return new nt({length:Et,numberOfChannels:St,sampleRate:At})}createBufferSource(){return new rt(this)}createChannelMerger(St=6){return new ot(this,{numberOfInputs:St})}createChannelSplitter(St=6){return new at(this,{numberOfOutputs:St})}createConstantSource(){return new st(this)}createConvolver(){return new lt(this)}createDelay(St=1){return new ut(this,{maxDelayTime:St})}createDynamicsCompressor(){return new ht(this)}createGain(){return new dt(this)}createIIRFilter(St,Et){return new pt(this,{feedback:Et,feedforward:St})}createOscillator(){return new gt(this)}createPanner(){return new yt(this)}createPeriodicWave(St,Et,At={disableNormalization:!1}){return new bt(this,{...At,imag:Et,real:St})}createStereoPanner(){return new wt(this)}createWaveShaper(){return new vt(this)}decodeAudioData(St,Et,At){return ct(this._nativeContext,St).then(Tt=>(typeof Et=="function"&&Et(Tt),Tt),Tt=>{throw typeof At=="function"&&At(Tt),Tt})}},DEFAULT_OPTIONS$f={Q:1,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:350,gain:0,type:"lowpass"},createBiquadFilterNodeConstructor=(tt,et,nt,rt,it,ot,at,st)=>class extends tt{constructor(ct,ut){const ht=ot(ct),dt={...DEFAULT_OPTIONS$f,...ut},pt=it(ht,dt),mt=at(ht),gt=mt?nt():null;super(ct,!1,pt,gt),this._Q=et(this,mt,pt.Q,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._detune=et(this,mt,pt.detune,1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT),-1200*Math.log2(MOST_POSITIVE_SINGLE_FLOAT)),this._frequency=et(this,mt,pt.frequency,ct.sampleRate/2,0),this._gain=et(this,mt,pt.gain,40*Math.log10(MOST_POSITIVE_SINGLE_FLOAT),MOST_NEGATIVE_SINGLE_FLOAT),this._nativeBiquadFilterNode=pt,st(this,1)}get detune(){return this._detune}get frequency(){return this._frequency}get gain(){return this._gain}get Q(){return this._Q}get type(){return this._nativeBiquadFilterNode.type}set type(ct){this._nativeBiquadFilterNode.type=ct}getFrequencyResponse(ct,ut,ht){try{this._nativeBiquadFilterNode.getFrequencyResponse(ct,ut,ht)}catch(dt){throw dt.code===11?rt():dt}if(ct.length!==ut.length||ut.length!==ht.length)throw rt()}},createBiquadFilterNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap,at=async(st,lt)=>{let ct=nt(st);const ut=isOwnedByContext(ct,lt);if(!ut){const ht={Q:ct.Q.value,channelCount:ct.channelCount,channelCountMode:ct.channelCountMode,channelInterpretation:ct.channelInterpretation,detune:ct.detune.value,frequency:ct.frequency.value,gain:ct.gain.value,type:ct.type};ct=et(lt,ht)}return ot.set(lt,ct),ut?(await tt(lt,st.Q,ct.Q),await tt(lt,st.detune,ct.detune),await tt(lt,st.frequency,ct.frequency),await tt(lt,st.gain,ct.gain)):(await rt(lt,st.Q,ct.Q),await rt(lt,st.detune,ct.detune),await rt(lt,st.frequency,ct.frequency),await rt(lt,st.gain,ct.gain)),await it(st,lt,ct),ct};return{render(st,lt){const ct=ot.get(lt);return ct!==void 0?Promise.resolve(ct):at(st,lt)}}},createCacheTestResult=(tt,et)=>(nt,rt)=>{const it=et.get(nt);if(it!==void 0)return it;const ot=tt.get(nt);if(ot!==void 0)return ot;try{const at=rt();return at instanceof Promise?(tt.set(nt,at),at.catch(()=>!1).then(st=>(tt.delete(nt),et.set(nt,st),st))):(et.set(nt,at),at)}catch{return et.set(nt,!1),!1}},DEFAULT_OPTIONS$e={channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6},createChannelMergerNodeConstructor=(tt,et,nt,rt,it)=>class extends tt{constructor(at,st){const lt=rt(at),ct={...DEFAULT_OPTIONS$e,...st},ut=nt(lt,ct),ht=it(lt)?et():null;super(at,!1,ut,ht)}},createChannelMergerNodeRendererFactory=(tt,et,nt)=>()=>{const rt=new WeakMap,it=async(ot,at)=>{let st=et(ot);if(!isOwnedByContext(st,at)){const ct={channelCount:st.channelCount,channelCountMode:st.channelCountMode,channelInterpretation:st.channelInterpretation,numberOfInputs:st.numberOfInputs};st=tt(at,ct)}return rt.set(at,st),await nt(ot,at,st),st};return{render(ot,at){const st=rt.get(at);return st!==void 0?Promise.resolve(st):it(ot,at)}}},DEFAULT_OPTIONS$d={channelCount:6,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:6},createChannelSplitterNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=rt(st),ut=ot({...DEFAULT_OPTIONS$d,...lt}),ht=nt(ct,ut),dt=it(ct)?et():null;super(st,!1,ht,dt)}},createChannelSplitterNodeRendererFactory=(tt,et,nt)=>()=>{const rt=new WeakMap,it=async(ot,at)=>{let st=et(ot);if(!isOwnedByContext(st,at)){const ct={channelCount:st.channelCount,channelCountMode:st.channelCountMode,channelInterpretation:st.channelInterpretation,numberOfOutputs:st.numberOfOutputs};st=tt(at,ct)}return rt.set(at,st),await nt(ot,at,st),st};return{render(ot,at){const st=rt.get(at);return st!==void 0?Promise.resolve(st):it(ot,at)}}},createConnectAudioParam=tt=>(et,nt,rt)=>tt(nt,et,rt),createConnectMultipleOutputs=tt=>(et,nt,rt=0,it=0)=>{const ot=et[rt];if(ot===void 0)throw tt();return isNativeAudioNode$1(nt)?ot.connect(nt,0,it):ot.connect(nt,0)},createConnectedNativeAudioBufferSourceNodeFactory=tt=>(et,nt)=>{const rt=tt(et,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),it=et.createBuffer(1,2,44100);return rt.buffer=it,rt.loop=!0,rt.connect(nt),rt.start(),()=>{rt.stop(),rt.disconnect(nt)}},DEFAULT_OPTIONS$c={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",offset:1},createConstantSourceNodeConstructor=(tt,et,nt,rt,it,ot,at)=>class extends tt{constructor(lt,ct){const ut=it(lt),ht={...DEFAULT_OPTIONS$c,...ct},dt=rt(ut,ht),pt=ot(ut),mt=pt?nt():null;super(lt,!1,dt,mt),this._constantSourceNodeRenderer=mt,this._nativeConstantSourceNode=dt,this._offset=et(this,pt,dt.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._onended=null}get offset(){return this._offset}get onended(){return this._onended}set onended(lt){const ct=typeof lt=="function"?at(this,lt):null;this._nativeConstantSourceNode.onended=ct;const ut=this._nativeConstantSourceNode.onended;this._onended=ut!==null&&ut===ct?lt:ut}start(lt=0){if(this._nativeConstantSourceNode.start(lt),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.start=lt),this.context.state!=="closed"){setInternalStateToActive(this);const ct=()=>{this._nativeConstantSourceNode.removeEventListener("ended",ct),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeConstantSourceNode.addEventListener("ended",ct)}}stop(lt=0){this._nativeConstantSourceNode.stop(lt),this._constantSourceNodeRenderer!==null&&(this._constantSourceNodeRenderer.stop=lt)}},createConstantSourceNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap;let at=null,st=null;const lt=async(ct,ut)=>{let ht=nt(ct);const dt=isOwnedByContext(ht,ut);if(!dt){const pt={channelCount:ht.channelCount,channelCountMode:ht.channelCountMode,channelInterpretation:ht.channelInterpretation,offset:ht.offset.value};ht=et(ut,pt),at!==null&&ht.start(at),st!==null&&ht.stop(st)}return ot.set(ut,ht),dt?await tt(ut,ct.offset,ht.offset):await rt(ut,ct.offset,ht.offset),await it(ct,ut,ht),ht};return{set start(ct){at=ct},set stop(ct){st=ct},render(ct,ut){const ht=ot.get(ut);return ht!==void 0?Promise.resolve(ht):lt(ct,ut)}}},createConvertNumberToUnsignedLong=tt=>et=>(tt[0]=et,tt[0]),DEFAULT_OPTIONS$b={buffer:null,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",disableNormalization:!1},createConvolverNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=rt(st),ut={...DEFAULT_OPTIONS$b,...lt},ht=nt(ct,ut),pt=it(ct)?et():null;super(st,!1,ht,pt),this._isBufferNullified=!1,this._nativeConvolverNode=ht,ut.buffer!==null&&ot(this,ut.buffer.duration)}get buffer(){return this._isBufferNullified?null:this._nativeConvolverNode.buffer}set buffer(st){if(this._nativeConvolverNode.buffer=st,st===null&&this._nativeConvolverNode.buffer!==null){const lt=this._nativeConvolverNode.context;this._nativeConvolverNode.buffer=lt.createBuffer(1,1,lt.sampleRate),this._isBufferNullified=!0,ot(this,0)}else this._isBufferNullified=!1,ot(this,this._nativeConvolverNode.buffer===null?0:this._nativeConvolverNode.buffer.duration)}get normalize(){return this._nativeConvolverNode.normalize}set normalize(st){this._nativeConvolverNode.normalize=st}},createConvolverNodeRendererFactory=(tt,et,nt)=>()=>{const rt=new WeakMap,it=async(ot,at)=>{let st=et(ot);if(!isOwnedByContext(st,at)){const ct={buffer:st.buffer,channelCount:st.channelCount,channelCountMode:st.channelCountMode,channelInterpretation:st.channelInterpretation,disableNormalization:!st.normalize};st=tt(at,ct)}return rt.set(at,st),isNativeAudioNodeFaker(st)?await nt(ot,at,st.inputs[0]):await nt(ot,at,st),st};return{render(ot,at){const st=rt.get(at);return st!==void 0?Promise.resolve(st):it(ot,at)}}},createCreateNativeOfflineAudioContext=(tt,et)=>(nt,rt,it)=>{if(et===null)throw new Error("Missing the native OfflineAudioContext constructor.");try{return new et(nt,rt,it)}catch(ot){throw ot.name==="SyntaxError"?tt():ot}},createDataCloneError=()=>new DOMException("","DataCloneError"),detachArrayBuffer=tt=>{const{port1:et,port2:nt}=new MessageChannel;return new Promise(rt=>{const it=()=>{nt.onmessage=null,et.close(),nt.close(),rt()};nt.onmessage=()=>it();try{et.postMessage(tt,[tt])}catch{}finally{it()}})},createDecodeAudioData=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut)=>(ht,dt)=>{const pt=at(ht)?ht:ot(ht);if(it.has(dt)){const mt=nt();return Promise.reject(mt)}try{it.add(dt)}catch{}return et(lt,()=>lt(pt))?pt.decodeAudioData(dt).then(mt=>(detachArrayBuffer(dt).catch(()=>{}),et(st,()=>st(mt))||ut(mt),tt.add(mt),mt)):new Promise((mt,gt)=>{const yt=async()=>{try{await detachArrayBuffer(dt)}catch{}},bt=wt=>{gt(wt),yt()};try{pt.decodeAudioData(dt,wt=>{typeof wt.copyFromChannel!="function"&&(ct(wt),wrapAudioBufferGetChannelDataMethod(wt)),tt.add(wt),yt().then(()=>mt(wt))},wt=>{bt(wt===null?rt():wt)})}catch(wt){bt(wt)}})},createDecrementCycleCounter=(tt,et,nt,rt,it,ot,at,st)=>(lt,ct)=>{const ut=et.get(lt);if(ut===void 0)throw new Error("Missing the expected cycle count.");const ht=ot(lt.context),dt=st(ht);if(ut===ct){if(et.delete(lt),!dt&&at(lt)){const pt=rt(lt),{outputs:mt}=nt(lt);for(const gt of mt)if(isAudioNodeOutputConnection(gt)){const yt=rt(gt[0]);tt(pt,yt,gt[1],gt[2])}else{const yt=it(gt[0]);pt.connect(yt,gt[1])}}}else et.set(lt,ut-ct)},DEFAULT_OPTIONS$a={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",delayTime:0,maxDelayTime:1},createDelayNodeConstructor=(tt,et,nt,rt,it,ot,at)=>class extends tt{constructor(lt,ct){const ut=it(lt),ht={...DEFAULT_OPTIONS$a,...ct},dt=rt(ut,ht),pt=ot(ut),mt=pt?nt(ht.maxDelayTime):null;super(lt,!1,dt,mt),this._delayTime=et(this,pt,dt.delayTime),at(this,ht.maxDelayTime)}get delayTime(){return this._delayTime}},createDelayNodeRendererFactory=(tt,et,nt,rt,it)=>ot=>{const at=new WeakMap,st=async(lt,ct)=>{let ut=nt(lt);const ht=isOwnedByContext(ut,ct);if(!ht){const dt={channelCount:ut.channelCount,channelCountMode:ut.channelCountMode,channelInterpretation:ut.channelInterpretation,delayTime:ut.delayTime.value,maxDelayTime:ot};ut=et(ct,dt)}return at.set(ct,ut),ht?await tt(ct,lt.delayTime,ut.delayTime):await rt(ct,lt.delayTime,ut.delayTime),await it(lt,ct,ut),ut};return{render(lt,ct){const ut=at.get(ct);return ut!==void 0?Promise.resolve(ut):st(lt,ct)}}},createDeleteActiveInputConnectionToAudioNode=tt=>(et,nt,rt,it)=>tt(et[it],ot=>ot[0]===nt&&ot[1]===rt),createDeleteUnrenderedAudioWorkletNode=tt=>(et,nt)=>{tt(et).delete(nt)},isDelayNode=tt=>"delayTime"in tt,createDetectCycles=(tt,et,nt)=>function rt(it,ot){const at=isAudioNode$1(ot)?ot:nt(tt,ot);if(isDelayNode(at))return[];if(it[0]===at)return[it];if(it.includes(at))return[];const{outputs:st}=et(at);return Array.from(st).map(lt=>rt([...it,at],lt[0])).reduce((lt,ct)=>lt.concat(ct),[])},getOutputAudioNodeAtIndex=(tt,et,nt)=>{const rt=et[nt];if(rt===void 0)throw tt();return rt},createDisconnectMultipleOutputs=tt=>(et,nt=void 0,rt=void 0,it=0)=>nt===void 0?et.forEach(ot=>ot.disconnect()):typeof nt=="number"?getOutputAudioNodeAtIndex(tt,et,nt).disconnect():isNativeAudioNode$1(nt)?rt===void 0?et.forEach(ot=>ot.disconnect(nt)):it===void 0?getOutputAudioNodeAtIndex(tt,et,rt).disconnect(nt,0):getOutputAudioNodeAtIndex(tt,et,rt).disconnect(nt,0,it):rt===void 0?et.forEach(ot=>ot.disconnect(nt)):getOutputAudioNodeAtIndex(tt,et,rt).disconnect(nt,0),DEFAULT_OPTIONS$9={attack:.003,channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",knee:30,ratio:12,release:.25,threshold:-24},createDynamicsCompressorNodeConstructor=(tt,et,nt,rt,it,ot,at,st)=>class extends tt{constructor(ct,ut){const ht=ot(ct),dt={...DEFAULT_OPTIONS$9,...ut},pt=rt(ht,dt),mt=at(ht),gt=mt?nt():null;super(ct,!1,pt,gt),this._attack=et(this,mt,pt.attack),this._knee=et(this,mt,pt.knee),this._nativeDynamicsCompressorNode=pt,this._ratio=et(this,mt,pt.ratio),this._release=et(this,mt,pt.release),this._threshold=et(this,mt,pt.threshold),st(this,.006)}get attack(){return this._attack}get channelCount(){return this._nativeDynamicsCompressorNode.channelCount}set channelCount(ct){const ut=this._nativeDynamicsCompressorNode.channelCount;if(this._nativeDynamicsCompressorNode.channelCount=ct,ct>2)throw this._nativeDynamicsCompressorNode.channelCount=ut,it()}get channelCountMode(){return this._nativeDynamicsCompressorNode.channelCountMode}set channelCountMode(ct){const ut=this._nativeDynamicsCompressorNode.channelCountMode;if(this._nativeDynamicsCompressorNode.channelCountMode=ct,ct==="max")throw this._nativeDynamicsCompressorNode.channelCountMode=ut,it()}get knee(){return this._knee}get ratio(){return this._ratio}get reduction(){return typeof this._nativeDynamicsCompressorNode.reduction.value=="number"?this._nativeDynamicsCompressorNode.reduction.value:this._nativeDynamicsCompressorNode.reduction}get release(){return this._release}get threshold(){return this._threshold}},createDynamicsCompressorNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap,at=async(st,lt)=>{let ct=nt(st);const ut=isOwnedByContext(ct,lt);if(!ut){const ht={attack:ct.attack.value,channelCount:ct.channelCount,channelCountMode:ct.channelCountMode,channelInterpretation:ct.channelInterpretation,knee:ct.knee.value,ratio:ct.ratio.value,release:ct.release.value,threshold:ct.threshold.value};ct=et(lt,ht)}return ot.set(lt,ct),ut?(await tt(lt,st.attack,ct.attack),await tt(lt,st.knee,ct.knee),await tt(lt,st.ratio,ct.ratio),await tt(lt,st.release,ct.release),await tt(lt,st.threshold,ct.threshold)):(await rt(lt,st.attack,ct.attack),await rt(lt,st.knee,ct.knee),await rt(lt,st.ratio,ct.ratio),await rt(lt,st.release,ct.release),await rt(lt,st.threshold,ct.threshold)),await it(st,lt,ct),ct};return{render(st,lt){const ct=ot.get(lt);return ct!==void 0?Promise.resolve(ct):at(st,lt)}}},createEncodingError=()=>new DOMException("","EncodingError"),createEvaluateSource=tt=>et=>new Promise((nt,rt)=>{if(tt===null){rt(new SyntaxError);return}const it=tt.document.head;if(it===null)rt(new SyntaxError);else{const ot=tt.document.createElement("script"),at=new Blob([et],{type:"application/javascript"}),st=URL.createObjectURL(at),lt=tt.onerror,ct=()=>{tt.onerror=lt,URL.revokeObjectURL(st)};tt.onerror=(ut,ht,dt,pt,mt)=>{if(ht===st||ht===tt.location.href&&dt===1&&pt===1)return ct(),rt(mt),!1;if(lt!==null)return lt(ut,ht,dt,pt,mt)},ot.onerror=()=>{ct(),rt(new SyntaxError)},ot.onload=()=>{ct(),nt()},ot.src=st,ot.type="module",it.appendChild(ot)}}),createEventTargetConstructor=tt=>class{constructor(nt){this._nativeEventTarget=nt,this._listeners=new WeakMap}addEventListener(nt,rt,it){if(rt!==null){let ot=this._listeners.get(rt);ot===void 0&&(ot=tt(this,rt),typeof rt=="function"&&this._listeners.set(rt,ot)),this._nativeEventTarget.addEventListener(nt,ot,it)}}dispatchEvent(nt){return this._nativeEventTarget.dispatchEvent(nt)}removeEventListener(nt,rt,it){const ot=rt===null?void 0:this._listeners.get(rt);this._nativeEventTarget.removeEventListener(nt,ot===void 0?null:ot,it)}},createExposeCurrentFrameAndCurrentTime=tt=>(et,nt,rt)=>{Object.defineProperties(tt,{currentFrame:{configurable:!0,get(){return Math.round(et*nt)}},currentTime:{configurable:!0,get(){return et}}});try{return rt()}finally{tt!==null&&(delete tt.currentFrame,delete tt.currentTime)}},createFetchSource=tt=>async et=>{try{const nt=await fetch(et);if(nt.ok)return[await nt.text(),nt.url]}catch{}throw tt()},DEFAULT_OPTIONS$8={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",gain:1},createGainNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=it(st),ut={...DEFAULT_OPTIONS$8,...lt},ht=rt(ct,ut),dt=ot(ct),pt=dt?nt():null;super(st,!1,ht,pt),this._gain=et(this,dt,ht.gain,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT)}get gain(){return this._gain}},createGainNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap,at=async(st,lt)=>{let ct=nt(st);const ut=isOwnedByContext(ct,lt);if(!ut){const ht={channelCount:ct.channelCount,channelCountMode:ct.channelCountMode,channelInterpretation:ct.channelInterpretation,gain:ct.gain.value};ct=et(lt,ht)}return ot.set(lt,ct),ut?await tt(lt,st.gain,ct.gain):await rt(lt,st.gain,ct.gain),await it(st,lt,ct),ct};return{render(st,lt){const ct=ot.get(lt);return ct!==void 0?Promise.resolve(ct):at(st,lt)}}},createGetActiveAudioWorkletNodeInputs=(tt,et)=>nt=>et(tt,nt),createGetAudioNodeRenderer=tt=>et=>{const nt=tt(et);if(nt.renderer===null)throw new Error("Missing the renderer of the given AudioNode in the audio graph.");return nt.renderer},createGetAudioNodeTailTime=tt=>et=>{var nt;return(nt=tt.get(et))!==null&&nt!==void 0?nt:0},createGetAudioParamRenderer=tt=>et=>{const nt=tt(et);if(nt.renderer===null)throw new Error("Missing the renderer of the given AudioParam in the audio graph.");return nt.renderer},createGetBackupOfflineAudioContext=tt=>et=>tt.get(et),createInvalidStateError=()=>new DOMException("","InvalidStateError"),createGetNativeContext=tt=>et=>{const nt=tt.get(et);if(nt===void 0)throw createInvalidStateError();return nt},createGetOrCreateBackupOfflineAudioContext=(tt,et)=>nt=>{let rt=tt.get(nt);if(rt!==void 0)return rt;if(et===null)throw new Error("Missing the native OfflineAudioContext constructor.");return rt=new et(1,1,44100),tt.set(nt,rt),rt},createGetUnrenderedAudioWorkletNodes=tt=>et=>{const nt=tt.get(et);if(nt===void 0)throw new Error("The context has no set of AudioWorkletNodes.");return nt},createInvalidAccessError=()=>new DOMException("","InvalidAccessError"),wrapIIRFilterNodeGetFrequencyResponseMethod=tt=>{tt.getFrequencyResponse=(et=>(nt,rt,it)=>{if(nt.length!==rt.length||rt.length!==it.length)throw createInvalidAccessError();return et.call(tt,nt,rt,it)})(tt.getFrequencyResponse)},DEFAULT_OPTIONS$7={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers"},createIIRFilterNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=rt(st),ut=it(ct),ht={...DEFAULT_OPTIONS$7,...lt},dt=et(ct,ut?null:st.baseLatency,ht),pt=ut?nt(ht.feedback,ht.feedforward):null;super(st,!1,dt,pt),wrapIIRFilterNodeGetFrequencyResponseMethod(dt),this._nativeIIRFilterNode=dt,ot(this,1)}getFrequencyResponse(st,lt,ct){return this._nativeIIRFilterNode.getFrequencyResponse(st,lt,ct)}},filterBuffer=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut)=>{const ht=ct.length;let dt=st;for(let pt=0;pt{const it=nt instanceof Float64Array?nt:new Float64Array(nt),ot=rt instanceof Float64Array?rt:new Float64Array(rt),at=it.length,st=ot.length,lt=Math.min(at,st);if(it[0]!==1){for(let mt=0;mt(ot,at)=>{const st=new WeakMap;let lt=null;const ct=async(ut,ht)=>{let dt=null,pt=et(ut);const mt=isOwnedByContext(pt,ht);if(ht.createIIRFilter===void 0?dt=tt(ht,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}):mt||(pt=ht.createIIRFilter(at,ot)),st.set(ht,dt===null?pt:dt),dt!==null){if(lt===null){if(nt===null)throw new Error("Missing the native OfflineAudioContext constructor.");const yt=new nt(ut.context.destination.channelCount,ut.context.length,ht.sampleRate);lt=(async()=>{await rt(ut,yt,yt.destination);const bt=await it(yt);return filterFullBuffer(bt,ht,ot,at)})()}const gt=await lt;return dt.buffer=gt,dt.start(0),dt}return await rt(ut,ht,pt),pt};return{render(ut,ht){const dt=st.get(ht);return dt!==void 0?Promise.resolve(dt):ct(ut,ht)}}},createIncrementCycleCounterFactory=(tt,et,nt,rt,it,ot)=>at=>(st,lt)=>{const ct=tt.get(st);if(ct===void 0){if(!at&&ot(st)){const ut=rt(st),{outputs:ht}=nt(st);for(const dt of ht)if(isAudioNodeOutputConnection(dt)){const pt=rt(dt[0]);et(ut,pt,dt[1],dt[2])}else{const pt=it(dt[0]);ut.disconnect(pt,dt[1])}}tt.set(st,lt)}else tt.set(st,ct+lt)},createIsAnyAudioContext=(tt,et)=>nt=>{const rt=tt.get(nt);return et(rt)||et(nt)},createIsAnyAudioNode=(tt,et)=>nt=>tt.has(nt)||et(nt),createIsAnyAudioParam=(tt,et)=>nt=>tt.has(nt)||et(nt),createIsAnyOfflineAudioContext=(tt,et)=>nt=>{const rt=tt.get(nt);return et(rt)||et(nt)},createIsNativeAudioContext=tt=>et=>tt!==null&&et instanceof tt,createIsNativeAudioNode=tt=>et=>tt!==null&&typeof tt.AudioNode=="function"&&et instanceof tt.AudioNode,createIsNativeAudioParam=tt=>et=>tt!==null&&typeof tt.AudioParam=="function"&&et instanceof tt.AudioParam,createIsNativeContext=(tt,et)=>nt=>tt(nt)||et(nt),createIsNativeOfflineAudioContext=tt=>et=>tt!==null&&et instanceof tt,createIsSecureContext=tt=>tt!==null&&tt.isSecureContext,createMediaElementAudioSourceNodeConstructor=(tt,et,nt,rt)=>class extends tt{constructor(ot,at){const st=nt(ot),lt=et(st,at);if(rt(st))throw TypeError();super(ot,!0,lt,null),this._nativeMediaElementAudioSourceNode=lt}get mediaElement(){return this._nativeMediaElementAudioSourceNode.mediaElement}},DEFAULT_OPTIONS$6={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers"},createMediaStreamAudioDestinationNodeConstructor=(tt,et,nt,rt)=>class extends tt{constructor(ot,at){const st=nt(ot);if(rt(st))throw new TypeError;const lt={...DEFAULT_OPTIONS$6,...at},ct=et(st,lt);super(ot,!1,ct,null),this._nativeMediaStreamAudioDestinationNode=ct}get stream(){return this._nativeMediaStreamAudioDestinationNode.stream}},createMediaStreamAudioSourceNodeConstructor=(tt,et,nt,rt)=>class extends tt{constructor(ot,at){const st=nt(ot),lt=et(st,at);if(rt(st))throw new TypeError;super(ot,!0,lt,null),this._nativeMediaStreamAudioSourceNode=lt}get mediaStream(){return this._nativeMediaStreamAudioSourceNode.mediaStream}},createMediaStreamTrackAudioSourceNodeConstructor=(tt,et,nt)=>class extends tt{constructor(it,ot){const at=nt(it),st=et(at,ot);super(it,!0,st,null)}},createMinimalBaseAudioContextConstructor=(tt,et,nt,rt,it,ot)=>class extends nt{constructor(st,lt){super(st),this._nativeContext=st,CONTEXT_STORE.set(this,st),rt(st)&&it.set(st,new Set),this._destination=new tt(this,lt),this._listener=et(this,st),this._onstatechange=null}get currentTime(){return this._nativeContext.currentTime}get destination(){return this._destination}get listener(){return this._listener}get onstatechange(){return this._onstatechange}set onstatechange(st){const lt=typeof st=="function"?ot(this,st):null;this._nativeContext.onstatechange=lt;const ct=this._nativeContext.onstatechange;this._onstatechange=ct!==null&&ct===lt?st:ct}get sampleRate(){return this._nativeContext.sampleRate}get state(){return this._nativeContext.state}},testPromiseSupport=tt=>{const et=new Uint32Array([1179011410,40,1163280727,544501094,16,131073,44100,176400,1048580,1635017060,4,0]);try{const nt=tt.decodeAudioData(et.buffer,()=>{});return nt===void 0?!1:(nt.catch(()=>{}),!0)}catch{}return!1},createMonitorConnections=(tt,et)=>(nt,rt,it)=>{const ot=new Set;return nt.connect=(at=>(st,lt=0,ct=0)=>{const ut=ot.size===0;if(et(st))return at.call(nt,st,lt,ct),tt(ot,[st,lt,ct],ht=>ht[0]===st&&ht[1]===lt&&ht[2]===ct,!0),ut&&rt(),st;at.call(nt,st,lt),tt(ot,[st,lt],ht=>ht[0]===st&&ht[1]===lt,!0),ut&&rt()})(nt.connect),nt.disconnect=(at=>(st,lt,ct)=>{const ut=ot.size>0;if(st===void 0)at.apply(nt),ot.clear();else if(typeof st=="number"){at.call(nt,st);for(const dt of ot)dt[1]===st&&ot.delete(dt)}else{et(st)?at.call(nt,st,lt,ct):at.call(nt,st,lt);for(const dt of ot)dt[0]===st&&(lt===void 0||dt[1]===lt)&&(ct===void 0||dt[2]===ct)&&ot.delete(dt)}const ht=ot.size===0;ut&&ht&&it()})(nt.disconnect),nt},assignNativeAudioNodeOption=(tt,et,nt)=>{const rt=et[nt];rt!==void 0&&rt!==tt[nt]&&(tt[nt]=rt)},assignNativeAudioNodeOptions=(tt,et)=>{assignNativeAudioNodeOption(tt,et,"channelCount"),assignNativeAudioNodeOption(tt,et,"channelCountMode"),assignNativeAudioNodeOption(tt,et,"channelInterpretation")},testAnalyserNodeGetFloatTimeDomainDataMethodSupport=tt=>typeof tt.getFloatTimeDomainData=="function",wrapAnalyserNodeGetFloatTimeDomainDataMethod=tt=>{tt.getFloatTimeDomainData=et=>{const nt=new Uint8Array(et.length);tt.getByteTimeDomainData(nt);const rt=Math.max(nt.length,tt.fftSize);for(let it=0;it(nt,rt)=>{const it=nt.createAnalyser();if(assignNativeAudioNodeOptions(it,rt),!(rt.maxDecibels>rt.minDecibels))throw et();return assignNativeAudioNodeOption(it,rt,"fftSize"),assignNativeAudioNodeOption(it,rt,"maxDecibels"),assignNativeAudioNodeOption(it,rt,"minDecibels"),assignNativeAudioNodeOption(it,rt,"smoothingTimeConstant"),tt(testAnalyserNodeGetFloatTimeDomainDataMethodSupport,()=>testAnalyserNodeGetFloatTimeDomainDataMethodSupport(it))||wrapAnalyserNodeGetFloatTimeDomainDataMethod(it),it},createNativeAudioBufferConstructor=tt=>tt===null?null:tt.hasOwnProperty("AudioBuffer")?tt.AudioBuffer:null,assignNativeAudioNodeAudioParamValue=(tt,et,nt)=>{const rt=et[nt];rt!==void 0&&rt!==tt[nt].value&&(tt[nt].value=rt)},wrapAudioBufferSourceNodeStartMethodConsecutiveCalls=tt=>{tt.start=(et=>{let nt=!1;return(rt=0,it=0,ot)=>{if(nt)throw createInvalidStateError();et.call(tt,rt,it,ot),nt=!0}})(tt.start)},wrapAudioScheduledSourceNodeStartMethodNegativeParameters=tt=>{tt.start=(et=>(nt=0,rt=0,it)=>{if(typeof it=="number"&&it<0||rt<0||nt<0)throw new RangeError("The parameters can't be negative.");et.call(tt,nt,rt,it)})(tt.start)},wrapAudioScheduledSourceNodeStopMethodNegativeParameters=tt=>{tt.stop=(et=>(nt=0)=>{if(nt<0)throw new RangeError("The parameter can't be negative.");et.call(tt,nt)})(tt.stop)},createNativeAudioBufferSourceNodeFactory=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut)=>(ht,dt)=>{const pt=ht.createBufferSource();return assignNativeAudioNodeOptions(pt,dt),assignNativeAudioNodeAudioParamValue(pt,dt,"playbackRate"),assignNativeAudioNodeOption(pt,dt,"buffer"),assignNativeAudioNodeOption(pt,dt,"loop"),assignNativeAudioNodeOption(pt,dt,"loopEnd"),assignNativeAudioNodeOption(pt,dt,"loopStart"),et(nt,()=>nt(ht))||wrapAudioBufferSourceNodeStartMethodConsecutiveCalls(pt),et(rt,()=>rt(ht))||lt(pt),et(it,()=>it(ht))||ct(pt,ht),et(ot,()=>ot(ht))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(pt),et(at,()=>at(ht))||ut(pt,ht),et(st,()=>st(ht))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(pt),tt(ht,pt),pt},createNativeAudioContextConstructor=tt=>tt===null?null:tt.hasOwnProperty("AudioContext")?tt.AudioContext:tt.hasOwnProperty("webkitAudioContext")?tt.webkitAudioContext:null,createNativeAudioDestinationNodeFactory=(tt,et)=>(nt,rt,it)=>{const ot=nt.destination;if(ot.channelCount!==rt)try{ot.channelCount=rt}catch{}it&&ot.channelCountMode!=="explicit"&&(ot.channelCountMode="explicit"),ot.maxChannelCount===0&&Object.defineProperty(ot,"maxChannelCount",{value:rt});const at=tt(nt,{channelCount:rt,channelCountMode:ot.channelCountMode,channelInterpretation:ot.channelInterpretation,gain:1});return et(at,"channelCount",st=>()=>st.call(at),st=>lt=>{st.call(at,lt);try{ot.channelCount=lt}catch(ct){if(lt>ot.maxChannelCount)throw ct}}),et(at,"channelCountMode",st=>()=>st.call(at),st=>lt=>{st.call(at,lt),ot.channelCountMode=lt}),et(at,"channelInterpretation",st=>()=>st.call(at),st=>lt=>{st.call(at,lt),ot.channelInterpretation=lt}),Object.defineProperty(at,"maxChannelCount",{get:()=>ot.maxChannelCount}),at.connect(ot),at},createNativeAudioWorkletNodeConstructor=tt=>tt===null?null:tt.hasOwnProperty("AudioWorkletNode")?tt.AudioWorkletNode:null,testClonabilityOfAudioWorkletNodeOptions=tt=>{const{port1:et}=new MessageChannel;try{et.postMessage(tt)}finally{et.close()}},createNativeAudioWorkletNodeFactory=(tt,et,nt,rt,it)=>(ot,at,st,lt,ct,ut)=>{if(st!==null)try{const ht=new st(ot,lt,ut),dt=new Map;let pt=null;if(Object.defineProperties(ht,{channelCount:{get:()=>ut.channelCount,set:()=>{throw tt()}},channelCountMode:{get:()=>"explicit",set:()=>{throw tt()}},onprocessorerror:{get:()=>pt,set:mt=>{typeof pt=="function"&&ht.removeEventListener("processorerror",pt),pt=typeof mt=="function"?mt:null,typeof pt=="function"&&ht.addEventListener("processorerror",pt)}}}),ht.addEventListener=(mt=>(...gt)=>{if(gt[0]==="processorerror"){const yt=typeof gt[1]=="function"?gt[1]:typeof gt[1]=="object"&>[1]!==null&&typeof gt[1].handleEvent=="function"?gt[1].handleEvent:null;if(yt!==null){const bt=dt.get(gt[1]);bt!==void 0?gt[1]=bt:(gt[1]=wt=>{wt.type==="error"?(Object.defineProperties(wt,{type:{value:"processorerror"}}),yt(wt)):yt(new ErrorEvent(gt[0],{...wt}))},dt.set(yt,gt[1]))}}return mt.call(ht,"error",gt[1],gt[2]),mt.call(ht,...gt)})(ht.addEventListener),ht.removeEventListener=(mt=>(...gt)=>{if(gt[0]==="processorerror"){const yt=dt.get(gt[1]);yt!==void 0&&(dt.delete(gt[1]),gt[1]=yt)}return mt.call(ht,"error",gt[1],gt[2]),mt.call(ht,gt[0],gt[1],gt[2])})(ht.removeEventListener),ut.numberOfOutputs!==0){const mt=nt(ot,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return ht.connect(mt).connect(ot.destination),it(ht,()=>mt.disconnect(),()=>mt.connect(ot.destination))}return ht}catch(ht){throw ht.code===11?rt():ht}if(ct===void 0)throw rt();return testClonabilityOfAudioWorkletNodeOptions(ut),et(ot,at,ct,ut)},computeBufferSize=(tt,et)=>tt===null?512:Math.max(512,Math.min(16384,Math.pow(2,Math.round(Math.log2(tt*et))))),cloneAudioWorkletNodeOptions=tt=>new Promise((et,nt)=>{const{port1:rt,port2:it}=new MessageChannel;rt.onmessage=({data:ot})=>{rt.close(),it.close(),et(ot)},rt.onmessageerror=({data:ot})=>{rt.close(),it.close(),nt(ot)},it.postMessage(tt)}),createAudioWorkletProcessorPromise=async(tt,et)=>{const nt=await cloneAudioWorkletNodeOptions(et);return new tt(nt)},createAudioWorkletProcessor=(tt,et,nt,rt)=>{let it=NODE_TO_PROCESSOR_MAPS.get(tt);it===void 0&&(it=new WeakMap,NODE_TO_PROCESSOR_MAPS.set(tt,it));const ot=createAudioWorkletProcessorPromise(nt,rt);return it.set(et,ot),ot},createNativeAudioWorkletNodeFakerFactory=(tt,et,nt,rt,it,ot,at,st,lt,ct,ut,ht,dt)=>(pt,mt,gt,yt)=>{if(yt.numberOfInputs===0&&yt.numberOfOutputs===0)throw lt();const bt=Array.isArray(yt.outputChannelCount)?yt.outputChannelCount:Array.from(yt.outputChannelCount);if(bt.some(An=>An<1))throw lt();if(bt.length!==yt.numberOfOutputs)throw et();if(yt.channelCountMode!=="explicit")throw lt();const wt=yt.channelCount*yt.numberOfInputs,vt=bt.reduce((An,yn)=>An+yn,0),kt=gt.parameterDescriptors===void 0?0:gt.parameterDescriptors.length;if(wt+kt>6||vt>6)throw lt();const St=new MessageChannel,Et=[],At=[];for(let An=0;AnAn===void 0?0:An},maxValue:{get:()=>yn===void 0?MOST_POSITIVE_SINGLE_FLOAT:yn},minValue:{get:()=>kn===void 0?MOST_NEGATIVE_SINGLE_FLOAT:kn}}),Tt.push(gn)}const Mt=rt(pt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,wt+kt)}),Lt=computeBufferSize(mt,pt.sampleRate),jt=st(pt,Lt,wt+kt,Math.max(1,vt)),Rt=it(pt,{channelCount:Math.max(1,vt),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,vt)}),$t=[];for(let An=0;An{const kn=Tt[yn];return kn.connect(Mt,0,wt+yn),kn.start(0),[An,kn.offset]}));Mt.connect(jt);let It=yt.channelInterpretation,Ot=null;const zt=yt.numberOfOutputs===0?[jt]:$t,Ut={get bufferSize(){return Lt},get channelCount(){return yt.channelCount},set channelCount(An){throw nt()},get channelCountMode(){return yt.channelCountMode},set channelCountMode(An){throw nt()},get channelInterpretation(){return It},set channelInterpretation(An){for(const yn of Et)yn.channelInterpretation=An;It=An},get context(){return jt.context},get inputs(){return Et},get numberOfInputs(){return yt.numberOfInputs},get numberOfOutputs(){return yt.numberOfOutputs},get onprocessorerror(){return Ot},set onprocessorerror(An){typeof Ot=="function"&&Ut.removeEventListener("processorerror",Ot),Ot=typeof An=="function"?An:null,typeof Ot=="function"&&Ut.addEventListener("processorerror",Ot)},get parameters(){return xt},get port(){return St.port2},addEventListener(...An){return jt.addEventListener(An[0],An[1],An[2])},connect:tt.bind(null,zt),disconnect:ct.bind(null,zt),dispatchEvent(...An){return jt.dispatchEvent(An[0])},removeEventListener(...An){return jt.removeEventListener(An[0],An[1],An[2])}},Wt=new Map;St.port1.addEventListener=(An=>(...yn)=>{if(yn[0]==="message"){const kn=typeof yn[1]=="function"?yn[1]:typeof yn[1]=="object"&&yn[1]!==null&&typeof yn[1].handleEvent=="function"?yn[1].handleEvent:null;if(kn!==null){const dn=Wt.get(yn[1]);dn!==void 0?yn[1]=dn:(yn[1]=gn=>{ut(pt.currentTime,pt.sampleRate,()=>kn(gn))},Wt.set(kn,yn[1]))}}return An.call(St.port1,yn[0],yn[1],yn[2])})(St.port1.addEventListener),St.port1.removeEventListener=(An=>(...yn)=>{if(yn[0]==="message"){const kn=Wt.get(yn[1]);kn!==void 0&&(Wt.delete(yn[1]),yn[1]=kn)}return An.call(St.port1,yn[0],yn[1],yn[2])})(St.port1.removeEventListener);let Ft=null;Object.defineProperty(St.port1,"onmessage",{get:()=>Ft,set:An=>{typeof Ft=="function"&&St.port1.removeEventListener("message",Ft),Ft=typeof An=="function"?An:null,typeof Ft=="function"&&(St.port1.addEventListener("message",Ft),St.port1.start())}}),gt.prototype.port=St.port1;let Nt=null;createAudioWorkletProcessor(pt,Ut,gt,yt).then(An=>Nt=An);const Ht=createNestedArrays(yt.numberOfInputs,yt.channelCount),Jt=createNestedArrays(yt.numberOfOutputs,bt),nn=gt.parameterDescriptors===void 0?[]:gt.parameterDescriptors.reduce((An,{name:yn})=>({...An,[yn]:new Float32Array(128)}),{});let Yt=!0;const fn=()=>{yt.numberOfOutputs>0&&jt.disconnect(Rt);for(let An=0,yn=0;An{if(Nt!==null){const kn=ht(Ut);for(let dn=0;dn{copyFromChannel(An,nn,gn,wt+Cn,dn)});for(let gn=0;gn{if(kn[un].size>0)return cn.set(un,Lt/128),$n;const Sn=cn.get(un);return Sn===void 0?[]:($n.every(Mn=>Mn.every(Nn=>Nn===0))&&(Sn===1?cn.delete(un):cn.set(un,Sn-1)),$n)});Yt=ut(pt.currentTime+dn/pt.sampleRate,pt.sampleRate,()=>Nt.process(gn,Jt,nn));for(let $n=0,un=0;$njt.connect(En).connect(pt.destination),en=()=>{jt.disconnect(En),En.disconnect()},Tn=()=>{if(Yt){en(),yt.numberOfOutputs>0&&jt.connect(Rt);for(let An=0,yn=0;An{Yt&&(an(),fn()),_n=!1};return an(),dt(Ut,Tn,Rn)},createNativeBiquadFilterNode=(tt,et)=>{const nt=tt.createBiquadFilter();return assignNativeAudioNodeOptions(nt,et),assignNativeAudioNodeAudioParamValue(nt,et,"Q"),assignNativeAudioNodeAudioParamValue(nt,et,"detune"),assignNativeAudioNodeAudioParamValue(nt,et,"frequency"),assignNativeAudioNodeAudioParamValue(nt,et,"gain"),assignNativeAudioNodeOption(nt,et,"type"),nt},createNativeChannelMergerNodeFactory=(tt,et)=>(nt,rt)=>{const it=nt.createChannelMerger(rt.numberOfInputs);return tt!==null&&tt.name==="webkitAudioContext"&&et(nt,it),assignNativeAudioNodeOptions(it,rt),it},wrapChannelSplitterNode=tt=>{const et=tt.numberOfOutputs;Object.defineProperty(tt,"channelCount",{get:()=>et,set:nt=>{if(nt!==et)throw createInvalidStateError()}}),Object.defineProperty(tt,"channelCountMode",{get:()=>"explicit",set:nt=>{if(nt!=="explicit")throw createInvalidStateError()}}),Object.defineProperty(tt,"channelInterpretation",{get:()=>"discrete",set:nt=>{if(nt!=="discrete")throw createInvalidStateError()}})},createNativeChannelSplitterNode=(tt,et)=>{const nt=tt.createChannelSplitter(et.numberOfOutputs);return assignNativeAudioNodeOptions(nt,et),wrapChannelSplitterNode(nt),nt},createNativeConstantSourceNodeFactory=(tt,et,nt,rt,it)=>(ot,at)=>{if(ot.createConstantSource===void 0)return nt(ot,at);const st=ot.createConstantSource();return assignNativeAudioNodeOptions(st,at),assignNativeAudioNodeAudioParamValue(st,at,"offset"),et(rt,()=>rt(ot))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(st),et(it,()=>it(ot))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(st),tt(ot,st),st},interceptConnections=(tt,et)=>(tt.connect=et.connect.bind(et),tt.disconnect=et.disconnect.bind(et),tt),createNativeConstantSourceNodeFakerFactory=(tt,et,nt,rt)=>(it,{offset:ot,...at})=>{const st=it.createBuffer(1,2,44100),lt=et(it,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),ct=nt(it,{...at,gain:ot}),ut=st.getChannelData(0);ut[0]=1,ut[1]=1,lt.buffer=st,lt.loop=!0;const ht={get bufferSize(){},get channelCount(){return ct.channelCount},set channelCount(mt){ct.channelCount=mt},get channelCountMode(){return ct.channelCountMode},set channelCountMode(mt){ct.channelCountMode=mt},get channelInterpretation(){return ct.channelInterpretation},set channelInterpretation(mt){ct.channelInterpretation=mt},get context(){return ct.context},get inputs(){return[]},get numberOfInputs(){return lt.numberOfInputs},get numberOfOutputs(){return ct.numberOfOutputs},get offset(){return ct.gain},get onended(){return lt.onended},set onended(mt){lt.onended=mt},addEventListener(...mt){return lt.addEventListener(mt[0],mt[1],mt[2])},dispatchEvent(...mt){return lt.dispatchEvent(mt[0])},removeEventListener(...mt){return lt.removeEventListener(mt[0],mt[1],mt[2])},start(mt=0){lt.start.call(lt,mt)},stop(mt=0){lt.stop.call(lt,mt)}},dt=()=>lt.connect(ct),pt=()=>lt.disconnect(ct);return tt(it,lt),rt(interceptConnections(ht,ct),dt,pt)},createNativeConvolverNodeFactory=(tt,et)=>(nt,rt)=>{const it=nt.createConvolver();if(assignNativeAudioNodeOptions(it,rt),rt.disableNormalization===it.normalize&&(it.normalize=!rt.disableNormalization),assignNativeAudioNodeOption(it,rt,"buffer"),rt.channelCount>2||(et(it,"channelCount",ot=>()=>ot.call(it),ot=>at=>{if(at>2)throw tt();return ot.call(it,at)}),rt.channelCountMode==="max"))throw tt();return et(it,"channelCountMode",ot=>()=>ot.call(it),ot=>at=>{if(at==="max")throw tt();return ot.call(it,at)}),it},createNativeDelayNode=(tt,et)=>{const nt=tt.createDelay(et.maxDelayTime);return assignNativeAudioNodeOptions(nt,et),assignNativeAudioNodeAudioParamValue(nt,et,"delayTime"),nt},createNativeDynamicsCompressorNodeFactory=tt=>(et,nt)=>{const rt=et.createDynamicsCompressor();if(assignNativeAudioNodeOptions(rt,nt),nt.channelCount>2||nt.channelCountMode==="max")throw tt();return assignNativeAudioNodeAudioParamValue(rt,nt,"attack"),assignNativeAudioNodeAudioParamValue(rt,nt,"knee"),assignNativeAudioNodeAudioParamValue(rt,nt,"ratio"),assignNativeAudioNodeAudioParamValue(rt,nt,"release"),assignNativeAudioNodeAudioParamValue(rt,nt,"threshold"),rt},createNativeGainNode=(tt,et)=>{const nt=tt.createGain();return assignNativeAudioNodeOptions(nt,et),assignNativeAudioNodeAudioParamValue(nt,et,"gain"),nt},createNativeIIRFilterNodeFactory=tt=>(et,nt,rt)=>{if(et.createIIRFilter===void 0)return tt(et,nt,rt);const it=et.createIIRFilter(rt.feedforward,rt.feedback);return assignNativeAudioNodeOptions(it,rt),it};function divide$1(tt,et){const nt=et[0]*et[0]+et[1]*et[1];return[(tt[0]*et[0]+tt[1]*et[1])/nt,(tt[1]*et[0]-tt[0]*et[1])/nt]}function multiply(tt,et){return[tt[0]*et[0]-tt[1]*et[1],tt[0]*et[1]+tt[1]*et[0]]}function evaluatePolynomial(tt,et){let nt=[0,0];for(let rt=tt.length-1;rt>=0;rt-=1)nt=multiply(nt,et),nt[0]+=tt[rt];return nt}const createNativeIIRFilterNodeFakerFactory=(tt,et,nt,rt)=>(it,ot,{channelCount:at,channelCountMode:st,channelInterpretation:lt,feedback:ct,feedforward:ut})=>{const ht=computeBufferSize(ot,it.sampleRate),dt=ct instanceof Float64Array?ct:new Float64Array(ct),pt=ut instanceof Float64Array?ut:new Float64Array(ut),mt=dt.length,gt=pt.length,yt=Math.min(mt,gt);if(mt===0||mt>20)throw rt();if(dt[0]===0)throw et();if(gt===0||gt>20)throw rt();if(pt[0]===0)throw et();if(dt[0]!==1){for(let Tt=0;Tt{const Mt=Tt.inputBuffer,Lt=Tt.outputBuffer,jt=Mt.numberOfChannels;for(let Rt=0;Rttt.createMediaElementSource(et.mediaElement),createNativeMediaStreamAudioDestinationNode=(tt,et)=>{const nt=tt.createMediaStreamDestination();return assignNativeAudioNodeOptions(nt,et),nt.numberOfOutputs===1&&Object.defineProperty(nt,"numberOfOutputs",{get:()=>0}),nt},createNativeMediaStreamAudioSourceNode=(tt,{mediaStream:et})=>{const nt=et.getAudioTracks();nt.sort((ot,at)=>ot.idat.id?1:0);const rt=nt.slice(0,1),it=tt.createMediaStreamSource(new MediaStream(rt));return Object.defineProperty(it,"mediaStream",{value:et}),it},createNativeMediaStreamTrackAudioSourceNodeFactory=(tt,et)=>(nt,{mediaStreamTrack:rt})=>{if(typeof nt.createMediaStreamTrackSource=="function")return nt.createMediaStreamTrackSource(rt);const it=new MediaStream([rt]),ot=nt.createMediaStreamSource(it);if(rt.kind!=="audio")throw tt();if(et(nt))throw new TypeError;return ot},createNativeOfflineAudioContextConstructor=tt=>tt===null?null:tt.hasOwnProperty("OfflineAudioContext")?tt.OfflineAudioContext:tt.hasOwnProperty("webkitOfflineAudioContext")?tt.webkitOfflineAudioContext:null,createNativeOscillatorNodeFactory=(tt,et,nt,rt,it,ot)=>(at,st)=>{const lt=at.createOscillator();return assignNativeAudioNodeOptions(lt,st),assignNativeAudioNodeAudioParamValue(lt,st,"detune"),assignNativeAudioNodeAudioParamValue(lt,st,"frequency"),st.periodicWave!==void 0?lt.setPeriodicWave(st.periodicWave):assignNativeAudioNodeOption(lt,st,"type"),et(nt,()=>nt(at))||wrapAudioScheduledSourceNodeStartMethodNegativeParameters(lt),et(rt,()=>rt(at))||ot(lt,at),et(it,()=>it(at))||wrapAudioScheduledSourceNodeStopMethodNegativeParameters(lt),tt(at,lt),lt},createNativePannerNodeFactory=tt=>(et,nt)=>{const rt=et.createPanner();return rt.orientationX===void 0?tt(et,nt):(assignNativeAudioNodeOptions(rt,nt),assignNativeAudioNodeAudioParamValue(rt,nt,"orientationX"),assignNativeAudioNodeAudioParamValue(rt,nt,"orientationY"),assignNativeAudioNodeAudioParamValue(rt,nt,"orientationZ"),assignNativeAudioNodeAudioParamValue(rt,nt,"positionX"),assignNativeAudioNodeAudioParamValue(rt,nt,"positionY"),assignNativeAudioNodeAudioParamValue(rt,nt,"positionZ"),assignNativeAudioNodeOption(rt,nt,"coneInnerAngle"),assignNativeAudioNodeOption(rt,nt,"coneOuterAngle"),assignNativeAudioNodeOption(rt,nt,"coneOuterGain"),assignNativeAudioNodeOption(rt,nt,"distanceModel"),assignNativeAudioNodeOption(rt,nt,"maxDistance"),assignNativeAudioNodeOption(rt,nt,"panningModel"),assignNativeAudioNodeOption(rt,nt,"refDistance"),assignNativeAudioNodeOption(rt,nt,"rolloffFactor"),rt)},createNativePannerNodeFakerFactory=(tt,et,nt,rt,it,ot,at,st,lt,ct)=>(ut,{coneInnerAngle:ht,coneOuterAngle:dt,coneOuterGain:pt,distanceModel:mt,maxDistance:gt,orientationX:yt,orientationY:bt,orientationZ:wt,panningModel:vt,positionX:kt,positionY:St,positionZ:Et,refDistance:At,rolloffFactor:Tt,...Mt})=>{const Lt=ut.createPanner();if(Mt.channelCount>2||Mt.channelCountMode==="max")throw at();assignNativeAudioNodeOptions(Lt,Mt);const jt={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},Rt=nt(ut,{...jt,channelInterpretation:"speakers",numberOfInputs:6}),$t=rt(ut,{...Mt,gain:1}),xt=rt(ut,{...jt,gain:1}),It=rt(ut,{...jt,gain:0}),Ot=rt(ut,{...jt,gain:0}),zt=rt(ut,{...jt,gain:0}),Ut=rt(ut,{...jt,gain:0}),Wt=rt(ut,{...jt,gain:0}),Ft=it(ut,256,6,1),Nt=ot(ut,{...jt,curve:new Float32Array([1,1]),oversample:"none"});let Ct=[yt,bt,wt],Ht=[kt,St,Et];const Jt=new Float32Array(1);Ft.onaudioprocess=({inputBuffer:cn})=>{const _n=[lt(cn,Jt,0),lt(cn,Jt,1),lt(cn,Jt,2)];_n.some((an,en)=>an!==Ct[en])&&(Lt.setOrientation(..._n),Ct=_n);const En=[lt(cn,Jt,3),lt(cn,Jt,4),lt(cn,Jt,5)];En.some((an,en)=>an!==Ht[en])&&(Lt.setPosition(...En),Ht=En)},Object.defineProperty(It.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Ot.gain,"defaultValue",{get:()=>0}),Object.defineProperty(zt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Ut.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Wt.gain,"defaultValue",{get:()=>0});const nn={get bufferSize(){},get channelCount(){return Lt.channelCount},set channelCount(cn){if(cn>2)throw at();$t.channelCount=cn,Lt.channelCount=cn},get channelCountMode(){return Lt.channelCountMode},set channelCountMode(cn){if(cn==="max")throw at();$t.channelCountMode=cn,Lt.channelCountMode=cn},get channelInterpretation(){return Lt.channelInterpretation},set channelInterpretation(cn){$t.channelInterpretation=cn,Lt.channelInterpretation=cn},get coneInnerAngle(){return Lt.coneInnerAngle},set coneInnerAngle(cn){Lt.coneInnerAngle=cn},get coneOuterAngle(){return Lt.coneOuterAngle},set coneOuterAngle(cn){Lt.coneOuterAngle=cn},get coneOuterGain(){return Lt.coneOuterGain},set coneOuterGain(cn){if(cn<0||cn>1)throw et();Lt.coneOuterGain=cn},get context(){return Lt.context},get distanceModel(){return Lt.distanceModel},set distanceModel(cn){Lt.distanceModel=cn},get inputs(){return[$t]},get maxDistance(){return Lt.maxDistance},set maxDistance(cn){if(cn<0)throw new RangeError;Lt.maxDistance=cn},get numberOfInputs(){return Lt.numberOfInputs},get numberOfOutputs(){return Lt.numberOfOutputs},get orientationX(){return xt.gain},get orientationY(){return It.gain},get orientationZ(){return Ot.gain},get panningModel(){return Lt.panningModel},set panningModel(cn){Lt.panningModel=cn},get positionX(){return zt.gain},get positionY(){return Ut.gain},get positionZ(){return Wt.gain},get refDistance(){return Lt.refDistance},set refDistance(cn){if(cn<0)throw new RangeError;Lt.refDistance=cn},get rolloffFactor(){return Lt.rolloffFactor},set rolloffFactor(cn){if(cn<0)throw new RangeError;Lt.rolloffFactor=cn},addEventListener(...cn){return $t.addEventListener(cn[0],cn[1],cn[2])},dispatchEvent(...cn){return $t.dispatchEvent(cn[0])},removeEventListener(...cn){return $t.removeEventListener(cn[0],cn[1],cn[2])}};ht!==nn.coneInnerAngle&&(nn.coneInnerAngle=ht),dt!==nn.coneOuterAngle&&(nn.coneOuterAngle=dt),pt!==nn.coneOuterGain&&(nn.coneOuterGain=pt),mt!==nn.distanceModel&&(nn.distanceModel=mt),gt!==nn.maxDistance&&(nn.maxDistance=gt),yt!==nn.orientationX.value&&(nn.orientationX.value=yt),bt!==nn.orientationY.value&&(nn.orientationY.value=bt),wt!==nn.orientationZ.value&&(nn.orientationZ.value=wt),vt!==nn.panningModel&&(nn.panningModel=vt),kt!==nn.positionX.value&&(nn.positionX.value=kt),St!==nn.positionY.value&&(nn.positionY.value=St),Et!==nn.positionZ.value&&(nn.positionZ.value=Et),At!==nn.refDistance&&(nn.refDistance=At),Tt!==nn.rolloffFactor&&(nn.rolloffFactor=Tt),(Ct[0]!==1||Ct[1]!==0||Ct[2]!==0)&&Lt.setOrientation(...Ct),(Ht[0]!==0||Ht[1]!==0||Ht[2]!==0)&&Lt.setPosition(...Ht);const Yt=()=>{$t.connect(Lt),tt($t,Nt,0,0),Nt.connect(xt).connect(Rt,0,0),Nt.connect(It).connect(Rt,0,1),Nt.connect(Ot).connect(Rt,0,2),Nt.connect(zt).connect(Rt,0,3),Nt.connect(Ut).connect(Rt,0,4),Nt.connect(Wt).connect(Rt,0,5),Rt.connect(Ft).connect(ut.destination)},fn=()=>{$t.disconnect(Lt),st($t,Nt,0,0),Nt.disconnect(xt),xt.disconnect(Rt),Nt.disconnect(It),It.disconnect(Rt),Nt.disconnect(Ot),Ot.disconnect(Rt),Nt.disconnect(zt),zt.disconnect(Rt),Nt.disconnect(Ut),Ut.disconnect(Rt),Nt.disconnect(Wt),Wt.disconnect(Rt),Rt.disconnect(Ft),Ft.disconnect(ut.destination)};return ct(interceptConnections(nn,Lt),Yt,fn)},createNativePeriodicWaveFactory=tt=>(et,{disableNormalization:nt,imag:rt,real:it})=>{const ot=rt instanceof Float32Array?rt:new Float32Array(rt),at=it instanceof Float32Array?it:new Float32Array(it),st=et.createPeriodicWave(at,ot,{disableNormalization:nt});if(Array.from(rt).length<2)throw tt();return st},createNativeScriptProcessorNode=(tt,et,nt,rt)=>tt.createScriptProcessor(et,nt,rt),createNativeStereoPannerNodeFactory=(tt,et)=>(nt,rt)=>{const it=rt.channelCountMode;if(it==="clamped-max")throw et();if(nt.createStereoPanner===void 0)return tt(nt,rt);const ot=nt.createStereoPanner();return assignNativeAudioNodeOptions(ot,rt),assignNativeAudioNodeAudioParamValue(ot,rt,"pan"),Object.defineProperty(ot,"channelCountMode",{get:()=>it,set:at=>{if(at!==it)throw et()}}),ot},createNativeStereoPannerNodeFakerFactory=(tt,et,nt,rt,it,ot)=>{const st=new Float32Array([1,1]),lt=Math.PI/2,ct={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},ut={...ct,oversample:"none"},ht=(mt,gt,yt,bt)=>{const wt=new Float32Array(16385),vt=new Float32Array(16385);for(let Mt=0;Mt<16385;Mt+=1){const Lt=Mt/16384*lt;wt[Mt]=Math.cos(Lt),vt[Mt]=Math.sin(Lt)}const kt=nt(mt,{...ct,gain:0}),St=rt(mt,{...ut,curve:wt}),Et=rt(mt,{...ut,curve:st}),At=nt(mt,{...ct,gain:0}),Tt=rt(mt,{...ut,curve:vt});return{connectGraph(){gt.connect(kt),gt.connect(Et.inputs===void 0?Et:Et.inputs[0]),gt.connect(At),Et.connect(yt),yt.connect(St.inputs===void 0?St:St.inputs[0]),yt.connect(Tt.inputs===void 0?Tt:Tt.inputs[0]),St.connect(kt.gain),Tt.connect(At.gain),kt.connect(bt,0,0),At.connect(bt,0,1)},disconnectGraph(){gt.disconnect(kt),gt.disconnect(Et.inputs===void 0?Et:Et.inputs[0]),gt.disconnect(At),Et.disconnect(yt),yt.disconnect(St.inputs===void 0?St:St.inputs[0]),yt.disconnect(Tt.inputs===void 0?Tt:Tt.inputs[0]),St.disconnect(kt.gain),Tt.disconnect(At.gain),kt.disconnect(bt,0,0),At.disconnect(bt,0,1)}}},dt=(mt,gt,yt,bt)=>{const wt=new Float32Array(16385),vt=new Float32Array(16385),kt=new Float32Array(16385),St=new Float32Array(16385),Et=Math.floor(16385/2);for(let zt=0;zt<16385;zt+=1)if(zt>Et){const Ut=(zt-Et)/(16384-Et)*lt;wt[zt]=Math.cos(Ut),vt[zt]=Math.sin(Ut),kt[zt]=0,St[zt]=1}else{const Ut=zt/(16384-Et)*lt;wt[zt]=1,vt[zt]=0,kt[zt]=Math.cos(Ut),St[zt]=Math.sin(Ut)}const At=et(mt,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),Tt=nt(mt,{...ct,gain:0}),Mt=rt(mt,{...ut,curve:wt}),Lt=nt(mt,{...ct,gain:0}),jt=rt(mt,{...ut,curve:vt}),Rt=rt(mt,{...ut,curve:st}),$t=nt(mt,{...ct,gain:0}),xt=rt(mt,{...ut,curve:kt}),It=nt(mt,{...ct,gain:0}),Ot=rt(mt,{...ut,curve:St});return{connectGraph(){gt.connect(At),gt.connect(Rt.inputs===void 0?Rt:Rt.inputs[0]),At.connect(Tt,0),At.connect(Lt,0),At.connect($t,1),At.connect(It,1),Rt.connect(yt),yt.connect(Mt.inputs===void 0?Mt:Mt.inputs[0]),yt.connect(jt.inputs===void 0?jt:jt.inputs[0]),yt.connect(xt.inputs===void 0?xt:xt.inputs[0]),yt.connect(Ot.inputs===void 0?Ot:Ot.inputs[0]),Mt.connect(Tt.gain),jt.connect(Lt.gain),xt.connect($t.gain),Ot.connect(It.gain),Tt.connect(bt,0,0),$t.connect(bt,0,0),Lt.connect(bt,0,1),It.connect(bt,0,1)},disconnectGraph(){gt.disconnect(At),gt.disconnect(Rt.inputs===void 0?Rt:Rt.inputs[0]),At.disconnect(Tt,0),At.disconnect(Lt,0),At.disconnect($t,1),At.disconnect(It,1),Rt.disconnect(yt),yt.disconnect(Mt.inputs===void 0?Mt:Mt.inputs[0]),yt.disconnect(jt.inputs===void 0?jt:jt.inputs[0]),yt.disconnect(xt.inputs===void 0?xt:xt.inputs[0]),yt.disconnect(Ot.inputs===void 0?Ot:Ot.inputs[0]),Mt.disconnect(Tt.gain),jt.disconnect(Lt.gain),xt.disconnect($t.gain),Ot.disconnect(It.gain),Tt.disconnect(bt,0,0),$t.disconnect(bt,0,0),Lt.disconnect(bt,0,1),It.disconnect(bt,0,1)}}},pt=(mt,gt,yt,bt,wt)=>{if(gt===1)return ht(mt,yt,bt,wt);if(gt===2)return dt(mt,yt,bt,wt);throw it()};return(mt,{channelCount:gt,channelCountMode:yt,pan:bt,...wt})=>{if(yt==="max")throw it();const vt=tt(mt,{...wt,channelCount:1,channelCountMode:yt,numberOfInputs:2}),kt=nt(mt,{...wt,channelCount:gt,channelCountMode:yt,gain:1}),St=nt(mt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:bt});let{connectGraph:Et,disconnectGraph:At}=pt(mt,gt,kt,St,vt);Object.defineProperty(St.gain,"defaultValue",{get:()=>0}),Object.defineProperty(St.gain,"maxValue",{get:()=>1}),Object.defineProperty(St.gain,"minValue",{get:()=>-1});const Tt={get bufferSize(){},get channelCount(){return kt.channelCount},set channelCount(Rt){kt.channelCount!==Rt&&(Mt&&At(),{connectGraph:Et,disconnectGraph:At}=pt(mt,Rt,kt,St,vt),Mt&&Et()),kt.channelCount=Rt},get channelCountMode(){return kt.channelCountMode},set channelCountMode(Rt){if(Rt==="clamped-max"||Rt==="max")throw it();kt.channelCountMode=Rt},get channelInterpretation(){return kt.channelInterpretation},set channelInterpretation(Rt){kt.channelInterpretation=Rt},get context(){return kt.context},get inputs(){return[kt]},get numberOfInputs(){return kt.numberOfInputs},get numberOfOutputs(){return kt.numberOfOutputs},get pan(){return St.gain},addEventListener(...Rt){return kt.addEventListener(Rt[0],Rt[1],Rt[2])},dispatchEvent(...Rt){return kt.dispatchEvent(Rt[0])},removeEventListener(...Rt){return kt.removeEventListener(Rt[0],Rt[1],Rt[2])}};let Mt=!1;const Lt=()=>{Et(),Mt=!0},jt=()=>{At(),Mt=!1};return ot(interceptConnections(Tt,vt),Lt,jt)}},createNativeWaveShaperNodeFactory=(tt,et,nt,rt,it,ot,at)=>(st,lt)=>{const ct=st.createWaveShaper();if(ot!==null&&ot.name==="webkitAudioContext"&&st.createGain().gain.automationRate===void 0)return nt(st,lt);assignNativeAudioNodeOptions(ct,lt);const ut=lt.curve===null||lt.curve instanceof Float32Array?lt.curve:new Float32Array(lt.curve);if(ut!==null&&ut.length<2)throw et();assignNativeAudioNodeOption(ct,{curve:ut},"curve"),assignNativeAudioNodeOption(ct,lt,"oversample");let ht=null,dt=!1;return at(ct,"curve",gt=>()=>gt.call(ct),gt=>yt=>(gt.call(ct,yt),dt&&(rt(yt)&&ht===null?ht=tt(st,ct):!rt(yt)&&ht!==null&&(ht(),ht=null)),yt)),it(ct,()=>{dt=!0,rt(ct.curve)&&(ht=tt(st,ct))},()=>{dt=!1,ht!==null&&(ht(),ht=null)})},createNativeWaveShaperNodeFakerFactory=(tt,et,nt,rt,it)=>(ot,{curve:at,oversample:st,...lt})=>{const ct=ot.createWaveShaper(),ut=ot.createWaveShaper();assignNativeAudioNodeOptions(ct,lt),assignNativeAudioNodeOptions(ut,lt);const ht=nt(ot,{...lt,gain:1}),dt=nt(ot,{...lt,gain:-1}),pt=nt(ot,{...lt,gain:1}),mt=nt(ot,{...lt,gain:-1});let gt=null,yt=!1,bt=null;const wt={get bufferSize(){},get channelCount(){return ct.channelCount},set channelCount(St){ht.channelCount=St,dt.channelCount=St,ct.channelCount=St,pt.channelCount=St,ut.channelCount=St,mt.channelCount=St},get channelCountMode(){return ct.channelCountMode},set channelCountMode(St){ht.channelCountMode=St,dt.channelCountMode=St,ct.channelCountMode=St,pt.channelCountMode=St,ut.channelCountMode=St,mt.channelCountMode=St},get channelInterpretation(){return ct.channelInterpretation},set channelInterpretation(St){ht.channelInterpretation=St,dt.channelInterpretation=St,ct.channelInterpretation=St,pt.channelInterpretation=St,ut.channelInterpretation=St,mt.channelInterpretation=St},get context(){return ct.context},get curve(){return bt},set curve(St){if(St!==null&&St.length<2)throw et();if(St===null)ct.curve=St,ut.curve=St;else{const Et=St.length,At=new Float32Array(Et+2-Et%2),Tt=new Float32Array(Et+2-Et%2);At[0]=St[0],Tt[0]=-St[Et-1];const Mt=Math.ceil((Et+1)/2),Lt=(Et+1)/2-1;for(let jt=1;jt{ht.connect(ct).connect(pt),ht.connect(dt).connect(ut).connect(mt).connect(pt),yt=!0,rt(bt)&&(gt=tt(ot,ht))},kt=()=>{ht.disconnect(ct),ct.disconnect(pt),ht.disconnect(dt),dt.disconnect(ut),ut.disconnect(mt),mt.disconnect(pt),yt=!1,gt!==null&&(gt(),gt=null)};return it(interceptConnections(wt,pt),vt,kt)},createNotSupportedError=()=>new DOMException("","NotSupportedError"),DEFAULT_OPTIONS$5={numberOfChannels:1},createOfflineAudioContextConstructor=(tt,et,nt,rt,it)=>class extends tt{constructor(at,st,lt){let ct;if(typeof at=="number"&&st!==void 0&<!==void 0)ct={length:st,numberOfChannels:at,sampleRate:lt};else if(typeof at=="object")ct=at;else throw new Error("The given parameters are not valid.");const{length:ut,numberOfChannels:ht,sampleRate:dt}={...DEFAULT_OPTIONS$5,...ct},pt=rt(ht,ut,dt);et(testPromiseSupport,()=>testPromiseSupport(pt))||pt.addEventListener("statechange",(()=>{let mt=0;const gt=yt=>{this._state==="running"&&(mt>0?(pt.removeEventListener("statechange",gt),yt.stopImmediatePropagation(),this._waitForThePromiseToSettle(yt)):mt+=1)};return gt})()),super(pt,ht),this._length=ut,this._nativeOfflineAudioContext=pt,this._state=null}get length(){return this._nativeOfflineAudioContext.length===void 0?this._length:this._nativeOfflineAudioContext.length}get state(){return this._state===null?this._nativeOfflineAudioContext.state:this._state}startRendering(){return this._state==="running"?Promise.reject(nt()):(this._state="running",it(this.destination,this._nativeOfflineAudioContext).finally(()=>{this._state=null,deactivateAudioGraph(this)}))}_waitForThePromiseToSettle(at){this._state===null?this._nativeOfflineAudioContext.dispatchEvent(at):setTimeout(()=>this._waitForThePromiseToSettle(at))}},DEFAULT_OPTIONS$4={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",detune:0,frequency:440,periodicWave:void 0,type:"sine"},createOscillatorNodeConstructor=(tt,et,nt,rt,it,ot,at)=>class extends tt{constructor(lt,ct){const ut=it(lt),ht={...DEFAULT_OPTIONS$4,...ct},dt=nt(ut,ht),pt=ot(ut),mt=pt?rt():null,gt=lt.sampleRate/2;super(lt,!1,dt,mt),this._detune=et(this,pt,dt.detune,153600,-153600),this._frequency=et(this,pt,dt.frequency,gt,-gt),this._nativeOscillatorNode=dt,this._onended=null,this._oscillatorNodeRenderer=mt,this._oscillatorNodeRenderer!==null&&ht.periodicWave!==void 0&&(this._oscillatorNodeRenderer.periodicWave=ht.periodicWave)}get detune(){return this._detune}get frequency(){return this._frequency}get onended(){return this._onended}set onended(lt){const ct=typeof lt=="function"?at(this,lt):null;this._nativeOscillatorNode.onended=ct;const ut=this._nativeOscillatorNode.onended;this._onended=ut!==null&&ut===ct?lt:ut}get type(){return this._nativeOscillatorNode.type}set type(lt){this._nativeOscillatorNode.type=lt,this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=null)}setPeriodicWave(lt){this._nativeOscillatorNode.setPeriodicWave(lt),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.periodicWave=lt)}start(lt=0){if(this._nativeOscillatorNode.start(lt),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.start=lt),this.context.state!=="closed"){setInternalStateToActive(this);const ct=()=>{this._nativeOscillatorNode.removeEventListener("ended",ct),isActiveAudioNode(this)&&setInternalStateToPassive(this)};this._nativeOscillatorNode.addEventListener("ended",ct)}}stop(lt=0){this._nativeOscillatorNode.stop(lt),this._oscillatorNodeRenderer!==null&&(this._oscillatorNodeRenderer.stop=lt)}},createOscillatorNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap;let at=null,st=null,lt=null;const ct=async(ut,ht)=>{let dt=nt(ut);const pt=isOwnedByContext(dt,ht);if(!pt){const mt={channelCount:dt.channelCount,channelCountMode:dt.channelCountMode,channelInterpretation:dt.channelInterpretation,detune:dt.detune.value,frequency:dt.frequency.value,periodicWave:at===null?void 0:at,type:dt.type};dt=et(ht,mt),st!==null&&dt.start(st),lt!==null&&dt.stop(lt)}return ot.set(ht,dt),pt?(await tt(ht,ut.detune,dt.detune),await tt(ht,ut.frequency,dt.frequency)):(await rt(ht,ut.detune,dt.detune),await rt(ht,ut.frequency,dt.frequency)),await it(ut,ht,dt),dt};return{set periodicWave(ut){at=ut},set start(ut){st=ut},set stop(ut){lt=ut},render(ut,ht){const dt=ot.get(ht);return dt!==void 0?Promise.resolve(dt):ct(ut,ht)}}},DEFAULT_OPTIONS$3={channelCount:2,channelCountMode:"clamped-max",channelInterpretation:"speakers",coneInnerAngle:360,coneOuterAngle:360,coneOuterGain:0,distanceModel:"inverse",maxDistance:1e4,orientationX:1,orientationY:0,orientationZ:0,panningModel:"equalpower",positionX:0,positionY:0,positionZ:0,refDistance:1,rolloffFactor:1},createPannerNodeConstructor=(tt,et,nt,rt,it,ot,at)=>class extends tt{constructor(lt,ct){const ut=it(lt),ht={...DEFAULT_OPTIONS$3,...ct},dt=nt(ut,ht),pt=ot(ut),mt=pt?rt():null;super(lt,!1,dt,mt),this._nativePannerNode=dt,this._orientationX=et(this,pt,dt.orientationX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationY=et(this,pt,dt.orientationY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._orientationZ=et(this,pt,dt.orientationZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionX=et(this,pt,dt.positionX,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionY=et(this,pt,dt.positionY,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),this._positionZ=et(this,pt,dt.positionZ,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT),at(this,1)}get coneInnerAngle(){return this._nativePannerNode.coneInnerAngle}set coneInnerAngle(lt){this._nativePannerNode.coneInnerAngle=lt}get coneOuterAngle(){return this._nativePannerNode.coneOuterAngle}set coneOuterAngle(lt){this._nativePannerNode.coneOuterAngle=lt}get coneOuterGain(){return this._nativePannerNode.coneOuterGain}set coneOuterGain(lt){this._nativePannerNode.coneOuterGain=lt}get distanceModel(){return this._nativePannerNode.distanceModel}set distanceModel(lt){this._nativePannerNode.distanceModel=lt}get maxDistance(){return this._nativePannerNode.maxDistance}set maxDistance(lt){this._nativePannerNode.maxDistance=lt}get orientationX(){return this._orientationX}get orientationY(){return this._orientationY}get orientationZ(){return this._orientationZ}get panningModel(){return this._nativePannerNode.panningModel}set panningModel(lt){this._nativePannerNode.panningModel=lt}get positionX(){return this._positionX}get positionY(){return this._positionY}get positionZ(){return this._positionZ}get refDistance(){return this._nativePannerNode.refDistance}set refDistance(lt){this._nativePannerNode.refDistance=lt}get rolloffFactor(){return this._nativePannerNode.rolloffFactor}set rolloffFactor(lt){this._nativePannerNode.rolloffFactor=lt}},createPannerNodeRendererFactory=(tt,et,nt,rt,it,ot,at,st,lt,ct)=>()=>{const ut=new WeakMap;let ht=null;const dt=async(pt,mt)=>{let gt=null,yt=ot(pt);const bt={channelCount:yt.channelCount,channelCountMode:yt.channelCountMode,channelInterpretation:yt.channelInterpretation},wt={...bt,coneInnerAngle:yt.coneInnerAngle,coneOuterAngle:yt.coneOuterAngle,coneOuterGain:yt.coneOuterGain,distanceModel:yt.distanceModel,maxDistance:yt.maxDistance,panningModel:yt.panningModel,refDistance:yt.refDistance,rolloffFactor:yt.rolloffFactor},vt=isOwnedByContext(yt,mt);if("bufferSize"in yt)gt=rt(mt,{...bt,gain:1});else if(!vt){const kt={...wt,orientationX:yt.orientationX.value,orientationY:yt.orientationY.value,orientationZ:yt.orientationZ.value,positionX:yt.positionX.value,positionY:yt.positionY.value,positionZ:yt.positionZ.value};yt=it(mt,kt)}if(ut.set(mt,gt===null?yt:gt),gt!==null){if(ht===null){if(at===null)throw new Error("Missing the native OfflineAudioContext constructor.");const jt=new at(6,pt.context.length,mt.sampleRate),Rt=et(jt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:6});Rt.connect(jt.destination),ht=(async()=>{const $t=await Promise.all([pt.orientationX,pt.orientationY,pt.orientationZ,pt.positionX,pt.positionY,pt.positionZ].map(async(xt,It)=>{const Ot=nt(jt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:It===0?1:0});return await st(jt,xt,Ot.offset),Ot}));for(let xt=0;xt<6;xt+=1)$t[xt].connect(Rt,0,xt),$t[xt].start(0);return ct(jt)})()}const kt=await ht,St=rt(mt,{...bt,gain:1});await lt(pt,mt,St);const Et=[];for(let jt=0;jtxt!==At[It])||$t.some((xt,It)=>xt!==Tt[It])){At=Rt,Tt=$t;const xt=jt/mt.sampleRate;Mt.gain.setValueAtTime(0,xt),Mt=rt(mt,{...bt,gain:0}),Lt=it(mt,{...wt,orientationX:At[0],orientationY:At[1],orientationZ:At[2],positionX:Tt[0],positionY:Tt[1],positionZ:Tt[2]}),Mt.gain.setValueAtTime(1,xt),St.connect(Mt).connect(Lt.inputs[0]),Lt.connect(gt)}}return gt}return vt?(await tt(mt,pt.orientationX,yt.orientationX),await tt(mt,pt.orientationY,yt.orientationY),await tt(mt,pt.orientationZ,yt.orientationZ),await tt(mt,pt.positionX,yt.positionX),await tt(mt,pt.positionY,yt.positionY),await tt(mt,pt.positionZ,yt.positionZ)):(await st(mt,pt.orientationX,yt.orientationX),await st(mt,pt.orientationY,yt.orientationY),await st(mt,pt.orientationZ,yt.orientationZ),await st(mt,pt.positionX,yt.positionX),await st(mt,pt.positionY,yt.positionY),await st(mt,pt.positionZ,yt.positionZ)),isNativeAudioNodeFaker(yt)?await lt(pt,mt,yt.inputs[0]):await lt(pt,mt,yt),yt};return{render(pt,mt){const gt=ut.get(mt);return gt!==void 0?Promise.resolve(gt):dt(pt,mt)}}},DEFAULT_OPTIONS$2={disableNormalization:!1},createPeriodicWaveConstructor=(tt,et,nt,rt)=>class ww{constructor(ot,at){const st=et(ot),lt=rt({...DEFAULT_OPTIONS$2,...at}),ct=tt(st,lt);return nt.add(ct),ct}static[Symbol.hasInstance](ot){return ot!==null&&typeof ot=="object"&&Object.getPrototypeOf(ot)===ww.prototype||nt.has(ot)}},createRenderAutomation=(tt,et)=>(nt,rt,it)=>(tt(rt).replay(it),et(rt,nt,it)),createRenderInputsOfAudioNode=(tt,et,nt)=>async(rt,it,ot)=>{const at=tt(rt);await Promise.all(at.activeInputs.map((st,lt)=>Array.from(st).map(async([ct,ut])=>{const dt=await et(ct).render(ct,it),pt=rt.context.destination;!nt(ct)&&(rt!==pt||!nt(rt))&&dt.connect(ot,ut,lt)})).reduce((st,lt)=>[...st,...lt],[]))},createRenderInputsOfAudioParam=(tt,et,nt)=>async(rt,it,ot)=>{const at=et(rt);await Promise.all(Array.from(at.activeInputs).map(async([st,lt])=>{const ut=await tt(st).render(st,it);nt(st)||ut.connect(ot,lt)}))},createRenderNativeOfflineAudioContext=(tt,et,nt,rt)=>it=>tt(testPromiseSupport,()=>testPromiseSupport(it))?Promise.resolve(tt(rt,rt)).then(ot=>{if(!ot){const at=nt(it,512,0,1);it.oncomplete=()=>{at.onaudioprocess=null,at.disconnect()},at.onaudioprocess=()=>it.currentTime,at.connect(it.destination)}return it.startRendering()}):new Promise(ot=>{const at=et(it,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});it.oncomplete=st=>{at.disconnect(),ot(st.renderedBuffer)},at.connect(it.destination),it.startRendering()}),createSetActiveAudioWorkletNodeInputs=tt=>(et,nt)=>{tt.set(et,nt)},createSetAudioNodeTailTime=tt=>(et,nt)=>tt.set(et,nt),createStartRendering=(tt,et,nt,rt,it,ot,at,st)=>(lt,ct)=>nt(lt).render(lt,ct).then(()=>Promise.all(Array.from(rt(ct)).map(ut=>nt(ut).render(ut,ct)))).then(()=>it(ct)).then(ut=>(typeof ut.copyFromChannel!="function"?(at(ut),wrapAudioBufferGetChannelDataMethod(ut)):et(ot,()=>ot(ut))||st(ut),tt.add(ut),ut)),DEFAULT_OPTIONS$1={channelCount:2,channelCountMode:"explicit",channelInterpretation:"speakers",pan:0},createStereoPannerNodeConstructor=(tt,et,nt,rt,it,ot)=>class extends tt{constructor(st,lt){const ct=it(st),ut={...DEFAULT_OPTIONS$1,...lt},ht=nt(ct,ut),dt=ot(ct),pt=dt?rt():null;super(st,!1,ht,pt),this._pan=et(this,dt,ht.pan)}get pan(){return this._pan}},createStereoPannerNodeRendererFactory=(tt,et,nt,rt,it)=>()=>{const ot=new WeakMap,at=async(st,lt)=>{let ct=nt(st);const ut=isOwnedByContext(ct,lt);if(!ut){const ht={channelCount:ct.channelCount,channelCountMode:ct.channelCountMode,channelInterpretation:ct.channelInterpretation,pan:ct.pan.value};ct=et(lt,ht)}return ot.set(lt,ct),ut?await tt(lt,st.pan,ct.pan):await rt(lt,st.pan,ct.pan),isNativeAudioNodeFaker(ct)?await it(st,lt,ct.inputs[0]):await it(st,lt,ct),ct};return{render(st,lt){const ct=ot.get(lt);return ct!==void 0?Promise.resolve(ct):at(st,lt)}}},createTestAudioBufferConstructorSupport=tt=>()=>{if(tt===null)return!1;try{new tt({length:1,sampleRate:44100})}catch{return!1}return!0},createTestAudioWorkletProcessorPostMessageSupport=(tt,et)=>async()=>{if(tt===null)return!0;if(et===null)return!1;const nt=new Blob(['class A extends AudioWorkletProcessor{process(i){this.port.postMessage(i,[i[0][0].buffer])}}registerProcessor("a",A)'],{type:"application/javascript; charset=utf-8"}),rt=new et(1,128,44100),it=URL.createObjectURL(nt);let ot=!1,at=!1;try{await rt.audioWorklet.addModule(it);const st=new tt(rt,"a",{numberOfOutputs:0}),lt=rt.createOscillator();st.port.onmessage=()=>ot=!0,st.onprocessorerror=()=>at=!0,lt.connect(st),lt.start(0),await rt.startRendering()}catch{}finally{URL.revokeObjectURL(it)}return ot&&!at},createTestOfflineAudioContextCurrentTimeSupport=(tt,et)=>()=>{if(et===null)return Promise.resolve(!1);const nt=new et(1,1,44100),rt=tt(nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0});return new Promise(it=>{nt.oncomplete=()=>{rt.disconnect(),it(nt.currentTime!==0)},nt.startRendering()})},createUnknownError=()=>new DOMException("","UnknownError"),DEFAULT_OPTIONS={channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",curve:null,oversample:"none"},createWaveShaperNodeConstructor=(tt,et,nt,rt,it,ot,at)=>class extends tt{constructor(lt,ct){const ut=it(lt),ht={...DEFAULT_OPTIONS,...ct},dt=nt(ut,ht),mt=ot(ut)?rt():null;super(lt,!0,dt,mt),this._isCurveNullified=!1,this._nativeWaveShaperNode=dt,at(this,1)}get curve(){return this._isCurveNullified?null:this._nativeWaveShaperNode.curve}set curve(lt){if(lt===null)this._isCurveNullified=!0,this._nativeWaveShaperNode.curve=new Float32Array([0,0]);else{if(lt.length<2)throw et();this._isCurveNullified=!1,this._nativeWaveShaperNode.curve=lt}}get oversample(){return this._nativeWaveShaperNode.oversample}set oversample(lt){this._nativeWaveShaperNode.oversample=lt}},createWaveShaperNodeRendererFactory=(tt,et,nt)=>()=>{const rt=new WeakMap,it=async(ot,at)=>{let st=et(ot);if(!isOwnedByContext(st,at)){const ct={channelCount:st.channelCount,channelCountMode:st.channelCountMode,channelInterpretation:st.channelInterpretation,curve:st.curve,oversample:st.oversample};st=tt(at,ct)}return rt.set(at,st),isNativeAudioNodeFaker(st)?await nt(ot,at,st.inputs[0]):await nt(ot,at,st),st};return{render(ot,at){const st=rt.get(at);return st!==void 0?Promise.resolve(st):it(ot,at)}}},createWindow=()=>typeof window>"u"?null:window,createWrapAudioBufferCopyChannelMethods=(tt,et)=>nt=>{nt.copyFromChannel=(rt,it,ot=0)=>{const at=tt(ot),st=tt(it);if(st>=nt.numberOfChannels)throw et();const lt=nt.length,ct=nt.getChannelData(st),ut=rt.length;for(let ht=at<0?-at:0;ht+at{const at=tt(ot),st=tt(it);if(st>=nt.numberOfChannels)throw et();const lt=nt.length,ct=nt.getChannelData(st),ut=rt.length;for(let ht=at<0?-at:0;ht+atet=>{et.copyFromChannel=(nt=>(rt,it,ot=0)=>{const at=tt(ot),st=tt(it);if(at(rt,it,ot=0)=>{const at=tt(ot),st=tt(it);if(at(et,nt)=>{const rt=nt.createBuffer(1,1,44100);et.buffer===null&&(et.buffer=rt),tt(et,"buffer",it=>()=>{const ot=it.call(et);return ot===rt?null:ot},it=>ot=>it.call(et,ot===null?rt:ot))},createWrapChannelMergerNode=(tt,et)=>(nt,rt)=>{rt.channelCount=1,rt.channelCountMode="explicit",Object.defineProperty(rt,"channelCount",{get:()=>1,set:()=>{throw tt()}}),Object.defineProperty(rt,"channelCountMode",{get:()=>"explicit",set:()=>{throw tt()}});const it=nt.createBufferSource();et(rt,()=>{const st=rt.numberOfInputs;for(let lt=0;ltit.disconnect(rt))},getFirstSample=(tt,et,nt)=>tt.copyFromChannel===void 0?tt.getChannelData(nt)[0]:(tt.copyFromChannel(et,nt),et[0]),isDCCurve=tt=>{if(tt===null)return!1;const et=tt.length;return et%2!==0?tt[Math.floor(et/2)]!==0:tt[et/2-1]+tt[et/2]!==0},overwriteAccessors=(tt,et,nt,rt)=>{let it=tt;for(;!it.hasOwnProperty(et);)it=Object.getPrototypeOf(it);const{get:ot,set:at}=Object.getOwnPropertyDescriptor(it,et);Object.defineProperty(tt,et,{get:nt(ot),set:rt(at)})},sanitizeAudioWorkletNodeOptions=tt=>({...tt,outputChannelCount:tt.outputChannelCount!==void 0?tt.outputChannelCount:tt.numberOfInputs===1&&tt.numberOfOutputs===1?[tt.channelCount]:Array.from({length:tt.numberOfOutputs},()=>1)}),sanitizeChannelSplitterOptions=tt=>({...tt,channelCount:tt.numberOfOutputs}),sanitizePeriodicWaveOptions=tt=>{const{imag:et,real:nt}=tt;return et===void 0?nt===void 0?{...tt,imag:[0,0],real:[0,0]}:{...tt,imag:Array.from(nt,()=>0),real:nt}:nt===void 0?{...tt,imag:et,real:Array.from(et,()=>0)}:{...tt,imag:et,real:nt}},setValueAtTimeUntilPossible=(tt,et,nt)=>{try{tt.setValueAtTime(et,nt)}catch(rt){if(rt.code!==9)throw rt;setValueAtTimeUntilPossible(tt,et,nt+1e-7)}},testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport=tt=>{const et=tt.createBufferSource();et.start();try{et.start()}catch{return!0}return!1},testAudioBufferSourceNodeStartMethodOffsetClampingSupport=tt=>{const et=tt.createBufferSource(),nt=tt.createBuffer(1,1,44100);et.buffer=nt;try{et.start(0,1)}catch{return!1}return!0},testAudioBufferSourceNodeStopMethodNullifiedBufferSupport=tt=>{const et=tt.createBufferSource();et.start();try{et.stop()}catch{return!1}return!0},testAudioScheduledSourceNodeStartMethodNegativeParametersSupport=tt=>{const et=tt.createOscillator();try{et.start(-1)}catch(nt){return nt instanceof RangeError}return!1},testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport=tt=>{const et=tt.createBuffer(1,1,44100),nt=tt.createBufferSource();nt.buffer=et,nt.start(),nt.stop();try{return nt.stop(),!0}catch{return!1}},testAudioScheduledSourceNodeStopMethodNegativeParametersSupport=tt=>{const et=tt.createOscillator();try{et.stop(-1)}catch(nt){return nt instanceof RangeError}return!1},testAudioWorkletNodeOptionsClonability=tt=>{const{port1:et,port2:nt}=new MessageChannel;try{et.postMessage(tt)}finally{et.close(),nt.close()}},wrapAudioBufferSourceNodeStartMethodOffsetClamping=tt=>{tt.start=(et=>(nt=0,rt=0,it)=>{const ot=tt.buffer,at=ot===null?rt:Math.min(ot.duration,rt);ot!==null&&at>ot.duration-.5/tt.context.sampleRate?et.call(tt,nt,0,0):et.call(tt,nt,at,it)})(tt.start)},wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls=(tt,et)=>{const nt=et.createGain();tt.connect(nt);const rt=(it=>()=>{it.call(tt,nt),tt.removeEventListener("ended",rt)})(tt.disconnect);tt.addEventListener("ended",rt),interceptConnections(tt,nt),tt.stop=(it=>{let ot=!1;return(at=0)=>{if(ot)try{it.call(tt,at)}catch{nt.gain.setValueAtTime(0,at)}else it.call(tt,at),ot=!0}})(tt.stop)},wrapEventListener=(tt,et)=>nt=>{const rt={value:tt};return Object.defineProperties(nt,{currentTarget:rt,target:rt}),typeof et=="function"?et.call(tt,nt):et.handleEvent.call(tt,nt)},addActiveInputConnectionToAudioNode=createAddActiveInputConnectionToAudioNode(insertElementInSet),addPassiveInputConnectionToAudioNode=createAddPassiveInputConnectionToAudioNode(insertElementInSet),deleteActiveInputConnectionToAudioNode=createDeleteActiveInputConnectionToAudioNode(pickElementFromSet),audioNodeTailTimeStore=new WeakMap,getAudioNodeTailTime=createGetAudioNodeTailTime(audioNodeTailTimeStore),cacheTestResult=createCacheTestResult(new Map,new WeakMap),window$1=createWindow(),createNativeAnalyserNode=createNativeAnalyserNodeFactory(cacheTestResult,createIndexSizeError),getAudioNodeRenderer=createGetAudioNodeRenderer(getAudioNodeConnections),renderInputsOfAudioNode=createRenderInputsOfAudioNode(getAudioNodeConnections,getAudioNodeRenderer,isPartOfACycle),createAnalyserNodeRenderer=createAnalyserNodeRendererFactory(createNativeAnalyserNode,getNativeAudioNode,renderInputsOfAudioNode),getNativeContext=createGetNativeContext(CONTEXT_STORE),nativeOfflineAudioContextConstructor=createNativeOfflineAudioContextConstructor(window$1),isNativeOfflineAudioContext=createIsNativeOfflineAudioContext(nativeOfflineAudioContextConstructor),audioParamAudioNodeStore=new WeakMap,eventTargetConstructor=createEventTargetConstructor(wrapEventListener),nativeAudioContextConstructor=createNativeAudioContextConstructor(window$1),isNativeAudioContext=createIsNativeAudioContext(nativeAudioContextConstructor),isNativeAudioNode=createIsNativeAudioNode(window$1),isNativeAudioParam=createIsNativeAudioParam(window$1),nativeAudioWorkletNodeConstructor=createNativeAudioWorkletNodeConstructor(window$1),audioNodeConstructor=createAudioNodeConstructor(createAddAudioNodeConnections(AUDIO_NODE_CONNECTIONS_STORE),createAddConnectionToAudioNode(addActiveInputConnectionToAudioNode,addPassiveInputConnectionToAudioNode,connectNativeAudioNodeToNativeAudioNode,deleteActiveInputConnectionToAudioNode,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getAudioNodeTailTime,getEventListenersOfAudioNode,getNativeAudioNode,insertElementInSet,isActiveAudioNode,isPartOfACycle,isPassiveAudioNode),cacheTestResult,createIncrementCycleCounterFactory(CYCLE_COUNTERS,disconnectNativeAudioNodeFromNativeAudioNode,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,isActiveAudioNode),createIndexSizeError,createInvalidAccessError,createNotSupportedError,createDecrementCycleCounter(connectNativeAudioNodeToNativeAudioNode,CYCLE_COUNTERS,getAudioNodeConnections,getNativeAudioNode,getNativeAudioParam,getNativeContext,isActiveAudioNode,isNativeOfflineAudioContext),createDetectCycles(audioParamAudioNodeStore,getAudioNodeConnections,getValueForKey),eventTargetConstructor,getNativeContext,isNativeAudioContext,isNativeAudioNode,isNativeAudioParam,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor),analyserNodeConstructor=createAnalyserNodeConstructor(audioNodeConstructor,createAnalyserNodeRenderer,createIndexSizeError,createNativeAnalyserNode,getNativeContext,isNativeOfflineAudioContext),audioBufferStore=new WeakSet,nativeAudioBufferConstructor=createNativeAudioBufferConstructor(window$1),convertNumberToUnsignedLong=createConvertNumberToUnsignedLong(new Uint32Array(1)),wrapAudioBufferCopyChannelMethods=createWrapAudioBufferCopyChannelMethods(convertNumberToUnsignedLong,createIndexSizeError),wrapAudioBufferCopyChannelMethodsOutOfBounds=createWrapAudioBufferCopyChannelMethodsOutOfBounds(convertNumberToUnsignedLong),audioBufferConstructor=createAudioBufferConstructor(audioBufferStore,cacheTestResult,createNotSupportedError,nativeAudioBufferConstructor,nativeOfflineAudioContextConstructor,createTestAudioBufferConstructorSupport(nativeAudioBufferConstructor),wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),addSilentConnection=createAddSilentConnection(createNativeGainNode),renderInputsOfAudioParam=createRenderInputsOfAudioParam(getAudioNodeRenderer,getAudioParamConnections,isPartOfACycle),connectAudioParam=createConnectAudioParam(renderInputsOfAudioParam),createNativeAudioBufferSourceNode=createNativeAudioBufferSourceNodeFactory(addSilentConnection,cacheTestResult,testAudioBufferSourceNodeStartMethodConsecutiveCallsSupport,testAudioBufferSourceNodeStartMethodOffsetClampingSupport,testAudioBufferSourceNodeStopMethodNullifiedBufferSupport,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioBufferSourceNodeStartMethodOffsetClamping,createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer(overwriteAccessors),wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),renderAutomation=createRenderAutomation(createGetAudioParamRenderer(getAudioParamConnections),renderInputsOfAudioParam),createAudioBufferSourceNodeRenderer=createAudioBufferSourceNodeRendererFactory(connectAudioParam,createNativeAudioBufferSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),createAudioParam=createAudioParamFactory(createAddAudioParamConnections(AUDIO_PARAM_CONNECTIONS_STORE),audioParamAudioNodeStore,AUDIO_PARAM_STORE,createAudioParamRenderer,createCancelAndHoldAutomationEvent,createCancelScheduledValuesAutomationEvent,createExponentialRampToValueAutomationEvent,createLinearRampToValueAutomationEvent,createSetTargetAutomationEvent,createSetValueAutomationEvent,createSetValueCurveAutomationEvent,nativeAudioContextConstructor,setValueAtTimeUntilPossible),audioBufferSourceNodeConstructor=createAudioBufferSourceNodeConstructor(audioNodeConstructor,createAudioBufferSourceNodeRenderer,createAudioParam,createInvalidStateError,createNativeAudioBufferSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),audioDestinationNodeConstructor=createAudioDestinationNodeConstructor(audioNodeConstructor,createAudioDestinationNodeRenderer,createIndexSizeError,createInvalidStateError,createNativeAudioDestinationNodeFactory(createNativeGainNode,overwriteAccessors),getNativeContext,isNativeOfflineAudioContext,renderInputsOfAudioNode),createBiquadFilterNodeRenderer=createBiquadFilterNodeRendererFactory(connectAudioParam,createNativeBiquadFilterNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),setAudioNodeTailTime=createSetAudioNodeTailTime(audioNodeTailTimeStore),biquadFilterNodeConstructor=createBiquadFilterNodeConstructor(audioNodeConstructor,createAudioParam,createBiquadFilterNodeRenderer,createInvalidAccessError,createNativeBiquadFilterNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),monitorConnections=createMonitorConnections(insertElementInSet,isNativeAudioNode),wrapChannelMergerNode=createWrapChannelMergerNode(createInvalidStateError,monitorConnections),createNativeChannelMergerNode=createNativeChannelMergerNodeFactory(nativeAudioContextConstructor,wrapChannelMergerNode),createChannelMergerNodeRenderer=createChannelMergerNodeRendererFactory(createNativeChannelMergerNode,getNativeAudioNode,renderInputsOfAudioNode),channelMergerNodeConstructor=createChannelMergerNodeConstructor(audioNodeConstructor,createChannelMergerNodeRenderer,createNativeChannelMergerNode,getNativeContext,isNativeOfflineAudioContext),createChannelSplitterNodeRenderer=createChannelSplitterNodeRendererFactory(createNativeChannelSplitterNode,getNativeAudioNode,renderInputsOfAudioNode),channelSplitterNodeConstructor=createChannelSplitterNodeConstructor(audioNodeConstructor,createChannelSplitterNodeRenderer,createNativeChannelSplitterNode,getNativeContext,isNativeOfflineAudioContext,sanitizeChannelSplitterOptions),createNativeConstantSourceNodeFaker=createNativeConstantSourceNodeFakerFactory(addSilentConnection,createNativeAudioBufferSourceNode,createNativeGainNode,monitorConnections),createNativeConstantSourceNode=createNativeConstantSourceNodeFactory(addSilentConnection,cacheTestResult,createNativeConstantSourceNodeFaker,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport),createConstantSourceNodeRenderer=createConstantSourceNodeRendererFactory(connectAudioParam,createNativeConstantSourceNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),constantSourceNodeConstructor=createConstantSourceNodeConstructor(audioNodeConstructor,createAudioParam,createConstantSourceNodeRenderer,createNativeConstantSourceNode,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createNativeConvolverNode=createNativeConvolverNodeFactory(createNotSupportedError,overwriteAccessors),createConvolverNodeRenderer=createConvolverNodeRendererFactory(createNativeConvolverNode,getNativeAudioNode,renderInputsOfAudioNode),convolverNodeConstructor=createConvolverNodeConstructor(audioNodeConstructor,createConvolverNodeRenderer,createNativeConvolverNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createDelayNodeRenderer=createDelayNodeRendererFactory(connectAudioParam,createNativeDelayNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),delayNodeConstructor=createDelayNodeConstructor(audioNodeConstructor,createAudioParam,createDelayNodeRenderer,createNativeDelayNode,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativeDynamicsCompressorNode=createNativeDynamicsCompressorNodeFactory(createNotSupportedError),createDynamicsCompressorNodeRenderer=createDynamicsCompressorNodeRendererFactory(connectAudioParam,createNativeDynamicsCompressorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),dynamicsCompressorNodeConstructor=createDynamicsCompressorNodeConstructor(audioNodeConstructor,createAudioParam,createDynamicsCompressorNodeRenderer,createNativeDynamicsCompressorNode,createNotSupportedError,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createGainNodeRenderer=createGainNodeRendererFactory(connectAudioParam,createNativeGainNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),gainNodeConstructor=createGainNodeConstructor(audioNodeConstructor,createAudioParam,createGainNodeRenderer,createNativeGainNode,getNativeContext,isNativeOfflineAudioContext),createNativeIIRFilterNodeFaker=createNativeIIRFilterNodeFakerFactory(createInvalidAccessError,createInvalidStateError,createNativeScriptProcessorNode,createNotSupportedError),renderNativeOfflineAudioContext=createRenderNativeOfflineAudioContext(cacheTestResult,createNativeGainNode,createNativeScriptProcessorNode,createTestOfflineAudioContextCurrentTimeSupport(createNativeGainNode,nativeOfflineAudioContextConstructor)),createIIRFilterNodeRenderer=createIIRFilterNodeRendererFactory(createNativeAudioBufferSourceNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderInputsOfAudioNode,renderNativeOfflineAudioContext),createNativeIIRFilterNode=createNativeIIRFilterNodeFactory(createNativeIIRFilterNodeFaker),iIRFilterNodeConstructor=createIIRFilterNodeConstructor(audioNodeConstructor,createNativeIIRFilterNode,createIIRFilterNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createAudioListener=createAudioListenerFactory(createAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeScriptProcessorNode,createNotSupportedError,getFirstSample,isNativeOfflineAudioContext,overwriteAccessors),unrenderedAudioWorkletNodeStore=new WeakMap,minimalBaseAudioContextConstructor=createMinimalBaseAudioContextConstructor(audioDestinationNodeConstructor,createAudioListener,eventTargetConstructor,isNativeOfflineAudioContext,unrenderedAudioWorkletNodeStore,wrapEventListener),createNativeOscillatorNode=createNativeOscillatorNodeFactory(addSilentConnection,cacheTestResult,testAudioScheduledSourceNodeStartMethodNegativeParametersSupport,testAudioScheduledSourceNodeStopMethodConsecutiveCallsSupport,testAudioScheduledSourceNodeStopMethodNegativeParametersSupport,wrapAudioScheduledSourceNodeStopMethodConsecutiveCalls),createOscillatorNodeRenderer=createOscillatorNodeRendererFactory(connectAudioParam,createNativeOscillatorNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),oscillatorNodeConstructor=createOscillatorNodeConstructor(audioNodeConstructor,createAudioParam,createNativeOscillatorNode,createOscillatorNodeRenderer,getNativeContext,isNativeOfflineAudioContext,wrapEventListener),createConnectedNativeAudioBufferSourceNode=createConnectedNativeAudioBufferSourceNodeFactory(createNativeAudioBufferSourceNode),createNativeWaveShaperNodeFaker=createNativeWaveShaperNodeFakerFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeGainNode,isDCCurve,monitorConnections),createNativeWaveShaperNode=createNativeWaveShaperNodeFactory(createConnectedNativeAudioBufferSourceNode,createInvalidStateError,createNativeWaveShaperNodeFaker,isDCCurve,monitorConnections,nativeAudioContextConstructor,overwriteAccessors),createNativePannerNodeFaker=createNativePannerNodeFakerFactory(connectNativeAudioNodeToNativeAudioNode,createInvalidStateError,createNativeChannelMergerNode,createNativeGainNode,createNativeScriptProcessorNode,createNativeWaveShaperNode,createNotSupportedError,disconnectNativeAudioNodeFromNativeAudioNode,getFirstSample,monitorConnections),createNativePannerNode=createNativePannerNodeFactory(createNativePannerNodeFaker),createPannerNodeRenderer=createPannerNodeRendererFactory(connectAudioParam,createNativeChannelMergerNode,createNativeConstantSourceNode,createNativeGainNode,createNativePannerNode,getNativeAudioNode,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),pannerNodeConstructor=createPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativePannerNode,createPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),createNativePeriodicWave=createNativePeriodicWaveFactory(createIndexSizeError),periodicWaveConstructor=createPeriodicWaveConstructor(createNativePeriodicWave,getNativeContext,new WeakSet,sanitizePeriodicWaveOptions),nativeStereoPannerNodeFakerFactory=createNativeStereoPannerNodeFakerFactory(createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeGainNode,createNativeWaveShaperNode,createNotSupportedError,monitorConnections),createNativeStereoPannerNode=createNativeStereoPannerNodeFactory(nativeStereoPannerNodeFakerFactory,createNotSupportedError),createStereoPannerNodeRenderer=createStereoPannerNodeRendererFactory(connectAudioParam,createNativeStereoPannerNode,getNativeAudioNode,renderAutomation,renderInputsOfAudioNode),stereoPannerNodeConstructor=createStereoPannerNodeConstructor(audioNodeConstructor,createAudioParam,createNativeStereoPannerNode,createStereoPannerNodeRenderer,getNativeContext,isNativeOfflineAudioContext),createWaveShaperNodeRenderer=createWaveShaperNodeRendererFactory(createNativeWaveShaperNode,getNativeAudioNode,renderInputsOfAudioNode),waveShaperNodeConstructor=createWaveShaperNodeConstructor(audioNodeConstructor,createInvalidStateError,createNativeWaveShaperNode,createWaveShaperNodeRenderer,getNativeContext,isNativeOfflineAudioContext,setAudioNodeTailTime),isSecureContext=createIsSecureContext(window$1),exposeCurrentFrameAndCurrentTime=createExposeCurrentFrameAndCurrentTime(window$1),backupOfflineAudioContextStore=new WeakMap,getOrCreateBackupOfflineAudioContext=createGetOrCreateBackupOfflineAudioContext(backupOfflineAudioContextStore,nativeOfflineAudioContextConstructor),addAudioWorkletModule=isSecureContext?createAddAudioWorkletModule(cacheTestResult,createNotSupportedError,createEvaluateSource(window$1),exposeCurrentFrameAndCurrentTime,createFetchSource(createAbortError),getNativeContext,getOrCreateBackupOfflineAudioContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,new WeakMap,new WeakMap,createTestAudioWorkletProcessorPostMessageSupport(nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor),window$1):void 0,isNativeContext=createIsNativeContext(isNativeAudioContext,isNativeOfflineAudioContext),decodeAudioData=createDecodeAudioData(audioBufferStore,cacheTestResult,createDataCloneError,createEncodingError,new WeakSet,getNativeContext,isNativeContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,testPromiseSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),baseAudioContextConstructor=createBaseAudioContextConstructor(addAudioWorkletModule,analyserNodeConstructor,audioBufferConstructor,audioBufferSourceNodeConstructor,biquadFilterNodeConstructor,channelMergerNodeConstructor,channelSplitterNodeConstructor,constantSourceNodeConstructor,convolverNodeConstructor,decodeAudioData,delayNodeConstructor,dynamicsCompressorNodeConstructor,gainNodeConstructor,iIRFilterNodeConstructor,minimalBaseAudioContextConstructor,oscillatorNodeConstructor,pannerNodeConstructor,periodicWaveConstructor,stereoPannerNodeConstructor,waveShaperNodeConstructor),mediaElementAudioSourceNodeConstructor=createMediaElementAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaElementAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioDestinationNodeConstructor=createMediaStreamAudioDestinationNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioDestinationNode,getNativeContext,isNativeOfflineAudioContext),mediaStreamAudioSourceNodeConstructor=createMediaStreamAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamAudioSourceNode,getNativeContext,isNativeOfflineAudioContext),createNativeMediaStreamTrackAudioSourceNode=createNativeMediaStreamTrackAudioSourceNodeFactory(createInvalidStateError,isNativeOfflineAudioContext),mediaStreamTrackAudioSourceNodeConstructor=createMediaStreamTrackAudioSourceNodeConstructor(audioNodeConstructor,createNativeMediaStreamTrackAudioSourceNode,getNativeContext),audioContextConstructor=createAudioContextConstructor(baseAudioContextConstructor,createInvalidStateError,createNotSupportedError,createUnknownError,mediaElementAudioSourceNodeConstructor,mediaStreamAudioDestinationNodeConstructor,mediaStreamAudioSourceNodeConstructor,mediaStreamTrackAudioSourceNodeConstructor,nativeAudioContextConstructor),getUnrenderedAudioWorkletNodes=createGetUnrenderedAudioWorkletNodes(unrenderedAudioWorkletNodeStore),addUnrenderedAudioWorkletNode=createAddUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),connectMultipleOutputs=createConnectMultipleOutputs(createIndexSizeError),deleteUnrenderedAudioWorkletNode=createDeleteUnrenderedAudioWorkletNode(getUnrenderedAudioWorkletNodes),disconnectMultipleOutputs=createDisconnectMultipleOutputs(createIndexSizeError),activeAudioWorkletNodeInputsStore=new WeakMap,getActiveAudioWorkletNodeInputs=createGetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore,getValueForKey),createNativeAudioWorkletNodeFaker=createNativeAudioWorkletNodeFakerFactory(connectMultipleOutputs,createIndexSizeError,createInvalidStateError,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,createNativeScriptProcessorNode,createNotSupportedError,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getActiveAudioWorkletNodeInputs,monitorConnections),createNativeAudioWorkletNode=createNativeAudioWorkletNodeFactory(createInvalidStateError,createNativeAudioWorkletNodeFaker,createNativeGainNode,createNotSupportedError,monitorConnections),createAudioWorkletNodeRenderer=createAudioWorkletNodeRendererFactory(connectAudioParam,connectMultipleOutputs,createNativeAudioBufferSourceNode,createNativeChannelMergerNode,createNativeChannelSplitterNode,createNativeConstantSourceNode,createNativeGainNode,deleteUnrenderedAudioWorkletNode,disconnectMultipleOutputs,exposeCurrentFrameAndCurrentTime,getNativeAudioNode,nativeAudioWorkletNodeConstructor,nativeOfflineAudioContextConstructor,renderAutomation,renderInputsOfAudioNode,renderNativeOfflineAudioContext),getBackupOfflineAudioContext=createGetBackupOfflineAudioContext(backupOfflineAudioContextStore),setActiveAudioWorkletNodeInputs=createSetActiveAudioWorkletNodeInputs(activeAudioWorkletNodeInputsStore),audioWorkletNodeConstructor=isSecureContext?createAudioWorkletNodeConstructor(addUnrenderedAudioWorkletNode,audioNodeConstructor,createAudioParam,createAudioWorkletNodeRenderer,createNativeAudioWorkletNode,getAudioNodeConnections,getBackupOfflineAudioContext,getNativeContext,isNativeOfflineAudioContext,nativeAudioWorkletNodeConstructor,sanitizeAudioWorkletNodeOptions,setActiveAudioWorkletNodeInputs,testAudioWorkletNodeOptionsClonability,wrapEventListener):void 0,createNativeOfflineAudioContext=createCreateNativeOfflineAudioContext(createNotSupportedError,nativeOfflineAudioContextConstructor),startRendering=createStartRendering(audioBufferStore,cacheTestResult,getAudioNodeRenderer,getUnrenderedAudioWorkletNodes,renderNativeOfflineAudioContext,testAudioBufferCopyChannelMethodsOutOfBoundsSupport,wrapAudioBufferCopyChannelMethods,wrapAudioBufferCopyChannelMethodsOutOfBounds),offlineAudioContextConstructor=createOfflineAudioContextConstructor(baseAudioContextConstructor,cacheTestResult,createInvalidStateError,createNativeOfflineAudioContext,startRendering),isAnyAudioContext=createIsAnyAudioContext(CONTEXT_STORE,isNativeAudioContext),isAnyAudioNode=createIsAnyAudioNode(AUDIO_NODE_STORE,isNativeAudioNode),isAnyAudioParam=createIsAnyAudioParam(AUDIO_PARAM_STORE,isNativeAudioParam),isAnyOfflineAudioContext=createIsAnyOfflineAudioContext(CONTEXT_STORE,isNativeOfflineAudioContext);function isUndef(tt){return typeof tt>"u"}function isDefined(tt){return!isUndef(tt)}function isFunction$2(tt){return typeof tt=="function"}function isNumber$4(tt){return typeof tt=="number"}function isObject$4(tt){return Object.prototype.toString.call(tt)==="[object Object]"&&tt.constructor===Object}function isBoolean$1(tt){return typeof tt=="boolean"}function isArray$3(tt){return Array.isArray(tt)}function isString$1(tt){return typeof tt=="string"}function isNote(tt){return isString$1(tt)&&/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i.test(tt)}function assert$1(tt,et){if(!tt)throw new Error(et)}function assertRange(tt,et,nt=1/0){if(!(et<=tt&&tt<=nt))throw new RangeError(`Value must be within [${et}, ${nt}], got: ${tt}`)}function assertContextRunning(tt){!tt.isOffline&&tt.state!=="running"&&warn$2('The AudioContext is "suspended". Invoke Tone.start() from a user action to start the audio.')}let isInsideScheduledCallback=!1,printedScheduledWarning=!1;function enterScheduledCallback(tt){isInsideScheduledCallback=tt}function assertUsedScheduleTime(tt){isUndef(tt)&&isInsideScheduledCallback&&!printedScheduledWarning&&(printedScheduledWarning=!0,warn$2("Events scheduled inside of scheduled callbacks should use the passed in scheduling time. See https://github.com/Tonejs/Tone.js/wiki/Accurate-Timing"))}let defaultLogger=console;function log$1(...tt){defaultLogger.log(...tt)}function warn$2(...tt){defaultLogger.warn(...tt)}function createAudioContext(tt){return new audioContextConstructor(tt)}function createOfflineAudioContext(tt,et,nt){return new offlineAudioContextConstructor(tt,et,nt)}const theWindow=typeof self=="object"?self:null,hasAudioContext=theWindow&&(theWindow.hasOwnProperty("AudioContext")||theWindow.hasOwnProperty("webkitAudioContext"));function createAudioWorkletNode(tt,et,nt){return assert$1(isDefined(audioWorkletNodeConstructor),"This node only works in a secure context (https or localhost)"),new audioWorkletNodeConstructor(tt,et,nt)}class Ticker{constructor(et,nt,rt,it){this._callback=et,this._type=nt,this._minimumUpdateInterval=Math.max(128/(it||44100),.001),this.updateInterval=rt,this._createClock()}_createWorker(){const et=new Blob([` // the initial timeout time let timeoutTime = ${(this._updateInterval*1e3).toFixed(1)}; // onmessage callback @@ -6672,7 +6672,7 @@ void main() { return val; } } -`;registerProcessor(workletName,bitCrusherWorklet);class Merge extends ToneAudioNode{constructor(){super(optionsFromArguments(Merge.getDefaults(),arguments,["channels"])),this.name="Merge";const et=optionsFromArguments(Merge.getDefaults(),arguments,["channels"]);this._merger=this.output=this.input=this.context.createChannelMerger(et.channels)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}}class Reverb extends Effect{constructor(){super(optionsFromArguments(Reverb.getDefaults(),arguments,["decay"])),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();const et=optionsFromArguments(Reverb.getDefaults(),arguments,["decay"]);this._decay=et.decay,this._preDelay=et.preDelay,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(Effect.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(et){et=this.toSeconds(et),assertRange(et,.001),this._decay=et,this.generate()}get preDelay(){return this._preDelay}set preDelay(et){et=this.toSeconds(et),assertRange(et,0),this._preDelay=et,this.generate()}generate(){return __awaiter(this,void 0,void 0,function*(){const et=this.ready,nt=new OfflineContext(2,this._decay+this._preDelay,this.context.sampleRate),rt=new Noise({context:nt}),it=new Noise({context:nt}),ot=new Merge({context:nt});rt.connect(ot,0,0),it.connect(ot,0,1);const at=new Gain({context:nt}).toDestination();ot.connect(at),rt.start(0),it.start(0),at.gain.setValueAtTime(0,0),at.gain.setValueAtTime(1,this._preDelay),at.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const st=nt.render();return this.ready=st.then(noOp),yield et,this._convolver.buffer=(yield st).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class Solo extends ToneAudioNode{constructor(){super(optionsFromArguments(Solo.getDefaults(),arguments,["solo"])),this.name="Solo";const et=optionsFromArguments(Solo.getDefaults(),arguments,["solo"]);this.input=this.output=new Gain({context:this.context}),Solo._allSolos.has(this.context)||Solo._allSolos.set(this.context,new Set),Solo._allSolos.get(this.context).add(this),this.solo=et.solo}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{solo:!1})}get solo(){return this._isSoloed()}set solo(et){et?this._addSolo():this._removeSolo(),Solo._allSolos.get(this.context).forEach(nt=>nt._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){Solo._soloed.has(this.context)||Solo._soloed.set(this.context,new Set),Solo._soloed.get(this.context).add(this)}_removeSolo(){Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).delete(this)}_isSoloed(){return Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).has(this)}_noSolos(){return!Solo._soloed.has(this.context)||Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),Solo._allSolos.get(this.context).delete(this),this._removeSolo(),this}}Solo._allSolos=new Map;Solo._soloed=new Map;class PanVol extends ToneAudioNode{constructor(){super(optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"])),this.name="PanVol";const et=optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"]);this._panner=this.input=new Panner({context:this.context,pan:et.pan,channelCount:et.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Volume({context:this.context,volume:et.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=et.mute,readOnly(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(et){this._volume.mute=et}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}}class Channel extends ToneAudioNode{constructor(){super(optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"])),this.name="Channel";const et=optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"]);this._solo=this.input=new Solo({solo:et.solo,context:this.context}),this._panVol=this.output=new PanVol({context:this.context,pan:et.pan,volume:et.volume,mute:et.mute,channelCount:et.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),readOnly(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(et){this._solo.solo=et}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(et){this._panVol.mute=et}_getBus(et){return Channel.buses.has(et)||Channel.buses.set(et,new Gain({context:this.context})),Channel.buses.get(et)}send(et,nt=0){const rt=this._getBus(et),it=new Gain({context:this.context,units:"decibels",gain:nt});return this.connect(it),it.connect(rt),it}receive(et){return this._getBus(et).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}}Channel.buses=new Map;class Listener extends ToneAudioNode{constructor(){super(...arguments),this.name="Listener",this.positionX=new Param({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new Param({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new Param({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new Param({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new Param({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new Param({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new Param({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new Param({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new Param({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}}onContextInit(tt=>{tt.listener=new Listener({context:tt})});onContextClose(tt=>{tt.listener.dispose()});getContext().transport;const Destination=getContext().destination;getContext().destination;getContext().listener;getContext().draw;getContext();const highPassFilter=new Filter(900,"highpass"),effectsBus=new Volume(-6);effectsBus.chain(highPassFilter,Destination);const reverb=new Reverb(3).connect(effectsBus),monoSynth=new MonoSynth({envelope:{attack:0,decay:.9,sustain:.2,release:.1}});monoSynth.oscillator.type="triangle2";monoSynth.volume.value=-6;monoSynth.chain(highPassFilter,Destination);const monoSynth2=new MonoSynth({envelope:{attack:.4,decay:.9,sustain:.7,release:.6}}).connect(reverb);monoSynth2.oscillator.type="triangle";monoSynth2.volume.value=-6;monoSynth2.chain(highPassFilter,Destination);function addOrganicVariant(){return Math.floor((Math.random()-.5)*20)}let toneStarted=!1;const playInspectSound=async(tt=0)=>{toneStarted||(await start(),toneStarted=!0);try{if(tt>2e3)monoSynth2.triggerAttackRelease(60,.3);else if(tt>1e3){let et=310;et+=addOrganicVariant(),monoSynth.triggerAttackRelease(et,.001)}}catch(et){console.warn(et)}};let lookAtAnimationTimer,departAnimationTimer;const departAnimationTimerLength=4e3,lookAtAnimationTimerLength=2e3,useAutoNavigate=tt=>{const et=useSelectedNode(),nt=useDataStore(Tt=>Tt.cameraFocusTrigger),rt=useControlStore(Tt=>Tt.isUserDragging),it=useControlStore(Tt=>Tt.isUserScrolling),ot=useControlStore(Tt=>Tt.setUserMovedCamera),at=useDataStore(Tt=>Tt.setNearbyNodeIds),st=useDataStore(Tt=>Tt.showSelectionGraph),lt=useDataStore(Tt=>Tt.data),ct=useDataStore(Tt=>Tt.graphStyle),{camera:ut}=useThree(),[ht,dt]=reactExports.useState(!1),[pt,mt]=reactExports.useState(!1),[gt,yt]=reactExports.useState(arriveDistance),bt=reactExports.useMemo(()=>{if(st)return new Vector3(0,0,0);const Tt=lt==null?void 0:lt.nodes.find(At=>At.ref_id===(et==null?void 0:et.ref_id));return new Vector3((Tt==null?void 0:Tt.x)||0,(Tt==null?void 0:Tt.y)||0,(Tt==null?void 0:Tt.z)||0)},[st,et,lt]);reactExports.useEffect(()=>{var Tt;st&&((Tt=tt.current)==null||Tt.setLookAt(selectionGraphCameraPosition.x,selectionGraphCameraPosition.y,selectionGraphCameraPosition.z,0,0,0,!1)),wt()},[st]),reactExports.useEffect(()=>{st?yt(selectionGraphDistance):(et==null?void 0:et.node_type)==="topic"?yt(topicArriveDistance):yt(arriveDistance)},[et,yt,st]),reactExports.useEffect(()=>{vt()},[nt]),reactExports.useEffect(()=>{(rt||it)&&(dt(!0),mt(!0))},[rt,it,dt,mt]),reactExports.useEffect(()=>{if(et)if(!st&&ct==="earth"&&(tt!=null&&tt.current)){const Tt=tt.current.camera.position.distanceTo(new Vector3),At=getPointAbove(bt,-Tt/2);tt.current.setLookAt(At.x,At.y,At.z,0,0,0,!0)}else lookAtAnimationTimer&&clearTimeout(lookAtAnimationTimer),lookAtAnimationTimer=setTimeout(()=>{mt(!0),clearTimeout(lookAtAnimationTimer)},lookAtAnimationTimerLength),wt();return()=>{lookAtAnimationTimer&&clearTimeout(lookAtAnimationTimer),departAnimationTimer&&clearTimeout(departAnimationTimer)}},[et]),useFrame(Tt=>{tt.current&&et&&(ht||kt(bt,Tt.camera),pt||St(bt,Tt.camera))});const wt=()=>{if(et){const Tt=ut.position.distanceTo(bt);playInspectSound(Tt)}vt()},vt=()=>{dt(!1),mt(!1),ot(!1),departAnimationTimer&&clearTimeout(departAnimationTimer),departAnimationTimer=setTimeout(()=>{dt(!0),mt(!0)},departAnimationTimerLength)},kt=(Tt,At)=>{if(At.position.distanceTo(Tt){var Et;(Et=tt==null?void 0:tt.current)==null||Et.setLookAt(At.position.x,At.position.y,At.position.z,Tt.x,Tt.y,Tt.z,!0)};return null},autoRotateSpeed=1;let cameraAnimation=null;const useCameraAnimations=(tt,{enabled:et})=>{const nt=useSelectedNode();useAutoNavigate(tt);const rt=useControlStore(ct=>ct.isUserDragging),it=useDataStore(ct=>ct.disableCameraRotation),ot=useDataStore(ct=>ct.data),at=useDataStore(ct=>ct.graphRadius),st=useDataStore(ct=>ct.setNearbyNodeIds);reactExports.useEffect(()=>{et||(cameraAnimation==null||cameraAnimation.kill(),cameraAnimation=null)},[et]);const lt=reactExports.useCallback(()=>{cameraAnimation==null||cameraAnimation.kill();const ct={value:-244},ut=gsapWithCSS.to(ct,{duration:5,keyframes:{"0%":{value:10},"100%":{delay:2,ease:"Power4.easeIn",value:-200}},onComplete:()=>{cameraAnimation=null},onInterrupt(){ut.kill()},onUpdate:()=>{var dt;const{value:ht}=ct;if(tt.current){const pt=getNearbyNodeIds((ot==null?void 0:ot.nodes)||[],tt.current.camera);pt&&st(pt),(dt=tt.current)==null||dt.dolly(ht,!1)}}});ut.play(),cameraAnimation=ut},[]);return reactExports.useEffect(()=>{tt.current&&at&&(tt.current.maxDistance=tt.current.getDistanceToFitSphere(at+200)),et&<()},[at]),reactExports.useEffect(()=>{!nt&&tt.current&&tt.current.setLookAt(initialCameraPosition.x,initialCameraPosition.y,initialCameraPosition.z,0,0,0,!0)},[nt]),useFrame((ct,ut)=>{tt.current&&(!it&&!rt&&(tt.current.azimuthAngle+=autoRotateSpeed*ut*MathUtils.DEG2RAD),tt.current.update(ut))}),null},Controls=({disableAnimations:tt})=>{const et=reactExports.useRef(null),nt=useDataStore(dt=>dt.graphStyle),rt=useDataStore(dt=>dt.data),it=useDataStore(dt=>dt.setNearbyNodeIds),ot=useDataStore(dt=>dt.setDisableCameraRotation),[at]=reactExports.useState(.8),{camera:st}=useThree(),[lt,ct,ut,ht]=useControlStore(dt=>[dt.isUserDragging,dt.setIsUserDragging,dt.isUserScrolling,dt.isUserScrollingOnHtmlPanel]);return useCameraAnimations(et,{enabled:!tt&&!ut&&!lt}),reactExports.useEffect(()=>{et.current&&et.current.setLookAt(initialCameraPosition.x,initialCameraPosition.y,initialCameraPosition.z,0,0,0,!0)},[nt]),reactExports.useEffect(()=>{if(!lt){const dt=getNearbyNodeIds((rt==null?void 0:rt.nodes)||[],st);dt&&it(dt)}},[st,st.position,st.position.x,st.position.y,st.position.z,rt==null?void 0:rt.nodes,it,lt]),reactExports.useEffect(()=>{lt&&ot(!0)},[lt,ot]),jsxRuntimeExports.jsx(CameraControls,{ref:et,boundaryEnclosesCamera:!0,enabled:!ht,makeDefault:!0,maxDistance:12e3,minDistance:100,onEnd:()=>ct(!1),onStart:()=>ct(!0),smoothTime:at})},smoothness={metalness:.9,roughness:0},materialOptions={...smoothness},blurryMaterial=new MeshStandardMaterial(materialOptions),BlurryInstances=({hide:tt})=>{const et=useGraphData(),nt=useDataStore(it=>it.graphStyle),rt=reactExports.useMemo(()=>et.nodes.map((it,ot)=>{const at=!isMainTopic(it),st=getNodeColorByType(it.node_type||"",!0);return jsxRuntimeExports.jsx(Instance,{color:st,name:it.id,position:[it.x,it.y,it.z],scale:at?(it.scale||1)*.9:0,userData:it},`${it.ref_id||it.id}-instanced-node-${ot}-${nt}`)}),[nt,et]);return jsxRuntimeExports.jsx(Instances,{geometry:boxGeometry,material:blurryMaterial,visible:!tt,children:rt})},loader=new TextureLoader,noImageTexture=loader.load("noimage.jpeg"),noImageMaterial=new MeshStandardMaterial({...smoothness,map:noImageTexture}),transparentValue=.4,noImageTransparentMaterial=new MeshStandardMaterial({...smoothness,map:noImageTexture,transparent:!0,opacity:transparentValue}),cachedMaterials={},useMaterial=(tt,et)=>{const[nt,rt]=reactExports.useState(noImageTexture),[it,ot]=reactExports.useState(noImageMaterial);return reactExports.useEffect(()=>{const at=`${tt}${et&&"-transparent"}`;if(cachedMaterials[at]){rt(cachedMaterials[at].texture),ot(cachedMaterials[at].material);return}loader.load(tt,st=>{const lt=new MeshStandardMaterial({map:st,transparent:et,opacity:et?transparentValue:1,...smoothness});cachedMaterials[at]={texture:st,material:lt},rt(st),ot(lt)},void 0,()=>{rt(noImageTexture),ot(et?noImageTransparentMaterial:noImageMaterial)})},[tt,et]),reactExports.useEffect(()=>function(){nt.dispose(),it.dispose()},[nt,it]),it},Cube=reactExports.memo(({node:tt,hide:et,animated:nt})=>{const rt=reactExports.useRef(null),[it]=reactExports.useState(boxGeometry),ot=useSelectedNode(),at=useDataStore(ut=>ut.showSelectionGraph),st=!!ot&&tt.ref_id===ot.ref_id,lt=useMaterial(tt.image_url||"noimage.jpeg",!1);useFrame((ut,ht)=>{nt&&rt.current&&(rt.current.position.set(tt.x,tt.y,tt.z),st&&(rt.current.rotation.y+=ht*1,rt.current.rotation.x-=ht*.6))}),reactExports.useEffect(()=>function(){it.dispose()},[it]);const ct=reactExports.useMemo(()=>at&&st?20:st?(tt.scale||1)*1.2:tt.scale,[tt,st,at]);return jsxRuntimeExports.jsx(Select,{enabled:!!st,children:jsxRuntimeExports.jsx("mesh",{ref:rt,geometry:boxGeometry,material:lt,name:tt.id,position:[tt.x,tt.y,tt.z],scale:ct,userData:tt,visible:!et})})});Cube.displayName="Cube";const getPercentageFromWeight=tt=>((tt||0)*100).toFixed(),PathwayBadge=({color:tt,position:et,relativeIds:nt,userData:rt})=>{const it=useDataStore(dt=>dt.setSelectedNode),ot=useDataStore(dt=>dt.setHoveredNode),at=useSelectedNode(),st=useDataStore(dt=>dt.hoveredNode),lt=(rt==null?void 0:rt.ref_id)===(at==null?void 0:at.ref_id),ct=reactExports.useRef(null);reactExports.useEffect(()=>function(){ct.current&&ct.current.clear()},[ct]);const ut=reactExports.useMemo(()=>(st==null?void 0:st.ref_id)===(rt==null?void 0:rt.ref_id),[st==null?void 0:st.ref_id,rt==null?void 0:rt.ref_id]),ht=getPercentageFromWeight(rt.weight);return jsxRuntimeExports.jsx("group",{ref:ct,position:et,children:jsxRuntimeExports.jsx(Html$1,{center:!0,sprite:!0,children:jsxRuntimeExports.jsxs(Tag,{color:tt,fontColor:colors.white,fontSize:18,justify:"center",onClick:dt=>{dt.stopPropagation(),rt&&it(rt)},onPointerOut:dt=>{dt.stopPropagation(),ot(null)},onPointerOver:dt=>{dt.stopPropagation(),ot(rt||null)},scale:ut?1.05:1,selected:lt,size:56,children:[`${ht}%`,jsxRuntimeExports.jsx(BadgeIconWrapper,{children:jsxRuntimeExports.jsxs(Counter,{color:tt,children:[jsxRuntimeExports.jsx(MdHub,{style:{marginRight:4}}),nt.length]})})]})})})},variableVector3=new Vector3,NodeBadge=({position:tt,userData:et,color:nt,relativeIds:rt})=>{const it=reactExports.useRef(null),ot=useDataStore(dt=>dt.setSelectedNode),at=useDataStore(dt=>dt.setHoveredNode),st=useDataStore(dt=>dt.hoveredNode),lt=useDataStore(dt=>dt.showSelectionGraph),ct=((et==null?void 0:et.node_type)||"")==="topic";useFrame(()=>{if(lt&&it.current){const dt=variableVector3.set((et==null?void 0:et.x)||0,(et==null?void 0:et.y)||0,(et==null?void 0:et.z)||0);it.current.position.copy(dt)}}),reactExports.useEffect(()=>function(){it.current&&it.current.clear()},[it]);const ut=reactExports.useMemo(()=>(st==null?void 0:st.ref_id)===(et==null?void 0:et.ref_id),[st==null?void 0:st.ref_id,et==null?void 0:et.ref_id]),ht=getPercentageFromWeight(et.weight);return jsxRuntimeExports.jsx("group",{ref:it,position:tt,children:jsxRuntimeExports.jsx(Html$1,{center:!0,sprite:!0,children:jsxRuntimeExports.jsxs(Tag,{color:nt,fontColor:colors.white,fontSize:ct?14:20,justify:"center",onClick:dt=>{dt.stopPropagation(),et&&ot(et)},onPointerOut:dt=>{dt.stopPropagation(),at(null)},onPointerOver:dt=>{dt.stopPropagation(),at(et||null)},scale:ut?1.05:1,selected:!1,size:ct?100:52,children:[ct?et==null?void 0:et.label:jsxRuntimeExports.jsx(Image$1,{size:46,src:(et==null?void 0:et.image_url)||"noimage.jpeg"}),jsxRuntimeExports.jsxs(BadgeIconWrapper,{children:[jsxRuntimeExports.jsxs(Counter,{color:nt,children:[jsxRuntimeExports.jsx(MdHub,{style:{marginRight:4}}),rt.length]}),jsxRuntimeExports.jsxs(Percentage,{color:nt,children:[ht,"%"]})]})]})})})},RelevanceBadges=reactExports.memo(()=>{const{badges:tt}=usePathway(),et=useDataStore(lt=>lt.data),nt=useSelectedNode(),rt=useDataStore(lt=>lt.showSelectionGraph),it=useDataStore(lt=>lt.selectionGraphData),ot=useDataStore(lt=>lt.selectedNodeRelativeIds),at=reactExports.useMemo(()=>tt.map(lt=>{var ct;if(((ct=lt.userData)==null?void 0:ct.ref_id)!==(nt==null?void 0:nt.ref_id)){const ut=((et==null?void 0:et.nodes)||[]).filter(ht=>ht.ref_id&&nodesAreRelatives(ht,lt.userData)).map(ht=>(ht==null?void 0:ht.ref_id)||"")||[];return jsxRuntimeExports.jsx(PathwayBadge,{color:colors.transparentWhite,position:lt.position,relativeIds:ut,userData:lt.userData},`relevance-badge-${lt.userData.ref_id}`)}return null}),[tt,nt,et==null?void 0:et.nodes]),st=reactExports.useMemo(()=>(rt?it.nodes:(et==null?void 0:et.nodes)||[]).filter(ut=>ot.includes((ut==null?void 0:ut.ref_id)||"")||(nt==null?void 0:nt.ref_id)===(ut==null?void 0:ut.ref_id)).map(ut=>{const ht=getNodeColorByType(ut.node_type||"",!0),dt=new Vector3((ut==null?void 0:ut.x)||0,(ut==null?void 0:ut.y)||0,(ut==null?void 0:ut.z)||0),pt=((et==null?void 0:et.nodes)||[]).filter(mt=>mt.ref_id&&nodesAreRelatives(mt,ut)).map(mt=>(mt==null?void 0:mt.ref_id)||"")||[];return jsxRuntimeExports.jsx(NodeBadge,{color:ht,position:dt,relativeIds:pt,userData:ut},`node-badge-${ut.ref_id}`)}),[ot,et==null?void 0:et.nodes,rt,it,nt]);return jsxRuntimeExports.jsx(reactExports.Fragment,{children:st.length?st:at},"node-badges")});RelevanceBadges.displayName="RelevanceBadges";const Tag=styled$4(Flex)` +`;registerProcessor(workletName,bitCrusherWorklet);class Merge extends ToneAudioNode{constructor(){super(optionsFromArguments(Merge.getDefaults(),arguments,["channels"])),this.name="Merge";const et=optionsFromArguments(Merge.getDefaults(),arguments,["channels"]);this._merger=this.output=this.input=this.context.createChannelMerger(et.channels)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{channels:2})}dispose(){return super.dispose(),this._merger.disconnect(),this}}class Reverb extends Effect{constructor(){super(optionsFromArguments(Reverb.getDefaults(),arguments,["decay"])),this.name="Reverb",this._convolver=this.context.createConvolver(),this.ready=Promise.resolve();const et=optionsFromArguments(Reverb.getDefaults(),arguments,["decay"]);this._decay=et.decay,this._preDelay=et.preDelay,this.generate(),this.connectEffect(this._convolver)}static getDefaults(){return Object.assign(Effect.getDefaults(),{decay:1.5,preDelay:.01})}get decay(){return this._decay}set decay(et){et=this.toSeconds(et),assertRange(et,.001),this._decay=et,this.generate()}get preDelay(){return this._preDelay}set preDelay(et){et=this.toSeconds(et),assertRange(et,0),this._preDelay=et,this.generate()}generate(){return __awaiter(this,void 0,void 0,function*(){const et=this.ready,nt=new OfflineContext(2,this._decay+this._preDelay,this.context.sampleRate),rt=new Noise({context:nt}),it=new Noise({context:nt}),ot=new Merge({context:nt});rt.connect(ot,0,0),it.connect(ot,0,1);const at=new Gain({context:nt}).toDestination();ot.connect(at),rt.start(0),it.start(0),at.gain.setValueAtTime(0,0),at.gain.setValueAtTime(1,this._preDelay),at.gain.exponentialApproachValueAtTime(0,this._preDelay,this.decay);const st=nt.render();return this.ready=st.then(noOp),yield et,this._convolver.buffer=(yield st).get(),this})}dispose(){return super.dispose(),this._convolver.disconnect(),this}}class Solo extends ToneAudioNode{constructor(){super(optionsFromArguments(Solo.getDefaults(),arguments,["solo"])),this.name="Solo";const et=optionsFromArguments(Solo.getDefaults(),arguments,["solo"]);this.input=this.output=new Gain({context:this.context}),Solo._allSolos.has(this.context)||Solo._allSolos.set(this.context,new Set),Solo._allSolos.get(this.context).add(this),this.solo=et.solo}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{solo:!1})}get solo(){return this._isSoloed()}set solo(et){et?this._addSolo():this._removeSolo(),Solo._allSolos.get(this.context).forEach(nt=>nt._updateSolo())}get muted(){return this.input.gain.value===0}_addSolo(){Solo._soloed.has(this.context)||Solo._soloed.set(this.context,new Set),Solo._soloed.get(this.context).add(this)}_removeSolo(){Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).delete(this)}_isSoloed(){return Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).has(this)}_noSolos(){return!Solo._soloed.has(this.context)||Solo._soloed.has(this.context)&&Solo._soloed.get(this.context).size===0}_updateSolo(){this._isSoloed()?this.input.gain.value=1:this._noSolos()?this.input.gain.value=1:this.input.gain.value=0}dispose(){return super.dispose(),Solo._allSolos.get(this.context).delete(this),this._removeSolo(),this}}Solo._allSolos=new Map;Solo._soloed=new Map;class PanVol extends ToneAudioNode{constructor(){super(optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"])),this.name="PanVol";const et=optionsFromArguments(PanVol.getDefaults(),arguments,["pan","volume"]);this._panner=this.input=new Panner({context:this.context,pan:et.pan,channelCount:et.channelCount}),this.pan=this._panner.pan,this._volume=this.output=new Volume({context:this.context,volume:et.volume}),this.volume=this._volume.volume,this._panner.connect(this._volume),this.mute=et.mute,readOnly(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mute:!1,pan:0,volume:0,channelCount:1})}get mute(){return this._volume.mute}set mute(et){this._volume.mute=et}dispose(){return super.dispose(),this._panner.dispose(),this.pan.dispose(),this._volume.dispose(),this.volume.dispose(),this}}class Channel extends ToneAudioNode{constructor(){super(optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"])),this.name="Channel";const et=optionsFromArguments(Channel.getDefaults(),arguments,["volume","pan"]);this._solo=this.input=new Solo({solo:et.solo,context:this.context}),this._panVol=this.output=new PanVol({context:this.context,pan:et.pan,volume:et.volume,mute:et.mute,channelCount:et.channelCount}),this.pan=this._panVol.pan,this.volume=this._panVol.volume,this._solo.connect(this._panVol),readOnly(this,["pan","volume"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{pan:0,volume:0,mute:!1,solo:!1,channelCount:1})}get solo(){return this._solo.solo}set solo(et){this._solo.solo=et}get muted(){return this._solo.muted||this.mute}get mute(){return this._panVol.mute}set mute(et){this._panVol.mute=et}_getBus(et){return Channel.buses.has(et)||Channel.buses.set(et,new Gain({context:this.context})),Channel.buses.get(et)}send(et,nt=0){const rt=this._getBus(et),it=new Gain({context:this.context,units:"decibels",gain:nt});return this.connect(it),it.connect(rt),it}receive(et){return this._getBus(et).connect(this),this}dispose(){return super.dispose(),this._panVol.dispose(),this.pan.dispose(),this.volume.dispose(),this._solo.dispose(),this}}Channel.buses=new Map;class Listener extends ToneAudioNode{constructor(){super(...arguments),this.name="Listener",this.positionX=new Param({context:this.context,param:this.context.rawContext.listener.positionX}),this.positionY=new Param({context:this.context,param:this.context.rawContext.listener.positionY}),this.positionZ=new Param({context:this.context,param:this.context.rawContext.listener.positionZ}),this.forwardX=new Param({context:this.context,param:this.context.rawContext.listener.forwardX}),this.forwardY=new Param({context:this.context,param:this.context.rawContext.listener.forwardY}),this.forwardZ=new Param({context:this.context,param:this.context.rawContext.listener.forwardZ}),this.upX=new Param({context:this.context,param:this.context.rawContext.listener.upX}),this.upY=new Param({context:this.context,param:this.context.rawContext.listener.upY}),this.upZ=new Param({context:this.context,param:this.context.rawContext.listener.upZ})}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:-1,upX:0,upY:1,upZ:0})}dispose(){return super.dispose(),this.positionX.dispose(),this.positionY.dispose(),this.positionZ.dispose(),this.forwardX.dispose(),this.forwardY.dispose(),this.forwardZ.dispose(),this.upX.dispose(),this.upY.dispose(),this.upZ.dispose(),this}}onContextInit(tt=>{tt.listener=new Listener({context:tt})});onContextClose(tt=>{tt.listener.dispose()});getContext().transport;const Destination=getContext().destination;getContext().destination;getContext().listener;getContext().draw;getContext();const highPassFilter=new Filter(900,"highpass"),effectsBus=new Volume(-6);effectsBus.chain(highPassFilter,Destination);const reverb=new Reverb(3).connect(effectsBus),monoSynth=new MonoSynth({envelope:{attack:0,decay:.9,sustain:.2,release:.1}});monoSynth.oscillator.type="triangle2";monoSynth.volume.value=-6;monoSynth.chain(highPassFilter,Destination);const monoSynth2=new MonoSynth({envelope:{attack:.4,decay:.9,sustain:.7,release:.6}}).connect(reverb);monoSynth2.oscillator.type="triangle";monoSynth2.volume.value=-6;monoSynth2.chain(highPassFilter,Destination);function addOrganicVariant(){return Math.floor((Math.random()-.5)*20)}let toneStarted=!1;const playInspectSound=async(tt=0)=>{toneStarted||(await start(),toneStarted=!0);try{if(tt>2e3)monoSynth2.triggerAttackRelease(60,.3);else if(tt>1e3){let et=310;et+=addOrganicVariant(),monoSynth.triggerAttackRelease(et,.001)}}catch(et){console.warn(et)}};let lookAtAnimationTimer,departAnimationTimer;const departAnimationTimerLength=4e3,lookAtAnimationTimerLength=2e3,useAutoNavigate=tt=>{const et=useSelectedNode(),nt=useDataStore(Et=>Et.cameraFocusTrigger),rt=useControlStore(Et=>Et.isUserDragging),it=useControlStore(Et=>Et.isUserScrolling),ot=useControlStore(Et=>Et.setUserMovedCamera),at=useDataStore(Et=>Et.setNearbyNodeIds),st=useDataStore(Et=>Et.showSelectionGraph),lt=useDataStore(Et=>Et.data),ct=useDataStore(Et=>Et.graphStyle),{camera:ut}=useThree(),[ht,dt]=reactExports.useState(!1),[pt,mt]=reactExports.useState(!1),[gt,yt]=reactExports.useState(arriveDistance),bt=reactExports.useMemo(()=>{if(st)return new Vector3(0,0,0);const Et=lt==null?void 0:lt.nodes.find(At=>At.ref_id===(et==null?void 0:et.ref_id));return new Vector3((Et==null?void 0:Et.x)||0,(Et==null?void 0:Et.y)||0,(Et==null?void 0:Et.z)||0)},[st,et,lt]);reactExports.useEffect(()=>{var Et;st&&((Et=tt.current)==null||Et.setLookAt(selectionGraphCameraPosition.x,selectionGraphCameraPosition.y,selectionGraphCameraPosition.z,0,0,0,!1)),wt()},[st]),reactExports.useEffect(()=>{st?yt(selectionGraphDistance):(et==null?void 0:et.node_type)==="topic"?yt(topicArriveDistance):yt(arriveDistance)},[et,yt,st]),reactExports.useEffect(()=>{vt()},[nt]),reactExports.useEffect(()=>{(rt||it)&&(dt(!0),mt(!0))},[rt,it,dt,mt]),reactExports.useEffect(()=>{if(et)if(!st&&ct==="earth"&&(tt!=null&&tt.current)){const Et=tt.current.camera.position.distanceTo(new Vector3),At=getPointAbove(bt,-Et/2);tt.current.setLookAt(At.x,At.y,At.z,0,0,0,!0)}else lookAtAnimationTimer&&clearTimeout(lookAtAnimationTimer),lookAtAnimationTimer=setTimeout(()=>{mt(!0),clearTimeout(lookAtAnimationTimer)},lookAtAnimationTimerLength),wt();return()=>{lookAtAnimationTimer&&clearTimeout(lookAtAnimationTimer),departAnimationTimer&&clearTimeout(departAnimationTimer)}},[et]),useFrame(Et=>{tt.current&&et&&(ht||kt(bt,Et.camera),pt||St(bt,Et.camera))});const wt=()=>{if(et){const Et=ut.position.distanceTo(bt);playInspectSound(Et)}vt()},vt=()=>{dt(!1),mt(!1),ot(!1),departAnimationTimer&&clearTimeout(departAnimationTimer),departAnimationTimer=setTimeout(()=>{dt(!0),mt(!0)},departAnimationTimerLength)},kt=(Et,At)=>{if(At.position.distanceTo(Et){var Tt;(Tt=tt==null?void 0:tt.current)==null||Tt.setLookAt(At.position.x,At.position.y,At.position.z,Et.x,Et.y,Et.z,!0)};return null},autoRotateSpeed=1;let cameraAnimation=null;const useCameraAnimations=(tt,{enabled:et})=>{const nt=useSelectedNode();useAutoNavigate(tt);const rt=useControlStore(ct=>ct.isUserDragging),it=useDataStore(ct=>ct.disableCameraRotation),ot=useDataStore(ct=>ct.data),at=useDataStore(ct=>ct.graphRadius),st=useDataStore(ct=>ct.setNearbyNodeIds);reactExports.useEffect(()=>{et||(cameraAnimation==null||cameraAnimation.kill(),cameraAnimation=null)},[et]);const lt=reactExports.useCallback(()=>{cameraAnimation==null||cameraAnimation.kill();const ct={value:-244},ut=gsapWithCSS.to(ct,{duration:5,keyframes:{"0%":{value:10},"100%":{delay:2,ease:"Power4.easeIn",value:-200}},onComplete:()=>{cameraAnimation=null},onInterrupt(){ut.kill()},onUpdate:()=>{var dt;const{value:ht}=ct;if(tt.current){const pt=getNearbyNodeIds((ot==null?void 0:ot.nodes)||[],tt.current.camera);pt&&st(pt),(dt=tt.current)==null||dt.dolly(ht,!1)}}});ut.play(),cameraAnimation=ut},[]);return reactExports.useEffect(()=>{tt.current&&at&&(tt.current.maxDistance=tt.current.getDistanceToFitSphere(at+200)),et&<()},[at]),reactExports.useEffect(()=>{!nt&&tt.current&&tt.current.setLookAt(initialCameraPosition.x,initialCameraPosition.y,initialCameraPosition.z,0,0,0,!0)},[nt]),useFrame((ct,ut)=>{tt.current&&(!it&&!rt&&(tt.current.azimuthAngle+=autoRotateSpeed*ut*MathUtils.DEG2RAD),tt.current.update(ut))}),null},Controls=({disableAnimations:tt})=>{const et=reactExports.useRef(null),nt=useDataStore(dt=>dt.graphStyle),rt=useDataStore(dt=>dt.data),it=useDataStore(dt=>dt.setNearbyNodeIds),ot=useDataStore(dt=>dt.setDisableCameraRotation),[at]=reactExports.useState(.8),{camera:st}=useThree(),[lt,ct,ut,ht]=useControlStore(dt=>[dt.isUserDragging,dt.setIsUserDragging,dt.isUserScrolling,dt.isUserScrollingOnHtmlPanel]);return useCameraAnimations(et,{enabled:!tt&&!ut&&!lt}),reactExports.useEffect(()=>{et.current&&et.current.setLookAt(initialCameraPosition.x,initialCameraPosition.y,initialCameraPosition.z,0,0,0,!0)},[nt]),reactExports.useEffect(()=>{if(!lt){const dt=getNearbyNodeIds((rt==null?void 0:rt.nodes)||[],st);dt&&it(dt)}},[st,st.position,st.position.x,st.position.y,st.position.z,rt==null?void 0:rt.nodes,it,lt]),reactExports.useEffect(()=>{lt&&ot(!0)},[lt,ot]),jsxRuntimeExports.jsx(CameraControls,{ref:et,boundaryEnclosesCamera:!0,enabled:!ht,makeDefault:!0,maxDistance:12e3,minDistance:100,onEnd:()=>ct(!1),onStart:()=>ct(!0),smoothTime:at})},smoothness={metalness:.9,roughness:0},materialOptions={...smoothness},blurryMaterial=new MeshStandardMaterial(materialOptions),BlurryInstances=({hide:tt})=>{const et=useGraphData(),nt=useDataStore(it=>it.graphStyle),rt=reactExports.useMemo(()=>et.nodes.map((it,ot)=>{const at=!isMainTopic(it),st=getNodeColorByType(it.node_type||"",!0);return jsxRuntimeExports.jsx(Instance,{color:st,name:it.id,position:[it.x,it.y,it.z],scale:at?(it.scale||1)*.9:0,userData:it},`${it.ref_id||it.id}-instanced-node-${ot}-${nt}`)}),[nt,et]);return jsxRuntimeExports.jsx(Instances,{geometry:boxGeometry,material:blurryMaterial,visible:!tt,children:rt})},loader=new TextureLoader,noImageTexture=loader.load("noimage.jpeg"),noImageMaterial=new MeshStandardMaterial({...smoothness,map:noImageTexture}),transparentValue=.4,noImageTransparentMaterial=new MeshStandardMaterial({...smoothness,map:noImageTexture,transparent:!0,opacity:transparentValue}),cachedMaterials={},useMaterial=(tt,et)=>{const[nt,rt]=reactExports.useState(noImageTexture),[it,ot]=reactExports.useState(noImageMaterial);return reactExports.useEffect(()=>{const at=`${tt}${et&&"-transparent"}`;if(cachedMaterials[at]){rt(cachedMaterials[at].texture),ot(cachedMaterials[at].material);return}loader.load(tt,st=>{const lt=new MeshStandardMaterial({map:st,transparent:et,opacity:et?transparentValue:1,...smoothness});cachedMaterials[at]={texture:st,material:lt},rt(st),ot(lt)},void 0,()=>{rt(noImageTexture),ot(et?noImageTransparentMaterial:noImageMaterial)})},[tt,et]),reactExports.useEffect(()=>function(){nt.dispose(),it.dispose()},[nt,it]),it},Cube=reactExports.memo(({node:tt,hide:et,animated:nt})=>{const rt=reactExports.useRef(null),[it]=reactExports.useState(boxGeometry),ot=useSelectedNode(),at=useDataStore(ut=>ut.showSelectionGraph),st=!!ot&&tt.ref_id===ot.ref_id,lt=useMaterial(tt.image_url||"noimage.jpeg",!1);useFrame((ut,ht)=>{nt&&rt.current&&(rt.current.position.set(tt.x,tt.y,tt.z),st&&(rt.current.rotation.y+=ht*1,rt.current.rotation.x-=ht*.6))}),reactExports.useEffect(()=>function(){it.dispose()},[it]);const ct=reactExports.useMemo(()=>at&&st?20:st?(tt.scale||1)*1.2:tt.scale,[tt,st,at]);return jsxRuntimeExports.jsx(Select,{enabled:!!st,children:jsxRuntimeExports.jsx("mesh",{ref:rt,geometry:boxGeometry,material:lt,name:tt.id,position:[tt.x,tt.y,tt.z],scale:ct,userData:tt,visible:!et})})});Cube.displayName="Cube";const getPercentageFromWeight=tt=>((tt||0)*100).toFixed(),PathwayBadge=({color:tt,position:et,relativeIds:nt,userData:rt})=>{const it=useDataStore(dt=>dt.setSelectedNode),ot=useDataStore(dt=>dt.setHoveredNode),at=useSelectedNode(),st=useDataStore(dt=>dt.hoveredNode),lt=(rt==null?void 0:rt.ref_id)===(at==null?void 0:at.ref_id),ct=reactExports.useRef(null);reactExports.useEffect(()=>function(){ct.current&&ct.current.clear()},[ct]);const ut=reactExports.useMemo(()=>(st==null?void 0:st.ref_id)===(rt==null?void 0:rt.ref_id),[st==null?void 0:st.ref_id,rt==null?void 0:rt.ref_id]),ht=getPercentageFromWeight(rt.weight);return jsxRuntimeExports.jsx("group",{ref:ct,position:et,children:jsxRuntimeExports.jsx(Html$1,{center:!0,sprite:!0,children:jsxRuntimeExports.jsxs(Tag,{color:tt,fontColor:colors.white,fontSize:18,justify:"center",onClick:dt=>{dt.stopPropagation(),rt&&it(rt)},onPointerOut:dt=>{dt.stopPropagation(),ot(null)},onPointerOver:dt=>{dt.stopPropagation(),ot(rt||null)},scale:ut?1.05:1,selected:lt,size:56,children:[`${ht}%`,jsxRuntimeExports.jsx(BadgeIconWrapper,{children:jsxRuntimeExports.jsxs(Counter,{color:tt,children:[jsxRuntimeExports.jsx(MdHub,{style:{marginRight:4}}),nt.length]})})]})})})},variableVector3=new Vector3,NodeBadge=({position:tt,userData:et,color:nt,relativeIds:rt})=>{const it=reactExports.useRef(null),ot=useDataStore(dt=>dt.setSelectedNode),at=useDataStore(dt=>dt.setHoveredNode),st=useDataStore(dt=>dt.hoveredNode),lt=useDataStore(dt=>dt.showSelectionGraph),ct=((et==null?void 0:et.node_type)||"")==="topic";useFrame(()=>{if(lt&&it.current){const dt=variableVector3.set((et==null?void 0:et.x)||0,(et==null?void 0:et.y)||0,(et==null?void 0:et.z)||0);it.current.position.copy(dt)}}),reactExports.useEffect(()=>function(){it.current&&it.current.clear()},[it]);const ut=reactExports.useMemo(()=>(st==null?void 0:st.ref_id)===(et==null?void 0:et.ref_id),[st==null?void 0:st.ref_id,et==null?void 0:et.ref_id]),ht=getPercentageFromWeight(et.weight);return jsxRuntimeExports.jsx("group",{ref:it,position:tt,children:jsxRuntimeExports.jsx(Html$1,{center:!0,sprite:!0,children:jsxRuntimeExports.jsxs(Tag,{color:nt,fontColor:colors.white,fontSize:ct?14:20,justify:"center",onClick:dt=>{dt.stopPropagation(),et&&ot(et)},onPointerOut:dt=>{dt.stopPropagation(),at(null)},onPointerOver:dt=>{dt.stopPropagation(),at(et||null)},scale:ut?1.05:1,selected:!1,size:ct?100:52,children:[ct?et==null?void 0:et.label:jsxRuntimeExports.jsx(Image$1,{size:46,src:(et==null?void 0:et.image_url)||"noimage.jpeg"}),jsxRuntimeExports.jsxs(BadgeIconWrapper,{children:[jsxRuntimeExports.jsxs(Counter,{color:nt,children:[jsxRuntimeExports.jsx(MdHub,{style:{marginRight:4}}),rt.length]}),jsxRuntimeExports.jsxs(Percentage,{color:nt,children:[ht,"%"]})]})]})})})},RelevanceBadges=reactExports.memo(()=>{const{badges:tt}=usePathway(),et=useDataStore(lt=>lt.data),nt=useSelectedNode(),rt=useDataStore(lt=>lt.showSelectionGraph),it=useDataStore(lt=>lt.selectionGraphData),ot=useDataStore(lt=>lt.selectedNodeRelativeIds),at=reactExports.useMemo(()=>tt.map(lt=>{var ct;if(((ct=lt.userData)==null?void 0:ct.ref_id)!==(nt==null?void 0:nt.ref_id)){const ut=((et==null?void 0:et.nodes)||[]).filter(ht=>ht.ref_id&&nodesAreRelatives(ht,lt.userData)).map(ht=>(ht==null?void 0:ht.ref_id)||"")||[];return jsxRuntimeExports.jsx(PathwayBadge,{color:colors.transparentWhite,position:lt.position,relativeIds:ut,userData:lt.userData},`relevance-badge-${lt.userData.ref_id}`)}return null}),[tt,nt,et==null?void 0:et.nodes]),st=reactExports.useMemo(()=>(rt?it.nodes:(et==null?void 0:et.nodes)||[]).filter(ut=>ot.includes((ut==null?void 0:ut.ref_id)||"")||(nt==null?void 0:nt.ref_id)===(ut==null?void 0:ut.ref_id)).map(ut=>{const ht=getNodeColorByType(ut.node_type||"",!0),dt=new Vector3((ut==null?void 0:ut.x)||0,(ut==null?void 0:ut.y)||0,(ut==null?void 0:ut.z)||0),pt=((et==null?void 0:et.nodes)||[]).filter(mt=>mt.ref_id&&nodesAreRelatives(mt,ut)).map(mt=>(mt==null?void 0:mt.ref_id)||"")||[];return jsxRuntimeExports.jsx(NodeBadge,{color:ht,position:dt,relativeIds:pt,userData:ut},`node-badge-${ut.ref_id}`)}),[ot,et==null?void 0:et.nodes,rt,it,nt]);return jsxRuntimeExports.jsx(reactExports.Fragment,{children:st.length?st:at},"node-badges")});RelevanceBadges.displayName="RelevanceBadges";const Tag=styled$4(Flex)` opacity: 0.9; text-align: center; width: ${tt=>`${tt.size}px`}; @@ -6757,9 +6757,9 @@ void main() { width: ${({size:tt=45})=>tt}px; height: ${({size:tt=45})=>tt}px; border-radius: ${({rounded:tt})=>tt?"50%":"2px"}; -`;function formatDescription(tt){return tt?tt.replace(/[[]{2}/g,"").replace(/[\]]{2}/g,""):""}var loadjs_umd={exports:{}};(function(tt,et){(function(nt,rt){tt.exports=rt()})(commonjsGlobal,function(){var nt=function(){},rt={},it={},ot={};function at(dt,pt){dt=dt.push?dt:[dt];var mt=[],gt=dt.length,yt=gt,bt,wt,vt,kt;for(bt=function(St,Tt){Tt.length&&mt.push(St),yt--,yt||pt(mt)};gt--;){if(wt=dt[gt],vt=it[wt],vt){bt(wt,vt);continue}kt=ot[wt]=ot[wt]||[],kt.push(bt)}}function st(dt,pt){if(dt){var mt=ot[dt];if(it[dt]=pt,!!mt)for(;mt.length;)mt[0](dt,pt),mt.splice(0,1)}}function lt(dt,pt){dt.call&&(dt={success:dt}),pt.length?(dt.error||nt)(pt):(dt.success||nt)(dt)}function ct(dt,pt,mt,gt){var yt=document,bt=mt.async,wt=(mt.numRetries||0)+1,vt=mt.before||nt,kt=dt.replace(/[\?|#].*$/,""),St=dt.replace(/^(css|img)!/,""),Tt,At;gt=gt||0,/(^css!|\.css$)/.test(kt)?(At=yt.createElement("link"),At.rel="stylesheet",At.href=St,Tt="hideFocus"in At,Tt&&At.relList&&(Tt=0,At.rel="preload",At.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(kt)?(At=yt.createElement("img"),At.src=St):(At=yt.createElement("script"),At.src=dt,At.async=bt===void 0?!0:bt),At.onload=At.onerror=At.onbeforeload=function(Et){var Mt=Et.type[0];if(Tt)try{At.sheet.cssText.length||(Mt="e")}catch(Lt){Lt.code!=18&&(Mt="e")}if(Mt=="e"){if(gt+=1,gt{const[nt,rt]=reactExports.useState(!0);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Flex,{direction:"row",children:jsxRuntimeExports.jsx(Flex,{align:"flex-start",pb:12,children:jsxRuntimeExports.jsxs(Text$3,{children:["Tweet by @",tt]})})}),jsxRuntimeExports.jsxs(Flex,{direction:"column",py:16,children:[nt&&jsxRuntimeExports.jsx(Flex,{align:"center",direction:"row",justify:"center",p:10,children:jsxRuntimeExports.jsx(ClipLoader$2,{color:colors.white})}),et&&jsxRuntimeExports.jsx(Tweet,{onLoad:()=>rt(!1),renderError:()=>jsxRuntimeExports.jsx(Error$1,{}),tweetId:et})]})]})},Error$1=()=>jsxRuntimeExports.jsx(Flex,{children:"Error occurred"}),Wrapper$j=styled$4(Flex)(({theme:tt})=>({position:"absolute",top:"20px",right:"20px",width:"300px",pointerEvents:"none",background:colors.dashboardHeader,boxShadow:"0px 1px 6px rgba(0, 0, 0, 0.1)",color:colors.primaryText1,zIndex:100,transition:"opacity 0.6s",padding:tt.spacing(2,3),[tt.breakpoints.down("sm")]:{padding:tt.spacing(1,1.5)}})),Divider$1=styled$4(Flex)` +`;function formatDescription(tt){return tt?tt.replace(/[[]{2}/g,"").replace(/[\]]{2}/g,""):""}var loadjs_umd={exports:{}};(function(tt,et){(function(nt,rt){tt.exports=rt()})(commonjsGlobal,function(){var nt=function(){},rt={},it={},ot={};function at(dt,pt){dt=dt.push?dt:[dt];var mt=[],gt=dt.length,yt=gt,bt,wt,vt,kt;for(bt=function(St,Et){Et.length&&mt.push(St),yt--,yt||pt(mt)};gt--;){if(wt=dt[gt],vt=it[wt],vt){bt(wt,vt);continue}kt=ot[wt]=ot[wt]||[],kt.push(bt)}}function st(dt,pt){if(dt){var mt=ot[dt];if(it[dt]=pt,!!mt)for(;mt.length;)mt[0](dt,pt),mt.splice(0,1)}}function lt(dt,pt){dt.call&&(dt={success:dt}),pt.length?(dt.error||nt)(pt):(dt.success||nt)(dt)}function ct(dt,pt,mt,gt){var yt=document,bt=mt.async,wt=(mt.numRetries||0)+1,vt=mt.before||nt,kt=dt.replace(/[\?|#].*$/,""),St=dt.replace(/^(css|img)!/,""),Et,At;gt=gt||0,/(^css!|\.css$)/.test(kt)?(At=yt.createElement("link"),At.rel="stylesheet",At.href=St,Et="hideFocus"in At,Et&&At.relList&&(Et=0,At.rel="preload",At.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(kt)?(At=yt.createElement("img"),At.src=St):(At=yt.createElement("script"),At.src=dt,At.async=bt===void 0?!0:bt),At.onload=At.onerror=At.onbeforeload=function(Tt){var Mt=Tt.type[0];if(Et)try{At.sheet.cssText.length||(Mt="e")}catch(Lt){Lt.code!=18&&(Mt="e")}if(Mt=="e"){if(gt+=1,gt{const[nt,rt]=reactExports.useState(!0);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Flex,{direction:"row",children:jsxRuntimeExports.jsx(Flex,{align:"flex-start",pb:12,children:jsxRuntimeExports.jsxs(Text$3,{children:["Tweet by @",tt]})})}),jsxRuntimeExports.jsxs(Flex,{direction:"column",py:16,children:[nt&&jsxRuntimeExports.jsx(Flex,{align:"center",direction:"row",justify:"center",p:10,children:jsxRuntimeExports.jsx(ClipLoader$2,{color:colors.white})}),et&&jsxRuntimeExports.jsx(Tweet,{onLoad:()=>rt(!1),renderError:()=>jsxRuntimeExports.jsx(Error$1,{}),tweetId:et})]})]})},Error$1=()=>jsxRuntimeExports.jsx(Flex,{children:"Error occurred"}),Wrapper$j=styled$4(Flex)(({theme:tt})=>({position:"absolute",top:"20px",right:"20px",width:"300px",pointerEvents:"none",background:colors.dashboardHeader,boxShadow:"0px 1px 6px rgba(0, 0, 0, 0.1)",color:colors.primaryText1,zIndex:100,transition:"opacity 0.6s",padding:tt.spacing(2,3),[tt.breakpoints.down("sm")]:{padding:tt.spacing(1,1.5)}})),Divider$1=styled$4(Flex)` width: 22.5%; -`,Tooltip$1=({node:tt})=>{if(!tt)return null;const{node_type:et,show_title:nt,episode_title:rt,description:it,label:ot,text:at,timestamp:st,type:lt,tweet_id:ct,twitter_handle:ut}=tt,ht=tt.guests;let dt=!1,pt=!1;ht&&(ht.length&&ht[0]!==null&&(dt=!0),typeof ht[0]=="object"&&(pt=!0));let mt=tt.image_url;if(lt==="twitter_space"&&(mt="twitter_placeholder.png"),mt==null)switch(et){case"guest":mt="person_placeholder2.png";break;default:mt="noimage.jpeg"}return jsxRuntimeExports.jsx(Wrapper$j,{borderRadius:8,px:24,py:16,children:et==="tweet"?jsxRuntimeExports.jsx(TwitData$1,{tweetId:ct,twitterHandle:ut}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Flex,{direction:"row",children:[jsxRuntimeExports.jsx(Divider$1,{}),jsxRuntimeExports.jsx(Flex,{align:"flex-start",pb:12,children:jsxRuntimeExports.jsx(Text$3,{children:et==null?void 0:et.toUpperCase()})})]}),jsxRuntimeExports.jsxs(Flex,{direction:"row",children:[jsxRuntimeExports.jsx(Flex,{pr:12,children:jsxRuntimeExports.jsx(Avatar$1,{src:mt,type:"person"})}),jsxRuntimeExports.jsxs("div",{children:[lt==="guest"?jsxRuntimeExports.jsxs(Flex,{direction:"column",children:[jsxRuntimeExports.jsx(Text$3,{children:ot}),at&&jsxRuntimeExports.jsx(Flex,{pt:4,children:jsxRuntimeExports.jsxs(Text$3,{color:"primaryText1",kind:"tiny",children:["@",at]})})]}):jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"tiny",children:nt}),jsxRuntimeExports.jsxs(Flex,{pt:4,children:[et==="clip"||et==="episode"&&jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",children:"Episode"}),et==="clip"?jsxRuntimeExports.jsx(Text$3,{as:"div",kind:"regularBold",children:formatDescription(it)}):jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"tiny",children:rt})]}),jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"tiny",children:st}),jsxRuntimeExports.jsxs(Flex,{pt:12,children:[et==="clip"&&jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",children:"Episode"}),jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"tiny",children:et==="clip"?rt:formatDescription(it)})]}),dt&&jsxRuntimeExports.jsxs(Flex,{pt:12,children:[jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",children:"People"}),jsxRuntimeExports.jsx(Flex,{pt:4,children:jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"tiny",children:pt?ht.map(gt=>gt.name?gt.name:`@${gt.twitter_handle}`).join(", "):ht==null?void 0:ht.join(", ")})})]})]})]})]})})},Overlay=()=>{const[tt,et,nt,rt]=useDataStore(ot=>[ot.selectedNode,ot.hoveredNode,ot.cameraFocusTrigger,ot.setCameraFocusTrigger]),it=useControlStore(ot=>ot.userMovedCamera);return reactExports.useEffect(()=>{document.body.style.cursor=et?"pointer":"auto"},[et]),jsxRuntimeExports.jsxs(OverlayWrap,{children:[!!tt&&it&&jsxRuntimeExports.jsx(Button,{background:"bluePressState",kind:"small",onClick:()=>rt(!nt),children:"Re-center map"}),et&&jsxRuntimeExports.jsx("div",{id:"tooltip-portal",children:jsxRuntimeExports.jsx(Tooltip$1,{node:et})})]})},OverlayWrap=styled$4("div")(({theme:tt})=>({position:"absolute",zIndex:1,top:0,left:0,userSelect:"none",pointerEvents:"none",display:"flex",justifyContent:"flex-end",alignItems:"flex-start",height:"100%",width:"100%",padding:"16px",[tt.breakpoints.down("sm")]:{top:50}})),Fallback=()=>jsxRuntimeExports.jsx(Html$1,{children:jsxRuntimeExports.jsx(Loader$1,{})}),Content$1=()=>{const{universeColor:tt}=useControls("universe",{universeColor:colors.black}),et=useSelectedNode(),nt=reactExports.useMemo(()=>et!=null&&et.node_type?getNodeColorByType(et.node_type):outlineEffectColor,[et]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("color",{args:[tt],attach:"background"}),jsxRuntimeExports.jsx(Lights,{}),jsxRuntimeExports.jsx(Controls,{}),jsxRuntimeExports.jsxs(Selection,{children:[jsxRuntimeExports.jsxs(EffectComposer,{autoClear:!1,multisampling:8,children:[jsxRuntimeExports.jsx(Vignette,{darkness:.7,eskil:!1,offset:.05}),jsxRuntimeExports.jsx(Bloom,{luminanceThreshold:1,mipmapBlur:!0,resolutionX:Resolution.AUTO_SIZE,resolutionY:Resolution.AUTO_SIZE}),jsxRuntimeExports.jsx(Outline,{blendFunction:BlendFunction.SCREEN,blur:!0,edgeStrength:4,hiddenEdgeColor:nt,visibleEdgeColor:nt})]}),jsxRuntimeExports.jsx(Graph,{})]})]})};let wheelEventTimeout=null;const cameraProps={aspect:window.innerWidth/window.innerHeight,far:3e4,near:1,position:[initialCameraPosition.x,initialCameraPosition.y,initialCameraPosition.z]},_Universe=()=>{const[tt,et,nt]=[useControlStore(ot=>ot.setIsUserScrollingOnHtmlPanel),useControlStore(ot=>ot.setIsUserScrolling),useControlStore(ot=>ot.setUserMovedCamera)],rt=reactExports.useCallback(ot=>{var lt;const{target:at}=ot,{offsetParent:st}=at;wheelEventTimeout&&clearTimeout(wheelEventTimeout),(lt=st==null?void 0:st.classList)!=null&<.contains("html-panel")&&st.clientHeight{et(!1),tt(!1)},200)},[et,tt,nt]),it=reactExports.useCallback(ot=>addToGlobalForE2e(ot,"threeState"),[]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Overlay,{}),jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:null,children:jsxRuntimeExports.jsxs(Canvas$1,{camera:cameraProps,id:"universe-canvas",onCreated:it,onWheel:rt,children:[isDevelopment&&jsxRuntimeExports.jsx(Perf,{position:"top-right"}),jsxRuntimeExports.jsxs(reactExports.Suspense,{fallback:jsxRuntimeExports.jsx(Fallback,{}),children:[jsxRuntimeExports.jsx(Preload,{}),jsxRuntimeExports.jsx(AdaptiveDpr,{}),jsxRuntimeExports.jsx(AdaptiveEvents,{}),jsxRuntimeExports.jsx(Content$1,{})]})]})})]})},Universe=reactExports.memo(_Universe),defaultData$3={askedQuestions:null,askedQuestionsAnswers:null,hasQuestionInProgress:!1,hasTeachingInProgress:!1,teachMeAnswer:null},useTeachStore=react(tt=>({...defaultData$3,setAskedQuestion:et=>tt(nt=>({askedQuestions:[...nt.askedQuestions||[],et],hasQuestionInProgress:!0})),setAskedQuestionAnswer:et=>tt(nt=>({askedQuestionsAnswers:[...nt.askedQuestionsAnswers||[],et],hasQuestionInProgress:!1})),setHasQuestionInProgress:et=>tt({hasQuestionInProgress:et}),setHasTeachingInProgress:et=>tt({hasTeachingInProgress:et}),setTeachMeAnswer:et=>tt({hasTeachingInProgress:!1,teachMeAnswer:et})})),version="0.1.66",StyledTableCell=styled$4(TableCell$1)` +`,Tooltip$1=({node:tt})=>{if(!tt)return null;const{node_type:et,show_title:nt,episode_title:rt,description:it,label:ot,text:at,timestamp:st,type:lt,tweet_id:ct,twitter_handle:ut}=tt,ht=tt.guests;let dt=!1,pt=!1;ht&&(ht.length&&ht[0]!==null&&(dt=!0),typeof ht[0]=="object"&&(pt=!0));let mt=tt.image_url;if(lt==="twitter_space"&&(mt="twitter_placeholder.png"),mt==null)switch(et){case"guest":mt="person_placeholder2.png";break;default:mt="noimage.jpeg"}return jsxRuntimeExports.jsx(Wrapper$j,{borderRadius:8,px:24,py:16,children:et==="tweet"?jsxRuntimeExports.jsx(TwitData$1,{tweetId:ct,twitterHandle:ut}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Flex,{direction:"row",children:[jsxRuntimeExports.jsx(Divider$1,{}),jsxRuntimeExports.jsx(Flex,{align:"flex-start",pb:12,children:jsxRuntimeExports.jsx(Text$3,{children:et==null?void 0:et.toUpperCase()})})]}),jsxRuntimeExports.jsxs(Flex,{direction:"row",children:[jsxRuntimeExports.jsx(Flex,{pr:12,children:jsxRuntimeExports.jsx(Avatar$1,{src:mt,type:"person"})}),jsxRuntimeExports.jsxs("div",{children:[lt==="guest"?jsxRuntimeExports.jsxs(Flex,{direction:"column",children:[jsxRuntimeExports.jsx(Text$3,{children:ot}),at&&jsxRuntimeExports.jsx(Flex,{pt:4,children:jsxRuntimeExports.jsxs(Text$3,{color:"primaryText1",kind:"tiny",children:["@",at]})})]}):jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"tiny",children:nt}),jsxRuntimeExports.jsxs(Flex,{pt:4,children:[et==="clip"||et==="episode"&&jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",children:"Episode"}),et==="clip"?jsxRuntimeExports.jsx(Text$3,{as:"div",kind:"regularBold",children:formatDescription(it)}):jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"tiny",children:rt})]}),jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"tiny",children:st}),jsxRuntimeExports.jsxs(Flex,{pt:12,children:[et==="clip"&&jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",children:"Episode"}),jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"tiny",children:et==="clip"?rt:formatDescription(it)})]}),dt&&jsxRuntimeExports.jsxs(Flex,{pt:12,children:[jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",children:"People"}),jsxRuntimeExports.jsx(Flex,{pt:4,children:jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"tiny",children:pt?ht.map(gt=>gt.name?gt.name:`@${gt.twitter_handle}`).join(", "):ht==null?void 0:ht.join(", ")})})]})]})]})]})})},Overlay=()=>{const[tt,et,nt,rt]=useDataStore(ot=>[ot.selectedNode,ot.hoveredNode,ot.cameraFocusTrigger,ot.setCameraFocusTrigger]),it=useControlStore(ot=>ot.userMovedCamera);return reactExports.useEffect(()=>{document.body.style.cursor=et?"pointer":"auto"},[et]),jsxRuntimeExports.jsxs(OverlayWrap,{children:[!!tt&&it&&jsxRuntimeExports.jsx(Button,{background:"bluePressState",kind:"small",onClick:()=>rt(!nt),children:"Re-center map"}),et&&jsxRuntimeExports.jsx("div",{id:"tooltip-portal",children:jsxRuntimeExports.jsx(Tooltip$1,{node:et})})]})},OverlayWrap=styled$4("div")(({theme:tt})=>({position:"absolute",zIndex:1,top:0,left:0,userSelect:"none",pointerEvents:"none",display:"flex",justifyContent:"flex-end",alignItems:"flex-start",height:"100%",width:"100%",padding:"16px",[tt.breakpoints.down("sm")]:{top:50}})),Fallback=()=>jsxRuntimeExports.jsx(Html$1,{children:jsxRuntimeExports.jsx(Loader$1,{})}),Content$1=()=>{const{universeColor:tt}=useControls("universe",{universeColor:colors.black}),et=useSelectedNode(),nt=reactExports.useMemo(()=>et!=null&&et.node_type?getNodeColorByType(et.node_type):outlineEffectColor,[et]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("color",{args:[tt],attach:"background"}),jsxRuntimeExports.jsx(Lights,{}),jsxRuntimeExports.jsx(Controls,{}),jsxRuntimeExports.jsxs(Selection,{children:[jsxRuntimeExports.jsxs(EffectComposer,{autoClear:!1,multisampling:8,children:[jsxRuntimeExports.jsx(Vignette,{darkness:.7,eskil:!1,offset:.05}),jsxRuntimeExports.jsx(Bloom,{luminanceThreshold:1,mipmapBlur:!0,resolutionX:Resolution.AUTO_SIZE,resolutionY:Resolution.AUTO_SIZE}),jsxRuntimeExports.jsx(Outline,{blendFunction:BlendFunction.SCREEN,blur:!0,edgeStrength:4,hiddenEdgeColor:nt,visibleEdgeColor:nt})]}),jsxRuntimeExports.jsx(Graph,{})]})]})};let wheelEventTimeout=null;const cameraProps={aspect:window.innerWidth/window.innerHeight,far:3e4,near:1,position:[initialCameraPosition.x,initialCameraPosition.y,initialCameraPosition.z]},_Universe=()=>{const[tt,et,nt]=[useControlStore(ot=>ot.setIsUserScrollingOnHtmlPanel),useControlStore(ot=>ot.setIsUserScrolling),useControlStore(ot=>ot.setUserMovedCamera)],rt=reactExports.useCallback(ot=>{var lt;const{target:at}=ot,{offsetParent:st}=at;wheelEventTimeout&&clearTimeout(wheelEventTimeout),(lt=st==null?void 0:st.classList)!=null&<.contains("html-panel")&&st.clientHeight{et(!1),tt(!1)},200)},[et,tt,nt]),it=reactExports.useCallback(ot=>addToGlobalForE2e(ot,"threeState"),[]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Overlay,{}),jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:null,children:jsxRuntimeExports.jsxs(Canvas$1,{camera:cameraProps,id:"universe-canvas",onCreated:it,onWheel:rt,children:[isDevelopment&&jsxRuntimeExports.jsx(Perf,{position:"top-right"}),jsxRuntimeExports.jsxs(reactExports.Suspense,{fallback:jsxRuntimeExports.jsx(Fallback,{}),children:[jsxRuntimeExports.jsx(Preload,{}),jsxRuntimeExports.jsx(AdaptiveDpr,{}),jsxRuntimeExports.jsx(AdaptiveEvents,{}),jsxRuntimeExports.jsx(Content$1,{})]})]})})]})},Universe=reactExports.memo(_Universe),defaultData$3={askedQuestions:null,askedQuestionsAnswers:null,hasQuestionInProgress:!1,hasTeachingInProgress:!1,teachMeAnswer:null},useTeachStore=react(tt=>({...defaultData$3,setAskedQuestion:et=>tt(nt=>({askedQuestions:[...nt.askedQuestions||[],et],hasQuestionInProgress:!0})),setAskedQuestionAnswer:et=>tt(nt=>({askedQuestionsAnswers:[...nt.askedQuestionsAnswers||[],et],hasQuestionInProgress:!1})),setHasQuestionInProgress:et=>tt({hasQuestionInProgress:et}),setHasTeachingInProgress:et=>tt({hasTeachingInProgress:et}),setTeachMeAnswer:et=>tt({hasTeachingInProgress:!1,teachMeAnswer:et})})),version="0.1.67",StyledTableCell=styled$4(TableCell$1)` && { color: ${colors.white}; border: none; @@ -7023,9 +7023,9 @@ void main() { * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */lodash.exports;(function(tt,et){(function(){var nt,rt="4.17.21",it=200,ot="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",at="Expected a function",st="Invalid `variable` option passed into `_.template`",lt="__lodash_hash_undefined__",ct=500,ut="__lodash_placeholder__",ht=1,dt=2,pt=4,mt=1,gt=2,yt=1,bt=2,wt=4,vt=8,kt=16,St=32,Tt=64,At=128,Et=256,Mt=512,Lt=30,jt="...",Rt=800,$t=16,xt=1,It=2,Ot=3,zt=1/0,Ut=9007199254740991,Wt=17976931348623157e292,Ft=0/0,Nt=4294967295,Ct=Nt-1,Ht=Nt>>>1,Jt=[["ary",At],["bind",yt],["bindKey",bt],["curry",vt],["curryRight",kt],["flip",Mt],["partial",St],["partialRight",Tt],["rearg",Et]],nn="[object Arguments]",Yt="[object Array]",fn="[object AsyncFunction]",cn="[object Boolean]",_n="[object Date]",En="[object DOMException]",an="[object Error]",en="[object Function]",Tn="[object GeneratorFunction]",Rn="[object Map]",An="[object Number]",yn="[object Null]",kn="[object Object]",dn="[object Promise]",gn="[object Proxy]",Cn="[object RegExp]",$n="[object Set]",un="[object String]",rn="[object Symbol]",Sn="[object Undefined]",Mn="[object WeakMap]",Nn="[object WeakSet]",hn="[object ArrayBuffer]",Qt="[object DataView]",Zt="[object Float32Array]",wn="[object Float64Array]",On="[object Int8Array]",jn="[object Int16Array]",Un="[object Int32Array]",tr="[object Uint8Array]",qn="[object Uint8ClampedArray]",Xn="[object Uint16Array]",Wn="[object Uint32Array]",Zn=/\b__p \+= '';/g,Vn=/\b(__p \+=) '' \+/g,pr=/(__e\(.*?\)|\b__t\)) \+\n'';/g,fr=/&(?:amp|lt|gt|quot|#39);/g,Er=/[&<>"']/g,oo=RegExp(fr.source),Dr=RegExp(Er.source),Rr=/<%-([\s\S]+?)%>/g,Xr=/<%([\s\S]+?)%>/g,Vr=/<%=([\s\S]+?)%>/g,Fr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,so=/^\w*$/,qr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Or=/[\\^$.*+?()[\]{}|]/g,wo=RegExp(Or.source),vn=/^\s+/,Pn=/\s/,sn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Xt=/\{\n\/\* \[wrapped with (.+)\] \*/,xn=/,? & /,Dn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Fn=/[()=,{}\[\]\/\s]/,Kn=/\\(\\)?/g,nr=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,lr=/\w*$/,cr=/^[-+]0x[0-9a-f]+$/i,Hr=/^0b[01]+$/i,_r=/^\[object .+?Constructor\]$/,jr=/^0o[0-7]+$/i,Gr=/^(?:0|[1-9]\d*)$/,eo=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qr=/($^)/,_i=/['\n\r\u2028\u2029\\]/g,wr="\\ud800-\\udfff",$r="\\u0300-\\u036f",Wr="\\ufe20-\\ufe2f",Br="\\u20d0-\\u20ff",Pr=$r+Wr+Br,Lr="\\u2700-\\u27bf",Nr="a-z\\xdf-\\xf6\\xf8-\\xff",Cr="\\xac\\xb1\\xd7\\xf7",er="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",ir="\\u2000-\\u206f",Sr=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",dr="A-Z\\xc0-\\xd6\\xd8-\\xde",br="\\ufe0e\\ufe0f",Ir=Cr+er+ir+Sr,ro="['’]",ao="["+wr+"]",mo="["+Ir+"]",fo="["+Pr+"]",Gn="\\d+",bo="["+Lr+"]",jo="["+Nr+"]",go="[^"+wr+Ir+Gn+Lr+Nr+dr+"]",vo="\\ud83c[\\udffb-\\udfff]",Ao="(?:"+fo+"|"+vo+")",Mo="[^"+wr+"]",Vo="(?:\\ud83c[\\udde6-\\uddff]){2}",$o="[\\ud800-\\udbff][\\udc00-\\udfff]",Uo="["+dr+"]",Go="\\u200d",Xo="(?:"+jo+"|"+go+")",ga="(?:"+Uo+"|"+go+")",na="(?:"+ro+"(?:d|ll|m|re|s|t|ve))?",$a="(?:"+ro+"(?:D|LL|M|RE|S|T|VE))?",Zo=Ao+"?",mu="["+br+"]?",eu="(?:"+Go+"(?:"+[Mo,Vo,$o].join("|")+")"+mu+Zo+")*",No="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Mp="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",tu=mu+Zo+eu,op="(?:"+[bo,Vo,$o].join("|")+")"+tu,Rp="(?:"+[Mo+fo+"?",fo,Vo,$o,ao].join("|")+")",mm=RegExp(ro,"g"),es=RegExp(fo,"g"),nu=RegExp(vo+"(?="+vo+")|"+Rp+tu,"g"),gm=RegExp([Uo+"?"+jo+"+"+na+"(?="+[mo,Uo,"$"].join("|")+")",ga+"+"+$a+"(?="+[mo,Uo+Xo,"$"].join("|")+")",Uo+"?"+Xo+"+"+na,Uo+"+"+$a,Mp,No,Gn,op].join("|"),"g"),Us=RegExp("["+Go+wr+Pr+br+"]"),Bp=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Iu=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Xs=-1,Ko={};Ko[Zt]=Ko[wn]=Ko[On]=Ko[jn]=Ko[Un]=Ko[tr]=Ko[qn]=Ko[Xn]=Ko[Wn]=!0,Ko[nn]=Ko[Yt]=Ko[hn]=Ko[cn]=Ko[Qt]=Ko[_n]=Ko[an]=Ko[en]=Ko[Rn]=Ko[An]=Ko[kn]=Ko[Cn]=Ko[$n]=Ko[un]=Ko[Mn]=!1;var qo={};qo[nn]=qo[Yt]=qo[hn]=qo[Qt]=qo[cn]=qo[_n]=qo[Zt]=qo[wn]=qo[On]=qo[jn]=qo[Un]=qo[Rn]=qo[An]=qo[kn]=qo[Cn]=qo[$n]=qo[un]=qo[rn]=qo[tr]=qo[qn]=qo[Xn]=qo[Wn]=!0,qo[an]=qo[en]=qo[Mn]=!1;var Zs={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},zs={"&":"&","<":"<",">":">",'"':""","'":"'"},ru={"&":"&","<":"<",">":">",""":'"',"'":"'"},Al={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Op=parseFloat,jp=parseInt,Ws=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,Hu=typeof self=="object"&&self&&self.Object===Object&&self,ns=Ws||Hu||Function("return this")(),gu=et&&!et.nodeType&&et,rs=gu&&!0&&tt&&!tt.nodeType&&tt,bs=rs&&rs.exports===gu,Au=bs&&Ws.process,os=function(){try{var Qn=rs&&rs.require&&rs.require("util").types;return Qn||Au&&Au.binding&&Au.binding("util")}catch{}}(),yu=os&&os.isArrayBuffer,Gu=os&&os.isDate,Dp=os&&os.isMap,Dl=os&&os.isRegExp,cs=os&&os.isSet,ws=os&&os.isTypedArray;function Do(Qn,xr,gr){switch(gr.length){case 0:return Qn.call(xr);case 1:return Qn.call(xr,gr[0]);case 2:return Qn.call(xr,gr[0],gr[1]);case 3:return Qn.call(xr,gr[0],gr[1],gr[2])}return Qn.apply(xr,gr)}function vs(Qn,xr,gr,no){for(var Eo=-1,Co=Qn==null?0:Qn.length;++Eo-1}function ap(Qn,xr,gr){for(var no=-1,Eo=Qn==null?0:Qn.length;++no-1;);return gr}function cp(Qn,xr){for(var gr=Qn.length;gr--&&Fl(xr,Qn[gr],0)>-1;);return gr}function Wl(Qn,xr){for(var gr=Qn.length,no=0;gr--;)Qn[gr]===xr&&++no;return no}var Ly=Ys(Zs),Ny=Ys(zs);function Xm(Qn){return"\\"+Al[Qn]}function Zm(Qn,xr){return Qn==null?nt:Qn[xr]}function qu(Qn){return Us.test(Qn)}function Up(Qn){return Bp.test(Qn)}function up(Qn){for(var xr,gr=[];!(xr=Qn.next()).done;)gr.push(xr.value);return gr}function zp(Qn){var xr=-1,gr=Array(Qn.size);return Qn.forEach(function(no,Eo){gr[++xr]=[Eo,no]}),gr}function hp(Qn,xr){return function(gr){return Qn(xr(gr))}}function Vl(Qn,xr){for(var gr=-1,no=Qn.length,Eo=0,Co=[];++gr-1}function Sm(Pt,Vt){var Kt=this.__data__,mn=Ou(Kt,Pt);return mn<0?(++this.size,Kt.push([Pt,Vt])):Kt[mn][1]=Vt,this}Hl.prototype.clear=a0,Hl.prototype.delete=oy,Hl.prototype.get=s0,Hl.prototype.has=l0,Hl.prototype.set=Sm;function Cl(Pt){var Vt=-1,Kt=Pt==null?0:Pt.length;for(this.clear();++Vt=Vt?Pt:Vt)),Pt}function yl(Pt,Vt,Kt,mn,Bn,zn){var Yn,Jn=Vt&ht,ar=Vt&dt,Tr=Vt&pt;if(Kt&&(Yn=Bn?Kt(Pt,mn,Bn,zn):Kt(Pt)),Yn!==nt)return Yn;if(!fs(Pt))return Pt;var Ar=Po(Pt);if(Ar){if(Yn=Sw(Pt),!Jn)return Ls(Pt,Yn)}else{var Mr=Ks(Pt),Zr=Mr==en||Mr==Tn;if(Pp(Pt))return Ay(Pt,Jn);if(Mr==kn||Mr==nn||Zr&&!Bn){if(Yn=ar||Zr?{}:E1(Pt),!Jn)return ar?S0(Pt,p0(Yn,Pt)):q0(Pt,hy(Yn,Pt))}else{if(!qo[Mr])return Bn?Pt:{};Yn=Ew(Pt,Mr,Jn)}}zn||(zn=new ks);var uo=zn.get(Pt);if(uo)return uo;zn.set(Pt,Yn),ew(Pt)?Pt.forEach(function(So){Yn.add(yl(So,Vt,Kt,So,Pt,zn))}):J1(Pt)&&Pt.forEach(function(So,zo){Yn.set(zo,yl(So,Vt,Kt,zo,Pt,zn))});var ko=Tr?ar?Wo:gs:ar?Bl:Fs,Fo=Ar?nt:ko(Pt);return ss(Fo||Pt,function(So,zo){Fo&&(zo=So,So=Pt[zo]),Gl(Yn,zo,yl(So,Vt,Kt,zo,Pt,zn))}),Yn}function dy(Pt){var Vt=Fs(Pt);return function(Kt){return Am(Kt,Pt,Vt)}}function Am(Pt,Vt,Kt){var mn=Kt.length;if(Pt==null)return!mn;for(Pt=xo(Pt);mn--;){var Bn=Kt[mn],zn=Vt[Bn],Yn=Pt[Bn];if(Yn===nt&&!(Bn in Pt)||!zn(Yn))return!1}return!0}function fy(Pt,Vt,Kt){if(typeof Pt!="function")throw new Gs(at);return My(function(){Pt.apply(nt,Kt)},Vt)}function Qu(Pt,Vt,Kt,mn){var Bn=-1,zn=Ll,Yn=!0,Jn=Pt.length,ar=[],Tr=Vt.length;if(!Jn)return ar;Kt&&(Vt=ba(Vt,Vs(Kt))),mn?(zn=ap,Yn=!1):Vt.length>=it&&(zn=Cs,Yn=!1,Vt=new Bu(Vt));e:for(;++BnBn?0:Bn+Kt),mn=mn===nt||mn>Bn?Bn:Lo(mn),mn<0&&(mn+=Bn),mn=Kt>mn?0:nw(mn);Kt0&&Kt(Jn)?Vt>1?As(Jn,Vt-1,Kt,mn,Bn):Nl(Bn,Jn):mn||(Bn[Bn.length]=Jn)}return Bn}var xp=Fm(),rm=Fm(!0);function _l(Pt,Vt){return Pt&&xp(Pt,Vt,Fs)}function kp(Pt,Vt){return Pt&&rm(Pt,Vt,Fs)}function _h(Pt,Vt){return Ps(Vt,function(Kt){return np(Pt[Kt])})}function Xl(Pt,Vt){Vt=Uu(Vt,Pt);for(var Kt=0,mn=Vt.length;Pt!=null&&KtVt}function y0(Pt,Vt){return Pt!=null&&Yo.call(Pt,Vt)}function gy(Pt,Vt){return Pt!=null&&Vt in xo(Pt)}function H0(Pt,Vt,Kt){return Pt>=Ms(Vt,Kt)&&Pt=120&&Ar.length>=120)?new Bu(Yn&&Ar):nt}Ar=Pt[0];var Mr=-1,Zr=Jn[0];e:for(;++Mr-1;)Jn!==Pt&&Mu.call(Jn,ar,1),Mu.call(Pt,ar,1);return Pt}function Os(Pt,Vt){for(var Kt=Pt?Vt.length:0,mn=Kt-1;Kt--;){var Bn=Vt[Kt];if(Kt==mn||Bn!==zn){var zn=Bn;tp(Bn)?Mu.call(Pt,Bn,1):Ey(Pt,Bn)}}return Pt}function uu(Pt,Vt){return Pt+Xp(ry()*(Vt-Pt+1))}function $l(Pt,Vt,Kt,mn){for(var Bn=-1,zn=xs(Kp((Vt-Pt)/(Kt||1)),0),Yn=gr(zn);zn--;)Yn[mn?zn:++Bn]=Pt,Pt+=Kt;return Yn}function $p(Pt,Vt){var Kt="";if(!Pt||Vt<1||Vt>Ut)return Kt;do Vt%2&&(Kt+=Pt),Vt=Xp(Vt/2),Vt&&(Pt+=Pt);while(Vt);return Kt}function po(Pt,Vt){return _b(A1(Pt,Vt,Ol),Pt+"")}function b0(Pt){return tm(Vm(Pt))}function vy(Pt,Vt){var Kt=Vm(Pt);return I0(Kt,ju(Vt,0,Kt.length))}function _f(Pt,Vt,Kt,mn){if(!fs(Pt))return Pt;Vt=Uu(Vt,Pt);for(var Bn=-1,zn=Vt.length,Yn=zn-1,Jn=Pt;Jn!=null&&++BnBn?0:Bn+Vt),Kt=Kt>Bn?Bn:Kt,Kt<0&&(Kt+=Bn),Bn=Vt>Kt?0:Kt-Vt>>>0,Vt>>>=0;for(var zn=gr(Bn);++mn>>1,Yn=Pt[zn];Yn!==null&&!Jl(Yn)&&(Kt?Yn<=Vt:Yn=it){var Tr=Vt?null:Ns(Pt);if(Tr)return Wp(Tr);Yn=!1,Bn=Cs,ar=new Bu}else ar=Vt?[]:Jn;e:for(;++mn=mn?Pt:Sl(Pt,Vt,Kt)}var x0=Yp||function(Pt){return ns.clearTimeout(Pt)};function Ay(Pt,Vt){if(Vt)return Pt.slice();var Kt=Pt.length,mn=_g?_g(Kt):new Pt.constructor(Kt);return Pt.copy(mn),mn}function Lm(Pt){var Vt=new Pt.constructor(Pt.byteLength);return new Gp(Vt).set(new Gp(Pt)),Vt}function G0(Pt,Vt){var Kt=Vt?Lm(Pt.buffer):Pt.buffer;return new Pt.constructor(Kt,Pt.byteOffset,Pt.byteLength)}function Pl(Pt){var Vt=new Pt.constructor(Pt.source,lr.exec(Pt));return Vt.lastIndex=Pt.lastIndex,Vt}function Cy(Pt){return _u?xo(_u.call(Pt)):{}}function k0(Pt,Vt){var Kt=Vt?Lm(Pt.buffer):Pt.buffer;return new Pt.constructor(Kt,Pt.byteOffset,Pt.length)}function Su(Pt,Vt){if(Pt!==Vt){var Kt=Pt!==nt,mn=Pt===null,Bn=Pt===Pt,zn=Jl(Pt),Yn=Vt!==nt,Jn=Vt===null,ar=Vt===Vt,Tr=Jl(Vt);if(!Jn&&!Tr&&!zn&&Pt>Vt||zn&&Yn&&ar&&!Jn&&!Tr||mn&&Yn&&ar||!Kt&&ar||!Bn)return 1;if(!mn&&!zn&&!Tr&&Pt=Jn)return ar;var Tr=Kt[mn];return ar*(Tr=="desc"?-1:1)}}return Pt.index-Vt.index}function Wu(Pt,Vt,Kt,mn){for(var Bn=-1,zn=Pt.length,Yn=Kt.length,Jn=-1,ar=Vt.length,Tr=xs(zn-Yn,0),Ar=gr(ar+Tr),Mr=!mn;++Jn1?Kt[Bn-1]:nt,Yn=Bn>2?Kt[2]:nt;for(zn=Pt.length>3&&typeof zn=="function"?(Bn--,zn):nt,Yn&&Tl(Kt[0],Kt[1],Yn)&&(zn=Bn<3?nt:zn,Bn=1),Vt=xo(Vt);++mn-1?Bn[zn?Vt[Yn]:Yn]:nt}}function pn(Pt){return Oo(function(Vt){var Kt=Vt.length,mn=Kt,Bn=Rs.prototype.thru;for(Pt&&Vt.reverse();mn--;){var zn=Vt[mn];if(typeof zn!="function")throw new Gs(at);if(Bn&&!Yn&&Um(zn)=="wrapper")var Yn=new Rs([],!0)}for(mn=Yn?mn:Kt;++mn1&&Ho.reverse(),Ar&&arJn))return!1;var Tr=zn.get(Pt),Ar=zn.get(Vt);if(Tr&&Ar)return Tr==Vt&&Ar==Pt;var Mr=-1,Zr=!0,uo=Kt>?new Bu:nt;for(zn.set(Pt,Vt),zn.set(Vt,Pt);++Mr1?"& ":"")+Vt[mn],Vt=Vt.join(Kt>2?", ":" "),Pt.replace(sn,`{ + */lodash.exports;(function(tt,et){(function(){var nt,rt="4.17.21",it=200,ot="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",at="Expected a function",st="Invalid `variable` option passed into `_.template`",lt="__lodash_hash_undefined__",ct=500,ut="__lodash_placeholder__",ht=1,dt=2,pt=4,mt=1,gt=2,yt=1,bt=2,wt=4,vt=8,kt=16,St=32,Et=64,At=128,Tt=256,Mt=512,Lt=30,jt="...",Rt=800,$t=16,xt=1,It=2,Ot=3,zt=1/0,Ut=9007199254740991,Wt=17976931348623157e292,Ft=0/0,Nt=4294967295,Ct=Nt-1,Ht=Nt>>>1,Jt=[["ary",At],["bind",yt],["bindKey",bt],["curry",vt],["curryRight",kt],["flip",Mt],["partial",St],["partialRight",Et],["rearg",Tt]],nn="[object Arguments]",Yt="[object Array]",fn="[object AsyncFunction]",cn="[object Boolean]",_n="[object Date]",En="[object DOMException]",an="[object Error]",en="[object Function]",Tn="[object GeneratorFunction]",Rn="[object Map]",An="[object Number]",yn="[object Null]",kn="[object Object]",dn="[object Promise]",gn="[object Proxy]",Cn="[object RegExp]",$n="[object Set]",un="[object String]",rn="[object Symbol]",Sn="[object Undefined]",Mn="[object WeakMap]",Nn="[object WeakSet]",hn="[object ArrayBuffer]",Qt="[object DataView]",Zt="[object Float32Array]",wn="[object Float64Array]",On="[object Int8Array]",jn="[object Int16Array]",Un="[object Int32Array]",tr="[object Uint8Array]",qn="[object Uint8ClampedArray]",Xn="[object Uint16Array]",Wn="[object Uint32Array]",Zn=/\b__p \+= '';/g,Vn=/\b(__p \+=) '' \+/g,pr=/(__e\(.*?\)|\b__t\)) \+\n'';/g,fr=/&(?:amp|lt|gt|quot|#39);/g,Er=/[&<>"']/g,oo=RegExp(fr.source),Dr=RegExp(Er.source),Rr=/<%-([\s\S]+?)%>/g,Xr=/<%([\s\S]+?)%>/g,Vr=/<%=([\s\S]+?)%>/g,Fr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,so=/^\w*$/,qr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Or=/[\\^$.*+?()[\]{}|]/g,wo=RegExp(Or.source),vn=/^\s+/,Pn=/\s/,sn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Xt=/\{\n\/\* \[wrapped with (.+)\] \*/,xn=/,? & /,Dn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Fn=/[()=,{}\[\]\/\s]/,Kn=/\\(\\)?/g,nr=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,lr=/\w*$/,cr=/^[-+]0x[0-9a-f]+$/i,Hr=/^0b[01]+$/i,_r=/^\[object .+?Constructor\]$/,jr=/^0o[0-7]+$/i,Gr=/^(?:0|[1-9]\d*)$/,eo=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qr=/($^)/,_i=/['\n\r\u2028\u2029\\]/g,wr="\\ud800-\\udfff",$r="\\u0300-\\u036f",Wr="\\ufe20-\\ufe2f",Br="\\u20d0-\\u20ff",Pr=$r+Wr+Br,Lr="\\u2700-\\u27bf",Nr="a-z\\xdf-\\xf6\\xf8-\\xff",Cr="\\xac\\xb1\\xd7\\xf7",er="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",ir="\\u2000-\\u206f",Sr=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",dr="A-Z\\xc0-\\xd6\\xd8-\\xde",br="\\ufe0e\\ufe0f",Ir=Cr+er+ir+Sr,ro="['’]",ao="["+wr+"]",mo="["+Ir+"]",fo="["+Pr+"]",Gn="\\d+",bo="["+Lr+"]",jo="["+Nr+"]",go="[^"+wr+Ir+Gn+Lr+Nr+dr+"]",vo="\\ud83c[\\udffb-\\udfff]",Ao="(?:"+fo+"|"+vo+")",Mo="[^"+wr+"]",Vo="(?:\\ud83c[\\udde6-\\uddff]){2}",$o="[\\ud800-\\udbff][\\udc00-\\udfff]",Uo="["+dr+"]",Go="\\u200d",Xo="(?:"+jo+"|"+go+")",ga="(?:"+Uo+"|"+go+")",na="(?:"+ro+"(?:d|ll|m|re|s|t|ve))?",$a="(?:"+ro+"(?:D|LL|M|RE|S|T|VE))?",Zo=Ao+"?",mu="["+br+"]?",eu="(?:"+Go+"(?:"+[Mo,Vo,$o].join("|")+")"+mu+Zo+")*",No="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Mp="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",tu=mu+Zo+eu,op="(?:"+[bo,Vo,$o].join("|")+")"+tu,Rp="(?:"+[Mo+fo+"?",fo,Vo,$o,ao].join("|")+")",mm=RegExp(ro,"g"),es=RegExp(fo,"g"),nu=RegExp(vo+"(?="+vo+")|"+Rp+tu,"g"),gm=RegExp([Uo+"?"+jo+"+"+na+"(?="+[mo,Uo,"$"].join("|")+")",ga+"+"+$a+"(?="+[mo,Uo+Xo,"$"].join("|")+")",Uo+"?"+Xo+"+"+na,Uo+"+"+$a,Mp,No,Gn,op].join("|"),"g"),Us=RegExp("["+Go+wr+Pr+br+"]"),Bp=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Iu=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Xs=-1,Ko={};Ko[Zt]=Ko[wn]=Ko[On]=Ko[jn]=Ko[Un]=Ko[tr]=Ko[qn]=Ko[Xn]=Ko[Wn]=!0,Ko[nn]=Ko[Yt]=Ko[hn]=Ko[cn]=Ko[Qt]=Ko[_n]=Ko[an]=Ko[en]=Ko[Rn]=Ko[An]=Ko[kn]=Ko[Cn]=Ko[$n]=Ko[un]=Ko[Mn]=!1;var qo={};qo[nn]=qo[Yt]=qo[hn]=qo[Qt]=qo[cn]=qo[_n]=qo[Zt]=qo[wn]=qo[On]=qo[jn]=qo[Un]=qo[Rn]=qo[An]=qo[kn]=qo[Cn]=qo[$n]=qo[un]=qo[rn]=qo[tr]=qo[qn]=qo[Xn]=qo[Wn]=!0,qo[an]=qo[en]=qo[Mn]=!1;var Zs={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},zs={"&":"&","<":"<",">":">",'"':""","'":"'"},ru={"&":"&","<":"<",">":">",""":'"',"'":"'"},Al={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Op=parseFloat,jp=parseInt,Ws=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,Hu=typeof self=="object"&&self&&self.Object===Object&&self,ns=Ws||Hu||Function("return this")(),gu=et&&!et.nodeType&&et,rs=gu&&!0&&tt&&!tt.nodeType&&tt,bs=rs&&rs.exports===gu,Au=bs&&Ws.process,os=function(){try{var Qn=rs&&rs.require&&rs.require("util").types;return Qn||Au&&Au.binding&&Au.binding("util")}catch{}}(),yu=os&&os.isArrayBuffer,Gu=os&&os.isDate,Dp=os&&os.isMap,Dl=os&&os.isRegExp,cs=os&&os.isSet,ws=os&&os.isTypedArray;function Do(Qn,xr,gr){switch(gr.length){case 0:return Qn.call(xr);case 1:return Qn.call(xr,gr[0]);case 2:return Qn.call(xr,gr[0],gr[1]);case 3:return Qn.call(xr,gr[0],gr[1],gr[2])}return Qn.apply(xr,gr)}function vs(Qn,xr,gr,no){for(var Eo=-1,Co=Qn==null?0:Qn.length;++Eo-1}function ap(Qn,xr,gr){for(var no=-1,Eo=Qn==null?0:Qn.length;++no-1;);return gr}function cp(Qn,xr){for(var gr=Qn.length;gr--&&Fl(xr,Qn[gr],0)>-1;);return gr}function Wl(Qn,xr){for(var gr=Qn.length,no=0;gr--;)Qn[gr]===xr&&++no;return no}var Ly=Ys(Zs),Ny=Ys(zs);function Xm(Qn){return"\\"+Al[Qn]}function Zm(Qn,xr){return Qn==null?nt:Qn[xr]}function qu(Qn){return Us.test(Qn)}function Up(Qn){return Bp.test(Qn)}function up(Qn){for(var xr,gr=[];!(xr=Qn.next()).done;)gr.push(xr.value);return gr}function zp(Qn){var xr=-1,gr=Array(Qn.size);return Qn.forEach(function(no,Eo){gr[++xr]=[Eo,no]}),gr}function hp(Qn,xr){return function(gr){return Qn(xr(gr))}}function Vl(Qn,xr){for(var gr=-1,no=Qn.length,Eo=0,Co=[];++gr-1}function Sm(Pt,Vt){var Kt=this.__data__,mn=Ou(Kt,Pt);return mn<0?(++this.size,Kt.push([Pt,Vt])):Kt[mn][1]=Vt,this}Hl.prototype.clear=a0,Hl.prototype.delete=oy,Hl.prototype.get=s0,Hl.prototype.has=l0,Hl.prototype.set=Sm;function Cl(Pt){var Vt=-1,Kt=Pt==null?0:Pt.length;for(this.clear();++Vt=Vt?Pt:Vt)),Pt}function yl(Pt,Vt,Kt,mn,Bn,zn){var Yn,Jn=Vt&ht,ar=Vt&dt,Tr=Vt&pt;if(Kt&&(Yn=Bn?Kt(Pt,mn,Bn,zn):Kt(Pt)),Yn!==nt)return Yn;if(!fs(Pt))return Pt;var Ar=Po(Pt);if(Ar){if(Yn=Sw(Pt),!Jn)return Ls(Pt,Yn)}else{var Mr=Ks(Pt),Zr=Mr==en||Mr==Tn;if(Pp(Pt))return Ay(Pt,Jn);if(Mr==kn||Mr==nn||Zr&&!Bn){if(Yn=ar||Zr?{}:E1(Pt),!Jn)return ar?S0(Pt,p0(Yn,Pt)):q0(Pt,hy(Yn,Pt))}else{if(!qo[Mr])return Bn?Pt:{};Yn=Ew(Pt,Mr,Jn)}}zn||(zn=new ks);var uo=zn.get(Pt);if(uo)return uo;zn.set(Pt,Yn),ew(Pt)?Pt.forEach(function(So){Yn.add(yl(So,Vt,Kt,So,Pt,zn))}):J1(Pt)&&Pt.forEach(function(So,zo){Yn.set(zo,yl(So,Vt,Kt,zo,Pt,zn))});var ko=Tr?ar?Wo:gs:ar?Bl:Fs,Fo=Ar?nt:ko(Pt);return ss(Fo||Pt,function(So,zo){Fo&&(zo=So,So=Pt[zo]),Gl(Yn,zo,yl(So,Vt,Kt,zo,Pt,zn))}),Yn}function dy(Pt){var Vt=Fs(Pt);return function(Kt){return Am(Kt,Pt,Vt)}}function Am(Pt,Vt,Kt){var mn=Kt.length;if(Pt==null)return!mn;for(Pt=xo(Pt);mn--;){var Bn=Kt[mn],zn=Vt[Bn],Yn=Pt[Bn];if(Yn===nt&&!(Bn in Pt)||!zn(Yn))return!1}return!0}function fy(Pt,Vt,Kt){if(typeof Pt!="function")throw new Gs(at);return My(function(){Pt.apply(nt,Kt)},Vt)}function Qu(Pt,Vt,Kt,mn){var Bn=-1,zn=Ll,Yn=!0,Jn=Pt.length,ar=[],Tr=Vt.length;if(!Jn)return ar;Kt&&(Vt=ba(Vt,Vs(Kt))),mn?(zn=ap,Yn=!1):Vt.length>=it&&(zn=Cs,Yn=!1,Vt=new Bu(Vt));e:for(;++BnBn?0:Bn+Kt),mn=mn===nt||mn>Bn?Bn:Lo(mn),mn<0&&(mn+=Bn),mn=Kt>mn?0:nw(mn);Kt0&&Kt(Jn)?Vt>1?As(Jn,Vt-1,Kt,mn,Bn):Nl(Bn,Jn):mn||(Bn[Bn.length]=Jn)}return Bn}var xp=Fm(),rm=Fm(!0);function _l(Pt,Vt){return Pt&&xp(Pt,Vt,Fs)}function kp(Pt,Vt){return Pt&&rm(Pt,Vt,Fs)}function _h(Pt,Vt){return Ps(Vt,function(Kt){return np(Pt[Kt])})}function Xl(Pt,Vt){Vt=Uu(Vt,Pt);for(var Kt=0,mn=Vt.length;Pt!=null&&KtVt}function y0(Pt,Vt){return Pt!=null&&Yo.call(Pt,Vt)}function gy(Pt,Vt){return Pt!=null&&Vt in xo(Pt)}function H0(Pt,Vt,Kt){return Pt>=Ms(Vt,Kt)&&Pt=120&&Ar.length>=120)?new Bu(Yn&&Ar):nt}Ar=Pt[0];var Mr=-1,Zr=Jn[0];e:for(;++Mr-1;)Jn!==Pt&&Mu.call(Jn,ar,1),Mu.call(Pt,ar,1);return Pt}function Os(Pt,Vt){for(var Kt=Pt?Vt.length:0,mn=Kt-1;Kt--;){var Bn=Vt[Kt];if(Kt==mn||Bn!==zn){var zn=Bn;tp(Bn)?Mu.call(Pt,Bn,1):Ey(Pt,Bn)}}return Pt}function uu(Pt,Vt){return Pt+Xp(ry()*(Vt-Pt+1))}function $l(Pt,Vt,Kt,mn){for(var Bn=-1,zn=xs(Kp((Vt-Pt)/(Kt||1)),0),Yn=gr(zn);zn--;)Yn[mn?zn:++Bn]=Pt,Pt+=Kt;return Yn}function $p(Pt,Vt){var Kt="";if(!Pt||Vt<1||Vt>Ut)return Kt;do Vt%2&&(Kt+=Pt),Vt=Xp(Vt/2),Vt&&(Pt+=Pt);while(Vt);return Kt}function po(Pt,Vt){return _b(A1(Pt,Vt,Ol),Pt+"")}function b0(Pt){return tm(Vm(Pt))}function vy(Pt,Vt){var Kt=Vm(Pt);return I0(Kt,ju(Vt,0,Kt.length))}function _f(Pt,Vt,Kt,mn){if(!fs(Pt))return Pt;Vt=Uu(Vt,Pt);for(var Bn=-1,zn=Vt.length,Yn=zn-1,Jn=Pt;Jn!=null&&++BnBn?0:Bn+Vt),Kt=Kt>Bn?Bn:Kt,Kt<0&&(Kt+=Bn),Bn=Vt>Kt?0:Kt-Vt>>>0,Vt>>>=0;for(var zn=gr(Bn);++mn>>1,Yn=Pt[zn];Yn!==null&&!Jl(Yn)&&(Kt?Yn<=Vt:Yn=it){var Tr=Vt?null:Ns(Pt);if(Tr)return Wp(Tr);Yn=!1,Bn=Cs,ar=new Bu}else ar=Vt?[]:Jn;e:for(;++mn=mn?Pt:Sl(Pt,Vt,Kt)}var x0=Yp||function(Pt){return ns.clearTimeout(Pt)};function Ay(Pt,Vt){if(Vt)return Pt.slice();var Kt=Pt.length,mn=_g?_g(Kt):new Pt.constructor(Kt);return Pt.copy(mn),mn}function Lm(Pt){var Vt=new Pt.constructor(Pt.byteLength);return new Gp(Vt).set(new Gp(Pt)),Vt}function G0(Pt,Vt){var Kt=Vt?Lm(Pt.buffer):Pt.buffer;return new Pt.constructor(Kt,Pt.byteOffset,Pt.byteLength)}function Pl(Pt){var Vt=new Pt.constructor(Pt.source,lr.exec(Pt));return Vt.lastIndex=Pt.lastIndex,Vt}function Cy(Pt){return _u?xo(_u.call(Pt)):{}}function k0(Pt,Vt){var Kt=Vt?Lm(Pt.buffer):Pt.buffer;return new Pt.constructor(Kt,Pt.byteOffset,Pt.length)}function Su(Pt,Vt){if(Pt!==Vt){var Kt=Pt!==nt,mn=Pt===null,Bn=Pt===Pt,zn=Jl(Pt),Yn=Vt!==nt,Jn=Vt===null,ar=Vt===Vt,Tr=Jl(Vt);if(!Jn&&!Tr&&!zn&&Pt>Vt||zn&&Yn&&ar&&!Jn&&!Tr||mn&&Yn&&ar||!Kt&&ar||!Bn)return 1;if(!mn&&!zn&&!Tr&&Pt=Jn)return ar;var Tr=Kt[mn];return ar*(Tr=="desc"?-1:1)}}return Pt.index-Vt.index}function Wu(Pt,Vt,Kt,mn){for(var Bn=-1,zn=Pt.length,Yn=Kt.length,Jn=-1,ar=Vt.length,Tr=xs(zn-Yn,0),Ar=gr(ar+Tr),Mr=!mn;++Jn1?Kt[Bn-1]:nt,Yn=Bn>2?Kt[2]:nt;for(zn=Pt.length>3&&typeof zn=="function"?(Bn--,zn):nt,Yn&&Tl(Kt[0],Kt[1],Yn)&&(zn=Bn<3?nt:zn,Bn=1),Vt=xo(Vt);++mn-1?Bn[zn?Vt[Yn]:Yn]:nt}}function pn(Pt){return Oo(function(Vt){var Kt=Vt.length,mn=Kt,Bn=Rs.prototype.thru;for(Pt&&Vt.reverse();mn--;){var zn=Vt[mn];if(typeof zn!="function")throw new Gs(at);if(Bn&&!Yn&&Um(zn)=="wrapper")var Yn=new Rs([],!0)}for(mn=Yn?mn:Kt;++mn1&&Ho.reverse(),Ar&&arJn))return!1;var Tr=zn.get(Pt),Ar=zn.get(Vt);if(Tr&&Ar)return Tr==Vt&&Ar==Pt;var Mr=-1,Zr=!0,uo=Kt>?new Bu:nt;for(zn.set(Pt,Vt),zn.set(Vt,Pt);++Mr1?"& ":"")+Vt[mn],Vt=Vt.join(Kt>2?", ":" "),Pt.replace(sn,`{ /* [wrapped with `+Vt+`] */ -`)}function Iw(Pt){return Po(Pt)||pm(Pt)||!!(ty&&Pt&&Pt[ty])}function tp(Pt,Vt){var Kt=typeof Pt;return Vt=Vt??Ut,!!Vt&&(Kt=="number"||Kt!="symbol"&&Gr.test(Pt))&&Pt>-1&&Pt%1==0&&Pt0){if(++Vt>=Rt)return arguments[0]}else Vt=0;return Pt.apply(nt,arguments)}}function I0(Pt,Vt){var Kt=-1,mn=Pt.length,Bn=mn-1;for(Vt=Vt===nt?mn:Vt;++Kt1?Pt[Vt-1]:nt;return Kt=typeof Kt=="function"?(Pt.pop(),Kt):nt,F1(Pt,Kt)});function U1(Pt){var Vt=Ln(Pt);return Vt.__chain__=!0,Vt}function Lv(Pt,Vt){return Vt(Pt),Pt}function A0(Pt,Vt){return Vt(Pt)}var Nv=Oo(function(Pt){var Vt=Pt.length,Kt=Vt?Pt[0]:0,mn=this.__wrapped__,Bn=function(zn){return Im(zn,Pt)};return Vt>1||this.__actions__.length||!(mn instanceof yo)||!tp(Kt)?this.thru(Bn):(mn=mn.slice(Kt,+Kt+(Vt?1:0)),mn.__actions__.push({func:A0,args:[Bn],thisArg:nt}),new Rs(mn,this.__chain__).thru(function(zn){return Vt&&!zn.length&&zn.push(nt),zn}))});function Fv(){return U1(this)}function Uv(){return new Rs(this.value(),this.__chain__)}function zv(){this.__values__===nt&&(this.__values__=tw(this.value()));var Pt=this.__index__>=this.__values__.length,Vt=Pt?nt:this.__values__[this.__index__++];return{done:Pt,value:Vt}}function Wv(){return this}function Vv(Pt){for(var Vt,Kt=this;Kt instanceof em;){var mn=B1(Kt);mn.__index__=0,mn.__values__=nt,Vt?Bn.__wrapped__=mn:Vt=mn;var Bn=mn;Kt=Kt.__wrapped__}return Bn.__wrapped__=Pt,Vt}function Hv(){var Pt=this.__wrapped__;if(Pt instanceof yo){var Vt=Pt;return this.__actions__.length&&(Vt=new yo(this)),Vt=Vt.reverse(),Vt.__actions__.push({func:A0,args:[e1],thisArg:nt}),new Rs(Vt,this.__chain__)}return this.thru(e1)}function Gv(){return Nu(this.__wrapped__,this.__actions__)}var qv=hm(function(Pt,Vt,Kt){Yo.call(Pt,Kt)?++Pt[Kt]:cu(Pt,Kt,1)});function Yv(Pt,Vt,Kt){var mn=Po(Pt)?Ym:V0;return Kt&&Tl(Pt,Vt,Kt)&&(Vt=nt),mn(Pt,_o(Vt,3))}function Kv(Pt,Vt){var Kt=Po(Pt)?Ps:my;return Kt(Pt,_o(Vt,3))}var Xv=tn(O1),Zv=tn(j1);function Jv(Pt,Vt){return As(C0(Pt,Vt),1)}function Qv(Pt,Vt){return As(C0(Pt,Vt),zt)}function e_(Pt,Vt,Kt){return Kt=Kt===nt?1:Lo(Kt),As(C0(Pt,Vt),Kt)}function z1(Pt,Vt){var Kt=Po(Pt)?ss:Yl;return Kt(Pt,_o(Vt,3))}function W1(Pt,Vt){var Kt=Po(Pt)?qm:m0;return Kt(Pt,_o(Vt,3))}var t_=hm(function(Pt,Vt,Kt){Yo.call(Pt,Kt)?Pt[Kt].push(Vt):cu(Pt,Kt,[Vt])});function n_(Pt,Vt,Kt,mn){Pt=Rl(Pt)?Pt:Vm(Pt),Kt=Kt&&!mn?Lo(Kt):0;var Bn=Pt.length;return Kt<0&&(Kt=xs(Bn+Kt,0)),B0(Pt)?Kt<=Bn&&Pt.indexOf(Vt,Kt)>-1:!!Bn&&Fl(Pt,Vt,Kt)>-1}var r_=po(function(Pt,Vt,Kt){var mn=-1,Bn=typeof Vt=="function",zn=Rl(Pt)?gr(Pt.length):[];return Yl(Pt,function(Yn){zn[++mn]=Bn?Do(Vt,Yn,Kt):xa(Yn,Vt,Kt)}),zn}),i_=hm(function(Pt,Vt,Kt){cu(Pt,Kt,Vt)});function C0(Pt,Vt){var Kt=Po(Pt)?ba:_d;return Kt(Pt,_o(Vt,3))}function o_(Pt,Vt,Kt,mn){return Pt==null?[]:(Po(Vt)||(Vt=Vt==null?[]:[Vt]),Kt=mn?nt:Kt,Po(Kt)||(Kt=Kt==null?[]:[Kt]),sm(Pt,Vt,Kt))}var a_=hm(function(Pt,Vt,Kt){Pt[Kt?0:1].push(Vt)},function(){return[[],[]]});function s_(Pt,Vt,Kt){var mn=Po(Pt)?ym:Cu,Bn=arguments.length<3;return mn(Pt,_o(Vt,4),Kt,Bn,Yl)}function l_(Pt,Vt,Kt){var mn=Po(Pt)?By:Cu,Bn=arguments.length<3;return mn(Pt,_o(Vt,4),Kt,Bn,m0)}function c_(Pt,Vt){var Kt=Po(Pt)?Ps:my;return Kt(Pt,M0(_o(Vt,3)))}function u_(Pt){var Vt=Po(Pt)?tm:b0;return Vt(Pt)}function h_(Pt,Vt,Kt){(Kt?Tl(Pt,Vt,Kt):Vt===nt)?Vt=1:Vt=Lo(Vt);var mn=Po(Pt)?ly:vy;return mn(Pt,Vt)}function d_(Pt){var Vt=Po(Pt)?f0:v0;return Vt(Pt)}function f_(Pt){if(Pt==null)return 0;if(Rl(Pt))return B0(Pt)?iu(Pt):Pt.length;var Vt=Ks(Pt);return Vt==Rn||Vt==$n?Pt.size:Bs(Pt).length}function p_(Pt,Vt,Kt){var mn=Po(Pt)?Lp:xy;return Kt&&Tl(Pt,Vt,Kt)&&(Vt=nt),mn(Pt,_o(Vt,3))}var m_=po(function(Pt,Vt){if(Pt==null)return[];var Kt=Vt.length;return Kt>1&&Tl(Pt,Vt[0],Vt[1])?Vt=[]:Kt>2&&Tl(Vt[0],Vt[1],Vt[2])&&(Vt=[Vt[0]]),sm(Pt,As(Vt,1),[])}),$0=Wy||function(){return ns.Date.now()};function g_(Pt,Vt){if(typeof Vt!="function")throw new Gs(at);return Pt=Lo(Pt),function(){if(--Pt<1)return Vt.apply(this,arguments)}}function V1(Pt,Vt,Kt){return Vt=Kt?nt:Vt,Vt=Pt&&Vt==null?Pt.length:Vt,ur(Pt,At,nt,nt,nt,nt,Vt)}function H1(Pt,Vt){var Kt;if(typeof Vt!="function")throw new Gs(at);return Pt=Lo(Pt),function(){return--Pt>0&&(Kt=Vt.apply(this,arguments)),Pt<=1&&(Vt=nt),Kt}}var r1=po(function(Pt,Vt,Kt){var mn=yt;if(Kt.length){var Bn=Vl(Kt,zm(r1));mn|=St}return ur(Pt,mn,Vt,Kt,Bn)}),G1=po(function(Pt,Vt,Kt){var mn=yt|bt;if(Kt.length){var Bn=Vl(Kt,zm(G1));mn|=St}return ur(Vt,mn,Pt,Kt,Bn)});function q1(Pt,Vt,Kt){Vt=Kt?nt:Vt;var mn=ur(Pt,vt,nt,nt,nt,nt,nt,Vt);return mn.placeholder=q1.placeholder,mn}function Y1(Pt,Vt,Kt){Vt=Kt?nt:Vt;var mn=ur(Pt,kt,nt,nt,nt,nt,nt,Vt);return mn.placeholder=Y1.placeholder,mn}function K1(Pt,Vt,Kt){var mn,Bn,zn,Yn,Jn,ar,Tr=0,Ar=!1,Mr=!1,Zr=!0;if(typeof Pt!="function")throw new Gs(at);Vt=pu(Vt)||0,fs(Kt)&&(Ar=!!Kt.leading,Mr="maxWait"in Kt,zn=Mr?xs(pu(Kt.maxWait)||0,Vt):zn,Zr="trailing"in Kt?!!Kt.trailing:Zr);function uo(Es){var Tu=mn,ip=Bn;return mn=Bn=nt,Tr=Es,Yn=Pt.apply(ip,Tu),Yn}function ko(Es){return Tr=Es,Jn=My(zo,Vt),Ar?uo(Es):Yn}function Fo(Es){var Tu=Es-ar,ip=Es-Tr,pw=Vt-Tu;return Mr?Ms(pw,zn-ip):pw}function So(Es){var Tu=Es-ar,ip=Es-Tr;return ar===nt||Tu>=Vt||Tu<0||Mr&&ip>=zn}function zo(){var Es=$0();if(So(Es))return Ho(Es);Jn=My(zo,Fo(Es))}function Ho(Es){return Jn=nt,Zr&&mn?uo(Es):(mn=Bn=nt,Yn)}function Ql(){Jn!==nt&&x0(Jn),Tr=0,mn=ar=Bn=Jn=nt}function Il(){return Jn===nt?Yn:Ho($0())}function _c(){var Es=$0(),Tu=So(Es);if(mn=arguments,Bn=this,ar=Es,Tu){if(Jn===nt)return ko(ar);if(Mr)return x0(Jn),Jn=My(zo,Vt),uo(ar)}return Jn===nt&&(Jn=My(zo,Vt)),Yn}return _c.cancel=Ql,_c.flush=Il,_c}var y_=po(function(Pt,Vt){return fy(Pt,1,Vt)}),b_=po(function(Pt,Vt,Kt){return fy(Pt,pu(Vt)||0,Kt)});function w_(Pt){return ur(Pt,Mt)}function P0(Pt,Vt){if(typeof Pt!="function"||Vt!=null&&typeof Vt!="function")throw new Gs(at);var Kt=function(){var mn=arguments,Bn=Vt?Vt.apply(this,mn):mn[0],zn=Kt.cache;if(zn.has(Bn))return zn.get(Bn);var Yn=Pt.apply(this,mn);return Kt.cache=zn.set(Bn,Yn)||zn,Yn};return Kt.cache=new(P0.Cache||Cl),Kt}P0.Cache=Cl;function M0(Pt){if(typeof Pt!="function")throw new Gs(at);return function(){var Vt=arguments;switch(Vt.length){case 0:return!Pt.call(this);case 1:return!Pt.call(this,Vt[0]);case 2:return!Pt.call(this,Vt[0],Vt[1]);case 3:return!Pt.call(this,Vt[0],Vt[1],Vt[2])}return!Pt.apply(this,Vt)}}function v_(Pt){return H1(2,Pt)}var __=_0(function(Pt,Vt){Vt=Vt.length==1&&Po(Vt[0])?ba(Vt[0],Vs(_o())):ba(As(Vt,1),Vs(_o()));var Kt=Vt.length;return po(function(mn){for(var Bn=-1,zn=Ms(mn.length,Kt);++Bn=Vt}),pm=Ro(function(){return arguments}())?Ro:function(Pt){return ys(Pt)&&Yo.call(Pt,"callee")&&!xm.call(Pt,"callee")},Po=gr.isArray,j_=yu?Vs(yu):ps;function Rl(Pt){return Pt!=null&&R0(Pt.length)&&!np(Pt)}function Ss(Pt){return ys(Pt)&&Rl(Pt)}function D_(Pt){return Pt===!0||Pt===!1||ys(Pt)&&$s(Pt)==cn}var Pp=Hy||m1,L_=Gu?Vs(Gu):ms;function N_(Pt){return ys(Pt)&&Pt.nodeType===1&&!Ry(Pt)}function F_(Pt){if(Pt==null)return!0;if(Rl(Pt)&&(Po(Pt)||typeof Pt=="string"||typeof Pt.splice=="function"||Pp(Pt)||Wm(Pt)||pm(Pt)))return!Pt.length;var Vt=Ks(Pt);if(Vt==Rn||Vt==$n)return!Pt.size;if(Py(Pt))return!Bs(Pt).length;for(var Kt in Pt)if(Yo.call(Pt,Kt))return!1;return!0}function U_(Pt,Vt){return hs(Pt,Vt)}function z_(Pt,Vt,Kt){Kt=typeof Kt=="function"?Kt:nt;var mn=Kt?Kt(Pt,Vt):nt;return mn===nt?hs(Pt,Vt,nt,Kt):!!mn}function o1(Pt){if(!ys(Pt))return!1;var Vt=$s(Pt);return Vt==an||Vt==En||typeof Pt.message=="string"&&typeof Pt.name=="string"&&!Ry(Pt)}function W_(Pt){return typeof Pt=="number"&&ny(Pt)}function np(Pt){if(!fs(Pt))return!1;var Vt=$s(Pt);return Vt==en||Vt==Tn||Vt==fn||Vt==gn}function Z1(Pt){return typeof Pt=="number"&&Pt==Lo(Pt)}function R0(Pt){return typeof Pt=="number"&&Pt>-1&&Pt%1==0&&Pt<=Ut}function fs(Pt){var Vt=typeof Pt;return Pt!=null&&(Vt=="object"||Vt=="function")}function ys(Pt){return Pt!=null&&typeof Pt=="object"}var J1=Dp?Vs(Dp):Ep;function V_(Pt,Vt){return Pt===Vt||ds(Pt,Vt,K0(Vt))}function H_(Pt,Vt,Kt){return Kt=typeof Kt=="function"?Kt:nt,ds(Pt,Vt,K0(Vt),Kt)}function G_(Pt){return Q1(Pt)&&Pt!=+Pt}function q_(Pt){if($w(Pt))throw new Eo(ot);return Tp(Pt)}function Y_(Pt){return Pt===null}function K_(Pt){return Pt==null}function Q1(Pt){return typeof Pt=="number"||ys(Pt)&&$s(Pt)==An}function Ry(Pt){if(!ys(Pt)||$s(Pt)!=kn)return!1;var Vt=qp(Pt);if(Vt===null)return!0;var Kt=Yo.call(Vt,"constructor")&&Vt.constructor;return typeof Kt=="function"&&Kt instanceof Kt&&yp.call(Kt)==Yu}var a1=Dl?Vs(Dl):Ip;function X_(Pt){return Z1(Pt)&&Pt>=-Ut&&Pt<=Ut}var ew=cs?Vs(cs):$m;function B0(Pt){return typeof Pt=="string"||!Po(Pt)&&ys(Pt)&&$s(Pt)==un}function Jl(Pt){return typeof Pt=="symbol"||ys(Pt)&&$s(Pt)==rn}var Wm=ws?Vs(ws):by;function Z_(Pt){return Pt===nt}function J_(Pt){return ys(Pt)&&Ks(Pt)==Mn}function Q_(Pt){return ys(Pt)&&$s(Pt)==Nn}var t2=ho(om),n2=ho(function(Pt,Vt){return Pt<=Vt});function tw(Pt){if(!Pt)return[];if(Rl(Pt))return B0(Pt)?ls(Pt):Ls(Pt);if(Ru&&Pt[Ru])return up(Pt[Ru]());var Vt=Ks(Pt),Kt=Vt==Rn?zp:Vt==$n?Wp:Vm;return Kt(Pt)}function rp(Pt){if(!Pt)return Pt===0?Pt:0;if(Pt=pu(Pt),Pt===zt||Pt===-zt){var Vt=Pt<0?-1:1;return Vt*Wt}return Pt===Pt?Pt:0}function Lo(Pt){var Vt=rp(Pt),Kt=Vt%1;return Vt===Vt?Kt?Vt-Kt:Vt:0}function nw(Pt){return Pt?ju(Lo(Pt),0,Nt):0}function pu(Pt){if(typeof Pt=="number")return Pt;if(Jl(Pt))return Ft;if(fs(Pt)){var Vt=typeof Pt.valueOf=="function"?Pt.valueOf():Pt;Pt=fs(Vt)?Vt+"":Vt}if(typeof Pt!="string")return Pt===0?Pt:+Pt;Pt=wm(Pt);var Kt=Hr.test(Pt);return Kt||jr.test(Pt)?jp(Pt.slice(2),Kt?2:8):cr.test(Pt)?Ft:+Pt}function rw(Pt){return Ml(Pt,Bl(Pt))}function r2(Pt){return Pt?ju(Lo(Pt),-Ut,Ut):Pt===0?Pt:0}function Qo(Pt){return Pt==null?"":js(Pt)}var i2=ep(function(Pt,Vt){if(Py(Vt)||Rl(Vt)){Ml(Vt,Fs(Vt),Pt);return}for(var Kt in Vt)Yo.call(Vt,Kt)&&Gl(Pt,Kt,Vt[Kt])}),iw=ep(function(Pt,Vt){Ml(Vt,Bl(Vt),Pt)}),O0=ep(function(Pt,Vt,Kt,mn){Ml(Vt,Bl(Vt),Pt,mn)}),o2=ep(function(Pt,Vt,Kt,mn){Ml(Vt,Fs(Vt),Pt,mn)}),s2=Oo(Im);function l2(Pt,Vt){var Kt=xu(Pt);return Vt==null?Kt:hy(Kt,Vt)}var c2=po(function(Pt,Vt){Pt=xo(Pt);var Kt=-1,mn=Vt.length,Bn=mn>2?Vt[2]:nt;for(Bn&&Tl(Vt[0],Vt[1],Bn)&&(mn=1);++Kt1),zn}),Ml(Pt,Wo(Pt),Kt),mn&&(Kt=yl(Kt,ht|dt|pt,Jr));for(var Bn=Vt.length;Bn--;)Ey(Kt,Vt[Bn]);return Kt});function C2(Pt,Vt){return aw(Pt,M0(_o(Vt)))}var $2=Oo(function(Pt,Vt){return Pt==null?{}:lm(Pt,Vt)});function aw(Pt,Vt){if(Pt==null)return{};var Kt=ba(Wo(Pt),function(mn){return[mn]});return Vt=_o(Vt),Rm(Pt,Kt,function(mn,Bn){return Vt(mn,Bn[0])})}function P2(Pt,Vt,Kt){Vt=Uu(Vt,Pt);var mn=-1,Bn=Vt.length;for(Bn||(Bn=1,Pt=nt);++mnVt){var mn=Pt;Pt=Vt,Vt=mn}if(Kt||Pt%1||Vt%1){var Bn=ry();return Ms(Pt+Bn*(Vt-Pt+Op("1e-"+((Bn+"").length-1))),Vt)}return uu(Pt,Vt)}var z2=Bt(function(Pt,Vt,Kt){return Vt=Vt.toLowerCase(),Pt+(Kt?cw(Vt):Vt)});function cw(Pt){return c1(Qo(Pt).toLowerCase())}function uw(Pt){return Pt=Qo(Pt),Pt&&Pt.replace(eo,Ly).replace(es,"")}function W2(Pt,Vt,Kt){Pt=Qo(Pt),Vt=js(Vt);var mn=Pt.length;Kt=Kt===nt?mn:ju(Lo(Kt),0,mn);var Bn=Kt;return Kt-=Vt.length,Kt>=0&&Pt.slice(Kt,Bn)==Vt}function V2(Pt){return Pt=Qo(Pt),Pt&&Dr.test(Pt)?Pt.replace(Er,Ny):Pt}function H2(Pt){return Pt=Qo(Pt),Pt&&wo.test(Pt)?Pt.replace(Or,"\\$&"):Pt}var G2=Bt(function(Pt,Vt,Kt){return Pt+(Kt?"-":"")+Vt.toLowerCase()}),q2=Bt(function(Pt,Vt,Kt){return Pt+(Kt?" ":"")+Vt.toLowerCase()}),Y2=E0("toLowerCase");function K2(Pt,Vt,Kt){Pt=Qo(Pt),Vt=Lo(Vt);var mn=Vt?iu(Pt):0;if(!Vt||mn>=Vt)return Pt;var Bn=(Vt-mn)/2;return Ur(Xp(Bn),Kt)+Pt+Ur(Kp(Bn),Kt)}function X2(Pt,Vt,Kt){Pt=Qo(Pt),Vt=Lo(Vt);var mn=Vt?iu(Pt):0;return Vt&&mn>>0,Kt?(Pt=Qo(Pt),Pt&&(typeof Vt=="string"||Vt!=null&&!a1(Vt))&&(Vt=js(Vt),!Vt&&qu(Pt))?zu(ls(Pt),0,Kt):Pt.split(Vt,Kt)):[]}var r4=Bt(function(Pt,Vt,Kt){return Pt+(Kt?" ":"")+c1(Vt)});function i4(Pt,Vt,Kt){return Pt=Qo(Pt),Kt=Kt==null?0:ju(Lo(Kt),0,Pt.length),Vt=js(Vt),Pt.slice(Kt,Kt+Vt.length)==Vt}function o4(Pt,Vt,Kt){var mn=Ln.templateSettings;Kt&&Tl(Pt,Vt,Kt)&&(Vt=nt),Pt=Qo(Pt),Vt=O0({},Vt,mn,or);var Bn=O0({},Vt.imports,mn.imports,or),zn=Fs(Bn),Yn=Hs(Bn,zn),Jn,ar,Tr=0,Ar=Vt.interpolate||Qr,Mr="__p += '",Zr=Ts((Vt.escape||Qr).source+"|"+Ar.source+"|"+(Ar===Vr?nr:Qr).source+"|"+(Vt.evaluate||Qr).source+"|$","g"),uo="//# sourceURL="+(Yo.call(Vt,"sourceURL")?(Vt.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Xs+"]")+` +`)}function Iw(Pt){return Po(Pt)||pm(Pt)||!!(ty&&Pt&&Pt[ty])}function tp(Pt,Vt){var Kt=typeof Pt;return Vt=Vt??Ut,!!Vt&&(Kt=="number"||Kt!="symbol"&&Gr.test(Pt))&&Pt>-1&&Pt%1==0&&Pt0){if(++Vt>=Rt)return arguments[0]}else Vt=0;return Pt.apply(nt,arguments)}}function I0(Pt,Vt){var Kt=-1,mn=Pt.length,Bn=mn-1;for(Vt=Vt===nt?mn:Vt;++Kt1?Pt[Vt-1]:nt;return Kt=typeof Kt=="function"?(Pt.pop(),Kt):nt,F1(Pt,Kt)});function U1(Pt){var Vt=Ln(Pt);return Vt.__chain__=!0,Vt}function Lv(Pt,Vt){return Vt(Pt),Pt}function A0(Pt,Vt){return Vt(Pt)}var Nv=Oo(function(Pt){var Vt=Pt.length,Kt=Vt?Pt[0]:0,mn=this.__wrapped__,Bn=function(zn){return Im(zn,Pt)};return Vt>1||this.__actions__.length||!(mn instanceof yo)||!tp(Kt)?this.thru(Bn):(mn=mn.slice(Kt,+Kt+(Vt?1:0)),mn.__actions__.push({func:A0,args:[Bn],thisArg:nt}),new Rs(mn,this.__chain__).thru(function(zn){return Vt&&!zn.length&&zn.push(nt),zn}))});function Fv(){return U1(this)}function Uv(){return new Rs(this.value(),this.__chain__)}function zv(){this.__values__===nt&&(this.__values__=tw(this.value()));var Pt=this.__index__>=this.__values__.length,Vt=Pt?nt:this.__values__[this.__index__++];return{done:Pt,value:Vt}}function Wv(){return this}function Vv(Pt){for(var Vt,Kt=this;Kt instanceof em;){var mn=B1(Kt);mn.__index__=0,mn.__values__=nt,Vt?Bn.__wrapped__=mn:Vt=mn;var Bn=mn;Kt=Kt.__wrapped__}return Bn.__wrapped__=Pt,Vt}function Hv(){var Pt=this.__wrapped__;if(Pt instanceof yo){var Vt=Pt;return this.__actions__.length&&(Vt=new yo(this)),Vt=Vt.reverse(),Vt.__actions__.push({func:A0,args:[e1],thisArg:nt}),new Rs(Vt,this.__chain__)}return this.thru(e1)}function Gv(){return Nu(this.__wrapped__,this.__actions__)}var qv=hm(function(Pt,Vt,Kt){Yo.call(Pt,Kt)?++Pt[Kt]:cu(Pt,Kt,1)});function Yv(Pt,Vt,Kt){var mn=Po(Pt)?Ym:V0;return Kt&&Tl(Pt,Vt,Kt)&&(Vt=nt),mn(Pt,_o(Vt,3))}function Kv(Pt,Vt){var Kt=Po(Pt)?Ps:my;return Kt(Pt,_o(Vt,3))}var Xv=tn(O1),Zv=tn(j1);function Jv(Pt,Vt){return As(C0(Pt,Vt),1)}function Qv(Pt,Vt){return As(C0(Pt,Vt),zt)}function e_(Pt,Vt,Kt){return Kt=Kt===nt?1:Lo(Kt),As(C0(Pt,Vt),Kt)}function z1(Pt,Vt){var Kt=Po(Pt)?ss:Yl;return Kt(Pt,_o(Vt,3))}function W1(Pt,Vt){var Kt=Po(Pt)?qm:m0;return Kt(Pt,_o(Vt,3))}var t_=hm(function(Pt,Vt,Kt){Yo.call(Pt,Kt)?Pt[Kt].push(Vt):cu(Pt,Kt,[Vt])});function n_(Pt,Vt,Kt,mn){Pt=Rl(Pt)?Pt:Vm(Pt),Kt=Kt&&!mn?Lo(Kt):0;var Bn=Pt.length;return Kt<0&&(Kt=xs(Bn+Kt,0)),B0(Pt)?Kt<=Bn&&Pt.indexOf(Vt,Kt)>-1:!!Bn&&Fl(Pt,Vt,Kt)>-1}var r_=po(function(Pt,Vt,Kt){var mn=-1,Bn=typeof Vt=="function",zn=Rl(Pt)?gr(Pt.length):[];return Yl(Pt,function(Yn){zn[++mn]=Bn?Do(Vt,Yn,Kt):xa(Yn,Vt,Kt)}),zn}),i_=hm(function(Pt,Vt,Kt){cu(Pt,Kt,Vt)});function C0(Pt,Vt){var Kt=Po(Pt)?ba:_d;return Kt(Pt,_o(Vt,3))}function o_(Pt,Vt,Kt,mn){return Pt==null?[]:(Po(Vt)||(Vt=Vt==null?[]:[Vt]),Kt=mn?nt:Kt,Po(Kt)||(Kt=Kt==null?[]:[Kt]),sm(Pt,Vt,Kt))}var a_=hm(function(Pt,Vt,Kt){Pt[Kt?0:1].push(Vt)},function(){return[[],[]]});function s_(Pt,Vt,Kt){var mn=Po(Pt)?ym:Cu,Bn=arguments.length<3;return mn(Pt,_o(Vt,4),Kt,Bn,Yl)}function l_(Pt,Vt,Kt){var mn=Po(Pt)?By:Cu,Bn=arguments.length<3;return mn(Pt,_o(Vt,4),Kt,Bn,m0)}function c_(Pt,Vt){var Kt=Po(Pt)?Ps:my;return Kt(Pt,M0(_o(Vt,3)))}function u_(Pt){var Vt=Po(Pt)?tm:b0;return Vt(Pt)}function h_(Pt,Vt,Kt){(Kt?Tl(Pt,Vt,Kt):Vt===nt)?Vt=1:Vt=Lo(Vt);var mn=Po(Pt)?ly:vy;return mn(Pt,Vt)}function d_(Pt){var Vt=Po(Pt)?f0:v0;return Vt(Pt)}function f_(Pt){if(Pt==null)return 0;if(Rl(Pt))return B0(Pt)?iu(Pt):Pt.length;var Vt=Ks(Pt);return Vt==Rn||Vt==$n?Pt.size:Bs(Pt).length}function p_(Pt,Vt,Kt){var mn=Po(Pt)?Lp:xy;return Kt&&Tl(Pt,Vt,Kt)&&(Vt=nt),mn(Pt,_o(Vt,3))}var m_=po(function(Pt,Vt){if(Pt==null)return[];var Kt=Vt.length;return Kt>1&&Tl(Pt,Vt[0],Vt[1])?Vt=[]:Kt>2&&Tl(Vt[0],Vt[1],Vt[2])&&(Vt=[Vt[0]]),sm(Pt,As(Vt,1),[])}),$0=Wy||function(){return ns.Date.now()};function g_(Pt,Vt){if(typeof Vt!="function")throw new Gs(at);return Pt=Lo(Pt),function(){if(--Pt<1)return Vt.apply(this,arguments)}}function V1(Pt,Vt,Kt){return Vt=Kt?nt:Vt,Vt=Pt&&Vt==null?Pt.length:Vt,ur(Pt,At,nt,nt,nt,nt,Vt)}function H1(Pt,Vt){var Kt;if(typeof Vt!="function")throw new Gs(at);return Pt=Lo(Pt),function(){return--Pt>0&&(Kt=Vt.apply(this,arguments)),Pt<=1&&(Vt=nt),Kt}}var r1=po(function(Pt,Vt,Kt){var mn=yt;if(Kt.length){var Bn=Vl(Kt,zm(r1));mn|=St}return ur(Pt,mn,Vt,Kt,Bn)}),G1=po(function(Pt,Vt,Kt){var mn=yt|bt;if(Kt.length){var Bn=Vl(Kt,zm(G1));mn|=St}return ur(Vt,mn,Pt,Kt,Bn)});function q1(Pt,Vt,Kt){Vt=Kt?nt:Vt;var mn=ur(Pt,vt,nt,nt,nt,nt,nt,Vt);return mn.placeholder=q1.placeholder,mn}function Y1(Pt,Vt,Kt){Vt=Kt?nt:Vt;var mn=ur(Pt,kt,nt,nt,nt,nt,nt,Vt);return mn.placeholder=Y1.placeholder,mn}function K1(Pt,Vt,Kt){var mn,Bn,zn,Yn,Jn,ar,Tr=0,Ar=!1,Mr=!1,Zr=!0;if(typeof Pt!="function")throw new Gs(at);Vt=pu(Vt)||0,fs(Kt)&&(Ar=!!Kt.leading,Mr="maxWait"in Kt,zn=Mr?xs(pu(Kt.maxWait)||0,Vt):zn,Zr="trailing"in Kt?!!Kt.trailing:Zr);function uo(Es){var Tu=mn,ip=Bn;return mn=Bn=nt,Tr=Es,Yn=Pt.apply(ip,Tu),Yn}function ko(Es){return Tr=Es,Jn=My(zo,Vt),Ar?uo(Es):Yn}function Fo(Es){var Tu=Es-ar,ip=Es-Tr,pw=Vt-Tu;return Mr?Ms(pw,zn-ip):pw}function So(Es){var Tu=Es-ar,ip=Es-Tr;return ar===nt||Tu>=Vt||Tu<0||Mr&&ip>=zn}function zo(){var Es=$0();if(So(Es))return Ho(Es);Jn=My(zo,Fo(Es))}function Ho(Es){return Jn=nt,Zr&&mn?uo(Es):(mn=Bn=nt,Yn)}function Ql(){Jn!==nt&&x0(Jn),Tr=0,mn=ar=Bn=Jn=nt}function Il(){return Jn===nt?Yn:Ho($0())}function _c(){var Es=$0(),Tu=So(Es);if(mn=arguments,Bn=this,ar=Es,Tu){if(Jn===nt)return ko(ar);if(Mr)return x0(Jn),Jn=My(zo,Vt),uo(ar)}return Jn===nt&&(Jn=My(zo,Vt)),Yn}return _c.cancel=Ql,_c.flush=Il,_c}var y_=po(function(Pt,Vt){return fy(Pt,1,Vt)}),b_=po(function(Pt,Vt,Kt){return fy(Pt,pu(Vt)||0,Kt)});function w_(Pt){return ur(Pt,Mt)}function P0(Pt,Vt){if(typeof Pt!="function"||Vt!=null&&typeof Vt!="function")throw new Gs(at);var Kt=function(){var mn=arguments,Bn=Vt?Vt.apply(this,mn):mn[0],zn=Kt.cache;if(zn.has(Bn))return zn.get(Bn);var Yn=Pt.apply(this,mn);return Kt.cache=zn.set(Bn,Yn)||zn,Yn};return Kt.cache=new(P0.Cache||Cl),Kt}P0.Cache=Cl;function M0(Pt){if(typeof Pt!="function")throw new Gs(at);return function(){var Vt=arguments;switch(Vt.length){case 0:return!Pt.call(this);case 1:return!Pt.call(this,Vt[0]);case 2:return!Pt.call(this,Vt[0],Vt[1]);case 3:return!Pt.call(this,Vt[0],Vt[1],Vt[2])}return!Pt.apply(this,Vt)}}function v_(Pt){return H1(2,Pt)}var __=_0(function(Pt,Vt){Vt=Vt.length==1&&Po(Vt[0])?ba(Vt[0],Vs(_o())):ba(As(Vt,1),Vs(_o()));var Kt=Vt.length;return po(function(mn){for(var Bn=-1,zn=Ms(mn.length,Kt);++Bn=Vt}),pm=Ro(function(){return arguments}())?Ro:function(Pt){return ys(Pt)&&Yo.call(Pt,"callee")&&!xm.call(Pt,"callee")},Po=gr.isArray,j_=yu?Vs(yu):ps;function Rl(Pt){return Pt!=null&&R0(Pt.length)&&!np(Pt)}function Ss(Pt){return ys(Pt)&&Rl(Pt)}function D_(Pt){return Pt===!0||Pt===!1||ys(Pt)&&$s(Pt)==cn}var Pp=Hy||m1,L_=Gu?Vs(Gu):ms;function N_(Pt){return ys(Pt)&&Pt.nodeType===1&&!Ry(Pt)}function F_(Pt){if(Pt==null)return!0;if(Rl(Pt)&&(Po(Pt)||typeof Pt=="string"||typeof Pt.splice=="function"||Pp(Pt)||Wm(Pt)||pm(Pt)))return!Pt.length;var Vt=Ks(Pt);if(Vt==Rn||Vt==$n)return!Pt.size;if(Py(Pt))return!Bs(Pt).length;for(var Kt in Pt)if(Yo.call(Pt,Kt))return!1;return!0}function U_(Pt,Vt){return hs(Pt,Vt)}function z_(Pt,Vt,Kt){Kt=typeof Kt=="function"?Kt:nt;var mn=Kt?Kt(Pt,Vt):nt;return mn===nt?hs(Pt,Vt,nt,Kt):!!mn}function o1(Pt){if(!ys(Pt))return!1;var Vt=$s(Pt);return Vt==an||Vt==En||typeof Pt.message=="string"&&typeof Pt.name=="string"&&!Ry(Pt)}function W_(Pt){return typeof Pt=="number"&&ny(Pt)}function np(Pt){if(!fs(Pt))return!1;var Vt=$s(Pt);return Vt==en||Vt==Tn||Vt==fn||Vt==gn}function Z1(Pt){return typeof Pt=="number"&&Pt==Lo(Pt)}function R0(Pt){return typeof Pt=="number"&&Pt>-1&&Pt%1==0&&Pt<=Ut}function fs(Pt){var Vt=typeof Pt;return Pt!=null&&(Vt=="object"||Vt=="function")}function ys(Pt){return Pt!=null&&typeof Pt=="object"}var J1=Dp?Vs(Dp):Ep;function V_(Pt,Vt){return Pt===Vt||ds(Pt,Vt,K0(Vt))}function H_(Pt,Vt,Kt){return Kt=typeof Kt=="function"?Kt:nt,ds(Pt,Vt,K0(Vt),Kt)}function G_(Pt){return Q1(Pt)&&Pt!=+Pt}function q_(Pt){if($w(Pt))throw new Eo(ot);return Tp(Pt)}function Y_(Pt){return Pt===null}function K_(Pt){return Pt==null}function Q1(Pt){return typeof Pt=="number"||ys(Pt)&&$s(Pt)==An}function Ry(Pt){if(!ys(Pt)||$s(Pt)!=kn)return!1;var Vt=qp(Pt);if(Vt===null)return!0;var Kt=Yo.call(Vt,"constructor")&&Vt.constructor;return typeof Kt=="function"&&Kt instanceof Kt&&yp.call(Kt)==Yu}var a1=Dl?Vs(Dl):Ip;function X_(Pt){return Z1(Pt)&&Pt>=-Ut&&Pt<=Ut}var ew=cs?Vs(cs):$m;function B0(Pt){return typeof Pt=="string"||!Po(Pt)&&ys(Pt)&&$s(Pt)==un}function Jl(Pt){return typeof Pt=="symbol"||ys(Pt)&&$s(Pt)==rn}var Wm=ws?Vs(ws):by;function Z_(Pt){return Pt===nt}function J_(Pt){return ys(Pt)&&Ks(Pt)==Mn}function Q_(Pt){return ys(Pt)&&$s(Pt)==Nn}var t2=ho(om),n2=ho(function(Pt,Vt){return Pt<=Vt});function tw(Pt){if(!Pt)return[];if(Rl(Pt))return B0(Pt)?ls(Pt):Ls(Pt);if(Ru&&Pt[Ru])return up(Pt[Ru]());var Vt=Ks(Pt),Kt=Vt==Rn?zp:Vt==$n?Wp:Vm;return Kt(Pt)}function rp(Pt){if(!Pt)return Pt===0?Pt:0;if(Pt=pu(Pt),Pt===zt||Pt===-zt){var Vt=Pt<0?-1:1;return Vt*Wt}return Pt===Pt?Pt:0}function Lo(Pt){var Vt=rp(Pt),Kt=Vt%1;return Vt===Vt?Kt?Vt-Kt:Vt:0}function nw(Pt){return Pt?ju(Lo(Pt),0,Nt):0}function pu(Pt){if(typeof Pt=="number")return Pt;if(Jl(Pt))return Ft;if(fs(Pt)){var Vt=typeof Pt.valueOf=="function"?Pt.valueOf():Pt;Pt=fs(Vt)?Vt+"":Vt}if(typeof Pt!="string")return Pt===0?Pt:+Pt;Pt=wm(Pt);var Kt=Hr.test(Pt);return Kt||jr.test(Pt)?jp(Pt.slice(2),Kt?2:8):cr.test(Pt)?Ft:+Pt}function rw(Pt){return Ml(Pt,Bl(Pt))}function r2(Pt){return Pt?ju(Lo(Pt),-Ut,Ut):Pt===0?Pt:0}function Qo(Pt){return Pt==null?"":js(Pt)}var i2=ep(function(Pt,Vt){if(Py(Vt)||Rl(Vt)){Ml(Vt,Fs(Vt),Pt);return}for(var Kt in Vt)Yo.call(Vt,Kt)&&Gl(Pt,Kt,Vt[Kt])}),iw=ep(function(Pt,Vt){Ml(Vt,Bl(Vt),Pt)}),O0=ep(function(Pt,Vt,Kt,mn){Ml(Vt,Bl(Vt),Pt,mn)}),o2=ep(function(Pt,Vt,Kt,mn){Ml(Vt,Fs(Vt),Pt,mn)}),s2=Oo(Im);function l2(Pt,Vt){var Kt=xu(Pt);return Vt==null?Kt:hy(Kt,Vt)}var c2=po(function(Pt,Vt){Pt=xo(Pt);var Kt=-1,mn=Vt.length,Bn=mn>2?Vt[2]:nt;for(Bn&&Tl(Vt[0],Vt[1],Bn)&&(mn=1);++Kt1),zn}),Ml(Pt,Wo(Pt),Kt),mn&&(Kt=yl(Kt,ht|dt|pt,Jr));for(var Bn=Vt.length;Bn--;)Ey(Kt,Vt[Bn]);return Kt});function C2(Pt,Vt){return aw(Pt,M0(_o(Vt)))}var $2=Oo(function(Pt,Vt){return Pt==null?{}:lm(Pt,Vt)});function aw(Pt,Vt){if(Pt==null)return{};var Kt=ba(Wo(Pt),function(mn){return[mn]});return Vt=_o(Vt),Rm(Pt,Kt,function(mn,Bn){return Vt(mn,Bn[0])})}function P2(Pt,Vt,Kt){Vt=Uu(Vt,Pt);var mn=-1,Bn=Vt.length;for(Bn||(Bn=1,Pt=nt);++mnVt){var mn=Pt;Pt=Vt,Vt=mn}if(Kt||Pt%1||Vt%1){var Bn=ry();return Ms(Pt+Bn*(Vt-Pt+Op("1e-"+((Bn+"").length-1))),Vt)}return uu(Pt,Vt)}var z2=Bt(function(Pt,Vt,Kt){return Vt=Vt.toLowerCase(),Pt+(Kt?cw(Vt):Vt)});function cw(Pt){return c1(Qo(Pt).toLowerCase())}function uw(Pt){return Pt=Qo(Pt),Pt&&Pt.replace(eo,Ly).replace(es,"")}function W2(Pt,Vt,Kt){Pt=Qo(Pt),Vt=js(Vt);var mn=Pt.length;Kt=Kt===nt?mn:ju(Lo(Kt),0,mn);var Bn=Kt;return Kt-=Vt.length,Kt>=0&&Pt.slice(Kt,Bn)==Vt}function V2(Pt){return Pt=Qo(Pt),Pt&&Dr.test(Pt)?Pt.replace(Er,Ny):Pt}function H2(Pt){return Pt=Qo(Pt),Pt&&wo.test(Pt)?Pt.replace(Or,"\\$&"):Pt}var G2=Bt(function(Pt,Vt,Kt){return Pt+(Kt?"-":"")+Vt.toLowerCase()}),q2=Bt(function(Pt,Vt,Kt){return Pt+(Kt?" ":"")+Vt.toLowerCase()}),Y2=E0("toLowerCase");function K2(Pt,Vt,Kt){Pt=Qo(Pt),Vt=Lo(Vt);var mn=Vt?iu(Pt):0;if(!Vt||mn>=Vt)return Pt;var Bn=(Vt-mn)/2;return Ur(Xp(Bn),Kt)+Pt+Ur(Kp(Bn),Kt)}function X2(Pt,Vt,Kt){Pt=Qo(Pt),Vt=Lo(Vt);var mn=Vt?iu(Pt):0;return Vt&&mn>>0,Kt?(Pt=Qo(Pt),Pt&&(typeof Vt=="string"||Vt!=null&&!a1(Vt))&&(Vt=js(Vt),!Vt&&qu(Pt))?zu(ls(Pt),0,Kt):Pt.split(Vt,Kt)):[]}var r4=Bt(function(Pt,Vt,Kt){return Pt+(Kt?" ":"")+c1(Vt)});function i4(Pt,Vt,Kt){return Pt=Qo(Pt),Kt=Kt==null?0:ju(Lo(Kt),0,Pt.length),Vt=js(Vt),Pt.slice(Kt,Kt+Vt.length)==Vt}function o4(Pt,Vt,Kt){var mn=Ln.templateSettings;Kt&&Tl(Pt,Vt,Kt)&&(Vt=nt),Pt=Qo(Pt),Vt=O0({},Vt,mn,or);var Bn=O0({},Vt.imports,mn.imports,or),zn=Fs(Bn),Yn=Hs(Bn,zn),Jn,ar,Tr=0,Ar=Vt.interpolate||Qr,Mr="__p += '",Zr=Ts((Vt.escape||Qr).source+"|"+Ar.source+"|"+(Ar===Vr?nr:Qr).source+"|"+(Vt.evaluate||Qr).source+"|$","g"),uo="//# sourceURL="+(Yo.call(Vt,"sourceURL")?(Vt.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Xs+"]")+` `;Pt.replace(Zr,function(So,zo,Ho,Ql,Il,_c){return Ho||(Ho=Ql),Mr+=Pt.slice(Tr,_c).replace(_i,Xm),zo&&(Jn=!0,Mr+=`' + __e(`+zo+`) + '`),Il&&(ar=!0,Mr+=`'; @@ -7108,9 +7108,9 @@ function print() { __p += __j.call(arguments, '') } `,_excluded$x=["localeText"],MuiPickersAdapterContext=reactExports.createContext(null),LocalizationProvider=function(et){var nt;const{localeText:rt}=et,it=_objectWithoutPropertiesLoose$g(et,_excluded$x),{utils:ot,localeText:at}=(nt=reactExports.useContext(MuiPickersAdapterContext))!=null?nt:{utils:void 0,localeText:void 0},st=useThemeProps({props:it,name:"MuiLocalizationProvider"}),{children:lt,dateAdapter:ct,dateFormats:ut,dateLibInstance:ht,adapterLocale:dt,localeText:pt}=st,mt=reactExports.useMemo(()=>_extends$r({},pt,at,rt),[pt,at,rt]),gt=reactExports.useMemo(()=>{if(!ct)return ot||null;const wt=new ct({locale:dt,formats:ut,instance:ht});if(!wt.isMUIAdapter)throw new Error(["MUI: The date adapter should be imported from `@mui/x-date-pickers` or `@mui/x-date-pickers-pro`, not from `@date-io`","For example, `import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'` instead of `import AdapterDayjs from '@date-io/dayjs'`","More information on the installation documentation: https://mui.com/x/react-date-pickers/getting-started/#installation"].join(` `));return wt},[ct,dt,ut,ht,ot]),yt=reactExports.useMemo(()=>gt?{minDate:gt.date("1900-01-01T00:00:00.000"),maxDate:gt.date("2099-12-31T00:00:00.000")}:null,[gt]),bt=reactExports.useMemo(()=>({utils:gt,defaultDates:yt,localeText:mt}),[yt,gt,mt]);return jsxRuntimeExports.jsx(MuiPickersAdapterContext.Provider,{value:bt,children:lt})},getPickersLocalization=tt=>({components:{MuiLocalizationProvider:{defaultProps:{localeText:_extends$r({},tt)}}}}),enUSPickers={previousMonth:"Previous month",nextMonth:"Next month",openPreviousView:"open previous view",openNextView:"open next view",calendarViewSwitchingButtonAriaLabel:tt=>tt==="year"?"year view is open, switch to calendar view":"calendar view is open, switch to year view",start:"Start",end:"End",cancelButtonLabel:"Cancel",clearButtonLabel:"Clear",okButtonLabel:"OK",todayButtonLabel:"Today",datePickerToolbarTitle:"Select date",dateTimePickerToolbarTitle:"Select date & time",timePickerToolbarTitle:"Select time",dateRangePickerToolbarTitle:"Select date range",clockLabelText:(tt,et,nt)=>`Select ${tt}. ${et===null?"No time selected":`Selected time is ${nt.format(et,"fullTime")}`}`,hoursClockNumberText:tt=>`${tt} hours`,minutesClockNumberText:tt=>`${tt} minutes`,secondsClockNumberText:tt=>`${tt} seconds`,selectViewText:tt=>`Select ${tt}`,calendarWeekNumberHeaderLabel:"Week number",calendarWeekNumberHeaderText:"#",calendarWeekNumberAriaLabelText:tt=>`Week ${tt}`,calendarWeekNumberText:tt=>`${tt}`,openDatePickerDialogue:(tt,et)=>tt!==null&&et.isValid(tt)?`Choose date, selected date is ${et.format(tt,"fullDate")}`:"Choose date",openTimePickerDialogue:(tt,et)=>tt!==null&&et.isValid(tt)?`Choose time, selected time is ${et.format(tt,"fullTime")}`:"Choose time",timeTableLabel:"pick time",dateTableLabel:"pick date",fieldYearPlaceholder:tt=>"Y".repeat(tt.digitAmount),fieldMonthPlaceholder:tt=>tt.contentType==="letter"?"MMMM":"MM",fieldDayPlaceholder:()=>"DD",fieldWeekDayPlaceholder:tt=>tt.contentType==="letter"?"EEEE":"EE",fieldHoursPlaceholder:()=>"hh",fieldMinutesPlaceholder:()=>"mm",fieldSecondsPlaceholder:()=>"ss",fieldMeridiemPlaceholder:()=>"aa"},DEFAULT_LOCALE=enUSPickers;getPickersLocalization(enUSPickers);const useLocalizationContext=()=>{const tt=reactExports.useContext(MuiPickersAdapterContext);if(tt===null)throw new Error(["MUI: Can not find the date and time pickers localization context.","It looks like you forgot to wrap your component in LocalizationProvider.","This can also happen if you are bundling multiple versions of the `@mui/x-date-pickers` package"].join(` `));if(tt.utils===null)throw new Error(["MUI: Can not find the date and time pickers adapter from its localization context.","It looks like you forgot to pass a `dateAdapter` to your LocalizationProvider."].join(` -`));const et=reactExports.useMemo(()=>_extends$r({},DEFAULT_LOCALE,tt.localeText),[tt.localeText]);return reactExports.useMemo(()=>_extends$r({},tt,{localeText:et}),[tt,et])},useUtils=()=>useLocalizationContext().utils,useDefaultDates=()=>useLocalizationContext().defaultDates,useLocaleText=()=>useLocalizationContext().localeText,useNow=tt=>{const et=useUtils(),nt=reactExports.useRef();return nt.current===void 0&&(nt.current=et.dateWithTimezone(void 0,tt)),nt.current},ArrowDropDownIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),ArrowLeftIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"}),"ArrowLeft"),ArrowRightIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"}),"ArrowRight"),CalendarIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"}),"Calendar");createSvgIcon(jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),jsxRuntimeExports.jsx("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"})]}),"Clock");createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"}),"DateRange");createSvgIcon(jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),jsxRuntimeExports.jsx("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"})]}),"Time");function getPickersArrowSwitcherUtilityClass(tt){return generateUtilityClass("MuiPickersArrowSwitcher",tt)}generateUtilityClasses("MuiPickersArrowSwitcher",["root","spacer","button"]);const _excluded$w=["children","className","slots","slotProps","isNextDisabled","isNextHidden","onGoToNext","nextLabel","isPreviousDisabled","isPreviousHidden","onGoToPrevious","previousLabel"],_excluded2$6=["ownerState"],_excluded3$3=["ownerState"],PickersArrowSwitcherRoot=styled$1("div",{name:"MuiPickersArrowSwitcher",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"flex"}),PickersArrowSwitcherSpacer=styled$1("div",{name:"MuiPickersArrowSwitcher",slot:"Spacer",overridesResolver:(tt,et)=>et.spacer})(({theme:tt})=>({width:tt.spacing(3)})),PickersArrowSwitcherButton=styled$1(IconButton$2,{name:"MuiPickersArrowSwitcher",slot:"Button",overridesResolver:(tt,et)=>et.button})(({ownerState:tt})=>_extends$r({},tt.hidden&&{visibility:"hidden"})),useUtilityClasses$f=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],spacer:["spacer"],button:["button"]},getPickersArrowSwitcherUtilityClass,et)},PickersArrowSwitcher=reactExports.forwardRef(function(et,nt){var rt,it,ot,at;const lt=useTheme().direction==="rtl",ct=useThemeProps({props:et,name:"MuiPickersArrowSwitcher"}),{children:ut,className:ht,slots:dt,slotProps:pt,isNextDisabled:mt,isNextHidden:gt,onGoToNext:yt,nextLabel:bt,isPreviousDisabled:wt,isPreviousHidden:vt,onGoToPrevious:kt,previousLabel:St}=ct,Tt=_objectWithoutPropertiesLoose$g(ct,_excluded$w),At=ct,Et=useUtilityClasses$f(At),Mt={isDisabled:mt,isHidden:gt,goTo:yt,label:bt},Lt={isDisabled:wt,isHidden:vt,goTo:kt,label:St},[jt,Rt]=lt?[Mt,Lt]:[Lt,Mt],$t=(rt=dt==null?void 0:dt.previousIconButton)!=null?rt:PickersArrowSwitcherButton,xt=useSlotProps({elementType:$t,externalSlotProps:pt==null?void 0:pt.previousIconButton,additionalProps:{size:"medium",title:jt.label,"aria-label":jt.label,disabled:jt.isDisabled,edge:"end",onClick:jt.goTo},ownerState:_extends$r({},At,{hidden:jt.isHidden}),className:Et.button}),It=(it=dt==null?void 0:dt.nextIconButton)!=null?it:PickersArrowSwitcherButton,Ot=useSlotProps({elementType:It,externalSlotProps:pt==null?void 0:pt.nextIconButton,additionalProps:{size:"medium",title:Rt.label,"aria-label":Rt.label,disabled:Rt.isDisabled,edge:"start",onClick:Rt.goTo},ownerState:_extends$r({},At,{hidden:Rt.isHidden}),className:Et.button}),zt=(ot=dt==null?void 0:dt.leftArrowIcon)!=null?ot:ArrowLeftIcon,Ut=useSlotProps({elementType:zt,externalSlotProps:pt==null?void 0:pt.leftArrowIcon,additionalProps:{fontSize:"inherit"},ownerState:void 0}),Wt=_objectWithoutPropertiesLoose$g(Ut,_excluded2$6),Ft=(at=dt==null?void 0:dt.rightArrowIcon)!=null?at:ArrowRightIcon,Nt=useSlotProps({elementType:Ft,externalSlotProps:pt==null?void 0:pt.rightArrowIcon,additionalProps:{fontSize:"inherit"},ownerState:void 0}),Ct=_objectWithoutPropertiesLoose$g(Nt,_excluded3$3);return jsxRuntimeExports.jsxs(PickersArrowSwitcherRoot,_extends$r({ref:nt,className:clsx(Et.root,ht),ownerState:At},Tt,{children:[jsxRuntimeExports.jsx($t,_extends$r({},xt,{children:lt?jsxRuntimeExports.jsx(Ft,_extends$r({},Ct)):jsxRuntimeExports.jsx(zt,_extends$r({},Wt))})),ut?jsxRuntimeExports.jsx(Typography$1,{variant:"subtitle1",component:"span",children:ut}):jsxRuntimeExports.jsx(PickersArrowSwitcherSpacer,{className:Et.spacer,ownerState:At}),jsxRuntimeExports.jsx(It,_extends$r({},Ot,{children:lt?jsxRuntimeExports.jsx(zt,_extends$r({},Wt)):jsxRuntimeExports.jsx(Ft,_extends$r({},Ct))}))]}))}),areViewsEqual=(tt,et)=>tt.length!==et.length?!1:et.every(nt=>tt.includes(nt)),applyDefaultViewProps=({openTo:tt,defaultOpenTo:et,views:nt,defaultViews:rt})=>{const it=nt??rt;let ot;if(tt!=null)ot=tt;else if(it.includes(et))ot=et;else if(it.length>0)ot=it[0];else throw new Error("MUI: The `views` prop must contain at least one view");return{views:it,openTo:ot}},timeViews=["hours","minutes","seconds"],isTimeView=tt=>timeViews.includes(tt),getSecondsInDay=(tt,et)=>et.getHours(tt)*3600+et.getMinutes(tt)*60+et.getSeconds(tt),createIsAfterIgnoreDatePart=(tt,et)=>(nt,rt)=>tt?et.isAfter(nt,rt):getSecondsInDay(nt,et)>getSecondsInDay(rt,et);function useViews({onChange:tt,onViewChange:et,openTo:nt,view:rt,views:it,autoFocus:ot,focusedView:at,onFocusedViewChange:st}){var lt,ct;const ut=reactExports.useRef(nt),ht=reactExports.useRef(it),dt=reactExports.useRef(it.includes(nt)?nt:it[0]),[pt,mt]=useControlled({name:"useViews",state:"view",controlled:rt,default:dt.current}),gt=reactExports.useRef(ot?pt:null),[yt,bt]=useControlled({name:"useViews",state:"focusedView",controlled:at,default:gt.current});reactExports.useEffect(()=>{(ut.current&&ut.current!==nt||ht.current&&ht.current.some(Lt=>!it.includes(Lt)))&&(mt(it.includes(nt)?nt:it[0]),ht.current=it,ut.current=nt)},[nt,mt,pt,it]);const wt=it.indexOf(pt),vt=(lt=it[wt-1])!=null?lt:null,kt=(ct=it[wt+1])!=null?ct:null,St=useEventCallback((Lt,jt)=>{bt(jt?Lt:Rt=>Lt===Rt?null:Rt),st==null||st(Lt,jt)}),Tt=useEventCallback(Lt=>{Lt!==pt&&(mt(Lt),St(Lt,!0),et&&et(Lt))}),At=useEventCallback(()=>{kt&&Tt(kt),St(kt,!0)}),Et=useEventCallback((Lt,jt,Rt)=>{const $t=jt==="finish",xt=Rt?it.indexOf(Rt){tt(Lt,jt?"partial":"finish",Rt),jt&&(Tt(jt),St(jt,!0))});return{view:pt,setView:Tt,focusedView:yt,setFocusedView:St,nextView:kt,previousView:vt,defaultView:dt.current,goToNextView:At,setValueAndGoToNextView:Et,setValueAndGoToView:Mt}}function useNextMonthDisabled(tt,{disableFuture:et,maxDate:nt,timezone:rt}){const it=useUtils();return reactExports.useMemo(()=>{const ot=it.dateWithTimezone(void 0,rt),at=it.startOfMonth(et&&it.isBefore(ot,nt)?ot:nt);return!it.isAfter(at,tt)},[et,nt,tt,it,rt])}function usePreviousMonthDisabled(tt,{disablePast:et,minDate:nt,timezone:rt}){const it=useUtils();return reactExports.useMemo(()=>{const ot=it.dateWithTimezone(void 0,rt),at=it.startOfMonth(et&&it.isAfter(ot,nt)?ot:nt);return!it.isBefore(at,tt)},[et,nt,tt,it,rt])}const DAY_SIZE=36,DAY_MARGIN=2,DIALOG_WIDTH=320,VIEW_HEIGHT=358,PickerViewRoot=styled$1("div")({overflow:"hidden",width:DIALOG_WIDTH,maxHeight:VIEW_HEIGHT,display:"flex",flexDirection:"column",margin:"0 auto"}),useValueWithTimezone=({timezone:tt,value:et,defaultValue:nt,onChange:rt,valueManager:it})=>{var ot,at;const st=useUtils(),lt=reactExports.useRef(nt),ct=(ot=et??lt.current)!=null?ot:it.emptyValue,ut=reactExports.useMemo(()=>it.getTimezone(st,ct),[st,it,ct]),ht=useEventCallback(gt=>ut==null?gt:it.setTimezone(st,ut,gt)),dt=(at=tt??ut)!=null?at:"default",pt=reactExports.useMemo(()=>it.setTimezone(st,dt,ct),[it,st,dt,ct]),mt=useEventCallback((gt,...yt)=>{const bt=ht(gt);rt==null||rt(bt,...yt)});return{value:pt,handleValueChange:mt,timezone:dt}},useControlledValueWithTimezone=({name:tt,timezone:et,value:nt,defaultValue:rt,onChange:it,valueManager:ot})=>{const[at,st]=useControlled({name:tt,state:"value",controlled:nt,default:rt??ot.emptyValue}),lt=useEventCallback((ct,...ut)=>{st(ct),it==null||it(ct,...ut)});return useValueWithTimezone({timezone:et,value:at,defaultValue:void 0,onChange:lt,valueManager:ot})},findClosestEnabledDate=({date:tt,disableFuture:et,disablePast:nt,maxDate:rt,minDate:it,isDateDisabled:ot,utils:at,timezone:st})=>{const lt=at.startOfDay(at.dateWithTimezone(void 0,st));nt&&at.isBefore(it,lt)&&(it=lt),et&&at.isAfter(rt,lt)&&(rt=lt);let ct=tt,ut=tt;for(at.isBefore(tt,it)&&(ct=it,ut=null),at.isAfter(tt,rt)&&(ut&&(ut=rt),ct=null);ct||ut;){if(ct&&at.isAfter(ct,rt)&&(ct=null),ut&&at.isBefore(ut,it)&&(ut=null),ct){if(!ot(ct))return ct;ct=at.addDays(ct,1)}if(ut){if(!ot(ut))return ut;ut=at.addDays(ut,-1)}}return null},replaceInvalidDateByNull=(tt,et)=>et==null||!tt.isValid(et)?null:et,applyDefaultDate=(tt,et,nt)=>et==null||!tt.isValid(et)?nt:et,areDatesEqual$1=(tt,et,nt)=>!tt.isValid(et)&&et!=null&&!tt.isValid(nt)&&nt!=null?!0:tt.isEqual(et,nt),getMonthsInYear=(tt,et)=>{const rt=[tt.startOfYear(et)];for(;rt.length<12;){const it=rt[rt.length-1];rt.push(tt.addMonths(it,1))}return rt},mergeDateAndTime=(tt,et,nt)=>{let rt=et;return rt=tt.setHours(rt,tt.getHours(nt)),rt=tt.setMinutes(rt,tt.getMinutes(nt)),rt=tt.setSeconds(rt,tt.getSeconds(nt)),rt},getTodayDate=(tt,et,nt)=>nt==="date"?tt.startOfDay(tt.dateWithTimezone(void 0,et)):tt.dateWithTimezone(void 0,et),dateViews=["year","month","day"],isDatePickerView=tt=>dateViews.includes(tt),resolveDateFormat=(tt,{format:et,views:nt},rt)=>{if(et!=null)return et;const it=tt.formats;return areViewsEqual(nt,["year"])?it.year:areViewsEqual(nt,["month"])?it.month:areViewsEqual(nt,["day"])?it.dayOfMonth:areViewsEqual(nt,["month","year"])?`${it.month} ${it.year}`:areViewsEqual(nt,["day","month"])?`${it.month} ${it.dayOfMonth}`:rt?/en/.test(tt.getCurrentLocaleCode())?it.normalDateWithWeekday:it.normalDate:it.keyboardDate},SECTION_TYPE_GRANULARITY={year:1,month:2,day:3,hours:4,minutes:5,seconds:6,milliseconds:7},getSectionTypeGranularity=tt=>Math.max(...tt.map(et=>{var nt;return(nt=SECTION_TYPE_GRANULARITY[et.type])!=null?nt:1})),roundDate=(tt,et,nt)=>{if(et===SECTION_TYPE_GRANULARITY.year)return tt.startOfYear(nt);if(et===SECTION_TYPE_GRANULARITY.month)return tt.startOfMonth(nt);if(et===SECTION_TYPE_GRANULARITY.day)return tt.startOfDay(nt);let rt=nt;return et{var ot;let at=it?it():roundDate(et,nt,getTodayDate(et,rt));tt.minDate!=null&&et.isAfterDay(tt.minDate,at)&&(at=roundDate(et,nt,tt.minDate)),tt.maxDate!=null&&et.isBeforeDay(tt.maxDate,at)&&(at=roundDate(et,nt,tt.maxDate));const st=createIsAfterIgnoreDatePart((ot=tt.disableIgnoringDatePartForTimeValidation)!=null?ot:!1,et);return tt.minTime!=null&&st(tt.minTime,at)&&(at=roundDate(et,nt,tt.disableIgnoringDatePartForTimeValidation?tt.minTime:mergeDateAndTime(et,at,tt.minTime))),tt.maxTime!=null&&st(at,tt.maxTime)&&(at=roundDate(et,nt,tt.disableIgnoringDatePartForTimeValidation?tt.maxTime:mergeDateAndTime(et,at,tt.maxTime))),at},getDateSectionConfigFromFormatToken=(tt,et)=>{const nt=tt.formatTokenMap[et];if(nt==null)throw new Error([`MUI: The token "${et}" is not supported by the Date and Time Pickers.`,"Please try using another token or open an issue on https://github.com/mui/mui-x/issues/new/choose if you think it should be supported."].join(` -`));return typeof nt=="string"?{type:nt,contentType:nt==="meridiem"?"letter":"digit",maxLength:void 0}:{type:nt.sectionType,contentType:nt.contentType,maxLength:nt.maxLength}},getDeltaFromKeyCode=tt=>{switch(tt){case"ArrowUp":return 1;case"ArrowDown":return-1;case"PageUp":return 5;case"PageDown":return-5;default:return 0}},getDaysInWeekStr=(tt,et,nt)=>{const rt=[],it=tt.dateWithTimezone(void 0,et),ot=tt.startOfWeek(it),at=tt.endOfWeek(it);let st=ot;for(;tt.isBefore(st,at);)rt.push(st),st=tt.addDays(st,1);return rt.map(lt=>tt.formatByString(lt,nt))},getLetterEditingOptions=(tt,et,nt,rt)=>{switch(nt){case"month":return getMonthsInYear(tt,tt.dateWithTimezone(void 0,et)).map(it=>tt.formatByString(it,rt));case"weekDay":return getDaysInWeekStr(tt,et,rt);case"meridiem":{const it=tt.dateWithTimezone(void 0,et);return[tt.startOfDay(it),tt.endOfDay(it)].map(ot=>tt.formatByString(ot,rt))}default:return[]}},cleanLeadingZeros=(tt,et,nt)=>{let rt=et;for(rt=Number(rt).toString();rt.length{if(it.type==="day"&&it.contentType==="digit-with-letter"){const at=tt.setDate(rt.longestMonth,nt);return tt.formatByString(at,it.format)}const ot=nt.toString();return it.hasLeadingZerosInInput?cleanLeadingZeros(tt,ot,it.maxLength):ot},adjustSectionValue=(tt,et,nt,rt,it,ot,at)=>{const st=getDeltaFromKeyCode(rt),lt=rt==="Home",ct=rt==="End",ut=nt.value===""||lt||ct,ht=()=>{const pt=it[nt.type]({currentDate:ot,format:nt.format,contentType:nt.contentType}),mt=wt=>cleanDigitSectionValue(tt,et,wt,pt,nt),gt=nt.type==="minutes"&&at!=null&&at.minutesStep?at.minutesStep:1;let bt=parseInt(nt.value,10)+st*gt;if(ut){if(nt.type==="year"&&!ct&&!lt)return tt.formatByString(tt.dateWithTimezone(void 0,et),nt.format);st>0||lt?bt=pt.minimum:bt=pt.maximum}return bt%gt!==0&&((st<0||lt)&&(bt+=gt-(gt+bt)%gt),(st>0||ct)&&(bt-=bt%gt)),bt>pt.maximum?mt(pt.minimum+(bt-pt.maximum-1)%(pt.maximum-pt.minimum+1)):bt{const pt=getLetterEditingOptions(tt,et,nt.type,nt.format);if(pt.length===0)return nt.value;if(ut)return st>0||lt?pt[0]:pt[pt.length-1];const gt=(pt.indexOf(nt.value)+pt.length+st)%pt.length;return pt[gt]};return nt.contentType==="digit"||nt.contentType==="digit-with-letter"?ht():dt()},getSectionVisibleValue=(tt,et)=>{let nt=tt.value||tt.placeholder;const rt=et==="non-input"?tt.hasLeadingZerosInFormat:tt.hasLeadingZerosInInput;return et==="non-input"&&tt.hasLeadingZerosInInput&&!tt.hasLeadingZerosInFormat&&(nt=Number(nt).toString()),["input-rtl","input-ltr"].includes(et)&&tt.contentType==="digit"&&!rt&&nt.length===1&&(nt=`${nt}‎`),et==="input-rtl"&&(nt=`⁨${nt}⁩`),nt},cleanString=tt=>tt.replace(/[\u2066\u2067\u2068\u2069]/g,""),addPositionPropertiesToSections=(tt,et)=>{let nt=0,rt=et?1:0;const it=[];for(let ot=0;ot{switch(rt.type){case"year":return nt.fieldYearPlaceholder({digitAmount:tt.formatByString(tt.dateWithTimezone(void 0,et),it).length});case"month":return nt.fieldMonthPlaceholder({contentType:rt.contentType});case"day":return nt.fieldDayPlaceholder();case"weekDay":return nt.fieldWeekDayPlaceholder({contentType:rt.contentType});case"hours":return nt.fieldHoursPlaceholder();case"minutes":return nt.fieldMinutesPlaceholder();case"seconds":return nt.fieldSecondsPlaceholder();case"meridiem":return nt.fieldMeridiemPlaceholder();default:return it}},changeSectionValueFormat=(tt,et,nt,rt)=>tt.formatByString(tt.parse(et,nt),rt),isFourDigitYearFormat=(tt,et,nt)=>tt.formatByString(tt.dateWithTimezone(void 0,et),nt).length===4,doesSectionFormatHaveLeadingZeros=(tt,et,nt,rt,it)=>{if(nt!=="digit")return!1;const ot=tt.dateWithTimezone(void 0,et);switch(rt){case"year":return isFourDigitYearFormat(tt,et,it)?tt.formatByString(tt.setYear(ot,1),it)==="0001":tt.formatByString(tt.setYear(ot,2001),it)==="01";case"month":return tt.formatByString(tt.startOfYear(ot),it).length>1;case"day":return tt.formatByString(tt.startOfMonth(ot),it).length>1;case"weekDay":return tt.formatByString(tt.startOfWeek(ot),it).length>1;case"hours":return tt.formatByString(tt.setHours(ot,1),it).length>1;case"minutes":return tt.formatByString(tt.setMinutes(ot,1),it).length>1;case"seconds":return tt.formatByString(tt.setMinutes(ot,1),it).length>1;default:throw new Error("Invalid section type")}},getEscapedPartsFromFormat=(tt,et)=>{const nt=[],{start:rt,end:it}=tt.escapedCharacters,ot=new RegExp(`(\\${rt}[^\\${it}]*\\${it})+`,"g");let at=null;for(;at=ot.exec(et);)nt.push({start:at.index,end:ot.lastIndex-1});return nt},splitFormatIntoSections=(tt,et,nt,rt,it,ot,at,st)=>{let lt="";const ct=[],ut=tt.date(),ht=vt=>{if(vt==="")return null;const kt=getDateSectionConfigFromFormatToken(tt,vt),St=doesSectionFormatHaveLeadingZeros(tt,et,kt.contentType,kt.type,vt),Tt=at?St:kt.contentType==="digit",At=it!=null&&tt.isValid(it);let Et=At?tt.formatByString(it,vt):"",Mt=null;if(Tt)if(St)Mt=Et===""?tt.formatByString(ut,vt).length:Et.length;else{if(kt.maxLength==null)throw new Error(`MUI: The token ${vt} should have a 'maxDigitNumber' property on it's adapter`);Mt=kt.maxLength,At&&(Et=cleanLeadingZeros(tt,Et,Mt))}return ct.push(_extends$r({},kt,{format:vt,maxLength:Mt,value:Et,placeholder:getSectionPlaceholder(tt,et,nt,kt,vt),hasLeadingZeros:St,hasLeadingZerosInFormat:St,hasLeadingZerosInInput:Tt,startSeparator:ct.length===0?lt:"",endSeparator:"",modified:!1})),null};let dt=10,pt=rt,mt=tt.expandFormat(rt);for(;mt!==pt;)if(pt=mt,mt=tt.expandFormat(pt),dt-=1,dt<0)throw new Error("MUI: The format expansion seems to be enter in an infinite loop. Please open an issue with the format passed to the picker component");const gt=mt,yt=getEscapedPartsFromFormat(tt,gt),bt=new RegExp(`^(${Object.keys(tt.formatTokenMap).join("|")})`);let wt="";for(let vt=0;vtEt.start<=vt&&Et.end>=vt),St=gt[vt],Tt=kt!=null,At=`${wt}${gt.slice(vt)}`;!Tt&&St.match(/([A-Za-z]+)/)&&bt.test(At)?wt+=St:Tt&&(kt==null?void 0:kt.start)===vt||(kt==null?void 0:kt.end)===vt||(ht(wt),wt="",ct.length===0?lt+=St:ct[ct.length-1].endSeparator+=St)}return ht(wt),ct.map(vt=>{const kt=St=>{let Tt=St;return st&&Tt!==null&&Tt.includes(" ")&&(Tt=`⁩${Tt}⁦`),ot==="spacious"&&["/",".","-"].includes(Tt)&&(Tt=` ${Tt} `),Tt};return vt.startSeparator=kt(vt.startSeparator),vt.endSeparator=kt(vt.endSeparator),vt})},getDateFromDateSections=(tt,et)=>{const nt=et.some(st=>st.type==="day"),rt=[],it=[];for(let st=0;st{const rt=tt.map(it=>{const ot=getSectionVisibleValue(it,et?"input-rtl":"input-ltr");return`${it.startSeparator}${ot}${it.endSeparator}`}).join("");return et?`⁦${rt}⁩`:rt},getSectionsBoundaries=(tt,et)=>{const nt=tt.dateWithTimezone(void 0,et),rt=tt.endOfYear(nt),{maxDaysInMonth:it,longestMonth:ot}=getMonthsInYear(tt,nt).reduce((at,st)=>{const lt=tt.getDaysInMonth(st);return lt>at.maxDaysInMonth?{maxDaysInMonth:lt,longestMonth:st}:at},{maxDaysInMonth:0,longestMonth:null});return{year:({format:at})=>({minimum:0,maximum:isFourDigitYearFormat(tt,et,at)?9999:99}),month:()=>({minimum:1,maximum:tt.getMonth(rt)+1}),day:({currentDate:at})=>({minimum:1,maximum:at!=null&&tt.isValid(at)?tt.getDaysInMonth(at):it,longestMonth:ot}),weekDay:({format:at,contentType:st})=>{if(st==="digit"){const lt=getDaysInWeekStr(tt,et,at).map(Number);return{minimum:Math.min(...lt),maximum:Math.max(...lt)}}return{minimum:1,maximum:7}},hours:({format:at})=>{const st=tt.getHours(rt);return tt.formatByString(tt.endOfDay(nt),at)!==st.toString()?{minimum:1,maximum:Number(tt.formatByString(tt.startOfDay(nt),at))}:{minimum:0,maximum:st}},minutes:()=>({minimum:0,maximum:tt.getMinutes(rt)}),seconds:()=>({minimum:0,maximum:tt.getSeconds(rt)}),meridiem:()=>({minimum:0,maximum:0})}},transferDateSectionValue=(tt,et,nt,rt,it)=>{switch(nt.type){case"year":return tt.setYear(it,tt.getYear(rt));case"month":return tt.setMonth(it,tt.getMonth(rt));case"weekDay":{const ot=getDaysInWeekStr(tt,et,nt.format),at=tt.formatByString(rt,nt.format),st=ot.indexOf(at),ct=ot.indexOf(nt.value)-st;return tt.addDays(rt,ct)}case"day":return tt.setDate(it,tt.getDate(rt));case"meridiem":{const ot=tt.getHours(rt)<12,at=tt.getHours(it);return ot&&at>=12?tt.addHours(it,-12):!ot&&at<12?tt.addHours(it,12):it}case"hours":return tt.setHours(it,tt.getHours(rt));case"minutes":return tt.setMinutes(it,tt.getMinutes(rt));case"seconds":return tt.setSeconds(it,tt.getSeconds(rt));default:return it}},reliableSectionModificationOrder={year:1,month:2,day:3,weekDay:4,hours:5,minutes:6,seconds:7,meridiem:8},mergeDateIntoReferenceDate=(tt,et,nt,rt,it,ot)=>[...rt].sort((at,st)=>reliableSectionModificationOrder[at.type]-reliableSectionModificationOrder[st.type]).reduce((at,st)=>!ot||st.modified?transferDateSectionValue(tt,et,st,nt,at):at,it),isAndroid=()=>navigator.userAgent.toLowerCase().indexOf("android")>-1,clampDaySectionIfPossible=(tt,et,nt,rt)=>{if(!(nt.every(st=>st.type==="weekDay"||st.value!=="")&&nt.some(st=>st.type==="day")))return null;const ot=nt.map(st=>{if(st.type!=="day")return st;const lt=rt.day({currentDate:null,format:st.format,contentType:st.contentType});return _extends$r({},st,{value:cleanDigitSectionValue(tt,et,lt.minimum,lt,st)})}),at=getDateFromDateSections(tt,ot);return at==null||!tt.isValid(at)?null:nt.map(st=>{if(st.type!=="day")return st;const lt=rt.day({currentDate:at,format:st.format,contentType:st.contentType});return Number(st.value)<=lt.maximum?st:_extends$r({},st,{value:lt.maximum.toString()})})},getSectionOrder=(tt,et)=>{const nt={};if(!et)return tt.forEach((lt,ct)=>{const ut=ct===0?null:ct-1,ht=ct===tt.length-1?null:ct+1;nt[ct]={leftIndex:ut,rightIndex:ht}}),{neighbors:nt,startIndex:0,endIndex:tt.length-1};const rt={},it={};let ot=0,at=0,st=tt.length-1;for(;st>=0;){at=tt.findIndex((lt,ct)=>{var ut;return ct>=ot&&((ut=lt.endSeparator)==null?void 0:ut.includes(" "))&<.endSeparator!==" / "}),at===-1&&(at=tt.length-1);for(let lt=at;lt>=ot;lt-=1)it[lt]=st,rt[st]=lt,st-=1;ot=at+1}return tt.forEach((lt,ct)=>{const ut=it[ct],ht=ut===0?null:rt[ut-1],dt=ut===tt.length-1?null:rt[ut+1];nt[ct]={leftIndex:ht,rightIndex:dt}}),{neighbors:nt,startIndex:rt[0],endIndex:rt[tt.length-1]}},_excluded$v=["value","referenceDate"],singleItemValueManager={emptyValue:null,getTodayValue:getTodayDate,getInitialReferenceValue:tt=>{let{value:et,referenceDate:nt}=tt,rt=_objectWithoutPropertiesLoose$g(tt,_excluded$v);return et!=null&&rt.utils.isValid(et)?et:nt??getDefaultReferenceDate(rt)},cleanValue:replaceInvalidDateByNull,areValuesEqual:areDatesEqual$1,isSameError:(tt,et)=>tt===et,hasError:tt=>tt!=null,defaultErrorState:null,getTimezone:(tt,et)=>et==null?null:tt.getTimezone(et),setTimezone:(tt,et,nt)=>nt==null?null:tt.setTimezone(nt,et)},singleItemFieldValueManager={updateReferenceValue:(tt,et,nt)=>et==null||!tt.isValid(et)?nt:et,getSectionsFromValue:(tt,et,nt,rt,it)=>!tt.isValid(et)&&!!nt?nt:addPositionPropertiesToSections(it(et),rt),getValueStrFromSections:createDateStrForInputFromSections,getActiveDateManager:(tt,et)=>({date:et.value,referenceDate:et.referenceValue,getSections:nt=>nt,getNewValuesFromNewActiveDate:nt=>({value:nt,referenceValue:nt==null||!tt.isValid(nt)?et.referenceValue:nt})}),parseValueStr:(tt,et,nt)=>nt(tt.trim(),et)},uncapitalizeObjectKeys=tt=>{if(tt!==void 0)return Object.keys(tt).reduce((et,nt)=>_extends$r({},et,{[`${nt.slice(0,1).toLowerCase()}${nt.slice(1)}`]:tt[nt]}),{})};function getPickersDayUtilityClass(tt){return generateUtilityClass("MuiPickersDay",tt)}const pickersDayClasses=generateUtilityClasses("MuiPickersDay",["root","dayWithMargin","dayOutsideMonth","hiddenDaySpacingFiller","today","selected","disabled"]),_excluded$u=["autoFocus","className","day","disabled","disableHighlightToday","disableMargin","hidden","isAnimating","onClick","onDaySelect","onFocus","onBlur","onKeyDown","onMouseDown","onMouseEnter","outsideCurrentMonth","selected","showDaysOutsideCurrentMonth","children","today","isFirstVisibleCell","isLastVisibleCell"],useUtilityClasses$e=tt=>{const{selected:et,disableMargin:nt,disableHighlightToday:rt,today:it,disabled:ot,outsideCurrentMonth:at,showDaysOutsideCurrentMonth:st,classes:lt}=tt,ct=at&&!st;return composeClasses({root:["root",et&&!ct&&"selected",ot&&"disabled",!nt&&"dayWithMargin",!rt&&it&&"today",at&&st&&"dayOutsideMonth",ct&&"hiddenDaySpacingFiller"],hiddenDaySpacingFiller:["hiddenDaySpacingFiller"]},getPickersDayUtilityClass,lt)},styleArg=({theme:tt,ownerState:et})=>_extends$r({},tt.typography.caption,{width:DAY_SIZE,height:DAY_SIZE,borderRadius:"50%",padding:0,backgroundColor:"transparent",color:(tt.vars||tt).palette.text.primary,"@media (pointer: fine)":{"&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.hoverOpacity)}},"&:focus":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.focusOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.focusOpacity),[`&.${pickersDayClasses.selected}`]:{willChange:"background-color",backgroundColor:(tt.vars||tt).palette.primary.dark}},[`&.${pickersDayClasses.selected}`]:{color:(tt.vars||tt).palette.primary.contrastText,backgroundColor:(tt.vars||tt).palette.primary.main,fontWeight:tt.typography.fontWeightMedium,transition:tt.transitions.create("background-color",{duration:tt.transitions.duration.short}),"&:hover":{willChange:"background-color",backgroundColor:(tt.vars||tt).palette.primary.dark}},[`&.${pickersDayClasses.disabled}:not(.${pickersDayClasses.selected})`]:{color:(tt.vars||tt).palette.text.disabled},[`&.${pickersDayClasses.disabled}&.${pickersDayClasses.selected}`]:{opacity:.6}},!et.disableMargin&&{margin:`0 ${DAY_MARGIN}px`},et.outsideCurrentMonth&&et.showDaysOutsideCurrentMonth&&{color:(tt.vars||tt).palette.text.secondary},!et.disableHighlightToday&&et.today&&{[`&:not(.${pickersDayClasses.selected})`]:{border:`1px solid ${(tt.vars||tt).palette.text.secondary}`}}),overridesResolver=(tt,et)=>{const{ownerState:nt}=tt;return[et.root,!nt.disableMargin&&et.dayWithMargin,!nt.disableHighlightToday&&nt.today&&et.today,!nt.outsideCurrentMonth&&nt.showDaysOutsideCurrentMonth&&et.dayOutsideMonth,nt.outsideCurrentMonth&&!nt.showDaysOutsideCurrentMonth&&et.hiddenDaySpacingFiller]},PickersDayRoot=styled$1(ButtonBase$1,{name:"MuiPickersDay",slot:"Root",overridesResolver})(styleArg),PickersDayFiller=styled$1("div",{name:"MuiPickersDay",slot:"Root",overridesResolver})(({theme:tt,ownerState:et})=>_extends$r({},styleArg({theme:tt,ownerState:et}),{opacity:0,pointerEvents:"none"})),noop$2=()=>{},PickersDayRaw=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiPickersDay"}),{autoFocus:it=!1,className:ot,day:at,disabled:st=!1,disableHighlightToday:lt=!1,disableMargin:ct=!1,isAnimating:ut,onClick:ht,onDaySelect:dt,onFocus:pt=noop$2,onBlur:mt=noop$2,onKeyDown:gt=noop$2,onMouseDown:yt=noop$2,onMouseEnter:bt=noop$2,outsideCurrentMonth:wt,selected:vt=!1,showDaysOutsideCurrentMonth:kt=!1,children:St,today:Tt=!1}=rt,At=_objectWithoutPropertiesLoose$g(rt,_excluded$u),Et=_extends$r({},rt,{autoFocus:it,disabled:st,disableHighlightToday:lt,disableMargin:ct,selected:vt,showDaysOutsideCurrentMonth:kt,today:Tt}),Mt=useUtilityClasses$e(Et),Lt=useUtils(),jt=reactExports.useRef(null),Rt=useForkRef(jt,nt);useEnhancedEffect$1(()=>{it&&!st&&!ut&&!wt&&jt.current.focus()},[it,st,ut,wt]);const $t=It=>{yt(It),wt&&It.preventDefault()},xt=It=>{st||dt(at),wt&&It.currentTarget.focus(),ht&&ht(It)};return wt&&!kt?jsxRuntimeExports.jsx(PickersDayFiller,{className:clsx(Mt.root,Mt.hiddenDaySpacingFiller,ot),ownerState:Et,role:At.role}):jsxRuntimeExports.jsx(PickersDayRoot,_extends$r({className:clsx(Mt.root,ot),ref:Rt,centerRipple:!0,disabled:st,tabIndex:vt?0:-1,onKeyDown:It=>gt(It,at),onFocus:It=>pt(It,at),onBlur:It=>mt(It,at),onMouseEnter:It=>bt(It,at),onClick:xt,onMouseDown:$t},At,{ownerState:Et,children:St||Lt.format(at,"dayOfMonth")}))}),PickersDay=reactExports.memo(PickersDayRaw);function useValidation(tt,et,nt,rt){const{value:it,onError:ot}=tt,at=useLocalizationContext(),st=reactExports.useRef(rt),lt=et({adapter:at,value:it,props:tt});return reactExports.useEffect(()=>{ot&&!nt(lt,st.current)&&ot(lt,it),st.current=lt},[nt,ot,st,lt,it]),lt}const useFieldState=tt=>{const et=useUtils(),nt=useLocaleText(),rt=useLocalizationContext(),ot=useTheme().direction==="rtl",{valueManager:at,fieldValueManager:st,valueType:lt,validator:ct,internalProps:ut,internalProps:{value:ht,defaultValue:dt,referenceDate:pt,onChange:mt,format:gt,formatDensity:yt="dense",selectedSections:bt,onSelectedSectionsChange:wt,shouldRespectLeadingZeros:vt=!1,timezone:kt}}=tt,{timezone:St,value:Tt,handleValueChange:At}=useValueWithTimezone({timezone:kt,value:ht,defaultValue:dt,onChange:mt,valueManager:at}),Et=reactExports.useMemo(()=>getSectionsBoundaries(et,St),[et,St]),Mt=reactExports.useCallback((Jt,nn=null)=>st.getSectionsFromValue(et,Jt,nn,ot,Yt=>splitFormatIntoSections(et,St,nt,gt,Yt,yt,vt,ot)),[st,gt,nt,ot,vt,et,yt,St]),Lt=reactExports.useMemo(()=>st.getValueStrFromSections(Mt(at.emptyValue),ot),[st,Mt,at.emptyValue,ot]),[jt,Rt]=reactExports.useState(()=>{const Jt=Mt(Tt),nn={sections:Jt,value:Tt,referenceValue:at.emptyValue,tempValueStrAndroid:null},Yt=getSectionTypeGranularity(Jt),fn=at.getInitialReferenceValue({referenceDate:pt,value:Tt,utils:et,props:ut,granularity:Yt,timezone:St});return _extends$r({},nn,{referenceValue:fn})}),[$t,xt]=useControlled({controlled:bt,default:null,name:"useField",state:"selectedSectionIndexes"}),It=Jt=>{xt(Jt),wt==null||wt(Jt),Rt(nn=>_extends$r({},nn,{selectedSectionQuery:null}))},Ot=reactExports.useMemo(()=>{if($t==null)return null;if($t==="all")return{startIndex:0,endIndex:jt.sections.length-1,shouldSelectBoundarySelectors:!0};if(typeof $t=="number")return{startIndex:$t,endIndex:$t};if(typeof $t=="string"){const Jt=jt.sections.findIndex(nn=>nn.type===$t);return{startIndex:Jt,endIndex:Jt}}return $t},[$t,jt.sections]),zt=({value:Jt,referenceValue:nn,sections:Yt})=>{Rt(cn=>_extends$r({},cn,{sections:Yt,value:Jt,referenceValue:nn,tempValueStrAndroid:null}));const fn={validationError:ct({adapter:rt,value:Jt,props:_extends$r({},ut,{value:Jt,timezone:St})})};At(Jt,fn)},Ut=(Jt,nn)=>{const Yt=[...jt.sections];return Yt[Jt]=_extends$r({},Yt[Jt],{value:nn,modified:!0}),addPositionPropertiesToSections(Yt,ot)},Wt=()=>{at.areValuesEqual(et,jt.value,at.emptyValue)||zt({value:at.emptyValue,referenceValue:jt.referenceValue,sections:Mt(at.emptyValue)})},Ft=()=>{if(Ot==null)return;const Jt=jt.sections[Ot.startIndex];if(Jt.value==="")return;const nn=st.getActiveDateManager(et,jt,Jt),fn=nn.getSections(jt.sections).filter(an=>an.value!=="").length===1,cn=Ut(Ot.startIndex,""),_n=fn?null:et.date(new Date("")),En=nn.getNewValuesFromNewActiveDate(_n);(_n!=null&&!et.isValid(_n))!=(nn.date!=null&&!et.isValid(nn.date))?zt(_extends$r({},En,{sections:cn})):Rt(an=>_extends$r({},an,En,{sections:cn,tempValueStrAndroid:null}))},Nt=Jt=>{const nn=(cn,_n)=>{const En=et.parse(cn,gt);if(En==null||!et.isValid(En))return null;const an=splitFormatIntoSections(et,St,nt,gt,En,yt,vt,ot);return mergeDateIntoReferenceDate(et,St,En,an,_n,!1)},Yt=st.parseValueStr(Jt,jt.referenceValue,nn),fn=st.updateReferenceValue(et,Yt,jt.referenceValue);zt({value:Yt,referenceValue:fn,sections:Mt(Yt,jt.sections)})},Ct=({activeSection:Jt,newSectionValue:nn,shouldGoToNextSection:Yt})=>{Yt&&Ot&&Ot.startIndex_extends$r({},An,en,{sections:Rn,tempValueStrAndroid:null}))},Ht=Jt=>Rt(nn=>_extends$r({},nn,{tempValueStrAndroid:Jt}));return reactExports.useEffect(()=>{const Jt=Mt(jt.value);Rt(nn=>_extends$r({},nn,{sections:Jt}))},[gt,et.locale]),reactExports.useEffect(()=>{let Jt=!1;at.areValuesEqual(et,jt.value,Tt)?Jt=at.getTimezone(et,jt.value)!==at.getTimezone(et,Tt):Jt=!0,Jt&&Rt(nn=>_extends$r({},nn,{value:Tt,referenceValue:st.updateReferenceValue(et,Tt,nn.referenceValue),sections:Mt(Tt)}))},[Tt]),{state:jt,selectedSectionIndexes:Ot,setSelectedSections:It,clearValue:Wt,clearActiveSection:Ft,updateSectionValue:Ct,updateValueFromValueStr:Nt,setTempAndroidValueStr:Ht,sectionsValueBoundaries:Et,placeholder:Lt,timezone:St}},QUERY_LIFE_DURATION_MS=5e3,isQueryResponseWithoutValue=tt=>tt.saveQuery!=null,useFieldCharacterEditing=({sections:tt,updateSectionValue:et,sectionsValueBoundaries:nt,setTempAndroidValueStr:rt,timezone:it})=>{const ot=useUtils(),[at,st]=reactExports.useState(null),lt=useEventCallback(()=>st(null));reactExports.useEffect(()=>{var pt;at!=null&&((pt=tt[at.sectionIndex])==null?void 0:pt.type)!==at.sectionType&<()},[tt,at,lt]),reactExports.useEffect(()=>{if(at!=null){const pt=setTimeout(()=>lt(),QUERY_LIFE_DURATION_MS);return()=>{window.clearTimeout(pt)}}return()=>{}},[at,lt]);const ct=({keyPressed:pt,sectionIndex:mt},gt,yt)=>{const bt=pt.toLowerCase(),wt=tt[mt];if(at!=null&&(!yt||yt(at.value))&&at.sectionIndex===mt){const kt=`${at.value}${bt}`,St=gt(kt,wt);if(!isQueryResponseWithoutValue(St))return st({sectionIndex:mt,value:kt,sectionType:wt.type}),St}const vt=gt(bt,wt);return isQueryResponseWithoutValue(vt)&&!vt.saveQuery?(lt(),null):(st({sectionIndex:mt,value:bt,sectionType:wt.type}),isQueryResponseWithoutValue(vt)?null:vt)},ut=pt=>{const mt=(bt,wt,vt)=>{const kt=wt.filter(St=>St.toLowerCase().startsWith(vt));return kt.length===0?{saveQuery:!1}:{sectionValue:kt[0],shouldGoToNextSection:kt.length===1}},gt=(bt,wt,vt,kt)=>{const St=Tt=>getLetterEditingOptions(ot,it,wt.type,Tt);if(wt.contentType==="letter")return mt(wt.format,St(wt.format),bt);if(vt&&kt!=null&&getDateSectionConfigFromFormatToken(ot,vt).contentType==="letter"){const Tt=St(vt),At=mt(vt,Tt,bt);return isQueryResponseWithoutValue(At)?{saveQuery:!1}:_extends$r({},At,{sectionValue:kt(At.sectionValue,Tt)})}return{saveQuery:!1}};return ct(pt,(bt,wt)=>{switch(wt.type){case"month":{const vt=kt=>changeSectionValueFormat(ot,kt,ot.formats.month,wt.format);return gt(bt,wt,ot.formats.month,vt)}case"weekDay":{const vt=(kt,St)=>St.indexOf(kt).toString();return gt(bt,wt,ot.formats.weekday,vt)}case"meridiem":return gt(bt,wt);default:return{saveQuery:!1}}})},ht=pt=>{const mt=(yt,bt)=>{const wt=+`${yt}`,vt=nt[bt.type]({currentDate:null,format:bt.format,contentType:bt.contentType});if(wt>vt.maximum)return{saveQuery:!1};if(wtvt.maximum||yt.length===vt.maximum.toString().length;return{sectionValue:cleanDigitSectionValue(ot,it,wt,vt,bt),shouldGoToNextSection:kt}};return ct(pt,(yt,bt)=>{if(bt.contentType==="digit"||bt.contentType==="digit-with-letter")return mt(yt,bt);if(bt.type==="month"){const wt=doesSectionFormatHaveLeadingZeros(ot,it,"digit","month","MM"),vt=mt(yt,{type:bt.type,format:"MM",hasLeadingZerosInFormat:wt,hasLeadingZerosInInput:!0,contentType:"digit",maxLength:2});if(isQueryResponseWithoutValue(vt))return vt;const kt=changeSectionValueFormat(ot,vt.sectionValue,"MM",bt.format);return _extends$r({},vt,{sectionValue:kt})}if(bt.type==="weekDay"){const wt=mt(yt,bt);if(isQueryResponseWithoutValue(wt))return wt;const vt=getDaysInWeekStr(ot,it,bt.format)[Number(wt.sectionValue)-1];return _extends$r({},wt,{sectionValue:vt})}return{saveQuery:!1}},yt=>!Number.isNaN(Number(yt)))};return{applyCharacterEditing:useEventCallback(pt=>{const mt=tt[pt.sectionIndex],yt=!Number.isNaN(Number(pt.keyPressed))?ht(pt):ut(pt);yt==null?rt(null):et({activeSection:mt,newSectionValue:yt.sectionValue,shouldGoToNextSection:yt.shouldGoToNextSection})}),resetCharacterQuery:lt}};function arrayIncludes(tt,et){return Array.isArray(et)?et.every(nt=>tt.indexOf(nt)!==-1):tt.indexOf(et)!==-1}const onSpaceOrEnter=(tt,et)=>nt=>{(nt.key==="Enter"||nt.key===" ")&&(tt(nt),nt.preventDefault(),nt.stopPropagation()),et&&et(nt)},getActiveElement=(tt=document)=>{const et=tt.activeElement;return et?et.shadowRoot?getActiveElement(et.shadowRoot):et:null},DEFAULT_DESKTOP_MODE_MEDIA_QUERY="@media (pointer: fine)",_excluded$t=["onClick","onKeyDown","onFocus","onBlur","onMouseUp","onPaste","error"],useField=tt=>{const et=useUtils(),{state:nt,selectedSectionIndexes:rt,setSelectedSections:it,clearValue:ot,clearActiveSection:at,updateSectionValue:st,updateValueFromValueStr:lt,setTempAndroidValueStr:ct,sectionsValueBoundaries:ut,placeholder:ht,timezone:dt}=useFieldState(tt),{inputRef:pt,internalProps:mt,internalProps:{readOnly:gt=!1,unstableFieldRef:yt,minutesStep:bt},forwardedProps:{onClick:wt,onKeyDown:vt,onFocus:kt,onBlur:St,onMouseUp:Tt,onPaste:At,error:Et},fieldValueManager:Mt,valueManager:Lt,validator:jt}=tt,Rt=_objectWithoutPropertiesLoose$g(tt.forwardedProps,_excluded$t),{applyCharacterEditing:$t,resetCharacterQuery:xt}=useFieldCharacterEditing({sections:nt.sections,updateSectionValue:st,sectionsValueBoundaries:ut,setTempAndroidValueStr:ct,timezone:dt}),It=reactExports.useRef(null),Ot=useForkRef(pt,It),zt=reactExports.useRef(void 0),Wt=useTheme().direction==="rtl",Ft=reactExports.useMemo(()=>getSectionOrder(nt.sections,Wt),[nt.sections,Wt]),Nt=()=>{var An;if(gt){it(null);return}const yn=(An=It.current.selectionStart)!=null?An:0;let kn;yn<=nt.sections[0].startInInput||yn>=nt.sections[nt.sections.length-1].endInInput?kn=1:kn=nt.sections.findIndex(gn=>gn.startInInput-gn.startSeparator.length>yn);const dn=kn===-1?nt.sections.length-1:kn-1;it(dn)},Ct=useEventCallback((...An)=>{wt==null||wt(...An),Nt()}),Ht=useEventCallback(An=>{Tt==null||Tt(An),An.preventDefault()}),Jt=useEventCallback((...An)=>{kt==null||kt(...An);const yn=It.current;window.clearTimeout(zt.current),zt.current=setTimeout(()=>{!yn||yn!==It.current||rt!=null||gt||(yn.value.length&&Number(yn.selectionEnd)-Number(yn.selectionStart)===yn.value.length?it("all"):Nt())})}),nn=useEventCallback((...An)=>{St==null||St(...An),it(null)}),Yt=useEventCallback(An=>{if(At==null||At(An),gt){An.preventDefault();return}const yn=An.clipboardData.getData("text");if(rt&&rt.startIndex===rt.endIndex){const kn=nt.sections[rt.startIndex],dn=/^[a-zA-Z]+$/.test(yn),gn=/^[0-9]+$/.test(yn),Cn=/^(([a-zA-Z]+)|)([0-9]+)(([a-zA-Z]+)|)$/.test(yn);if(kn.contentType==="letter"&&dn||kn.contentType==="digit"&&gn||kn.contentType==="digit-with-letter"&&Cn)return;if(dn||gn){An.preventDefault();return}}An.preventDefault(),xt(),lt(yn)}),fn=useEventCallback(An=>{if(gt)return;const yn=An.target.value,kn=cleanString(yn);if(rt==null){lt(kn);return}let dn;if(rt.startIndex===0&&rt.endIndex===nt.sections.length-1&&kn.length===1)dn=kn;else{const gn=cleanString(Mt.getValueStrFromSections(nt.sections,Wt));let Cn=-1,$n=-1;for(let Mn=0;Mnun.end)return;const Sn=kn.length-gn.length+un.end-cleanString(un.endSeparator||"").length;dn=kn.slice(un.start+cleanString(un.startSeparator||"").length,Sn)}if(isAndroid()&&dn.length===0){ct(yn);return}$t({keyPressed:dn,sectionIndex:rt.startIndex})}),cn=useEventCallback(An=>{switch(vt==null||vt(An),!0){case(An.key==="a"&&(An.ctrlKey||An.metaKey)):{An.preventDefault(),it("all");break}case An.key==="ArrowRight":{if(An.preventDefault(),rt==null)it(Ft.startIndex);else if(rt.startIndex!==rt.endIndex)it(rt.endIndex);else{const yn=Ft.neighbors[rt.startIndex].rightIndex;yn!==null&&it(yn)}break}case An.key==="ArrowLeft":{if(An.preventDefault(),rt==null)it(Ft.endIndex);else if(rt.startIndex!==rt.endIndex)it(rt.startIndex);else{const yn=Ft.neighbors[rt.startIndex].leftIndex;yn!==null&&it(yn)}break}case["Backspace","Delete"].includes(An.key):{if(An.preventDefault(),gt)break;rt==null||rt.startIndex===0&&rt.endIndex===nt.sections.length-1?ot():at(),xt();break}case["ArrowUp","ArrowDown","Home","End","PageUp","PageDown"].includes(An.key):{if(An.preventDefault(),gt||rt==null)break;const yn=nt.sections[rt.startIndex],kn=Mt.getActiveDateManager(et,nt,yn),dn=adjustSectionValue(et,dt,yn,An.key,ut,kn.date,{minutesStep:bt});st({activeSection:yn,newSectionValue:dn,shouldGoToNextSection:!1});break}}});useEnhancedEffect$1(()=>{if(!It.current)return;if(rt==null){It.current.scrollLeft&&(It.current.scrollLeft=0);return}const An=nt.sections[rt.startIndex],yn=nt.sections[rt.endIndex];let kn=An.startInInput,dn=yn.endInInput;if(rt.shouldSelectBoundarySelectors&&(kn-=An.startSeparator.length,dn+=yn.endSeparator.length),kn!==It.current.selectionStart||dn!==It.current.selectionEnd){const gn=It.current.scrollTop;It.current===getActiveElement(document)&&It.current.setSelectionRange(kn,dn),It.current.scrollTop=gn}});const _n=useValidation(_extends$r({},mt,{value:nt.value,timezone:dt}),jt,Lt.isSameError,Lt.defaultErrorState),En=reactExports.useMemo(()=>Et!==void 0?Et:Lt.hasError(_n),[Lt,_n,Et]);reactExports.useEffect(()=>{!En&&!rt&&xt()},[nt.referenceValue,rt,En]),reactExports.useEffect(()=>(It.current&&It.current===document.activeElement&&it("all"),()=>window.clearTimeout(zt.current)),[]),reactExports.useEffect(()=>{nt.tempValueStrAndroid!=null&&rt!=null&&(xt(),at())},[nt.tempValueStrAndroid]);const an=reactExports.useMemo(()=>{var An;return(An=nt.tempValueStrAndroid)!=null?An:Mt.getValueStrFromSections(nt.sections,Wt)},[nt.sections,Mt,nt.tempValueStrAndroid,Wt]),en=reactExports.useMemo(()=>rt==null||nt.sections[rt.startIndex].contentType==="letter"?"text":"tel",[rt,nt.sections]),Rn=!(It.current&&It.current===getActiveElement(document))&&Lt.areValuesEqual(et,nt.value,Lt.emptyValue);return reactExports.useImperativeHandle(yt,()=>({getSections:()=>nt.sections,getActiveSectionIndex:()=>{var An,yn;const kn=(An=It.current.selectionStart)!=null?An:0,dn=(yn=It.current.selectionEnd)!=null?yn:0;if(kn===0&&dn===0)return null;const gn=kn<=nt.sections[0].startInInput?1:nt.sections.findIndex(Cn=>Cn.startInInput-Cn.startSeparator.length>kn);return gn===-1?nt.sections.length-1:gn-1},setSelectedSections:An=>it(An)})),_extends$r({placeholder:ht,autoComplete:"off"},Rt,{value:Rn?"":an,inputMode:en,readOnly:gt,onClick:Ct,onFocus:Jt,onBlur:nn,onPaste:Yt,onChange:fn,onKeyDown:cn,onMouseUp:Ht,error:En,ref:Ot})},validateDate=({props:tt,value:et,adapter:nt})=>{if(et===null)return null;const{shouldDisableDate:rt,shouldDisableMonth:it,shouldDisableYear:ot,disablePast:at,disableFuture:st,timezone:lt}=tt,ct=nt.utils.dateWithTimezone(void 0,lt),ut=applyDefaultDate(nt.utils,tt.minDate,nt.defaultDates.minDate),ht=applyDefaultDate(nt.utils,tt.maxDate,nt.defaultDates.maxDate);switch(!0){case!nt.utils.isValid(et):return"invalidDate";case!!(rt&&rt(et)):return"shouldDisableDate";case!!(it&&it(et)):return"shouldDisableMonth";case!!(ot&&ot(et)):return"shouldDisableYear";case!!(st&&nt.utils.isAfterDay(et,ct)):return"disableFuture";case!!(at&&nt.utils.isBeforeDay(et,ct)):return"disablePast";case!!(ut&&nt.utils.isBeforeDay(et,ut)):return"minDate";case!!(ht&&nt.utils.isAfterDay(et,ht)):return"maxDate";default:return null}},DATE_VALIDATION_PROP_NAMES=["disablePast","disableFuture","minDate","maxDate","shouldDisableDate","shouldDisableMonth","shouldDisableYear"],TIME_VALIDATION_PROP_NAMES=["disablePast","disableFuture","minTime","maxTime","shouldDisableClock","shouldDisableTime","minutesStep","ampm","disableIgnoringDatePartForTimeValidation"],DATE_TIME_VALIDATION_PROP_NAMES=["minDateTime","maxDateTime"],VALIDATION_PROP_NAMES=[...DATE_VALIDATION_PROP_NAMES,...TIME_VALIDATION_PROP_NAMES,...DATE_TIME_VALIDATION_PROP_NAMES],extractValidationProps=tt=>VALIDATION_PROP_NAMES.reduce((et,nt)=>(tt.hasOwnProperty(nt)&&(et[nt]=tt[nt]),et),{}),SHARED_FIELD_INTERNAL_PROP_NAMES=["value","defaultValue","referenceDate","format","formatDensity","onChange","timezone","readOnly","onError","shouldRespectLeadingZeros","selectedSections","onSelectedSectionsChange","unstableFieldRef"],splitFieldInternalAndForwardedProps=(tt,et)=>{const nt=_extends$r({},tt),rt={},it=ot=>{nt.hasOwnProperty(ot)&&(rt[ot]=nt[ot],delete nt[ot])};return SHARED_FIELD_INTERNAL_PROP_NAMES.forEach(it),et==="date"?DATE_VALIDATION_PROP_NAMES.forEach(it):et==="time"?TIME_VALIDATION_PROP_NAMES.forEach(it):et==="date-time"&&(DATE_VALIDATION_PROP_NAMES.forEach(it),TIME_VALIDATION_PROP_NAMES.forEach(it),DATE_TIME_VALIDATION_PROP_NAMES.forEach(it)),{forwardedProps:nt,internalProps:rt}},useDefaultizedDateField=tt=>{var et,nt,rt;const it=useUtils(),ot=useDefaultDates();return _extends$r({},tt,{disablePast:(et=tt.disablePast)!=null?et:!1,disableFuture:(nt=tt.disableFuture)!=null?nt:!1,format:(rt=tt.format)!=null?rt:it.formats.keyboardDate,minDate:applyDefaultDate(it,tt.minDate,ot.minDate),maxDate:applyDefaultDate(it,tt.maxDate,ot.maxDate)})},useDateField=({props:tt,inputRef:et})=>{const nt=useDefaultizedDateField(tt),{forwardedProps:rt,internalProps:it}=splitFieldInternalAndForwardedProps(nt,"date");return useField({inputRef:et,forwardedProps:rt,internalProps:it,valueManager:singleItemValueManager,fieldValueManager:singleItemFieldValueManager,validator:validateDate,valueType:"date"})},_excluded$s=["components","componentsProps","slots","slotProps","InputProps","inputProps"],_excluded2$5=["inputRef"],_excluded3$2=["ref","onPaste","onKeyDown","inputMode","readOnly"],DateField=reactExports.forwardRef(function(et,nt){var rt,it,ot;const at=useThemeProps({props:et,name:"MuiDateField"}),{components:st,componentsProps:lt,slots:ct,slotProps:ut,InputProps:ht,inputProps:dt}=at,pt=_objectWithoutPropertiesLoose$g(at,_excluded$s),mt=at,gt=(rt=(it=ct==null?void 0:ct.textField)!=null?it:st==null?void 0:st.TextField)!=null?rt:MuiTextField,yt=useSlotProps({elementType:gt,externalSlotProps:(ot=ut==null?void 0:ut.textField)!=null?ot:lt==null?void 0:lt.textField,externalForwardedProps:pt,ownerState:mt}),{inputRef:bt}=yt,wt=_objectWithoutPropertiesLoose$g(yt,_excluded2$5);wt.inputProps=_extends$r({},wt.inputProps,dt),wt.InputProps=_extends$r({},wt.InputProps,ht);const vt=useDateField({props:wt,inputRef:bt}),{ref:kt,onPaste:St,onKeyDown:Tt,inputMode:At,readOnly:Et}=vt,Mt=_objectWithoutPropertiesLoose$g(vt,_excluded3$2);return jsxRuntimeExports.jsx(gt,_extends$r({ref:nt},Mt,{InputProps:_extends$r({},Mt.InputProps,{readOnly:Et}),inputProps:_extends$r({},Mt.inputProps,{inputMode:At,onPaste:St,onKeyDown:Tt,ref:kt})}))}),useIsDateDisabled=({shouldDisableDate:tt,shouldDisableMonth:et,shouldDisableYear:nt,minDate:rt,maxDate:it,disableFuture:ot,disablePast:at,timezone:st})=>{const lt=useLocalizationContext();return reactExports.useCallback(ct=>validateDate({adapter:lt,value:ct,props:{shouldDisableDate:tt,shouldDisableMonth:et,shouldDisableYear:nt,minDate:rt,maxDate:it,disableFuture:ot,disablePast:at,timezone:st}})!==null,[lt,tt,et,nt,rt,it,ot,at,st])},createCalendarStateReducer=(tt,et,nt)=>(rt,it)=>{switch(it.type){case"changeMonth":return _extends$r({},rt,{slideDirection:it.direction,currentMonth:it.newMonth,isMonthSwitchingAnimating:!tt});case"finishMonthSwitchingAnimation":return _extends$r({},rt,{isMonthSwitchingAnimating:!1});case"changeFocusedDay":{if(rt.focusedDay!=null&&it.focusedDay!=null&&nt.isSameDay(it.focusedDay,rt.focusedDay))return rt;const ot=it.focusedDay!=null&&!et&&!nt.isSameMonth(rt.currentMonth,it.focusedDay);return _extends$r({},rt,{focusedDay:it.focusedDay,isMonthSwitchingAnimating:ot&&!tt&&!it.withoutMonthSwitchingAnimation,currentMonth:ot?nt.startOfMonth(it.focusedDay):rt.currentMonth,slideDirection:it.focusedDay!=null&&nt.isAfterDay(it.focusedDay,rt.currentMonth)?"left":"right"})}default:throw new Error("missing support")}},useCalendarState=tt=>{const{value:et,referenceDate:nt,defaultCalendarMonth:rt,disableFuture:it,disablePast:ot,disableSwitchToMonthOnDayFocus:at=!1,maxDate:st,minDate:lt,onMonthChange:ct,reduceAnimations:ut,shouldDisableDate:ht,timezone:dt}=tt,pt=useNow(dt),mt=useUtils(),gt=reactExports.useRef(createCalendarStateReducer(!!ut,at,mt)).current,yt=reactExports.useMemo(()=>{let Et=null;return nt?Et=nt:rt&&(Et=mt.startOfMonth(rt)),singleItemValueManager.getInitialReferenceValue({value:et,utils:mt,timezone:dt,props:tt,referenceDate:Et,granularity:SECTION_TYPE_GRANULARITY.day})},[]),[bt,wt]=reactExports.useReducer(gt,{isMonthSwitchingAnimating:!1,focusedDay:et||pt,currentMonth:mt.startOfMonth(yt),slideDirection:"left"}),vt=reactExports.useCallback(Et=>{wt(_extends$r({type:"changeMonth"},Et)),ct&&ct(Et.newMonth)},[ct]),kt=reactExports.useCallback(Et=>{const Mt=Et;mt.isSameMonth(Mt,bt.currentMonth)||vt({newMonth:mt.startOfMonth(Mt),direction:mt.isAfterDay(Mt,bt.currentMonth)?"left":"right"})},[bt.currentMonth,vt,mt]),St=useIsDateDisabled({shouldDisableDate:ht,minDate:lt,maxDate:st,disableFuture:it,disablePast:ot,timezone:dt}),Tt=reactExports.useCallback(()=>{wt({type:"finishMonthSwitchingAnimation"})},[]),At=useEventCallback((Et,Mt)=>{St(Et)||wt({type:"changeFocusedDay",focusedDay:Et,withoutMonthSwitchingAnimation:Mt})});return{referenceDate:yt,calendarState:bt,changeMonth:kt,changeFocusedDay:At,isDateDisabled:St,onMonthSwitchingAnimationEnd:Tt,handleChangeMonth:vt}},getPickersFadeTransitionGroupUtilityClass=tt=>generateUtilityClass("MuiPickersFadeTransitionGroup",tt);generateUtilityClasses("MuiPickersFadeTransitionGroup",["root"]);const useUtilityClasses$d=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getPickersFadeTransitionGroupUtilityClass,et)},animationDuration=500,PickersFadeTransitionGroupRoot=styled$1(TransitionGroup$1,{name:"MuiPickersFadeTransitionGroup",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"block",position:"relative"});function PickersFadeTransitionGroup(tt){const et=useThemeProps({props:tt,name:"MuiPickersFadeTransitionGroup"}),{children:nt,className:rt,reduceAnimations:it,transKey:ot}=et,at=useUtilityClasses$d(et);return it?nt:jsxRuntimeExports.jsx(PickersFadeTransitionGroupRoot,{className:clsx(at.root,rt),children:jsxRuntimeExports.jsx(Fade$1,{appear:!1,mountOnEnter:!0,unmountOnExit:!0,timeout:{appear:animationDuration,enter:animationDuration/2,exit:0},children:nt},ot)})}const getPickersSlideTransitionUtilityClass=tt=>generateUtilityClass("MuiPickersSlideTransition",tt),pickersSlideTransitionClasses=generateUtilityClasses("MuiPickersSlideTransition",["root","slideEnter-left","slideEnter-right","slideEnterActive","slideExit","slideExitActiveLeft-left","slideExitActiveLeft-right"]),_excluded$r=["children","className","reduceAnimations","slideDirection","transKey","classes"],useUtilityClasses$c=tt=>{const{classes:et,slideDirection:nt}=tt,rt={root:["root"],exit:["slideExit"],enterActive:["slideEnterActive"],enter:[`slideEnter-${nt}`],exitActive:[`slideExitActiveLeft-${nt}`]};return composeClasses(rt,getPickersSlideTransitionUtilityClass,et)},slideAnimationDuration=350,PickersSlideTransitionRoot=styled$1(TransitionGroup$1,{name:"MuiPickersSlideTransition",slot:"Root",overridesResolver:(tt,et)=>[et.root,{[`.${pickersSlideTransitionClasses["slideEnter-left"]}`]:et["slideEnter-left"]},{[`.${pickersSlideTransitionClasses["slideEnter-right"]}`]:et["slideEnter-right"]},{[`.${pickersSlideTransitionClasses.slideEnterActive}`]:et.slideEnterActive},{[`.${pickersSlideTransitionClasses.slideExit}`]:et.slideExit},{[`.${pickersSlideTransitionClasses["slideExitActiveLeft-left"]}`]:et["slideExitActiveLeft-left"]},{[`.${pickersSlideTransitionClasses["slideExitActiveLeft-right"]}`]:et["slideExitActiveLeft-right"]}]})(({theme:tt})=>{const et=tt.transitions.create("transform",{duration:slideAnimationDuration,easing:"cubic-bezier(0.35, 0.8, 0.4, 1)"});return{display:"block",position:"relative",overflowX:"hidden","& > *":{position:"absolute",top:0,right:0,left:0},[`& .${pickersSlideTransitionClasses["slideEnter-left"]}`]:{willChange:"transform",transform:"translate(100%)",zIndex:1},[`& .${pickersSlideTransitionClasses["slideEnter-right"]}`]:{willChange:"transform",transform:"translate(-100%)",zIndex:1},[`& .${pickersSlideTransitionClasses.slideEnterActive}`]:{transform:"translate(0%)",transition:et},[`& .${pickersSlideTransitionClasses.slideExit}`]:{transform:"translate(0%)"},[`& .${pickersSlideTransitionClasses["slideExitActiveLeft-left"]}`]:{willChange:"transform",transform:"translate(-100%)",transition:et,zIndex:0},[`& .${pickersSlideTransitionClasses["slideExitActiveLeft-right"]}`]:{willChange:"transform",transform:"translate(100%)",transition:et,zIndex:0}}});function PickersSlideTransition(tt){const et=useThemeProps({props:tt,name:"MuiPickersSlideTransition"}),{children:nt,className:rt,reduceAnimations:it,transKey:ot}=et,at=_objectWithoutPropertiesLoose$g(et,_excluded$r),st=useUtilityClasses$c(et);if(it)return jsxRuntimeExports.jsx("div",{className:clsx(st.root,rt),children:nt});const lt={exit:st.exit,enterActive:st.enterActive,enter:st.enter,exitActive:st.exitActive};return jsxRuntimeExports.jsx(PickersSlideTransitionRoot,{className:clsx(st.root,rt),childFactory:ct=>reactExports.cloneElement(ct,{classNames:lt}),role:"presentation",children:jsxRuntimeExports.jsx(CSSTransition$1,_extends$r({mountOnEnter:!0,unmountOnExit:!0,timeout:slideAnimationDuration,classNames:lt},at,{children:nt}),ot)})}const getDayCalendarUtilityClass=tt=>generateUtilityClass("MuiDayCalendar",tt);generateUtilityClasses("MuiDayCalendar",["header","weekDayLabel","loadingContainer","slideTransition","monthContainer","weekContainer","weekNumberLabel","weekNumber"]);const _excluded$q=["parentProps","day","focusableDay","selectedDays","isDateDisabled","currentMonthNumber","isViewFocused"],_excluded2$4=["ownerState"],useUtilityClasses$b=tt=>{const{classes:et}=tt;return composeClasses({header:["header"],weekDayLabel:["weekDayLabel"],loadingContainer:["loadingContainer"],slideTransition:["slideTransition"],monthContainer:["monthContainer"],weekContainer:["weekContainer"],weekNumberLabel:["weekNumberLabel"],weekNumber:["weekNumber"]},getDayCalendarUtilityClass,et)},defaultDayOfWeekFormatter=tt=>tt.charAt(0).toUpperCase(),weeksContainerHeight=(DAY_SIZE+DAY_MARGIN*2)*6,PickersCalendarDayHeader=styled$1("div",{name:"MuiDayCalendar",slot:"Header",overridesResolver:(tt,et)=>et.header})({display:"flex",justifyContent:"center",alignItems:"center"}),PickersCalendarWeekDayLabel=styled$1(Typography$1,{name:"MuiDayCalendar",slot:"WeekDayLabel",overridesResolver:(tt,et)=>et.weekDayLabel})(({theme:tt})=>({width:36,height:40,margin:"0 2px",textAlign:"center",display:"flex",justifyContent:"center",alignItems:"center",color:(tt.vars||tt).palette.text.secondary})),PickersCalendarWeekNumberLabel=styled$1(Typography$1,{name:"MuiDayPicker",slot:"WeekNumberLabel",overridesResolver:(tt,et)=>et.weekNumberLabel})(({theme:tt})=>({width:36,height:40,margin:"0 2px",textAlign:"center",display:"flex",justifyContent:"center",alignItems:"center",color:tt.palette.text.disabled})),PickersCalendarWeekNumber=styled$1(Typography$1,{name:"MuiDayPicker",slot:"WeekNumber",overridesResolver:(tt,et)=>et.weekNumber})(({theme:tt})=>_extends$r({},tt.typography.caption,{width:DAY_SIZE,height:DAY_SIZE,padding:0,margin:`0 ${DAY_MARGIN}px`,color:tt.palette.text.disabled,fontSize:"0.75rem",alignItems:"center",justifyContent:"center",display:"inline-flex"})),PickersCalendarLoadingContainer=styled$1("div",{name:"MuiDayCalendar",slot:"LoadingContainer",overridesResolver:(tt,et)=>et.loadingContainer})({display:"flex",justifyContent:"center",alignItems:"center",minHeight:weeksContainerHeight}),PickersCalendarSlideTransition=styled$1(PickersSlideTransition,{name:"MuiDayCalendar",slot:"SlideTransition",overridesResolver:(tt,et)=>et.slideTransition})({minHeight:weeksContainerHeight}),PickersCalendarWeekContainer=styled$1("div",{name:"MuiDayCalendar",slot:"MonthContainer",overridesResolver:(tt,et)=>et.monthContainer})({overflow:"hidden"}),PickersCalendarWeek=styled$1("div",{name:"MuiDayCalendar",slot:"WeekContainer",overridesResolver:(tt,et)=>et.weekContainer})({margin:`${DAY_MARGIN}px 0`,display:"flex",justifyContent:"center"});function WrappedDay(tt){var et,nt,rt;let{parentProps:it,day:ot,focusableDay:at,selectedDays:st,isDateDisabled:lt,currentMonthNumber:ct,isViewFocused:ut}=tt,ht=_objectWithoutPropertiesLoose$g(tt,_excluded$q);const{disabled:dt,disableHighlightToday:pt,isMonthSwitchingAnimating:mt,showDaysOutsideCurrentMonth:gt,components:yt,componentsProps:bt,slots:wt,slotProps:vt,timezone:kt}=it,St=useUtils(),Tt=useNow(kt),At=at!==null&&St.isSameDay(ot,at),Et=st.some(zt=>St.isSameDay(zt,ot)),Mt=St.isSameDay(ot,Tt),Lt=(et=(nt=wt==null?void 0:wt.day)!=null?nt:yt==null?void 0:yt.Day)!=null?et:PickersDay,jt=useSlotProps({elementType:Lt,externalSlotProps:(rt=vt==null?void 0:vt.day)!=null?rt:bt==null?void 0:bt.day,additionalProps:_extends$r({disableHighlightToday:pt,showDaysOutsideCurrentMonth:gt,role:"gridcell",isAnimating:mt,"data-timestamp":St.toJsDate(ot).valueOf()},ht),ownerState:_extends$r({},it,{day:ot,selected:Et})}),Rt=_objectWithoutPropertiesLoose$g(jt,_excluded2$4),$t=reactExports.useMemo(()=>dt||lt(ot),[dt,lt,ot]),xt=reactExports.useMemo(()=>St.getMonth(ot)!==ct,[St,ot,ct]),It=reactExports.useMemo(()=>{const zt=St.startOfMonth(St.setMonth(ot,ct));return gt?St.isSameDay(ot,St.startOfWeek(zt)):St.isSameDay(ot,zt)},[ct,ot,gt,St]),Ot=reactExports.useMemo(()=>{const zt=St.endOfMonth(St.setMonth(ot,ct));return gt?St.isSameDay(ot,St.endOfWeek(zt)):St.isSameDay(ot,zt)},[ct,ot,gt,St]);return jsxRuntimeExports.jsx(Lt,_extends$r({},Rt,{day:ot,disabled:$t,autoFocus:ut&&At,today:Mt,outsideCurrentMonth:xt,isFirstVisibleCell:It,isLastVisibleCell:Ot,selected:Et,tabIndex:At?0:-1,"aria-selected":Et,"aria-current":Mt?"date":void 0}))}function DayCalendar(tt){const et=useThemeProps({props:tt,name:"MuiDayCalendar"}),{onFocusedDayChange:nt,className:rt,currentMonth:it,selectedDays:ot,focusedDay:at,loading:st,onSelectedDaysChange:lt,onMonthSwitchingAnimationEnd:ct,readOnly:ut,reduceAnimations:ht,renderLoading:dt=()=>jsxRuntimeExports.jsx("span",{children:"..."}),slideDirection:pt,TransitionProps:mt,disablePast:gt,disableFuture:yt,minDate:bt,maxDate:wt,shouldDisableDate:vt,shouldDisableMonth:kt,shouldDisableYear:St,dayOfWeekFormatter:Tt=defaultDayOfWeekFormatter,hasFocus:At,onFocusedViewChange:Et,gridLabelId:Mt,displayWeekNumber:Lt,fixedWeekNumber:jt,autoFocus:Rt,timezone:$t}=et,xt=useNow($t),It=useUtils(),Ot=useUtilityClasses$b(et),Ut=useTheme().direction==="rtl",Wt=useIsDateDisabled({shouldDisableDate:vt,shouldDisableMonth:kt,shouldDisableYear:St,minDate:bt,maxDate:wt,disablePast:gt,disableFuture:yt,timezone:$t}),Ft=useLocaleText(),[Nt,Ct]=useControlled({name:"DayCalendar",state:"hasFocus",controlled:At,default:Rt??!1}),[Ht,Jt]=reactExports.useState(()=>at||xt),nn=useEventCallback(kn=>{ut||lt(kn)}),Yt=kn=>{Wt(kn)||(nt(kn),Jt(kn),Et==null||Et(!0),Ct(!0))},fn=useEventCallback((kn,dn)=>{switch(kn.key){case"ArrowUp":Yt(It.addDays(dn,-7)),kn.preventDefault();break;case"ArrowDown":Yt(It.addDays(dn,7)),kn.preventDefault();break;case"ArrowLeft":{const gn=It.addDays(dn,Ut?1:-1),Cn=It.addMonths(dn,Ut?1:-1),$n=findClosestEnabledDate({utils:It,date:gn,minDate:Ut?gn:It.startOfMonth(Cn),maxDate:Ut?It.endOfMonth(Cn):gn,isDateDisabled:Wt,timezone:$t});Yt($n||gn),kn.preventDefault();break}case"ArrowRight":{const gn=It.addDays(dn,Ut?-1:1),Cn=It.addMonths(dn,Ut?-1:1),$n=findClosestEnabledDate({utils:It,date:gn,minDate:Ut?It.startOfMonth(Cn):gn,maxDate:Ut?gn:It.endOfMonth(Cn),isDateDisabled:Wt,timezone:$t});Yt($n||gn),kn.preventDefault();break}case"Home":Yt(It.startOfWeek(dn)),kn.preventDefault();break;case"End":Yt(It.endOfWeek(dn)),kn.preventDefault();break;case"PageUp":Yt(It.addMonths(dn,1)),kn.preventDefault();break;case"PageDown":Yt(It.addMonths(dn,-1)),kn.preventDefault();break}}),cn=useEventCallback((kn,dn)=>Yt(dn)),_n=useEventCallback((kn,dn)=>{Nt&&It.isSameDay(Ht,dn)&&(Et==null||Et(!1))}),En=It.getMonth(it),an=reactExports.useMemo(()=>ot.filter(kn=>!!kn).map(kn=>It.startOfDay(kn)),[It,ot]),en=En,Tn=reactExports.useMemo(()=>reactExports.createRef(),[en]),Rn=It.startOfWeek(xt),An=reactExports.useMemo(()=>{const kn=It.startOfMonth(it),dn=It.endOfMonth(it);return Wt(Ht)||It.isAfterDay(Ht,dn)||It.isBeforeDay(Ht,kn)?findClosestEnabledDate({utils:It,date:Ht,minDate:kn,maxDate:dn,disablePast:gt,disableFuture:yt,isDateDisabled:Wt,timezone:$t}):Ht},[it,yt,gt,Ht,Wt,It,$t]),yn=reactExports.useMemo(()=>{const kn=It.setTimezone(it,$t),dn=It.getWeekArray(kn);let gn=It.addMonths(kn,1);for(;jt&&dn.length{dn.length{var gn;return jsxRuntimeExports.jsx(PickersCalendarWeekDayLabel,{variant:"caption",role:"columnheader","aria-label":It.format(It.addDays(Rn,dn),"weekday"),className:Ot.weekDayLabel,children:(gn=Tt==null?void 0:Tt(kn))!=null?gn:kn},kn+dn.toString())})]}),st?jsxRuntimeExports.jsx(PickersCalendarLoadingContainer,{className:Ot.loadingContainer,children:dt()}):jsxRuntimeExports.jsx(PickersCalendarSlideTransition,_extends$r({transKey:en,onExited:ct,reduceAnimations:ht,slideDirection:pt,className:clsx(rt,Ot.slideTransition)},mt,{nodeRef:Tn,children:jsxRuntimeExports.jsx(PickersCalendarWeekContainer,{ref:Tn,role:"rowgroup",className:Ot.monthContainer,children:yn.map((kn,dn)=>jsxRuntimeExports.jsxs(PickersCalendarWeek,{role:"row",className:Ot.weekContainer,"aria-rowindex":dn+1,children:[Lt&&jsxRuntimeExports.jsx(PickersCalendarWeekNumber,{className:Ot.weekNumber,role:"rowheader","aria-label":Ft.calendarWeekNumberAriaLabelText(It.getWeekNumber(kn[0])),children:Ft.calendarWeekNumberText(It.getWeekNumber(kn[0]))}),kn.map((gn,Cn)=>jsxRuntimeExports.jsx(WrappedDay,{parentProps:et,day:gn,selectedDays:an,focusableDay:An,onKeyDown:fn,onFocus:cn,onBlur:_n,onDaySelect:nn,isDateDisabled:Wt,currentMonthNumber:En,isViewFocused:Nt,"aria-colindex":Cn+1},gn.toString()))]},`week-${kn[0]}`))})}))]})}function getPickersMonthUtilityClass(tt){return generateUtilityClass("MuiPickersMonth",tt)}const pickersMonthClasses=generateUtilityClasses("MuiPickersMonth",["root","monthButton","disabled","selected"]),_excluded$p=["autoFocus","children","disabled","selected","value","tabIndex","onClick","onKeyDown","onFocus","onBlur","aria-current","monthsPerRow"],useUtilityClasses$a=tt=>{const{disabled:et,selected:nt,classes:rt}=tt;return composeClasses({root:["root"],monthButton:["monthButton",et&&"disabled",nt&&"selected"]},getPickersMonthUtilityClass,rt)},PickersMonthRoot=styled$1("div",{name:"MuiPickersMonth",slot:"Root",overridesResolver:(tt,et)=>[et.root]})(({ownerState:tt})=>({flexBasis:tt.monthsPerRow===3?"33.3%":"25%",display:"flex",alignItems:"center",justifyContent:"center"})),PickersMonthButton=styled$1("button",{name:"MuiPickersMonth",slot:"MonthButton",overridesResolver:(tt,et)=>[et.monthButton,{[`&.${pickersMonthClasses.disabled}`]:et.disabled},{[`&.${pickersMonthClasses.selected}`]:et.selected}]})(({theme:tt})=>_extends$r({color:"unset",backgroundColor:"transparent",border:0,outline:0},tt.typography.subtitle1,{margin:"8px 0",height:36,width:72,borderRadius:18,cursor:"pointer","&:focus":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.activeChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.action.active,tt.palette.action.hoverOpacity)},"&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.activeChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.action.active,tt.palette.action.hoverOpacity)},"&:disabled":{cursor:"auto",pointerEvents:"none"},[`&.${pickersMonthClasses.disabled}`]:{color:(tt.vars||tt).palette.text.secondary},[`&.${pickersMonthClasses.selected}`]:{color:(tt.vars||tt).palette.primary.contrastText,backgroundColor:(tt.vars||tt).palette.primary.main,"&:focus, &:hover":{backgroundColor:(tt.vars||tt).palette.primary.dark}}})),PickersMonth=reactExports.memo(function(et){const nt=useThemeProps({props:et,name:"MuiPickersMonth"}),{autoFocus:rt,children:it,disabled:ot,value:at,tabIndex:st,onClick:lt,onKeyDown:ct,onFocus:ut,onBlur:ht,"aria-current":dt}=nt,pt=_objectWithoutPropertiesLoose$g(nt,_excluded$p),mt=reactExports.useRef(null),gt=useUtilityClasses$a(nt);return useEnhancedEffect$1(()=>{if(rt){var yt;(yt=mt.current)==null||yt.focus()}},[rt]),jsxRuntimeExports.jsx(PickersMonthRoot,_extends$r({className:gt.root,ownerState:nt},pt,{children:jsxRuntimeExports.jsx(PickersMonthButton,{ref:mt,disabled:ot,type:"button",tabIndex:ot?-1:st,"aria-current":dt,onClick:yt=>lt(yt,at),onKeyDown:yt=>ct(yt,at),onFocus:yt=>ut(yt,at),onBlur:yt=>ht(yt,at),className:gt.monthButton,ownerState:nt,children:it})}))});function getMonthCalendarUtilityClass(tt){return generateUtilityClass("MuiMonthCalendar",tt)}generateUtilityClasses("MuiMonthCalendar",["root"]);const _excluded$o=["className","value","defaultValue","referenceDate","disabled","disableFuture","disablePast","maxDate","minDate","onChange","shouldDisableMonth","readOnly","disableHighlightToday","autoFocus","onMonthFocus","hasFocus","onFocusedViewChange","monthsPerRow","timezone"],useUtilityClasses$9=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getMonthCalendarUtilityClass,et)};function useMonthCalendarDefaultizedProps(tt,et){const nt=useUtils(),rt=useDefaultDates(),it=useThemeProps({props:tt,name:et});return _extends$r({disableFuture:!1,disablePast:!1},it,{minDate:applyDefaultDate(nt,it.minDate,rt.minDate),maxDate:applyDefaultDate(nt,it.maxDate,rt.maxDate)})}const MonthCalendarRoot=styled$1("div",{name:"MuiMonthCalendar",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"flex",flexWrap:"wrap",alignContent:"stretch",padding:"0 4px",width:320}),MonthCalendar=reactExports.forwardRef(function(et,nt){const rt=useMonthCalendarDefaultizedProps(et,"MuiMonthCalendar"),{className:it,value:ot,defaultValue:at,referenceDate:st,disabled:lt,disableFuture:ct,disablePast:ut,maxDate:ht,minDate:dt,onChange:pt,shouldDisableMonth:mt,readOnly:gt,disableHighlightToday:yt,autoFocus:bt=!1,onMonthFocus:wt,hasFocus:vt,onFocusedViewChange:kt,monthsPerRow:St=3,timezone:Tt}=rt,At=_objectWithoutPropertiesLoose$g(rt,_excluded$o),{value:Et,handleValueChange:Mt,timezone:Lt}=useControlledValueWithTimezone({name:"MonthCalendar",timezone:Tt,value:ot,defaultValue:at,onChange:pt,valueManager:singleItemValueManager}),jt=useNow(Lt),Rt=useTheme$2(),$t=useUtils(),xt=reactExports.useMemo(()=>singleItemValueManager.getInitialReferenceValue({value:Et,utils:$t,props:rt,timezone:Lt,referenceDate:st,granularity:SECTION_TYPE_GRANULARITY.month}),[]),It=rt,Ot=useUtilityClasses$9(It),zt=reactExports.useMemo(()=>$t.getMonth(jt),[$t,jt]),Ut=reactExports.useMemo(()=>Et!=null?$t.getMonth(Et):yt?null:$t.getMonth(xt),[Et,$t,yt,xt]),[Wt,Ft]=reactExports.useState(()=>Ut||zt),[Nt,Ct]=useControlled({name:"MonthCalendar",state:"hasFocus",controlled:vt,default:bt??!1}),Ht=useEventCallback(En=>{Ct(En),kt&&kt(En)}),Jt=reactExports.useCallback(En=>{const an=$t.startOfMonth(ut&&$t.isAfter(jt,dt)?jt:dt),en=$t.startOfMonth(ct&&$t.isBefore(jt,ht)?jt:ht),Tn=$t.startOfMonth(En);return $t.isBefore(Tn,an)||$t.isAfter(Tn,en)?!0:mt?mt(Tn):!1},[ct,ut,ht,dt,jt,mt,$t]),nn=useEventCallback((En,an)=>{if(gt)return;const en=$t.setMonth(Et??xt,an);Mt(en)}),Yt=useEventCallback(En=>{Jt($t.setMonth(Et??xt,En))||(Ft(En),Ht(!0),wt&&wt(En))});reactExports.useEffect(()=>{Ft(En=>Ut!==null&&En!==Ut?Ut:En)},[Ut]);const fn=useEventCallback((En,an)=>{switch(En.key){case"ArrowUp":Yt((12+an-3)%12),En.preventDefault();break;case"ArrowDown":Yt((12+an+3)%12),En.preventDefault();break;case"ArrowLeft":Yt((12+an+(Rt.direction==="ltr"?-1:1))%12),En.preventDefault();break;case"ArrowRight":Yt((12+an+(Rt.direction==="ltr"?1:-1))%12),En.preventDefault();break}}),cn=useEventCallback((En,an)=>{Yt(an)}),_n=useEventCallback((En,an)=>{Wt===an&&Ht(!1)});return jsxRuntimeExports.jsx(MonthCalendarRoot,_extends$r({ref:nt,className:clsx(Ot.root,it),ownerState:It},At,{children:getMonthsInYear($t,Et??xt).map(En=>{const an=$t.getMonth(En),en=$t.format(En,"monthShort"),Tn=an===Ut,Rn=lt||Jt(En);return jsxRuntimeExports.jsx(PickersMonth,{selected:Tn,value:an,onClick:nn,onKeyDown:fn,autoFocus:Nt&&an===Wt,disabled:Rn,tabIndex:an===Wt?0:-1,onFocus:cn,onBlur:_n,"aria-current":zt===an?"date":void 0,monthsPerRow:St,children:en},en)})}))});function getPickersYearUtilityClass(tt){return generateUtilityClass("MuiPickersYear",tt)}const pickersYearClasses=generateUtilityClasses("MuiPickersYear",["root","yearButton","selected","disabled"]),_excluded$n=["autoFocus","className","children","disabled","selected","value","tabIndex","onClick","onKeyDown","onFocus","onBlur","aria-current","yearsPerRow"],useUtilityClasses$8=tt=>{const{disabled:et,selected:nt,classes:rt}=tt;return composeClasses({root:["root"],yearButton:["yearButton",et&&"disabled",nt&&"selected"]},getPickersYearUtilityClass,rt)},PickersYearRoot=styled$1("div",{name:"MuiPickersYear",slot:"Root",overridesResolver:(tt,et)=>[et.root]})(({ownerState:tt})=>({flexBasis:tt.yearsPerRow===3?"33.3%":"25%",display:"flex",alignItems:"center",justifyContent:"center"})),PickersYearButton=styled$1("button",{name:"MuiPickersYear",slot:"YearButton",overridesResolver:(tt,et)=>[et.yearButton,{[`&.${pickersYearClasses.disabled}`]:et.disabled},{[`&.${pickersYearClasses.selected}`]:et.selected}]})(({theme:tt})=>_extends$r({color:"unset",backgroundColor:"transparent",border:0,outline:0},tt.typography.subtitle1,{margin:"8px 0",height:36,width:72,borderRadius:18,cursor:"pointer","&:focus":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.activeChannel} / ${tt.vars.palette.action.focusOpacity})`:alpha$1(tt.palette.action.active,tt.palette.action.focusOpacity)},"&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.activeChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.action.active,tt.palette.action.hoverOpacity)},"&:disabled":{cursor:"auto",pointerEvents:"none"},[`&.${pickersYearClasses.disabled}`]:{color:(tt.vars||tt).palette.text.secondary},[`&.${pickersYearClasses.selected}`]:{color:(tt.vars||tt).palette.primary.contrastText,backgroundColor:(tt.vars||tt).palette.primary.main,"&:focus, &:hover":{backgroundColor:(tt.vars||tt).palette.primary.dark}}})),PickersYear=reactExports.memo(function(et){const nt=useThemeProps({props:et,name:"MuiPickersYear"}),{autoFocus:rt,className:it,children:ot,disabled:at,value:st,tabIndex:lt,onClick:ct,onKeyDown:ut,onFocus:ht,onBlur:dt,"aria-current":pt}=nt,mt=_objectWithoutPropertiesLoose$g(nt,_excluded$n),gt=reactExports.useRef(null),yt=useUtilityClasses$8(nt);return reactExports.useEffect(()=>{rt&>.current.focus()},[rt]),jsxRuntimeExports.jsx(PickersYearRoot,_extends$r({className:clsx(yt.root,it),ownerState:nt},mt,{children:jsxRuntimeExports.jsx(PickersYearButton,{ref:gt,disabled:at,type:"button",tabIndex:at?-1:lt,"aria-current":pt,onClick:bt=>ct(bt,st),onKeyDown:bt=>ut(bt,st),onFocus:bt=>ht(bt,st),onBlur:bt=>dt(bt,st),className:yt.yearButton,ownerState:nt,children:ot})}))});function getYearCalendarUtilityClass(tt){return generateUtilityClass("MuiYearCalendar",tt)}generateUtilityClasses("MuiYearCalendar",["root"]);const _excluded$m=["autoFocus","className","value","defaultValue","referenceDate","disabled","disableFuture","disablePast","maxDate","minDate","onChange","readOnly","shouldDisableYear","disableHighlightToday","onYearFocus","hasFocus","onFocusedViewChange","yearsPerRow","timezone"],useUtilityClasses$7=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getYearCalendarUtilityClass,et)};function useYearCalendarDefaultizedProps(tt,et){const nt=useUtils(),rt=useDefaultDates(),it=useThemeProps({props:tt,name:et});return _extends$r({disablePast:!1,disableFuture:!1},it,{minDate:applyDefaultDate(nt,it.minDate,rt.minDate),maxDate:applyDefaultDate(nt,it.maxDate,rt.maxDate)})}const YearCalendarRoot=styled$1("div",{name:"MuiYearCalendar",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"flex",flexDirection:"row",flexWrap:"wrap",overflowY:"auto",height:"100%",padding:"0 4px",width:320,maxHeight:304}),YearCalendar=reactExports.forwardRef(function(et,nt){const rt=useYearCalendarDefaultizedProps(et,"MuiYearCalendar"),{autoFocus:it,className:ot,value:at,defaultValue:st,referenceDate:lt,disabled:ct,disableFuture:ut,disablePast:ht,maxDate:dt,minDate:pt,onChange:mt,readOnly:gt,shouldDisableYear:yt,disableHighlightToday:bt,onYearFocus:wt,hasFocus:vt,onFocusedViewChange:kt,yearsPerRow:St=3,timezone:Tt}=rt,At=_objectWithoutPropertiesLoose$g(rt,_excluded$m),{value:Et,handleValueChange:Mt,timezone:Lt}=useControlledValueWithTimezone({name:"YearCalendar",timezone:Tt,value:at,defaultValue:st,onChange:mt,valueManager:singleItemValueManager}),jt=useNow(Lt),Rt=useTheme$2(),$t=useUtils(),xt=reactExports.useMemo(()=>singleItemValueManager.getInitialReferenceValue({value:Et,utils:$t,props:rt,timezone:Lt,referenceDate:lt,granularity:SECTION_TYPE_GRANULARITY.year}),[]),It=rt,Ot=useUtilityClasses$7(It),zt=reactExports.useMemo(()=>$t.getYear(jt),[$t,jt]),Ut=reactExports.useMemo(()=>Et!=null?$t.getYear(Et):bt?null:$t.getYear(xt),[Et,$t,bt,xt]),[Wt,Ft]=reactExports.useState(()=>Ut||zt),[Nt,Ct]=useControlled({name:"YearCalendar",state:"hasFocus",controlled:vt,default:it??!1}),Ht=useEventCallback(en=>{Ct(en),kt&&kt(en)}),Jt=reactExports.useCallback(en=>{if(ht&&$t.isBeforeYear(en,jt)||ut&&$t.isAfterYear(en,jt)||pt&&$t.isBeforeYear(en,pt)||dt&&$t.isAfterYear(en,dt))return!0;if(!yt)return!1;const Tn=$t.startOfYear(en);return yt(Tn)},[ut,ht,dt,pt,jt,yt,$t]),nn=useEventCallback((en,Tn)=>{if(gt)return;const Rn=$t.setYear(Et??xt,Tn);Mt(Rn)}),Yt=useEventCallback(en=>{Jt($t.setYear(Et??xt,en))||(Ft(en),Ht(!0),wt==null||wt(en))});reactExports.useEffect(()=>{Ft(en=>Ut!==null&&en!==Ut?Ut:en)},[Ut]);const fn=useEventCallback((en,Tn)=>{switch(en.key){case"ArrowUp":Yt(Tn-St),en.preventDefault();break;case"ArrowDown":Yt(Tn+St),en.preventDefault();break;case"ArrowLeft":Yt(Tn+(Rt.direction==="ltr"?-1:1)),en.preventDefault();break;case"ArrowRight":Yt(Tn+(Rt.direction==="ltr"?1:-1)),en.preventDefault();break}}),cn=useEventCallback((en,Tn)=>{Yt(Tn)}),_n=useEventCallback((en,Tn)=>{Wt===Tn&&Ht(!1)}),En=reactExports.useRef(null),an=useForkRef(nt,En);return reactExports.useEffect(()=>{if(it||En.current===null)return;const en=En.current.querySelector('[tabindex="0"]');if(!en)return;const Tn=en.offsetHeight,Rn=en.offsetTop,An=En.current.clientHeight,yn=En.current.scrollTop,kn=Rn+Tn;Tn>An||Rn{const Tn=$t.getYear(en),Rn=Tn===Ut,An=ct||Jt(en);return jsxRuntimeExports.jsx(PickersYear,{selected:Rn,value:Tn,onClick:nn,onKeyDown:fn,autoFocus:Nt&&Tn===Wt,disabled:An,tabIndex:Tn===Wt?0:-1,onFocus:cn,onBlur:_n,"aria-current":zt===Tn?"date":void 0,yearsPerRow:St,children:$t.format(en,"year")},$t.format(en,"year"))})}))}),getPickersCalendarHeaderUtilityClass=tt=>generateUtilityClass("MuiPickersCalendarHeader",tt),pickersCalendarHeaderClasses=generateUtilityClasses("MuiPickersCalendarHeader",["root","labelContainer","label","switchViewButton","switchViewIcon"]),_excluded$l=["ownerState"],useUtilityClasses$6=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],labelContainer:["labelContainer"],label:["label"],switchViewButton:["switchViewButton"],switchViewIcon:["switchViewIcon"]},getPickersCalendarHeaderUtilityClass,et)},PickersCalendarHeaderRoot=styled$1("div",{name:"MuiPickersCalendarHeader",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"flex",alignItems:"center",marginTop:16,marginBottom:8,paddingLeft:24,paddingRight:12,maxHeight:30,minHeight:30}),PickersCalendarHeaderLabelContainer=styled$1("div",{name:"MuiPickersCalendarHeader",slot:"LabelContainer",overridesResolver:(tt,et)=>et.labelContainer})(({theme:tt})=>_extends$r({display:"flex",overflow:"hidden",alignItems:"center",cursor:"pointer",marginRight:"auto"},tt.typography.body1,{fontWeight:tt.typography.fontWeightMedium})),PickersCalendarHeaderLabel=styled$1("div",{name:"MuiPickersCalendarHeader",slot:"Label",overridesResolver:(tt,et)=>et.label})({marginRight:6}),PickersCalendarHeaderSwitchViewButton=styled$1(IconButton$2,{name:"MuiPickersCalendarHeader",slot:"SwitchViewButton",overridesResolver:(tt,et)=>et.switchViewButton})(({ownerState:tt})=>_extends$r({marginRight:"auto"},tt.view==="year"&&{[`.${pickersCalendarHeaderClasses.switchViewIcon}`]:{transform:"rotate(180deg)"}})),PickersCalendarHeaderSwitchViewIcon=styled$1(ArrowDropDownIcon,{name:"MuiPickersCalendarHeader",slot:"SwitchViewIcon",overridesResolver:(tt,et)=>et.switchViewIcon})(({theme:tt})=>({willChange:"transform",transition:tt.transitions.create("transform"),transform:"rotate(0deg)"}));function PickersCalendarHeader(tt){var et,nt;const rt=useLocaleText(),it=useUtils(),ot=useThemeProps({props:tt,name:"MuiPickersCalendarHeader"}),{slots:at,slotProps:st,currentMonth:lt,disabled:ct,disableFuture:ut,disablePast:ht,maxDate:dt,minDate:pt,onMonthChange:mt,onViewChange:gt,view:yt,reduceAnimations:bt,views:wt,labelId:vt,timezone:kt}=ot,St=ot,Tt=useUtilityClasses$6(ot),At=(et=at==null?void 0:at.switchViewButton)!=null?et:PickersCalendarHeaderSwitchViewButton,Et=useSlotProps({elementType:At,externalSlotProps:st==null?void 0:st.switchViewButton,additionalProps:{size:"small","aria-label":rt.calendarViewSwitchingButtonAriaLabel(yt)},ownerState:St,className:Tt.switchViewButton}),Mt=(nt=at==null?void 0:at.switchViewIcon)!=null?nt:PickersCalendarHeaderSwitchViewIcon,Lt=useSlotProps({elementType:Mt,externalSlotProps:st==null?void 0:st.switchViewIcon,ownerState:void 0,className:Tt.switchViewIcon}),jt=_objectWithoutPropertiesLoose$g(Lt,_excluded$l),Rt=()=>mt(it.addMonths(lt,1),"left"),$t=()=>mt(it.addMonths(lt,-1),"right"),xt=useNextMonthDisabled(lt,{disableFuture:ut,maxDate:dt,timezone:kt}),It=usePreviousMonthDisabled(lt,{disablePast:ht,minDate:pt,timezone:kt}),Ot=()=>{if(!(wt.length===1||!gt||ct))if(wt.length===2)gt(wt.find(zt=>zt!==yt)||wt[0]);else{const zt=wt.indexOf(yt)!==0?0:1;gt(wt[zt])}};return wt.length===1&&wt[0]==="year"?null:jsxRuntimeExports.jsxs(PickersCalendarHeaderRoot,{ownerState:St,className:Tt.root,children:[jsxRuntimeExports.jsxs(PickersCalendarHeaderLabelContainer,{role:"presentation",onClick:Ot,ownerState:St,"aria-live":"polite",className:Tt.labelContainer,children:[jsxRuntimeExports.jsx(PickersFadeTransitionGroup,{reduceAnimations:bt,transKey:it.format(lt,"monthAndYear"),children:jsxRuntimeExports.jsx(PickersCalendarHeaderLabel,{id:vt,ownerState:St,className:Tt.label,children:it.format(lt,"monthAndYear")})}),wt.length>1&&!ct&&jsxRuntimeExports.jsx(At,_extends$r({},Et,{children:jsxRuntimeExports.jsx(Mt,_extends$r({},jt))}))]}),jsxRuntimeExports.jsx(Fade$1,{in:yt==="day",children:jsxRuntimeExports.jsx(PickersArrowSwitcher,{slots:at,slotProps:st,onGoToPrevious:$t,isPreviousDisabled:It,previousLabel:rt.previousMonth,onGoToNext:Rt,isNextDisabled:xt,nextLabel:rt.nextMonth})})]})}const defaultReduceAnimations=typeof navigator<"u"&&/(android)/i.test(navigator.userAgent),getDateCalendarUtilityClass=tt=>generateUtilityClass("MuiDateCalendar",tt);generateUtilityClasses("MuiDateCalendar",["root","viewTransitionContainer"]);const _excluded$k=["autoFocus","onViewChange","value","defaultValue","referenceDate","disableFuture","disablePast","defaultCalendarMonth","onChange","onYearChange","onMonthChange","reduceAnimations","shouldDisableDate","shouldDisableMonth","shouldDisableYear","view","views","openTo","className","disabled","readOnly","minDate","maxDate","disableHighlightToday","focusedView","onFocusedViewChange","showDaysOutsideCurrentMonth","fixedWeekNumber","dayOfWeekFormatter","components","componentsProps","slots","slotProps","loading","renderLoading","displayWeekNumber","yearsPerRow","monthsPerRow","timezone"],useUtilityClasses$5=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],viewTransitionContainer:["viewTransitionContainer"]},getDateCalendarUtilityClass,et)};function useDateCalendarDefaultizedProps(tt,et){const nt=useUtils(),rt=useDefaultDates(),it=useThemeProps({props:tt,name:et});return _extends$r({loading:!1,disablePast:!1,disableFuture:!1,openTo:"day",views:["year","day"],reduceAnimations:defaultReduceAnimations,renderLoading:()=>jsxRuntimeExports.jsx("span",{children:"..."})},it,{minDate:applyDefaultDate(nt,it.minDate,rt.minDate),maxDate:applyDefaultDate(nt,it.maxDate,rt.maxDate)})}const DateCalendarRoot=styled$1(PickerViewRoot,{name:"MuiDateCalendar",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"flex",flexDirection:"column"}),DateCalendarViewTransitionContainer=styled$1(PickersFadeTransitionGroup,{name:"MuiDateCalendar",slot:"ViewTransitionContainer",overridesResolver:(tt,et)=>et.viewTransitionContainer})({}),DateCalendar=reactExports.forwardRef(function(et,nt){const rt=useUtils(),it=useId(),ot=useDateCalendarDefaultizedProps(et,"MuiDateCalendar"),{autoFocus:at,onViewChange:st,value:lt,defaultValue:ct,referenceDate:ut,disableFuture:ht,disablePast:dt,defaultCalendarMonth:pt,onChange:mt,onYearChange:gt,onMonthChange:yt,reduceAnimations:bt,shouldDisableDate:wt,shouldDisableMonth:vt,shouldDisableYear:kt,view:St,views:Tt,openTo:At,className:Et,disabled:Mt,readOnly:Lt,minDate:jt,maxDate:Rt,disableHighlightToday:$t,focusedView:xt,onFocusedViewChange:It,showDaysOutsideCurrentMonth:Ot,fixedWeekNumber:zt,dayOfWeekFormatter:Ut,components:Wt,componentsProps:Ft,slots:Nt,slotProps:Ct,loading:Ht,renderLoading:Jt,displayWeekNumber:nn,yearsPerRow:Yt,monthsPerRow:fn,timezone:cn}=ot,_n=_objectWithoutPropertiesLoose$g(ot,_excluded$k),{value:En,handleValueChange:an,timezone:en}=useControlledValueWithTimezone({name:"DateCalendar",timezone:cn,value:lt,defaultValue:ct,onChange:mt,valueManager:singleItemValueManager}),{view:Tn,setView:Rn,focusedView:An,setFocusedView:yn,goToNextView:kn,setValueAndGoToNextView:dn}=useViews({view:St,views:Tt,openTo:At,onChange:an,onViewChange:st,autoFocus:at,focusedView:xt,onFocusedViewChange:It}),{referenceDate:gn,calendarState:Cn,changeFocusedDay:$n,changeMonth:un,handleChangeMonth:rn,isDateDisabled:Sn,onMonthSwitchingAnimationEnd:Mn}=useCalendarState({value:En,defaultCalendarMonth:pt,referenceDate:ut,reduceAnimations:bt,onMonthChange:yt,minDate:jt,maxDate:Rt,shouldDisableDate:wt,disablePast:dt,disableFuture:ht,timezone:en}),Nn=useEventCallback(Vn=>{const pr=rt.startOfMonth(Vn),fr=rt.endOfMonth(Vn),Er=Sn(Vn)?findClosestEnabledDate({utils:rt,date:Vn,minDate:rt.isBefore(jt,pr)?pr:jt,maxDate:rt.isAfter(Rt,fr)?fr:Rt,disablePast:dt,disableFuture:ht,isDateDisabled:Sn,timezone:en}):Vn;Er?(dn(Er,"finish"),yt==null||yt(pr)):(kn(),un(pr)),$n(Er,!0)}),hn=useEventCallback(Vn=>{const pr=rt.startOfYear(Vn),fr=rt.endOfYear(Vn),Er=Sn(Vn)?findClosestEnabledDate({utils:rt,date:Vn,minDate:rt.isBefore(jt,pr)?pr:jt,maxDate:rt.isAfter(Rt,fr)?fr:Rt,disablePast:dt,disableFuture:ht,isDateDisabled:Sn,timezone:en}):Vn;Er?(dn(Er,"finish"),gt==null||gt(Er)):(kn(),un(pr)),$n(Er,!0)}),Qt=useEventCallback(Vn=>an(Vn&&mergeDateAndTime(rt,Vn,En??gn),"finish"));reactExports.useEffect(()=>{En!=null&&rt.isValid(En)&&un(En)},[En]);const Zt=ot,wn=useUtilityClasses$5(Zt),On={disablePast:dt,disableFuture:ht,maxDate:Rt,minDate:jt},jn=Mt&&En||jt,Un=Mt&&En||Rt,tr={disableHighlightToday:$t,readOnly:Lt,disabled:Mt,timezone:en},qn=`${it}-grid-label`,Xn=An!==null,Wn=reactExports.useRef(Tn);reactExports.useEffect(()=>{Wn.current!==Tn&&(An===Wn.current&&yn(Tn,!0),Wn.current=Tn)},[An,yn,Tn]);const Zn=reactExports.useMemo(()=>[En],[En]);return jsxRuntimeExports.jsxs(DateCalendarRoot,_extends$r({ref:nt,className:clsx(wn.root,Et),ownerState:Zt},_n,{children:[jsxRuntimeExports.jsx(PickersCalendarHeader,{views:Tt,view:Tn,currentMonth:Cn.currentMonth,onViewChange:Rn,onMonthChange:(Vn,pr)=>rn({newMonth:Vn,direction:pr}),minDate:jn,maxDate:Un,disabled:Mt,disablePast:dt,disableFuture:ht,reduceAnimations:bt,labelId:qn,slots:Nt,slotProps:Ct,timezone:en}),jsxRuntimeExports.jsx(DateCalendarViewTransitionContainer,{reduceAnimations:bt,className:wn.viewTransitionContainer,transKey:Tn,ownerState:Zt,children:jsxRuntimeExports.jsxs("div",{children:[Tn==="year"&&jsxRuntimeExports.jsx(YearCalendar,_extends$r({},On,tr,{value:En,onChange:hn,shouldDisableYear:kt,hasFocus:Xn,onFocusedViewChange:Vn=>yn("year",Vn),yearsPerRow:Yt,referenceDate:gn})),Tn==="month"&&jsxRuntimeExports.jsx(MonthCalendar,_extends$r({},On,tr,{hasFocus:Xn,className:Et,value:En,onChange:Nn,shouldDisableMonth:vt,onFocusedViewChange:Vn=>yn("month",Vn),monthsPerRow:fn,referenceDate:gn})),Tn==="day"&&jsxRuntimeExports.jsx(DayCalendar,_extends$r({},Cn,On,tr,{onMonthSwitchingAnimationEnd:Mn,onFocusedDayChange:$n,reduceAnimations:bt,selectedDays:Zn,onSelectedDaysChange:Qt,shouldDisableDate:wt,shouldDisableMonth:vt,shouldDisableYear:kt,hasFocus:Xn,onFocusedViewChange:Vn=>yn("day",Vn),gridLabelId:qn,showDaysOutsideCurrentMonth:Ot,fixedWeekNumber:zt,dayOfWeekFormatter:Ut,displayWeekNumber:nn,components:Wt,componentsProps:Ft,slots:Nt,slotProps:Ct,loading:Ht,renderLoading:Jt}))]})})]}))});function getPickersToolbarUtilityClass(tt){return generateUtilityClass("MuiPickersToolbar",tt)}generateUtilityClasses("MuiPickersToolbar",["root","content"]);const useUtilityClasses$4=tt=>{const{classes:et,isLandscape:nt}=tt;return composeClasses({root:["root"],content:["content"],penIconButton:["penIconButton",nt&&"penIconButtonLandscape"]},getPickersToolbarUtilityClass,et)},PickersToolbarRoot=styled$1("div",{name:"MuiPickersToolbar",slot:"Root",overridesResolver:(tt,et)=>et.root})(({theme:tt,ownerState:et})=>_extends$r({display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"space-between",padding:tt.spacing(2,3)},et.isLandscape&&{height:"auto",maxWidth:160,padding:16,justifyContent:"flex-start",flexWrap:"wrap"})),PickersToolbarContent=styled$1(Grid$1,{name:"MuiPickersToolbar",slot:"Content",overridesResolver:(tt,et)=>et.content})(({ownerState:tt})=>_extends$r({flex:1},!tt.isLandscape&&{alignItems:"center"})),PickersToolbar=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiPickersToolbar"}),{children:it,className:ot,isLandscape:at,landscapeDirection:st="column",toolbarTitle:lt,hidden:ct,titleId:ut}=rt,ht=rt,dt=useUtilityClasses$4(ht);return ct?null:jsxRuntimeExports.jsxs(PickersToolbarRoot,{ref:nt,className:clsx(dt.root,ot),ownerState:ht,children:[jsxRuntimeExports.jsx(Typography$1,{color:"text.secondary",variant:"overline",id:ut,children:lt}),jsxRuntimeExports.jsx(PickersToolbarContent,{container:!0,justifyContent:at?"flex-start":"space-between",className:dt.content,ownerState:ht,direction:at?st:"row",alignItems:at?"flex-start":"flex-end",children:it})]})});function getDatePickerToolbarUtilityClass(tt){return generateUtilityClass("MuiDatePickerToolbar",tt)}generateUtilityClasses("MuiDatePickerToolbar",["root","title"]);const _excluded$j=["value","isLandscape","onChange","toolbarFormat","toolbarPlaceholder","views"],useUtilityClasses$3=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],title:["title"]},getDatePickerToolbarUtilityClass,et)},DatePickerToolbarRoot=styled$1(PickersToolbar,{name:"MuiDatePickerToolbar",slot:"Root",overridesResolver:(tt,et)=>et.root})({}),DatePickerToolbarTitle=styled$1(Typography$1,{name:"MuiDatePickerToolbar",slot:"Title",overridesResolver:(tt,et)=>et.title})(({ownerState:tt})=>_extends$r({},tt.isLandscape&&{margin:"auto 16px auto auto"})),DatePickerToolbar=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiDatePickerToolbar"}),{value:it,isLandscape:ot,toolbarFormat:at,toolbarPlaceholder:st="––",views:lt}=rt,ct=_objectWithoutPropertiesLoose$g(rt,_excluded$j),ut=useUtils(),ht=useLocaleText(),dt=useUtilityClasses$3(rt),pt=reactExports.useMemo(()=>{if(!it)return st;const gt=resolveDateFormat(ut,{format:at,views:lt},!0);return ut.formatByString(it,gt)},[it,at,st,ut,lt]),mt=rt;return jsxRuntimeExports.jsx(DatePickerToolbarRoot,_extends$r({ref:nt,toolbarTitle:ht.datePickerToolbarTitle,isLandscape:ot,className:dt.root},ct,{children:jsxRuntimeExports.jsx(DatePickerToolbarTitle,{variant:"h4",align:ot?"left":"center",ownerState:mt,className:dt.title,children:pt})}))});function useDatePickerDefaultizedProps(tt,et){var nt,rt,it,ot;const at=useUtils(),st=useDefaultDates(),lt=useThemeProps({props:tt,name:et}),ct=reactExports.useMemo(()=>{var ht;return((ht=lt.localeText)==null?void 0:ht.toolbarTitle)==null?lt.localeText:_extends$r({},lt.localeText,{datePickerToolbarTitle:lt.localeText.toolbarTitle})},[lt.localeText]),ut=(nt=lt.slots)!=null?nt:uncapitalizeObjectKeys(lt.components);return _extends$r({},lt,{localeText:ct},applyDefaultViewProps({views:lt.views,openTo:lt.openTo,defaultViews:["year","day"],defaultOpenTo:"day"}),{disableFuture:(rt=lt.disableFuture)!=null?rt:!1,disablePast:(it=lt.disablePast)!=null?it:!1,minDate:applyDefaultDate(at,lt.minDate,st.minDate),maxDate:applyDefaultDate(at,lt.maxDate,st.maxDate),slots:_extends$r({toolbar:DatePickerToolbar},ut),slotProps:(ot=lt.slotProps)!=null?ot:lt.componentsProps})}const PickersModalDialogRoot=styled$1(MuiDialog)({[`& .${dialogClasses$1.container}`]:{outline:0},[`& .${dialogClasses$1.paper}`]:{outline:0,minWidth:DIALOG_WIDTH}}),PickersModalDialogContent=styled$1(DialogContent$1)({"&:first-of-type":{padding:0}});function PickersModalDialog(tt){var et,nt;const{children:rt,onDismiss:it,open:ot,slots:at,slotProps:st}=tt,lt=(et=at==null?void 0:at.dialog)!=null?et:PickersModalDialogRoot,ct=(nt=at==null?void 0:at.mobileTransition)!=null?nt:Fade$1;return jsxRuntimeExports.jsx(lt,_extends$r({open:ot,onClose:it},st==null?void 0:st.dialog,{TransitionComponent:ct,TransitionProps:st==null?void 0:st.mobileTransition,PaperComponent:at==null?void 0:at.mobilePaper,PaperProps:st==null?void 0:st.mobilePaper,children:jsxRuntimeExports.jsx(PickersModalDialogContent,{children:rt})}))}function getPickersPopperUtilityClass(tt){return generateUtilityClass("MuiPickersPopper",tt)}generateUtilityClasses("MuiPickersPopper",["root","paper"]);const useUtilityClasses$2=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],paper:["paper"]},getPickersPopperUtilityClass,et)},PickersPopperRoot=styled$1(MuiPopper,{name:"MuiPickersPopper",slot:"Root",overridesResolver:(tt,et)=>et.root})(({theme:tt})=>({zIndex:tt.zIndex.modal})),PickersPopperPaper=styled$1(Paper$1,{name:"MuiPickersPopper",slot:"Paper",overridesResolver:(tt,et)=>et.paper})(({ownerState:tt})=>_extends$r({transformOrigin:"top center",outline:0},tt.placement==="top"&&{transformOrigin:"bottom center"}));function clickedRootScrollbar(tt,et){return et.documentElement.clientWidth{if(!tt)return;function lt(){ot.current=!0}return document.addEventListener("mousedown",lt,!0),document.addEventListener("touchstart",lt,!0),()=>{document.removeEventListener("mousedown",lt,!0),document.removeEventListener("touchstart",lt,!0),ot.current=!1}},[tt]);const at=useEventCallback(lt=>{if(!ot.current)return;const ct=rt.current;rt.current=!1;const ut=ownerDocument(it.current);if(!it.current||"clientX"in lt&&clickedRootScrollbar(lt,ut))return;if(nt.current){nt.current=!1;return}let ht;lt.composedPath?ht=lt.composedPath().indexOf(it.current)>-1:ht=!ut.documentElement.contains(lt.target)||it.current.contains(lt.target),!ht&&!ct&&et(lt)}),st=()=>{rt.current=!0};return reactExports.useEffect(()=>{if(tt){const lt=ownerDocument(it.current),ct=()=>{nt.current=!0};return lt.addEventListener("touchstart",at),lt.addEventListener("touchmove",ct),()=>{lt.removeEventListener("touchstart",at),lt.removeEventListener("touchmove",ct)}}},[tt,at]),reactExports.useEffect(()=>{if(tt){const lt=ownerDocument(it.current);return lt.addEventListener("click",at),()=>{lt.removeEventListener("click",at),rt.current=!1}}},[tt,at]),[it,st,st]}function PickersPopper(tt){var et,nt,rt,it;const ot=useThemeProps({props:tt,name:"MuiPickersPopper"}),{anchorEl:at,children:st,containerRef:lt=null,shouldRestoreFocus:ct,onBlur:ut,onDismiss:ht,open:dt,role:pt,placement:mt,slots:gt,slotProps:yt}=ot;reactExports.useEffect(()=>{function zt(Ut){dt&&(Ut.key==="Escape"||Ut.key==="Esc")&&ht()}return document.addEventListener("keydown",zt),()=>{document.removeEventListener("keydown",zt)}},[ht,dt]);const bt=reactExports.useRef(null);reactExports.useEffect(()=>{pt==="tooltip"||ct&&!ct()||(dt?bt.current=getActiveElement(document):bt.current&&bt.current instanceof HTMLElement&&setTimeout(()=>{bt.current instanceof HTMLElement&&bt.current.focus()}))},[dt,pt,ct]);const[wt,vt,kt]=useClickAwayListener(dt,ut??ht),St=reactExports.useRef(null),Tt=useForkRef(St,lt),At=useForkRef(Tt,wt),Et=ot,Mt=useUtilityClasses$2(Et),Lt=zt=>{zt.key==="Escape"&&(zt.stopPropagation(),ht())},jt=(et=gt==null?void 0:gt.desktopTransition)!=null?et:Grow$1,Rt=(nt=gt==null?void 0:gt.desktopTrapFocus)!=null?nt:FocusTrap,$t=(rt=gt==null?void 0:gt.desktopPaper)!=null?rt:PickersPopperPaper,xt=useSlotProps({elementType:$t,externalSlotProps:yt==null?void 0:yt.desktopPaper,additionalProps:{tabIndex:-1,elevation:8,ref:At},className:Mt.paper,ownerState:{}}),It=(it=gt==null?void 0:gt.popper)!=null?it:PickersPopperRoot,Ot=useSlotProps({elementType:It,externalSlotProps:yt==null?void 0:yt.popper,additionalProps:{transition:!0,role:pt,open:dt,anchorEl:at,placement:mt,onKeyDown:Lt},className:Mt.root,ownerState:ot});return jsxRuntimeExports.jsx(It,_extends$r({},Ot,{children:({TransitionProps:zt,placement:Ut})=>jsxRuntimeExports.jsx(Rt,_extends$r({open:dt,disableAutoFocus:!0,disableRestoreFocus:!0,disableEnforceFocus:pt==="tooltip",isEnabled:()=>!0},yt==null?void 0:yt.desktopTrapFocus,{children:jsxRuntimeExports.jsx(jt,_extends$r({},zt,yt==null?void 0:yt.desktopTransition,{children:jsxRuntimeExports.jsx($t,_extends$r({},xt,{onClick:Wt=>{var Ft;vt(Wt),(Ft=xt.onClick)==null||Ft.call(xt,Wt)},onTouchStart:Wt=>{var Ft;kt(Wt),(Ft=xt.onTouchStart)==null||Ft.call(xt,Wt)},ownerState:_extends$r({},Et,{placement:Ut}),children:st}))}))}))}))}const useOpenState=({open:tt,onOpen:et,onClose:nt})=>{const rt=reactExports.useRef(typeof tt=="boolean").current,[it,ot]=reactExports.useState(!1);reactExports.useEffect(()=>{if(rt){if(typeof tt!="boolean")throw new Error("You must not mix controlling and uncontrolled mode for `open` prop");ot(tt)}},[rt,tt]);const at=reactExports.useCallback(st=>{rt||ot(st),st&&et&&et(),!st&&nt&&nt()},[rt,et,nt]);return{isOpen:it,setIsOpen:at}},shouldPublishValue=tt=>{const{action:et,hasChanged:nt,dateState:rt,isControlled:it}=tt,ot=!it&&!rt.hasBeenModifiedSinceMount;return et.name==="setValueFromField"?!0:et.name==="setValueFromAction"?ot&&["accept","today","clear"].includes(et.pickerAction)?!0:nt(rt.lastPublishedValue):et.name==="setValueFromView"&&et.selectionState!=="shallow"||et.name==="setValueFromShortcut"&&et.changeImportance==="accept"?ot?!0:nt(rt.lastPublishedValue):!1},shouldCommitValue=tt=>{const{action:et,hasChanged:nt,dateState:rt,isControlled:it,closeOnSelect:ot}=tt,at=!it&&!rt.hasBeenModifiedSinceMount;return et.name==="setValueFromAction"?at&&["accept","today","clear"].includes(et.pickerAction)?!0:nt(rt.lastCommittedValue):et.name==="setValueFromView"&&et.selectionState==="finish"&&ot?at?!0:nt(rt.lastCommittedValue):et.name==="setValueFromShortcut"?et.changeImportance==="accept"&&nt(rt.lastCommittedValue):!1},shouldClosePicker=tt=>{const{action:et,closeOnSelect:nt}=tt;return et.name==="setValueFromAction"?!0:et.name==="setValueFromView"?et.selectionState==="finish"&&nt:et.name==="setValueFromShortcut"?et.changeImportance==="accept":!1},usePickerValue=({props:tt,valueManager:et,valueType:nt,wrapperVariant:rt,validator:it})=>{const{onAccept:ot,onChange:at,value:st,defaultValue:lt,closeOnSelect:ct=rt==="desktop",selectedSections:ut,onSelectedSectionsChange:ht,timezone:dt}=tt,{current:pt}=reactExports.useRef(lt),{current:mt}=reactExports.useRef(st!==void 0),gt=useUtils(),yt=useLocalizationContext(),[bt,wt]=useControlled({controlled:ut,default:null,name:"usePickerValue",state:"selectedSections"}),{isOpen:vt,setIsOpen:kt}=useOpenState(tt),[St,Tt]=reactExports.useState(()=>{let fn;return st!==void 0?fn=st:pt!==void 0?fn=pt:fn=et.emptyValue,{draft:fn,lastPublishedValue:fn,lastCommittedValue:fn,lastControlledValue:st,hasBeenModifiedSinceMount:!1}}),{timezone:At,handleValueChange:Et}=useValueWithTimezone({timezone:dt,value:st,defaultValue:pt,onChange:at,valueManager:et});useValidation(_extends$r({},tt,{value:St.draft,timezone:At}),it,et.isSameError,et.defaultErrorState);const Mt=useEventCallback(fn=>{const cn={action:fn,dateState:St,hasChanged:en=>!et.areValuesEqual(gt,fn.value,en),isControlled:mt,closeOnSelect:ct},_n=shouldPublishValue(cn),En=shouldCommitValue(cn),an=shouldClosePicker(cn);if(Tt(en=>_extends$r({},en,{draft:fn.value,lastPublishedValue:_n?fn.value:en.lastPublishedValue,lastCommittedValue:En?fn.value:en.lastCommittedValue,hasBeenModifiedSinceMount:!0})),_n){const Tn={validationError:fn.name==="setValueFromField"?fn.context.validationError:it({adapter:yt,value:fn.value,props:_extends$r({},tt,{value:fn.value,timezone:At})})};Et(fn.value,Tn)}En&&ot&&ot(fn.value),an&&kt(!1)});if(st!==void 0&&(St.lastControlledValue===void 0||!et.areValuesEqual(gt,St.lastControlledValue,st))){const fn=et.areValuesEqual(gt,St.draft,st);Tt(cn=>_extends$r({},cn,{lastControlledValue:st},fn?{}:{lastCommittedValue:st,lastPublishedValue:st,draft:st,hasBeenModifiedSinceMount:!0}))}const Lt=useEventCallback(()=>{Mt({value:et.emptyValue,name:"setValueFromAction",pickerAction:"clear"})}),jt=useEventCallback(()=>{Mt({value:St.lastPublishedValue,name:"setValueFromAction",pickerAction:"accept"})}),Rt=useEventCallback(()=>{Mt({value:St.lastPublishedValue,name:"setValueFromAction",pickerAction:"dismiss"})}),$t=useEventCallback(()=>{Mt({value:St.lastCommittedValue,name:"setValueFromAction",pickerAction:"cancel"})}),xt=useEventCallback(()=>{Mt({value:et.getTodayValue(gt,At,nt),name:"setValueFromAction",pickerAction:"today"})}),It=useEventCallback(()=>kt(!0)),Ot=useEventCallback(()=>kt(!1)),zt=useEventCallback((fn,cn="partial")=>Mt({name:"setValueFromView",value:fn,selectionState:cn})),Ut=useEventCallback((fn,cn)=>Mt({name:"setValueFromShortcut",value:fn,changeImportance:cn??"accept"})),Wt=useEventCallback((fn,cn)=>Mt({name:"setValueFromField",value:fn,context:cn})),Ft=useEventCallback(fn=>{wt(fn),ht==null||ht(fn)}),Nt={onClear:Lt,onAccept:jt,onDismiss:Rt,onCancel:$t,onSetToday:xt,onOpen:It,onClose:Ot},Ct={value:St.draft,onChange:Wt,selectedSections:bt,onSelectedSectionsChange:Ft},Ht=reactExports.useMemo(()=>et.cleanValue(gt,St.draft),[gt,et,St.draft]),Jt={value:Ht,onChange:zt,onClose:Ot,open:vt,onSelectedSectionsChange:Ft},Yt=_extends$r({},Nt,{value:Ht,onChange:zt,onSelectShortcut:Ut,isValid:fn=>{const cn=it({adapter:yt,value:fn,props:_extends$r({},tt,{value:fn,timezone:At})});return!et.hasError(cn)}});return{open:vt,fieldProps:Ct,viewProps:Jt,layoutProps:Yt,actions:Nt}},_excluded$i=["className","sx"],usePickerViews=({props:tt,propsFromPickerValue:et,additionalViewProps:nt,inputRef:rt,autoFocusView:it})=>{const{onChange:ot,open:at,onSelectedSectionsChange:st,onClose:lt}=et,{views:ct,openTo:ut,onViewChange:ht,disableOpenPicker:dt,viewRenderers:pt,timezone:mt}=tt,gt=_objectWithoutPropertiesLoose$g(tt,_excluded$i),{view:yt,setView:bt,defaultView:wt,focusedView:vt,setFocusedView:kt,setValueAndGoToNextView:St}=useViews({view:void 0,views:ct,openTo:ut,onChange:ot,onViewChange:ht,autoFocus:it}),{hasUIView:Tt,viewModeLookup:At}=reactExports.useMemo(()=>ct.reduce((xt,It)=>{let Ot;return dt?Ot="field":pt[It]!=null?Ot="UI":Ot="field",xt.viewModeLookup[It]=Ot,Ot==="UI"&&(xt.hasUIView=!0),xt},{hasUIView:!1,viewModeLookup:{}}),[dt,pt,ct]),Et=reactExports.useMemo(()=>ct.reduce((xt,It)=>pt[It]!=null&&isTimeView(It)?xt+1:xt,0),[pt,ct]),Mt=At[yt],Lt=useEventCallback(()=>Mt==="UI"),[jt,Rt]=reactExports.useState(Mt==="UI"?yt:null);return jt!==yt&&At[yt]==="UI"&&Rt(yt),useEnhancedEffect$1(()=>{Mt==="field"&&at&&(lt(),setTimeout(()=>{rt==null||rt.current.focus(),st(yt)}))},[yt]),useEnhancedEffect$1(()=>{if(!at)return;let xt=yt;Mt==="field"&&jt!=null&&(xt=jt),xt!==wt&&At[xt]==="UI"&&At[wt]==="UI"&&(xt=wt),xt!==yt&&bt(xt),kt(xt,!0)},[at]),{hasUIView:Tt,shouldRestoreFocus:Lt,layoutProps:{views:ct,view:jt,onViewChange:bt},renderCurrentView:()=>{if(jt==null)return null;const xt=pt[jt];return xt==null?null:xt(_extends$r({},gt,nt,et,{views:ct,timezone:mt,onChange:St,view:jt,onViewChange:bt,focusedView:vt,onFocusedViewChange:kt,showViewSwitcher:Et>1,timeViewsCount:Et}))}}};function getOrientation(){return typeof window>"u"?"portrait":window.screen&&window.screen.orientation&&window.screen.orientation.angle?Math.abs(window.screen.orientation.angle)===90?"landscape":"portrait":window.orientation&&Math.abs(Number(window.orientation))===90?"landscape":"portrait"}const useIsLandscape=(tt,et)=>{const[nt,rt]=reactExports.useState(getOrientation);return useEnhancedEffect$1(()=>{const ot=()=>{rt(getOrientation())};return window.addEventListener("orientationchange",ot),()=>{window.removeEventListener("orientationchange",ot)}},[]),arrayIncludes(tt,["hours","minutes","seconds"])?!1:(et||nt)==="landscape"},usePickerLayoutProps=({props:tt,propsFromPickerValue:et,propsFromPickerViews:nt,wrapperVariant:rt})=>{const{orientation:it}=tt,ot=useIsLandscape(nt.views,it);return{layoutProps:_extends$r({},nt,et,{isLandscape:ot,wrapperVariant:rt,disabled:tt.disabled,readOnly:tt.readOnly})}},buildWarning=(tt,et="warning")=>{let nt=!1;const rt=Array.isArray(tt)?tt.join(` -`):tt;return()=>{nt||(nt=!0,et==="error"?console.error(rt):console.warn(rt))}};buildWarning(["The `renderInput` prop has been removed in version 6.0 of the Date and Time Pickers.","You can replace it with the `textField` component slot in most cases.","For more information, please have a look at the migration guide (https://mui.com/x/migration/migration-pickers-v5/#input-renderer-required-in-v5)."]);const usePicker=({props:tt,valueManager:et,valueType:nt,wrapperVariant:rt,inputRef:it,additionalViewProps:ot,validator:at,autoFocusView:st})=>{const lt=usePickerValue({props:tt,valueManager:et,valueType:nt,wrapperVariant:rt,validator:at}),ct=usePickerViews({props:tt,inputRef:it,additionalViewProps:ot,autoFocusView:st,propsFromPickerValue:lt.viewProps}),ut=usePickerLayoutProps({props:tt,wrapperVariant:rt,propsFromPickerValue:lt.layoutProps,propsFromPickerViews:ct.layoutProps});return{open:lt.open,actions:lt.actions,fieldProps:lt.fieldProps,renderCurrentView:ct.renderCurrentView,hasUIView:ct.hasUIView,shouldRestoreFocus:ct.shouldRestoreFocus,layoutProps:ut.layoutProps}};function getPickersLayoutUtilityClass(tt){return generateUtilityClass("MuiPickersLayout",tt)}const pickersLayoutClasses=generateUtilityClasses("MuiPickersLayout",["root","landscape","contentWrapper","toolbar","actionBar","shortcuts"]),_excluded$h=["onAccept","onClear","onCancel","onSetToday","actions"];function PickersActionBar(tt){const{onAccept:et,onClear:nt,onCancel:rt,onSetToday:it,actions:ot}=tt,at=_objectWithoutPropertiesLoose$g(tt,_excluded$h),st=useLocaleText();if(ot==null||ot.length===0)return null;const lt=ot==null?void 0:ot.map(ct=>{switch(ct){case"clear":return jsxRuntimeExports.jsx(Button$2,{onClick:nt,children:st.clearButtonLabel},ct);case"cancel":return jsxRuntimeExports.jsx(Button$2,{onClick:rt,children:st.cancelButtonLabel},ct);case"accept":return jsxRuntimeExports.jsx(Button$2,{onClick:et,children:st.okButtonLabel},ct);case"today":return jsxRuntimeExports.jsx(Button$2,{onClick:it,children:st.todayButtonLabel},ct);default:return null}});return jsxRuntimeExports.jsx(DialogActions$1,_extends$r({},at,{children:lt}))}const _excluded$g=["items","changeImportance","isLandscape","onChange","isValid"];function PickersShortcuts(tt){const{items:et,changeImportance:nt,onChange:rt,isValid:it}=tt,ot=_objectWithoutPropertiesLoose$g(tt,_excluded$g);if(et==null||et.length===0)return null;const at=et.map(st=>{const lt=st.getValue({isValid:it});return{label:st.label,onClick:()=>{rt(lt,nt)},disabled:!it(lt)}});return jsxRuntimeExports.jsx(List$1,_extends$r({dense:!0,sx:[{maxHeight:VIEW_HEIGHT,maxWidth:200,overflow:"auto"},...Array.isArray(ot.sx)?ot.sx:[ot.sx]]},ot,{children:at.map(st=>jsxRuntimeExports.jsx(ListItem$1,{children:jsxRuntimeExports.jsx(Chip$1,_extends$r({},st))},st.label))}))}function toolbarHasView(tt){return tt.view!==null}const useUtilityClasses$1=tt=>{const{classes:et,isLandscape:nt}=tt;return composeClasses({root:["root",nt&&"landscape"],contentWrapper:["contentWrapper"],toolbar:["toolbar"],actionBar:["actionBar"],tabs:["tabs"],landscape:["landscape"],shortcuts:["shortcuts"]},getPickersLayoutUtilityClass,et)},usePickerLayout=tt=>{var et,nt;const{wrapperVariant:rt,onAccept:it,onClear:ot,onCancel:at,onSetToday:st,view:lt,views:ct,onViewChange:ut,value:ht,onChange:dt,onSelectShortcut:pt,isValid:mt,isLandscape:gt,disabled:yt,readOnly:bt,children:wt,components:vt,componentsProps:kt,slots:St,slotProps:Tt}=tt,At=St??uncapitalizeObjectKeys(vt),Et=Tt??kt,Mt=useUtilityClasses$1(tt),Lt=(et=At==null?void 0:At.actionBar)!=null?et:PickersActionBar,jt=useSlotProps({elementType:Lt,externalSlotProps:Et==null?void 0:Et.actionBar,additionalProps:{onAccept:it,onClear:ot,onCancel:at,onSetToday:st,actions:rt==="desktop"?[]:["cancel","accept"],className:Mt.actionBar},ownerState:_extends$r({},tt,{wrapperVariant:rt})}),Rt=jsxRuntimeExports.jsx(Lt,_extends$r({},jt)),$t=At==null?void 0:At.toolbar,xt=useSlotProps({elementType:$t,externalSlotProps:Et==null?void 0:Et.toolbar,additionalProps:{isLandscape:gt,onChange:dt,value:ht,view:lt,onViewChange:ut,views:ct,disabled:yt,readOnly:bt,className:Mt.toolbar},ownerState:_extends$r({},tt,{wrapperVariant:rt})}),It=toolbarHasView(xt)&&$t?jsxRuntimeExports.jsx($t,_extends$r({},xt)):null,Ot=wt,zt=At==null?void 0:At.tabs,Ut=lt&&zt?jsxRuntimeExports.jsx(zt,_extends$r({view:lt,onViewChange:ut},Et==null?void 0:Et.tabs)):null,Wt=(nt=At==null?void 0:At.shortcuts)!=null?nt:PickersShortcuts,Ft=useSlotProps({elementType:Wt,externalSlotProps:Et==null?void 0:Et.shortcuts,additionalProps:{isValid:mt,isLandscape:gt,onChange:pt,className:Mt.shortcuts},ownerState:{isValid:mt,isLandscape:gt,onChange:pt,className:Mt.shortcuts,wrapperVariant:rt}}),Nt=lt&&Wt?jsxRuntimeExports.jsx(Wt,_extends$r({},Ft)):null;return{toolbar:It,content:Ot,tabs:Ut,actionBar:Rt,shortcuts:Nt}},usePickerLayout$1=usePickerLayout,useUtilityClasses=tt=>{const{isLandscape:et,classes:nt}=tt;return composeClasses({root:["root",et&&"landscape"],contentWrapper:["contentWrapper"]},getPickersLayoutUtilityClass,nt)},PickersLayoutRoot=styled$1("div",{name:"MuiPickersLayout",slot:"Root",overridesResolver:(tt,et)=>et.root})(({theme:tt,ownerState:et})=>({display:"grid",gridAutoColumns:"max-content auto max-content",gridAutoRows:"max-content auto max-content",[`& .${pickersLayoutClasses.toolbar}`]:et.isLandscape?{gridColumn:tt.direction==="rtl"?3:1,gridRow:"2 / 3"}:{gridColumn:"2 / 4",gridRow:1},[`.${pickersLayoutClasses.shortcuts}`]:et.isLandscape?{gridColumn:"2 / 4",gridRow:1}:{gridColumn:tt.direction==="rtl"?3:1,gridRow:"2 / 3"},[`& .${pickersLayoutClasses.actionBar}`]:{gridColumn:"1 / 4",gridRow:3}}));PickersLayoutRoot.propTypes={as:PropTypes.elementType,ownerState:PropTypes.shape({isLandscape:PropTypes.bool.isRequired}).isRequired,sx:PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func,PropTypes.object,PropTypes.bool])),PropTypes.func,PropTypes.object])};const PickersLayoutContentWrapper=styled$1("div",{name:"MuiPickersLayout",slot:"ContentWrapper",overridesResolver:(tt,et)=>et.contentWrapper})({gridColumn:2,gridRow:2,display:"flex",flexDirection:"column"}),PickersLayout=function(et){const nt=useThemeProps({props:et,name:"MuiPickersLayout"}),{toolbar:rt,content:it,tabs:ot,actionBar:at,shortcuts:st}=usePickerLayout$1(nt),{sx:lt,className:ct,isLandscape:ut,ref:ht,wrapperVariant:dt}=nt,pt=nt,mt=useUtilityClasses(pt);return jsxRuntimeExports.jsxs(PickersLayoutRoot,{ref:ht,sx:lt,className:clsx(ct,mt.root),ownerState:pt,children:[ut?st:rt,ut?rt:st,jsxRuntimeExports.jsx(PickersLayoutContentWrapper,{className:mt.contentWrapper,children:dt==="desktop"?jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[it,ot]}):jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ot,it]})}),at]})},_excluded$f=["props","getOpenDialogAriaText"],_excluded2$3=["ownerState"],_excluded3$1=["ownerState"],useDesktopPicker=tt=>{var et,nt,rt,it,ot;let{props:at,getOpenDialogAriaText:st}=tt,lt=_objectWithoutPropertiesLoose$g(tt,_excluded$f);const{slots:ct,slotProps:ut,className:ht,sx:dt,format:pt,formatDensity:mt,timezone:gt,label:yt,inputRef:bt,readOnly:wt,disabled:vt,autoFocus:kt,localeText:St}=at,Tt=useUtils(),At=reactExports.useRef(null),Et=reactExports.useRef(null),Mt=useId(),Lt=(et=ut==null||(nt=ut.toolbar)==null?void 0:nt.hidden)!=null?et:!1,{open:jt,actions:Rt,hasUIView:$t,layoutProps:xt,renderCurrentView:It,shouldRestoreFocus:Ot,fieldProps:zt}=usePicker(_extends$r({},lt,{props:at,inputRef:At,autoFocusView:!0,additionalViewProps:{},wrapperVariant:"desktop"})),Ut=(rt=ct.inputAdornment)!=null?rt:MuiInputAdornment,Wt=useSlotProps({elementType:Ut,externalSlotProps:ut==null?void 0:ut.inputAdornment,additionalProps:{position:"end"},ownerState:at}),Ft=_objectWithoutPropertiesLoose$g(Wt,_excluded2$3),Nt=(it=ct.openPickerButton)!=null?it:IconButton$2,Ct=useSlotProps({elementType:Nt,externalSlotProps:ut==null?void 0:ut.openPickerButton,additionalProps:{disabled:vt||wt,onClick:Rt.onOpen,"aria-label":st(zt.value,Tt),edge:Ft.position},ownerState:at}),Ht=_objectWithoutPropertiesLoose$g(Ct,_excluded3$1),Jt=ct.openPickerIcon,nn=ct.field,Yt=useSlotProps({elementType:nn,externalSlotProps:ut==null?void 0:ut.field,additionalProps:_extends$r({},zt,Lt&&{id:Mt},{readOnly:wt,disabled:vt,className:ht,sx:dt,format:pt,formatDensity:mt,timezone:gt,label:yt,autoFocus:kt&&!at.open,focused:jt?!0:void 0}),ownerState:at});$t&&(Yt.InputProps=_extends$r({},Yt.InputProps,{ref:Et,[`${Ft.position}Adornment`]:jsxRuntimeExports.jsx(Ut,_extends$r({},Ft,{children:jsxRuntimeExports.jsx(Nt,_extends$r({},Ht,{children:jsxRuntimeExports.jsx(Jt,_extends$r({},ut==null?void 0:ut.openPickerIcon))}))}))}));const fn=_extends$r({textField:ct.textField},Yt.slots),cn=(ot=ct.layout)!=null?ot:PickersLayout,_n=useForkRef(At,Yt.inputRef,bt);let En=Mt;Lt&&(yt?En=`${Mt}-label`:En=void 0);const an=_extends$r({},ut,{toolbar:_extends$r({},ut==null?void 0:ut.toolbar,{titleId:Mt}),popper:_extends$r({"aria-labelledby":En},ut==null?void 0:ut.popper)});return{renderPicker:()=>jsxRuntimeExports.jsxs(LocalizationProvider,{localeText:St,children:[jsxRuntimeExports.jsx(nn,_extends$r({},Yt,{slots:fn,slotProps:an,inputRef:_n})),jsxRuntimeExports.jsx(PickersPopper,_extends$r({role:"dialog",placement:"bottom-start",anchorEl:Et.current},Rt,{open:jt,slots:ct,slotProps:an,shouldRestoreFocus:Ot,children:jsxRuntimeExports.jsx(cn,_extends$r({},xt,an==null?void 0:an.layout,{slots:ct,slotProps:an,children:It()}))}))]})}},renderDateViewCalendar=({view:tt,onViewChange:et,views:nt,focusedView:rt,onFocusedViewChange:it,value:ot,defaultValue:at,onChange:st,className:lt,classes:ct,disableFuture:ut,disablePast:ht,minDate:dt,maxDate:pt,shouldDisableDate:mt,shouldDisableMonth:gt,shouldDisableYear:yt,reduceAnimations:bt,onMonthChange:wt,monthsPerRow:vt,onYearChange:kt,yearsPerRow:St,defaultCalendarMonth:Tt,components:At,componentsProps:Et,slots:Mt,slotProps:Lt,loading:jt,renderLoading:Rt,disableHighlightToday:$t,readOnly:xt,disabled:It,showDaysOutsideCurrentMonth:Ot,dayOfWeekFormatter:zt,sx:Ut,autoFocus:Wt,fixedWeekNumber:Ft,displayWeekNumber:Nt,timezone:Ct})=>jsxRuntimeExports.jsx(DateCalendar,{view:tt,onViewChange:et,views:nt.filter(isDatePickerView),focusedView:rt&&isDatePickerView(rt)?rt:null,onFocusedViewChange:it,value:ot,defaultValue:at,onChange:st,className:lt,classes:ct,disableFuture:ut,disablePast:ht,minDate:dt,maxDate:pt,shouldDisableDate:mt,shouldDisableMonth:gt,shouldDisableYear:yt,reduceAnimations:bt,onMonthChange:wt,monthsPerRow:vt,onYearChange:kt,yearsPerRow:St,defaultCalendarMonth:Tt,components:At,componentsProps:Et,slots:Mt,slotProps:Lt,loading:jt,renderLoading:Rt,disableHighlightToday:$t,readOnly:xt,disabled:It,showDaysOutsideCurrentMonth:Ot,dayOfWeekFormatter:zt,sx:Ut,autoFocus:Wt,fixedWeekNumber:Ft,displayWeekNumber:Nt,timezone:Ct}),DesktopDatePicker=reactExports.forwardRef(function(et,nt){var rt,it;const ot=useLocaleText(),at=useUtils(),st=useDatePickerDefaultizedProps(et,"MuiDesktopDatePicker"),lt=_extends$r({day:renderDateViewCalendar,month:renderDateViewCalendar,year:renderDateViewCalendar},st.viewRenderers),ct=_extends$r({},st,{viewRenderers:lt,format:resolveDateFormat(at,st,!1),yearsPerRow:(rt=st.yearsPerRow)!=null?rt:4,slots:_extends$r({openPickerIcon:CalendarIcon,field:DateField},st.slots),slotProps:_extends$r({},st.slotProps,{field:ht=>{var dt;return _extends$r({},resolveComponentProps((dt=st.slotProps)==null?void 0:dt.field,ht),extractValidationProps(st),{ref:nt})},toolbar:_extends$r({hidden:!0},(it=st.slotProps)==null?void 0:it.toolbar)})}),{renderPicker:ut}=useDesktopPicker({props:ct,valueManager:singleItemValueManager,valueType:"date",getOpenDialogAriaText:ot.openDatePickerDialogue,validator:validateDate});return ut()});DesktopDatePicker.propTypes={autoFocus:PropTypes.bool,className:PropTypes.string,closeOnSelect:PropTypes.bool,components:PropTypes.object,componentsProps:PropTypes.object,dayOfWeekFormatter:PropTypes.func,defaultCalendarMonth:PropTypes.any,defaultValue:PropTypes.any,disabled:PropTypes.bool,disableFuture:PropTypes.bool,disableHighlightToday:PropTypes.bool,disableOpenPicker:PropTypes.bool,disablePast:PropTypes.bool,displayWeekNumber:PropTypes.bool,fixedWeekNumber:PropTypes.number,format:PropTypes.string,formatDensity:PropTypes.oneOf(["dense","spacious"]),inputRef:PropTypes.oneOfType([PropTypes.func,PropTypes.shape({current:PropTypes.object})]),label:PropTypes.node,loading:PropTypes.bool,localeText:PropTypes.object,maxDate:PropTypes.any,minDate:PropTypes.any,monthsPerRow:PropTypes.oneOf([3,4]),onAccept:PropTypes.func,onChange:PropTypes.func,onClose:PropTypes.func,onError:PropTypes.func,onMonthChange:PropTypes.func,onOpen:PropTypes.func,onSelectedSectionsChange:PropTypes.func,onViewChange:PropTypes.func,onYearChange:PropTypes.func,open:PropTypes.bool,openTo:PropTypes.oneOf(["day","month","year"]),orientation:PropTypes.oneOf(["landscape","portrait"]),readOnly:PropTypes.bool,reduceAnimations:PropTypes.bool,renderLoading:PropTypes.func,selectedSections:PropTypes.oneOfType([PropTypes.oneOf(["all","day","hours","meridiem","minutes","month","seconds","weekDay","year"]),PropTypes.number,PropTypes.shape({endIndex:PropTypes.number.isRequired,startIndex:PropTypes.number.isRequired})]),shouldDisableDate:PropTypes.func,shouldDisableMonth:PropTypes.func,shouldDisableYear:PropTypes.func,showDaysOutsideCurrentMonth:PropTypes.bool,slotProps:PropTypes.object,slots:PropTypes.object,sx:PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func,PropTypes.object,PropTypes.bool])),PropTypes.func,PropTypes.object]),timezone:PropTypes.string,value:PropTypes.any,view:PropTypes.oneOf(["day","month","year"]),viewRenderers:PropTypes.shape({day:PropTypes.func,month:PropTypes.func,year:PropTypes.func}),views:PropTypes.arrayOf(PropTypes.oneOf(["day","month","year"]).isRequired),yearsPerRow:PropTypes.oneOf([3,4])};const _excluded$e=["props","getOpenDialogAriaText"],useMobilePicker=tt=>{var et,nt,rt;let{props:it,getOpenDialogAriaText:ot}=tt,at=_objectWithoutPropertiesLoose$g(tt,_excluded$e);const{slots:st,slotProps:lt,className:ct,sx:ut,format:ht,formatDensity:dt,timezone:pt,label:mt,inputRef:gt,readOnly:yt,disabled:bt,localeText:wt}=it,vt=useUtils(),kt=reactExports.useRef(null),St=useId(),Tt=(et=lt==null||(nt=lt.toolbar)==null?void 0:nt.hidden)!=null?et:!1,{open:At,actions:Et,layoutProps:Mt,renderCurrentView:Lt,fieldProps:jt}=usePicker(_extends$r({},at,{props:it,inputRef:kt,autoFocusView:!0,additionalViewProps:{},wrapperVariant:"mobile"})),Rt=st.field,$t=useSlotProps({elementType:Rt,externalSlotProps:lt==null?void 0:lt.field,additionalProps:_extends$r({},jt,Tt&&{id:St},!(bt||yt)&&{onClick:Et.onOpen,onKeyDown:onSpaceOrEnter(Et.onOpen)},{readOnly:yt??!0,disabled:bt,className:ct,sx:ut,format:ht,formatDensity:dt,timezone:pt,label:mt}),ownerState:it});$t.inputProps=_extends$r({},$t.inputProps,{"aria-label":ot(jt.value,vt)});const xt=_extends$r({textField:st.textField},$t.slots),It=(rt=st.layout)!=null?rt:PickersLayout,Ot=useForkRef(kt,$t.inputRef,gt);let zt=St;Tt&&(mt?zt=`${St}-label`:zt=void 0);const Ut=_extends$r({},lt,{toolbar:_extends$r({},lt==null?void 0:lt.toolbar,{titleId:St}),mobilePaper:_extends$r({"aria-labelledby":zt},lt==null?void 0:lt.mobilePaper)});return{renderPicker:()=>jsxRuntimeExports.jsxs(LocalizationProvider,{localeText:wt,children:[jsxRuntimeExports.jsx(Rt,_extends$r({},$t,{slots:xt,slotProps:Ut,inputRef:Ot})),jsxRuntimeExports.jsx(PickersModalDialog,_extends$r({},Et,{open:At,slots:st,slotProps:Ut,children:jsxRuntimeExports.jsx(It,_extends$r({},Mt,Ut==null?void 0:Ut.layout,{slots:st,slotProps:Ut,children:Lt()}))}))]})}},MobileDatePicker=reactExports.forwardRef(function(et,nt){var rt;const it=useLocaleText(),ot=useUtils(),at=useDatePickerDefaultizedProps(et,"MuiMobileDatePicker"),st=_extends$r({day:renderDateViewCalendar,month:renderDateViewCalendar,year:renderDateViewCalendar},at.viewRenderers),lt=_extends$r({},at,{viewRenderers:st,format:resolveDateFormat(ot,at,!1),slots:_extends$r({field:DateField},at.slots),slotProps:_extends$r({},at.slotProps,{field:ut=>{var ht;return _extends$r({},resolveComponentProps((ht=at.slotProps)==null?void 0:ht.field,ut),extractValidationProps(at),{ref:nt})},toolbar:_extends$r({hidden:!1},(rt=at.slotProps)==null?void 0:rt.toolbar)})}),{renderPicker:ct}=useMobilePicker({props:lt,valueManager:singleItemValueManager,valueType:"date",getOpenDialogAriaText:it.openDatePickerDialogue,validator:validateDate});return ct()});MobileDatePicker.propTypes={autoFocus:PropTypes.bool,className:PropTypes.string,closeOnSelect:PropTypes.bool,components:PropTypes.object,componentsProps:PropTypes.object,dayOfWeekFormatter:PropTypes.func,defaultCalendarMonth:PropTypes.any,defaultValue:PropTypes.any,disabled:PropTypes.bool,disableFuture:PropTypes.bool,disableHighlightToday:PropTypes.bool,disableOpenPicker:PropTypes.bool,disablePast:PropTypes.bool,displayWeekNumber:PropTypes.bool,fixedWeekNumber:PropTypes.number,format:PropTypes.string,formatDensity:PropTypes.oneOf(["dense","spacious"]),inputRef:PropTypes.oneOfType([PropTypes.func,PropTypes.shape({current:PropTypes.object})]),label:PropTypes.node,loading:PropTypes.bool,localeText:PropTypes.object,maxDate:PropTypes.any,minDate:PropTypes.any,monthsPerRow:PropTypes.oneOf([3,4]),onAccept:PropTypes.func,onChange:PropTypes.func,onClose:PropTypes.func,onError:PropTypes.func,onMonthChange:PropTypes.func,onOpen:PropTypes.func,onSelectedSectionsChange:PropTypes.func,onViewChange:PropTypes.func,onYearChange:PropTypes.func,open:PropTypes.bool,openTo:PropTypes.oneOf(["day","month","year"]),orientation:PropTypes.oneOf(["landscape","portrait"]),readOnly:PropTypes.bool,reduceAnimations:PropTypes.bool,renderLoading:PropTypes.func,selectedSections:PropTypes.oneOfType([PropTypes.oneOf(["all","day","hours","meridiem","minutes","month","seconds","weekDay","year"]),PropTypes.number,PropTypes.shape({endIndex:PropTypes.number.isRequired,startIndex:PropTypes.number.isRequired})]),shouldDisableDate:PropTypes.func,shouldDisableMonth:PropTypes.func,shouldDisableYear:PropTypes.func,showDaysOutsideCurrentMonth:PropTypes.bool,slotProps:PropTypes.object,slots:PropTypes.object,sx:PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func,PropTypes.object,PropTypes.bool])),PropTypes.func,PropTypes.object]),timezone:PropTypes.string,value:PropTypes.any,view:PropTypes.oneOf(["day","month","year"]),viewRenderers:PropTypes.shape({day:PropTypes.func,month:PropTypes.func,year:PropTypes.func}),views:PropTypes.arrayOf(PropTypes.oneOf(["day","month","year"]).isRequired),yearsPerRow:PropTypes.oneOf([3,4])};const _excluded$d=["desktopModeMediaQuery"],DatePicker=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiDatePicker"}),{desktopModeMediaQuery:it=DEFAULT_DESKTOP_MODE_MEDIA_QUERY}=rt,ot=_objectWithoutPropertiesLoose$g(rt,_excluded$d);return useMediaQuery(it,{defaultMatches:!0})?jsxRuntimeExports.jsx(DesktopDatePicker,_extends$r({ref:nt},ot)):jsxRuntimeExports.jsx(MobileDatePicker,_extends$r({ref:nt},ot))});//! moment.js +`));const et=reactExports.useMemo(()=>_extends$r({},DEFAULT_LOCALE,tt.localeText),[tt.localeText]);return reactExports.useMemo(()=>_extends$r({},tt,{localeText:et}),[tt,et])},useUtils=()=>useLocalizationContext().utils,useDefaultDates=()=>useLocalizationContext().defaultDates,useLocaleText=()=>useLocalizationContext().localeText,useNow=tt=>{const et=useUtils(),nt=reactExports.useRef();return nt.current===void 0&&(nt.current=et.dateWithTimezone(void 0,tt)),nt.current},ArrowDropDownIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),ArrowLeftIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"}),"ArrowLeft"),ArrowRightIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"}),"ArrowRight"),CalendarIcon=createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"}),"Calendar");createSvgIcon(jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),jsxRuntimeExports.jsx("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"})]}),"Clock");createSvgIcon(jsxRuntimeExports.jsx("path",{d:"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"}),"DateRange");createSvgIcon(jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),jsxRuntimeExports.jsx("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"})]}),"Time");function getPickersArrowSwitcherUtilityClass(tt){return generateUtilityClass("MuiPickersArrowSwitcher",tt)}generateUtilityClasses("MuiPickersArrowSwitcher",["root","spacer","button"]);const _excluded$w=["children","className","slots","slotProps","isNextDisabled","isNextHidden","onGoToNext","nextLabel","isPreviousDisabled","isPreviousHidden","onGoToPrevious","previousLabel"],_excluded2$6=["ownerState"],_excluded3$3=["ownerState"],PickersArrowSwitcherRoot=styled$1("div",{name:"MuiPickersArrowSwitcher",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"flex"}),PickersArrowSwitcherSpacer=styled$1("div",{name:"MuiPickersArrowSwitcher",slot:"Spacer",overridesResolver:(tt,et)=>et.spacer})(({theme:tt})=>({width:tt.spacing(3)})),PickersArrowSwitcherButton=styled$1(IconButton$2,{name:"MuiPickersArrowSwitcher",slot:"Button",overridesResolver:(tt,et)=>et.button})(({ownerState:tt})=>_extends$r({},tt.hidden&&{visibility:"hidden"})),useUtilityClasses$f=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],spacer:["spacer"],button:["button"]},getPickersArrowSwitcherUtilityClass,et)},PickersArrowSwitcher=reactExports.forwardRef(function(et,nt){var rt,it,ot,at;const lt=useTheme().direction==="rtl",ct=useThemeProps({props:et,name:"MuiPickersArrowSwitcher"}),{children:ut,className:ht,slots:dt,slotProps:pt,isNextDisabled:mt,isNextHidden:gt,onGoToNext:yt,nextLabel:bt,isPreviousDisabled:wt,isPreviousHidden:vt,onGoToPrevious:kt,previousLabel:St}=ct,Et=_objectWithoutPropertiesLoose$g(ct,_excluded$w),At=ct,Tt=useUtilityClasses$f(At),Mt={isDisabled:mt,isHidden:gt,goTo:yt,label:bt},Lt={isDisabled:wt,isHidden:vt,goTo:kt,label:St},[jt,Rt]=lt?[Mt,Lt]:[Lt,Mt],$t=(rt=dt==null?void 0:dt.previousIconButton)!=null?rt:PickersArrowSwitcherButton,xt=useSlotProps({elementType:$t,externalSlotProps:pt==null?void 0:pt.previousIconButton,additionalProps:{size:"medium",title:jt.label,"aria-label":jt.label,disabled:jt.isDisabled,edge:"end",onClick:jt.goTo},ownerState:_extends$r({},At,{hidden:jt.isHidden}),className:Tt.button}),It=(it=dt==null?void 0:dt.nextIconButton)!=null?it:PickersArrowSwitcherButton,Ot=useSlotProps({elementType:It,externalSlotProps:pt==null?void 0:pt.nextIconButton,additionalProps:{size:"medium",title:Rt.label,"aria-label":Rt.label,disabled:Rt.isDisabled,edge:"start",onClick:Rt.goTo},ownerState:_extends$r({},At,{hidden:Rt.isHidden}),className:Tt.button}),zt=(ot=dt==null?void 0:dt.leftArrowIcon)!=null?ot:ArrowLeftIcon,Ut=useSlotProps({elementType:zt,externalSlotProps:pt==null?void 0:pt.leftArrowIcon,additionalProps:{fontSize:"inherit"},ownerState:void 0}),Wt=_objectWithoutPropertiesLoose$g(Ut,_excluded2$6),Ft=(at=dt==null?void 0:dt.rightArrowIcon)!=null?at:ArrowRightIcon,Nt=useSlotProps({elementType:Ft,externalSlotProps:pt==null?void 0:pt.rightArrowIcon,additionalProps:{fontSize:"inherit"},ownerState:void 0}),Ct=_objectWithoutPropertiesLoose$g(Nt,_excluded3$3);return jsxRuntimeExports.jsxs(PickersArrowSwitcherRoot,_extends$r({ref:nt,className:clsx(Tt.root,ht),ownerState:At},Et,{children:[jsxRuntimeExports.jsx($t,_extends$r({},xt,{children:lt?jsxRuntimeExports.jsx(Ft,_extends$r({},Ct)):jsxRuntimeExports.jsx(zt,_extends$r({},Wt))})),ut?jsxRuntimeExports.jsx(Typography$1,{variant:"subtitle1",component:"span",children:ut}):jsxRuntimeExports.jsx(PickersArrowSwitcherSpacer,{className:Tt.spacer,ownerState:At}),jsxRuntimeExports.jsx(It,_extends$r({},Ot,{children:lt?jsxRuntimeExports.jsx(zt,_extends$r({},Wt)):jsxRuntimeExports.jsx(Ft,_extends$r({},Ct))}))]}))}),areViewsEqual=(tt,et)=>tt.length!==et.length?!1:et.every(nt=>tt.includes(nt)),applyDefaultViewProps=({openTo:tt,defaultOpenTo:et,views:nt,defaultViews:rt})=>{const it=nt??rt;let ot;if(tt!=null)ot=tt;else if(it.includes(et))ot=et;else if(it.length>0)ot=it[0];else throw new Error("MUI: The `views` prop must contain at least one view");return{views:it,openTo:ot}},timeViews=["hours","minutes","seconds"],isTimeView=tt=>timeViews.includes(tt),getSecondsInDay=(tt,et)=>et.getHours(tt)*3600+et.getMinutes(tt)*60+et.getSeconds(tt),createIsAfterIgnoreDatePart=(tt,et)=>(nt,rt)=>tt?et.isAfter(nt,rt):getSecondsInDay(nt,et)>getSecondsInDay(rt,et);function useViews({onChange:tt,onViewChange:et,openTo:nt,view:rt,views:it,autoFocus:ot,focusedView:at,onFocusedViewChange:st}){var lt,ct;const ut=reactExports.useRef(nt),ht=reactExports.useRef(it),dt=reactExports.useRef(it.includes(nt)?nt:it[0]),[pt,mt]=useControlled({name:"useViews",state:"view",controlled:rt,default:dt.current}),gt=reactExports.useRef(ot?pt:null),[yt,bt]=useControlled({name:"useViews",state:"focusedView",controlled:at,default:gt.current});reactExports.useEffect(()=>{(ut.current&&ut.current!==nt||ht.current&&ht.current.some(Lt=>!it.includes(Lt)))&&(mt(it.includes(nt)?nt:it[0]),ht.current=it,ut.current=nt)},[nt,mt,pt,it]);const wt=it.indexOf(pt),vt=(lt=it[wt-1])!=null?lt:null,kt=(ct=it[wt+1])!=null?ct:null,St=useEventCallback((Lt,jt)=>{bt(jt?Lt:Rt=>Lt===Rt?null:Rt),st==null||st(Lt,jt)}),Et=useEventCallback(Lt=>{Lt!==pt&&(mt(Lt),St(Lt,!0),et&&et(Lt))}),At=useEventCallback(()=>{kt&&Et(kt),St(kt,!0)}),Tt=useEventCallback((Lt,jt,Rt)=>{const $t=jt==="finish",xt=Rt?it.indexOf(Rt){tt(Lt,jt?"partial":"finish",Rt),jt&&(Et(jt),St(jt,!0))});return{view:pt,setView:Et,focusedView:yt,setFocusedView:St,nextView:kt,previousView:vt,defaultView:dt.current,goToNextView:At,setValueAndGoToNextView:Tt,setValueAndGoToView:Mt}}function useNextMonthDisabled(tt,{disableFuture:et,maxDate:nt,timezone:rt}){const it=useUtils();return reactExports.useMemo(()=>{const ot=it.dateWithTimezone(void 0,rt),at=it.startOfMonth(et&&it.isBefore(ot,nt)?ot:nt);return!it.isAfter(at,tt)},[et,nt,tt,it,rt])}function usePreviousMonthDisabled(tt,{disablePast:et,minDate:nt,timezone:rt}){const it=useUtils();return reactExports.useMemo(()=>{const ot=it.dateWithTimezone(void 0,rt),at=it.startOfMonth(et&&it.isAfter(ot,nt)?ot:nt);return!it.isBefore(at,tt)},[et,nt,tt,it,rt])}const DAY_SIZE=36,DAY_MARGIN=2,DIALOG_WIDTH=320,VIEW_HEIGHT=358,PickerViewRoot=styled$1("div")({overflow:"hidden",width:DIALOG_WIDTH,maxHeight:VIEW_HEIGHT,display:"flex",flexDirection:"column",margin:"0 auto"}),useValueWithTimezone=({timezone:tt,value:et,defaultValue:nt,onChange:rt,valueManager:it})=>{var ot,at;const st=useUtils(),lt=reactExports.useRef(nt),ct=(ot=et??lt.current)!=null?ot:it.emptyValue,ut=reactExports.useMemo(()=>it.getTimezone(st,ct),[st,it,ct]),ht=useEventCallback(gt=>ut==null?gt:it.setTimezone(st,ut,gt)),dt=(at=tt??ut)!=null?at:"default",pt=reactExports.useMemo(()=>it.setTimezone(st,dt,ct),[it,st,dt,ct]),mt=useEventCallback((gt,...yt)=>{const bt=ht(gt);rt==null||rt(bt,...yt)});return{value:pt,handleValueChange:mt,timezone:dt}},useControlledValueWithTimezone=({name:tt,timezone:et,value:nt,defaultValue:rt,onChange:it,valueManager:ot})=>{const[at,st]=useControlled({name:tt,state:"value",controlled:nt,default:rt??ot.emptyValue}),lt=useEventCallback((ct,...ut)=>{st(ct),it==null||it(ct,...ut)});return useValueWithTimezone({timezone:et,value:at,defaultValue:void 0,onChange:lt,valueManager:ot})},findClosestEnabledDate=({date:tt,disableFuture:et,disablePast:nt,maxDate:rt,minDate:it,isDateDisabled:ot,utils:at,timezone:st})=>{const lt=at.startOfDay(at.dateWithTimezone(void 0,st));nt&&at.isBefore(it,lt)&&(it=lt),et&&at.isAfter(rt,lt)&&(rt=lt);let ct=tt,ut=tt;for(at.isBefore(tt,it)&&(ct=it,ut=null),at.isAfter(tt,rt)&&(ut&&(ut=rt),ct=null);ct||ut;){if(ct&&at.isAfter(ct,rt)&&(ct=null),ut&&at.isBefore(ut,it)&&(ut=null),ct){if(!ot(ct))return ct;ct=at.addDays(ct,1)}if(ut){if(!ot(ut))return ut;ut=at.addDays(ut,-1)}}return null},replaceInvalidDateByNull=(tt,et)=>et==null||!tt.isValid(et)?null:et,applyDefaultDate=(tt,et,nt)=>et==null||!tt.isValid(et)?nt:et,areDatesEqual$1=(tt,et,nt)=>!tt.isValid(et)&&et!=null&&!tt.isValid(nt)&&nt!=null?!0:tt.isEqual(et,nt),getMonthsInYear=(tt,et)=>{const rt=[tt.startOfYear(et)];for(;rt.length<12;){const it=rt[rt.length-1];rt.push(tt.addMonths(it,1))}return rt},mergeDateAndTime=(tt,et,nt)=>{let rt=et;return rt=tt.setHours(rt,tt.getHours(nt)),rt=tt.setMinutes(rt,tt.getMinutes(nt)),rt=tt.setSeconds(rt,tt.getSeconds(nt)),rt},getTodayDate=(tt,et,nt)=>nt==="date"?tt.startOfDay(tt.dateWithTimezone(void 0,et)):tt.dateWithTimezone(void 0,et),dateViews=["year","month","day"],isDatePickerView=tt=>dateViews.includes(tt),resolveDateFormat=(tt,{format:et,views:nt},rt)=>{if(et!=null)return et;const it=tt.formats;return areViewsEqual(nt,["year"])?it.year:areViewsEqual(nt,["month"])?it.month:areViewsEqual(nt,["day"])?it.dayOfMonth:areViewsEqual(nt,["month","year"])?`${it.month} ${it.year}`:areViewsEqual(nt,["day","month"])?`${it.month} ${it.dayOfMonth}`:rt?/en/.test(tt.getCurrentLocaleCode())?it.normalDateWithWeekday:it.normalDate:it.keyboardDate},SECTION_TYPE_GRANULARITY={year:1,month:2,day:3,hours:4,minutes:5,seconds:6,milliseconds:7},getSectionTypeGranularity=tt=>Math.max(...tt.map(et=>{var nt;return(nt=SECTION_TYPE_GRANULARITY[et.type])!=null?nt:1})),roundDate=(tt,et,nt)=>{if(et===SECTION_TYPE_GRANULARITY.year)return tt.startOfYear(nt);if(et===SECTION_TYPE_GRANULARITY.month)return tt.startOfMonth(nt);if(et===SECTION_TYPE_GRANULARITY.day)return tt.startOfDay(nt);let rt=nt;return et{var ot;let at=it?it():roundDate(et,nt,getTodayDate(et,rt));tt.minDate!=null&&et.isAfterDay(tt.minDate,at)&&(at=roundDate(et,nt,tt.minDate)),tt.maxDate!=null&&et.isBeforeDay(tt.maxDate,at)&&(at=roundDate(et,nt,tt.maxDate));const st=createIsAfterIgnoreDatePart((ot=tt.disableIgnoringDatePartForTimeValidation)!=null?ot:!1,et);return tt.minTime!=null&&st(tt.minTime,at)&&(at=roundDate(et,nt,tt.disableIgnoringDatePartForTimeValidation?tt.minTime:mergeDateAndTime(et,at,tt.minTime))),tt.maxTime!=null&&st(at,tt.maxTime)&&(at=roundDate(et,nt,tt.disableIgnoringDatePartForTimeValidation?tt.maxTime:mergeDateAndTime(et,at,tt.maxTime))),at},getDateSectionConfigFromFormatToken=(tt,et)=>{const nt=tt.formatTokenMap[et];if(nt==null)throw new Error([`MUI: The token "${et}" is not supported by the Date and Time Pickers.`,"Please try using another token or open an issue on https://github.com/mui/mui-x/issues/new/choose if you think it should be supported."].join(` +`));return typeof nt=="string"?{type:nt,contentType:nt==="meridiem"?"letter":"digit",maxLength:void 0}:{type:nt.sectionType,contentType:nt.contentType,maxLength:nt.maxLength}},getDeltaFromKeyCode=tt=>{switch(tt){case"ArrowUp":return 1;case"ArrowDown":return-1;case"PageUp":return 5;case"PageDown":return-5;default:return 0}},getDaysInWeekStr=(tt,et,nt)=>{const rt=[],it=tt.dateWithTimezone(void 0,et),ot=tt.startOfWeek(it),at=tt.endOfWeek(it);let st=ot;for(;tt.isBefore(st,at);)rt.push(st),st=tt.addDays(st,1);return rt.map(lt=>tt.formatByString(lt,nt))},getLetterEditingOptions=(tt,et,nt,rt)=>{switch(nt){case"month":return getMonthsInYear(tt,tt.dateWithTimezone(void 0,et)).map(it=>tt.formatByString(it,rt));case"weekDay":return getDaysInWeekStr(tt,et,rt);case"meridiem":{const it=tt.dateWithTimezone(void 0,et);return[tt.startOfDay(it),tt.endOfDay(it)].map(ot=>tt.formatByString(ot,rt))}default:return[]}},cleanLeadingZeros=(tt,et,nt)=>{let rt=et;for(rt=Number(rt).toString();rt.length{if(it.type==="day"&&it.contentType==="digit-with-letter"){const at=tt.setDate(rt.longestMonth,nt);return tt.formatByString(at,it.format)}const ot=nt.toString();return it.hasLeadingZerosInInput?cleanLeadingZeros(tt,ot,it.maxLength):ot},adjustSectionValue=(tt,et,nt,rt,it,ot,at)=>{const st=getDeltaFromKeyCode(rt),lt=rt==="Home",ct=rt==="End",ut=nt.value===""||lt||ct,ht=()=>{const pt=it[nt.type]({currentDate:ot,format:nt.format,contentType:nt.contentType}),mt=wt=>cleanDigitSectionValue(tt,et,wt,pt,nt),gt=nt.type==="minutes"&&at!=null&&at.minutesStep?at.minutesStep:1;let bt=parseInt(nt.value,10)+st*gt;if(ut){if(nt.type==="year"&&!ct&&!lt)return tt.formatByString(tt.dateWithTimezone(void 0,et),nt.format);st>0||lt?bt=pt.minimum:bt=pt.maximum}return bt%gt!==0&&((st<0||lt)&&(bt+=gt-(gt+bt)%gt),(st>0||ct)&&(bt-=bt%gt)),bt>pt.maximum?mt(pt.minimum+(bt-pt.maximum-1)%(pt.maximum-pt.minimum+1)):bt{const pt=getLetterEditingOptions(tt,et,nt.type,nt.format);if(pt.length===0)return nt.value;if(ut)return st>0||lt?pt[0]:pt[pt.length-1];const gt=(pt.indexOf(nt.value)+pt.length+st)%pt.length;return pt[gt]};return nt.contentType==="digit"||nt.contentType==="digit-with-letter"?ht():dt()},getSectionVisibleValue=(tt,et)=>{let nt=tt.value||tt.placeholder;const rt=et==="non-input"?tt.hasLeadingZerosInFormat:tt.hasLeadingZerosInInput;return et==="non-input"&&tt.hasLeadingZerosInInput&&!tt.hasLeadingZerosInFormat&&(nt=Number(nt).toString()),["input-rtl","input-ltr"].includes(et)&&tt.contentType==="digit"&&!rt&&nt.length===1&&(nt=`${nt}‎`),et==="input-rtl"&&(nt=`⁨${nt}⁩`),nt},cleanString=tt=>tt.replace(/[\u2066\u2067\u2068\u2069]/g,""),addPositionPropertiesToSections=(tt,et)=>{let nt=0,rt=et?1:0;const it=[];for(let ot=0;ot{switch(rt.type){case"year":return nt.fieldYearPlaceholder({digitAmount:tt.formatByString(tt.dateWithTimezone(void 0,et),it).length});case"month":return nt.fieldMonthPlaceholder({contentType:rt.contentType});case"day":return nt.fieldDayPlaceholder();case"weekDay":return nt.fieldWeekDayPlaceholder({contentType:rt.contentType});case"hours":return nt.fieldHoursPlaceholder();case"minutes":return nt.fieldMinutesPlaceholder();case"seconds":return nt.fieldSecondsPlaceholder();case"meridiem":return nt.fieldMeridiemPlaceholder();default:return it}},changeSectionValueFormat=(tt,et,nt,rt)=>tt.formatByString(tt.parse(et,nt),rt),isFourDigitYearFormat=(tt,et,nt)=>tt.formatByString(tt.dateWithTimezone(void 0,et),nt).length===4,doesSectionFormatHaveLeadingZeros=(tt,et,nt,rt,it)=>{if(nt!=="digit")return!1;const ot=tt.dateWithTimezone(void 0,et);switch(rt){case"year":return isFourDigitYearFormat(tt,et,it)?tt.formatByString(tt.setYear(ot,1),it)==="0001":tt.formatByString(tt.setYear(ot,2001),it)==="01";case"month":return tt.formatByString(tt.startOfYear(ot),it).length>1;case"day":return tt.formatByString(tt.startOfMonth(ot),it).length>1;case"weekDay":return tt.formatByString(tt.startOfWeek(ot),it).length>1;case"hours":return tt.formatByString(tt.setHours(ot,1),it).length>1;case"minutes":return tt.formatByString(tt.setMinutes(ot,1),it).length>1;case"seconds":return tt.formatByString(tt.setMinutes(ot,1),it).length>1;default:throw new Error("Invalid section type")}},getEscapedPartsFromFormat=(tt,et)=>{const nt=[],{start:rt,end:it}=tt.escapedCharacters,ot=new RegExp(`(\\${rt}[^\\${it}]*\\${it})+`,"g");let at=null;for(;at=ot.exec(et);)nt.push({start:at.index,end:ot.lastIndex-1});return nt},splitFormatIntoSections=(tt,et,nt,rt,it,ot,at,st)=>{let lt="";const ct=[],ut=tt.date(),ht=vt=>{if(vt==="")return null;const kt=getDateSectionConfigFromFormatToken(tt,vt),St=doesSectionFormatHaveLeadingZeros(tt,et,kt.contentType,kt.type,vt),Et=at?St:kt.contentType==="digit",At=it!=null&&tt.isValid(it);let Tt=At?tt.formatByString(it,vt):"",Mt=null;if(Et)if(St)Mt=Tt===""?tt.formatByString(ut,vt).length:Tt.length;else{if(kt.maxLength==null)throw new Error(`MUI: The token ${vt} should have a 'maxDigitNumber' property on it's adapter`);Mt=kt.maxLength,At&&(Tt=cleanLeadingZeros(tt,Tt,Mt))}return ct.push(_extends$r({},kt,{format:vt,maxLength:Mt,value:Tt,placeholder:getSectionPlaceholder(tt,et,nt,kt,vt),hasLeadingZeros:St,hasLeadingZerosInFormat:St,hasLeadingZerosInInput:Et,startSeparator:ct.length===0?lt:"",endSeparator:"",modified:!1})),null};let dt=10,pt=rt,mt=tt.expandFormat(rt);for(;mt!==pt;)if(pt=mt,mt=tt.expandFormat(pt),dt-=1,dt<0)throw new Error("MUI: The format expansion seems to be enter in an infinite loop. Please open an issue with the format passed to the picker component");const gt=mt,yt=getEscapedPartsFromFormat(tt,gt),bt=new RegExp(`^(${Object.keys(tt.formatTokenMap).join("|")})`);let wt="";for(let vt=0;vtTt.start<=vt&&Tt.end>=vt),St=gt[vt],Et=kt!=null,At=`${wt}${gt.slice(vt)}`;!Et&&St.match(/([A-Za-z]+)/)&&bt.test(At)?wt+=St:Et&&(kt==null?void 0:kt.start)===vt||(kt==null?void 0:kt.end)===vt||(ht(wt),wt="",ct.length===0?lt+=St:ct[ct.length-1].endSeparator+=St)}return ht(wt),ct.map(vt=>{const kt=St=>{let Et=St;return st&&Et!==null&&Et.includes(" ")&&(Et=`⁩${Et}⁦`),ot==="spacious"&&["/",".","-"].includes(Et)&&(Et=` ${Et} `),Et};return vt.startSeparator=kt(vt.startSeparator),vt.endSeparator=kt(vt.endSeparator),vt})},getDateFromDateSections=(tt,et)=>{const nt=et.some(st=>st.type==="day"),rt=[],it=[];for(let st=0;st{const rt=tt.map(it=>{const ot=getSectionVisibleValue(it,et?"input-rtl":"input-ltr");return`${it.startSeparator}${ot}${it.endSeparator}`}).join("");return et?`⁦${rt}⁩`:rt},getSectionsBoundaries=(tt,et)=>{const nt=tt.dateWithTimezone(void 0,et),rt=tt.endOfYear(nt),{maxDaysInMonth:it,longestMonth:ot}=getMonthsInYear(tt,nt).reduce((at,st)=>{const lt=tt.getDaysInMonth(st);return lt>at.maxDaysInMonth?{maxDaysInMonth:lt,longestMonth:st}:at},{maxDaysInMonth:0,longestMonth:null});return{year:({format:at})=>({minimum:0,maximum:isFourDigitYearFormat(tt,et,at)?9999:99}),month:()=>({minimum:1,maximum:tt.getMonth(rt)+1}),day:({currentDate:at})=>({minimum:1,maximum:at!=null&&tt.isValid(at)?tt.getDaysInMonth(at):it,longestMonth:ot}),weekDay:({format:at,contentType:st})=>{if(st==="digit"){const lt=getDaysInWeekStr(tt,et,at).map(Number);return{minimum:Math.min(...lt),maximum:Math.max(...lt)}}return{minimum:1,maximum:7}},hours:({format:at})=>{const st=tt.getHours(rt);return tt.formatByString(tt.endOfDay(nt),at)!==st.toString()?{minimum:1,maximum:Number(tt.formatByString(tt.startOfDay(nt),at))}:{minimum:0,maximum:st}},minutes:()=>({minimum:0,maximum:tt.getMinutes(rt)}),seconds:()=>({minimum:0,maximum:tt.getSeconds(rt)}),meridiem:()=>({minimum:0,maximum:0})}},transferDateSectionValue=(tt,et,nt,rt,it)=>{switch(nt.type){case"year":return tt.setYear(it,tt.getYear(rt));case"month":return tt.setMonth(it,tt.getMonth(rt));case"weekDay":{const ot=getDaysInWeekStr(tt,et,nt.format),at=tt.formatByString(rt,nt.format),st=ot.indexOf(at),ct=ot.indexOf(nt.value)-st;return tt.addDays(rt,ct)}case"day":return tt.setDate(it,tt.getDate(rt));case"meridiem":{const ot=tt.getHours(rt)<12,at=tt.getHours(it);return ot&&at>=12?tt.addHours(it,-12):!ot&&at<12?tt.addHours(it,12):it}case"hours":return tt.setHours(it,tt.getHours(rt));case"minutes":return tt.setMinutes(it,tt.getMinutes(rt));case"seconds":return tt.setSeconds(it,tt.getSeconds(rt));default:return it}},reliableSectionModificationOrder={year:1,month:2,day:3,weekDay:4,hours:5,minutes:6,seconds:7,meridiem:8},mergeDateIntoReferenceDate=(tt,et,nt,rt,it,ot)=>[...rt].sort((at,st)=>reliableSectionModificationOrder[at.type]-reliableSectionModificationOrder[st.type]).reduce((at,st)=>!ot||st.modified?transferDateSectionValue(tt,et,st,nt,at):at,it),isAndroid=()=>navigator.userAgent.toLowerCase().indexOf("android")>-1,clampDaySectionIfPossible=(tt,et,nt,rt)=>{if(!(nt.every(st=>st.type==="weekDay"||st.value!=="")&&nt.some(st=>st.type==="day")))return null;const ot=nt.map(st=>{if(st.type!=="day")return st;const lt=rt.day({currentDate:null,format:st.format,contentType:st.contentType});return _extends$r({},st,{value:cleanDigitSectionValue(tt,et,lt.minimum,lt,st)})}),at=getDateFromDateSections(tt,ot);return at==null||!tt.isValid(at)?null:nt.map(st=>{if(st.type!=="day")return st;const lt=rt.day({currentDate:at,format:st.format,contentType:st.contentType});return Number(st.value)<=lt.maximum?st:_extends$r({},st,{value:lt.maximum.toString()})})},getSectionOrder=(tt,et)=>{const nt={};if(!et)return tt.forEach((lt,ct)=>{const ut=ct===0?null:ct-1,ht=ct===tt.length-1?null:ct+1;nt[ct]={leftIndex:ut,rightIndex:ht}}),{neighbors:nt,startIndex:0,endIndex:tt.length-1};const rt={},it={};let ot=0,at=0,st=tt.length-1;for(;st>=0;){at=tt.findIndex((lt,ct)=>{var ut;return ct>=ot&&((ut=lt.endSeparator)==null?void 0:ut.includes(" "))&<.endSeparator!==" / "}),at===-1&&(at=tt.length-1);for(let lt=at;lt>=ot;lt-=1)it[lt]=st,rt[st]=lt,st-=1;ot=at+1}return tt.forEach((lt,ct)=>{const ut=it[ct],ht=ut===0?null:rt[ut-1],dt=ut===tt.length-1?null:rt[ut+1];nt[ct]={leftIndex:ht,rightIndex:dt}}),{neighbors:nt,startIndex:rt[0],endIndex:rt[tt.length-1]}},_excluded$v=["value","referenceDate"],singleItemValueManager={emptyValue:null,getTodayValue:getTodayDate,getInitialReferenceValue:tt=>{let{value:et,referenceDate:nt}=tt,rt=_objectWithoutPropertiesLoose$g(tt,_excluded$v);return et!=null&&rt.utils.isValid(et)?et:nt??getDefaultReferenceDate(rt)},cleanValue:replaceInvalidDateByNull,areValuesEqual:areDatesEqual$1,isSameError:(tt,et)=>tt===et,hasError:tt=>tt!=null,defaultErrorState:null,getTimezone:(tt,et)=>et==null?null:tt.getTimezone(et),setTimezone:(tt,et,nt)=>nt==null?null:tt.setTimezone(nt,et)},singleItemFieldValueManager={updateReferenceValue:(tt,et,nt)=>et==null||!tt.isValid(et)?nt:et,getSectionsFromValue:(tt,et,nt,rt,it)=>!tt.isValid(et)&&!!nt?nt:addPositionPropertiesToSections(it(et),rt),getValueStrFromSections:createDateStrForInputFromSections,getActiveDateManager:(tt,et)=>({date:et.value,referenceDate:et.referenceValue,getSections:nt=>nt,getNewValuesFromNewActiveDate:nt=>({value:nt,referenceValue:nt==null||!tt.isValid(nt)?et.referenceValue:nt})}),parseValueStr:(tt,et,nt)=>nt(tt.trim(),et)},uncapitalizeObjectKeys=tt=>{if(tt!==void 0)return Object.keys(tt).reduce((et,nt)=>_extends$r({},et,{[`${nt.slice(0,1).toLowerCase()}${nt.slice(1)}`]:tt[nt]}),{})};function getPickersDayUtilityClass(tt){return generateUtilityClass("MuiPickersDay",tt)}const pickersDayClasses=generateUtilityClasses("MuiPickersDay",["root","dayWithMargin","dayOutsideMonth","hiddenDaySpacingFiller","today","selected","disabled"]),_excluded$u=["autoFocus","className","day","disabled","disableHighlightToday","disableMargin","hidden","isAnimating","onClick","onDaySelect","onFocus","onBlur","onKeyDown","onMouseDown","onMouseEnter","outsideCurrentMonth","selected","showDaysOutsideCurrentMonth","children","today","isFirstVisibleCell","isLastVisibleCell"],useUtilityClasses$e=tt=>{const{selected:et,disableMargin:nt,disableHighlightToday:rt,today:it,disabled:ot,outsideCurrentMonth:at,showDaysOutsideCurrentMonth:st,classes:lt}=tt,ct=at&&!st;return composeClasses({root:["root",et&&!ct&&"selected",ot&&"disabled",!nt&&"dayWithMargin",!rt&&it&&"today",at&&st&&"dayOutsideMonth",ct&&"hiddenDaySpacingFiller"],hiddenDaySpacingFiller:["hiddenDaySpacingFiller"]},getPickersDayUtilityClass,lt)},styleArg=({theme:tt,ownerState:et})=>_extends$r({},tt.typography.caption,{width:DAY_SIZE,height:DAY_SIZE,borderRadius:"50%",padding:0,backgroundColor:"transparent",color:(tt.vars||tt).palette.text.primary,"@media (pointer: fine)":{"&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.hoverOpacity)}},"&:focus":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.primary.mainChannel} / ${tt.vars.palette.action.focusOpacity})`:alpha$1(tt.palette.primary.main,tt.palette.action.focusOpacity),[`&.${pickersDayClasses.selected}`]:{willChange:"background-color",backgroundColor:(tt.vars||tt).palette.primary.dark}},[`&.${pickersDayClasses.selected}`]:{color:(tt.vars||tt).palette.primary.contrastText,backgroundColor:(tt.vars||tt).palette.primary.main,fontWeight:tt.typography.fontWeightMedium,transition:tt.transitions.create("background-color",{duration:tt.transitions.duration.short}),"&:hover":{willChange:"background-color",backgroundColor:(tt.vars||tt).palette.primary.dark}},[`&.${pickersDayClasses.disabled}:not(.${pickersDayClasses.selected})`]:{color:(tt.vars||tt).palette.text.disabled},[`&.${pickersDayClasses.disabled}&.${pickersDayClasses.selected}`]:{opacity:.6}},!et.disableMargin&&{margin:`0 ${DAY_MARGIN}px`},et.outsideCurrentMonth&&et.showDaysOutsideCurrentMonth&&{color:(tt.vars||tt).palette.text.secondary},!et.disableHighlightToday&&et.today&&{[`&:not(.${pickersDayClasses.selected})`]:{border:`1px solid ${(tt.vars||tt).palette.text.secondary}`}}),overridesResolver=(tt,et)=>{const{ownerState:nt}=tt;return[et.root,!nt.disableMargin&&et.dayWithMargin,!nt.disableHighlightToday&&nt.today&&et.today,!nt.outsideCurrentMonth&&nt.showDaysOutsideCurrentMonth&&et.dayOutsideMonth,nt.outsideCurrentMonth&&!nt.showDaysOutsideCurrentMonth&&et.hiddenDaySpacingFiller]},PickersDayRoot=styled$1(ButtonBase$1,{name:"MuiPickersDay",slot:"Root",overridesResolver})(styleArg),PickersDayFiller=styled$1("div",{name:"MuiPickersDay",slot:"Root",overridesResolver})(({theme:tt,ownerState:et})=>_extends$r({},styleArg({theme:tt,ownerState:et}),{opacity:0,pointerEvents:"none"})),noop$2=()=>{},PickersDayRaw=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiPickersDay"}),{autoFocus:it=!1,className:ot,day:at,disabled:st=!1,disableHighlightToday:lt=!1,disableMargin:ct=!1,isAnimating:ut,onClick:ht,onDaySelect:dt,onFocus:pt=noop$2,onBlur:mt=noop$2,onKeyDown:gt=noop$2,onMouseDown:yt=noop$2,onMouseEnter:bt=noop$2,outsideCurrentMonth:wt,selected:vt=!1,showDaysOutsideCurrentMonth:kt=!1,children:St,today:Et=!1}=rt,At=_objectWithoutPropertiesLoose$g(rt,_excluded$u),Tt=_extends$r({},rt,{autoFocus:it,disabled:st,disableHighlightToday:lt,disableMargin:ct,selected:vt,showDaysOutsideCurrentMonth:kt,today:Et}),Mt=useUtilityClasses$e(Tt),Lt=useUtils(),jt=reactExports.useRef(null),Rt=useForkRef(jt,nt);useEnhancedEffect$1(()=>{it&&!st&&!ut&&!wt&&jt.current.focus()},[it,st,ut,wt]);const $t=It=>{yt(It),wt&&It.preventDefault()},xt=It=>{st||dt(at),wt&&It.currentTarget.focus(),ht&&ht(It)};return wt&&!kt?jsxRuntimeExports.jsx(PickersDayFiller,{className:clsx(Mt.root,Mt.hiddenDaySpacingFiller,ot),ownerState:Tt,role:At.role}):jsxRuntimeExports.jsx(PickersDayRoot,_extends$r({className:clsx(Mt.root,ot),ref:Rt,centerRipple:!0,disabled:st,tabIndex:vt?0:-1,onKeyDown:It=>gt(It,at),onFocus:It=>pt(It,at),onBlur:It=>mt(It,at),onMouseEnter:It=>bt(It,at),onClick:xt,onMouseDown:$t},At,{ownerState:Tt,children:St||Lt.format(at,"dayOfMonth")}))}),PickersDay=reactExports.memo(PickersDayRaw);function useValidation(tt,et,nt,rt){const{value:it,onError:ot}=tt,at=useLocalizationContext(),st=reactExports.useRef(rt),lt=et({adapter:at,value:it,props:tt});return reactExports.useEffect(()=>{ot&&!nt(lt,st.current)&&ot(lt,it),st.current=lt},[nt,ot,st,lt,it]),lt}const useFieldState=tt=>{const et=useUtils(),nt=useLocaleText(),rt=useLocalizationContext(),ot=useTheme().direction==="rtl",{valueManager:at,fieldValueManager:st,valueType:lt,validator:ct,internalProps:ut,internalProps:{value:ht,defaultValue:dt,referenceDate:pt,onChange:mt,format:gt,formatDensity:yt="dense",selectedSections:bt,onSelectedSectionsChange:wt,shouldRespectLeadingZeros:vt=!1,timezone:kt}}=tt,{timezone:St,value:Et,handleValueChange:At}=useValueWithTimezone({timezone:kt,value:ht,defaultValue:dt,onChange:mt,valueManager:at}),Tt=reactExports.useMemo(()=>getSectionsBoundaries(et,St),[et,St]),Mt=reactExports.useCallback((Jt,nn=null)=>st.getSectionsFromValue(et,Jt,nn,ot,Yt=>splitFormatIntoSections(et,St,nt,gt,Yt,yt,vt,ot)),[st,gt,nt,ot,vt,et,yt,St]),Lt=reactExports.useMemo(()=>st.getValueStrFromSections(Mt(at.emptyValue),ot),[st,Mt,at.emptyValue,ot]),[jt,Rt]=reactExports.useState(()=>{const Jt=Mt(Et),nn={sections:Jt,value:Et,referenceValue:at.emptyValue,tempValueStrAndroid:null},Yt=getSectionTypeGranularity(Jt),fn=at.getInitialReferenceValue({referenceDate:pt,value:Et,utils:et,props:ut,granularity:Yt,timezone:St});return _extends$r({},nn,{referenceValue:fn})}),[$t,xt]=useControlled({controlled:bt,default:null,name:"useField",state:"selectedSectionIndexes"}),It=Jt=>{xt(Jt),wt==null||wt(Jt),Rt(nn=>_extends$r({},nn,{selectedSectionQuery:null}))},Ot=reactExports.useMemo(()=>{if($t==null)return null;if($t==="all")return{startIndex:0,endIndex:jt.sections.length-1,shouldSelectBoundarySelectors:!0};if(typeof $t=="number")return{startIndex:$t,endIndex:$t};if(typeof $t=="string"){const Jt=jt.sections.findIndex(nn=>nn.type===$t);return{startIndex:Jt,endIndex:Jt}}return $t},[$t,jt.sections]),zt=({value:Jt,referenceValue:nn,sections:Yt})=>{Rt(cn=>_extends$r({},cn,{sections:Yt,value:Jt,referenceValue:nn,tempValueStrAndroid:null}));const fn={validationError:ct({adapter:rt,value:Jt,props:_extends$r({},ut,{value:Jt,timezone:St})})};At(Jt,fn)},Ut=(Jt,nn)=>{const Yt=[...jt.sections];return Yt[Jt]=_extends$r({},Yt[Jt],{value:nn,modified:!0}),addPositionPropertiesToSections(Yt,ot)},Wt=()=>{at.areValuesEqual(et,jt.value,at.emptyValue)||zt({value:at.emptyValue,referenceValue:jt.referenceValue,sections:Mt(at.emptyValue)})},Ft=()=>{if(Ot==null)return;const Jt=jt.sections[Ot.startIndex];if(Jt.value==="")return;const nn=st.getActiveDateManager(et,jt,Jt),fn=nn.getSections(jt.sections).filter(an=>an.value!=="").length===1,cn=Ut(Ot.startIndex,""),_n=fn?null:et.date(new Date("")),En=nn.getNewValuesFromNewActiveDate(_n);(_n!=null&&!et.isValid(_n))!=(nn.date!=null&&!et.isValid(nn.date))?zt(_extends$r({},En,{sections:cn})):Rt(an=>_extends$r({},an,En,{sections:cn,tempValueStrAndroid:null}))},Nt=Jt=>{const nn=(cn,_n)=>{const En=et.parse(cn,gt);if(En==null||!et.isValid(En))return null;const an=splitFormatIntoSections(et,St,nt,gt,En,yt,vt,ot);return mergeDateIntoReferenceDate(et,St,En,an,_n,!1)},Yt=st.parseValueStr(Jt,jt.referenceValue,nn),fn=st.updateReferenceValue(et,Yt,jt.referenceValue);zt({value:Yt,referenceValue:fn,sections:Mt(Yt,jt.sections)})},Ct=({activeSection:Jt,newSectionValue:nn,shouldGoToNextSection:Yt})=>{Yt&&Ot&&Ot.startIndex_extends$r({},An,en,{sections:Rn,tempValueStrAndroid:null}))},Ht=Jt=>Rt(nn=>_extends$r({},nn,{tempValueStrAndroid:Jt}));return reactExports.useEffect(()=>{const Jt=Mt(jt.value);Rt(nn=>_extends$r({},nn,{sections:Jt}))},[gt,et.locale]),reactExports.useEffect(()=>{let Jt=!1;at.areValuesEqual(et,jt.value,Et)?Jt=at.getTimezone(et,jt.value)!==at.getTimezone(et,Et):Jt=!0,Jt&&Rt(nn=>_extends$r({},nn,{value:Et,referenceValue:st.updateReferenceValue(et,Et,nn.referenceValue),sections:Mt(Et)}))},[Et]),{state:jt,selectedSectionIndexes:Ot,setSelectedSections:It,clearValue:Wt,clearActiveSection:Ft,updateSectionValue:Ct,updateValueFromValueStr:Nt,setTempAndroidValueStr:Ht,sectionsValueBoundaries:Tt,placeholder:Lt,timezone:St}},QUERY_LIFE_DURATION_MS=5e3,isQueryResponseWithoutValue=tt=>tt.saveQuery!=null,useFieldCharacterEditing=({sections:tt,updateSectionValue:et,sectionsValueBoundaries:nt,setTempAndroidValueStr:rt,timezone:it})=>{const ot=useUtils(),[at,st]=reactExports.useState(null),lt=useEventCallback(()=>st(null));reactExports.useEffect(()=>{var pt;at!=null&&((pt=tt[at.sectionIndex])==null?void 0:pt.type)!==at.sectionType&<()},[tt,at,lt]),reactExports.useEffect(()=>{if(at!=null){const pt=setTimeout(()=>lt(),QUERY_LIFE_DURATION_MS);return()=>{window.clearTimeout(pt)}}return()=>{}},[at,lt]);const ct=({keyPressed:pt,sectionIndex:mt},gt,yt)=>{const bt=pt.toLowerCase(),wt=tt[mt];if(at!=null&&(!yt||yt(at.value))&&at.sectionIndex===mt){const kt=`${at.value}${bt}`,St=gt(kt,wt);if(!isQueryResponseWithoutValue(St))return st({sectionIndex:mt,value:kt,sectionType:wt.type}),St}const vt=gt(bt,wt);return isQueryResponseWithoutValue(vt)&&!vt.saveQuery?(lt(),null):(st({sectionIndex:mt,value:bt,sectionType:wt.type}),isQueryResponseWithoutValue(vt)?null:vt)},ut=pt=>{const mt=(bt,wt,vt)=>{const kt=wt.filter(St=>St.toLowerCase().startsWith(vt));return kt.length===0?{saveQuery:!1}:{sectionValue:kt[0],shouldGoToNextSection:kt.length===1}},gt=(bt,wt,vt,kt)=>{const St=Et=>getLetterEditingOptions(ot,it,wt.type,Et);if(wt.contentType==="letter")return mt(wt.format,St(wt.format),bt);if(vt&&kt!=null&&getDateSectionConfigFromFormatToken(ot,vt).contentType==="letter"){const Et=St(vt),At=mt(vt,Et,bt);return isQueryResponseWithoutValue(At)?{saveQuery:!1}:_extends$r({},At,{sectionValue:kt(At.sectionValue,Et)})}return{saveQuery:!1}};return ct(pt,(bt,wt)=>{switch(wt.type){case"month":{const vt=kt=>changeSectionValueFormat(ot,kt,ot.formats.month,wt.format);return gt(bt,wt,ot.formats.month,vt)}case"weekDay":{const vt=(kt,St)=>St.indexOf(kt).toString();return gt(bt,wt,ot.formats.weekday,vt)}case"meridiem":return gt(bt,wt);default:return{saveQuery:!1}}})},ht=pt=>{const mt=(yt,bt)=>{const wt=+`${yt}`,vt=nt[bt.type]({currentDate:null,format:bt.format,contentType:bt.contentType});if(wt>vt.maximum)return{saveQuery:!1};if(wtvt.maximum||yt.length===vt.maximum.toString().length;return{sectionValue:cleanDigitSectionValue(ot,it,wt,vt,bt),shouldGoToNextSection:kt}};return ct(pt,(yt,bt)=>{if(bt.contentType==="digit"||bt.contentType==="digit-with-letter")return mt(yt,bt);if(bt.type==="month"){const wt=doesSectionFormatHaveLeadingZeros(ot,it,"digit","month","MM"),vt=mt(yt,{type:bt.type,format:"MM",hasLeadingZerosInFormat:wt,hasLeadingZerosInInput:!0,contentType:"digit",maxLength:2});if(isQueryResponseWithoutValue(vt))return vt;const kt=changeSectionValueFormat(ot,vt.sectionValue,"MM",bt.format);return _extends$r({},vt,{sectionValue:kt})}if(bt.type==="weekDay"){const wt=mt(yt,bt);if(isQueryResponseWithoutValue(wt))return wt;const vt=getDaysInWeekStr(ot,it,bt.format)[Number(wt.sectionValue)-1];return _extends$r({},wt,{sectionValue:vt})}return{saveQuery:!1}},yt=>!Number.isNaN(Number(yt)))};return{applyCharacterEditing:useEventCallback(pt=>{const mt=tt[pt.sectionIndex],yt=!Number.isNaN(Number(pt.keyPressed))?ht(pt):ut(pt);yt==null?rt(null):et({activeSection:mt,newSectionValue:yt.sectionValue,shouldGoToNextSection:yt.shouldGoToNextSection})}),resetCharacterQuery:lt}};function arrayIncludes(tt,et){return Array.isArray(et)?et.every(nt=>tt.indexOf(nt)!==-1):tt.indexOf(et)!==-1}const onSpaceOrEnter=(tt,et)=>nt=>{(nt.key==="Enter"||nt.key===" ")&&(tt(nt),nt.preventDefault(),nt.stopPropagation()),et&&et(nt)},getActiveElement=(tt=document)=>{const et=tt.activeElement;return et?et.shadowRoot?getActiveElement(et.shadowRoot):et:null},DEFAULT_DESKTOP_MODE_MEDIA_QUERY="@media (pointer: fine)",_excluded$t=["onClick","onKeyDown","onFocus","onBlur","onMouseUp","onPaste","error"],useField=tt=>{const et=useUtils(),{state:nt,selectedSectionIndexes:rt,setSelectedSections:it,clearValue:ot,clearActiveSection:at,updateSectionValue:st,updateValueFromValueStr:lt,setTempAndroidValueStr:ct,sectionsValueBoundaries:ut,placeholder:ht,timezone:dt}=useFieldState(tt),{inputRef:pt,internalProps:mt,internalProps:{readOnly:gt=!1,unstableFieldRef:yt,minutesStep:bt},forwardedProps:{onClick:wt,onKeyDown:vt,onFocus:kt,onBlur:St,onMouseUp:Et,onPaste:At,error:Tt},fieldValueManager:Mt,valueManager:Lt,validator:jt}=tt,Rt=_objectWithoutPropertiesLoose$g(tt.forwardedProps,_excluded$t),{applyCharacterEditing:$t,resetCharacterQuery:xt}=useFieldCharacterEditing({sections:nt.sections,updateSectionValue:st,sectionsValueBoundaries:ut,setTempAndroidValueStr:ct,timezone:dt}),It=reactExports.useRef(null),Ot=useForkRef(pt,It),zt=reactExports.useRef(void 0),Wt=useTheme().direction==="rtl",Ft=reactExports.useMemo(()=>getSectionOrder(nt.sections,Wt),[nt.sections,Wt]),Nt=()=>{var An;if(gt){it(null);return}const yn=(An=It.current.selectionStart)!=null?An:0;let kn;yn<=nt.sections[0].startInInput||yn>=nt.sections[nt.sections.length-1].endInInput?kn=1:kn=nt.sections.findIndex(gn=>gn.startInInput-gn.startSeparator.length>yn);const dn=kn===-1?nt.sections.length-1:kn-1;it(dn)},Ct=useEventCallback((...An)=>{wt==null||wt(...An),Nt()}),Ht=useEventCallback(An=>{Et==null||Et(An),An.preventDefault()}),Jt=useEventCallback((...An)=>{kt==null||kt(...An);const yn=It.current;window.clearTimeout(zt.current),zt.current=setTimeout(()=>{!yn||yn!==It.current||rt!=null||gt||(yn.value.length&&Number(yn.selectionEnd)-Number(yn.selectionStart)===yn.value.length?it("all"):Nt())})}),nn=useEventCallback((...An)=>{St==null||St(...An),it(null)}),Yt=useEventCallback(An=>{if(At==null||At(An),gt){An.preventDefault();return}const yn=An.clipboardData.getData("text");if(rt&&rt.startIndex===rt.endIndex){const kn=nt.sections[rt.startIndex],dn=/^[a-zA-Z]+$/.test(yn),gn=/^[0-9]+$/.test(yn),Cn=/^(([a-zA-Z]+)|)([0-9]+)(([a-zA-Z]+)|)$/.test(yn);if(kn.contentType==="letter"&&dn||kn.contentType==="digit"&&gn||kn.contentType==="digit-with-letter"&&Cn)return;if(dn||gn){An.preventDefault();return}}An.preventDefault(),xt(),lt(yn)}),fn=useEventCallback(An=>{if(gt)return;const yn=An.target.value,kn=cleanString(yn);if(rt==null){lt(kn);return}let dn;if(rt.startIndex===0&&rt.endIndex===nt.sections.length-1&&kn.length===1)dn=kn;else{const gn=cleanString(Mt.getValueStrFromSections(nt.sections,Wt));let Cn=-1,$n=-1;for(let Mn=0;Mnun.end)return;const Sn=kn.length-gn.length+un.end-cleanString(un.endSeparator||"").length;dn=kn.slice(un.start+cleanString(un.startSeparator||"").length,Sn)}if(isAndroid()&&dn.length===0){ct(yn);return}$t({keyPressed:dn,sectionIndex:rt.startIndex})}),cn=useEventCallback(An=>{switch(vt==null||vt(An),!0){case(An.key==="a"&&(An.ctrlKey||An.metaKey)):{An.preventDefault(),it("all");break}case An.key==="ArrowRight":{if(An.preventDefault(),rt==null)it(Ft.startIndex);else if(rt.startIndex!==rt.endIndex)it(rt.endIndex);else{const yn=Ft.neighbors[rt.startIndex].rightIndex;yn!==null&&it(yn)}break}case An.key==="ArrowLeft":{if(An.preventDefault(),rt==null)it(Ft.endIndex);else if(rt.startIndex!==rt.endIndex)it(rt.startIndex);else{const yn=Ft.neighbors[rt.startIndex].leftIndex;yn!==null&&it(yn)}break}case["Backspace","Delete"].includes(An.key):{if(An.preventDefault(),gt)break;rt==null||rt.startIndex===0&&rt.endIndex===nt.sections.length-1?ot():at(),xt();break}case["ArrowUp","ArrowDown","Home","End","PageUp","PageDown"].includes(An.key):{if(An.preventDefault(),gt||rt==null)break;const yn=nt.sections[rt.startIndex],kn=Mt.getActiveDateManager(et,nt,yn),dn=adjustSectionValue(et,dt,yn,An.key,ut,kn.date,{minutesStep:bt});st({activeSection:yn,newSectionValue:dn,shouldGoToNextSection:!1});break}}});useEnhancedEffect$1(()=>{if(!It.current)return;if(rt==null){It.current.scrollLeft&&(It.current.scrollLeft=0);return}const An=nt.sections[rt.startIndex],yn=nt.sections[rt.endIndex];let kn=An.startInInput,dn=yn.endInInput;if(rt.shouldSelectBoundarySelectors&&(kn-=An.startSeparator.length,dn+=yn.endSeparator.length),kn!==It.current.selectionStart||dn!==It.current.selectionEnd){const gn=It.current.scrollTop;It.current===getActiveElement(document)&&It.current.setSelectionRange(kn,dn),It.current.scrollTop=gn}});const _n=useValidation(_extends$r({},mt,{value:nt.value,timezone:dt}),jt,Lt.isSameError,Lt.defaultErrorState),En=reactExports.useMemo(()=>Tt!==void 0?Tt:Lt.hasError(_n),[Lt,_n,Tt]);reactExports.useEffect(()=>{!En&&!rt&&xt()},[nt.referenceValue,rt,En]),reactExports.useEffect(()=>(It.current&&It.current===document.activeElement&&it("all"),()=>window.clearTimeout(zt.current)),[]),reactExports.useEffect(()=>{nt.tempValueStrAndroid!=null&&rt!=null&&(xt(),at())},[nt.tempValueStrAndroid]);const an=reactExports.useMemo(()=>{var An;return(An=nt.tempValueStrAndroid)!=null?An:Mt.getValueStrFromSections(nt.sections,Wt)},[nt.sections,Mt,nt.tempValueStrAndroid,Wt]),en=reactExports.useMemo(()=>rt==null||nt.sections[rt.startIndex].contentType==="letter"?"text":"tel",[rt,nt.sections]),Rn=!(It.current&&It.current===getActiveElement(document))&&Lt.areValuesEqual(et,nt.value,Lt.emptyValue);return reactExports.useImperativeHandle(yt,()=>({getSections:()=>nt.sections,getActiveSectionIndex:()=>{var An,yn;const kn=(An=It.current.selectionStart)!=null?An:0,dn=(yn=It.current.selectionEnd)!=null?yn:0;if(kn===0&&dn===0)return null;const gn=kn<=nt.sections[0].startInInput?1:nt.sections.findIndex(Cn=>Cn.startInInput-Cn.startSeparator.length>kn);return gn===-1?nt.sections.length-1:gn-1},setSelectedSections:An=>it(An)})),_extends$r({placeholder:ht,autoComplete:"off"},Rt,{value:Rn?"":an,inputMode:en,readOnly:gt,onClick:Ct,onFocus:Jt,onBlur:nn,onPaste:Yt,onChange:fn,onKeyDown:cn,onMouseUp:Ht,error:En,ref:Ot})},validateDate=({props:tt,value:et,adapter:nt})=>{if(et===null)return null;const{shouldDisableDate:rt,shouldDisableMonth:it,shouldDisableYear:ot,disablePast:at,disableFuture:st,timezone:lt}=tt,ct=nt.utils.dateWithTimezone(void 0,lt),ut=applyDefaultDate(nt.utils,tt.minDate,nt.defaultDates.minDate),ht=applyDefaultDate(nt.utils,tt.maxDate,nt.defaultDates.maxDate);switch(!0){case!nt.utils.isValid(et):return"invalidDate";case!!(rt&&rt(et)):return"shouldDisableDate";case!!(it&&it(et)):return"shouldDisableMonth";case!!(ot&&ot(et)):return"shouldDisableYear";case!!(st&&nt.utils.isAfterDay(et,ct)):return"disableFuture";case!!(at&&nt.utils.isBeforeDay(et,ct)):return"disablePast";case!!(ut&&nt.utils.isBeforeDay(et,ut)):return"minDate";case!!(ht&&nt.utils.isAfterDay(et,ht)):return"maxDate";default:return null}},DATE_VALIDATION_PROP_NAMES=["disablePast","disableFuture","minDate","maxDate","shouldDisableDate","shouldDisableMonth","shouldDisableYear"],TIME_VALIDATION_PROP_NAMES=["disablePast","disableFuture","minTime","maxTime","shouldDisableClock","shouldDisableTime","minutesStep","ampm","disableIgnoringDatePartForTimeValidation"],DATE_TIME_VALIDATION_PROP_NAMES=["minDateTime","maxDateTime"],VALIDATION_PROP_NAMES=[...DATE_VALIDATION_PROP_NAMES,...TIME_VALIDATION_PROP_NAMES,...DATE_TIME_VALIDATION_PROP_NAMES],extractValidationProps=tt=>VALIDATION_PROP_NAMES.reduce((et,nt)=>(tt.hasOwnProperty(nt)&&(et[nt]=tt[nt]),et),{}),SHARED_FIELD_INTERNAL_PROP_NAMES=["value","defaultValue","referenceDate","format","formatDensity","onChange","timezone","readOnly","onError","shouldRespectLeadingZeros","selectedSections","onSelectedSectionsChange","unstableFieldRef"],splitFieldInternalAndForwardedProps=(tt,et)=>{const nt=_extends$r({},tt),rt={},it=ot=>{nt.hasOwnProperty(ot)&&(rt[ot]=nt[ot],delete nt[ot])};return SHARED_FIELD_INTERNAL_PROP_NAMES.forEach(it),et==="date"?DATE_VALIDATION_PROP_NAMES.forEach(it):et==="time"?TIME_VALIDATION_PROP_NAMES.forEach(it):et==="date-time"&&(DATE_VALIDATION_PROP_NAMES.forEach(it),TIME_VALIDATION_PROP_NAMES.forEach(it),DATE_TIME_VALIDATION_PROP_NAMES.forEach(it)),{forwardedProps:nt,internalProps:rt}},useDefaultizedDateField=tt=>{var et,nt,rt;const it=useUtils(),ot=useDefaultDates();return _extends$r({},tt,{disablePast:(et=tt.disablePast)!=null?et:!1,disableFuture:(nt=tt.disableFuture)!=null?nt:!1,format:(rt=tt.format)!=null?rt:it.formats.keyboardDate,minDate:applyDefaultDate(it,tt.minDate,ot.minDate),maxDate:applyDefaultDate(it,tt.maxDate,ot.maxDate)})},useDateField=({props:tt,inputRef:et})=>{const nt=useDefaultizedDateField(tt),{forwardedProps:rt,internalProps:it}=splitFieldInternalAndForwardedProps(nt,"date");return useField({inputRef:et,forwardedProps:rt,internalProps:it,valueManager:singleItemValueManager,fieldValueManager:singleItemFieldValueManager,validator:validateDate,valueType:"date"})},_excluded$s=["components","componentsProps","slots","slotProps","InputProps","inputProps"],_excluded2$5=["inputRef"],_excluded3$2=["ref","onPaste","onKeyDown","inputMode","readOnly"],DateField=reactExports.forwardRef(function(et,nt){var rt,it,ot;const at=useThemeProps({props:et,name:"MuiDateField"}),{components:st,componentsProps:lt,slots:ct,slotProps:ut,InputProps:ht,inputProps:dt}=at,pt=_objectWithoutPropertiesLoose$g(at,_excluded$s),mt=at,gt=(rt=(it=ct==null?void 0:ct.textField)!=null?it:st==null?void 0:st.TextField)!=null?rt:MuiTextField,yt=useSlotProps({elementType:gt,externalSlotProps:(ot=ut==null?void 0:ut.textField)!=null?ot:lt==null?void 0:lt.textField,externalForwardedProps:pt,ownerState:mt}),{inputRef:bt}=yt,wt=_objectWithoutPropertiesLoose$g(yt,_excluded2$5);wt.inputProps=_extends$r({},wt.inputProps,dt),wt.InputProps=_extends$r({},wt.InputProps,ht);const vt=useDateField({props:wt,inputRef:bt}),{ref:kt,onPaste:St,onKeyDown:Et,inputMode:At,readOnly:Tt}=vt,Mt=_objectWithoutPropertiesLoose$g(vt,_excluded3$2);return jsxRuntimeExports.jsx(gt,_extends$r({ref:nt},Mt,{InputProps:_extends$r({},Mt.InputProps,{readOnly:Tt}),inputProps:_extends$r({},Mt.inputProps,{inputMode:At,onPaste:St,onKeyDown:Et,ref:kt})}))}),useIsDateDisabled=({shouldDisableDate:tt,shouldDisableMonth:et,shouldDisableYear:nt,minDate:rt,maxDate:it,disableFuture:ot,disablePast:at,timezone:st})=>{const lt=useLocalizationContext();return reactExports.useCallback(ct=>validateDate({adapter:lt,value:ct,props:{shouldDisableDate:tt,shouldDisableMonth:et,shouldDisableYear:nt,minDate:rt,maxDate:it,disableFuture:ot,disablePast:at,timezone:st}})!==null,[lt,tt,et,nt,rt,it,ot,at,st])},createCalendarStateReducer=(tt,et,nt)=>(rt,it)=>{switch(it.type){case"changeMonth":return _extends$r({},rt,{slideDirection:it.direction,currentMonth:it.newMonth,isMonthSwitchingAnimating:!tt});case"finishMonthSwitchingAnimation":return _extends$r({},rt,{isMonthSwitchingAnimating:!1});case"changeFocusedDay":{if(rt.focusedDay!=null&&it.focusedDay!=null&&nt.isSameDay(it.focusedDay,rt.focusedDay))return rt;const ot=it.focusedDay!=null&&!et&&!nt.isSameMonth(rt.currentMonth,it.focusedDay);return _extends$r({},rt,{focusedDay:it.focusedDay,isMonthSwitchingAnimating:ot&&!tt&&!it.withoutMonthSwitchingAnimation,currentMonth:ot?nt.startOfMonth(it.focusedDay):rt.currentMonth,slideDirection:it.focusedDay!=null&&nt.isAfterDay(it.focusedDay,rt.currentMonth)?"left":"right"})}default:throw new Error("missing support")}},useCalendarState=tt=>{const{value:et,referenceDate:nt,defaultCalendarMonth:rt,disableFuture:it,disablePast:ot,disableSwitchToMonthOnDayFocus:at=!1,maxDate:st,minDate:lt,onMonthChange:ct,reduceAnimations:ut,shouldDisableDate:ht,timezone:dt}=tt,pt=useNow(dt),mt=useUtils(),gt=reactExports.useRef(createCalendarStateReducer(!!ut,at,mt)).current,yt=reactExports.useMemo(()=>{let Tt=null;return nt?Tt=nt:rt&&(Tt=mt.startOfMonth(rt)),singleItemValueManager.getInitialReferenceValue({value:et,utils:mt,timezone:dt,props:tt,referenceDate:Tt,granularity:SECTION_TYPE_GRANULARITY.day})},[]),[bt,wt]=reactExports.useReducer(gt,{isMonthSwitchingAnimating:!1,focusedDay:et||pt,currentMonth:mt.startOfMonth(yt),slideDirection:"left"}),vt=reactExports.useCallback(Tt=>{wt(_extends$r({type:"changeMonth"},Tt)),ct&&ct(Tt.newMonth)},[ct]),kt=reactExports.useCallback(Tt=>{const Mt=Tt;mt.isSameMonth(Mt,bt.currentMonth)||vt({newMonth:mt.startOfMonth(Mt),direction:mt.isAfterDay(Mt,bt.currentMonth)?"left":"right"})},[bt.currentMonth,vt,mt]),St=useIsDateDisabled({shouldDisableDate:ht,minDate:lt,maxDate:st,disableFuture:it,disablePast:ot,timezone:dt}),Et=reactExports.useCallback(()=>{wt({type:"finishMonthSwitchingAnimation"})},[]),At=useEventCallback((Tt,Mt)=>{St(Tt)||wt({type:"changeFocusedDay",focusedDay:Tt,withoutMonthSwitchingAnimation:Mt})});return{referenceDate:yt,calendarState:bt,changeMonth:kt,changeFocusedDay:At,isDateDisabled:St,onMonthSwitchingAnimationEnd:Et,handleChangeMonth:vt}},getPickersFadeTransitionGroupUtilityClass=tt=>generateUtilityClass("MuiPickersFadeTransitionGroup",tt);generateUtilityClasses("MuiPickersFadeTransitionGroup",["root"]);const useUtilityClasses$d=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getPickersFadeTransitionGroupUtilityClass,et)},animationDuration=500,PickersFadeTransitionGroupRoot=styled$1(TransitionGroup$1,{name:"MuiPickersFadeTransitionGroup",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"block",position:"relative"});function PickersFadeTransitionGroup(tt){const et=useThemeProps({props:tt,name:"MuiPickersFadeTransitionGroup"}),{children:nt,className:rt,reduceAnimations:it,transKey:ot}=et,at=useUtilityClasses$d(et);return it?nt:jsxRuntimeExports.jsx(PickersFadeTransitionGroupRoot,{className:clsx(at.root,rt),children:jsxRuntimeExports.jsx(Fade$1,{appear:!1,mountOnEnter:!0,unmountOnExit:!0,timeout:{appear:animationDuration,enter:animationDuration/2,exit:0},children:nt},ot)})}const getPickersSlideTransitionUtilityClass=tt=>generateUtilityClass("MuiPickersSlideTransition",tt),pickersSlideTransitionClasses=generateUtilityClasses("MuiPickersSlideTransition",["root","slideEnter-left","slideEnter-right","slideEnterActive","slideExit","slideExitActiveLeft-left","slideExitActiveLeft-right"]),_excluded$r=["children","className","reduceAnimations","slideDirection","transKey","classes"],useUtilityClasses$c=tt=>{const{classes:et,slideDirection:nt}=tt,rt={root:["root"],exit:["slideExit"],enterActive:["slideEnterActive"],enter:[`slideEnter-${nt}`],exitActive:[`slideExitActiveLeft-${nt}`]};return composeClasses(rt,getPickersSlideTransitionUtilityClass,et)},slideAnimationDuration=350,PickersSlideTransitionRoot=styled$1(TransitionGroup$1,{name:"MuiPickersSlideTransition",slot:"Root",overridesResolver:(tt,et)=>[et.root,{[`.${pickersSlideTransitionClasses["slideEnter-left"]}`]:et["slideEnter-left"]},{[`.${pickersSlideTransitionClasses["slideEnter-right"]}`]:et["slideEnter-right"]},{[`.${pickersSlideTransitionClasses.slideEnterActive}`]:et.slideEnterActive},{[`.${pickersSlideTransitionClasses.slideExit}`]:et.slideExit},{[`.${pickersSlideTransitionClasses["slideExitActiveLeft-left"]}`]:et["slideExitActiveLeft-left"]},{[`.${pickersSlideTransitionClasses["slideExitActiveLeft-right"]}`]:et["slideExitActiveLeft-right"]}]})(({theme:tt})=>{const et=tt.transitions.create("transform",{duration:slideAnimationDuration,easing:"cubic-bezier(0.35, 0.8, 0.4, 1)"});return{display:"block",position:"relative",overflowX:"hidden","& > *":{position:"absolute",top:0,right:0,left:0},[`& .${pickersSlideTransitionClasses["slideEnter-left"]}`]:{willChange:"transform",transform:"translate(100%)",zIndex:1},[`& .${pickersSlideTransitionClasses["slideEnter-right"]}`]:{willChange:"transform",transform:"translate(-100%)",zIndex:1},[`& .${pickersSlideTransitionClasses.slideEnterActive}`]:{transform:"translate(0%)",transition:et},[`& .${pickersSlideTransitionClasses.slideExit}`]:{transform:"translate(0%)"},[`& .${pickersSlideTransitionClasses["slideExitActiveLeft-left"]}`]:{willChange:"transform",transform:"translate(-100%)",transition:et,zIndex:0},[`& .${pickersSlideTransitionClasses["slideExitActiveLeft-right"]}`]:{willChange:"transform",transform:"translate(100%)",transition:et,zIndex:0}}});function PickersSlideTransition(tt){const et=useThemeProps({props:tt,name:"MuiPickersSlideTransition"}),{children:nt,className:rt,reduceAnimations:it,transKey:ot}=et,at=_objectWithoutPropertiesLoose$g(et,_excluded$r),st=useUtilityClasses$c(et);if(it)return jsxRuntimeExports.jsx("div",{className:clsx(st.root,rt),children:nt});const lt={exit:st.exit,enterActive:st.enterActive,enter:st.enter,exitActive:st.exitActive};return jsxRuntimeExports.jsx(PickersSlideTransitionRoot,{className:clsx(st.root,rt),childFactory:ct=>reactExports.cloneElement(ct,{classNames:lt}),role:"presentation",children:jsxRuntimeExports.jsx(CSSTransition$1,_extends$r({mountOnEnter:!0,unmountOnExit:!0,timeout:slideAnimationDuration,classNames:lt},at,{children:nt}),ot)})}const getDayCalendarUtilityClass=tt=>generateUtilityClass("MuiDayCalendar",tt);generateUtilityClasses("MuiDayCalendar",["header","weekDayLabel","loadingContainer","slideTransition","monthContainer","weekContainer","weekNumberLabel","weekNumber"]);const _excluded$q=["parentProps","day","focusableDay","selectedDays","isDateDisabled","currentMonthNumber","isViewFocused"],_excluded2$4=["ownerState"],useUtilityClasses$b=tt=>{const{classes:et}=tt;return composeClasses({header:["header"],weekDayLabel:["weekDayLabel"],loadingContainer:["loadingContainer"],slideTransition:["slideTransition"],monthContainer:["monthContainer"],weekContainer:["weekContainer"],weekNumberLabel:["weekNumberLabel"],weekNumber:["weekNumber"]},getDayCalendarUtilityClass,et)},defaultDayOfWeekFormatter=tt=>tt.charAt(0).toUpperCase(),weeksContainerHeight=(DAY_SIZE+DAY_MARGIN*2)*6,PickersCalendarDayHeader=styled$1("div",{name:"MuiDayCalendar",slot:"Header",overridesResolver:(tt,et)=>et.header})({display:"flex",justifyContent:"center",alignItems:"center"}),PickersCalendarWeekDayLabel=styled$1(Typography$1,{name:"MuiDayCalendar",slot:"WeekDayLabel",overridesResolver:(tt,et)=>et.weekDayLabel})(({theme:tt})=>({width:36,height:40,margin:"0 2px",textAlign:"center",display:"flex",justifyContent:"center",alignItems:"center",color:(tt.vars||tt).palette.text.secondary})),PickersCalendarWeekNumberLabel=styled$1(Typography$1,{name:"MuiDayPicker",slot:"WeekNumberLabel",overridesResolver:(tt,et)=>et.weekNumberLabel})(({theme:tt})=>({width:36,height:40,margin:"0 2px",textAlign:"center",display:"flex",justifyContent:"center",alignItems:"center",color:tt.palette.text.disabled})),PickersCalendarWeekNumber=styled$1(Typography$1,{name:"MuiDayPicker",slot:"WeekNumber",overridesResolver:(tt,et)=>et.weekNumber})(({theme:tt})=>_extends$r({},tt.typography.caption,{width:DAY_SIZE,height:DAY_SIZE,padding:0,margin:`0 ${DAY_MARGIN}px`,color:tt.palette.text.disabled,fontSize:"0.75rem",alignItems:"center",justifyContent:"center",display:"inline-flex"})),PickersCalendarLoadingContainer=styled$1("div",{name:"MuiDayCalendar",slot:"LoadingContainer",overridesResolver:(tt,et)=>et.loadingContainer})({display:"flex",justifyContent:"center",alignItems:"center",minHeight:weeksContainerHeight}),PickersCalendarSlideTransition=styled$1(PickersSlideTransition,{name:"MuiDayCalendar",slot:"SlideTransition",overridesResolver:(tt,et)=>et.slideTransition})({minHeight:weeksContainerHeight}),PickersCalendarWeekContainer=styled$1("div",{name:"MuiDayCalendar",slot:"MonthContainer",overridesResolver:(tt,et)=>et.monthContainer})({overflow:"hidden"}),PickersCalendarWeek=styled$1("div",{name:"MuiDayCalendar",slot:"WeekContainer",overridesResolver:(tt,et)=>et.weekContainer})({margin:`${DAY_MARGIN}px 0`,display:"flex",justifyContent:"center"});function WrappedDay(tt){var et,nt,rt;let{parentProps:it,day:ot,focusableDay:at,selectedDays:st,isDateDisabled:lt,currentMonthNumber:ct,isViewFocused:ut}=tt,ht=_objectWithoutPropertiesLoose$g(tt,_excluded$q);const{disabled:dt,disableHighlightToday:pt,isMonthSwitchingAnimating:mt,showDaysOutsideCurrentMonth:gt,components:yt,componentsProps:bt,slots:wt,slotProps:vt,timezone:kt}=it,St=useUtils(),Et=useNow(kt),At=at!==null&&St.isSameDay(ot,at),Tt=st.some(zt=>St.isSameDay(zt,ot)),Mt=St.isSameDay(ot,Et),Lt=(et=(nt=wt==null?void 0:wt.day)!=null?nt:yt==null?void 0:yt.Day)!=null?et:PickersDay,jt=useSlotProps({elementType:Lt,externalSlotProps:(rt=vt==null?void 0:vt.day)!=null?rt:bt==null?void 0:bt.day,additionalProps:_extends$r({disableHighlightToday:pt,showDaysOutsideCurrentMonth:gt,role:"gridcell",isAnimating:mt,"data-timestamp":St.toJsDate(ot).valueOf()},ht),ownerState:_extends$r({},it,{day:ot,selected:Tt})}),Rt=_objectWithoutPropertiesLoose$g(jt,_excluded2$4),$t=reactExports.useMemo(()=>dt||lt(ot),[dt,lt,ot]),xt=reactExports.useMemo(()=>St.getMonth(ot)!==ct,[St,ot,ct]),It=reactExports.useMemo(()=>{const zt=St.startOfMonth(St.setMonth(ot,ct));return gt?St.isSameDay(ot,St.startOfWeek(zt)):St.isSameDay(ot,zt)},[ct,ot,gt,St]),Ot=reactExports.useMemo(()=>{const zt=St.endOfMonth(St.setMonth(ot,ct));return gt?St.isSameDay(ot,St.endOfWeek(zt)):St.isSameDay(ot,zt)},[ct,ot,gt,St]);return jsxRuntimeExports.jsx(Lt,_extends$r({},Rt,{day:ot,disabled:$t,autoFocus:ut&&At,today:Mt,outsideCurrentMonth:xt,isFirstVisibleCell:It,isLastVisibleCell:Ot,selected:Tt,tabIndex:At?0:-1,"aria-selected":Tt,"aria-current":Mt?"date":void 0}))}function DayCalendar(tt){const et=useThemeProps({props:tt,name:"MuiDayCalendar"}),{onFocusedDayChange:nt,className:rt,currentMonth:it,selectedDays:ot,focusedDay:at,loading:st,onSelectedDaysChange:lt,onMonthSwitchingAnimationEnd:ct,readOnly:ut,reduceAnimations:ht,renderLoading:dt=()=>jsxRuntimeExports.jsx("span",{children:"..."}),slideDirection:pt,TransitionProps:mt,disablePast:gt,disableFuture:yt,minDate:bt,maxDate:wt,shouldDisableDate:vt,shouldDisableMonth:kt,shouldDisableYear:St,dayOfWeekFormatter:Et=defaultDayOfWeekFormatter,hasFocus:At,onFocusedViewChange:Tt,gridLabelId:Mt,displayWeekNumber:Lt,fixedWeekNumber:jt,autoFocus:Rt,timezone:$t}=et,xt=useNow($t),It=useUtils(),Ot=useUtilityClasses$b(et),Ut=useTheme().direction==="rtl",Wt=useIsDateDisabled({shouldDisableDate:vt,shouldDisableMonth:kt,shouldDisableYear:St,minDate:bt,maxDate:wt,disablePast:gt,disableFuture:yt,timezone:$t}),Ft=useLocaleText(),[Nt,Ct]=useControlled({name:"DayCalendar",state:"hasFocus",controlled:At,default:Rt??!1}),[Ht,Jt]=reactExports.useState(()=>at||xt),nn=useEventCallback(kn=>{ut||lt(kn)}),Yt=kn=>{Wt(kn)||(nt(kn),Jt(kn),Tt==null||Tt(!0),Ct(!0))},fn=useEventCallback((kn,dn)=>{switch(kn.key){case"ArrowUp":Yt(It.addDays(dn,-7)),kn.preventDefault();break;case"ArrowDown":Yt(It.addDays(dn,7)),kn.preventDefault();break;case"ArrowLeft":{const gn=It.addDays(dn,Ut?1:-1),Cn=It.addMonths(dn,Ut?1:-1),$n=findClosestEnabledDate({utils:It,date:gn,minDate:Ut?gn:It.startOfMonth(Cn),maxDate:Ut?It.endOfMonth(Cn):gn,isDateDisabled:Wt,timezone:$t});Yt($n||gn),kn.preventDefault();break}case"ArrowRight":{const gn=It.addDays(dn,Ut?-1:1),Cn=It.addMonths(dn,Ut?-1:1),$n=findClosestEnabledDate({utils:It,date:gn,minDate:Ut?It.startOfMonth(Cn):gn,maxDate:Ut?gn:It.endOfMonth(Cn),isDateDisabled:Wt,timezone:$t});Yt($n||gn),kn.preventDefault();break}case"Home":Yt(It.startOfWeek(dn)),kn.preventDefault();break;case"End":Yt(It.endOfWeek(dn)),kn.preventDefault();break;case"PageUp":Yt(It.addMonths(dn,1)),kn.preventDefault();break;case"PageDown":Yt(It.addMonths(dn,-1)),kn.preventDefault();break}}),cn=useEventCallback((kn,dn)=>Yt(dn)),_n=useEventCallback((kn,dn)=>{Nt&&It.isSameDay(Ht,dn)&&(Tt==null||Tt(!1))}),En=It.getMonth(it),an=reactExports.useMemo(()=>ot.filter(kn=>!!kn).map(kn=>It.startOfDay(kn)),[It,ot]),en=En,Tn=reactExports.useMemo(()=>reactExports.createRef(),[en]),Rn=It.startOfWeek(xt),An=reactExports.useMemo(()=>{const kn=It.startOfMonth(it),dn=It.endOfMonth(it);return Wt(Ht)||It.isAfterDay(Ht,dn)||It.isBeforeDay(Ht,kn)?findClosestEnabledDate({utils:It,date:Ht,minDate:kn,maxDate:dn,disablePast:gt,disableFuture:yt,isDateDisabled:Wt,timezone:$t}):Ht},[it,yt,gt,Ht,Wt,It,$t]),yn=reactExports.useMemo(()=>{const kn=It.setTimezone(it,$t),dn=It.getWeekArray(kn);let gn=It.addMonths(kn,1);for(;jt&&dn.length{dn.length{var gn;return jsxRuntimeExports.jsx(PickersCalendarWeekDayLabel,{variant:"caption",role:"columnheader","aria-label":It.format(It.addDays(Rn,dn),"weekday"),className:Ot.weekDayLabel,children:(gn=Et==null?void 0:Et(kn))!=null?gn:kn},kn+dn.toString())})]}),st?jsxRuntimeExports.jsx(PickersCalendarLoadingContainer,{className:Ot.loadingContainer,children:dt()}):jsxRuntimeExports.jsx(PickersCalendarSlideTransition,_extends$r({transKey:en,onExited:ct,reduceAnimations:ht,slideDirection:pt,className:clsx(rt,Ot.slideTransition)},mt,{nodeRef:Tn,children:jsxRuntimeExports.jsx(PickersCalendarWeekContainer,{ref:Tn,role:"rowgroup",className:Ot.monthContainer,children:yn.map((kn,dn)=>jsxRuntimeExports.jsxs(PickersCalendarWeek,{role:"row",className:Ot.weekContainer,"aria-rowindex":dn+1,children:[Lt&&jsxRuntimeExports.jsx(PickersCalendarWeekNumber,{className:Ot.weekNumber,role:"rowheader","aria-label":Ft.calendarWeekNumberAriaLabelText(It.getWeekNumber(kn[0])),children:Ft.calendarWeekNumberText(It.getWeekNumber(kn[0]))}),kn.map((gn,Cn)=>jsxRuntimeExports.jsx(WrappedDay,{parentProps:et,day:gn,selectedDays:an,focusableDay:An,onKeyDown:fn,onFocus:cn,onBlur:_n,onDaySelect:nn,isDateDisabled:Wt,currentMonthNumber:En,isViewFocused:Nt,"aria-colindex":Cn+1},gn.toString()))]},`week-${kn[0]}`))})}))]})}function getPickersMonthUtilityClass(tt){return generateUtilityClass("MuiPickersMonth",tt)}const pickersMonthClasses=generateUtilityClasses("MuiPickersMonth",["root","monthButton","disabled","selected"]),_excluded$p=["autoFocus","children","disabled","selected","value","tabIndex","onClick","onKeyDown","onFocus","onBlur","aria-current","monthsPerRow"],useUtilityClasses$a=tt=>{const{disabled:et,selected:nt,classes:rt}=tt;return composeClasses({root:["root"],monthButton:["monthButton",et&&"disabled",nt&&"selected"]},getPickersMonthUtilityClass,rt)},PickersMonthRoot=styled$1("div",{name:"MuiPickersMonth",slot:"Root",overridesResolver:(tt,et)=>[et.root]})(({ownerState:tt})=>({flexBasis:tt.monthsPerRow===3?"33.3%":"25%",display:"flex",alignItems:"center",justifyContent:"center"})),PickersMonthButton=styled$1("button",{name:"MuiPickersMonth",slot:"MonthButton",overridesResolver:(tt,et)=>[et.monthButton,{[`&.${pickersMonthClasses.disabled}`]:et.disabled},{[`&.${pickersMonthClasses.selected}`]:et.selected}]})(({theme:tt})=>_extends$r({color:"unset",backgroundColor:"transparent",border:0,outline:0},tt.typography.subtitle1,{margin:"8px 0",height:36,width:72,borderRadius:18,cursor:"pointer","&:focus":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.activeChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.action.active,tt.palette.action.hoverOpacity)},"&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.activeChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.action.active,tt.palette.action.hoverOpacity)},"&:disabled":{cursor:"auto",pointerEvents:"none"},[`&.${pickersMonthClasses.disabled}`]:{color:(tt.vars||tt).palette.text.secondary},[`&.${pickersMonthClasses.selected}`]:{color:(tt.vars||tt).palette.primary.contrastText,backgroundColor:(tt.vars||tt).palette.primary.main,"&:focus, &:hover":{backgroundColor:(tt.vars||tt).palette.primary.dark}}})),PickersMonth=reactExports.memo(function(et){const nt=useThemeProps({props:et,name:"MuiPickersMonth"}),{autoFocus:rt,children:it,disabled:ot,value:at,tabIndex:st,onClick:lt,onKeyDown:ct,onFocus:ut,onBlur:ht,"aria-current":dt}=nt,pt=_objectWithoutPropertiesLoose$g(nt,_excluded$p),mt=reactExports.useRef(null),gt=useUtilityClasses$a(nt);return useEnhancedEffect$1(()=>{if(rt){var yt;(yt=mt.current)==null||yt.focus()}},[rt]),jsxRuntimeExports.jsx(PickersMonthRoot,_extends$r({className:gt.root,ownerState:nt},pt,{children:jsxRuntimeExports.jsx(PickersMonthButton,{ref:mt,disabled:ot,type:"button",tabIndex:ot?-1:st,"aria-current":dt,onClick:yt=>lt(yt,at),onKeyDown:yt=>ct(yt,at),onFocus:yt=>ut(yt,at),onBlur:yt=>ht(yt,at),className:gt.monthButton,ownerState:nt,children:it})}))});function getMonthCalendarUtilityClass(tt){return generateUtilityClass("MuiMonthCalendar",tt)}generateUtilityClasses("MuiMonthCalendar",["root"]);const _excluded$o=["className","value","defaultValue","referenceDate","disabled","disableFuture","disablePast","maxDate","minDate","onChange","shouldDisableMonth","readOnly","disableHighlightToday","autoFocus","onMonthFocus","hasFocus","onFocusedViewChange","monthsPerRow","timezone"],useUtilityClasses$9=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getMonthCalendarUtilityClass,et)};function useMonthCalendarDefaultizedProps(tt,et){const nt=useUtils(),rt=useDefaultDates(),it=useThemeProps({props:tt,name:et});return _extends$r({disableFuture:!1,disablePast:!1},it,{minDate:applyDefaultDate(nt,it.minDate,rt.minDate),maxDate:applyDefaultDate(nt,it.maxDate,rt.maxDate)})}const MonthCalendarRoot=styled$1("div",{name:"MuiMonthCalendar",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"flex",flexWrap:"wrap",alignContent:"stretch",padding:"0 4px",width:320}),MonthCalendar=reactExports.forwardRef(function(et,nt){const rt=useMonthCalendarDefaultizedProps(et,"MuiMonthCalendar"),{className:it,value:ot,defaultValue:at,referenceDate:st,disabled:lt,disableFuture:ct,disablePast:ut,maxDate:ht,minDate:dt,onChange:pt,shouldDisableMonth:mt,readOnly:gt,disableHighlightToday:yt,autoFocus:bt=!1,onMonthFocus:wt,hasFocus:vt,onFocusedViewChange:kt,monthsPerRow:St=3,timezone:Et}=rt,At=_objectWithoutPropertiesLoose$g(rt,_excluded$o),{value:Tt,handleValueChange:Mt,timezone:Lt}=useControlledValueWithTimezone({name:"MonthCalendar",timezone:Et,value:ot,defaultValue:at,onChange:pt,valueManager:singleItemValueManager}),jt=useNow(Lt),Rt=useTheme$2(),$t=useUtils(),xt=reactExports.useMemo(()=>singleItemValueManager.getInitialReferenceValue({value:Tt,utils:$t,props:rt,timezone:Lt,referenceDate:st,granularity:SECTION_TYPE_GRANULARITY.month}),[]),It=rt,Ot=useUtilityClasses$9(It),zt=reactExports.useMemo(()=>$t.getMonth(jt),[$t,jt]),Ut=reactExports.useMemo(()=>Tt!=null?$t.getMonth(Tt):yt?null:$t.getMonth(xt),[Tt,$t,yt,xt]),[Wt,Ft]=reactExports.useState(()=>Ut||zt),[Nt,Ct]=useControlled({name:"MonthCalendar",state:"hasFocus",controlled:vt,default:bt??!1}),Ht=useEventCallback(En=>{Ct(En),kt&&kt(En)}),Jt=reactExports.useCallback(En=>{const an=$t.startOfMonth(ut&&$t.isAfter(jt,dt)?jt:dt),en=$t.startOfMonth(ct&&$t.isBefore(jt,ht)?jt:ht),Tn=$t.startOfMonth(En);return $t.isBefore(Tn,an)||$t.isAfter(Tn,en)?!0:mt?mt(Tn):!1},[ct,ut,ht,dt,jt,mt,$t]),nn=useEventCallback((En,an)=>{if(gt)return;const en=$t.setMonth(Tt??xt,an);Mt(en)}),Yt=useEventCallback(En=>{Jt($t.setMonth(Tt??xt,En))||(Ft(En),Ht(!0),wt&&wt(En))});reactExports.useEffect(()=>{Ft(En=>Ut!==null&&En!==Ut?Ut:En)},[Ut]);const fn=useEventCallback((En,an)=>{switch(En.key){case"ArrowUp":Yt((12+an-3)%12),En.preventDefault();break;case"ArrowDown":Yt((12+an+3)%12),En.preventDefault();break;case"ArrowLeft":Yt((12+an+(Rt.direction==="ltr"?-1:1))%12),En.preventDefault();break;case"ArrowRight":Yt((12+an+(Rt.direction==="ltr"?1:-1))%12),En.preventDefault();break}}),cn=useEventCallback((En,an)=>{Yt(an)}),_n=useEventCallback((En,an)=>{Wt===an&&Ht(!1)});return jsxRuntimeExports.jsx(MonthCalendarRoot,_extends$r({ref:nt,className:clsx(Ot.root,it),ownerState:It},At,{children:getMonthsInYear($t,Tt??xt).map(En=>{const an=$t.getMonth(En),en=$t.format(En,"monthShort"),Tn=an===Ut,Rn=lt||Jt(En);return jsxRuntimeExports.jsx(PickersMonth,{selected:Tn,value:an,onClick:nn,onKeyDown:fn,autoFocus:Nt&&an===Wt,disabled:Rn,tabIndex:an===Wt?0:-1,onFocus:cn,onBlur:_n,"aria-current":zt===an?"date":void 0,monthsPerRow:St,children:en},en)})}))});function getPickersYearUtilityClass(tt){return generateUtilityClass("MuiPickersYear",tt)}const pickersYearClasses=generateUtilityClasses("MuiPickersYear",["root","yearButton","selected","disabled"]),_excluded$n=["autoFocus","className","children","disabled","selected","value","tabIndex","onClick","onKeyDown","onFocus","onBlur","aria-current","yearsPerRow"],useUtilityClasses$8=tt=>{const{disabled:et,selected:nt,classes:rt}=tt;return composeClasses({root:["root"],yearButton:["yearButton",et&&"disabled",nt&&"selected"]},getPickersYearUtilityClass,rt)},PickersYearRoot=styled$1("div",{name:"MuiPickersYear",slot:"Root",overridesResolver:(tt,et)=>[et.root]})(({ownerState:tt})=>({flexBasis:tt.yearsPerRow===3?"33.3%":"25%",display:"flex",alignItems:"center",justifyContent:"center"})),PickersYearButton=styled$1("button",{name:"MuiPickersYear",slot:"YearButton",overridesResolver:(tt,et)=>[et.yearButton,{[`&.${pickersYearClasses.disabled}`]:et.disabled},{[`&.${pickersYearClasses.selected}`]:et.selected}]})(({theme:tt})=>_extends$r({color:"unset",backgroundColor:"transparent",border:0,outline:0},tt.typography.subtitle1,{margin:"8px 0",height:36,width:72,borderRadius:18,cursor:"pointer","&:focus":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.activeChannel} / ${tt.vars.palette.action.focusOpacity})`:alpha$1(tt.palette.action.active,tt.palette.action.focusOpacity)},"&:hover":{backgroundColor:tt.vars?`rgba(${tt.vars.palette.action.activeChannel} / ${tt.vars.palette.action.hoverOpacity})`:alpha$1(tt.palette.action.active,tt.palette.action.hoverOpacity)},"&:disabled":{cursor:"auto",pointerEvents:"none"},[`&.${pickersYearClasses.disabled}`]:{color:(tt.vars||tt).palette.text.secondary},[`&.${pickersYearClasses.selected}`]:{color:(tt.vars||tt).palette.primary.contrastText,backgroundColor:(tt.vars||tt).palette.primary.main,"&:focus, &:hover":{backgroundColor:(tt.vars||tt).palette.primary.dark}}})),PickersYear=reactExports.memo(function(et){const nt=useThemeProps({props:et,name:"MuiPickersYear"}),{autoFocus:rt,className:it,children:ot,disabled:at,value:st,tabIndex:lt,onClick:ct,onKeyDown:ut,onFocus:ht,onBlur:dt,"aria-current":pt}=nt,mt=_objectWithoutPropertiesLoose$g(nt,_excluded$n),gt=reactExports.useRef(null),yt=useUtilityClasses$8(nt);return reactExports.useEffect(()=>{rt&>.current.focus()},[rt]),jsxRuntimeExports.jsx(PickersYearRoot,_extends$r({className:clsx(yt.root,it),ownerState:nt},mt,{children:jsxRuntimeExports.jsx(PickersYearButton,{ref:gt,disabled:at,type:"button",tabIndex:at?-1:lt,"aria-current":pt,onClick:bt=>ct(bt,st),onKeyDown:bt=>ut(bt,st),onFocus:bt=>ht(bt,st),onBlur:bt=>dt(bt,st),className:yt.yearButton,ownerState:nt,children:ot})}))});function getYearCalendarUtilityClass(tt){return generateUtilityClass("MuiYearCalendar",tt)}generateUtilityClasses("MuiYearCalendar",["root"]);const _excluded$m=["autoFocus","className","value","defaultValue","referenceDate","disabled","disableFuture","disablePast","maxDate","minDate","onChange","readOnly","shouldDisableYear","disableHighlightToday","onYearFocus","hasFocus","onFocusedViewChange","yearsPerRow","timezone"],useUtilityClasses$7=tt=>{const{classes:et}=tt;return composeClasses({root:["root"]},getYearCalendarUtilityClass,et)};function useYearCalendarDefaultizedProps(tt,et){const nt=useUtils(),rt=useDefaultDates(),it=useThemeProps({props:tt,name:et});return _extends$r({disablePast:!1,disableFuture:!1},it,{minDate:applyDefaultDate(nt,it.minDate,rt.minDate),maxDate:applyDefaultDate(nt,it.maxDate,rt.maxDate)})}const YearCalendarRoot=styled$1("div",{name:"MuiYearCalendar",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"flex",flexDirection:"row",flexWrap:"wrap",overflowY:"auto",height:"100%",padding:"0 4px",width:320,maxHeight:304}),YearCalendar=reactExports.forwardRef(function(et,nt){const rt=useYearCalendarDefaultizedProps(et,"MuiYearCalendar"),{autoFocus:it,className:ot,value:at,defaultValue:st,referenceDate:lt,disabled:ct,disableFuture:ut,disablePast:ht,maxDate:dt,minDate:pt,onChange:mt,readOnly:gt,shouldDisableYear:yt,disableHighlightToday:bt,onYearFocus:wt,hasFocus:vt,onFocusedViewChange:kt,yearsPerRow:St=3,timezone:Et}=rt,At=_objectWithoutPropertiesLoose$g(rt,_excluded$m),{value:Tt,handleValueChange:Mt,timezone:Lt}=useControlledValueWithTimezone({name:"YearCalendar",timezone:Et,value:at,defaultValue:st,onChange:mt,valueManager:singleItemValueManager}),jt=useNow(Lt),Rt=useTheme$2(),$t=useUtils(),xt=reactExports.useMemo(()=>singleItemValueManager.getInitialReferenceValue({value:Tt,utils:$t,props:rt,timezone:Lt,referenceDate:lt,granularity:SECTION_TYPE_GRANULARITY.year}),[]),It=rt,Ot=useUtilityClasses$7(It),zt=reactExports.useMemo(()=>$t.getYear(jt),[$t,jt]),Ut=reactExports.useMemo(()=>Tt!=null?$t.getYear(Tt):bt?null:$t.getYear(xt),[Tt,$t,bt,xt]),[Wt,Ft]=reactExports.useState(()=>Ut||zt),[Nt,Ct]=useControlled({name:"YearCalendar",state:"hasFocus",controlled:vt,default:it??!1}),Ht=useEventCallback(en=>{Ct(en),kt&&kt(en)}),Jt=reactExports.useCallback(en=>{if(ht&&$t.isBeforeYear(en,jt)||ut&&$t.isAfterYear(en,jt)||pt&&$t.isBeforeYear(en,pt)||dt&&$t.isAfterYear(en,dt))return!0;if(!yt)return!1;const Tn=$t.startOfYear(en);return yt(Tn)},[ut,ht,dt,pt,jt,yt,$t]),nn=useEventCallback((en,Tn)=>{if(gt)return;const Rn=$t.setYear(Tt??xt,Tn);Mt(Rn)}),Yt=useEventCallback(en=>{Jt($t.setYear(Tt??xt,en))||(Ft(en),Ht(!0),wt==null||wt(en))});reactExports.useEffect(()=>{Ft(en=>Ut!==null&&en!==Ut?Ut:en)},[Ut]);const fn=useEventCallback((en,Tn)=>{switch(en.key){case"ArrowUp":Yt(Tn-St),en.preventDefault();break;case"ArrowDown":Yt(Tn+St),en.preventDefault();break;case"ArrowLeft":Yt(Tn+(Rt.direction==="ltr"?-1:1)),en.preventDefault();break;case"ArrowRight":Yt(Tn+(Rt.direction==="ltr"?1:-1)),en.preventDefault();break}}),cn=useEventCallback((en,Tn)=>{Yt(Tn)}),_n=useEventCallback((en,Tn)=>{Wt===Tn&&Ht(!1)}),En=reactExports.useRef(null),an=useForkRef(nt,En);return reactExports.useEffect(()=>{if(it||En.current===null)return;const en=En.current.querySelector('[tabindex="0"]');if(!en)return;const Tn=en.offsetHeight,Rn=en.offsetTop,An=En.current.clientHeight,yn=En.current.scrollTop,kn=Rn+Tn;Tn>An||Rn{const Tn=$t.getYear(en),Rn=Tn===Ut,An=ct||Jt(en);return jsxRuntimeExports.jsx(PickersYear,{selected:Rn,value:Tn,onClick:nn,onKeyDown:fn,autoFocus:Nt&&Tn===Wt,disabled:An,tabIndex:Tn===Wt?0:-1,onFocus:cn,onBlur:_n,"aria-current":zt===Tn?"date":void 0,yearsPerRow:St,children:$t.format(en,"year")},$t.format(en,"year"))})}))}),getPickersCalendarHeaderUtilityClass=tt=>generateUtilityClass("MuiPickersCalendarHeader",tt),pickersCalendarHeaderClasses=generateUtilityClasses("MuiPickersCalendarHeader",["root","labelContainer","label","switchViewButton","switchViewIcon"]),_excluded$l=["ownerState"],useUtilityClasses$6=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],labelContainer:["labelContainer"],label:["label"],switchViewButton:["switchViewButton"],switchViewIcon:["switchViewIcon"]},getPickersCalendarHeaderUtilityClass,et)},PickersCalendarHeaderRoot=styled$1("div",{name:"MuiPickersCalendarHeader",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"flex",alignItems:"center",marginTop:16,marginBottom:8,paddingLeft:24,paddingRight:12,maxHeight:30,minHeight:30}),PickersCalendarHeaderLabelContainer=styled$1("div",{name:"MuiPickersCalendarHeader",slot:"LabelContainer",overridesResolver:(tt,et)=>et.labelContainer})(({theme:tt})=>_extends$r({display:"flex",overflow:"hidden",alignItems:"center",cursor:"pointer",marginRight:"auto"},tt.typography.body1,{fontWeight:tt.typography.fontWeightMedium})),PickersCalendarHeaderLabel=styled$1("div",{name:"MuiPickersCalendarHeader",slot:"Label",overridesResolver:(tt,et)=>et.label})({marginRight:6}),PickersCalendarHeaderSwitchViewButton=styled$1(IconButton$2,{name:"MuiPickersCalendarHeader",slot:"SwitchViewButton",overridesResolver:(tt,et)=>et.switchViewButton})(({ownerState:tt})=>_extends$r({marginRight:"auto"},tt.view==="year"&&{[`.${pickersCalendarHeaderClasses.switchViewIcon}`]:{transform:"rotate(180deg)"}})),PickersCalendarHeaderSwitchViewIcon=styled$1(ArrowDropDownIcon,{name:"MuiPickersCalendarHeader",slot:"SwitchViewIcon",overridesResolver:(tt,et)=>et.switchViewIcon})(({theme:tt})=>({willChange:"transform",transition:tt.transitions.create("transform"),transform:"rotate(0deg)"}));function PickersCalendarHeader(tt){var et,nt;const rt=useLocaleText(),it=useUtils(),ot=useThemeProps({props:tt,name:"MuiPickersCalendarHeader"}),{slots:at,slotProps:st,currentMonth:lt,disabled:ct,disableFuture:ut,disablePast:ht,maxDate:dt,minDate:pt,onMonthChange:mt,onViewChange:gt,view:yt,reduceAnimations:bt,views:wt,labelId:vt,timezone:kt}=ot,St=ot,Et=useUtilityClasses$6(ot),At=(et=at==null?void 0:at.switchViewButton)!=null?et:PickersCalendarHeaderSwitchViewButton,Tt=useSlotProps({elementType:At,externalSlotProps:st==null?void 0:st.switchViewButton,additionalProps:{size:"small","aria-label":rt.calendarViewSwitchingButtonAriaLabel(yt)},ownerState:St,className:Et.switchViewButton}),Mt=(nt=at==null?void 0:at.switchViewIcon)!=null?nt:PickersCalendarHeaderSwitchViewIcon,Lt=useSlotProps({elementType:Mt,externalSlotProps:st==null?void 0:st.switchViewIcon,ownerState:void 0,className:Et.switchViewIcon}),jt=_objectWithoutPropertiesLoose$g(Lt,_excluded$l),Rt=()=>mt(it.addMonths(lt,1),"left"),$t=()=>mt(it.addMonths(lt,-1),"right"),xt=useNextMonthDisabled(lt,{disableFuture:ut,maxDate:dt,timezone:kt}),It=usePreviousMonthDisabled(lt,{disablePast:ht,minDate:pt,timezone:kt}),Ot=()=>{if(!(wt.length===1||!gt||ct))if(wt.length===2)gt(wt.find(zt=>zt!==yt)||wt[0]);else{const zt=wt.indexOf(yt)!==0?0:1;gt(wt[zt])}};return wt.length===1&&wt[0]==="year"?null:jsxRuntimeExports.jsxs(PickersCalendarHeaderRoot,{ownerState:St,className:Et.root,children:[jsxRuntimeExports.jsxs(PickersCalendarHeaderLabelContainer,{role:"presentation",onClick:Ot,ownerState:St,"aria-live":"polite",className:Et.labelContainer,children:[jsxRuntimeExports.jsx(PickersFadeTransitionGroup,{reduceAnimations:bt,transKey:it.format(lt,"monthAndYear"),children:jsxRuntimeExports.jsx(PickersCalendarHeaderLabel,{id:vt,ownerState:St,className:Et.label,children:it.format(lt,"monthAndYear")})}),wt.length>1&&!ct&&jsxRuntimeExports.jsx(At,_extends$r({},Tt,{children:jsxRuntimeExports.jsx(Mt,_extends$r({},jt))}))]}),jsxRuntimeExports.jsx(Fade$1,{in:yt==="day",children:jsxRuntimeExports.jsx(PickersArrowSwitcher,{slots:at,slotProps:st,onGoToPrevious:$t,isPreviousDisabled:It,previousLabel:rt.previousMonth,onGoToNext:Rt,isNextDisabled:xt,nextLabel:rt.nextMonth})})]})}const defaultReduceAnimations=typeof navigator<"u"&&/(android)/i.test(navigator.userAgent),getDateCalendarUtilityClass=tt=>generateUtilityClass("MuiDateCalendar",tt);generateUtilityClasses("MuiDateCalendar",["root","viewTransitionContainer"]);const _excluded$k=["autoFocus","onViewChange","value","defaultValue","referenceDate","disableFuture","disablePast","defaultCalendarMonth","onChange","onYearChange","onMonthChange","reduceAnimations","shouldDisableDate","shouldDisableMonth","shouldDisableYear","view","views","openTo","className","disabled","readOnly","minDate","maxDate","disableHighlightToday","focusedView","onFocusedViewChange","showDaysOutsideCurrentMonth","fixedWeekNumber","dayOfWeekFormatter","components","componentsProps","slots","slotProps","loading","renderLoading","displayWeekNumber","yearsPerRow","monthsPerRow","timezone"],useUtilityClasses$5=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],viewTransitionContainer:["viewTransitionContainer"]},getDateCalendarUtilityClass,et)};function useDateCalendarDefaultizedProps(tt,et){const nt=useUtils(),rt=useDefaultDates(),it=useThemeProps({props:tt,name:et});return _extends$r({loading:!1,disablePast:!1,disableFuture:!1,openTo:"day",views:["year","day"],reduceAnimations:defaultReduceAnimations,renderLoading:()=>jsxRuntimeExports.jsx("span",{children:"..."})},it,{minDate:applyDefaultDate(nt,it.minDate,rt.minDate),maxDate:applyDefaultDate(nt,it.maxDate,rt.maxDate)})}const DateCalendarRoot=styled$1(PickerViewRoot,{name:"MuiDateCalendar",slot:"Root",overridesResolver:(tt,et)=>et.root})({display:"flex",flexDirection:"column"}),DateCalendarViewTransitionContainer=styled$1(PickersFadeTransitionGroup,{name:"MuiDateCalendar",slot:"ViewTransitionContainer",overridesResolver:(tt,et)=>et.viewTransitionContainer})({}),DateCalendar=reactExports.forwardRef(function(et,nt){const rt=useUtils(),it=useId(),ot=useDateCalendarDefaultizedProps(et,"MuiDateCalendar"),{autoFocus:at,onViewChange:st,value:lt,defaultValue:ct,referenceDate:ut,disableFuture:ht,disablePast:dt,defaultCalendarMonth:pt,onChange:mt,onYearChange:gt,onMonthChange:yt,reduceAnimations:bt,shouldDisableDate:wt,shouldDisableMonth:vt,shouldDisableYear:kt,view:St,views:Et,openTo:At,className:Tt,disabled:Mt,readOnly:Lt,minDate:jt,maxDate:Rt,disableHighlightToday:$t,focusedView:xt,onFocusedViewChange:It,showDaysOutsideCurrentMonth:Ot,fixedWeekNumber:zt,dayOfWeekFormatter:Ut,components:Wt,componentsProps:Ft,slots:Nt,slotProps:Ct,loading:Ht,renderLoading:Jt,displayWeekNumber:nn,yearsPerRow:Yt,monthsPerRow:fn,timezone:cn}=ot,_n=_objectWithoutPropertiesLoose$g(ot,_excluded$k),{value:En,handleValueChange:an,timezone:en}=useControlledValueWithTimezone({name:"DateCalendar",timezone:cn,value:lt,defaultValue:ct,onChange:mt,valueManager:singleItemValueManager}),{view:Tn,setView:Rn,focusedView:An,setFocusedView:yn,goToNextView:kn,setValueAndGoToNextView:dn}=useViews({view:St,views:Et,openTo:At,onChange:an,onViewChange:st,autoFocus:at,focusedView:xt,onFocusedViewChange:It}),{referenceDate:gn,calendarState:Cn,changeFocusedDay:$n,changeMonth:un,handleChangeMonth:rn,isDateDisabled:Sn,onMonthSwitchingAnimationEnd:Mn}=useCalendarState({value:En,defaultCalendarMonth:pt,referenceDate:ut,reduceAnimations:bt,onMonthChange:yt,minDate:jt,maxDate:Rt,shouldDisableDate:wt,disablePast:dt,disableFuture:ht,timezone:en}),Nn=useEventCallback(Vn=>{const pr=rt.startOfMonth(Vn),fr=rt.endOfMonth(Vn),Er=Sn(Vn)?findClosestEnabledDate({utils:rt,date:Vn,minDate:rt.isBefore(jt,pr)?pr:jt,maxDate:rt.isAfter(Rt,fr)?fr:Rt,disablePast:dt,disableFuture:ht,isDateDisabled:Sn,timezone:en}):Vn;Er?(dn(Er,"finish"),yt==null||yt(pr)):(kn(),un(pr)),$n(Er,!0)}),hn=useEventCallback(Vn=>{const pr=rt.startOfYear(Vn),fr=rt.endOfYear(Vn),Er=Sn(Vn)?findClosestEnabledDate({utils:rt,date:Vn,minDate:rt.isBefore(jt,pr)?pr:jt,maxDate:rt.isAfter(Rt,fr)?fr:Rt,disablePast:dt,disableFuture:ht,isDateDisabled:Sn,timezone:en}):Vn;Er?(dn(Er,"finish"),gt==null||gt(Er)):(kn(),un(pr)),$n(Er,!0)}),Qt=useEventCallback(Vn=>an(Vn&&mergeDateAndTime(rt,Vn,En??gn),"finish"));reactExports.useEffect(()=>{En!=null&&rt.isValid(En)&&un(En)},[En]);const Zt=ot,wn=useUtilityClasses$5(Zt),On={disablePast:dt,disableFuture:ht,maxDate:Rt,minDate:jt},jn=Mt&&En||jt,Un=Mt&&En||Rt,tr={disableHighlightToday:$t,readOnly:Lt,disabled:Mt,timezone:en},qn=`${it}-grid-label`,Xn=An!==null,Wn=reactExports.useRef(Tn);reactExports.useEffect(()=>{Wn.current!==Tn&&(An===Wn.current&&yn(Tn,!0),Wn.current=Tn)},[An,yn,Tn]);const Zn=reactExports.useMemo(()=>[En],[En]);return jsxRuntimeExports.jsxs(DateCalendarRoot,_extends$r({ref:nt,className:clsx(wn.root,Tt),ownerState:Zt},_n,{children:[jsxRuntimeExports.jsx(PickersCalendarHeader,{views:Et,view:Tn,currentMonth:Cn.currentMonth,onViewChange:Rn,onMonthChange:(Vn,pr)=>rn({newMonth:Vn,direction:pr}),minDate:jn,maxDate:Un,disabled:Mt,disablePast:dt,disableFuture:ht,reduceAnimations:bt,labelId:qn,slots:Nt,slotProps:Ct,timezone:en}),jsxRuntimeExports.jsx(DateCalendarViewTransitionContainer,{reduceAnimations:bt,className:wn.viewTransitionContainer,transKey:Tn,ownerState:Zt,children:jsxRuntimeExports.jsxs("div",{children:[Tn==="year"&&jsxRuntimeExports.jsx(YearCalendar,_extends$r({},On,tr,{value:En,onChange:hn,shouldDisableYear:kt,hasFocus:Xn,onFocusedViewChange:Vn=>yn("year",Vn),yearsPerRow:Yt,referenceDate:gn})),Tn==="month"&&jsxRuntimeExports.jsx(MonthCalendar,_extends$r({},On,tr,{hasFocus:Xn,className:Tt,value:En,onChange:Nn,shouldDisableMonth:vt,onFocusedViewChange:Vn=>yn("month",Vn),monthsPerRow:fn,referenceDate:gn})),Tn==="day"&&jsxRuntimeExports.jsx(DayCalendar,_extends$r({},Cn,On,tr,{onMonthSwitchingAnimationEnd:Mn,onFocusedDayChange:$n,reduceAnimations:bt,selectedDays:Zn,onSelectedDaysChange:Qt,shouldDisableDate:wt,shouldDisableMonth:vt,shouldDisableYear:kt,hasFocus:Xn,onFocusedViewChange:Vn=>yn("day",Vn),gridLabelId:qn,showDaysOutsideCurrentMonth:Ot,fixedWeekNumber:zt,dayOfWeekFormatter:Ut,displayWeekNumber:nn,components:Wt,componentsProps:Ft,slots:Nt,slotProps:Ct,loading:Ht,renderLoading:Jt}))]})})]}))});function getPickersToolbarUtilityClass(tt){return generateUtilityClass("MuiPickersToolbar",tt)}generateUtilityClasses("MuiPickersToolbar",["root","content"]);const useUtilityClasses$4=tt=>{const{classes:et,isLandscape:nt}=tt;return composeClasses({root:["root"],content:["content"],penIconButton:["penIconButton",nt&&"penIconButtonLandscape"]},getPickersToolbarUtilityClass,et)},PickersToolbarRoot=styled$1("div",{name:"MuiPickersToolbar",slot:"Root",overridesResolver:(tt,et)=>et.root})(({theme:tt,ownerState:et})=>_extends$r({display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"space-between",padding:tt.spacing(2,3)},et.isLandscape&&{height:"auto",maxWidth:160,padding:16,justifyContent:"flex-start",flexWrap:"wrap"})),PickersToolbarContent=styled$1(Grid$1,{name:"MuiPickersToolbar",slot:"Content",overridesResolver:(tt,et)=>et.content})(({ownerState:tt})=>_extends$r({flex:1},!tt.isLandscape&&{alignItems:"center"})),PickersToolbar=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiPickersToolbar"}),{children:it,className:ot,isLandscape:at,landscapeDirection:st="column",toolbarTitle:lt,hidden:ct,titleId:ut}=rt,ht=rt,dt=useUtilityClasses$4(ht);return ct?null:jsxRuntimeExports.jsxs(PickersToolbarRoot,{ref:nt,className:clsx(dt.root,ot),ownerState:ht,children:[jsxRuntimeExports.jsx(Typography$1,{color:"text.secondary",variant:"overline",id:ut,children:lt}),jsxRuntimeExports.jsx(PickersToolbarContent,{container:!0,justifyContent:at?"flex-start":"space-between",className:dt.content,ownerState:ht,direction:at?st:"row",alignItems:at?"flex-start":"flex-end",children:it})]})});function getDatePickerToolbarUtilityClass(tt){return generateUtilityClass("MuiDatePickerToolbar",tt)}generateUtilityClasses("MuiDatePickerToolbar",["root","title"]);const _excluded$j=["value","isLandscape","onChange","toolbarFormat","toolbarPlaceholder","views"],useUtilityClasses$3=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],title:["title"]},getDatePickerToolbarUtilityClass,et)},DatePickerToolbarRoot=styled$1(PickersToolbar,{name:"MuiDatePickerToolbar",slot:"Root",overridesResolver:(tt,et)=>et.root})({}),DatePickerToolbarTitle=styled$1(Typography$1,{name:"MuiDatePickerToolbar",slot:"Title",overridesResolver:(tt,et)=>et.title})(({ownerState:tt})=>_extends$r({},tt.isLandscape&&{margin:"auto 16px auto auto"})),DatePickerToolbar=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiDatePickerToolbar"}),{value:it,isLandscape:ot,toolbarFormat:at,toolbarPlaceholder:st="––",views:lt}=rt,ct=_objectWithoutPropertiesLoose$g(rt,_excluded$j),ut=useUtils(),ht=useLocaleText(),dt=useUtilityClasses$3(rt),pt=reactExports.useMemo(()=>{if(!it)return st;const gt=resolveDateFormat(ut,{format:at,views:lt},!0);return ut.formatByString(it,gt)},[it,at,st,ut,lt]),mt=rt;return jsxRuntimeExports.jsx(DatePickerToolbarRoot,_extends$r({ref:nt,toolbarTitle:ht.datePickerToolbarTitle,isLandscape:ot,className:dt.root},ct,{children:jsxRuntimeExports.jsx(DatePickerToolbarTitle,{variant:"h4",align:ot?"left":"center",ownerState:mt,className:dt.title,children:pt})}))});function useDatePickerDefaultizedProps(tt,et){var nt,rt,it,ot;const at=useUtils(),st=useDefaultDates(),lt=useThemeProps({props:tt,name:et}),ct=reactExports.useMemo(()=>{var ht;return((ht=lt.localeText)==null?void 0:ht.toolbarTitle)==null?lt.localeText:_extends$r({},lt.localeText,{datePickerToolbarTitle:lt.localeText.toolbarTitle})},[lt.localeText]),ut=(nt=lt.slots)!=null?nt:uncapitalizeObjectKeys(lt.components);return _extends$r({},lt,{localeText:ct},applyDefaultViewProps({views:lt.views,openTo:lt.openTo,defaultViews:["year","day"],defaultOpenTo:"day"}),{disableFuture:(rt=lt.disableFuture)!=null?rt:!1,disablePast:(it=lt.disablePast)!=null?it:!1,minDate:applyDefaultDate(at,lt.minDate,st.minDate),maxDate:applyDefaultDate(at,lt.maxDate,st.maxDate),slots:_extends$r({toolbar:DatePickerToolbar},ut),slotProps:(ot=lt.slotProps)!=null?ot:lt.componentsProps})}const PickersModalDialogRoot=styled$1(MuiDialog)({[`& .${dialogClasses$1.container}`]:{outline:0},[`& .${dialogClasses$1.paper}`]:{outline:0,minWidth:DIALOG_WIDTH}}),PickersModalDialogContent=styled$1(DialogContent$1)({"&:first-of-type":{padding:0}});function PickersModalDialog(tt){var et,nt;const{children:rt,onDismiss:it,open:ot,slots:at,slotProps:st}=tt,lt=(et=at==null?void 0:at.dialog)!=null?et:PickersModalDialogRoot,ct=(nt=at==null?void 0:at.mobileTransition)!=null?nt:Fade$1;return jsxRuntimeExports.jsx(lt,_extends$r({open:ot,onClose:it},st==null?void 0:st.dialog,{TransitionComponent:ct,TransitionProps:st==null?void 0:st.mobileTransition,PaperComponent:at==null?void 0:at.mobilePaper,PaperProps:st==null?void 0:st.mobilePaper,children:jsxRuntimeExports.jsx(PickersModalDialogContent,{children:rt})}))}function getPickersPopperUtilityClass(tt){return generateUtilityClass("MuiPickersPopper",tt)}generateUtilityClasses("MuiPickersPopper",["root","paper"]);const useUtilityClasses$2=tt=>{const{classes:et}=tt;return composeClasses({root:["root"],paper:["paper"]},getPickersPopperUtilityClass,et)},PickersPopperRoot=styled$1(MuiPopper,{name:"MuiPickersPopper",slot:"Root",overridesResolver:(tt,et)=>et.root})(({theme:tt})=>({zIndex:tt.zIndex.modal})),PickersPopperPaper=styled$1(Paper$1,{name:"MuiPickersPopper",slot:"Paper",overridesResolver:(tt,et)=>et.paper})(({ownerState:tt})=>_extends$r({transformOrigin:"top center",outline:0},tt.placement==="top"&&{transformOrigin:"bottom center"}));function clickedRootScrollbar(tt,et){return et.documentElement.clientWidth{if(!tt)return;function lt(){ot.current=!0}return document.addEventListener("mousedown",lt,!0),document.addEventListener("touchstart",lt,!0),()=>{document.removeEventListener("mousedown",lt,!0),document.removeEventListener("touchstart",lt,!0),ot.current=!1}},[tt]);const at=useEventCallback(lt=>{if(!ot.current)return;const ct=rt.current;rt.current=!1;const ut=ownerDocument(it.current);if(!it.current||"clientX"in lt&&clickedRootScrollbar(lt,ut))return;if(nt.current){nt.current=!1;return}let ht;lt.composedPath?ht=lt.composedPath().indexOf(it.current)>-1:ht=!ut.documentElement.contains(lt.target)||it.current.contains(lt.target),!ht&&!ct&&et(lt)}),st=()=>{rt.current=!0};return reactExports.useEffect(()=>{if(tt){const lt=ownerDocument(it.current),ct=()=>{nt.current=!0};return lt.addEventListener("touchstart",at),lt.addEventListener("touchmove",ct),()=>{lt.removeEventListener("touchstart",at),lt.removeEventListener("touchmove",ct)}}},[tt,at]),reactExports.useEffect(()=>{if(tt){const lt=ownerDocument(it.current);return lt.addEventListener("click",at),()=>{lt.removeEventListener("click",at),rt.current=!1}}},[tt,at]),[it,st,st]}function PickersPopper(tt){var et,nt,rt,it;const ot=useThemeProps({props:tt,name:"MuiPickersPopper"}),{anchorEl:at,children:st,containerRef:lt=null,shouldRestoreFocus:ct,onBlur:ut,onDismiss:ht,open:dt,role:pt,placement:mt,slots:gt,slotProps:yt}=ot;reactExports.useEffect(()=>{function zt(Ut){dt&&(Ut.key==="Escape"||Ut.key==="Esc")&&ht()}return document.addEventListener("keydown",zt),()=>{document.removeEventListener("keydown",zt)}},[ht,dt]);const bt=reactExports.useRef(null);reactExports.useEffect(()=>{pt==="tooltip"||ct&&!ct()||(dt?bt.current=getActiveElement(document):bt.current&&bt.current instanceof HTMLElement&&setTimeout(()=>{bt.current instanceof HTMLElement&&bt.current.focus()}))},[dt,pt,ct]);const[wt,vt,kt]=useClickAwayListener(dt,ut??ht),St=reactExports.useRef(null),Et=useForkRef(St,lt),At=useForkRef(Et,wt),Tt=ot,Mt=useUtilityClasses$2(Tt),Lt=zt=>{zt.key==="Escape"&&(zt.stopPropagation(),ht())},jt=(et=gt==null?void 0:gt.desktopTransition)!=null?et:Grow$1,Rt=(nt=gt==null?void 0:gt.desktopTrapFocus)!=null?nt:FocusTrap,$t=(rt=gt==null?void 0:gt.desktopPaper)!=null?rt:PickersPopperPaper,xt=useSlotProps({elementType:$t,externalSlotProps:yt==null?void 0:yt.desktopPaper,additionalProps:{tabIndex:-1,elevation:8,ref:At},className:Mt.paper,ownerState:{}}),It=(it=gt==null?void 0:gt.popper)!=null?it:PickersPopperRoot,Ot=useSlotProps({elementType:It,externalSlotProps:yt==null?void 0:yt.popper,additionalProps:{transition:!0,role:pt,open:dt,anchorEl:at,placement:mt,onKeyDown:Lt},className:Mt.root,ownerState:ot});return jsxRuntimeExports.jsx(It,_extends$r({},Ot,{children:({TransitionProps:zt,placement:Ut})=>jsxRuntimeExports.jsx(Rt,_extends$r({open:dt,disableAutoFocus:!0,disableRestoreFocus:!0,disableEnforceFocus:pt==="tooltip",isEnabled:()=>!0},yt==null?void 0:yt.desktopTrapFocus,{children:jsxRuntimeExports.jsx(jt,_extends$r({},zt,yt==null?void 0:yt.desktopTransition,{children:jsxRuntimeExports.jsx($t,_extends$r({},xt,{onClick:Wt=>{var Ft;vt(Wt),(Ft=xt.onClick)==null||Ft.call(xt,Wt)},onTouchStart:Wt=>{var Ft;kt(Wt),(Ft=xt.onTouchStart)==null||Ft.call(xt,Wt)},ownerState:_extends$r({},Tt,{placement:Ut}),children:st}))}))}))}))}const useOpenState=({open:tt,onOpen:et,onClose:nt})=>{const rt=reactExports.useRef(typeof tt=="boolean").current,[it,ot]=reactExports.useState(!1);reactExports.useEffect(()=>{if(rt){if(typeof tt!="boolean")throw new Error("You must not mix controlling and uncontrolled mode for `open` prop");ot(tt)}},[rt,tt]);const at=reactExports.useCallback(st=>{rt||ot(st),st&&et&&et(),!st&&nt&&nt()},[rt,et,nt]);return{isOpen:it,setIsOpen:at}},shouldPublishValue=tt=>{const{action:et,hasChanged:nt,dateState:rt,isControlled:it}=tt,ot=!it&&!rt.hasBeenModifiedSinceMount;return et.name==="setValueFromField"?!0:et.name==="setValueFromAction"?ot&&["accept","today","clear"].includes(et.pickerAction)?!0:nt(rt.lastPublishedValue):et.name==="setValueFromView"&&et.selectionState!=="shallow"||et.name==="setValueFromShortcut"&&et.changeImportance==="accept"?ot?!0:nt(rt.lastPublishedValue):!1},shouldCommitValue=tt=>{const{action:et,hasChanged:nt,dateState:rt,isControlled:it,closeOnSelect:ot}=tt,at=!it&&!rt.hasBeenModifiedSinceMount;return et.name==="setValueFromAction"?at&&["accept","today","clear"].includes(et.pickerAction)?!0:nt(rt.lastCommittedValue):et.name==="setValueFromView"&&et.selectionState==="finish"&&ot?at?!0:nt(rt.lastCommittedValue):et.name==="setValueFromShortcut"?et.changeImportance==="accept"&&nt(rt.lastCommittedValue):!1},shouldClosePicker=tt=>{const{action:et,closeOnSelect:nt}=tt;return et.name==="setValueFromAction"?!0:et.name==="setValueFromView"?et.selectionState==="finish"&&nt:et.name==="setValueFromShortcut"?et.changeImportance==="accept":!1},usePickerValue=({props:tt,valueManager:et,valueType:nt,wrapperVariant:rt,validator:it})=>{const{onAccept:ot,onChange:at,value:st,defaultValue:lt,closeOnSelect:ct=rt==="desktop",selectedSections:ut,onSelectedSectionsChange:ht,timezone:dt}=tt,{current:pt}=reactExports.useRef(lt),{current:mt}=reactExports.useRef(st!==void 0),gt=useUtils(),yt=useLocalizationContext(),[bt,wt]=useControlled({controlled:ut,default:null,name:"usePickerValue",state:"selectedSections"}),{isOpen:vt,setIsOpen:kt}=useOpenState(tt),[St,Et]=reactExports.useState(()=>{let fn;return st!==void 0?fn=st:pt!==void 0?fn=pt:fn=et.emptyValue,{draft:fn,lastPublishedValue:fn,lastCommittedValue:fn,lastControlledValue:st,hasBeenModifiedSinceMount:!1}}),{timezone:At,handleValueChange:Tt}=useValueWithTimezone({timezone:dt,value:st,defaultValue:pt,onChange:at,valueManager:et});useValidation(_extends$r({},tt,{value:St.draft,timezone:At}),it,et.isSameError,et.defaultErrorState);const Mt=useEventCallback(fn=>{const cn={action:fn,dateState:St,hasChanged:en=>!et.areValuesEqual(gt,fn.value,en),isControlled:mt,closeOnSelect:ct},_n=shouldPublishValue(cn),En=shouldCommitValue(cn),an=shouldClosePicker(cn);if(Et(en=>_extends$r({},en,{draft:fn.value,lastPublishedValue:_n?fn.value:en.lastPublishedValue,lastCommittedValue:En?fn.value:en.lastCommittedValue,hasBeenModifiedSinceMount:!0})),_n){const Tn={validationError:fn.name==="setValueFromField"?fn.context.validationError:it({adapter:yt,value:fn.value,props:_extends$r({},tt,{value:fn.value,timezone:At})})};Tt(fn.value,Tn)}En&&ot&&ot(fn.value),an&&kt(!1)});if(st!==void 0&&(St.lastControlledValue===void 0||!et.areValuesEqual(gt,St.lastControlledValue,st))){const fn=et.areValuesEqual(gt,St.draft,st);Et(cn=>_extends$r({},cn,{lastControlledValue:st},fn?{}:{lastCommittedValue:st,lastPublishedValue:st,draft:st,hasBeenModifiedSinceMount:!0}))}const Lt=useEventCallback(()=>{Mt({value:et.emptyValue,name:"setValueFromAction",pickerAction:"clear"})}),jt=useEventCallback(()=>{Mt({value:St.lastPublishedValue,name:"setValueFromAction",pickerAction:"accept"})}),Rt=useEventCallback(()=>{Mt({value:St.lastPublishedValue,name:"setValueFromAction",pickerAction:"dismiss"})}),$t=useEventCallback(()=>{Mt({value:St.lastCommittedValue,name:"setValueFromAction",pickerAction:"cancel"})}),xt=useEventCallback(()=>{Mt({value:et.getTodayValue(gt,At,nt),name:"setValueFromAction",pickerAction:"today"})}),It=useEventCallback(()=>kt(!0)),Ot=useEventCallback(()=>kt(!1)),zt=useEventCallback((fn,cn="partial")=>Mt({name:"setValueFromView",value:fn,selectionState:cn})),Ut=useEventCallback((fn,cn)=>Mt({name:"setValueFromShortcut",value:fn,changeImportance:cn??"accept"})),Wt=useEventCallback((fn,cn)=>Mt({name:"setValueFromField",value:fn,context:cn})),Ft=useEventCallback(fn=>{wt(fn),ht==null||ht(fn)}),Nt={onClear:Lt,onAccept:jt,onDismiss:Rt,onCancel:$t,onSetToday:xt,onOpen:It,onClose:Ot},Ct={value:St.draft,onChange:Wt,selectedSections:bt,onSelectedSectionsChange:Ft},Ht=reactExports.useMemo(()=>et.cleanValue(gt,St.draft),[gt,et,St.draft]),Jt={value:Ht,onChange:zt,onClose:Ot,open:vt,onSelectedSectionsChange:Ft},Yt=_extends$r({},Nt,{value:Ht,onChange:zt,onSelectShortcut:Ut,isValid:fn=>{const cn=it({adapter:yt,value:fn,props:_extends$r({},tt,{value:fn,timezone:At})});return!et.hasError(cn)}});return{open:vt,fieldProps:Ct,viewProps:Jt,layoutProps:Yt,actions:Nt}},_excluded$i=["className","sx"],usePickerViews=({props:tt,propsFromPickerValue:et,additionalViewProps:nt,inputRef:rt,autoFocusView:it})=>{const{onChange:ot,open:at,onSelectedSectionsChange:st,onClose:lt}=et,{views:ct,openTo:ut,onViewChange:ht,disableOpenPicker:dt,viewRenderers:pt,timezone:mt}=tt,gt=_objectWithoutPropertiesLoose$g(tt,_excluded$i),{view:yt,setView:bt,defaultView:wt,focusedView:vt,setFocusedView:kt,setValueAndGoToNextView:St}=useViews({view:void 0,views:ct,openTo:ut,onChange:ot,onViewChange:ht,autoFocus:it}),{hasUIView:Et,viewModeLookup:At}=reactExports.useMemo(()=>ct.reduce((xt,It)=>{let Ot;return dt?Ot="field":pt[It]!=null?Ot="UI":Ot="field",xt.viewModeLookup[It]=Ot,Ot==="UI"&&(xt.hasUIView=!0),xt},{hasUIView:!1,viewModeLookup:{}}),[dt,pt,ct]),Tt=reactExports.useMemo(()=>ct.reduce((xt,It)=>pt[It]!=null&&isTimeView(It)?xt+1:xt,0),[pt,ct]),Mt=At[yt],Lt=useEventCallback(()=>Mt==="UI"),[jt,Rt]=reactExports.useState(Mt==="UI"?yt:null);return jt!==yt&&At[yt]==="UI"&&Rt(yt),useEnhancedEffect$1(()=>{Mt==="field"&&at&&(lt(),setTimeout(()=>{rt==null||rt.current.focus(),st(yt)}))},[yt]),useEnhancedEffect$1(()=>{if(!at)return;let xt=yt;Mt==="field"&&jt!=null&&(xt=jt),xt!==wt&&At[xt]==="UI"&&At[wt]==="UI"&&(xt=wt),xt!==yt&&bt(xt),kt(xt,!0)},[at]),{hasUIView:Et,shouldRestoreFocus:Lt,layoutProps:{views:ct,view:jt,onViewChange:bt},renderCurrentView:()=>{if(jt==null)return null;const xt=pt[jt];return xt==null?null:xt(_extends$r({},gt,nt,et,{views:ct,timezone:mt,onChange:St,view:jt,onViewChange:bt,focusedView:vt,onFocusedViewChange:kt,showViewSwitcher:Tt>1,timeViewsCount:Tt}))}}};function getOrientation(){return typeof window>"u"?"portrait":window.screen&&window.screen.orientation&&window.screen.orientation.angle?Math.abs(window.screen.orientation.angle)===90?"landscape":"portrait":window.orientation&&Math.abs(Number(window.orientation))===90?"landscape":"portrait"}const useIsLandscape=(tt,et)=>{const[nt,rt]=reactExports.useState(getOrientation);return useEnhancedEffect$1(()=>{const ot=()=>{rt(getOrientation())};return window.addEventListener("orientationchange",ot),()=>{window.removeEventListener("orientationchange",ot)}},[]),arrayIncludes(tt,["hours","minutes","seconds"])?!1:(et||nt)==="landscape"},usePickerLayoutProps=({props:tt,propsFromPickerValue:et,propsFromPickerViews:nt,wrapperVariant:rt})=>{const{orientation:it}=tt,ot=useIsLandscape(nt.views,it);return{layoutProps:_extends$r({},nt,et,{isLandscape:ot,wrapperVariant:rt,disabled:tt.disabled,readOnly:tt.readOnly})}},buildWarning=(tt,et="warning")=>{let nt=!1;const rt=Array.isArray(tt)?tt.join(` +`):tt;return()=>{nt||(nt=!0,et==="error"?console.error(rt):console.warn(rt))}};buildWarning(["The `renderInput` prop has been removed in version 6.0 of the Date and Time Pickers.","You can replace it with the `textField` component slot in most cases.","For more information, please have a look at the migration guide (https://mui.com/x/migration/migration-pickers-v5/#input-renderer-required-in-v5)."]);const usePicker=({props:tt,valueManager:et,valueType:nt,wrapperVariant:rt,inputRef:it,additionalViewProps:ot,validator:at,autoFocusView:st})=>{const lt=usePickerValue({props:tt,valueManager:et,valueType:nt,wrapperVariant:rt,validator:at}),ct=usePickerViews({props:tt,inputRef:it,additionalViewProps:ot,autoFocusView:st,propsFromPickerValue:lt.viewProps}),ut=usePickerLayoutProps({props:tt,wrapperVariant:rt,propsFromPickerValue:lt.layoutProps,propsFromPickerViews:ct.layoutProps});return{open:lt.open,actions:lt.actions,fieldProps:lt.fieldProps,renderCurrentView:ct.renderCurrentView,hasUIView:ct.hasUIView,shouldRestoreFocus:ct.shouldRestoreFocus,layoutProps:ut.layoutProps}};function getPickersLayoutUtilityClass(tt){return generateUtilityClass("MuiPickersLayout",tt)}const pickersLayoutClasses=generateUtilityClasses("MuiPickersLayout",["root","landscape","contentWrapper","toolbar","actionBar","shortcuts"]),_excluded$h=["onAccept","onClear","onCancel","onSetToday","actions"];function PickersActionBar(tt){const{onAccept:et,onClear:nt,onCancel:rt,onSetToday:it,actions:ot}=tt,at=_objectWithoutPropertiesLoose$g(tt,_excluded$h),st=useLocaleText();if(ot==null||ot.length===0)return null;const lt=ot==null?void 0:ot.map(ct=>{switch(ct){case"clear":return jsxRuntimeExports.jsx(Button$2,{onClick:nt,children:st.clearButtonLabel},ct);case"cancel":return jsxRuntimeExports.jsx(Button$2,{onClick:rt,children:st.cancelButtonLabel},ct);case"accept":return jsxRuntimeExports.jsx(Button$2,{onClick:et,children:st.okButtonLabel},ct);case"today":return jsxRuntimeExports.jsx(Button$2,{onClick:it,children:st.todayButtonLabel},ct);default:return null}});return jsxRuntimeExports.jsx(DialogActions$1,_extends$r({},at,{children:lt}))}const _excluded$g=["items","changeImportance","isLandscape","onChange","isValid"];function PickersShortcuts(tt){const{items:et,changeImportance:nt,onChange:rt,isValid:it}=tt,ot=_objectWithoutPropertiesLoose$g(tt,_excluded$g);if(et==null||et.length===0)return null;const at=et.map(st=>{const lt=st.getValue({isValid:it});return{label:st.label,onClick:()=>{rt(lt,nt)},disabled:!it(lt)}});return jsxRuntimeExports.jsx(List$1,_extends$r({dense:!0,sx:[{maxHeight:VIEW_HEIGHT,maxWidth:200,overflow:"auto"},...Array.isArray(ot.sx)?ot.sx:[ot.sx]]},ot,{children:at.map(st=>jsxRuntimeExports.jsx(ListItem$1,{children:jsxRuntimeExports.jsx(Chip$1,_extends$r({},st))},st.label))}))}function toolbarHasView(tt){return tt.view!==null}const useUtilityClasses$1=tt=>{const{classes:et,isLandscape:nt}=tt;return composeClasses({root:["root",nt&&"landscape"],contentWrapper:["contentWrapper"],toolbar:["toolbar"],actionBar:["actionBar"],tabs:["tabs"],landscape:["landscape"],shortcuts:["shortcuts"]},getPickersLayoutUtilityClass,et)},usePickerLayout=tt=>{var et,nt;const{wrapperVariant:rt,onAccept:it,onClear:ot,onCancel:at,onSetToday:st,view:lt,views:ct,onViewChange:ut,value:ht,onChange:dt,onSelectShortcut:pt,isValid:mt,isLandscape:gt,disabled:yt,readOnly:bt,children:wt,components:vt,componentsProps:kt,slots:St,slotProps:Et}=tt,At=St??uncapitalizeObjectKeys(vt),Tt=Et??kt,Mt=useUtilityClasses$1(tt),Lt=(et=At==null?void 0:At.actionBar)!=null?et:PickersActionBar,jt=useSlotProps({elementType:Lt,externalSlotProps:Tt==null?void 0:Tt.actionBar,additionalProps:{onAccept:it,onClear:ot,onCancel:at,onSetToday:st,actions:rt==="desktop"?[]:["cancel","accept"],className:Mt.actionBar},ownerState:_extends$r({},tt,{wrapperVariant:rt})}),Rt=jsxRuntimeExports.jsx(Lt,_extends$r({},jt)),$t=At==null?void 0:At.toolbar,xt=useSlotProps({elementType:$t,externalSlotProps:Tt==null?void 0:Tt.toolbar,additionalProps:{isLandscape:gt,onChange:dt,value:ht,view:lt,onViewChange:ut,views:ct,disabled:yt,readOnly:bt,className:Mt.toolbar},ownerState:_extends$r({},tt,{wrapperVariant:rt})}),It=toolbarHasView(xt)&&$t?jsxRuntimeExports.jsx($t,_extends$r({},xt)):null,Ot=wt,zt=At==null?void 0:At.tabs,Ut=lt&&zt?jsxRuntimeExports.jsx(zt,_extends$r({view:lt,onViewChange:ut},Tt==null?void 0:Tt.tabs)):null,Wt=(nt=At==null?void 0:At.shortcuts)!=null?nt:PickersShortcuts,Ft=useSlotProps({elementType:Wt,externalSlotProps:Tt==null?void 0:Tt.shortcuts,additionalProps:{isValid:mt,isLandscape:gt,onChange:pt,className:Mt.shortcuts},ownerState:{isValid:mt,isLandscape:gt,onChange:pt,className:Mt.shortcuts,wrapperVariant:rt}}),Nt=lt&&Wt?jsxRuntimeExports.jsx(Wt,_extends$r({},Ft)):null;return{toolbar:It,content:Ot,tabs:Ut,actionBar:Rt,shortcuts:Nt}},usePickerLayout$1=usePickerLayout,useUtilityClasses=tt=>{const{isLandscape:et,classes:nt}=tt;return composeClasses({root:["root",et&&"landscape"],contentWrapper:["contentWrapper"]},getPickersLayoutUtilityClass,nt)},PickersLayoutRoot=styled$1("div",{name:"MuiPickersLayout",slot:"Root",overridesResolver:(tt,et)=>et.root})(({theme:tt,ownerState:et})=>({display:"grid",gridAutoColumns:"max-content auto max-content",gridAutoRows:"max-content auto max-content",[`& .${pickersLayoutClasses.toolbar}`]:et.isLandscape?{gridColumn:tt.direction==="rtl"?3:1,gridRow:"2 / 3"}:{gridColumn:"2 / 4",gridRow:1},[`.${pickersLayoutClasses.shortcuts}`]:et.isLandscape?{gridColumn:"2 / 4",gridRow:1}:{gridColumn:tt.direction==="rtl"?3:1,gridRow:"2 / 3"},[`& .${pickersLayoutClasses.actionBar}`]:{gridColumn:"1 / 4",gridRow:3}}));PickersLayoutRoot.propTypes={as:PropTypes.elementType,ownerState:PropTypes.shape({isLandscape:PropTypes.bool.isRequired}).isRequired,sx:PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func,PropTypes.object,PropTypes.bool])),PropTypes.func,PropTypes.object])};const PickersLayoutContentWrapper=styled$1("div",{name:"MuiPickersLayout",slot:"ContentWrapper",overridesResolver:(tt,et)=>et.contentWrapper})({gridColumn:2,gridRow:2,display:"flex",flexDirection:"column"}),PickersLayout=function(et){const nt=useThemeProps({props:et,name:"MuiPickersLayout"}),{toolbar:rt,content:it,tabs:ot,actionBar:at,shortcuts:st}=usePickerLayout$1(nt),{sx:lt,className:ct,isLandscape:ut,ref:ht,wrapperVariant:dt}=nt,pt=nt,mt=useUtilityClasses(pt);return jsxRuntimeExports.jsxs(PickersLayoutRoot,{ref:ht,sx:lt,className:clsx(ct,mt.root),ownerState:pt,children:[ut?st:rt,ut?rt:st,jsxRuntimeExports.jsx(PickersLayoutContentWrapper,{className:mt.contentWrapper,children:dt==="desktop"?jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[it,ot]}):jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ot,it]})}),at]})},_excluded$f=["props","getOpenDialogAriaText"],_excluded2$3=["ownerState"],_excluded3$1=["ownerState"],useDesktopPicker=tt=>{var et,nt,rt,it,ot;let{props:at,getOpenDialogAriaText:st}=tt,lt=_objectWithoutPropertiesLoose$g(tt,_excluded$f);const{slots:ct,slotProps:ut,className:ht,sx:dt,format:pt,formatDensity:mt,timezone:gt,label:yt,inputRef:bt,readOnly:wt,disabled:vt,autoFocus:kt,localeText:St}=at,Et=useUtils(),At=reactExports.useRef(null),Tt=reactExports.useRef(null),Mt=useId(),Lt=(et=ut==null||(nt=ut.toolbar)==null?void 0:nt.hidden)!=null?et:!1,{open:jt,actions:Rt,hasUIView:$t,layoutProps:xt,renderCurrentView:It,shouldRestoreFocus:Ot,fieldProps:zt}=usePicker(_extends$r({},lt,{props:at,inputRef:At,autoFocusView:!0,additionalViewProps:{},wrapperVariant:"desktop"})),Ut=(rt=ct.inputAdornment)!=null?rt:MuiInputAdornment,Wt=useSlotProps({elementType:Ut,externalSlotProps:ut==null?void 0:ut.inputAdornment,additionalProps:{position:"end"},ownerState:at}),Ft=_objectWithoutPropertiesLoose$g(Wt,_excluded2$3),Nt=(it=ct.openPickerButton)!=null?it:IconButton$2,Ct=useSlotProps({elementType:Nt,externalSlotProps:ut==null?void 0:ut.openPickerButton,additionalProps:{disabled:vt||wt,onClick:Rt.onOpen,"aria-label":st(zt.value,Et),edge:Ft.position},ownerState:at}),Ht=_objectWithoutPropertiesLoose$g(Ct,_excluded3$1),Jt=ct.openPickerIcon,nn=ct.field,Yt=useSlotProps({elementType:nn,externalSlotProps:ut==null?void 0:ut.field,additionalProps:_extends$r({},zt,Lt&&{id:Mt},{readOnly:wt,disabled:vt,className:ht,sx:dt,format:pt,formatDensity:mt,timezone:gt,label:yt,autoFocus:kt&&!at.open,focused:jt?!0:void 0}),ownerState:at});$t&&(Yt.InputProps=_extends$r({},Yt.InputProps,{ref:Tt,[`${Ft.position}Adornment`]:jsxRuntimeExports.jsx(Ut,_extends$r({},Ft,{children:jsxRuntimeExports.jsx(Nt,_extends$r({},Ht,{children:jsxRuntimeExports.jsx(Jt,_extends$r({},ut==null?void 0:ut.openPickerIcon))}))}))}));const fn=_extends$r({textField:ct.textField},Yt.slots),cn=(ot=ct.layout)!=null?ot:PickersLayout,_n=useForkRef(At,Yt.inputRef,bt);let En=Mt;Lt&&(yt?En=`${Mt}-label`:En=void 0);const an=_extends$r({},ut,{toolbar:_extends$r({},ut==null?void 0:ut.toolbar,{titleId:Mt}),popper:_extends$r({"aria-labelledby":En},ut==null?void 0:ut.popper)});return{renderPicker:()=>jsxRuntimeExports.jsxs(LocalizationProvider,{localeText:St,children:[jsxRuntimeExports.jsx(nn,_extends$r({},Yt,{slots:fn,slotProps:an,inputRef:_n})),jsxRuntimeExports.jsx(PickersPopper,_extends$r({role:"dialog",placement:"bottom-start",anchorEl:Tt.current},Rt,{open:jt,slots:ct,slotProps:an,shouldRestoreFocus:Ot,children:jsxRuntimeExports.jsx(cn,_extends$r({},xt,an==null?void 0:an.layout,{slots:ct,slotProps:an,children:It()}))}))]})}},renderDateViewCalendar=({view:tt,onViewChange:et,views:nt,focusedView:rt,onFocusedViewChange:it,value:ot,defaultValue:at,onChange:st,className:lt,classes:ct,disableFuture:ut,disablePast:ht,minDate:dt,maxDate:pt,shouldDisableDate:mt,shouldDisableMonth:gt,shouldDisableYear:yt,reduceAnimations:bt,onMonthChange:wt,monthsPerRow:vt,onYearChange:kt,yearsPerRow:St,defaultCalendarMonth:Et,components:At,componentsProps:Tt,slots:Mt,slotProps:Lt,loading:jt,renderLoading:Rt,disableHighlightToday:$t,readOnly:xt,disabled:It,showDaysOutsideCurrentMonth:Ot,dayOfWeekFormatter:zt,sx:Ut,autoFocus:Wt,fixedWeekNumber:Ft,displayWeekNumber:Nt,timezone:Ct})=>jsxRuntimeExports.jsx(DateCalendar,{view:tt,onViewChange:et,views:nt.filter(isDatePickerView),focusedView:rt&&isDatePickerView(rt)?rt:null,onFocusedViewChange:it,value:ot,defaultValue:at,onChange:st,className:lt,classes:ct,disableFuture:ut,disablePast:ht,minDate:dt,maxDate:pt,shouldDisableDate:mt,shouldDisableMonth:gt,shouldDisableYear:yt,reduceAnimations:bt,onMonthChange:wt,monthsPerRow:vt,onYearChange:kt,yearsPerRow:St,defaultCalendarMonth:Et,components:At,componentsProps:Tt,slots:Mt,slotProps:Lt,loading:jt,renderLoading:Rt,disableHighlightToday:$t,readOnly:xt,disabled:It,showDaysOutsideCurrentMonth:Ot,dayOfWeekFormatter:zt,sx:Ut,autoFocus:Wt,fixedWeekNumber:Ft,displayWeekNumber:Nt,timezone:Ct}),DesktopDatePicker=reactExports.forwardRef(function(et,nt){var rt,it;const ot=useLocaleText(),at=useUtils(),st=useDatePickerDefaultizedProps(et,"MuiDesktopDatePicker"),lt=_extends$r({day:renderDateViewCalendar,month:renderDateViewCalendar,year:renderDateViewCalendar},st.viewRenderers),ct=_extends$r({},st,{viewRenderers:lt,format:resolveDateFormat(at,st,!1),yearsPerRow:(rt=st.yearsPerRow)!=null?rt:4,slots:_extends$r({openPickerIcon:CalendarIcon,field:DateField},st.slots),slotProps:_extends$r({},st.slotProps,{field:ht=>{var dt;return _extends$r({},resolveComponentProps((dt=st.slotProps)==null?void 0:dt.field,ht),extractValidationProps(st),{ref:nt})},toolbar:_extends$r({hidden:!0},(it=st.slotProps)==null?void 0:it.toolbar)})}),{renderPicker:ut}=useDesktopPicker({props:ct,valueManager:singleItemValueManager,valueType:"date",getOpenDialogAriaText:ot.openDatePickerDialogue,validator:validateDate});return ut()});DesktopDatePicker.propTypes={autoFocus:PropTypes.bool,className:PropTypes.string,closeOnSelect:PropTypes.bool,components:PropTypes.object,componentsProps:PropTypes.object,dayOfWeekFormatter:PropTypes.func,defaultCalendarMonth:PropTypes.any,defaultValue:PropTypes.any,disabled:PropTypes.bool,disableFuture:PropTypes.bool,disableHighlightToday:PropTypes.bool,disableOpenPicker:PropTypes.bool,disablePast:PropTypes.bool,displayWeekNumber:PropTypes.bool,fixedWeekNumber:PropTypes.number,format:PropTypes.string,formatDensity:PropTypes.oneOf(["dense","spacious"]),inputRef:PropTypes.oneOfType([PropTypes.func,PropTypes.shape({current:PropTypes.object})]),label:PropTypes.node,loading:PropTypes.bool,localeText:PropTypes.object,maxDate:PropTypes.any,minDate:PropTypes.any,monthsPerRow:PropTypes.oneOf([3,4]),onAccept:PropTypes.func,onChange:PropTypes.func,onClose:PropTypes.func,onError:PropTypes.func,onMonthChange:PropTypes.func,onOpen:PropTypes.func,onSelectedSectionsChange:PropTypes.func,onViewChange:PropTypes.func,onYearChange:PropTypes.func,open:PropTypes.bool,openTo:PropTypes.oneOf(["day","month","year"]),orientation:PropTypes.oneOf(["landscape","portrait"]),readOnly:PropTypes.bool,reduceAnimations:PropTypes.bool,renderLoading:PropTypes.func,selectedSections:PropTypes.oneOfType([PropTypes.oneOf(["all","day","hours","meridiem","minutes","month","seconds","weekDay","year"]),PropTypes.number,PropTypes.shape({endIndex:PropTypes.number.isRequired,startIndex:PropTypes.number.isRequired})]),shouldDisableDate:PropTypes.func,shouldDisableMonth:PropTypes.func,shouldDisableYear:PropTypes.func,showDaysOutsideCurrentMonth:PropTypes.bool,slotProps:PropTypes.object,slots:PropTypes.object,sx:PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func,PropTypes.object,PropTypes.bool])),PropTypes.func,PropTypes.object]),timezone:PropTypes.string,value:PropTypes.any,view:PropTypes.oneOf(["day","month","year"]),viewRenderers:PropTypes.shape({day:PropTypes.func,month:PropTypes.func,year:PropTypes.func}),views:PropTypes.arrayOf(PropTypes.oneOf(["day","month","year"]).isRequired),yearsPerRow:PropTypes.oneOf([3,4])};const _excluded$e=["props","getOpenDialogAriaText"],useMobilePicker=tt=>{var et,nt,rt;let{props:it,getOpenDialogAriaText:ot}=tt,at=_objectWithoutPropertiesLoose$g(tt,_excluded$e);const{slots:st,slotProps:lt,className:ct,sx:ut,format:ht,formatDensity:dt,timezone:pt,label:mt,inputRef:gt,readOnly:yt,disabled:bt,localeText:wt}=it,vt=useUtils(),kt=reactExports.useRef(null),St=useId(),Et=(et=lt==null||(nt=lt.toolbar)==null?void 0:nt.hidden)!=null?et:!1,{open:At,actions:Tt,layoutProps:Mt,renderCurrentView:Lt,fieldProps:jt}=usePicker(_extends$r({},at,{props:it,inputRef:kt,autoFocusView:!0,additionalViewProps:{},wrapperVariant:"mobile"})),Rt=st.field,$t=useSlotProps({elementType:Rt,externalSlotProps:lt==null?void 0:lt.field,additionalProps:_extends$r({},jt,Et&&{id:St},!(bt||yt)&&{onClick:Tt.onOpen,onKeyDown:onSpaceOrEnter(Tt.onOpen)},{readOnly:yt??!0,disabled:bt,className:ct,sx:ut,format:ht,formatDensity:dt,timezone:pt,label:mt}),ownerState:it});$t.inputProps=_extends$r({},$t.inputProps,{"aria-label":ot(jt.value,vt)});const xt=_extends$r({textField:st.textField},$t.slots),It=(rt=st.layout)!=null?rt:PickersLayout,Ot=useForkRef(kt,$t.inputRef,gt);let zt=St;Et&&(mt?zt=`${St}-label`:zt=void 0);const Ut=_extends$r({},lt,{toolbar:_extends$r({},lt==null?void 0:lt.toolbar,{titleId:St}),mobilePaper:_extends$r({"aria-labelledby":zt},lt==null?void 0:lt.mobilePaper)});return{renderPicker:()=>jsxRuntimeExports.jsxs(LocalizationProvider,{localeText:wt,children:[jsxRuntimeExports.jsx(Rt,_extends$r({},$t,{slots:xt,slotProps:Ut,inputRef:Ot})),jsxRuntimeExports.jsx(PickersModalDialog,_extends$r({},Tt,{open:At,slots:st,slotProps:Ut,children:jsxRuntimeExports.jsx(It,_extends$r({},Mt,Ut==null?void 0:Ut.layout,{slots:st,slotProps:Ut,children:Lt()}))}))]})}},MobileDatePicker=reactExports.forwardRef(function(et,nt){var rt;const it=useLocaleText(),ot=useUtils(),at=useDatePickerDefaultizedProps(et,"MuiMobileDatePicker"),st=_extends$r({day:renderDateViewCalendar,month:renderDateViewCalendar,year:renderDateViewCalendar},at.viewRenderers),lt=_extends$r({},at,{viewRenderers:st,format:resolveDateFormat(ot,at,!1),slots:_extends$r({field:DateField},at.slots),slotProps:_extends$r({},at.slotProps,{field:ut=>{var ht;return _extends$r({},resolveComponentProps((ht=at.slotProps)==null?void 0:ht.field,ut),extractValidationProps(at),{ref:nt})},toolbar:_extends$r({hidden:!1},(rt=at.slotProps)==null?void 0:rt.toolbar)})}),{renderPicker:ct}=useMobilePicker({props:lt,valueManager:singleItemValueManager,valueType:"date",getOpenDialogAriaText:it.openDatePickerDialogue,validator:validateDate});return ct()});MobileDatePicker.propTypes={autoFocus:PropTypes.bool,className:PropTypes.string,closeOnSelect:PropTypes.bool,components:PropTypes.object,componentsProps:PropTypes.object,dayOfWeekFormatter:PropTypes.func,defaultCalendarMonth:PropTypes.any,defaultValue:PropTypes.any,disabled:PropTypes.bool,disableFuture:PropTypes.bool,disableHighlightToday:PropTypes.bool,disableOpenPicker:PropTypes.bool,disablePast:PropTypes.bool,displayWeekNumber:PropTypes.bool,fixedWeekNumber:PropTypes.number,format:PropTypes.string,formatDensity:PropTypes.oneOf(["dense","spacious"]),inputRef:PropTypes.oneOfType([PropTypes.func,PropTypes.shape({current:PropTypes.object})]),label:PropTypes.node,loading:PropTypes.bool,localeText:PropTypes.object,maxDate:PropTypes.any,minDate:PropTypes.any,monthsPerRow:PropTypes.oneOf([3,4]),onAccept:PropTypes.func,onChange:PropTypes.func,onClose:PropTypes.func,onError:PropTypes.func,onMonthChange:PropTypes.func,onOpen:PropTypes.func,onSelectedSectionsChange:PropTypes.func,onViewChange:PropTypes.func,onYearChange:PropTypes.func,open:PropTypes.bool,openTo:PropTypes.oneOf(["day","month","year"]),orientation:PropTypes.oneOf(["landscape","portrait"]),readOnly:PropTypes.bool,reduceAnimations:PropTypes.bool,renderLoading:PropTypes.func,selectedSections:PropTypes.oneOfType([PropTypes.oneOf(["all","day","hours","meridiem","minutes","month","seconds","weekDay","year"]),PropTypes.number,PropTypes.shape({endIndex:PropTypes.number.isRequired,startIndex:PropTypes.number.isRequired})]),shouldDisableDate:PropTypes.func,shouldDisableMonth:PropTypes.func,shouldDisableYear:PropTypes.func,showDaysOutsideCurrentMonth:PropTypes.bool,slotProps:PropTypes.object,slots:PropTypes.object,sx:PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func,PropTypes.object,PropTypes.bool])),PropTypes.func,PropTypes.object]),timezone:PropTypes.string,value:PropTypes.any,view:PropTypes.oneOf(["day","month","year"]),viewRenderers:PropTypes.shape({day:PropTypes.func,month:PropTypes.func,year:PropTypes.func}),views:PropTypes.arrayOf(PropTypes.oneOf(["day","month","year"]).isRequired),yearsPerRow:PropTypes.oneOf([3,4])};const _excluded$d=["desktopModeMediaQuery"],DatePicker=reactExports.forwardRef(function(et,nt){const rt=useThemeProps({props:et,name:"MuiDatePicker"}),{desktopModeMediaQuery:it=DEFAULT_DESKTOP_MODE_MEDIA_QUERY}=rt,ot=_objectWithoutPropertiesLoose$g(rt,_excluded$d);return useMediaQuery(it,{defaultMatches:!0})?jsxRuntimeExports.jsx(DesktopDatePicker,_extends$r({ref:nt},ot)):jsxRuntimeExports.jsx(MobileDatePicker,_extends$r({ref:nt},ot))});//! moment.js //! version : 2.29.4 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT @@ -7136,17 +7136,17 @@ hooks.version="2.29.4";setHookCallback(createLocal);hooks.fn=proto;hooks.min=min A`).concat(st,",").concat(st,",0,1,1,").concat(lt,",").concat(at),className:"recharts-legend-icon"});if(it.type==="rect")return React$1.createElement("path",{stroke:"none",fill:ct,d:"M0,".concat(SIZE/8,"h").concat(SIZE,"v").concat(SIZE*3/4,"h").concat(-SIZE,"z"),className:"recharts-legend-icon"});if(React$1.isValidElement(it.legendIcon)){var ut=_objectSpread$q({},it);return delete ut.legendIcon,React$1.cloneElement(it.legendIcon,ut)}return React$1.createElement(Symbols,{fill:ct,cx:at,cy:at,size:SIZE,sizeType:"diameter",type:it.type})}},{key:"renderItems",value:function(){var it=this,ot=this.props,at=ot.payload,st=ot.iconSize,lt=ot.layout,ct=ot.formatter,ut=ot.inactiveColor,ht={x:0,y:0,width:SIZE,height:SIZE},dt={display:lt==="horizontal"?"inline-block":"block",marginRight:10},pt={display:"inline-block",verticalAlign:"middle",marginRight:4};return at.map(function(mt,gt){var yt,bt=mt.formatter||ct,wt=classNames((yt={"recharts-legend-item":!0},_defineProperty$r(yt,"legend-item-".concat(gt),!0),_defineProperty$r(yt,"inactive",mt.inactive),yt));if(mt.type==="none")return null;var vt=mt.inactive?ut:mt.color;return React$1.createElement("li",_extends$l({className:wt,style:dt,key:"legend-item-".concat(gt)},adaptEventsOfChild(it.props,mt,gt)),React$1.createElement(Surface,{width:st,height:st,viewBox:ht,style:pt},it.renderIcon(mt)),React$1.createElement("span",{className:"recharts-legend-item-text",style:{color:vt}},bt?bt(mt.value,mt,gt):mt.value))})}},{key:"render",value:function(){var it=this.props,ot=it.payload,at=it.layout,st=it.align;if(!ot||!ot.length)return null;var lt={padding:0,margin:0,textAlign:at==="horizontal"?st:"left"};return React$1.createElement("ul",{className:"recharts-default-legend",style:lt},this.renderItems())}}]),nt}(reactExports.PureComponent);_defineProperty$r(DefaultLegendContent,"displayName","Legend");_defineProperty$r(DefaultLegendContent,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});function _typeof$r(tt){"@babel/helpers - typeof";return _typeof$r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$r(tt)}var _excluded$9=["ref"];function ownKeys$p(tt,et){var nt=Object.keys(tt);if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(tt);et&&(rt=rt.filter(function(it){return Object.getOwnPropertyDescriptor(tt,it).enumerable})),nt.push.apply(nt,rt)}return nt}function _objectSpread$p(tt){for(var et=1;et"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$9(tt){return _getPrototypeOf$9=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$9(tt)}function _defineProperty$q(tt,et,nt){return et=_toPropertyKey$p(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$p(tt){var et=_toPrimitive$p(tt,"string");return _typeof$r(et)==="symbol"?et:String(et)}function _toPrimitive$p(tt,et){if(_typeof$r(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$r(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}function _objectWithoutProperties$9(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$9(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$9(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function defaultUniqBy$1(tt){return tt.value}function getUniqPayload$1(tt,et){return tt===!0?_uniqBy(et,defaultUniqBy$1):_isFunction$1(tt)?_uniqBy(et,tt):et}function renderContent$1(tt,et){if(React$1.isValidElement(tt))return React$1.cloneElement(tt,et);if(_isFunction$1(tt))return React$1.createElement(tt,et);et.ref;var nt=_objectWithoutProperties$9(et,_excluded$9);return React$1.createElement(DefaultLegendContent,nt)}var EPS$2=1,Legend=function(tt){_inherits$9(nt,tt);var et=_createSuper$9(nt);function nt(){var rt;_classCallCheck$b(this,nt);for(var it=arguments.length,ot=new Array(it),at=0;at=0&&at>=0?{width:ot,height:at}:null}},{key:"getDefaultPosition",value:function(it){var ot=this.props,at=ot.layout,st=ot.align,lt=ot.verticalAlign,ct=ot.margin,ut=ot.chartWidth,ht=ot.chartHeight,dt,pt;if(!it||(it.left===void 0||it.left===null)&&(it.right===void 0||it.right===null))if(st==="center"&&at==="vertical"){var mt=this.getBBoxSnapshot()||{width:0};dt={left:((ut||0)-mt.width)/2}}else dt=st==="right"?{right:ct&&ct.right||0}:{left:ct&&ct.left||0};if(!it||(it.top===void 0||it.top===null)&&(it.bottom===void 0||it.bottom===null))if(lt==="middle"){var gt=this.getBBoxSnapshot()||{height:0};pt={top:((ht||0)-gt.height)/2}}else pt=lt==="bottom"?{bottom:ct&&ct.bottom||0}:{top:ct&&ct.top||0};return _objectSpread$p(_objectSpread$p({},dt),pt)}},{key:"updateBBox",value:function(){var it=this.state,ot=it.boxWidth,at=it.boxHeight,st=this.props.onBBoxUpdate;if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var lt=this.wrapperNode.getBoundingClientRect();(Math.abs(lt.width-ot)>EPS$2||Math.abs(lt.height-at)>EPS$2)&&this.setState({boxWidth:lt.width,boxHeight:lt.height},function(){st&&st(lt)})}else(ot!==-1||at!==-1)&&this.setState({boxWidth:-1,boxHeight:-1},function(){st&&st(null)})}},{key:"render",value:function(){var it=this,ot=this.props,at=ot.content,st=ot.width,lt=ot.height,ct=ot.wrapperStyle,ut=ot.payloadUniqBy,ht=ot.payload,dt=_objectSpread$p(_objectSpread$p({position:"absolute",width:st||"auto",height:lt||"auto"},this.getDefaultPosition(ct)),ct);return React$1.createElement("div",{className:"recharts-legend-wrapper",style:dt,ref:function(mt){it.wrapperNode=mt}},renderContent$1(at,_objectSpread$p(_objectSpread$p({},this.props),{},{payload:getUniqPayload$1(ut,ht)})))}}],[{key:"getWithHeight",value:function(it,ot){var at=it.props.layout;return at==="vertical"&&isNumber(it.props.height)?{height:it.props.height}:at==="horizontal"?{width:it.props.width||ot}:null}}]),nt}(reactExports.PureComponent);_defineProperty$q(Legend,"displayName","Legend");_defineProperty$q(Legend,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var getOwnPropertyNames=Object.getOwnPropertyNames,getOwnPropertySymbols=Object.getOwnPropertySymbols,hasOwnProperty=Object.prototype.hasOwnProperty;function combineComparators(tt,et){return function(rt,it,ot){return tt(rt,it,ot)&&et(rt,it,ot)}}function createIsCircular(tt){return function(nt,rt,it){if(!nt||!rt||typeof nt!="object"||typeof rt!="object")return tt(nt,rt,it);var ot=it.cache,at=ot.get(nt),st=ot.get(rt);if(at&&st)return at===rt&&st===nt;ot.set(nt,rt),ot.set(rt,nt);var lt=tt(nt,rt,it);return ot.delete(nt),ot.delete(rt),lt}}function getStrictProperties(tt){return getOwnPropertyNames(tt).concat(getOwnPropertySymbols(tt))}var hasOwn=Object.hasOwn||function(tt,et){return hasOwnProperty.call(tt,et)};function sameValueZeroEqual(tt,et){return tt||et?tt===et:tt===et||tt!==tt&&et!==et}var OWNER="_owner",getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,keys=Object.keys;function areArraysEqual(tt,et,nt){var rt=tt.length;if(et.length!==rt)return!1;for(;rt-- >0;)if(!nt.equals(tt[rt],et[rt],rt,rt,tt,et,nt))return!1;return!0}function areDatesEqual(tt,et){return sameValueZeroEqual(tt.getTime(),et.getTime())}function areMapsEqual(tt,et,nt){if(tt.size!==et.size)return!1;for(var rt={},it=tt.entries(),ot=0,at,st;(at=it.next())&&!at.done;){for(var lt=et.entries(),ct=!1,ut=0;(st=lt.next())&&!st.done;){var ht=at.value,dt=ht[0],pt=ht[1],mt=st.value,gt=mt[0],yt=mt[1];!ct&&!rt[ut]&&(ct=nt.equals(dt,gt,ot,ut,tt,et,nt)&&nt.equals(pt,yt,dt,gt,tt,et,nt))&&(rt[ut]=!0),ut++}if(!ct)return!1;ot++}return!0}function areObjectsEqual(tt,et,nt){var rt=keys(tt),it=rt.length;if(keys(et).length!==it)return!1;for(var ot;it-- >0;)if(ot=rt[it],ot===OWNER&&(tt.$$typeof||et.$$typeof)&&tt.$$typeof!==et.$$typeof||!hasOwn(et,ot)||!nt.equals(tt[ot],et[ot],ot,ot,tt,et,nt))return!1;return!0}function areObjectsEqualStrict(tt,et,nt){var rt=getStrictProperties(tt),it=rt.length;if(getStrictProperties(et).length!==it)return!1;for(var ot,at,st;it-- >0;)if(ot=rt[it],ot===OWNER&&(tt.$$typeof||et.$$typeof)&&tt.$$typeof!==et.$$typeof||!hasOwn(et,ot)||!nt.equals(tt[ot],et[ot],ot,ot,tt,et,nt)||(at=getOwnPropertyDescriptor(tt,ot),st=getOwnPropertyDescriptor(et,ot),(at||st)&&(!at||!st||at.configurable!==st.configurable||at.enumerable!==st.enumerable||at.writable!==st.writable)))return!1;return!0}function arePrimitiveWrappersEqual(tt,et){return sameValueZeroEqual(tt.valueOf(),et.valueOf())}function areRegExpsEqual(tt,et){return tt.source===et.source&&tt.flags===et.flags}function areSetsEqual(tt,et,nt){if(tt.size!==et.size)return!1;for(var rt={},it=tt.values(),ot,at;(ot=it.next())&&!ot.done;){for(var st=et.values(),lt=!1,ct=0;(at=st.next())&&!at.done;)!lt&&!rt[ct]&&(lt=nt.equals(ot.value,at.value,ot.value,at.value,tt,et,nt))&&(rt[ct]=!0),ct++;if(!lt)return!1}return!0}function areTypedArraysEqual(tt,et){var nt=tt.length;if(et.length!==nt)return!1;for(;nt-- >0;)if(tt[nt]!==et[nt])return!1;return!0}var ARGUMENTS_TAG="[object Arguments]",BOOLEAN_TAG="[object Boolean]",DATE_TAG="[object Date]",MAP_TAG="[object Map]",NUMBER_TAG="[object Number]",OBJECT_TAG="[object Object]",REG_EXP_TAG="[object RegExp]",SET_TAG="[object Set]",STRING_TAG="[object String]",isArray$1=Array.isArray,isTypedArray=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,assign=Object.assign,getTag=Object.prototype.toString.call.bind(Object.prototype.toString);function createEqualityComparator(tt){var et=tt.areArraysEqual,nt=tt.areDatesEqual,rt=tt.areMapsEqual,it=tt.areObjectsEqual,ot=tt.arePrimitiveWrappersEqual,at=tt.areRegExpsEqual,st=tt.areSetsEqual,lt=tt.areTypedArraysEqual;return function(ut,ht,dt){if(ut===ht)return!0;if(ut==null||ht==null||typeof ut!="object"||typeof ht!="object")return ut!==ut&&ht!==ht;var pt=ut.constructor;if(pt!==ht.constructor)return!1;if(pt===Object)return it(ut,ht,dt);if(isArray$1(ut))return et(ut,ht,dt);if(isTypedArray!=null&&isTypedArray(ut))return lt(ut,ht,dt);if(pt===Date)return nt(ut,ht,dt);if(pt===RegExp)return at(ut,ht,dt);if(pt===Map)return rt(ut,ht,dt);if(pt===Set)return st(ut,ht,dt);var mt=getTag(ut);return mt===DATE_TAG?nt(ut,ht,dt):mt===REG_EXP_TAG?at(ut,ht,dt):mt===MAP_TAG?rt(ut,ht,dt):mt===SET_TAG?st(ut,ht,dt):mt===OBJECT_TAG?typeof ut.then!="function"&&typeof ht.then!="function"&&it(ut,ht,dt):mt===ARGUMENTS_TAG?it(ut,ht,dt):mt===BOOLEAN_TAG||mt===NUMBER_TAG||mt===STRING_TAG?ot(ut,ht,dt):!1}}function createEqualityComparatorConfig(tt){var et=tt.circular,nt=tt.createCustomConfig,rt=tt.strict,it={areArraysEqual:rt?areObjectsEqualStrict:areArraysEqual,areDatesEqual,areMapsEqual:rt?combineComparators(areMapsEqual,areObjectsEqualStrict):areMapsEqual,areObjectsEqual:rt?areObjectsEqualStrict:areObjectsEqual,arePrimitiveWrappersEqual,areRegExpsEqual,areSetsEqual:rt?combineComparators(areSetsEqual,areObjectsEqualStrict):areSetsEqual,areTypedArraysEqual:rt?areObjectsEqualStrict:areTypedArraysEqual};if(nt&&(it=assign({},it,nt(it))),et){var ot=createIsCircular(it.areArraysEqual),at=createIsCircular(it.areMapsEqual),st=createIsCircular(it.areObjectsEqual),lt=createIsCircular(it.areSetsEqual);it=assign({},it,{areArraysEqual:ot,areMapsEqual:at,areObjectsEqual:st,areSetsEqual:lt})}return it}function createInternalEqualityComparator(tt){return function(et,nt,rt,it,ot,at,st){return tt(et,nt,st)}}function createIsEqual(tt){var et=tt.circular,nt=tt.comparator,rt=tt.createState,it=tt.equals,ot=tt.strict;if(rt)return function(lt,ct){var ut=rt(),ht=ut.cache,dt=ht===void 0?et?new WeakMap:void 0:ht,pt=ut.meta;return nt(lt,ct,{cache:dt,equals:it,meta:pt,strict:ot})};if(et)return function(lt,ct){return nt(lt,ct,{cache:new WeakMap,equals:it,meta:void 0,strict:ot})};var at={cache:void 0,equals:it,meta:void 0,strict:ot};return function(lt,ct){return nt(lt,ct,at)}}var deepEqual=createCustomEqual();createCustomEqual({strict:!0});createCustomEqual({circular:!0});createCustomEqual({circular:!0,strict:!0});createCustomEqual({createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({strict:!0,createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({circular:!0,createInternalComparator:function(){return sameValueZeroEqual}});createCustomEqual({circular:!0,createInternalComparator:function(){return sameValueZeroEqual},strict:!0});function createCustomEqual(tt){tt===void 0&&(tt={});var et=tt.circular,nt=et===void 0?!1:et,rt=tt.createInternalComparator,it=tt.createState,ot=tt.strict,at=ot===void 0?!1:ot,st=createEqualityComparatorConfig(tt),lt=createEqualityComparator(st),ct=rt?rt(lt):createInternalEqualityComparator(lt);return createIsEqual({circular:nt,comparator:lt,createState:it,equals:ct,strict:at})}function setRafTimeout(tt){var et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,nt=-1,rt=function it(ot){nt<0&&(nt=ot),ot-nt>et?(tt(ot),nt=-1):requestAnimationFrame(it)};requestAnimationFrame(rt)}function _typeof$q(tt){"@babel/helpers - typeof";return _typeof$q=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$q(tt)}function _toArray(tt){return _arrayWithHoles$c(tt)||_iterableToArray$d(tt)||_unsupportedIterableToArray$m(tt)||_nonIterableRest$c()}function _nonIterableRest$c(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$m(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$m(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$m(tt,et)}}function _arrayLikeToArray$m(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nttt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt1?1:bt<0?0:bt},gt=function(bt){for(var wt=bt>1?1:bt,vt=wt,kt=0;kt<8;++kt){var St=ht(vt)-wt,Tt=pt(vt);if(Math.abs(St-wt)0&&arguments[0]!==void 0?arguments[0]:{},nt=et.stiff,rt=nt===void 0?100:nt,it=et.damping,ot=it===void 0?8:it,at=et.dt,st=at===void 0?17:at,lt=function(ut,ht,dt){var pt=-(ut-ht)*rt,mt=dt*ot,gt=dt+(pt-mt)*st/1e3,yt=dt*st/1e3+ut;return Math.abs(yt-ht)tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt1?1:bt<0?0:bt},gt=function(bt){for(var wt=bt>1?1:bt,vt=wt,kt=0;kt<8;++kt){var St=ht(vt)-wt,Et=pt(vt);if(Math.abs(St-wt)0&&arguments[0]!==void 0?arguments[0]:{},nt=et.stiff,rt=nt===void 0?100:nt,it=et.damping,ot=it===void 0?8:it,at=et.dt,st=at===void 0?17:at,lt=function(ut,ht,dt){var pt=-(ut-ht)*rt,mt=dt*ot,gt=dt+(pt-mt)*st/1e3,yt=dt*st/1e3+ut;return Math.abs(yt-ht)tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$8(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _toConsumableArray$a(tt){return _arrayWithoutHoles$a(tt)||_iterableToArray$a(tt)||_unsupportedIterableToArray$j(tt)||_nonIterableSpread$a()}function _nonIterableSpread$a(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$j(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$j(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$j(tt,et)}}function _iterableToArray$a(tt){if(typeof Symbol<"u"&&tt[Symbol.iterator]!=null||tt["@@iterator"]!=null)return Array.from(tt)}function _arrayWithoutHoles$a(tt){if(Array.isArray(tt))return _arrayLikeToArray$j(tt)}function _arrayLikeToArray$j(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$8(tt){return _getPrototypeOf$8=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$8(tt)}var Animate=function(tt){_inherits$8(nt,tt);var et=_createSuper$8(nt);function nt(rt,it){var ot;_classCallCheck$a(this,nt),ot=et.call(this,rt,it);var at=ot.props,st=at.isActive,lt=at.attributeName,ct=at.from,ut=at.to,ht=at.steps,dt=at.children,pt=at.duration;if(ot.handleStyleChange=ot.handleStyleChange.bind(_assertThisInitialized$8(ot)),ot.changeStyle=ot.changeStyle.bind(_assertThisInitialized$8(ot)),!st||pt<=0)return ot.state={style:{}},typeof dt=="function"&&(ot.state={style:ut}),_possibleConstructorReturn$8(ot);if(ht&&ht.length)ot.state={style:ht[0].style};else if(ct){if(typeof dt=="function")return ot.state={style:ct},_possibleConstructorReturn$8(ot);ot.state={style:lt?_defineProperty$n({},lt,ct):ct}}else ot.state={style:{}};return ot}return _createClass$a(nt,[{key:"componentDidMount",value:function(){var it=this.props,ot=it.isActive,at=it.canBegin;this.mounted=!0,!(!ot||!at)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(it){var ot=this.props,at=ot.isActive,st=ot.canBegin,lt=ot.attributeName,ct=ot.shouldReAnimate,ut=ot.to,ht=ot.from,dt=this.state.style;if(st){if(!at){var pt={style:lt?_defineProperty$n({},lt,ut):ut};this.state&&dt&&(lt&&dt[lt]!==ut||!lt&&dt!==ut)&&this.setState(pt);return}if(!(deepEqual(it.to,ut)&&it.canBegin&&it.isActive)){var mt=!it.canBegin||!it.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var gt=mt||ct?ht:it.to;if(this.state&&dt){var yt={style:lt?_defineProperty$n({},lt,gt):gt};(lt&&[lt]!==gt||!lt&&dt!==gt)&&this.setState(yt)}this.runAnimation(_objectSpread$m(_objectSpread$m({},this.props),{},{from:gt,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1,this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation()}},{key:"handleStyleChange",value:function(it){this.changeStyle(it)}},{key:"changeStyle",value:function(it){this.mounted&&this.setState({style:it})}},{key:"runJSAnimation",value:function(it){var ot=this,at=it.from,st=it.to,lt=it.duration,ct=it.easing,ut=it.begin,ht=it.onAnimationEnd,dt=it.onAnimationStart,pt=configUpdate(at,st,configEasing(ct),lt,this.changeStyle),mt=function(){ot.stopJSAnimation=pt()};this.manager.start([dt,ut,mt,lt,ht])}},{key:"runStepAnimation",value:function(it){var ot=this,at=it.steps,st=it.begin,lt=it.onAnimationStart,ct=at[0],ut=ct.style,ht=ct.duration,dt=ht===void 0?0:ht,pt=function(gt,yt,bt){if(bt===0)return gt;var wt=yt.duration,vt=yt.easing,kt=vt===void 0?"ease":vt,St=yt.style,Tt=yt.properties,At=yt.onAnimationEnd,Et=bt>0?at[bt-1]:yt,Mt=Tt||Object.keys(St);if(typeof kt=="function"||kt==="spring")return[].concat(_toConsumableArray$a(gt),[ot.runJSAnimation.bind(ot,{from:Et.style,to:St,duration:wt,easing:kt}),wt]);var Lt=getTransitionVal(Mt,wt,kt),jt=_objectSpread$m(_objectSpread$m(_objectSpread$m({},Et.style),St),{},{transition:Lt});return[].concat(_toConsumableArray$a(gt),[jt,wt,At]).filter(identity$7)};return this.manager.start([lt].concat(_toConsumableArray$a(at.reduce(pt,[ut,Math.max(dt,st)])),[it.onAnimationEnd]))}},{key:"runAnimation",value:function(it){this.manager||(this.manager=createAnimateManager());var ot=it.begin,at=it.duration,st=it.attributeName,lt=it.to,ct=it.easing,ut=it.onAnimationStart,ht=it.onAnimationEnd,dt=it.steps,pt=it.children,mt=this.manager;if(this.unSubscribe=mt.subscribe(this.handleStyleChange),typeof ct=="function"||typeof pt=="function"||ct==="spring"){this.runJSAnimation(it);return}if(dt.length>1){this.runStepAnimation(it);return}var gt=st?_defineProperty$n({},st,lt):lt,yt=getTransitionVal(Object.keys(gt),at,ct);mt.start([ut,ot,_objectSpread$m(_objectSpread$m({},gt),{},{transition:yt}),at,ht])}},{key:"render",value:function(){var it=this.props,ot=it.children;it.begin;var at=it.duration;it.attributeName,it.easing;var st=it.isActive;it.steps,it.from,it.to,it.canBegin,it.onAnimationEnd,it.shouldReAnimate,it.onAnimationReStart;var lt=_objectWithoutProperties$8(it,_excluded$8),ct=reactExports.Children.count(ot),ut=translateStyle(this.state.style);if(typeof ot=="function")return ot(ut);if(!st||ct===0||at<=0)return ot;var ht=function(pt){var mt=pt.props,gt=mt.style,yt=gt===void 0?{}:gt,bt=mt.className,wt=reactExports.cloneElement(pt,_objectSpread$m(_objectSpread$m({},lt),{},{style:_objectSpread$m(_objectSpread$m({},yt),ut),className:bt}));return wt};return ct===1?ht(reactExports.Children.only(ot)):React$1.createElement("div",null,reactExports.Children.map(ot,function(dt){return ht(dt)}))}}]),nt}(reactExports.PureComponent);Animate.displayName="Animate";Animate.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Animate.propTypes={from:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),to:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),attributeName:PropTypes.string,duration:PropTypes.number,begin:PropTypes.number,easing:PropTypes.oneOfType([PropTypes.string,PropTypes.func]),steps:PropTypes.arrayOf(PropTypes.shape({duration:PropTypes.number.isRequired,style:PropTypes.object.isRequired,easing:PropTypes.oneOfType([PropTypes.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),PropTypes.func]),properties:PropTypes.arrayOf("string"),onAnimationEnd:PropTypes.func})),children:PropTypes.oneOfType([PropTypes.node,PropTypes.func]),isActive:PropTypes.bool,canBegin:PropTypes.bool,onAnimationEnd:PropTypes.func,shouldReAnimate:PropTypes.bool,onAnimationStart:PropTypes.func,onAnimationReStart:PropTypes.func};Number.isFinite===void 0&&(Number.isFinite=function(tt){return typeof tt=="number"&&isFinite(tt)});PropTypes.object,PropTypes.object,PropTypes.object,PropTypes.element;PropTypes.object,PropTypes.object,PropTypes.object,PropTypes.oneOfType([PropTypes.array,PropTypes.element]),PropTypes.any;function baseSortBy$1(tt,et){var nt=tt.length;for(tt.sort(et);nt--;)tt[nt]=tt[nt].value;return tt}var _baseSortBy=baseSortBy$1,isSymbol$1=isSymbol_1;function compareAscending$1(tt,et){if(tt!==et){var nt=tt!==void 0,rt=tt===null,it=tt===tt,ot=isSymbol$1(tt),at=et!==void 0,st=et===null,lt=et===et,ct=isSymbol$1(et);if(!st&&!ct&&!ot&&tt>et||ot&&at&<&&!st&&!ct||rt&&at&<||!nt&<||!it)return 1;if(!rt&&!ot&&!ct&&tt=st)return lt;var ct=nt[rt];return lt*(ct=="desc"?-1:1)}}return tt.index-et.index}var _compareMultiple=compareMultiple$1,arrayMap=_arrayMap,baseGet=_baseGet,baseIteratee$1=_baseIteratee,baseMap=_baseMap,baseSortBy=_baseSortBy,baseUnary=_baseUnary,compareMultiple=_compareMultiple,identity$6=identity_1,isArray=isArray_1;function baseOrderBy$1(tt,et,nt){et.length?et=arrayMap(et,function(ot){return isArray(ot)?function(at){return baseGet(at,ot.length===1?ot[0]:ot)}:ot}):et=[identity$6];var rt=-1;et=arrayMap(et,baseUnary(baseIteratee$1));var it=baseMap(tt,function(ot,at,st){var lt=arrayMap(et,function(ct){return ct(ot)});return{criteria:lt,index:++rt,value:ot}});return baseSortBy(it,function(ot,at){return compareMultiple(ot,at,nt)})}var _baseOrderBy=baseOrderBy$1,baseFlatten=_baseFlatten,baseOrderBy=_baseOrderBy,baseRest=_baseRest,isIterateeCall$1=_isIterateeCall,sortBy=baseRest(function(tt,et){if(tt==null)return[];var nt=et.length;return nt>1&&isIterateeCall$1(tt,et[0],et[1])?et=[]:nt>2&&isIterateeCall$1(et[0],et[1],et[2])&&(et=[et[0]]),baseOrderBy(tt,baseFlatten(et,1),[])}),sortBy_1=sortBy;const _sortBy=getDefaultExportFromCjs(sortBy_1);function _typeof$m(tt){"@babel/helpers - typeof";return _typeof$m=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$m(tt)}function _slicedToArray$9(tt,et){return _arrayWithHoles$9(tt)||_iterableToArrayLimit$9(tt,et)||_unsupportedIterableToArray$i(tt,et)||_nonIterableRest$9()}function _nonIterableRest$9(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$i(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$i(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$i(tt,et)}}function _arrayLikeToArray$i(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nttt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);ntEPS$1||Math.abs(En.height-ct)>EPS$1)&&(at(En.width),ut(En.height))}else(ot!==-1||ct!==-1)&&(at(-1),ut(-1))};return cn(),function(){document.removeEventListener("keydown",Lt)}},[ct,ot,Tt,pt,bt.x,bt.y,Lt]);var jt=function(_n){var En=_n.key,an=_n.tooltipDimension,en=_n.viewBoxDimension;if(Et&&isNumber(Et[En]))return Et[En];var Tn=Tt[En]-an-At,Rn=Tt[En]+At;if(kt!=null&&kt[En])return St[En]?Tn:Rn;if(St!=null&&St[En]){var An=Tn,yn=Mt[En];return Andn?Math.max(Tn,Mt[En]):Math.max(Rn,Mt[En])},Rt=et.payload,$t=et.payloadUniqBy,xt=et.filterNull,It=et.active,Ot=et.wrapperStyle,zt=et.useTranslate3d,Ut=et.isAnimationActive,Wt=et.animationDuration,Ft=et.animationEasing,Nt=getUniqPayload($t,xt&&Rt&&Rt.length?Rt.filter(function(cn){return!_isNil(cn.value)}):Rt),Ct=Nt&&Nt.length,Ht=et.content,Jt=_objectSpread$k({pointerEvents:"none",visibility:!pt&&It&&Ct?"visible":"hidden",position:"absolute",top:0,left:0},Ot),nn,Yt;Et&&isNumber(Et.x)&&isNumber(Et.y)?(nn=Et.x,Yt=Et.y):ot>0&&ct>0&&Tt?(nn=jt({key:"x",tooltipDimension:ot,viewBoxDimension:Mt.width}),Yt=jt({key:"y",tooltipDimension:ct,viewBoxDimension:Mt.height})):Jt.visibility="hidden",Jt=_objectSpread$k(_objectSpread$k({},translateStyle({transform:zt?"translate3d(".concat(nn,"px, ").concat(Yt,"px, 0)"):"translate(".concat(nn,"px, ").concat(Yt,"px)")})),Jt),Ut&&It&&(Jt=_objectSpread$k(_objectSpread$k({},translateStyle({transition:"transform ".concat(Wt,"ms ").concat(Ft)})),Jt));var fn=classNames(CLS_PREFIX,(nt={},_defineProperty$l(nt,"".concat(CLS_PREFIX,"-right"),isNumber(nn)&&Tt&&isNumber(Tt.x)&&nn>=Tt.x),_defineProperty$l(nt,"".concat(CLS_PREFIX,"-left"),isNumber(nn)&&Tt&&isNumber(Tt.x)&&nn=Tt.y),_defineProperty$l(nt,"".concat(CLS_PREFIX,"-top"),isNumber(Yt)&&Tt&&isNumber(Tt.y)&&Yt=et||At<0||ht&&Et>=ot}function bt(){var Tt=now();if(yt(Tt))return wt(Tt);st=setTimeout(bt,gt(Tt))}function wt(Tt){return st=void 0,dt&&rt?pt(Tt):(rt=it=void 0,at)}function vt(){st!==void 0&&clearTimeout(st),ct=0,rt=lt=it=st=void 0}function kt(){return st===void 0?at:wt(now())}function St(){var Tt=now(),At=yt(Tt);if(rt=arguments,it=this,lt=Tt,At){if(st===void 0)return mt(lt);if(ht)return clearTimeout(st),st=setTimeout(bt,et),pt(lt)}return st===void 0&&(st=setTimeout(bt,et)),at}return St.cancel=vt,St.flush=kt,St}var debounce_1=debounce$1;const debounce$2=getDefaultExportFromCjs(debounce_1);var debounce=debounce_1,isObject$1=isObject_1,FUNC_ERROR_TEXT="Expected a function";function throttle(tt,et,nt){var rt=!0,it=!0;if(typeof tt!="function")throw new TypeError(FUNC_ERROR_TEXT);return isObject$1(nt)&&(rt="leading"in nt?!!nt.leading:rt,it="trailing"in nt?!!nt.trailing:it),debounce(tt,et,{leading:rt,maxWait:et,trailing:it})}var throttle_1=throttle;const _throttle=getDefaultExportFromCjs(throttle_1);var extendStatics=function(tt,et){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(nt,rt){nt.__proto__=rt}||function(nt,rt){for(var it in rt)rt.hasOwnProperty(it)&&(nt[it]=rt[it])},extendStatics(tt,et)};function __extends(tt,et){extendStatics(tt,et);function nt(){this.constructor=tt}tt.prototype=et===null?Object.create(et):(nt.prototype=et.prototype,new nt)}function __rest(tt,et){var nt={};for(var rt in tt)Object.prototype.hasOwnProperty.call(tt,rt)&&et.indexOf(rt)<0&&(nt[rt]=tt[rt]);if(tt!=null&&typeof Object.getOwnPropertySymbols=="function")for(var it=0,rt=Object.getOwnPropertySymbols(tt);it"u"},isDOMElement=function(tt){return tt instanceof Element||tt instanceof HTMLDocument},createNotifier=function(tt,et,nt){return function(rt){var it=rt.width,ot=rt.height;tt(function(at){return at.width===it&&at.height===ot||at.width===it&&!nt||at.height===ot&&!et?at:{width:it,height:ot}})}},ResizeDetector=function(tt){__extends(et,tt);function et(nt){var rt=tt.call(this,nt)||this;rt.cancelHandler=function(){rt.resizeHandler&&rt.resizeHandler.cancel&&(rt.resizeHandler.cancel(),rt.resizeHandler=null)},rt.attachObserver=function(){var ct=rt.props,ut=ct.targetRef,ht=ct.observerOptions;if(!isSSR()){ut&&ut.current&&(rt.targetRef.current=ut.current);var dt=rt.getElement();dt&&(rt.observableElement&&rt.observableElement===dt||(rt.observableElement=dt,rt.resizeObserver.observe(dt,ht)))}},rt.getElement=function(){var ct=rt.props,ut=ct.querySelector,ht=ct.targetDomEl;if(isSSR())return null;if(ut)return document.querySelector(ut);if(ht&&isDOMElement(ht))return ht;if(rt.targetRef&&isDOMElement(rt.targetRef.current))return rt.targetRef.current;var dt=reactDomExports.findDOMNode(rt);if(!dt)return null;var pt=rt.getRenderType();switch(pt){case"renderProp":return dt;case"childFunction":return dt;case"child":return dt;case"childArray":return dt;default:return dt.parentElement}},rt.createResizeHandler=function(ct){var ut=rt.props,ht=ut.handleWidth,dt=ht===void 0?!0:ht,pt=ut.handleHeight,mt=pt===void 0?!0:pt,gt=ut.onResize;if(!(!dt&&!mt)){var yt=createNotifier(function(bt){return rt.setState(bt,function(){return gt==null?void 0:gt(rt.state.width,rt.state.height)})},dt,mt);ct.forEach(function(bt){var wt=bt&&bt.contentRect||{},vt=wt.width,kt=wt.height,St=!rt.skipOnMount&&!isSSR();St&&yt({width:vt,height:kt}),rt.skipOnMount=!1})}},rt.getRenderType=function(){var ct=rt.props,ut=ct.render,ht=ct.children;return isFunction(ut)?"renderProp":isFunction(ht)?"childFunction":reactExports.isValidElement(ht)?"child":Array.isArray(ht)?"childArray":"parent"};var it=nt.skipOnMount,ot=nt.refreshMode,at=nt.refreshRate,st=at===void 0?1e3:at,lt=nt.refreshOptions;return rt.state={width:void 0,height:void 0},rt.skipOnMount=it,rt.targetRef=reactExports.createRef(),rt.observableElement=null,isSSR()||(rt.resizeHandler=patchResizeHandler(rt.createResizeHandler,ot,st,lt),rt.resizeObserver=new window.ResizeObserver(rt.resizeHandler)),rt}return et.prototype.componentDidMount=function(){this.attachObserver()},et.prototype.componentDidUpdate=function(){this.attachObserver()},et.prototype.componentWillUnmount=function(){isSSR()||(this.observableElement=null,this.resizeObserver.disconnect(),this.cancelHandler())},et.prototype.render=function(){var nt=this.props,rt=nt.render,it=nt.children,ot=nt.nodeType,at=ot===void 0?"div":ot,st=this.state,lt=st.width,ct=st.height,ut={width:lt,height:ct,targetRef:this.targetRef},ht=this.getRenderType();switch(ht){case"renderProp":return rt==null?void 0:rt(ut);case"childFunction":{var dt=it;return dt==null?void 0:dt(ut)}case"child":{var pt=it;if(pt.type&&typeof pt.type=="string"){ut.targetRef;var mt=__rest(ut,["targetRef"]);return reactExports.cloneElement(pt,mt)}return reactExports.cloneElement(pt,ut)}case"childArray":{var gt=it;return gt.map(function(yt){return!!yt&&reactExports.cloneElement(yt,ut)})}default:return React$1.createElement(at,null)}},et}(reactExports.PureComponent),warn=function(et,nt){for(var rt=arguments.length,it=new Array(rt>2?rt-2:0),ot=2;ottt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nttt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$8(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _toConsumableArray$a(tt){return _arrayWithoutHoles$a(tt)||_iterableToArray$a(tt)||_unsupportedIterableToArray$j(tt)||_nonIterableSpread$a()}function _nonIterableSpread$a(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$j(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$j(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$j(tt,et)}}function _iterableToArray$a(tt){if(typeof Symbol<"u"&&tt[Symbol.iterator]!=null||tt["@@iterator"]!=null)return Array.from(tt)}function _arrayWithoutHoles$a(tt){if(Array.isArray(tt))return _arrayLikeToArray$j(tt)}function _arrayLikeToArray$j(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$8(tt){return _getPrototypeOf$8=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$8(tt)}var Animate=function(tt){_inherits$8(nt,tt);var et=_createSuper$8(nt);function nt(rt,it){var ot;_classCallCheck$a(this,nt),ot=et.call(this,rt,it);var at=ot.props,st=at.isActive,lt=at.attributeName,ct=at.from,ut=at.to,ht=at.steps,dt=at.children,pt=at.duration;if(ot.handleStyleChange=ot.handleStyleChange.bind(_assertThisInitialized$8(ot)),ot.changeStyle=ot.changeStyle.bind(_assertThisInitialized$8(ot)),!st||pt<=0)return ot.state={style:{}},typeof dt=="function"&&(ot.state={style:ut}),_possibleConstructorReturn$8(ot);if(ht&&ht.length)ot.state={style:ht[0].style};else if(ct){if(typeof dt=="function")return ot.state={style:ct},_possibleConstructorReturn$8(ot);ot.state={style:lt?_defineProperty$n({},lt,ct):ct}}else ot.state={style:{}};return ot}return _createClass$a(nt,[{key:"componentDidMount",value:function(){var it=this.props,ot=it.isActive,at=it.canBegin;this.mounted=!0,!(!ot||!at)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(it){var ot=this.props,at=ot.isActive,st=ot.canBegin,lt=ot.attributeName,ct=ot.shouldReAnimate,ut=ot.to,ht=ot.from,dt=this.state.style;if(st){if(!at){var pt={style:lt?_defineProperty$n({},lt,ut):ut};this.state&&dt&&(lt&&dt[lt]!==ut||!lt&&dt!==ut)&&this.setState(pt);return}if(!(deepEqual(it.to,ut)&&it.canBegin&&it.isActive)){var mt=!it.canBegin||!it.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var gt=mt||ct?ht:it.to;if(this.state&&dt){var yt={style:lt?_defineProperty$n({},lt,gt):gt};(lt&&[lt]!==gt||!lt&&dt!==gt)&&this.setState(yt)}this.runAnimation(_objectSpread$m(_objectSpread$m({},this.props),{},{from:gt,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1,this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation()}},{key:"handleStyleChange",value:function(it){this.changeStyle(it)}},{key:"changeStyle",value:function(it){this.mounted&&this.setState({style:it})}},{key:"runJSAnimation",value:function(it){var ot=this,at=it.from,st=it.to,lt=it.duration,ct=it.easing,ut=it.begin,ht=it.onAnimationEnd,dt=it.onAnimationStart,pt=configUpdate(at,st,configEasing(ct),lt,this.changeStyle),mt=function(){ot.stopJSAnimation=pt()};this.manager.start([dt,ut,mt,lt,ht])}},{key:"runStepAnimation",value:function(it){var ot=this,at=it.steps,st=it.begin,lt=it.onAnimationStart,ct=at[0],ut=ct.style,ht=ct.duration,dt=ht===void 0?0:ht,pt=function(gt,yt,bt){if(bt===0)return gt;var wt=yt.duration,vt=yt.easing,kt=vt===void 0?"ease":vt,St=yt.style,Et=yt.properties,At=yt.onAnimationEnd,Tt=bt>0?at[bt-1]:yt,Mt=Et||Object.keys(St);if(typeof kt=="function"||kt==="spring")return[].concat(_toConsumableArray$a(gt),[ot.runJSAnimation.bind(ot,{from:Tt.style,to:St,duration:wt,easing:kt}),wt]);var Lt=getTransitionVal(Mt,wt,kt),jt=_objectSpread$m(_objectSpread$m(_objectSpread$m({},Tt.style),St),{},{transition:Lt});return[].concat(_toConsumableArray$a(gt),[jt,wt,At]).filter(identity$7)};return this.manager.start([lt].concat(_toConsumableArray$a(at.reduce(pt,[ut,Math.max(dt,st)])),[it.onAnimationEnd]))}},{key:"runAnimation",value:function(it){this.manager||(this.manager=createAnimateManager());var ot=it.begin,at=it.duration,st=it.attributeName,lt=it.to,ct=it.easing,ut=it.onAnimationStart,ht=it.onAnimationEnd,dt=it.steps,pt=it.children,mt=this.manager;if(this.unSubscribe=mt.subscribe(this.handleStyleChange),typeof ct=="function"||typeof pt=="function"||ct==="spring"){this.runJSAnimation(it);return}if(dt.length>1){this.runStepAnimation(it);return}var gt=st?_defineProperty$n({},st,lt):lt,yt=getTransitionVal(Object.keys(gt),at,ct);mt.start([ut,ot,_objectSpread$m(_objectSpread$m({},gt),{},{transition:yt}),at,ht])}},{key:"render",value:function(){var it=this.props,ot=it.children;it.begin;var at=it.duration;it.attributeName,it.easing;var st=it.isActive;it.steps,it.from,it.to,it.canBegin,it.onAnimationEnd,it.shouldReAnimate,it.onAnimationReStart;var lt=_objectWithoutProperties$8(it,_excluded$8),ct=reactExports.Children.count(ot),ut=translateStyle(this.state.style);if(typeof ot=="function")return ot(ut);if(!st||ct===0||at<=0)return ot;var ht=function(pt){var mt=pt.props,gt=mt.style,yt=gt===void 0?{}:gt,bt=mt.className,wt=reactExports.cloneElement(pt,_objectSpread$m(_objectSpread$m({},lt),{},{style:_objectSpread$m(_objectSpread$m({},yt),ut),className:bt}));return wt};return ct===1?ht(reactExports.Children.only(ot)):React$1.createElement("div",null,reactExports.Children.map(ot,function(dt){return ht(dt)}))}}]),nt}(reactExports.PureComponent);Animate.displayName="Animate";Animate.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Animate.propTypes={from:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),to:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),attributeName:PropTypes.string,duration:PropTypes.number,begin:PropTypes.number,easing:PropTypes.oneOfType([PropTypes.string,PropTypes.func]),steps:PropTypes.arrayOf(PropTypes.shape({duration:PropTypes.number.isRequired,style:PropTypes.object.isRequired,easing:PropTypes.oneOfType([PropTypes.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),PropTypes.func]),properties:PropTypes.arrayOf("string"),onAnimationEnd:PropTypes.func})),children:PropTypes.oneOfType([PropTypes.node,PropTypes.func]),isActive:PropTypes.bool,canBegin:PropTypes.bool,onAnimationEnd:PropTypes.func,shouldReAnimate:PropTypes.bool,onAnimationStart:PropTypes.func,onAnimationReStart:PropTypes.func};Number.isFinite===void 0&&(Number.isFinite=function(tt){return typeof tt=="number"&&isFinite(tt)});PropTypes.object,PropTypes.object,PropTypes.object,PropTypes.element;PropTypes.object,PropTypes.object,PropTypes.object,PropTypes.oneOfType([PropTypes.array,PropTypes.element]),PropTypes.any;function baseSortBy$1(tt,et){var nt=tt.length;for(tt.sort(et);nt--;)tt[nt]=tt[nt].value;return tt}var _baseSortBy=baseSortBy$1,isSymbol$1=isSymbol_1;function compareAscending$1(tt,et){if(tt!==et){var nt=tt!==void 0,rt=tt===null,it=tt===tt,ot=isSymbol$1(tt),at=et!==void 0,st=et===null,lt=et===et,ct=isSymbol$1(et);if(!st&&!ct&&!ot&&tt>et||ot&&at&<&&!st&&!ct||rt&&at&<||!nt&<||!it)return 1;if(!rt&&!ot&&!ct&&tt=st)return lt;var ct=nt[rt];return lt*(ct=="desc"?-1:1)}}return tt.index-et.index}var _compareMultiple=compareMultiple$1,arrayMap=_arrayMap,baseGet=_baseGet,baseIteratee$1=_baseIteratee,baseMap=_baseMap,baseSortBy=_baseSortBy,baseUnary=_baseUnary,compareMultiple=_compareMultiple,identity$6=identity_1,isArray=isArray_1;function baseOrderBy$1(tt,et,nt){et.length?et=arrayMap(et,function(ot){return isArray(ot)?function(at){return baseGet(at,ot.length===1?ot[0]:ot)}:ot}):et=[identity$6];var rt=-1;et=arrayMap(et,baseUnary(baseIteratee$1));var it=baseMap(tt,function(ot,at,st){var lt=arrayMap(et,function(ct){return ct(ot)});return{criteria:lt,index:++rt,value:ot}});return baseSortBy(it,function(ot,at){return compareMultiple(ot,at,nt)})}var _baseOrderBy=baseOrderBy$1,baseFlatten=_baseFlatten,baseOrderBy=_baseOrderBy,baseRest=_baseRest,isIterateeCall$1=_isIterateeCall,sortBy=baseRest(function(tt,et){if(tt==null)return[];var nt=et.length;return nt>1&&isIterateeCall$1(tt,et[0],et[1])?et=[]:nt>2&&isIterateeCall$1(et[0],et[1],et[2])&&(et=[et[0]]),baseOrderBy(tt,baseFlatten(et,1),[])}),sortBy_1=sortBy;const _sortBy=getDefaultExportFromCjs(sortBy_1);function _typeof$m(tt){"@babel/helpers - typeof";return _typeof$m=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$m(tt)}function _slicedToArray$9(tt,et){return _arrayWithHoles$9(tt)||_iterableToArrayLimit$9(tt,et)||_unsupportedIterableToArray$i(tt,et)||_nonIterableRest$9()}function _nonIterableRest$9(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$i(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$i(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$i(tt,et)}}function _arrayLikeToArray$i(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nttt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);ntEPS$1||Math.abs(En.height-ct)>EPS$1)&&(at(En.width),ut(En.height))}else(ot!==-1||ct!==-1)&&(at(-1),ut(-1))};return cn(),function(){document.removeEventListener("keydown",Lt)}},[ct,ot,Et,pt,bt.x,bt.y,Lt]);var jt=function(_n){var En=_n.key,an=_n.tooltipDimension,en=_n.viewBoxDimension;if(Tt&&isNumber(Tt[En]))return Tt[En];var Tn=Et[En]-an-At,Rn=Et[En]+At;if(kt!=null&&kt[En])return St[En]?Tn:Rn;if(St!=null&&St[En]){var An=Tn,yn=Mt[En];return Andn?Math.max(Tn,Mt[En]):Math.max(Rn,Mt[En])},Rt=et.payload,$t=et.payloadUniqBy,xt=et.filterNull,It=et.active,Ot=et.wrapperStyle,zt=et.useTranslate3d,Ut=et.isAnimationActive,Wt=et.animationDuration,Ft=et.animationEasing,Nt=getUniqPayload($t,xt&&Rt&&Rt.length?Rt.filter(function(cn){return!_isNil(cn.value)}):Rt),Ct=Nt&&Nt.length,Ht=et.content,Jt=_objectSpread$k({pointerEvents:"none",visibility:!pt&&It&&Ct?"visible":"hidden",position:"absolute",top:0,left:0},Ot),nn,Yt;Tt&&isNumber(Tt.x)&&isNumber(Tt.y)?(nn=Tt.x,Yt=Tt.y):ot>0&&ct>0&&Et?(nn=jt({key:"x",tooltipDimension:ot,viewBoxDimension:Mt.width}),Yt=jt({key:"y",tooltipDimension:ct,viewBoxDimension:Mt.height})):Jt.visibility="hidden",Jt=_objectSpread$k(_objectSpread$k({},translateStyle({transform:zt?"translate3d(".concat(nn,"px, ").concat(Yt,"px, 0)"):"translate(".concat(nn,"px, ").concat(Yt,"px)")})),Jt),Ut&&It&&(Jt=_objectSpread$k(_objectSpread$k({},translateStyle({transition:"transform ".concat(Wt,"ms ").concat(Ft)})),Jt));var fn=classNames(CLS_PREFIX,(nt={},_defineProperty$l(nt,"".concat(CLS_PREFIX,"-right"),isNumber(nn)&&Et&&isNumber(Et.x)&&nn>=Et.x),_defineProperty$l(nt,"".concat(CLS_PREFIX,"-left"),isNumber(nn)&&Et&&isNumber(Et.x)&&nn=Et.y),_defineProperty$l(nt,"".concat(CLS_PREFIX,"-top"),isNumber(Yt)&&Et&&isNumber(Et.y)&&Yt=et||At<0||ht&&Tt>=ot}function bt(){var Et=now();if(yt(Et))return wt(Et);st=setTimeout(bt,gt(Et))}function wt(Et){return st=void 0,dt&&rt?pt(Et):(rt=it=void 0,at)}function vt(){st!==void 0&&clearTimeout(st),ct=0,rt=lt=it=st=void 0}function kt(){return st===void 0?at:wt(now())}function St(){var Et=now(),At=yt(Et);if(rt=arguments,it=this,lt=Et,At){if(st===void 0)return mt(lt);if(ht)return clearTimeout(st),st=setTimeout(bt,et),pt(lt)}return st===void 0&&(st=setTimeout(bt,et)),at}return St.cancel=vt,St.flush=kt,St}var debounce_1=debounce$1;const debounce$2=getDefaultExportFromCjs(debounce_1);var debounce=debounce_1,isObject$1=isObject_1,FUNC_ERROR_TEXT="Expected a function";function throttle(tt,et,nt){var rt=!0,it=!0;if(typeof tt!="function")throw new TypeError(FUNC_ERROR_TEXT);return isObject$1(nt)&&(rt="leading"in nt?!!nt.leading:rt,it="trailing"in nt?!!nt.trailing:it),debounce(tt,et,{leading:rt,maxWait:et,trailing:it})}var throttle_1=throttle;const _throttle=getDefaultExportFromCjs(throttle_1);var extendStatics=function(tt,et){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(nt,rt){nt.__proto__=rt}||function(nt,rt){for(var it in rt)rt.hasOwnProperty(it)&&(nt[it]=rt[it])},extendStatics(tt,et)};function __extends(tt,et){extendStatics(tt,et);function nt(){this.constructor=tt}tt.prototype=et===null?Object.create(et):(nt.prototype=et.prototype,new nt)}function __rest(tt,et){var nt={};for(var rt in tt)Object.prototype.hasOwnProperty.call(tt,rt)&&et.indexOf(rt)<0&&(nt[rt]=tt[rt]);if(tt!=null&&typeof Object.getOwnPropertySymbols=="function")for(var it=0,rt=Object.getOwnPropertySymbols(tt);it"u"},isDOMElement=function(tt){return tt instanceof Element||tt instanceof HTMLDocument},createNotifier=function(tt,et,nt){return function(rt){var it=rt.width,ot=rt.height;tt(function(at){return at.width===it&&at.height===ot||at.width===it&&!nt||at.height===ot&&!et?at:{width:it,height:ot}})}},ResizeDetector=function(tt){__extends(et,tt);function et(nt){var rt=tt.call(this,nt)||this;rt.cancelHandler=function(){rt.resizeHandler&&rt.resizeHandler.cancel&&(rt.resizeHandler.cancel(),rt.resizeHandler=null)},rt.attachObserver=function(){var ct=rt.props,ut=ct.targetRef,ht=ct.observerOptions;if(!isSSR()){ut&&ut.current&&(rt.targetRef.current=ut.current);var dt=rt.getElement();dt&&(rt.observableElement&&rt.observableElement===dt||(rt.observableElement=dt,rt.resizeObserver.observe(dt,ht)))}},rt.getElement=function(){var ct=rt.props,ut=ct.querySelector,ht=ct.targetDomEl;if(isSSR())return null;if(ut)return document.querySelector(ut);if(ht&&isDOMElement(ht))return ht;if(rt.targetRef&&isDOMElement(rt.targetRef.current))return rt.targetRef.current;var dt=reactDomExports.findDOMNode(rt);if(!dt)return null;var pt=rt.getRenderType();switch(pt){case"renderProp":return dt;case"childFunction":return dt;case"child":return dt;case"childArray":return dt;default:return dt.parentElement}},rt.createResizeHandler=function(ct){var ut=rt.props,ht=ut.handleWidth,dt=ht===void 0?!0:ht,pt=ut.handleHeight,mt=pt===void 0?!0:pt,gt=ut.onResize;if(!(!dt&&!mt)){var yt=createNotifier(function(bt){return rt.setState(bt,function(){return gt==null?void 0:gt(rt.state.width,rt.state.height)})},dt,mt);ct.forEach(function(bt){var wt=bt&&bt.contentRect||{},vt=wt.width,kt=wt.height,St=!rt.skipOnMount&&!isSSR();St&&yt({width:vt,height:kt}),rt.skipOnMount=!1})}},rt.getRenderType=function(){var ct=rt.props,ut=ct.render,ht=ct.children;return isFunction(ut)?"renderProp":isFunction(ht)?"childFunction":reactExports.isValidElement(ht)?"child":Array.isArray(ht)?"childArray":"parent"};var it=nt.skipOnMount,ot=nt.refreshMode,at=nt.refreshRate,st=at===void 0?1e3:at,lt=nt.refreshOptions;return rt.state={width:void 0,height:void 0},rt.skipOnMount=it,rt.targetRef=reactExports.createRef(),rt.observableElement=null,isSSR()||(rt.resizeHandler=patchResizeHandler(rt.createResizeHandler,ot,st,lt),rt.resizeObserver=new window.ResizeObserver(rt.resizeHandler)),rt}return et.prototype.componentDidMount=function(){this.attachObserver()},et.prototype.componentDidUpdate=function(){this.attachObserver()},et.prototype.componentWillUnmount=function(){isSSR()||(this.observableElement=null,this.resizeObserver.disconnect(),this.cancelHandler())},et.prototype.render=function(){var nt=this.props,rt=nt.render,it=nt.children,ot=nt.nodeType,at=ot===void 0?"div":ot,st=this.state,lt=st.width,ct=st.height,ut={width:lt,height:ct,targetRef:this.targetRef},ht=this.getRenderType();switch(ht){case"renderProp":return rt==null?void 0:rt(ut);case"childFunction":{var dt=it;return dt==null?void 0:dt(ut)}case"child":{var pt=it;if(pt.type&&typeof pt.type=="string"){ut.targetRef;var mt=__rest(ut,["targetRef"]);return reactExports.cloneElement(pt,mt)}return reactExports.cloneElement(pt,ut)}case"childArray":{var gt=it;return gt.map(function(yt){return!!yt&&reactExports.cloneElement(yt,ut)})}default:return React$1.createElement(at,null)}},et}(reactExports.PureComponent),warn=function(et,nt){for(var rt=arguments.length,it=new Array(rt>2?rt-2:0),ot=2;ottt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt0,"The aspect(%s) must be greater than zero.",nt);var xt=isPercent(at)?Rt:at,It=isPercent(lt)?$t:lt;return nt&&nt>0&&(xt?It=xt/nt:It&&(xt=It*nt),dt&&It>dt&&(It=dt)),warn(xt>0||It>0,`The width(%s) and height(%s) of chart should be greater than 0, please check the style of container, or the props width(%s) and height(%s), or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,xt,It,at,lt,ut,ht,nt),reactExports.cloneElement(pt,{width:xt,height:It})},[nt,pt,lt,dt,ht,ut,St,at]);reactExports.useEffect(function(){var Rt=Et();Rt&&Tt(Rt)},[Et]);var jt={width:at,height:lt,minWidth:ut,minHeight:ht,maxHeight:dt};return React$1.createElement(ResizeDetector,{handleWidth:!0,handleHeight:!0,onResize:Mt,targetRef:At,refreshMode:gt>0?"debounce":void 0,refreshRate:gt},React$1.createElement("div",_extends$k({},yt!=null?{id:"".concat(yt)}:{},{className:classNames("recharts-responsive-container",bt),style:jt,ref:At}),Lt))}),Cell=function(et){return null};Cell.displayName="Cell";var dist={exports:{}},openParentheses="(".charCodeAt(0),closeParentheses=")".charCodeAt(0),singleQuote="'".charCodeAt(0),doubleQuote='"'.charCodeAt(0),backslash="\\".charCodeAt(0),slash="/".charCodeAt(0),comma=",".charCodeAt(0),colon=":".charCodeAt(0),star="*".charCodeAt(0),parse$2=function(tt){for(var et=[],nt=tt,rt,it,ot,at,st,lt,ct,ut=0,ht=nt.charCodeAt(ut),dt=nt.length,pt=[{nodes:et}],mt=0,gt,yt="",bt="",wt="";ut=48&&ht<=57)ut=!0;else if(ht===rt||ht===it){if(ct>-1)break;ct=at}else if(ht===nt){if(lt)break;lt=!0}else if(ht===et||ht===tt){if(at!==0)break}else break;at+=1}return ct+1===at&&at--,ut?{number:ot.slice(0,at),unit:ot.slice(at)}:!1},unit$1}var parse$1=parse$2,walk=walk$1,stringify=stringify_1;function ValueParser(tt){return this instanceof ValueParser?(this.nodes=parse$1(tt),this):new ValueParser(tt)}ValueParser.prototype.toString=function(){return Array.isArray(this.nodes)?stringify(this.nodes):""};ValueParser.prototype.walk=function(tt,et){return walk(this.nodes,tt,et),this};ValueParser.unit=requireUnit();ValueParser.walk=walk;ValueParser.stringify=stringify;var lib$1=ValueParser,parser$1={};(function(tt){var et=function(){function nt(dt,pt){Object.defineProperty(this,"name",{enumerable:!1,writable:!1,value:"JisonParserError"}),dt==null&&(dt="???"),Object.defineProperty(this,"message",{enumerable:!1,writable:!0,value:dt}),this.hash=pt;var mt;if(pt&&pt.exception instanceof Error){var gt=pt.exception;this.message=gt.message||dt,mt=gt.stack}mt||(Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,this.constructor):mt=new Error(dt).stack),mt&&Object.defineProperty(this,"stack",{enumerable:!1,writable:!1,value:mt})}typeof Object.setPrototypeOf=="function"?Object.setPrototypeOf(nt.prototype,Error.prototype):nt.prototype=Object.create(Error.prototype),nt.prototype.constructor=nt,nt.prototype.name="JisonParserError";function rt(dt){for(var pt=[],mt=dt.pop,gt=dt.rule,yt=0,bt=mt.length;yt"u"&&Object.prototype.hasOwnProperty.call(_n,En)&&(cn[En]=_n[En])}Mt(Et,this.yy),Et.lexer=At,Et.parser=this,typeof Et.parseError=="function"?this.parseError=function(_n,En,an){return an||(an=this.JisonParserError),Et.parseError.call(this,_n,En,an)}:this.parseError=this.originalParseError,typeof Et.quoteName=="function"?this.quoteName=function(_n){return Et.quoteName.call(this,_n)}:this.quoteName=this.originalQuoteName,this.cleanupAfterParse=function(_n,En,an){var en;if(En){var Tn;(Et.post_parse||this.post_parse)&&(Tn=this.constructParseErrorInfo(null,null,null,!1)),Et.post_parse&&(en=Et.post_parse.call(this,Et,_n,Tn),typeof en<"u"&&(_n=en)),this.post_parse&&(en=this.post_parse.call(this,Et,_n,Tn),typeof en<"u"&&(_n=en)),Tn&&Tn.destroy&&Tn.destroy()}if(this.__reentrant_call_depth>1)return _n;if(At.cleanupAfterLex&&At.cleanupAfterLex(an),Et&&(Et.lexer=void 0,Et.parser=void 0,At.yy===Et&&(At.yy=void 0)),Et=void 0,this.parseError=this.originalParseError,this.quoteName=this.originalQuoteName,gt.length=0,yt.length=0,bt.length=0,vt=0,!an){for(var Rn=this.__error_infos.length-1;Rn>=0;Rn--){var An=this.__error_infos[Rn];An&&typeof An.destroy=="function"&&An.destroy()}this.__error_infos.length=0}return _n},this.constructParseErrorInfo=function(_n,En,an,en){var Tn={errStr:_n,exception:En,text:At.match,value:At.yytext,token:this.describeSymbol(kt)||kt,token_id:kt,line:At.yylineno,expected:an,recoverable:en,state:$t,action:xt,new_state:Nt,symbol_stack:gt,state_stack:yt,value_stack:bt,stack_pointer:vt,yy:Et,lexer:At,parser:this,destroy:function(){var An=!!this.recoverable;for(var yn in this)this.hasOwnProperty(yn)&&typeof yn=="object"&&(this[yn]=void 0);this.recoverable=An}};return this.__error_infos.push(Tn),Tn};function Lt(){var cn=At.lex();return typeof cn!="number"&&(cn=mt.symbols_[cn]||cn),cn||St}function jt(){var cn=At.fastLex();return typeof cn!="number"&&(cn=mt.symbols_[cn]||cn),cn||St}var Rt=Lt,$t,xt,It,Ot,zt={$:!0,_$:void 0,yy:Et},Ut,Wt,Ft,Nt,Ct=!1;try{if(this.__reentrant_call_depth++,At.setInput(pt,Et),typeof At.canIUse=="function"){var Ht=At.canIUse();Ht.fastLex&&typeof jt=="function"&&(Rt=jt)}for(bt[vt]=null,yt[vt]=0,gt[vt]=0,++vt,this.pre_parse&&this.pre_parse.call(this,Et),Et.pre_parse&&Et.pre_parse.call(this,Et),Nt=yt[vt-1];;){if($t=Nt,this.defaultActions[$t])xt=2,Nt=this.defaultActions[$t];else if(kt||(kt=Rt()),Ot=wt[$t]&&wt[$t][kt]||Tt,Nt=Ot[1],xt=Ot[0],!xt){var Jt,nn=this.describeSymbol(kt)||kt,Yt=this.collect_expected_token_set($t);typeof At.yylineno=="number"?Jt="Parse error on line "+(At.yylineno+1)+": ":Jt="Parse error: ",typeof At.showPosition=="function"&&(Jt+=` + height and width.`,xt,It,at,lt,ut,ht,nt),reactExports.cloneElement(pt,{width:xt,height:It})},[nt,pt,lt,dt,ht,ut,St,at]);reactExports.useEffect(function(){var Rt=Tt();Rt&&Et(Rt)},[Tt]);var jt={width:at,height:lt,minWidth:ut,minHeight:ht,maxHeight:dt};return React$1.createElement(ResizeDetector,{handleWidth:!0,handleHeight:!0,onResize:Mt,targetRef:At,refreshMode:gt>0?"debounce":void 0,refreshRate:gt},React$1.createElement("div",_extends$k({},yt!=null?{id:"".concat(yt)}:{},{className:classNames("recharts-responsive-container",bt),style:jt,ref:At}),Lt))}),Cell=function(et){return null};Cell.displayName="Cell";var dist={exports:{}},openParentheses="(".charCodeAt(0),closeParentheses=")".charCodeAt(0),singleQuote="'".charCodeAt(0),doubleQuote='"'.charCodeAt(0),backslash="\\".charCodeAt(0),slash="/".charCodeAt(0),comma=",".charCodeAt(0),colon=":".charCodeAt(0),star="*".charCodeAt(0),parse$2=function(tt){for(var et=[],nt=tt,rt,it,ot,at,st,lt,ct,ut=0,ht=nt.charCodeAt(ut),dt=nt.length,pt=[{nodes:et}],mt=0,gt,yt="",bt="",wt="";ut=48&&ht<=57)ut=!0;else if(ht===rt||ht===it){if(ct>-1)break;ct=at}else if(ht===nt){if(lt)break;lt=!0}else if(ht===et||ht===tt){if(at!==0)break}else break;at+=1}return ct+1===at&&at--,ut?{number:ot.slice(0,at),unit:ot.slice(at)}:!1},unit$1}var parse$1=parse$2,walk=walk$1,stringify=stringify_1;function ValueParser(tt){return this instanceof ValueParser?(this.nodes=parse$1(tt),this):new ValueParser(tt)}ValueParser.prototype.toString=function(){return Array.isArray(this.nodes)?stringify(this.nodes):""};ValueParser.prototype.walk=function(tt,et){return walk(this.nodes,tt,et),this};ValueParser.unit=requireUnit();ValueParser.walk=walk;ValueParser.stringify=stringify;var lib$1=ValueParser,parser$1={};(function(tt){var et=function(){function nt(dt,pt){Object.defineProperty(this,"name",{enumerable:!1,writable:!1,value:"JisonParserError"}),dt==null&&(dt="???"),Object.defineProperty(this,"message",{enumerable:!1,writable:!0,value:dt}),this.hash=pt;var mt;if(pt&&pt.exception instanceof Error){var gt=pt.exception;this.message=gt.message||dt,mt=gt.stack}mt||(Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,this.constructor):mt=new Error(dt).stack),mt&&Object.defineProperty(this,"stack",{enumerable:!1,writable:!1,value:mt})}typeof Object.setPrototypeOf=="function"?Object.setPrototypeOf(nt.prototype,Error.prototype):nt.prototype=Object.create(Error.prototype),nt.prototype.constructor=nt,nt.prototype.name="JisonParserError";function rt(dt){for(var pt=[],mt=dt.pop,gt=dt.rule,yt=0,bt=mt.length;yt"u"&&Object.prototype.hasOwnProperty.call(_n,En)&&(cn[En]=_n[En])}Mt(Tt,this.yy),Tt.lexer=At,Tt.parser=this,typeof Tt.parseError=="function"?this.parseError=function(_n,En,an){return an||(an=this.JisonParserError),Tt.parseError.call(this,_n,En,an)}:this.parseError=this.originalParseError,typeof Tt.quoteName=="function"?this.quoteName=function(_n){return Tt.quoteName.call(this,_n)}:this.quoteName=this.originalQuoteName,this.cleanupAfterParse=function(_n,En,an){var en;if(En){var Tn;(Tt.post_parse||this.post_parse)&&(Tn=this.constructParseErrorInfo(null,null,null,!1)),Tt.post_parse&&(en=Tt.post_parse.call(this,Tt,_n,Tn),typeof en<"u"&&(_n=en)),this.post_parse&&(en=this.post_parse.call(this,Tt,_n,Tn),typeof en<"u"&&(_n=en)),Tn&&Tn.destroy&&Tn.destroy()}if(this.__reentrant_call_depth>1)return _n;if(At.cleanupAfterLex&&At.cleanupAfterLex(an),Tt&&(Tt.lexer=void 0,Tt.parser=void 0,At.yy===Tt&&(At.yy=void 0)),Tt=void 0,this.parseError=this.originalParseError,this.quoteName=this.originalQuoteName,gt.length=0,yt.length=0,bt.length=0,vt=0,!an){for(var Rn=this.__error_infos.length-1;Rn>=0;Rn--){var An=this.__error_infos[Rn];An&&typeof An.destroy=="function"&&An.destroy()}this.__error_infos.length=0}return _n},this.constructParseErrorInfo=function(_n,En,an,en){var Tn={errStr:_n,exception:En,text:At.match,value:At.yytext,token:this.describeSymbol(kt)||kt,token_id:kt,line:At.yylineno,expected:an,recoverable:en,state:$t,action:xt,new_state:Nt,symbol_stack:gt,state_stack:yt,value_stack:bt,stack_pointer:vt,yy:Tt,lexer:At,parser:this,destroy:function(){var An=!!this.recoverable;for(var yn in this)this.hasOwnProperty(yn)&&typeof yn=="object"&&(this[yn]=void 0);this.recoverable=An}};return this.__error_infos.push(Tn),Tn};function Lt(){var cn=At.lex();return typeof cn!="number"&&(cn=mt.symbols_[cn]||cn),cn||St}function jt(){var cn=At.fastLex();return typeof cn!="number"&&(cn=mt.symbols_[cn]||cn),cn||St}var Rt=Lt,$t,xt,It,Ot,zt={$:!0,_$:void 0,yy:Tt},Ut,Wt,Ft,Nt,Ct=!1;try{if(this.__reentrant_call_depth++,At.setInput(pt,Tt),typeof At.canIUse=="function"){var Ht=At.canIUse();Ht.fastLex&&typeof jt=="function"&&(Rt=jt)}for(bt[vt]=null,yt[vt]=0,gt[vt]=0,++vt,this.pre_parse&&this.pre_parse.call(this,Tt),Tt.pre_parse&&Tt.pre_parse.call(this,Tt),Nt=yt[vt-1];;){if($t=Nt,this.defaultActions[$t])xt=2,Nt=this.defaultActions[$t];else if(kt||(kt=Rt()),Ot=wt[$t]&&wt[$t][kt]||Et,Nt=Ot[1],xt=Ot[0],!xt){var Jt,nn=this.describeSymbol(kt)||kt,Yt=this.collect_expected_token_set($t);typeof At.yylineno=="number"?Jt="Parse error on line "+(At.yylineno+1)+": ":Jt="Parse error: ",typeof At.showPosition=="function"&&(Jt+=` `+At.showPosition(79-10,10)+` `),Yt.length?Jt+="Expecting "+Yt.join(", ")+", got unexpected "+nn:Jt+="Unexpected "+nn,Ut=this.constructParseErrorInfo(Jt,null,Yt,!1),It=this.parseError(Ut.errStr,Ut,this.JisonParserError),typeof It<"u"&&(Ct=It);break}switch(xt){default:if(xt instanceof Array){Ut=this.constructParseErrorInfo("Parse Error: multiple actions possible at state: "+$t+", token: "+kt,null,null,!1),It=this.parseError(Ut.errStr,Ut,this.JisonParserError),typeof It<"u"&&(Ct=It);break}Ut=this.constructParseErrorInfo("Parsing halted. No viable error recovery approach available due to internal system failure.",null,null,!1),It=this.parseError(Ut.errStr,Ut,this.JisonParserError),typeof It<"u"&&(Ct=It);break;case 1:gt[vt]=kt,bt[vt]=At.yytext,yt[vt]=Nt,++vt,kt=0;continue;case 2:if(Ft=this.productions_[Nt-1],Wt=Ft[1],It=this.performAction.call(zt,Nt,vt-1,bt),typeof It<"u"){Ct=It;break}vt-=Wt;var fn=Ft[0];gt[vt]=fn,bt[vt]=zt.$,Nt=wt[yt[vt-1]][fn],yt[vt]=Nt,++vt;continue;case 3:vt!==-2&&(Ct=!0,vt--,typeof bt[vt]<"u"&&(Ct=bt[vt]));break}break}}catch(cn){if(cn instanceof this.JisonParserError)throw cn;if(At&&typeof At.JisonLexerError=="function"&&cn instanceof At.JisonLexerError)throw cn;Ut=this.constructParseErrorInfo("Parsing aborted due to exception.",cn,null,!1),Ct=!1,It=this.parseError(Ut.errStr,Ut,this.JisonParserError),typeof It<"u"&&(Ct=It)}finally{Ct=this.cleanupAfterParse(Ct,!0,!0),this.__reentrant_call_depth--}return Ct}};ct.originalParseError=ct.parseError,ct.originalQuoteName=ct.quoteName;var ut=function(){function dt(mt,gt){Object.defineProperty(this,"name",{enumerable:!1,writable:!1,value:"JisonLexerError"}),mt==null&&(mt="???"),Object.defineProperty(this,"message",{enumerable:!1,writable:!0,value:mt}),this.hash=gt;var yt;if(gt&>.exception instanceof Error){var bt=gt.exception;this.message=bt.message||mt,yt=bt.stack}yt||(Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,this.constructor):yt=new Error(mt).stack),yt&&Object.defineProperty(this,"stack",{enumerable:!1,writable:!1,value:yt})}typeof Object.setPrototypeOf=="function"?Object.setPrototypeOf(dt.prototype,Error.prototype):dt.prototype=Object.create(Error.prototype),dt.prototype.constructor=dt,dt.prototype.name="JisonLexerError";var pt={EOF:1,ERROR:2,__currentRuleSet__:null,__error_infos:[],__decompressed:!1,done:!1,_backtrack:!1,_input:"",_more:!1,_signaled_error_token:!1,conditionStack:[],match:"",matched:"",matches:!1,yytext:"",offset:0,yyleng:0,yylineno:0,yylloc:null,constructLexErrorInfo:function(gt,yt,bt){if(gt=""+gt,bt==null&&(bt=!(gt.indexOf(` `)>0&>.indexOf("^")>0)),this.yylloc&&bt){if(typeof this.prettyPrintRange=="function")this.prettyPrintRange(this.yylloc),/\n\s*$/.test(gt)||(gt+=` @@ -7155,7 +7155,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho `+this.prettyPrintRange(this.yylloc);else if(typeof this.showPosition=="function"){var wt=this.showPosition();wt&&(gt.length&>[gt.length-1]!==` `&&wt[0]!==` `?gt+=` -`+wt:gt+=wt)}}var vt={errStr:gt,recoverable:!!yt,text:this.match,token:null,line:this.yylineno,loc:this.yylloc,yy:this.yy,lexer:this,destroy:function(){var St=!!this.recoverable;for(var Tt in this)this.hasOwnProperty(Tt)&&typeof Tt=="object"&&(this[Tt]=void 0);this.recoverable=St}};return this.__error_infos.push(vt),vt},parseError:function(gt,yt,bt){if(bt||(bt=this.JisonLexerError),this.yy){if(this.yy.parser&&typeof this.yy.parser.parseError=="function")return this.yy.parser.parseError.call(this,gt,yt,bt)||this.ERROR;if(typeof this.yy.parseError=="function")return this.yy.parseError.call(this,gt,yt,bt)||this.ERROR}throw new bt(gt,yt)},yyerror:function(gt){var yt="";this.yylloc&&(yt=" on line "+(this.yylineno+1));var bt=this.constructLexErrorInfo("Lexical error"+yt+": "+gt,this.options.lexerErrorsAreRecoverable),wt=Array.prototype.slice.call(arguments,1);return wt.length&&(bt.extra_error_attributes=wt),this.parseError(bt.errStr,bt,this.JisonLexerError)||this.ERROR},cleanupAfterLex:function(gt){if(this.setInput("",{}),!gt){for(var yt=this.__error_infos.length-1;yt>=0;yt--){var bt=this.__error_infos[yt];bt&&typeof bt.destroy=="function"&&bt.destroy()}this.__error_infos.length=0}return this},clear:function(){this.yytext="",this.yyleng=0,this.match="",this.matches=!1,this._more=!1,this._backtrack=!1;var gt=this.yylloc?this.yylloc.last_column:0;this.yylloc={first_line:this.yylineno+1,first_column:gt,last_line:this.yylineno+1,last_column:gt,range:[this.offset,this.offset]}},setInput:function(gt,yt){if(this.yy=yt||this.yy||{},!this.__decompressed){for(var bt=this.rules,wt=0,vt=bt.length;wt=0;yt--){var bt=this.__error_infos[yt];bt&&typeof bt.destroy=="function"&&bt.destroy()}this.__error_infos.length=0}return this},clear:function(){this.yytext="",this.yyleng=0,this.match="",this.matches=!1,this._more=!1,this._backtrack=!1;var gt=this.yylloc?this.yylloc.last_column:0;this.yylloc={first_line:this.yylineno+1,first_column:gt,last_line:this.yylineno+1,last_column:gt,range:[this.offset,this.offset]}},setInput:function(gt,yt){if(this.yy=yt||this.yy||{},!this.__decompressed){for(var bt=this.rules,wt=0,vt=bt.length;wt1){this.yylineno-=bt.length-1,this.yylloc.last_line=this.yylineno+1;var wt=this.match,vt=wt.split(/(?:\r\n?|\n)/g);vt.length===1&&(wt=this.matched,vt=wt.split(/(?:\r\n?|\n)/g)),this.yylloc.last_column=vt[vt.length-1].length}else this.yylloc.last_column-=yt;return this.yylloc.range[1]=this.yylloc.range[0]+this.yyleng,this.done=!1,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else{var gt="";this.yylloc&&(gt=" on line "+(this.yylineno+1));var yt=this.constructLexErrorInfo("Lexical error"+gt+": You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).",!1);this._signaled_error_token=this.parseError(yt.errStr,yt,this.JisonLexerError)||this.ERROR}return this},less:function(gt){return this.unput(this.match.slice(gt))},pastInput:function(gt,yt){var bt=this.matched.substring(0,this.matched.length-this.match.length);gt<0?gt=bt.length:gt||(gt=20),yt<0?yt=bt.length:yt||(yt=1),bt=bt.substr(-gt*2-2);var wt=bt.replace(/\r\n|\r/g,` `).split(` @@ -7164,21 +7164,21 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho `).split(` `);return wt=wt.slice(0,yt),bt=wt.join(` `),bt.length>gt&&(bt=bt.substring(0,gt)+"..."),bt},showPosition:function(gt,yt){var bt=this.pastInput(gt).replace(/\s/g," "),wt=new Array(bt.length+1).join("-");return bt+this.upcomingInput(yt).replace(/\s/g," ")+` -`+wt+"^"},deriveLocationInfo:function(gt,yt,bt,wt){var vt={first_line:1,first_column:0,last_line:1,last_column:0,range:[0,0]};return gt&&(vt.first_line=gt.first_line|0,vt.last_line=gt.last_line|0,vt.first_column=gt.first_column|0,vt.last_column=gt.last_column|0,gt.range&&(vt.range[0]=gt.range[0]|0,vt.range[1]=gt.range[1]|0)),(vt.first_line<=0||vt.last_line=vt.first_line)&&(vt.last_line=wt.last_line|0,vt.last_column=wt.last_column|0,wt.range&&(vt.range[1]=wt.range[1]|0))),vt.last_line<=0&&(vt.first_line<=0?(vt.first_line=this.yylloc.first_line,vt.last_line=this.yylloc.last_line,vt.first_column=this.yylloc.first_column,vt.last_column=this.yylloc.last_column,vt.range[0]=this.yylloc.range[0],vt.range[1]=this.yylloc.range[1]):(vt.last_line=this.yylloc.last_line,vt.last_column=this.yylloc.last_column,vt.range[1]=this.yylloc.range[1])),vt.first_line<=0&&(vt.first_line=vt.last_line,vt.first_column=0,vt.range[1]=vt.range[0]),vt.first_column<0&&(vt.first_column=0),vt.last_column<0&&(vt.last_column=vt.first_column>0?vt.first_column:80),vt},prettyPrintRange:function(gt,yt,bt){gt=this.deriveLocationInfo(gt,yt,bt);const wt=3,vt=1,kt=2;var St=this.matched+this._input,Tt=St.split(` -`),At=Math.max(1,yt?yt.first_line:gt.first_line-wt),Et=Math.max(1,bt?bt.last_line:gt.last_line+vt),Mt=1+Math.log10(Et|1)|0,Lt=new Array(Mt).join(" "),jt=[],Rt=Tt.slice(At-1,Et+1).map(function(zt,Ut){var Wt=Ut+At,Ft=(Lt+Wt).substr(-Mt),Nt=Ft+": "+zt,Ct=new Array(Mt+1).join("^"),Ht=2+1,Jt=0;if(Wt===gt.first_line?(Ht+=gt.first_column,Jt=Math.max(2,(Wt===gt.last_line?gt.last_column:zt.length)-gt.first_column+1)):Wt===gt.last_line?Jt=Math.max(2,gt.last_column+1):Wt>gt.first_line&&Wt=vt.first_line)&&(vt.last_line=wt.last_line|0,vt.last_column=wt.last_column|0,wt.range&&(vt.range[1]=wt.range[1]|0))),vt.last_line<=0&&(vt.first_line<=0?(vt.first_line=this.yylloc.first_line,vt.last_line=this.yylloc.last_line,vt.first_column=this.yylloc.first_column,vt.last_column=this.yylloc.last_column,vt.range[0]=this.yylloc.range[0],vt.range[1]=this.yylloc.range[1]):(vt.last_line=this.yylloc.last_line,vt.last_column=this.yylloc.last_column,vt.range[1]=this.yylloc.range[1])),vt.first_line<=0&&(vt.first_line=vt.last_line,vt.first_column=0,vt.range[1]=vt.range[0]),vt.first_column<0&&(vt.first_column=0),vt.last_column<0&&(vt.last_column=vt.first_column>0?vt.first_column:80),vt},prettyPrintRange:function(gt,yt,bt){gt=this.deriveLocationInfo(gt,yt,bt);const wt=3,vt=1,kt=2;var St=this.matched+this._input,Et=St.split(` +`),At=Math.max(1,yt?yt.first_line:gt.first_line-wt),Tt=Math.max(1,bt?bt.last_line:gt.last_line+vt),Mt=1+Math.log10(Tt|1)|0,Lt=new Array(Mt).join(" "),jt=[],Rt=Et.slice(At-1,Tt+1).map(function(zt,Ut){var Wt=Ut+At,Ft=(Lt+Wt).substr(-Mt),Nt=Ft+": "+zt,Ct=new Array(Mt+1).join("^"),Ht=2+1,Jt=0;if(Wt===gt.first_line?(Ht+=gt.first_column,Jt=Math.max(2,(Wt===gt.last_line?gt.last_column:zt.length)-gt.first_column+1)):Wt===gt.last_line?Jt=Math.max(2,gt.last_column+1):Wt>gt.first_line&&Wt0&&jt.push(Ut)}return Nt=Nt.replace(/\t/g," "),Nt});if(jt.length>2*kt){var $t=jt[kt-1]+1,xt=jt[jt.length-kt]-1,It=new Array(Mt+1).join(" ")+" (...continued...)";It+=` `+new Array(Mt+1).join("-")+" (---------------)",Rt.splice($t,xt-$t+1,It)}return Rt.join(` -`)},describeYYLLOC:function(gt,yt){var bt=gt.first_line,wt=gt.last_line,vt=gt.first_column,kt=gt.last_column,St=wt-bt,Tt=kt-vt,At;if(St===0?(At="line "+bt+", ",Tt<=1?At+="column "+vt:At+="columns "+vt+" .. "+kt):At="lines "+bt+"(column "+vt+") .. "+wt+"(column "+kt+")",gt.range&&yt){var Et=gt.range[0],Mt=gt.range[1]-1;Mt<=Et?At+=" {String Offset: "+Et+"}":At+=" {String Offset range: "+Et+" .. "+Mt+"}"}return At},test_match:function(gt,yt){var bt,wt,vt,kt,St;if(this.options.backtrack_lexer&&(vt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.yylloc.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column,range:this.yylloc.range.slice(0)},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done}),kt=gt[0],St=kt.length,wt=kt.split(/(?:\r\n?|\n)/g),wt.length>1?(this.yylineno+=wt.length-1,this.yylloc.last_line=this.yylineno+1,this.yylloc.last_column=wt[wt.length-1].length):this.yylloc.last_column+=St,this.yytext+=kt,this.match+=kt,this.matched+=kt,this.matches=gt,this.yyleng=this.yytext.length,this.yylloc.range[1]+=St,this.offset+=St,this._more=!1,this._backtrack=!1,this._input=this._input.slice(St),bt=this.performAction.call(this,this.yy,yt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),bt)return bt;if(this._backtrack){for(var Tt in vt)this[Tt]=vt[Tt];return this.__currentRuleSet__=null,!1}else if(this._signaled_error_token)return bt=this._signaled_error_token,this._signaled_error_token=!1,bt;return!1},next:function(){if(this.done)return this.clear(),this.EOF;this._input||(this.done=!0);var gt,yt,bt,wt;this._more||this.clear();var vt=this.__currentRuleSet__;if(!vt&&(vt=this.__currentRuleSet__=this._currentRules(),!vt||!vt.rules)){var kt="";this.options.trackPosition&&(kt=" on line "+(this.yylineno+1));var St=this.constructLexErrorInfo("Internal lexer engine error"+kt+': The lex grammar programmer pushed a non-existing condition name "'+this.topState()+'"; this is a fatal error and should be reported to the application programmer team!',!1);return this.parseError(St.errStr,St,this.JisonLexerError)||this.ERROR}for(var Tt=vt.rules,At=vt.__rule_regexes,Et=vt.__rule_count,Mt=1;Mt<=Et;Mt++)if(bt=this._input.match(At[Mt]),bt&&(!yt||bt[0].length>yt[0].length)){if(yt=bt,wt=Mt,this.options.backtrack_lexer){if(gt=this.test_match(bt,Tt[Mt]),gt!==!1)return gt;if(this._backtrack){yt=void 0;continue}else return!1}else if(!this.options.flex)break}if(yt)return gt=this.test_match(yt,Tt[wt]),gt!==!1?gt:!1;if(this._input){var kt="";this.options.trackPosition&&(kt=" on line "+(this.yylineno+1));var St=this.constructLexErrorInfo("Lexical error"+kt+": Unrecognized text.",this.options.lexerErrorsAreRecoverable),Lt=this._input,jt=this.topState(),Rt=this.conditionStack.length;return gt=this.parseError(St.errStr,St,this.JisonLexerError)||this.ERROR,gt===this.ERROR&&!this.matches&&Lt===this._input&&jt===this.topState()&&Rt===this.conditionStack.length&&this.input(),gt}else return this.done=!0,this.clear(),this.EOF},lex:function(){var gt;for(typeof this.pre_lex=="function"&&(gt=this.pre_lex.call(this,0)),typeof this.options.pre_lex=="function"&&(gt=this.options.pre_lex.call(this,gt)||gt),this.yy&&typeof this.yy.pre_lex=="function"&&(gt=this.yy.pre_lex.call(this,gt)||gt);!gt;)gt=this.next();return this.yy&&typeof this.yy.post_lex=="function"&&(gt=this.yy.post_lex.call(this,gt)||gt),typeof this.options.post_lex=="function"&&(gt=this.options.post_lex.call(this,gt)||gt),typeof this.post_lex=="function"&&(gt=this.post_lex.call(this,gt)||gt),gt},fastLex:function(){for(var gt;!gt;)gt=this.next();return gt},canIUse:function(){var gt={fastLex:!(typeof this.pre_lex=="function"||typeof this.options.pre_lex=="function"||this.yy&&typeof this.yy.pre_lex=="function"||this.yy&&typeof this.yy.post_lex=="function"||typeof this.options.post_lex=="function"||typeof this.post_lex=="function")&&typeof this.fastLex=="function"};return gt},begin:function(gt){return this.pushState(gt)},pushState:function(gt){return this.conditionStack.push(gt),this.__currentRuleSet__=null,this},popState:function(){var gt=this.conditionStack.length-1;return gt>0?(this.__currentRuleSet__=null,this.conditionStack.pop()):this.conditionStack[0]},topState:function(gt){return gt=this.conditionStack.length-1-Math.abs(gt||0),gt>=0?this.conditionStack[gt]:"INITIAL"},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]]:this.conditions.INITIAL},stateStackSize:function(){return this.conditionStack.length},options:{trackPosition:!0},JisonLexerError:dt,performAction:function(gt,yt,bt){switch(yt){case 1:break;default:return this.simpleCaseActionClusters[yt]}},simpleCaseActionClusters:{0:13,2:5,3:6,4:3,5:4,6:15,7:15,8:15,9:15,10:15,11:15,12:16,13:16,14:16,15:16,16:17,17:17,18:18,19:18,20:19,21:19,22:19,23:20,24:21,25:22,26:23,27:25,28:24,29:26,30:27,31:28,32:11,33:9,34:12,35:10,36:7,37:8,38:14,39:1},rules:[/^(?:(--[\d\-A-Za-z]*))/,/^(?:\s+)/,/^(?:\*)/,/^(?:\/)/,/^(?:\+)/,/^(?:-)/,/^(?:(\d+(\.\d*)?|\.\d+)px\b)/,/^(?:(\d+(\.\d*)?|\.\d+)cm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)mm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)in\b)/,/^(?:(\d+(\.\d*)?|\.\d+)pt\b)/,/^(?:(\d+(\.\d*)?|\.\d+)pc\b)/,/^(?:(\d+(\.\d*)?|\.\d+)deg\b)/,/^(?:(\d+(\.\d*)?|\.\d+)grad\b)/,/^(?:(\d+(\.\d*)?|\.\d+)rad\b)/,/^(?:(\d+(\.\d*)?|\.\d+)turn\b)/,/^(?:(\d+(\.\d*)?|\.\d+)s\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ms\b)/,/^(?:(\d+(\.\d*)?|\.\d+)Hz\b)/,/^(?:(\d+(\.\d*)?|\.\d+)kHz\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dpi\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dpcm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dppx\b)/,/^(?:(\d+(\.\d*)?|\.\d+)em\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ex\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ch\b)/,/^(?:(\d+(\.\d*)?|\.\d+)rem\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vw\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vh\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vmin\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vmax\b)/,/^(?:(\d+(\.\d*)?|\.\d+)%)/,/^(?:(\d+(\.\d*)?|\.\d+)\b)/,/^(?:(calc))/,/^(?:(var))/,/^(?:([a-z]+))/,/^(?:\()/,/^(?:\))/,/^(?:,)/,/^(?:$)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],inclusive:!0}}};return pt}();ct.lexer=ut;function ht(){this.yy={}}return ht.prototype=ct,ct.Parser=ht,new ht}();typeof commonjsRequire<"u"&&(tt.parser=et,tt.Parser=et.Parser,tt.parse=function(){return et.parse.apply(et,arguments)})})(parser$1);var reducer={},convert={exports:{}},conversions={px:{px:1,cm:96/2.54,mm:96/25.4,in:96,pt:96/72,pc:16},cm:{px:2.54/96,cm:1,mm:.1,in:2.54,pt:2.54/72,pc:2.54/6},mm:{px:25.4/96,cm:10,mm:1,in:25.4,pt:25.4/72,pc:25.4/6},in:{px:1/96,cm:1/2.54,mm:1/25.4,in:1,pt:1/72,pc:1/6},pt:{px:.75,cm:72/2.54,mm:72/25.4,in:72,pt:1,pc:12},pc:{px:6/96,cm:6/2.54,mm:6/25.4,in:6,pt:6/72,pc:1},deg:{deg:1,grad:.9,rad:180/Math.PI,turn:360},grad:{deg:400/360,grad:1,rad:200/Math.PI,turn:400},rad:{deg:Math.PI/180,grad:Math.PI/200,rad:1,turn:Math.PI*2},turn:{deg:1/360,grad:1/400,rad:.5/Math.PI,turn:1},s:{s:1,ms:1/1e3},ms:{s:1e3,ms:1},Hz:{Hz:1,kHz:1e3},kHz:{Hz:1/1e3,kHz:1},dpi:{dpi:1,dpcm:1/2.54,dppx:1/96},dpcm:{dpi:2.54,dpcm:1,dppx:2.54/96},dppx:{dpi:96,dpcm:96/2.54,dppx:1}},cssUnitConverter=function(tt,et,nt,rt){if(!conversions.hasOwnProperty(nt))throw new Error("Cannot convert to "+nt);if(!conversions[nt].hasOwnProperty(et))throw new Error("Cannot convert from "+et+" to "+nt);var it=conversions[nt][et]*tt;return rt!==!1?(rt=Math.pow(10,parseInt(rt)||5),Math.round(it*rt)/rt):it};(function(tt,et){Object.defineProperty(et,"__esModule",{value:!0});var nt=cssUnitConverter,rt=it(nt);function it(st){return st&&st.__esModule?st:{default:st}}function ot(st,lt,ct){switch(st.type){case"LengthValue":case"AngleValue":case"TimeValue":case"FrequencyValue":case"ResolutionValue":return at(st,lt,ct);default:return{left:st,right:lt}}}function at(st,lt,ct){return lt.type===st.type&&(lt={type:st.type,value:(0,rt.default)(lt.value,lt.unit,st.unit,ct),unit:st.unit}),{left:st,right:lt}}et.default=ot,tt.exports=et.default})(convert,convert.exports);var convertExports=convert.exports;Object.defineProperty(reducer,"__esModule",{value:!0});reducer.flip=flip;var _convert=convertExports,_convert2=_interopRequireDefault$3(_convert);function _interopRequireDefault$3(tt){return tt&&tt.__esModule?tt:{default:tt}}function reduce(tt,et){return tt.type==="MathExpression"?reduceMathExpression(tt,et):tt.type==="Calc"?reduce(tt.value,et):tt}function isEqual$2(tt,et){return tt.type===et.type&&tt.value===et.value}function isValueType(tt){switch(tt){case"LengthValue":case"AngleValue":case"TimeValue":case"FrequencyValue":case"ResolutionValue":case"EmValue":case"ExValue":case"ChValue":case"RemValue":case"VhValue":case"VwValue":case"VminValue":case"VmaxValue":case"PercentageValue":case"Value":return!0}return!1}function convertMathExpression(tt,et){var nt=(0,_convert2.default)(tt.left,tt.right,et),rt=reduce(nt.left,et),it=reduce(nt.right,et);return rt.type==="MathExpression"&&it.type==="MathExpression"&&(rt.operator==="/"&&it.operator==="*"||rt.operator==="-"&&it.operator==="+"||rt.operator==="*"&&it.operator==="/"||rt.operator==="+"&&it.operator==="-")&&(isEqual$2(rt.right,it.right)?nt=(0,_convert2.default)(rt.left,it.left,et):isEqual$2(rt.right,it.left)&&(nt=(0,_convert2.default)(rt.left,it.right,et)),rt=reduce(nt.left,et),it=reduce(nt.right,et)),tt.left=rt,tt.right=it,tt}function flip(tt){return tt==="+"?"-":"+"}function flipValue(tt){return isValueType(tt.type)?tt.value=-tt.value:tt.type=="MathExpression"&&(tt.left=flipValue(tt.left),tt.right=flipValue(tt.right)),tt}function reduceAddSubExpression(tt,et){var nt=tt,rt=nt.left,it=nt.right,ot=nt.operator;if(rt.type==="CssVariable"||it.type==="CssVariable")return tt;if(it.value===0)return rt;if(rt.value===0&&ot==="+")return it;if(rt.value===0&&ot==="-")return flipValue(it);if(rt.type===it.type&&isValueType(rt.type)&&(tt=Object.assign({},rt),ot==="+"?tt.value=rt.value+it.value:tt.value=rt.value-it.value),isValueType(rt.type)&&(it.operator==="+"||it.operator==="-")&&it.type==="MathExpression"){if(rt.type===it.left.type)return tt=Object.assign({},tt),tt.left=reduce({type:"MathExpression",operator:ot,left:rt,right:it.left},et),tt.right=it.right,tt.operator=ot==="-"?flip(it.operator):it.operator,reduce(tt,et);if(rt.type===it.right.type)return tt=Object.assign({},tt),tt.left=reduce({type:"MathExpression",operator:ot==="-"?flip(it.operator):it.operator,left:rt,right:it.right},et),tt.right=it.left,reduce(tt,et)}if(rt.type==="MathExpression"&&(rt.operator==="+"||rt.operator==="-")&&isValueType(it.type)){if(it.type===rt.left.type)return tt=Object.assign({},rt),tt.left=reduce({type:"MathExpression",operator:ot,left:rt.left,right:it},et),reduce(tt,et);if(it.type===rt.right.type)return tt=Object.assign({},rt),rt.operator==="-"?(tt.right=reduce({type:"MathExpression",operator:ot==="-"?"+":"-",left:it,right:rt.right},et),tt.operator=ot==="-"?"-":"+"):tt.right=reduce({type:"MathExpression",operator:ot,left:rt.right,right:it},et),tt.right.value<0&&(tt.right.value*=-1,tt.operator=tt.operator==="-"?"+":"-"),reduce(tt,et)}return tt}function reduceDivisionExpression(tt,et){if(!isValueType(tt.right.type))return tt;if(tt.right.type!=="Value")throw new Error('Cannot divide by "'+tt.right.unit+'", number expected');if(tt.right.value===0)throw new Error("Cannot divide by zero");return tt.left.type==="MathExpression"?isValueType(tt.left.left.type)&&isValueType(tt.left.right.type)?(tt.left.left.value/=tt.right.value,tt.left.right.value/=tt.right.value,reduce(tt.left,et)):tt:isValueType(tt.left.type)?(tt.left.value/=tt.right.value,tt.left):tt}function reduceMultiplicationExpression(tt){if(tt.left.type==="MathExpression"&&tt.right.type==="Value"){if(isValueType(tt.left.left.type)&&isValueType(tt.left.right.type))return tt.left.left.value*=tt.right.value,tt.left.right.value*=tt.right.value,tt.left}else{if(isValueType(tt.left.type)&&tt.right.type==="Value")return tt.left.value*=tt.right.value,tt.left;if(tt.left.type==="Value"&&tt.right.type==="MathExpression"){if(isValueType(tt.right.left.type)&&isValueType(tt.right.right.type))return tt.right.left.value*=tt.left.value,tt.right.right.value*=tt.left.value,tt.right}else if(tt.left.type==="Value"&&isValueType(tt.right.type))return tt.right.value*=tt.left.value,tt.right}return tt}function reduceMathExpression(tt,et){switch(tt=convertMathExpression(tt,et),tt.operator){case"+":case"-":return reduceAddSubExpression(tt,et);case"/":return reduceDivisionExpression(tt,et);case"*":return reduceMultiplicationExpression(tt)}return tt}reducer.default=reduce;var stringifier={exports:{}};(function(tt,et){Object.defineProperty(et,"__esModule",{value:!0}),et.default=function(at,st,lt){var ct=ot(st,lt);return st.type==="MathExpression"&&(ct=at+"("+ct+")"),ct};var nt=reducer,rt={"*":0,"/":0,"+":1,"-":1};function it(at,st){if(st!==!1){var lt=Math.pow(10,st);return Math.round(at*lt)/lt}return at}function ot(at,st){switch(at.type){case"MathExpression":{var lt=at.left,ct=at.right,ut=at.operator,ht="";return lt.type==="MathExpression"&&rt[ut]1&&arguments[1]!==void 0?arguments[1]:5;return(0,rt.default)(ht).walk(function(pt){if(!(pt.type!=="function"||!ut.test(pt.value))){var mt=rt.default.stringify(pt.nodes);if(!(mt.indexOf("constant")>=0||mt.indexOf("env")>=0)){var gt=it.parser.parse(mt),yt=(0,at.default)(gt,dt);pt.type="word",pt.value=(0,lt.default)(pt.value,yt,dt)}}},!0).toString()},tt.exports=et.default})(dist,dist.exports);var distExports=dist.exports;const reduceCSSCalc=getDefaultExportFromCjs(distExports);function _typeof$k(tt){"@babel/helpers - typeof";return _typeof$k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$k(tt)}function ownKeys$j(tt,et){var nt=Object.keys(tt);if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(tt);et&&(rt=rt.filter(function(it){return Object.getOwnPropertyDescriptor(tt,it).enumerable})),nt.push.apply(nt,rt)}return nt}function _objectSpread$j(tt){for(var et=1;et1?(this.yylineno+=wt.length-1,this.yylloc.last_line=this.yylineno+1,this.yylloc.last_column=wt[wt.length-1].length):this.yylloc.last_column+=St,this.yytext+=kt,this.match+=kt,this.matched+=kt,this.matches=gt,this.yyleng=this.yytext.length,this.yylloc.range[1]+=St,this.offset+=St,this._more=!1,this._backtrack=!1,this._input=this._input.slice(St),bt=this.performAction.call(this,this.yy,yt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),bt)return bt;if(this._backtrack){for(var Et in vt)this[Et]=vt[Et];return this.__currentRuleSet__=null,!1}else if(this._signaled_error_token)return bt=this._signaled_error_token,this._signaled_error_token=!1,bt;return!1},next:function(){if(this.done)return this.clear(),this.EOF;this._input||(this.done=!0);var gt,yt,bt,wt;this._more||this.clear();var vt=this.__currentRuleSet__;if(!vt&&(vt=this.__currentRuleSet__=this._currentRules(),!vt||!vt.rules)){var kt="";this.options.trackPosition&&(kt=" on line "+(this.yylineno+1));var St=this.constructLexErrorInfo("Internal lexer engine error"+kt+': The lex grammar programmer pushed a non-existing condition name "'+this.topState()+'"; this is a fatal error and should be reported to the application programmer team!',!1);return this.parseError(St.errStr,St,this.JisonLexerError)||this.ERROR}for(var Et=vt.rules,At=vt.__rule_regexes,Tt=vt.__rule_count,Mt=1;Mt<=Tt;Mt++)if(bt=this._input.match(At[Mt]),bt&&(!yt||bt[0].length>yt[0].length)){if(yt=bt,wt=Mt,this.options.backtrack_lexer){if(gt=this.test_match(bt,Et[Mt]),gt!==!1)return gt;if(this._backtrack){yt=void 0;continue}else return!1}else if(!this.options.flex)break}if(yt)return gt=this.test_match(yt,Et[wt]),gt!==!1?gt:!1;if(this._input){var kt="";this.options.trackPosition&&(kt=" on line "+(this.yylineno+1));var St=this.constructLexErrorInfo("Lexical error"+kt+": Unrecognized text.",this.options.lexerErrorsAreRecoverable),Lt=this._input,jt=this.topState(),Rt=this.conditionStack.length;return gt=this.parseError(St.errStr,St,this.JisonLexerError)||this.ERROR,gt===this.ERROR&&!this.matches&&Lt===this._input&&jt===this.topState()&&Rt===this.conditionStack.length&&this.input(),gt}else return this.done=!0,this.clear(),this.EOF},lex:function(){var gt;for(typeof this.pre_lex=="function"&&(gt=this.pre_lex.call(this,0)),typeof this.options.pre_lex=="function"&&(gt=this.options.pre_lex.call(this,gt)||gt),this.yy&&typeof this.yy.pre_lex=="function"&&(gt=this.yy.pre_lex.call(this,gt)||gt);!gt;)gt=this.next();return this.yy&&typeof this.yy.post_lex=="function"&&(gt=this.yy.post_lex.call(this,gt)||gt),typeof this.options.post_lex=="function"&&(gt=this.options.post_lex.call(this,gt)||gt),typeof this.post_lex=="function"&&(gt=this.post_lex.call(this,gt)||gt),gt},fastLex:function(){for(var gt;!gt;)gt=this.next();return gt},canIUse:function(){var gt={fastLex:!(typeof this.pre_lex=="function"||typeof this.options.pre_lex=="function"||this.yy&&typeof this.yy.pre_lex=="function"||this.yy&&typeof this.yy.post_lex=="function"||typeof this.options.post_lex=="function"||typeof this.post_lex=="function")&&typeof this.fastLex=="function"};return gt},begin:function(gt){return this.pushState(gt)},pushState:function(gt){return this.conditionStack.push(gt),this.__currentRuleSet__=null,this},popState:function(){var gt=this.conditionStack.length-1;return gt>0?(this.__currentRuleSet__=null,this.conditionStack.pop()):this.conditionStack[0]},topState:function(gt){return gt=this.conditionStack.length-1-Math.abs(gt||0),gt>=0?this.conditionStack[gt]:"INITIAL"},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]]:this.conditions.INITIAL},stateStackSize:function(){return this.conditionStack.length},options:{trackPosition:!0},JisonLexerError:dt,performAction:function(gt,yt,bt){switch(yt){case 1:break;default:return this.simpleCaseActionClusters[yt]}},simpleCaseActionClusters:{0:13,2:5,3:6,4:3,5:4,6:15,7:15,8:15,9:15,10:15,11:15,12:16,13:16,14:16,15:16,16:17,17:17,18:18,19:18,20:19,21:19,22:19,23:20,24:21,25:22,26:23,27:25,28:24,29:26,30:27,31:28,32:11,33:9,34:12,35:10,36:7,37:8,38:14,39:1},rules:[/^(?:(--[\d\-A-Za-z]*))/,/^(?:\s+)/,/^(?:\*)/,/^(?:\/)/,/^(?:\+)/,/^(?:-)/,/^(?:(\d+(\.\d*)?|\.\d+)px\b)/,/^(?:(\d+(\.\d*)?|\.\d+)cm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)mm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)in\b)/,/^(?:(\d+(\.\d*)?|\.\d+)pt\b)/,/^(?:(\d+(\.\d*)?|\.\d+)pc\b)/,/^(?:(\d+(\.\d*)?|\.\d+)deg\b)/,/^(?:(\d+(\.\d*)?|\.\d+)grad\b)/,/^(?:(\d+(\.\d*)?|\.\d+)rad\b)/,/^(?:(\d+(\.\d*)?|\.\d+)turn\b)/,/^(?:(\d+(\.\d*)?|\.\d+)s\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ms\b)/,/^(?:(\d+(\.\d*)?|\.\d+)Hz\b)/,/^(?:(\d+(\.\d*)?|\.\d+)kHz\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dpi\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dpcm\b)/,/^(?:(\d+(\.\d*)?|\.\d+)dppx\b)/,/^(?:(\d+(\.\d*)?|\.\d+)em\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ex\b)/,/^(?:(\d+(\.\d*)?|\.\d+)ch\b)/,/^(?:(\d+(\.\d*)?|\.\d+)rem\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vw\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vh\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vmin\b)/,/^(?:(\d+(\.\d*)?|\.\d+)vmax\b)/,/^(?:(\d+(\.\d*)?|\.\d+)%)/,/^(?:(\d+(\.\d*)?|\.\d+)\b)/,/^(?:(calc))/,/^(?:(var))/,/^(?:([a-z]+))/,/^(?:\()/,/^(?:\))/,/^(?:,)/,/^(?:$)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],inclusive:!0}}};return pt}();ct.lexer=ut;function ht(){this.yy={}}return ht.prototype=ct,ct.Parser=ht,new ht}();typeof commonjsRequire<"u"&&(tt.parser=et,tt.Parser=et.Parser,tt.parse=function(){return et.parse.apply(et,arguments)})})(parser$1);var reducer={},convert={exports:{}},conversions={px:{px:1,cm:96/2.54,mm:96/25.4,in:96,pt:96/72,pc:16},cm:{px:2.54/96,cm:1,mm:.1,in:2.54,pt:2.54/72,pc:2.54/6},mm:{px:25.4/96,cm:10,mm:1,in:25.4,pt:25.4/72,pc:25.4/6},in:{px:1/96,cm:1/2.54,mm:1/25.4,in:1,pt:1/72,pc:1/6},pt:{px:.75,cm:72/2.54,mm:72/25.4,in:72,pt:1,pc:12},pc:{px:6/96,cm:6/2.54,mm:6/25.4,in:6,pt:6/72,pc:1},deg:{deg:1,grad:.9,rad:180/Math.PI,turn:360},grad:{deg:400/360,grad:1,rad:200/Math.PI,turn:400},rad:{deg:Math.PI/180,grad:Math.PI/200,rad:1,turn:Math.PI*2},turn:{deg:1/360,grad:1/400,rad:.5/Math.PI,turn:1},s:{s:1,ms:1/1e3},ms:{s:1e3,ms:1},Hz:{Hz:1,kHz:1e3},kHz:{Hz:1/1e3,kHz:1},dpi:{dpi:1,dpcm:1/2.54,dppx:1/96},dpcm:{dpi:2.54,dpcm:1,dppx:2.54/96},dppx:{dpi:96,dpcm:96/2.54,dppx:1}},cssUnitConverter=function(tt,et,nt,rt){if(!conversions.hasOwnProperty(nt))throw new Error("Cannot convert to "+nt);if(!conversions[nt].hasOwnProperty(et))throw new Error("Cannot convert from "+et+" to "+nt);var it=conversions[nt][et]*tt;return rt!==!1?(rt=Math.pow(10,parseInt(rt)||5),Math.round(it*rt)/rt):it};(function(tt,et){Object.defineProperty(et,"__esModule",{value:!0});var nt=cssUnitConverter,rt=it(nt);function it(st){return st&&st.__esModule?st:{default:st}}function ot(st,lt,ct){switch(st.type){case"LengthValue":case"AngleValue":case"TimeValue":case"FrequencyValue":case"ResolutionValue":return at(st,lt,ct);default:return{left:st,right:lt}}}function at(st,lt,ct){return lt.type===st.type&&(lt={type:st.type,value:(0,rt.default)(lt.value,lt.unit,st.unit,ct),unit:st.unit}),{left:st,right:lt}}et.default=ot,tt.exports=et.default})(convert,convert.exports);var convertExports=convert.exports;Object.defineProperty(reducer,"__esModule",{value:!0});reducer.flip=flip;var _convert=convertExports,_convert2=_interopRequireDefault$3(_convert);function _interopRequireDefault$3(tt){return tt&&tt.__esModule?tt:{default:tt}}function reduce(tt,et){return tt.type==="MathExpression"?reduceMathExpression(tt,et):tt.type==="Calc"?reduce(tt.value,et):tt}function isEqual$2(tt,et){return tt.type===et.type&&tt.value===et.value}function isValueType(tt){switch(tt){case"LengthValue":case"AngleValue":case"TimeValue":case"FrequencyValue":case"ResolutionValue":case"EmValue":case"ExValue":case"ChValue":case"RemValue":case"VhValue":case"VwValue":case"VminValue":case"VmaxValue":case"PercentageValue":case"Value":return!0}return!1}function convertMathExpression(tt,et){var nt=(0,_convert2.default)(tt.left,tt.right,et),rt=reduce(nt.left,et),it=reduce(nt.right,et);return rt.type==="MathExpression"&&it.type==="MathExpression"&&(rt.operator==="/"&&it.operator==="*"||rt.operator==="-"&&it.operator==="+"||rt.operator==="*"&&it.operator==="/"||rt.operator==="+"&&it.operator==="-")&&(isEqual$2(rt.right,it.right)?nt=(0,_convert2.default)(rt.left,it.left,et):isEqual$2(rt.right,it.left)&&(nt=(0,_convert2.default)(rt.left,it.right,et)),rt=reduce(nt.left,et),it=reduce(nt.right,et)),tt.left=rt,tt.right=it,tt}function flip(tt){return tt==="+"?"-":"+"}function flipValue(tt){return isValueType(tt.type)?tt.value=-tt.value:tt.type=="MathExpression"&&(tt.left=flipValue(tt.left),tt.right=flipValue(tt.right)),tt}function reduceAddSubExpression(tt,et){var nt=tt,rt=nt.left,it=nt.right,ot=nt.operator;if(rt.type==="CssVariable"||it.type==="CssVariable")return tt;if(it.value===0)return rt;if(rt.value===0&&ot==="+")return it;if(rt.value===0&&ot==="-")return flipValue(it);if(rt.type===it.type&&isValueType(rt.type)&&(tt=Object.assign({},rt),ot==="+"?tt.value=rt.value+it.value:tt.value=rt.value-it.value),isValueType(rt.type)&&(it.operator==="+"||it.operator==="-")&&it.type==="MathExpression"){if(rt.type===it.left.type)return tt=Object.assign({},tt),tt.left=reduce({type:"MathExpression",operator:ot,left:rt,right:it.left},et),tt.right=it.right,tt.operator=ot==="-"?flip(it.operator):it.operator,reduce(tt,et);if(rt.type===it.right.type)return tt=Object.assign({},tt),tt.left=reduce({type:"MathExpression",operator:ot==="-"?flip(it.operator):it.operator,left:rt,right:it.right},et),tt.right=it.left,reduce(tt,et)}if(rt.type==="MathExpression"&&(rt.operator==="+"||rt.operator==="-")&&isValueType(it.type)){if(it.type===rt.left.type)return tt=Object.assign({},rt),tt.left=reduce({type:"MathExpression",operator:ot,left:rt.left,right:it},et),reduce(tt,et);if(it.type===rt.right.type)return tt=Object.assign({},rt),rt.operator==="-"?(tt.right=reduce({type:"MathExpression",operator:ot==="-"?"+":"-",left:it,right:rt.right},et),tt.operator=ot==="-"?"-":"+"):tt.right=reduce({type:"MathExpression",operator:ot,left:rt.right,right:it},et),tt.right.value<0&&(tt.right.value*=-1,tt.operator=tt.operator==="-"?"+":"-"),reduce(tt,et)}return tt}function reduceDivisionExpression(tt,et){if(!isValueType(tt.right.type))return tt;if(tt.right.type!=="Value")throw new Error('Cannot divide by "'+tt.right.unit+'", number expected');if(tt.right.value===0)throw new Error("Cannot divide by zero");return tt.left.type==="MathExpression"?isValueType(tt.left.left.type)&&isValueType(tt.left.right.type)?(tt.left.left.value/=tt.right.value,tt.left.right.value/=tt.right.value,reduce(tt.left,et)):tt:isValueType(tt.left.type)?(tt.left.value/=tt.right.value,tt.left):tt}function reduceMultiplicationExpression(tt){if(tt.left.type==="MathExpression"&&tt.right.type==="Value"){if(isValueType(tt.left.left.type)&&isValueType(tt.left.right.type))return tt.left.left.value*=tt.right.value,tt.left.right.value*=tt.right.value,tt.left}else{if(isValueType(tt.left.type)&&tt.right.type==="Value")return tt.left.value*=tt.right.value,tt.left;if(tt.left.type==="Value"&&tt.right.type==="MathExpression"){if(isValueType(tt.right.left.type)&&isValueType(tt.right.right.type))return tt.right.left.value*=tt.left.value,tt.right.right.value*=tt.left.value,tt.right}else if(tt.left.type==="Value"&&isValueType(tt.right.type))return tt.right.value*=tt.left.value,tt.right}return tt}function reduceMathExpression(tt,et){switch(tt=convertMathExpression(tt,et),tt.operator){case"+":case"-":return reduceAddSubExpression(tt,et);case"/":return reduceDivisionExpression(tt,et);case"*":return reduceMultiplicationExpression(tt)}return tt}reducer.default=reduce;var stringifier={exports:{}};(function(tt,et){Object.defineProperty(et,"__esModule",{value:!0}),et.default=function(at,st,lt){var ct=ot(st,lt);return st.type==="MathExpression"&&(ct=at+"("+ct+")"),ct};var nt=reducer,rt={"*":0,"/":0,"+":1,"-":1};function it(at,st){if(st!==!1){var lt=Math.pow(10,st);return Math.round(at*lt)/lt}return at}function ot(at,st){switch(at.type){case"MathExpression":{var lt=at.left,ct=at.right,ut=at.operator,ht="";return lt.type==="MathExpression"&&rt[ut]1&&arguments[1]!==void 0?arguments[1]:5;return(0,rt.default)(ht).walk(function(pt){if(!(pt.type!=="function"||!ut.test(pt.value))){var mt=rt.default.stringify(pt.nodes);if(!(mt.indexOf("constant")>=0||mt.indexOf("env")>=0)){var gt=it.parser.parse(mt),yt=(0,at.default)(gt,dt);pt.type="word",pt.value=(0,lt.default)(pt.value,yt,dt)}}},!0).toString()},tt.exports=et.default})(dist,dist.exports);var distExports=dist.exports;const reduceCSSCalc=getDefaultExportFromCjs(distExports);function _typeof$k(tt){"@babel/helpers - typeof";return _typeof$k=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$k(tt)}function ownKeys$j(tt,et){var nt=Object.keys(tt);if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(tt);et&&(rt=rt.filter(function(it){return Object.getOwnPropertyDescriptor(tt,it).enumerable})),nt.push.apply(nt,rt)}return nt}function _objectSpread$j(tt){for(var et=1;ettt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0&&et===+et?"".concat(et,"px"):et}function camelToMiddleLine(tt){var et=tt.split(""),nt=et.reduce(function(rt,it){return it===it.toUpperCase()?[].concat(_toConsumableArray$9(rt),["-",it.toLowerCase()]):[].concat(_toConsumableArray$9(rt),[it])},[]);return nt.join("")}var getStyleString=function(et){return Object.keys(et).reduce(function(nt,rt){return"".concat(nt).concat(camelToMiddleLine(rt),":").concat(autoCompleteStyle(rt,et[rt]),";")},"")},getStringSize=function(et){var nt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(et==null||Global.isSsr)return{width:0,height:0};var rt="".concat(et),it=getStyleString(nt),ot="".concat(rt,"-").concat(it);if(stringCache.widthCache[ot])return stringCache.widthCache[ot];try{var at=document.getElementById(MEASUREMENT_SPAN_ID);at||(at=document.createElement("span"),at.setAttribute("id",MEASUREMENT_SPAN_ID),at.setAttribute("aria-hidden","true"),document.body.appendChild(at));var st=_objectSpread$j(_objectSpread$j({},SPAN_STYLE),nt);Object.keys(st).map(function(ut){return at.style[ut]=st[ut],ut}),at.textContent=rt;var lt=at.getBoundingClientRect(),ct={width:lt.width,height:lt.height};return stringCache.widthCache[ot]=ct,++stringCache.cacheCount>MAX_CACHE_NUM&&(stringCache.cacheCount=0,stringCache.widthCache={}),ct}catch{return{width:0,height:0}}},getOffset=function(et){var nt=et.ownerDocument.documentElement,rt={top:0,left:0};return typeof et.getBoundingClientRect<"u"&&(rt=et.getBoundingClientRect()),{top:rt.top+window.pageYOffset-nt.clientTop,left:rt.left+window.pageXOffset-nt.clientLeft}},calculateChartCoordinate=function(et,nt){return{chartX:Math.round(et.pageX-nt.left),chartY:Math.round(et.pageY-nt.top)}},_excluded$7=["dx","dy","textAnchor","verticalAnchor","scaleToFit","angle","lineHeight","capHeight","className","breakAll"];function _extends$j(){return _extends$j=Object.assign?Object.assign.bind():function(tt){for(var et=1;et=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$7(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _slicedToArray$6(tt,et){return _arrayWithHoles$6(tt)||_iterableToArrayLimit$6(tt,et)||_unsupportedIterableToArray$e(tt,et)||_nonIterableRest$6()}function _nonIterableRest$6(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$e(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$e(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$e(tt,et)}}function _arrayLikeToArray$e(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt0&&arguments[0]!==void 0?arguments[0]:[];return It.reduce(function(Ot,zt){var Ut=zt.word,Wt=zt.width,Ft=Ot[Ot.length-1];if(Ft&&(it==null||ot||Ft.width+Wt+rtzt.width?Ot:zt})};if(!ut)return pt;for(var gt="…",yt=function(It){var Ot=ht.slice(0,It),zt=calculateWordWidths({breakAll:ct,style:lt,children:Ot+gt}).wordsWithComputedWidth,Ut=dt(zt),Wt=Ut.length>at||mt(Ut).width>Number(it);return[Wt,Ut]},bt=0,wt=ht.length-1,vt=0,kt;bt<=wt&&vt<=ht.length-1;){var St=Math.floor((bt+wt)/2),Tt=St-1,At=yt(Tt),Et=_slicedToArray$6(At,2),Mt=Et[0],Lt=Et[1],jt=yt(St),Rt=_slicedToArray$6(jt,1),$t=Rt[0];if(!Mt&&!$t&&(bt=St+1),Mt&&$t&&(wt=St-1),!Mt&&$t){kt=Lt;break}vt++}return kt||pt},getWordsWithoutCalculate=function(et){var nt=_isNil(et)?[]:et.toString().split(BREAKING_SPACES);return[{words:nt}]},getWordsByLines=function(et){var nt=et.width,rt=et.scaleToFit,it=et.children,ot=et.style,at=et.breakAll,st=et.maxLines;if((nt||rt)&&!Global.isSsr){var lt,ct,ut=calculateWordWidths({breakAll:at,children:it,style:ot});if(ut){var ht=ut.wordsWithComputedWidth,dt=ut.spaceWidth;lt=ht,ct=dt}else return getWordsWithoutCalculate(it);return calculateWordsByLines({breakAll:at,children:it,maxLines:st,style:ot},lt,ct,nt,rt)}return getWordsWithoutCalculate(it)},textDefaultProps={x:0,y:0,lineHeight:"1em",capHeight:"0.71em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",fill:"#808080"},Text=function(et){var nt=reactExports.useMemo(function(){return getWordsByLines({breakAll:et.breakAll,children:et.children,maxLines:et.maxLines,scaleToFit:et.scaleToFit,style:et.style,width:et.width})},[et.breakAll,et.children,et.maxLines,et.scaleToFit,et.style,et.width]),rt=et.dx,it=et.dy,ot=et.textAnchor,at=et.verticalAnchor,st=et.scaleToFit,lt=et.angle,ct=et.lineHeight,ut=et.capHeight,ht=et.className,dt=et.breakAll,pt=_objectWithoutProperties$7(et,_excluded$7);if(!isNumOrStr(pt.x)||!isNumOrStr(pt.y))return null;var mt=pt.x+(isNumber(rt)?rt:0),gt=pt.y+(isNumber(it)?it:0),yt;switch(at){case"start":yt=reduceCSSCalc("calc(".concat(ut,")"));break;case"middle":yt=reduceCSSCalc("calc(".concat((nt.length-1)/2," * -").concat(ct," + (").concat(ut," / 2))"));break;default:yt=reduceCSSCalc("calc(".concat(nt.length-1," * -").concat(ct,")"));break}var bt=[];if(st){var wt=nt[0].width,vt=et.width;bt.push("scale(".concat((isNumber(vt)?vt/wt:1)/wt,")"))}return lt&&bt.push("rotate(".concat(lt,", ").concat(mt,", ").concat(gt,")")),bt.length&&(pt.transform=bt.join(" ")),React$1.createElement("text",_extends$j({},filterProps(pt,!0),{x:mt,y:gt,className:classNames("recharts-text",ht),textAnchor:ot,fill:pt.fill.includes("url")?textDefaultProps.fill:pt.fill}),nt.map(function(kt,St){return React$1.createElement("tspan",{x:mt,dy:St===0?yt:ct,key:St},kt.words.join(dt?"":" "))}))};Text.defaultProps=textDefaultProps;var baseIsEqual=_baseIsEqual;function isEqual$1(tt,et){return baseIsEqual(tt,et)}var isEqual_1=isEqual$1;const _isEqual=getDefaultExportFromCjs(isEqual_1);var isSymbol=isSymbol_1;function baseExtremum$2(tt,et,nt){for(var rt=-1,it=tt.length;++rtet}var _baseGt=baseGt$1,baseExtremum$1=_baseExtremum,baseGt=_baseGt,identity$5=identity_1;function max$1(tt){return tt&&tt.length?baseExtremum$1(tt,identity$5,baseGt):void 0}var max_1=max$1;const _max=getDefaultExportFromCjs(max_1);function baseLt$1(tt,et){return ttet?1:tt>=et?0:NaN}function descending(tt,et){return tt==null||et==null?NaN:ettt?1:et>=tt?0:NaN}function bisector(tt){let et,nt,rt;tt.length!==2?(et=ascending,nt=(st,lt)=>ascending(tt(st),lt),rt=(st,lt)=>tt(st)-lt):(et=tt===ascending||tt===descending?tt:zero$1,nt=tt,rt=tt);function it(st,lt,ct=0,ut=st.length){if(ct>>1;nt(st[ht],lt)<0?ct=ht+1:ut=ht}while(ct>>1;nt(st[ht],lt)<=0?ct=ht+1:ut=ht}while(ctct&&rt(st[ht-1],lt)>-rt(st[ht],lt)?ht-1:ht}return{left:it,center:at,right:ot}}function zero$1(){return 0}function number$3(tt){return tt===null?NaN:+tt}function*numbers(tt,et){if(et===void 0)for(let nt of tt)nt!=null&&(nt=+nt)>=nt&&(yield nt);else{let nt=-1;for(let rt of tt)(rt=et(rt,++nt,tt))!=null&&(rt=+rt)>=rt&&(yield rt)}}const ascendingBisect=bisector(ascending),bisectRight=ascendingBisect.right;bisector(number$3).center;const bisect=bisectRight;class InternMap extends Map{constructor(et,nt=keyof){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:nt}}),et!=null)for(const[rt,it]of et)this.set(rt,it)}get(et){return super.get(intern_get(this,et))}has(et){return super.has(intern_get(this,et))}set(et,nt){return super.set(intern_set(this,et),nt)}delete(et){return super.delete(intern_delete(this,et))}}function intern_get({_intern:tt,_key:et},nt){const rt=et(nt);return tt.has(rt)?tt.get(rt):nt}function intern_set({_intern:tt,_key:et},nt){const rt=et(nt);return tt.has(rt)?tt.get(rt):(tt.set(rt,nt),nt)}function intern_delete({_intern:tt,_key:et},nt){const rt=et(nt);return tt.has(rt)&&(nt=tt.get(rt),tt.delete(rt)),nt}function keyof(tt){return tt!==null&&typeof tt=="object"?tt.valueOf():tt}function compareDefined(tt=ascending){if(tt===ascending)return ascendingDefined;if(typeof tt!="function")throw new TypeError("compare is not a function");return(et,nt)=>{const rt=tt(et,nt);return rt||rt===0?rt:(tt(nt,nt)===0)-(tt(et,et)===0)}}function ascendingDefined(tt,et){return(tt==null||!(tt>=tt))-(et==null||!(et>=et))||(ttet?1:0)}const e10=Math.sqrt(50),e5=Math.sqrt(10),e2=Math.sqrt(2);function tickSpec(tt,et,nt){const rt=(et-tt)/Math.max(0,nt),it=Math.floor(Math.log10(rt)),ot=rt/Math.pow(10,it),at=ot>=e10?10:ot>=e5?5:ot>=e2?2:1;let st,lt,ct;return it<0?(ct=Math.pow(10,-it)/at,st=Math.round(tt*ct),lt=Math.round(et*ct),st/ctet&&--lt,ct=-ct):(ct=Math.pow(10,it)*at,st=Math.round(tt/ct),lt=Math.round(et/ct),st*ctet&&--lt),lt0))return[];if(tt===et)return[tt];const rt=et=it))return[];const st=ot-it+1,lt=new Array(st);if(rt)if(at<0)for(let ct=0;ct=rt)&&(nt=rt);else{let rt=-1;for(let it of tt)(it=et(it,++rt,tt))!=null&&(nt=it)&&(nt=it)}return nt}function min(tt,et){let nt;if(et===void 0)for(const rt of tt)rt!=null&&(nt>rt||nt===void 0&&rt>=rt)&&(nt=rt);else{let rt=-1;for(let it of tt)(it=et(it,++rt,tt))!=null&&(nt>it||nt===void 0&&it>=it)&&(nt=it)}return nt}function quickselect(tt,et,nt=0,rt=1/0,it){if(et=Math.floor(et),nt=Math.floor(Math.max(0,nt)),rt=Math.floor(Math.min(tt.length-1,rt)),!(nt<=et&&et<=rt))return tt;for(it=it===void 0?ascendingDefined:compareDefined(it);rt>nt;){if(rt-nt>600){const lt=rt-nt+1,ct=et-nt+1,ut=Math.log(lt),ht=.5*Math.exp(2*ut/3),dt=.5*Math.sqrt(ut*ht*(lt-ht)/lt)*(ct-lt/2<0?-1:1),pt=Math.max(nt,Math.floor(et-ct*ht/lt+dt)),mt=Math.min(rt,Math.floor(et+(lt-ct)*ht/lt+dt));quickselect(tt,et,pt,mt,it)}const ot=tt[et];let at=nt,st=rt;for(swap(tt,nt,et),it(tt[rt],ot)>0&&swap(tt,nt,rt);at0;)--st}it(tt[nt],ot)===0?swap(tt,nt,st):(++st,swap(tt,st,rt)),st<=et&&(nt=st+1),et<=st&&(rt=st-1)}return tt}function swap(tt,et,nt){const rt=tt[et];tt[et]=tt[nt],tt[nt]=rt}function quantile$1(tt,et,nt){if(tt=Float64Array.from(numbers(tt,nt)),!(!(rt=tt.length)||isNaN(et=+et))){if(et<=0||rt<2)return min(tt);if(et>=1)return max(tt);var rt,it=(rt-1)*et,ot=Math.floor(it),at=max(quickselect(tt,ot).subarray(0,ot+1)),st=min(tt.subarray(ot+1));return at+(st-at)*(it-ot)}}function quantileSorted(tt,et,nt=number$3){if(!(!(rt=tt.length)||isNaN(et=+et))){if(et<=0||rt<2)return+nt(tt[0],0,tt);if(et>=1)return+nt(tt[rt-1],rt-1,tt);var rt,it=(rt-1)*et,ot=Math.floor(it),at=+nt(tt[ot],ot,tt),st=+nt(tt[ot+1],ot+1,tt);return at+(st-at)*(it-ot)}}function range$2(tt,et,nt){tt=+tt,et=+et,nt=(it=arguments.length)<2?(et=tt,tt=0,1):it<3?1:+nt;for(var rt=-1,it=Math.max(0,Math.ceil((et-tt)/nt))|0,ot=new Array(it);++rt>8&15|et>>4&240,et>>4&15|et&240,(et&15)<<4|et&15,1):nt===8?rgba(et>>24&255,et>>16&255,et>>8&255,(et&255)/255):nt===4?rgba(et>>12&15|et>>8&240,et>>8&15|et>>4&240,et>>4&15|et&240,((et&15)<<4|et&15)/255):null):(et=reRgbInteger.exec(tt))?new Rgb(et[1],et[2],et[3],1):(et=reRgbPercent.exec(tt))?new Rgb(et[1]*255/100,et[2]*255/100,et[3]*255/100,1):(et=reRgbaInteger.exec(tt))?rgba(et[1],et[2],et[3],et[4]):(et=reRgbaPercent.exec(tt))?rgba(et[1]*255/100,et[2]*255/100,et[3]*255/100,et[4]):(et=reHslPercent.exec(tt))?hsla(et[1],et[2]/100,et[3]/100,1):(et=reHslaPercent.exec(tt))?hsla(et[1],et[2]/100,et[3]/100,et[4]):named.hasOwnProperty(tt)?rgbn(named[tt]):tt==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(tt){return new Rgb(tt>>16&255,tt>>8&255,tt&255,1)}function rgba(tt,et,nt,rt){return rt<=0&&(tt=et=nt=NaN),new Rgb(tt,et,nt,rt)}function rgbConvert(tt){return tt instanceof Color||(tt=color(tt)),tt?(tt=tt.rgb(),new Rgb(tt.r,tt.g,tt.b,tt.opacity)):new Rgb}function rgb$1(tt,et,nt,rt){return arguments.length===1?rgbConvert(tt):new Rgb(tt,et,nt,rt??1)}function Rgb(tt,et,nt,rt){this.r=+tt,this.g=+et,this.b=+nt,this.opacity=+rt}define(Rgb,rgb$1,extend(Color,{brighter(tt){return tt=tt==null?brighter:Math.pow(brighter,tt),new Rgb(this.r*tt,this.g*tt,this.b*tt,this.opacity)},darker(tt){return tt=tt==null?darker:Math.pow(darker,tt),new Rgb(this.r*tt,this.g*tt,this.b*tt,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){const tt=clampa(this.opacity);return`${tt===1?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${tt===1?")":`, ${tt})`}`}function clampa(tt){return isNaN(tt)?1:Math.max(0,Math.min(1,tt))}function clampi(tt){return Math.max(0,Math.min(255,Math.round(tt)||0))}function hex(tt){return tt=clampi(tt),(tt<16?"0":"")+tt.toString(16)}function hsla(tt,et,nt,rt){return rt<=0?tt=et=nt=NaN:nt<=0||nt>=1?tt=et=NaN:et<=0&&(tt=NaN),new Hsl(tt,et,nt,rt)}function hslConvert(tt){if(tt instanceof Hsl)return new Hsl(tt.h,tt.s,tt.l,tt.opacity);if(tt instanceof Color||(tt=color(tt)),!tt)return new Hsl;if(tt instanceof Hsl)return tt;tt=tt.rgb();var et=tt.r/255,nt=tt.g/255,rt=tt.b/255,it=Math.min(et,nt,rt),ot=Math.max(et,nt,rt),at=NaN,st=ot-it,lt=(ot+it)/2;return st?(et===ot?at=(nt-rt)/st+(nt0&<<1?0:at,new Hsl(at,st,lt,tt.opacity)}function hsl(tt,et,nt,rt){return arguments.length===1?hslConvert(tt):new Hsl(tt,et,nt,rt??1)}function Hsl(tt,et,nt,rt){this.h=+tt,this.s=+et,this.l=+nt,this.opacity=+rt}define(Hsl,hsl,extend(Color,{brighter(tt){return tt=tt==null?brighter:Math.pow(brighter,tt),new Hsl(this.h,this.s,this.l*tt,this.opacity)},darker(tt){return tt=tt==null?darker:Math.pow(darker,tt),new Hsl(this.h,this.s,this.l*tt,this.opacity)},rgb(){var tt=this.h%360+(this.h<0)*360,et=isNaN(tt)||isNaN(this.s)?0:this.s,nt=this.l,rt=nt+(nt<.5?nt:1-nt)*et,it=2*nt-rt;return new Rgb(hsl2rgb(tt>=240?tt-240:tt+120,it,rt),hsl2rgb(tt,it,rt),hsl2rgb(tt<120?tt+240:tt-120,it,rt),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const tt=clampa(this.opacity);return`${tt===1?"hsl(":"hsla("}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${tt===1?")":`, ${tt})`}`}}));function clamph(tt){return tt=(tt||0)%360,tt<0?tt+360:tt}function clampt(tt){return Math.max(0,Math.min(1,tt||0))}function hsl2rgb(tt,et,nt){return(tt<60?et+(nt-et)*tt/60:tt<180?nt:tt<240?et+(nt-et)*(240-tt)/60:et)*255}const constant=tt=>()=>tt;function linear$1(tt,et){return function(nt){return tt+nt*et}}function exponential(tt,et,nt){return tt=Math.pow(tt,nt),et=Math.pow(et,nt)-tt,nt=1/nt,function(rt){return Math.pow(tt+rt*et,nt)}}function gamma(tt){return(tt=+tt)==1?nogamma:function(et,nt){return nt-et?exponential(et,nt,tt):constant(isNaN(et)?nt:et)}}function nogamma(tt,et){var nt=et-tt;return nt?linear$1(tt,nt):constant(isNaN(tt)?et:tt)}const rgb=function tt(et){var nt=gamma(et);function rt(it,ot){var at=nt((it=rgb$1(it)).r,(ot=rgb$1(ot)).r),st=nt(it.g,ot.g),lt=nt(it.b,ot.b),ct=nogamma(it.opacity,ot.opacity);return function(ut){return it.r=at(ut),it.g=st(ut),it.b=lt(ut),it.opacity=ct(ut),it+""}}return rt.gamma=tt,rt}(1);function numberArray(tt,et){et||(et=[]);var nt=tt?Math.min(et.length,tt.length):0,rt=et.slice(),it;return function(ot){for(it=0;itnt&&(ot=et.slice(nt,ot),st[at]?st[at]+=ot:st[++at]=ot),(rt=rt[0])===(it=it[0])?st[at]?st[at]+=it:st[++at]=it:(st[++at]=null,lt.push({i:at,x:interpolateNumber$1(rt,it)})),nt=reB.lastIndex;return ntet&&(nt=tt,tt=et,et=nt),function(rt){return Math.max(tt,Math.min(et,rt))}}function bimap(tt,et,nt){var rt=tt[0],it=tt[1],ot=et[0],at=et[1];return it2?polymap:bimap,lt=ct=null,ht}function ht(dt){return dt==null||isNaN(dt=+dt)?ot:(lt||(lt=st(tt.map(rt),et,nt)))(rt(at(dt)))}return ht.invert=function(dt){return at(it((ct||(ct=st(et,tt.map(rt),interpolateNumber$1)))(dt)))},ht.domain=function(dt){return arguments.length?(tt=Array.from(dt,number$2),ut()):tt.slice()},ht.range=function(dt){return arguments.length?(et=Array.from(dt),ut()):et.slice()},ht.rangeRound=function(dt){return et=Array.from(dt),nt=interpolateRound,ut()},ht.clamp=function(dt){return arguments.length?(at=dt?!0:identity$3,ut()):at!==identity$3},ht.interpolate=function(dt){return arguments.length?(nt=dt,ut()):nt},ht.unknown=function(dt){return arguments.length?(ot=dt,ht):ot},function(dt,pt){return rt=dt,it=pt,ut()}}function continuous(){return transformer$2()(identity$3,identity$3)}function formatDecimal(tt){return Math.abs(tt=Math.round(tt))>=1e21?tt.toLocaleString("en").replace(/,/g,""):tt.toString(10)}function formatDecimalParts(tt,et){if((nt=(tt=et?tt.toExponential(et-1):tt.toExponential()).indexOf("e"))<0)return null;var nt,rt=tt.slice(0,nt);return[rt.length>1?rt[0]+rt.slice(2):rt,+tt.slice(nt+1)]}function exponent(tt){return tt=formatDecimalParts(Math.abs(tt)),tt?tt[1]:NaN}function formatGroup(tt,et){return function(nt,rt){for(var it=nt.length,ot=[],at=0,st=tt[0],lt=0;it>0&&st>0&&(lt+st+1>rt&&(st=Math.max(1,rt-lt)),ot.push(nt.substring(it-=st,it+st)),!((lt+=st+1)>rt));)st=tt[at=(at+1)%tt.length];return ot.reverse().join(et)}}function formatNumerals(tt){return function(et){return et.replace(/[0-9]/g,function(nt){return tt[+nt]})}}var re$1=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(tt){if(!(et=re$1.exec(tt)))throw new Error("invalid format: "+tt);var et;return new FormatSpecifier({fill:et[1],align:et[2],sign:et[3],symbol:et[4],zero:et[5],width:et[6],comma:et[7],precision:et[8]&&et[8].slice(1),trim:et[9],type:et[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(tt){this.fill=tt.fill===void 0?" ":tt.fill+"",this.align=tt.align===void 0?">":tt.align+"",this.sign=tt.sign===void 0?"-":tt.sign+"",this.symbol=tt.symbol===void 0?"":tt.symbol+"",this.zero=!!tt.zero,this.width=tt.width===void 0?void 0:+tt.width,this.comma=!!tt.comma,this.precision=tt.precision===void 0?void 0:+tt.precision,this.trim=!!tt.trim,this.type=tt.type===void 0?"":tt.type+""}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function formatTrim(tt){e:for(var et=tt.length,nt=1,rt=-1,it;nt0&&(rt=0);break}return rt>0?tt.slice(0,rt)+tt.slice(it+1):tt}var prefixExponent;function formatPrefixAuto(tt,et){var nt=formatDecimalParts(tt,et);if(!nt)return tt+"";var rt=nt[0],it=nt[1],ot=it-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(it/3)))*3)+1,at=rt.length;return ot===at?rt:ot>at?rt+new Array(ot-at+1).join("0"):ot>0?rt.slice(0,ot)+"."+rt.slice(ot):"0."+new Array(1-ot).join("0")+formatDecimalParts(tt,Math.max(0,et+ot-1))[0]}function formatRounded(tt,et){var nt=formatDecimalParts(tt,et);if(!nt)return tt+"";var rt=nt[0],it=nt[1];return it<0?"0."+new Array(-it).join("0")+rt:rt.length>it+1?rt.slice(0,it+1)+"."+rt.slice(it+1):rt+new Array(it-rt.length+2).join("0")}const formatTypes={"%":(tt,et)=>(tt*100).toFixed(et),b:tt=>Math.round(tt).toString(2),c:tt=>tt+"",d:formatDecimal,e:(tt,et)=>tt.toExponential(et),f:(tt,et)=>tt.toFixed(et),g:(tt,et)=>tt.toPrecision(et),o:tt=>Math.round(tt).toString(8),p:(tt,et)=>formatRounded(tt*100,et),r:formatRounded,s:formatPrefixAuto,X:tt=>Math.round(tt).toString(16).toUpperCase(),x:tt=>Math.round(tt).toString(16)};function identity$2(tt){return tt}var map$2=Array.prototype.map,prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function formatLocale$1(tt){var et=tt.grouping===void 0||tt.thousands===void 0?identity$2:formatGroup(map$2.call(tt.grouping,Number),tt.thousands+""),nt=tt.currency===void 0?"":tt.currency[0]+"",rt=tt.currency===void 0?"":tt.currency[1]+"",it=tt.decimal===void 0?".":tt.decimal+"",ot=tt.numerals===void 0?identity$2:formatNumerals(map$2.call(tt.numerals,String)),at=tt.percent===void 0?"%":tt.percent+"",st=tt.minus===void 0?"−":tt.minus+"",lt=tt.nan===void 0?"NaN":tt.nan+"";function ct(ht){ht=formatSpecifier(ht);var dt=ht.fill,pt=ht.align,mt=ht.sign,gt=ht.symbol,yt=ht.zero,bt=ht.width,wt=ht.comma,vt=ht.precision,kt=ht.trim,St=ht.type;St==="n"?(wt=!0,St="g"):formatTypes[St]||(vt===void 0&&(vt=12),kt=!0,St="g"),(yt||dt==="0"&&pt==="=")&&(yt=!0,dt="0",pt="=");var Tt=gt==="$"?nt:gt==="#"&&/[boxX]/.test(St)?"0"+St.toLowerCase():"",At=gt==="$"?rt:/[%p]/.test(St)?at:"",Et=formatTypes[St],Mt=/[defgprs%]/.test(St);vt=vt===void 0?6:/[gprs]/.test(St)?Math.max(1,Math.min(21,vt)):Math.max(0,Math.min(20,vt));function Lt(jt){var Rt=Tt,$t=At,xt,It,Ot;if(St==="c")$t=Et(jt)+$t,jt="";else{jt=+jt;var zt=jt<0||1/jt<0;if(jt=isNaN(jt)?lt:Et(Math.abs(jt),vt),kt&&(jt=formatTrim(jt)),zt&&+jt==0&&mt!=="+"&&(zt=!1),Rt=(zt?mt==="("?mt:st:mt==="-"||mt==="("?"":mt)+Rt,$t=(St==="s"?prefixes[8+prefixExponent/3]:"")+$t+(zt&&mt==="("?")":""),Mt){for(xt=-1,It=jt.length;++xtOt||Ot>57){$t=(Ot===46?it+jt.slice(xt+1):jt.slice(xt))+$t,jt=jt.slice(0,xt);break}}}wt&&!yt&&(jt=et(jt,1/0));var Ut=Rt.length+jt.length+$t.length,Wt=Ut>1)+Rt+jt+$t+Wt.slice(Ut);break;default:jt=Wt+Rt+jt+$t;break}return ot(jt)}return Lt.toString=function(){return ht+""},Lt}function ut(ht,dt){var pt=ct((ht=formatSpecifier(ht),ht.type="f",ht)),mt=Math.max(-8,Math.min(8,Math.floor(exponent(dt)/3)))*3,gt=Math.pow(10,-mt),yt=prefixes[8+mt/3];return function(bt){return pt(gt*bt)+yt}}return{format:ct,formatPrefix:ut}}var locale$1,format,formatPrefix;defaultLocale$1({thousands:",",grouping:[3],currency:["$",""]});function defaultLocale$1(tt){return locale$1=formatLocale$1(tt),format=locale$1.format,formatPrefix=locale$1.formatPrefix,locale$1}function precisionFixed(tt){return Math.max(0,-exponent(Math.abs(tt)))}function precisionPrefix(tt,et){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent(et)/3)))*3-exponent(Math.abs(tt)))}function precisionRound(tt,et){return tt=Math.abs(tt),et=Math.abs(et)-tt,Math.max(0,exponent(et)-exponent(tt))+1}function tickFormat(tt,et,nt,rt){var it=tickStep(tt,et,nt),ot;switch(rt=formatSpecifier(rt??",f"),rt.type){case"s":{var at=Math.max(Math.abs(tt),Math.abs(et));return rt.precision==null&&!isNaN(ot=precisionPrefix(it,at))&&(rt.precision=ot),formatPrefix(rt,at)}case"":case"e":case"g":case"p":case"r":{rt.precision==null&&!isNaN(ot=precisionRound(it,Math.max(Math.abs(tt),Math.abs(et))))&&(rt.precision=ot-(rt.type==="e"));break}case"f":case"%":{rt.precision==null&&!isNaN(ot=precisionFixed(it))&&(rt.precision=ot-(rt.type==="%")*2);break}}return format(rt)}function linearish(tt){var et=tt.domain;return tt.ticks=function(nt){var rt=et();return ticks(rt[0],rt[rt.length-1],nt??10)},tt.tickFormat=function(nt,rt){var it=et();return tickFormat(it[0],it[it.length-1],nt??10,rt)},tt.nice=function(nt){nt==null&&(nt=10);var rt=et(),it=0,ot=rt.length-1,at=rt[it],st=rt[ot],lt,ct,ut=10;for(st0;){if(ct=tickIncrement(at,st,nt),ct===lt)return rt[it]=at,rt[ot]=st,et(rt);if(ct>0)at=Math.floor(at/ct)*ct,st=Math.ceil(st/ct)*ct;else if(ct<0)at=Math.ceil(at*ct)/ct,st=Math.floor(st*ct)/ct;else break;lt=ct}return tt},tt}function linear(){var tt=continuous();return tt.copy=function(){return copy$1(tt,linear())},initRange.apply(tt,arguments),linearish(tt)}function identity$1(tt){var et;function nt(rt){return rt==null||isNaN(rt=+rt)?et:rt}return nt.invert=nt,nt.domain=nt.range=function(rt){return arguments.length?(tt=Array.from(rt,number$2),nt):tt.slice()},nt.unknown=function(rt){return arguments.length?(et=rt,nt):et},nt.copy=function(){return identity$1(tt).unknown(et)},tt=arguments.length?Array.from(tt,number$2):[0,1],linearish(nt)}function nice(tt,et){tt=tt.slice();var nt=0,rt=tt.length-1,it=tt[nt],ot=tt[rt],at;return otMath.pow(tt,et)}function logp(tt){return tt===Math.E?Math.log:tt===10&&Math.log10||tt===2&&Math.log2||(tt=Math.log(tt),et=>Math.log(et)/tt)}function reflect(tt){return(et,nt)=>-tt(-et,nt)}function loggish(tt){const et=tt(transformLog,transformExp),nt=et.domain;let rt=10,it,ot;function at(){return it=logp(rt),ot=powp(rt),nt()[0]<0?(it=reflect(it),ot=reflect(ot),tt(transformLogn,transformExpn)):tt(transformLog,transformExp),et}return et.base=function(st){return arguments.length?(rt=+st,at()):rt},et.domain=function(st){return arguments.length?(nt(st),at()):nt()},et.ticks=st=>{const lt=nt();let ct=lt[0],ut=lt[lt.length-1];const ht=ut0){for(;dt<=pt;++dt)for(mt=1;mtut)break;bt.push(gt)}}else for(;dt<=pt;++dt)for(mt=rt-1;mt>=1;--mt)if(gt=dt>0?mt/ot(-dt):mt*ot(dt),!(gtut)break;bt.push(gt)}bt.length*2{if(st==null&&(st=10),lt==null&&(lt=rt===10?"s":","),typeof lt!="function"&&(!(rt%1)&&(lt=formatSpecifier(lt)).precision==null&&(lt.trim=!0),lt=format(lt)),st===1/0)return lt;const ct=Math.max(1,rt*st/et.ticks().length);return ut=>{let ht=ut/ot(Math.round(it(ut)));return ht*rtnt(nice(nt(),{floor:st=>ot(Math.floor(it(st))),ceil:st=>ot(Math.ceil(it(st)))})),et}function log(){const tt=loggish(transformer$2()).domain([1,10]);return tt.copy=()=>copy$1(tt,log()).base(tt.base()),initRange.apply(tt,arguments),tt}function transformSymlog(tt){return function(et){return Math.sign(et)*Math.log1p(Math.abs(et/tt))}}function transformSymexp(tt){return function(et){return Math.sign(et)*Math.expm1(Math.abs(et))*tt}}function symlogish(tt){var et=1,nt=tt(transformSymlog(et),transformSymexp(et));return nt.constant=function(rt){return arguments.length?tt(transformSymlog(et=+rt),transformSymexp(et)):et},linearish(nt)}function symlog(){var tt=symlogish(transformer$2());return tt.copy=function(){return copy$1(tt,symlog()).constant(tt.constant())},initRange.apply(tt,arguments)}function transformPow(tt){return function(et){return et<0?-Math.pow(-et,tt):Math.pow(et,tt)}}function transformSqrt(tt){return tt<0?-Math.sqrt(-tt):Math.sqrt(tt)}function transformSquare(tt){return tt<0?-tt*tt:tt*tt}function powish(tt){var et=tt(identity$3,identity$3),nt=1;function rt(){return nt===1?tt(identity$3,identity$3):nt===.5?tt(transformSqrt,transformSquare):tt(transformPow(nt),transformPow(1/nt))}return et.exponent=function(it){return arguments.length?(nt=+it,rt()):nt},linearish(et)}function pow(){var tt=powish(transformer$2());return tt.copy=function(){return copy$1(tt,pow()).exponent(tt.exponent())},initRange.apply(tt,arguments),tt}function sqrt(){return pow.apply(null,arguments).exponent(.5)}function square(tt){return Math.sign(tt)*tt*tt}function unsquare(tt){return Math.sign(tt)*Math.sqrt(Math.abs(tt))}function radial(){var tt=continuous(),et=[0,1],nt=!1,rt;function it(ot){var at=unsquare(tt(ot));return isNaN(at)?rt:nt?Math.round(at):at}return it.invert=function(ot){return tt.invert(square(ot))},it.domain=function(ot){return arguments.length?(tt.domain(ot),it):tt.domain()},it.range=function(ot){return arguments.length?(tt.range((et=Array.from(ot,number$2)).map(square)),it):et.slice()},it.rangeRound=function(ot){return it.range(ot).round(!0)},it.round=function(ot){return arguments.length?(nt=!!ot,it):nt},it.clamp=function(ot){return arguments.length?(tt.clamp(ot),it):tt.clamp()},it.unknown=function(ot){return arguments.length?(rt=ot,it):rt},it.copy=function(){return radial(tt.domain(),et).round(nt).clamp(tt.clamp()).unknown(rt)},initRange.apply(it,arguments),linearish(it)}function quantile(){var tt=[],et=[],nt=[],rt;function it(){var at=0,st=Math.max(1,et.length);for(nt=new Array(st-1);++at0?nt[st-1]:tt[0],st=nt?[rt[nt-1],et]:[rt[ct-1],rt[ct]]},at.unknown=function(lt){return arguments.length&&(ot=lt),at},at.thresholds=function(){return rt.slice()},at.copy=function(){return quantize().domain([tt,et]).range(it).unknown(ot)},initRange.apply(linearish(at),arguments)}function threshold(){var tt=[.5],et=[0,1],nt,rt=1;function it(ot){return ot!=null&&ot<=ot?et[bisect(tt,ot,0,rt)]:nt}return it.domain=function(ot){return arguments.length?(tt=Array.from(ot),rt=Math.min(tt.length,et.length-1),it):tt.slice()},it.range=function(ot){return arguments.length?(et=Array.from(ot),rt=Math.min(tt.length,et.length-1),it):et.slice()},it.invertExtent=function(ot){var at=et.indexOf(ot);return[tt[at-1],tt[at]]},it.unknown=function(ot){return arguments.length?(nt=ot,it):nt},it.copy=function(){return threshold().domain(tt).range(et).unknown(nt)},initRange.apply(it,arguments)}const t0=new Date,t1=new Date;function timeInterval(tt,et,nt,rt){function it(ot){return tt(ot=arguments.length===0?new Date:new Date(+ot)),ot}return it.floor=ot=>(tt(ot=new Date(+ot)),ot),it.ceil=ot=>(tt(ot=new Date(ot-1)),et(ot,1),tt(ot),ot),it.round=ot=>{const at=it(ot),st=it.ceil(ot);return ot-at(et(ot=new Date(+ot),at==null?1:Math.floor(at)),ot),it.range=(ot,at,st)=>{const lt=[];if(ot=it.ceil(ot),st=st==null?1:Math.floor(st),!(ot0))return lt;let ct;do lt.push(ct=new Date(+ot)),et(ot,st),tt(ot);while(cttimeInterval(at=>{if(at>=at)for(;tt(at),!ot(at);)at.setTime(at-1)},(at,st)=>{if(at>=at)if(st<0)for(;++st<=0;)for(;et(at,-1),!ot(at););else for(;--st>=0;)for(;et(at,1),!ot(at););}),nt&&(it.count=(ot,at)=>(t0.setTime(+ot),t1.setTime(+at),tt(t0),tt(t1),Math.floor(nt(t0,t1))),it.every=ot=>(ot=Math.floor(ot),!isFinite(ot)||!(ot>0)?null:ot>1?it.filter(rt?at=>rt(at)%ot===0:at=>it.count(0,at)%ot===0):it)),it}const millisecond=timeInterval(()=>{},(tt,et)=>{tt.setTime(+tt+et)},(tt,et)=>et-tt);millisecond.every=tt=>(tt=Math.floor(tt),!isFinite(tt)||!(tt>0)?null:tt>1?timeInterval(et=>{et.setTime(Math.floor(et/tt)*tt)},(et,nt)=>{et.setTime(+et+nt*tt)},(et,nt)=>(nt-et)/tt):millisecond);millisecond.range;const durationSecond=1e3,durationMinute=durationSecond*60,durationHour=durationMinute*60,durationDay=durationHour*24,durationWeek=durationDay*7,durationMonth=durationDay*30,durationYear=durationDay*365,second=timeInterval(tt=>{tt.setTime(tt-tt.getMilliseconds())},(tt,et)=>{tt.setTime(+tt+et*durationSecond)},(tt,et)=>(et-tt)/durationSecond,tt=>tt.getUTCSeconds());second.range;const timeMinute=timeInterval(tt=>{tt.setTime(tt-tt.getMilliseconds()-tt.getSeconds()*durationSecond)},(tt,et)=>{tt.setTime(+tt+et*durationMinute)},(tt,et)=>(et-tt)/durationMinute,tt=>tt.getMinutes());timeMinute.range;const utcMinute=timeInterval(tt=>{tt.setUTCSeconds(0,0)},(tt,et)=>{tt.setTime(+tt+et*durationMinute)},(tt,et)=>(et-tt)/durationMinute,tt=>tt.getUTCMinutes());utcMinute.range;const timeHour=timeInterval(tt=>{tt.setTime(tt-tt.getMilliseconds()-tt.getSeconds()*durationSecond-tt.getMinutes()*durationMinute)},(tt,et)=>{tt.setTime(+tt+et*durationHour)},(tt,et)=>(et-tt)/durationHour,tt=>tt.getHours());timeHour.range;const utcHour=timeInterval(tt=>{tt.setUTCMinutes(0,0,0)},(tt,et)=>{tt.setTime(+tt+et*durationHour)},(tt,et)=>(et-tt)/durationHour,tt=>tt.getUTCHours());utcHour.range;const timeDay=timeInterval(tt=>tt.setHours(0,0,0,0),(tt,et)=>tt.setDate(tt.getDate()+et),(tt,et)=>(et-tt-(et.getTimezoneOffset()-tt.getTimezoneOffset())*durationMinute)/durationDay,tt=>tt.getDate()-1);timeDay.range;const utcDay=timeInterval(tt=>{tt.setUTCHours(0,0,0,0)},(tt,et)=>{tt.setUTCDate(tt.getUTCDate()+et)},(tt,et)=>(et-tt)/durationDay,tt=>tt.getUTCDate()-1);utcDay.range;const unixDay=timeInterval(tt=>{tt.setUTCHours(0,0,0,0)},(tt,et)=>{tt.setUTCDate(tt.getUTCDate()+et)},(tt,et)=>(et-tt)/durationDay,tt=>Math.floor(tt/durationDay));unixDay.range;function timeWeekday(tt){return timeInterval(et=>{et.setDate(et.getDate()-(et.getDay()+7-tt)%7),et.setHours(0,0,0,0)},(et,nt)=>{et.setDate(et.getDate()+nt*7)},(et,nt)=>(nt-et-(nt.getTimezoneOffset()-et.getTimezoneOffset())*durationMinute)/durationWeek)}const timeSunday=timeWeekday(0),timeMonday=timeWeekday(1),timeTuesday=timeWeekday(2),timeWednesday=timeWeekday(3),timeThursday=timeWeekday(4),timeFriday=timeWeekday(5),timeSaturday=timeWeekday(6);timeSunday.range;timeMonday.range;timeTuesday.range;timeWednesday.range;timeThursday.range;timeFriday.range;timeSaturday.range;function utcWeekday(tt){return timeInterval(et=>{et.setUTCDate(et.getUTCDate()-(et.getUTCDay()+7-tt)%7),et.setUTCHours(0,0,0,0)},(et,nt)=>{et.setUTCDate(et.getUTCDate()+nt*7)},(et,nt)=>(nt-et)/durationWeek)}const utcSunday=utcWeekday(0),utcMonday=utcWeekday(1),utcTuesday=utcWeekday(2),utcWednesday=utcWeekday(3),utcThursday=utcWeekday(4),utcFriday=utcWeekday(5),utcSaturday=utcWeekday(6);utcSunday.range;utcMonday.range;utcTuesday.range;utcWednesday.range;utcThursday.range;utcFriday.range;utcSaturday.range;const timeMonth=timeInterval(tt=>{tt.setDate(1),tt.setHours(0,0,0,0)},(tt,et)=>{tt.setMonth(tt.getMonth()+et)},(tt,et)=>et.getMonth()-tt.getMonth()+(et.getFullYear()-tt.getFullYear())*12,tt=>tt.getMonth());timeMonth.range;const utcMonth=timeInterval(tt=>{tt.setUTCDate(1),tt.setUTCHours(0,0,0,0)},(tt,et)=>{tt.setUTCMonth(tt.getUTCMonth()+et)},(tt,et)=>et.getUTCMonth()-tt.getUTCMonth()+(et.getUTCFullYear()-tt.getUTCFullYear())*12,tt=>tt.getUTCMonth());utcMonth.range;const timeYear=timeInterval(tt=>{tt.setMonth(0,1),tt.setHours(0,0,0,0)},(tt,et)=>{tt.setFullYear(tt.getFullYear()+et)},(tt,et)=>et.getFullYear()-tt.getFullYear(),tt=>tt.getFullYear());timeYear.every=tt=>!isFinite(tt=Math.floor(tt))||!(tt>0)?null:timeInterval(et=>{et.setFullYear(Math.floor(et.getFullYear()/tt)*tt),et.setMonth(0,1),et.setHours(0,0,0,0)},(et,nt)=>{et.setFullYear(et.getFullYear()+nt*tt)});timeYear.range;const utcYear=timeInterval(tt=>{tt.setUTCMonth(0,1),tt.setUTCHours(0,0,0,0)},(tt,et)=>{tt.setUTCFullYear(tt.getUTCFullYear()+et)},(tt,et)=>et.getUTCFullYear()-tt.getUTCFullYear(),tt=>tt.getUTCFullYear());utcYear.every=tt=>!isFinite(tt=Math.floor(tt))||!(tt>0)?null:timeInterval(et=>{et.setUTCFullYear(Math.floor(et.getUTCFullYear()/tt)*tt),et.setUTCMonth(0,1),et.setUTCHours(0,0,0,0)},(et,nt)=>{et.setUTCFullYear(et.getUTCFullYear()+nt*tt)});utcYear.range;function ticker(tt,et,nt,rt,it,ot){const at=[[second,1,durationSecond],[second,5,5*durationSecond],[second,15,15*durationSecond],[second,30,30*durationSecond],[ot,1,durationMinute],[ot,5,5*durationMinute],[ot,15,15*durationMinute],[ot,30,30*durationMinute],[it,1,durationHour],[it,3,3*durationHour],[it,6,6*durationHour],[it,12,12*durationHour],[rt,1,durationDay],[rt,2,2*durationDay],[nt,1,durationWeek],[et,1,durationMonth],[et,3,3*durationMonth],[tt,1,durationYear]];function st(ct,ut,ht){const dt=utyt).right(at,dt);if(pt===at.length)return tt.every(tickStep(ct/durationYear,ut/durationYear,ht));if(pt===0)return millisecond.every(Math.max(tickStep(ct,ut,ht),1));const[mt,gt]=at[dt/at[pt-1][2]53)return null;"w"in en||(en.w=1),"Z"in en?(Rn=utcDate(newDate(en.y,0,1)),An=Rn.getUTCDay(),Rn=An>4||An===0?utcMonday.ceil(Rn):utcMonday(Rn),Rn=utcDay.offset(Rn,(en.V-1)*7),en.y=Rn.getUTCFullYear(),en.m=Rn.getUTCMonth(),en.d=Rn.getUTCDate()+(en.w+6)%7):(Rn=localDate(newDate(en.y,0,1)),An=Rn.getDay(),Rn=An>4||An===0?timeMonday.ceil(Rn):timeMonday(Rn),Rn=timeDay.offset(Rn,(en.V-1)*7),en.y=Rn.getFullYear(),en.m=Rn.getMonth(),en.d=Rn.getDate()+(en.w+6)%7)}else("W"in en||"U"in en)&&("w"in en||(en.w="u"in en?en.u%7:"W"in en?1:0),An="Z"in en?utcDate(newDate(en.y,0,1)).getUTCDay():localDate(newDate(en.y,0,1)).getDay(),en.m=0,en.d="W"in en?(en.w+6)%7+en.W*7-(An+5)%7:en.w+en.U*7-(An+6)%7);return"Z"in en?(en.H+=en.Z/100|0,en.M+=en.Z%100,utcDate(en)):localDate(en)}}function Et(_n,En,an,en){for(var Tn=0,Rn=En.length,An=an.length,yn,kn;Tn=An)return-1;if(yn=En.charCodeAt(Tn++),yn===37){if(yn=En.charAt(Tn++),kn=St[yn in pads?En.charAt(Tn++):yn],!kn||(en=kn(_n,an,en))<0)return-1}else if(yn!=an.charCodeAt(en++))return-1}return en}function Mt(_n,En,an){var en=ct.exec(En.slice(an));return en?(_n.p=ut.get(en[0].toLowerCase()),an+en[0].length):-1}function Lt(_n,En,an){var en=pt.exec(En.slice(an));return en?(_n.w=mt.get(en[0].toLowerCase()),an+en[0].length):-1}function jt(_n,En,an){var en=ht.exec(En.slice(an));return en?(_n.w=dt.get(en[0].toLowerCase()),an+en[0].length):-1}function Rt(_n,En,an){var en=bt.exec(En.slice(an));return en?(_n.m=wt.get(en[0].toLowerCase()),an+en[0].length):-1}function $t(_n,En,an){var en=gt.exec(En.slice(an));return en?(_n.m=yt.get(en[0].toLowerCase()),an+en[0].length):-1}function xt(_n,En,an){return Et(_n,et,En,an)}function It(_n,En,an){return Et(_n,nt,En,an)}function Ot(_n,En,an){return Et(_n,rt,En,an)}function zt(_n){return at[_n.getDay()]}function Ut(_n){return ot[_n.getDay()]}function Wt(_n){return lt[_n.getMonth()]}function Ft(_n){return st[_n.getMonth()]}function Nt(_n){return it[+(_n.getHours()>=12)]}function Ct(_n){return 1+~~(_n.getMonth()/3)}function Ht(_n){return at[_n.getUTCDay()]}function Jt(_n){return ot[_n.getUTCDay()]}function nn(_n){return lt[_n.getUTCMonth()]}function Yt(_n){return st[_n.getUTCMonth()]}function fn(_n){return it[+(_n.getUTCHours()>=12)]}function cn(_n){return 1+~~(_n.getUTCMonth()/3)}return{format:function(_n){var En=Tt(_n+="",vt);return En.toString=function(){return _n},En},parse:function(_n){var En=At(_n+="",!1);return En.toString=function(){return _n},En},utcFormat:function(_n){var En=Tt(_n+="",kt);return En.toString=function(){return _n},En},utcParse:function(_n){var En=At(_n+="",!0);return En.toString=function(){return _n},En}}}var pads={"-":"",_:" ",0:"0"},numberRe=/^\s*\d+/,percentRe=/^%/,requoteRe=/[\\^$*+?|[\]().{}]/g;function pad(tt,et,nt){var rt=tt<0?"-":"",it=(rt?-tt:tt)+"",ot=it.length;return rt+(ot[et.toLowerCase(),nt]))}function parseWeekdayNumberSunday(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+1));return rt?(tt.w=+rt[0],nt+rt[0].length):-1}function parseWeekdayNumberMonday(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+1));return rt?(tt.u=+rt[0],nt+rt[0].length):-1}function parseWeekNumberSunday(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.U=+rt[0],nt+rt[0].length):-1}function parseWeekNumberISO(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.V=+rt[0],nt+rt[0].length):-1}function parseWeekNumberMonday(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.W=+rt[0],nt+rt[0].length):-1}function parseFullYear(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+4));return rt?(tt.y=+rt[0],nt+rt[0].length):-1}function parseYear(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.y=+rt[0]+(+rt[0]>68?1900:2e3),nt+rt[0].length):-1}function parseZone(tt,et,nt){var rt=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(et.slice(nt,nt+6));return rt?(tt.Z=rt[1]?0:-(rt[2]+(rt[3]||"00")),nt+rt[0].length):-1}function parseQuarter(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+1));return rt?(tt.q=rt[0]*3-3,nt+rt[0].length):-1}function parseMonthNumber(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.m=rt[0]-1,nt+rt[0].length):-1}function parseDayOfMonth(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.d=+rt[0],nt+rt[0].length):-1}function parseDayOfYear(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+3));return rt?(tt.m=0,tt.d=+rt[0],nt+rt[0].length):-1}function parseHour24(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.H=+rt[0],nt+rt[0].length):-1}function parseMinutes(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.M=+rt[0],nt+rt[0].length):-1}function parseSeconds(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.S=+rt[0],nt+rt[0].length):-1}function parseMilliseconds(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+3));return rt?(tt.L=+rt[0],nt+rt[0].length):-1}function parseMicroseconds(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+6));return rt?(tt.L=Math.floor(rt[0]/1e3),nt+rt[0].length):-1}function parseLiteralPercent(tt,et,nt){var rt=percentRe.exec(et.slice(nt,nt+1));return rt?nt+rt[0].length:-1}function parseUnixTimestamp(tt,et,nt){var rt=numberRe.exec(et.slice(nt));return rt?(tt.Q=+rt[0],nt+rt[0].length):-1}function parseUnixTimestampSeconds(tt,et,nt){var rt=numberRe.exec(et.slice(nt));return rt?(tt.s=+rt[0],nt+rt[0].length):-1}function formatDayOfMonth(tt,et){return pad(tt.getDate(),et,2)}function formatHour24(tt,et){return pad(tt.getHours(),et,2)}function formatHour12(tt,et){return pad(tt.getHours()%12||12,et,2)}function formatDayOfYear(tt,et){return pad(1+timeDay.count(timeYear(tt),tt),et,3)}function formatMilliseconds(tt,et){return pad(tt.getMilliseconds(),et,3)}function formatMicroseconds(tt,et){return formatMilliseconds(tt,et)+"000"}function formatMonthNumber(tt,et){return pad(tt.getMonth()+1,et,2)}function formatMinutes(tt,et){return pad(tt.getMinutes(),et,2)}function formatSeconds(tt,et){return pad(tt.getSeconds(),et,2)}function formatWeekdayNumberMonday(tt){var et=tt.getDay();return et===0?7:et}function formatWeekNumberSunday(tt,et){return pad(timeSunday.count(timeYear(tt)-1,tt),et,2)}function dISO(tt){var et=tt.getDay();return et>=4||et===0?timeThursday(tt):timeThursday.ceil(tt)}function formatWeekNumberISO(tt,et){return tt=dISO(tt),pad(timeThursday.count(timeYear(tt),tt)+(timeYear(tt).getDay()===4),et,2)}function formatWeekdayNumberSunday(tt){return tt.getDay()}function formatWeekNumberMonday(tt,et){return pad(timeMonday.count(timeYear(tt)-1,tt),et,2)}function formatYear(tt,et){return pad(tt.getFullYear()%100,et,2)}function formatYearISO(tt,et){return tt=dISO(tt),pad(tt.getFullYear()%100,et,2)}function formatFullYear(tt,et){return pad(tt.getFullYear()%1e4,et,4)}function formatFullYearISO(tt,et){var nt=tt.getDay();return tt=nt>=4||nt===0?timeThursday(tt):timeThursday.ceil(tt),pad(tt.getFullYear()%1e4,et,4)}function formatZone(tt){var et=tt.getTimezoneOffset();return(et>0?"-":(et*=-1,"+"))+pad(et/60|0,"0",2)+pad(et%60,"0",2)}function formatUTCDayOfMonth(tt,et){return pad(tt.getUTCDate(),et,2)}function formatUTCHour24(tt,et){return pad(tt.getUTCHours(),et,2)}function formatUTCHour12(tt,et){return pad(tt.getUTCHours()%12||12,et,2)}function formatUTCDayOfYear(tt,et){return pad(1+utcDay.count(utcYear(tt),tt),et,3)}function formatUTCMilliseconds(tt,et){return pad(tt.getUTCMilliseconds(),et,3)}function formatUTCMicroseconds(tt,et){return formatUTCMilliseconds(tt,et)+"000"}function formatUTCMonthNumber(tt,et){return pad(tt.getUTCMonth()+1,et,2)}function formatUTCMinutes(tt,et){return pad(tt.getUTCMinutes(),et,2)}function formatUTCSeconds(tt,et){return pad(tt.getUTCSeconds(),et,2)}function formatUTCWeekdayNumberMonday(tt){var et=tt.getUTCDay();return et===0?7:et}function formatUTCWeekNumberSunday(tt,et){return pad(utcSunday.count(utcYear(tt)-1,tt),et,2)}function UTCdISO(tt){var et=tt.getUTCDay();return et>=4||et===0?utcThursday(tt):utcThursday.ceil(tt)}function formatUTCWeekNumberISO(tt,et){return tt=UTCdISO(tt),pad(utcThursday.count(utcYear(tt),tt)+(utcYear(tt).getUTCDay()===4),et,2)}function formatUTCWeekdayNumberSunday(tt){return tt.getUTCDay()}function formatUTCWeekNumberMonday(tt,et){return pad(utcMonday.count(utcYear(tt)-1,tt),et,2)}function formatUTCYear(tt,et){return pad(tt.getUTCFullYear()%100,et,2)}function formatUTCYearISO(tt,et){return tt=UTCdISO(tt),pad(tt.getUTCFullYear()%100,et,2)}function formatUTCFullYear(tt,et){return pad(tt.getUTCFullYear()%1e4,et,4)}function formatUTCFullYearISO(tt,et){var nt=tt.getUTCDay();return tt=nt>=4||nt===0?utcThursday(tt):utcThursday.ceil(tt),pad(tt.getUTCFullYear()%1e4,et,4)}function formatUTCZone(){return"+0000"}function formatLiteralPercent(){return"%"}function formatUnixTimestamp(tt){return+tt}function formatUnixTimestampSeconds(tt){return Math.floor(+tt/1e3)}var locale,timeFormat,utcFormat;defaultLocale({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function defaultLocale(tt){return locale=formatLocale(tt),timeFormat=locale.format,locale.parse,utcFormat=locale.utcFormat,locale.utcParse,locale}function date(tt){return new Date(tt)}function number$1(tt){return tt instanceof Date?+tt:+new Date(+tt)}function calendar(tt,et,nt,rt,it,ot,at,st,lt,ct){var ut=continuous(),ht=ut.invert,dt=ut.domain,pt=ct(".%L"),mt=ct(":%S"),gt=ct("%I:%M"),yt=ct("%I %p"),bt=ct("%a %d"),wt=ct("%b %d"),vt=ct("%B"),kt=ct("%Y");function St(Tt){return(lt(Tt)et(it/(tt.length-1)))},nt.quantiles=function(rt){return Array.from({length:rt+1},(it,ot)=>quantile$1(tt,ot/rt))},nt.copy=function(){return sequentialQuantile(et).domain(tt)},initInterpolator.apply(nt,arguments)}function transformer(){var tt=0,et=.5,nt=1,rt=1,it,ot,at,st,lt,ct=identity$3,ut,ht=!1,dt;function pt(gt){return isNaN(gt=+gt)?dt:(gt=.5+((gt=+ut(gt))-ot)*(rt*gttt.e^ot.s<0?1:-1;for(rt=ot.d.length,it=tt.d.length,et=0,nt=rttt.d[et]^ot.s<0?1:-1;return rt===it?0:rt>it^ot.s<0?1:-1};P.decimalPlaces=P.dp=function(){var tt=this,et=tt.d.length-1,nt=(et-tt.e)*LOG_BASE;if(et=tt.d[et],et)for(;et%10==0;et/=10)nt--;return nt<0?0:nt};P.dividedBy=P.div=function(tt){return divide(this,new this.constructor(tt))};P.dividedToIntegerBy=P.idiv=function(tt){var et=this,nt=et.constructor;return round(divide(et,new nt(tt),0,1),nt.precision)};P.equals=P.eq=function(tt){return!this.cmp(tt)};P.exponent=function(){return getBase10Exponent(this)};P.greaterThan=P.gt=function(tt){return this.cmp(tt)>0};P.greaterThanOrEqualTo=P.gte=function(tt){return this.cmp(tt)>=0};P.isInteger=P.isint=function(){return this.e>this.d.length-2};P.isNegative=P.isneg=function(){return this.s<0};P.isPositive=P.ispos=function(){return this.s>0};P.isZero=function(){return this.s===0};P.lessThan=P.lt=function(tt){return this.cmp(tt)<0};P.lessThanOrEqualTo=P.lte=function(tt){return this.cmp(tt)<1};P.logarithm=P.log=function(tt){var et,nt=this,rt=nt.constructor,it=rt.precision,ot=it+5;if(tt===void 0)tt=new rt(10);else if(tt=new rt(tt),tt.s<1||tt.eq(ONE))throw Error(decimalError+"NaN");if(nt.s<1)throw Error(decimalError+(nt.s?"NaN":"-Infinity"));return nt.eq(ONE)?new rt(0):(external=!1,et=divide(ln(nt,ot),ln(tt,ot),ot),external=!0,round(et,it))};P.minus=P.sub=function(tt){var et=this;return tt=new et.constructor(tt),et.s==tt.s?subtract(et,tt):add(et,(tt.s=-tt.s,tt))};P.modulo=P.mod=function(tt){var et,nt=this,rt=nt.constructor,it=rt.precision;if(tt=new rt(tt),!tt.s)throw Error(decimalError+"NaN");return nt.s?(external=!1,et=divide(nt,tt,0,1).times(tt),external=!0,nt.minus(et)):round(new rt(nt),it)};P.naturalExponential=P.exp=function(){return exp(this)};P.naturalLogarithm=P.ln=function(){return ln(this)};P.negated=P.neg=function(){var tt=new this.constructor(this);return tt.s=-tt.s||0,tt};P.plus=P.add=function(tt){var et=this;return tt=new et.constructor(tt),et.s==tt.s?add(et,tt):subtract(et,(tt.s=-tt.s,tt))};P.precision=P.sd=function(tt){var et,nt,rt,it=this;if(tt!==void 0&&tt!==!!tt&&tt!==1&&tt!==0)throw Error(invalidArgument+tt);if(et=getBase10Exponent(it)+1,rt=it.d.length-1,nt=rt*LOG_BASE+1,rt=it.d[rt],rt){for(;rt%10==0;rt/=10)nt--;for(rt=it.d[0];rt>=10;rt/=10)nt++}return tt&&et>nt?et:nt};P.squareRoot=P.sqrt=function(){var tt,et,nt,rt,it,ot,at,st=this,lt=st.constructor;if(st.s<1){if(!st.s)return new lt(0);throw Error(decimalError+"NaN")}for(tt=getBase10Exponent(st),external=!1,it=Math.sqrt(+st),it==0||it==1/0?(et=digitsToString(st.d),(et.length+tt)%2==0&&(et+="0"),it=Math.sqrt(et),tt=mathfloor((tt+1)/2)-(tt<0||tt%2),it==1/0?et="5e"+tt:(et=it.toExponential(),et=et.slice(0,et.indexOf("e")+1)+tt),rt=new lt(et)):rt=new lt(it.toString()),nt=lt.precision,it=at=nt+3;;)if(ot=rt,rt=ot.plus(divide(st,ot,at+2)).times(.5),digitsToString(ot.d).slice(0,at)===(et=digitsToString(rt.d)).slice(0,at)){if(et=et.slice(at-3,at+1),it==at&&et=="4999"){if(round(ot,nt+1,0),ot.times(ot).eq(st)){rt=ot;break}}else if(et!="9999")break;at+=4}return external=!0,round(rt,nt)};P.times=P.mul=function(tt){var et,nt,rt,it,ot,at,st,lt,ct,ut=this,ht=ut.constructor,dt=ut.d,pt=(tt=new ht(tt)).d;if(!ut.s||!tt.s)return new ht(0);for(tt.s*=ut.s,nt=ut.e+tt.e,lt=dt.length,ct=pt.length,lt=0;){for(et=0,it=lt+rt;it>rt;)st=ot[it]+pt[rt]*dt[it-rt-1]+et,ot[it--]=st%BASE|0,et=st/BASE|0;ot[it]=(ot[it]+et)%BASE|0}for(;!ot[--at];)ot.pop();return et?++nt:ot.shift(),tt.d=ot,tt.e=nt,external?round(tt,ht.precision):tt};P.toDecimalPlaces=P.todp=function(tt,et){var nt=this,rt=nt.constructor;return nt=new rt(nt),tt===void 0?nt:(checkInt32(tt,0,MAX_DIGITS),et===void 0?et=rt.rounding:checkInt32(et,0,8),round(nt,tt+getBase10Exponent(nt)+1,et))};P.toExponential=function(tt,et){var nt,rt=this,it=rt.constructor;return tt===void 0?nt=toString$1(rt,!0):(checkInt32(tt,0,MAX_DIGITS),et===void 0?et=it.rounding:checkInt32(et,0,8),rt=round(new it(rt),tt+1,et),nt=toString$1(rt,!0,tt+1)),nt};P.toFixed=function(tt,et){var nt,rt,it=this,ot=it.constructor;return tt===void 0?toString$1(it):(checkInt32(tt,0,MAX_DIGITS),et===void 0?et=ot.rounding:checkInt32(et,0,8),rt=round(new ot(it),tt+getBase10Exponent(it)+1,et),nt=toString$1(rt.abs(),!1,tt+getBase10Exponent(rt)+1),it.isneg()&&!it.isZero()?"-"+nt:nt)};P.toInteger=P.toint=function(){var tt=this,et=tt.constructor;return round(new et(tt),getBase10Exponent(tt)+1,et.rounding)};P.toNumber=function(){return+this};P.toPower=P.pow=function(tt){var et,nt,rt,it,ot,at,st=this,lt=st.constructor,ct=12,ut=+(tt=new lt(tt));if(!tt.s)return new lt(ONE);if(st=new lt(st),!st.s){if(tt.s<1)throw Error(decimalError+"Infinity");return st}if(st.eq(ONE))return st;if(rt=lt.precision,tt.eq(ONE))return round(st,rt);if(et=tt.e,nt=tt.d.length-1,at=et>=nt,ot=st.s,at){if((nt=ut<0?-ut:ut)<=MAX_SAFE_INTEGER){for(it=new lt(ONE),et=Math.ceil(rt/LOG_BASE+4),external=!1;nt%2&&(it=it.times(st),truncate(it.d,et)),nt=mathfloor(nt/2),nt!==0;)st=st.times(st),truncate(st.d,et);return external=!0,tt.s<0?new lt(ONE).div(it):round(it,rt)}}else if(ot<0)throw Error(decimalError+"NaN");return ot=ot<0&&tt.d[Math.max(et,nt)]&1?-1:1,st.s=1,external=!1,it=tt.times(ln(st,rt+ct)),external=!0,it=exp(it),it.s=ot,it};P.toPrecision=function(tt,et){var nt,rt,it=this,ot=it.constructor;return tt===void 0?(nt=getBase10Exponent(it),rt=toString$1(it,nt<=ot.toExpNeg||nt>=ot.toExpPos)):(checkInt32(tt,1,MAX_DIGITS),et===void 0?et=ot.rounding:checkInt32(et,0,8),it=round(new ot(it),tt,et),nt=getBase10Exponent(it),rt=toString$1(it,tt<=nt||nt<=ot.toExpNeg,tt)),rt};P.toSignificantDigits=P.tosd=function(tt,et){var nt=this,rt=nt.constructor;return tt===void 0?(tt=rt.precision,et=rt.rounding):(checkInt32(tt,1,MAX_DIGITS),et===void 0?et=rt.rounding:checkInt32(et,0,8)),round(new rt(nt),tt,et)};P.toString=P.valueOf=P.val=P.toJSON=P[Symbol.for("nodejs.util.inspect.custom")]=function(){var tt=this,et=getBase10Exponent(tt),nt=tt.constructor;return toString$1(tt,et<=nt.toExpNeg||et>=nt.toExpPos)};function add(tt,et){var nt,rt,it,ot,at,st,lt,ct,ut=tt.constructor,ht=ut.precision;if(!tt.s||!et.s)return et.s||(et=new ut(tt)),external?round(et,ht):et;if(lt=tt.d,ct=et.d,at=tt.e,it=et.e,lt=lt.slice(),ot=at-it,ot){for(ot<0?(rt=lt,ot=-ot,st=ct.length):(rt=ct,it=at,st=lt.length),at=Math.ceil(ht/LOG_BASE),st=at>st?at+1:st+1,ot>st&&(ot=st,rt.length=1),rt.reverse();ot--;)rt.push(0);rt.reverse()}for(st=lt.length,ot=ct.length,st-ot<0&&(ot=st,rt=ct,ct=lt,lt=rt),nt=0;ot;)nt=(lt[--ot]=lt[ot]+ct[ot]+nt)/BASE|0,lt[ot]%=BASE;for(nt&&(lt.unshift(nt),++it),st=lt.length;lt[--st]==0;)lt.pop();return et.d=lt,et.e=it,external?round(et,ht):et}function checkInt32(tt,et,nt){if(tt!==~~tt||ttnt)throw Error(invalidArgument+tt)}function digitsToString(tt){var et,nt,rt,it=tt.length-1,ot="",at=tt[0];if(it>0){for(ot+=at,et=1;etat?1:-1;else for(st=lt=0;stit[st]?1:-1;break}return lt}function nt(rt,it,ot){for(var at=0;ot--;)rt[ot]-=at,at=rt[ot]1;)rt.shift()}return function(rt,it,ot,at){var st,lt,ct,ut,ht,dt,pt,mt,gt,yt,bt,wt,vt,kt,St,Tt,At,Et,Mt=rt.constructor,Lt=rt.s==it.s?1:-1,jt=rt.d,Rt=it.d;if(!rt.s)return new Mt(rt);if(!it.s)throw Error(decimalError+"Division by zero");for(lt=rt.e-it.e,At=Rt.length,St=jt.length,pt=new Mt(Lt),mt=pt.d=[],ct=0;Rt[ct]==(jt[ct]||0);)++ct;if(Rt[ct]>(jt[ct]||0)&&--lt,ot==null?wt=ot=Mt.precision:at?wt=ot+(getBase10Exponent(rt)-getBase10Exponent(it))+1:wt=ot,wt<0)return new Mt(0);if(wt=wt/LOG_BASE+2|0,ct=0,At==1)for(ut=0,Rt=Rt[0],wt++;(ct1&&(Rt=tt(Rt,ut),jt=tt(jt,ut),At=Rt.length,St=jt.length),kt=At,gt=jt.slice(0,At),yt=gt.length;yt=BASE/2&&++Tt;do ut=0,st=et(Rt,gt,At,yt),st<0?(bt=gt[0],At!=yt&&(bt=bt*BASE+(gt[1]||0)),ut=bt/Tt|0,ut>1?(ut>=BASE&&(ut=BASE-1),ht=tt(Rt,ut),dt=ht.length,yt=gt.length,st=et(ht,gt,dt,yt),st==1&&(ut--,nt(ht,At16)throw Error(exponentOutOfRange+getBase10Exponent(tt));if(!tt.s)return new ut(ONE);for(et==null?(external=!1,st=ht):st=et,at=new ut(.03125);tt.abs().gte(.1);)tt=tt.times(at),ct+=5;for(rt=Math.log(mathpow(2,ct))/Math.LN10*2+5|0,st+=rt,nt=it=ot=new ut(ONE),ut.precision=st;;){if(it=round(it.times(tt),st),nt=nt.times(++lt),at=ot.plus(divide(it,nt,st)),digitsToString(at.d).slice(0,st)===digitsToString(ot.d).slice(0,st)){for(;ct--;)ot=round(ot.times(ot),st);return ut.precision=ht,et==null?(external=!0,round(ot,ht)):ot}ot=at}}function getBase10Exponent(tt){for(var et=tt.e*LOG_BASE,nt=tt.d[0];nt>=10;nt/=10)et++;return et}function getLn10(tt,et,nt){if(et>tt.LN10.sd())throw external=!0,nt&&(tt.precision=nt),Error(decimalError+"LN10 precision limit exceeded");return round(new tt(tt.LN10),et)}function getZeroString(tt){for(var et="";tt--;)et+="0";return et}function ln(tt,et){var nt,rt,it,ot,at,st,lt,ct,ut,ht=1,dt=10,pt=tt,mt=pt.d,gt=pt.constructor,yt=gt.precision;if(pt.s<1)throw Error(decimalError+(pt.s?"NaN":"-Infinity"));if(pt.eq(ONE))return new gt(0);if(et==null?(external=!1,ct=yt):ct=et,pt.eq(10))return et==null&&(external=!0),getLn10(gt,ct);if(ct+=dt,gt.precision=ct,nt=digitsToString(mt),rt=nt.charAt(0),ot=getBase10Exponent(pt),Math.abs(ot)<15e14){for(;rt<7&&rt!=1||rt==1&&nt.charAt(1)>3;)pt=pt.times(tt),nt=digitsToString(pt.d),rt=nt.charAt(0),ht++;ot=getBase10Exponent(pt),rt>1?(pt=new gt("0."+nt),ot++):pt=new gt(rt+"."+nt.slice(1))}else return lt=getLn10(gt,ct+2,yt).times(ot+""),pt=ln(new gt(rt+"."+nt.slice(1)),ct-dt).plus(lt),gt.precision=yt,et==null?(external=!0,round(pt,yt)):pt;for(st=at=pt=divide(pt.minus(ONE),pt.plus(ONE),ct),ut=round(pt.times(pt),ct),it=3;;){if(at=round(at.times(ut),ct),lt=st.plus(divide(at,new gt(it),ct)),digitsToString(lt.d).slice(0,ct)===digitsToString(st.d).slice(0,ct))return st=st.times(2),ot!==0&&(st=st.plus(getLn10(gt,ct+2,yt).times(ot+""))),st=divide(st,new gt(ht),ct),gt.precision=yt,et==null?(external=!0,round(st,yt)):st;st=lt,it+=2}}function parseDecimal(tt,et){var nt,rt,it;for((nt=et.indexOf("."))>-1&&(et=et.replace(".","")),(rt=et.search(/e/i))>0?(nt<0&&(nt=rt),nt+=+et.slice(rt+1),et=et.substring(0,rt)):nt<0&&(nt=et.length),rt=0;et.charCodeAt(rt)===48;)++rt;for(it=et.length;et.charCodeAt(it-1)===48;)--it;if(et=et.slice(rt,it),et){if(it-=rt,nt=nt-rt-1,tt.e=mathfloor(nt/LOG_BASE),tt.d=[],rt=(nt+1)%LOG_BASE,nt<0&&(rt+=LOG_BASE),rtMAX_E||tt.e<-MAX_E))throw Error(exponentOutOfRange+nt)}else tt.s=0,tt.e=0,tt.d=[0];return tt}function round(tt,et,nt){var rt,it,ot,at,st,lt,ct,ut,ht=tt.d;for(at=1,ot=ht[0];ot>=10;ot/=10)at++;if(rt=et-at,rt<0)rt+=LOG_BASE,it=et,ct=ht[ut=0];else{if(ut=Math.ceil((rt+1)/LOG_BASE),ot=ht.length,ut>=ot)return tt;for(ct=ot=ht[ut],at=1;ot>=10;ot/=10)at++;rt%=LOG_BASE,it=rt-LOG_BASE+at}if(nt!==void 0&&(ot=mathpow(10,at-it-1),st=ct/ot%10|0,lt=et<0||ht[ut+1]!==void 0||ct%ot,lt=nt<4?(st||lt)&&(nt==0||nt==(tt.s<0?3:2)):st>5||st==5&&(nt==4||lt||nt==6&&(rt>0?it>0?ct/mathpow(10,at-it):0:ht[ut-1])%10&1||nt==(tt.s<0?8:7))),et<1||!ht[0])return lt?(ot=getBase10Exponent(tt),ht.length=1,et=et-ot-1,ht[0]=mathpow(10,(LOG_BASE-et%LOG_BASE)%LOG_BASE),tt.e=mathfloor(-et/LOG_BASE)||0):(ht.length=1,ht[0]=tt.e=tt.s=0),tt;if(rt==0?(ht.length=ut,ot=1,ut--):(ht.length=ut+1,ot=mathpow(10,LOG_BASE-rt),ht[ut]=it>0?(ct/mathpow(10,at-it)%mathpow(10,it)|0)*ot:0),lt)for(;;)if(ut==0){(ht[0]+=ot)==BASE&&(ht[0]=1,++tt.e);break}else{if(ht[ut]+=ot,ht[ut]!=BASE)break;ht[ut--]=0,ot=1}for(rt=ht.length;ht[--rt]===0;)ht.pop();if(external&&(tt.e>MAX_E||tt.e<-MAX_E))throw Error(exponentOutOfRange+getBase10Exponent(tt));return tt}function subtract(tt,et){var nt,rt,it,ot,at,st,lt,ct,ut,ht,dt=tt.constructor,pt=dt.precision;if(!tt.s||!et.s)return et.s?et.s=-et.s:et=new dt(tt),external?round(et,pt):et;if(lt=tt.d,ht=et.d,rt=et.e,ct=tt.e,lt=lt.slice(),at=ct-rt,at){for(ut=at<0,ut?(nt=lt,at=-at,st=ht.length):(nt=ht,rt=ct,st=lt.length),it=Math.max(Math.ceil(pt/LOG_BASE),st)+2,at>it&&(at=it,nt.length=1),nt.reverse(),it=at;it--;)nt.push(0);nt.reverse()}else{for(it=lt.length,st=ht.length,ut=it0;--it)lt[st++]=0;for(it=ht.length;it>at;){if(lt[--it]0?ot=ot.charAt(0)+"."+ot.slice(1)+getZeroString(rt):at>1&&(ot=ot.charAt(0)+"."+ot.slice(1)),ot=ot+(it<0?"e":"e+")+it):it<0?(ot="0."+getZeroString(-it-1)+ot,nt&&(rt=nt-at)>0&&(ot+=getZeroString(rt))):it>=at?(ot+=getZeroString(it+1-at),nt&&(rt=nt-it-1)>0&&(ot=ot+"."+getZeroString(rt))):((rt=it+1)0&&(it+1===at&&(ot+="."),ot+=getZeroString(rt))),tt.s<0?"-"+ot:ot}function truncate(tt,et){if(tt.length>et)return tt.length=et,!0}function clone(tt){var et,nt,rt;function it(ot){var at=this;if(!(at instanceof it))return new it(ot);if(at.constructor=it,ot instanceof it){at.s=ot.s,at.e=ot.e,at.d=(ot=ot.d)?ot.slice():ot;return}if(typeof ot=="number"){if(ot*0!==0)throw Error(invalidArgument+ot);if(ot>0)at.s=1;else if(ot<0)ot=-ot,at.s=-1;else{at.s=0,at.e=0,at.d=[0];return}if(ot===~~ot&&ot<1e7){at.e=0,at.d=[ot];return}return parseDecimal(at,ot.toString())}else if(typeof ot!="string")throw Error(invalidArgument+ot);if(ot.charCodeAt(0)===45?(ot=ot.slice(1),at.s=-1):at.s=1,isDecimal.test(ot))parseDecimal(at,ot);else throw Error(invalidArgument+ot)}if(it.prototype=P,it.ROUND_UP=0,it.ROUND_DOWN=1,it.ROUND_CEIL=2,it.ROUND_FLOOR=3,it.ROUND_HALF_UP=4,it.ROUND_HALF_DOWN=5,it.ROUND_HALF_EVEN=6,it.ROUND_HALF_CEIL=7,it.ROUND_HALF_FLOOR=8,it.clone=clone,it.config=it.set=config,tt===void 0&&(tt={}),tt)for(rt=["precision","rounding","toExpNeg","toExpPos","LN10"],et=0;et=it[et+1]&&rt<=it[et+2])this[nt]=rt;else throw Error(invalidArgument+nt+": "+rt);if((rt=tt[nt="LN10"])!==void 0)if(rt==Math.LN10)this[nt]=new this(rt);else throw Error(invalidArgument+nt+": "+rt);return this}var Decimal=clone(defaults);ONE=new Decimal(1);const Decimal$1=Decimal;function _toConsumableArray$8(tt){return _arrayWithoutHoles$8(tt)||_iterableToArray$8(tt)||_unsupportedIterableToArray$d(tt)||_nonIterableSpread$8()}function _nonIterableSpread$8(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$e(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$e(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$e(tt,et)}}function _arrayLikeToArray$e(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt0&&arguments[0]!==void 0?arguments[0]:[];return It.reduce(function(Ot,zt){var Ut=zt.word,Wt=zt.width,Ft=Ot[Ot.length-1];if(Ft&&(it==null||ot||Ft.width+Wt+rtzt.width?Ot:zt})};if(!ut)return pt;for(var gt="…",yt=function(It){var Ot=ht.slice(0,It),zt=calculateWordWidths({breakAll:ct,style:lt,children:Ot+gt}).wordsWithComputedWidth,Ut=dt(zt),Wt=Ut.length>at||mt(Ut).width>Number(it);return[Wt,Ut]},bt=0,wt=ht.length-1,vt=0,kt;bt<=wt&&vt<=ht.length-1;){var St=Math.floor((bt+wt)/2),Et=St-1,At=yt(Et),Tt=_slicedToArray$6(At,2),Mt=Tt[0],Lt=Tt[1],jt=yt(St),Rt=_slicedToArray$6(jt,1),$t=Rt[0];if(!Mt&&!$t&&(bt=St+1),Mt&&$t&&(wt=St-1),!Mt&&$t){kt=Lt;break}vt++}return kt||pt},getWordsWithoutCalculate=function(et){var nt=_isNil(et)?[]:et.toString().split(BREAKING_SPACES);return[{words:nt}]},getWordsByLines=function(et){var nt=et.width,rt=et.scaleToFit,it=et.children,ot=et.style,at=et.breakAll,st=et.maxLines;if((nt||rt)&&!Global.isSsr){var lt,ct,ut=calculateWordWidths({breakAll:at,children:it,style:ot});if(ut){var ht=ut.wordsWithComputedWidth,dt=ut.spaceWidth;lt=ht,ct=dt}else return getWordsWithoutCalculate(it);return calculateWordsByLines({breakAll:at,children:it,maxLines:st,style:ot},lt,ct,nt,rt)}return getWordsWithoutCalculate(it)},textDefaultProps={x:0,y:0,lineHeight:"1em",capHeight:"0.71em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",fill:"#808080"},Text=function(et){var nt=reactExports.useMemo(function(){return getWordsByLines({breakAll:et.breakAll,children:et.children,maxLines:et.maxLines,scaleToFit:et.scaleToFit,style:et.style,width:et.width})},[et.breakAll,et.children,et.maxLines,et.scaleToFit,et.style,et.width]),rt=et.dx,it=et.dy,ot=et.textAnchor,at=et.verticalAnchor,st=et.scaleToFit,lt=et.angle,ct=et.lineHeight,ut=et.capHeight,ht=et.className,dt=et.breakAll,pt=_objectWithoutProperties$7(et,_excluded$7);if(!isNumOrStr(pt.x)||!isNumOrStr(pt.y))return null;var mt=pt.x+(isNumber(rt)?rt:0),gt=pt.y+(isNumber(it)?it:0),yt;switch(at){case"start":yt=reduceCSSCalc("calc(".concat(ut,")"));break;case"middle":yt=reduceCSSCalc("calc(".concat((nt.length-1)/2," * -").concat(ct," + (").concat(ut," / 2))"));break;default:yt=reduceCSSCalc("calc(".concat(nt.length-1," * -").concat(ct,")"));break}var bt=[];if(st){var wt=nt[0].width,vt=et.width;bt.push("scale(".concat((isNumber(vt)?vt/wt:1)/wt,")"))}return lt&&bt.push("rotate(".concat(lt,", ").concat(mt,", ").concat(gt,")")),bt.length&&(pt.transform=bt.join(" ")),React$1.createElement("text",_extends$j({},filterProps(pt,!0),{x:mt,y:gt,className:classNames("recharts-text",ht),textAnchor:ot,fill:pt.fill.includes("url")?textDefaultProps.fill:pt.fill}),nt.map(function(kt,St){return React$1.createElement("tspan",{x:mt,dy:St===0?yt:ct,key:St},kt.words.join(dt?"":" "))}))};Text.defaultProps=textDefaultProps;var baseIsEqual=_baseIsEqual;function isEqual$1(tt,et){return baseIsEqual(tt,et)}var isEqual_1=isEqual$1;const _isEqual=getDefaultExportFromCjs(isEqual_1);var isSymbol=isSymbol_1;function baseExtremum$2(tt,et,nt){for(var rt=-1,it=tt.length;++rtet}var _baseGt=baseGt$1,baseExtremum$1=_baseExtremum,baseGt=_baseGt,identity$5=identity_1;function max$1(tt){return tt&&tt.length?baseExtremum$1(tt,identity$5,baseGt):void 0}var max_1=max$1;const _max=getDefaultExportFromCjs(max_1);function baseLt$1(tt,et){return ttet?1:tt>=et?0:NaN}function descending(tt,et){return tt==null||et==null?NaN:ettt?1:et>=tt?0:NaN}function bisector(tt){let et,nt,rt;tt.length!==2?(et=ascending,nt=(st,lt)=>ascending(tt(st),lt),rt=(st,lt)=>tt(st)-lt):(et=tt===ascending||tt===descending?tt:zero$1,nt=tt,rt=tt);function it(st,lt,ct=0,ut=st.length){if(ct>>1;nt(st[ht],lt)<0?ct=ht+1:ut=ht}while(ct>>1;nt(st[ht],lt)<=0?ct=ht+1:ut=ht}while(ctct&&rt(st[ht-1],lt)>-rt(st[ht],lt)?ht-1:ht}return{left:it,center:at,right:ot}}function zero$1(){return 0}function number$3(tt){return tt===null?NaN:+tt}function*numbers(tt,et){if(et===void 0)for(let nt of tt)nt!=null&&(nt=+nt)>=nt&&(yield nt);else{let nt=-1;for(let rt of tt)(rt=et(rt,++nt,tt))!=null&&(rt=+rt)>=rt&&(yield rt)}}const ascendingBisect=bisector(ascending),bisectRight=ascendingBisect.right;bisector(number$3).center;const bisect=bisectRight;class InternMap extends Map{constructor(et,nt=keyof){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:nt}}),et!=null)for(const[rt,it]of et)this.set(rt,it)}get(et){return super.get(intern_get(this,et))}has(et){return super.has(intern_get(this,et))}set(et,nt){return super.set(intern_set(this,et),nt)}delete(et){return super.delete(intern_delete(this,et))}}function intern_get({_intern:tt,_key:et},nt){const rt=et(nt);return tt.has(rt)?tt.get(rt):nt}function intern_set({_intern:tt,_key:et},nt){const rt=et(nt);return tt.has(rt)?tt.get(rt):(tt.set(rt,nt),nt)}function intern_delete({_intern:tt,_key:et},nt){const rt=et(nt);return tt.has(rt)&&(nt=tt.get(rt),tt.delete(rt)),nt}function keyof(tt){return tt!==null&&typeof tt=="object"?tt.valueOf():tt}function compareDefined(tt=ascending){if(tt===ascending)return ascendingDefined;if(typeof tt!="function")throw new TypeError("compare is not a function");return(et,nt)=>{const rt=tt(et,nt);return rt||rt===0?rt:(tt(nt,nt)===0)-(tt(et,et)===0)}}function ascendingDefined(tt,et){return(tt==null||!(tt>=tt))-(et==null||!(et>=et))||(ttet?1:0)}const e10=Math.sqrt(50),e5=Math.sqrt(10),e2=Math.sqrt(2);function tickSpec(tt,et,nt){const rt=(et-tt)/Math.max(0,nt),it=Math.floor(Math.log10(rt)),ot=rt/Math.pow(10,it),at=ot>=e10?10:ot>=e5?5:ot>=e2?2:1;let st,lt,ct;return it<0?(ct=Math.pow(10,-it)/at,st=Math.round(tt*ct),lt=Math.round(et*ct),st/ctet&&--lt,ct=-ct):(ct=Math.pow(10,it)*at,st=Math.round(tt/ct),lt=Math.round(et/ct),st*ctet&&--lt),lt0))return[];if(tt===et)return[tt];const rt=et=it))return[];const st=ot-it+1,lt=new Array(st);if(rt)if(at<0)for(let ct=0;ct=rt)&&(nt=rt);else{let rt=-1;for(let it of tt)(it=et(it,++rt,tt))!=null&&(nt=it)&&(nt=it)}return nt}function min(tt,et){let nt;if(et===void 0)for(const rt of tt)rt!=null&&(nt>rt||nt===void 0&&rt>=rt)&&(nt=rt);else{let rt=-1;for(let it of tt)(it=et(it,++rt,tt))!=null&&(nt>it||nt===void 0&&it>=it)&&(nt=it)}return nt}function quickselect(tt,et,nt=0,rt=1/0,it){if(et=Math.floor(et),nt=Math.floor(Math.max(0,nt)),rt=Math.floor(Math.min(tt.length-1,rt)),!(nt<=et&&et<=rt))return tt;for(it=it===void 0?ascendingDefined:compareDefined(it);rt>nt;){if(rt-nt>600){const lt=rt-nt+1,ct=et-nt+1,ut=Math.log(lt),ht=.5*Math.exp(2*ut/3),dt=.5*Math.sqrt(ut*ht*(lt-ht)/lt)*(ct-lt/2<0?-1:1),pt=Math.max(nt,Math.floor(et-ct*ht/lt+dt)),mt=Math.min(rt,Math.floor(et+(lt-ct)*ht/lt+dt));quickselect(tt,et,pt,mt,it)}const ot=tt[et];let at=nt,st=rt;for(swap(tt,nt,et),it(tt[rt],ot)>0&&swap(tt,nt,rt);at0;)--st}it(tt[nt],ot)===0?swap(tt,nt,st):(++st,swap(tt,st,rt)),st<=et&&(nt=st+1),et<=st&&(rt=st-1)}return tt}function swap(tt,et,nt){const rt=tt[et];tt[et]=tt[nt],tt[nt]=rt}function quantile$1(tt,et,nt){if(tt=Float64Array.from(numbers(tt,nt)),!(!(rt=tt.length)||isNaN(et=+et))){if(et<=0||rt<2)return min(tt);if(et>=1)return max(tt);var rt,it=(rt-1)*et,ot=Math.floor(it),at=max(quickselect(tt,ot).subarray(0,ot+1)),st=min(tt.subarray(ot+1));return at+(st-at)*(it-ot)}}function quantileSorted(tt,et,nt=number$3){if(!(!(rt=tt.length)||isNaN(et=+et))){if(et<=0||rt<2)return+nt(tt[0],0,tt);if(et>=1)return+nt(tt[rt-1],rt-1,tt);var rt,it=(rt-1)*et,ot=Math.floor(it),at=+nt(tt[ot],ot,tt),st=+nt(tt[ot+1],ot+1,tt);return at+(st-at)*(it-ot)}}function range$2(tt,et,nt){tt=+tt,et=+et,nt=(it=arguments.length)<2?(et=tt,tt=0,1):it<3?1:+nt;for(var rt=-1,it=Math.max(0,Math.ceil((et-tt)/nt))|0,ot=new Array(it);++rt>8&15|et>>4&240,et>>4&15|et&240,(et&15)<<4|et&15,1):nt===8?rgba(et>>24&255,et>>16&255,et>>8&255,(et&255)/255):nt===4?rgba(et>>12&15|et>>8&240,et>>8&15|et>>4&240,et>>4&15|et&240,((et&15)<<4|et&15)/255):null):(et=reRgbInteger.exec(tt))?new Rgb(et[1],et[2],et[3],1):(et=reRgbPercent.exec(tt))?new Rgb(et[1]*255/100,et[2]*255/100,et[3]*255/100,1):(et=reRgbaInteger.exec(tt))?rgba(et[1],et[2],et[3],et[4]):(et=reRgbaPercent.exec(tt))?rgba(et[1]*255/100,et[2]*255/100,et[3]*255/100,et[4]):(et=reHslPercent.exec(tt))?hsla(et[1],et[2]/100,et[3]/100,1):(et=reHslaPercent.exec(tt))?hsla(et[1],et[2]/100,et[3]/100,et[4]):named.hasOwnProperty(tt)?rgbn(named[tt]):tt==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(tt){return new Rgb(tt>>16&255,tt>>8&255,tt&255,1)}function rgba(tt,et,nt,rt){return rt<=0&&(tt=et=nt=NaN),new Rgb(tt,et,nt,rt)}function rgbConvert(tt){return tt instanceof Color||(tt=color(tt)),tt?(tt=tt.rgb(),new Rgb(tt.r,tt.g,tt.b,tt.opacity)):new Rgb}function rgb$1(tt,et,nt,rt){return arguments.length===1?rgbConvert(tt):new Rgb(tt,et,nt,rt??1)}function Rgb(tt,et,nt,rt){this.r=+tt,this.g=+et,this.b=+nt,this.opacity=+rt}define(Rgb,rgb$1,extend(Color,{brighter(tt){return tt=tt==null?brighter:Math.pow(brighter,tt),new Rgb(this.r*tt,this.g*tt,this.b*tt,this.opacity)},darker(tt){return tt=tt==null?darker:Math.pow(darker,tt),new Rgb(this.r*tt,this.g*tt,this.b*tt,this.opacity)},rgb(){return this},clamp(){return new Rgb(clampi(this.r),clampi(this.g),clampi(this.b),clampa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:rgb_formatHex,formatHex:rgb_formatHex,formatHex8:rgb_formatHex8,formatRgb:rgb_formatRgb,toString:rgb_formatRgb}));function rgb_formatHex(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}`}function rgb_formatHex8(){return`#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb(){const tt=clampa(this.opacity);return`${tt===1?"rgb(":"rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${tt===1?")":`, ${tt})`}`}function clampa(tt){return isNaN(tt)?1:Math.max(0,Math.min(1,tt))}function clampi(tt){return Math.max(0,Math.min(255,Math.round(tt)||0))}function hex(tt){return tt=clampi(tt),(tt<16?"0":"")+tt.toString(16)}function hsla(tt,et,nt,rt){return rt<=0?tt=et=nt=NaN:nt<=0||nt>=1?tt=et=NaN:et<=0&&(tt=NaN),new Hsl(tt,et,nt,rt)}function hslConvert(tt){if(tt instanceof Hsl)return new Hsl(tt.h,tt.s,tt.l,tt.opacity);if(tt instanceof Color||(tt=color(tt)),!tt)return new Hsl;if(tt instanceof Hsl)return tt;tt=tt.rgb();var et=tt.r/255,nt=tt.g/255,rt=tt.b/255,it=Math.min(et,nt,rt),ot=Math.max(et,nt,rt),at=NaN,st=ot-it,lt=(ot+it)/2;return st?(et===ot?at=(nt-rt)/st+(nt0&<<1?0:at,new Hsl(at,st,lt,tt.opacity)}function hsl(tt,et,nt,rt){return arguments.length===1?hslConvert(tt):new Hsl(tt,et,nt,rt??1)}function Hsl(tt,et,nt,rt){this.h=+tt,this.s=+et,this.l=+nt,this.opacity=+rt}define(Hsl,hsl,extend(Color,{brighter(tt){return tt=tt==null?brighter:Math.pow(brighter,tt),new Hsl(this.h,this.s,this.l*tt,this.opacity)},darker(tt){return tt=tt==null?darker:Math.pow(darker,tt),new Hsl(this.h,this.s,this.l*tt,this.opacity)},rgb(){var tt=this.h%360+(this.h<0)*360,et=isNaN(tt)||isNaN(this.s)?0:this.s,nt=this.l,rt=nt+(nt<.5?nt:1-nt)*et,it=2*nt-rt;return new Rgb(hsl2rgb(tt>=240?tt-240:tt+120,it,rt),hsl2rgb(tt,it,rt),hsl2rgb(tt<120?tt+240:tt-120,it,rt),this.opacity)},clamp(){return new Hsl(clamph(this.h),clampt(this.s),clampt(this.l),clampa(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const tt=clampa(this.opacity);return`${tt===1?"hsl(":"hsla("}${clamph(this.h)}, ${clampt(this.s)*100}%, ${clampt(this.l)*100}%${tt===1?")":`, ${tt})`}`}}));function clamph(tt){return tt=(tt||0)%360,tt<0?tt+360:tt}function clampt(tt){return Math.max(0,Math.min(1,tt||0))}function hsl2rgb(tt,et,nt){return(tt<60?et+(nt-et)*tt/60:tt<180?nt:tt<240?et+(nt-et)*(240-tt)/60:et)*255}const constant=tt=>()=>tt;function linear$1(tt,et){return function(nt){return tt+nt*et}}function exponential(tt,et,nt){return tt=Math.pow(tt,nt),et=Math.pow(et,nt)-tt,nt=1/nt,function(rt){return Math.pow(tt+rt*et,nt)}}function gamma(tt){return(tt=+tt)==1?nogamma:function(et,nt){return nt-et?exponential(et,nt,tt):constant(isNaN(et)?nt:et)}}function nogamma(tt,et){var nt=et-tt;return nt?linear$1(tt,nt):constant(isNaN(tt)?et:tt)}const rgb=function tt(et){var nt=gamma(et);function rt(it,ot){var at=nt((it=rgb$1(it)).r,(ot=rgb$1(ot)).r),st=nt(it.g,ot.g),lt=nt(it.b,ot.b),ct=nogamma(it.opacity,ot.opacity);return function(ut){return it.r=at(ut),it.g=st(ut),it.b=lt(ut),it.opacity=ct(ut),it+""}}return rt.gamma=tt,rt}(1);function numberArray(tt,et){et||(et=[]);var nt=tt?Math.min(et.length,tt.length):0,rt=et.slice(),it;return function(ot){for(it=0;itnt&&(ot=et.slice(nt,ot),st[at]?st[at]+=ot:st[++at]=ot),(rt=rt[0])===(it=it[0])?st[at]?st[at]+=it:st[++at]=it:(st[++at]=null,lt.push({i:at,x:interpolateNumber$1(rt,it)})),nt=reB.lastIndex;return ntet&&(nt=tt,tt=et,et=nt),function(rt){return Math.max(tt,Math.min(et,rt))}}function bimap(tt,et,nt){var rt=tt[0],it=tt[1],ot=et[0],at=et[1];return it2?polymap:bimap,lt=ct=null,ht}function ht(dt){return dt==null||isNaN(dt=+dt)?ot:(lt||(lt=st(tt.map(rt),et,nt)))(rt(at(dt)))}return ht.invert=function(dt){return at(it((ct||(ct=st(et,tt.map(rt),interpolateNumber$1)))(dt)))},ht.domain=function(dt){return arguments.length?(tt=Array.from(dt,number$2),ut()):tt.slice()},ht.range=function(dt){return arguments.length?(et=Array.from(dt),ut()):et.slice()},ht.rangeRound=function(dt){return et=Array.from(dt),nt=interpolateRound,ut()},ht.clamp=function(dt){return arguments.length?(at=dt?!0:identity$3,ut()):at!==identity$3},ht.interpolate=function(dt){return arguments.length?(nt=dt,ut()):nt},ht.unknown=function(dt){return arguments.length?(ot=dt,ht):ot},function(dt,pt){return rt=dt,it=pt,ut()}}function continuous(){return transformer$2()(identity$3,identity$3)}function formatDecimal(tt){return Math.abs(tt=Math.round(tt))>=1e21?tt.toLocaleString("en").replace(/,/g,""):tt.toString(10)}function formatDecimalParts(tt,et){if((nt=(tt=et?tt.toExponential(et-1):tt.toExponential()).indexOf("e"))<0)return null;var nt,rt=tt.slice(0,nt);return[rt.length>1?rt[0]+rt.slice(2):rt,+tt.slice(nt+1)]}function exponent(tt){return tt=formatDecimalParts(Math.abs(tt)),tt?tt[1]:NaN}function formatGroup(tt,et){return function(nt,rt){for(var it=nt.length,ot=[],at=0,st=tt[0],lt=0;it>0&&st>0&&(lt+st+1>rt&&(st=Math.max(1,rt-lt)),ot.push(nt.substring(it-=st,it+st)),!((lt+=st+1)>rt));)st=tt[at=(at+1)%tt.length];return ot.reverse().join(et)}}function formatNumerals(tt){return function(et){return et.replace(/[0-9]/g,function(nt){return tt[+nt]})}}var re$1=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function formatSpecifier(tt){if(!(et=re$1.exec(tt)))throw new Error("invalid format: "+tt);var et;return new FormatSpecifier({fill:et[1],align:et[2],sign:et[3],symbol:et[4],zero:et[5],width:et[6],comma:et[7],precision:et[8]&&et[8].slice(1),trim:et[9],type:et[10]})}formatSpecifier.prototype=FormatSpecifier.prototype;function FormatSpecifier(tt){this.fill=tt.fill===void 0?" ":tt.fill+"",this.align=tt.align===void 0?">":tt.align+"",this.sign=tt.sign===void 0?"-":tt.sign+"",this.symbol=tt.symbol===void 0?"":tt.symbol+"",this.zero=!!tt.zero,this.width=tt.width===void 0?void 0:+tt.width,this.comma=!!tt.comma,this.precision=tt.precision===void 0?void 0:+tt.precision,this.trim=!!tt.trim,this.type=tt.type===void 0?"":tt.type+""}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function formatTrim(tt){e:for(var et=tt.length,nt=1,rt=-1,it;nt0&&(rt=0);break}return rt>0?tt.slice(0,rt)+tt.slice(it+1):tt}var prefixExponent;function formatPrefixAuto(tt,et){var nt=formatDecimalParts(tt,et);if(!nt)return tt+"";var rt=nt[0],it=nt[1],ot=it-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(it/3)))*3)+1,at=rt.length;return ot===at?rt:ot>at?rt+new Array(ot-at+1).join("0"):ot>0?rt.slice(0,ot)+"."+rt.slice(ot):"0."+new Array(1-ot).join("0")+formatDecimalParts(tt,Math.max(0,et+ot-1))[0]}function formatRounded(tt,et){var nt=formatDecimalParts(tt,et);if(!nt)return tt+"";var rt=nt[0],it=nt[1];return it<0?"0."+new Array(-it).join("0")+rt:rt.length>it+1?rt.slice(0,it+1)+"."+rt.slice(it+1):rt+new Array(it-rt.length+2).join("0")}const formatTypes={"%":(tt,et)=>(tt*100).toFixed(et),b:tt=>Math.round(tt).toString(2),c:tt=>tt+"",d:formatDecimal,e:(tt,et)=>tt.toExponential(et),f:(tt,et)=>tt.toFixed(et),g:(tt,et)=>tt.toPrecision(et),o:tt=>Math.round(tt).toString(8),p:(tt,et)=>formatRounded(tt*100,et),r:formatRounded,s:formatPrefixAuto,X:tt=>Math.round(tt).toString(16).toUpperCase(),x:tt=>Math.round(tt).toString(16)};function identity$2(tt){return tt}var map$2=Array.prototype.map,prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function formatLocale$1(tt){var et=tt.grouping===void 0||tt.thousands===void 0?identity$2:formatGroup(map$2.call(tt.grouping,Number),tt.thousands+""),nt=tt.currency===void 0?"":tt.currency[0]+"",rt=tt.currency===void 0?"":tt.currency[1]+"",it=tt.decimal===void 0?".":tt.decimal+"",ot=tt.numerals===void 0?identity$2:formatNumerals(map$2.call(tt.numerals,String)),at=tt.percent===void 0?"%":tt.percent+"",st=tt.minus===void 0?"−":tt.minus+"",lt=tt.nan===void 0?"NaN":tt.nan+"";function ct(ht){ht=formatSpecifier(ht);var dt=ht.fill,pt=ht.align,mt=ht.sign,gt=ht.symbol,yt=ht.zero,bt=ht.width,wt=ht.comma,vt=ht.precision,kt=ht.trim,St=ht.type;St==="n"?(wt=!0,St="g"):formatTypes[St]||(vt===void 0&&(vt=12),kt=!0,St="g"),(yt||dt==="0"&&pt==="=")&&(yt=!0,dt="0",pt="=");var Et=gt==="$"?nt:gt==="#"&&/[boxX]/.test(St)?"0"+St.toLowerCase():"",At=gt==="$"?rt:/[%p]/.test(St)?at:"",Tt=formatTypes[St],Mt=/[defgprs%]/.test(St);vt=vt===void 0?6:/[gprs]/.test(St)?Math.max(1,Math.min(21,vt)):Math.max(0,Math.min(20,vt));function Lt(jt){var Rt=Et,$t=At,xt,It,Ot;if(St==="c")$t=Tt(jt)+$t,jt="";else{jt=+jt;var zt=jt<0||1/jt<0;if(jt=isNaN(jt)?lt:Tt(Math.abs(jt),vt),kt&&(jt=formatTrim(jt)),zt&&+jt==0&&mt!=="+"&&(zt=!1),Rt=(zt?mt==="("?mt:st:mt==="-"||mt==="("?"":mt)+Rt,$t=(St==="s"?prefixes[8+prefixExponent/3]:"")+$t+(zt&&mt==="("?")":""),Mt){for(xt=-1,It=jt.length;++xtOt||Ot>57){$t=(Ot===46?it+jt.slice(xt+1):jt.slice(xt))+$t,jt=jt.slice(0,xt);break}}}wt&&!yt&&(jt=et(jt,1/0));var Ut=Rt.length+jt.length+$t.length,Wt=Ut>1)+Rt+jt+$t+Wt.slice(Ut);break;default:jt=Wt+Rt+jt+$t;break}return ot(jt)}return Lt.toString=function(){return ht+""},Lt}function ut(ht,dt){var pt=ct((ht=formatSpecifier(ht),ht.type="f",ht)),mt=Math.max(-8,Math.min(8,Math.floor(exponent(dt)/3)))*3,gt=Math.pow(10,-mt),yt=prefixes[8+mt/3];return function(bt){return pt(gt*bt)+yt}}return{format:ct,formatPrefix:ut}}var locale$1,format,formatPrefix;defaultLocale$1({thousands:",",grouping:[3],currency:["$",""]});function defaultLocale$1(tt){return locale$1=formatLocale$1(tt),format=locale$1.format,formatPrefix=locale$1.formatPrefix,locale$1}function precisionFixed(tt){return Math.max(0,-exponent(Math.abs(tt)))}function precisionPrefix(tt,et){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent(et)/3)))*3-exponent(Math.abs(tt)))}function precisionRound(tt,et){return tt=Math.abs(tt),et=Math.abs(et)-tt,Math.max(0,exponent(et)-exponent(tt))+1}function tickFormat(tt,et,nt,rt){var it=tickStep(tt,et,nt),ot;switch(rt=formatSpecifier(rt??",f"),rt.type){case"s":{var at=Math.max(Math.abs(tt),Math.abs(et));return rt.precision==null&&!isNaN(ot=precisionPrefix(it,at))&&(rt.precision=ot),formatPrefix(rt,at)}case"":case"e":case"g":case"p":case"r":{rt.precision==null&&!isNaN(ot=precisionRound(it,Math.max(Math.abs(tt),Math.abs(et))))&&(rt.precision=ot-(rt.type==="e"));break}case"f":case"%":{rt.precision==null&&!isNaN(ot=precisionFixed(it))&&(rt.precision=ot-(rt.type==="%")*2);break}}return format(rt)}function linearish(tt){var et=tt.domain;return tt.ticks=function(nt){var rt=et();return ticks(rt[0],rt[rt.length-1],nt??10)},tt.tickFormat=function(nt,rt){var it=et();return tickFormat(it[0],it[it.length-1],nt??10,rt)},tt.nice=function(nt){nt==null&&(nt=10);var rt=et(),it=0,ot=rt.length-1,at=rt[it],st=rt[ot],lt,ct,ut=10;for(st0;){if(ct=tickIncrement(at,st,nt),ct===lt)return rt[it]=at,rt[ot]=st,et(rt);if(ct>0)at=Math.floor(at/ct)*ct,st=Math.ceil(st/ct)*ct;else if(ct<0)at=Math.ceil(at*ct)/ct,st=Math.floor(st*ct)/ct;else break;lt=ct}return tt},tt}function linear(){var tt=continuous();return tt.copy=function(){return copy$1(tt,linear())},initRange.apply(tt,arguments),linearish(tt)}function identity$1(tt){var et;function nt(rt){return rt==null||isNaN(rt=+rt)?et:rt}return nt.invert=nt,nt.domain=nt.range=function(rt){return arguments.length?(tt=Array.from(rt,number$2),nt):tt.slice()},nt.unknown=function(rt){return arguments.length?(et=rt,nt):et},nt.copy=function(){return identity$1(tt).unknown(et)},tt=arguments.length?Array.from(tt,number$2):[0,1],linearish(nt)}function nice(tt,et){tt=tt.slice();var nt=0,rt=tt.length-1,it=tt[nt],ot=tt[rt],at;return otMath.pow(tt,et)}function logp(tt){return tt===Math.E?Math.log:tt===10&&Math.log10||tt===2&&Math.log2||(tt=Math.log(tt),et=>Math.log(et)/tt)}function reflect(tt){return(et,nt)=>-tt(-et,nt)}function loggish(tt){const et=tt(transformLog,transformExp),nt=et.domain;let rt=10,it,ot;function at(){return it=logp(rt),ot=powp(rt),nt()[0]<0?(it=reflect(it),ot=reflect(ot),tt(transformLogn,transformExpn)):tt(transformLog,transformExp),et}return et.base=function(st){return arguments.length?(rt=+st,at()):rt},et.domain=function(st){return arguments.length?(nt(st),at()):nt()},et.ticks=st=>{const lt=nt();let ct=lt[0],ut=lt[lt.length-1];const ht=ut0){for(;dt<=pt;++dt)for(mt=1;mtut)break;bt.push(gt)}}else for(;dt<=pt;++dt)for(mt=rt-1;mt>=1;--mt)if(gt=dt>0?mt/ot(-dt):mt*ot(dt),!(gtut)break;bt.push(gt)}bt.length*2{if(st==null&&(st=10),lt==null&&(lt=rt===10?"s":","),typeof lt!="function"&&(!(rt%1)&&(lt=formatSpecifier(lt)).precision==null&&(lt.trim=!0),lt=format(lt)),st===1/0)return lt;const ct=Math.max(1,rt*st/et.ticks().length);return ut=>{let ht=ut/ot(Math.round(it(ut)));return ht*rtnt(nice(nt(),{floor:st=>ot(Math.floor(it(st))),ceil:st=>ot(Math.ceil(it(st)))})),et}function log(){const tt=loggish(transformer$2()).domain([1,10]);return tt.copy=()=>copy$1(tt,log()).base(tt.base()),initRange.apply(tt,arguments),tt}function transformSymlog(tt){return function(et){return Math.sign(et)*Math.log1p(Math.abs(et/tt))}}function transformSymexp(tt){return function(et){return Math.sign(et)*Math.expm1(Math.abs(et))*tt}}function symlogish(tt){var et=1,nt=tt(transformSymlog(et),transformSymexp(et));return nt.constant=function(rt){return arguments.length?tt(transformSymlog(et=+rt),transformSymexp(et)):et},linearish(nt)}function symlog(){var tt=symlogish(transformer$2());return tt.copy=function(){return copy$1(tt,symlog()).constant(tt.constant())},initRange.apply(tt,arguments)}function transformPow(tt){return function(et){return et<0?-Math.pow(-et,tt):Math.pow(et,tt)}}function transformSqrt(tt){return tt<0?-Math.sqrt(-tt):Math.sqrt(tt)}function transformSquare(tt){return tt<0?-tt*tt:tt*tt}function powish(tt){var et=tt(identity$3,identity$3),nt=1;function rt(){return nt===1?tt(identity$3,identity$3):nt===.5?tt(transformSqrt,transformSquare):tt(transformPow(nt),transformPow(1/nt))}return et.exponent=function(it){return arguments.length?(nt=+it,rt()):nt},linearish(et)}function pow(){var tt=powish(transformer$2());return tt.copy=function(){return copy$1(tt,pow()).exponent(tt.exponent())},initRange.apply(tt,arguments),tt}function sqrt(){return pow.apply(null,arguments).exponent(.5)}function square(tt){return Math.sign(tt)*tt*tt}function unsquare(tt){return Math.sign(tt)*Math.sqrt(Math.abs(tt))}function radial(){var tt=continuous(),et=[0,1],nt=!1,rt;function it(ot){var at=unsquare(tt(ot));return isNaN(at)?rt:nt?Math.round(at):at}return it.invert=function(ot){return tt.invert(square(ot))},it.domain=function(ot){return arguments.length?(tt.domain(ot),it):tt.domain()},it.range=function(ot){return arguments.length?(tt.range((et=Array.from(ot,number$2)).map(square)),it):et.slice()},it.rangeRound=function(ot){return it.range(ot).round(!0)},it.round=function(ot){return arguments.length?(nt=!!ot,it):nt},it.clamp=function(ot){return arguments.length?(tt.clamp(ot),it):tt.clamp()},it.unknown=function(ot){return arguments.length?(rt=ot,it):rt},it.copy=function(){return radial(tt.domain(),et).round(nt).clamp(tt.clamp()).unknown(rt)},initRange.apply(it,arguments),linearish(it)}function quantile(){var tt=[],et=[],nt=[],rt;function it(){var at=0,st=Math.max(1,et.length);for(nt=new Array(st-1);++at0?nt[st-1]:tt[0],st=nt?[rt[nt-1],et]:[rt[ct-1],rt[ct]]},at.unknown=function(lt){return arguments.length&&(ot=lt),at},at.thresholds=function(){return rt.slice()},at.copy=function(){return quantize().domain([tt,et]).range(it).unknown(ot)},initRange.apply(linearish(at),arguments)}function threshold(){var tt=[.5],et=[0,1],nt,rt=1;function it(ot){return ot!=null&&ot<=ot?et[bisect(tt,ot,0,rt)]:nt}return it.domain=function(ot){return arguments.length?(tt=Array.from(ot),rt=Math.min(tt.length,et.length-1),it):tt.slice()},it.range=function(ot){return arguments.length?(et=Array.from(ot),rt=Math.min(tt.length,et.length-1),it):et.slice()},it.invertExtent=function(ot){var at=et.indexOf(ot);return[tt[at-1],tt[at]]},it.unknown=function(ot){return arguments.length?(nt=ot,it):nt},it.copy=function(){return threshold().domain(tt).range(et).unknown(nt)},initRange.apply(it,arguments)}const t0=new Date,t1=new Date;function timeInterval(tt,et,nt,rt){function it(ot){return tt(ot=arguments.length===0?new Date:new Date(+ot)),ot}return it.floor=ot=>(tt(ot=new Date(+ot)),ot),it.ceil=ot=>(tt(ot=new Date(ot-1)),et(ot,1),tt(ot),ot),it.round=ot=>{const at=it(ot),st=it.ceil(ot);return ot-at(et(ot=new Date(+ot),at==null?1:Math.floor(at)),ot),it.range=(ot,at,st)=>{const lt=[];if(ot=it.ceil(ot),st=st==null?1:Math.floor(st),!(ot0))return lt;let ct;do lt.push(ct=new Date(+ot)),et(ot,st),tt(ot);while(cttimeInterval(at=>{if(at>=at)for(;tt(at),!ot(at);)at.setTime(at-1)},(at,st)=>{if(at>=at)if(st<0)for(;++st<=0;)for(;et(at,-1),!ot(at););else for(;--st>=0;)for(;et(at,1),!ot(at););}),nt&&(it.count=(ot,at)=>(t0.setTime(+ot),t1.setTime(+at),tt(t0),tt(t1),Math.floor(nt(t0,t1))),it.every=ot=>(ot=Math.floor(ot),!isFinite(ot)||!(ot>0)?null:ot>1?it.filter(rt?at=>rt(at)%ot===0:at=>it.count(0,at)%ot===0):it)),it}const millisecond=timeInterval(()=>{},(tt,et)=>{tt.setTime(+tt+et)},(tt,et)=>et-tt);millisecond.every=tt=>(tt=Math.floor(tt),!isFinite(tt)||!(tt>0)?null:tt>1?timeInterval(et=>{et.setTime(Math.floor(et/tt)*tt)},(et,nt)=>{et.setTime(+et+nt*tt)},(et,nt)=>(nt-et)/tt):millisecond);millisecond.range;const durationSecond=1e3,durationMinute=durationSecond*60,durationHour=durationMinute*60,durationDay=durationHour*24,durationWeek=durationDay*7,durationMonth=durationDay*30,durationYear=durationDay*365,second=timeInterval(tt=>{tt.setTime(tt-tt.getMilliseconds())},(tt,et)=>{tt.setTime(+tt+et*durationSecond)},(tt,et)=>(et-tt)/durationSecond,tt=>tt.getUTCSeconds());second.range;const timeMinute=timeInterval(tt=>{tt.setTime(tt-tt.getMilliseconds()-tt.getSeconds()*durationSecond)},(tt,et)=>{tt.setTime(+tt+et*durationMinute)},(tt,et)=>(et-tt)/durationMinute,tt=>tt.getMinutes());timeMinute.range;const utcMinute=timeInterval(tt=>{tt.setUTCSeconds(0,0)},(tt,et)=>{tt.setTime(+tt+et*durationMinute)},(tt,et)=>(et-tt)/durationMinute,tt=>tt.getUTCMinutes());utcMinute.range;const timeHour=timeInterval(tt=>{tt.setTime(tt-tt.getMilliseconds()-tt.getSeconds()*durationSecond-tt.getMinutes()*durationMinute)},(tt,et)=>{tt.setTime(+tt+et*durationHour)},(tt,et)=>(et-tt)/durationHour,tt=>tt.getHours());timeHour.range;const utcHour=timeInterval(tt=>{tt.setUTCMinutes(0,0,0)},(tt,et)=>{tt.setTime(+tt+et*durationHour)},(tt,et)=>(et-tt)/durationHour,tt=>tt.getUTCHours());utcHour.range;const timeDay=timeInterval(tt=>tt.setHours(0,0,0,0),(tt,et)=>tt.setDate(tt.getDate()+et),(tt,et)=>(et-tt-(et.getTimezoneOffset()-tt.getTimezoneOffset())*durationMinute)/durationDay,tt=>tt.getDate()-1);timeDay.range;const utcDay=timeInterval(tt=>{tt.setUTCHours(0,0,0,0)},(tt,et)=>{tt.setUTCDate(tt.getUTCDate()+et)},(tt,et)=>(et-tt)/durationDay,tt=>tt.getUTCDate()-1);utcDay.range;const unixDay=timeInterval(tt=>{tt.setUTCHours(0,0,0,0)},(tt,et)=>{tt.setUTCDate(tt.getUTCDate()+et)},(tt,et)=>(et-tt)/durationDay,tt=>Math.floor(tt/durationDay));unixDay.range;function timeWeekday(tt){return timeInterval(et=>{et.setDate(et.getDate()-(et.getDay()+7-tt)%7),et.setHours(0,0,0,0)},(et,nt)=>{et.setDate(et.getDate()+nt*7)},(et,nt)=>(nt-et-(nt.getTimezoneOffset()-et.getTimezoneOffset())*durationMinute)/durationWeek)}const timeSunday=timeWeekday(0),timeMonday=timeWeekday(1),timeTuesday=timeWeekday(2),timeWednesday=timeWeekday(3),timeThursday=timeWeekday(4),timeFriday=timeWeekday(5),timeSaturday=timeWeekday(6);timeSunday.range;timeMonday.range;timeTuesday.range;timeWednesday.range;timeThursday.range;timeFriday.range;timeSaturday.range;function utcWeekday(tt){return timeInterval(et=>{et.setUTCDate(et.getUTCDate()-(et.getUTCDay()+7-tt)%7),et.setUTCHours(0,0,0,0)},(et,nt)=>{et.setUTCDate(et.getUTCDate()+nt*7)},(et,nt)=>(nt-et)/durationWeek)}const utcSunday=utcWeekday(0),utcMonday=utcWeekday(1),utcTuesday=utcWeekday(2),utcWednesday=utcWeekday(3),utcThursday=utcWeekday(4),utcFriday=utcWeekday(5),utcSaturday=utcWeekday(6);utcSunday.range;utcMonday.range;utcTuesday.range;utcWednesday.range;utcThursday.range;utcFriday.range;utcSaturday.range;const timeMonth=timeInterval(tt=>{tt.setDate(1),tt.setHours(0,0,0,0)},(tt,et)=>{tt.setMonth(tt.getMonth()+et)},(tt,et)=>et.getMonth()-tt.getMonth()+(et.getFullYear()-tt.getFullYear())*12,tt=>tt.getMonth());timeMonth.range;const utcMonth=timeInterval(tt=>{tt.setUTCDate(1),tt.setUTCHours(0,0,0,0)},(tt,et)=>{tt.setUTCMonth(tt.getUTCMonth()+et)},(tt,et)=>et.getUTCMonth()-tt.getUTCMonth()+(et.getUTCFullYear()-tt.getUTCFullYear())*12,tt=>tt.getUTCMonth());utcMonth.range;const timeYear=timeInterval(tt=>{tt.setMonth(0,1),tt.setHours(0,0,0,0)},(tt,et)=>{tt.setFullYear(tt.getFullYear()+et)},(tt,et)=>et.getFullYear()-tt.getFullYear(),tt=>tt.getFullYear());timeYear.every=tt=>!isFinite(tt=Math.floor(tt))||!(tt>0)?null:timeInterval(et=>{et.setFullYear(Math.floor(et.getFullYear()/tt)*tt),et.setMonth(0,1),et.setHours(0,0,0,0)},(et,nt)=>{et.setFullYear(et.getFullYear()+nt*tt)});timeYear.range;const utcYear=timeInterval(tt=>{tt.setUTCMonth(0,1),tt.setUTCHours(0,0,0,0)},(tt,et)=>{tt.setUTCFullYear(tt.getUTCFullYear()+et)},(tt,et)=>et.getUTCFullYear()-tt.getUTCFullYear(),tt=>tt.getUTCFullYear());utcYear.every=tt=>!isFinite(tt=Math.floor(tt))||!(tt>0)?null:timeInterval(et=>{et.setUTCFullYear(Math.floor(et.getUTCFullYear()/tt)*tt),et.setUTCMonth(0,1),et.setUTCHours(0,0,0,0)},(et,nt)=>{et.setUTCFullYear(et.getUTCFullYear()+nt*tt)});utcYear.range;function ticker(tt,et,nt,rt,it,ot){const at=[[second,1,durationSecond],[second,5,5*durationSecond],[second,15,15*durationSecond],[second,30,30*durationSecond],[ot,1,durationMinute],[ot,5,5*durationMinute],[ot,15,15*durationMinute],[ot,30,30*durationMinute],[it,1,durationHour],[it,3,3*durationHour],[it,6,6*durationHour],[it,12,12*durationHour],[rt,1,durationDay],[rt,2,2*durationDay],[nt,1,durationWeek],[et,1,durationMonth],[et,3,3*durationMonth],[tt,1,durationYear]];function st(ct,ut,ht){const dt=utyt).right(at,dt);if(pt===at.length)return tt.every(tickStep(ct/durationYear,ut/durationYear,ht));if(pt===0)return millisecond.every(Math.max(tickStep(ct,ut,ht),1));const[mt,gt]=at[dt/at[pt-1][2]53)return null;"w"in en||(en.w=1),"Z"in en?(Rn=utcDate(newDate(en.y,0,1)),An=Rn.getUTCDay(),Rn=An>4||An===0?utcMonday.ceil(Rn):utcMonday(Rn),Rn=utcDay.offset(Rn,(en.V-1)*7),en.y=Rn.getUTCFullYear(),en.m=Rn.getUTCMonth(),en.d=Rn.getUTCDate()+(en.w+6)%7):(Rn=localDate(newDate(en.y,0,1)),An=Rn.getDay(),Rn=An>4||An===0?timeMonday.ceil(Rn):timeMonday(Rn),Rn=timeDay.offset(Rn,(en.V-1)*7),en.y=Rn.getFullYear(),en.m=Rn.getMonth(),en.d=Rn.getDate()+(en.w+6)%7)}else("W"in en||"U"in en)&&("w"in en||(en.w="u"in en?en.u%7:"W"in en?1:0),An="Z"in en?utcDate(newDate(en.y,0,1)).getUTCDay():localDate(newDate(en.y,0,1)).getDay(),en.m=0,en.d="W"in en?(en.w+6)%7+en.W*7-(An+5)%7:en.w+en.U*7-(An+6)%7);return"Z"in en?(en.H+=en.Z/100|0,en.M+=en.Z%100,utcDate(en)):localDate(en)}}function Tt(_n,En,an,en){for(var Tn=0,Rn=En.length,An=an.length,yn,kn;Tn=An)return-1;if(yn=En.charCodeAt(Tn++),yn===37){if(yn=En.charAt(Tn++),kn=St[yn in pads?En.charAt(Tn++):yn],!kn||(en=kn(_n,an,en))<0)return-1}else if(yn!=an.charCodeAt(en++))return-1}return en}function Mt(_n,En,an){var en=ct.exec(En.slice(an));return en?(_n.p=ut.get(en[0].toLowerCase()),an+en[0].length):-1}function Lt(_n,En,an){var en=pt.exec(En.slice(an));return en?(_n.w=mt.get(en[0].toLowerCase()),an+en[0].length):-1}function jt(_n,En,an){var en=ht.exec(En.slice(an));return en?(_n.w=dt.get(en[0].toLowerCase()),an+en[0].length):-1}function Rt(_n,En,an){var en=bt.exec(En.slice(an));return en?(_n.m=wt.get(en[0].toLowerCase()),an+en[0].length):-1}function $t(_n,En,an){var en=gt.exec(En.slice(an));return en?(_n.m=yt.get(en[0].toLowerCase()),an+en[0].length):-1}function xt(_n,En,an){return Tt(_n,et,En,an)}function It(_n,En,an){return Tt(_n,nt,En,an)}function Ot(_n,En,an){return Tt(_n,rt,En,an)}function zt(_n){return at[_n.getDay()]}function Ut(_n){return ot[_n.getDay()]}function Wt(_n){return lt[_n.getMonth()]}function Ft(_n){return st[_n.getMonth()]}function Nt(_n){return it[+(_n.getHours()>=12)]}function Ct(_n){return 1+~~(_n.getMonth()/3)}function Ht(_n){return at[_n.getUTCDay()]}function Jt(_n){return ot[_n.getUTCDay()]}function nn(_n){return lt[_n.getUTCMonth()]}function Yt(_n){return st[_n.getUTCMonth()]}function fn(_n){return it[+(_n.getUTCHours()>=12)]}function cn(_n){return 1+~~(_n.getUTCMonth()/3)}return{format:function(_n){var En=Et(_n+="",vt);return En.toString=function(){return _n},En},parse:function(_n){var En=At(_n+="",!1);return En.toString=function(){return _n},En},utcFormat:function(_n){var En=Et(_n+="",kt);return En.toString=function(){return _n},En},utcParse:function(_n){var En=At(_n+="",!0);return En.toString=function(){return _n},En}}}var pads={"-":"",_:" ",0:"0"},numberRe=/^\s*\d+/,percentRe=/^%/,requoteRe=/[\\^$*+?|[\]().{}]/g;function pad(tt,et,nt){var rt=tt<0?"-":"",it=(rt?-tt:tt)+"",ot=it.length;return rt+(ot[et.toLowerCase(),nt]))}function parseWeekdayNumberSunday(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+1));return rt?(tt.w=+rt[0],nt+rt[0].length):-1}function parseWeekdayNumberMonday(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+1));return rt?(tt.u=+rt[0],nt+rt[0].length):-1}function parseWeekNumberSunday(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.U=+rt[0],nt+rt[0].length):-1}function parseWeekNumberISO(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.V=+rt[0],nt+rt[0].length):-1}function parseWeekNumberMonday(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.W=+rt[0],nt+rt[0].length):-1}function parseFullYear(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+4));return rt?(tt.y=+rt[0],nt+rt[0].length):-1}function parseYear(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.y=+rt[0]+(+rt[0]>68?1900:2e3),nt+rt[0].length):-1}function parseZone(tt,et,nt){var rt=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(et.slice(nt,nt+6));return rt?(tt.Z=rt[1]?0:-(rt[2]+(rt[3]||"00")),nt+rt[0].length):-1}function parseQuarter(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+1));return rt?(tt.q=rt[0]*3-3,nt+rt[0].length):-1}function parseMonthNumber(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.m=rt[0]-1,nt+rt[0].length):-1}function parseDayOfMonth(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.d=+rt[0],nt+rt[0].length):-1}function parseDayOfYear(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+3));return rt?(tt.m=0,tt.d=+rt[0],nt+rt[0].length):-1}function parseHour24(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.H=+rt[0],nt+rt[0].length):-1}function parseMinutes(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.M=+rt[0],nt+rt[0].length):-1}function parseSeconds(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+2));return rt?(tt.S=+rt[0],nt+rt[0].length):-1}function parseMilliseconds(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+3));return rt?(tt.L=+rt[0],nt+rt[0].length):-1}function parseMicroseconds(tt,et,nt){var rt=numberRe.exec(et.slice(nt,nt+6));return rt?(tt.L=Math.floor(rt[0]/1e3),nt+rt[0].length):-1}function parseLiteralPercent(tt,et,nt){var rt=percentRe.exec(et.slice(nt,nt+1));return rt?nt+rt[0].length:-1}function parseUnixTimestamp(tt,et,nt){var rt=numberRe.exec(et.slice(nt));return rt?(tt.Q=+rt[0],nt+rt[0].length):-1}function parseUnixTimestampSeconds(tt,et,nt){var rt=numberRe.exec(et.slice(nt));return rt?(tt.s=+rt[0],nt+rt[0].length):-1}function formatDayOfMonth(tt,et){return pad(tt.getDate(),et,2)}function formatHour24(tt,et){return pad(tt.getHours(),et,2)}function formatHour12(tt,et){return pad(tt.getHours()%12||12,et,2)}function formatDayOfYear(tt,et){return pad(1+timeDay.count(timeYear(tt),tt),et,3)}function formatMilliseconds(tt,et){return pad(tt.getMilliseconds(),et,3)}function formatMicroseconds(tt,et){return formatMilliseconds(tt,et)+"000"}function formatMonthNumber(tt,et){return pad(tt.getMonth()+1,et,2)}function formatMinutes(tt,et){return pad(tt.getMinutes(),et,2)}function formatSeconds(tt,et){return pad(tt.getSeconds(),et,2)}function formatWeekdayNumberMonday(tt){var et=tt.getDay();return et===0?7:et}function formatWeekNumberSunday(tt,et){return pad(timeSunday.count(timeYear(tt)-1,tt),et,2)}function dISO(tt){var et=tt.getDay();return et>=4||et===0?timeThursday(tt):timeThursday.ceil(tt)}function formatWeekNumberISO(tt,et){return tt=dISO(tt),pad(timeThursday.count(timeYear(tt),tt)+(timeYear(tt).getDay()===4),et,2)}function formatWeekdayNumberSunday(tt){return tt.getDay()}function formatWeekNumberMonday(tt,et){return pad(timeMonday.count(timeYear(tt)-1,tt),et,2)}function formatYear(tt,et){return pad(tt.getFullYear()%100,et,2)}function formatYearISO(tt,et){return tt=dISO(tt),pad(tt.getFullYear()%100,et,2)}function formatFullYear(tt,et){return pad(tt.getFullYear()%1e4,et,4)}function formatFullYearISO(tt,et){var nt=tt.getDay();return tt=nt>=4||nt===0?timeThursday(tt):timeThursday.ceil(tt),pad(tt.getFullYear()%1e4,et,4)}function formatZone(tt){var et=tt.getTimezoneOffset();return(et>0?"-":(et*=-1,"+"))+pad(et/60|0,"0",2)+pad(et%60,"0",2)}function formatUTCDayOfMonth(tt,et){return pad(tt.getUTCDate(),et,2)}function formatUTCHour24(tt,et){return pad(tt.getUTCHours(),et,2)}function formatUTCHour12(tt,et){return pad(tt.getUTCHours()%12||12,et,2)}function formatUTCDayOfYear(tt,et){return pad(1+utcDay.count(utcYear(tt),tt),et,3)}function formatUTCMilliseconds(tt,et){return pad(tt.getUTCMilliseconds(),et,3)}function formatUTCMicroseconds(tt,et){return formatUTCMilliseconds(tt,et)+"000"}function formatUTCMonthNumber(tt,et){return pad(tt.getUTCMonth()+1,et,2)}function formatUTCMinutes(tt,et){return pad(tt.getUTCMinutes(),et,2)}function formatUTCSeconds(tt,et){return pad(tt.getUTCSeconds(),et,2)}function formatUTCWeekdayNumberMonday(tt){var et=tt.getUTCDay();return et===0?7:et}function formatUTCWeekNumberSunday(tt,et){return pad(utcSunday.count(utcYear(tt)-1,tt),et,2)}function UTCdISO(tt){var et=tt.getUTCDay();return et>=4||et===0?utcThursday(tt):utcThursday.ceil(tt)}function formatUTCWeekNumberISO(tt,et){return tt=UTCdISO(tt),pad(utcThursday.count(utcYear(tt),tt)+(utcYear(tt).getUTCDay()===4),et,2)}function formatUTCWeekdayNumberSunday(tt){return tt.getUTCDay()}function formatUTCWeekNumberMonday(tt,et){return pad(utcMonday.count(utcYear(tt)-1,tt),et,2)}function formatUTCYear(tt,et){return pad(tt.getUTCFullYear()%100,et,2)}function formatUTCYearISO(tt,et){return tt=UTCdISO(tt),pad(tt.getUTCFullYear()%100,et,2)}function formatUTCFullYear(tt,et){return pad(tt.getUTCFullYear()%1e4,et,4)}function formatUTCFullYearISO(tt,et){var nt=tt.getUTCDay();return tt=nt>=4||nt===0?utcThursday(tt):utcThursday.ceil(tt),pad(tt.getUTCFullYear()%1e4,et,4)}function formatUTCZone(){return"+0000"}function formatLiteralPercent(){return"%"}function formatUnixTimestamp(tt){return+tt}function formatUnixTimestampSeconds(tt){return Math.floor(+tt/1e3)}var locale,timeFormat,utcFormat;defaultLocale({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function defaultLocale(tt){return locale=formatLocale(tt),timeFormat=locale.format,locale.parse,utcFormat=locale.utcFormat,locale.utcParse,locale}function date(tt){return new Date(tt)}function number$1(tt){return tt instanceof Date?+tt:+new Date(+tt)}function calendar(tt,et,nt,rt,it,ot,at,st,lt,ct){var ut=continuous(),ht=ut.invert,dt=ut.domain,pt=ct(".%L"),mt=ct(":%S"),gt=ct("%I:%M"),yt=ct("%I %p"),bt=ct("%a %d"),wt=ct("%b %d"),vt=ct("%B"),kt=ct("%Y");function St(Et){return(lt(Et)et(it/(tt.length-1)))},nt.quantiles=function(rt){return Array.from({length:rt+1},(it,ot)=>quantile$1(tt,ot/rt))},nt.copy=function(){return sequentialQuantile(et).domain(tt)},initInterpolator.apply(nt,arguments)}function transformer(){var tt=0,et=.5,nt=1,rt=1,it,ot,at,st,lt,ct=identity$3,ut,ht=!1,dt;function pt(gt){return isNaN(gt=+gt)?dt:(gt=.5+((gt=+ut(gt))-ot)*(rt*gttt.e^ot.s<0?1:-1;for(rt=ot.d.length,it=tt.d.length,et=0,nt=rttt.d[et]^ot.s<0?1:-1;return rt===it?0:rt>it^ot.s<0?1:-1};P.decimalPlaces=P.dp=function(){var tt=this,et=tt.d.length-1,nt=(et-tt.e)*LOG_BASE;if(et=tt.d[et],et)for(;et%10==0;et/=10)nt--;return nt<0?0:nt};P.dividedBy=P.div=function(tt){return divide(this,new this.constructor(tt))};P.dividedToIntegerBy=P.idiv=function(tt){var et=this,nt=et.constructor;return round(divide(et,new nt(tt),0,1),nt.precision)};P.equals=P.eq=function(tt){return!this.cmp(tt)};P.exponent=function(){return getBase10Exponent(this)};P.greaterThan=P.gt=function(tt){return this.cmp(tt)>0};P.greaterThanOrEqualTo=P.gte=function(tt){return this.cmp(tt)>=0};P.isInteger=P.isint=function(){return this.e>this.d.length-2};P.isNegative=P.isneg=function(){return this.s<0};P.isPositive=P.ispos=function(){return this.s>0};P.isZero=function(){return this.s===0};P.lessThan=P.lt=function(tt){return this.cmp(tt)<0};P.lessThanOrEqualTo=P.lte=function(tt){return this.cmp(tt)<1};P.logarithm=P.log=function(tt){var et,nt=this,rt=nt.constructor,it=rt.precision,ot=it+5;if(tt===void 0)tt=new rt(10);else if(tt=new rt(tt),tt.s<1||tt.eq(ONE))throw Error(decimalError+"NaN");if(nt.s<1)throw Error(decimalError+(nt.s?"NaN":"-Infinity"));return nt.eq(ONE)?new rt(0):(external=!1,et=divide(ln(nt,ot),ln(tt,ot),ot),external=!0,round(et,it))};P.minus=P.sub=function(tt){var et=this;return tt=new et.constructor(tt),et.s==tt.s?subtract(et,tt):add(et,(tt.s=-tt.s,tt))};P.modulo=P.mod=function(tt){var et,nt=this,rt=nt.constructor,it=rt.precision;if(tt=new rt(tt),!tt.s)throw Error(decimalError+"NaN");return nt.s?(external=!1,et=divide(nt,tt,0,1).times(tt),external=!0,nt.minus(et)):round(new rt(nt),it)};P.naturalExponential=P.exp=function(){return exp(this)};P.naturalLogarithm=P.ln=function(){return ln(this)};P.negated=P.neg=function(){var tt=new this.constructor(this);return tt.s=-tt.s||0,tt};P.plus=P.add=function(tt){var et=this;return tt=new et.constructor(tt),et.s==tt.s?add(et,tt):subtract(et,(tt.s=-tt.s,tt))};P.precision=P.sd=function(tt){var et,nt,rt,it=this;if(tt!==void 0&&tt!==!!tt&&tt!==1&&tt!==0)throw Error(invalidArgument+tt);if(et=getBase10Exponent(it)+1,rt=it.d.length-1,nt=rt*LOG_BASE+1,rt=it.d[rt],rt){for(;rt%10==0;rt/=10)nt--;for(rt=it.d[0];rt>=10;rt/=10)nt++}return tt&&et>nt?et:nt};P.squareRoot=P.sqrt=function(){var tt,et,nt,rt,it,ot,at,st=this,lt=st.constructor;if(st.s<1){if(!st.s)return new lt(0);throw Error(decimalError+"NaN")}for(tt=getBase10Exponent(st),external=!1,it=Math.sqrt(+st),it==0||it==1/0?(et=digitsToString(st.d),(et.length+tt)%2==0&&(et+="0"),it=Math.sqrt(et),tt=mathfloor((tt+1)/2)-(tt<0||tt%2),it==1/0?et="5e"+tt:(et=it.toExponential(),et=et.slice(0,et.indexOf("e")+1)+tt),rt=new lt(et)):rt=new lt(it.toString()),nt=lt.precision,it=at=nt+3;;)if(ot=rt,rt=ot.plus(divide(st,ot,at+2)).times(.5),digitsToString(ot.d).slice(0,at)===(et=digitsToString(rt.d)).slice(0,at)){if(et=et.slice(at-3,at+1),it==at&&et=="4999"){if(round(ot,nt+1,0),ot.times(ot).eq(st)){rt=ot;break}}else if(et!="9999")break;at+=4}return external=!0,round(rt,nt)};P.times=P.mul=function(tt){var et,nt,rt,it,ot,at,st,lt,ct,ut=this,ht=ut.constructor,dt=ut.d,pt=(tt=new ht(tt)).d;if(!ut.s||!tt.s)return new ht(0);for(tt.s*=ut.s,nt=ut.e+tt.e,lt=dt.length,ct=pt.length,lt=0;){for(et=0,it=lt+rt;it>rt;)st=ot[it]+pt[rt]*dt[it-rt-1]+et,ot[it--]=st%BASE|0,et=st/BASE|0;ot[it]=(ot[it]+et)%BASE|0}for(;!ot[--at];)ot.pop();return et?++nt:ot.shift(),tt.d=ot,tt.e=nt,external?round(tt,ht.precision):tt};P.toDecimalPlaces=P.todp=function(tt,et){var nt=this,rt=nt.constructor;return nt=new rt(nt),tt===void 0?nt:(checkInt32(tt,0,MAX_DIGITS),et===void 0?et=rt.rounding:checkInt32(et,0,8),round(nt,tt+getBase10Exponent(nt)+1,et))};P.toExponential=function(tt,et){var nt,rt=this,it=rt.constructor;return tt===void 0?nt=toString$1(rt,!0):(checkInt32(tt,0,MAX_DIGITS),et===void 0?et=it.rounding:checkInt32(et,0,8),rt=round(new it(rt),tt+1,et),nt=toString$1(rt,!0,tt+1)),nt};P.toFixed=function(tt,et){var nt,rt,it=this,ot=it.constructor;return tt===void 0?toString$1(it):(checkInt32(tt,0,MAX_DIGITS),et===void 0?et=ot.rounding:checkInt32(et,0,8),rt=round(new ot(it),tt+getBase10Exponent(it)+1,et),nt=toString$1(rt.abs(),!1,tt+getBase10Exponent(rt)+1),it.isneg()&&!it.isZero()?"-"+nt:nt)};P.toInteger=P.toint=function(){var tt=this,et=tt.constructor;return round(new et(tt),getBase10Exponent(tt)+1,et.rounding)};P.toNumber=function(){return+this};P.toPower=P.pow=function(tt){var et,nt,rt,it,ot,at,st=this,lt=st.constructor,ct=12,ut=+(tt=new lt(tt));if(!tt.s)return new lt(ONE);if(st=new lt(st),!st.s){if(tt.s<1)throw Error(decimalError+"Infinity");return st}if(st.eq(ONE))return st;if(rt=lt.precision,tt.eq(ONE))return round(st,rt);if(et=tt.e,nt=tt.d.length-1,at=et>=nt,ot=st.s,at){if((nt=ut<0?-ut:ut)<=MAX_SAFE_INTEGER){for(it=new lt(ONE),et=Math.ceil(rt/LOG_BASE+4),external=!1;nt%2&&(it=it.times(st),truncate(it.d,et)),nt=mathfloor(nt/2),nt!==0;)st=st.times(st),truncate(st.d,et);return external=!0,tt.s<0?new lt(ONE).div(it):round(it,rt)}}else if(ot<0)throw Error(decimalError+"NaN");return ot=ot<0&&tt.d[Math.max(et,nt)]&1?-1:1,st.s=1,external=!1,it=tt.times(ln(st,rt+ct)),external=!0,it=exp(it),it.s=ot,it};P.toPrecision=function(tt,et){var nt,rt,it=this,ot=it.constructor;return tt===void 0?(nt=getBase10Exponent(it),rt=toString$1(it,nt<=ot.toExpNeg||nt>=ot.toExpPos)):(checkInt32(tt,1,MAX_DIGITS),et===void 0?et=ot.rounding:checkInt32(et,0,8),it=round(new ot(it),tt,et),nt=getBase10Exponent(it),rt=toString$1(it,tt<=nt||nt<=ot.toExpNeg,tt)),rt};P.toSignificantDigits=P.tosd=function(tt,et){var nt=this,rt=nt.constructor;return tt===void 0?(tt=rt.precision,et=rt.rounding):(checkInt32(tt,1,MAX_DIGITS),et===void 0?et=rt.rounding:checkInt32(et,0,8)),round(new rt(nt),tt,et)};P.toString=P.valueOf=P.val=P.toJSON=P[Symbol.for("nodejs.util.inspect.custom")]=function(){var tt=this,et=getBase10Exponent(tt),nt=tt.constructor;return toString$1(tt,et<=nt.toExpNeg||et>=nt.toExpPos)};function add(tt,et){var nt,rt,it,ot,at,st,lt,ct,ut=tt.constructor,ht=ut.precision;if(!tt.s||!et.s)return et.s||(et=new ut(tt)),external?round(et,ht):et;if(lt=tt.d,ct=et.d,at=tt.e,it=et.e,lt=lt.slice(),ot=at-it,ot){for(ot<0?(rt=lt,ot=-ot,st=ct.length):(rt=ct,it=at,st=lt.length),at=Math.ceil(ht/LOG_BASE),st=at>st?at+1:st+1,ot>st&&(ot=st,rt.length=1),rt.reverse();ot--;)rt.push(0);rt.reverse()}for(st=lt.length,ot=ct.length,st-ot<0&&(ot=st,rt=ct,ct=lt,lt=rt),nt=0;ot;)nt=(lt[--ot]=lt[ot]+ct[ot]+nt)/BASE|0,lt[ot]%=BASE;for(nt&&(lt.unshift(nt),++it),st=lt.length;lt[--st]==0;)lt.pop();return et.d=lt,et.e=it,external?round(et,ht):et}function checkInt32(tt,et,nt){if(tt!==~~tt||ttnt)throw Error(invalidArgument+tt)}function digitsToString(tt){var et,nt,rt,it=tt.length-1,ot="",at=tt[0];if(it>0){for(ot+=at,et=1;etat?1:-1;else for(st=lt=0;stit[st]?1:-1;break}return lt}function nt(rt,it,ot){for(var at=0;ot--;)rt[ot]-=at,at=rt[ot]1;)rt.shift()}return function(rt,it,ot,at){var st,lt,ct,ut,ht,dt,pt,mt,gt,yt,bt,wt,vt,kt,St,Et,At,Tt,Mt=rt.constructor,Lt=rt.s==it.s?1:-1,jt=rt.d,Rt=it.d;if(!rt.s)return new Mt(rt);if(!it.s)throw Error(decimalError+"Division by zero");for(lt=rt.e-it.e,At=Rt.length,St=jt.length,pt=new Mt(Lt),mt=pt.d=[],ct=0;Rt[ct]==(jt[ct]||0);)++ct;if(Rt[ct]>(jt[ct]||0)&&--lt,ot==null?wt=ot=Mt.precision:at?wt=ot+(getBase10Exponent(rt)-getBase10Exponent(it))+1:wt=ot,wt<0)return new Mt(0);if(wt=wt/LOG_BASE+2|0,ct=0,At==1)for(ut=0,Rt=Rt[0],wt++;(ct1&&(Rt=tt(Rt,ut),jt=tt(jt,ut),At=Rt.length,St=jt.length),kt=At,gt=jt.slice(0,At),yt=gt.length;yt=BASE/2&&++Et;do ut=0,st=et(Rt,gt,At,yt),st<0?(bt=gt[0],At!=yt&&(bt=bt*BASE+(gt[1]||0)),ut=bt/Et|0,ut>1?(ut>=BASE&&(ut=BASE-1),ht=tt(Rt,ut),dt=ht.length,yt=gt.length,st=et(ht,gt,dt,yt),st==1&&(ut--,nt(ht,At16)throw Error(exponentOutOfRange+getBase10Exponent(tt));if(!tt.s)return new ut(ONE);for(et==null?(external=!1,st=ht):st=et,at=new ut(.03125);tt.abs().gte(.1);)tt=tt.times(at),ct+=5;for(rt=Math.log(mathpow(2,ct))/Math.LN10*2+5|0,st+=rt,nt=it=ot=new ut(ONE),ut.precision=st;;){if(it=round(it.times(tt),st),nt=nt.times(++lt),at=ot.plus(divide(it,nt,st)),digitsToString(at.d).slice(0,st)===digitsToString(ot.d).slice(0,st)){for(;ct--;)ot=round(ot.times(ot),st);return ut.precision=ht,et==null?(external=!0,round(ot,ht)):ot}ot=at}}function getBase10Exponent(tt){for(var et=tt.e*LOG_BASE,nt=tt.d[0];nt>=10;nt/=10)et++;return et}function getLn10(tt,et,nt){if(et>tt.LN10.sd())throw external=!0,nt&&(tt.precision=nt),Error(decimalError+"LN10 precision limit exceeded");return round(new tt(tt.LN10),et)}function getZeroString(tt){for(var et="";tt--;)et+="0";return et}function ln(tt,et){var nt,rt,it,ot,at,st,lt,ct,ut,ht=1,dt=10,pt=tt,mt=pt.d,gt=pt.constructor,yt=gt.precision;if(pt.s<1)throw Error(decimalError+(pt.s?"NaN":"-Infinity"));if(pt.eq(ONE))return new gt(0);if(et==null?(external=!1,ct=yt):ct=et,pt.eq(10))return et==null&&(external=!0),getLn10(gt,ct);if(ct+=dt,gt.precision=ct,nt=digitsToString(mt),rt=nt.charAt(0),ot=getBase10Exponent(pt),Math.abs(ot)<15e14){for(;rt<7&&rt!=1||rt==1&&nt.charAt(1)>3;)pt=pt.times(tt),nt=digitsToString(pt.d),rt=nt.charAt(0),ht++;ot=getBase10Exponent(pt),rt>1?(pt=new gt("0."+nt),ot++):pt=new gt(rt+"."+nt.slice(1))}else return lt=getLn10(gt,ct+2,yt).times(ot+""),pt=ln(new gt(rt+"."+nt.slice(1)),ct-dt).plus(lt),gt.precision=yt,et==null?(external=!0,round(pt,yt)):pt;for(st=at=pt=divide(pt.minus(ONE),pt.plus(ONE),ct),ut=round(pt.times(pt),ct),it=3;;){if(at=round(at.times(ut),ct),lt=st.plus(divide(at,new gt(it),ct)),digitsToString(lt.d).slice(0,ct)===digitsToString(st.d).slice(0,ct))return st=st.times(2),ot!==0&&(st=st.plus(getLn10(gt,ct+2,yt).times(ot+""))),st=divide(st,new gt(ht),ct),gt.precision=yt,et==null?(external=!0,round(st,yt)):st;st=lt,it+=2}}function parseDecimal(tt,et){var nt,rt,it;for((nt=et.indexOf("."))>-1&&(et=et.replace(".","")),(rt=et.search(/e/i))>0?(nt<0&&(nt=rt),nt+=+et.slice(rt+1),et=et.substring(0,rt)):nt<0&&(nt=et.length),rt=0;et.charCodeAt(rt)===48;)++rt;for(it=et.length;et.charCodeAt(it-1)===48;)--it;if(et=et.slice(rt,it),et){if(it-=rt,nt=nt-rt-1,tt.e=mathfloor(nt/LOG_BASE),tt.d=[],rt=(nt+1)%LOG_BASE,nt<0&&(rt+=LOG_BASE),rtMAX_E||tt.e<-MAX_E))throw Error(exponentOutOfRange+nt)}else tt.s=0,tt.e=0,tt.d=[0];return tt}function round(tt,et,nt){var rt,it,ot,at,st,lt,ct,ut,ht=tt.d;for(at=1,ot=ht[0];ot>=10;ot/=10)at++;if(rt=et-at,rt<0)rt+=LOG_BASE,it=et,ct=ht[ut=0];else{if(ut=Math.ceil((rt+1)/LOG_BASE),ot=ht.length,ut>=ot)return tt;for(ct=ot=ht[ut],at=1;ot>=10;ot/=10)at++;rt%=LOG_BASE,it=rt-LOG_BASE+at}if(nt!==void 0&&(ot=mathpow(10,at-it-1),st=ct/ot%10|0,lt=et<0||ht[ut+1]!==void 0||ct%ot,lt=nt<4?(st||lt)&&(nt==0||nt==(tt.s<0?3:2)):st>5||st==5&&(nt==4||lt||nt==6&&(rt>0?it>0?ct/mathpow(10,at-it):0:ht[ut-1])%10&1||nt==(tt.s<0?8:7))),et<1||!ht[0])return lt?(ot=getBase10Exponent(tt),ht.length=1,et=et-ot-1,ht[0]=mathpow(10,(LOG_BASE-et%LOG_BASE)%LOG_BASE),tt.e=mathfloor(-et/LOG_BASE)||0):(ht.length=1,ht[0]=tt.e=tt.s=0),tt;if(rt==0?(ht.length=ut,ot=1,ut--):(ht.length=ut+1,ot=mathpow(10,LOG_BASE-rt),ht[ut]=it>0?(ct/mathpow(10,at-it)%mathpow(10,it)|0)*ot:0),lt)for(;;)if(ut==0){(ht[0]+=ot)==BASE&&(ht[0]=1,++tt.e);break}else{if(ht[ut]+=ot,ht[ut]!=BASE)break;ht[ut--]=0,ot=1}for(rt=ht.length;ht[--rt]===0;)ht.pop();if(external&&(tt.e>MAX_E||tt.e<-MAX_E))throw Error(exponentOutOfRange+getBase10Exponent(tt));return tt}function subtract(tt,et){var nt,rt,it,ot,at,st,lt,ct,ut,ht,dt=tt.constructor,pt=dt.precision;if(!tt.s||!et.s)return et.s?et.s=-et.s:et=new dt(tt),external?round(et,pt):et;if(lt=tt.d,ht=et.d,rt=et.e,ct=tt.e,lt=lt.slice(),at=ct-rt,at){for(ut=at<0,ut?(nt=lt,at=-at,st=ht.length):(nt=ht,rt=ct,st=lt.length),it=Math.max(Math.ceil(pt/LOG_BASE),st)+2,at>it&&(at=it,nt.length=1),nt.reverse(),it=at;it--;)nt.push(0);nt.reverse()}else{for(it=lt.length,st=ht.length,ut=it0;--it)lt[st++]=0;for(it=ht.length;it>at;){if(lt[--it]0?ot=ot.charAt(0)+"."+ot.slice(1)+getZeroString(rt):at>1&&(ot=ot.charAt(0)+"."+ot.slice(1)),ot=ot+(it<0?"e":"e+")+it):it<0?(ot="0."+getZeroString(-it-1)+ot,nt&&(rt=nt-at)>0&&(ot+=getZeroString(rt))):it>=at?(ot+=getZeroString(it+1-at),nt&&(rt=nt-it-1)>0&&(ot=ot+"."+getZeroString(rt))):((rt=it+1)0&&(it+1===at&&(ot+="."),ot+=getZeroString(rt))),tt.s<0?"-"+ot:ot}function truncate(tt,et){if(tt.length>et)return tt.length=et,!0}function clone(tt){var et,nt,rt;function it(ot){var at=this;if(!(at instanceof it))return new it(ot);if(at.constructor=it,ot instanceof it){at.s=ot.s,at.e=ot.e,at.d=(ot=ot.d)?ot.slice():ot;return}if(typeof ot=="number"){if(ot*0!==0)throw Error(invalidArgument+ot);if(ot>0)at.s=1;else if(ot<0)ot=-ot,at.s=-1;else{at.s=0,at.e=0,at.d=[0];return}if(ot===~~ot&&ot<1e7){at.e=0,at.d=[ot];return}return parseDecimal(at,ot.toString())}else if(typeof ot!="string")throw Error(invalidArgument+ot);if(ot.charCodeAt(0)===45?(ot=ot.slice(1),at.s=-1):at.s=1,isDecimal.test(ot))parseDecimal(at,ot);else throw Error(invalidArgument+ot)}if(it.prototype=P,it.ROUND_UP=0,it.ROUND_DOWN=1,it.ROUND_CEIL=2,it.ROUND_FLOOR=3,it.ROUND_HALF_UP=4,it.ROUND_HALF_DOWN=5,it.ROUND_HALF_EVEN=6,it.ROUND_HALF_CEIL=7,it.ROUND_HALF_FLOOR=8,it.clone=clone,it.config=it.set=config,tt===void 0&&(tt={}),tt)for(rt=["precision","rounding","toExpNeg","toExpPos","LN10"],et=0;et=it[et+1]&&rt<=it[et+2])this[nt]=rt;else throw Error(invalidArgument+nt+": "+rt);if((rt=tt[nt="LN10"])!==void 0)if(rt==Math.LN10)this[nt]=new this(rt);else throw Error(invalidArgument+nt+": "+rt);return this}var Decimal=clone(defaults);ONE=new Decimal(1);const Decimal$1=Decimal;function _toConsumableArray$8(tt){return _arrayWithoutHoles$8(tt)||_iterableToArray$8(tt)||_unsupportedIterableToArray$d(tt)||_nonIterableSpread$8()}function _nonIterableSpread$8(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$d(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$d(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$d(tt,et)}}function _iterableToArray$8(tt){if(typeof Symbol<"u"&&Symbol.iterator in Object(tt))return Array.from(tt)}function _arrayWithoutHoles$8(tt){if(Array.isArray(tt))return _arrayLikeToArray$d(tt)}function _arrayLikeToArray$d(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=et?nt.apply(void 0,it):tt(et-at,curry0(function(){for(var st=arguments.length,lt=new Array(st),ct=0;cttt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt"u"||!(Symbol.iterator in Object(tt)))){var nt=[],rt=!0,it=!1,ot=void 0;try{for(var at=tt[Symbol.iterator](),st;!(rt=(st=at.next()).done)&&(nt.push(st.value),!(et&&nt.length===et));rt=!0);}catch(lt){it=!0,ot=lt}finally{try{!rt&&at.return!=null&&at.return()}finally{if(it)throw ot}}return nt}}function _arrayWithHoles$5(tt){if(Array.isArray(tt))return tt}function getValidInterval(tt){var et=_slicedToArray$5(tt,2),nt=et[0],rt=et[1],it=nt,ot=rt;return nt>rt&&(it=rt,ot=nt),[it,ot]}function getFormatStep(tt,et,nt){if(tt.lte(0))return new Decimal$1(0);var rt=Arithmetic.getDigitCount(tt.toNumber()),it=new Decimal$1(10).pow(rt),ot=tt.div(it),at=rt!==1?.05:.1,st=new Decimal$1(Math.ceil(ot.div(at).toNumber())).add(nt).mul(at),lt=st.mul(it);return et?lt:new Decimal$1(Math.ceil(lt))}function getTickOfSingleValue(tt,et,nt){var rt=1,it=new Decimal$1(tt);if(!it.isint()&&nt){var ot=Math.abs(tt);ot<1?(rt=new Decimal$1(10).pow(Arithmetic.getDigitCount(tt)-1),it=new Decimal$1(Math.floor(it.div(rt).toNumber())).mul(rt)):ot>1&&(it=new Decimal$1(Math.floor(tt)))}else tt===0?it=new Decimal$1(Math.floor((et-1)/2)):nt||(it=new Decimal$1(Math.floor(tt)));var at=Math.floor((et-1)/2),st=compose(map$1(function(lt){return it.add(new Decimal$1(lt-at).mul(rt)).toNumber()}),range$1);return st(0,et)}function calculateStep(tt,et,nt,rt){var it=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((et-tt)/(nt-1)))return{step:new Decimal$1(0),tickMin:new Decimal$1(0),tickMax:new Decimal$1(0)};var ot=getFormatStep(new Decimal$1(et).sub(tt).div(nt-1),rt,it),at;tt<=0&&et>=0?at=new Decimal$1(0):(at=new Decimal$1(tt).add(et).div(2),at=at.sub(new Decimal$1(at).mod(ot)));var st=Math.ceil(at.sub(tt).div(ot).toNumber()),lt=Math.ceil(new Decimal$1(et).sub(at).div(ot).toNumber()),ct=st+lt+1;return ct>nt?calculateStep(tt,et,nt,rt,it+1):(ct0?lt+(nt-ct):lt,st=et>0?st:st+(nt-ct)),{step:ot,tickMin:at.sub(new Decimal$1(st).mul(ot)),tickMax:at.add(new Decimal$1(lt).mul(ot))})}function getNiceTickValuesFn(tt){var et=_slicedToArray$5(tt,2),nt=et[0],rt=et[1],it=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,ot=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,at=Math.max(it,2),st=getValidInterval([nt,rt]),lt=_slicedToArray$5(st,2),ct=lt[0],ut=lt[1];if(ct===-1/0||ut===1/0){var ht=ut===1/0?[ct].concat(_toConsumableArray$7(range$1(0,it-1).map(function(){return 1/0}))):[].concat(_toConsumableArray$7(range$1(0,it-1).map(function(){return-1/0})),[ut]);return nt>rt?reverse(ht):ht}if(ct===ut)return getTickOfSingleValue(ct,it,ot);var dt=calculateStep(ct,ut,at,ot),pt=dt.step,mt=dt.tickMin,gt=dt.tickMax,yt=Arithmetic.rangeStep(mt,gt.add(new Decimal$1(.1).mul(pt)),pt);return nt>rt?reverse(yt):yt}function getTickValuesFixedDomainFn(tt,et){var nt=_slicedToArray$5(tt,2),rt=nt[0],it=nt[1],ot=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,at=getValidInterval([rt,it]),st=_slicedToArray$5(at,2),lt=st[0],ct=st[1];if(lt===-1/0||ct===1/0)return[rt,it];if(lt===ct)return[lt];var ut=Math.max(et,2),ht=getFormatStep(new Decimal$1(ct).sub(lt).div(ut-1),ot,0),dt=[].concat(_toConsumableArray$7(Arithmetic.rangeStep(new Decimal$1(lt),new Decimal$1(ct).sub(new Decimal$1(.99).mul(ht)),ht)),[ct]);return rt>it?reverse(dt):dt}var getNiceTickValues=memoize(getNiceTickValuesFn),getTickValuesFixedDomain=memoize(getTickValuesFixedDomainFn),_excluded$6=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function _extends$i(){return _extends$i=Object.assign?Object.assign.bind():function(tt){for(var et=1;ettt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$6(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function ErrorBar(tt){var et=tt.offset,nt=tt.layout,rt=tt.width,it=tt.dataKey,ot=tt.data,at=tt.dataPointFormatter,st=tt.xAxis,lt=tt.yAxis,ct=_objectWithoutProperties$6(tt,_excluded$6),ut=filterProps(ct),ht=ot.map(function(dt,pt){var mt=at(dt,it),gt=mt.x,yt=mt.y,bt=mt.value,wt=mt.errorVal;if(!wt)return null;var vt=[],kt,St;if(Array.isArray(wt)){var Tt=_slicedToArray$4(wt,2);kt=Tt[0],St=Tt[1]}else kt=St=wt;if(nt==="vertical"){var At=st.scale,Et=yt+et,Mt=Et+rt,Lt=Et-rt,jt=At(bt-kt),Rt=At(bt+St);vt.push({x1:Rt,y1:Mt,x2:Rt,y2:Lt}),vt.push({x1:jt,y1:Et,x2:Rt,y2:Et}),vt.push({x1:jt,y1:Mt,x2:jt,y2:Lt})}else if(nt==="horizontal"){var $t=lt.scale,xt=gt+et,It=xt-rt,Ot=xt+rt,zt=$t(bt-kt),Ut=$t(bt+St);vt.push({x1:It,y1:Ut,x2:Ot,y2:Ut}),vt.push({x1:xt,y1:zt,x2:xt,y2:Ut}),vt.push({x1:It,y1:zt,x2:Ot,y2:zt})}return React$1.createElement(Layer,_extends$i({className:"recharts-errorBar",key:"bar-".concat(pt)},ut),vt.map(function(Wt,Ft){return React$1.createElement("line",_extends$i({},Wt,{key:"line-".concat(Ft)}))}))});return React$1.createElement(Layer,{className:"recharts-errorBars"},ht)}ErrorBar.defaultProps={stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"};ErrorBar.displayName="ErrorBar";function _typeof$j(tt){"@babel/helpers - typeof";return _typeof$j=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$j(tt)}function _toConsumableArray$6(tt){return _arrayWithoutHoles$6(tt)||_iterableToArray$6(tt)||_unsupportedIterableToArray$a(tt)||_nonIterableSpread$6()}function _nonIterableSpread$6(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$a(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$a(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$a(tt,et)}}function _iterableToArray$6(tt){if(typeof Symbol<"u"&&tt[Symbol.iterator]!=null||tt["@@iterator"]!=null)return Array.from(tt)}function _arrayWithoutHoles$6(tt){if(Array.isArray(tt))return _arrayLikeToArray$a(tt)}function _arrayLikeToArray$a(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt1&&arguments[1]!==void 0?arguments[1]:[],it=arguments.length>2?arguments[2]:void 0,ot=arguments.length>3?arguments[3]:void 0,at=-1,st=(nt=rt==null?void 0:rt.length)!==null&&nt!==void 0?nt:0;if(st<=1)return 0;if(ot&&ot.axisType==="angleAxis"&&Math.abs(Math.abs(ot.range[1]-ot.range[0])-360)<=1e-6)for(var lt=ot.range,ct=0;ct0?it[ct-1].coordinate:it[st-1].coordinate,ht=it[ct].coordinate,dt=ct>=st-1?it[0].coordinate:it[ct+1].coordinate,pt=void 0;if(mathSign(ht-ut)!==mathSign(dt-ht)){var mt=[];if(mathSign(dt-ht)===mathSign(lt[1]-lt[0])){pt=dt;var gt=ht+lt[1]-lt[0];mt[0]=Math.min(gt,(gt+ut)/2),mt[1]=Math.max(gt,(gt+ut)/2)}else{pt=ut;var yt=dt+lt[1]-lt[0];mt[0]=Math.min(ht,(yt+ht)/2),mt[1]=Math.max(ht,(yt+ht)/2)}var bt=[Math.min(ht,(pt+ht)/2),Math.max(ht,(pt+ht)/2)];if(et>bt[0]&&et<=bt[1]||et>=mt[0]&&et<=mt[1]){at=it[ct].index;break}}else{var wt=Math.min(ut,dt),vt=Math.max(ut,dt);if(et>(wt+ht)/2&&et<=(vt+ht)/2){at=it[ct].index;break}}}else for(var kt=0;kt0&&kt(rt[kt].coordinate+rt[kt-1].coordinate)/2&&et<=(rt[kt].coordinate+rt[kt+1].coordinate)/2||kt===st-1&&et>(rt[kt].coordinate+rt[kt-1].coordinate)/2){at=rt[kt].index;break}return at},getMainColorOfGraphicItem=function(et){var nt=et,rt=nt.type.displayName,it=et.props,ot=it.stroke,at=it.fill,st;switch(rt){case"Line":st=ot;break;case"Area":case"Radar":st=ot&&ot!=="none"?ot:at;break;default:st=at;break}return st},getLegendProps=function(et){var nt=et.children,rt=et.formattedGraphicalItems,it=et.legendWidth,ot=et.legendContent,at=findChildByType(nt,Legend);if(!at)return null;var st;return at.props&&at.props.payload?st=at.props&&at.props.payload:ot==="children"?st=(rt||[]).reduce(function(lt,ct){var ut=ct.item,ht=ct.props,dt=ht.sectors||ht.data||[];return lt.concat(dt.map(function(pt){return{type:at.props.iconType||ut.props.legendType,value:pt.name,color:pt.fill,payload:pt}}))},[]):st=(rt||[]).map(function(lt){var ct=lt.item,ut=ct.props,ht=ut.dataKey,dt=ut.name,pt=ut.legendType,mt=ut.hide;return{inactive:mt,dataKey:ht,type:at.props.iconType||pt||"square",color:getMainColorOfGraphicItem(ct),value:dt||ht,payload:ct.props}}),_objectSpread$i(_objectSpread$i(_objectSpread$i({},at.props),Legend.getWithHeight(at,it)),{},{payload:st,item:at})},getBarSizeList=function(et){var nt=et.barSize,rt=et.stackGroups,it=rt===void 0?{}:rt;if(!it)return{};for(var ot={},at=Object.keys(it),st=0,lt=at.length;st=0});if(yt&&yt.length){var bt=yt[0].props.barSize,wt=yt[0].props[gt];ot[wt]||(ot[wt]=[]),ot[wt].push({item:yt[0],stackList:yt.slice(1),barSize:_isNil(bt)?nt:bt})}}return ot},getBarPosition=function(et){var nt=et.barGap,rt=et.barCategoryGap,it=et.bandSize,ot=et.sizeList,at=ot===void 0?[]:ot,st=et.maxBarSize,lt=at.length;if(lt<1)return null;var ct=getPercentValue(nt,it,0,!0),ut;if(at[0].barSize===+at[0].barSize){var ht=!1,dt=it/lt,pt=at.reduce(function(vt,kt){return vt+kt.barSize||0},0);pt+=(lt-1)*ct,pt>=it&&(pt-=(lt-1)*ct,ct=0),pt>=it&&dt>0&&(ht=!0,dt*=.9,pt=lt*dt);var mt=(it-pt)/2>>0,gt={offset:mt-ct,size:0};ut=at.reduce(function(vt,kt){var St=[].concat(_toConsumableArray$6(vt),[{item:kt.item,position:{offset:gt.offset+gt.size+ct,size:ht?dt:kt.barSize}}]);return gt=St[St.length-1].position,kt.stackList&&kt.stackList.length&&kt.stackList.forEach(function(Tt){St.push({item:Tt,position:gt})}),St},[])}else{var yt=getPercentValue(rt,it,0,!0);it-2*yt-(lt-1)*ct<=0&&(ct=0);var bt=(it-2*yt-(lt-1)*ct)/lt;bt>1&&(bt>>=0);var wt=st===+st?Math.min(bt,st):bt;ut=at.reduce(function(vt,kt,St){var Tt=[].concat(_toConsumableArray$6(vt),[{item:kt.item,position:{offset:yt+(bt+ct)*St+(bt-wt)/2,size:wt}}]);return kt.stackList&&kt.stackList.length&&kt.stackList.forEach(function(At){Tt.push({item:At,position:Tt[Tt.length-1].position})}),Tt},[])}return ut},appendOffsetOfLegend=function(et,nt,rt,it){var ot=rt.children,at=rt.width,st=rt.margin,lt=at-(st.left||0)-(st.right||0),ct=getLegendProps({children:ot,legendWidth:lt}),ut=et;if(ct){var ht=it||{},dt=ct.align,pt=ct.verticalAlign,mt=ct.layout;(mt==="vertical"||mt==="horizontal"&&pt==="middle")&&isNumber(et[dt])&&(ut=_objectSpread$i(_objectSpread$i({},et),{},_defineProperty$j({},dt,ut[dt]+(ht.width||0)))),(mt==="horizontal"||mt==="vertical"&&dt==="center")&&isNumber(et[pt])&&(ut=_objectSpread$i(_objectSpread$i({},et),{},_defineProperty$j({},pt,ut[pt]+(ht.height||0))))}return ut},isErrorBarRelevantForAxis=function(et,nt,rt){return _isNil(nt)?!0:et==="horizontal"?nt==="yAxis":et==="vertical"||rt==="x"?nt==="xAxis":rt==="y"?nt==="yAxis":!0},getDomainOfErrorBars=function(et,nt,rt,it,ot){var at=nt.props.children,st=findAllByType(at,ErrorBar).filter(function(ct){return isErrorBarRelevantForAxis(it,ot,ct.props.direction)});if(st&&st.length){var lt=st.map(function(ct){return ct.props.dataKey});return et.reduce(function(ct,ut){var ht=getValueByDataKey(ut,rt,0),dt=_isArray$1(ht)?[_min(ht),_max(ht)]:[ht,ht],pt=lt.reduce(function(mt,gt){var yt=getValueByDataKey(ut,gt,0),bt=dt[0]-Math.abs(_isArray$1(yt)?yt[0]:yt),wt=dt[1]+Math.abs(_isArray$1(yt)?yt[1]:yt);return[Math.min(bt,mt[0]),Math.max(wt,mt[1])]},[1/0,-1/0]);return[Math.min(pt[0],ct[0]),Math.max(pt[1],ct[1])]},[1/0,-1/0])}return null},parseErrorBarsOfAxis=function(et,nt,rt,it,ot){var at=nt.map(function(st){return getDomainOfErrorBars(et,st,rt,ot,it)}).filter(function(st){return!_isNil(st)});return at&&at.length?at.reduce(function(st,lt){return[Math.min(st[0],lt[0]),Math.max(st[1],lt[1])]},[1/0,-1/0]):null},getDomainOfItemsWithSameAxis=function(et,nt,rt,it,ot){var at=nt.map(function(lt){var ct=lt.props.dataKey;return rt==="number"&&ct&&getDomainOfErrorBars(et,lt,ct,it)||getDomainOfDataByKey(et,ct,rt,ot)});if(rt==="number")return at.reduce(function(lt,ct){return[Math.min(lt[0],ct[0]),Math.max(lt[1],ct[1])]},[1/0,-1/0]);var st={};return at.reduce(function(lt,ct){for(var ut=0,ht=ct.length;ut=2?mathSign(st[0]-st[1])*2*ct:ct,nt&&(et.ticks||et.niceTicks)){var ut=(et.ticks||et.niceTicks).map(function(ht){var dt=ot?ot.indexOf(ht):ht;return{coordinate:it(dt)+ct,value:ht,offset:ct}});return ut.filter(function(ht){return!_isNaN$1(ht.coordinate)})}return et.isCategorical&&et.categoricalDomain?et.categoricalDomain.map(function(ht,dt){return{coordinate:it(ht)+ct,value:ht,index:dt,offset:ct}}):it.ticks&&!rt?it.ticks(et.tickCount).map(function(ht){return{coordinate:it(ht)+ct,value:ht,offset:ct}}):it.domain().map(function(ht,dt){return{coordinate:it(ht)+ct,value:ot?ot[ht]:ht,index:dt,offset:ct}})},combineEventHandlers=function(et,nt,rt){var it;return _isFunction$1(rt)?it=rt:_isFunction$1(nt)&&(it=nt),_isFunction$1(et)||it?function(ot,at,st,lt){_isFunction$1(et)&&et(ot,at,st,lt),_isFunction$1(it)&&it(ot,at,st,lt)}:null},parseScale=function(et,nt,rt){var it=et.scale,ot=et.type,at=et.layout,st=et.axisType;if(it==="auto")return at==="radial"&&st==="radiusAxis"?{scale:band(),realScaleType:"band"}:at==="radial"&&st==="angleAxis"?{scale:linear(),realScaleType:"linear"}:ot==="category"&&nt&&(nt.indexOf("LineChart")>=0||nt.indexOf("AreaChart")>=0||nt.indexOf("ComposedChart")>=0&&!rt)?{scale:point(),realScaleType:"point"}:ot==="category"?{scale:band(),realScaleType:"band"}:{scale:linear(),realScaleType:"linear"};if(_isString$1(it)){var lt="scale".concat(_upperFirst(it));return{scale:(d3Scales[lt]||point)(),realScaleType:d3Scales[lt]?lt:"point"}}return _isFunction$1(it)?{scale:it}:{scale:point(),realScaleType:"point"}},EPS=1e-4,checkDomainOfScale=function(et){var nt=et.domain();if(!(!nt||nt.length<=2)){var rt=nt.length,it=et.range(),ot=Math.min(it[0],it[1])-EPS,at=Math.max(it[0],it[1])+EPS,st=et(nt[0]),lt=et(nt[rt-1]);(stat||ltat)&&et.domain([nt[0],nt[rt-1]])}},findPositionOfBar=function(et,nt){if(!et)return null;for(var rt=0,it=et.length;rtit)&&(ot[1]=it),ot[0]>it&&(ot[0]=it),ot[1]=0?(et[st][rt][0]=ot,et[st][rt][1]=ot+lt,ot=et[st][rt][1]):(et[st][rt][0]=at,et[st][rt][1]=at+lt,at=et[st][rt][1])}},offsetPositive=function(et){var nt=et.length;if(!(nt<=0))for(var rt=0,it=et[0].length;rt=0?(et[at][rt][0]=ot,et[at][rt][1]=ot+st,ot=et[at][rt][1]):(et[at][rt][0]=0,et[at][rt][1]=0)}},STACK_OFFSET_MAP={sign:offsetSign,expand:stackOffsetExpand,none:stackOffsetNone,silhouette:stackOffsetSilhouette,wiggle:stackOffsetWiggle,positive:offsetPositive},getStackedData=function(et,nt,rt){var it=nt.map(function(at){return at.props.dataKey}),ot=shapeStack().keys(it).value(function(at,st){return+getValueByDataKey(at,st,0)}).order(stackOrderNone).offset(STACK_OFFSET_MAP[rt]);return ot(et)},getStackGroupsByAxisId=function(et,nt,rt,it,ot,at){if(!et)return null;var st=at?nt.reverse():nt,lt=st.reduce(function(ct,ut){var ht=ut.props,dt=ht.stackId,pt=ht.hide;if(pt)return ct;var mt=ut.props[rt],gt=ct[mt]||{hasStack:!1,stackGroups:{}};if(isNumOrStr(dt)){var yt=gt.stackGroups[dt]||{numericAxisId:rt,cateAxisId:it,items:[]};yt.items.push(ut),gt.hasStack=!0,gt.stackGroups[dt]=yt}else gt.stackGroups[uniqueId("_stackId_")]={numericAxisId:rt,cateAxisId:it,items:[ut]};return _objectSpread$i(_objectSpread$i({},ct),{},_defineProperty$j({},mt,gt))},{});return Object.keys(lt).reduce(function(ct,ut){var ht=lt[ut];return ht.hasStack&&(ht.stackGroups=Object.keys(ht.stackGroups).reduce(function(dt,pt){var mt=ht.stackGroups[pt];return _objectSpread$i(_objectSpread$i({},dt),{},_defineProperty$j({},pt,{numericAxisId:rt,cateAxisId:it,items:mt.items,stackedData:getStackedData(et,mt.items,ot)}))},{})),_objectSpread$i(_objectSpread$i({},ct),{},_defineProperty$j({},ut,ht))},{})},getTicksOfScale=function(et,nt){var rt=nt.realScaleType,it=nt.type,ot=nt.tickCount,at=nt.originalDomain,st=nt.allowDecimals,lt=rt||nt.scale;if(lt!=="auto"&<!=="linear")return null;if(ot&&it==="number"&&at&&(at[0]==="auto"||at[1]==="auto")){var ct=et.domain();if(!ct.length)return null;var ut=getNiceTickValues(ct,ot,st);return et.domain([_min(ut),_max(ut)]),{niceTicks:ut}}if(ot&&it==="number"){var ht=et.domain(),dt=getTickValuesFixedDomain(ht,ot,st);return{niceTicks:dt}}return null},getCateCoordinateOfLine=function(et){var nt=et.axis,rt=et.ticks,it=et.bandSize,ot=et.entry,at=et.index,st=et.dataKey;if(nt.type==="category"){if(!nt.allowDuplicatedCategory&&nt.dataKey&&!_isNil(ot[nt.dataKey])){var lt=findEntryInArray(rt,"value",ot[nt.dataKey]);if(lt)return lt.coordinate+it/2}return rt[at]?rt[at].coordinate+it/2:null}var ct=getValueByDataKey(ot,_isNil(st)?nt.dataKey:st);return _isNil(ct)?null:nt.scale(ct)},getCateCoordinateOfBar=function(et){var nt=et.axis,rt=et.ticks,it=et.offset,ot=et.bandSize,at=et.entry,st=et.index;if(nt.type==="category")return rt[st]?rt[st].coordinate+it:null;var lt=getValueByDataKey(at,nt.dataKey,nt.domain[st]);return _isNil(lt)?null:nt.scale(lt)-ot/2+it},getBaseValueOfBar=function(et){var nt=et.numericAxis,rt=nt.scale.domain();if(nt.type==="number"){var it=Math.min(rt[0],rt[1]),ot=Math.max(rt[0],rt[1]);return it<=0&&ot>=0?0:ot<0?ot:it}return rt[0]},getStackedDataOfItem=function(et,nt){var rt=et.props.stackId;if(isNumOrStr(rt)){var it=nt[rt];if(it&&it.items.length){for(var ot=-1,at=0,st=it.items.length;at=0?it.stackedData[ot]:null}}return null},getDomainOfSingle=function(et){return et.reduce(function(nt,rt){return[_min(rt.concat([nt[0]]).filter(isNumber)),_max(rt.concat([nt[1]]).filter(isNumber))]},[1/0,-1/0])},getDomainOfStackGroups=function(et,nt,rt){return Object.keys(et).reduce(function(it,ot){var at=et[ot],st=at.stackedData,lt=st.reduce(function(ct,ut){var ht=getDomainOfSingle(ut.slice(nt,rt+1));return[Math.min(ct[0],ht[0]),Math.max(ct[1],ht[1])]},[1/0,-1/0]);return[Math.min(lt[0],it[0]),Math.max(lt[1],it[1])]},[1/0,-1/0]).map(function(it){return it===1/0||it===-1/0?0:it})},MIN_VALUE_REG=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,MAX_VALUE_REG=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,parseSpecifiedDomain=function(et,nt,rt){if(_isFunction$1(et))return et(nt,rt);if(!_isArray$1(et))return nt;var it=[];if(isNumber(et[0]))it[0]=rt?et[0]:Math.min(et[0],nt[0]);else if(MIN_VALUE_REG.test(et[0])){var ot=+MIN_VALUE_REG.exec(et[0])[1];it[0]=nt[0]-ot}else _isFunction$1(et[0])?it[0]=et[0](nt[0]):it[0]=nt[0];if(isNumber(et[1]))it[1]=rt?et[1]:Math.max(et[1],nt[1]);else if(MAX_VALUE_REG.test(et[1])){var at=+MAX_VALUE_REG.exec(et[1])[1];it[1]=nt[1]+at}else _isFunction$1(et[1])?it[1]=et[1](nt[1]):it[1]=nt[1];return it},getBandSizeOfAxis=function(et,nt,rt){if(et&&et.scale&&et.scale.bandwidth){var it=et.scale.bandwidth();if(!rt||it>0)return it}if(et&&nt&&nt.length>=2){for(var ot=_sortBy(nt,function(ht){return ht.coordinate}),at=1/0,st=1,lt=ot.length;stat&&(ct=2*Math.PI-ct),{radius:st,angle:radianToDegree(ct),angleInRadian:ct}},formatAngleOfSector=function(et){var nt=et.startAngle,rt=et.endAngle,it=Math.floor(nt/360),ot=Math.floor(rt/360),at=Math.min(it,ot);return{startAngle:nt-at*360,endAngle:rt-at*360}},reverseFormatAngleOfSetor=function(et,nt){var rt=nt.startAngle,it=nt.endAngle,ot=Math.floor(rt/360),at=Math.floor(it/360),st=Math.min(ot,at);return et+st*360},inRangeOfSector=function(et,nt){var rt=et.x,it=et.y,ot=getAngleOfPoint({x:rt,y:it},nt),at=ot.radius,st=ot.angle,lt=nt.innerRadius,ct=nt.outerRadius;if(atct)return!1;if(at===0)return!0;var ut=formatAngleOfSector(nt),ht=ut.startAngle,dt=ut.endAngle,pt=st,mt;if(ht<=dt){for(;pt>dt;)pt-=360;for(;pt=ht&&pt<=dt}else{for(;pt>ht;)pt-=360;for(;pt=dt&&pt<=ht}return mt?_objectSpread$h(_objectSpread$h({},nt),{},{radius:at,angle:reverseFormatAngleOfSetor(pt,nt)}):null};function _typeof$h(tt){"@babel/helpers - typeof";return _typeof$h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$h(tt)}function _toConsumableArray$5(tt){return _arrayWithoutHoles$5(tt)||_iterableToArray$5(tt)||_unsupportedIterableToArray$9(tt)||_nonIterableSpread$5()}function _nonIterableSpread$5(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$9(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$9(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$9(tt,et)}}function _iterableToArray$5(tt){if(typeof Symbol<"u"&&tt[Symbol.iterator]!=null||tt["@@iterator"]!=null)return Array.from(tt)}function _arrayWithoutHoles$5(tt){if(Array.isArray(tt))return _arrayLikeToArray$9(tt)}function _arrayLikeToArray$9(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0?1:-1,vt,kt;it==="insideStart"?(vt=pt+wt*at,kt=gt):it==="insideEnd"?(vt=mt-wt*at,kt=!gt):it==="end"&&(vt=mt+wt*at,kt=gt),kt=bt<=0?kt:!kt;var St=polarToCartesian(ct,ut,yt,vt),Tt=polarToCartesian(ct,ut,yt,vt+(kt?1:-1)*359),At="M".concat(St.x,",").concat(St.y,` +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$b(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$b(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$b(tt,et)}}function _arrayLikeToArray$b(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$6(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function ErrorBar(tt){var et=tt.offset,nt=tt.layout,rt=tt.width,it=tt.dataKey,ot=tt.data,at=tt.dataPointFormatter,st=tt.xAxis,lt=tt.yAxis,ct=_objectWithoutProperties$6(tt,_excluded$6),ut=filterProps(ct),ht=ot.map(function(dt,pt){var mt=at(dt,it),gt=mt.x,yt=mt.y,bt=mt.value,wt=mt.errorVal;if(!wt)return null;var vt=[],kt,St;if(Array.isArray(wt)){var Et=_slicedToArray$4(wt,2);kt=Et[0],St=Et[1]}else kt=St=wt;if(nt==="vertical"){var At=st.scale,Tt=yt+et,Mt=Tt+rt,Lt=Tt-rt,jt=At(bt-kt),Rt=At(bt+St);vt.push({x1:Rt,y1:Mt,x2:Rt,y2:Lt}),vt.push({x1:jt,y1:Tt,x2:Rt,y2:Tt}),vt.push({x1:jt,y1:Mt,x2:jt,y2:Lt})}else if(nt==="horizontal"){var $t=lt.scale,xt=gt+et,It=xt-rt,Ot=xt+rt,zt=$t(bt-kt),Ut=$t(bt+St);vt.push({x1:It,y1:Ut,x2:Ot,y2:Ut}),vt.push({x1:xt,y1:zt,x2:xt,y2:Ut}),vt.push({x1:It,y1:zt,x2:Ot,y2:zt})}return React$1.createElement(Layer,_extends$i({className:"recharts-errorBar",key:"bar-".concat(pt)},ut),vt.map(function(Wt,Ft){return React$1.createElement("line",_extends$i({},Wt,{key:"line-".concat(Ft)}))}))});return React$1.createElement(Layer,{className:"recharts-errorBars"},ht)}ErrorBar.defaultProps={stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"};ErrorBar.displayName="ErrorBar";function _typeof$j(tt){"@babel/helpers - typeof";return _typeof$j=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$j(tt)}function _toConsumableArray$6(tt){return _arrayWithoutHoles$6(tt)||_iterableToArray$6(tt)||_unsupportedIterableToArray$a(tt)||_nonIterableSpread$6()}function _nonIterableSpread$6(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$a(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$a(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$a(tt,et)}}function _iterableToArray$6(tt){if(typeof Symbol<"u"&&tt[Symbol.iterator]!=null||tt["@@iterator"]!=null)return Array.from(tt)}function _arrayWithoutHoles$6(tt){if(Array.isArray(tt))return _arrayLikeToArray$a(tt)}function _arrayLikeToArray$a(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt1&&arguments[1]!==void 0?arguments[1]:[],it=arguments.length>2?arguments[2]:void 0,ot=arguments.length>3?arguments[3]:void 0,at=-1,st=(nt=rt==null?void 0:rt.length)!==null&&nt!==void 0?nt:0;if(st<=1)return 0;if(ot&&ot.axisType==="angleAxis"&&Math.abs(Math.abs(ot.range[1]-ot.range[0])-360)<=1e-6)for(var lt=ot.range,ct=0;ct0?it[ct-1].coordinate:it[st-1].coordinate,ht=it[ct].coordinate,dt=ct>=st-1?it[0].coordinate:it[ct+1].coordinate,pt=void 0;if(mathSign(ht-ut)!==mathSign(dt-ht)){var mt=[];if(mathSign(dt-ht)===mathSign(lt[1]-lt[0])){pt=dt;var gt=ht+lt[1]-lt[0];mt[0]=Math.min(gt,(gt+ut)/2),mt[1]=Math.max(gt,(gt+ut)/2)}else{pt=ut;var yt=dt+lt[1]-lt[0];mt[0]=Math.min(ht,(yt+ht)/2),mt[1]=Math.max(ht,(yt+ht)/2)}var bt=[Math.min(ht,(pt+ht)/2),Math.max(ht,(pt+ht)/2)];if(et>bt[0]&&et<=bt[1]||et>=mt[0]&&et<=mt[1]){at=it[ct].index;break}}else{var wt=Math.min(ut,dt),vt=Math.max(ut,dt);if(et>(wt+ht)/2&&et<=(vt+ht)/2){at=it[ct].index;break}}}else for(var kt=0;kt0&&kt(rt[kt].coordinate+rt[kt-1].coordinate)/2&&et<=(rt[kt].coordinate+rt[kt+1].coordinate)/2||kt===st-1&&et>(rt[kt].coordinate+rt[kt-1].coordinate)/2){at=rt[kt].index;break}return at},getMainColorOfGraphicItem=function(et){var nt=et,rt=nt.type.displayName,it=et.props,ot=it.stroke,at=it.fill,st;switch(rt){case"Line":st=ot;break;case"Area":case"Radar":st=ot&&ot!=="none"?ot:at;break;default:st=at;break}return st},getLegendProps=function(et){var nt=et.children,rt=et.formattedGraphicalItems,it=et.legendWidth,ot=et.legendContent,at=findChildByType(nt,Legend);if(!at)return null;var st;return at.props&&at.props.payload?st=at.props&&at.props.payload:ot==="children"?st=(rt||[]).reduce(function(lt,ct){var ut=ct.item,ht=ct.props,dt=ht.sectors||ht.data||[];return lt.concat(dt.map(function(pt){return{type:at.props.iconType||ut.props.legendType,value:pt.name,color:pt.fill,payload:pt}}))},[]):st=(rt||[]).map(function(lt){var ct=lt.item,ut=ct.props,ht=ut.dataKey,dt=ut.name,pt=ut.legendType,mt=ut.hide;return{inactive:mt,dataKey:ht,type:at.props.iconType||pt||"square",color:getMainColorOfGraphicItem(ct),value:dt||ht,payload:ct.props}}),_objectSpread$i(_objectSpread$i(_objectSpread$i({},at.props),Legend.getWithHeight(at,it)),{},{payload:st,item:at})},getBarSizeList=function(et){var nt=et.barSize,rt=et.stackGroups,it=rt===void 0?{}:rt;if(!it)return{};for(var ot={},at=Object.keys(it),st=0,lt=at.length;st=0});if(yt&&yt.length){var bt=yt[0].props.barSize,wt=yt[0].props[gt];ot[wt]||(ot[wt]=[]),ot[wt].push({item:yt[0],stackList:yt.slice(1),barSize:_isNil(bt)?nt:bt})}}return ot},getBarPosition=function(et){var nt=et.barGap,rt=et.barCategoryGap,it=et.bandSize,ot=et.sizeList,at=ot===void 0?[]:ot,st=et.maxBarSize,lt=at.length;if(lt<1)return null;var ct=getPercentValue(nt,it,0,!0),ut;if(at[0].barSize===+at[0].barSize){var ht=!1,dt=it/lt,pt=at.reduce(function(vt,kt){return vt+kt.barSize||0},0);pt+=(lt-1)*ct,pt>=it&&(pt-=(lt-1)*ct,ct=0),pt>=it&&dt>0&&(ht=!0,dt*=.9,pt=lt*dt);var mt=(it-pt)/2>>0,gt={offset:mt-ct,size:0};ut=at.reduce(function(vt,kt){var St=[].concat(_toConsumableArray$6(vt),[{item:kt.item,position:{offset:gt.offset+gt.size+ct,size:ht?dt:kt.barSize}}]);return gt=St[St.length-1].position,kt.stackList&&kt.stackList.length&&kt.stackList.forEach(function(Et){St.push({item:Et,position:gt})}),St},[])}else{var yt=getPercentValue(rt,it,0,!0);it-2*yt-(lt-1)*ct<=0&&(ct=0);var bt=(it-2*yt-(lt-1)*ct)/lt;bt>1&&(bt>>=0);var wt=st===+st?Math.min(bt,st):bt;ut=at.reduce(function(vt,kt,St){var Et=[].concat(_toConsumableArray$6(vt),[{item:kt.item,position:{offset:yt+(bt+ct)*St+(bt-wt)/2,size:wt}}]);return kt.stackList&&kt.stackList.length&&kt.stackList.forEach(function(At){Et.push({item:At,position:Et[Et.length-1].position})}),Et},[])}return ut},appendOffsetOfLegend=function(et,nt,rt,it){var ot=rt.children,at=rt.width,st=rt.margin,lt=at-(st.left||0)-(st.right||0),ct=getLegendProps({children:ot,legendWidth:lt}),ut=et;if(ct){var ht=it||{},dt=ct.align,pt=ct.verticalAlign,mt=ct.layout;(mt==="vertical"||mt==="horizontal"&&pt==="middle")&&isNumber(et[dt])&&(ut=_objectSpread$i(_objectSpread$i({},et),{},_defineProperty$j({},dt,ut[dt]+(ht.width||0)))),(mt==="horizontal"||mt==="vertical"&&dt==="center")&&isNumber(et[pt])&&(ut=_objectSpread$i(_objectSpread$i({},et),{},_defineProperty$j({},pt,ut[pt]+(ht.height||0))))}return ut},isErrorBarRelevantForAxis=function(et,nt,rt){return _isNil(nt)?!0:et==="horizontal"?nt==="yAxis":et==="vertical"||rt==="x"?nt==="xAxis":rt==="y"?nt==="yAxis":!0},getDomainOfErrorBars=function(et,nt,rt,it,ot){var at=nt.props.children,st=findAllByType(at,ErrorBar).filter(function(ct){return isErrorBarRelevantForAxis(it,ot,ct.props.direction)});if(st&&st.length){var lt=st.map(function(ct){return ct.props.dataKey});return et.reduce(function(ct,ut){var ht=getValueByDataKey(ut,rt,0),dt=_isArray$1(ht)?[_min(ht),_max(ht)]:[ht,ht],pt=lt.reduce(function(mt,gt){var yt=getValueByDataKey(ut,gt,0),bt=dt[0]-Math.abs(_isArray$1(yt)?yt[0]:yt),wt=dt[1]+Math.abs(_isArray$1(yt)?yt[1]:yt);return[Math.min(bt,mt[0]),Math.max(wt,mt[1])]},[1/0,-1/0]);return[Math.min(pt[0],ct[0]),Math.max(pt[1],ct[1])]},[1/0,-1/0])}return null},parseErrorBarsOfAxis=function(et,nt,rt,it,ot){var at=nt.map(function(st){return getDomainOfErrorBars(et,st,rt,ot,it)}).filter(function(st){return!_isNil(st)});return at&&at.length?at.reduce(function(st,lt){return[Math.min(st[0],lt[0]),Math.max(st[1],lt[1])]},[1/0,-1/0]):null},getDomainOfItemsWithSameAxis=function(et,nt,rt,it,ot){var at=nt.map(function(lt){var ct=lt.props.dataKey;return rt==="number"&&ct&&getDomainOfErrorBars(et,lt,ct,it)||getDomainOfDataByKey(et,ct,rt,ot)});if(rt==="number")return at.reduce(function(lt,ct){return[Math.min(lt[0],ct[0]),Math.max(lt[1],ct[1])]},[1/0,-1/0]);var st={};return at.reduce(function(lt,ct){for(var ut=0,ht=ct.length;ut=2?mathSign(st[0]-st[1])*2*ct:ct,nt&&(et.ticks||et.niceTicks)){var ut=(et.ticks||et.niceTicks).map(function(ht){var dt=ot?ot.indexOf(ht):ht;return{coordinate:it(dt)+ct,value:ht,offset:ct}});return ut.filter(function(ht){return!_isNaN$1(ht.coordinate)})}return et.isCategorical&&et.categoricalDomain?et.categoricalDomain.map(function(ht,dt){return{coordinate:it(ht)+ct,value:ht,index:dt,offset:ct}}):it.ticks&&!rt?it.ticks(et.tickCount).map(function(ht){return{coordinate:it(ht)+ct,value:ht,offset:ct}}):it.domain().map(function(ht,dt){return{coordinate:it(ht)+ct,value:ot?ot[ht]:ht,index:dt,offset:ct}})},combineEventHandlers=function(et,nt,rt){var it;return _isFunction$1(rt)?it=rt:_isFunction$1(nt)&&(it=nt),_isFunction$1(et)||it?function(ot,at,st,lt){_isFunction$1(et)&&et(ot,at,st,lt),_isFunction$1(it)&&it(ot,at,st,lt)}:null},parseScale=function(et,nt,rt){var it=et.scale,ot=et.type,at=et.layout,st=et.axisType;if(it==="auto")return at==="radial"&&st==="radiusAxis"?{scale:band(),realScaleType:"band"}:at==="radial"&&st==="angleAxis"?{scale:linear(),realScaleType:"linear"}:ot==="category"&&nt&&(nt.indexOf("LineChart")>=0||nt.indexOf("AreaChart")>=0||nt.indexOf("ComposedChart")>=0&&!rt)?{scale:point(),realScaleType:"point"}:ot==="category"?{scale:band(),realScaleType:"band"}:{scale:linear(),realScaleType:"linear"};if(_isString$1(it)){var lt="scale".concat(_upperFirst(it));return{scale:(d3Scales[lt]||point)(),realScaleType:d3Scales[lt]?lt:"point"}}return _isFunction$1(it)?{scale:it}:{scale:point(),realScaleType:"point"}},EPS=1e-4,checkDomainOfScale=function(et){var nt=et.domain();if(!(!nt||nt.length<=2)){var rt=nt.length,it=et.range(),ot=Math.min(it[0],it[1])-EPS,at=Math.max(it[0],it[1])+EPS,st=et(nt[0]),lt=et(nt[rt-1]);(stat||ltat)&&et.domain([nt[0],nt[rt-1]])}},findPositionOfBar=function(et,nt){if(!et)return null;for(var rt=0,it=et.length;rtit)&&(ot[1]=it),ot[0]>it&&(ot[0]=it),ot[1]=0?(et[st][rt][0]=ot,et[st][rt][1]=ot+lt,ot=et[st][rt][1]):(et[st][rt][0]=at,et[st][rt][1]=at+lt,at=et[st][rt][1])}},offsetPositive=function(et){var nt=et.length;if(!(nt<=0))for(var rt=0,it=et[0].length;rt=0?(et[at][rt][0]=ot,et[at][rt][1]=ot+st,ot=et[at][rt][1]):(et[at][rt][0]=0,et[at][rt][1]=0)}},STACK_OFFSET_MAP={sign:offsetSign,expand:stackOffsetExpand,none:stackOffsetNone,silhouette:stackOffsetSilhouette,wiggle:stackOffsetWiggle,positive:offsetPositive},getStackedData=function(et,nt,rt){var it=nt.map(function(at){return at.props.dataKey}),ot=shapeStack().keys(it).value(function(at,st){return+getValueByDataKey(at,st,0)}).order(stackOrderNone).offset(STACK_OFFSET_MAP[rt]);return ot(et)},getStackGroupsByAxisId=function(et,nt,rt,it,ot,at){if(!et)return null;var st=at?nt.reverse():nt,lt=st.reduce(function(ct,ut){var ht=ut.props,dt=ht.stackId,pt=ht.hide;if(pt)return ct;var mt=ut.props[rt],gt=ct[mt]||{hasStack:!1,stackGroups:{}};if(isNumOrStr(dt)){var yt=gt.stackGroups[dt]||{numericAxisId:rt,cateAxisId:it,items:[]};yt.items.push(ut),gt.hasStack=!0,gt.stackGroups[dt]=yt}else gt.stackGroups[uniqueId("_stackId_")]={numericAxisId:rt,cateAxisId:it,items:[ut]};return _objectSpread$i(_objectSpread$i({},ct),{},_defineProperty$j({},mt,gt))},{});return Object.keys(lt).reduce(function(ct,ut){var ht=lt[ut];return ht.hasStack&&(ht.stackGroups=Object.keys(ht.stackGroups).reduce(function(dt,pt){var mt=ht.stackGroups[pt];return _objectSpread$i(_objectSpread$i({},dt),{},_defineProperty$j({},pt,{numericAxisId:rt,cateAxisId:it,items:mt.items,stackedData:getStackedData(et,mt.items,ot)}))},{})),_objectSpread$i(_objectSpread$i({},ct),{},_defineProperty$j({},ut,ht))},{})},getTicksOfScale=function(et,nt){var rt=nt.realScaleType,it=nt.type,ot=nt.tickCount,at=nt.originalDomain,st=nt.allowDecimals,lt=rt||nt.scale;if(lt!=="auto"&<!=="linear")return null;if(ot&&it==="number"&&at&&(at[0]==="auto"||at[1]==="auto")){var ct=et.domain();if(!ct.length)return null;var ut=getNiceTickValues(ct,ot,st);return et.domain([_min(ut),_max(ut)]),{niceTicks:ut}}if(ot&&it==="number"){var ht=et.domain(),dt=getTickValuesFixedDomain(ht,ot,st);return{niceTicks:dt}}return null},getCateCoordinateOfLine=function(et){var nt=et.axis,rt=et.ticks,it=et.bandSize,ot=et.entry,at=et.index,st=et.dataKey;if(nt.type==="category"){if(!nt.allowDuplicatedCategory&&nt.dataKey&&!_isNil(ot[nt.dataKey])){var lt=findEntryInArray(rt,"value",ot[nt.dataKey]);if(lt)return lt.coordinate+it/2}return rt[at]?rt[at].coordinate+it/2:null}var ct=getValueByDataKey(ot,_isNil(st)?nt.dataKey:st);return _isNil(ct)?null:nt.scale(ct)},getCateCoordinateOfBar=function(et){var nt=et.axis,rt=et.ticks,it=et.offset,ot=et.bandSize,at=et.entry,st=et.index;if(nt.type==="category")return rt[st]?rt[st].coordinate+it:null;var lt=getValueByDataKey(at,nt.dataKey,nt.domain[st]);return _isNil(lt)?null:nt.scale(lt)-ot/2+it},getBaseValueOfBar=function(et){var nt=et.numericAxis,rt=nt.scale.domain();if(nt.type==="number"){var it=Math.min(rt[0],rt[1]),ot=Math.max(rt[0],rt[1]);return it<=0&&ot>=0?0:ot<0?ot:it}return rt[0]},getStackedDataOfItem=function(et,nt){var rt=et.props.stackId;if(isNumOrStr(rt)){var it=nt[rt];if(it&&it.items.length){for(var ot=-1,at=0,st=it.items.length;at=0?it.stackedData[ot]:null}}return null},getDomainOfSingle=function(et){return et.reduce(function(nt,rt){return[_min(rt.concat([nt[0]]).filter(isNumber)),_max(rt.concat([nt[1]]).filter(isNumber))]},[1/0,-1/0])},getDomainOfStackGroups=function(et,nt,rt){return Object.keys(et).reduce(function(it,ot){var at=et[ot],st=at.stackedData,lt=st.reduce(function(ct,ut){var ht=getDomainOfSingle(ut.slice(nt,rt+1));return[Math.min(ct[0],ht[0]),Math.max(ct[1],ht[1])]},[1/0,-1/0]);return[Math.min(lt[0],it[0]),Math.max(lt[1],it[1])]},[1/0,-1/0]).map(function(it){return it===1/0||it===-1/0?0:it})},MIN_VALUE_REG=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,MAX_VALUE_REG=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,parseSpecifiedDomain=function(et,nt,rt){if(_isFunction$1(et))return et(nt,rt);if(!_isArray$1(et))return nt;var it=[];if(isNumber(et[0]))it[0]=rt?et[0]:Math.min(et[0],nt[0]);else if(MIN_VALUE_REG.test(et[0])){var ot=+MIN_VALUE_REG.exec(et[0])[1];it[0]=nt[0]-ot}else _isFunction$1(et[0])?it[0]=et[0](nt[0]):it[0]=nt[0];if(isNumber(et[1]))it[1]=rt?et[1]:Math.max(et[1],nt[1]);else if(MAX_VALUE_REG.test(et[1])){var at=+MAX_VALUE_REG.exec(et[1])[1];it[1]=nt[1]+at}else _isFunction$1(et[1])?it[1]=et[1](nt[1]):it[1]=nt[1];return it},getBandSizeOfAxis=function(et,nt,rt){if(et&&et.scale&&et.scale.bandwidth){var it=et.scale.bandwidth();if(!rt||it>0)return it}if(et&&nt&&nt.length>=2){for(var ot=_sortBy(nt,function(ht){return ht.coordinate}),at=1/0,st=1,lt=ot.length;stat&&(ct=2*Math.PI-ct),{radius:st,angle:radianToDegree(ct),angleInRadian:ct}},formatAngleOfSector=function(et){var nt=et.startAngle,rt=et.endAngle,it=Math.floor(nt/360),ot=Math.floor(rt/360),at=Math.min(it,ot);return{startAngle:nt-at*360,endAngle:rt-at*360}},reverseFormatAngleOfSetor=function(et,nt){var rt=nt.startAngle,it=nt.endAngle,ot=Math.floor(rt/360),at=Math.floor(it/360),st=Math.min(ot,at);return et+st*360},inRangeOfSector=function(et,nt){var rt=et.x,it=et.y,ot=getAngleOfPoint({x:rt,y:it},nt),at=ot.radius,st=ot.angle,lt=nt.innerRadius,ct=nt.outerRadius;if(atct)return!1;if(at===0)return!0;var ut=formatAngleOfSector(nt),ht=ut.startAngle,dt=ut.endAngle,pt=st,mt;if(ht<=dt){for(;pt>dt;)pt-=360;for(;pt=ht&&pt<=dt}else{for(;pt>ht;)pt-=360;for(;pt=dt&&pt<=ht}return mt?_objectSpread$h(_objectSpread$h({},nt),{},{radius:at,angle:reverseFormatAngleOfSetor(pt,nt)}):null};function _typeof$h(tt){"@babel/helpers - typeof";return _typeof$h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$h(tt)}function _toConsumableArray$5(tt){return _arrayWithoutHoles$5(tt)||_iterableToArray$5(tt)||_unsupportedIterableToArray$9(tt)||_nonIterableSpread$5()}function _nonIterableSpread$5(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$9(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$9(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$9(tt,et)}}function _iterableToArray$5(tt){if(typeof Symbol<"u"&&tt[Symbol.iterator]!=null||tt["@@iterator"]!=null)return Array.from(tt)}function _arrayWithoutHoles$5(tt){if(Array.isArray(tt))return _arrayLikeToArray$9(tt)}function _arrayLikeToArray$9(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0?1:-1,vt,kt;it==="insideStart"?(vt=pt+wt*at,kt=gt):it==="insideEnd"?(vt=mt-wt*at,kt=!gt):it==="end"&&(vt=mt+wt*at,kt=gt),kt=bt<=0?kt:!kt;var St=polarToCartesian(ct,ut,yt,vt),Et=polarToCartesian(ct,ut,yt,vt+(kt?1:-1)*359),At="M".concat(St.x,",").concat(St.y,` A`).concat(yt,",").concat(yt,",0,1,").concat(kt?0:1,`, - `).concat(Tt.x,",").concat(Tt.y),Et=_isNil(et.id)?uniqueId("recharts-radial-line-"):et.id;return React$1.createElement("text",_extends$h({},rt,{dominantBaseline:"central",className:classNames("recharts-radial-bar-label",st)}),React$1.createElement("defs",null,React$1.createElement("path",{id:Et,d:At})),React$1.createElement("textPath",{xlinkHref:"#".concat(Et)},nt))},getAttrsOfPolarLabel=function(et){var nt=et.viewBox,rt=et.offset,it=et.position,ot=nt,at=ot.cx,st=ot.cy,lt=ot.innerRadius,ct=ot.outerRadius,ut=ot.startAngle,ht=ot.endAngle,dt=(ut+ht)/2;if(it==="outside"){var pt=polarToCartesian(at,st,ct+rt,dt),mt=pt.x,gt=pt.y;return{x:mt,y:gt,textAnchor:mt>=at?"start":"end",verticalAnchor:"middle"}}if(it==="center")return{x:at,y:st,textAnchor:"middle",verticalAnchor:"middle"};if(it==="centerTop")return{x:at,y:st,textAnchor:"middle",verticalAnchor:"start"};if(it==="centerBottom")return{x:at,y:st,textAnchor:"middle",verticalAnchor:"end"};var yt=(lt+ct)/2,bt=polarToCartesian(at,st,yt,dt),wt=bt.x,vt=bt.y;return{x:wt,y:vt,textAnchor:"middle",verticalAnchor:"middle"}},getAttrsOfCartesianLabel=function(et){var nt=et.viewBox,rt=et.parentViewBox,it=et.offset,ot=et.position,at=nt,st=at.x,lt=at.y,ct=at.width,ut=at.height,ht=ut>=0?1:-1,dt=ht*it,pt=ht>0?"end":"start",mt=ht>0?"start":"end",gt=ct>=0?1:-1,yt=gt*it,bt=gt>0?"end":"start",wt=gt>0?"start":"end";if(ot==="top"){var vt={x:st+ct/2,y:lt-ht*it,textAnchor:"middle",verticalAnchor:pt};return _objectSpread$g(_objectSpread$g({},vt),rt?{height:Math.max(lt-rt.y,0),width:ct}:{})}if(ot==="bottom"){var kt={x:st+ct/2,y:lt+ut+dt,textAnchor:"middle",verticalAnchor:mt};return _objectSpread$g(_objectSpread$g({},kt),rt?{height:Math.max(rt.y+rt.height-(lt+ut),0),width:ct}:{})}if(ot==="left"){var St={x:st-yt,y:lt+ut/2,textAnchor:bt,verticalAnchor:"middle"};return _objectSpread$g(_objectSpread$g({},St),rt?{width:Math.max(St.x-rt.x,0),height:ut}:{})}if(ot==="right"){var Tt={x:st+ct+yt,y:lt+ut/2,textAnchor:wt,verticalAnchor:"middle"};return _objectSpread$g(_objectSpread$g({},Tt),rt?{width:Math.max(rt.x+rt.width-Tt.x,0),height:ut}:{})}var At=rt?{width:ct,height:ut}:{};return ot==="insideLeft"?_objectSpread$g({x:st+yt,y:lt+ut/2,textAnchor:wt,verticalAnchor:"middle"},At):ot==="insideRight"?_objectSpread$g({x:st+ct-yt,y:lt+ut/2,textAnchor:bt,verticalAnchor:"middle"},At):ot==="insideTop"?_objectSpread$g({x:st+ct/2,y:lt+dt,textAnchor:"middle",verticalAnchor:mt},At):ot==="insideBottom"?_objectSpread$g({x:st+ct/2,y:lt+ut-dt,textAnchor:"middle",verticalAnchor:pt},At):ot==="insideTopLeft"?_objectSpread$g({x:st+yt,y:lt+dt,textAnchor:wt,verticalAnchor:mt},At):ot==="insideTopRight"?_objectSpread$g({x:st+ct-yt,y:lt+dt,textAnchor:bt,verticalAnchor:mt},At):ot==="insideBottomLeft"?_objectSpread$g({x:st+yt,y:lt+ut-dt,textAnchor:wt,verticalAnchor:pt},At):ot==="insideBottomRight"?_objectSpread$g({x:st+ct-yt,y:lt+ut-dt,textAnchor:bt,verticalAnchor:pt},At):_isObject$1(ot)&&(isNumber(ot.x)||isPercent(ot.x))&&(isNumber(ot.y)||isPercent(ot.y))?_objectSpread$g({x:st+getPercentValue(ot.x,ct),y:lt+getPercentValue(ot.y,ut),textAnchor:"end",verticalAnchor:"end"},At):_objectSpread$g({x:st+ct/2,y:lt+ut/2,textAnchor:"middle",verticalAnchor:"middle"},At)},isPolar=function(et){return"cx"in et&&isNumber(et.cx)};function Label(tt){var et=tt.viewBox,nt=tt.position,rt=tt.value,it=tt.children,ot=tt.content,at=tt.className,st=at===void 0?"":at,lt=tt.textBreakAll;if(!et||_isNil(rt)&&_isNil(it)&&!reactExports.isValidElement(ot)&&!_isFunction$1(ot))return null;if(reactExports.isValidElement(ot))return reactExports.cloneElement(ot,tt);var ct;if(_isFunction$1(ot)){if(ct=reactExports.createElement(ot,tt),reactExports.isValidElement(ct))return ct}else ct=getLabel(tt);var ut=isPolar(et),ht=filterProps(tt,!0);if(ut&&(nt==="insideStart"||nt==="insideEnd"||nt==="end"))return renderRadialLabel(tt,ct,ht);var dt=ut?getAttrsOfPolarLabel(tt):getAttrsOfCartesianLabel(tt);return React$1.createElement(Text,_extends$h({className:classNames("recharts-label",st)},ht,dt,{breakAll:lt}),ct)}Label.displayName="Label";Label.defaultProps={offset:5};var parseViewBox=function(et){var nt=et.cx,rt=et.cy,it=et.angle,ot=et.startAngle,at=et.endAngle,st=et.r,lt=et.radius,ct=et.innerRadius,ut=et.outerRadius,ht=et.x,dt=et.y,pt=et.top,mt=et.left,gt=et.width,yt=et.height,bt=et.clockWise,wt=et.labelViewBox;if(wt)return wt;if(isNumber(gt)&&isNumber(yt)){if(isNumber(ht)&&isNumber(dt))return{x:ht,y:dt,width:gt,height:yt};if(isNumber(pt)&&isNumber(mt))return{x:pt,y:mt,width:gt,height:yt}}return isNumber(ht)&&isNumber(dt)?{x:ht,y:dt,width:0,height:0}:isNumber(nt)&&isNumber(rt)?{cx:nt,cy:rt,startAngle:ot||it||0,endAngle:at||it||0,innerRadius:ct||0,outerRadius:ut||lt||st||0,clockWise:bt}:et.viewBox?et.viewBox:{}},parseLabel=function(et,nt){return et?et===!0?React$1.createElement(Label,{key:"label-implicit",viewBox:nt}):isNumOrStr(et)?React$1.createElement(Label,{key:"label-implicit",viewBox:nt,value:et}):reactExports.isValidElement(et)?et.type===Label?reactExports.cloneElement(et,{key:"label-implicit",viewBox:nt}):React$1.createElement(Label,{key:"label-implicit",content:et,viewBox:nt}):_isFunction$1(et)?React$1.createElement(Label,{key:"label-implicit",content:et,viewBox:nt}):_isObject$1(et)?React$1.createElement(Label,_extends$h({viewBox:nt},et,{key:"label-implicit"})):null:null},renderCallByParent$1=function(et,nt){var rt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!et||!et.children&&rt&&!et.label)return null;var it=et.children,ot=parseViewBox(et),at=findAllByType(it,Label).map(function(lt,ct){return reactExports.cloneElement(lt,{viewBox:nt||ot,key:"label-".concat(ct)})});if(!rt)return at;var st=parseLabel(et.label,nt||ot);return[st].concat(_toConsumableArray$5(at))};Label.parseViewBox=parseViewBox;Label.renderCallByParent=renderCallByParent$1;function _typeof$g(tt){"@babel/helpers - typeof";return _typeof$g=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$g(tt)}var _excluded$5=["data","valueAccessor","dataKey","clockWise","id","textBreakAll"];function _toConsumableArray$4(tt){return _arrayWithoutHoles$4(tt)||_iterableToArray$4(tt)||_unsupportedIterableToArray$8(tt)||_nonIterableSpread$4()}function _nonIterableSpread$4(){throw new TypeError(`Invalid attempt to spread non-iterable instance. + `).concat(Et.x,",").concat(Et.y),Tt=_isNil(et.id)?uniqueId("recharts-radial-line-"):et.id;return React$1.createElement("text",_extends$h({},rt,{dominantBaseline:"central",className:classNames("recharts-radial-bar-label",st)}),React$1.createElement("defs",null,React$1.createElement("path",{id:Tt,d:At})),React$1.createElement("textPath",{xlinkHref:"#".concat(Tt)},nt))},getAttrsOfPolarLabel=function(et){var nt=et.viewBox,rt=et.offset,it=et.position,ot=nt,at=ot.cx,st=ot.cy,lt=ot.innerRadius,ct=ot.outerRadius,ut=ot.startAngle,ht=ot.endAngle,dt=(ut+ht)/2;if(it==="outside"){var pt=polarToCartesian(at,st,ct+rt,dt),mt=pt.x,gt=pt.y;return{x:mt,y:gt,textAnchor:mt>=at?"start":"end",verticalAnchor:"middle"}}if(it==="center")return{x:at,y:st,textAnchor:"middle",verticalAnchor:"middle"};if(it==="centerTop")return{x:at,y:st,textAnchor:"middle",verticalAnchor:"start"};if(it==="centerBottom")return{x:at,y:st,textAnchor:"middle",verticalAnchor:"end"};var yt=(lt+ct)/2,bt=polarToCartesian(at,st,yt,dt),wt=bt.x,vt=bt.y;return{x:wt,y:vt,textAnchor:"middle",verticalAnchor:"middle"}},getAttrsOfCartesianLabel=function(et){var nt=et.viewBox,rt=et.parentViewBox,it=et.offset,ot=et.position,at=nt,st=at.x,lt=at.y,ct=at.width,ut=at.height,ht=ut>=0?1:-1,dt=ht*it,pt=ht>0?"end":"start",mt=ht>0?"start":"end",gt=ct>=0?1:-1,yt=gt*it,bt=gt>0?"end":"start",wt=gt>0?"start":"end";if(ot==="top"){var vt={x:st+ct/2,y:lt-ht*it,textAnchor:"middle",verticalAnchor:pt};return _objectSpread$g(_objectSpread$g({},vt),rt?{height:Math.max(lt-rt.y,0),width:ct}:{})}if(ot==="bottom"){var kt={x:st+ct/2,y:lt+ut+dt,textAnchor:"middle",verticalAnchor:mt};return _objectSpread$g(_objectSpread$g({},kt),rt?{height:Math.max(rt.y+rt.height-(lt+ut),0),width:ct}:{})}if(ot==="left"){var St={x:st-yt,y:lt+ut/2,textAnchor:bt,verticalAnchor:"middle"};return _objectSpread$g(_objectSpread$g({},St),rt?{width:Math.max(St.x-rt.x,0),height:ut}:{})}if(ot==="right"){var Et={x:st+ct+yt,y:lt+ut/2,textAnchor:wt,verticalAnchor:"middle"};return _objectSpread$g(_objectSpread$g({},Et),rt?{width:Math.max(rt.x+rt.width-Et.x,0),height:ut}:{})}var At=rt?{width:ct,height:ut}:{};return ot==="insideLeft"?_objectSpread$g({x:st+yt,y:lt+ut/2,textAnchor:wt,verticalAnchor:"middle"},At):ot==="insideRight"?_objectSpread$g({x:st+ct-yt,y:lt+ut/2,textAnchor:bt,verticalAnchor:"middle"},At):ot==="insideTop"?_objectSpread$g({x:st+ct/2,y:lt+dt,textAnchor:"middle",verticalAnchor:mt},At):ot==="insideBottom"?_objectSpread$g({x:st+ct/2,y:lt+ut-dt,textAnchor:"middle",verticalAnchor:pt},At):ot==="insideTopLeft"?_objectSpread$g({x:st+yt,y:lt+dt,textAnchor:wt,verticalAnchor:mt},At):ot==="insideTopRight"?_objectSpread$g({x:st+ct-yt,y:lt+dt,textAnchor:bt,verticalAnchor:mt},At):ot==="insideBottomLeft"?_objectSpread$g({x:st+yt,y:lt+ut-dt,textAnchor:wt,verticalAnchor:pt},At):ot==="insideBottomRight"?_objectSpread$g({x:st+ct-yt,y:lt+ut-dt,textAnchor:bt,verticalAnchor:pt},At):_isObject$1(ot)&&(isNumber(ot.x)||isPercent(ot.x))&&(isNumber(ot.y)||isPercent(ot.y))?_objectSpread$g({x:st+getPercentValue(ot.x,ct),y:lt+getPercentValue(ot.y,ut),textAnchor:"end",verticalAnchor:"end"},At):_objectSpread$g({x:st+ct/2,y:lt+ut/2,textAnchor:"middle",verticalAnchor:"middle"},At)},isPolar=function(et){return"cx"in et&&isNumber(et.cx)};function Label(tt){var et=tt.viewBox,nt=tt.position,rt=tt.value,it=tt.children,ot=tt.content,at=tt.className,st=at===void 0?"":at,lt=tt.textBreakAll;if(!et||_isNil(rt)&&_isNil(it)&&!reactExports.isValidElement(ot)&&!_isFunction$1(ot))return null;if(reactExports.isValidElement(ot))return reactExports.cloneElement(ot,tt);var ct;if(_isFunction$1(ot)){if(ct=reactExports.createElement(ot,tt),reactExports.isValidElement(ct))return ct}else ct=getLabel(tt);var ut=isPolar(et),ht=filterProps(tt,!0);if(ut&&(nt==="insideStart"||nt==="insideEnd"||nt==="end"))return renderRadialLabel(tt,ct,ht);var dt=ut?getAttrsOfPolarLabel(tt):getAttrsOfCartesianLabel(tt);return React$1.createElement(Text,_extends$h({className:classNames("recharts-label",st)},ht,dt,{breakAll:lt}),ct)}Label.displayName="Label";Label.defaultProps={offset:5};var parseViewBox=function(et){var nt=et.cx,rt=et.cy,it=et.angle,ot=et.startAngle,at=et.endAngle,st=et.r,lt=et.radius,ct=et.innerRadius,ut=et.outerRadius,ht=et.x,dt=et.y,pt=et.top,mt=et.left,gt=et.width,yt=et.height,bt=et.clockWise,wt=et.labelViewBox;if(wt)return wt;if(isNumber(gt)&&isNumber(yt)){if(isNumber(ht)&&isNumber(dt))return{x:ht,y:dt,width:gt,height:yt};if(isNumber(pt)&&isNumber(mt))return{x:pt,y:mt,width:gt,height:yt}}return isNumber(ht)&&isNumber(dt)?{x:ht,y:dt,width:0,height:0}:isNumber(nt)&&isNumber(rt)?{cx:nt,cy:rt,startAngle:ot||it||0,endAngle:at||it||0,innerRadius:ct||0,outerRadius:ut||lt||st||0,clockWise:bt}:et.viewBox?et.viewBox:{}},parseLabel=function(et,nt){return et?et===!0?React$1.createElement(Label,{key:"label-implicit",viewBox:nt}):isNumOrStr(et)?React$1.createElement(Label,{key:"label-implicit",viewBox:nt,value:et}):reactExports.isValidElement(et)?et.type===Label?reactExports.cloneElement(et,{key:"label-implicit",viewBox:nt}):React$1.createElement(Label,{key:"label-implicit",content:et,viewBox:nt}):_isFunction$1(et)?React$1.createElement(Label,{key:"label-implicit",content:et,viewBox:nt}):_isObject$1(et)?React$1.createElement(Label,_extends$h({viewBox:nt},et,{key:"label-implicit"})):null:null},renderCallByParent$1=function(et,nt){var rt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!et||!et.children&&rt&&!et.label)return null;var it=et.children,ot=parseViewBox(et),at=findAllByType(it,Label).map(function(lt,ct){return reactExports.cloneElement(lt,{viewBox:nt||ot,key:"label-".concat(ct)})});if(!rt)return at;var st=parseLabel(et.label,nt||ot);return[st].concat(_toConsumableArray$5(at))};Label.parseViewBox=parseViewBox;Label.renderCallByParent=renderCallByParent$1;function _typeof$g(tt){"@babel/helpers - typeof";return _typeof$g=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$g(tt)}var _excluded$5=["data","valueAccessor","dataKey","clockWise","id","textBreakAll"];function _toConsumableArray$4(tt){return _arrayWithoutHoles$4(tt)||_iterableToArray$4(tt)||_unsupportedIterableToArray$8(tt)||_nonIterableSpread$4()}function _nonIterableSpread$4(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$8(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$8(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$8(tt,et)}}function _iterableToArray$4(tt){if(typeof Symbol<"u"&&tt[Symbol.iterator]!=null||tt["@@iterator"]!=null)return Array.from(tt)}function _arrayWithoutHoles$4(tt){if(Array.isArray(tt))return _arrayLikeToArray$8(tt)}function _arrayLikeToArray$8(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$5(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}var defaultProps$1={valueAccessor:function(et){return _isArray$1(et.value)?_last(et.value):et.value}};function LabelList(tt){var et=tt.data,nt=tt.valueAccessor,rt=tt.dataKey,it=tt.clockWise,ot=tt.id,at=tt.textBreakAll,st=_objectWithoutProperties$5(tt,_excluded$5);return!et||!et.length?null:React$1.createElement(Layer,{className:"recharts-label-list"},et.map(function(lt,ct){var ut=_isNil(rt)?nt(lt,ct):getValueByDataKey(lt&<.payload,rt),ht=_isNil(ot)?{}:{id:"".concat(ot,"-").concat(ct)};return React$1.createElement(Label,_extends$g({},filterProps(lt,!0),st,ht,{parentViewBox:lt.parentViewBox,index:ct,value:ut,textBreakAll:at,viewBox:Label.parseViewBox(_isNil(it)?lt:_objectSpread$f(_objectSpread$f({},lt),{},{clockWise:it})),key:"label-".concat(ct)}))}))}LabelList.displayName="LabelList";function parseLabelList(tt,et){return tt?tt===!0?React$1.createElement(LabelList,{key:"labelList-implicit",data:et}):React$1.isValidElement(tt)||_isFunction$1(tt)?React$1.createElement(LabelList,{key:"labelList-implicit",data:et,content:tt}):_isObject$1(tt)?React$1.createElement(LabelList,_extends$g({data:et},tt,{key:"labelList-implicit"})):null:null}function renderCallByParent(tt,et){var nt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!tt||!tt.children&&nt&&!tt.label)return null;var rt=tt.children,it=findAllByType(rt,LabelList).map(function(at,st){return reactExports.cloneElement(at,{data:et,key:"labelList-".concat(st)})});if(!nt)return it;var ot=parseLabelList(tt.label,et);return[ot].concat(_toConsumableArray$4(it))}LabelList.renderCallByParent=renderCallByParent;LabelList.defaultProps=defaultProps$1;function _extends$f(){return _extends$f=Object.assign?Object.assign.bind():function(tt){for(var et=1;et180),",").concat(+(at>ct),`, @@ -7193,10 +7193,10 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho A`).concat(at,",").concat(at,",0,0,").concat(+(ht<0),",").concat(pt.x,",").concat(pt.y,` A`).concat(ot,",").concat(ot,",0,").concat(+(kt>180),",").concat(+(ht<0),",").concat(bt.x,",").concat(bt.y,` A`).concat(at,",").concat(at,",0,0,").concat(+(ht<0),",").concat(wt.x,",").concat(wt.y,` - `);if(it>0){var Tt=getTangentCircle({cx:nt,cy:rt,radius:it,angle:ct,sign:ht,isExternal:!0,cornerRadius:at,cornerIsExternal:lt}),At=Tt.circleTangency,Et=Tt.lineTangency,Mt=Tt.theta,Lt=getTangentCircle({cx:nt,cy:rt,radius:it,angle:ut,sign:-ht,isExternal:!0,cornerRadius:at,cornerIsExternal:lt}),jt=Lt.circleTangency,Rt=Lt.lineTangency,$t=Lt.theta,xt=lt?Math.abs(ct-ut):Math.abs(ct-ut)-Mt-$t;if(xt<0&&at===0)return"".concat(St,"L").concat(nt,",").concat(rt,"Z");St+="L".concat(Rt.x,",").concat(Rt.y,` + `);if(it>0){var Et=getTangentCircle({cx:nt,cy:rt,radius:it,angle:ct,sign:ht,isExternal:!0,cornerRadius:at,cornerIsExternal:lt}),At=Et.circleTangency,Tt=Et.lineTangency,Mt=Et.theta,Lt=getTangentCircle({cx:nt,cy:rt,radius:it,angle:ut,sign:-ht,isExternal:!0,cornerRadius:at,cornerIsExternal:lt}),jt=Lt.circleTangency,Rt=Lt.lineTangency,$t=Lt.theta,xt=lt?Math.abs(ct-ut):Math.abs(ct-ut)-Mt-$t;if(xt<0&&at===0)return"".concat(St,"L").concat(nt,",").concat(rt,"Z");St+="L".concat(Rt.x,",").concat(Rt.y,` A`).concat(at,",").concat(at,",0,0,").concat(+(ht<0),",").concat(jt.x,",").concat(jt.y,` A`).concat(it,",").concat(it,",0,").concat(+(xt>180),",").concat(+(ht>0),",").concat(At.x,",").concat(At.y,` - A`).concat(at,",").concat(at,",0,0,").concat(+(ht<0),",").concat(Et.x,",").concat(Et.y,"Z")}else St+="L".concat(nt,",").concat(rt,"Z");return St},Sector=function(et){var nt=et.cx,rt=et.cy,it=et.innerRadius,ot=et.outerRadius,at=et.cornerRadius,st=et.forceCornerRadius,lt=et.cornerIsExternal,ct=et.startAngle,ut=et.endAngle,ht=et.className;if(ot0&&Math.abs(ct-ut)<360?gt=getSectorWithCorner({cx:nt,cy:rt,innerRadius:it,outerRadius:ot,cornerRadius:Math.min(mt,pt/2),forceCornerRadius:st,cornerIsExternal:lt,startAngle:ct,endAngle:ut}):gt=getSectorPath({cx:nt,cy:rt,innerRadius:it,outerRadius:ot,startAngle:ct,endAngle:ut}),React$1.createElement("path",_extends$f({},filterProps(et,!0),{className:dt,d:gt,role:"img"}))};Sector.defaultProps={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1};function _typeof$f(tt){"@babel/helpers - typeof";return _typeof$f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$f(tt)}function _extends$e(){return _extends$e=Object.assign?Object.assign.bind():function(tt){for(var et=1;et0&&Math.abs(ct-ut)<360?gt=getSectorWithCorner({cx:nt,cy:rt,innerRadius:it,outerRadius:ot,cornerRadius:Math.min(mt,pt/2),forceCornerRadius:st,cornerIsExternal:lt,startAngle:ct,endAngle:ut}):gt=getSectorPath({cx:nt,cy:rt,innerRadius:it,outerRadius:ot,startAngle:ct,endAngle:ut}),React$1.createElement("path",_extends$f({},filterProps(et,!0),{className:dt,d:gt,role:"img"}))};Sector.defaultProps={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1};function _typeof$f(tt){"@babel/helpers - typeof";return _typeof$f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$f(tt)}function _extends$e(){return _extends$e=Object.assign?Object.assign.bind():function(tt){for(var et=1;ettt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0?1:-1,lt=rt>=0?1:-1,ct=it>=0&&rt>=0||it<0&&rt<0?1:0,ut;if(at>0&&ot instanceof Array){for(var ht=[0,0,0,0],dt=0,pt=4;dtat?at:ot[dt];ut="M".concat(et,",").concat(nt+st*ht[0]),ht[0]>0&&(ut+="A ".concat(ht[0],",").concat(ht[0],",0,0,").concat(ct,",").concat(et+lt*ht[0],",").concat(nt)),ut+="L ".concat(et+rt-lt*ht[1],",").concat(nt),ht[1]>0&&(ut+="A ".concat(ht[1],",").concat(ht[1],",0,0,").concat(ct,`, `).concat(et+rt,",").concat(nt+st*ht[1])),ut+="L ".concat(et+rt,",").concat(nt+it-st*ht[2]),ht[2]>0&&(ut+="A ".concat(ht[2],",").concat(ht[2],",0,0,").concat(ct,`, `).concat(et+rt-lt*ht[2],",").concat(nt+it)),ut+="L ".concat(et+lt*ht[3],",").concat(nt+it),ht[3]>0&&(ut+="A ".concat(ht[3],",").concat(ht[3],",0,0,").concat(ct,`, @@ -7207,12 +7207,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho L `).concat(et+rt,",").concat(nt+it-st*mt,` A `).concat(mt,",").concat(mt,",0,0,").concat(ct,",").concat(et+rt-lt*mt,",").concat(nt+it,` L `).concat(et+lt*mt,",").concat(nt+it,` - A `).concat(mt,",").concat(mt,",0,0,").concat(ct,",").concat(et,",").concat(nt+it-st*mt," Z")}else ut="M ".concat(et,",").concat(nt," h ").concat(rt," v ").concat(it," h ").concat(-rt," Z");return ut},isInRectangle=function(et,nt){if(!et||!nt)return!1;var rt=et.x,it=et.y,ot=nt.x,at=nt.y,st=nt.width,lt=nt.height;if(Math.abs(st)>0&&Math.abs(lt)>0){var ct=Math.min(ot,ot+st),ut=Math.max(ot,ot+st),ht=Math.min(at,at+lt),dt=Math.max(at,at+lt);return rt>=ct&&rt<=ut&&it>=ht&&it<=dt}return!1},Rectangle=function(et){var nt=reactExports.useRef(),rt=reactExports.useState(-1),it=_slicedToArray$3(rt,2),ot=it[0],at=it[1];reactExports.useLayoutEffect(function(){if(nt.current&&nt.current.getTotalLength)try{var vt=nt.current.getTotalLength();vt&&at(vt)}catch{}},[]);var st=et.x,lt=et.y,ct=et.width,ut=et.height,ht=et.radius,dt=et.className,pt=et.animationEasing,mt=et.animationDuration,gt=et.animationBegin,yt=et.isAnimationActive,bt=et.isUpdateAnimationActive;if(st!==+st||lt!==+lt||ct!==+ct||ut!==+ut||ct===0||ut===0)return null;var wt=classNames("recharts-rectangle",dt);return bt?React$1.createElement(Animate,{canBegin:ot>0,from:{width:ct,height:ut,x:st,y:lt},to:{width:ct,height:ut,x:st,y:lt},duration:mt,animationEasing:pt,isActive:bt},function(vt){var kt=vt.width,St=vt.height,Tt=vt.x,At=vt.y;return React$1.createElement(Animate,{canBegin:ot>0,from:"0px ".concat(ot===-1?1:ot,"px"),to:"".concat(ot,"px 0px"),attributeName:"strokeDasharray",begin:gt,duration:mt,isActive:yt,easing:pt},React$1.createElement("path",_extends$d({},filterProps(et,!0),{className:wt,d:getRectanglePath(Tt,At,kt,St,ht),ref:nt})))}):React$1.createElement("path",_extends$d({},filterProps(et,!0),{className:wt,d:getRectanglePath(st,lt,ct,ut,ht)}))};Rectangle.defaultProps={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"};function _extends$c(){return _extends$c=Object.assign?Object.assign.bind():function(tt){for(var et=1;et"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$7(tt){return _getPrototypeOf$7=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$7(tt)}function _defineProperty$d(tt,et,nt){return et=_toPropertyKey$c(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$c(tt){var et=_toPrimitive$c(tt,"string");return _typeof$d(et)==="symbol"?et:String(et)}function _toPrimitive$c(tt,et){if(_typeof$d(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$d(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var createScale=function(et){var nt=et.data,rt=et.startIndex,it=et.endIndex,ot=et.x,at=et.width,st=et.travellerWidth;if(!nt||!nt.length)return{};var lt=nt.length,ct=point().domain(_range(0,lt)).range([ot,ot+at-st]),ut=ct.domain().map(function(ht){return ct(ht)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,startX:ct(rt),endX:ct(it),scale:ct,scaleValues:ut}},isTouch=function(et){return et.changedTouches&&!!et.changedTouches.length},Brush=function(tt){_inherits$7(nt,tt);var et=_createSuper$7(nt);function nt(rt){var it;return _classCallCheck$9(this,nt),it=et.call(this,rt),_defineProperty$d(_assertThisInitialized$7(it),"handleDrag",function(ot){it.leaveTimer&&(clearTimeout(it.leaveTimer),it.leaveTimer=null),it.state.isTravellerMoving?it.handleTravellerMove(ot):it.state.isSlideMoving&&it.handleSlideDrag(ot)}),_defineProperty$d(_assertThisInitialized$7(it),"handleTouchMove",function(ot){ot.changedTouches!=null&&ot.changedTouches.length>0&&it.handleDrag(ot.changedTouches[0])}),_defineProperty$d(_assertThisInitialized$7(it),"handleDragEnd",function(){it.setState({isTravellerMoving:!1,isSlideMoving:!1}),it.detachDragEndListener()}),_defineProperty$d(_assertThisInitialized$7(it),"handleLeaveWrapper",function(){(it.state.isTravellerMoving||it.state.isSlideMoving)&&(it.leaveTimer=window.setTimeout(it.handleDragEnd,it.props.leaveTimeOut))}),_defineProperty$d(_assertThisInitialized$7(it),"handleEnterSlideOrTraveller",function(){it.setState({isTextActive:!0})}),_defineProperty$d(_assertThisInitialized$7(it),"handleLeaveSlideOrTraveller",function(){it.setState({isTextActive:!1})}),_defineProperty$d(_assertThisInitialized$7(it),"handleSlideDragStart",function(ot){var at=isTouch(ot)?ot.changedTouches[0]:ot;it.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:at.pageX}),it.attachDragEndListener()}),it.travellerDragStartHandlers={startX:it.handleTravellerDragStart.bind(_assertThisInitialized$7(it),"startX"),endX:it.handleTravellerDragStart.bind(_assertThisInitialized$7(it),"endX")},it.state={},it}return _createClass$9(nt,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(it){var ot=it.startX,at=it.endX,st=this.state.scaleValues,lt=this.props,ct=lt.gap,ut=lt.data,ht=ut.length-1,dt=Math.min(ot,at),pt=Math.max(ot,at),mt=nt.getIndexInRange(st,dt),gt=nt.getIndexInRange(st,pt);return{startIndex:mt-mt%ct,endIndex:gt===ht?ht:gt-gt%ct}}},{key:"getTextOfTick",value:function(it){var ot=this.props,at=ot.data,st=ot.tickFormatter,lt=ot.dataKey,ct=getValueByDataKey(at[it],lt,it);return _isFunction$1(st)?st(ct,it):ct}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(it){var ot=this.state,at=ot.slideMoveStartX,st=ot.startX,lt=ot.endX,ct=this.props,ut=ct.x,ht=ct.width,dt=ct.travellerWidth,pt=ct.startIndex,mt=ct.endIndex,gt=ct.onChange,yt=it.pageX-at;yt>0?yt=Math.min(yt,ut+ht-dt-lt,ut+ht-dt-st):yt<0&&(yt=Math.max(yt,ut-st,ut-lt));var bt=this.getIndex({startX:st+yt,endX:lt+yt});(bt.startIndex!==pt||bt.endIndex!==mt)&>&>(bt),this.setState({startX:st+yt,endX:lt+yt,slideMoveStartX:it.pageX})}},{key:"handleTravellerDragStart",value:function(it,ot){var at=isTouch(ot)?ot.changedTouches[0]:ot;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:it,brushMoveStartX:at.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(it){var ot,at=this.state,st=at.brushMoveStartX,lt=at.movingTravellerId,ct=at.endX,ut=at.startX,ht=this.state[lt],dt=this.props,pt=dt.x,mt=dt.width,gt=dt.travellerWidth,yt=dt.onChange,bt=dt.gap,wt=dt.data,vt={startX:this.state.startX,endX:this.state.endX},kt=it.pageX-st;kt>0?kt=Math.min(kt,pt+mt-gt-ht):kt<0&&(kt=Math.max(kt,pt-ht)),vt[lt]=ht+kt;var St=this.getIndex(vt),Tt=St.startIndex,At=St.endIndex,Et=function(){var Lt=wt.length-1;return lt==="startX"&&(ct>ut?Tt%bt===0:At%bt===0)||ctut?At%bt===0:Tt%bt===0)||ct>ut&&At===Lt};this.setState((ot={},_defineProperty$d(ot,lt,ht+kt),_defineProperty$d(ot,"brushMoveStartX",it.pageX),ot),function(){yt&&Et()&&yt(St)})}},{key:"renderBackground",value:function(){var it=this.props,ot=it.x,at=it.y,st=it.width,lt=it.height,ct=it.fill,ut=it.stroke;return React$1.createElement("rect",{stroke:ut,fill:ct,x:ot,y:at,width:st,height:lt})}},{key:"renderPanorama",value:function(){var it=this.props,ot=it.x,at=it.y,st=it.width,lt=it.height,ct=it.data,ut=it.children,ht=it.padding,dt=reactExports.Children.only(ut);return dt?React$1.cloneElement(dt,{x:ot,y:at,width:st,height:lt,margin:ht,compact:!0,data:ct}):null}},{key:"renderTravellerLayer",value:function(it,ot){var at=this.props,st=at.y,lt=at.travellerWidth,ct=at.height,ut=at.traveller,ht=Math.max(it,this.props.x),dt=_objectSpread$c(_objectSpread$c({},filterProps(this.props)),{},{x:ht,y:st,width:lt,height:ct});return React$1.createElement(Layer,{className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[ot],onTouchStart:this.travellerDragStartHandlers[ot],style:{cursor:"col-resize"}},nt.renderTraveller(ut,dt))}},{key:"renderSlide",value:function(it,ot){var at=this.props,st=at.y,lt=at.height,ct=at.stroke,ut=at.travellerWidth,ht=Math.min(it,ot)+ut,dt=Math.max(Math.abs(ot-it)-ut,0);return React$1.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:ct,fillOpacity:.2,x:ht,y:st,width:dt,height:lt})}},{key:"renderText",value:function(){var it=this.props,ot=it.startIndex,at=it.endIndex,st=it.y,lt=it.height,ct=it.travellerWidth,ut=it.stroke,ht=this.state,dt=ht.startX,pt=ht.endX,mt=5,gt={pointerEvents:"none",fill:ut};return React$1.createElement(Layer,{className:"recharts-brush-texts"},React$1.createElement(Text,_extends$a({textAnchor:"end",verticalAnchor:"middle",x:Math.min(dt,pt)-mt,y:st+lt/2},gt),this.getTextOfTick(ot)),React$1.createElement(Text,_extends$a({textAnchor:"start",verticalAnchor:"middle",x:Math.max(dt,pt)+ct+mt,y:st+lt/2},gt),this.getTextOfTick(at)))}},{key:"render",value:function(){var it=this.props,ot=it.data,at=it.className,st=it.children,lt=it.x,ct=it.y,ut=it.width,ht=it.height,dt=it.alwaysShowText,pt=this.state,mt=pt.startX,gt=pt.endX,yt=pt.isTextActive,bt=pt.isSlideMoving,wt=pt.isTravellerMoving;if(!ot||!ot.length||!isNumber(lt)||!isNumber(ct)||!isNumber(ut)||!isNumber(ht)||ut<=0||ht<=0)return null;var vt=classNames("recharts-brush",at),kt=React$1.Children.count(st)===1,St=generatePrefixStyle("userSelect","none");return React$1.createElement(Layer,{className:vt,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:St},this.renderBackground(),kt&&this.renderPanorama(),this.renderSlide(mt,gt),this.renderTravellerLayer(mt,"startX"),this.renderTravellerLayer(gt,"endX"),(yt||bt||wt||dt)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(it){var ot=it.x,at=it.y,st=it.width,lt=it.height,ct=it.stroke,ut=Math.floor(at+lt/2)-1;return React$1.createElement(React$1.Fragment,null,React$1.createElement("rect",{x:ot,y:at,width:st,height:lt,fill:ct,stroke:"none"}),React$1.createElement("line",{x1:ot+1,y1:ut,x2:ot+st-1,y2:ut,fill:"none",stroke:"#fff"}),React$1.createElement("line",{x1:ot+1,y1:ut+2,x2:ot+st-1,y2:ut+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(it,ot){var at;return React$1.isValidElement(it)?at=React$1.cloneElement(it,ot):_isFunction$1(it)?at=it(ot):at=nt.renderDefaultTraveller(ot),at}},{key:"getDerivedStateFromProps",value:function(it,ot){var at=it.data,st=it.width,lt=it.x,ct=it.travellerWidth,ut=it.updateId,ht=it.startIndex,dt=it.endIndex;if(at!==ot.prevData||ut!==ot.prevUpdateId)return _objectSpread$c({prevData:at,prevTravellerWidth:ct,prevUpdateId:ut,prevX:lt,prevWidth:st},at&&at.length?createScale({data:at,width:st,x:lt,travellerWidth:ct,startIndex:ht,endIndex:dt}):{scale:null,scaleValues:null});if(ot.scale&&(st!==ot.prevWidth||lt!==ot.prevX||ct!==ot.prevTravellerWidth)){ot.scale.range([lt,lt+st-ct]);var pt=ot.scale.domain().map(function(mt){return ot.scale(mt)});return{prevData:at,prevTravellerWidth:ct,prevUpdateId:ut,prevX:lt,prevWidth:st,startX:ot.scale(it.startIndex),endX:ot.scale(it.endIndex),scaleValues:pt}}return null}},{key:"getIndexInRange",value:function(it,ot){for(var at=it.length,st=0,lt=at-1;lt-st>1;){var ct=Math.floor((st+lt)/2);it[ct]>ot?lt=ct:st=ct}return ot>=it[lt]?lt:st}}]),nt}(reactExports.PureComponent);_defineProperty$d(Brush,"displayName","Brush");_defineProperty$d(Brush,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var ifOverflowMatches=function(et,nt){var rt=et.alwaysShow,it=et.ifOverflow;return rt&&(it="extendDomain"),it===nt},baseAssignValue=_baseAssignValue,baseForOwn=_baseForOwn,baseIteratee=_baseIteratee;function mapValues(tt,et){var nt={};return et=baseIteratee(et),baseForOwn(tt,function(rt,it,ot){baseAssignValue(nt,it,et(rt,it,ot))}),nt}var mapValues_1=mapValues;const _mapValues=getDefaultExportFromCjs(mapValues_1);var _excluded$4=["value","background"];function _typeof$c(tt){"@babel/helpers - typeof";return _typeof$c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$c(tt)}function _objectWithoutProperties$4(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$4(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$4(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _extends$9(){return _extends$9=Object.assign?Object.assign.bind():function(tt){for(var et=1;et"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$6(tt){return _getPrototypeOf$6=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$6(tt)}function _defineProperty$c(tt,et,nt){return et=_toPropertyKey$b(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$b(tt){var et=_toPrimitive$b(tt,"string");return _typeof$c(et)==="symbol"?et:String(et)}function _toPrimitive$b(tt,et){if(_typeof$c(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$c(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var Bar=function(tt){_inherits$6(nt,tt);var et=_createSuper$6(nt);function nt(){var rt;_classCallCheck$8(this,nt);for(var it=arguments.length,ot=new Array(it),at=0;at0&&Math.abs(xt)0&&Math.abs($t)0&&($t=Math.min((Jt||0)-(xt[nn-1]||0),$t))});var It=$t/Rt,Ot=gt.layout==="vertical"?rt.height:rt.width;if(gt.padding==="gap"&&(At=It*Ot/2),gt.padding==="no-gap"){var zt=getPercentValue(et.barCategoryGap,It*Ot),Ut=It*Ot/2;At=Ut-zt-(Ut-zt)/Ot*zt}}it==="xAxis"?Et=[rt.left+(vt.left||0)+(At||0),rt.left+rt.width-(vt.right||0)-(At||0)]:it==="yAxis"?Et=lt==="horizontal"?[rt.top+rt.height-(vt.bottom||0),rt.top+(vt.top||0)]:[rt.top+(vt.top||0)+(At||0),rt.top+rt.height-(vt.bottom||0)-(At||0)]:Et=gt.range,St&&(Et=[Et[1],Et[0]]);var Wt=parseScale(gt,ot,dt),Ft=Wt.scale,Nt=Wt.realScaleType;Ft.domain(bt).range(Et),checkDomainOfScale(Ft);var Ct=getTicksOfScale(Ft,_objectSpread$a(_objectSpread$a({},gt),{},{realScaleType:Nt}));it==="xAxis"?(jt=yt==="top"&&!kt||yt==="bottom"&&kt,Mt=rt.left,Lt=ht[Tt]-jt*gt.height):it==="yAxis"&&(jt=yt==="left"&&!kt||yt==="right"&&kt,Mt=ht[Tt]-jt*gt.width,Lt=rt.top);var Ht=_objectSpread$a(_objectSpread$a(_objectSpread$a({},gt),Ct),{},{realScaleType:Nt,x:Mt,y:Lt,scale:Ft,width:it==="xAxis"?rt.width:gt.width,height:it==="yAxis"?rt.height:gt.height});return Ht.bandSize=getBandSizeOfAxis(Ht,Ct),!gt.hide&&it==="xAxis"?ht[Tt]+=(jt?-1:1)*Ht.height:gt.hide||(ht[Tt]+=(jt?-1:1)*Ht.width),_objectSpread$a(_objectSpread$a({},pt),{},_defineProperty$b({},mt,Ht))},{})},rectWithPoints=function(et,nt){var rt=et.x,it=et.y,ot=nt.x,at=nt.y;return{x:Math.min(rt,ot),y:Math.min(it,at),width:Math.abs(ot-rt),height:Math.abs(at-it)}},rectWithCoords=function(et){var nt=et.x1,rt=et.y1,it=et.x2,ot=et.y2;return rectWithPoints({x:nt,y:rt},{x:it,y:ot})},ScaleHelper=function(){function tt(et){_classCallCheck$7(this,tt),this.scale=et}return _createClass$7(tt,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(nt){var rt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},it=rt.bandAware,ot=rt.position;if(nt!==void 0){if(ot)switch(ot){case"start":return this.scale(nt);case"middle":{var at=this.bandwidth?this.bandwidth()/2:0;return this.scale(nt)+at}case"end":{var st=this.bandwidth?this.bandwidth():0;return this.scale(nt)+st}default:return this.scale(nt)}if(it){var lt=this.bandwidth?this.bandwidth()/2:0;return this.scale(nt)+lt}return this.scale(nt)}}},{key:"isInRange",value:function(nt){var rt=this.range(),it=rt[0],ot=rt[rt.length-1];return it<=ot?nt>=it&&nt<=ot:nt>=ot&&nt<=it}}],[{key:"create",value:function(nt){return new tt(nt)}}]),tt}();_defineProperty$b(ScaleHelper,"EPS",1e-4);var createLabeledScales=function(et){var nt=Object.keys(et).reduce(function(rt,it){return _objectSpread$a(_objectSpread$a({},rt),{},_defineProperty$b({},it,ScaleHelper.create(et[it])))},{});return _objectSpread$a(_objectSpread$a({},nt),{},{apply:function(it){var ot=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},at=ot.bandAware,st=ot.position;return _mapValues(it,function(lt,ct){return nt[ct].apply(lt,{bandAware:at,position:st})})},isInRange:function(it){return _every(it,function(ot,at){return nt[at].isInRange(ot)})}})};function normalizeAngle(tt){return(tt%180+180)%180}var getAngledRectangleWidth=function(et){var nt=et.width,rt=et.height,it=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,ot=normalizeAngle(it),at=ot*Math.PI/180,st=Math.atan(rt/nt),lt=at>st&&attt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=2?mathSign(yt[1].coordinate-yt[0].coordinate):1,vt,kt;wt===1?(vt=mt==="width"?ut:ht,kt=mt==="width"?ut+dt:ht+pt):(vt=mt==="width"?ut+dt:ht+pt,kt=mt==="width"?ut:ht);for(var St=bt-1;St>=0;St--){var Tt=yt[St],At=_isFunction$1(rt)?rt(Tt.value,bt-St-1):Tt.value,Et=mt==="width"?getAngledTickWidth(getStringSize(At,{fontSize:lt,letterSpacing:ct}),gt,et):getStringSize(At,{fontSize:lt,letterSpacing:ct})[mt];if(St===bt-1){var Mt=wt*(Tt.coordinate+wt*Et/2-kt);yt[St]=Tt=_objectSpread$6(_objectSpread$6({},Tt),{},{tickCoord:Mt>0?Tt.coordinate-Mt*wt:Tt.coordinate})}else yt[St]=Tt=_objectSpread$6(_objectSpread$6({},Tt),{},{tickCoord:Tt.coordinate});var Lt=wt*(Tt.tickCoord-wt*Et/2-vt)>=0&&wt*(Tt.tickCoord+wt*Et/2-kt)<=0;Lt&&(kt=Tt.tickCoord-wt*(Et/2+at),yt[St]=_objectSpread$6(_objectSpread$6({},Tt),{},{isShow:!0}))}return yt}function getTicksStart(tt,et){var nt=tt.angle,rt=tt.ticks,it=tt.tickFormatter,ot=tt.viewBox,at=tt.orientation,st=tt.minTickGap,lt=tt.unit,ct=tt.fontSize,ut=tt.letterSpacing,ht=ot.x,dt=ot.y,pt=ot.width,mt=ot.height,gt=at==="top"||at==="bottom"?"width":"height",yt=(rt||[]).slice(),bt=lt&>==="width"?getStringSize(lt,{fontSize:ct,letterSpacing:ut}):{width:0,height:0},wt=yt.length,vt=wt>=2?mathSign(yt[1].coordinate-yt[0].coordinate):1,kt,St;if(vt===1?(kt=gt==="width"?ht:dt,St=gt==="width"?ht+pt:dt+mt):(kt=gt==="width"?ht+pt:dt+mt,St=gt==="width"?ht:dt),et){var Tt=rt[wt-1],At=_isFunction$1(it)?it(Tt.value,wt-1):Tt.value,Et=gt==="width"?getAngledTickWidth(getStringSize(At,{fontSize:ct,letterSpacing:ut}),bt,nt):getStringSize(At,{fontSize:ct,letterSpacing:ut})[gt],Mt=vt*(Tt.coordinate+vt*Et/2-St);yt[wt-1]=Tt=_objectSpread$6(_objectSpread$6({},Tt),{},{tickCoord:Mt>0?Tt.coordinate-Mt*vt:Tt.coordinate});var Lt=vt*(Tt.tickCoord-vt*Et/2-kt)>=0&&vt*(Tt.tickCoord+vt*Et/2-St)<=0;Lt&&(St=Tt.tickCoord-vt*(Et/2+st),yt[wt-1]=_objectSpread$6(_objectSpread$6({},Tt),{},{isShow:!0}))}for(var jt=et?wt-1:wt,Rt=0;Rt=0&&vt*($t.tickCoord+vt*It/2-St)<=0;zt&&(kt=$t.tickCoord+vt*(It/2+st),yt[Rt]=_objectSpread$6(_objectSpread$6({},$t),{},{isShow:!0}))}return yt}function getTicks(tt,et,nt){var rt=tt.tick,it=tt.ticks,ot=tt.viewBox,at=tt.minTickGap,st=tt.orientation,lt=tt.interval,ct=tt.tickFormatter,ut=tt.unit,ht=tt.angle;if(!it||!it.length||!rt)return[];if(isNumber(lt)||Global.isSsr)return getNumberIntervalTicks(it,typeof lt=="number"&&isNumber(lt)?lt:0);var dt=[];return lt==="equidistantPreserveStart"?(dt=getTicksStart({angle:ht,ticks:it,tickFormatter:ct,viewBox:ot,orientation:st,minTickGap:at,unit:ut,fontSize:et,letterSpacing:nt}),getEveryNThTick(dt)):(lt==="preserveStart"||lt==="preserveStartEnd"?dt=getTicksStart({angle:ht,ticks:it,tickFormatter:ct,viewBox:ot,orientation:st,minTickGap:at,unit:ut,fontSize:et,letterSpacing:nt},lt==="preserveStartEnd"):dt=getTicksEnd({angle:ht,ticks:it,tickFormatter:ct,viewBox:ot,orientation:st,minTickGap:at,unit:ut,fontSize:et,letterSpacing:nt}),dt.filter(function(pt){return pt.isShow}))}var _excluded$3=["viewBox"],_excluded2$1=["viewBox"],_excluded3=["ticks"];function _typeof$6(tt){"@babel/helpers - typeof";return _typeof$6=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$6(tt)}function _extends$5(){return _extends$5=Object.assign?Object.assign.bind():function(tt){for(var et=1;et=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$3(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _classCallCheck$6(tt,et){if(!(tt instanceof et))throw new TypeError("Cannot call a class as a function")}function _defineProperties$6(tt,et){for(var nt=0;nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$5(tt){return _getPrototypeOf$5=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$5(tt)}function _defineProperty$6(tt,et,nt){return et=_toPropertyKey$5(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$5(tt){var et=_toPrimitive$5(tt,"string");return _typeof$6(et)==="symbol"?et:String(et)}function _toPrimitive$5(tt,et){if(_typeof$6(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$6(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var CartesianAxis=function(tt){_inherits$5(nt,tt);var et=_createSuper$5(nt);function nt(rt){var it;return _classCallCheck$6(this,nt),it=et.call(this,rt),it.state={fontSize:"",letterSpacing:""},it}return _createClass$6(nt,[{key:"shouldComponentUpdate",value:function(it,ot){var at=it.viewBox,st=_objectWithoutProperties$3(it,_excluded$3),lt=this.props,ct=lt.viewBox,ut=_objectWithoutProperties$3(lt,_excluded2$1);return!shallowEqual(at,ct)||!shallowEqual(st,ut)||!shallowEqual(ot,this.state)}},{key:"componentDidMount",value:function(){var it=this.layerReference;if(it){var ot=it.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];ot&&this.setState({fontSize:window.getComputedStyle(ot).fontSize,letterSpacing:window.getComputedStyle(ot).letterSpacing})}}},{key:"getTickLineCoord",value:function(it){var ot=this.props,at=ot.x,st=ot.y,lt=ot.width,ct=ot.height,ut=ot.orientation,ht=ot.tickSize,dt=ot.mirror,pt=ot.tickMargin,mt,gt,yt,bt,wt,vt,kt=dt?-1:1,St=it.tickSize||ht,Tt=isNumber(it.tickCoord)?it.tickCoord:it.coordinate;switch(ut){case"top":mt=gt=it.coordinate,bt=st+ +!dt*ct,yt=bt-kt*St,vt=yt-kt*pt,wt=Tt;break;case"left":yt=bt=it.coordinate,gt=at+ +!dt*lt,mt=gt-kt*St,wt=mt-kt*pt,vt=Tt;break;case"right":yt=bt=it.coordinate,gt=at+ +dt*lt,mt=gt+kt*St,wt=mt+kt*pt,vt=Tt;break;default:mt=gt=it.coordinate,bt=st+ +dt*ct,yt=bt+kt*St,vt=yt+kt*pt,wt=Tt;break}return{line:{x1:mt,y1:yt,x2:gt,y2:bt},tick:{x:wt,y:vt}}}},{key:"getTickTextAnchor",value:function(){var it=this.props,ot=it.orientation,at=it.mirror,st;switch(ot){case"left":st=at?"start":"end";break;case"right":st=at?"end":"start";break;default:st="middle";break}return st}},{key:"getTickVerticalAnchor",value:function(){var it=this.props,ot=it.orientation,at=it.mirror,st="end";switch(ot){case"left":case"right":st="middle";break;case"top":st=at?"start":"end";break;default:st=at?"end":"start";break}return st}},{key:"renderAxisLine",value:function(){var it=this.props,ot=it.x,at=it.y,st=it.width,lt=it.height,ct=it.orientation,ut=it.mirror,ht=it.axisLine,dt=_objectSpread$5(_objectSpread$5(_objectSpread$5({},filterProps(this.props)),filterProps(ht)),{},{fill:"none"});if(ct==="top"||ct==="bottom"){var pt=+(ct==="top"&&!ut||ct==="bottom"&&ut);dt=_objectSpread$5(_objectSpread$5({},dt),{},{x1:ot,y1:at+pt*lt,x2:ot+st,y2:at+pt*lt})}else{var mt=+(ct==="left"&&!ut||ct==="right"&&ut);dt=_objectSpread$5(_objectSpread$5({},dt),{},{x1:ot+mt*st,y1:at,x2:ot+mt*st,y2:at+lt})}return React$1.createElement("line",_extends$5({},dt,{className:classNames("recharts-cartesian-axis-line",_get$1(ht,"className"))}))}},{key:"renderTicks",value:function(it,ot,at){var st=this,lt=this.props,ct=lt.tickLine,ut=lt.stroke,ht=lt.tick,dt=lt.tickFormatter,pt=lt.unit,mt=getTicks(_objectSpread$5(_objectSpread$5({},this.props),{},{ticks:it}),ot,at),gt=this.getTickTextAnchor(),yt=this.getTickVerticalAnchor(),bt=filterProps(this.props),wt=filterProps(ht),vt=_objectSpread$5(_objectSpread$5({},bt),{},{fill:"none"},filterProps(ct)),kt=mt.map(function(St,Tt){var At=st.getTickLineCoord(St),Et=At.line,Mt=At.tick,Lt=_objectSpread$5(_objectSpread$5(_objectSpread$5(_objectSpread$5({textAnchor:gt,verticalAnchor:yt},bt),{},{stroke:"none",fill:ut},wt),Mt),{},{index:Tt,payload:St,visibleTicksCount:mt.length,tickFormatter:dt});return React$1.createElement(Layer,_extends$5({className:"recharts-cartesian-axis-tick",key:"tick-".concat(Tt)},adaptEventsOfChild(st.props,St,Tt)),ct&&React$1.createElement("line",_extends$5({},vt,Et,{className:classNames("recharts-cartesian-axis-tick-line",_get$1(ct,"className"))})),ht&&nt.renderTickItem(ht,Lt,"".concat(_isFunction$1(dt)?dt(St.value,Tt):St.value).concat(pt||"")))});return React$1.createElement("g",{className:"recharts-cartesian-axis-ticks"},kt)}},{key:"render",value:function(){var it=this,ot=this.props,at=ot.axisLine,st=ot.width,lt=ot.height,ct=ot.ticksGenerator,ut=ot.className,ht=ot.hide;if(ht)return null;var dt=this.props,pt=dt.ticks,mt=_objectWithoutProperties$3(dt,_excluded3),gt=pt;return _isFunction$1(ct)&&(gt=pt&&pt.length>0?ct(this.props):ct(mt)),st<=0||lt<=0||!gt||!gt.length?null:React$1.createElement(Layer,{className:classNames("recharts-cartesian-axis",ut),ref:function(bt){it.layerReference=bt}},at&&this.renderAxisLine(),this.renderTicks(gt,this.state.fontSize,this.state.letterSpacing),Label.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(it,ot,at){var st;return React$1.isValidElement(it)?st=React$1.cloneElement(it,ot):_isFunction$1(it)?st=it(ot):st=React$1.createElement(Text,_extends$5({},ot,{className:"recharts-cartesian-axis-tick-value"}),at),st}}]),nt}(reactExports.Component);_defineProperty$6(CartesianAxis,"displayName","CartesianAxis");_defineProperty$6(CartesianAxis,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var _excluded$2=["x1","y1","x2","y2","key"];function _typeof$5(tt){"@babel/helpers - typeof";return _typeof$5=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$5(tt)}function _extends$4(){return _extends$4=Object.assign?Object.assign.bind():function(tt){for(var et=1;et=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$2(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function ownKeys$4(tt,et){var nt=Object.keys(tt);if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(tt);et&&(rt=rt.filter(function(it){return Object.getOwnPropertyDescriptor(tt,it).enumerable})),nt.push.apply(nt,rt)}return nt}function _objectSpread$4(tt){for(var et=1;et"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$4(tt){return _getPrototypeOf$4=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$4(tt)}function _defineProperty$5(tt,et,nt){return et=_toPropertyKey$4(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$4(tt){var et=_toPrimitive$4(tt,"string");return _typeof$5(et)==="symbol"?et:String(et)}function _toPrimitive$4(tt,et){if(_typeof$5(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$5(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var CartesianGrid=function(tt){_inherits$4(nt,tt);var et=_createSuper$4(nt);function nt(){return _classCallCheck$5(this,nt),et.apply(this,arguments)}return _createClass$5(nt,[{key:"renderHorizontal",value:function(it){var ot=this,at=this.props,st=at.x,lt=at.width,ct=at.horizontal;if(!it||!it.length)return null;var ut=it.map(function(ht,dt){var pt=_objectSpread$4(_objectSpread$4({},ot.props),{},{x1:st,y1:ht,x2:st+lt,y2:ht,key:"line-".concat(dt),index:dt});return nt.renderLineItem(ct,pt)});return React$1.createElement("g",{className:"recharts-cartesian-grid-horizontal"},ut)}},{key:"renderVertical",value:function(it){var ot=this,at=this.props,st=at.y,lt=at.height,ct=at.vertical;if(!it||!it.length)return null;var ut=it.map(function(ht,dt){var pt=_objectSpread$4(_objectSpread$4({},ot.props),{},{x1:ht,y1:st,x2:ht,y2:st+lt,key:"line-".concat(dt),index:dt});return nt.renderLineItem(ct,pt)});return React$1.createElement("g",{className:"recharts-cartesian-grid-vertical"},ut)}},{key:"renderVerticalStripes",value:function(it){var ot=this.props.verticalFill;if(!ot||!ot.length)return null;var at=this.props,st=at.fillOpacity,lt=at.x,ct=at.y,ut=at.width,ht=at.height,dt=it.map(function(mt){return Math.round(mt+lt-lt)}).sort(function(mt,gt){return mt-gt});lt!==dt[0]&&dt.unshift(0);var pt=dt.map(function(mt,gt){var yt=!dt[gt+1],bt=yt?lt+ut-mt:dt[gt+1]-mt;if(bt<=0)return null;var wt=gt%ot.length;return React$1.createElement("rect",{key:"react-".concat(gt),x:mt,y:ct,width:bt,height:ht,stroke:"none",fill:ot[wt],fillOpacity:st,className:"recharts-cartesian-grid-bg"})});return React$1.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},pt)}},{key:"renderHorizontalStripes",value:function(it){var ot=this.props.horizontalFill;if(!ot||!ot.length)return null;var at=this.props,st=at.fillOpacity,lt=at.x,ct=at.y,ut=at.width,ht=at.height,dt=it.map(function(mt){return Math.round(mt+ct-ct)}).sort(function(mt,gt){return mt-gt});ct!==dt[0]&&dt.unshift(0);var pt=dt.map(function(mt,gt){var yt=!dt[gt+1],bt=yt?ct+ht-mt:dt[gt+1]-mt;if(bt<=0)return null;var wt=gt%ot.length;return React$1.createElement("rect",{key:"react-".concat(gt),y:mt,x:lt,height:bt,width:ut,stroke:"none",fill:ot[wt],fillOpacity:st,className:"recharts-cartesian-grid-bg"})});return React$1.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},pt)}},{key:"renderBackground",value:function(){var it=this.props.fill;if(!it||it==="none")return null;var ot=this.props,at=ot.fillOpacity,st=ot.x,lt=ot.y,ct=ot.width,ut=ot.height;return React$1.createElement("rect",{x:st,y:lt,width:ct,height:ut,stroke:"none",fill:it,fillOpacity:at,className:"recharts-cartesian-grid-bg"})}},{key:"render",value:function(){var it=this.props,ot=it.x,at=it.y,st=it.width,lt=it.height,ct=it.horizontal,ut=it.vertical,ht=it.horizontalCoordinatesGenerator,dt=it.verticalCoordinatesGenerator,pt=it.xAxis,mt=it.yAxis,gt=it.offset,yt=it.chartWidth,bt=it.chartHeight;if(!isNumber(st)||st<=0||!isNumber(lt)||lt<=0||!isNumber(ot)||ot!==+ot||!isNumber(at)||at!==+at)return null;var wt=this.props,vt=wt.horizontalPoints,kt=wt.verticalPoints;return(!vt||!vt.length)&&_isFunction$1(ht)&&(vt=ht({yAxis:mt,width:yt,height:bt,offset:gt})),(!kt||!kt.length)&&_isFunction$1(dt)&&(kt=dt({xAxis:pt,width:yt,height:bt,offset:gt})),React$1.createElement("g",{className:"recharts-cartesian-grid"},this.renderBackground(),ct&&this.renderHorizontal(vt),ut&&this.renderVertical(kt),ct&&this.renderHorizontalStripes(vt),ut&&this.renderVerticalStripes(kt))}}],[{key:"renderLineItem",value:function(it,ot){var at;if(React$1.isValidElement(it))at=React$1.cloneElement(it,ot);else if(_isFunction$1(it))at=it(ot);else{var st=ot.x1,lt=ot.y1,ct=ot.x2,ut=ot.y2,ht=ot.key,dt=_objectWithoutProperties$2(ot,_excluded$2);at=React$1.createElement("line",_extends$4({},filterProps(dt),{x1:st,y1:lt,x2:ct,y2:ut,fill:"none",key:ht}))}return at}}]),nt}(reactExports.PureComponent);_defineProperty$5(CartesianGrid,"displayName","CartesianGrid");_defineProperty$5(CartesianGrid,"defaultProps",{horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]});var _excluded$1=["type","layout","connectNulls","ref"];function _typeof$4(tt){"@babel/helpers - typeof";return _typeof$4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$4(tt)}function _objectWithoutProperties$1(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$1(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$1(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _extends$3(){return _extends$3=Object.assign?Object.assign.bind():function(tt){for(var et=1;ettt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$3(tt){return _getPrototypeOf$3=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$3(tt)}function _defineProperty$4(tt,et,nt){return et=_toPropertyKey$3(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$3(tt){var et=_toPrimitive$3(tt,"string");return _typeof$4(et)==="symbol"?et:String(et)}function _toPrimitive$3(tt,et){if(_typeof$4(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$4(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var Line=function(tt){_inherits$3(nt,tt);var et=_createSuper$3(nt);function nt(){var rt;_classCallCheck$4(this,nt);for(var it=arguments.length,ot=new Array(it),at=0;atdt){mt=[].concat(_toConsumableArray$3(ct.slice(0,gt)),[dt-yt]);break}var bt=mt.length%2===0?[0,pt]:[pt];return[].concat(_toConsumableArray$3(nt.repeat(ct,ht)),_toConsumableArray$3(mt),bt).map(function(wt){return"".concat(wt,"px")}).join(", ")}),_defineProperty$4(_assertThisInitialized$3(rt),"id",uniqueId("recharts-line-")),_defineProperty$4(_assertThisInitialized$3(rt),"pathRef",function(st){rt.mainCurve=st}),_defineProperty$4(_assertThisInitialized$3(rt),"handleAnimationEnd",function(){rt.setState({isAnimationFinished:!0}),rt.props.onAnimationEnd&&rt.props.onAnimationEnd()}),_defineProperty$4(_assertThisInitialized$3(rt),"handleAnimationStart",function(){rt.setState({isAnimationFinished:!1}),rt.props.onAnimationStart&&rt.props.onAnimationStart()}),rt}return _createClass$4(nt,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var it=this.getTotalLength();this.setState({totalLength:it})}}},{key:"getTotalLength",value:function(){var it=this.mainCurve;try{return it&&it.getTotalLength&&it.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(it,ot){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var at=this.props,st=at.points,lt=at.xAxis,ct=at.yAxis,ut=at.layout,ht=at.children,dt=findAllByType(ht,ErrorBar);if(!dt)return null;var pt=function(yt,bt){return{x:yt.x,y:yt.y,value:yt.value,errorVal:getValueByDataKey(yt.payload,bt)}},mt={clipPath:it?"url(#clipPath-".concat(ot,")"):null};return React$1.createElement(Layer,mt,dt.map(function(gt,yt){return React$1.cloneElement(gt,{key:"bar-".concat(yt),data:st,xAxis:lt,yAxis:ct,layout:ut,dataPointFormatter:pt})}))}},{key:"renderDots",value:function(it,ot,at){var st=this.props.isAnimationActive;if(st&&!this.state.isAnimationFinished)return null;var lt=this.props,ct=lt.dot,ut=lt.points,ht=lt.dataKey,dt=filterProps(this.props),pt=filterProps(ct,!0),mt=ut.map(function(yt,bt){var wt=_objectSpread$3(_objectSpread$3(_objectSpread$3({key:"dot-".concat(bt),r:3},dt),pt),{},{value:yt.value,dataKey:ht,cx:yt.x,cy:yt.y,index:bt,payload:yt.payload});return nt.renderDotItem(ct,wt)}),gt={clipPath:it?"url(#clipPath-".concat(ot?"":"dots-").concat(at,")"):null};return React$1.createElement(Layer,_extends$3({className:"recharts-line-dots",key:"dots"},gt,{role:"img"}),mt)}},{key:"renderCurveStatically",value:function(it,ot,at,st){var lt=this.props,ct=lt.type,ut=lt.layout,ht=lt.connectNulls;lt.ref;var dt=_objectWithoutProperties$1(lt,_excluded$1),pt=_objectSpread$3(_objectSpread$3(_objectSpread$3({},filterProps(dt,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:ot?"url(#clipPath-".concat(at,")"):null,points:it},st),{},{type:ct,layout:ut,connectNulls:ht});return React$1.createElement(Curve,_extends$3({},pt,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(it,ot){var at=this,st=this.props,lt=st.points,ct=st.strokeDasharray,ut=st.isAnimationActive,ht=st.animationBegin,dt=st.animationDuration,pt=st.animationEasing,mt=st.animationId,gt=st.animateNewValues,yt=st.width,bt=st.height,wt=this.state,vt=wt.prevPoints,kt=wt.totalLength;return React$1.createElement(Animate,{begin:ht,duration:dt,isActive:ut,easing:pt,from:{t:0},to:{t:1},key:"line-".concat(mt),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(St){var Tt=St.t;if(vt){var At=vt.length/lt.length,Et=lt.map(function($t,xt){var It=Math.floor(xt*At);if(vt[It]){var Ot=vt[It],zt=interpolateNumber$2(Ot.x,$t.x),Ut=interpolateNumber$2(Ot.y,$t.y);return _objectSpread$3(_objectSpread$3({},$t),{},{x:zt(Tt),y:Ut(Tt)})}if(gt){var Wt=interpolateNumber$2(yt*2,$t.x),Ft=interpolateNumber$2(bt/2,$t.y);return _objectSpread$3(_objectSpread$3({},$t),{},{x:Wt(Tt),y:Ft(Tt)})}return _objectSpread$3(_objectSpread$3({},$t),{},{x:$t.x,y:$t.y})});return at.renderCurveStatically(Et,it,ot)}var Mt=interpolateNumber$2(0,kt),Lt=Mt(Tt),jt;if(ct){var Rt="".concat(ct).split(/[,\s]+/gim).map(function($t){return parseFloat($t)});jt=at.getStrokeDasharray(Lt,kt,Rt)}else jt="".concat(Lt,"px ").concat(kt-Lt,"px");return at.renderCurveStatically(lt,it,ot,{strokeDasharray:jt})})}},{key:"renderCurve",value:function(it,ot){var at=this.props,st=at.points,lt=at.isAnimationActive,ct=this.state,ut=ct.prevPoints,ht=ct.totalLength;return lt&&st&&st.length&&(!ut&&ht>0||!_isEqual(ut,st))?this.renderCurveWithAnimation(it,ot):this.renderCurveStatically(st,it,ot)}},{key:"render",value:function(){var it,ot=this.props,at=ot.hide,st=ot.dot,lt=ot.points,ct=ot.className,ut=ot.xAxis,ht=ot.yAxis,dt=ot.top,pt=ot.left,mt=ot.width,gt=ot.height,yt=ot.isAnimationActive,bt=ot.id;if(at||!lt||!lt.length)return null;var wt=this.state.isAnimationFinished,vt=lt.length===1,kt=classNames("recharts-line",ct),St=ut&&ut.allowDataOverflow,Tt=ht&&ht.allowDataOverflow,At=St||Tt,Et=_isNil(bt)?this.id:bt,Mt=(it=filterProps(st))!==null&&it!==void 0?it:{r:3,strokeWidth:2},Lt=Mt.r,jt=Lt===void 0?3:Lt,Rt=Mt.strokeWidth,$t=Rt===void 0?2:Rt,xt=isDotProps(st)?st:{},It=xt.clipDot,Ot=It===void 0?!0:It,zt=jt*2+$t;return React$1.createElement(Layer,{className:kt},St||Tt?React$1.createElement("defs",null,React$1.createElement("clipPath",{id:"clipPath-".concat(Et)},React$1.createElement("rect",{x:St?pt:pt-mt/2,y:Tt?dt:dt-gt/2,width:St?mt:mt*2,height:Tt?gt:gt*2})),!Ot&&React$1.createElement("clipPath",{id:"clipPath-dots-".concat(Et)},React$1.createElement("rect",{x:pt-zt/2,y:dt-zt/2,width:mt+zt,height:gt+zt}))):null,!vt&&this.renderCurve(At,Et),this.renderErrorBar(At,Et),(vt||st)&&this.renderDots(At,Ot,Et),(!yt||wt)&&LabelList.renderCallByParent(this.props,lt))}}],[{key:"getDerivedStateFromProps",value:function(it,ot){return it.animationId!==ot.prevAnimationId?{prevAnimationId:it.animationId,curPoints:it.points,prevPoints:ot.curPoints}:it.points!==ot.curPoints?{curPoints:it.points}:null}},{key:"repeat",value:function(it,ot){for(var at=it.length%2!==0?[].concat(_toConsumableArray$3(it),[0]):it,st=[],lt=0;lt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$2(tt){return _getPrototypeOf$2=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$2(tt)}function _defineProperty$3(tt,et,nt){return et=_toPropertyKey$2(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$2(tt){var et=_toPrimitive$2(tt,"string");return _typeof$3(et)==="symbol"?et:String(et)}function _toPrimitive$2(tt,et){if(_typeof$3(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$3(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var Scatter=function(tt){_inherits$2(nt,tt);var et=_createSuper$2(nt);function nt(){var rt;_classCallCheck$3(this,nt);for(var it=arguments.length,ot=new Array(it),at=0;at0&&Math.abs(lt)>0){var ct=Math.min(ot,ot+st),ut=Math.max(ot,ot+st),ht=Math.min(at,at+lt),dt=Math.max(at,at+lt);return rt>=ct&&rt<=ut&&it>=ht&&it<=dt}return!1},Rectangle=function(et){var nt=reactExports.useRef(),rt=reactExports.useState(-1),it=_slicedToArray$3(rt,2),ot=it[0],at=it[1];reactExports.useLayoutEffect(function(){if(nt.current&&nt.current.getTotalLength)try{var vt=nt.current.getTotalLength();vt&&at(vt)}catch{}},[]);var st=et.x,lt=et.y,ct=et.width,ut=et.height,ht=et.radius,dt=et.className,pt=et.animationEasing,mt=et.animationDuration,gt=et.animationBegin,yt=et.isAnimationActive,bt=et.isUpdateAnimationActive;if(st!==+st||lt!==+lt||ct!==+ct||ut!==+ut||ct===0||ut===0)return null;var wt=classNames("recharts-rectangle",dt);return bt?React$1.createElement(Animate,{canBegin:ot>0,from:{width:ct,height:ut,x:st,y:lt},to:{width:ct,height:ut,x:st,y:lt},duration:mt,animationEasing:pt,isActive:bt},function(vt){var kt=vt.width,St=vt.height,Et=vt.x,At=vt.y;return React$1.createElement(Animate,{canBegin:ot>0,from:"0px ".concat(ot===-1?1:ot,"px"),to:"".concat(ot,"px 0px"),attributeName:"strokeDasharray",begin:gt,duration:mt,isActive:yt,easing:pt},React$1.createElement("path",_extends$d({},filterProps(et,!0),{className:wt,d:getRectanglePath(Et,At,kt,St,ht),ref:nt})))}):React$1.createElement("path",_extends$d({},filterProps(et,!0),{className:wt,d:getRectanglePath(st,lt,ct,ut,ht)}))};Rectangle.defaultProps={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"};function _extends$c(){return _extends$c=Object.assign?Object.assign.bind():function(tt){for(var et=1;et"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$7(tt){return _getPrototypeOf$7=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$7(tt)}function _defineProperty$d(tt,et,nt){return et=_toPropertyKey$c(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$c(tt){var et=_toPrimitive$c(tt,"string");return _typeof$d(et)==="symbol"?et:String(et)}function _toPrimitive$c(tt,et){if(_typeof$d(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$d(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var createScale=function(et){var nt=et.data,rt=et.startIndex,it=et.endIndex,ot=et.x,at=et.width,st=et.travellerWidth;if(!nt||!nt.length)return{};var lt=nt.length,ct=point().domain(_range(0,lt)).range([ot,ot+at-st]),ut=ct.domain().map(function(ht){return ct(ht)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,startX:ct(rt),endX:ct(it),scale:ct,scaleValues:ut}},isTouch=function(et){return et.changedTouches&&!!et.changedTouches.length},Brush=function(tt){_inherits$7(nt,tt);var et=_createSuper$7(nt);function nt(rt){var it;return _classCallCheck$9(this,nt),it=et.call(this,rt),_defineProperty$d(_assertThisInitialized$7(it),"handleDrag",function(ot){it.leaveTimer&&(clearTimeout(it.leaveTimer),it.leaveTimer=null),it.state.isTravellerMoving?it.handleTravellerMove(ot):it.state.isSlideMoving&&it.handleSlideDrag(ot)}),_defineProperty$d(_assertThisInitialized$7(it),"handleTouchMove",function(ot){ot.changedTouches!=null&&ot.changedTouches.length>0&&it.handleDrag(ot.changedTouches[0])}),_defineProperty$d(_assertThisInitialized$7(it),"handleDragEnd",function(){it.setState({isTravellerMoving:!1,isSlideMoving:!1}),it.detachDragEndListener()}),_defineProperty$d(_assertThisInitialized$7(it),"handleLeaveWrapper",function(){(it.state.isTravellerMoving||it.state.isSlideMoving)&&(it.leaveTimer=window.setTimeout(it.handleDragEnd,it.props.leaveTimeOut))}),_defineProperty$d(_assertThisInitialized$7(it),"handleEnterSlideOrTraveller",function(){it.setState({isTextActive:!0})}),_defineProperty$d(_assertThisInitialized$7(it),"handleLeaveSlideOrTraveller",function(){it.setState({isTextActive:!1})}),_defineProperty$d(_assertThisInitialized$7(it),"handleSlideDragStart",function(ot){var at=isTouch(ot)?ot.changedTouches[0]:ot;it.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:at.pageX}),it.attachDragEndListener()}),it.travellerDragStartHandlers={startX:it.handleTravellerDragStart.bind(_assertThisInitialized$7(it),"startX"),endX:it.handleTravellerDragStart.bind(_assertThisInitialized$7(it),"endX")},it.state={},it}return _createClass$9(nt,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(it){var ot=it.startX,at=it.endX,st=this.state.scaleValues,lt=this.props,ct=lt.gap,ut=lt.data,ht=ut.length-1,dt=Math.min(ot,at),pt=Math.max(ot,at),mt=nt.getIndexInRange(st,dt),gt=nt.getIndexInRange(st,pt);return{startIndex:mt-mt%ct,endIndex:gt===ht?ht:gt-gt%ct}}},{key:"getTextOfTick",value:function(it){var ot=this.props,at=ot.data,st=ot.tickFormatter,lt=ot.dataKey,ct=getValueByDataKey(at[it],lt,it);return _isFunction$1(st)?st(ct,it):ct}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(it){var ot=this.state,at=ot.slideMoveStartX,st=ot.startX,lt=ot.endX,ct=this.props,ut=ct.x,ht=ct.width,dt=ct.travellerWidth,pt=ct.startIndex,mt=ct.endIndex,gt=ct.onChange,yt=it.pageX-at;yt>0?yt=Math.min(yt,ut+ht-dt-lt,ut+ht-dt-st):yt<0&&(yt=Math.max(yt,ut-st,ut-lt));var bt=this.getIndex({startX:st+yt,endX:lt+yt});(bt.startIndex!==pt||bt.endIndex!==mt)&>&>(bt),this.setState({startX:st+yt,endX:lt+yt,slideMoveStartX:it.pageX})}},{key:"handleTravellerDragStart",value:function(it,ot){var at=isTouch(ot)?ot.changedTouches[0]:ot;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:it,brushMoveStartX:at.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(it){var ot,at=this.state,st=at.brushMoveStartX,lt=at.movingTravellerId,ct=at.endX,ut=at.startX,ht=this.state[lt],dt=this.props,pt=dt.x,mt=dt.width,gt=dt.travellerWidth,yt=dt.onChange,bt=dt.gap,wt=dt.data,vt={startX:this.state.startX,endX:this.state.endX},kt=it.pageX-st;kt>0?kt=Math.min(kt,pt+mt-gt-ht):kt<0&&(kt=Math.max(kt,pt-ht)),vt[lt]=ht+kt;var St=this.getIndex(vt),Et=St.startIndex,At=St.endIndex,Tt=function(){var Lt=wt.length-1;return lt==="startX"&&(ct>ut?Et%bt===0:At%bt===0)||ctut?At%bt===0:Et%bt===0)||ct>ut&&At===Lt};this.setState((ot={},_defineProperty$d(ot,lt,ht+kt),_defineProperty$d(ot,"brushMoveStartX",it.pageX),ot),function(){yt&&Tt()&&yt(St)})}},{key:"renderBackground",value:function(){var it=this.props,ot=it.x,at=it.y,st=it.width,lt=it.height,ct=it.fill,ut=it.stroke;return React$1.createElement("rect",{stroke:ut,fill:ct,x:ot,y:at,width:st,height:lt})}},{key:"renderPanorama",value:function(){var it=this.props,ot=it.x,at=it.y,st=it.width,lt=it.height,ct=it.data,ut=it.children,ht=it.padding,dt=reactExports.Children.only(ut);return dt?React$1.cloneElement(dt,{x:ot,y:at,width:st,height:lt,margin:ht,compact:!0,data:ct}):null}},{key:"renderTravellerLayer",value:function(it,ot){var at=this.props,st=at.y,lt=at.travellerWidth,ct=at.height,ut=at.traveller,ht=Math.max(it,this.props.x),dt=_objectSpread$c(_objectSpread$c({},filterProps(this.props)),{},{x:ht,y:st,width:lt,height:ct});return React$1.createElement(Layer,{className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[ot],onTouchStart:this.travellerDragStartHandlers[ot],style:{cursor:"col-resize"}},nt.renderTraveller(ut,dt))}},{key:"renderSlide",value:function(it,ot){var at=this.props,st=at.y,lt=at.height,ct=at.stroke,ut=at.travellerWidth,ht=Math.min(it,ot)+ut,dt=Math.max(Math.abs(ot-it)-ut,0);return React$1.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:ct,fillOpacity:.2,x:ht,y:st,width:dt,height:lt})}},{key:"renderText",value:function(){var it=this.props,ot=it.startIndex,at=it.endIndex,st=it.y,lt=it.height,ct=it.travellerWidth,ut=it.stroke,ht=this.state,dt=ht.startX,pt=ht.endX,mt=5,gt={pointerEvents:"none",fill:ut};return React$1.createElement(Layer,{className:"recharts-brush-texts"},React$1.createElement(Text,_extends$a({textAnchor:"end",verticalAnchor:"middle",x:Math.min(dt,pt)-mt,y:st+lt/2},gt),this.getTextOfTick(ot)),React$1.createElement(Text,_extends$a({textAnchor:"start",verticalAnchor:"middle",x:Math.max(dt,pt)+ct+mt,y:st+lt/2},gt),this.getTextOfTick(at)))}},{key:"render",value:function(){var it=this.props,ot=it.data,at=it.className,st=it.children,lt=it.x,ct=it.y,ut=it.width,ht=it.height,dt=it.alwaysShowText,pt=this.state,mt=pt.startX,gt=pt.endX,yt=pt.isTextActive,bt=pt.isSlideMoving,wt=pt.isTravellerMoving;if(!ot||!ot.length||!isNumber(lt)||!isNumber(ct)||!isNumber(ut)||!isNumber(ht)||ut<=0||ht<=0)return null;var vt=classNames("recharts-brush",at),kt=React$1.Children.count(st)===1,St=generatePrefixStyle("userSelect","none");return React$1.createElement(Layer,{className:vt,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:St},this.renderBackground(),kt&&this.renderPanorama(),this.renderSlide(mt,gt),this.renderTravellerLayer(mt,"startX"),this.renderTravellerLayer(gt,"endX"),(yt||bt||wt||dt)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(it){var ot=it.x,at=it.y,st=it.width,lt=it.height,ct=it.stroke,ut=Math.floor(at+lt/2)-1;return React$1.createElement(React$1.Fragment,null,React$1.createElement("rect",{x:ot,y:at,width:st,height:lt,fill:ct,stroke:"none"}),React$1.createElement("line",{x1:ot+1,y1:ut,x2:ot+st-1,y2:ut,fill:"none",stroke:"#fff"}),React$1.createElement("line",{x1:ot+1,y1:ut+2,x2:ot+st-1,y2:ut+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(it,ot){var at;return React$1.isValidElement(it)?at=React$1.cloneElement(it,ot):_isFunction$1(it)?at=it(ot):at=nt.renderDefaultTraveller(ot),at}},{key:"getDerivedStateFromProps",value:function(it,ot){var at=it.data,st=it.width,lt=it.x,ct=it.travellerWidth,ut=it.updateId,ht=it.startIndex,dt=it.endIndex;if(at!==ot.prevData||ut!==ot.prevUpdateId)return _objectSpread$c({prevData:at,prevTravellerWidth:ct,prevUpdateId:ut,prevX:lt,prevWidth:st},at&&at.length?createScale({data:at,width:st,x:lt,travellerWidth:ct,startIndex:ht,endIndex:dt}):{scale:null,scaleValues:null});if(ot.scale&&(st!==ot.prevWidth||lt!==ot.prevX||ct!==ot.prevTravellerWidth)){ot.scale.range([lt,lt+st-ct]);var pt=ot.scale.domain().map(function(mt){return ot.scale(mt)});return{prevData:at,prevTravellerWidth:ct,prevUpdateId:ut,prevX:lt,prevWidth:st,startX:ot.scale(it.startIndex),endX:ot.scale(it.endIndex),scaleValues:pt}}return null}},{key:"getIndexInRange",value:function(it,ot){for(var at=it.length,st=0,lt=at-1;lt-st>1;){var ct=Math.floor((st+lt)/2);it[ct]>ot?lt=ct:st=ct}return ot>=it[lt]?lt:st}}]),nt}(reactExports.PureComponent);_defineProperty$d(Brush,"displayName","Brush");_defineProperty$d(Brush,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var ifOverflowMatches=function(et,nt){var rt=et.alwaysShow,it=et.ifOverflow;return rt&&(it="extendDomain"),it===nt},baseAssignValue=_baseAssignValue,baseForOwn=_baseForOwn,baseIteratee=_baseIteratee;function mapValues(tt,et){var nt={};return et=baseIteratee(et),baseForOwn(tt,function(rt,it,ot){baseAssignValue(nt,it,et(rt,it,ot))}),nt}var mapValues_1=mapValues;const _mapValues=getDefaultExportFromCjs(mapValues_1);var _excluded$4=["value","background"];function _typeof$c(tt){"@babel/helpers - typeof";return _typeof$c=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$c(tt)}function _objectWithoutProperties$4(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$4(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$4(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _extends$9(){return _extends$9=Object.assign?Object.assign.bind():function(tt){for(var et=1;et"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$6(tt){return _getPrototypeOf$6=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$6(tt)}function _defineProperty$c(tt,et,nt){return et=_toPropertyKey$b(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$b(tt){var et=_toPrimitive$b(tt,"string");return _typeof$c(et)==="symbol"?et:String(et)}function _toPrimitive$b(tt,et){if(_typeof$c(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$c(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var Bar=function(tt){_inherits$6(nt,tt);var et=_createSuper$6(nt);function nt(){var rt;_classCallCheck$8(this,nt);for(var it=arguments.length,ot=new Array(it),at=0;at0&&Math.abs(xt)0&&Math.abs($t)0&&($t=Math.min((Jt||0)-(xt[nn-1]||0),$t))});var It=$t/Rt,Ot=gt.layout==="vertical"?rt.height:rt.width;if(gt.padding==="gap"&&(At=It*Ot/2),gt.padding==="no-gap"){var zt=getPercentValue(et.barCategoryGap,It*Ot),Ut=It*Ot/2;At=Ut-zt-(Ut-zt)/Ot*zt}}it==="xAxis"?Tt=[rt.left+(vt.left||0)+(At||0),rt.left+rt.width-(vt.right||0)-(At||0)]:it==="yAxis"?Tt=lt==="horizontal"?[rt.top+rt.height-(vt.bottom||0),rt.top+(vt.top||0)]:[rt.top+(vt.top||0)+(At||0),rt.top+rt.height-(vt.bottom||0)-(At||0)]:Tt=gt.range,St&&(Tt=[Tt[1],Tt[0]]);var Wt=parseScale(gt,ot,dt),Ft=Wt.scale,Nt=Wt.realScaleType;Ft.domain(bt).range(Tt),checkDomainOfScale(Ft);var Ct=getTicksOfScale(Ft,_objectSpread$a(_objectSpread$a({},gt),{},{realScaleType:Nt}));it==="xAxis"?(jt=yt==="top"&&!kt||yt==="bottom"&&kt,Mt=rt.left,Lt=ht[Et]-jt*gt.height):it==="yAxis"&&(jt=yt==="left"&&!kt||yt==="right"&&kt,Mt=ht[Et]-jt*gt.width,Lt=rt.top);var Ht=_objectSpread$a(_objectSpread$a(_objectSpread$a({},gt),Ct),{},{realScaleType:Nt,x:Mt,y:Lt,scale:Ft,width:it==="xAxis"?rt.width:gt.width,height:it==="yAxis"?rt.height:gt.height});return Ht.bandSize=getBandSizeOfAxis(Ht,Ct),!gt.hide&&it==="xAxis"?ht[Et]+=(jt?-1:1)*Ht.height:gt.hide||(ht[Et]+=(jt?-1:1)*Ht.width),_objectSpread$a(_objectSpread$a({},pt),{},_defineProperty$b({},mt,Ht))},{})},rectWithPoints=function(et,nt){var rt=et.x,it=et.y,ot=nt.x,at=nt.y;return{x:Math.min(rt,ot),y:Math.min(it,at),width:Math.abs(ot-rt),height:Math.abs(at-it)}},rectWithCoords=function(et){var nt=et.x1,rt=et.y1,it=et.x2,ot=et.y2;return rectWithPoints({x:nt,y:rt},{x:it,y:ot})},ScaleHelper=function(){function tt(et){_classCallCheck$7(this,tt),this.scale=et}return _createClass$7(tt,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(nt){var rt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},it=rt.bandAware,ot=rt.position;if(nt!==void 0){if(ot)switch(ot){case"start":return this.scale(nt);case"middle":{var at=this.bandwidth?this.bandwidth()/2:0;return this.scale(nt)+at}case"end":{var st=this.bandwidth?this.bandwidth():0;return this.scale(nt)+st}default:return this.scale(nt)}if(it){var lt=this.bandwidth?this.bandwidth()/2:0;return this.scale(nt)+lt}return this.scale(nt)}}},{key:"isInRange",value:function(nt){var rt=this.range(),it=rt[0],ot=rt[rt.length-1];return it<=ot?nt>=it&&nt<=ot:nt>=ot&&nt<=it}}],[{key:"create",value:function(nt){return new tt(nt)}}]),tt}();_defineProperty$b(ScaleHelper,"EPS",1e-4);var createLabeledScales=function(et){var nt=Object.keys(et).reduce(function(rt,it){return _objectSpread$a(_objectSpread$a({},rt),{},_defineProperty$b({},it,ScaleHelper.create(et[it])))},{});return _objectSpread$a(_objectSpread$a({},nt),{},{apply:function(it){var ot=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},at=ot.bandAware,st=ot.position;return _mapValues(it,function(lt,ct){return nt[ct].apply(lt,{bandAware:at,position:st})})},isInRange:function(it){return _every(it,function(ot,at){return nt[at].isInRange(ot)})}})};function normalizeAngle(tt){return(tt%180+180)%180}var getAngledRectangleWidth=function(et){var nt=et.width,rt=et.height,it=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,ot=normalizeAngle(it),at=ot*Math.PI/180,st=Math.atan(rt/nt),lt=at>st&&attt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=2?mathSign(yt[1].coordinate-yt[0].coordinate):1,vt,kt;wt===1?(vt=mt==="width"?ut:ht,kt=mt==="width"?ut+dt:ht+pt):(vt=mt==="width"?ut+dt:ht+pt,kt=mt==="width"?ut:ht);for(var St=bt-1;St>=0;St--){var Et=yt[St],At=_isFunction$1(rt)?rt(Et.value,bt-St-1):Et.value,Tt=mt==="width"?getAngledTickWidth(getStringSize(At,{fontSize:lt,letterSpacing:ct}),gt,et):getStringSize(At,{fontSize:lt,letterSpacing:ct})[mt];if(St===bt-1){var Mt=wt*(Et.coordinate+wt*Tt/2-kt);yt[St]=Et=_objectSpread$6(_objectSpread$6({},Et),{},{tickCoord:Mt>0?Et.coordinate-Mt*wt:Et.coordinate})}else yt[St]=Et=_objectSpread$6(_objectSpread$6({},Et),{},{tickCoord:Et.coordinate});var Lt=wt*(Et.tickCoord-wt*Tt/2-vt)>=0&&wt*(Et.tickCoord+wt*Tt/2-kt)<=0;Lt&&(kt=Et.tickCoord-wt*(Tt/2+at),yt[St]=_objectSpread$6(_objectSpread$6({},Et),{},{isShow:!0}))}return yt}function getTicksStart(tt,et){var nt=tt.angle,rt=tt.ticks,it=tt.tickFormatter,ot=tt.viewBox,at=tt.orientation,st=tt.minTickGap,lt=tt.unit,ct=tt.fontSize,ut=tt.letterSpacing,ht=ot.x,dt=ot.y,pt=ot.width,mt=ot.height,gt=at==="top"||at==="bottom"?"width":"height",yt=(rt||[]).slice(),bt=lt&>==="width"?getStringSize(lt,{fontSize:ct,letterSpacing:ut}):{width:0,height:0},wt=yt.length,vt=wt>=2?mathSign(yt[1].coordinate-yt[0].coordinate):1,kt,St;if(vt===1?(kt=gt==="width"?ht:dt,St=gt==="width"?ht+pt:dt+mt):(kt=gt==="width"?ht+pt:dt+mt,St=gt==="width"?ht:dt),et){var Et=rt[wt-1],At=_isFunction$1(it)?it(Et.value,wt-1):Et.value,Tt=gt==="width"?getAngledTickWidth(getStringSize(At,{fontSize:ct,letterSpacing:ut}),bt,nt):getStringSize(At,{fontSize:ct,letterSpacing:ut})[gt],Mt=vt*(Et.coordinate+vt*Tt/2-St);yt[wt-1]=Et=_objectSpread$6(_objectSpread$6({},Et),{},{tickCoord:Mt>0?Et.coordinate-Mt*vt:Et.coordinate});var Lt=vt*(Et.tickCoord-vt*Tt/2-kt)>=0&&vt*(Et.tickCoord+vt*Tt/2-St)<=0;Lt&&(St=Et.tickCoord-vt*(Tt/2+st),yt[wt-1]=_objectSpread$6(_objectSpread$6({},Et),{},{isShow:!0}))}for(var jt=et?wt-1:wt,Rt=0;Rt=0&&vt*($t.tickCoord+vt*It/2-St)<=0;zt&&(kt=$t.tickCoord+vt*(It/2+st),yt[Rt]=_objectSpread$6(_objectSpread$6({},$t),{},{isShow:!0}))}return yt}function getTicks(tt,et,nt){var rt=tt.tick,it=tt.ticks,ot=tt.viewBox,at=tt.minTickGap,st=tt.orientation,lt=tt.interval,ct=tt.tickFormatter,ut=tt.unit,ht=tt.angle;if(!it||!it.length||!rt)return[];if(isNumber(lt)||Global.isSsr)return getNumberIntervalTicks(it,typeof lt=="number"&&isNumber(lt)?lt:0);var dt=[];return lt==="equidistantPreserveStart"?(dt=getTicksStart({angle:ht,ticks:it,tickFormatter:ct,viewBox:ot,orientation:st,minTickGap:at,unit:ut,fontSize:et,letterSpacing:nt}),getEveryNThTick(dt)):(lt==="preserveStart"||lt==="preserveStartEnd"?dt=getTicksStart({angle:ht,ticks:it,tickFormatter:ct,viewBox:ot,orientation:st,minTickGap:at,unit:ut,fontSize:et,letterSpacing:nt},lt==="preserveStartEnd"):dt=getTicksEnd({angle:ht,ticks:it,tickFormatter:ct,viewBox:ot,orientation:st,minTickGap:at,unit:ut,fontSize:et,letterSpacing:nt}),dt.filter(function(pt){return pt.isShow}))}var _excluded$3=["viewBox"],_excluded2$1=["viewBox"],_excluded3=["ticks"];function _typeof$6(tt){"@babel/helpers - typeof";return _typeof$6=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$6(tt)}function _extends$5(){return _extends$5=Object.assign?Object.assign.bind():function(tt){for(var et=1;et=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$3(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _classCallCheck$6(tt,et){if(!(tt instanceof et))throw new TypeError("Cannot call a class as a function")}function _defineProperties$6(tt,et){for(var nt=0;nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$5(tt){return _getPrototypeOf$5=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$5(tt)}function _defineProperty$6(tt,et,nt){return et=_toPropertyKey$5(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$5(tt){var et=_toPrimitive$5(tt,"string");return _typeof$6(et)==="symbol"?et:String(et)}function _toPrimitive$5(tt,et){if(_typeof$6(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$6(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var CartesianAxis=function(tt){_inherits$5(nt,tt);var et=_createSuper$5(nt);function nt(rt){var it;return _classCallCheck$6(this,nt),it=et.call(this,rt),it.state={fontSize:"",letterSpacing:""},it}return _createClass$6(nt,[{key:"shouldComponentUpdate",value:function(it,ot){var at=it.viewBox,st=_objectWithoutProperties$3(it,_excluded$3),lt=this.props,ct=lt.viewBox,ut=_objectWithoutProperties$3(lt,_excluded2$1);return!shallowEqual(at,ct)||!shallowEqual(st,ut)||!shallowEqual(ot,this.state)}},{key:"componentDidMount",value:function(){var it=this.layerReference;if(it){var ot=it.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];ot&&this.setState({fontSize:window.getComputedStyle(ot).fontSize,letterSpacing:window.getComputedStyle(ot).letterSpacing})}}},{key:"getTickLineCoord",value:function(it){var ot=this.props,at=ot.x,st=ot.y,lt=ot.width,ct=ot.height,ut=ot.orientation,ht=ot.tickSize,dt=ot.mirror,pt=ot.tickMargin,mt,gt,yt,bt,wt,vt,kt=dt?-1:1,St=it.tickSize||ht,Et=isNumber(it.tickCoord)?it.tickCoord:it.coordinate;switch(ut){case"top":mt=gt=it.coordinate,bt=st+ +!dt*ct,yt=bt-kt*St,vt=yt-kt*pt,wt=Et;break;case"left":yt=bt=it.coordinate,gt=at+ +!dt*lt,mt=gt-kt*St,wt=mt-kt*pt,vt=Et;break;case"right":yt=bt=it.coordinate,gt=at+ +dt*lt,mt=gt+kt*St,wt=mt+kt*pt,vt=Et;break;default:mt=gt=it.coordinate,bt=st+ +dt*ct,yt=bt+kt*St,vt=yt+kt*pt,wt=Et;break}return{line:{x1:mt,y1:yt,x2:gt,y2:bt},tick:{x:wt,y:vt}}}},{key:"getTickTextAnchor",value:function(){var it=this.props,ot=it.orientation,at=it.mirror,st;switch(ot){case"left":st=at?"start":"end";break;case"right":st=at?"end":"start";break;default:st="middle";break}return st}},{key:"getTickVerticalAnchor",value:function(){var it=this.props,ot=it.orientation,at=it.mirror,st="end";switch(ot){case"left":case"right":st="middle";break;case"top":st=at?"start":"end";break;default:st=at?"end":"start";break}return st}},{key:"renderAxisLine",value:function(){var it=this.props,ot=it.x,at=it.y,st=it.width,lt=it.height,ct=it.orientation,ut=it.mirror,ht=it.axisLine,dt=_objectSpread$5(_objectSpread$5(_objectSpread$5({},filterProps(this.props)),filterProps(ht)),{},{fill:"none"});if(ct==="top"||ct==="bottom"){var pt=+(ct==="top"&&!ut||ct==="bottom"&&ut);dt=_objectSpread$5(_objectSpread$5({},dt),{},{x1:ot,y1:at+pt*lt,x2:ot+st,y2:at+pt*lt})}else{var mt=+(ct==="left"&&!ut||ct==="right"&&ut);dt=_objectSpread$5(_objectSpread$5({},dt),{},{x1:ot+mt*st,y1:at,x2:ot+mt*st,y2:at+lt})}return React$1.createElement("line",_extends$5({},dt,{className:classNames("recharts-cartesian-axis-line",_get$1(ht,"className"))}))}},{key:"renderTicks",value:function(it,ot,at){var st=this,lt=this.props,ct=lt.tickLine,ut=lt.stroke,ht=lt.tick,dt=lt.tickFormatter,pt=lt.unit,mt=getTicks(_objectSpread$5(_objectSpread$5({},this.props),{},{ticks:it}),ot,at),gt=this.getTickTextAnchor(),yt=this.getTickVerticalAnchor(),bt=filterProps(this.props),wt=filterProps(ht),vt=_objectSpread$5(_objectSpread$5({},bt),{},{fill:"none"},filterProps(ct)),kt=mt.map(function(St,Et){var At=st.getTickLineCoord(St),Tt=At.line,Mt=At.tick,Lt=_objectSpread$5(_objectSpread$5(_objectSpread$5(_objectSpread$5({textAnchor:gt,verticalAnchor:yt},bt),{},{stroke:"none",fill:ut},wt),Mt),{},{index:Et,payload:St,visibleTicksCount:mt.length,tickFormatter:dt});return React$1.createElement(Layer,_extends$5({className:"recharts-cartesian-axis-tick",key:"tick-".concat(Et)},adaptEventsOfChild(st.props,St,Et)),ct&&React$1.createElement("line",_extends$5({},vt,Tt,{className:classNames("recharts-cartesian-axis-tick-line",_get$1(ct,"className"))})),ht&&nt.renderTickItem(ht,Lt,"".concat(_isFunction$1(dt)?dt(St.value,Et):St.value).concat(pt||"")))});return React$1.createElement("g",{className:"recharts-cartesian-axis-ticks"},kt)}},{key:"render",value:function(){var it=this,ot=this.props,at=ot.axisLine,st=ot.width,lt=ot.height,ct=ot.ticksGenerator,ut=ot.className,ht=ot.hide;if(ht)return null;var dt=this.props,pt=dt.ticks,mt=_objectWithoutProperties$3(dt,_excluded3),gt=pt;return _isFunction$1(ct)&&(gt=pt&&pt.length>0?ct(this.props):ct(mt)),st<=0||lt<=0||!gt||!gt.length?null:React$1.createElement(Layer,{className:classNames("recharts-cartesian-axis",ut),ref:function(bt){it.layerReference=bt}},at&&this.renderAxisLine(),this.renderTicks(gt,this.state.fontSize,this.state.letterSpacing),Label.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(it,ot,at){var st;return React$1.isValidElement(it)?st=React$1.cloneElement(it,ot):_isFunction$1(it)?st=it(ot):st=React$1.createElement(Text,_extends$5({},ot,{className:"recharts-cartesian-axis-tick-value"}),at),st}}]),nt}(reactExports.Component);_defineProperty$6(CartesianAxis,"displayName","CartesianAxis");_defineProperty$6(CartesianAxis,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var _excluded$2=["x1","y1","x2","y2","key"];function _typeof$5(tt){"@babel/helpers - typeof";return _typeof$5=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$5(tt)}function _extends$4(){return _extends$4=Object.assign?Object.assign.bind():function(tt){for(var et=1;et=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$2(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function ownKeys$4(tt,et){var nt=Object.keys(tt);if(Object.getOwnPropertySymbols){var rt=Object.getOwnPropertySymbols(tt);et&&(rt=rt.filter(function(it){return Object.getOwnPropertyDescriptor(tt,it).enumerable})),nt.push.apply(nt,rt)}return nt}function _objectSpread$4(tt){for(var et=1;et"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$4(tt){return _getPrototypeOf$4=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$4(tt)}function _defineProperty$5(tt,et,nt){return et=_toPropertyKey$4(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$4(tt){var et=_toPrimitive$4(tt,"string");return _typeof$5(et)==="symbol"?et:String(et)}function _toPrimitive$4(tt,et){if(_typeof$5(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$5(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var CartesianGrid=function(tt){_inherits$4(nt,tt);var et=_createSuper$4(nt);function nt(){return _classCallCheck$5(this,nt),et.apply(this,arguments)}return _createClass$5(nt,[{key:"renderHorizontal",value:function(it){var ot=this,at=this.props,st=at.x,lt=at.width,ct=at.horizontal;if(!it||!it.length)return null;var ut=it.map(function(ht,dt){var pt=_objectSpread$4(_objectSpread$4({},ot.props),{},{x1:st,y1:ht,x2:st+lt,y2:ht,key:"line-".concat(dt),index:dt});return nt.renderLineItem(ct,pt)});return React$1.createElement("g",{className:"recharts-cartesian-grid-horizontal"},ut)}},{key:"renderVertical",value:function(it){var ot=this,at=this.props,st=at.y,lt=at.height,ct=at.vertical;if(!it||!it.length)return null;var ut=it.map(function(ht,dt){var pt=_objectSpread$4(_objectSpread$4({},ot.props),{},{x1:ht,y1:st,x2:ht,y2:st+lt,key:"line-".concat(dt),index:dt});return nt.renderLineItem(ct,pt)});return React$1.createElement("g",{className:"recharts-cartesian-grid-vertical"},ut)}},{key:"renderVerticalStripes",value:function(it){var ot=this.props.verticalFill;if(!ot||!ot.length)return null;var at=this.props,st=at.fillOpacity,lt=at.x,ct=at.y,ut=at.width,ht=at.height,dt=it.map(function(mt){return Math.round(mt+lt-lt)}).sort(function(mt,gt){return mt-gt});lt!==dt[0]&&dt.unshift(0);var pt=dt.map(function(mt,gt){var yt=!dt[gt+1],bt=yt?lt+ut-mt:dt[gt+1]-mt;if(bt<=0)return null;var wt=gt%ot.length;return React$1.createElement("rect",{key:"react-".concat(gt),x:mt,y:ct,width:bt,height:ht,stroke:"none",fill:ot[wt],fillOpacity:st,className:"recharts-cartesian-grid-bg"})});return React$1.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},pt)}},{key:"renderHorizontalStripes",value:function(it){var ot=this.props.horizontalFill;if(!ot||!ot.length)return null;var at=this.props,st=at.fillOpacity,lt=at.x,ct=at.y,ut=at.width,ht=at.height,dt=it.map(function(mt){return Math.round(mt+ct-ct)}).sort(function(mt,gt){return mt-gt});ct!==dt[0]&&dt.unshift(0);var pt=dt.map(function(mt,gt){var yt=!dt[gt+1],bt=yt?ct+ht-mt:dt[gt+1]-mt;if(bt<=0)return null;var wt=gt%ot.length;return React$1.createElement("rect",{key:"react-".concat(gt),y:mt,x:lt,height:bt,width:ut,stroke:"none",fill:ot[wt],fillOpacity:st,className:"recharts-cartesian-grid-bg"})});return React$1.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},pt)}},{key:"renderBackground",value:function(){var it=this.props.fill;if(!it||it==="none")return null;var ot=this.props,at=ot.fillOpacity,st=ot.x,lt=ot.y,ct=ot.width,ut=ot.height;return React$1.createElement("rect",{x:st,y:lt,width:ct,height:ut,stroke:"none",fill:it,fillOpacity:at,className:"recharts-cartesian-grid-bg"})}},{key:"render",value:function(){var it=this.props,ot=it.x,at=it.y,st=it.width,lt=it.height,ct=it.horizontal,ut=it.vertical,ht=it.horizontalCoordinatesGenerator,dt=it.verticalCoordinatesGenerator,pt=it.xAxis,mt=it.yAxis,gt=it.offset,yt=it.chartWidth,bt=it.chartHeight;if(!isNumber(st)||st<=0||!isNumber(lt)||lt<=0||!isNumber(ot)||ot!==+ot||!isNumber(at)||at!==+at)return null;var wt=this.props,vt=wt.horizontalPoints,kt=wt.verticalPoints;return(!vt||!vt.length)&&_isFunction$1(ht)&&(vt=ht({yAxis:mt,width:yt,height:bt,offset:gt})),(!kt||!kt.length)&&_isFunction$1(dt)&&(kt=dt({xAxis:pt,width:yt,height:bt,offset:gt})),React$1.createElement("g",{className:"recharts-cartesian-grid"},this.renderBackground(),ct&&this.renderHorizontal(vt),ut&&this.renderVertical(kt),ct&&this.renderHorizontalStripes(vt),ut&&this.renderVerticalStripes(kt))}}],[{key:"renderLineItem",value:function(it,ot){var at;if(React$1.isValidElement(it))at=React$1.cloneElement(it,ot);else if(_isFunction$1(it))at=it(ot);else{var st=ot.x1,lt=ot.y1,ct=ot.x2,ut=ot.y2,ht=ot.key,dt=_objectWithoutProperties$2(ot,_excluded$2);at=React$1.createElement("line",_extends$4({},filterProps(dt),{x1:st,y1:lt,x2:ct,y2:ut,fill:"none",key:ht}))}return at}}]),nt}(reactExports.PureComponent);_defineProperty$5(CartesianGrid,"displayName","CartesianGrid");_defineProperty$5(CartesianGrid,"defaultProps",{horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]});var _excluded$1=["type","layout","connectNulls","ref"];function _typeof$4(tt){"@babel/helpers - typeof";return _typeof$4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(et){return typeof et}:function(et){return et&&typeof Symbol=="function"&&et.constructor===Symbol&&et!==Symbol.prototype?"symbol":typeof et},_typeof$4(tt)}function _objectWithoutProperties$1(tt,et){if(tt==null)return{};var nt=_objectWithoutPropertiesLoose$1(tt,et),rt,it;if(Object.getOwnPropertySymbols){var ot=Object.getOwnPropertySymbols(tt);for(it=0;it=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose$1(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _extends$3(){return _extends$3=Object.assign?Object.assign.bind():function(tt){for(var et=1;ettt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$3(tt){return _getPrototypeOf$3=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$3(tt)}function _defineProperty$4(tt,et,nt){return et=_toPropertyKey$3(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$3(tt){var et=_toPrimitive$3(tt,"string");return _typeof$4(et)==="symbol"?et:String(et)}function _toPrimitive$3(tt,et){if(_typeof$4(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$4(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var Line=function(tt){_inherits$3(nt,tt);var et=_createSuper$3(nt);function nt(){var rt;_classCallCheck$4(this,nt);for(var it=arguments.length,ot=new Array(it),at=0;atdt){mt=[].concat(_toConsumableArray$3(ct.slice(0,gt)),[dt-yt]);break}var bt=mt.length%2===0?[0,pt]:[pt];return[].concat(_toConsumableArray$3(nt.repeat(ct,ht)),_toConsumableArray$3(mt),bt).map(function(wt){return"".concat(wt,"px")}).join(", ")}),_defineProperty$4(_assertThisInitialized$3(rt),"id",uniqueId("recharts-line-")),_defineProperty$4(_assertThisInitialized$3(rt),"pathRef",function(st){rt.mainCurve=st}),_defineProperty$4(_assertThisInitialized$3(rt),"handleAnimationEnd",function(){rt.setState({isAnimationFinished:!0}),rt.props.onAnimationEnd&&rt.props.onAnimationEnd()}),_defineProperty$4(_assertThisInitialized$3(rt),"handleAnimationStart",function(){rt.setState({isAnimationFinished:!1}),rt.props.onAnimationStart&&rt.props.onAnimationStart()}),rt}return _createClass$4(nt,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var it=this.getTotalLength();this.setState({totalLength:it})}}},{key:"getTotalLength",value:function(){var it=this.mainCurve;try{return it&&it.getTotalLength&&it.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(it,ot){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var at=this.props,st=at.points,lt=at.xAxis,ct=at.yAxis,ut=at.layout,ht=at.children,dt=findAllByType(ht,ErrorBar);if(!dt)return null;var pt=function(yt,bt){return{x:yt.x,y:yt.y,value:yt.value,errorVal:getValueByDataKey(yt.payload,bt)}},mt={clipPath:it?"url(#clipPath-".concat(ot,")"):null};return React$1.createElement(Layer,mt,dt.map(function(gt,yt){return React$1.cloneElement(gt,{key:"bar-".concat(yt),data:st,xAxis:lt,yAxis:ct,layout:ut,dataPointFormatter:pt})}))}},{key:"renderDots",value:function(it,ot,at){var st=this.props.isAnimationActive;if(st&&!this.state.isAnimationFinished)return null;var lt=this.props,ct=lt.dot,ut=lt.points,ht=lt.dataKey,dt=filterProps(this.props),pt=filterProps(ct,!0),mt=ut.map(function(yt,bt){var wt=_objectSpread$3(_objectSpread$3(_objectSpread$3({key:"dot-".concat(bt),r:3},dt),pt),{},{value:yt.value,dataKey:ht,cx:yt.x,cy:yt.y,index:bt,payload:yt.payload});return nt.renderDotItem(ct,wt)}),gt={clipPath:it?"url(#clipPath-".concat(ot?"":"dots-").concat(at,")"):null};return React$1.createElement(Layer,_extends$3({className:"recharts-line-dots",key:"dots"},gt,{role:"img"}),mt)}},{key:"renderCurveStatically",value:function(it,ot,at,st){var lt=this.props,ct=lt.type,ut=lt.layout,ht=lt.connectNulls;lt.ref;var dt=_objectWithoutProperties$1(lt,_excluded$1),pt=_objectSpread$3(_objectSpread$3(_objectSpread$3({},filterProps(dt,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:ot?"url(#clipPath-".concat(at,")"):null,points:it},st),{},{type:ct,layout:ut,connectNulls:ht});return React$1.createElement(Curve,_extends$3({},pt,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(it,ot){var at=this,st=this.props,lt=st.points,ct=st.strokeDasharray,ut=st.isAnimationActive,ht=st.animationBegin,dt=st.animationDuration,pt=st.animationEasing,mt=st.animationId,gt=st.animateNewValues,yt=st.width,bt=st.height,wt=this.state,vt=wt.prevPoints,kt=wt.totalLength;return React$1.createElement(Animate,{begin:ht,duration:dt,isActive:ut,easing:pt,from:{t:0},to:{t:1},key:"line-".concat(mt),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(St){var Et=St.t;if(vt){var At=vt.length/lt.length,Tt=lt.map(function($t,xt){var It=Math.floor(xt*At);if(vt[It]){var Ot=vt[It],zt=interpolateNumber$2(Ot.x,$t.x),Ut=interpolateNumber$2(Ot.y,$t.y);return _objectSpread$3(_objectSpread$3({},$t),{},{x:zt(Et),y:Ut(Et)})}if(gt){var Wt=interpolateNumber$2(yt*2,$t.x),Ft=interpolateNumber$2(bt/2,$t.y);return _objectSpread$3(_objectSpread$3({},$t),{},{x:Wt(Et),y:Ft(Et)})}return _objectSpread$3(_objectSpread$3({},$t),{},{x:$t.x,y:$t.y})});return at.renderCurveStatically(Tt,it,ot)}var Mt=interpolateNumber$2(0,kt),Lt=Mt(Et),jt;if(ct){var Rt="".concat(ct).split(/[,\s]+/gim).map(function($t){return parseFloat($t)});jt=at.getStrokeDasharray(Lt,kt,Rt)}else jt="".concat(Lt,"px ").concat(kt-Lt,"px");return at.renderCurveStatically(lt,it,ot,{strokeDasharray:jt})})}},{key:"renderCurve",value:function(it,ot){var at=this.props,st=at.points,lt=at.isAnimationActive,ct=this.state,ut=ct.prevPoints,ht=ct.totalLength;return lt&&st&&st.length&&(!ut&&ht>0||!_isEqual(ut,st))?this.renderCurveWithAnimation(it,ot):this.renderCurveStatically(st,it,ot)}},{key:"render",value:function(){var it,ot=this.props,at=ot.hide,st=ot.dot,lt=ot.points,ct=ot.className,ut=ot.xAxis,ht=ot.yAxis,dt=ot.top,pt=ot.left,mt=ot.width,gt=ot.height,yt=ot.isAnimationActive,bt=ot.id;if(at||!lt||!lt.length)return null;var wt=this.state.isAnimationFinished,vt=lt.length===1,kt=classNames("recharts-line",ct),St=ut&&ut.allowDataOverflow,Et=ht&&ht.allowDataOverflow,At=St||Et,Tt=_isNil(bt)?this.id:bt,Mt=(it=filterProps(st))!==null&&it!==void 0?it:{r:3,strokeWidth:2},Lt=Mt.r,jt=Lt===void 0?3:Lt,Rt=Mt.strokeWidth,$t=Rt===void 0?2:Rt,xt=isDotProps(st)?st:{},It=xt.clipDot,Ot=It===void 0?!0:It,zt=jt*2+$t;return React$1.createElement(Layer,{className:kt},St||Et?React$1.createElement("defs",null,React$1.createElement("clipPath",{id:"clipPath-".concat(Tt)},React$1.createElement("rect",{x:St?pt:pt-mt/2,y:Et?dt:dt-gt/2,width:St?mt:mt*2,height:Et?gt:gt*2})),!Ot&&React$1.createElement("clipPath",{id:"clipPath-dots-".concat(Tt)},React$1.createElement("rect",{x:pt-zt/2,y:dt-zt/2,width:mt+zt,height:gt+zt}))):null,!vt&&this.renderCurve(At,Tt),this.renderErrorBar(At,Tt),(vt||st)&&this.renderDots(At,Ot,Tt),(!yt||wt)&&LabelList.renderCallByParent(this.props,lt))}}],[{key:"getDerivedStateFromProps",value:function(it,ot){return it.animationId!==ot.prevAnimationId?{prevAnimationId:it.animationId,curPoints:it.points,prevPoints:ot.curPoints}:it.points!==ot.curPoints?{curPoints:it.points}:null}},{key:"repeat",value:function(it,ot){for(var at=it.length%2!==0?[].concat(_toConsumableArray$3(it),[0]):it,st=[],lt=0;lt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$2(tt){return _getPrototypeOf$2=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$2(tt)}function _defineProperty$3(tt,et,nt){return et=_toPropertyKey$2(et),et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _toPropertyKey$2(tt){var et=_toPrimitive$2(tt,"string");return _typeof$3(et)==="symbol"?et:String(et)}function _toPrimitive$2(tt,et){if(_typeof$3(tt)!=="object"||tt===null)return tt;var nt=tt[Symbol.toPrimitive];if(nt!==void 0){var rt=nt.call(tt,et||"default");if(_typeof$3(rt)!=="object")return rt;throw new TypeError("@@toPrimitive must return a primitive value.")}return(et==="string"?String:Number)(tt)}var Scatter=function(tt){_inherits$2(nt,tt);var et=_createSuper$2(nt);function nt(){var rt;_classCallCheck$3(this,nt);for(var it=arguments.length,ot=new Array(it),at=0;attt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt=0)&&Object.prototype.propertyIsEnumerable.call(tt,rt)&&(nt[rt]=tt[rt])}return nt}function _objectWithoutPropertiesLoose(tt,et){if(tt==null)return{};var nt={},rt=Object.keys(tt),it,ot;for(ot=0;ot=0)&&(nt[it]=tt[it]);return nt}function _classCallCheck$1(tt,et){if(!(tt instanceof et))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1(tt,et){for(var nt=0;nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _getPrototypeOf$1(tt){return _getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf$1(tt)}function _toConsumableArray$1(tt){return _arrayWithoutHoles$1(tt)||_iterableToArray$1(tt)||_unsupportedIterableToArray$3(tt)||_nonIterableSpread$1()}function _nonIterableSpread$1(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$3(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$3(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$3(tt,et)}}function _iterableToArray$1(tt){if(typeof Symbol<"u"&&tt[Symbol.iterator]!=null||tt["@@iterator"]!=null)return Array.from(tt)}function _arrayWithoutHoles$1(tt){if(Array.isArray(tt))return _arrayLikeToArray$3(tt)}function _arrayLikeToArray$3(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt0?st:rt&&rt.props&&rt.props.data&&rt.props.data.length>0?rt.props.data:et&&et.length&&isNumber(ot)&&isNumber(at)?et.slice(ot,at+1):[]};function isDomainSpecifiedByUser(tt,et,nt){if(nt==="number"&&et===!0&&Array.isArray(tt)){var rt=tt==null?void 0:tt[0],it=tt==null?void 0:tt[1];if(rt&&it&&isNumber(rt)&&isNumber(it))return!0}return!1}function getDefaultDomainByAxisType(tt){return tt==="number"?[0,"auto"]:void 0}var getTooltipContent=function(et,nt,rt,it){var ot=et.graphicalItems,at=et.tooltipAxis,st=getDisplayedData(nt,et);return rt<0||!ot||!ot.length||rt>=st.length?null:ot.reduce(function(lt,ct){var ut=ct.props.hide;if(ut)return lt;var ht=ct.props.data,dt;if(at.dataKey&&!at.allowDuplicatedCategory){var pt=ht===void 0?st:ht;dt=findEntryInArray(pt,at.dataKey,it)}else dt=ht&&ht[rt]||st[rt];return dt?[].concat(_toConsumableArray$1(lt),[getTooltipItem(ct,dt)]):lt},[])},getTooltipData=function(et,nt,rt,it){var ot=it||{x:et.chartX,y:et.chartY},at=calculateTooltipPos(ot,rt),st=et.orderedTooltipTicks,lt=et.tooltipAxis,ct=et.tooltipTicks,ut=calculateActiveTickIndex(at,st,ct,lt);if(ut>=0&&ct){var ht=ct[ut]&&ct[ut].value,dt=getTooltipContent(et,nt,ut,ht),pt=getActiveCoordinate(rt,st,ut,ot);return{activeTooltipIndex:ut,activeLabel:ht,activePayload:dt,activeCoordinate:pt}}return null},getAxisMapByAxes=function(et,nt){var rt=nt.axes,it=nt.graphicalItems,ot=nt.axisType,at=nt.axisIdKey,st=nt.stackGroups,lt=nt.dataStartIndex,ct=nt.dataEndIndex,ut=et.layout,ht=et.children,dt=et.stackOffset,pt=isCategoricalAxis(ut,ot),mt=rt.reduce(function(gt,yt){var bt,wt=yt.props,vt=wt.type,kt=wt.dataKey,St=wt.allowDataOverflow,Tt=wt.allowDuplicatedCategory,At=wt.scale,Et=wt.ticks,Mt=wt.includeHidden,Lt=yt.props[at];if(gt[Lt])return gt;var jt=getDisplayedData(et.data,{graphicalItems:it.filter(function(Ht){return Ht.props[at]===Lt}),dataStartIndex:lt,dataEndIndex:ct}),Rt=jt.length,$t,xt,It;isDomainSpecifiedByUser(yt.props.domain,St,vt)&&($t=parseSpecifiedDomain(yt.props.domain,null,St),pt&&(vt==="number"||At!=="auto")&&(It=getDomainOfDataByKey(jt,kt,"category")));var Ot=getDefaultDomainByAxisType(vt);if(!$t||$t.length===0){var zt,Ut=(zt=yt.props.domain)!==null&&zt!==void 0?zt:Ot;if(kt){if($t=getDomainOfDataByKey(jt,kt,vt),vt==="category"&&pt){var Wt=hasDuplicate($t);Tt&&Wt?(xt=$t,$t=_range(0,Rt)):Tt||($t=parseDomainOfCategoryAxis(Ut,$t,yt).reduce(function(Ht,Jt){return Ht.indexOf(Jt)>=0?Ht:[].concat(_toConsumableArray$1(Ht),[Jt])},[]))}else if(vt==="category")Tt?$t=$t.filter(function(Ht){return Ht!==""&&!_isNil(Ht)}):$t=parseDomainOfCategoryAxis(Ut,$t,yt).reduce(function(Ht,Jt){return Ht.indexOf(Jt)>=0||Jt===""||_isNil(Jt)?Ht:[].concat(_toConsumableArray$1(Ht),[Jt])},[]);else if(vt==="number"){var Ft=parseErrorBarsOfAxis(jt,it.filter(function(Ht){return Ht.props[at]===Lt&&(Mt||!Ht.props.hide)}),kt,ot,ut);Ft&&($t=Ft)}pt&&(vt==="number"||At!=="auto")&&(It=getDomainOfDataByKey(jt,kt,"category"))}else pt?$t=_range(0,Rt):st&&st[Lt]&&st[Lt].hasStack&&vt==="number"?$t=dt==="expand"?[0,1]:getDomainOfStackGroups(st[Lt].stackGroups,lt,ct):$t=getDomainOfItemsWithSameAxis(jt,it.filter(function(Ht){return Ht.props[at]===Lt&&(Mt||!Ht.props.hide)}),vt,ut,!0);if(vt==="number")$t=detectReferenceElementsDomain(ht,$t,Lt,ot,Et),Ut&&($t=parseSpecifiedDomain(Ut,$t,St));else if(vt==="category"&&Ut){var Nt=Ut,Ct=$t.every(function(Ht){return Nt.indexOf(Ht)>=0});Ct&&($t=Nt)}}return _objectSpread$1(_objectSpread$1({},gt),{},_defineProperty$1({},Lt,_objectSpread$1(_objectSpread$1({},yt.props),{},{axisType:ot,domain:$t,categoricalDomain:It,duplicateDomain:xt,originalDomain:(bt=yt.props.domain)!==null&&bt!==void 0?bt:Ot,isCategorical:pt,layout:ut})))},{});return mt},getAxisMapByItems=function(et,nt){var rt=nt.graphicalItems,it=nt.Axis,ot=nt.axisType,at=nt.axisIdKey,st=nt.stackGroups,lt=nt.dataStartIndex,ct=nt.dataEndIndex,ut=et.layout,ht=et.children,dt=getDisplayedData(et.data,{graphicalItems:rt,dataStartIndex:lt,dataEndIndex:ct}),pt=dt.length,mt=isCategoricalAxis(ut,ot),gt=-1,yt=rt.reduce(function(bt,wt){var vt=wt.props[at],kt=getDefaultDomainByAxisType("number");if(!bt[vt]){gt++;var St;return mt?St=_range(0,pt):st&&st[vt]&&st[vt].hasStack?(St=getDomainOfStackGroups(st[vt].stackGroups,lt,ct),St=detectReferenceElementsDomain(ht,St,vt,ot)):(St=parseSpecifiedDomain(kt,getDomainOfItemsWithSameAxis(dt,rt.filter(function(Tt){return Tt.props[at]===vt&&!Tt.props.hide}),"number",ut),it.defaultProps.allowDataOverflow),St=detectReferenceElementsDomain(ht,St,vt,ot)),_objectSpread$1(_objectSpread$1({},bt),{},_defineProperty$1({},vt,_objectSpread$1(_objectSpread$1({axisType:ot},it.defaultProps),{},{hide:!0,orientation:_get$1(ORIENT_MAP,"".concat(ot,".").concat(gt%2),null),domain:St,originalDomain:kt,isCategorical:mt,layout:ut})))}return bt},{});return yt},getAxisMap=function(et,nt){var rt=nt.axisType,it=rt===void 0?"xAxis":rt,ot=nt.AxisComp,at=nt.graphicalItems,st=nt.stackGroups,lt=nt.dataStartIndex,ct=nt.dataEndIndex,ut=et.children,ht="".concat(it,"Id"),dt=findAllByType(ut,ot),pt={};return dt&&dt.length?pt=getAxisMapByAxes(et,{axes:dt,graphicalItems:at,axisType:it,axisIdKey:ht,stackGroups:st,dataStartIndex:lt,dataEndIndex:ct}):at&&at.length&&(pt=getAxisMapByItems(et,{Axis:ot,graphicalItems:at,axisType:it,axisIdKey:ht,stackGroups:st,dataStartIndex:lt,dataEndIndex:ct})),pt},tooltipTicksGenerator=function(et){var nt=getAnyElementOfObject(et),rt=getTicksOfAxis(nt,!1,!0);return{tooltipTicks:rt,orderedTooltipTicks:_sortBy(rt,function(it){return it.coordinate}),tooltipAxis:nt,tooltipAxisBandSize:getBandSizeOfAxis(nt,rt)}},createDefaultState=function(et){var nt,rt,it=et.children,ot=et.defaultShowTooltip,at=findChildByType(it,Brush),st=at&&at.props&&at.props.startIndex||0,lt=(at==null||(nt=at.props)===null||nt===void 0?void 0:nt.endIndex)!==void 0?at==null||(rt=at.props)===null||rt===void 0?void 0:rt.endIndex:et.data&&et.data.length-1||0;return{chartX:0,chartY:0,dataStartIndex:st,dataEndIndex:lt,activeTooltipIndex:-1,isTooltipActive:_isNil(ot)?!1:ot}},hasGraphicalBarItem=function(et){return!et||!et.length?!1:et.some(function(nt){var rt=getDisplayName(nt&&nt.type);return rt&&rt.indexOf("Bar")>=0})},getAxisNameByLayout=function(et){return et==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:et==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:et==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},calculateOffset=function(et,nt){var rt=et.props,it=et.graphicalItems,ot=et.xAxisMap,at=ot===void 0?{}:ot,st=et.yAxisMap,lt=st===void 0?{}:st,ct=rt.width,ut=rt.height,ht=rt.children,dt=rt.margin||{},pt=findChildByType(ht,Brush),mt=findChildByType(ht,Legend),gt=Object.keys(lt).reduce(function(vt,kt){var St=lt[kt],Tt=St.orientation;return!St.mirror&&!St.hide?_objectSpread$1(_objectSpread$1({},vt),{},_defineProperty$1({},Tt,vt[Tt]+St.width)):vt},{left:dt.left||0,right:dt.right||0}),yt=Object.keys(at).reduce(function(vt,kt){var St=at[kt],Tt=St.orientation;return!St.mirror&&!St.hide?_objectSpread$1(_objectSpread$1({},vt),{},_defineProperty$1({},Tt,_get$1(vt,"".concat(Tt))+St.height)):vt},{top:dt.top||0,bottom:dt.bottom||0}),bt=_objectSpread$1(_objectSpread$1({},yt),gt),wt=bt.bottom;return pt&&(bt.bottom+=pt.props.height||Brush.defaultProps.height),mt&&nt&&(bt=appendOffsetOfLegend(bt,it,rt,nt)),_objectSpread$1(_objectSpread$1({brushBottom:wt},bt),{},{width:ct-bt.left-bt.right,height:ut-bt.top-bt.bottom})},generateCategoricalChart=function(et){var nt,rt=et.chartName,it=et.GraphicalChild,ot=et.defaultTooltipEventType,at=ot===void 0?"axis":ot,st=et.validateTooltipEventTypes,lt=st===void 0?["axis"]:st,ct=et.axisComponents,ut=et.legendContent,ht=et.formatAxisMap,dt=et.defaultProps,pt=function(yt,bt){var wt=bt.graphicalItems,vt=bt.stackGroups,kt=bt.offset,St=bt.updateId,Tt=bt.dataStartIndex,At=bt.dataEndIndex,Et=yt.barSize,Mt=yt.layout,Lt=yt.barGap,jt=yt.barCategoryGap,Rt=yt.maxBarSize,$t=getAxisNameByLayout(Mt),xt=$t.numericAxisName,It=$t.cateAxisName,Ot=hasGraphicalBarItem(wt),zt=Ot&&getBarSizeList({barSize:Et,stackGroups:vt}),Ut=[];return wt.forEach(function(Wt,Ft){var Nt=getDisplayedData(yt.data,{dataStartIndex:Tt,dataEndIndex:At},Wt),Ct=Wt.props,Ht=Ct.dataKey,Jt=Ct.maxBarSize,nn=Wt.props["".concat(xt,"Id")],Yt=Wt.props["".concat(It,"Id")],fn=ct.reduce(function(Cn,$n){var un,rn=bt["".concat($n.axisType,"Map")],Sn=Wt.props["".concat($n.axisType,"Id")],Mn=rn&&rn[Sn];return _objectSpread$1(_objectSpread$1({},Cn),{},(un={},_defineProperty$1(un,$n.axisType,Mn),_defineProperty$1(un,"".concat($n.axisType,"Ticks"),getTicksOfAxis(Mn)),un))},{}),cn=fn[It],_n=fn["".concat(It,"Ticks")],En=vt&&vt[nn]&&vt[nn].hasStack&&getStackedDataOfItem(Wt,vt[nn].stackGroups),an=getDisplayName(Wt.type).indexOf("Bar")>=0,en=getBandSizeOfAxis(cn,_n),Tn=[];if(an){var Rn,An,yn=_isNil(Jt)?Rt:Jt,kn=(Rn=(An=getBandSizeOfAxis(cn,_n,!0))!==null&&An!==void 0?An:yn)!==null&&Rn!==void 0?Rn:0;Tn=getBarPosition({barGap:Lt,barCategoryGap:jt,bandSize:kn!==en?kn:en,sizeList:zt[Yt],maxBarSize:yn}),kn!==en&&(Tn=Tn.map(function(Cn){return _objectSpread$1(_objectSpread$1({},Cn),{},{position:_objectSpread$1(_objectSpread$1({},Cn.position),{},{offset:Cn.position.offset-kn/2})})}))}var dn=Wt&&Wt.type&&Wt.type.getComposedData;if(dn){var gn;Ut.push({props:_objectSpread$1(_objectSpread$1({},dn(_objectSpread$1(_objectSpread$1({},fn),{},{displayedData:Nt,props:yt,dataKey:Ht,item:Wt,bandSize:en,barPosition:Tn,offset:kt,stackedData:En,layout:Mt,dataStartIndex:Tt,dataEndIndex:At}))),{},(gn={key:Wt.key||"item-".concat(Ft)},_defineProperty$1(gn,xt,fn[xt]),_defineProperty$1(gn,It,fn[It]),_defineProperty$1(gn,"animationId",St),gn)),childIndex:parseChildIndex(Wt,yt.children),item:Wt})}}),Ut},mt=function(yt,bt){var wt=yt.props,vt=yt.dataStartIndex,kt=yt.dataEndIndex,St=yt.updateId;if(!validateWidthHeight({props:wt}))return null;var Tt=wt.children,At=wt.layout,Et=wt.stackOffset,Mt=wt.data,Lt=wt.reverseStackOrder,jt=getAxisNameByLayout(At),Rt=jt.numericAxisName,$t=jt.cateAxisName,xt=findAllByType(Tt,it),It=getStackGroupsByAxisId(Mt,xt,"".concat(Rt,"Id"),"".concat($t,"Id"),Et,Lt),Ot=ct.reduce(function(Nt,Ct){var Ht="".concat(Ct.axisType,"Map");return _objectSpread$1(_objectSpread$1({},Nt),{},_defineProperty$1({},Ht,getAxisMap(wt,_objectSpread$1(_objectSpread$1({},Ct),{},{graphicalItems:xt,stackGroups:Ct.axisType===Rt&&It,dataStartIndex:vt,dataEndIndex:kt}))))},{}),zt=calculateOffset(_objectSpread$1(_objectSpread$1({},Ot),{},{props:wt,graphicalItems:xt}),bt==null?void 0:bt.legendBBox);Object.keys(Ot).forEach(function(Nt){Ot[Nt]=ht(wt,Ot[Nt],zt,Nt.replace("Map",""),rt)});var Ut=Ot["".concat($t,"Map")],Wt=tooltipTicksGenerator(Ut),Ft=pt(wt,_objectSpread$1(_objectSpread$1({},Ot),{},{dataStartIndex:vt,dataEndIndex:kt,updateId:St,graphicalItems:xt,stackGroups:It,offset:zt}));return _objectSpread$1(_objectSpread$1({formattedGraphicalItems:Ft,graphicalItems:xt,offset:zt,stackGroups:It},Wt),Ot)};return nt=function(gt){_inherits$1(bt,gt);var yt=_createSuper$1(bt);function bt(wt){var vt;return _classCallCheck$1(this,bt),vt=yt.call(this,wt),_defineProperty$1(_assertThisInitialized$1(vt),"accessibilityManager",new AccessibilityManager),_defineProperty$1(_assertThisInitialized$1(vt),"clearDeferId",function(){!_isNil(vt.deferId)&&deferClear&&deferClear(vt.deferId),vt.deferId=null}),_defineProperty$1(_assertThisInitialized$1(vt),"handleLegendBBoxUpdate",function(kt){if(kt){var St=vt.state,Tt=St.dataStartIndex,At=St.dataEndIndex,Et=St.updateId;vt.setState(_objectSpread$1({legendBBox:kt},mt({props:vt.props,dataStartIndex:Tt,dataEndIndex:At,updateId:Et},_objectSpread$1(_objectSpread$1({},vt.state),{},{legendBBox:kt}))))}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleReceiveSyncEvent",function(kt,St,Tt){var At=vt.props.syncId;At===kt&&St!==vt.uniqueChartId&&(vt.clearDeferId(),vt.deferId=defer&&defer(vt.applySyncEvent.bind(_assertThisInitialized$1(vt),Tt)))}),_defineProperty$1(_assertThisInitialized$1(vt),"handleBrushChange",function(kt){var St=kt.startIndex,Tt=kt.endIndex;if(St!==vt.state.dataStartIndex||Tt!==vt.state.dataEndIndex){var At=vt.state.updateId;vt.setState(function(){return _objectSpread$1({dataStartIndex:St,dataEndIndex:Tt},mt({props:vt.props,dataStartIndex:St,dataEndIndex:Tt,updateId:At},vt.state))}),vt.triggerSyncEvent({dataStartIndex:St,dataEndIndex:Tt})}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleMouseEnter",function(kt){var St=vt.props.onMouseEnter,Tt=vt.getMouseInfo(kt);if(Tt){var At=_objectSpread$1(_objectSpread$1({},Tt),{},{isTooltipActive:!0});vt.setState(At),vt.triggerSyncEvent(At),_isFunction$1(St)&&St(At,kt)}}),_defineProperty$1(_assertThisInitialized$1(vt),"triggeredAfterMouseMove",function(kt){var St=vt.props.onMouseMove,Tt=vt.getMouseInfo(kt),At=Tt?_objectSpread$1(_objectSpread$1({},Tt),{},{isTooltipActive:!0}):{isTooltipActive:!1};vt.setState(At),vt.triggerSyncEvent(At),_isFunction$1(St)&&St(At,kt)}),_defineProperty$1(_assertThisInitialized$1(vt),"handleItemMouseEnter",function(kt){vt.setState(function(){return{isTooltipActive:!0,activeItem:kt,activePayload:kt.tooltipPayload,activeCoordinate:kt.tooltipPosition||{x:kt.cx,y:kt.cy}}})}),_defineProperty$1(_assertThisInitialized$1(vt),"handleItemMouseLeave",function(){vt.setState(function(){return{isTooltipActive:!1}})}),_defineProperty$1(_assertThisInitialized$1(vt),"handleMouseMove",function(kt){kt&&_isFunction$1(kt.persist)&&kt.persist(),vt.triggeredAfterMouseMove(kt)}),_defineProperty$1(_assertThisInitialized$1(vt),"handleMouseLeave",function(kt){var St=vt.props.onMouseLeave,Tt={isTooltipActive:!1};vt.setState(Tt),vt.triggerSyncEvent(Tt),_isFunction$1(St)&&St(Tt,kt),vt.cancelThrottledTriggerAfterMouseMove()}),_defineProperty$1(_assertThisInitialized$1(vt),"handleOuterEvent",function(kt){var St=getReactEventByType(kt),Tt=_get$1(vt.props,"".concat(St));if(St&&_isFunction$1(Tt)){var At;/.*touch.*/i.test(St)?At=vt.getMouseInfo(kt.changedTouches[0]):At=vt.getMouseInfo(kt);var Et=Tt;Et(At,kt)}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleClick",function(kt){var St=vt.props.onClick,Tt=vt.getMouseInfo(kt);if(Tt){var At=_objectSpread$1(_objectSpread$1({},Tt),{},{isTooltipActive:!0});vt.setState(At),vt.triggerSyncEvent(At),_isFunction$1(St)&&St(At,kt)}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleMouseDown",function(kt){var St=vt.props.onMouseDown;if(_isFunction$1(St)){var Tt=vt.getMouseInfo(kt);St(Tt,kt)}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleMouseUp",function(kt){var St=vt.props.onMouseUp;if(_isFunction$1(St)){var Tt=vt.getMouseInfo(kt);St(Tt,kt)}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleTouchMove",function(kt){kt.changedTouches!=null&&kt.changedTouches.length>0&&vt.handleMouseMove(kt.changedTouches[0])}),_defineProperty$1(_assertThisInitialized$1(vt),"handleTouchStart",function(kt){kt.changedTouches!=null&&kt.changedTouches.length>0&&vt.handleMouseDown(kt.changedTouches[0])}),_defineProperty$1(_assertThisInitialized$1(vt),"handleTouchEnd",function(kt){kt.changedTouches!=null&&kt.changedTouches.length>0&&vt.handleMouseUp(kt.changedTouches[0])}),_defineProperty$1(_assertThisInitialized$1(vt),"verticalCoordinatesGenerator",function(kt){var St=kt.xAxis,Tt=kt.width,At=kt.height,Et=kt.offset;return getCoordinatesOfGrid(getTicks(_objectSpread$1(_objectSpread$1(_objectSpread$1({},CartesianAxis.defaultProps),St),{},{ticks:getTicksOfAxis(St,!0),viewBox:{x:0,y:0,width:Tt,height:At}})),Et.left,Et.left+Et.width)}),_defineProperty$1(_assertThisInitialized$1(vt),"horizontalCoordinatesGenerator",function(kt){var St=kt.yAxis,Tt=kt.width,At=kt.height,Et=kt.offset;return getCoordinatesOfGrid(getTicks(_objectSpread$1(_objectSpread$1(_objectSpread$1({},CartesianAxis.defaultProps),St),{},{ticks:getTicksOfAxis(St,!0),viewBox:{x:0,y:0,width:Tt,height:At}})),Et.top,Et.top+Et.height)}),_defineProperty$1(_assertThisInitialized$1(vt),"axesTicksGenerator",function(kt){return getTicksOfAxis(kt,!0)}),_defineProperty$1(_assertThisInitialized$1(vt),"renderCursor",function(kt){var St=vt.state,Tt=St.isTooltipActive,At=St.activeCoordinate,Et=St.activePayload,Mt=St.offset,Lt=St.activeTooltipIndex,jt=vt.getTooltipEventType();if(!kt||!kt.props.cursor||!Tt||!At||rt!=="ScatterChart"&&jt!=="axis")return null;var Rt=vt.props.layout,$t,xt=Curve;if(rt==="ScatterChart")$t=At,xt=Cross;else if(rt==="BarChart")$t=vt.getCursorRectangle(),xt=Rectangle;else if(Rt==="radial"){var It=vt.getCursorPoints(),Ot=It.cx,zt=It.cy,Ut=It.radius,Wt=It.startAngle,Ft=It.endAngle;$t={cx:Ot,cy:zt,startAngle:Wt,endAngle:Ft,innerRadius:Ut,outerRadius:Ut},xt=Sector}else $t={points:vt.getCursorPoints()},xt=Curve;var Nt=kt.key||"_recharts-cursor",Ct=_objectSpread$1(_objectSpread$1(_objectSpread$1(_objectSpread$1({stroke:"#ccc",pointerEvents:"none"},Mt),$t),filterProps(kt.props.cursor)),{},{payload:Et,payloadIndex:Lt,key:Nt,className:"recharts-tooltip-cursor"});return reactExports.isValidElement(kt.props.cursor)?reactExports.cloneElement(kt.props.cursor,Ct):reactExports.createElement(xt,Ct)}),_defineProperty$1(_assertThisInitialized$1(vt),"renderPolarAxis",function(kt,St,Tt){var At=_get$1(kt,"type.axisType"),Et=_get$1(vt.state,"".concat(At,"Map")),Mt=Et&&Et[kt.props["".concat(At,"Id")]];return reactExports.cloneElement(kt,_objectSpread$1(_objectSpread$1({},Mt),{},{className:At,key:kt.key||"".concat(St,"-").concat(Tt),ticks:getTicksOfAxis(Mt,!0)}))}),_defineProperty$1(_assertThisInitialized$1(vt),"renderXAxis",function(kt,St,Tt){var At=vt.state.xAxisMap,Et=At[kt.props.xAxisId];return vt.renderAxis(Et,kt,St,Tt)}),_defineProperty$1(_assertThisInitialized$1(vt),"renderYAxis",function(kt,St,Tt){var At=vt.state.yAxisMap,Et=At[kt.props.yAxisId];return vt.renderAxis(Et,kt,St,Tt)}),_defineProperty$1(_assertThisInitialized$1(vt),"renderGrid",function(kt){var St=vt.state,Tt=St.xAxisMap,At=St.yAxisMap,Et=St.offset,Mt=vt.props,Lt=Mt.width,jt=Mt.height,Rt=getAnyElementOfObject(Tt),$t=_find(At,function(Ot){return _every(Ot.domain,isFinit)}),xt=$t||getAnyElementOfObject(At),It=kt.props||{};return reactExports.cloneElement(kt,{key:kt.key||"grid",x:isNumber(It.x)?It.x:Et.left,y:isNumber(It.y)?It.y:Et.top,width:isNumber(It.width)?It.width:Et.width,height:isNumber(It.height)?It.height:Et.height,xAxis:Rt,yAxis:xt,offset:Et,chartWidth:Lt,chartHeight:jt,verticalCoordinatesGenerator:It.verticalCoordinatesGenerator||vt.verticalCoordinatesGenerator,horizontalCoordinatesGenerator:It.horizontalCoordinatesGenerator||vt.horizontalCoordinatesGenerator})}),_defineProperty$1(_assertThisInitialized$1(vt),"renderPolarGrid",function(kt){var St=kt.props,Tt=St.radialLines,At=St.polarAngles,Et=St.polarRadius,Mt=vt.state,Lt=Mt.radiusAxisMap,jt=Mt.angleAxisMap,Rt=getAnyElementOfObject(Lt),$t=getAnyElementOfObject(jt),xt=$t.cx,It=$t.cy,Ot=$t.innerRadius,zt=$t.outerRadius;return reactExports.cloneElement(kt,{polarAngles:_isArray$1(At)?At:getTicksOfAxis($t,!0).map(function(Ut){return Ut.coordinate}),polarRadius:_isArray$1(Et)?Et:getTicksOfAxis(Rt,!0).map(function(Ut){return Ut.coordinate}),cx:xt,cy:It,innerRadius:Ot,outerRadius:zt,key:kt.key||"polar-grid",radialLines:Tt})}),_defineProperty$1(_assertThisInitialized$1(vt),"renderLegend",function(){var kt=vt.state.formattedGraphicalItems,St=vt.props,Tt=St.children,At=St.width,Et=St.height,Mt=vt.props.margin||{},Lt=At-(Mt.left||0)-(Mt.right||0),jt=getLegendProps({children:Tt,formattedGraphicalItems:kt,legendWidth:Lt,legendContent:ut});if(!jt)return null;var Rt=jt.item,$t=_objectWithoutProperties(jt,_excluded);return reactExports.cloneElement(Rt,_objectSpread$1(_objectSpread$1({},$t),{},{chartWidth:At,chartHeight:Et,margin:Mt,ref:function(It){vt.legendInstance=It},onBBoxUpdate:vt.handleLegendBBoxUpdate}))}),_defineProperty$1(_assertThisInitialized$1(vt),"renderTooltip",function(){var kt=vt.props.children,St=findChildByType(kt,Tooltip);if(!St)return null;var Tt=vt.state,At=Tt.isTooltipActive,Et=Tt.activeCoordinate,Mt=Tt.activePayload,Lt=Tt.activeLabel,jt=Tt.offset;return reactExports.cloneElement(St,{viewBox:_objectSpread$1(_objectSpread$1({},jt),{},{x:jt.left,y:jt.top}),active:At,label:Lt,payload:At?Mt:[],coordinate:Et})}),_defineProperty$1(_assertThisInitialized$1(vt),"renderBrush",function(kt){var St=vt.props,Tt=St.margin,At=St.data,Et=vt.state,Mt=Et.offset,Lt=Et.dataStartIndex,jt=Et.dataEndIndex,Rt=Et.updateId;return reactExports.cloneElement(kt,{key:kt.key||"_recharts-brush",onChange:combineEventHandlers(vt.handleBrushChange,null,kt.props.onChange),data:At,x:isNumber(kt.props.x)?kt.props.x:Mt.left,y:isNumber(kt.props.y)?kt.props.y:Mt.top+Mt.height+Mt.brushBottom-(Tt.bottom||0),width:isNumber(kt.props.width)?kt.props.width:Mt.width,startIndex:Lt,endIndex:jt,updateId:"brush-".concat(Rt)})}),_defineProperty$1(_assertThisInitialized$1(vt),"renderReferenceElement",function(kt,St,Tt){if(!kt)return null;var At=_assertThisInitialized$1(vt),Et=At.clipPathId,Mt=vt.state,Lt=Mt.xAxisMap,jt=Mt.yAxisMap,Rt=Mt.offset,$t=kt.props,xt=$t.xAxisId,It=$t.yAxisId;return reactExports.cloneElement(kt,{key:kt.key||"".concat(St,"-").concat(Tt),xAxis:Lt[xt],yAxis:jt[It],viewBox:{x:Rt.left,y:Rt.top,width:Rt.width,height:Rt.height},clipPathId:Et})}),_defineProperty$1(_assertThisInitialized$1(vt),"renderActivePoints",function(kt){var St=kt.item,Tt=kt.activePoint,At=kt.basePoint,Et=kt.childIndex,Mt=kt.isRange,Lt=[],jt=St.props.key,Rt=St.item.props,$t=Rt.activeDot,xt=Rt.dataKey,It=_objectSpread$1(_objectSpread$1({index:Et,dataKey:xt,cx:Tt.x,cy:Tt.y,r:4,fill:getMainColorOfGraphicItem(St.item),strokeWidth:2,stroke:"#fff",payload:Tt.payload,value:Tt.value,key:"".concat(jt,"-activePoint-").concat(Et)},filterProps($t)),adaptEventHandlers($t));return Lt.push(bt.renderActiveDot($t,It)),At?Lt.push(bt.renderActiveDot($t,_objectSpread$1(_objectSpread$1({},It),{},{cx:At.x,cy:At.y,key:"".concat(jt,"-basePoint-").concat(Et)}))):Mt&&Lt.push(null),Lt}),_defineProperty$1(_assertThisInitialized$1(vt),"renderGraphicChild",function(kt,St,Tt){var At=vt.filterFormatItem(kt,St,Tt);if(!At)return null;var Et=vt.getTooltipEventType(),Mt=vt.state,Lt=Mt.isTooltipActive,jt=Mt.tooltipAxis,Rt=Mt.activeTooltipIndex,$t=Mt.activeLabel,xt=vt.props.children,It=findChildByType(xt,Tooltip),Ot=At.props,zt=Ot.points,Ut=Ot.isRange,Wt=Ot.baseLine,Ft=At.item.props,Nt=Ft.activeDot,Ct=Ft.hide,Ht=!Ct&&Lt&&It&&Nt&&Rt>=0,Jt={};Et!=="axis"&&It&&It.props.trigger==="click"?Jt={onClick:combineEventHandlers(vt.handleItemMouseEnter,null,kt.props.onCLick)}:Et!=="axis"&&(Jt={onMouseLeave:combineEventHandlers(vt.handleItemMouseLeave,null,kt.props.onMouseLeave),onMouseEnter:combineEventHandlers(vt.handleItemMouseEnter,null,kt.props.onMouseEnter)});var nn=reactExports.cloneElement(kt,_objectSpread$1(_objectSpread$1({},At.props),Jt));function Yt(En){return typeof jt.dataKey=="function"?jt.dataKey(En.payload):null}if(Ht){var fn,cn;if(jt.dataKey&&!jt.allowDuplicatedCategory){var _n=typeof jt.dataKey=="function"?Yt:"payload.".concat(jt.dataKey.toString());fn=findEntryInArray(zt,_n,$t),cn=Ut&&Wt&&findEntryInArray(Wt,_n,$t)}else fn=zt[Rt],cn=Ut&&Wt&&Wt[Rt];if(!_isNil(fn))return[nn].concat(_toConsumableArray$1(vt.renderActivePoints({item:At,activePoint:fn,basePoint:cn,childIndex:Rt,isRange:Ut})))}return Ut?[nn,null,null]:[nn,null]}),_defineProperty$1(_assertThisInitialized$1(vt),"renderCustomized",function(kt,St,Tt){return reactExports.cloneElement(kt,_objectSpread$1(_objectSpread$1({key:"recharts-customized-".concat(Tt)},vt.props),vt.state))}),vt.uniqueChartId=_isNil(wt.id)?uniqueId("recharts"):wt.id,vt.clipPathId="".concat(vt.uniqueChartId,"-clip"),wt.throttleDelay&&(vt.triggeredAfterMouseMove=_throttle(vt.triggeredAfterMouseMove,wt.throttleDelay)),vt.state={},vt}return _createClass$1(bt,[{key:"componentDidMount",value:function(){var vt,kt;_isNil(this.props.syncId)||this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(vt=this.props.margin.left)!==null&&vt!==void 0?vt:0,top:(kt=this.props.margin.top)!==null&&kt!==void 0?kt:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.handleMouseMove,layout:this.props.layout})}},{key:"getSnapshotBeforeUpdate",value:function(vt,kt){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==kt.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==vt.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==vt.margin){var St,Tt;this.accessibilityManager.setDetails({offset:{left:(St=this.props.margin.left)!==null&&St!==void 0?St:0,top:(Tt=this.props.margin.top)!==null&&Tt!==void 0?Tt:0}})}return null}},{key:"componentDidUpdate",value:function(vt){_isNil(vt.syncId)&&!_isNil(this.props.syncId)&&this.addListener(),!_isNil(vt.syncId)&&_isNil(this.props.syncId)&&this.removeListener()}},{key:"componentWillUnmount",value:function(){this.clearDeferId(),_isNil(this.props.syncId)||this.removeListener(),this.cancelThrottledTriggerAfterMouseMove()}},{key:"cancelThrottledTriggerAfterMouseMove",value:function(){typeof this.triggeredAfterMouseMove.cancel=="function"&&this.triggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var vt=findChildByType(this.props.children,Tooltip);if(vt&&_isBoolean(vt.props.shared)){var kt=vt.props.shared?"axis":"item";return lt.indexOf(kt)>=0?kt:at}return at}},{key:"getMouseInfo",value:function(vt){if(!this.container)return null;var kt=getOffset(this.container),St=calculateChartCoordinate(vt,kt),Tt=this.inRange(St.chartX,St.chartY);if(!Tt)return null;var At=this.state,Et=At.xAxisMap,Mt=At.yAxisMap,Lt=this.getTooltipEventType();if(Lt!=="axis"&&Et&&Mt){var jt=getAnyElementOfObject(Et).scale,Rt=getAnyElementOfObject(Mt).scale,$t=jt&&jt.invert?jt.invert(St.chartX):null,xt=Rt&&Rt.invert?Rt.invert(St.chartY):null;return _objectSpread$1(_objectSpread$1({},St),{},{xValue:$t,yValue:xt})}var It=getTooltipData(this.state,this.props.data,this.props.layout,Tt);return It?_objectSpread$1(_objectSpread$1({},St),It):null}},{key:"getCursorRectangle",value:function(){var vt=this.props.layout,kt=this.state,St=kt.activeCoordinate,Tt=kt.offset,At=kt.tooltipAxisBandSize,Et=At/2;return{stroke:"none",fill:"#ccc",x:vt==="horizontal"?St.x-Et:Tt.left+.5,y:vt==="horizontal"?Tt.top+.5:St.y-Et,width:vt==="horizontal"?At:Tt.width-1,height:vt==="horizontal"?Tt.height-1:At}}},{key:"getCursorPoints",value:function(){var vt=this.props.layout,kt=this.state,St=kt.activeCoordinate,Tt=kt.offset,At,Et,Mt,Lt;if(vt==="horizontal")At=St.x,Mt=At,Et=Tt.top,Lt=Tt.top+Tt.height;else if(vt==="vertical")Et=St.y,Lt=Et,At=Tt.left,Mt=Tt.left+Tt.width;else if(!_isNil(St.cx)||!_isNil(St.cy))if(vt==="centric"){var jt=St.cx,Rt=St.cy,$t=St.innerRadius,xt=St.outerRadius,It=St.angle,Ot=polarToCartesian(jt,Rt,$t,It),zt=polarToCartesian(jt,Rt,xt,It);At=Ot.x,Et=Ot.y,Mt=zt.x,Lt=zt.y}else{var Ut=St.cx,Wt=St.cy,Ft=St.radius,Nt=St.startAngle,Ct=St.endAngle,Ht=polarToCartesian(Ut,Wt,Ft,Nt),Jt=polarToCartesian(Ut,Wt,Ft,Ct);return{points:[Ht,Jt],cx:Ut,cy:Wt,radius:Ft,startAngle:Nt,endAngle:Ct}}return[{x:At,y:Et},{x:Mt,y:Lt}]}},{key:"inRange",value:function(vt,kt){var St=this.props.layout;if(St==="horizontal"||St==="vertical"){var Tt=this.state.offset,At=vt>=Tt.left&&vt<=Tt.left+Tt.width&&kt>=Tt.top&&kt<=Tt.top+Tt.height;return At?{x:vt,y:kt}:null}var Et=this.state,Mt=Et.angleAxisMap,Lt=Et.radiusAxisMap;if(Mt&&Lt){var jt=getAnyElementOfObject(Mt);return inRangeOfSector({x:vt,y:kt},jt)}return null}},{key:"parseEventsOfWrapper",value:function(){var vt=this.props.children,kt=this.getTooltipEventType(),St=findChildByType(vt,Tooltip),Tt={};St&&kt==="axis"&&(St.props.trigger==="click"?Tt={onClick:this.handleClick}:Tt={onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd});var At=adaptEventHandlers(this.props,this.handleOuterEvent);return _objectSpread$1(_objectSpread$1({},At),Tt)}},{key:"addListener",value:function(){eventCenter.on(SYNC_EVENT,this.handleReceiveSyncEvent),eventCenter.setMaxListeners&&eventCenter._maxListeners&&eventCenter.setMaxListeners(eventCenter._maxListeners+1)}},{key:"removeListener",value:function(){eventCenter.removeListener(SYNC_EVENT,this.handleReceiveSyncEvent),eventCenter.setMaxListeners&&eventCenter._maxListeners&&eventCenter.setMaxListeners(eventCenter._maxListeners-1)}},{key:"triggerSyncEvent",value:function(vt){var kt=this.props.syncId;_isNil(kt)||eventCenter.emit(SYNC_EVENT,kt,this.uniqueChartId,vt)}},{key:"applySyncEvent",value:function(vt){var kt=this.props,St=kt.layout,Tt=kt.syncMethod,At=this.state.updateId,Et=vt.dataStartIndex,Mt=vt.dataEndIndex;if(!_isNil(vt.dataStartIndex)||!_isNil(vt.dataEndIndex))this.setState(_objectSpread$1({dataStartIndex:Et,dataEndIndex:Mt},mt({props:this.props,dataStartIndex:Et,dataEndIndex:Mt,updateId:At},this.state)));else if(_isNil(vt.activeTooltipIndex))this.setState(vt);else{var Lt=vt.chartX,jt=vt.chartY,Rt=vt.activeTooltipIndex,$t=this.state,xt=$t.offset,It=$t.tooltipTicks;if(!xt)return;if(typeof Tt=="function")Rt=Tt(It,vt);else if(Tt==="value"){Rt=-1;for(var Ot=0;OtjsxRuntimeExports.jsx(Dot,{cx:tt,cy:et,fill:colors.blueTextAccent,r:2}),SentimentChart=({data:tt,width:et=500,height:nt=300})=>jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(tt==null?void 0:tt.length)&&jsxRuntimeExports.jsxs(LineChart,{data:tt,height:nt,id:"cy-sentiment-chart",margin:{bottom:5,left:-20,right:30,top:5},width:et,children:[jsxRuntimeExports.jsx(CartesianGrid,{stroke:colors.lightBlue300,strokeDasharray:"5 5"}),jsxRuntimeExports.jsx(XAxis,{dataKey:"date",interval:Math.floor(tt.length/3),stroke:colors.blueTextAccent}),jsxRuntimeExports.jsx(YAxis,{domain:[0,10],stroke:colors.blueTextAccent}),jsxRuntimeExports.jsx(Tooltip,{}),jsxRuntimeExports.jsx(Line,{dataKey:"score",dot:jsxRuntimeExports.jsx(RenderDot$1,{}),stroke:"#8884d8",type:"monotone"})]})}),SentimentAnalysis=reactExports.memo(()=>{const tt=useAppStore(pt=>pt.currentSearch),[et,nt]=reactExports.useState(void 0),rt=hooks().startOf("day"),it=hooks().subtract(1,"year"),ot=3600*24,[at,st]=reactExports.useState(hooks().startOf("day").subtract(20,"day")),lt=(Math.round((rt.unix()-at.unix())/ot)+1)*50,[ct,ut]=reactExports.useState(!1),ht=async()=>{tt&&(ut(!0),await executeIfProd(()=>distExports$2.enable()),getSentimentData({topic:tt,cutoff_date:String(at.unix())}).then(pt=>{console.log(pt==null?void 0:pt.data),nt(pt==null?void 0:pt.data.filter(mt=>mt.date).map(mt=>({date:hooks.unix(Number(String(mt.date).split(".")[0])).format("MM/DD/YY"),score:mt.sentiment_score})))}).catch(console.error).finally(()=>{ut(!1)}))},dt=reactExports.useRef(null);return jsxRuntimeExports.jsxs(Stack$5,{component:"div",flexGrow:1,p:1,spacing:2,width:"100%",children:[ct&&jsxRuntimeExports.jsx(Stack$5,{alignItems:"center",component:"div",flexGrow:1,p:4,spacing:2,width:"100%",children:jsxRuntimeExports.jsx(PropagateLoader,{color:colors.white})}),!ct&&jsxRuntimeExports.jsxs(ChartWrapper$1,{ref:dt,children:[jsxRuntimeExports.jsx(SentimentChart,{data:et,height:280,width:352}),Array.isArray(et)&&!ct&&!et.length&&jsxRuntimeExports.jsx(Text$3,{children:"No data for this period"})]}),jsxRuntimeExports.jsx(DatePicker,{format:"L",label:"From",maxDate:rt,minDate:it,onChange:pt=>st(pt??hooks()),sx:{background:colors.inputBg1,color:"text.primary"},value:at}),jsxRuntimeExports.jsx(Slider$1,{component:"div",getAriaValueText:pt=>hooks(pt).format("L"),id:"cy-sentiment-analysis-slider",marks:!0,max:rt.unix(),min:it.unix(),onChange:(pt,mt)=>{st(hooks.unix(mt))},step:ot,value:at.unix(),valueLabelDisplay:"auto",valueLabelFormat:pt=>hooks.unix(pt).format("L")}),jsxRuntimeExports.jsxs(StyledButton$1,{className:"button",id:"cy-get-sentiment-analysis-btn",onClick:ht,children:["Create a chart for ",lt.toFixed()," SATS"]})]})}),ChartWrapper$1=styled$4.div` +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$3(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$3(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$3(tt,et)}}function _iterableToArray$1(tt){if(typeof Symbol<"u"&&tt[Symbol.iterator]!=null||tt["@@iterator"]!=null)return Array.from(tt)}function _arrayWithoutHoles$1(tt){if(Array.isArray(tt))return _arrayLikeToArray$3(tt)}function _arrayLikeToArray$3(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt0?st:rt&&rt.props&&rt.props.data&&rt.props.data.length>0?rt.props.data:et&&et.length&&isNumber(ot)&&isNumber(at)?et.slice(ot,at+1):[]};function isDomainSpecifiedByUser(tt,et,nt){if(nt==="number"&&et===!0&&Array.isArray(tt)){var rt=tt==null?void 0:tt[0],it=tt==null?void 0:tt[1];if(rt&&it&&isNumber(rt)&&isNumber(it))return!0}return!1}function getDefaultDomainByAxisType(tt){return tt==="number"?[0,"auto"]:void 0}var getTooltipContent=function(et,nt,rt,it){var ot=et.graphicalItems,at=et.tooltipAxis,st=getDisplayedData(nt,et);return rt<0||!ot||!ot.length||rt>=st.length?null:ot.reduce(function(lt,ct){var ut=ct.props.hide;if(ut)return lt;var ht=ct.props.data,dt;if(at.dataKey&&!at.allowDuplicatedCategory){var pt=ht===void 0?st:ht;dt=findEntryInArray(pt,at.dataKey,it)}else dt=ht&&ht[rt]||st[rt];return dt?[].concat(_toConsumableArray$1(lt),[getTooltipItem(ct,dt)]):lt},[])},getTooltipData=function(et,nt,rt,it){var ot=it||{x:et.chartX,y:et.chartY},at=calculateTooltipPos(ot,rt),st=et.orderedTooltipTicks,lt=et.tooltipAxis,ct=et.tooltipTicks,ut=calculateActiveTickIndex(at,st,ct,lt);if(ut>=0&&ct){var ht=ct[ut]&&ct[ut].value,dt=getTooltipContent(et,nt,ut,ht),pt=getActiveCoordinate(rt,st,ut,ot);return{activeTooltipIndex:ut,activeLabel:ht,activePayload:dt,activeCoordinate:pt}}return null},getAxisMapByAxes=function(et,nt){var rt=nt.axes,it=nt.graphicalItems,ot=nt.axisType,at=nt.axisIdKey,st=nt.stackGroups,lt=nt.dataStartIndex,ct=nt.dataEndIndex,ut=et.layout,ht=et.children,dt=et.stackOffset,pt=isCategoricalAxis(ut,ot),mt=rt.reduce(function(gt,yt){var bt,wt=yt.props,vt=wt.type,kt=wt.dataKey,St=wt.allowDataOverflow,Et=wt.allowDuplicatedCategory,At=wt.scale,Tt=wt.ticks,Mt=wt.includeHidden,Lt=yt.props[at];if(gt[Lt])return gt;var jt=getDisplayedData(et.data,{graphicalItems:it.filter(function(Ht){return Ht.props[at]===Lt}),dataStartIndex:lt,dataEndIndex:ct}),Rt=jt.length,$t,xt,It;isDomainSpecifiedByUser(yt.props.domain,St,vt)&&($t=parseSpecifiedDomain(yt.props.domain,null,St),pt&&(vt==="number"||At!=="auto")&&(It=getDomainOfDataByKey(jt,kt,"category")));var Ot=getDefaultDomainByAxisType(vt);if(!$t||$t.length===0){var zt,Ut=(zt=yt.props.domain)!==null&&zt!==void 0?zt:Ot;if(kt){if($t=getDomainOfDataByKey(jt,kt,vt),vt==="category"&&pt){var Wt=hasDuplicate($t);Et&&Wt?(xt=$t,$t=_range(0,Rt)):Et||($t=parseDomainOfCategoryAxis(Ut,$t,yt).reduce(function(Ht,Jt){return Ht.indexOf(Jt)>=0?Ht:[].concat(_toConsumableArray$1(Ht),[Jt])},[]))}else if(vt==="category")Et?$t=$t.filter(function(Ht){return Ht!==""&&!_isNil(Ht)}):$t=parseDomainOfCategoryAxis(Ut,$t,yt).reduce(function(Ht,Jt){return Ht.indexOf(Jt)>=0||Jt===""||_isNil(Jt)?Ht:[].concat(_toConsumableArray$1(Ht),[Jt])},[]);else if(vt==="number"){var Ft=parseErrorBarsOfAxis(jt,it.filter(function(Ht){return Ht.props[at]===Lt&&(Mt||!Ht.props.hide)}),kt,ot,ut);Ft&&($t=Ft)}pt&&(vt==="number"||At!=="auto")&&(It=getDomainOfDataByKey(jt,kt,"category"))}else pt?$t=_range(0,Rt):st&&st[Lt]&&st[Lt].hasStack&&vt==="number"?$t=dt==="expand"?[0,1]:getDomainOfStackGroups(st[Lt].stackGroups,lt,ct):$t=getDomainOfItemsWithSameAxis(jt,it.filter(function(Ht){return Ht.props[at]===Lt&&(Mt||!Ht.props.hide)}),vt,ut,!0);if(vt==="number")$t=detectReferenceElementsDomain(ht,$t,Lt,ot,Tt),Ut&&($t=parseSpecifiedDomain(Ut,$t,St));else if(vt==="category"&&Ut){var Nt=Ut,Ct=$t.every(function(Ht){return Nt.indexOf(Ht)>=0});Ct&&($t=Nt)}}return _objectSpread$1(_objectSpread$1({},gt),{},_defineProperty$1({},Lt,_objectSpread$1(_objectSpread$1({},yt.props),{},{axisType:ot,domain:$t,categoricalDomain:It,duplicateDomain:xt,originalDomain:(bt=yt.props.domain)!==null&&bt!==void 0?bt:Ot,isCategorical:pt,layout:ut})))},{});return mt},getAxisMapByItems=function(et,nt){var rt=nt.graphicalItems,it=nt.Axis,ot=nt.axisType,at=nt.axisIdKey,st=nt.stackGroups,lt=nt.dataStartIndex,ct=nt.dataEndIndex,ut=et.layout,ht=et.children,dt=getDisplayedData(et.data,{graphicalItems:rt,dataStartIndex:lt,dataEndIndex:ct}),pt=dt.length,mt=isCategoricalAxis(ut,ot),gt=-1,yt=rt.reduce(function(bt,wt){var vt=wt.props[at],kt=getDefaultDomainByAxisType("number");if(!bt[vt]){gt++;var St;return mt?St=_range(0,pt):st&&st[vt]&&st[vt].hasStack?(St=getDomainOfStackGroups(st[vt].stackGroups,lt,ct),St=detectReferenceElementsDomain(ht,St,vt,ot)):(St=parseSpecifiedDomain(kt,getDomainOfItemsWithSameAxis(dt,rt.filter(function(Et){return Et.props[at]===vt&&!Et.props.hide}),"number",ut),it.defaultProps.allowDataOverflow),St=detectReferenceElementsDomain(ht,St,vt,ot)),_objectSpread$1(_objectSpread$1({},bt),{},_defineProperty$1({},vt,_objectSpread$1(_objectSpread$1({axisType:ot},it.defaultProps),{},{hide:!0,orientation:_get$1(ORIENT_MAP,"".concat(ot,".").concat(gt%2),null),domain:St,originalDomain:kt,isCategorical:mt,layout:ut})))}return bt},{});return yt},getAxisMap=function(et,nt){var rt=nt.axisType,it=rt===void 0?"xAxis":rt,ot=nt.AxisComp,at=nt.graphicalItems,st=nt.stackGroups,lt=nt.dataStartIndex,ct=nt.dataEndIndex,ut=et.children,ht="".concat(it,"Id"),dt=findAllByType(ut,ot),pt={};return dt&&dt.length?pt=getAxisMapByAxes(et,{axes:dt,graphicalItems:at,axisType:it,axisIdKey:ht,stackGroups:st,dataStartIndex:lt,dataEndIndex:ct}):at&&at.length&&(pt=getAxisMapByItems(et,{Axis:ot,graphicalItems:at,axisType:it,axisIdKey:ht,stackGroups:st,dataStartIndex:lt,dataEndIndex:ct})),pt},tooltipTicksGenerator=function(et){var nt=getAnyElementOfObject(et),rt=getTicksOfAxis(nt,!1,!0);return{tooltipTicks:rt,orderedTooltipTicks:_sortBy(rt,function(it){return it.coordinate}),tooltipAxis:nt,tooltipAxisBandSize:getBandSizeOfAxis(nt,rt)}},createDefaultState=function(et){var nt,rt,it=et.children,ot=et.defaultShowTooltip,at=findChildByType(it,Brush),st=at&&at.props&&at.props.startIndex||0,lt=(at==null||(nt=at.props)===null||nt===void 0?void 0:nt.endIndex)!==void 0?at==null||(rt=at.props)===null||rt===void 0?void 0:rt.endIndex:et.data&&et.data.length-1||0;return{chartX:0,chartY:0,dataStartIndex:st,dataEndIndex:lt,activeTooltipIndex:-1,isTooltipActive:_isNil(ot)?!1:ot}},hasGraphicalBarItem=function(et){return!et||!et.length?!1:et.some(function(nt){var rt=getDisplayName(nt&&nt.type);return rt&&rt.indexOf("Bar")>=0})},getAxisNameByLayout=function(et){return et==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:et==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:et==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},calculateOffset=function(et,nt){var rt=et.props,it=et.graphicalItems,ot=et.xAxisMap,at=ot===void 0?{}:ot,st=et.yAxisMap,lt=st===void 0?{}:st,ct=rt.width,ut=rt.height,ht=rt.children,dt=rt.margin||{},pt=findChildByType(ht,Brush),mt=findChildByType(ht,Legend),gt=Object.keys(lt).reduce(function(vt,kt){var St=lt[kt],Et=St.orientation;return!St.mirror&&!St.hide?_objectSpread$1(_objectSpread$1({},vt),{},_defineProperty$1({},Et,vt[Et]+St.width)):vt},{left:dt.left||0,right:dt.right||0}),yt=Object.keys(at).reduce(function(vt,kt){var St=at[kt],Et=St.orientation;return!St.mirror&&!St.hide?_objectSpread$1(_objectSpread$1({},vt),{},_defineProperty$1({},Et,_get$1(vt,"".concat(Et))+St.height)):vt},{top:dt.top||0,bottom:dt.bottom||0}),bt=_objectSpread$1(_objectSpread$1({},yt),gt),wt=bt.bottom;return pt&&(bt.bottom+=pt.props.height||Brush.defaultProps.height),mt&&nt&&(bt=appendOffsetOfLegend(bt,it,rt,nt)),_objectSpread$1(_objectSpread$1({brushBottom:wt},bt),{},{width:ct-bt.left-bt.right,height:ut-bt.top-bt.bottom})},generateCategoricalChart=function(et){var nt,rt=et.chartName,it=et.GraphicalChild,ot=et.defaultTooltipEventType,at=ot===void 0?"axis":ot,st=et.validateTooltipEventTypes,lt=st===void 0?["axis"]:st,ct=et.axisComponents,ut=et.legendContent,ht=et.formatAxisMap,dt=et.defaultProps,pt=function(yt,bt){var wt=bt.graphicalItems,vt=bt.stackGroups,kt=bt.offset,St=bt.updateId,Et=bt.dataStartIndex,At=bt.dataEndIndex,Tt=yt.barSize,Mt=yt.layout,Lt=yt.barGap,jt=yt.barCategoryGap,Rt=yt.maxBarSize,$t=getAxisNameByLayout(Mt),xt=$t.numericAxisName,It=$t.cateAxisName,Ot=hasGraphicalBarItem(wt),zt=Ot&&getBarSizeList({barSize:Tt,stackGroups:vt}),Ut=[];return wt.forEach(function(Wt,Ft){var Nt=getDisplayedData(yt.data,{dataStartIndex:Et,dataEndIndex:At},Wt),Ct=Wt.props,Ht=Ct.dataKey,Jt=Ct.maxBarSize,nn=Wt.props["".concat(xt,"Id")],Yt=Wt.props["".concat(It,"Id")],fn=ct.reduce(function(Cn,$n){var un,rn=bt["".concat($n.axisType,"Map")],Sn=Wt.props["".concat($n.axisType,"Id")],Mn=rn&&rn[Sn];return _objectSpread$1(_objectSpread$1({},Cn),{},(un={},_defineProperty$1(un,$n.axisType,Mn),_defineProperty$1(un,"".concat($n.axisType,"Ticks"),getTicksOfAxis(Mn)),un))},{}),cn=fn[It],_n=fn["".concat(It,"Ticks")],En=vt&&vt[nn]&&vt[nn].hasStack&&getStackedDataOfItem(Wt,vt[nn].stackGroups),an=getDisplayName(Wt.type).indexOf("Bar")>=0,en=getBandSizeOfAxis(cn,_n),Tn=[];if(an){var Rn,An,yn=_isNil(Jt)?Rt:Jt,kn=(Rn=(An=getBandSizeOfAxis(cn,_n,!0))!==null&&An!==void 0?An:yn)!==null&&Rn!==void 0?Rn:0;Tn=getBarPosition({barGap:Lt,barCategoryGap:jt,bandSize:kn!==en?kn:en,sizeList:zt[Yt],maxBarSize:yn}),kn!==en&&(Tn=Tn.map(function(Cn){return _objectSpread$1(_objectSpread$1({},Cn),{},{position:_objectSpread$1(_objectSpread$1({},Cn.position),{},{offset:Cn.position.offset-kn/2})})}))}var dn=Wt&&Wt.type&&Wt.type.getComposedData;if(dn){var gn;Ut.push({props:_objectSpread$1(_objectSpread$1({},dn(_objectSpread$1(_objectSpread$1({},fn),{},{displayedData:Nt,props:yt,dataKey:Ht,item:Wt,bandSize:en,barPosition:Tn,offset:kt,stackedData:En,layout:Mt,dataStartIndex:Et,dataEndIndex:At}))),{},(gn={key:Wt.key||"item-".concat(Ft)},_defineProperty$1(gn,xt,fn[xt]),_defineProperty$1(gn,It,fn[It]),_defineProperty$1(gn,"animationId",St),gn)),childIndex:parseChildIndex(Wt,yt.children),item:Wt})}}),Ut},mt=function(yt,bt){var wt=yt.props,vt=yt.dataStartIndex,kt=yt.dataEndIndex,St=yt.updateId;if(!validateWidthHeight({props:wt}))return null;var Et=wt.children,At=wt.layout,Tt=wt.stackOffset,Mt=wt.data,Lt=wt.reverseStackOrder,jt=getAxisNameByLayout(At),Rt=jt.numericAxisName,$t=jt.cateAxisName,xt=findAllByType(Et,it),It=getStackGroupsByAxisId(Mt,xt,"".concat(Rt,"Id"),"".concat($t,"Id"),Tt,Lt),Ot=ct.reduce(function(Nt,Ct){var Ht="".concat(Ct.axisType,"Map");return _objectSpread$1(_objectSpread$1({},Nt),{},_defineProperty$1({},Ht,getAxisMap(wt,_objectSpread$1(_objectSpread$1({},Ct),{},{graphicalItems:xt,stackGroups:Ct.axisType===Rt&&It,dataStartIndex:vt,dataEndIndex:kt}))))},{}),zt=calculateOffset(_objectSpread$1(_objectSpread$1({},Ot),{},{props:wt,graphicalItems:xt}),bt==null?void 0:bt.legendBBox);Object.keys(Ot).forEach(function(Nt){Ot[Nt]=ht(wt,Ot[Nt],zt,Nt.replace("Map",""),rt)});var Ut=Ot["".concat($t,"Map")],Wt=tooltipTicksGenerator(Ut),Ft=pt(wt,_objectSpread$1(_objectSpread$1({},Ot),{},{dataStartIndex:vt,dataEndIndex:kt,updateId:St,graphicalItems:xt,stackGroups:It,offset:zt}));return _objectSpread$1(_objectSpread$1({formattedGraphicalItems:Ft,graphicalItems:xt,offset:zt,stackGroups:It},Wt),Ot)};return nt=function(gt){_inherits$1(bt,gt);var yt=_createSuper$1(bt);function bt(wt){var vt;return _classCallCheck$1(this,bt),vt=yt.call(this,wt),_defineProperty$1(_assertThisInitialized$1(vt),"accessibilityManager",new AccessibilityManager),_defineProperty$1(_assertThisInitialized$1(vt),"clearDeferId",function(){!_isNil(vt.deferId)&&deferClear&&deferClear(vt.deferId),vt.deferId=null}),_defineProperty$1(_assertThisInitialized$1(vt),"handleLegendBBoxUpdate",function(kt){if(kt){var St=vt.state,Et=St.dataStartIndex,At=St.dataEndIndex,Tt=St.updateId;vt.setState(_objectSpread$1({legendBBox:kt},mt({props:vt.props,dataStartIndex:Et,dataEndIndex:At,updateId:Tt},_objectSpread$1(_objectSpread$1({},vt.state),{},{legendBBox:kt}))))}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleReceiveSyncEvent",function(kt,St,Et){var At=vt.props.syncId;At===kt&&St!==vt.uniqueChartId&&(vt.clearDeferId(),vt.deferId=defer&&defer(vt.applySyncEvent.bind(_assertThisInitialized$1(vt),Et)))}),_defineProperty$1(_assertThisInitialized$1(vt),"handleBrushChange",function(kt){var St=kt.startIndex,Et=kt.endIndex;if(St!==vt.state.dataStartIndex||Et!==vt.state.dataEndIndex){var At=vt.state.updateId;vt.setState(function(){return _objectSpread$1({dataStartIndex:St,dataEndIndex:Et},mt({props:vt.props,dataStartIndex:St,dataEndIndex:Et,updateId:At},vt.state))}),vt.triggerSyncEvent({dataStartIndex:St,dataEndIndex:Et})}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleMouseEnter",function(kt){var St=vt.props.onMouseEnter,Et=vt.getMouseInfo(kt);if(Et){var At=_objectSpread$1(_objectSpread$1({},Et),{},{isTooltipActive:!0});vt.setState(At),vt.triggerSyncEvent(At),_isFunction$1(St)&&St(At,kt)}}),_defineProperty$1(_assertThisInitialized$1(vt),"triggeredAfterMouseMove",function(kt){var St=vt.props.onMouseMove,Et=vt.getMouseInfo(kt),At=Et?_objectSpread$1(_objectSpread$1({},Et),{},{isTooltipActive:!0}):{isTooltipActive:!1};vt.setState(At),vt.triggerSyncEvent(At),_isFunction$1(St)&&St(At,kt)}),_defineProperty$1(_assertThisInitialized$1(vt),"handleItemMouseEnter",function(kt){vt.setState(function(){return{isTooltipActive:!0,activeItem:kt,activePayload:kt.tooltipPayload,activeCoordinate:kt.tooltipPosition||{x:kt.cx,y:kt.cy}}})}),_defineProperty$1(_assertThisInitialized$1(vt),"handleItemMouseLeave",function(){vt.setState(function(){return{isTooltipActive:!1}})}),_defineProperty$1(_assertThisInitialized$1(vt),"handleMouseMove",function(kt){kt&&_isFunction$1(kt.persist)&&kt.persist(),vt.triggeredAfterMouseMove(kt)}),_defineProperty$1(_assertThisInitialized$1(vt),"handleMouseLeave",function(kt){var St=vt.props.onMouseLeave,Et={isTooltipActive:!1};vt.setState(Et),vt.triggerSyncEvent(Et),_isFunction$1(St)&&St(Et,kt),vt.cancelThrottledTriggerAfterMouseMove()}),_defineProperty$1(_assertThisInitialized$1(vt),"handleOuterEvent",function(kt){var St=getReactEventByType(kt),Et=_get$1(vt.props,"".concat(St));if(St&&_isFunction$1(Et)){var At;/.*touch.*/i.test(St)?At=vt.getMouseInfo(kt.changedTouches[0]):At=vt.getMouseInfo(kt);var Tt=Et;Tt(At,kt)}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleClick",function(kt){var St=vt.props.onClick,Et=vt.getMouseInfo(kt);if(Et){var At=_objectSpread$1(_objectSpread$1({},Et),{},{isTooltipActive:!0});vt.setState(At),vt.triggerSyncEvent(At),_isFunction$1(St)&&St(At,kt)}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleMouseDown",function(kt){var St=vt.props.onMouseDown;if(_isFunction$1(St)){var Et=vt.getMouseInfo(kt);St(Et,kt)}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleMouseUp",function(kt){var St=vt.props.onMouseUp;if(_isFunction$1(St)){var Et=vt.getMouseInfo(kt);St(Et,kt)}}),_defineProperty$1(_assertThisInitialized$1(vt),"handleTouchMove",function(kt){kt.changedTouches!=null&&kt.changedTouches.length>0&&vt.handleMouseMove(kt.changedTouches[0])}),_defineProperty$1(_assertThisInitialized$1(vt),"handleTouchStart",function(kt){kt.changedTouches!=null&&kt.changedTouches.length>0&&vt.handleMouseDown(kt.changedTouches[0])}),_defineProperty$1(_assertThisInitialized$1(vt),"handleTouchEnd",function(kt){kt.changedTouches!=null&&kt.changedTouches.length>0&&vt.handleMouseUp(kt.changedTouches[0])}),_defineProperty$1(_assertThisInitialized$1(vt),"verticalCoordinatesGenerator",function(kt){var St=kt.xAxis,Et=kt.width,At=kt.height,Tt=kt.offset;return getCoordinatesOfGrid(getTicks(_objectSpread$1(_objectSpread$1(_objectSpread$1({},CartesianAxis.defaultProps),St),{},{ticks:getTicksOfAxis(St,!0),viewBox:{x:0,y:0,width:Et,height:At}})),Tt.left,Tt.left+Tt.width)}),_defineProperty$1(_assertThisInitialized$1(vt),"horizontalCoordinatesGenerator",function(kt){var St=kt.yAxis,Et=kt.width,At=kt.height,Tt=kt.offset;return getCoordinatesOfGrid(getTicks(_objectSpread$1(_objectSpread$1(_objectSpread$1({},CartesianAxis.defaultProps),St),{},{ticks:getTicksOfAxis(St,!0),viewBox:{x:0,y:0,width:Et,height:At}})),Tt.top,Tt.top+Tt.height)}),_defineProperty$1(_assertThisInitialized$1(vt),"axesTicksGenerator",function(kt){return getTicksOfAxis(kt,!0)}),_defineProperty$1(_assertThisInitialized$1(vt),"renderCursor",function(kt){var St=vt.state,Et=St.isTooltipActive,At=St.activeCoordinate,Tt=St.activePayload,Mt=St.offset,Lt=St.activeTooltipIndex,jt=vt.getTooltipEventType();if(!kt||!kt.props.cursor||!Et||!At||rt!=="ScatterChart"&&jt!=="axis")return null;var Rt=vt.props.layout,$t,xt=Curve;if(rt==="ScatterChart")$t=At,xt=Cross;else if(rt==="BarChart")$t=vt.getCursorRectangle(),xt=Rectangle;else if(Rt==="radial"){var It=vt.getCursorPoints(),Ot=It.cx,zt=It.cy,Ut=It.radius,Wt=It.startAngle,Ft=It.endAngle;$t={cx:Ot,cy:zt,startAngle:Wt,endAngle:Ft,innerRadius:Ut,outerRadius:Ut},xt=Sector}else $t={points:vt.getCursorPoints()},xt=Curve;var Nt=kt.key||"_recharts-cursor",Ct=_objectSpread$1(_objectSpread$1(_objectSpread$1(_objectSpread$1({stroke:"#ccc",pointerEvents:"none"},Mt),$t),filterProps(kt.props.cursor)),{},{payload:Tt,payloadIndex:Lt,key:Nt,className:"recharts-tooltip-cursor"});return reactExports.isValidElement(kt.props.cursor)?reactExports.cloneElement(kt.props.cursor,Ct):reactExports.createElement(xt,Ct)}),_defineProperty$1(_assertThisInitialized$1(vt),"renderPolarAxis",function(kt,St,Et){var At=_get$1(kt,"type.axisType"),Tt=_get$1(vt.state,"".concat(At,"Map")),Mt=Tt&&Tt[kt.props["".concat(At,"Id")]];return reactExports.cloneElement(kt,_objectSpread$1(_objectSpread$1({},Mt),{},{className:At,key:kt.key||"".concat(St,"-").concat(Et),ticks:getTicksOfAxis(Mt,!0)}))}),_defineProperty$1(_assertThisInitialized$1(vt),"renderXAxis",function(kt,St,Et){var At=vt.state.xAxisMap,Tt=At[kt.props.xAxisId];return vt.renderAxis(Tt,kt,St,Et)}),_defineProperty$1(_assertThisInitialized$1(vt),"renderYAxis",function(kt,St,Et){var At=vt.state.yAxisMap,Tt=At[kt.props.yAxisId];return vt.renderAxis(Tt,kt,St,Et)}),_defineProperty$1(_assertThisInitialized$1(vt),"renderGrid",function(kt){var St=vt.state,Et=St.xAxisMap,At=St.yAxisMap,Tt=St.offset,Mt=vt.props,Lt=Mt.width,jt=Mt.height,Rt=getAnyElementOfObject(Et),$t=_find(At,function(Ot){return _every(Ot.domain,isFinit)}),xt=$t||getAnyElementOfObject(At),It=kt.props||{};return reactExports.cloneElement(kt,{key:kt.key||"grid",x:isNumber(It.x)?It.x:Tt.left,y:isNumber(It.y)?It.y:Tt.top,width:isNumber(It.width)?It.width:Tt.width,height:isNumber(It.height)?It.height:Tt.height,xAxis:Rt,yAxis:xt,offset:Tt,chartWidth:Lt,chartHeight:jt,verticalCoordinatesGenerator:It.verticalCoordinatesGenerator||vt.verticalCoordinatesGenerator,horizontalCoordinatesGenerator:It.horizontalCoordinatesGenerator||vt.horizontalCoordinatesGenerator})}),_defineProperty$1(_assertThisInitialized$1(vt),"renderPolarGrid",function(kt){var St=kt.props,Et=St.radialLines,At=St.polarAngles,Tt=St.polarRadius,Mt=vt.state,Lt=Mt.radiusAxisMap,jt=Mt.angleAxisMap,Rt=getAnyElementOfObject(Lt),$t=getAnyElementOfObject(jt),xt=$t.cx,It=$t.cy,Ot=$t.innerRadius,zt=$t.outerRadius;return reactExports.cloneElement(kt,{polarAngles:_isArray$1(At)?At:getTicksOfAxis($t,!0).map(function(Ut){return Ut.coordinate}),polarRadius:_isArray$1(Tt)?Tt:getTicksOfAxis(Rt,!0).map(function(Ut){return Ut.coordinate}),cx:xt,cy:It,innerRadius:Ot,outerRadius:zt,key:kt.key||"polar-grid",radialLines:Et})}),_defineProperty$1(_assertThisInitialized$1(vt),"renderLegend",function(){var kt=vt.state.formattedGraphicalItems,St=vt.props,Et=St.children,At=St.width,Tt=St.height,Mt=vt.props.margin||{},Lt=At-(Mt.left||0)-(Mt.right||0),jt=getLegendProps({children:Et,formattedGraphicalItems:kt,legendWidth:Lt,legendContent:ut});if(!jt)return null;var Rt=jt.item,$t=_objectWithoutProperties(jt,_excluded);return reactExports.cloneElement(Rt,_objectSpread$1(_objectSpread$1({},$t),{},{chartWidth:At,chartHeight:Tt,margin:Mt,ref:function(It){vt.legendInstance=It},onBBoxUpdate:vt.handleLegendBBoxUpdate}))}),_defineProperty$1(_assertThisInitialized$1(vt),"renderTooltip",function(){var kt=vt.props.children,St=findChildByType(kt,Tooltip);if(!St)return null;var Et=vt.state,At=Et.isTooltipActive,Tt=Et.activeCoordinate,Mt=Et.activePayload,Lt=Et.activeLabel,jt=Et.offset;return reactExports.cloneElement(St,{viewBox:_objectSpread$1(_objectSpread$1({},jt),{},{x:jt.left,y:jt.top}),active:At,label:Lt,payload:At?Mt:[],coordinate:Tt})}),_defineProperty$1(_assertThisInitialized$1(vt),"renderBrush",function(kt){var St=vt.props,Et=St.margin,At=St.data,Tt=vt.state,Mt=Tt.offset,Lt=Tt.dataStartIndex,jt=Tt.dataEndIndex,Rt=Tt.updateId;return reactExports.cloneElement(kt,{key:kt.key||"_recharts-brush",onChange:combineEventHandlers(vt.handleBrushChange,null,kt.props.onChange),data:At,x:isNumber(kt.props.x)?kt.props.x:Mt.left,y:isNumber(kt.props.y)?kt.props.y:Mt.top+Mt.height+Mt.brushBottom-(Et.bottom||0),width:isNumber(kt.props.width)?kt.props.width:Mt.width,startIndex:Lt,endIndex:jt,updateId:"brush-".concat(Rt)})}),_defineProperty$1(_assertThisInitialized$1(vt),"renderReferenceElement",function(kt,St,Et){if(!kt)return null;var At=_assertThisInitialized$1(vt),Tt=At.clipPathId,Mt=vt.state,Lt=Mt.xAxisMap,jt=Mt.yAxisMap,Rt=Mt.offset,$t=kt.props,xt=$t.xAxisId,It=$t.yAxisId;return reactExports.cloneElement(kt,{key:kt.key||"".concat(St,"-").concat(Et),xAxis:Lt[xt],yAxis:jt[It],viewBox:{x:Rt.left,y:Rt.top,width:Rt.width,height:Rt.height},clipPathId:Tt})}),_defineProperty$1(_assertThisInitialized$1(vt),"renderActivePoints",function(kt){var St=kt.item,Et=kt.activePoint,At=kt.basePoint,Tt=kt.childIndex,Mt=kt.isRange,Lt=[],jt=St.props.key,Rt=St.item.props,$t=Rt.activeDot,xt=Rt.dataKey,It=_objectSpread$1(_objectSpread$1({index:Tt,dataKey:xt,cx:Et.x,cy:Et.y,r:4,fill:getMainColorOfGraphicItem(St.item),strokeWidth:2,stroke:"#fff",payload:Et.payload,value:Et.value,key:"".concat(jt,"-activePoint-").concat(Tt)},filterProps($t)),adaptEventHandlers($t));return Lt.push(bt.renderActiveDot($t,It)),At?Lt.push(bt.renderActiveDot($t,_objectSpread$1(_objectSpread$1({},It),{},{cx:At.x,cy:At.y,key:"".concat(jt,"-basePoint-").concat(Tt)}))):Mt&&Lt.push(null),Lt}),_defineProperty$1(_assertThisInitialized$1(vt),"renderGraphicChild",function(kt,St,Et){var At=vt.filterFormatItem(kt,St,Et);if(!At)return null;var Tt=vt.getTooltipEventType(),Mt=vt.state,Lt=Mt.isTooltipActive,jt=Mt.tooltipAxis,Rt=Mt.activeTooltipIndex,$t=Mt.activeLabel,xt=vt.props.children,It=findChildByType(xt,Tooltip),Ot=At.props,zt=Ot.points,Ut=Ot.isRange,Wt=Ot.baseLine,Ft=At.item.props,Nt=Ft.activeDot,Ct=Ft.hide,Ht=!Ct&&Lt&&It&&Nt&&Rt>=0,Jt={};Tt!=="axis"&&It&&It.props.trigger==="click"?Jt={onClick:combineEventHandlers(vt.handleItemMouseEnter,null,kt.props.onCLick)}:Tt!=="axis"&&(Jt={onMouseLeave:combineEventHandlers(vt.handleItemMouseLeave,null,kt.props.onMouseLeave),onMouseEnter:combineEventHandlers(vt.handleItemMouseEnter,null,kt.props.onMouseEnter)});var nn=reactExports.cloneElement(kt,_objectSpread$1(_objectSpread$1({},At.props),Jt));function Yt(En){return typeof jt.dataKey=="function"?jt.dataKey(En.payload):null}if(Ht){var fn,cn;if(jt.dataKey&&!jt.allowDuplicatedCategory){var _n=typeof jt.dataKey=="function"?Yt:"payload.".concat(jt.dataKey.toString());fn=findEntryInArray(zt,_n,$t),cn=Ut&&Wt&&findEntryInArray(Wt,_n,$t)}else fn=zt[Rt],cn=Ut&&Wt&&Wt[Rt];if(!_isNil(fn))return[nn].concat(_toConsumableArray$1(vt.renderActivePoints({item:At,activePoint:fn,basePoint:cn,childIndex:Rt,isRange:Ut})))}return Ut?[nn,null,null]:[nn,null]}),_defineProperty$1(_assertThisInitialized$1(vt),"renderCustomized",function(kt,St,Et){return reactExports.cloneElement(kt,_objectSpread$1(_objectSpread$1({key:"recharts-customized-".concat(Et)},vt.props),vt.state))}),vt.uniqueChartId=_isNil(wt.id)?uniqueId("recharts"):wt.id,vt.clipPathId="".concat(vt.uniqueChartId,"-clip"),wt.throttleDelay&&(vt.triggeredAfterMouseMove=_throttle(vt.triggeredAfterMouseMove,wt.throttleDelay)),vt.state={},vt}return _createClass$1(bt,[{key:"componentDidMount",value:function(){var vt,kt;_isNil(this.props.syncId)||this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(vt=this.props.margin.left)!==null&&vt!==void 0?vt:0,top:(kt=this.props.margin.top)!==null&&kt!==void 0?kt:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.handleMouseMove,layout:this.props.layout})}},{key:"getSnapshotBeforeUpdate",value:function(vt,kt){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==kt.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==vt.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==vt.margin){var St,Et;this.accessibilityManager.setDetails({offset:{left:(St=this.props.margin.left)!==null&&St!==void 0?St:0,top:(Et=this.props.margin.top)!==null&&Et!==void 0?Et:0}})}return null}},{key:"componentDidUpdate",value:function(vt){_isNil(vt.syncId)&&!_isNil(this.props.syncId)&&this.addListener(),!_isNil(vt.syncId)&&_isNil(this.props.syncId)&&this.removeListener()}},{key:"componentWillUnmount",value:function(){this.clearDeferId(),_isNil(this.props.syncId)||this.removeListener(),this.cancelThrottledTriggerAfterMouseMove()}},{key:"cancelThrottledTriggerAfterMouseMove",value:function(){typeof this.triggeredAfterMouseMove.cancel=="function"&&this.triggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var vt=findChildByType(this.props.children,Tooltip);if(vt&&_isBoolean(vt.props.shared)){var kt=vt.props.shared?"axis":"item";return lt.indexOf(kt)>=0?kt:at}return at}},{key:"getMouseInfo",value:function(vt){if(!this.container)return null;var kt=getOffset(this.container),St=calculateChartCoordinate(vt,kt),Et=this.inRange(St.chartX,St.chartY);if(!Et)return null;var At=this.state,Tt=At.xAxisMap,Mt=At.yAxisMap,Lt=this.getTooltipEventType();if(Lt!=="axis"&&Tt&&Mt){var jt=getAnyElementOfObject(Tt).scale,Rt=getAnyElementOfObject(Mt).scale,$t=jt&&jt.invert?jt.invert(St.chartX):null,xt=Rt&&Rt.invert?Rt.invert(St.chartY):null;return _objectSpread$1(_objectSpread$1({},St),{},{xValue:$t,yValue:xt})}var It=getTooltipData(this.state,this.props.data,this.props.layout,Et);return It?_objectSpread$1(_objectSpread$1({},St),It):null}},{key:"getCursorRectangle",value:function(){var vt=this.props.layout,kt=this.state,St=kt.activeCoordinate,Et=kt.offset,At=kt.tooltipAxisBandSize,Tt=At/2;return{stroke:"none",fill:"#ccc",x:vt==="horizontal"?St.x-Tt:Et.left+.5,y:vt==="horizontal"?Et.top+.5:St.y-Tt,width:vt==="horizontal"?At:Et.width-1,height:vt==="horizontal"?Et.height-1:At}}},{key:"getCursorPoints",value:function(){var vt=this.props.layout,kt=this.state,St=kt.activeCoordinate,Et=kt.offset,At,Tt,Mt,Lt;if(vt==="horizontal")At=St.x,Mt=At,Tt=Et.top,Lt=Et.top+Et.height;else if(vt==="vertical")Tt=St.y,Lt=Tt,At=Et.left,Mt=Et.left+Et.width;else if(!_isNil(St.cx)||!_isNil(St.cy))if(vt==="centric"){var jt=St.cx,Rt=St.cy,$t=St.innerRadius,xt=St.outerRadius,It=St.angle,Ot=polarToCartesian(jt,Rt,$t,It),zt=polarToCartesian(jt,Rt,xt,It);At=Ot.x,Tt=Ot.y,Mt=zt.x,Lt=zt.y}else{var Ut=St.cx,Wt=St.cy,Ft=St.radius,Nt=St.startAngle,Ct=St.endAngle,Ht=polarToCartesian(Ut,Wt,Ft,Nt),Jt=polarToCartesian(Ut,Wt,Ft,Ct);return{points:[Ht,Jt],cx:Ut,cy:Wt,radius:Ft,startAngle:Nt,endAngle:Ct}}return[{x:At,y:Tt},{x:Mt,y:Lt}]}},{key:"inRange",value:function(vt,kt){var St=this.props.layout;if(St==="horizontal"||St==="vertical"){var Et=this.state.offset,At=vt>=Et.left&&vt<=Et.left+Et.width&&kt>=Et.top&&kt<=Et.top+Et.height;return At?{x:vt,y:kt}:null}var Tt=this.state,Mt=Tt.angleAxisMap,Lt=Tt.radiusAxisMap;if(Mt&&Lt){var jt=getAnyElementOfObject(Mt);return inRangeOfSector({x:vt,y:kt},jt)}return null}},{key:"parseEventsOfWrapper",value:function(){var vt=this.props.children,kt=this.getTooltipEventType(),St=findChildByType(vt,Tooltip),Et={};St&&kt==="axis"&&(St.props.trigger==="click"?Et={onClick:this.handleClick}:Et={onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd});var At=adaptEventHandlers(this.props,this.handleOuterEvent);return _objectSpread$1(_objectSpread$1({},At),Et)}},{key:"addListener",value:function(){eventCenter.on(SYNC_EVENT,this.handleReceiveSyncEvent),eventCenter.setMaxListeners&&eventCenter._maxListeners&&eventCenter.setMaxListeners(eventCenter._maxListeners+1)}},{key:"removeListener",value:function(){eventCenter.removeListener(SYNC_EVENT,this.handleReceiveSyncEvent),eventCenter.setMaxListeners&&eventCenter._maxListeners&&eventCenter.setMaxListeners(eventCenter._maxListeners-1)}},{key:"triggerSyncEvent",value:function(vt){var kt=this.props.syncId;_isNil(kt)||eventCenter.emit(SYNC_EVENT,kt,this.uniqueChartId,vt)}},{key:"applySyncEvent",value:function(vt){var kt=this.props,St=kt.layout,Et=kt.syncMethod,At=this.state.updateId,Tt=vt.dataStartIndex,Mt=vt.dataEndIndex;if(!_isNil(vt.dataStartIndex)||!_isNil(vt.dataEndIndex))this.setState(_objectSpread$1({dataStartIndex:Tt,dataEndIndex:Mt},mt({props:this.props,dataStartIndex:Tt,dataEndIndex:Mt,updateId:At},this.state)));else if(_isNil(vt.activeTooltipIndex))this.setState(vt);else{var Lt=vt.chartX,jt=vt.chartY,Rt=vt.activeTooltipIndex,$t=this.state,xt=$t.offset,It=$t.tooltipTicks;if(!xt)return;if(typeof Et=="function")Rt=Et(It,vt);else if(Et==="value"){Rt=-1;for(var Ot=0;OtjsxRuntimeExports.jsx(Dot,{cx:tt,cy:et,fill:colors.blueTextAccent,r:2}),SentimentChart=({data:tt,width:et=500,height:nt=300})=>jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:(tt==null?void 0:tt.length)&&jsxRuntimeExports.jsxs(LineChart,{data:tt,height:nt,id:"cy-sentiment-chart",margin:{bottom:5,left:-20,right:30,top:5},width:et,children:[jsxRuntimeExports.jsx(CartesianGrid,{stroke:colors.lightBlue300,strokeDasharray:"5 5"}),jsxRuntimeExports.jsx(XAxis,{dataKey:"date",interval:Math.floor(tt.length/3),stroke:colors.blueTextAccent}),jsxRuntimeExports.jsx(YAxis,{domain:[0,10],stroke:colors.blueTextAccent}),jsxRuntimeExports.jsx(Tooltip,{}),jsxRuntimeExports.jsx(Line,{dataKey:"score",dot:jsxRuntimeExports.jsx(RenderDot$1,{}),stroke:"#8884d8",type:"monotone"})]})}),SentimentAnalysis=reactExports.memo(()=>{const tt=useAppStore(pt=>pt.currentSearch),[et,nt]=reactExports.useState(void 0),rt=hooks().startOf("day"),it=hooks().subtract(1,"year"),ot=3600*24,[at,st]=reactExports.useState(hooks().startOf("day").subtract(20,"day")),lt=(Math.round((rt.unix()-at.unix())/ot)+1)*50,[ct,ut]=reactExports.useState(!1),ht=async()=>{tt&&(ut(!0),await executeIfProd(()=>distExports$2.enable()),getSentimentData({topic:tt,cutoff_date:String(at.unix())}).then(pt=>{console.log(pt==null?void 0:pt.data),nt(pt==null?void 0:pt.data.filter(mt=>mt.date).map(mt=>({date:hooks.unix(Number(String(mt.date).split(".")[0])).format("MM/DD/YY"),score:mt.sentiment_score})))}).catch(console.error).finally(()=>{ut(!1)}))},dt=reactExports.useRef(null);return jsxRuntimeExports.jsxs(Stack$5,{component:"div",flexGrow:1,p:1,spacing:2,width:"100%",children:[ct&&jsxRuntimeExports.jsx(Stack$5,{alignItems:"center",component:"div",flexGrow:1,p:4,spacing:2,width:"100%",children:jsxRuntimeExports.jsx(PropagateLoader,{color:colors.white})}),!ct&&jsxRuntimeExports.jsxs(ChartWrapper$1,{ref:dt,children:[jsxRuntimeExports.jsx(SentimentChart,{data:et,height:280,width:352}),Array.isArray(et)&&!ct&&!et.length&&jsxRuntimeExports.jsx(Text$3,{children:"No data for this period"})]}),jsxRuntimeExports.jsx(DatePicker,{format:"L",label:"From",maxDate:rt,minDate:it,onChange:pt=>st(pt??hooks()),sx:{background:colors.inputBg1,color:"text.primary"},value:at}),jsxRuntimeExports.jsx(Slider$1,{component:"div",getAriaValueText:pt=>hooks(pt).format("L"),id:"cy-sentiment-analysis-slider",marks:!0,max:rt.unix(),min:it.unix(),onChange:(pt,mt)=>{st(hooks.unix(mt))},step:ot,value:at.unix(),valueLabelDisplay:"auto",valueLabelFormat:pt=>hooks.unix(pt).format("L")}),jsxRuntimeExports.jsxs(StyledButton$1,{className:"button",id:"cy-get-sentiment-analysis-btn",onClick:ht,children:["Create a chart for ",lt.toFixed()," SATS"]})]})}),ChartWrapper$1=styled$4.div` flex: 1 1 auto; width: 100%; `,StyledButton$1=styled$4(Button)` @@ -7612,7 +7612,7 @@ ${({disabled:tt})=>tt&&Ae` height: 4px; background: ${colors.GRAY6}; } -`,pageSize=80,Relevance=({header:tt=null})=>{const et=useGraphData(),nt=reactExports.useRef(null),rt=useDataStore(yt=>yt.setSelectedNode),it=useDataStore(yt=>yt.setSelectedTimestamp),ot=useAppStore(yt=>yt.flagErrorIsOpen),[at]=useAppStore(yt=>[yt.setSidebarOpen]),st=useAppStore(yt=>yt.setRelevanceSelected),[lt,ct]=reactExports.useState(0),ht=lt*pageSize+pageSize,dt=et.nodes.length-1>ht,pt=useIsMatchBreakpoint("sm","down"),mt=reactExports.useMemo(()=>et.nodes.slice(0,ht),[et.nodes,ht]),gt=reactExports.useCallback(yt=>{saveConsumedContent(yt),it(yt),st(!0),rt(yt),pt&&at(!1)},[rt,st,at,it,pt]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!tt&&ot&&jsxRuntimeExports.jsx(ErrorSection,{}),jsxRuntimeExports.jsxs(ScrollView,{ref:nt,id:"search-result-list",shrink:1,children:[tt,mt.map((yt,bt)=>{const{image_url:wt,description:vt,date:kt,boost:St,type:Tt,id:At,episode_title:Et,node_type:Mt,text:Lt,name:jt,profile_picture:Rt,verified:$t=!1,twitter_handle:xt}=yt||{};return jsxRuntimeExports.jsx(Episode,{boostCount:St||0,date:kt||0,description:formatDescription(vt),id:At,imageUrl:wt||"audio_default.svg",name:jt||"",onClick:()=>gt(yt),profilePicture:Rt,text:Lt||"",title:Et,twitterHandle:xt,type:Tt||Mt,verified:$t},bt.toString())}),jsxRuntimeExports.jsx(LoadMoreWrapper,{align:"center",background:"BG1",direction:"row",justify:"center",children:jsxRuntimeExports.jsx(Button$2,{disabled:!dt,onClick:()=>{var yt;dt&&(ct(lt+1),(yt=nt.current)==null||yt.scrollTo(0,0))},size:"medium",children:"Load More"})})]})]})},LoadMoreWrapper=styled$4(Flex)` +`,pageSize=80,Relevance=({header:tt=null})=>{const et=useGraphData(),nt=reactExports.useRef(null),rt=useDataStore(yt=>yt.setSelectedNode),it=useDataStore(yt=>yt.setSelectedTimestamp),ot=useAppStore(yt=>yt.flagErrorIsOpen),[at]=useAppStore(yt=>[yt.setSidebarOpen]),st=useAppStore(yt=>yt.setRelevanceSelected),[lt,ct]=reactExports.useState(0),ht=lt*pageSize+pageSize,dt=et.nodes.length-1>ht,pt=useIsMatchBreakpoint("sm","down"),mt=reactExports.useMemo(()=>et.nodes.slice(0,ht),[et.nodes,ht]),gt=reactExports.useCallback(yt=>{saveConsumedContent(yt),it(yt),st(!0),rt(yt),pt&&at(!1)},[rt,st,at,it,pt]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[!tt&&ot&&jsxRuntimeExports.jsx(ErrorSection,{}),jsxRuntimeExports.jsxs(ScrollView,{ref:nt,id:"search-result-list",shrink:1,children:[tt,mt.map((yt,bt)=>{const{image_url:wt,description:vt,date:kt,boost:St,type:Et,id:At,episode_title:Tt,node_type:Mt,text:Lt,name:jt,profile_picture:Rt,verified:$t=!1,twitter_handle:xt}=yt||{};return jsxRuntimeExports.jsx(Episode,{boostCount:St||0,date:kt||0,description:formatDescription(vt),id:At,imageUrl:wt||"audio_default.svg",name:jt||"",onClick:()=>gt(yt),profilePicture:Rt,text:Lt||"",title:Tt,twitterHandle:xt,type:Et||Mt,verified:$t},bt.toString())}),jsxRuntimeExports.jsx(LoadMoreWrapper,{align:"center",background:"BG1",direction:"row",justify:"center",children:jsxRuntimeExports.jsx(Button$2,{disabled:!dt,onClick:()=>{var yt;dt&&(ct(lt+1),(yt=nt.current)==null||yt.scrollTo(0,0))},size:"medium",children:"Load More"})})]})]})},LoadMoreWrapper=styled$4(Flex)` flex: 0 0 86px; `,_View$1=({isSearchResult:tt})=>jsxRuntimeExports.jsxs(Wrapper$9,{children:[!tt&&jsxRuntimeExports.jsxs("div",{className:"heading",children:[jsxRuntimeExports.jsx("span",{className:"heading__title",children:"Latest"}),jsxRuntimeExports.jsx("span",{className:"heading__icon",children:jsxRuntimeExports.jsx(BrowseGalleryIcon,{})})]}),jsxRuntimeExports.jsx(Relevance,{})]}),LatestView=reactExports.memo(_View$1),Wrapper$9=styled$4(Flex)` .heading { @@ -7877,7 +7877,7 @@ ${({disabled:tt})=>tt&&Ae` `,EpisodeWrapper=styled$4(Flex).attrs(()=>({direction:"row"}))` cursor: pointer; color: ${colors.primaryText1}; -`,EpisodePanel=({node:tt,onClick:et})=>{var nt;return jsxRuntimeExports.jsx(EpisodeWrapper,{onClick:et,py:12,children:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(Flex,{align:"center",direction:"row",children:jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"regular",children:tt.episode_title})}),jsxRuntimeExports.jsx(Flex,{pt:4,children:jsxRuntimeExports.jsxs(Text$3,{color:"mainBottomIcons",kind:"regular",children:[((nt=tt==null?void 0:tt.children)==null?void 0:nt.length)||0," clips"]})})]})})},Show=()=>{const[tt,et]=useDataStore(it=>[it.selectedNode,it.setSelectedNode]),nt=useGraphData(),rt=reactExports.useMemo(()=>{var ot;const it={};return(ot=tt==null?void 0:tt.children)!=null&&ot.length&&tt.children.forEach(at=>{const st=nt.nodes.find(lt=>lt.ref_id===at);st&&(it[at]=st)}),Object.values(it).filter(at=>at.node_type==="episode").sort((at,st)=>(st.weight||0)-(at.weight||0))},[nt.nodes,tt]);return jsxRuntimeExports.jsxs(Wrapper$5,{p:20,children:[jsxRuntimeExports.jsxs(Flex,{direction:"row",children:[jsxRuntimeExports.jsx(Flex,{pr:24,children:jsxRuntimeExports.jsx(Avatar$1,{size:80,src:(tt==null?void 0:tt.image_url)||"audio_default.svg",type:"audio"})}),jsxRuntimeExports.jsxs(Flex,{grow:1,shrink:1,children:[jsxRuntimeExports.jsx(Text$3,{kind:"bigHeading",children:(tt==null?void 0:tt.show_title)||"Unknown"}),jsxRuntimeExports.jsx(Flex,{py:16,children:jsxRuntimeExports.jsx(Actions,{})})]})]}),jsxRuntimeExports.jsxs(Flex,{direction:"column",pt:40,children:[jsxRuntimeExports.jsx(Flex,{pb:20,children:jsxRuntimeExports.jsx(Text$3,{kind:"mediumBold",children:"Related Episodes"})}),rt.map(it=>jsxRuntimeExports.jsx(EpisodePanel,{node:it,onClick:()=>et(it)},it.ref_id))]})]})},Topic=()=>{const tt=useSelectedNode();return jsxRuntimeExports.jsx(Flex,{align:"center",justify:"center",children:jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"hugeHeading",children:tt==null?void 0:tt.label})})},TwitData=()=>{const tt=useSelectedNode(),et=(tt==null?void 0:tt.tweet_id)||"";return tt&&jsxRuntimeExports.jsxs(Flex,{direction:"column",px:24,py:16,children:[jsxRuntimeExports.jsx(Flex,{align:"center",direction:"row",justify:"flex-start",p:10,children:jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",children:tt==null?void 0:tt.label})}),et&&jsxRuntimeExports.jsxs(TweetContainer,{children:[jsxRuntimeExports.jsxs(Flex,{direction:"row",children:[jsxRuntimeExports.jsx(ProfilePicture,{children:jsxRuntimeExports.jsx("img",{alt:"Profile",src:tt.profile_picture||"twitter_placeholder.png"})}),jsxRuntimeExports.jsxs(AuthorInfo,{children:[jsxRuntimeExports.jsx(AuthorName,{children:tt.name}),jsxRuntimeExports.jsx(TwitterHandle,{children:tt.twitter_handle||"@unknown_handle"})]})]}),jsxRuntimeExports.jsx(TweetText,{children:tt.text})]})]})},TweetContainer=styled$4.div` +`,EpisodePanel=({node:tt,onClick:et})=>{var nt;return jsxRuntimeExports.jsx(EpisodeWrapper,{onClick:et,py:12,children:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(Flex,{align:"center",direction:"row",children:jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"regular",children:tt.episode_title})}),jsxRuntimeExports.jsx(Flex,{pt:4,children:jsxRuntimeExports.jsxs(Text$3,{color:"mainBottomIcons",kind:"regular",children:[((nt=tt==null?void 0:tt.children)==null?void 0:nt.length)||0," clips"]})})]})})},Show=()=>{const[tt,et]=useDataStore(it=>[it.selectedNode,it.setSelectedNode]),nt=useGraphData(),rt=reactExports.useMemo(()=>{var ot;const it={};return(ot=tt==null?void 0:tt.children)!=null&&ot.length&&tt.children.forEach(at=>{const st=nt.nodes.find(lt=>lt.ref_id===at);st&&(it[at]=st)}),Object.values(it).filter(at=>at.node_type==="episode").sort((at,st)=>(st.weight||0)-(at.weight||0))},[nt.nodes,tt]);return jsxRuntimeExports.jsxs(Wrapper$5,{p:20,children:[jsxRuntimeExports.jsxs(Flex,{direction:"row",children:[jsxRuntimeExports.jsx(Flex,{pr:24,children:jsxRuntimeExports.jsx(Avatar$1,{size:80,src:(tt==null?void 0:tt.image_url)||"audio_default.svg",type:"audio"})}),jsxRuntimeExports.jsxs(Flex,{grow:1,shrink:1,children:[jsxRuntimeExports.jsx(Text$3,{kind:"bigHeading",children:(tt==null?void 0:tt.show_title)||"Unknown"}),jsxRuntimeExports.jsx(Flex,{py:16,children:jsxRuntimeExports.jsx(Actions,{})})]})]}),jsxRuntimeExports.jsxs(Flex,{direction:"column",pt:40,children:[jsxRuntimeExports.jsx(Flex,{pb:20,children:jsxRuntimeExports.jsx(Text$3,{kind:"mediumBold",children:"Related Episodes"})}),rt.map(it=>jsxRuntimeExports.jsx(EpisodePanel,{node:it,onClick:()=>et(it)},it.ref_id))]})]})},Topic=()=>{const tt=useSelectedNode();return jsxRuntimeExports.jsx(Flex,{align:"center",justify:"center",children:jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",kind:"hugeHeading",children:tt==null?void 0:tt.label})})},TwitData=()=>{const tt=useSelectedNode(),et=(tt==null?void 0:tt.tweet_id)||"",nt=()=>{const rt="https://example.com";window.open(rt,"_blank")};return tt&&jsxRuntimeExports.jsxs(Flex,{direction:"column",px:24,py:16,children:[jsxRuntimeExports.jsx(Flex,{align:"center",direction:"row",justify:"flex-start",p:10,children:jsxRuntimeExports.jsx(Text$3,{color:"primaryText1",children:tt==null?void 0:tt.label})}),et&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(TweetContainer,{children:[jsxRuntimeExports.jsxs(Flex,{direction:"row",children:[jsxRuntimeExports.jsx(ProfilePicture,{children:jsxRuntimeExports.jsx("img",{alt:"Profile",src:tt.profile_picture||"twitter_placeholder.png"})}),jsxRuntimeExports.jsxs(AuthorInfo,{children:[jsxRuntimeExports.jsx(AuthorName,{children:tt.name}),jsxRuntimeExports.jsx(TwitterHandle,{children:tt.twitter_handle||"@unknown_handle"})]})]}),jsxRuntimeExports.jsx(TweetText,{children:tt.text})]}),jsxRuntimeExports.jsx(Flex,{children:jsxRuntimeExports.jsx(Button$2,{onClick:nt,children:"View more"})})]})]})},TweetContainer=styled$4.div` padding: 10px; border-radius: 6px; display: flex; @@ -7919,8 +7919,8 @@ ${({disabled:tt})=>tt&&Ae` `,Twitter=()=>jsxRuntimeExports.jsx("div",{children:"Twitter"});var lib={},players={},utils={},loadScript=function tt(et,nt,rt){var it=document.head||document.getElementsByTagName("head")[0],ot=document.createElement("script");typeof nt=="function"&&(rt=nt,nt={}),nt=nt||{},rt=rt||function(){},ot.type=nt.type||"text/javascript",ot.charset=nt.charset||"utf8",ot.async="async"in nt?!!nt.async:!0,ot.src=et,nt.attrs&&setAttributes(ot,nt.attrs),nt.text&&(ot.text=""+nt.text);var at="onload"in ot?stdOnEnd:ieOnEnd;at(ot,rt),ot.onload||stdOnEnd(ot,rt),it.appendChild(ot)};function setAttributes(tt,et){for(var nt in et)tt.setAttribute(nt,et[nt])}function stdOnEnd(tt,et){tt.onload=function(){this.onerror=this.onload=null,et(null,tt)},tt.onerror=function(){this.onerror=this.onload=null,et(new Error("Failed to load "+this.src),tt)}}function ieOnEnd(tt,et){tt.onreadystatechange=function(){this.readyState!="complete"&&this.readyState!="loaded"||(this.onreadystatechange=null,et(null,tt))}}var isMergeableObject=function tt(et){return isNonNullObject(et)&&!isSpecial(et)};function isNonNullObject(tt){return!!tt&&typeof tt=="object"}function isSpecial(tt){var et=Object.prototype.toString.call(tt);return et==="[object RegExp]"||et==="[object Date]"||isReactElement(tt)}var canUseSymbol=typeof Symbol=="function"&&Symbol.for,REACT_ELEMENT_TYPE=canUseSymbol?Symbol.for("react.element"):60103;function isReactElement(tt){return tt.$$typeof===REACT_ELEMENT_TYPE}function emptyTarget(tt){return Array.isArray(tt)?[]:{}}function cloneUnlessOtherwiseSpecified(tt,et){return et.clone!==!1&&et.isMergeableObject(tt)?deepmerge(emptyTarget(tt),tt,et):tt}function defaultArrayMerge(tt,et,nt){return tt.concat(et).map(function(rt){return cloneUnlessOtherwiseSpecified(rt,nt)})}function getMergeFunction(tt,et){if(!et.customMerge)return deepmerge;var nt=et.customMerge(tt);return typeof nt=="function"?nt:deepmerge}function getEnumerableOwnPropertySymbols(tt){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(tt).filter(function(et){return Object.propertyIsEnumerable.call(tt,et)}):[]}function getKeys(tt){return Object.keys(tt).concat(getEnumerableOwnPropertySymbols(tt))}function propertyIsOnObject(tt,et){try{return et in tt}catch{return!1}}function propertyIsUnsafe(tt,et){return propertyIsOnObject(tt,et)&&!(Object.hasOwnProperty.call(tt,et)&&Object.propertyIsEnumerable.call(tt,et))}function mergeObject(tt,et,nt){var rt={};return nt.isMergeableObject(tt)&&getKeys(tt).forEach(function(it){rt[it]=cloneUnlessOtherwiseSpecified(tt[it],nt)}),getKeys(et).forEach(function(it){propertyIsUnsafe(tt,it)||(propertyIsOnObject(tt,it)&&nt.isMergeableObject(et[it])?rt[it]=getMergeFunction(it,nt)(tt[it],et[it],nt):rt[it]=cloneUnlessOtherwiseSpecified(et[it],nt))}),rt}function deepmerge(tt,et,nt){nt=nt||{},nt.arrayMerge=nt.arrayMerge||defaultArrayMerge,nt.isMergeableObject=nt.isMergeableObject||isMergeableObject,nt.cloneUnlessOtherwiseSpecified=cloneUnlessOtherwiseSpecified;var rt=Array.isArray(et),it=Array.isArray(tt),ot=rt===it;return ot?rt?nt.arrayMerge(tt,et,nt):mergeObject(tt,et,nt):cloneUnlessOtherwiseSpecified(et,nt)}deepmerge.all=function tt(et,nt){if(!Array.isArray(et))throw new Error("first argument should be an array");return et.reduce(function(rt,it){return deepmerge(rt,it,nt)},{})};var deepmerge_1=deepmerge,cjs=deepmerge_1;Object.defineProperty(utils,"__esModule",{value:!0});utils.parseStartTime=parseStartTime;utils.parseEndTime=parseEndTime;utils.randomString=randomString;utils.queryString=queryString;utils.getSDK=getSDK;utils.getConfig=getConfig;utils.omit=omit;utils.callPlayer=callPlayer;utils.isMediaStream=isMediaStream;utils.isBlobUrl=isBlobUrl;utils.supportsWebKitPresentationMode=supportsWebKitPresentationMode;var _loadScript=_interopRequireDefault$2(loadScript),_deepmerge$1=_interopRequireDefault$2(cjs);function _interopRequireDefault$2(tt){return tt&&tt.__esModule?tt:{default:tt}}function _slicedToArray(tt,et){return _arrayWithHoles(tt)||_iterableToArrayLimit(tt,et)||_unsupportedIterableToArray$2(tt,et)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _unsupportedIterableToArray$2(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$2(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$2(tt,et)}}function _arrayLikeToArray$2(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt"u"||!(Symbol.iterator in Object(tt)))){var nt=[],rt=!0,it=!1,ot=void 0;try{for(var at=tt[Symbol.iterator](),st;!(rt=(st=at.next()).done)&&(nt.push(st.value),!(et&&nt.length===et));rt=!0);}catch(lt){it=!0,ot=lt}finally{try{!rt&&at.return!=null&&at.return()}finally{if(it)throw ot}}return nt}}function _arrayWithHoles(tt){if(Array.isArray(tt))return tt}var MATCH_START_QUERY=/[?&#](?:start|t)=([0-9hms]+)/,MATCH_END_QUERY=/[?&#]end=([0-9hms]+)/,MATCH_START_STAMP=/(\d+)(h|m|s)/g,MATCH_NUMERIC=/^\d+$/;function parseTimeParam(tt,et){if(!(tt instanceof Array)){var nt=tt.match(et);if(nt){var rt=nt[1];if(rt.match(MATCH_START_STAMP))return parseTimeString(rt);if(MATCH_NUMERIC.test(rt))return parseInt(rt)}}}function parseTimeString(tt){for(var et=0,nt=MATCH_START_STAMP.exec(tt);nt!==null;){var rt=nt,it=_slicedToArray(rt,3),ot=it[1],at=it[2];at==="h"&&(et+=parseInt(ot,10)*60*60),at==="m"&&(et+=parseInt(ot,10)*60),at==="s"&&(et+=parseInt(ot,10)),nt=MATCH_START_STAMP.exec(tt)}return et}function parseStartTime(tt){return parseTimeParam(tt,MATCH_START_QUERY)}function parseEndTime(tt){return parseTimeParam(tt,MATCH_END_QUERY)}function randomString(){return Math.random().toString(36).substr(2,5)}function queryString(tt){return Object.keys(tt).map(function(et){return"".concat(et,"=").concat(tt[et])}).join("&")}function getGlobal(tt){return window[tt]?window[tt]:window.exports&&window.exports[tt]?window.exports[tt]:window.module&&window.module.exports&&window.module.exports[tt]?window.module.exports[tt]:null}var requests={};function getSDK(tt,et){var nt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,rt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){return!0},it=arguments.length>4&&arguments[4]!==void 0?arguments[4]:_loadScript.default,ot=getGlobal(et);return ot&&rt(ot)?Promise.resolve(ot):new Promise(function(at,st){if(requests[tt]){requests[tt].push({resolve:at,reject:st});return}requests[tt]=[{resolve:at,reject:st}];var lt=function(ht){requests[tt].forEach(function(dt){return dt.resolve(ht)})};if(nt){var ct=window[nt];window[nt]=function(){ct&&ct(),lt(getGlobal(et))}}it(tt,function(ut){ut?(requests[tt].forEach(function(ht){return ht.reject(ut)}),requests[tt]=null):nt||lt(getGlobal(et))})})}function getConfig(tt,et){return(0,_deepmerge$1.default)(et.config,tt.config)}function omit(tt){for(var et,nt=arguments.length,rt=new Array(nt>1?nt-1:0),it=1;it1?rt-1:0),ot=1;ot0&&arguments[0]!==void 0?arguments[0]:document.createElement("video"),et=/iPhone|iPod/.test(navigator.userAgent)===!1;return tt.webkitSupportsPresentationMode&&typeof tt.webkitSetPresentationMode=="function"&&et}var patterns={};Object.defineProperty(patterns,"__esModule",{value:!0});patterns.canPlay=patterns.FLV_EXTENSIONS=patterns.DASH_EXTENSIONS=patterns.HLS_EXTENSIONS=patterns.VIDEO_EXTENSIONS=patterns.AUDIO_EXTENSIONS=patterns.MATCH_URL_KALTURA=patterns.MATCH_URL_VIDYARD=patterns.MATCH_URL_MIXCLOUD=patterns.MATCH_URL_DAILYMOTION=patterns.MATCH_URL_TWITCH_CHANNEL=patterns.MATCH_URL_TWITCH_VIDEO=patterns.MATCH_URL_WISTIA=patterns.MATCH_URL_STREAMABLE=patterns.MATCH_URL_FACEBOOK_WATCH=patterns.MATCH_URL_FACEBOOK=patterns.MATCH_URL_VIMEO=patterns.MATCH_URL_SOUNDCLOUD=patterns.MATCH_URL_YOUTUBE=void 0;var _utils$1=utils;function _createForOfIteratorHelper(tt,et){var nt;if(typeof Symbol>"u"||tt[Symbol.iterator]==null){if(Array.isArray(tt)||(nt=_unsupportedIterableToArray$1(tt))||et&&tt&&typeof tt.length=="number"){nt&&(tt=nt);var rt=0,it=function(){};return{s:it,n:function(){return rt>=tt.length?{done:!0}:{done:!1,value:tt[rt++]}},e:function(ct){throw ct},f:it}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var ot=!0,at=!1,st;return{s:function(){nt=tt[Symbol.iterator]()},n:function(){var ct=nt.next();return ot=ct.done,ct},e:function(ct){at=!0,st=ct},f:function(){try{!ot&&nt.return!=null&&nt.return()}finally{if(at)throw st}}}}function _unsupportedIterableToArray$1(tt,et){if(tt){if(typeof tt=="string")return _arrayLikeToArray$1(tt,et);var nt=Object.prototype.toString.call(tt).slice(8,-1);if(nt==="Object"&&tt.constructor&&(nt=tt.constructor.name),nt==="Map"||nt==="Set")return Array.from(tt);if(nt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(nt))return _arrayLikeToArray$1(tt,et)}}function _arrayLikeToArray$1(tt,et){(et==null||et>tt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);ntUt.length)&&(Wt=Ut.length);for(var Ft=0,Nt=new Array(Wt);Ft"u"||!(Symbol.iterator in Object(Ut)))){var Ft=[],Nt=!0,Ct=!1,Ht=void 0;try{for(var Jt=Ut[Symbol.iterator](),nn;!(Nt=(nn=Jt.next()).done)&&(Ft.push(nn.value),!(Wt&&Ft.length===Wt));Nt=!0);}catch(Yt){Ct=!0,Ht=Yt}finally{try{!Nt&&Jt.return!=null&&Jt.return()}finally{if(Ct)throw Ht}}return Ft}}function mt(Ut){if(Array.isArray(Ut))return Ut}function gt(Ut,Wt){if(!(Ut instanceof Wt))throw new TypeError("Cannot call a class as a function")}function yt(Ut,Wt){for(var Ft=0;Ft"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Et(Ut){return Et=Object.setPrototypeOf?Object.getPrototypeOf:function(Ft){return Ft.__proto__||Object.getPrototypeOf(Ft)},Et(Ut)}function Mt(Ut,Wt,Ft){return Wt in Ut?Object.defineProperty(Ut,Wt,{value:Ft,enumerable:!0,configurable:!0,writable:!0}):Ut[Wt]=Ft,Ut}var Lt="https://www.youtube.com/iframe_api",jt="YT",Rt="onYouTubeIframeAPIReady",$t=/[?&](?:list|channel)=([a-zA-Z0-9_-]+)/,xt=/user\/([a-zA-Z0-9_-]+)\/?/,It=/youtube-nocookie\.com/,Ot="https://www.youtube-nocookie.com",zt=function(Ut){wt(Ft,Ut);var Wt=kt(Ft);function Ft(){var Nt;gt(this,Ft);for(var Ct=arguments.length,Ht=new Array(Ct),Jt=0;Jt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(At){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Mt){return Mt.__proto__||Object.getPrototypeOf(Mt)},wt(At)}function vt(At,Et,Mt){return Et in At?Object.defineProperty(At,Et,{value:Mt,enumerable:!0,configurable:!0,writable:!0}):At[Et]=Mt,At}var kt="https://w.soundcloud.com/player/api.js",St="SC",Tt=function(At){dt(Mt,At);var Et=mt(Mt);function Mt(){var Lt;ct(this,Mt);for(var jt=arguments.length,Rt=new Array(jt),$t=0;$t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(At){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Mt){return Mt.__proto__||Object.getPrototypeOf(Mt)},wt(At)}function vt(At,Et,Mt){return Et in At?Object.defineProperty(At,Et,{value:Mt,enumerable:!0,configurable:!0,writable:!0}):At[Et]=Mt,At}var kt="https://player.vimeo.com/api/player.js",St="Vimeo",Tt=function(At){dt(Mt,At);var Et=mt(Mt);function Mt(){var Lt;ct(this,Mt);for(var jt=arguments.length,Rt=new Array(jt),$t=0;$t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function bt(Et){return bt=Object.setPrototypeOf?Object.getPrototypeOf:function(Lt){return Lt.__proto__||Object.getPrototypeOf(Lt)},bt(Et)}function wt(Et,Mt,Lt){return Mt in Et?Object.defineProperty(Et,Mt,{value:Lt,enumerable:!0,configurable:!0,writable:!0}):Et[Mt]=Lt,Et}var vt="https://connect.facebook.net/en_US/sdk.js",kt="FB",St="fbAsyncInit",Tt="facebook-player-",At=function(Et){ht(Lt,Et);var Mt=pt(Lt);function Lt(){var jt;lt(this,Lt);for(var Rt=arguments.length,$t=new Array(Rt),xt=0;xt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function yt(St){return yt=Object.setPrototypeOf?Object.getPrototypeOf:function(At){return At.__proto__||Object.getPrototypeOf(At)},yt(St)}function bt(St,Tt,At){return Tt in St?Object.defineProperty(St,Tt,{value:At,enumerable:!0,configurable:!0,writable:!0}):St[Tt]=At,St}var wt="https://cdn.embed.ly/player-0.1.0.min.js",vt="playerjs",kt=function(St){ut(At,St);var Tt=dt(At);function At(){var Et;st(this,At);for(var Mt=arguments.length,Lt=new Array(Mt),jt=0;jt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(Et){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Lt){return Lt.__proto__||Object.getPrototypeOf(Lt)},wt(Et)}function vt(Et,Mt,Lt){return Mt in Et?Object.defineProperty(Et,Mt,{value:Lt,enumerable:!0,configurable:!0,writable:!0}):Et[Mt]=Lt,Et}var kt="https://fast.wistia.com/assets/external/E-v1.js",St="Wistia",Tt="wistia-player-",At=function(Et){dt(Lt,Et);var Mt=mt(Lt);function Lt(){var jt;ct(this,Lt);for(var Rt=arguments.length,$t=new Array(Rt),xt=0;xt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(Et){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Lt){return Lt.__proto__||Object.getPrototypeOf(Lt)},wt(Et)}function vt(Et,Mt,Lt){return Mt in Et?Object.defineProperty(Et,Mt,{value:Lt,enumerable:!0,configurable:!0,writable:!0}):Et[Mt]=Lt,Et}var kt="https://player.twitch.tv/js/embed/v1.js",St="Twitch",Tt="twitch-player-",At=function(Et){dt(Lt,Et);var Mt=mt(Lt);function Lt(){var jt;ct(this,Lt);for(var Rt=arguments.length,$t=new Array(Rt),xt=0;xtxt.length)&&(It=xt.length);for(var Ot=0,zt=new Array(It);Ot"u"||!(Symbol.iterator in Object(xt)))){var Ot=[],zt=!0,Ut=!1,Wt=void 0;try{for(var Ft=xt[Symbol.iterator](),Nt;!(zt=(Nt=Ft.next()).done)&&(Ot.push(Nt.value),!(It&&Ot.length===It));zt=!0);}catch(Ct){Ut=!0,Wt=Ct}finally{try{!zt&&Ft.return!=null&&Ft.return()}finally{if(Ut)throw Wt}}return Ot}}function mt(xt){if(Array.isArray(xt))return xt}function gt(xt,It){if(!(xt instanceof It))throw new TypeError("Cannot call a class as a function")}function yt(xt,It){for(var Ot=0;Ot"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Et(xt){return Et=Object.setPrototypeOf?Object.getPrototypeOf:function(Ot){return Ot.__proto__||Object.getPrototypeOf(Ot)},Et(xt)}function Mt(xt,It,Ot){return It in xt?Object.defineProperty(xt,It,{value:Ot,enumerable:!0,configurable:!0,writable:!0}):xt[It]=Ot,xt}var Lt="https://api.dmcdn.net/all.js",jt="DM",Rt="dmAsyncInit",$t=function(xt){wt(Ot,xt);var It=kt(Ot);function Ot(){var zt;gt(this,Ot);for(var Ut=arguments.length,Wt=new Array(Ut),Ft=0;Ft"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(At){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Mt){return Mt.__proto__||Object.getPrototypeOf(Mt)},wt(At)}function vt(At,Et,Mt){return Et in At?Object.defineProperty(At,Et,{value:Mt,enumerable:!0,configurable:!0,writable:!0}):At[Et]=Mt,At}var kt="https://widget.mixcloud.com/media/js/widgetApi.js",St="Mixcloud",Tt=function(At){dt(Mt,At);var Et=mt(Mt);function Mt(){var Lt;ct(this,Mt);for(var jt=arguments.length,Rt=new Array(jt),$t=0;$t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(Et){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Lt){return Lt.__proto__||Object.getPrototypeOf(Lt)},wt(Et)}function vt(Et,Mt,Lt){return Mt in Et?Object.defineProperty(Et,Mt,{value:Lt,enumerable:!0,configurable:!0,writable:!0}):Et[Mt]=Lt,Et}var kt="https://play.vidyard.com/embed/v4.js",St="VidyardV4",Tt="onVidyardAPI",At=function(Et){dt(Lt,Et);var Mt=mt(Lt);function Lt(){var jt;ct(this,Lt);for(var Rt=arguments.length,$t=new Array(Rt),xt=0;xt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function yt(St){return yt=Object.setPrototypeOf?Object.getPrototypeOf:function(At){return At.__proto__||Object.getPrototypeOf(At)},yt(St)}function bt(St,Tt,At){return Tt in St?Object.defineProperty(St,Tt,{value:At,enumerable:!0,configurable:!0,writable:!0}):St[Tt]=At,St}var wt="https://cdn.embed.ly/player-0.1.0.min.js",vt="playerjs",kt=function(St){ut(At,St);var Tt=dt(At);function At(){var Et;st(this,At);for(var Mt=arguments.length,Lt=new Array(Mt),jt=0;jt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function bt(zt){return bt=Object.setPrototypeOf?Object.getPrototypeOf:function(Wt){return Wt.__proto__||Object.getPrototypeOf(Wt)},bt(zt)}function wt(zt,Ut,Wt){return Ut in zt?Object.defineProperty(zt,Ut,{value:Wt,enumerable:!0,configurable:!0,writable:!0}):zt[Ut]=Wt,zt}var vt=typeof navigator<"u",kt=vt&&navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,St=vt&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||kt)&&!window.MSStream,Tt=vt&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&!window.MSStream,At="https://cdn.jsdelivr.net/npm/hls.js@VERSION/dist/hls.min.js",Et="Hls",Mt="https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js",Lt="dashjs",jt="https://cdn.jsdelivr.net/npm/flv.js@VERSION/dist/flv.min.js",Rt="flvjs",$t=/www\.dropbox\.com\/.+/,xt=/https:\/\/watch\.cloudflarestream\.com\/([a-z0-9]+)/,It="https://videodelivery.net/{id}/manifest/video.m3u8",Ot=function(zt){ht(Wt,zt);var Ut=pt(Wt);function Wt(){var Ft;lt(this,Wt);for(var Nt=arguments.length,Ct=new Array(Nt),Ht=0;Ht0?Ht.end(Ht.length-1):Ct}},{key:"getCurrentTime",value:function(){return this.player?this.player.currentTime:null}},{key:"getSecondsLoaded",value:function(){if(!this.player)return null;var Nt=this.player.buffered;if(Nt.length===0)return 0;var Ct=Nt.end(Nt.length-1),Ht=this.getDuration();return Ct>Ht?Ht:Ct}},{key:"getSource",value:function(Nt){var Ct=this.shouldUseHLS(Nt),Ht=this.shouldUseDASH(Nt),Jt=this.shouldUseFLV(Nt);if(!(Nt instanceof Array||(0,rt.isMediaStream)(Nt)||Ct||Ht||Jt))return $t.test(Nt)?Nt.replace("www.dropbox.com","dl.dropboxusercontent.com"):Nt}},{key:"render",value:function(){var Nt=this.props,Ct=Nt.url,Ht=Nt.playing,Jt=Nt.loop,nn=Nt.controls,Yt=Nt.muted,fn=Nt.config,cn=Nt.width,_n=Nt.height,En=this.shouldUseAudio(this.props),an=En?"audio":"video",en={width:cn==="auto"?cn:"100%",height:_n==="auto"?_n:"100%"};return nt.default.createElement(an,st({ref:this.ref,src:this.getSource(Ct),style:en,preload:"auto",autoPlay:Ht||void 0,controls:nn,muted:Yt,loop:Jt},fn.attributes),Ct instanceof Array&&Ct.map(this.renderSourceElement),fn.tracks.map(this.renderTrack))}}]),Wt}(nt.Component);tt.default=Ot,wt(Ot,"displayName","FilePlayer"),wt(Ot,"canPlay",it.canPlay.file)}(FilePlayer)),FilePlayer}(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.default=void 0;var et=reactExports,nt=utils,rt=patterns;function it(lt){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?it=function(ut){return typeof ut}:it=function(ut){return ut&&typeof Symbol=="function"&&ut.constructor===Symbol&&ut!==Symbol.prototype?"symbol":typeof ut},it(lt)}function ot(){if(typeof WeakMap!="function")return null;var lt=new WeakMap;return ot=function(){return lt},lt}function at(lt){if(lt&<.__esModule)return lt;if(lt===null||it(lt)!=="object"&&typeof lt!="function")return{default:lt};var ct=ot();if(ct&&ct.has(lt))return ct.get(lt);var ut={},ht=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var dt in lt)if(Object.prototype.hasOwnProperty.call(lt,dt)){var pt=ht?Object.getOwnPropertyDescriptor(lt,dt):null;pt&&(pt.get||pt.set)?Object.defineProperty(ut,dt,pt):ut[dt]=lt[dt]}return ut.default=lt,ct&&ct.set(lt,ut),ut}var st=[{key:"youtube",name:"YouTube",canPlay:rt.canPlay.youtube,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireYouTube())})})},{key:"soundcloud",name:"SoundCloud",canPlay:rt.canPlay.soundcloud,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireSoundCloud())})})},{key:"vimeo",name:"Vimeo",canPlay:rt.canPlay.vimeo,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireVimeo())})})},{key:"facebook",name:"Facebook",canPlay:rt.canPlay.facebook,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireFacebook())})})},{key:"streamable",name:"Streamable",canPlay:rt.canPlay.streamable,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireStreamable())})})},{key:"wistia",name:"Wistia",canPlay:rt.canPlay.wistia,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireWistia())})})},{key:"twitch",name:"Twitch",canPlay:rt.canPlay.twitch,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireTwitch())})})},{key:"dailymotion",name:"DailyMotion",canPlay:rt.canPlay.dailymotion,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireDailyMotion())})})},{key:"mixcloud",name:"Mixcloud",canPlay:rt.canPlay.mixcloud,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireMixcloud())})})},{key:"vidyard",name:"Vidyard",canPlay:rt.canPlay.vidyard,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireVidyard())})})},{key:"kaltura",name:"Kaltura",canPlay:rt.canPlay.kaltura,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireKaltura())})})},{key:"file",name:"FilePlayer",canPlay:rt.canPlay.file,canEnablePIP:function(ct){return rt.canPlay.file(ct)&&(document.pictureInPictureEnabled||(0,nt.supportsWebKitPresentationMode)())&&!rt.AUDIO_EXTENSIONS.test(ct)},lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireFilePlayer())})})}];tt.default=st})(players);var ReactPlayer$1={},safeIsNaN=Number.isNaN||function tt(et){return typeof et=="number"&&et!==et};function isEqual(tt,et){return!!(tt===et||safeIsNaN(tt)&&safeIsNaN(et))}function areInputsEqual(tt,et){if(tt.length!==et.length)return!1;for(var nt=0;nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function vt(At){return vt=Object.setPrototypeOf?Object.getPrototypeOf:function(Mt){return Mt.__proto__||Object.getPrototypeOf(Mt)},vt(At)}function kt(At,Et,Mt){return Et in At?Object.defineProperty(At,Et,{value:Mt,enumerable:!0,configurable:!0,writable:!0}):At[Et]=Mt,At}var St=5e3,Tt=function(At){pt(Mt,At);var Et=gt(Mt);function Mt(){var Lt;ut(this,Mt);for(var jt=arguments.length,Rt=new Array(jt),$t=0;$t0&&jt<1;if(xt){var It=this.player.getDuration();if(!It){console.warn("ReactPlayer: could not seek using fraction – duration not yet available");return}this.player.seekTo(It*jt);return}this.player.seekTo(jt)}},{key:"render",value:function(){var jt=this.props.activePlayer;return jt?nt.default.createElement(jt,ct({},this.props,{onMount:this.handlePlayerMount,onReady:this.handleReady,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onLoaded:this.handleLoaded,onError:this.handleError})):null}}]),Mt}(nt.Component);tt.default=Tt,kt(Tt,"displayName","Player"),kt(Tt,"propTypes",it.propTypes),kt(Tt,"defaultProps",it.defaultProps)})(Player);var Preview$1={},hasRequiredPreview;function requirePreview(){return hasRequiredPreview||(hasRequiredPreview=1,function(tt){function et(St){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?et=function(At){return typeof At}:et=function(At){return At&&typeof Symbol=="function"&&At.constructor===Symbol&&At!==Symbol.prototype?"symbol":typeof At},et(St)}Object.defineProperty(tt,"__esModule",{value:!0}),tt.default=void 0;var nt=it(reactExports);function rt(){if(typeof WeakMap!="function")return null;var St=new WeakMap;return rt=function(){return St},St}function it(St){if(St&&St.__esModule)return St;if(St===null||et(St)!=="object"&&typeof St!="function")return{default:St};var Tt=rt();if(Tt&&Tt.has(St))return Tt.get(St);var At={},Et=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Mt in St)if(Object.prototype.hasOwnProperty.call(St,Mt)){var Lt=Et?Object.getOwnPropertyDescriptor(St,Mt):null;Lt&&(Lt.get||Lt.set)?Object.defineProperty(At,Mt,Lt):At[Mt]=St[Mt]}return At.default=St,Tt&&Tt.set(St,At),At}function ot(St,Tt){var At=Object.keys(St);if(Object.getOwnPropertySymbols){var Et=Object.getOwnPropertySymbols(St);Tt&&(Et=Et.filter(function(Mt){return Object.getOwnPropertyDescriptor(St,Mt).enumerable})),At.push.apply(At,Et)}return At}function at(St){for(var Tt=1;Tt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function yt(St){return yt=Object.setPrototypeOf?Object.getPrototypeOf:function(At){return At.__proto__||Object.getPrototypeOf(At)},yt(St)}function bt(St,Tt,At){return Tt in St?Object.defineProperty(St,Tt,{value:At,enumerable:!0,configurable:!0,writable:!0}):St[Tt]=At,St}var wt="64px",vt={},kt=function(St){ut(At,St);var Tt=dt(At);function At(){var Et;st(this,At);for(var Mt=arguments.length,Lt=new Array(Mt),jt=0;jtUt.length)&&(Wt=Ut.length);for(var Ft=0,Nt=new Array(Wt);Ft"u"||!(Symbol.iterator in Object(Ut)))){var Ft=[],Nt=!0,Ct=!1,Ht=void 0;try{for(var Jt=Ut[Symbol.iterator](),nn;!(Nt=(nn=Jt.next()).done)&&(Ft.push(nn.value),!(Wt&&Ft.length===Wt));Nt=!0);}catch(Yt){Ct=!0,Ht=Yt}finally{try{!Nt&&Jt.return!=null&&Jt.return()}finally{if(Ct)throw Ht}}return Ft}}function mt(Ut){if(Array.isArray(Ut))return Ut}function gt(Ut,Wt){if(!(Ut instanceof Wt))throw new TypeError("Cannot call a class as a function")}function yt(Ut,Wt){for(var Ft=0;Ft"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Tt(Ut){return Tt=Object.setPrototypeOf?Object.getPrototypeOf:function(Ft){return Ft.__proto__||Object.getPrototypeOf(Ft)},Tt(Ut)}function Mt(Ut,Wt,Ft){return Wt in Ut?Object.defineProperty(Ut,Wt,{value:Ft,enumerable:!0,configurable:!0,writable:!0}):Ut[Wt]=Ft,Ut}var Lt="https://www.youtube.com/iframe_api",jt="YT",Rt="onYouTubeIframeAPIReady",$t=/[?&](?:list|channel)=([a-zA-Z0-9_-]+)/,xt=/user\/([a-zA-Z0-9_-]+)\/?/,It=/youtube-nocookie\.com/,Ot="https://www.youtube-nocookie.com",zt=function(Ut){wt(Ft,Ut);var Wt=kt(Ft);function Ft(){var Nt;gt(this,Ft);for(var Ct=arguments.length,Ht=new Array(Ct),Jt=0;Jt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(At){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Mt){return Mt.__proto__||Object.getPrototypeOf(Mt)},wt(At)}function vt(At,Tt,Mt){return Tt in At?Object.defineProperty(At,Tt,{value:Mt,enumerable:!0,configurable:!0,writable:!0}):At[Tt]=Mt,At}var kt="https://w.soundcloud.com/player/api.js",St="SC",Et=function(At){dt(Mt,At);var Tt=mt(Mt);function Mt(){var Lt;ct(this,Mt);for(var jt=arguments.length,Rt=new Array(jt),$t=0;$t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(At){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Mt){return Mt.__proto__||Object.getPrototypeOf(Mt)},wt(At)}function vt(At,Tt,Mt){return Tt in At?Object.defineProperty(At,Tt,{value:Mt,enumerable:!0,configurable:!0,writable:!0}):At[Tt]=Mt,At}var kt="https://player.vimeo.com/api/player.js",St="Vimeo",Et=function(At){dt(Mt,At);var Tt=mt(Mt);function Mt(){var Lt;ct(this,Mt);for(var jt=arguments.length,Rt=new Array(jt),$t=0;$t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function bt(Tt){return bt=Object.setPrototypeOf?Object.getPrototypeOf:function(Lt){return Lt.__proto__||Object.getPrototypeOf(Lt)},bt(Tt)}function wt(Tt,Mt,Lt){return Mt in Tt?Object.defineProperty(Tt,Mt,{value:Lt,enumerable:!0,configurable:!0,writable:!0}):Tt[Mt]=Lt,Tt}var vt="https://connect.facebook.net/en_US/sdk.js",kt="FB",St="fbAsyncInit",Et="facebook-player-",At=function(Tt){ht(Lt,Tt);var Mt=pt(Lt);function Lt(){var jt;lt(this,Lt);for(var Rt=arguments.length,$t=new Array(Rt),xt=0;xt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function yt(St){return yt=Object.setPrototypeOf?Object.getPrototypeOf:function(At){return At.__proto__||Object.getPrototypeOf(At)},yt(St)}function bt(St,Et,At){return Et in St?Object.defineProperty(St,Et,{value:At,enumerable:!0,configurable:!0,writable:!0}):St[Et]=At,St}var wt="https://cdn.embed.ly/player-0.1.0.min.js",vt="playerjs",kt=function(St){ut(At,St);var Et=dt(At);function At(){var Tt;st(this,At);for(var Mt=arguments.length,Lt=new Array(Mt),jt=0;jt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(Tt){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Lt){return Lt.__proto__||Object.getPrototypeOf(Lt)},wt(Tt)}function vt(Tt,Mt,Lt){return Mt in Tt?Object.defineProperty(Tt,Mt,{value:Lt,enumerable:!0,configurable:!0,writable:!0}):Tt[Mt]=Lt,Tt}var kt="https://fast.wistia.com/assets/external/E-v1.js",St="Wistia",Et="wistia-player-",At=function(Tt){dt(Lt,Tt);var Mt=mt(Lt);function Lt(){var jt;ct(this,Lt);for(var Rt=arguments.length,$t=new Array(Rt),xt=0;xt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(Tt){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Lt){return Lt.__proto__||Object.getPrototypeOf(Lt)},wt(Tt)}function vt(Tt,Mt,Lt){return Mt in Tt?Object.defineProperty(Tt,Mt,{value:Lt,enumerable:!0,configurable:!0,writable:!0}):Tt[Mt]=Lt,Tt}var kt="https://player.twitch.tv/js/embed/v1.js",St="Twitch",Et="twitch-player-",At=function(Tt){dt(Lt,Tt);var Mt=mt(Lt);function Lt(){var jt;ct(this,Lt);for(var Rt=arguments.length,$t=new Array(Rt),xt=0;xtxt.length)&&(It=xt.length);for(var Ot=0,zt=new Array(It);Ot"u"||!(Symbol.iterator in Object(xt)))){var Ot=[],zt=!0,Ut=!1,Wt=void 0;try{for(var Ft=xt[Symbol.iterator](),Nt;!(zt=(Nt=Ft.next()).done)&&(Ot.push(Nt.value),!(It&&Ot.length===It));zt=!0);}catch(Ct){Ut=!0,Wt=Ct}finally{try{!zt&&Ft.return!=null&&Ft.return()}finally{if(Ut)throw Wt}}return Ot}}function mt(xt){if(Array.isArray(xt))return xt}function gt(xt,It){if(!(xt instanceof It))throw new TypeError("Cannot call a class as a function")}function yt(xt,It){for(var Ot=0;Ot"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Tt(xt){return Tt=Object.setPrototypeOf?Object.getPrototypeOf:function(Ot){return Ot.__proto__||Object.getPrototypeOf(Ot)},Tt(xt)}function Mt(xt,It,Ot){return It in xt?Object.defineProperty(xt,It,{value:Ot,enumerable:!0,configurable:!0,writable:!0}):xt[It]=Ot,xt}var Lt="https://api.dmcdn.net/all.js",jt="DM",Rt="dmAsyncInit",$t=function(xt){wt(Ot,xt);var It=kt(Ot);function Ot(){var zt;gt(this,Ot);for(var Ut=arguments.length,Wt=new Array(Ut),Ft=0;Ft"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(At){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Mt){return Mt.__proto__||Object.getPrototypeOf(Mt)},wt(At)}function vt(At,Tt,Mt){return Tt in At?Object.defineProperty(At,Tt,{value:Mt,enumerable:!0,configurable:!0,writable:!0}):At[Tt]=Mt,At}var kt="https://widget.mixcloud.com/media/js/widgetApi.js",St="Mixcloud",Et=function(At){dt(Mt,At);var Tt=mt(Mt);function Mt(){var Lt;ct(this,Mt);for(var jt=arguments.length,Rt=new Array(jt),$t=0;$t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function wt(Tt){return wt=Object.setPrototypeOf?Object.getPrototypeOf:function(Lt){return Lt.__proto__||Object.getPrototypeOf(Lt)},wt(Tt)}function vt(Tt,Mt,Lt){return Mt in Tt?Object.defineProperty(Tt,Mt,{value:Lt,enumerable:!0,configurable:!0,writable:!0}):Tt[Mt]=Lt,Tt}var kt="https://play.vidyard.com/embed/v4.js",St="VidyardV4",Et="onVidyardAPI",At=function(Tt){dt(Lt,Tt);var Mt=mt(Lt);function Lt(){var jt;ct(this,Lt);for(var Rt=arguments.length,$t=new Array(Rt),xt=0;xt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function yt(St){return yt=Object.setPrototypeOf?Object.getPrototypeOf:function(At){return At.__proto__||Object.getPrototypeOf(At)},yt(St)}function bt(St,Et,At){return Et in St?Object.defineProperty(St,Et,{value:At,enumerable:!0,configurable:!0,writable:!0}):St[Et]=At,St}var wt="https://cdn.embed.ly/player-0.1.0.min.js",vt="playerjs",kt=function(St){ut(At,St);var Et=dt(At);function At(){var Tt;st(this,At);for(var Mt=arguments.length,Lt=new Array(Mt),jt=0;jt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function bt(zt){return bt=Object.setPrototypeOf?Object.getPrototypeOf:function(Wt){return Wt.__proto__||Object.getPrototypeOf(Wt)},bt(zt)}function wt(zt,Ut,Wt){return Ut in zt?Object.defineProperty(zt,Ut,{value:Wt,enumerable:!0,configurable:!0,writable:!0}):zt[Ut]=Wt,zt}var vt=typeof navigator<"u",kt=vt&&navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,St=vt&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||kt)&&!window.MSStream,Et=vt&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&!window.MSStream,At="https://cdn.jsdelivr.net/npm/hls.js@VERSION/dist/hls.min.js",Tt="Hls",Mt="https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js",Lt="dashjs",jt="https://cdn.jsdelivr.net/npm/flv.js@VERSION/dist/flv.min.js",Rt="flvjs",$t=/www\.dropbox\.com\/.+/,xt=/https:\/\/watch\.cloudflarestream\.com\/([a-z0-9]+)/,It="https://videodelivery.net/{id}/manifest/video.m3u8",Ot=function(zt){ht(Wt,zt);var Ut=pt(Wt);function Wt(){var Ft;lt(this,Wt);for(var Nt=arguments.length,Ct=new Array(Nt),Ht=0;Ht0?Ht.end(Ht.length-1):Ct}},{key:"getCurrentTime",value:function(){return this.player?this.player.currentTime:null}},{key:"getSecondsLoaded",value:function(){if(!this.player)return null;var Nt=this.player.buffered;if(Nt.length===0)return 0;var Ct=Nt.end(Nt.length-1),Ht=this.getDuration();return Ct>Ht?Ht:Ct}},{key:"getSource",value:function(Nt){var Ct=this.shouldUseHLS(Nt),Ht=this.shouldUseDASH(Nt),Jt=this.shouldUseFLV(Nt);if(!(Nt instanceof Array||(0,rt.isMediaStream)(Nt)||Ct||Ht||Jt))return $t.test(Nt)?Nt.replace("www.dropbox.com","dl.dropboxusercontent.com"):Nt}},{key:"render",value:function(){var Nt=this.props,Ct=Nt.url,Ht=Nt.playing,Jt=Nt.loop,nn=Nt.controls,Yt=Nt.muted,fn=Nt.config,cn=Nt.width,_n=Nt.height,En=this.shouldUseAudio(this.props),an=En?"audio":"video",en={width:cn==="auto"?cn:"100%",height:_n==="auto"?_n:"100%"};return nt.default.createElement(an,st({ref:this.ref,src:this.getSource(Ct),style:en,preload:"auto",autoPlay:Ht||void 0,controls:nn,muted:Yt,loop:Jt},fn.attributes),Ct instanceof Array&&Ct.map(this.renderSourceElement),fn.tracks.map(this.renderTrack))}}]),Wt}(nt.Component);tt.default=Ot,wt(Ot,"displayName","FilePlayer"),wt(Ot,"canPlay",it.canPlay.file)}(FilePlayer)),FilePlayer}(function(tt){Object.defineProperty(tt,"__esModule",{value:!0}),tt.default=void 0;var et=reactExports,nt=utils,rt=patterns;function it(lt){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?it=function(ut){return typeof ut}:it=function(ut){return ut&&typeof Symbol=="function"&&ut.constructor===Symbol&&ut!==Symbol.prototype?"symbol":typeof ut},it(lt)}function ot(){if(typeof WeakMap!="function")return null;var lt=new WeakMap;return ot=function(){return lt},lt}function at(lt){if(lt&<.__esModule)return lt;if(lt===null||it(lt)!=="object"&&typeof lt!="function")return{default:lt};var ct=ot();if(ct&&ct.has(lt))return ct.get(lt);var ut={},ht=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var dt in lt)if(Object.prototype.hasOwnProperty.call(lt,dt)){var pt=ht?Object.getOwnPropertyDescriptor(lt,dt):null;pt&&(pt.get||pt.set)?Object.defineProperty(ut,dt,pt):ut[dt]=lt[dt]}return ut.default=lt,ct&&ct.set(lt,ut),ut}var st=[{key:"youtube",name:"YouTube",canPlay:rt.canPlay.youtube,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireYouTube())})})},{key:"soundcloud",name:"SoundCloud",canPlay:rt.canPlay.soundcloud,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireSoundCloud())})})},{key:"vimeo",name:"Vimeo",canPlay:rt.canPlay.vimeo,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireVimeo())})})},{key:"facebook",name:"Facebook",canPlay:rt.canPlay.facebook,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireFacebook())})})},{key:"streamable",name:"Streamable",canPlay:rt.canPlay.streamable,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireStreamable())})})},{key:"wistia",name:"Wistia",canPlay:rt.canPlay.wistia,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireWistia())})})},{key:"twitch",name:"Twitch",canPlay:rt.canPlay.twitch,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireTwitch())})})},{key:"dailymotion",name:"DailyMotion",canPlay:rt.canPlay.dailymotion,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireDailyMotion())})})},{key:"mixcloud",name:"Mixcloud",canPlay:rt.canPlay.mixcloud,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireMixcloud())})})},{key:"vidyard",name:"Vidyard",canPlay:rt.canPlay.vidyard,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireVidyard())})})},{key:"kaltura",name:"Kaltura",canPlay:rt.canPlay.kaltura,lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireKaltura())})})},{key:"file",name:"FilePlayer",canPlay:rt.canPlay.file,canEnablePIP:function(ct){return rt.canPlay.file(ct)&&(document.pictureInPictureEnabled||(0,nt.supportsWebKitPresentationMode)())&&!rt.AUDIO_EXTENSIONS.test(ct)},lazyPlayer:(0,et.lazy)(function(){return Promise.resolve().then(function(){return at(requireFilePlayer())})})}];tt.default=st})(players);var ReactPlayer$1={},safeIsNaN=Number.isNaN||function tt(et){return typeof et=="number"&&et!==et};function isEqual(tt,et){return!!(tt===et||safeIsNaN(tt)&&safeIsNaN(et))}function areInputsEqual(tt,et){if(tt.length!==et.length)return!1;for(var nt=0;nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function vt(At){return vt=Object.setPrototypeOf?Object.getPrototypeOf:function(Mt){return Mt.__proto__||Object.getPrototypeOf(Mt)},vt(At)}function kt(At,Tt,Mt){return Tt in At?Object.defineProperty(At,Tt,{value:Mt,enumerable:!0,configurable:!0,writable:!0}):At[Tt]=Mt,At}var St=5e3,Et=function(At){pt(Mt,At);var Tt=gt(Mt);function Mt(){var Lt;ut(this,Mt);for(var jt=arguments.length,Rt=new Array(jt),$t=0;$t0&&jt<1;if(xt){var It=this.player.getDuration();if(!It){console.warn("ReactPlayer: could not seek using fraction – duration not yet available");return}this.player.seekTo(It*jt);return}this.player.seekTo(jt)}},{key:"render",value:function(){var jt=this.props.activePlayer;return jt?nt.default.createElement(jt,ct({},this.props,{onMount:this.handlePlayerMount,onReady:this.handleReady,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onLoaded:this.handleLoaded,onError:this.handleError})):null}}]),Mt}(nt.Component);tt.default=Et,kt(Et,"displayName","Player"),kt(Et,"propTypes",it.propTypes),kt(Et,"defaultProps",it.defaultProps)})(Player);var Preview$1={},hasRequiredPreview;function requirePreview(){return hasRequiredPreview||(hasRequiredPreview=1,function(tt){function et(St){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?et=function(At){return typeof At}:et=function(At){return At&&typeof Symbol=="function"&&At.constructor===Symbol&&At!==Symbol.prototype?"symbol":typeof At},et(St)}Object.defineProperty(tt,"__esModule",{value:!0}),tt.default=void 0;var nt=it(reactExports);function rt(){if(typeof WeakMap!="function")return null;var St=new WeakMap;return rt=function(){return St},St}function it(St){if(St&&St.__esModule)return St;if(St===null||et(St)!=="object"&&typeof St!="function")return{default:St};var Et=rt();if(Et&&Et.has(St))return Et.get(St);var At={},Tt=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Mt in St)if(Object.prototype.hasOwnProperty.call(St,Mt)){var Lt=Tt?Object.getOwnPropertyDescriptor(St,Mt):null;Lt&&(Lt.get||Lt.set)?Object.defineProperty(At,Mt,Lt):At[Mt]=St[Mt]}return At.default=St,Et&&Et.set(St,At),At}function ot(St,Et){var At=Object.keys(St);if(Object.getOwnPropertySymbols){var Tt=Object.getOwnPropertySymbols(St);Et&&(Tt=Tt.filter(function(Mt){return Object.getOwnPropertyDescriptor(St,Mt).enumerable})),At.push.apply(At,Tt)}return At}function at(St){for(var Et=1;Et"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function yt(St){return yt=Object.setPrototypeOf?Object.getPrototypeOf:function(At){return At.__proto__||Object.getPrototypeOf(At)},yt(St)}function bt(St,Et,At){return Et in St?Object.defineProperty(St,Et,{value:At,enumerable:!0,configurable:!0,writable:!0}):St[Et]=At,St}var wt="64px",vt={},kt=function(St){ut(At,St);var Et=dt(At);function At(){var Tt;st(this,At);for(var Mt=arguments.length,Lt=new Array(Mt),jt=0;jttt.length)&&(et=tt.length);for(var nt=0,rt=new Array(et);nt"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _getPrototypeOf(tt){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(nt){return nt.__proto__||Object.getPrototypeOf(nt)},_getPrototypeOf(tt)}function _defineProperty(tt,et,nt){return et in tt?Object.defineProperty(tt,et,{value:nt,enumerable:!0,configurable:!0,writable:!0}):tt[et]=nt,tt}function _getRequireWildcardCache(){if(typeof WeakMap!="function")return null;var tt=new WeakMap;return _getRequireWildcardCache=function(){return tt},tt}function _interopRequireWildcard(tt){if(tt&&tt.__esModule)return tt;if(tt===null||_typeof(tt)!=="object"&&typeof tt!="function")return{default:tt};var et=_getRequireWildcardCache();if(et&&et.has(tt))return et.get(tt);var nt={},rt=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var it in tt)if(Object.prototype.hasOwnProperty.call(tt,it)){var ot=rt?Object.getOwnPropertyDescriptor(tt,it):null;ot&&(ot.get||ot.set)?Object.defineProperty(nt,it,ot):nt[it]=tt[it]}return nt.default=tt,et&&et.set(tt,nt),nt}var Preview=(0,_react.lazy)(function(){return Promise.resolve().then(function(){return _interopRequireWildcard(requirePreview())})}),IS_BROWSER=typeof window<"u"&&window.document,IS_GLOBAL=typeof commonjsGlobal<"u"&&commonjsGlobal.window&&commonjsGlobal.window.document,SUPPORTED_PROPS=Object.keys(_props.propTypes),UniversalSuspense=IS_BROWSER||IS_GLOBAL?_react.Suspense:function(){return null},customPlayers=[],createReactPlayer=function tt(et,nt){var rt,it;return it=rt=function(ot){_inherits(st,ot);var at=_createSuper(st);function st(){var lt;_classCallCheck(this,st);for(var ct=arguments.length,ut=new Array(ct),ht=0;ht0&&arguments[0]!==void 0?arguments[0]:"player";return lt.player?lt.player.getInternalPlayer(dt):null}),_defineProperty(_assertThisInitialized(lt),"seekTo",function(dt,pt){if(!lt.player)return null;lt.player.seekTo(dt,pt)}),_defineProperty(_assertThisInitialized(lt),"handleReady",function(){lt.props.onReady(_assertThisInitialized(lt))}),_defineProperty(_assertThisInitialized(lt),"getActivePlayer",(0,_memoizeOne.default)(function(dt){for(var pt=0,mt=[].concat(customPlayers,_toConsumableArray(et));pt{const tt=useSelectedNode(),et=reactExports.useRef(null),{link:nt,timestamp:rt,image_url:it,description:ot,date:at,boost:st,type:lt,id:ct,episode_title:ut}=tt||{},ht=videoTimetoSeconds(rt||"");return reactExports.useEffect(()=>{var dt;et.current&&((dt=et.current)==null||dt.seekTo(ht))},[et,ht]),tt?jsxRuntimeExports.jsxs(Wrapper$4,{children:[jsxRuntimeExports.jsx(PlayerWrapper,{children:jsxRuntimeExports.jsx(Flex,{direction:"row",children:jsxRuntimeExports.jsx(ReactPlayer,{ref:et,controls:!0,height:"200px",playing:!0,url:nt,width:"100%"})})}),jsxRuntimeExports.jsx(StyledEpisode,{boostCount:st||0,date:at||0,description:formatDescription(ot),id:ct,imageUrl:it||"video_default.svg",isSelectedView:!0,onClick:()=>null,title:ut,type:lt}),jsxRuntimeExports.jsx(TranscriptWrapper,{grow:1,shrink:1,children:jsxRuntimeExports.jsx(Transcript,{node:tt,stateless:!0})})]}):null},Wrapper$4=styled$4(Flex)` flex: 1; min-height: 100%; diff --git a/build/index.html b/build/index.html index e78ccc186..79f64140b 100644 --- a/build/index.html +++ b/build/index.html @@ -22,7 +22,7 @@ Learn how to configure a non-root public URL by running `npm run build`. --> Second Brain - +