{"version":3,"sources":["jsdelivr-header.js","/npm/@supabase/realtime-js@2.115.0/dist/module/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/npm/@supabase/realtime-js@2.115.0/dist/module/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v4.62.2 and esbuild v0.28.1.\n * Original file: /npm/@supabase/realtime-js@2.115.0/dist/module/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import{Presence as x,Socket as V}from\"/npm/@supabase/phoenix@0.4.5/+esm\";var N=typeof global<\"u\"?global:typeof self<\"u\"?self:typeof window<\"u\"?window:{};class U{constructor(){}static detectEnvironment(){var e;if(typeof WebSocket<\"u\")return{type:\"native\",wsConstructor:WebSocket};const t=globalThis;if(typeof globalThis<\"u\"&&typeof t.WebSocket<\"u\")return{type:\"native\",wsConstructor:t.WebSocket};const r=typeof N<\"u\"?N:void 0;if(r&&typeof r.WebSocket<\"u\")return{type:\"native\",wsConstructor:r.WebSocket};if(typeof globalThis<\"u\"&&typeof t.WebSocketPair<\"u\"&&typeof globalThis.WebSocket>\"u\")return{type:\"cloudflare\",error:\"Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.\",workaround:\"Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime.\"};if(typeof globalThis<\"u\"&&t.EdgeRuntime||typeof navigator<\"u\"&&(!((e=navigator.userAgent)===null||e===void 0)&&e.includes(\"Vercel-Edge\")))return{type:\"unsupported\",error:\"Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.\",workaround:\"Use serverless functions or a different deployment target for WebSocket functionality.\"};const i=globalThis.process;if(i){const s=i.versions;if(s&&s.node)return{type:\"unsupported\",error:\"Node.js detected but native WebSocket not found.\",workaround:\"Ensure you are running Node.js 22+ or provide a WebSocket implementation via the transport option.\"}}return{type:\"unsupported\",error:\"Unknown JavaScript runtime without WebSocket support.\",workaround:\"Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation.\"}}static getWebSocketConstructor(){const e=this.detectEnvironment();if(e.wsConstructor)return e.wsConstructor;let t=e.error||\"WebSocket not supported in this environment.\";throw e.workaround&&(t+=`\n\nSuggested solution: ${e.workaround}`),new Error(t)}static isWebSocketSupported(){try{return this.detectEnvironment().type===\"native\"}catch{return!1}}}const z=\"2.115.0\",F=`realtime-js/${z}`,G=\"1.0.0\",L=\"2.0.0\",q=L,K=1e4,Y=15e3,Q=1e4,X=100,w={closed:\"closed\",errored:\"errored\",joined:\"joined\",joining:\"joining\",leaving:\"leaving\"},B={close:\"phx_close\",error:\"phx_error\",join:\"phx_join\",leave:\"phx_leave\",access_token:\"access_token\"},T={connecting:\"connecting\",closing:\"closing\",closed:\"closed\"};class Z{constructor(e){this.HEADER_LENGTH=1,this.USER_BROADCAST_PUSH_META_LENGTH=6,this.KINDS={userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST_EVENT=\"broadcast\",this.allowedMetadataKeys=[],this.allowedMetadataKeys=e??[]}encode(e,t){if(e.event===this.BROADCAST_EVENT&&!(e.payload instanceof ArrayBuffer)&&typeof e.payload.event==\"string\")return t(this._binaryEncodeUserBroadcastPush(e));let r=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(r))}_binaryEncodeUserBroadcastPush(e){var t;return this._isArrayBuffer((t=e.payload)===null||t===void 0?void 0:t.payload)?this._encodeBinaryUserBroadcastPush(e):this._encodeJsonUserBroadcastPush(e)}_encodeBinaryUserBroadcastPush(e){var t,r;const i=(r=(t=e.payload)===null||t===void 0?void 0:t.payload)!==null&&r!==void 0?r:new ArrayBuffer(0);return this._encodeUserBroadcastPush(e,this.BINARY_ENCODING,i)}_encodeJsonUserBroadcastPush(e){var t,r;const i=(r=(t=e.payload)===null||t===void 0?void 0:t.payload)!==null&&r!==void 0?r:{},o=new TextEncoder().encode(JSON.stringify(i)).buffer;return this._encodeUserBroadcastPush(e,this.JSON_ENCODING,o)}_encodeUserBroadcastPush(e,t,r){var i,s;const o=new TextEncoder,a=o.encode(e.topic),c=o.encode((i=e.ref)!==null&&i!==void 0?i:\"\"),d=o.encode((s=e.join_ref)!==null&&s!==void 0?s:\"\"),l=o.encode(e.payload.event),g=this.allowedMetadataKeys?this._pick(e.payload,this.allowedMetadataKeys):{},u=o.encode(Object.keys(g).length===0?\"\":JSON.stringify(g));if(d.length>255)throw new Error(`joinRef length ${d.length} exceeds maximum of 255`);if(c.length>255)throw new Error(`ref length ${c.length} exceeds maximum of 255`);if(a.length>255)throw new Error(`topic length ${a.length} exceeds maximum of 255`);if(l.length>255)throw new Error(`userEvent length ${l.length} exceeds maximum of 255`);if(u.length>255)throw new Error(`metadata length ${u.length} exceeds maximum of 255`);const p=this.USER_BROADCAST_PUSH_META_LENGTH+d.length+c.length+a.length+l.length+u.length,h=new ArrayBuffer(this.HEADER_LENGTH+p),k=new DataView(h),m=new Uint8Array(h);let v=0;k.setUint8(v++,this.KINDS.userBroadcastPush),k.setUint8(v++,d.length),k.setUint8(v++,c.length),k.setUint8(v++,a.length),k.setUint8(v++,l.length),k.setUint8(v++,u.length),k.setUint8(v++,t),m.set(d,v),v+=d.length,m.set(c,v),v+=c.length,m.set(a,v),v+=a.length,m.set(l,v),v+=l.length,m.set(u,v),v+=u.length;var y=new Uint8Array(h.byteLength+r.byteLength);return y.set(new Uint8Array(h),0),y.set(new Uint8Array(r),h.byteLength),y.buffer}decode(e,t){if(this._isArrayBuffer(e)){let r=this._binaryDecode(e);return t(r)}if(typeof e==\"string\"){const r=JSON.parse(e),[i,s,o,a,c]=r;return t({join_ref:i,ref:s,topic:o,event:a,payload:c})}return t({})}_binaryDecode(e){const t=new DataView(e),r=t.getUint8(0),i=new TextDecoder;if(r===this.KINDS.userBroadcast)return this._decodeUserBroadcast(e,t,i)}_decodeUserBroadcast(e,t,r){const i=t.getUint8(1),s=t.getUint8(2),o=t.getUint8(3),a=t.getUint8(4);let c=this.HEADER_LENGTH+4;const d=r.decode(e.slice(c,c+i));c=c+i;const l=r.decode(e.slice(c,c+s));c=c+s;const g=r.decode(e.slice(c,c+o));c=c+o;const u=e.slice(c,e.byteLength),p=a===this.JSON_ENCODING?JSON.parse(r.decode(u)):u,h={type:this.BROADCAST_EVENT,event:l,payload:p};return o>0&&(h.meta=JSON.parse(g)),{join_ref:null,ref:null,topic:d,event:this.BROADCAST_EVENT,payload:h}}_isArrayBuffer(e){var t;return e instanceof ArrayBuffer||((t=e?.constructor)===null||t===void 0?void 0:t.name)===\"ArrayBuffer\"}_pick(e,t){return!e||typeof e!=\"object\"?{}:Object.fromEntries(Object.entries(e).filter(([r])=>t.includes(r)))}}var f;(function(n){n.abstime=\"abstime\",n.bool=\"bool\",n.date=\"date\",n.daterange=\"daterange\",n.float4=\"float4\",n.float8=\"float8\",n.int2=\"int2\",n.int4=\"int4\",n.int4range=\"int4range\",n.int8=\"int8\",n.int8range=\"int8range\",n.json=\"json\",n.jsonb=\"jsonb\",n.money=\"money\",n.numeric=\"numeric\",n.oid=\"oid\",n.reltime=\"reltime\",n.text=\"text\",n.time=\"time\",n.timestamp=\"timestamp\",n.timestamptz=\"timestamptz\",n.timetz=\"timetz\",n.tsrange=\"tsrange\",n.tstzrange=\"tstzrange\"})(f||(f={}));const D=(n,e,t={})=>{var r;const i=(r=t.skipTypes)!==null&&r!==void 0?r:[];return e?Object.keys(e).reduce((s,o)=>(s[o]=ee(o,n,e,i),s),{}):{}},ee=(n,e,t,r)=>{const i=e.find(a=>a.name===n),s=i?.type,o=t[n];return s&&!r.includes(s)?H(s,o):O(o)},H=(n,e)=>{if(n.charAt(0)===\"_\"){const t=n.slice(1,n.length);return se(e,t)}switch(n){case f.bool:return te(e);case f.float4:case f.float8:case f.int2:case f.int4:case f.int8:case f.numeric:case f.oid:return ne(e);case f.json:case f.jsonb:return re(e);case f.timestamp:return ie(e);case f.abstime:case f.date:case f.daterange:case f.int4range:case f.int8range:case f.money:case f.reltime:case f.text:case f.time:case f.timestamptz:case f.timetz:case f.tsrange:case f.tstzrange:return O(e);default:return O(e)}},O=n=>n,te=n=>{switch(n){case\"t\":return!0;case\"f\":return!1;default:return n}},ne=n=>{if(typeof n==\"string\"){const e=parseFloat(n);if(!Number.isNaN(e))return e}return n},re=n=>{if(typeof n==\"string\")try{return JSON.parse(n)}catch{return n}return n},se=(n,e)=>{if(typeof n!=\"string\")return n;const t=n.length-1,r=n[t];if(n[0]===\"{\"&&r===\"}\"){let s;const o=n.slice(1,t);try{s=JSON.parse(\"[\"+o+\"]\")}catch{s=o?o.split(\",\"):[]}return s.map(a=>H(e,a))}return n},ie=n=>typeof n==\"string\"?n.replace(\" \",\"T\"):n,I=n=>{const e=new URL(n);return e.protocol=e.protocol.replace(/^ws/i,\"http\"),e.pathname=e.pathname.replace(/\\/+$/,\"\").replace(/\\/socket\\/websocket$/i,\"\").replace(/\\/socket$/i,\"\").replace(/\\/websocket$/i,\"\"),e.pathname===\"\"||e.pathname===\"/\"?e.pathname=\"/api/broadcast\":e.pathname=e.pathname+\"/api/broadcast\",e.href};class A{constructor(e,t){const r=ae(t);this.presence=new x(e.getChannel(),r),this.presence.onJoin((i,s,o)=>{const a=A.onJoinPayload(i,s,o);e.getChannel().trigger(\"presence\",a)}),this.presence.onLeave((i,s,o)=>{const a=A.onLeavePayload(i,s,o);e.getChannel().trigger(\"presence\",a)}),this.presence.onSync(()=>{e.getChannel().trigger(\"presence\",{event:\"sync\"})})}get state(){return A.transformState(this.presence.state)}static transformState(e){return e=oe(e),Object.getOwnPropertyNames(e).reduce((t,r)=>{const i=e[r];return t[r]=S(i),t},{})}static onJoinPayload(e,t,r){const i=W(t),s=S(r);return{event:\"join\",key:e,currentPresences:i,newPresences:s}}static onLeavePayload(e,t,r){const i=W(t),s=S(r);return{event:\"leave\",key:e,currentPresences:i,leftPresences:s}}}function S(n){return n.metas.map(e=>{const t=Object.getOwnPropertyDescriptors(e),r=Object.defineProperties({},t);return r.presence_ref=r.phx_ref,delete r.phx_ref,delete r.phx_ref_prev,r})}function oe(n){return JSON.parse(JSON.stringify(n))}function ae(n){return n?.events&&{events:n.events}}function W(n){return n?.metas?S(n):[]}var R;(function(n){n.SYNC=\"sync\",n.JOIN=\"join\",n.LEAVE=\"leave\"})(R||(R={}));class M{get state(){return this.presenceAdapter.state}constructor(e,t){this.channel=e,this.presenceAdapter=new A(this.channel.channelAdapter,t)}}function ce(n){if(n instanceof Error)return n;if(typeof n==\"string\")return new Error(n);if(n&&typeof n==\"object\"){const e=n;if(typeof e.code==\"number\"){const t=typeof e.reason==\"string\"&&e.reason?` (${e.reason})`:\"\";return new Error(`socket closed: ${e.code}${t}`,{cause:n})}return new Error(\"channel error: transport failure\",{cause:n})}return new Error(\"channel error: connection lost\")}class le{constructor(e,t,r){const i=de(r);this.channel=e.getSocket().channel(t,i),this.socket=e}get state(){return this.channel.state}set state(e){this.channel.state=e}get joinedOnce(){return this.channel.joinedOnce}get joinPush(){return this.channel.joinPush}get rejoinTimer(){return this.channel.rejoinTimer}on(e,t){return this.channel.on(e,t)}off(e,t){this.channel.off(e,t)}subscribe(e){return this.channel.join(e)}unsubscribe(e){return this.channel.leave(e)}teardown(){this.channel.teardown()}onClose(e){this.channel.onClose(e)}onError(e){return this.channel.onError(e)}push(e,t,r){let i;try{i=this.channel.push(e,t,r)}catch{throw new Error(`tried to push '${e}' to '${this.channel.topic}' before joining. Use channel.subscribe() before pushing events`)}if(this.channel.pushBuffer.length>X){const s=this.channel.pushBuffer.shift();s.cancelTimeout(),this.socket.log(\"channel\",`discarded push due to buffer overflow: ${s.event}`,s.payload())}return i}updateJoinPayload(e){const t=this.channel.joinPush.payload();this.channel.joinPush.payload=()=>Object.assign(Object.assign({},t),e)}canPush(){return this.socket.isConnected()&&this.state===w.joined}isJoined(){return this.state===w.joined}isJoining(){return this.state===w.joining}isClosed(){return this.state===w.closed}isLeaving(){return this.state===w.leaving}updateFilterBindings(e){this.channel.filterBindings=e}updatePayloadTransform(e){this.channel.onMessage=e}getChannel(){return this.channel}}function de(n){return{config:Object.assign({broadcast:{ack:!1,self:!1},presence:{key:\"\",enabled:!1},private:!1},n.config)}}const he=/[,()\"\\\\]/,ue=n=>he.test(n)||n!==n.trim(),fe=n=>`\"${n.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"')}\"`,$=n=>{const e=n===null?\"null\":String(n);return ue(e)?fe(e):e},pe=n=>n===null?\"null\":String(n),ge=(n,e)=>{if(n===\"in\"){const t=Array.isArray(e)?e:[e];if(t.length===0)throw new Error(\"Realtime `in` filter requires at least one value.\");return`in.(${Array.from(new Set(t)).map(i=>$(i)).join(\",\")})`}return n===\"is\"?`is.${pe(e)}`:`${n}.${$(e)}`};class j{constructor(){this.filters=[]}add(e,t,r,i=!1){const s=i?\"not.\":\"\";return this.filters.push(`${e}=${s}${ge(t,r)}`),this}eq(e,t){return this.add(e,\"eq\",t)}neq(e,t){return this.add(e,\"neq\",t)}gt(e,t){return this.add(e,\"gt\",t)}gte(e,t){return this.add(e,\"gte\",t)}lt(e,t){return this.add(e,\"lt\",t)}lte(e,t){return this.add(e,\"lte\",t)}in(e,t){return this.add(e,\"in\",t)}like(e,t){return this.add(e,\"like\",t)}ilike(e,t){return this.add(e,\"ilike\",t)}match(e,t){return this.add(e,\"match\",t)}imatch(e,t){return this.add(e,\"imatch\",t)}is(e,t){return this.add(e,\"is\",t)}isDistinct(e,t){return this.add(e,\"isdistinct\",t)}not(e,t,r){return this.add(e,t,r,!0)}build(){return this.filters.join(\",\")}toString(){return this.build()}}const ve=()=>new j;var P;(function(n){n.ALL=\"*\",n.INSERT=\"INSERT\",n.UPDATE=\"UPDATE\",n.DELETE=\"DELETE\"})(P||(P={}));var E;(function(n){n.BROADCAST=\"broadcast\",n.PRESENCE=\"presence\",n.POSTGRES_CHANGES=\"postgres_changes\",n.SYSTEM=\"system\"})(E||(E={}));var _;(function(n){n.SUBSCRIBED=\"SUBSCRIBED\",n.TIMED_OUT=\"TIMED_OUT\",n.CLOSED=\"CLOSED\",n.CHANNEL_ERROR=\"CHANNEL_ERROR\"})(_||(_={}));const me=w;class b{get state(){return this.channelAdapter.state}set state(e){this.channelAdapter.state=e}get joinedOnce(){return this.channelAdapter.joinedOnce}get timeout(){return this.socket.timeout}get joinPush(){return this.channelAdapter.joinPush}get rejoinTimer(){return this.channelAdapter.rejoinTimer}constructor(e,t={config:{}},r){var i,s;if(this.topic=e,this.params=t,this.socket=r,this.bindings={},this.subTopic=e.replace(/^realtime:/i,\"\"),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:\"\",enabled:!1},private:!1},t.config),this.channelAdapter=new le(this.socket.socketAdapter,e,this.params),this.presence=new M(this),this._onClose(()=>{this.socket._remove(this)}),this._updateFilterTransform(),this.broadcastEndpointURL=I(this.socket.socketAdapter.endPointURL()),this.private=this.params.config.private||!1,!this.private&&(!((s=(i=this.params.config)===null||i===void 0?void 0:i.broadcast)===null||s===void 0)&&s.replay))throw new Error(`tried to use replay on public channel '${this.topic}'. It must be a private channel.`)}subscribe(e,t=this.timeout){var r,i,s,o;if(this.socket.isConnected()||this.socket.connect(),this.channelAdapter.isClosed()){const{config:{broadcast:a,presence:c,private:d,postgres_changes_options:l}}=this.params,g=(i=(r=this.bindings.postgres_changes)===null||r===void 0?void 0:r.map(m=>m.filter))!==null&&i!==void 0?i:[],u=!!this.bindings[E.PRESENCE]&&this.bindings[E.PRESENCE].length>0||((s=this.params.config.presence)===null||s===void 0?void 0:s.enabled)===!0,p={},h=Object.assign({broadcast:a,presence:Object.assign(Object.assign({},c),{enabled:u}),postgres_changes:g,private:d},l?{postgres_changes_options:l}:{});this.socket.accessTokenValue&&(p.access_token=this.socket.accessTokenValue),this._onError(m=>{e?.(_.CHANNEL_ERROR,ce(m))}),this._onClose(()=>e?.(_.CLOSED)),this.updateJoinPayload(Object.assign({config:h},p)),this._updateFilterMessage();const k=l?.wait&&g.length>0?Math.max(t,((o=l.timeout)!==null&&o!==void 0?o:Y)+Q):t;this.channelAdapter.subscribe(k).receive(\"ok\",async({postgres_changes:m})=>{if(this.socket._isManualToken()||this.socket.setAuth(),m===void 0){e?.(_.SUBSCRIBED);return}this._updatePostgresBindings(m,e)}).receive(\"error\",m=>{this.state=w.errored;const v=Object.values(m).join(\", \")||\"error\";e?.(_.CHANNEL_ERROR,new Error(v,{cause:m}))}).receive(\"timeout\",()=>{e?.(_.TIMED_OUT)})}return this}_updatePostgresBindings(e,t){var r;const i=this.bindings.postgres_changes,s=(r=i?.length)!==null&&r!==void 0?r:0,o=[];for(let a=0;a<s;a++){const c=i[a],{filter:{event:d,schema:l,table:g,filter:u}}=c,p=e&&e[a];if(p&&p.event===d&&b.isFilterValueEqual(p.schema,l)&&b.isFilterValueEqual(p.table,g)&&b.isFilterValueEqual(p.filter,u))o.push(Object.assign(Object.assign({},c),{id:p.id}));else{this.unsubscribe(),this.state=w.errored,t?.(_.CHANNEL_ERROR,new Error(\"mismatch between server and client bindings for postgres changes\"));return}}this.bindings.postgres_changes=o,this.state!=w.errored&&t&&t(_.SUBSCRIBED)}presenceState(){return this.presence.state}async track(e,t={}){return await this.send({type:\"presence\",event:\"track\",payload:e},t)}async untrack(e={}){return await this.send({type:\"presence\",event:\"untrack\"},e)}on(e,t,r){const i=this.channelAdapter.isJoined()||this.channelAdapter.isJoining(),s=e===E.PRESENCE||e===E.POSTGRES_CHANGES;if(i&&s)throw this.socket.log(\"channel\",`cannot add \\`${e}\\` callbacks for ${this.topic} after \\`subscribe()\\`.`),new Error(`cannot add \\`${e}\\` callbacks for ${this.topic} after \\`subscribe()\\`.`);return this._on(e,t,r)}async httpSend(e,t,r={}){var i;if(t==null)return Promise.reject(new Error(\"Payload is required for httpSend()\"));const s=t instanceof ArrayBuffer||ArrayBuffer.isView(t),o={apikey:this.socket.apiKey?this.socket.apiKey:\"\",\"Content-Type\":s?\"application/octet-stream\":\"application/json\"};this.socket.accessTokenValue&&(o.Authorization=`Bearer ${this.socket.accessTokenValue}`);const a=new URL(this.broadcastEndpointURL);a.pathname+=`/${encodeURIComponent(this.subTopic)}/events/${encodeURIComponent(e)}`,this.private&&a.searchParams.set(\"private\",\"true\");const c={method:\"POST\",headers:o,body:s?t:JSON.stringify(t)},d=await this._fetchWithTimeout(a.toString(),c,(i=r.timeout)!==null&&i!==void 0?i:this.timeout);if(d.status===202)return{success:!0};if(d.status===404)return Promise.reject(new Error(\"httpSend() requires Realtime server v2.97.0 or newer; the endpoint returned 404. Update your Supabase CLI to a recent version, or upgrade the Realtime server in your self-hosted setup. See https://github.com/supabase/supabase-js/blob/master/packages/core/realtime-js/migrations/httpsend-server-version.md\"));let l=d.statusText;try{const g=await d.json();l=g.error||g.message||l}catch{}return Promise.reject(new Error(l))}async send(e,t={}){var r,i;if(!this.channelAdapter.canPush()&&e.type===\"broadcast\"){const s=\"Realtime send() is automatically falling back to REST API. This behavior will be deprecated in the future. Please use httpSend() explicitly for REST delivery.\";this.socket.hasLogger()?this.socket.log(\"channel\",s):console.warn(s);const{event:o,payload:a}=e,c={apikey:this.socket.apiKey?this.socket.apiKey:\"\",\"Content-Type\":\"application/json\"};this.socket.accessTokenValue&&(c.Authorization=`Bearer ${this.socket.accessTokenValue}`);const d={method:\"POST\",headers:c,body:JSON.stringify({messages:[{topic:this.subTopic,event:o,payload:a,private:this.private}]})};try{const l=await this._fetchWithTimeout(this.broadcastEndpointURL,d,(r=t.timeout)!==null&&r!==void 0?r:this.timeout);return await((i=l.body)===null||i===void 0?void 0:i.cancel()),l.ok?\"ok\":\"error\"}catch(l){return l instanceof Error&&l.name===\"AbortError\"?\"timed out\":\"error\"}}else return new Promise(s=>{var o,a,c;const d=this.channelAdapter.push(e.type,e,t.timeout||this.timeout);e.type===\"broadcast\"&&!(!((c=(a=(o=this.params)===null||o===void 0?void 0:o.config)===null||a===void 0?void 0:a.broadcast)===null||c===void 0)&&c.ack)&&s(\"ok\"),d.receive(\"ok\",()=>s(\"ok\")),d.receive(\"error\",()=>s(\"error\")),d.receive(\"timeout\",()=>s(\"timed out\"))})}updateJoinPayload(e){this.channelAdapter.updateJoinPayload(e)}async unsubscribe(e=this.timeout){return new Promise(t=>{this.channelAdapter.unsubscribe(e).receive(\"ok\",()=>t(\"ok\")).receive(\"timeout\",()=>t(\"timed out\")).receive(\"error\",()=>t(\"error\"))})}teardown(){this.channelAdapter.teardown()}async _fetchWithTimeout(e,t,r){const i=new AbortController,s=setTimeout(()=>i.abort(),r),o=await this.socket.fetch(e,Object.assign(Object.assign({},t),{signal:i.signal}));return clearTimeout(s),o}_on(e,t,r){var i;const s=e.toLocaleLowerCase(),o=t?.filter;if((o instanceof j||typeof o==\"object\"&&o!==null&&typeof o.build==\"function\")&&(t=Object.assign(Object.assign({},t),{filter:o.build()})),s===E.POSTGRES_CHANGES&&((i=this.bindings[s])===null||i===void 0?void 0:i.find(l=>b.isSamePostgresFilter(l.filter,t))))return this.socket.log(\"error\",`duplicate \\`postgres_changes\\` binding for ${this.topic} ignored`,t),this;const a=this.channelAdapter.on(e,r),c={type:s,filter:t,callback:r,ref:a};return this.bindings[s]?this.bindings[s].push(c):this.bindings[s]=[c],this._updateFilterMessage(),this}_onClose(e){this.channelAdapter.onClose(e)}_onError(e){this.channelAdapter.onError(e)}_updateFilterMessage(){this.channelAdapter.updateFilterBindings((e,t,r)=>{var i,s,o,a,c,d,l;const g=e.event.toLocaleLowerCase();if(this._notThisChannelEvent(g,r))return!1;const u=(i=this.bindings[g])===null||i===void 0?void 0:i.find(p=>p.ref===e.ref);if(!u)return!0;if([\"broadcast\",\"presence\",\"postgres_changes\"].includes(g))if(\"id\"in u){const p=u.id,h=(s=u.filter)===null||s===void 0?void 0:s.event;return p&&((o=t.ids)===null||o===void 0?void 0:o.includes(p))&&(h===\"*\"||h?.toLocaleLowerCase()===((a=t.data)===null||a===void 0?void 0:a.type.toLocaleLowerCase()))}else{const p=(d=(c=u?.filter)===null||c===void 0?void 0:c.event)===null||d===void 0?void 0:d.toLocaleLowerCase();return p===\"*\"||p===((l=t?.event)===null||l===void 0?void 0:l.toLocaleLowerCase())}else return u.type.toLocaleLowerCase()===g})}_notThisChannelEvent(e,t){const{close:r,error:i,leave:s,join:o}=B;return t&&[r,i,s,o].includes(e)&&t!==this.joinPush.ref}_updateFilterTransform(){this.channelAdapter.updatePayloadTransform((e,t,r)=>{if(typeof t==\"object\"&&\"ids\"in t){const i=t.data,{schema:s,table:o,commit_timestamp:a,type:c,errors:d}=i;return Object.assign(Object.assign({},{schema:s,table:o,commit_timestamp:a,eventType:c,new:{},old:{},errors:d}),this._getPayloadRecords(i))}return t})}copyBindings(e){if(this.joinedOnce)throw new Error(\"cannot copy bindings into joined channel\");for(const t in e.bindings)for(const r of e.bindings[t])this._on(r.type,r.filter,r.callback)}static isFilterValueEqual(e,t){return(e??void 0)===(t??void 0)}static isSamePostgresFilter(e,t){var r,i,s,o;const a=(i=(r=e?.select)===null||r===void 0?void 0:r.join())!==null&&i!==void 0?i:void 0,c=(o=(s=t?.select)===null||s===void 0?void 0:s.join())!==null&&o!==void 0?o:void 0;return e?.event===t?.event&&b.isFilterValueEqual(e?.schema,t?.schema)&&b.isFilterValueEqual(e?.table,t?.table)&&b.isFilterValueEqual(e?.filter,t?.filter)&&a===c}_getPayloadRecords(e){const t={new:{},old:{}};return(e.type===\"INSERT\"||e.type===\"UPDATE\")&&(t.new=D(e.columns,e.record)),(e.type===\"UPDATE\"||e.type===\"DELETE\")&&(t.old=D(e.columns,e.old_record)),t}}class ke{constructor(e,t){this.socket=new V(e,t)}get timeout(){return this.socket.timeout}get endPoint(){return this.socket.endPoint}get transport(){return this.socket.transport}get heartbeatIntervalMs(){return this.socket.heartbeatIntervalMs}get heartbeatCallback(){return this.socket.heartbeatCallback}set heartbeatCallback(e){this.socket.heartbeatCallback=e}get heartbeatTimer(){return this.socket.heartbeatTimer}get pendingHeartbeatRef(){return this.socket.pendingHeartbeatRef}get reconnectTimer(){return this.socket.reconnectTimer}get vsn(){return this.socket.vsn}get encode(){return this.socket.encode}get decode(){return this.socket.decode}get reconnectAfterMs(){return this.socket.reconnectAfterMs}get sendBuffer(){return this.socket.sendBuffer}get stateChangeCallbacks(){return this.socket.stateChangeCallbacks}connect(){this.socket.connect()}disconnect(e,t,r,i=1e4){return new Promise(s=>{setTimeout(()=>s(\"timeout\"),i),this.socket.disconnect(()=>{e(),s(\"ok\")},t,r)})}push(e){this.socket.push(e)}log(e,t,r){this.socket.log(e,t,r)}hasLogger(){return this.socket.hasLogger()}makeRef(){return this.socket.makeRef()}onOpen(e){this.socket.onOpen(e)}onClose(e){this.socket.onClose(e)}onError(e){this.socket.onError(e)}onMessage(e){this.socket.onMessage(e)}isConnected(){return this.socket.isConnected()}isConnecting(){return this.socket.connectionState()==T.connecting}isDisconnecting(){return this.socket.connectionState()==T.closing}connectionState(){return this.socket.connectionState()}endPointURL(){return this.socket.endPointURL()}sendHeartbeat(){this.socket.sendHeartbeat()}getSocket(){return this.socket}}const J={HEARTBEAT_INTERVAL:25e3},_e=[1e3,2e3,5e3,1e4],be=1e4;function ye(){const n=new Map;return{get length(){return n.size},clear(){n.clear()},getItem(e){return n.has(e)?n.get(e):null},key(e){var t;return(t=Array.from(n.keys())[e])!==null&&t!==void 0?t:null},removeItem(e){n.delete(e)},setItem(e,t){n.set(e,String(t))}}}function we(){try{if(typeof globalThis<\"u\"&&globalThis.sessionStorage)return globalThis.sessionStorage}catch{}return ye()}const Ee=`\n  addEventListener(\"message\", (e) => {\n    if (e.data.event === \"start\") {\n      setInterval(() => postMessage({ event: \"keepAlive\" }), e.data.interval);\n    }\n  });`;class Ae{get endPoint(){return this.socketAdapter.endPoint}get timeout(){return this.socketAdapter.timeout}get transport(){return this.socketAdapter.transport}get heartbeatCallback(){return this.socketAdapter.heartbeatCallback}get heartbeatIntervalMs(){return this.socketAdapter.heartbeatIntervalMs}get heartbeatTimer(){return this.worker?this._workerHeartbeatTimer:this.socketAdapter.heartbeatTimer}get pendingHeartbeatRef(){return this.worker?this._pendingWorkerHeartbeatRef:this.socketAdapter.pendingHeartbeatRef}get reconnectTimer(){return this.socketAdapter.reconnectTimer}get vsn(){return this.socketAdapter.vsn}get encode(){return this.socketAdapter.encode}get decode(){return this.socketAdapter.decode}get reconnectAfterMs(){return this.socketAdapter.reconnectAfterMs}get sendBuffer(){return this.socketAdapter.sendBuffer}get stateChangeCallbacks(){return this.socketAdapter.stateChangeCallbacks}constructor(e,t){var r;if(this.channels=new Array,this.accessTokenValue=null,this.accessToken=null,this.apiKey=null,this.httpEndpoint=\"\",this.headers={},this.params={},this.ref=0,this.serializer=new Z,this._manuallySetToken=!1,this._authPromise=null,this._authGeneration=0,this._workerHeartbeatTimer=void 0,this._pendingWorkerHeartbeatRef=null,this._pendingDisconnectTimer=null,this._disconnectOnEmptyChannelsAfterMs=0,this._resolveFetch=s=>s?(...o)=>s(...o):(...o)=>fetch(...o),!(!((r=t?.params)===null||r===void 0)&&r.apikey))throw new Error(\"API key is required to connect to Realtime\");this.apiKey=t.params.apikey;const i=this._initializeOptions(t);this.socketAdapter=new ke(e,i),this.httpEndpoint=I(e),this.fetch=this._resolveFetch(t?.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.isConnected())){this.accessToken&&!this._authPromise&&this._setAuthSafely(\"connect\"),this._setupConnectionHandlers();try{this.socketAdapter.connect()}catch(e){const t=e.message;throw new Error(`WebSocket not available: ${t}`)}this._handleNodeJsRaceCondition()}}endpointURL(){return this.socketAdapter.endPointURL()}async disconnect(e,t){return this._cancelPendingDisconnect(),this.isDisconnecting()?\"ok\":await this.socketAdapter.disconnect(()=>{clearInterval(this._workerHeartbeatTimer),this._terminateWorker()},e,t)}getChannels(){return this.channels}async removeChannel(e){const t=await e.unsubscribe();return t===\"ok\"&&e.teardown(),t}async removeAllChannels(){const e=this.channels.map(async r=>{const i=await r.unsubscribe();return r.teardown(),i}),t=await Promise.all(e);return await this.disconnect(),t}log(e,t,r){this.socketAdapter.log(e,t,r)}hasLogger(){return this.socketAdapter.hasLogger()}connectionState(){return this.socketAdapter.connectionState()||T.closed}isConnected(){return this.socketAdapter.isConnected()}isConnecting(){return this.socketAdapter.isConnecting()}isDisconnecting(){return this.socketAdapter.isDisconnecting()}channel(e,t={config:{}}){const r=`realtime:${e}`,i=this.getChannels().find(s=>s.topic===r);if(i)return i;{const s=new b(`realtime:${e}`,t,this);return this._cancelPendingDisconnect(),this.channels.push(s),s}}push(e){this.socketAdapter.push(e)}async setAuth(e=null){const t=++this._authGeneration,r=this._performAuth(e,t);t===this._authGeneration&&(this._authPromise=r);try{await r}finally{this._authPromise===r&&(this._authPromise=null)}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){this.socketAdapter.sendHeartbeat()}onHeartbeat(e){this.socketAdapter.heartbeatCallback=this._wrapHeartbeatCallback(e)}_makeRef(){return this.socketAdapter.makeRef()}_remove(e){this.channels=this.channels.filter(t=>t.topic!==e.topic),this.channels.length===0&&(this.log(\"transport\",\"no channels remaining, scheduling disconnect\"),this._schedulePendingDisconnect())}_schedulePendingDisconnect(){if(this._cancelPendingDisconnect(),this._disconnectOnEmptyChannelsAfterMs===0){this.log(\"transport\",\"disconnecting immediately - no channels\"),this.disconnect();return}this._pendingDisconnectTimer=setTimeout(()=>{this._pendingDisconnectTimer=null,this.channels.length===0&&(this.log(\"transport\",\"deferred disconnect fired - no channels, disconnecting\"),this.disconnect())},this._disconnectOnEmptyChannelsAfterMs),this.log(\"transport\",`deferred disconnect scheduled in ${this._disconnectOnEmptyChannelsAfterMs}ms`)}_cancelPendingDisconnect(){this._pendingDisconnectTimer!==null&&(this.log(\"transport\",\"pending disconnect cancelled - channel activity detected\"),clearTimeout(this._pendingDisconnectTimer),this._pendingDisconnectTimer=null)}async _performAuth(e,t){let r,i=!1;if(e)r=e,i=!0;else if(this.accessToken)try{r=await this.accessToken()}catch(s){this.log(\"error\",\"Error fetching access token from callback\",s),r=this.accessTokenValue}else r=this.accessTokenValue;t===this._authGeneration&&(this.accessToken?this._manuallySetToken=!1:i&&(this._manuallySetToken=!0),this.accessTokenValue!=r&&(this.accessTokenValue=r,this.channels.forEach(s=>{const o={access_token:r,version:F};s.updateJoinPayload(o),s.joinedOnce&&s.channelAdapter.isJoined()&&s.channelAdapter.push(B.access_token,{access_token:r})})))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(e=\"general\"){this._isManualToken()||this.setAuth().catch(t=>{this.log(\"error\",`Error setting auth in ${e}`,t)})}_setupConnectionHandlers(){this.socketAdapter.onOpen(()=>{(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).catch(t=>{this.log(\"error\",\"error waiting for auth on connect\",t)}),this.worker&&!this.workerRef&&this._startWorkerHeartbeat()}),this.socketAdapter.onClose(()=>{this.worker&&this.workerRef&&this._terminateWorker()}),this.socketAdapter.onMessage(e=>{e.ref&&e.ref===this._pendingWorkerHeartbeatRef&&(this._pendingWorkerHeartbeatRef=null)})}_handleNodeJsRaceCondition(){this.socketAdapter.isConnected()&&this.socketAdapter.getSocket().onConnOpen()}_wrapHeartbeatCallback(e){return(t,r)=>{t!==\"disconnected\"&&(t==\"sent\"&&this._setAuthSafely(),e&&e(t,r))}}_startWorkerHeartbeat(){this.workerUrl?this.log(\"worker\",`starting worker for from ${this.workerUrl}`):this.log(\"worker\",\"starting default worker\");const e=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(e),this.workerRef.onerror=t=>{this.log(\"worker\",\"worker error\",t.message),this._terminateWorker(),this.disconnect()},this.workerRef.onmessage=t=>{t.data.event===\"keepAlive\"&&this.sendHeartbeat()},this.workerRef.postMessage({event:\"start\",interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&(this.log(\"worker\",\"terminating worker\"),this.workerRef.terminate(),this.workerRef=void 0)}_workerObjectUrl(e){let t;if(e)t=e;else{const r=new Blob([Ee],{type:\"application/javascript\"});t=URL.createObjectURL(r)}return t}_initializeOptions(e){var t,r,i,s,o,a,c,d,l,g,u,p;this.worker=(t=e?.worker)!==null&&t!==void 0?t:!1,this.accessToken=(r=e?.accessToken)!==null&&r!==void 0?r:null;const h={};h.timeout=(i=e?.timeout)!==null&&i!==void 0?i:K,h.heartbeatIntervalMs=(s=e?.heartbeatIntervalMs)!==null&&s!==void 0?s:J.HEARTBEAT_INTERVAL,this._disconnectOnEmptyChannelsAfterMs=(o=e?.disconnectOnEmptyChannelsAfterMs)!==null&&o!==void 0?o:2*((a=e?.heartbeatIntervalMs)!==null&&a!==void 0?a:J.HEARTBEAT_INTERVAL),h.transport=(c=e?.transport)!==null&&c!==void 0?c:U.getWebSocketConstructor(),h.params=e?.params,h.logger=e?.logger,h.heartbeatCallback=this._wrapHeartbeatCallback(e?.heartbeatCallback),h.sessionStorage=(d=e?.sessionStorage)!==null&&d!==void 0?d:we(),h.reconnectAfterMs=(l=e?.reconnectAfterMs)!==null&&l!==void 0?l:(y=>_e[y-1]||be);let k,m;const v=(g=e?.vsn)!==null&&g!==void 0?g:q;switch(v){case G:k=(y,C)=>C(JSON.stringify(y)),m=(y,C)=>C(JSON.parse(y));break;case L:k=this.serializer.encode.bind(this.serializer),m=this.serializer.decode.bind(this.serializer);break;default:throw new Error(`Unsupported serializer version: ${h.vsn}`)}if(h.vsn=v,h.encode=(u=e?.encode)!==null&&u!==void 0?u:k,h.decode=(p=e?.decode)!==null&&p!==void 0?p:m,h.beforeReconnect=this._reconnectAuth.bind(this),(e?.logLevel||e?.log_level)&&(this.logLevel=e.logLevel||e.log_level,h.params=Object.assign(Object.assign({},h.params),{log_level:this.logLevel})),this.worker){if(typeof window<\"u\"&&!window.Worker)throw new Error(\"Web Worker is not supported\");this.workerUrl=e?.workerUrl,h.autoSendHeartbeat=!this.worker}return h}async _reconnectAuth(){await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()}}export{me as REALTIME_CHANNEL_STATES,E as REALTIME_LISTEN_TYPES,P as REALTIME_POSTGRES_CHANGES_LISTEN_EVENT,R as REALTIME_PRESENCE_LISTEN_EVENTS,_ as REALTIME_SUBSCRIBE_STATES,b as RealtimeChannel,Ae as RealtimeClient,j as RealtimePostgresFilterBuilder,M as RealtimePresence,U as WebSocketFactory,ve as postgresChangesFilter};\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ucG0vQHN1cGFiYXNlL3JlYWx0aW1lLWpzQDIuMTE1LjAvc3JjL2xpYi93ZWJzb2NrZXQtZmFjdG9yeS50cyIsIi9ucG0vQHN1cGFiYXNlL3JlYWx0aW1lLWpzQDIuMTE1LjAvc3JjL2xpYi92ZXJzaW9uLnRzIiwiL25wbS9Ac3VwYWJhc2UvcmVhbHRpbWUtanNAMi4xMTUuMC9zcmMvbGliL2NvbnN0YW50cy50cyIsIi9ucG0vQHN1cGFiYXNlL3JlYWx0aW1lLWpzQDIuMTE1LjAvc3JjL2xpYi9zZXJpYWxpemVyLnRzIiwiL25wbS9Ac3VwYWJhc2UvcmVhbHRpbWUtanNAMi4xMTUuMC9zcmMvbGliL3RyYW5zZm9ybWVycy50cyIsIi9ucG0vQHN1cGFiYXNlL3JlYWx0aW1lLWpzQDIuMTE1LjAvc3JjL3Bob2VuaXgvcHJlc2VuY2VBZGFwdGVyLnRzIiwiL25wbS9Ac3VwYWJhc2UvcmVhbHRpbWUtanNAMi4xMTUuMC9zcmMvUmVhbHRpbWVQcmVzZW5jZS50cyIsIi9ucG0vQHN1cGFiYXNlL3JlYWx0aW1lLWpzQDIuMTE1LjAvc3JjL2xpYi9ub3JtYWxpemVDaGFubmVsRXJyb3IudHMiLCIvbnBtL0BzdXBhYmFzZS9yZWFsdGltZS1qc0AyLjExNS4wL3NyYy9waG9lbml4L2NoYW5uZWxBZGFwdGVyLnRzIiwiL25wbS9Ac3VwYWJhc2UvcmVhbHRpbWUtanNAMi4xMTUuMC9zcmMvUmVhbHRpbWVQb3N0Z3Jlc0ZpbHRlckJ1aWxkZXIudHMiLCIvbnBtL0BzdXBhYmFzZS9yZWFsdGltZS1qc0AyLjExNS4wL3NyYy9SZWFsdGltZUNoYW5uZWwudHMiLCIvbnBtL0BzdXBhYmFzZS9yZWFsdGltZS1qc0AyLjExNS4wL3NyYy9waG9lbml4L3NvY2tldEFkYXB0ZXIudHMiLCIvbnBtL0BzdXBhYmFzZS9yZWFsdGltZS1qc0AyLjExNS4wL3NyYy9SZWFsdGltZUNsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51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ImdsIiwiZ2xvYmFsIiwiX2EiLCJfcHJvY2VzcyIsInByb2Nlc3NWZXJzaW9ucyIsImVudiIsImVycm9yTWVzc2FnZSIsInZlcnNpb24iLCJERUZBVUxUX1ZFUlNJT04iLCJWU05fMV8wXzAiLCJWU05fMl8wXzAiLCJERUZBVUxUX1ZTTiIsIkRFRkFVTFRfVElNRU9VVCIsIkRFRkFVTFRfUE9TVEdSRVNfQ0hBTkdFU19XQUlUX1RJTUVPVVQiLCJQT1NUR1JFU19DSEFOR0VTX1dBSVRfRVJST1JfR1JBQ0UiLCJNQVhfUFVTSF9CVUZGRVJfU0laRSIsIkNIQU5ORUxfU1RBVEVTIiwiQ0hBTk5FTF9FVkVOVFMiLCJDT05ORUNUSU9OX1NUQVRFIiwiU2VyaWFsaXplciIsImFsbG93ZWRNZXRhZGF0YUtleXMiLCJtc2ciLCJjYWxsYmFjayIsInBheWxvYWQiLCJtZXNzYWdlIiwidXNlclBheWxvYWQiLCJfYiIsImVuY29kZWRVc2VyUGF5bG9hZCIsImVuY29kaW5nVHlwZSIsImVuY29kZWRQYXlsb2FkIiwiZW5jb2RlciIsInRvcGljIiwicmVmIiwiam9pblJlZiIsInVzZXJFdmVudCIsInJlc3QiLCJtZXRhZGF0YSIsIm1ldGFMZW5ndGgiLCJoZWFkZXIiLCJ2aWV3IiwiYnl0ZXMiLCJvZmZzZXQiLCJjb21iaW5lZCIsInJhd1BheWxvYWQiLCJyZXN1bHQiLCJqc29uUGF5bG9hZCIsImpvaW5fcmVmIiwiZXZlbnQiLCJidWZmZXIiLCJraW5kIiwiZGVjb2RlciIsInRvcGljU2l6ZSIsInVzZXJFdmVudFNpemUiLCJtZXRhZGF0YVNpemUiLCJwYXlsb2FkRW5jb2RpbmciLCJwYXJzZWRQYXlsb2FkIiwiZGF0YSIsIm9iaiIsImtleXMiLCJrZXkiLCJQb3N0Z3Jlc1R5cGVzIiwiY29udmVydENoYW5nZURhdGEiLCJjb2x1bW5zIiwicmVjb3JkIiwib3B0aW9ucyIsInNraXBUeXBlcyIsImFjYyIsInJlY19rZXkiLCJjb252ZXJ0Q29sdW1uIiwiY29sdW1uTmFtZSIsImNvbHVtbiIsIngiLCJjb2xUeXBlIiwidmFsdWUiLCJjb252ZXJ0Q2VsbCIsIm5vb3AiLCJ0eXBlIiwiZGF0YVR5cGUiLCJ0b0FycmF5IiwidG9Cb29sZWFuIiwidG9OdW1iZXIiLCJ0b0pzb24iLCJ0b1RpbWVzdGFtcFN0cmluZyIsInBhcnNlZFZhbHVlIiwibGFzdElkeCIsImNsb3NlQnJhY2UiLCJhcnIiLCJ2YWxUcmltIiwidmFsIiwiaHR0cEVuZHBvaW50VVJMIiwic29ja2V0VXJsIiwid3NVcmwiLCJQcmVzZW5jZUFkYXB0ZXIiLCJjaGFubmVsIiwib3B0cyIsInBob2VuaXhPcHRpb25zIiwicGhvZW5peFByZXNlbmNlT3B0aW9ucyIsIlByZXNlbmNlIiwiY3VycmVudFByZXNlbmNlIiwibmV3UHJlc2VuY2UiLCJvbkpvaW5QYXlsb2FkIiwibGVmdFByZXNlbmNlIiwib25MZWF2ZVBheWxvYWQiLCJzdGF0ZSIsImNsb25lU3RhdGUiLCJuZXdTdGF0ZSIsInByZXNlbmNlcyIsInRyYW5zZm9ybVN0YXRlIiwiY3VycmVudFByZXNlbmNlcyIsInBhcnNlQ3VycmVudFByZXNlbmNlcyIsIm5ld1ByZXNlbmNlcyIsImxlZnRQcmVzZW5jZXMiLCJwcmVzZW5jZSIsImRlc2NyaXB0b3JzIiwidHJhbnNmb3JtZWRQcmVzZW5jZSIsIlJFQUxUSU1FX1BSRVNFTkNFX0xJU1RFTl9FVkVOVFMiLCJSZWFsdGltZVByZXNlbmNlIiwibm9ybWFsaXplQ2hhbm5lbEVycm9yIiwicmVhc29uIiwiZGV0YWlsIiwiQ2hhbm5lbEFkYXB0ZXIiLCJzb2NrZXQiLCJwYXJhbXMiLCJwaG9lbml4UGFyYW1zIiwicGhvZW5peENoYW5uZWxQYXJhbXMiLCJyZWZOdW1iZXIiLCJ0aW1lb3V0IiwicHVzaCIsInJlbW92ZWRQdXNoIiwib2xkUGF5bG9hZCIsImZpbHRlckJpbmRpbmdzIiwiUG9zdGdyZXN0UmVzZXJ2ZWRDaGFyc1JlZ2V4cCIsIm5lZWRzUXVvdGluZyIsInF1b3RlIiwic2VyaWFsaXplU2NhbGFyIiwic2VyaWFsaXplZCIsInNlcmlhbGl6ZUlzVmFsdWUiLCJzZXJpYWxpemUiLCJvcGVyYXRvciIsInZhbHVlcyIsInYiLCJSZWFsdGltZVBvc3RncmVzRmlsdGVyQnVpbGRlciIsIm5lZ2F0ZSIsInByZWZpeCIsInBhdHRlcm4iLCJwb3N0Z3Jlc0NoYW5nZXNGaWx0ZXIiLCJSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCIsIlJFQUxUSU1FX0xJU1RFTl9UWVBFUyIsIlJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMiLCJSRUFMVElNRV9DSEFOTkVMX1NUQVRFUyIsIlJlYWx0aW1lQ2hhbm5lbCIsImJyb2FkY2FzdCIsImlzUHJpdmF0ZSIsInBvc3RncmVzX2NoYW5nZXNfb3B0aW9ucyIsInBvc3RncmVzX2NoYW5nZXMiLCJyIiwicHJlc2VuY2VfZW5hYmxlZCIsIl9jIiwiYWNjZXNzVG9rZW5QYXlsb2FkIiwiY29uZmlnIiwiam9pblRpbWVvdXQiLCJfZCIsImVycm9yIiwiY2xpZW50UG9zdGdyZXNCaW5kaW5ncyIsImJpbmRpbmdzTGVuIiwibmV3UG9zdGdyZXNCaW5kaW5ncyIsImkiLCJjbGllbnRQb3N0Z3Jlc0JpbmRpbmciLCJzY2hlbWEiLCJ0YWJsZSIsImZpbHRlciIsInNlcnZlclBvc3RncmVzRmlsdGVyIiwic3RhdGVDaGVjayIsInR5cGVDaGVjayIsImlzQmluYXJ5IiwiaGVhZGVycyIsInVybCIsInJlc3BvbnNlIiwiZXJyb3JCb2R5IiwiYXJncyIsImZhbGxiYWNrV2FybmluZyIsImVuZHBvaW50X3BheWxvYWQiLCJyZXNvbHZlIiwiY29udHJvbGxlciIsImlkIiwidHlwZUxvd2VyIiwiZmlsdGVyVmFsdWUiLCJiaW5kIiwiYmluZGluZyIsImJpbmRJZCIsImJpbmRFdmVudCIsIl9mIiwiX2UiLCJfZyIsImNsb3NlIiwibGVhdmUiLCJqb2luIiwicG9zdGdyZXNDaGFuZ2VzIiwiY29tbWl0X3RpbWVzdGFtcCIsImVycm9ycyIsIm90aGVyIiwic2VydmVyVmFsdWUiLCJjbGllbnRWYWx1ZSIsImEiLCJiIiwic2VsZWN0QSIsInNlbGVjdEIiLCJyZWNvcmRzIiwiVHJhbnNmb3JtZXJzLmNvbnZlcnRDaGFuZ2VEYXRhIiwiU29ja2V0QWRhcHRlciIsImVuZFBvaW50IiwiU29ja2V0IiwiY29kZSIsIkNPTk5FQ1RJT05fVElNRU9VVFMiLCJSRUNPTk5FQ1RfSU5URVJWQUxTIiwiREVGQVVMVF9SRUNPTk5FQ1RfRkFMTEJBQ0siLCJjcmVhdGVNZW1vcnlTZXNzaW9uU3RvcmFnZSIsInN0b3JlIiwiaW5kZXgiLCJyZXNvbHZlU2Vzc2lvblN0b3JhZ2UiLCJXT1JLRVJfU0NSSVBUIiwiUmVhbHRpbWVDbGllbnQiLCJjdXN0b21GZXRjaCIsInNvY2tldEFkYXB0ZXJPcHRpb25zIiwic3RhdHVzIiwicHJvbWlzZXMiLCJyZWFsdGltZVRvcGljIiwiZXhpc3RzIiwiYyIsImNoYW4iLCJ0b2tlbiIsImF1dGhHZW5lcmF0aW9uIiwiYXV0aFByb21pc2UiLCJ0b2tlblRvU2VuZCIsImlzTWFudWFsVG9rZW4iLCJlIiwiY29udGV4dCIsImhlYXJ0YmVhdENhbGxiYWNrIiwibGF0ZW5jeSIsIm9iamVjdFVybCIsInJlc3VsdF91cmwiLCJibG9iIiwiX2giLCJfaiIsInRyaWVzIiwiZGVmYXVsdEVuY29kZSIsImRlZmF1bHREZWNvZGUiLCJ2c24iLCJfayIsIl9sIiwiX20iXX0="]}